universal-physics-tensor 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/bin/upt.mjs +9 -830
  2. package/dist/bridges/be52-mercury-confrontation.d.ts +72 -0
  3. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -0
  4. package/dist/bridges/be52-mercury-confrontation.js +67 -0
  5. package/dist/bridges/be52-mercury-confrontation.js.map +1 -0
  6. package/dist/bridges/confrontation-coverage.d.ts +15 -0
  7. package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
  8. package/dist/bridges/confrontation-coverage.js +9 -1
  9. package/dist/bridges/confrontation-coverage.js.map +1 -1
  10. package/dist/bridges/descriptor.d.ts +54 -0
  11. package/dist/bridges/descriptor.d.ts.map +1 -0
  12. package/dist/bridges/descriptor.js +67 -0
  13. package/dist/bridges/descriptor.js.map +1 -0
  14. package/dist/bridges/equations/_be-helpers.d.ts +1 -2
  15. package/dist/bridges/equations/_be-helpers.d.ts.map +1 -1
  16. package/dist/bridges/equations/_be-helpers.js +3 -3
  17. package/dist/bridges/equations/_be-helpers.js.map +1 -1
  18. package/dist/bridges/equations/be-20-vacuum-energy.d.ts +1 -1
  19. package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -1
  20. package/dist/bridges/equations/be-20-vacuum-energy.js +5 -3
  21. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  22. package/dist/bridges/equations/be-21-kss-bound.d.ts +1 -1
  23. package/dist/bridges/equations/be-21-kss-bound.js +1 -1
  24. package/dist/bridges/equations/be-25-iit-phi.d.ts +12 -16
  25. package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -1
  26. package/dist/bridges/equations/be-25-iit-phi.js +12 -16
  27. package/dist/bridges/equations/be-25-iit-phi.js.map +1 -1
  28. package/dist/bridges/equations/be-26-dna-tunneling.d.ts +6 -6
  29. package/dist/bridges/equations/be-26-dna-tunneling.js +6 -6
  30. package/dist/bridges/equations/be-40-composite-higgs.d.ts +9 -7
  31. package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -1
  32. package/dist/bridges/equations/be-40-composite-higgs.js +9 -7
  33. package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -1
  34. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +0 -34
  35. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -1
  36. package/dist/bridges/equations/be-50-wheeler-feynman.js +1 -1
  37. package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -1
  38. package/dist/canonical/entries/_l1-build.d.ts +4 -5
  39. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  40. package/dist/canonical/entries/_l1-build.js +3 -11
  41. package/dist/canonical/entries/_l1-build.js.map +1 -1
  42. package/dist/canonical/entries/atomic.d.ts +6 -5
  43. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  44. package/dist/canonical/entries/atomic.js +61 -1
  45. package/dist/canonical/entries/atomic.js.map +1 -1
  46. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  47. package/dist/canonical/entries/dimensional-classics.js +1 -10
  48. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  49. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  50. package/dist/canonical/entries/electromagnetism.js +49 -1
  51. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  52. package/dist/canonical/entries/relativity.d.ts +0 -3
  53. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  54. package/dist/canonical/entries/relativity.js +51 -3
  55. package/dist/canonical/entries/relativity.js.map +1 -1
  56. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts +7 -4
  57. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  58. package/dist/canonical/entries/thermo-nuclear-cosmo.js +117 -1
  59. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  60. package/dist/canonical/linkage.d.ts +5 -0
  61. package/dist/canonical/linkage.d.ts.map +1 -1
  62. package/dist/canonical/linkage.js +54 -24
  63. package/dist/canonical/linkage.js.map +1 -1
  64. package/dist/canonical/registry.d.ts +6 -1
  65. package/dist/canonical/registry.d.ts.map +1 -1
  66. package/dist/canonical/registry.js +6 -5
  67. package/dist/canonical/registry.js.map +1 -1
  68. package/dist/cli/args.d.ts +23 -0
  69. package/dist/cli/args.d.ts.map +1 -0
  70. package/dist/cli/args.js +74 -0
  71. package/dist/cli/args.js.map +1 -0
  72. package/dist/cli/command.d.ts +46 -0
  73. package/dist/cli/command.d.ts.map +1 -0
  74. package/dist/cli/command.js +51 -0
  75. package/dist/cli/command.js.map +1 -0
  76. package/dist/cli/commands/_discovery-opts.d.ts +16 -0
  77. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -0
  78. package/dist/cli/commands/_discovery-opts.js +33 -0
  79. package/dist/cli/commands/_discovery-opts.js.map +1 -0
  80. package/dist/cli/commands/audit.d.ts +3 -0
  81. package/dist/cli/commands/audit.d.ts.map +1 -0
  82. package/dist/cli/commands/audit.js +71 -0
  83. package/dist/cli/commands/audit.js.map +1 -0
  84. package/dist/cli/commands/candidates.d.ts +3 -0
  85. package/dist/cli/commands/candidates.d.ts.map +1 -0
  86. package/dist/cli/commands/candidates.js +46 -0
  87. package/dist/cli/commands/candidates.js.map +1 -0
  88. package/dist/cli/commands/canonical.d.ts +3 -0
  89. package/dist/cli/commands/canonical.d.ts.map +1 -0
  90. package/dist/cli/commands/canonical.js +38 -0
  91. package/dist/cli/commands/canonical.js.map +1 -0
  92. package/dist/cli/commands/connectors.d.ts +3 -0
  93. package/dist/cli/commands/connectors.d.ts.map +1 -0
  94. package/dist/cli/commands/connectors.js +51 -0
  95. package/dist/cli/commands/connectors.js.map +1 -0
  96. package/dist/cli/commands/coverage.d.ts +3 -0
  97. package/dist/cli/commands/coverage.d.ts.map +1 -0
  98. package/dist/cli/commands/coverage.js +39 -0
  99. package/dist/cli/commands/coverage.js.map +1 -0
  100. package/dist/cli/commands/derive.d.ts +3 -0
  101. package/dist/cli/commands/derive.d.ts.map +1 -0
  102. package/dist/cli/commands/derive.js +143 -0
  103. package/dist/cli/commands/derive.js.map +1 -0
  104. package/dist/cli/commands/discover.d.ts +3 -0
  105. package/dist/cli/commands/discover.d.ts.map +1 -0
  106. package/dist/cli/commands/discover.js +137 -0
  107. package/dist/cli/commands/discover.js.map +1 -0
  108. package/dist/cli/commands/eval.d.ts +3 -0
  109. package/dist/cli/commands/eval.d.ts.map +1 -0
  110. package/dist/cli/commands/eval.js +64 -0
  111. package/dist/cli/commands/eval.js.map +1 -0
  112. package/dist/cli/commands/explain.d.ts +3 -0
  113. package/dist/cli/commands/explain.d.ts.map +1 -0
  114. package/dist/cli/commands/explain.js +81 -0
  115. package/dist/cli/commands/explain.js.map +1 -0
  116. package/dist/cli/commands/index.d.ts +21 -0
  117. package/dist/cli/commands/index.d.ts.map +1 -0
  118. package/dist/cli/commands/index.js +21 -0
  119. package/dist/cli/commands/index.js.map +1 -0
  120. package/dist/cli/commands/map.d.ts +3 -0
  121. package/dist/cli/commands/map.d.ts.map +1 -0
  122. package/dist/cli/commands/map.js +245 -0
  123. package/dist/cli/commands/map.js.map +1 -0
  124. package/dist/cli/commands/predict.d.ts +3 -0
  125. package/dist/cli/commands/predict.d.ts.map +1 -0
  126. package/dist/cli/commands/predict.js +54 -0
  127. package/dist/cli/commands/predict.js.map +1 -0
  128. package/dist/cli/commands/priority.d.ts +3 -0
  129. package/dist/cli/commands/priority.d.ts.map +1 -0
  130. package/dist/cli/commands/priority.js +63 -0
  131. package/dist/cli/commands/priority.js.map +1 -0
  132. package/dist/cli/commands/recover.d.ts +3 -0
  133. package/dist/cli/commands/recover.d.ts.map +1 -0
  134. package/dist/cli/commands/recover.js +51 -0
  135. package/dist/cli/commands/recover.js.map +1 -0
  136. package/dist/cli/commands/symbolic.d.ts +3 -0
  137. package/dist/cli/commands/symbolic.d.ts.map +1 -0
  138. package/dist/cli/commands/symbolic.js +110 -0
  139. package/dist/cli/commands/symbolic.js.map +1 -0
  140. package/dist/cli/errors.d.ts +14 -0
  141. package/dist/cli/errors.d.ts.map +1 -0
  142. package/dist/cli/errors.js +20 -0
  143. package/dist/cli/errors.js.map +1 -0
  144. package/dist/cli/graphs.d.ts +16 -0
  145. package/dist/cli/graphs.d.ts.map +1 -0
  146. package/dist/cli/graphs.js +30 -0
  147. package/dist/cli/graphs.js.map +1 -0
  148. package/dist/cli/main.d.ts +33 -0
  149. package/dist/cli/main.d.ts.map +1 -0
  150. package/dist/cli/main.js +219 -0
  151. package/dist/cli/main.js.map +1 -0
  152. package/dist/cli/output.d.ts +19 -0
  153. package/dist/cli/output.d.ts.map +1 -0
  154. package/dist/cli/output.js +57 -0
  155. package/dist/cli/output.js.map +1 -0
  156. package/dist/cli/version.d.ts +11 -0
  157. package/dist/cli/version.d.ts.map +1 -0
  158. package/dist/cli/version.js +16 -0
  159. package/dist/cli/version.js.map +1 -0
  160. package/dist/cli-api.d.ts +28 -0
  161. package/dist/cli-api.d.ts.map +1 -0
  162. package/dist/cli-api.js +31 -0
  163. package/dist/cli-api.js.map +1 -0
  164. package/dist/composition/bridge-analysis.d.ts +13 -15
  165. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  166. package/dist/composition/bridge-analysis.js +54 -39
  167. package/dist/composition/bridge-analysis.js.map +1 -1
  168. package/dist/composition/bridge-prediction.d.ts +4 -3
  169. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  170. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  171. package/dist/composition/compose-symbolic.js +12 -0
  172. package/dist/composition/compose-symbolic.js.map +1 -1
  173. package/dist/composition/discovery.d.ts.map +1 -1
  174. package/dist/composition/discovery.js +40 -12
  175. package/dist/composition/discovery.js.map +1 -1
  176. package/dist/composition/edges/_catalog-helpers.d.ts +34 -0
  177. package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -0
  178. package/dist/composition/edges/_catalog-helpers.js +75 -0
  179. package/dist/composition/edges/_catalog-helpers.js.map +1 -0
  180. package/dist/composition/edges/calibration.d.ts.map +1 -1
  181. package/dist/composition/edges/calibration.js +1 -1
  182. package/dist/composition/edges/calibration.js.map +1 -1
  183. package/dist/composition/edges/catalog-condensed-matter.d.ts +64 -0
  184. package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -0
  185. package/dist/composition/edges/catalog-condensed-matter.js +226 -0
  186. package/dist/composition/edges/catalog-condensed-matter.js.map +1 -0
  187. package/dist/composition/edges/catalog-fields.d.ts +68 -0
  188. package/dist/composition/edges/catalog-fields.d.ts.map +1 -0
  189. package/dist/composition/edges/catalog-fields.js +206 -0
  190. package/dist/composition/edges/catalog-fields.js.map +1 -0
  191. package/dist/composition/edges/catalog-full.d.ts +5 -263
  192. package/dist/composition/edges/catalog-full.d.ts.map +1 -1
  193. package/dist/composition/edges/catalog-full.js +9 -959
  194. package/dist/composition/edges/catalog-full.js.map +1 -1
  195. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +80 -0
  196. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -0
  197. package/dist/composition/edges/catalog-gravitation-cosmology.js +245 -0
  198. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -0
  199. package/dist/composition/edges/catalog-quantum.d.ts +85 -0
  200. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -0
  201. package/dist/composition/edges/catalog-quantum.js +252 -0
  202. package/dist/composition/edges/catalog-quantum.js.map +1 -0
  203. package/dist/composition/expr-simplify.d.ts +2 -6
  204. package/dist/composition/expr-simplify.d.ts.map +1 -1
  205. package/dist/composition/expr-simplify.js +1 -1
  206. package/dist/composition/expr-simplify.js.map +1 -1
  207. package/dist/composition/expr-subst.d.ts +2 -1
  208. package/dist/composition/expr-subst.d.ts.map +1 -1
  209. package/dist/composition/proposed-bridges.d.ts +4 -4
  210. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  211. package/dist/composition/proposed-bridges.js +1 -3
  212. package/dist/composition/proposed-bridges.js.map +1 -1
  213. package/dist/composition/quantities/_dims.d.ts +35 -0
  214. package/dist/composition/quantities/_dims.d.ts.map +1 -0
  215. package/dist/composition/quantities/_dims.js +45 -0
  216. package/dist/composition/quantities/_dims.js.map +1 -0
  217. package/dist/composition/quantities/common.d.ts +69 -0
  218. package/dist/composition/quantities/common.d.ts.map +1 -0
  219. package/dist/composition/quantities/common.js +200 -0
  220. package/dist/composition/quantities/common.js.map +1 -0
  221. package/dist/composition/quantities/condensed-matter.d.ts +63 -0
  222. package/dist/composition/quantities/condensed-matter.d.ts.map +1 -0
  223. package/dist/composition/quantities/condensed-matter.js +185 -0
  224. package/dist/composition/quantities/condensed-matter.js.map +1 -0
  225. package/dist/composition/quantities/fields.d.ts +59 -0
  226. package/dist/composition/quantities/fields.d.ts.map +1 -0
  227. package/dist/composition/quantities/fields.js +171 -0
  228. package/dist/composition/quantities/fields.js.map +1 -0
  229. package/dist/composition/quantities/gravitation-cosmology.d.ts +67 -0
  230. package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -0
  231. package/dist/composition/quantities/gravitation-cosmology.js +199 -0
  232. package/dist/composition/quantities/gravitation-cosmology.js.map +1 -0
  233. package/dist/composition/quantities/quantum.d.ts +61 -0
  234. package/dist/composition/quantities/quantum.d.ts.map +1 -0
  235. package/dist/composition/quantities/quantum.js +178 -0
  236. package/dist/composition/quantities/quantum.js.map +1 -0
  237. package/dist/composition/quantities.d.ts +5 -263
  238. package/dist/composition/quantities.d.ts.map +1 -1
  239. package/dist/composition/quantities.js +7 -983
  240. package/dist/composition/quantities.js.map +1 -1
  241. package/dist/composition/retrodiction.d.ts.map +1 -1
  242. package/dist/composition/retrodiction.js +15 -3
  243. package/dist/composition/retrodiction.js.map +1 -1
  244. package/dist/composition/symbolic-constants.d.ts +3 -2
  245. package/dist/composition/symbolic-constants.d.ts.map +1 -1
  246. package/dist/core/tensor.d.ts +6 -0
  247. package/dist/core/tensor.d.ts.map +1 -1
  248. package/dist/core/tensor.js +6 -0
  249. package/dist/core/tensor.js.map +1 -1
  250. package/dist/diff/bridge-ast-gradient.js +1 -1
  251. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  252. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  253. package/dist/diff/bridge-gradient.js +15 -4
  254. package/dist/diff/bridge-gradient.js.map +1 -1
  255. package/dist/dimensional/algebra.d.ts +24 -0
  256. package/dist/dimensional/algebra.d.ts.map +1 -1
  257. package/dist/dimensional/algebra.js +31 -5
  258. package/dist/dimensional/algebra.js.map +1 -1
  259. package/dist/dimensional/ast-builders.d.ts +25 -0
  260. package/dist/dimensional/ast-builders.d.ts.map +1 -0
  261. package/dist/dimensional/ast-builders.js +27 -0
  262. package/dist/dimensional/ast-builders.js.map +1 -0
  263. package/dist/dimensional/ast-types.d.ts +193 -0
  264. package/dist/dimensional/ast-types.d.ts.map +1 -0
  265. package/dist/dimensional/ast-types.js +20 -0
  266. package/dist/dimensional/ast-types.js.map +1 -0
  267. package/dist/dimensional/buckingham.d.ts.map +1 -1
  268. package/dist/dimensional/buckingham.js +7 -4
  269. package/dist/dimensional/buckingham.js.map +1 -1
  270. package/dist/dimensional/connection-validators.d.ts +3 -38
  271. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  272. package/dist/dimensional/connection-validators.js.map +1 -1
  273. package/dist/dimensional/connection.d.ts.map +1 -1
  274. package/dist/dimensional/connection.js +9 -0
  275. package/dist/dimensional/connection.js.map +1 -1
  276. package/dist/dimensional/curvature-composite.d.ts +2 -1
  277. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  278. package/dist/dimensional/curvature-invariants.d.ts +2 -11
  279. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  280. package/dist/dimensional/curvature-invariants.js.map +1 -1
  281. package/dist/dimensional/curvature.d.ts +5 -24
  282. package/dist/dimensional/curvature.d.ts.map +1 -1
  283. package/dist/dimensional/curvature.js.map +1 -1
  284. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  285. package/dist/dimensional/dimension-inference.js +11 -5
  286. package/dist/dimensional/dimension-inference.js.map +1 -1
  287. package/dist/dimensional/einstein-equation.d.ts +2 -11
  288. package/dist/dimensional/einstein-equation.d.ts.map +1 -1
  289. package/dist/dimensional/einstein-equation.js.map +1 -1
  290. package/dist/dimensional/killing-validators.d.ts +2 -19
  291. package/dist/dimensional/killing-validators.d.ts.map +1 -1
  292. package/dist/dimensional/killing-validators.js.map +1 -1
  293. package/dist/dimensional/metric-validators.d.ts +5 -39
  294. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  295. package/dist/dimensional/metric-validators.js.map +1 -1
  296. package/dist/dimensional/stress-energy-validators.d.ts +2 -21
  297. package/dist/dimensional/stress-energy-validators.d.ts.map +1 -1
  298. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  299. package/dist/dimensional/tensor.d.ts +2 -32
  300. package/dist/dimensional/tensor.d.ts.map +1 -1
  301. package/dist/dimensional/tensor.js.map +1 -1
  302. package/dist/dimensional/validator.d.ts +12 -58
  303. package/dist/dimensional/validator.d.ts.map +1 -1
  304. package/dist/dimensional/validator.js +12 -9
  305. package/dist/dimensional/validator.js.map +1 -1
  306. package/dist/dimensional/weyl-validators.d.ts +2 -18
  307. package/dist/dimensional/weyl-validators.d.ts.map +1 -1
  308. package/dist/dimensional/weyl-validators.js.map +1 -1
  309. package/dist/index.d.ts +2 -0
  310. package/dist/index.d.ts.map +1 -1
  311. package/dist/index.js +2 -0
  312. package/dist/index.js.map +1 -1
  313. package/dist/numerical/be37-covariant-eikonal.d.ts +12 -11
  314. package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -1
  315. package/dist/numerical/be37-covariant-eikonal.js +23 -8
  316. package/dist/numerical/be37-covariant-eikonal.js.map +1 -1
  317. package/dist/numerical/christoffel-flat.d.ts +10 -1
  318. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  319. package/dist/numerical/christoffel-flat.js +11 -2
  320. package/dist/numerical/christoffel-flat.js.map +1 -1
  321. package/dist/numerical/curvature-lowering-helpers.d.ts +4 -1
  322. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  323. package/dist/numerical/curvature-lowering-helpers.js +72 -14
  324. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  325. package/dist/numerical/engine-registry.d.ts.map +1 -1
  326. package/dist/numerical/engine-registry.js +11 -0
  327. package/dist/numerical/engine-registry.js.map +1 -1
  328. package/dist/numerical/float64-engine.d.ts.map +1 -1
  329. package/dist/numerical/float64-engine.js +20 -28
  330. package/dist/numerical/float64-engine.js.map +1 -1
  331. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  332. package/dist/numerical/formula-dimension.js +1 -1
  333. package/dist/numerical/formula-dimension.js.map +1 -1
  334. package/dist/numerical/formula.d.ts +0 -2
  335. package/dist/numerical/formula.d.ts.map +1 -1
  336. package/dist/numerical/formula.js +7 -3
  337. package/dist/numerical/formula.js.map +1 -1
  338. package/dist/numerical/geodesic-integrator.d.ts +6 -1
  339. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  340. package/dist/numerical/geodesic-integrator.js +14 -6
  341. package/dist/numerical/geodesic-integrator.js.map +1 -1
  342. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  343. package/dist/numerical/gl4-integrator.js +106 -43
  344. package/dist/numerical/gl4-integrator.js.map +1 -1
  345. package/dist/numerical/lowering.d.ts.map +1 -1
  346. package/dist/numerical/lowering.js +8 -5
  347. package/dist/numerical/lowering.js.map +1 -1
  348. package/dist/numerical/null-ic.d.ts +4 -3
  349. package/dist/numerical/null-ic.d.ts.map +1 -1
  350. package/dist/numerical/null-ic.js +4 -3
  351. package/dist/numerical/null-ic.js.map +1 -1
  352. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  353. package/dist/numerical/perihelion-finder.js +15 -1
  354. package/dist/numerical/perihelion-finder.js.map +1 -1
  355. package/dist/numerical/quadrature.d.ts +3 -2
  356. package/dist/numerical/quadrature.d.ts.map +1 -1
  357. package/dist/numerical/quadrature.js +8 -1
  358. package/dist/numerical/quadrature.js.map +1 -1
  359. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  360. package/dist/numerical/weyl-lowering.js +28 -2
  361. package/dist/numerical/weyl-lowering.js.map +1 -1
  362. package/package.json +3 -2
  363. package/dist/canonical/entries/l1-gravity-thermo.d.ts +0 -12
  364. package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +0 -1
  365. package/dist/canonical/entries/l1-gravity-thermo.js +0 -165
  366. package/dist/canonical/entries/l1-gravity-thermo.js.map +0 -1
  367. package/dist/canonical/entries/l1-quantum-em.d.ts +0 -10
  368. package/dist/canonical/entries/l1-quantum-em.d.ts.map +0 -1
  369. package/dist/canonical/entries/l1-quantum-em.js +0 -141
  370. package/dist/canonical/entries/l1-quantum-em.js.map +0 -1
@@ -0,0 +1,245 @@
1
+ /**
2
+ * `upt map` — how the equations LINK: the text linkage map, the visual
3
+ * (mermaid/dot/svg) physics map, and the `--equation` user-junction
4
+ * injection. Transposed verbatim from bin/upt.mjs's `proposedJunctions()`/
5
+ * `analyzeEquation()`/`printEquationReport()`/`mapCmd()` (lines 387-545),
6
+ * plus `--json` and the `--json`/`--format` conflict guard.
7
+ *
8
+ * `parseEquationFlag` is REPLACED by the `either`-style `--equation` FlagSpec
9
+ * (`args.ts` already extracts `--equation=...` or `--equation "..."` into
10
+ * `flags.get('equation')`). `parseDiscoveryOpts` moved to `_discovery-opts.ts`
11
+ * — the old CLI's `proposedJunctions` fed `map`'s raw args through it
12
+ * (bin/upt.mjs line 392), so `--proposed` shares `discover`'s
13
+ * `--max-orders`/`--anchor` validation here too.
14
+ */
15
+ import { writeFileSync } from 'node:fs';
16
+ import { registerCommand } from '../command.js';
17
+ import { resolveGraph } from '../graphs.js';
18
+ import { emitJson } from '../output.js';
19
+ import { UsageError, CliError } from '../errors.js';
20
+ import { parseDiscoveryOpts } from './_discovery-opts.js';
21
+ const FLAGS = [
22
+ { name: '--source', valueStyle: 'attached' },
23
+ { name: '--format', valueStyle: 'attached' },
24
+ { name: '--out', valueStyle: 'attached' },
25
+ { name: '--max-orders', valueStyle: 'attached' },
26
+ { name: '--anchor', valueStyle: 'attached', repeatable: true },
27
+ { name: '--proposed', valueStyle: 'none' },
28
+ // optionalValue: a bare trailing --equation stores '' so the empty-check in
29
+ // run() owns the diagnostic (old-CLI fidelity: bin/upt.mjs did `a[i+1] ?? ''`
30
+ // and let mapCmd emit `upt: --equation requires "TARGET = EXPR"`, exit 2).
31
+ { name: '--equation', valueStyle: 'either', optionalValue: true },
32
+ { name: '--json', valueStyle: 'none' },
33
+ ];
34
+ const HELP = `upt map [--source=catalog|canonical|both] [--format=text|mermaid|dot|svg]
35
+ [--proposed] [--out=PATH] [--equation "TARGET = EXPR"]
36
+ Map how the equations LINK: connected components (clusters) of the
37
+ graph by shared quantities, the anchored core, the link hubs, and
38
+ the isolated tail.
39
+ --format=mermaid|dot|svg emits the VISUAL map (quantities = nodes,
40
+ equations = junctions colored by status, one subgraph per component).
41
+ text (default) is the unchanged linkage printout. svg renders the dot
42
+ layout via the optional @viz-js/viz peer (npm i @viz-js/viz; or pipe
43
+ dot through "dot -Tsvg"). --proposed overlays the unadjudicated
44
+ identity-consequence relations (gray dashed). --out writes to a file
45
+ (default stdout).
46
+ --equation "TARGET = EXPR" injects YOUR OWN equation as a violet 'user'
47
+ node and reports where it lands (which cluster / shared quantities), with
48
+ a "did you mean?" hint for names that miss the catalog vocabulary. Use
49
+ underscores for multi-word quantities (photon_energy -> photon-energy).
50
+ e.g. upt map --equation "period = 2*pi*sqrt(length/gravity)"`;
51
+ // Convert the derived identity-consequence proposals into viz junctions
52
+ // (gray-dashed, status 'proposed'). The library never imports proposed-bridges;
53
+ // the CLI does the conversion, keeping the epistemic firewall intact.
54
+ function proposedJunctions(api, graph, flags) {
55
+ const opts = parseDiscoveryOpts(flags);
56
+ const ranked = api.rankDiscoveries(graph, opts);
57
+ return api.deriveProposedBridges(ranked).map((p) => ({
58
+ id: p.id,
59
+ label: p.id,
60
+ status: 'proposed',
61
+ sources: (p.governing || []).map((g) => g.name),
62
+ target: p.target.name,
63
+ }));
64
+ }
65
+ // Build the catalog quantity name→dimension map for the chosen graph, then run
66
+ // the (testable) library analysis: parse + dimensional validation + "did you
67
+ // mean?" hints. The library owns the physics (constants' dimensions, inference);
68
+ // the CLI only formats.
69
+ async function analyzeEquation(api, equation, graph) {
70
+ const catalogDims = new Map();
71
+ for (const e of graph) {
72
+ for (const q of [...e.sources, e.target])
73
+ catalogDims.set(q.name, q.dim);
74
+ }
75
+ return api.analyzeUserEquation(equation, catalogDims);
76
+ }
77
+ // Print the dimensional verdict, where the equation landed, and any hints.
78
+ // `out` is ctx.out (text mode → stdout) or ctx.err (visual → stderr).
79
+ function printEquationReport(api, model, user, out) {
80
+ out('');
81
+ if (user.consistent === true) {
82
+ out(` ✓ dimensionally consistent: ${api.format(user.rhsDimension)}`);
83
+ }
84
+ else if (user.consistent === false) {
85
+ out(` ⚠ dimensional MISMATCH: RHS is ${api.format(user.rhsDimension)} but the target is ${api.format(user.targetDimension)}`);
86
+ }
87
+ else if (user.rhsDimension) {
88
+ out(` · RHS dimension: ${api.format(user.rhsDimension)} (target not in the catalog, so no comparison)`);
89
+ }
90
+ const L = api.equationLanding(model, 'user-equation');
91
+ if (L.isolated) {
92
+ out(' ⚠ your equation is ISOLATED — it shares no quantity with this graph.');
93
+ }
94
+ else {
95
+ out(` ● your equation joins ${L.anchored ? 'the ANCHORED cluster' : 'a cluster'} of ${L.clusterSize} via {${L.sharedQuantities.join(', ')}}`);
96
+ if (L.connectedJunctionIds.length)
97
+ out(` connects to: ${L.connectedJunctionIds.join(', ')}`);
98
+ }
99
+ for (const h of user.hints ?? []) {
100
+ if (!h.suggestions.length) {
101
+ out(` ⚠ '${h.name}' did not match a catalog quantity (run \`upt canonical\` for the vocabulary).`);
102
+ }
103
+ else if (h.byDimension) {
104
+ out(` ⚠ '${h.name}' is unknown — by its inferred dimension, did you mean: ${h.suggestions.join(', ')}?`);
105
+ }
106
+ else {
107
+ out(` ⚠ '${h.name}' did not match a catalog quantity — did you mean: ${h.suggestions.join(', ')}?`);
108
+ }
109
+ }
110
+ }
111
+ async function run(ctx) {
112
+ const { args, api, out, err, write } = ctx;
113
+ const { graph, label, source } = resolveGraph(api, args.flags);
114
+ const fmtValues = args.flags.get('format');
115
+ const fmt = fmtValues && fmtValues.length > 0 ? fmtValues[fmtValues.length - 1] : 'text';
116
+ const isJson = args.flags.has('json');
117
+ if (isJson && fmt !== 'text') {
118
+ throw new UsageError('upt: pick one output form: --json or --format');
119
+ }
120
+ // --equation injects a user-supplied "TARGET = EXPR" as a 'user' junction.
121
+ let user = null;
122
+ const equationValues = args.flags.get('equation');
123
+ const equation = equationValues && equationValues.length > 0 ? equationValues[equationValues.length - 1] : null;
124
+ if (equation != null) {
125
+ if (!equation.trim()) {
126
+ throw new UsageError('upt: --equation requires "TARGET = EXPR"');
127
+ }
128
+ try {
129
+ user = await analyzeEquation(api, equation, graph); // throws UserEquationError on malformed structure
130
+ }
131
+ catch (e) {
132
+ throw new UsageError('upt: ' + (e && e.message ? e.message : String(e)));
133
+ }
134
+ if (user.parseError) {
135
+ throw new UsageError('upt: ' + user.parseError); // dimensionally malformed RHS
136
+ }
137
+ }
138
+ const overlay = (extra) => [
139
+ ...(args.flags.has('proposed') ? proposedJunctions(api, graph, args.flags) : []),
140
+ ...extra,
141
+ ];
142
+ if (isJson) {
143
+ const linkage = api.linkageMap(graph);
144
+ let landing;
145
+ let userEquation;
146
+ if (user) {
147
+ const model = api.buildVizModel(graph, {
148
+ title: `UPT physics map — ${label}`,
149
+ extraJunctions: overlay([user.junction]),
150
+ });
151
+ landing = api.equationLanding(model, 'user-equation');
152
+ userEquation = {
153
+ equation: user.junction.label,
154
+ consistent: user.consistent,
155
+ rhsDimension: user.rhsDimension,
156
+ targetDimension: user.targetDimension,
157
+ hints: user.hints,
158
+ };
159
+ }
160
+ emitJson({
161
+ command: 'map',
162
+ source,
163
+ result: { linkage, ...(user ? { landing, userEquation } : {}) },
164
+ }, write);
165
+ return 0;
166
+ }
167
+ if (fmt === 'mermaid' || fmt === 'dot' || fmt === 'svg') {
168
+ const extraJunctions = overlay(user ? [user.junction] : []);
169
+ const model = api.buildVizModel(graph, {
170
+ title: `UPT physics map — ${label}`,
171
+ extraJunctions,
172
+ });
173
+ // svg is the dot layout rendered by the optional @viz-js/viz peer.
174
+ let src;
175
+ if (fmt === 'svg') {
176
+ try {
177
+ src = await api.renderDotToSvg(model.toDot());
178
+ }
179
+ catch (e) {
180
+ throw new CliError(e && e.message ? e.message : String(e));
181
+ }
182
+ }
183
+ else {
184
+ src = fmt === 'mermaid' ? model.toMermaid() : model.toDot();
185
+ }
186
+ const outValues = args.flags.get('out');
187
+ if (outValues && outValues.length > 0) {
188
+ const path = outValues[outValues.length - 1];
189
+ if (!path) {
190
+ throw new CliError('upt: --out= requires a non-empty PATH');
191
+ }
192
+ try {
193
+ writeFileSync(path, src);
194
+ }
195
+ catch (e) {
196
+ throw new CliError(e.message);
197
+ }
198
+ err(`upt: wrote ${fmt} (${model.junctions.length} junctions, ${model.clusters.length} clusters) to ${path}`);
199
+ }
200
+ else {
201
+ write(src);
202
+ }
203
+ // Landing report goes to stderr so stdout/--out stays pure diagram source.
204
+ if (user)
205
+ printEquationReport(api, model, user, err);
206
+ return 0;
207
+ }
208
+ if (fmt !== 'text') {
209
+ throw new CliError(`upt: unknown --format='${fmt}' (expected: text | mermaid | dot | svg)`);
210
+ }
211
+ const m = api.linkageMap(graph);
212
+ const mix = (s) => Object.entries(s)
213
+ .map(([k, v]) => `${v} ${k}`)
214
+ .join(', ');
215
+ out(`\nLinkage map — how the equations connect via shared quantities [source: ${label}]`);
216
+ out(`(${m.componentCount} components over ${graph.length} edges; ${m.compositions} compose into chains)\n`);
217
+ for (const c of m.clusters.filter((x) => x.size > 1)) {
218
+ out(` ● cluster of ${c.size}${c.anchored ? ' [ANCHORED to known physics]' : ''}`);
219
+ out(` edges: ${c.edges.join(', ')}`);
220
+ out(` status: ${mix(c.statusMix)}`);
221
+ out(` link hubs: ${c.hubs.join(', ')}\n`);
222
+ }
223
+ out(` ○ isolated (${m.isolated.length}) — share no quantity with any other edge:`);
224
+ out(` ${m.isolated.join(', ')}`);
225
+ out('\n (a structural map — shared-quantity connectivity, NOT a credibility signal)');
226
+ // --equation: where does the user's equation land in this graph?
227
+ if (user) {
228
+ const model = api.buildVizModel(graph, {
229
+ title: `UPT physics map — ${label}`,
230
+ extraJunctions: overlay([user.junction]),
231
+ });
232
+ out(`\nYour equation: ${user.junction.label}`);
233
+ printEquationReport(api, model, user, out);
234
+ }
235
+ return 0;
236
+ }
237
+ export const command = {
238
+ name: 'map',
239
+ aliases: ['linkage'],
240
+ flags: FLAGS,
241
+ help: HELP,
242
+ run,
243
+ };
244
+ registerCommand(command);
245
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.js","sourceRoot":"","sources":["../../../src/cli/commands/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from '../command.js';
2
+ export declare const command: Command;
3
+ //# sourceMappingURL=predict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/predict.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAwD/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { registerCommand } from '../command.js';
2
+ import { resolveGraph } from '../graphs.js';
3
+ import { emitJson } from '../output.js';
4
+ const FLAGS = [
5
+ { name: '--source', valueStyle: 'attached' },
6
+ { name: '--json', valueStyle: 'none' },
7
+ ];
8
+ const HELP = `upt predict
9
+ Project the catalog onto the (scale × force) regime plane and rank
10
+ the EMPTY regime cells as undiscovered-connection hypotheses
11
+ (triadic closure). Makes the namesake tensor operational. Review
12
+ surface, not discovered bridges.`;
13
+ const EPISTEMICS = '⚠ STRUCTURAL hypotheses for physicist review, NOT discovered bridges. "Two regimes\n' +
14
+ ' share bridge-neighbours but are not directly linked" (triadic closure) is a weak prior.';
15
+ async function run(ctx) {
16
+ const { args, api, out } = ctx;
17
+ const { graph, source } = resolveGraph(api, args.flags);
18
+ const r = api.predictMissingBridges(graph);
19
+ if (args.flags.has('json')) {
20
+ emitJson({ command: 'predict', source, epistemics: EPISTEMICS, result: r }, ctx.write);
21
+ return 0;
22
+ }
23
+ const short = (k) => k.replace(/scale=/g, '').replace(/force=/g, '').replace('|', '/');
24
+ out('\nBridge prediction — empty (scale×force) regime cells as undiscovered-link HYPOTHESES');
25
+ out('⚠ STRUCTURAL hypotheses for physicist review, NOT discovered bridges. "Two regimes');
26
+ out(' share bridge-neighbours but are not directly linked" (triadic closure) is a weak prior.\n');
27
+ out(` projected ${r.placedEdges}/${r.totalEdges} edges onto ${r.occupiedRegimes.length} regimes; ` +
28
+ `${r.linkedPairCount} regime-pairs already bridged.\n`);
29
+ if (!r.predictions.length) {
30
+ out(' no empty regime-pair has a shared-neighbour basis — nothing to predict.');
31
+ }
32
+ else {
33
+ out(' predicted missing bridges (by shared-neighbour count):');
34
+ for (const p of r.predictions) {
35
+ out(` ${(short(p.regimeA) + ' ⟷ ' + short(p.regimeB)).padEnd(46)} ` +
36
+ `score ${p.sharedNeighbors} via {${p.via.map(short).join(', ')}}`);
37
+ }
38
+ }
39
+ if (r.unexploredRegimes.length) {
40
+ out(`\n unexplored regimes adjacent to known ones (the tensor's empty neighbourhoods):`);
41
+ out(` ${r.unexploredRegimes.map(short).join(', ')}`);
42
+ }
43
+ out('\n (regime coords come from quantity attributes; only regime-tagged edges are placed.)');
44
+ return 0;
45
+ }
46
+ export const command = {
47
+ name: 'predict',
48
+ aliases: ['predictions'],
49
+ flags: FLAGS,
50
+ help: HELP,
51
+ run,
52
+ };
53
+ registerCommand(command);
54
+ //# sourceMappingURL=predict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"predict.js","sourceRoot":"","sources":["../../../src/cli/commands/predict.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from '../command.js';
2
+ export declare const command: Command;
3
+ //# sourceMappingURL=priority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/priority.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAqE/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -0,0 +1,63 @@
1
+ import { registerCommand } from '../command.js';
2
+ import { resolveGraph } from '../graphs.js';
3
+ import { emitJson } from '../output.js';
4
+ const FLAGS = [
5
+ { name: '--source', valueStyle: 'attached' },
6
+ { name: '--json', valueStyle: 'none' },
7
+ ];
8
+ const HELP = `upt priority
9
+ Triage the speculative bridges by structural DECIDABILITY against
10
+ established physics (Tiers 1-3). NOT a credibility ranking.`;
11
+ const EPISTEMICS = '(review/confrontation priority — NOT a credibility ranking)';
12
+ async function run(ctx) {
13
+ const { args, api, out } = ctx;
14
+ const { graph, source } = resolveGraph(api, args.flags);
15
+ const board = api.bridgePriority(graph);
16
+ if (args.flags.has('json')) {
17
+ emitJson({ command: 'priority', source, epistemics: EPISTEMICS, result: board }, ctx.write);
18
+ return 0;
19
+ }
20
+ const a = (d) => (d === Infinity ? '∞' : String(d));
21
+ out('\nBridge triage — structural decidability against established physics');
22
+ out('(review/confrontation priority — NOT a credibility ranking)\n');
23
+ if (board.length === 0) {
24
+ out(' 0 non-established bridges in this graph — the canonical L-layer is all-established; triage is vacuous here.');
25
+ return 0;
26
+ }
27
+ out(' tier anchor grounding cplx data bridge status');
28
+ out(' ' + '─'.repeat(73));
29
+ let last = 0;
30
+ for (const e of board) {
31
+ if (e.tier !== last) {
32
+ const label = e.tier === 1
33
+ ? 'anchored + grounded/tractable — confront first'
34
+ : e.tier === 2
35
+ ? 'anchored OR grounded — second pass'
36
+ : 'isolated + multi-parameter — needs literature review, not structure';
37
+ out(`\n ── Tier ${e.tier}: ${label}`);
38
+ last = e.tier;
39
+ }
40
+ out([
41
+ ' T' + e.tier,
42
+ a(e.anchoring).padStart(5),
43
+ ' ' + e.grounding.padEnd(10),
44
+ String(e.complexity).padStart(3),
45
+ e.hasDataConfrontation ? ' DATA' : ' ',
46
+ ' ' + e.id.padEnd(20),
47
+ e.status,
48
+ ].join(' '));
49
+ }
50
+ const tiers = board.reduce((m, e) => ((m[e.tier] = (m[e.tier] || 0) + 1), m), {});
51
+ out(`\n Tiers: ${JSON.stringify(tiers)} (of ${board.length} non-established bridges)`);
52
+ out(' Reminder: tier ranks decidability/anchoring, not truth.');
53
+ return 0;
54
+ }
55
+ export const command = {
56
+ name: 'priority',
57
+ aliases: ['prioritize', 'triage'],
58
+ flags: FLAGS,
59
+ help: HELP,
60
+ run,
61
+ };
62
+ registerCommand(command);
63
+ //# sourceMappingURL=priority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"priority.js","sourceRoot":"","sources":["../../../src/cli/commands/priority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from '../command.js';
2
+ export declare const command: Command;
3
+ //# sourceMappingURL=recover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recover.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/recover.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAoD/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { registerCommand } from '../command.js';
2
+ import { emitJson } from '../output.js';
3
+ const FLAGS = [{ name: '--json', valueStyle: 'none' }];
4
+ const HELP = `upt recover
5
+ Validate bridges against standard physics: classify each bridge↔
6
+ canonical link as restates-canonical (F4 circularity — NOT a
7
+ discovery), recovers (undeclared structural match), or
8
+ dimensional-only.`;
9
+ const EPISTEMICS = '⚠ structural match is "same relation UP TO a dimensionless factor"; that factor\n' +
10
+ ' may itself be physically substantive (e.g. ⟨e^-βW⟩). A review surface.';
11
+ async function run(ctx) {
12
+ const { args, api, out } = ctx;
13
+ const all = api.scanLinkages();
14
+ if (args.flags.has('json')) {
15
+ emitJson({ command: 'recover', epistemics: EPISTEMICS, result: all }, ctx.write);
16
+ return 0;
17
+ }
18
+ const by = (c) => all.filter((r) => r.classification === c);
19
+ const restates = by('restates-canonical');
20
+ const recovers = by('recovers');
21
+ const dimOnly = by('dimensional-only');
22
+ out('\nBridge↔canonical recovery — validating bridges against standard physics');
23
+ out('⚠ structural match is "same relation UP TO a dimensionless factor"; that factor');
24
+ out(' may itself be physically substantive (e.g. ⟨e^-βW⟩). A review surface.\n');
25
+ out(` ${all.length} non-unrelated links → ${restates.length} restates-canonical ` +
26
+ `· ${recovers.length} recovers · ${dimOnly.length} dimensional-only\n`);
27
+ if (restates.length) {
28
+ out(' RESTATES-CANONICAL (the bridge IS the canonical law — F4: NOT a discovery):');
29
+ for (const r of restates) {
30
+ const rec = r.recovery && r.recovery.tested ? ` (recovery exact, err ${r.recovery.maxRelErr.toExponential(0)})` : '';
31
+ out(` ${r.canonicalId.padEnd(26)} ≡ bridge ${r.bridgeId}${rec}`);
32
+ }
33
+ }
34
+ if (recovers.length) {
35
+ out("\n RECOVERS (undeclared structural correspondence — worth a physicist's look):");
36
+ for (const r of recovers) {
37
+ out(` ${r.canonicalId.padEnd(26)} ~ bridge ${r.bridgeId} (same form up to a dimensionless factor)`);
38
+ }
39
+ }
40
+ out(`\n (${dimOnly.length} dimensional-only: same dimension, different form. Run \`upt canonical\` for the registry.)`);
41
+ return 0;
42
+ }
43
+ export const command = {
44
+ name: 'recover',
45
+ aliases: ['recovery', 'validate'],
46
+ flags: FLAGS,
47
+ help: HELP,
48
+ run,
49
+ };
50
+ registerCommand(command);
51
+ //# sourceMappingURL=recover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recover.js","sourceRoot":"","sources":["../../../src/cli/commands/recover.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAiC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,KAAK,GAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAEnE,MAAM,IAAI,GAAG;;;;0BAIa,CAAC;AAE3B,MAAM,UAAU,GACd,mFAAmF;IACnF,0EAA0E,CAAC;AAE7E,KAAK,UAAU,GAAG,CAAC,GAAe;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACjF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,EAAE,CAAC,oBAAoB,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;IACvC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACjF,GAAG,CAAC,iFAAiF,CAAC,CAAC;IACvF,GAAG,CAAC,4EAA4E,CAAC,CAAC;IAClF,GAAG,CACD,KAAK,GAAG,CAAC,MAAM,4BAA4B,QAAQ,CAAC,MAAM,uBAAuB;QAC/E,MAAM,QAAQ,CAAC,MAAM,iBAAiB,OAAO,CAAC,MAAM,qBAAqB,CAC5E,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,GAAG,CAAC,+EAA+E,CAAC,CAAC;QACrF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACrH,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,GAAG,CAAC,iFAAiF,CAAC,CAAC;QACvF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,QAAQ,4CAA4C,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IACD,GAAG,CAAC,QAAQ,OAAO,CAAC,MAAM,6FAA6F,CAAC,CAAC;IACzH,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;IACjC,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,GAAG;CACJ,CAAC;AAEF,eAAe,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type Command } from '../command.js';
2
+ export declare const command: Command;
3
+ //# sourceMappingURL=symbolic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/symbolic.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA8G/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { registerCommand } from '../command.js';
2
+ import { emitJson } from '../output.js';
3
+ const FLAGS = [
4
+ { name: '--simplify', valueStyle: 'none' },
5
+ { name: '--json', valueStyle: 'none' },
6
+ ];
7
+ const HELP = `upt symbolic [--simplify]
8
+ Compose bridges' SYMBOLIC (AST) forms, not just their numeric
9
+ evaluators (the Observable contract). Shows the CT-1 / CT-1b chains
10
+ composed by substitution, dimensionally validated and evaluable.
11
+ With --simplify, folds the composed AST via MathTS (k_B cancels),
12
+ re-validated dimensionally + numerically.`;
13
+ function exprToString(n) {
14
+ if (n.kind === 'symbol')
15
+ return n.name;
16
+ if (n.kind === 'op') {
17
+ if (n.op === '^')
18
+ return `${exprToString(n.args[0])}^${exprToString(n.args[1])}`;
19
+ const sep = n.op === '*' ? '·' : ` ${n.op} `;
20
+ const inner = n.args
21
+ .map((a) => {
22
+ const s = exprToString(a);
23
+ return a.kind === 'op' && (a.op === '+' || a.op === '-' || a.op === '/') ? `(${s})` : s;
24
+ })
25
+ .join(sep);
26
+ return inner;
27
+ }
28
+ return `⟨${n.kind}⟩`;
29
+ }
30
+ async function run(ctx) {
31
+ const { args, api, out } = ctx;
32
+ const doSimplify = args.flags.has('simplify');
33
+ const isJson = args.flags.has('json');
34
+ const chains = [
35
+ { first: api.be42Edge, second: api.be16Edge, label: 'CT-1 (be-42 ∘ be-16, via hawking-temperature ≡ temperature)' },
36
+ {
37
+ first: api.lawSchwarzschildRadius,
38
+ second: api.be42ViaRsEdge,
39
+ label: 'CT-1b (law-r_s ∘ be-42-via-rs, name-match junction)',
40
+ },
41
+ ];
42
+ const jsonResult = [];
43
+ if (!isJson) {
44
+ out('\nSymbolic bridge composition — composing the SYMBOLIC forms, not just numbers');
45
+ out('(the Observable contract: composed AST, dimensionally validated + numerically evaluable)\n');
46
+ }
47
+ for (const { first, second, label } of chains) {
48
+ const obs = api.composeSymbolic(first, second);
49
+ const num = obs.evaluate({ mass: api.M_SUN_KG });
50
+ if (!isJson) {
51
+ out(` ● ${label}`);
52
+ out(` composed: ${obs.name}(${obs.leaves.join(',')}) = ${exprToString(obs.expr)}`);
53
+ }
54
+ if (doSimplify) {
55
+ const s = await api.simplifyObservable(obs);
56
+ const sNum = s.evaluate({ mass: api.M_SUN_KG });
57
+ if (isJson) {
58
+ jsonResult.push({
59
+ label,
60
+ name: s.name,
61
+ leaves: s.leaves,
62
+ expr: exprToString(s.expr),
63
+ dim: api.format(s.dim),
64
+ value: sNum,
65
+ simplified: true,
66
+ });
67
+ }
68
+ else {
69
+ const tag = s.expr === obs.expr ? ' (unchanged — minimal, MathTS absent, or not reducible here)' : '';
70
+ out(` simplified: ${s.name}(${s.leaves.join(',')}) = ${exprToString(s.expr)}${tag}`);
71
+ out(` value @ mass = M_sun: ${sNum.toExponential(4)} (= composed, ${api.format(s.dim)})`);
72
+ }
73
+ }
74
+ else if (isJson) {
75
+ jsonResult.push({
76
+ label,
77
+ name: obs.name,
78
+ leaves: obs.leaves,
79
+ expr: exprToString(obs.expr),
80
+ dim: api.format(obs.dim),
81
+ value: num,
82
+ });
83
+ }
84
+ else {
85
+ out(` dimension: ${api.format(obs.dim)} (validated on the composed AST)`);
86
+ out(` value @ mass = M_sun: ${num.toExponential(4)}`);
87
+ }
88
+ if (!isJson)
89
+ out('');
90
+ }
91
+ if (isJson) {
92
+ emitJson({ command: 'symbolic', result: jsonResult }, ctx.write);
93
+ return 0;
94
+ }
95
+ out(' Both compose by AST substitution at the junction and match the numeric composeEdges');
96
+ out(' pipeline to float precision.'
97
+ + (doSimplify
98
+ ? ' --simplify folds the composed AST via MathTS (k_B cancels), guarded by re-validation.'
99
+ : ' Pass --simplify to fold the composed AST via MathTS.'));
100
+ return 0;
101
+ }
102
+ export const command = {
103
+ name: 'symbolic',
104
+ aliases: ['compose-symbolic'],
105
+ flags: FLAGS,
106
+ help: HELP,
107
+ run,
108
+ };
109
+ registerCommand(command);
110
+ //# sourceMappingURL=symbolic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbolic.js","sourceRoot":"","sources":["../../../src/cli/commands/symbolic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Typed error classes for the UPT CLI.
3
+ *
4
+ * `UsageError` signals a malformed invocation (bad flags, missing values,
5
+ * unknown flags) — callers map it to exit code 2. `CliError` signals a
6
+ * runtime failure within an otherwise well-formed invocation — exit code 1.
7
+ */
8
+ export declare class UsageError extends Error {
9
+ constructor(message: string);
10
+ }
11
+ export declare class CliError extends Error {
12
+ constructor(message: string);
13
+ }
14
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/cli/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B"}