universal-physics-tensor 0.47.1 → 1.0.2

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 (702) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +405 -383
  3. package/bin/upt.mjs +7 -1
  4. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +108 -0
  5. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -0
  6. package/dist/atlas/benchmark/hybrid-retrieval.js +241 -0
  7. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -0
  8. package/dist/atlas/catalog-formal-ref.d.ts +24 -0
  9. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -0
  10. package/dist/atlas/catalog-formal-ref.js +36 -0
  11. package/dist/atlas/catalog-formal-ref.js.map +1 -0
  12. package/dist/atlas/chain-pipeline.d.ts +52 -0
  13. package/dist/atlas/chain-pipeline.d.ts.map +1 -0
  14. package/dist/atlas/chain-pipeline.js +176 -0
  15. package/dist/atlas/chain-pipeline.js.map +1 -0
  16. package/dist/atlas/composition-table.d.ts +11 -46
  17. package/dist/atlas/composition-table.d.ts.map +1 -1
  18. package/dist/atlas/composition-table.js +7 -124
  19. package/dist/atlas/composition-table.js.map +1 -1
  20. package/dist/atlas/conventions.d.ts +4 -58
  21. package/dist/atlas/conventions.d.ts.map +1 -1
  22. package/dist/atlas/conventions.js +3 -88
  23. package/dist/atlas/conventions.js.map +1 -1
  24. package/dist/atlas/derive-evidence.d.ts +50 -3
  25. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  26. package/dist/atlas/derive-evidence.js +73 -4
  27. package/dist/atlas/derive-evidence.js.map +1 -1
  28. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  29. package/dist/atlas/diffusion/bridges-closure.js +5 -1
  30. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  31. package/dist/atlas/index.d.ts +9 -7
  32. package/dist/atlas/index.d.ts.map +1 -1
  33. package/dist/atlas/index.js +6 -5
  34. package/dist/atlas/index.js.map +1 -1
  35. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  36. package/dist/atlas/oscillators/bridges-exact.js +6 -0
  37. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  38. package/dist/atlas/oscillators/bridges-limits.d.ts +2 -0
  39. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  40. package/dist/atlas/oscillators/bridges-limits.js +11 -19
  41. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  42. package/dist/atlas/oscillators/limit-witnesses.d.ts +93 -0
  43. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -0
  44. package/dist/atlas/oscillators/limit-witnesses.js +152 -0
  45. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -0
  46. package/dist/atlas/oscillators/models.d.ts +2 -1
  47. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  48. package/dist/atlas/oscillators/models.js +4 -3
  49. package/dist/atlas/oscillators/models.js.map +1 -1
  50. package/dist/atlas/oscillators/norm-transport-witness.d.ts +37 -0
  51. package/dist/atlas/oscillators/norm-transport-witness.d.ts.map +1 -0
  52. package/dist/atlas/oscillators/norm-transport-witness.js +58 -0
  53. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -0
  54. package/dist/atlas/oscillators/norm-transport.d.ts +44 -0
  55. package/dist/atlas/oscillators/norm-transport.d.ts.map +1 -0
  56. package/dist/atlas/oscillators/norm-transport.js +66 -0
  57. package/dist/atlas/oscillators/norm-transport.js.map +1 -0
  58. package/dist/atlas/oscillators/norms.d.ts +11 -0
  59. package/dist/atlas/oscillators/norms.d.ts.map +1 -0
  60. package/dist/atlas/oscillators/norms.js +11 -0
  61. package/dist/atlas/oscillators/norms.js.map +1 -0
  62. package/dist/atlas/oscillators/pendulum-motion.d.ts +38 -0
  63. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -0
  64. package/dist/atlas/oscillators/pendulum-motion.js +122 -0
  65. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -0
  66. package/dist/atlas/oscillators/phase-carriage.d.ts +38 -0
  67. package/dist/atlas/oscillators/phase-carriage.d.ts.map +1 -0
  68. package/dist/atlas/oscillators/phase-carriage.js +96 -0
  69. package/dist/atlas/oscillators/phase-carriage.js.map +1 -0
  70. package/dist/atlas/oscillators/phase-translation.d.ts +46 -0
  71. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -0
  72. package/dist/atlas/oscillators/phase-translation.js +178 -0
  73. package/dist/atlas/oscillators/phase-translation.js.map +1 -0
  74. package/dist/atlas/oscillators/position-translation.d.ts +59 -0
  75. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -0
  76. package/dist/atlas/oscillators/position-translation.js +254 -0
  77. package/dist/atlas/oscillators/position-translation.js.map +1 -0
  78. package/dist/atlas/path-bound.d.ts +126 -9
  79. package/dist/atlas/path-bound.d.ts.map +1 -1
  80. package/dist/atlas/path-bound.js +372 -23
  81. package/dist/atlas/path-bound.js.map +1 -1
  82. package/dist/atlas/physjs-ref.d.ts +141 -0
  83. package/dist/atlas/physjs-ref.d.ts.map +1 -0
  84. package/dist/atlas/physjs-ref.js +878 -0
  85. package/dist/atlas/physjs-ref.js.map +1 -0
  86. package/dist/atlas/proof-target.d.ts +32 -0
  87. package/dist/atlas/proof-target.d.ts.map +1 -0
  88. package/dist/atlas/proof-target.js +140 -0
  89. package/dist/atlas/proof-target.js.map +1 -0
  90. package/dist/atlas/regime.d.ts +12 -136
  91. package/dist/atlas/regime.d.ts.map +1 -1
  92. package/dist/atlas/regime.js +8 -254
  93. package/dist/atlas/regime.js.map +1 -1
  94. package/dist/atlas/serialize.d.ts.map +1 -1
  95. package/dist/atlas/serialize.js +25 -0
  96. package/dist/atlas/serialize.js.map +1 -1
  97. package/dist/atlas/translation-registry.d.ts +22 -0
  98. package/dist/atlas/translation-registry.d.ts.map +1 -0
  99. package/dist/atlas/translation-registry.js +31 -0
  100. package/dist/atlas/translation-registry.js.map +1 -0
  101. package/dist/atlas/translation.d.ts +116 -0
  102. package/dist/atlas/translation.d.ts.map +1 -0
  103. package/dist/atlas/translation.js +34 -0
  104. package/dist/atlas/translation.js.map +1 -0
  105. package/dist/atlas/types.d.ts +74 -240
  106. package/dist/atlas/types.d.ts.map +1 -1
  107. package/dist/atlas/types.js +5 -37
  108. package/dist/atlas/types.js.map +1 -1
  109. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  110. package/dist/atlas/waves/bridges-closure.js +4 -0
  111. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  112. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  113. package/dist/atlas/waves/bridges.js +3 -0
  114. package/dist/atlas/waves/bridges.js.map +1 -1
  115. package/dist/atlas/waves/models.js +1 -1
  116. package/dist/atlas/waves/models.js.map +1 -1
  117. package/dist/atlas/witness-dominance.d.ts +50 -0
  118. package/dist/atlas/witness-dominance.d.ts.map +1 -0
  119. package/dist/atlas/witness-dominance.js +86 -0
  120. package/dist/atlas/witness-dominance.js.map +1 -0
  121. package/dist/atlas/witness-specs.d.ts +30 -0
  122. package/dist/atlas/witness-specs.d.ts.map +1 -1
  123. package/dist/atlas/witness-specs.js +107 -0
  124. package/dist/atlas/witness-specs.js.map +1 -1
  125. package/dist/bridges/be53-yang-mills-confrontation.d.ts +81 -0
  126. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -0
  127. package/dist/bridges/be53-yang-mills-confrontation.js +110 -0
  128. package/dist/bridges/be53-yang-mills-confrontation.js.map +1 -0
  129. package/dist/bridges/be63-chandrasekhar-mass.d.ts.map +1 -1
  130. package/dist/bridges/be63-chandrasekhar-mass.js +1 -3
  131. package/dist/bridges/be63-chandrasekhar-mass.js.map +1 -1
  132. package/dist/bridges/confrontation-coverage.d.ts +5 -61
  133. package/dist/bridges/confrontation-coverage.d.ts.map +1 -1
  134. package/dist/bridges/confrontation-coverage.js +5 -70
  135. package/dist/bridges/confrontation-coverage.js.map +1 -1
  136. package/dist/bridges/confrontations.d.ts +1 -1
  137. package/dist/bridges/confrontations.d.ts.map +1 -1
  138. package/dist/bridges/confrontations.js +291 -3
  139. package/dist/bridges/confrontations.js.map +1 -1
  140. package/dist/bridges/equations/be-13-einstein-trace.d.ts +2 -3
  141. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  142. package/dist/bridges/equations/be-13-einstein-trace.js +2 -3
  143. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  144. package/dist/bridges/equations/be-38-mond.d.ts +7 -5
  145. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  146. package/dist/bridges/equations/be-38-mond.js +7 -5
  147. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  148. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +3 -0
  149. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -1
  150. package/dist/bridges/equations/be-42-hawking-temperature.js +8 -1
  151. package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -1
  152. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +21 -0
  153. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -1
  154. package/dist/bridges/equations/be-53-yang-mills-beta.js +12 -0
  155. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -1
  156. package/dist/bridges/evaluator-inputs.d.ts +21 -0
  157. package/dist/bridges/evaluator-inputs.d.ts.map +1 -0
  158. package/dist/bridges/evaluator-inputs.js +75 -0
  159. package/dist/bridges/evaluator-inputs.js.map +1 -0
  160. package/dist/bridges/evaluators.d.ts +46 -0
  161. package/dist/bridges/evaluators.d.ts.map +1 -1
  162. package/dist/bridges/evaluators.js +57 -16
  163. package/dist/bridges/evaluators.js.map +1 -1
  164. package/dist/bridges/gravitational-lensing.d.ts +1 -1
  165. package/dist/bridges/gravitational-lensing.js +1 -1
  166. package/dist/bridges/index.d.ts +3 -2
  167. package/dist/bridges/index.d.ts.map +1 -1
  168. package/dist/bridges/index.js +15 -14
  169. package/dist/bridges/index.js.map +1 -1
  170. package/dist/bridges/observations/types.d.ts +110 -2
  171. package/dist/bridges/observations/types.d.ts.map +1 -1
  172. package/dist/bridges/observations/types.js +29 -0
  173. package/dist/bridges/observations/types.js.map +1 -1
  174. package/dist/bridges/perihelion-precession.d.ts +1 -1
  175. package/dist/bridges/perihelion-precession.js +1 -1
  176. package/dist/bridges/tensor-index.d.ts +39 -0
  177. package/dist/bridges/tensor-index.d.ts.map +1 -0
  178. package/dist/bridges/tensor-index.js +66 -0
  179. package/dist/bridges/tensor-index.js.map +1 -0
  180. package/dist/canonical/canonical-equation.d.ts +1 -1
  181. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  182. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  183. package/dist/canonical/entries/atomic.js +32 -10
  184. package/dist/canonical/entries/atomic.js.map +1 -1
  185. package/dist/canonical/entries/dimensional-classics.js +2 -2
  186. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  187. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  188. package/dist/canonical/entries/mechanics.js +10 -6
  189. package/dist/canonical/entries/mechanics.js.map +1 -1
  190. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  191. package/dist/canonical/entries/relativity.js +41 -8
  192. package/dist/canonical/entries/relativity.js.map +1 -1
  193. package/dist/canonical/entries/thermo-nuclear-cosmo.js +5 -5
  194. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  195. package/dist/canonical/linkage.d.ts.map +1 -1
  196. package/dist/canonical/linkage.js +31 -28
  197. package/dist/canonical/linkage.js.map +1 -1
  198. package/dist/canonical/normal-form.d.ts +17 -0
  199. package/dist/canonical/normal-form.d.ts.map +1 -1
  200. package/dist/canonical/normal-form.js +21 -4
  201. package/dist/canonical/normal-form.js.map +1 -1
  202. package/dist/canonical/structural.d.ts +84 -0
  203. package/dist/canonical/structural.d.ts.map +1 -0
  204. package/dist/canonical/structural.js +107 -0
  205. package/dist/canonical/structural.js.map +1 -0
  206. package/dist/cases/brownian-sphere.d.ts +68 -0
  207. package/dist/cases/brownian-sphere.d.ts.map +1 -0
  208. package/dist/cases/brownian-sphere.js +353 -0
  209. package/dist/cases/brownian-sphere.js.map +1 -0
  210. package/dist/cases/damped-resonator.d.ts +23 -0
  211. package/dist/cases/damped-resonator.d.ts.map +1 -0
  212. package/dist/cases/damped-resonator.js +224 -0
  213. package/dist/cases/damped-resonator.js.map +1 -0
  214. package/dist/cases/index.d.ts +11 -0
  215. package/dist/cases/index.d.ts.map +1 -0
  216. package/dist/cases/index.js +29 -0
  217. package/dist/cases/index.js.map +1 -0
  218. package/dist/cases/kepler-rv.d.ts +13 -0
  219. package/dist/cases/kepler-rv.d.ts.map +1 -0
  220. package/dist/cases/kepler-rv.js +168 -0
  221. package/dist/cases/kepler-rv.js.map +1 -0
  222. package/dist/cases/lumped-cooling.d.ts +46 -0
  223. package/dist/cases/lumped-cooling.d.ts.map +1 -0
  224. package/dist/cases/lumped-cooling.js +261 -0
  225. package/dist/cases/lumped-cooling.js.map +1 -0
  226. package/dist/cases/quadrature.d.ts +14 -0
  227. package/dist/cases/quadrature.d.ts.map +1 -0
  228. package/dist/cases/quadrature.js +41 -0
  229. package/dist/cases/quadrature.js.map +1 -0
  230. package/dist/cases/resistor-noise.d.ts +14 -0
  231. package/dist/cases/resistor-noise.d.ts.map +1 -0
  232. package/dist/cases/resistor-noise.js +210 -0
  233. package/dist/cases/resistor-noise.js.map +1 -0
  234. package/dist/cases/skin-depth.d.ts +21 -0
  235. package/dist/cases/skin-depth.d.ts.map +1 -0
  236. package/dist/cases/skin-depth.js +174 -0
  237. package/dist/cases/skin-depth.js.map +1 -0
  238. package/dist/cases/types.d.ts +115 -0
  239. package/dist/cases/types.d.ts.map +1 -0
  240. package/dist/cases/types.js +20 -0
  241. package/dist/cases/types.js.map +1 -0
  242. package/dist/cli/commands/_atlas-map.d.ts +409 -0
  243. package/dist/cli/commands/_atlas-map.d.ts.map +1 -0
  244. package/dist/cli/commands/_atlas-map.js +1014 -0
  245. package/dist/cli/commands/_atlas-map.js.map +1 -0
  246. package/dist/cli/commands/_atlas-route.d.ts +111 -0
  247. package/dist/cli/commands/_atlas-route.d.ts.map +1 -0
  248. package/dist/cli/commands/_atlas-route.js +140 -0
  249. package/dist/cli/commands/_atlas-route.js.map +1 -0
  250. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  251. package/dist/cli/commands/_discovery-opts.js +10 -1
  252. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  253. package/dist/cli/commands/atlas.d.ts +20 -0
  254. package/dist/cli/commands/atlas.d.ts.map +1 -1
  255. package/dist/cli/commands/atlas.js +333 -19
  256. package/dist/cli/commands/atlas.js.map +1 -1
  257. package/dist/cli/commands/audit.d.ts.map +1 -1
  258. package/dist/cli/commands/audit.js +12 -3
  259. package/dist/cli/commands/audit.js.map +1 -1
  260. package/dist/cli/commands/axes.js +4 -4
  261. package/dist/cli/commands/candidates.d.ts.map +1 -1
  262. package/dist/cli/commands/candidates.js +3 -2
  263. package/dist/cli/commands/candidates.js.map +1 -1
  264. package/dist/cli/commands/canonical.d.ts.map +1 -1
  265. package/dist/cli/commands/canonical.js +39 -10
  266. package/dist/cli/commands/canonical.js.map +1 -1
  267. package/dist/cli/commands/confront.d.ts.map +1 -1
  268. package/dist/cli/commands/confront.js +210 -28
  269. package/dist/cli/commands/confront.js.map +1 -1
  270. package/dist/cli/commands/connectors.d.ts.map +1 -1
  271. package/dist/cli/commands/connectors.js +5 -4
  272. package/dist/cli/commands/connectors.js.map +1 -1
  273. package/dist/cli/commands/coverage.js +3 -3
  274. package/dist/cli/commands/derive.d.ts.map +1 -1
  275. package/dist/cli/commands/derive.js +22 -9
  276. package/dist/cli/commands/derive.js.map +1 -1
  277. package/dist/cli/commands/discover.d.ts.map +1 -1
  278. package/dist/cli/commands/discover.js +149 -32
  279. package/dist/cli/commands/discover.js.map +1 -1
  280. package/dist/cli/commands/eval.d.ts.map +1 -1
  281. package/dist/cli/commands/eval.js +87 -17
  282. package/dist/cli/commands/eval.js.map +1 -1
  283. package/dist/cli/commands/evaluate.d.ts +30 -0
  284. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  285. package/dist/cli/commands/evaluate.js +441 -25
  286. package/dist/cli/commands/evaluate.js.map +1 -1
  287. package/dist/cli/commands/explain.d.ts.map +1 -1
  288. package/dist/cli/commands/explain.js +38 -11
  289. package/dist/cli/commands/explain.js.map +1 -1
  290. package/dist/cli/commands/frontier.d.ts +3 -0
  291. package/dist/cli/commands/frontier.d.ts.map +1 -0
  292. package/dist/cli/commands/frontier.js +28 -0
  293. package/dist/cli/commands/frontier.js.map +1 -0
  294. package/dist/cli/commands/ground.d.ts.map +1 -1
  295. package/dist/cli/commands/ground.js +37 -12
  296. package/dist/cli/commands/ground.js.map +1 -1
  297. package/dist/cli/commands/index.d.ts +5 -0
  298. package/dist/cli/commands/index.d.ts.map +1 -1
  299. package/dist/cli/commands/index.js +5 -0
  300. package/dist/cli/commands/index.js.map +1 -1
  301. package/dist/cli/commands/map.d.ts +8 -0
  302. package/dist/cli/commands/map.d.ts.map +1 -1
  303. package/dist/cli/commands/map.js +385 -57
  304. package/dist/cli/commands/map.js.map +1 -1
  305. package/dist/cli/commands/metric.d.ts +3 -0
  306. package/dist/cli/commands/metric.d.ts.map +1 -0
  307. package/dist/cli/commands/metric.js +136 -0
  308. package/dist/cli/commands/metric.js.map +1 -0
  309. package/dist/cli/commands/path.d.ts +109 -1
  310. package/dist/cli/commands/path.d.ts.map +1 -1
  311. package/dist/cli/commands/path.js +1019 -109
  312. package/dist/cli/commands/path.js.map +1 -1
  313. package/dist/cli/commands/predict.d.ts.map +1 -1
  314. package/dist/cli/commands/predict.js +3 -2
  315. package/dist/cli/commands/predict.js.map +1 -1
  316. package/dist/cli/commands/priority.d.ts.map +1 -1
  317. package/dist/cli/commands/priority.js +3 -2
  318. package/dist/cli/commands/priority.js.map +1 -1
  319. package/dist/cli/commands/probe.d.ts +7 -0
  320. package/dist/cli/commands/probe.d.ts.map +1 -1
  321. package/dist/cli/commands/probe.js +234 -52
  322. package/dist/cli/commands/probe.js.map +1 -1
  323. package/dist/cli/commands/recover.d.ts.map +1 -1
  324. package/dist/cli/commands/recover.js +17 -6
  325. package/dist/cli/commands/recover.js.map +1 -1
  326. package/dist/cli/commands/regime.d.ts +1 -1
  327. package/dist/cli/commands/regime.d.ts.map +1 -1
  328. package/dist/cli/commands/regime.js +134 -33
  329. package/dist/cli/commands/regime.js.map +1 -1
  330. package/dist/cli/commands/retrieve.d.ts +3 -0
  331. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  332. package/dist/cli/commands/retrieve.js +65 -0
  333. package/dist/cli/commands/retrieve.js.map +1 -0
  334. package/dist/cli/commands/search.d.ts +3 -0
  335. package/dist/cli/commands/search.d.ts.map +1 -0
  336. package/dist/cli/commands/search.js +70 -0
  337. package/dist/cli/commands/search.js.map +1 -0
  338. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  339. package/dist/cli/commands/symbolic.js +107 -16
  340. package/dist/cli/commands/symbolic.js.map +1 -1
  341. package/dist/cli/commands/testplan.d.ts +3 -0
  342. package/dist/cli/commands/testplan.d.ts.map +1 -0
  343. package/dist/cli/commands/testplan.js +131 -0
  344. package/dist/cli/commands/testplan.js.map +1 -0
  345. package/dist/cli/conventions.d.ts +22 -0
  346. package/dist/cli/conventions.d.ts.map +1 -0
  347. package/dist/cli/conventions.js +48 -0
  348. package/dist/cli/conventions.js.map +1 -0
  349. package/dist/cli/euler-guard.d.ts +9 -0
  350. package/dist/cli/euler-guard.d.ts.map +1 -0
  351. package/dist/cli/euler-guard.js +11 -0
  352. package/dist/cli/euler-guard.js.map +1 -0
  353. package/dist/cli/eval-numbers.d.ts +26 -0
  354. package/dist/cli/eval-numbers.d.ts.map +1 -0
  355. package/dist/cli/eval-numbers.js +48 -0
  356. package/dist/cli/eval-numbers.js.map +1 -0
  357. package/dist/cli/expr-print.d.ts +25 -0
  358. package/dist/cli/expr-print.d.ts.map +1 -0
  359. package/dist/cli/expr-print.js +123 -0
  360. package/dist/cli/expr-print.js.map +1 -0
  361. package/dist/cli/graphs.d.ts +26 -0
  362. package/dist/cli/graphs.d.ts.map +1 -1
  363. package/dist/cli/graphs.js +19 -0
  364. package/dist/cli/graphs.js.map +1 -1
  365. package/dist/cli/main.d.ts +4 -10
  366. package/dist/cli/main.d.ts.map +1 -1
  367. package/dist/cli/main.js +370 -167
  368. package/dist/cli/main.js.map +1 -1
  369. package/dist/cli/map-evidence.d.ts +47 -0
  370. package/dist/cli/map-evidence.d.ts.map +1 -0
  371. package/dist/cli/map-evidence.js +53 -0
  372. package/dist/cli/map-evidence.js.map +1 -0
  373. package/dist/cli/output.d.ts +21 -1
  374. package/dist/cli/output.d.ts.map +1 -1
  375. package/dist/cli/output.js +5 -1
  376. package/dist/cli/output.js.map +1 -1
  377. package/dist/{composition → cli}/poster-source.d.ts +3 -2
  378. package/dist/cli/poster-source.d.ts.map +1 -0
  379. package/dist/{composition → cli}/poster-source.js +2 -1
  380. package/dist/cli/poster-source.js.map +1 -0
  381. package/dist/cli/record-reach.d.ts +44 -0
  382. package/dist/cli/record-reach.d.ts.map +1 -0
  383. package/dist/cli/record-reach.js +228 -0
  384. package/dist/cli/record-reach.js.map +1 -0
  385. package/dist/cli/record-tables.d.ts +38 -0
  386. package/dist/cli/record-tables.d.ts.map +1 -0
  387. package/dist/cli/record-tables.js +110 -0
  388. package/dist/cli/record-tables.js.map +1 -0
  389. package/dist/cli/record.d.ts +141 -0
  390. package/dist/cli/record.d.ts.map +1 -0
  391. package/dist/cli/record.js +612 -0
  392. package/dist/cli/record.js.map +1 -0
  393. package/dist/cli/search-index.d.ts +56 -0
  394. package/dist/cli/search-index.d.ts.map +1 -0
  395. package/dist/cli/search-index.js +190 -0
  396. package/dist/cli/search-index.js.map +1 -0
  397. package/dist/cli/statuses.d.ts +25 -0
  398. package/dist/cli/statuses.d.ts.map +1 -0
  399. package/dist/cli/statuses.js +276 -0
  400. package/dist/cli/statuses.js.map +1 -0
  401. package/dist/cli/version.d.ts +8 -0
  402. package/dist/cli/version.d.ts.map +1 -1
  403. package/dist/cli/version.js +32 -1
  404. package/dist/cli/version.js.map +1 -1
  405. package/dist/cli-api.d.ts +34 -16
  406. package/dist/cli-api.d.ts.map +1 -1
  407. package/dist/cli-api.js +32 -12
  408. package/dist/cli-api.js.map +1 -1
  409. package/dist/composition/audit-coverage.d.ts +70 -0
  410. package/dist/composition/audit-coverage.d.ts.map +1 -0
  411. package/dist/composition/audit-coverage.js +80 -0
  412. package/dist/composition/audit-coverage.js.map +1 -0
  413. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  414. package/dist/composition/bridge-analysis.js +2 -1
  415. package/dist/composition/bridge-analysis.js.map +1 -1
  416. package/dist/composition/buckingham-filter.d.ts +34 -0
  417. package/dist/composition/buckingham-filter.d.ts.map +1 -0
  418. package/dist/composition/buckingham-filter.js +64 -0
  419. package/dist/composition/buckingham-filter.js.map +1 -0
  420. package/dist/composition/canonical-compare.d.ts +29 -16
  421. package/dist/composition/canonical-compare.d.ts.map +1 -1
  422. package/dist/composition/canonical-compare.js +355 -59
  423. package/dist/composition/canonical-compare.js.map +1 -1
  424. package/dist/composition/canonical-graph.d.ts +2 -2
  425. package/dist/composition/canonical-graph.js +3 -3
  426. package/dist/composition/canonical-graph.js.map +1 -1
  427. package/dist/composition/canonical-prefactors.d.ts +24 -1
  428. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  429. package/dist/composition/canonical-prefactors.js +97 -1
  430. package/dist/composition/canonical-prefactors.js.map +1 -1
  431. package/dist/composition/catalog-graph.d.ts +4 -4
  432. package/dist/composition/catalog-graph.d.ts.map +1 -1
  433. package/dist/composition/catalog-graph.js +6 -4
  434. package/dist/composition/catalog-graph.js.map +1 -1
  435. package/dist/composition/chain-candidate.d.ts +43 -0
  436. package/dist/composition/chain-candidate.d.ts.map +1 -0
  437. package/dist/composition/chain-candidate.js +56 -0
  438. package/dist/composition/chain-candidate.js.map +1 -0
  439. package/dist/composition/chain-match.d.ts +19 -0
  440. package/dist/composition/chain-match.d.ts.map +1 -0
  441. package/dist/composition/chain-match.js +10 -0
  442. package/dist/composition/chain-match.js.map +1 -0
  443. package/dist/composition/chain-regime.d.ts +34 -0
  444. package/dist/composition/chain-regime.d.ts.map +1 -0
  445. package/dist/composition/chain-regime.js +89 -0
  446. package/dist/composition/chain-regime.js.map +1 -0
  447. package/dist/composition/compose-symbolic.js +1 -1
  448. package/dist/composition/compose-symbolic.js.map +1 -1
  449. package/dist/composition/compose.d.ts +11 -0
  450. package/dist/composition/compose.d.ts.map +1 -1
  451. package/dist/composition/compose.js +30 -10
  452. package/dist/composition/compose.js.map +1 -1
  453. package/dist/composition/composition-recovery.d.ts +47 -0
  454. package/dist/composition/composition-recovery.d.ts.map +1 -0
  455. package/dist/composition/composition-recovery.js +77 -0
  456. package/dist/composition/composition-recovery.js.map +1 -0
  457. package/dist/composition/consequence.d.ts +39 -0
  458. package/dist/composition/consequence.d.ts.map +1 -1
  459. package/dist/composition/consequence.js +37 -0
  460. package/dist/composition/consequence.js.map +1 -1
  461. package/dist/{bridges → composition}/descriptor.d.ts +6 -3
  462. package/dist/composition/descriptor.d.ts.map +1 -0
  463. package/dist/{bridges → composition}/descriptor.js +7 -4
  464. package/dist/composition/descriptor.js.map +1 -0
  465. package/dist/composition/discovery.d.ts +20 -0
  466. package/dist/composition/discovery.d.ts.map +1 -1
  467. package/dist/composition/discovery.js +27 -5
  468. package/dist/composition/discovery.js.map +1 -1
  469. package/dist/composition/edge.d.ts +1 -1
  470. package/dist/composition/edge.d.ts.map +1 -1
  471. package/dist/composition/edge.js.map +1 -1
  472. package/dist/composition/edges/_catalog-helpers.d.ts +4 -0
  473. package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -1
  474. package/dist/composition/edges/_catalog-helpers.js +15 -0
  475. package/dist/composition/edges/_catalog-helpers.js.map +1 -1
  476. package/dist/composition/edges/calibration.d.ts +0 -9
  477. package/dist/composition/edges/calibration.d.ts.map +1 -1
  478. package/dist/composition/edges/calibration.js +85 -0
  479. package/dist/composition/edges/calibration.js.map +1 -1
  480. package/dist/composition/edges/catalog-condensed-matter.d.ts +0 -9
  481. package/dist/composition/edges/catalog-condensed-matter.d.ts.map +1 -1
  482. package/dist/composition/edges/catalog-condensed-matter.js +32 -1
  483. package/dist/composition/edges/catalog-condensed-matter.js.map +1 -1
  484. package/dist/composition/edges/catalog-fields.d.ts.map +1 -1
  485. package/dist/composition/edges/catalog-fields.js +2 -1
  486. package/dist/composition/edges/catalog-fields.js.map +1 -1
  487. package/dist/composition/edges/catalog-full.d.ts +4 -2
  488. package/dist/composition/edges/catalog-full.d.ts.map +1 -1
  489. package/dist/composition/edges/catalog-full.js +4 -2
  490. package/dist/composition/edges/catalog-full.js.map +1 -1
  491. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts +0 -10
  492. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
  493. package/dist/composition/edges/catalog-gravitation-cosmology.js +31 -1
  494. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
  495. package/dist/composition/edges/catalog-quantum.d.ts +0 -10
  496. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  497. package/dist/composition/edges/catalog-quantum.js +53 -17
  498. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  499. package/dist/composition/edges/catalog-tranche.d.ts +0 -15
  500. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  501. package/dist/composition/edges/catalog-tranche.js +70 -16
  502. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  503. package/dist/composition/edges/proved-seeds.d.ts +39 -0
  504. package/dist/composition/edges/proved-seeds.d.ts.map +1 -0
  505. package/dist/composition/edges/proved-seeds.js +197 -0
  506. package/dist/composition/edges/proved-seeds.js.map +1 -0
  507. package/dist/composition/enumerate.d.ts +20 -0
  508. package/dist/composition/enumerate.d.ts.map +1 -1
  509. package/dist/composition/enumerate.js +23 -0
  510. package/dist/composition/enumerate.js.map +1 -1
  511. package/dist/composition/expr-eval.d.ts +5 -4
  512. package/dist/composition/expr-eval.d.ts.map +1 -1
  513. package/dist/composition/expr-eval.js +40 -6
  514. package/dist/composition/expr-eval.js.map +1 -1
  515. package/dist/composition/expr-simplify.js +1 -1
  516. package/dist/composition/expr-simplify.js.map +1 -1
  517. package/dist/composition/expr-subst.d.ts +2 -1
  518. package/dist/composition/expr-subst.d.ts.map +1 -1
  519. package/dist/composition/expr-subst.js +9 -2
  520. package/dist/composition/expr-subst.js.map +1 -1
  521. package/dist/composition/frontier-account.d.ts +78 -0
  522. package/dist/composition/frontier-account.d.ts.map +1 -0
  523. package/dist/composition/frontier-account.js +127 -0
  524. package/dist/composition/frontier-account.js.map +1 -0
  525. package/dist/composition/graph-viz.d.ts +7 -22
  526. package/dist/composition/graph-viz.d.ts.map +1 -1
  527. package/dist/composition/graph-viz.js +4 -27
  528. package/dist/composition/graph-viz.js.map +1 -1
  529. package/dist/composition/grounding.d.ts +49 -0
  530. package/dist/composition/grounding.d.ts.map +1 -1
  531. package/dist/composition/grounding.js +38 -0
  532. package/dist/composition/grounding.js.map +1 -1
  533. package/dist/composition/index.d.ts +0 -2
  534. package/dist/composition/index.d.ts.map +1 -1
  535. package/dist/composition/index.js +1 -1
  536. package/dist/composition/index.js.map +1 -1
  537. package/dist/composition/not-composable-seeds.d.ts +30 -0
  538. package/dist/composition/not-composable-seeds.d.ts.map +1 -0
  539. package/dist/composition/not-composable-seeds.js +90 -0
  540. package/dist/composition/not-composable-seeds.js.map +1 -0
  541. package/dist/composition/probe/expression-gaps.d.ts +27 -0
  542. package/dist/composition/probe/expression-gaps.d.ts.map +1 -0
  543. package/dist/composition/probe/expression-gaps.js +47 -0
  544. package/dist/composition/probe/expression-gaps.js.map +1 -0
  545. package/dist/composition/probe/frontier.d.ts +2 -1
  546. package/dist/composition/probe/frontier.d.ts.map +1 -1
  547. package/dist/composition/probe/frontier.js +3 -2
  548. package/dist/composition/probe/frontier.js.map +1 -1
  549. package/dist/composition/probe/index.d.ts +4 -1
  550. package/dist/composition/probe/index.d.ts.map +1 -1
  551. package/dist/composition/probe/index.js +3 -1
  552. package/dist/composition/probe/index.js.map +1 -1
  553. package/dist/composition/probe/pipeline.d.ts +2 -0
  554. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  555. package/dist/composition/probe/pipeline.js +6 -2
  556. package/dist/composition/probe/pipeline.js.map +1 -1
  557. package/dist/composition/probe/problem.d.ts +7 -0
  558. package/dist/composition/probe/problem.d.ts.map +1 -1
  559. package/dist/composition/probe/problem.js +15 -5
  560. package/dist/composition/probe/problem.js.map +1 -1
  561. package/dist/composition/probe/search-budget.d.ts.map +1 -1
  562. package/dist/composition/probe/search-budget.js +6 -2
  563. package/dist/composition/probe/search-budget.js.map +1 -1
  564. package/dist/composition/probe/study.d.ts +340 -0
  565. package/dist/composition/probe/study.d.ts.map +1 -0
  566. package/dist/composition/probe/study.js +1519 -0
  567. package/dist/composition/probe/study.js.map +1 -0
  568. package/dist/composition/proposed-bridges.js +1 -1
  569. package/dist/composition/proposed-bridges.js.map +1 -1
  570. package/dist/composition/quantities/_dims.d.ts +6 -0
  571. package/dist/composition/quantities/_dims.d.ts.map +1 -1
  572. package/dist/composition/quantities/_dims.js +6 -0
  573. package/dist/composition/quantities/_dims.js.map +1 -1
  574. package/dist/composition/quantities/condensed-matter.d.ts +16 -0
  575. package/dist/composition/quantities/condensed-matter.d.ts.map +1 -1
  576. package/dist/composition/quantities/condensed-matter.js +43 -2
  577. package/dist/composition/quantities/condensed-matter.js.map +1 -1
  578. package/dist/composition/quantities/fields.d.ts +10 -0
  579. package/dist/composition/quantities/fields.d.ts.map +1 -1
  580. package/dist/composition/quantities/fields.js +37 -2
  581. package/dist/composition/quantities/fields.js.map +1 -1
  582. package/dist/composition/quantities/gravitation-cosmology.d.ts +4 -0
  583. package/dist/composition/quantities/gravitation-cosmology.d.ts.map +1 -1
  584. package/dist/composition/quantities/gravitation-cosmology.js +14 -0
  585. package/dist/composition/quantities/gravitation-cosmology.js.map +1 -1
  586. package/dist/composition/quantities/quantum.d.ts +2 -0
  587. package/dist/composition/quantities/quantum.d.ts.map +1 -1
  588. package/dist/composition/quantities/quantum.js +7 -0
  589. package/dist/composition/quantities/quantum.js.map +1 -1
  590. package/dist/composition/quantities.d.ts +4 -16
  591. package/dist/composition/quantities.d.ts.map +1 -1
  592. package/dist/composition/quantities.js +4 -16
  593. package/dist/composition/quantities.js.map +1 -1
  594. package/dist/composition/retrodiction.d.ts.map +1 -1
  595. package/dist/composition/retrodiction.js +6 -2
  596. package/dist/composition/retrodiction.js.map +1 -1
  597. package/dist/composition/uncertainty.d.ts +1 -1
  598. package/dist/composition/uncertainty.d.ts.map +1 -1
  599. package/dist/composition/user-equation.d.ts +79 -8
  600. package/dist/composition/user-equation.d.ts.map +1 -1
  601. package/dist/composition/user-equation.js +224 -32
  602. package/dist/composition/user-equation.js.map +1 -1
  603. package/dist/core/constants.d.ts +17 -5
  604. package/dist/core/constants.d.ts.map +1 -1
  605. package/dist/core/constants.js +17 -5
  606. package/dist/core/constants.js.map +1 -1
  607. package/dist/core/types.d.ts +1 -1
  608. package/dist/core/types.d.ts.map +1 -1
  609. package/dist/core/types.js +2 -1
  610. package/dist/core/types.js.map +1 -1
  611. package/dist/dimensional/curvature.d.ts +7 -56
  612. package/dist/dimensional/curvature.d.ts.map +1 -1
  613. package/dist/dimensional/curvature.js +7 -76
  614. package/dist/dimensional/curvature.js.map +1 -1
  615. package/dist/dimensional/dimension-spec.d.ts +7 -1
  616. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  617. package/dist/dimensional/dimension-spec.js +131 -3
  618. package/dist/dimensional/dimension-spec.js.map +1 -1
  619. package/dist/dimensional/formula-names.d.ts +30 -0
  620. package/dist/dimensional/formula-names.d.ts.map +1 -0
  621. package/dist/dimensional/formula-names.js +37 -0
  622. package/dist/dimensional/formula-names.js.map +1 -0
  623. package/dist/dimensional/natural-units.d.ts +33 -0
  624. package/dist/dimensional/natural-units.d.ts.map +1 -0
  625. package/dist/dimensional/natural-units.js +58 -0
  626. package/dist/dimensional/natural-units.js.map +1 -0
  627. package/dist/{composition → dimensional}/symbolic-constants.d.ts +21 -2
  628. package/dist/dimensional/symbolic-constants.d.ts.map +1 -0
  629. package/dist/dimensional/symbolic-constants.js +122 -0
  630. package/dist/dimensional/symbolic-constants.js.map +1 -0
  631. package/dist/dimensional/unit-convention.d.ts +30 -0
  632. package/dist/dimensional/unit-convention.d.ts.map +1 -0
  633. package/dist/dimensional/unit-convention.js +60 -0
  634. package/dist/dimensional/unit-convention.js.map +1 -0
  635. package/dist/dimensional/units.d.ts +43 -0
  636. package/dist/dimensional/units.d.ts.map +1 -0
  637. package/dist/dimensional/units.js +197 -0
  638. package/dist/dimensional/units.js.map +1 -0
  639. package/dist/index.d.ts +11 -5
  640. package/dist/index.d.ts.map +1 -1
  641. package/dist/index.js +10 -3
  642. package/dist/index.js.map +1 -1
  643. package/dist/numerical/bianchi-residual.d.ts +55 -0
  644. package/dist/numerical/bianchi-residual.d.ts.map +1 -0
  645. package/dist/numerical/bianchi-residual.js +79 -0
  646. package/dist/numerical/bianchi-residual.js.map +1 -0
  647. package/dist/numerical/binding-value.d.ts +67 -0
  648. package/dist/numerical/binding-value.d.ts.map +1 -0
  649. package/dist/numerical/binding-value.js +349 -0
  650. package/dist/numerical/binding-value.js.map +1 -0
  651. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  652. package/dist/numerical/connection-lowering-helpers.js +13 -26
  653. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  654. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  655. package/dist/numerical/curvature-lowering-helpers.js +9 -0
  656. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  657. package/dist/numerical/float64-engine.d.ts.map +1 -1
  658. package/dist/numerical/float64-engine.js +23 -16
  659. package/dist/numerical/float64-engine.js.map +1 -1
  660. package/dist/numerical/formula-dimension.d.ts +14 -0
  661. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  662. package/dist/numerical/formula-dimension.js +56 -9
  663. package/dist/numerical/formula-dimension.js.map +1 -1
  664. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  665. package/dist/numerical/formula-mathts.js +75 -6
  666. package/dist/numerical/formula-mathts.js.map +1 -1
  667. package/dist/numerical/formula.d.ts +33 -0
  668. package/dist/numerical/formula.d.ts.map +1 -1
  669. package/dist/numerical/formula.js +75 -6
  670. package/dist/numerical/formula.js.map +1 -1
  671. package/dist/numerical/spacetime-metrics.d.ts +243 -0
  672. package/dist/numerical/spacetime-metrics.d.ts.map +1 -0
  673. package/dist/numerical/spacetime-metrics.js +1056 -0
  674. package/dist/numerical/spacetime-metrics.js.map +1 -0
  675. package/dist/relations/category.d.ts +38 -0
  676. package/dist/relations/category.d.ts.map +1 -0
  677. package/dist/relations/category.js +23 -0
  678. package/dist/relations/category.js.map +1 -0
  679. package/dist/relations/composition-table.d.ts +61 -0
  680. package/dist/relations/composition-table.d.ts.map +1 -0
  681. package/dist/relations/composition-table.js +140 -0
  682. package/dist/relations/composition-table.js.map +1 -0
  683. package/dist/relations/conventions.d.ts +63 -0
  684. package/dist/relations/conventions.d.ts.map +1 -0
  685. package/dist/relations/conventions.js +93 -0
  686. package/dist/relations/conventions.js.map +1 -0
  687. package/dist/relations/regime.d.ts +159 -0
  688. package/dist/relations/regime.d.ts.map +1 -0
  689. package/dist/relations/regime.js +304 -0
  690. package/dist/relations/regime.js.map +1 -0
  691. package/dist/relations/types.d.ts +257 -0
  692. package/dist/relations/types.d.ts.map +1 -0
  693. package/dist/relations/types.js +35 -0
  694. package/dist/relations/types.js.map +1 -0
  695. package/package.json +166 -163
  696. package/dist/bridges/descriptor.d.ts.map +0 -1
  697. package/dist/bridges/descriptor.js.map +0 -1
  698. package/dist/composition/poster-source.d.ts.map +0 -1
  699. package/dist/composition/poster-source.js.map +0 -1
  700. package/dist/composition/symbolic-constants.d.ts.map +0 -1
  701. package/dist/composition/symbolic-constants.js +0 -65
  702. package/dist/composition/symbolic-constants.js.map +0 -1
@@ -1,29 +1,58 @@
1
1
  import { registerCommand } from '../command.js';
2
2
  import { emitJson } from '../output.js';
3
- const FLAGS = [{ name: '--json', valueStyle: 'none' }];
4
- const HELP = `upt canonical
3
+ const FLAGS = [
4
+ { name: '--json', valueStyle: 'none' },
5
+ { name: '--vars', valueStyle: 'none' },
6
+ ];
7
+ const HELP = `upt canonical [--vars]
5
8
  List the canonical-equation registry — the standard-physics L-layer
6
9
  (textbook "answer key") with each entry's fidelity (L0/L1/L2),
7
- domain, and bridge partners, plus the coverage gap.`;
10
+ domain, and bridge partners, plus the coverage gap.
11
+ --vars also print each entry's target and governing variable names
12
+ (the vocabulary for \`upt map --equation\` / \`upt derive\`).`;
8
13
  async function run(ctx) {
9
14
  const { args, api, out } = ctx;
10
15
  const entries = api.CANONICAL_EQUATIONS;
11
16
  const gap = api.bridgesWithoutCanonicalPartner();
17
+ const withVars = args.flags.has('vars');
12
18
  if (args.flags.has('json')) {
13
- emitJson({ command: 'canonical', result: { entries, gap } }, ctx.write);
19
+ const payload = withVars
20
+ ? {
21
+ entries: entries.map((e) => ({
22
+ ...e,
23
+ target: e.dimensional.target.name,
24
+ variables: e.dimensional.governing.map((g) => g.name),
25
+ })),
26
+ gap,
27
+ }
28
+ : { entries, gap };
29
+ emitJson({ command: 'canonical', result: payload }, ctx.write);
14
30
  return 0;
15
31
  }
16
32
  const fidelity = (e) => (e.fieldEquation ? 'L2' : e.scalarAst ? 'L1' : 'L0');
17
33
  out('\nCanonical-equation registry — the standard-physics L-layer (Π = L + B + E)');
18
34
  out('the textbook "answer key" bridge equations are validated against.\n');
19
35
  out(` ${entries.length} entries:\n`);
20
- out(' fid domain id partners');
21
- out(' ─────────────────────────────────────────────────────────────────');
22
- for (const e of entries) {
23
- const partners = [...e.partnerBridges, ...(e.restatesBridge ? [`=${e.restatesBridge}`] : [])].join(',') || '—';
24
- out(` ${fidelity(e).padEnd(3)} ${e.domain.padEnd(19)} ${e.id.padEnd(24)} ${partners}`);
36
+ if (withVars) {
37
+ out(' fid id target variables');
38
+ out(' ──────────────────────────────────────────────────────────────────────────');
39
+ for (const e of entries) {
40
+ const target = e.dimensional.target.name;
41
+ const vars = e.dimensional.governing.map((g) => g.name).join(', ') || '—';
42
+ out(` ${fidelity(e).padEnd(3)} ${e.id.padEnd(24)} ${target.padEnd(22)} ${vars}`);
43
+ }
44
+ out('\n Use these names in `upt map --equation` / `upt derive` (underscores OK for kebabs).');
25
45
  }
26
- out(`\n coverage: ${gap.length} catalog bridges have no canonical partner yet`);
46
+ else {
47
+ out(' fid domain id partners');
48
+ out(' ─────────────────────────────────────────────────────────────────');
49
+ for (const e of entries) {
50
+ const partners = [...e.partnerBridges, ...(e.restatesBridge ? [`=${e.restatesBridge}`] : [])].join(',') || '—';
51
+ out(` ${fidelity(e).padEnd(3)} ${e.domain.padEnd(19)} ${e.id.padEnd(24)} ${partners}`);
52
+ }
53
+ out('\n tip: `upt canonical --vars` lists the variable names formulas must use');
54
+ }
55
+ out(` coverage: ${gap.length} catalog bridges have no canonical partner yet`);
27
56
  out(' (fidelity: L0 dimensional · L1 scalar-AST · L2 field-equation; "=NN" = restatesBridge)');
28
57
  return 0;
29
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/cli/commands/canonical.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;;;4DAG+C,CAAC;AAE7D,KAAK,UAAU,GAAG,CAAC,GAAe;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC;IACxC,MAAM,GAAG,GAAG,GAAG,CAAC,8BAA8B,EAAE,CAAC;IAEjD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,CAA2B,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvG,GAAG,CAAC,8EAA8E,CAAC,CAAC;IACpF,GAAG,CAAC,qEAAqE,CAAC,CAAC;IAC3E,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,aAAa,CAAC,CAAC;IACtC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IACtE,GAAG,CAAC,sEAAsE,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC/G,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,GAAG,CAAC,iBAAiB,GAAG,CAAC,MAAM,gDAAgD,CAAC,CAAC;IACjF,GAAG,CAAC,0FAA0F,CAAC,CAAC;IAChG,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,CAAC,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,GAAG;CACJ,CAAC;AAEF,eAAe,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"canonical.js","sourceRoot":"","sources":["../../../src/cli/commands/canonical.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"confront.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAmL/E,eAAO,MAAM,OAAO,EAAE,OAA0E,CAAC"}
1
+ {"version":3,"file":"confront.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAwY/E,eAAO,MAAM,OAAO,EAAE,OAA0E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { registerCommand } from '../command.js';
2
- import { CliError } from '../errors.js';
2
+ import { CliError, UsageError } from '../errors.js';
3
3
  import { emitJson } from '../output.js';
4
4
  const FLAGS = [
5
5
  { name: '--bridge', valueStyle: 'attached' },
@@ -8,15 +8,37 @@ const FLAGS = [
8
8
  { name: '--frontier', valueStyle: 'none' },
9
9
  { name: '--json', valueStyle: 'none' },
10
10
  ];
11
- const HELP = `upt confront [--bridge=be-XX] [--rigor=stringent|moderate|loose] [--frontier] [--sensitivity] [--json]
12
- Run the catalog's committed real-data confrontations (predicted vs
13
- observed), each tagged with its RIGOR tier. --bridge runs one;
14
- --rigor=<tier> shows only that tier (the precision core, or the loose
15
- tail that needs better data); --frontier ranks the σ-tests by margin to
16
- exclusion (the tightest tests are the most at-risk under new data);
17
- --sensitivity adds an input-elasticity ranking (value-kind only).`;
11
+ const HELP = `upt confront [be-XX] [--bridge=be-XX] [--rigor=stringent|moderate|loose] [--frontier] [--sensitivity] [--json]
12
+ Run the catalog's committed real-data confrontations (predicted vs
13
+ observed), each tagged with its RIGOR tier. A positional be-XX is the
14
+ same selection as --bridge (the form \`upt explain be-XX\` prints);
15
+ the two must name the same bridge when both are given. A positional
16
+ that is not a bridge id is an error. It is not ignored.
17
+ --rigor=<tier> shows only that tier (the precision core, or the loose
18
+ tail that needs better data); --frontier ranks the σ-tests by margin to
19
+ this tool's 1σ acceptance threshold (a software criterion, not a
20
+ scientific exclusion level; the smallest margin is the most at-risk
21
+ under new data);
22
+ --sensitivity adds an input-elasticity ranking (value-kind only).
23
+ Each record states its statistical object (point estimate ± 1σ,
24
+ one-sided limit, or a consistency ratio with no σ), the criterion
25
+ applied, whether the observed number is derived, its preprocessing,
26
+ its independence from the prediction (no fitted parameter, a shared
27
+ input, or not recorded — never implied), and the record's notes.
28
+ Each statement cites a repository file with a verbatim quote or a
29
+ declared symbol; that the cited text exists does not make the
30
+ statement true.
31
+ Consistency ratios are counted apart and never as precision tests;
32
+ each prints its actual difference (observed − predicted)/predicted
33
+ separately from its stated agreement bound.
34
+ be-53 is not in that registry. \`upt confront be-53\` refuses: a
35
+ confrontation needs a caller-supplied measured-coupling table and a
36
+ running procedure (requestYangMillsConfrontation). The refusal names
37
+ each missing input, prints no residual, and does not change the
38
+ catalog status. It is not a pass and not a fail. The one-loop
39
+ coefficient's sign is oneLoopCoefficientStatement, not this command.`;
18
40
  const RIGOR_TIERS = new Set(['stringent', 'moderate', 'loose']);
19
- /** σ-headroom to the 1σ exclusion edge for a value outcome; null for others. */
41
+ /** σ-headroom to the 1σ acceptance threshold for a value outcome; null for others. */
20
42
  function frontierMarginSigma(outcome) {
21
43
  return outcome && outcome.kind === 'value' && typeof outcome.residualInSigma === 'number'
22
44
  ? 1 - outcome.residualInSigma
@@ -25,17 +47,114 @@ function frontierMarginSigma(outcome) {
25
47
  const EPISTEMICS = 'confrontation is consistency, not confirmation; a passing confrontation does not prove the bridge.';
26
48
  const SENSITIVITY_EPISTEMICS = ' sensitivity (elasticity) ranks which input the prediction depends on most STRONGLY; ' +
27
49
  'it is NOT which input dominates the uncertainty budget (that needs input sigma).';
28
- function parseBridgeId(raw) {
50
+ function parseBridgeId(raw, via) {
29
51
  // Accept "be-37", "BE-37", or "37".
30
52
  const m = /^(?:be-?)?(\d+)$/i.exec(raw.trim());
31
- if (!m)
32
- throw new CliError(`upt confront: invalid --bridge='${raw}' (expected be-XX)`);
53
+ if (!m) {
54
+ throw new CliError(via === 'flag'
55
+ ? `upt confront: invalid --bridge='${raw}' (expected be-XX)`
56
+ : `upt confront: '${raw}' is not a bridge id (expected be-XX). A positional is not ignored.`);
57
+ }
33
58
  return Number(m[1]);
34
59
  }
60
+ /** The bridge a positional id and/or `--bridge` select, or undefined for the full list. */
61
+ function selectedBridgeId(args) {
62
+ if (args.positionals.length > 1) {
63
+ throw new UsageError(`upt confront: unexpected extra arguments (${args.positionals.slice(1).join(', ')}). ` +
64
+ 'Give one bridge id, e.g. `upt confront be-58`, or `--bridge=be-58`.');
65
+ }
66
+ const flag = args.flags.get('bridge');
67
+ const fromFlag = flag && flag.length > 0 ? parseBridgeId(flag[flag.length - 1], 'flag') : undefined;
68
+ const fromPositional = args.positionals.length === 1 ? parseBridgeId(args.positionals[0], 'positional') : undefined;
69
+ if (fromFlag !== undefined && fromPositional !== undefined && fromFlag !== fromPositional) {
70
+ throw new UsageError(`upt confront: positional be-${fromPositional} and --bridge=be-${fromFlag} name different bridges`);
71
+ }
72
+ return fromFlag ?? fromPositional;
73
+ }
35
74
  const SENSITIVITY_NOTE = 'strongest dependence, not uncertainty budget';
75
+ /**
76
+ * The statistical object a confrontation compares, the criterion it applies,
77
+ * and where its observed number comes from — read from the outcome's kind and
78
+ * fields only.
79
+ */
80
+ function statisticOf(o) {
81
+ const reported = 'as reported by the source (no derivation recorded)';
82
+ switch (o.kind) {
83
+ case 'value':
84
+ return {
85
+ object: 'point estimate ± 1σ',
86
+ criterion: 'residual ≤ 1σ',
87
+ observed: o.measured ? `derived from ${o.measured.quantity} by ${o.measured.derivation}` : reported,
88
+ };
89
+ case 'upper-bound':
90
+ return o.predictedIs === 'encoded-bound'
91
+ ? { object: 'one-sided upper limit against an encoded range', criterion: 'observed limit ≤ encoded bound', observed: reported }
92
+ : { object: 'one-sided upper limit', criterion: 'predicted ≤ limit', observed: reported };
93
+ case 'consistency':
94
+ if (o.predictedIs === 'lower-limit') {
95
+ return {
96
+ object: 'lower limit claimed by the bridge, against a reference value with no σ',
97
+ criterion: 'observed ≥ predicted lower limit — one-sided, not a σ-residual; not a precision test',
98
+ observed: reported,
99
+ };
100
+ }
101
+ return {
102
+ object: 'reference value with no σ',
103
+ criterion: o.fractionalGapIs === 'agreement-bound'
104
+ ? "|actual difference| ≤ the record's stated agreement bound — a tolerance, not a σ-residual; not a precision test"
105
+ : 'none — the outcome carries no agreement bound; the difference is reported, not thresholded; not a precision test',
106
+ observed: reported,
107
+ };
108
+ case 'table':
109
+ return { object: 'per-row point estimate ± 1σ', criterion: 'residual per row, reported not thresholded', observed: reported };
110
+ }
111
+ }
112
+ function statisticDistribution(outcomes) {
113
+ const n = (k) => outcomes.filter((o) => o.kind === k).length;
114
+ return { sigmaTests: n('value'), limits: n('upper-bound'), consistencyRatios: n('consistency'), tables: n('table') };
115
+ }
116
+ /** A fraction as a percentage; exponent form below 0.05% so a tiny nonzero value never prints as 0.0%. */
117
+ function percent(x) {
118
+ const p = x * 100;
119
+ return `${p !== 0 && Math.abs(p) < 0.05 ? p.toExponential(1) : p.toFixed(1)}%`;
120
+ }
121
+ function signedPercent(x) {
122
+ return `${x > 0 ? '+' : ''}${percent(x)}`;
123
+ }
124
+ const NOT_RECORDED = 'not recorded — the record states nothing on this; that is not "none"';
125
+ function sourceLine(refs) {
126
+ return `[source: ${refs.map((r) => ('quote' in r ? `${r.file} "${r.quote}"` : `${r.file} #${r.symbol}`)).join('; ')}]`;
127
+ }
128
+ function preprocessingLine(o) {
129
+ const p = o.preprocessing;
130
+ return p.state === 'recorded' ? `${p.statement} ${sourceLine(p.source)}` : NOT_RECORDED;
131
+ }
132
+ function independenceLine(o) {
133
+ const i = o.independence;
134
+ switch (i.state) {
135
+ case 'no-fitted-parameter':
136
+ return `no parameter fitted to this measurement — ${i.statement} ${sourceLine(i.source)}`;
137
+ case 'shares-input':
138
+ return `shares ${i.shared} — ${i.statement} ${sourceLine(i.source)}`;
139
+ case 'not-recorded':
140
+ return NOT_RECORDED;
141
+ }
142
+ }
143
+ function dataHandlingDistribution(outcomes) {
144
+ const pre = (s) => outcomes.filter((o) => o.preprocessing.state === s).length;
145
+ const ind = (s) => outcomes.filter((o) => o.independence.state === s).length;
146
+ return {
147
+ preprocessing: { recorded: pre('recorded'), notRecorded: pre('not-recorded') },
148
+ independence: {
149
+ noFittedParameter: ind('no-fitted-parameter'),
150
+ sharesInput: ind('shares-input'),
151
+ notRecorded: ind('not-recorded'),
152
+ },
153
+ };
154
+ }
36
155
  async function run(ctx) {
37
156
  const { args, api, out } = ctx;
38
- const bridgeFlag = args.flags.get('bridge');
157
+ const bridgeId = selectedBridgeId(args);
39
158
  const wantJson = args.flags.has('json');
40
159
  const wantSensitivity = args.flags.has('sensitivity');
41
160
  const wantFrontier = args.flags.has('frontier');
@@ -44,15 +163,39 @@ async function run(ctx) {
44
163
  if (rigorTier !== undefined && !RIGOR_TIERS.has(rigorTier)) {
45
164
  throw new CliError(`upt confront: invalid --rigor='${rigorTier}' (expected stringent|moderate|loose)`);
46
165
  }
47
- let entries = bridgeFlag && bridgeFlag.length
48
- ? (() => {
49
- const id = parseBridgeId(bridgeFlag[bridgeFlag.length - 1]);
50
- const one = api.listConfrontations().find((e) => e.bridgeId === id);
166
+ if (bridgeId === 53) {
167
+ const refusal = api.requestYangMillsConfrontation({});
168
+ if (refusal.status !== 'refused') {
169
+ throw new CliError('upt confront: be-53 without a table and a running procedure did not refuse');
170
+ }
171
+ const missing = refusal.missing.join('; ');
172
+ if (wantJson) {
173
+ emitJson({
174
+ command: 'confront',
175
+ result: {
176
+ bridgeId: 53,
177
+ status: 'refused',
178
+ missing: refusal.missing,
179
+ pass: false,
180
+ fail: false,
181
+ catalogStatus: 'unchanged',
182
+ },
183
+ }, ctx.write);
184
+ }
185
+ else {
186
+ out(`be-53 refused. Missing: ${missing}.`);
187
+ out('This is not a pass and not a fail. The catalog status of be-53 is unchanged.');
188
+ }
189
+ return 1;
190
+ }
191
+ let entries = bridgeId === undefined
192
+ ? api.listConfrontations()
193
+ : (() => {
194
+ const one = api.listConfrontations().find((e) => e.bridgeId === bridgeId);
51
195
  if (!one)
52
- throw new CliError(`upt confront: no confrontation registered for be-${id}`);
196
+ throw new CliError(`upt confront: no confrontation registered for be-${bridgeId}`);
53
197
  return [one];
54
- })()
55
- : api.listConfrontations();
198
+ })();
56
199
  if (rigorTier !== undefined) {
57
200
  entries = entries.filter((e) => api.confrontationRigor(e.bridgeId) === rigorTier);
58
201
  }
@@ -63,7 +206,7 @@ async function run(ctx) {
63
206
  rigor: api.confrontationRigor(e.bridgeId),
64
207
  }));
65
208
  if (wantFrontier) {
66
- // Frontier = closest to exclusion: value-kind by σ-headroom ASCENDING (smallest
209
+ // Frontier = closest to the threshold: value-kind by σ-headroom ASCENDING (smallest
67
210
  // margin = most at-risk under new data); non-σ outcomes (bounds/consistency) after.
68
211
  results.sort((a, b) => {
69
212
  const ma = frontierMarginSigma(a.outcome);
@@ -84,9 +227,18 @@ async function run(ctx) {
84
227
  ...(wantSensitivity && r.outcome.kind === 'value'
85
228
  ? { ...r.outcome, sensitivity: api.decidingMeasurement(r.bridgeId) }
86
229
  : r.outcome),
230
+ ...(r.outcome.kind === 'consistency' ? { comparison: api.consistencyComparison(r.outcome) } : {}),
231
+ statistic: statisticOf(r.outcome),
87
232
  }));
88
233
  const epistemics = wantSensitivity ? EPISTEMICS + SENSITIVITY_EPISTEMICS : EPISTEMICS;
89
- emitJson({ command: 'confront', epistemics, rigorDistribution: api.rigorDistribution(), result: jsonResults }, ctx.write);
234
+ emitJson({
235
+ command: 'confront',
236
+ epistemics,
237
+ rigorDistribution: api.rigorDistribution(),
238
+ statisticDistribution: statisticDistribution(results.map((r) => r.outcome)),
239
+ dataHandlingDistribution: dataHandlingDistribution(results.map((r) => r.outcome)),
240
+ result: jsonResults,
241
+ }, ctx.write);
90
242
  return 0;
91
243
  }
92
244
  out('\nReal-data confrontations — predicted vs observed');
@@ -97,8 +249,16 @@ async function run(ctx) {
97
249
  for (const r of results)
98
250
  d[r.rigor]++;
99
251
  out(`rigor: ${d.stringent} stringent · ${d.moderate} moderate · ${d.loose} loose — NOT ${results.length} equal confirmations`);
252
+ const s = statisticDistribution(results.map((r) => r.outcome));
253
+ out(`by statistic: ${s.sigmaTests} σ-residual tests · ${s.limits} limits · ${s.consistencyRatios} consistency ratios ` +
254
+ `(no σ; never counted as precision tests)${s.tables ? ` · ${s.tables} tables` : ''}`);
255
+ const h = dataHandlingDistribution(results.map((r) => r.outcome));
256
+ out(`preprocessing: recorded for ${h.preprocessing.recorded} · not recorded for ${h.preprocessing.notRecorded}; ` +
257
+ `independence: ${h.independence.noFittedParameter} no fitted parameter · ${h.independence.sharesInput} share an input ` +
258
+ `· ${h.independence.notRecorded} not recorded (independence is not goodness of fit)`);
100
259
  if (wantFrontier) {
101
- out('frontier: σ-tests ordered by margin to exclusion (smallest = most at-risk under new data)');
260
+ out('frontier: σ-tests ordered by margin to the 1σ acceptance threshold (residual ≤ 1σ passes; a software ' +
261
+ 'criterion, not a scientific exclusion level; smallest = most at-risk under new data)');
102
262
  }
103
263
  out('');
104
264
  }
@@ -109,7 +269,7 @@ async function run(ctx) {
109
269
  out(` be-${bridgeId} [${rigor}]: ${title}`);
110
270
  switch (outcome.kind) {
111
271
  case 'value': {
112
- const margin = wantFrontier ? ` · margin ${(1 - outcome.residualInSigma).toFixed(2)}σ to exclusion` : '';
272
+ const margin = wantFrontier ? ` · margin ${(1 - outcome.residualInSigma).toFixed(2)}σ to the 1σ acceptance threshold` : '';
113
273
  // A derived "observed" value is labelled derived, and the quantity that
114
274
  // was actually measured is shown beside it (persona finding L6).
115
275
  const m = outcome.measured;
@@ -132,16 +292,32 @@ async function run(ctx) {
132
292
  }
133
293
  break;
134
294
  }
135
- case 'upper-bound':
136
- out(` predicted ${outcome.predicted} ${outcome.units} · bound ${outcome.bound} · ${outcome.satisfied ? 'not excluded ✓' : 'EXCLUDED'}${outcome.caveat ? ` · ${outcome.caveat}` : ''}`);
295
+ case 'upper-bound': {
296
+ const caveat = outcome.caveat ? ` · ${outcome.caveat}` : '';
297
+ out(outcome.predictedIs === 'encoded-bound'
298
+ ? ` encoded bound |x| ≤ ${outcome.predicted}, x = ${outcome.units} (a range, not a point prediction) · ` +
299
+ `observed upper limit ${outcome.bound} · rule: observed limit ≤ encoded bound · ` +
300
+ `${outcome.satisfied ? 'compatible ✓' : 'INCOMPATIBLE'}${caveat}`
301
+ : ` predicted ${outcome.predicted} ${outcome.units} · observed upper limit ${outcome.bound} · ` +
302
+ `rule: predicted ≤ limit · ${outcome.satisfied ? 'not excluded ✓' : 'EXCLUDED'}${caveat}`);
137
303
  if (wantSensitivity)
138
304
  out(` sensitivity: n/a for ${outcome.kind}-kind`);
139
305
  break;
140
- case 'consistency':
141
- out(` predicted ${outcome.predicted} approaches ${outcome.approaches} ${outcome.units} · gap ${(outcome.fractionalGap * 100).toFixed(1)}%`);
306
+ }
307
+ case 'consistency': {
308
+ const c = api.consistencyComparison(outcome);
309
+ const verdict = c.rule === 'observed ≥ predicted lower limit'
310
+ ? `rule: ${c.rule} · ${c.withinBound ? 'compatible ✓' : 'BELOW THE LIMIT'}`
311
+ : c.agreementBound === null
312
+ ? 'no agreement bound in this outcome, so no compatibility decision'
313
+ : `agreement bound ±${percent(c.agreementBound)} (the record's stated tolerance, not a measured difference) · ` +
314
+ `|difference| ≤ bound: ${c.withinBound ? 'compatible ✓' : 'OUTSIDE BOUND'}`;
315
+ out(` predicted ${outcome.predicted} approaches ${outcome.approaches} ${outcome.units} · ` +
316
+ `actual difference ${signedPercent(c.relativeDifference)} = ${c.definition} · ${verdict}`);
142
317
  if (wantSensitivity)
143
318
  out(` sensitivity: n/a for ${outcome.kind}-kind`);
144
319
  break;
320
+ }
145
321
  case 'table':
146
322
  out(` ${outcome.rows.length} rows (${outcome.units}):`);
147
323
  for (const row of outcome.rows) {
@@ -151,6 +327,12 @@ async function run(ctx) {
151
327
  out(` sensitivity: n/a for ${outcome.kind}-kind`);
152
328
  break;
153
329
  }
330
+ const st = statisticOf(outcome);
331
+ out(` statistic: ${st.object} · criterion: ${st.criterion} · observed: ${st.observed}`);
332
+ out(` preprocessing: ${preprocessingLine(outcome)}`);
333
+ out(` independence: ${independenceLine(outcome)}`);
334
+ if (outcome.provenance.note)
335
+ out(` notes: ${outcome.provenance.note}`);
154
336
  out(` source: ${outcome.provenance.citation}`);
155
337
  }
156
338
  return 0;
@@ -1 +1 @@
1
- {"version":3,"file":"confront.js","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confront.js","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connectors.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA6D/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
1
+ {"version":3,"file":"connectors.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/connectors.ts"],"names":[],"mappings":"AAQA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA8D/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { registerCommand } from '../command.js';
2
- import { resolveGraph } from '../graphs.js';
2
+ import { resolveGraph, coreAnchor, coreLine } from '../graphs.js';
3
3
  import { emitJson } from '../output.js';
4
4
  const FLAGS = [
5
5
  { name: '--source', valueStyle: 'attached' },
@@ -11,8 +11,8 @@ const HELP = `upt connectors [--source=catalog|canonical|both]
11
11
  frontier — same-kind connectors are the motivated set for
12
12
  physicist review.
13
13
  --source defaults to 'both' (catalog + canonical) for the honest,
14
- all-known-physics answer; --source=catalog isolates the 20-bridge
15
- catalog-only tail.`;
14
+ all-known-physics answer; --source=catalog isolates the catalog-only
15
+ tail. The isolated count is printed for the source selected.`;
16
16
  const EPISTEMICS = '⚠ A REVIEW SURFACE: same dimension is a WEAK prior; most are decoys (a Förster\n' +
17
17
  ' radius is not a Schwarzschild radius). Same-kind (shared name token) = stronger.';
18
18
  async function run(ctx) {
@@ -25,11 +25,12 @@ async function run(ctx) {
25
25
  const { graph, label, source } = resolveGraph(api, sourceFlags);
26
26
  const r = api.proposeOrphanConnectors(graph);
27
27
  if (args.flags.has('json')) {
28
- emitJson({ command: 'connectors', source, epistemics: EPISTEMICS, result: r }, ctx.write);
28
+ emitJson({ command: 'connectors', source, anchor: { core: coreAnchor(graph) }, epistemics: EPISTEMICS, result: r }, ctx.write);
29
29
  return 0;
30
30
  }
31
31
  out('\nOrphan connectors — same-dimension identifications that would pull an ISOLATED');
32
32
  out(`bridge into the anchored core (the graph's structural frontier). [source: ${label}]`);
33
+ out(` ${coreLine(coreAnchor(graph))}`);
33
34
  out('⚠ A REVIEW SURFACE: same dimension is a WEAK prior; most are decoys (a Förster');
34
35
  out(' radius is not a Schwarzschild radius). Same-kind (shared name token) = stronger.\n');
35
36
  out(` ${r.connectedOrphans.length} of the isolated bridges have a same-kind connector; ` +
@@ -1 +1 @@
1
- {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../../src/cli/commands/connectors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectors.js","sourceRoot":"","sources":["../../../src/cli/commands/connectors.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { registerCommand } from '../command.js';
2
2
  import { emitJson } from '../output.js';
3
3
  const FLAGS = [{ name: '--json', valueStyle: 'none' }];
4
- const HELP = `upt coverage
5
- Audit the catalog's empirical grounding — which bridges are
6
- data-confronted vs graph-computable vs encoded-only vs thin — to
4
+ const HELP = `upt coverage
5
+ Audit the catalog's empirical grounding — which bridges are
6
+ data-confronted vs graph-computable vs encoded-only vs thin — to
7
7
  target the physicist review. Fabricates nothing.`;
8
8
  const EPISTEMICS = '(reads the catalog/graph/confrontation modules; fabricates nothing)';
9
9
  async function run(ctx) {
@@ -1 +1 @@
1
- {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/derive.ts"],"names":[],"mappings":"AASA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA+L/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/derive.ts"],"names":[],"mappings":"AASA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AA0M/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
@@ -1,17 +1,28 @@
1
1
  import { registerCommand } from '../command.js';
2
2
  import { emitJson } from '../output.js';
3
3
  import { UsageError, EXIT_CHECK_FAILED } from '../errors.js';
4
+ import { formulaParserLabel } from '../version.js';
5
+ import { withParser } from '../euler-guard.js';
6
+ import { canonicalCheckFailed, conventionLines } from '../conventions.js';
4
7
  const FLAGS = [
5
8
  { name: '--formula', valueStyle: 'next' },
6
9
  { name: '--debug', valueStyle: 'none' },
7
10
  { name: '--json', valueStyle: 'none' },
8
11
  ];
9
- const HELP = `upt derive <target:dim> <var:dim> ... [--formula "<expr>"]
10
- Derive YOUR OWN equation's dimensional form. <dim> is a named
11
- dimension (length, time, mass, velocity, ...), a constant (hbar, c,
12
- G, k_B, e), or explicit (L^3.M^-1.T^-2). With --formula, also verify
13
- it and recover the dimensionless prefactor.
14
- e.g. upt derive period:time length:length gravity:acceleration \\
12
+ const HELP = `upt derive <target:dim> <var:dim> ... [--formula "<expr>"] [--debug]
13
+ Derive YOUR OWN equation's dimensional form. <dim> is a named
14
+ dimension (length, time, mass, velocity, ...), a constant (hbar, c,
15
+ G, k_B, e — e here is the elementary charge's dimension), a named
16
+ product/quotient (power/area, length*temperature),
17
+ or explicit (L^3.M^-1.T^-2). Parentheses group a factor
18
+ (power/(area*temperature^4)); pressure, density, volume, viscosity,
19
+ resistance and magnetic_field are names; mass/length^3 and M/L^3 work.
20
+ In --formula, a bare e is the elementary charge and E is energy.
21
+ Euler's number is exp(x), for example exp(1). The name euler is refused.
22
+ With --formula, also verify it and
23
+ recover the dimensionless prefactor. --debug prints the formula parser
24
+ and its version to stderr.
25
+ e.g. upt derive period:time length:length gravity:acceleration \\
15
26
  --formula "2*pi*sqrt(length/gravity)"`;
16
27
  const fmtMono = (m) => Object.entries(m)
17
28
  .filter(([, e]) => Math.abs(e) > 1e-9)
@@ -84,7 +95,7 @@ async function run(ctx) {
84
95
  if (formula) {
85
96
  const parser = await api.getFormulaParser();
86
97
  if (debug)
87
- err(` [parser: ${await api.getFormulaParserKind()}]`);
98
+ err(` [parser: ${formulaParserLabel(await api.getFormulaParserKind())}]`);
88
99
  const checker = await api.getFormulaDimensionChecker();
89
100
  const dims = Object.fromEntries(governing.map((g) => [g.name, g.dim]));
90
101
  const r = checker.check(formula, dims);
@@ -105,7 +116,7 @@ async function run(ctx) {
105
116
  cf = parser.parse(formula);
106
117
  }
107
118
  catch (e) {
108
- throw new UsageError(' formula parse error: ' + e.message);
119
+ throw new UsageError(withParser(' formula parse error: ' + e.message, await api.getFormulaParserKind()));
109
120
  }
110
121
  // Dimensions cannot see a prefactor: compare with the canonical equation this
111
122
  // formula restates, when the registry holds one (persona finding L2). This
@@ -124,8 +135,10 @@ async function run(ctx) {
124
135
  const printComparisons = () => {
125
136
  for (const line of api.describeComparisons(canonicalComparisons))
126
137
  textOut(` ${line}`);
138
+ for (const line of conventionLines(canonicalComparisons.map((c) => c.id)))
139
+ textOut(` ${line}`);
127
140
  };
128
- if (canonicalComparisons.some((c) => c.kind === 'factor' || c.kind === 'form'))
141
+ if (canonicalCheckFailed(canonicalComparisons))
129
142
  failed = true;
130
143
  if (!det.determined) {
131
144
  textOut(' formula given, but with no unique monomial there is no single prefactor to recover.');