universal-physics-tensor 8.0.0 → 10.0.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 (916) hide show
  1. package/README.md +26 -21
  2. package/data/atlas/atlas.json +75 -64
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +23 -22
  5. package/data/atlas/oscillators.json +21 -16
  6. package/data/atlas/waves.json +33 -28
  7. package/data/bridge-catalog.json +1356 -1791
  8. package/data/bridge-catalog.schema.json +789 -46
  9. package/data/quantities.json +280 -234
  10. package/data/quantities.schema.json +52 -0
  11. package/data/schemas/atlas-record.v0.json +184 -46
  12. package/data/units.json +1178 -0
  13. package/data/units.schema.json +124 -0
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +14 -3
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.d.ts +1 -1
  18. package/dist/atlas/association.js.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  21. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  22. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  23. package/dist/atlas/benchmark/baselines.js +8 -0
  24. package/dist/atlas/benchmark/baselines.js.map +1 -1
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  26. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  27. package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
  28. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  29. package/dist/atlas/benchmark/leakage.js.map +1 -1
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +1 -1
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +1 -1
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  45. package/dist/atlas/chain-pipeline.d.ts +0 -11
  46. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  47. package/dist/atlas/chain-pipeline.js +5 -16
  48. package/dist/atlas/chain-pipeline.js.map +1 -1
  49. package/dist/atlas/composition-table.js.map +1 -1
  50. package/dist/atlas/conventions.js.map +1 -1
  51. package/dist/atlas/coverage.d.ts +2 -2
  52. package/dist/atlas/coverage.js.map +1 -1
  53. package/dist/atlas/derivation.js.map +1 -1
  54. package/dist/atlas/derive-evidence.d.ts +6 -4
  55. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  56. package/dist/atlas/derive-evidence.js +7 -2
  57. package/dist/atlas/derive-evidence.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  60. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  62. package/dist/atlas/diffusion/bridges.js +0 -3
  63. package/dist/atlas/diffusion/bridges.js.map +1 -1
  64. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  65. package/dist/atlas/diffusion/index.d.ts +1 -1
  66. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  67. package/dist/atlas/diffusion/index.js.map +1 -1
  68. package/dist/atlas/diffusion/models.js.map +1 -1
  69. package/dist/atlas/diffusion/numerics.js.map +1 -1
  70. package/dist/atlas/error-algebra.d.ts +6 -0
  71. package/dist/atlas/error-algebra.d.ts.map +1 -1
  72. package/dist/atlas/error-algebra.js +26 -0
  73. package/dist/atlas/error-algebra.js.map +1 -1
  74. package/dist/atlas/export.d.ts +18 -2
  75. package/dist/atlas/export.d.ts.map +1 -1
  76. package/dist/atlas/export.js +9 -3
  77. package/dist/atlas/export.js.map +1 -1
  78. package/dist/atlas/families.d.ts +19 -2
  79. package/dist/atlas/families.d.ts.map +1 -1
  80. package/dist/atlas/families.js +26 -3
  81. package/dist/atlas/families.js.map +1 -1
  82. package/dist/atlas/family.d.ts +27 -0
  83. package/dist/atlas/family.d.ts.map +1 -0
  84. package/dist/atlas/family.js +12 -0
  85. package/dist/atlas/family.js.map +1 -0
  86. package/dist/atlas/index.d.ts +3 -2
  87. package/dist/atlas/index.d.ts.map +1 -1
  88. package/dist/atlas/index.js +2 -1
  89. package/dist/atlas/index.js.map +1 -1
  90. package/dist/atlas/link-prediction.d.ts +1 -1
  91. package/dist/atlas/link-prediction.d.ts.map +1 -1
  92. package/dist/atlas/link-prediction.js.map +1 -1
  93. package/dist/atlas/model.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  96. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  99. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  100. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  101. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  102. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  103. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  104. package/dist/atlas/oscillators/index.d.ts +1 -16
  105. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  106. package/dist/atlas/oscillators/index.js.map +1 -1
  107. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  108. package/dist/atlas/oscillators/models.js.map +1 -1
  109. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  110. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  111. package/dist/atlas/oscillators/norms.js.map +1 -1
  112. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  113. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  114. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  115. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  116. package/dist/atlas/oscillators/rejections.js.map +1 -1
  117. package/dist/atlas/path-bound.js.map +1 -1
  118. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  119. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  120. package/dist/atlas/physjs-entries.generated.js +1854 -345
  121. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  122. package/dist/atlas/physjs-ref.d.ts +151 -117
  123. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  124. package/dist/atlas/physjs-ref.js +244 -211
  125. package/dist/atlas/physjs-ref.js.map +1 -1
  126. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  127. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  128. package/dist/atlas/physjs-reviewed.js +194 -0
  129. package/dist/atlas/physjs-reviewed.js.map +1 -0
  130. package/dist/atlas/poster/associations.js.map +1 -1
  131. package/dist/atlas/poster/derivations.js.map +1 -1
  132. package/dist/atlas/poster/statements.js.map +1 -1
  133. package/dist/atlas/proof-target.d.ts +16 -8
  134. package/dist/atlas/proof-target.d.ts.map +1 -1
  135. package/dist/atlas/proof-target.js +34 -31
  136. package/dist/atlas/proof-target.js.map +1 -1
  137. package/dist/atlas/public.d.ts +2 -1
  138. package/dist/atlas/public.d.ts.map +1 -1
  139. package/dist/atlas/public.js +2 -1
  140. package/dist/atlas/public.js.map +1 -1
  141. package/dist/atlas/regime.js.map +1 -1
  142. package/dist/atlas/serialize.d.ts +18 -12
  143. package/dist/atlas/serialize.d.ts.map +1 -1
  144. package/dist/atlas/serialize.js +28 -18
  145. package/dist/atlas/serialize.js.map +1 -1
  146. package/dist/atlas/statement.js.map +1 -1
  147. package/dist/atlas/translation-registry.js.map +1 -1
  148. package/dist/atlas/translation.js.map +1 -1
  149. package/dist/atlas/types.d.ts +9 -2
  150. package/dist/atlas/types.d.ts.map +1 -1
  151. package/dist/atlas/types.js +1 -1
  152. package/dist/atlas/types.js.map +1 -1
  153. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  154. package/dist/atlas/waves/bridges-closure.js +0 -3
  155. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  156. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  157. package/dist/atlas/waves/bridges.js +0 -4
  158. package/dist/atlas/waves/bridges.js.map +1 -1
  159. package/dist/atlas/waves/index.d.ts +1 -1
  160. package/dist/atlas/waves/index.d.ts.map +1 -1
  161. package/dist/atlas/waves/index.js.map +1 -1
  162. package/dist/atlas/waves/models.js.map +1 -1
  163. package/dist/atlas/waves/numerics.js.map +1 -1
  164. package/dist/atlas/witness-artifact.js.map +1 -1
  165. package/dist/atlas/witness-dominance.d.ts +4 -3
  166. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  167. package/dist/atlas/witness-dominance.js +15 -5
  168. package/dist/atlas/witness-dominance.js.map +1 -1
  169. package/dist/atlas/witness-numeric.d.ts +8 -4
  170. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  171. package/dist/atlas/witness-numeric.js +27 -2
  172. package/dist/atlas/witness-numeric.js.map +1 -1
  173. package/dist/atlas/witness-result.d.ts +7 -1
  174. package/dist/atlas/witness-result.d.ts.map +1 -1
  175. package/dist/atlas/witness-result.js.map +1 -1
  176. package/dist/atlas/witness-specs.js.map +1 -1
  177. package/dist/atlas/witness-symbolic.js.map +1 -1
  178. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  179. package/dist/bridges/caller-table.d.ts +1 -1
  180. package/dist/bridges/caller-table.d.ts.map +1 -1
  181. package/dist/bridges/caller-table.js.map +1 -1
  182. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  183. package/dist/bridges/carrier-sign.js +8 -3
  184. package/dist/bridges/carrier-sign.js.map +1 -1
  185. package/dist/bridges/catalog-adapter.d.ts +12 -3
  186. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  187. package/dist/bridges/catalog-adapter.js +22 -14
  188. package/dist/bridges/catalog-adapter.js.map +1 -1
  189. package/dist/bridges/catalog-load.d.ts +19 -2
  190. package/dist/bridges/catalog-load.d.ts.map +1 -1
  191. package/dist/bridges/catalog-load.js +233 -14
  192. package/dist/bridges/catalog-load.js.map +1 -1
  193. package/dist/bridges/catalog-types.d.ts +96 -27
  194. package/dist/bridges/catalog-types.d.ts.map +1 -1
  195. package/dist/bridges/catalog-types.js.map +1 -1
  196. package/dist/bridges/coefficient-statement.js +1 -5
  197. package/dist/bridges/coefficient-statement.js.map +1 -1
  198. package/dist/bridges/confrontation-coverage.js.map +1 -1
  199. package/dist/bridges/confrontations.d.ts +1 -1
  200. package/dist/bridges/confrontations.d.ts.map +1 -1
  201. package/dist/bridges/confrontations.js +1 -1
  202. package/dist/bridges/confrontations.js.map +1 -1
  203. package/dist/bridges/evaluation-errors.d.ts +89 -0
  204. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  205. package/dist/bridges/evaluation-errors.js +136 -0
  206. package/dist/bridges/evaluation-errors.js.map +1 -0
  207. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  208. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  209. package/dist/bridges/evaluator-inputs.js +24 -24
  210. package/dist/bridges/evaluator-inputs.js.map +1 -1
  211. package/dist/bridges/evaluators.d.ts +48 -8
  212. package/dist/bridges/evaluators.d.ts.map +1 -1
  213. package/dist/bridges/evaluators.js +173 -38
  214. package/dist/bridges/evaluators.js.map +1 -1
  215. package/dist/bridges/expr-parse.d.ts +38 -7
  216. package/dist/bridges/expr-parse.d.ts.map +1 -1
  217. package/dist/bridges/expr-parse.js +129 -156
  218. package/dist/bridges/expr-parse.js.map +1 -1
  219. package/dist/bridges/holds.d.ts +16 -8
  220. package/dist/bridges/holds.d.ts.map +1 -1
  221. package/dist/bridges/holds.js +130 -236
  222. package/dist/bridges/holds.js.map +1 -1
  223. package/dist/bridges/index.d.ts +15 -14
  224. package/dist/bridges/index.d.ts.map +1 -1
  225. package/dist/bridges/index.js +14 -15
  226. package/dist/bridges/index.js.map +1 -1
  227. package/dist/bridges/input-contract.d.ts +65 -0
  228. package/dist/bridges/input-contract.d.ts.map +1 -0
  229. package/dist/bridges/input-contract.js +97 -0
  230. package/dist/bridges/input-contract.js.map +1 -0
  231. package/dist/bridges/membership.d.ts +5 -3
  232. package/dist/bridges/membership.d.ts.map +1 -1
  233. package/dist/bridges/membership.js +5 -6
  234. package/dist/bridges/membership.js.map +1 -1
  235. package/dist/bridges/notices.d.ts +11 -0
  236. package/dist/bridges/notices.d.ts.map +1 -0
  237. package/dist/bridges/notices.js +22 -0
  238. package/dist/bridges/notices.js.map +1 -0
  239. package/dist/bridges/observations/types.js.map +1 -1
  240. package/dist/bridges/rejected.d.ts +11 -17
  241. package/dist/bridges/rejected.d.ts.map +1 -1
  242. package/dist/bridges/rejected.js +13 -68
  243. package/dist/bridges/rejected.js.map +1 -1
  244. package/dist/bridges/relation-eval.d.ts +5 -6
  245. package/dist/bridges/relation-eval.d.ts.map +1 -1
  246. package/dist/bridges/relation-eval.js +9 -38
  247. package/dist/bridges/relation-eval.js.map +1 -1
  248. package/dist/bridges/rhs-registry.js.map +1 -1
  249. package/dist/bridges/sensitivity.d.ts +11 -3
  250. package/dist/bridges/sensitivity.d.ts.map +1 -1
  251. package/dist/bridges/sensitivity.js +24 -10
  252. package/dist/bridges/sensitivity.js.map +1 -1
  253. package/dist/bridges/tensor-index.js.map +1 -1
  254. package/dist/bridges/types.d.ts +1 -7
  255. package/dist/bridges/types.d.ts.map +1 -1
  256. package/dist/bridges/types.js +1 -4
  257. package/dist/bridges/types.js.map +1 -1
  258. package/dist/canonical/canonical-equation.d.ts +31 -0
  259. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  260. package/dist/canonical/canonical-equation.js.map +1 -1
  261. package/dist/canonical/dimensional-fields.js.map +1 -1
  262. package/dist/canonical/entries/_l1-build.js.map +1 -1
  263. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  264. package/dist/canonical/entries/atomic.js +11 -1
  265. package/dist/canonical/entries/atomic.js.map +1 -1
  266. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  267. package/dist/canonical/entries/condensed-matter.js +7 -4
  268. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  269. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  270. package/dist/canonical/entries/dimensional-classics.js +50 -2
  271. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  272. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  273. package/dist/canonical/entries/electromagnetism.js +32 -2
  274. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  275. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  276. package/dist/canonical/entries/fluids-waves.js +34 -0
  277. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  278. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  279. package/dist/canonical/entries/mechanics.js +24 -0
  280. package/dist/canonical/entries/mechanics.js.map +1 -1
  281. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  282. package/dist/canonical/entries/nonmonomial.js +42 -24
  283. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  284. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  285. package/dist/canonical/entries/relativity.js +6 -0
  286. package/dist/canonical/entries/relativity.js.map +1 -1
  287. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  288. package/dist/canonical/entries/statistical-mechanics.js +24 -5
  289. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  290. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  291. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  292. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  293. package/dist/canonical/linkage.d.ts +29 -4
  294. package/dist/canonical/linkage.d.ts.map +1 -1
  295. package/dist/canonical/linkage.js +31 -29
  296. package/dist/canonical/linkage.js.map +1 -1
  297. package/dist/canonical/normal-form.d.ts +0 -8
  298. package/dist/canonical/normal-form.d.ts.map +1 -1
  299. package/dist/canonical/normal-form.js +17 -12
  300. package/dist/canonical/normal-form.js.map +1 -1
  301. package/dist/canonical/registry.js.map +1 -1
  302. package/dist/canonical/residual.js.map +1 -1
  303. package/dist/canonical/seed-l-layer.d.ts +7 -1
  304. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  305. package/dist/canonical/seed-l-layer.js +7 -1
  306. package/dist/canonical/seed-l-layer.js.map +1 -1
  307. package/dist/canonical/structural.d.ts +21 -0
  308. package/dist/canonical/structural.d.ts.map +1 -1
  309. package/dist/canonical/structural.js +24 -4
  310. package/dist/canonical/structural.js.map +1 -1
  311. package/dist/cases/brownian-sphere.js +4 -4
  312. package/dist/cases/brownian-sphere.js.map +1 -1
  313. package/dist/cases/damped-resonator.js +2 -2
  314. package/dist/cases/damped-resonator.js.map +1 -1
  315. package/dist/cases/index.d.ts +9 -2
  316. package/dist/cases/index.d.ts.map +1 -1
  317. package/dist/cases/index.js +26 -7
  318. package/dist/cases/index.js.map +1 -1
  319. package/dist/cases/kepler-rv.js +6 -6
  320. package/dist/cases/kepler-rv.js.map +1 -1
  321. package/dist/cases/lumped-cooling.js +1 -1
  322. package/dist/cases/lumped-cooling.js.map +1 -1
  323. package/dist/cases/quadrature.js.map +1 -1
  324. package/dist/cases/resistor-noise.js +3 -3
  325. package/dist/cases/resistor-noise.js.map +1 -1
  326. package/dist/cases/skin-depth.js.map +1 -1
  327. package/dist/cases/types.js.map +1 -1
  328. package/dist/cli/args.d.ts +7 -2
  329. package/dist/cli/args.d.ts.map +1 -1
  330. package/dist/cli/args.js +18 -2
  331. package/dist/cli/args.js.map +1 -1
  332. package/dist/cli/bindings.d.ts +13 -0
  333. package/dist/cli/bindings.d.ts.map +1 -0
  334. package/dist/cli/bindings.js +32 -0
  335. package/dist/cli/bindings.js.map +1 -0
  336. package/dist/cli/closed-form-range.js.map +1 -1
  337. package/dist/cli/command.js.map +1 -1
  338. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  339. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  340. package/dist/cli/commands/_atlas-map.js +43 -18
  341. package/dist/cli/commands/_atlas-map.js.map +1 -1
  342. package/dist/cli/commands/_atlas-route.js.map +1 -1
  343. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  344. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  345. package/dist/cli/commands/_discovery-opts.js +48 -18
  346. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  347. package/dist/cli/commands/atlas.d.ts.map +1 -1
  348. package/dist/cli/commands/atlas.js +7 -12
  349. package/dist/cli/commands/atlas.js.map +1 -1
  350. package/dist/cli/commands/audit.d.ts.map +1 -1
  351. package/dist/cli/commands/audit.js +13 -21
  352. package/dist/cli/commands/audit.js.map +1 -1
  353. package/dist/cli/commands/axes.js.map +1 -1
  354. package/dist/cli/commands/candidates.d.ts.map +1 -1
  355. package/dist/cli/commands/candidates.js +16 -8
  356. package/dist/cli/commands/candidates.js.map +1 -1
  357. package/dist/cli/commands/canonical.js.map +1 -1
  358. package/dist/cli/commands/chain.js +1 -1
  359. package/dist/cli/commands/chain.js.map +1 -1
  360. package/dist/cli/commands/confront.d.ts.map +1 -1
  361. package/dist/cli/commands/confront.js +22 -14
  362. package/dist/cli/commands/confront.js.map +1 -1
  363. package/dist/cli/commands/connectors.d.ts.map +1 -1
  364. package/dist/cli/commands/connectors.js +8 -9
  365. package/dist/cli/commands/connectors.js.map +1 -1
  366. package/dist/cli/commands/coverage.js.map +1 -1
  367. package/dist/cli/commands/derive.d.ts.map +1 -1
  368. package/dist/cli/commands/derive.js +50 -26
  369. package/dist/cli/commands/derive.js.map +1 -1
  370. package/dist/cli/commands/discover.d.ts.map +1 -1
  371. package/dist/cli/commands/discover.js +18 -13
  372. package/dist/cli/commands/discover.js.map +1 -1
  373. package/dist/cli/commands/eval.d.ts.map +1 -1
  374. package/dist/cli/commands/eval.js +29 -26
  375. package/dist/cli/commands/eval.js.map +1 -1
  376. package/dist/cli/commands/evaluate.d.ts +1 -35
  377. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  378. package/dist/cli/commands/evaluate.js +99 -208
  379. package/dist/cli/commands/evaluate.js.map +1 -1
  380. package/dist/cli/commands/explain.d.ts.map +1 -1
  381. package/dist/cli/commands/explain.js +57 -45
  382. package/dist/cli/commands/explain.js.map +1 -1
  383. package/dist/cli/commands/frontier.js.map +1 -1
  384. package/dist/cli/commands/ground.d.ts.map +1 -1
  385. package/dist/cli/commands/ground.js +41 -11
  386. package/dist/cli/commands/ground.js.map +1 -1
  387. package/dist/cli/commands/index.js.map +1 -1
  388. package/dist/cli/commands/map.d.ts.map +1 -1
  389. package/dist/cli/commands/map.js +84 -92
  390. package/dist/cli/commands/map.js.map +1 -1
  391. package/dist/cli/commands/metric.d.ts.map +1 -1
  392. package/dist/cli/commands/metric.js +53 -15
  393. package/dist/cli/commands/metric.js.map +1 -1
  394. package/dist/cli/commands/path.js +4 -4
  395. package/dist/cli/commands/path.js.map +1 -1
  396. package/dist/cli/commands/predict.js.map +1 -1
  397. package/dist/cli/commands/priority.js.map +1 -1
  398. package/dist/cli/commands/probe.d.ts.map +1 -1
  399. package/dist/cli/commands/probe.js +50 -26
  400. package/dist/cli/commands/probe.js.map +1 -1
  401. package/dist/cli/commands/recover.js +1 -1
  402. package/dist/cli/commands/recover.js.map +1 -1
  403. package/dist/cli/commands/regime.d.ts +5 -4
  404. package/dist/cli/commands/regime.d.ts.map +1 -1
  405. package/dist/cli/commands/regime.js +25 -27
  406. package/dist/cli/commands/regime.js.map +1 -1
  407. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  408. package/dist/cli/commands/retrieve.js +22 -14
  409. package/dist/cli/commands/retrieve.js.map +1 -1
  410. package/dist/cli/commands/search.d.ts.map +1 -1
  411. package/dist/cli/commands/search.js +8 -4
  412. package/dist/cli/commands/search.js.map +1 -1
  413. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  414. package/dist/cli/commands/symbolic.js +14 -7
  415. package/dist/cli/commands/symbolic.js.map +1 -1
  416. package/dist/cli/commands/testplan.js +4 -4
  417. package/dist/cli/commands/testplan.js.map +1 -1
  418. package/dist/cli/conventions.d.ts +6 -7
  419. package/dist/cli/conventions.d.ts.map +1 -1
  420. package/dist/cli/conventions.js +19 -28
  421. package/dist/cli/conventions.js.map +1 -1
  422. package/dist/cli/determination.js.map +1 -1
  423. package/dist/cli/errors.js.map +1 -1
  424. package/dist/cli/euler-guard.d.ts +13 -2
  425. package/dist/cli/euler-guard.d.ts.map +1 -1
  426. package/dist/cli/euler-guard.js +17 -3
  427. package/dist/cli/euler-guard.js.map +1 -1
  428. package/dist/cli/eval-numbers.d.ts +4 -9
  429. package/dist/cli/eval-numbers.d.ts.map +1 -1
  430. package/dist/cli/eval-numbers.js +11 -41
  431. package/dist/cli/eval-numbers.js.map +1 -1
  432. package/dist/cli/expr-print.d.ts +29 -2
  433. package/dist/cli/expr-print.d.ts.map +1 -1
  434. package/dist/cli/expr-print.js +46 -2
  435. package/dist/cli/expr-print.js.map +1 -1
  436. package/dist/cli/flag-help.js.map +1 -1
  437. package/dist/cli/graphs.js.map +1 -1
  438. package/dist/cli/library-defaults.d.ts +19 -0
  439. package/dist/cli/library-defaults.d.ts.map +1 -0
  440. package/dist/cli/library-defaults.js +22 -0
  441. package/dist/cli/library-defaults.js.map +1 -0
  442. package/dist/cli/main.js +7 -3
  443. package/dist/cli/main.js.map +1 -1
  444. package/dist/cli/map-evidence.js.map +1 -1
  445. package/dist/cli/output.d.ts +3 -6
  446. package/dist/cli/output.d.ts.map +1 -1
  447. package/dist/cli/output.js.map +1 -1
  448. package/dist/cli/published-url.d.ts +2 -0
  449. package/dist/cli/published-url.d.ts.map +1 -1
  450. package/dist/cli/published-url.js +5 -0
  451. package/dist/cli/published-url.js.map +1 -1
  452. package/dist/cli/record-reach.d.ts +6 -0
  453. package/dist/cli/record-reach.d.ts.map +1 -1
  454. package/dist/cli/record-reach.js +16 -10
  455. package/dist/cli/record-reach.js.map +1 -1
  456. package/dist/cli/record-tables.d.ts +2 -1
  457. package/dist/cli/record-tables.d.ts.map +1 -1
  458. package/dist/cli/record-tables.js +8 -3
  459. package/dist/cli/record-tables.js.map +1 -1
  460. package/dist/cli/record.d.ts.map +1 -1
  461. package/dist/cli/record.js +31 -12
  462. package/dist/cli/record.js.map +1 -1
  463. package/dist/cli/search-index.d.ts +5 -0
  464. package/dist/cli/search-index.d.ts.map +1 -1
  465. package/dist/cli/search-index.js +12 -1
  466. package/dist/cli/search-index.js.map +1 -1
  467. package/dist/cli/statuses.js.map +1 -1
  468. package/dist/cli/top-level-help.js.map +1 -1
  469. package/dist/cli/version.js.map +1 -1
  470. package/dist/cli-api.d.ts +57 -18
  471. package/dist/cli-api.d.ts.map +1 -1
  472. package/dist/cli-api.js +49 -21
  473. package/dist/cli-api.js.map +1 -1
  474. package/dist/composition/adjudication.d.ts +8 -30
  475. package/dist/composition/adjudication.d.ts.map +1 -1
  476. package/dist/composition/adjudication.js +15 -67
  477. package/dist/composition/adjudication.js.map +1 -1
  478. package/dist/composition/aliases.d.ts +1 -1
  479. package/dist/composition/aliases.d.ts.map +1 -1
  480. package/dist/composition/aliases.js +10 -20
  481. package/dist/composition/aliases.js.map +1 -1
  482. package/dist/composition/audit-coverage.d.ts +2 -0
  483. package/dist/composition/audit-coverage.d.ts.map +1 -1
  484. package/dist/composition/audit-coverage.js.map +1 -1
  485. package/dist/composition/axes.d.ts +12 -0
  486. package/dist/composition/axes.d.ts.map +1 -1
  487. package/dist/composition/axes.js +18 -6
  488. package/dist/composition/axes.js.map +1 -1
  489. package/dist/composition/axis-audit.js.map +1 -1
  490. package/dist/composition/bridge-analysis.d.ts +0 -14
  491. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  492. package/dist/composition/bridge-analysis.js +66 -57
  493. package/dist/composition/bridge-analysis.js.map +1 -1
  494. package/dist/composition/bridge-prediction.d.ts +5 -1
  495. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  496. package/dist/composition/bridge-prediction.js +12 -16
  497. package/dist/composition/bridge-prediction.js.map +1 -1
  498. package/dist/composition/buckingham-filter.js.map +1 -1
  499. package/dist/composition/canonical-compare.d.ts.map +1 -1
  500. package/dist/composition/canonical-compare.js +12 -2
  501. package/dist/composition/canonical-compare.js.map +1 -1
  502. package/dist/composition/canonical-graph.d.ts +15 -18
  503. package/dist/composition/canonical-graph.d.ts.map +1 -1
  504. package/dist/composition/canonical-graph.js +59 -85
  505. package/dist/composition/canonical-graph.js.map +1 -1
  506. package/dist/composition/canonical-json.js.map +1 -1
  507. package/dist/composition/canonical-prefactors.d.ts +10 -29
  508. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  509. package/dist/composition/canonical-prefactors.js +15 -202
  510. package/dist/composition/canonical-prefactors.js.map +1 -1
  511. package/dist/composition/catalog-graph.d.ts.map +1 -1
  512. package/dist/composition/catalog-graph.js +6 -20
  513. package/dist/composition/catalog-graph.js.map +1 -1
  514. package/dist/composition/chain-candidate.d.ts +2 -0
  515. package/dist/composition/chain-candidate.d.ts.map +1 -1
  516. package/dist/composition/chain-candidate.js +2 -0
  517. package/dist/composition/chain-candidate.js.map +1 -1
  518. package/dist/composition/chain-match.js.map +1 -1
  519. package/dist/composition/chain-regime.js.map +1 -1
  520. package/dist/composition/chain-result.js.map +1 -1
  521. package/dist/composition/compose-surface.js.map +1 -1
  522. package/dist/composition/compose-symbolic.js.map +1 -1
  523. package/dist/composition/compose.d.ts.map +1 -1
  524. package/dist/composition/compose.js +154 -36
  525. package/dist/composition/compose.js.map +1 -1
  526. package/dist/composition/composition-recovery.js.map +1 -1
  527. package/dist/composition/consequence.d.ts.map +1 -1
  528. package/dist/composition/consequence.js +15 -6
  529. package/dist/composition/consequence.js.map +1 -1
  530. package/dist/composition/consistency.js.map +1 -1
  531. package/dist/composition/descriptor.d.ts +1 -1
  532. package/dist/composition/descriptor.d.ts.map +1 -1
  533. package/dist/composition/descriptor.js.map +1 -1
  534. package/dist/composition/dimension-adjacency.js.map +1 -1
  535. package/dist/composition/discovery.d.ts +67 -7
  536. package/dist/composition/discovery.d.ts.map +1 -1
  537. package/dist/composition/discovery.js +83 -23
  538. package/dist/composition/discovery.js.map +1 -1
  539. package/dist/composition/edge.d.ts +19 -22
  540. package/dist/composition/edge.d.ts.map +1 -1
  541. package/dist/composition/edge.js +25 -28
  542. package/dist/composition/edge.js.map +1 -1
  543. package/dist/composition/enumerate.d.ts +2 -2
  544. package/dist/composition/enumerate.d.ts.map +1 -1
  545. package/dist/composition/enumerate.js.map +1 -1
  546. package/dist/composition/evaluate-relation.d.ts +29 -5
  547. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  548. package/dist/composition/evaluate-relation.js +100 -72
  549. package/dist/composition/evaluate-relation.js.map +1 -1
  550. package/dist/composition/explain.d.ts +14 -4
  551. package/dist/composition/explain.d.ts.map +1 -1
  552. package/dist/composition/explain.js +53 -19
  553. package/dist/composition/explain.js.map +1 -1
  554. package/dist/composition/expr-eval.d.ts.map +1 -1
  555. package/dist/composition/expr-eval.js +2 -1
  556. package/dist/composition/expr-eval.js.map +1 -1
  557. package/dist/composition/expr-simplify.d.ts.map +1 -1
  558. package/dist/composition/expr-simplify.js +9 -39
  559. package/dist/composition/expr-simplify.js.map +1 -1
  560. package/dist/composition/expr-subst.js.map +1 -1
  561. package/dist/composition/formula-shape.d.ts +9 -0
  562. package/dist/composition/formula-shape.d.ts.map +1 -1
  563. package/dist/composition/formula-shape.js +54 -0
  564. package/dist/composition/formula-shape.js.map +1 -1
  565. package/dist/composition/frontier-account.d.ts +3 -2
  566. package/dist/composition/frontier-account.d.ts.map +1 -1
  567. package/dist/composition/frontier-account.js +7 -3
  568. package/dist/composition/frontier-account.js.map +1 -1
  569. package/dist/composition/graph-viz-svg.js.map +1 -1
  570. package/dist/composition/graph-viz.js.map +1 -1
  571. package/dist/composition/grounding.js.map +1 -1
  572. package/dist/composition/identifiability.js.map +1 -1
  573. package/dist/composition/index.d.ts +9 -5
  574. package/dist/composition/index.d.ts.map +1 -1
  575. package/dist/composition/index.js +7 -4
  576. package/dist/composition/index.js.map +1 -1
  577. package/dist/composition/mathts-quiet.d.ts +28 -0
  578. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  579. package/dist/composition/mathts-quiet.js +56 -0
  580. package/dist/composition/mathts-quiet.js.map +1 -0
  581. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  582. package/dist/composition/mathts-scalar-symbols.js +18 -34
  583. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  584. package/dist/composition/not-composable-seeds.d.ts +3 -1
  585. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  586. package/dist/composition/not-composable-seeds.js +2 -0
  587. package/dist/composition/not-composable-seeds.js.map +1 -1
  588. package/dist/composition/probe/backend-protocol.js.map +1 -1
  589. package/dist/composition/probe/candidate-store.js.map +1 -1
  590. package/dist/composition/probe/corpus.js.map +1 -1
  591. package/dist/composition/probe/dataset.js.map +1 -1
  592. package/dist/composition/probe/experiment-design.js.map +1 -1
  593. package/dist/composition/probe/expression-gaps.js.map +1 -1
  594. package/dist/composition/probe/falsify.d.ts +14 -3
  595. package/dist/composition/probe/falsify.d.ts.map +1 -1
  596. package/dist/composition/probe/falsify.js +14 -27
  597. package/dist/composition/probe/falsify.js.map +1 -1
  598. package/dist/composition/probe/fingerprint.js.map +1 -1
  599. package/dist/composition/probe/fit.d.ts +1 -1
  600. package/dist/composition/probe/fit.d.ts.map +1 -1
  601. package/dist/composition/probe/fit.js +2 -1
  602. package/dist/composition/probe/fit.js.map +1 -1
  603. package/dist/composition/probe/frontier.js.map +1 -1
  604. package/dist/composition/probe/generator.js.map +1 -1
  605. package/dist/composition/probe/index.d.ts +4 -2
  606. package/dist/composition/probe/index.d.ts.map +1 -1
  607. package/dist/composition/probe/index.js +4 -2
  608. package/dist/composition/probe/index.js.map +1 -1
  609. package/dist/composition/probe/limits.js.map +1 -1
  610. package/dist/composition/probe/metadata.js.map +1 -1
  611. package/dist/composition/probe/pipeline.d.ts +5 -0
  612. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  613. package/dist/composition/probe/pipeline.js +13 -6
  614. package/dist/composition/probe/pipeline.js.map +1 -1
  615. package/dist/composition/probe/problem.d.ts +8 -0
  616. package/dist/composition/probe/problem.d.ts.map +1 -1
  617. package/dist/composition/probe/problem.js +78 -12
  618. package/dist/composition/probe/problem.js.map +1 -1
  619. package/dist/composition/probe/report.js.map +1 -1
  620. package/dist/composition/probe/residual.js.map +1 -1
  621. package/dist/composition/probe/run-manifest.js +2 -2
  622. package/dist/composition/probe/run-manifest.js.map +1 -1
  623. package/dist/composition/probe/scoring.d.ts +2 -1
  624. package/dist/composition/probe/scoring.d.ts.map +1 -1
  625. package/dist/composition/probe/scoring.js +21 -7
  626. package/dist/composition/probe/scoring.js.map +1 -1
  627. package/dist/composition/probe/search-budget.js.map +1 -1
  628. package/dist/composition/probe/serialize.js.map +1 -1
  629. package/dist/composition/probe/structure.js.map +1 -1
  630. package/dist/composition/probe/study.d.ts +4 -3
  631. package/dist/composition/probe/study.d.ts.map +1 -1
  632. package/dist/composition/probe/study.js +5 -3
  633. package/dist/composition/probe/study.js.map +1 -1
  634. package/dist/composition/probe/types.d.ts +3 -1
  635. package/dist/composition/probe/types.d.ts.map +1 -1
  636. package/dist/composition/probe/types.js +2 -0
  637. package/dist/composition/probe/types.js.map +1 -1
  638. package/dist/composition/proposed-bridges.d.ts +11 -4
  639. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  640. package/dist/composition/proposed-bridges.js +14 -6
  641. package/dist/composition/proposed-bridges.js.map +1 -1
  642. package/dist/composition/quantities.d.ts +0 -4
  643. package/dist/composition/quantities.d.ts.map +1 -1
  644. package/dist/composition/quantities.js +5 -5
  645. package/dist/composition/quantities.js.map +1 -1
  646. package/dist/composition/quantity.d.ts +18 -2
  647. package/dist/composition/quantity.d.ts.map +1 -1
  648. package/dist/composition/quantity.js +35 -6
  649. package/dist/composition/quantity.js.map +1 -1
  650. package/dist/composition/representative-values.js.map +1 -1
  651. package/dist/composition/retrodiction.d.ts +18 -0
  652. package/dist/composition/retrodiction.d.ts.map +1 -1
  653. package/dist/composition/retrodiction.js +37 -7
  654. package/dist/composition/retrodiction.js.map +1 -1
  655. package/dist/composition/uncertainty.js.map +1 -1
  656. package/dist/composition/user-equation.d.ts +11 -7
  657. package/dist/composition/user-equation.d.ts.map +1 -1
  658. package/dist/composition/user-equation.js +24 -26
  659. package/dist/composition/user-equation.js.map +1 -1
  660. package/dist/core/axes-registry.d.ts +8 -5
  661. package/dist/core/axes-registry.d.ts.map +1 -1
  662. package/dist/core/axes-registry.js.map +1 -1
  663. package/dist/core/cell.js.map +1 -1
  664. package/dist/core/constants.d.ts +35 -12
  665. package/dist/core/constants.d.ts.map +1 -1
  666. package/dist/core/constants.js +46 -15
  667. package/dist/core/constants.js.map +1 -1
  668. package/dist/core/data-file.d.ts +27 -0
  669. package/dist/core/data-file.d.ts.map +1 -0
  670. package/dist/core/data-file.js +48 -0
  671. package/dist/core/data-file.js.map +1 -0
  672. package/dist/core/flux-rules.js +1 -1
  673. package/dist/core/flux-rules.js.map +1 -1
  674. package/dist/core/json-schema.d.ts +27 -0
  675. package/dist/core/json-schema.d.ts.map +1 -0
  676. package/dist/core/json-schema.js +177 -0
  677. package/dist/core/json-schema.js.map +1 -0
  678. package/dist/core/labeled-tensor.d.ts +6 -1
  679. package/dist/core/labeled-tensor.d.ts.map +1 -1
  680. package/dist/core/labeled-tensor.js +18 -8
  681. package/dist/core/labeled-tensor.js.map +1 -1
  682. package/dist/core/regime-registry.d.ts +6 -2
  683. package/dist/core/regime-registry.d.ts.map +1 -1
  684. package/dist/core/regime-registry.js.map +1 -1
  685. package/dist/core/regime-rule-install.js.map +1 -1
  686. package/dist/core/regimes-builtins.js.map +1 -1
  687. package/dist/core/tensor.d.ts +7 -4
  688. package/dist/core/tensor.d.ts.map +1 -1
  689. package/dist/core/tensor.js +40 -8
  690. package/dist/core/tensor.js.map +1 -1
  691. package/dist/core/types.d.ts +3 -2
  692. package/dist/core/types.d.ts.map +1 -1
  693. package/dist/core/types.js +16 -14
  694. package/dist/core/types.js.map +1 -1
  695. package/dist/core/universal-index.js.map +1 -1
  696. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  697. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  698. package/dist/diff/bridge-ast-gradient.js +16 -23
  699. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  700. package/dist/diff/bridge-gradient.d.ts +24 -80
  701. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  702. package/dist/diff/bridge-gradient.js +21 -98
  703. package/dist/diff/bridge-gradient.js.map +1 -1
  704. package/dist/diff/bridge-specs.d.ts +18 -6
  705. package/dist/diff/bridge-specs.d.ts.map +1 -1
  706. package/dist/diff/bridge-specs.js +17 -5
  707. package/dist/diff/bridge-specs.js.map +1 -1
  708. package/dist/dimensional/algebra.js.map +1 -1
  709. package/dist/dimensional/ast-builders.d.ts +5 -4
  710. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  711. package/dist/dimensional/ast-builders.js +6 -5
  712. package/dist/dimensional/ast-builders.js.map +1 -1
  713. package/dist/dimensional/ast-types.js.map +1 -1
  714. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  715. package/dist/dimensional/bridge-check.js +3 -5
  716. package/dist/dimensional/bridge-check.js.map +1 -1
  717. package/dist/dimensional/buckingham.js.map +1 -1
  718. package/dist/dimensional/connection-validators.d.ts +2 -1
  719. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  720. package/dist/dimensional/connection-validators.js.map +1 -1
  721. package/dist/dimensional/connection.js.map +1 -1
  722. package/dist/dimensional/constant-rows.d.ts +54 -0
  723. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  724. package/dist/dimensional/constant-rows.js +115 -0
  725. package/dist/dimensional/constant-rows.js.map +1 -0
  726. package/dist/dimensional/constants.d.ts +7 -17
  727. package/dist/dimensional/constants.d.ts.map +1 -1
  728. package/dist/dimensional/constants.js +12 -21
  729. package/dist/dimensional/constants.js.map +1 -1
  730. package/dist/dimensional/curvature-composite.js.map +1 -1
  731. package/dist/dimensional/curvature-invariants.js.map +1 -1
  732. package/dist/dimensional/curvature.js.map +1 -1
  733. package/dist/dimensional/dimension-inference.js.map +1 -1
  734. package/dist/dimensional/dimension-spec.d.ts +21 -6
  735. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  736. package/dist/dimensional/dimension-spec.js +150 -160
  737. package/dist/dimensional/dimension-spec.js.map +1 -1
  738. package/dist/dimensional/einstein-equation.js.map +1 -1
  739. package/dist/dimensional/errors.d.ts +3 -1
  740. package/dist/dimensional/errors.d.ts.map +1 -1
  741. package/dist/dimensional/errors.js +2 -2
  742. package/dist/dimensional/errors.js.map +1 -1
  743. package/dist/dimensional/exact-scale.d.ts +79 -0
  744. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  745. package/dist/dimensional/exact-scale.js +222 -0
  746. package/dist/dimensional/exact-scale.js.map +1 -0
  747. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  748. package/dist/dimensional/formula-names.d.ts +13 -12
  749. package/dist/dimensional/formula-names.d.ts.map +1 -1
  750. package/dist/dimensional/formula-names.js +28 -51
  751. package/dist/dimensional/formula-names.js.map +1 -1
  752. package/dist/dimensional/fresh-label.js.map +1 -1
  753. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  754. package/dist/dimensional/friedmann-equation.js +3 -3
  755. package/dist/dimensional/friedmann-equation.js.map +1 -1
  756. package/dist/dimensional/gauge-field.d.ts +2 -3
  757. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  758. package/dist/dimensional/gauge-field.js +0 -1
  759. package/dist/dimensional/gauge-field.js.map +1 -1
  760. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  761. package/dist/dimensional/hyphen-names.js +8 -0
  762. package/dist/dimensional/hyphen-names.js.map +1 -1
  763. package/dist/dimensional/killing-validators.js.map +1 -1
  764. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  765. package/dist/dimensional/metric-validators.d.ts +2 -1
  766. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  767. package/dist/dimensional/metric-validators.js.map +1 -1
  768. package/dist/dimensional/metric.js.map +1 -1
  769. package/dist/dimensional/natural-units.js.map +1 -1
  770. package/dist/dimensional/quantity-registry.d.ts +23 -1
  771. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  772. package/dist/dimensional/quantity-registry.js +55 -18
  773. package/dist/dimensional/quantity-registry.js.map +1 -1
  774. package/dist/dimensional/rg-flow.js.map +1 -1
  775. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  776. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  777. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  778. package/dist/dimensional/symbolic-constants.js +114 -92
  779. package/dist/dimensional/symbolic-constants.js.map +1 -1
  780. package/dist/dimensional/tensor-trace.js.map +1 -1
  781. package/dist/dimensional/tensor.js.map +1 -1
  782. package/dist/dimensional/types.js.map +1 -1
  783. package/dist/dimensional/unit-convention.d.ts +0 -2
  784. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  785. package/dist/dimensional/unit-convention.js +2 -2
  786. package/dist/dimensional/unit-convention.js.map +1 -1
  787. package/dist/dimensional/unit-data.d.ts +70 -0
  788. package/dist/dimensional/unit-data.d.ts.map +1 -0
  789. package/dist/dimensional/unit-data.js +139 -0
  790. package/dist/dimensional/unit-data.js.map +1 -0
  791. package/dist/dimensional/units.d.ts +87 -24
  792. package/dist/dimensional/units.d.ts.map +1 -1
  793. package/dist/dimensional/units.js +290 -295
  794. package/dist/dimensional/units.js.map +1 -1
  795. package/dist/dimensional/validator-registry.js.map +1 -1
  796. package/dist/dimensional/validator.d.ts +0 -16
  797. package/dist/dimensional/validator.d.ts.map +1 -1
  798. package/dist/dimensional/validator.js +65 -29
  799. package/dist/dimensional/validator.js.map +1 -1
  800. package/dist/dimensional/weyl-validators.js.map +1 -1
  801. package/dist/index.d.ts +65 -18
  802. package/dist/index.d.ts.map +1 -1
  803. package/dist/index.js +19 -24
  804. package/dist/index.js.map +1 -1
  805. package/dist/numerical/bianchi-residual.js.map +1 -1
  806. package/dist/numerical/binding-value.d.ts +32 -7
  807. package/dist/numerical/binding-value.d.ts.map +1 -1
  808. package/dist/numerical/binding-value.js +218 -209
  809. package/dist/numerical/binding-value.js.map +1 -1
  810. package/dist/numerical/christoffel-flat.js.map +1 -1
  811. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  812. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  813. package/dist/numerical/covariant-eikonal.js +2 -2
  814. package/dist/numerical/covariant-eikonal.js.map +1 -1
  815. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  816. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  817. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  818. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  819. package/dist/numerical/derivative-lowering.js.map +1 -1
  820. package/dist/numerical/einstein-equation.js.map +1 -1
  821. package/dist/numerical/engine-registry.js.map +1 -1
  822. package/dist/numerical/errors.d.ts +7 -3
  823. package/dist/numerical/errors.d.ts.map +1 -1
  824. package/dist/numerical/errors.js +5 -5
  825. package/dist/numerical/errors.js.map +1 -1
  826. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  827. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  828. package/dist/numerical/evaluator-uncertainty.js +134 -0
  829. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  830. package/dist/numerical/formula-contract.d.ts +67 -7
  831. package/dist/numerical/formula-contract.d.ts.map +1 -1
  832. package/dist/numerical/formula-contract.js +68 -42
  833. package/dist/numerical/formula-contract.js.map +1 -1
  834. package/dist/numerical/formula-dimension.d.ts +17 -7
  835. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  836. package/dist/numerical/formula-dimension.js +120 -44
  837. package/dist/numerical/formula-dimension.js.map +1 -1
  838. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  839. package/dist/numerical/formula-mathts.js +10 -3
  840. package/dist/numerical/formula-mathts.js.map +1 -1
  841. package/dist/numerical/formula-registry.d.ts +13 -3
  842. package/dist/numerical/formula-registry.d.ts.map +1 -1
  843. package/dist/numerical/formula-registry.js +7 -2
  844. package/dist/numerical/formula-registry.js.map +1 -1
  845. package/dist/numerical/geodesic-integrator.js.map +1 -1
  846. package/dist/numerical/geometrized.js.map +1 -1
  847. package/dist/numerical/gl4-integrator.d.ts +28 -27
  848. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  849. package/dist/numerical/gl4-integrator.js +44 -45
  850. package/dist/numerical/gl4-integrator.js.map +1 -1
  851. package/dist/numerical/grid-field.js.map +1 -1
  852. package/dist/numerical/index.js.map +1 -1
  853. package/dist/numerical/input-validation.d.ts +3 -6
  854. package/dist/numerical/input-validation.d.ts.map +1 -1
  855. package/dist/numerical/input-validation.js +4 -8
  856. package/dist/numerical/input-validation.js.map +1 -1
  857. package/dist/numerical/killing.d.ts +8 -5
  858. package/dist/numerical/killing.d.ts.map +1 -1
  859. package/dist/numerical/killing.js.map +1 -1
  860. package/dist/numerical/klein-gordon.js.map +1 -1
  861. package/dist/numerical/kretschmann.js.map +1 -1
  862. package/dist/numerical/lowering-utils.js.map +1 -1
  863. package/dist/numerical/lowering.d.ts.map +1 -1
  864. package/dist/numerical/lowering.js +7 -17
  865. package/dist/numerical/lowering.js.map +1 -1
  866. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  867. package/dist/numerical/mathts-engine.js +11 -6
  868. package/dist/numerical/mathts-engine.js.map +1 -1
  869. package/dist/numerical/metric-inverse.js.map +1 -1
  870. package/dist/numerical/null-ic.js.map +1 -1
  871. package/dist/numerical/null-ray-integrator.js +4 -4
  872. package/dist/numerical/null-ray-integrator.js.map +1 -1
  873. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  874. package/dist/numerical/pderiv.d.ts.map +1 -1
  875. package/dist/numerical/pderiv.js +9 -2
  876. package/dist/numerical/pderiv.js.map +1 -1
  877. package/dist/numerical/perihelion-finder.js.map +1 -1
  878. package/dist/numerical/quadrature.d.ts +5 -2
  879. package/dist/numerical/quadrature.d.ts.map +1 -1
  880. package/dist/numerical/quadrature.js +20 -3
  881. package/dist/numerical/quadrature.js.map +1 -1
  882. package/dist/numerical/spacetime-metrics.d.ts +17 -19
  883. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  884. package/dist/numerical/spacetime-metrics.js +158 -250
  885. package/dist/numerical/spacetime-metrics.js.map +1 -1
  886. package/dist/numerical/strides.js.map +1 -1
  887. package/dist/numerical/tensor-engine.d.ts +9 -5
  888. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  889. package/dist/numerical/tensor-engine.js.map +1 -1
  890. package/dist/numerical/types.js.map +1 -1
  891. package/dist/numerical/weyl-lowering.js.map +1 -1
  892. package/dist/relations/category.js.map +1 -1
  893. package/dist/relations/composition-table.d.ts +4 -4
  894. package/dist/relations/composition-table.js +4 -4
  895. package/dist/relations/composition-table.js.map +1 -1
  896. package/dist/relations/conventions.js.map +1 -1
  897. package/dist/relations/domain-regimes.js.map +1 -1
  898. package/dist/relations/regime-registration.js.map +1 -1
  899. package/dist/relations/regime-vocabularies.js.map +1 -1
  900. package/dist/relations/regime.d.ts +18 -8
  901. package/dist/relations/regime.d.ts.map +1 -1
  902. package/dist/relations/regime.js +26 -14
  903. package/dist/relations/regime.js.map +1 -1
  904. package/dist/relations/types.d.ts +26 -6
  905. package/dist/relations/types.d.ts.map +1 -1
  906. package/dist/relations/types.js +15 -3
  907. package/dist/relations/types.js.map +1 -1
  908. package/package.json +10 -14
  909. package/dist/bridges/registry.d.ts +0 -60
  910. package/dist/bridges/registry.d.ts.map +0 -1
  911. package/dist/bridges/registry.js +0 -87
  912. package/dist/bridges/registry.js.map +0 -1
  913. package/dist/cli/poster-source.d.ts +0 -154
  914. package/dist/cli/poster-source.d.ts.map +0 -1
  915. package/dist/cli/poster-source.js +0 -184
  916. package/dist/cli/poster-source.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-graph.js","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canonical-graph.js","sourceRoot":"","sources":["../../src/composition/canonical-graph.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Canonical-only graph — project the standard-physics L-layer\n * (`CANONICAL_EQUATIONS`) into the composition-graph edge vocabulary so the\n * discovery/analysis funnel (`upt discover` / `candidates` / `map`) can run on\n * established textbook physics ALONE, with the speculative bridge catalog\n * excluded.\n *\n * WHY this exists: `CATALOG_GRAPH` mixes established bridges with speculative\n * ones (the counts per status are NOTES.md's), so a `promising` discovery\n * there is polluted by speculation. Feeding ONLY canonical equations gives (a) a new-candidate\n * review surface motivated by textbook physics, and (b) a regression harness —\n * discovery on canonical-only must introduce no numerical contradiction\n * (standard physics, fed to the inference suite, stays self-consistent).\n *\n * DESIGN — parity with the bridge graph:\n * - Universal constants (G, c, ℏ, k_B, ε₀, σ_sb, b, e) are BAKED INTO the\n * evaluator, exactly as the catalog edges bake them — they are not graph\n * nodes. This keeps the candidate proposer about physical OBSERVABLES and\n * lets the numeric filter fire from the standard `{ mass }` anchor (an\n * anchor cannot supply G/c/ℏ). A `governing` entry is a constant iff its\n * name is registered in `CANONICAL_CONSTANT_SI`; everything else is a\n * physical variable and becomes a source/target node.\n * - Every canonical equation is `established` physics, so every edge is\n * `confidence: 'established'` — the canonical graph IS the anchored core.\n * - `kind: 'law'` (within-domain ground truth, not a cross-regime bridge);\n * `beId: null` (not a catalog bridge). **Annotation-correctness note:**\n * `toEdge` hardcodes `kind:'law'`; the attributes an edge carries do not\n * decide its kind here. The attribute mapping is annotation-only; there\n * is no edge-kind path and no delta to measure.\n * - Evaluator: the dimensional MONOMIAL gives the power law over the variable\n * sources, times the baked constant factor. A fully-quantitative scalar\n * AST whose extra factors are a closed dimensionless coefficient\n * (4π, ln 2, 8π/3, …) multiplies that coefficient on the Buckingham path,\n * including a minus sign. The sourced prefactor table owns the factor\n * for an AST that is intentionally constant-free, so that path does not\n * multiply the AST coefficient again. A null monomial, or a dimensionless\n * count, is evaluated from the AST, which already folded those leaves.\n * A sourced prefactor from `canonicalPrefactor` multiplies as well. A dimensionless\n * group in `CANONICAL_GROUP_PREFACTORS` multiplies only when that input is\n * present (`√γ` for sound speed). Absent, a dimensional entry with no\n * sourced prefactor returns no number. That table is\n * outside this tree. `scalar-up-to-constant` is not a license to drop ½,\n * 2π, or 6π. A sourced 1 stays a value. A fully-quantitative dimensionless count (`N`,\n * `1-e²`) is a source in `formulaFactors`, not a stub that drops the\n * rest of the coefficient: the evaluator multiplies it, and a missing\n * count does not return the count-free value. A `scalar-up-to-constant`\n * stub (Jarzynski's log average) stays out of that list. A G-closure\n * is not given a second constant here. Where\n * dimensions cannot pin a monomial\n * (`monomial: null`), a fully-quantitative product, quotient, or integer\n * power is evaluated from that AST, so a numeric leaf (4, 6π, 8π) is not\n * dropped and Newton's two same-dim masses still return G m₁ m₂ / r².\n * A fully-quantitative sum or transcendental (Carnot, the first law, the\n * Boltzmann factor) is evaluated from that same AST. A\n * `scalar-up-to-constant` stub still carries a NaN evaluator;\n * `retrodict` accepts only finite derivations, so it abstains on those\n * rather than inventing a monomial or presenting the dropped ½ as the law.\n *\n * The public counterpart to `CATALOG_GRAPH` (the bridge-catalog graph): exported\n * from the package manifest and surfaced via the CLI's `--source=canonical`\n * flag on `discover` / `candidates` / `map`.\n *\n * @module composition/canonical-graph\n */\n\nimport type { BridgeEdge, ValidityDomain } from './edge.js';\nimport type { Quantity, RegimeAttributes } from './quantity.js';\nimport { regimeAttributesOf } from './quantity.js';\nimport { AXES } from './axes.js';\nimport type { CanonicalEquation } from '../canonical/canonical-equation.js';\nimport { CANONICAL_EQUATIONS } from '../canonical/registry.js';\nimport { applyCarrierSignPolicy } from '../bridges/carrier-sign.js';\nimport { CONSTANT_REGISTRY, CONSTANTS, piMultipleValue } from '../dimensional/symbolic-constants.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport type { InformationMeasure } from '../core/types.js';\nimport { CHARGE, DIMENSIONLESS, MASS } from '../dimensional/types.js';\nimport { equals } from '../dimensional/algebra.js';\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { CANONICAL_GROUP_PREFACTORS, canonicalGroupPrefactor, canonicalPrefactor } from './canonical-prefactors.js';\nimport { evalExpr } from './expr-eval.js';\nimport { monomialExponents } from './formula-shape.js';\nimport { HoldsError, holds } from '../bridges/holds.js';\nimport { formulaNames, formulaScope } from '../bridges/expr-parse.js';\n\n/** A universal constant a canonical `governing` list may name: SI value + dim. Named by the public `CANONICAL_CONSTANTS`. @public */\nexport interface ConstantDef {\n readonly value: number;\n readonly dim: Dimension;\n}\n\n/**\n * The universal constants a canonical `governing` list may name, under every\n * registered spelling, with SI value AND dimension: the canonical rows of the\n * constant registry. A governing entry is BAKED into the evaluator iff its\n * name AND dimension match an entry here; everything else is a physical\n * variable (a graph node). The dimension guard is load-bearing: it stops a\n * future same-named physical variable (e.g. orbital eccentricity `e`,\n * dimensionless) from being silently replaced by a constant of the same name.\n */\nexport const CANONICAL_CONSTANTS: Readonly<Record<string, ConstantDef>> = Object.fromEntries(\n CONSTANT_REGISTRY.filter((row) => row.canonical).flatMap((row) =>\n [row.name, ...row.spellings].map((spelling) => [spelling, { value: row.value, dim: row.dim }]),\n ),\n);\n\n/**\n * Map camelCase `InformationMeasure` (from canonical regime) to kebab-case\n * `RegimeAttributes.information` (for composition graph).\n */\nconst INFO_MAP: Record<InformationMeasure, NonNullable<RegimeAttributes['information']>> = {\n vonNeumann: 'von-neumann',\n shannon: 'shannon',\n kolmogorov: 'kolmogorov',\n quantumDiscord: 'discord',\n};\n\n/** A governing entry is a baked constant iff its name AND dimension match. */\nconst constantValue = (name: string, dim: Dimension): number | null => {\n const c = CANONICAL_CONSTANTS[name];\n return c !== undefined && equals(c.dim, dim) ? c.value : null;\n};\n\n/**\n * Carry every registry axis the canonical regime states under the same\n * vocabulary (scale, force, symmetry), plus information through `INFO_MAP`,\n * whose spelling differs. `TensorIndices.topology` is a number, not a\n * `TopologyAxis`, and `dimension` is not a registry axis; neither is carried.\n * The result is checked against the registry, so a canonical regime value\n * outside an axis's value list is a load-time error, not an unstated axis.\n */\nfunction attributesOf(eq: CanonicalEquation): RegimeAttributes {\n const stated: Record<string, string> = {};\n for (const { name } of AXES) {\n const value = (eq.regime as Readonly<Record<string, unknown>>)[name];\n if (name === 'information' || typeof value !== 'string') continue;\n stated[name] = value;\n }\n if (eq.regime.information) stated['information'] = INFO_MAP[eq.regime.information];\n return regimeAttributesOf(stated, `canonical ${eq.id} regime`);\n}\n\nconst PERMISSIVE_DOMAIN: ValidityDomain = {\n description: 'standard-physics regime (canonical L-layer)',\n predicate: () => true,\n};\n\n/**\n * The validity domain of `eq`: its stated condition over the source names, or\n * the permissive domain when none is stated. An unbound name is a violation.\n */\nfunction domainOf(eq: CanonicalEquation, sourceNames: readonly string[]): ValidityDomain {\n const text = eq.holds;\n if (text === undefined) return PERMISSIVE_DOMAIN;\n return {\n description: text,\n predicate: (inputs) => {\n try {\n return holds(text, inputs, formulaScope(), [...formulaNames(), ...sourceNames], sourceNames);\n } catch (error) {\n if (error instanceof HoldsError) return false;\n throw error;\n }\n },\n };\n}\n\n/** A registered or literal dimensionless number, or undefined when `name` is not one. */\nfunction dimensionlessLeaf(name: string): number | undefined {\n const c = CONSTANTS[name];\n if (c !== undefined && equals(c.dim, DIMENSIONLESS)) return c.value;\n const pi = piMultipleValue(name);\n if (pi !== undefined) return pi;\n const n = Number(name);\n return Number.isFinite(n) ? n : undefined;\n}\n\n/**\n * The dimensionless coefficient of a product or quotient. Dimensionful symbols\n * contribute 1 — the monomial evaluator already carries them. A sum, a\n * non-scalar arm, or a non-literal exponent is not a closed coefficient.\n */\nfunction dimensionlessCoefficient(node: ExprNode): number | undefined {\n if (node.kind === 'symbol') {\n const v = dimensionlessLeaf(node.name);\n return v !== undefined ? v : 1;\n }\n if (node.kind !== 'op') return undefined;\n if (node.op === '*') {\n let acc = 1;\n for (const a of node.args) {\n const c = dimensionlessCoefficient(a);\n if (c === undefined) return undefined;\n acc *= c;\n }\n return acc;\n }\n if (node.op === '/') {\n if (node.args.length !== 2) return undefined;\n const n = dimensionlessCoefficient(node.args[0]!);\n const d = dimensionlessCoefficient(node.args[1]!);\n if (n === undefined || d === undefined || d === 0) return undefined;\n return n / d;\n }\n if (node.op === '^') {\n const base = node.args[0];\n const exp = node.args[1];\n if (base === undefined || exp === undefined || exp.kind !== 'symbol') return undefined;\n const e = Number(exp.name);\n if (!Number.isFinite(e)) return undefined;\n if (base.kind === 'symbol') {\n const v = dimensionlessLeaf(base.name);\n return v !== undefined ? Math.pow(v, e) : 1;\n }\n const inner = dimensionlessCoefficient(base);\n return inner === undefined ? undefined : Math.pow(inner, e);\n }\n return undefined;\n}\n\n/** A symbol the coefficient walker would treat as 1 but that is not a constant or a governing name. */\nfunction hasUnresolvedStub(node: ExprNode, governing: ReadonlySet<string>): boolean {\n if (node.kind === 'symbol') {\n if (dimensionlessLeaf(node.name) !== undefined) return false;\n if (governing.has(node.name)) return false;\n if (node.name in CONSTANTS) return false;\n return true;\n }\n if (node.kind === 'op') return node.args.some((a) => hasUnresolvedStub(a, governing));\n return true;\n}\n\n/**\n * The closed dimensionless factor a fully-quantitative AST records in front of\n * its dimensional monomial. `undefined` when there is nothing to multiply\n * (no AST, not fully quantitative, a stub, a sum, a factor of +1, or a factor\n * the sourced prefactor table already owns).\n */\nfunction recordedDimensionlessCoefficient(eq: CanonicalEquation): number | undefined {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return undefined;\n // The table is the sourced multiplier for an AST that stays constant-free.\n // Multiplying the AST as well would count that factor twice.\n if (canonicalPrefactor(eq.id) !== undefined) return undefined;\n const governing = new Set(eq.dimensional.governing.map((g) => g.name));\n if (hasUnresolvedStub(eq.scalarAst, governing)) return undefined;\n const c = dimensionlessCoefficient(eq.scalarAst);\n if (c === undefined || !Number.isFinite(c) || c === 0) return undefined;\n if (Math.abs(c - 1) < 1e-12) return undefined;\n return c;\n}\n\n/**\n * Dimensionless counts a fully-quantitative AST multiplies in and Buckingham\n * cannot see. `scalar-up-to-constant` stays excluded: that stub is the\n * unfixed factor, not a required input.\n */\nfunction formulaFactorExponents(eq: CanonicalEquation): Record<string, number> {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return {};\n const powers = monomialExponents(eq.scalarAst);\n if (powers === undefined) return {};\n const governing = new Set(eq.dimensional.governing.map((g) => g.name));\n const dims = new Map<string, Dimension>();\n const collectDims = (node: ExprNode): void => {\n if (node.kind === 'symbol') dims.set(node.name, node.dim);\n else if (node.kind === 'op') for (const arg of node.args) collectDims(arg);\n };\n collectDims(eq.scalarAst);\n const factors: Record<string, number> = {};\n for (const [name, exp] of powers) {\n if (exp === 0) continue;\n const dim = dims.get(name);\n if (dim === undefined || !equals(dim, DIMENSIONLESS)) continue;\n if (dimensionlessLeaf(name) !== undefined) continue;\n if (governing.has(name) || name in CONSTANTS) continue;\n factors[name] = exp;\n }\n return factors;\n}\n\ntype InputParity = 'even' | 'odd' | 'neither' | 'absent';\n\n/**\n * Sign parity of `node` as a function of `name`. A product of two odd\n * factors is even. An absolute value is even. An even integer power is\n * even. A fractional power of an even subexpression stays even\n * (`√(q²)`), and a fractional power of an odd one is not a magnitude.\n */\nfunction inputParity(node: ExprNode, name: string): InputParity {\n if (node.kind === 'symbol') return node.name === name ? 'odd' : 'absent';\n if (node.kind === 'abs') {\n const inner = inputParity(node.arg, name);\n if (inner === 'absent' || inner === 'neither') return inner;\n return 'even';\n }\n if (node.kind === 'transcendental' || node.kind === 'dirac-delta') {\n const inner = inputParity(node.arg, name);\n return inner === 'absent' ? 'absent' : 'neither';\n }\n if (node.kind !== 'op') return 'neither';\n if (node.op === '+' || node.op === '-') {\n const parts = node.args.map((arg) => inputParity(arg, name)).filter((p) => p !== 'absent');\n if (parts.length === 0) return 'absent';\n if (parts.some((p) => p === 'neither')) return 'neither';\n if (parts.every((p) => p === 'even')) return 'even';\n if (parts.every((p) => p === 'odd')) return 'odd';\n return 'neither';\n }\n if (node.op === '*' || node.op === '/') {\n let acc: InputParity = 'absent';\n for (const arg of node.args) {\n const part = inputParity(arg, name);\n if (part === 'neither') return 'neither';\n if (part === 'absent') continue;\n if (acc === 'absent') acc = part;\n else if (acc === 'odd' && part === 'odd') acc = 'even';\n else if (acc === 'odd' || part === 'odd') acc = 'odd';\n else acc = 'even';\n }\n return acc;\n }\n if (node.op === '^') {\n const base = node.args[0];\n const expNode = node.args[1];\n if (base === undefined || expNode === undefined || expNode.kind !== 'symbol') return 'neither';\n const exp = Number(expNode.name);\n const inner = inputParity(base, name);\n if (!Number.isFinite(exp) || inner === 'neither') return inner === 'absent' ? 'absent' : 'neither';\n if (inner === 'absent' || exp === 0) return 'absent';\n if (Number.isInteger(exp) && Math.abs(exp) % 2 === 0) return 'even';\n if (Number.isInteger(exp)) return inner;\n return inner === 'even' ? 'even' : 'neither';\n }\n return 'neither';\n}\n\n/** Names whose scalar AST is an even function. A magnitude uses these absolutely. */\nfunction evenInputNames(node: ExprNode | undefined): ReadonlySet<string> {\n if (node === undefined) return new Set();\n const names = new Set<string>();\n const walk = (n: ExprNode): void => {\n if (n.kind === 'symbol') names.add(n.name);\n else if (n.kind === 'op') for (const arg of n.args) walk(arg);\n else if (n.kind === 'abs' || n.kind === 'transcendental' || n.kind === 'dirac-delta') walk(n.arg);\n };\n walk(node);\n const even = new Set<string>();\n for (const name of names) {\n if (inputParity(node, name) === 'even') even.add(name);\n }\n return even;\n}\n\n/** Evaluate a fully-quantitative monomial AST, including its dimensionless counts. */\nfunction evaluateAstMonomial(\n eq: CanonicalEquation,\n powers: ReadonlyMap<string, number>,\n): (inputs: Record<string, number>) => number {\n const dimByName = new Map(eq.dimensional.governing.map((g) => [g.name, g.dim]));\n let constFactor = 1;\n const varExps: Array<[string, number]> = [];\n for (const [name, exp] of powers) {\n if (exp === 0) continue;\n const leaf = dimensionlessLeaf(name);\n if (leaf !== undefined) {\n constFactor *= Math.pow(leaf, exp);\n continue;\n }\n const dim = dimByName.get(name) ?? CONSTANTS[name]?.dim;\n const cv = dim !== undefined ? constantValue(name, dim) : null;\n if (cv !== null) constFactor *= Math.pow(cv, exp);\n else varExps.push([name, exp]);\n }\n return (inputs: Record<string, number>): number => {\n let v = constFactor;\n for (const [name, exp] of varExps) {\n const x = inputs[name];\n if (x === undefined || !Number.isFinite(x)) return Number.NaN;\n v *= Math.pow(x, exp);\n }\n return v;\n };\n}\n\n/** Numeric literal symbols (`1`, `-1`) the monomial path already folded. */\nfunction literalInputs(node: ExprNode, inputs: Record<string, number>): Record<string, number> {\n const scope: Record<string, number> = { ...inputs };\n const walk = (current: ExprNode): void => {\n if (current.kind === 'symbol') {\n if (Object.hasOwn(scope, current.name)) return;\n const numeric = Number(current.name);\n if (current.name.trim() !== '' && Number.isFinite(numeric)) scope[current.name] = numeric;\n return;\n }\n if (current.kind === 'op') for (const arg of current.args) walk(arg);\n else if (current.kind === 'abs' || current.kind === 'transcendental' || current.kind === 'dirac-delta') walk(current.arg);\n };\n walk(node);\n return scope;\n}\n\n/**\n * A fully-quantitative sum or transcendental. The monomial exponent walk\n * cannot see it. `scalar-up-to-constant` stays out: that status dropped a\n * factor, and the AST is not the law.\n */\nfunction evaluateClosedScalar(\n eq: CanonicalEquation,\n): ((inputs: Record<string, number>) => number) | undefined {\n if (eq.epistemicStatus !== 'fully-quantitative' || eq.scalarAst === undefined) return undefined;\n if (monomialExponents(eq.scalarAst) !== undefined) return undefined;\n const ast = eq.scalarAst;\n const required = eq.dimensional.governing.filter((governing) => constantValue(governing.name, governing.dim) === null);\n return (inputs) => {\n for (const governing of required) {\n const value = inputs[governing.name];\n if (value === undefined || !Number.isFinite(value)) return Number.NaN;\n }\n try {\n const value = evalExpr(ast, literalInputs(ast, inputs));\n return Number.isFinite(value) ? value : Number.NaN;\n } catch {\n return Number.NaN;\n }\n };\n}\n\n/**\n * Build the evaluator for one canonical equation, keyed by its VARIABLE source\n * names. Variables carry the monomial exponent from `inputs`; constants\n * contribute a fixed baked factor. A fully-quantitative monomial multiplies\n * its recorded dimensionless coefficient when the sourced table does not\n * already own that factor, and multiplies the sourced table prefactor.\n * A fully-quantitative AST that names a dimensionless count, or whose\n * Buckingham monomial is null, is evaluated from that AST so the count and\n * the numeric leaves (6π) are not dropped. A fully-quantitative sum or\n * transcendental is evaluated from that AST too. The edge applies the sign policy\n * once before this function: an input the AST is even in is an absolute\n * value, and a product odd in both charge and mobility rejects opposite\n * signs. This function does not do that again.\n * Returns NaN when the monomial is null and the AST is not a fully-quantitative\n * closed form, and when a dimensional coefficient is unset and its group is unbound.\n * `retrodict` then abstains.\n */\nfunction makeEvaluate(\n eq: CanonicalEquation,\n): (inputs: Record<string, number>) => number {\n const powers = eq.epistemicStatus === 'fully-quantitative' ? monomialExponents(eq.scalarAst) : undefined;\n const factors = formulaFactorExponents(eq);\n if (powers !== undefined && (Object.keys(factors).length > 0 || eq.dimensional.monomial === null)) {\n return evaluateAstMonomial(eq, powers);\n }\n const closed = evaluateClosedScalar(eq);\n if (closed !== undefined) return closed;\n const monomial = eq.dimensional.monomial;\n if (monomial === null) return () => NaN;\n const dimByName = new Map(eq.dimensional.governing.map((g) => [g.name, g.dim]));\n let constFactor = 1;\n const varExps: Array<[string, number]> = [];\n for (const [name, exp] of Object.entries(monomial)) {\n const dim = dimByName.get(name);\n const cv = dim !== undefined ? constantValue(name, dim) : null;\n if (cv !== null) constFactor *= Math.pow(cv, exp);\n else varExps.push([name, exp]);\n }\n const recorded = recordedDimensionlessCoefficient(eq);\n const tabled = canonicalPrefactor(eq.id);\n const group = CANONICAL_GROUP_PREFACTORS.find((p) => p.id === eq.id);\n const unset = eq.epistemicStatus === 'dimensional' && tabled === undefined;\n return (inputs: Record<string, number>): number => {\n if (unset) {\n if (group === undefined) return Number.NaN;\n const bound = inputs[group.group];\n if (bound === undefined || !Number.isFinite(bound)) return Number.NaN;\n }\n let v = constFactor;\n if (recorded !== undefined) v *= recorded;\n if (tabled !== undefined) v *= tabled;\n if (group !== undefined) {\n const g = inputs[group.group];\n if (g !== undefined && Number.isFinite(g)) {\n const factor = canonicalGroupPrefactor(eq.id, g);\n if (factor !== undefined) v *= factor;\n }\n }\n for (const [name, exp] of varExps) {\n const x = inputs[name];\n v *= Math.pow(x === undefined ? Number.NaN : x, exp);\n }\n return v;\n };\n}\n\n/** Project one canonical equation to a composition-graph edge. */\nfunction toEdge(eq: CanonicalEquation): BridgeEdge {\n const attributes = attributesOf(eq);\n const target: Quantity = {\n name: eq.dimensional.target.name,\n symbol: eq.dimensional.target.name,\n dim: eq.dimensional.target.dim,\n attributes,\n };\n const factors = formulaFactorExponents(eq);\n const sources: Quantity[] = eq.dimensional.governing\n .filter((g) => constantValue(g.name, g.dim) === null)\n .map((g) => ({ name: g.name, symbol: g.name, dim: g.dim, attributes }));\n for (const name of Object.keys(factors)) {\n sources.push({ name, symbol: name, dim: DIMENSIONLESS, attributes });\n }\n const evaluateRaw = makeEvaluate(eq);\n const even = evenInputNames(eq.scalarAst);\n const evenInputs = sources.filter((source) => even.has(source.name)).map((source) => source.name);\n const monomial = eq.dimensional.monomial;\n return {\n id: eq.id,\n beId: null,\n kind: 'law',\n label: eq.name,\n sources,\n target,\n confidence: 'established',\n domain: domainOf(eq, sources.map((source) => source.name)),\n evaluate: (inputs) => evaluateRaw(applyCarrierSignPolicy(monomial, inputs, even)),\n citation: eq.references[0] ?? eq.id,\n ...(eq.epistemicStatus === 'dimensional' && canonicalPrefactor(eq.id) === undefined\n ? { coefficientUnset: true as const }\n : {}),\n ...(Object.keys(factors).length > 0 ? { formulaFactors: factors } : {}),\n ...(evenInputs.length > 0 ? { evenInputs } : {}),\n };\n}\n\n/**\n * Project canonical equations into composition-graph edges (defaults to the\n * full registry). See the module docstring for the modelling decisions.\n *\n * @internal\n */\nexport function canonicalToEdges(\n equations: readonly CanonicalEquation[] = CANONICAL_EQUATIONS,\n): BridgeEdge[] {\n return equations.map(toEdge);\n}\n\n/**\n * The standard-physics composition graph: every canonical equation as an\n * `established` `law` edge. The bridge-free counterpart to `CATALOG_GRAPH`.\n *\n * @internal\n */\nexport const CANONICAL_GRAPH: readonly BridgeEdge[] = canonicalToEdges();\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../../src/composition/canonical-json.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canonical-json.js","sourceRoot":"","sources":["../../src/composition/canonical-json.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * One canonical-JSON serializer with two named profiles.\n *\n * `probe` keeps the Date-to-ISO rule and the undefined-hole-to-null rule.\n * `record` keeps the bytes the CLI experiment record hashed before this module\n * existed: a `Date` becomes `{}`, and an array hole stays a hole.\n *\n * `captureEnvironment` is the same split. The probe profile stores the Node\n * version, the platform, and the architecture. The record profile stores the\n * UPT version, the parser, the peers, and the constant-table hashes. The\n * record sources are arguments because this module does not import `cli`.\n *\n * @module composition/canonical-json\n */\n\nimport { createHash } from 'node:crypto';\nimport type { EnvironmentFingerprint } from './probe/types.js';\n\n/** Which caller’s bytes `canonicalJson` writes. */\nexport type JsonProfile = 'record' | 'probe';\n\n/** Values the record profile reads. The caller supplies them. */\nexport interface RecordEnvironmentSources {\n readonly uptVersion: string;\n readonly node: string;\n readonly formulaParser: () => Promise<string>;\n readonly simplifier: () => Promise<boolean>;\n readonly peers: () => Record<string, string | null>;\n readonly constantTables: () => Promise<\n Record<string, { values: Record<string, number | string | boolean>; sha256: string }>\n >;\n}\n\n/** The record profile’s environment object. */\nexport interface RecordEnvironmentSnapshot {\n uptVersion: string;\n node: string;\n formulaParser: string;\n simplifier: boolean;\n peers: Record<string, string | null>;\n constantTables: Record<string, { values: Record<string, number | string | boolean>; sha256: string }>;\n}\n\nfunction canonicalJsonRecord(v: unknown): string {\n if (Array.isArray(v)) return `[${v.map(canonicalJsonRecord).join(',')}]`;\n if (typeof v === 'object' && v !== null) {\n const o = v as Record<string, unknown>;\n return `{${Object.keys(o)\n .filter((k) => o[k] !== undefined)\n .sort()\n .map((k) => `${JSON.stringify(k)}:${canonicalJsonRecord(o[k])}`)\n .join(',')}}`;\n }\n return JSON.stringify(v) as string;\n}\n\nfunction probeCanonicalize(value: unknown): unknown {\n if (value === null || typeof value !== 'object') return value;\n if (value instanceof Date) return value.toISOString();\n if (Array.isArray(value)) {\n return value.map((item) => (item === undefined ? null : probeCanonicalize(item)));\n }\n const obj = value as Record<string, unknown>;\n const sorted: Record<string, unknown> = {};\n for (const key of Object.keys(obj).sort()) {\n const item = obj[key];\n if (item === undefined) continue;\n sorted[key] = probeCanonicalize(item);\n }\n return sorted;\n}\n\nfunction canonicalJsonProbe(value: unknown): string {\n const json = JSON.stringify(probeCanonicalize(value));\n return json === undefined ? 'null' : json;\n}\n\n/**\n * Deterministic JSON for one profile. The default profile is `probe`.\n *\n * @internal\n */\nexport function canonicalJson(value: unknown, profile: JsonProfile = 'probe'): string {\n return profile === 'record' ? canonicalJsonRecord(value) : canonicalJsonProbe(value);\n}\n\n/**\n * SHA-256 digest of `text` as lowercase hex.\n *\n * @internal\n */\nexport function sha256Hex(text: string): string {\n return createHash('sha256').update(text, 'utf8').digest('hex');\n}\n\n/**\n * SHA-256 of the probe profile of `value`.\n *\n * @internal\n */\nexport function hashCanonical(value: unknown): string {\n return sha256Hex(canonicalJson(value, 'probe'));\n}\n\nasync function recordEnvironment(sources: RecordEnvironmentSources): Promise<RecordEnvironmentSnapshot> {\n return {\n uptVersion: sources.uptVersion,\n node: sources.node,\n formulaParser: await sources.formulaParser(),\n simplifier: await sources.simplifier(),\n peers: sources.peers(),\n constantTables: await sources.constantTables(),\n };\n}\n\n/**\n * Host fingerprint for a probe run, or the toolchain fingerprint for a record.\n * The zero-argument call is the probe profile.\n *\n * @internal\n */\nexport function captureEnvironment(): EnvironmentFingerprint;\nexport function captureEnvironment(\n profile: 'record',\n sources: RecordEnvironmentSources,\n): Promise<RecordEnvironmentSnapshot>;\nexport function captureEnvironment(\n profile?: 'record',\n sources?: RecordEnvironmentSources,\n): EnvironmentFingerprint | Promise<RecordEnvironmentSnapshot> {\n if (profile === 'record') {\n if (sources === undefined) {\n throw new TypeError('captureEnvironment record profile requires sources');\n }\n return recordEnvironment(sources);\n }\n return {\n node: process.versions.node,\n platform: process.platform,\n arch: process.arch,\n };\n}\n"]}
@@ -1,40 +1,21 @@
1
1
  /**
2
- * Exact prefactors for canonical equations that `src/canonical` records only
3
- * dimensionally or only up to a constant.
2
+ * Sourced prefactors of canonical equations, projected from the entries.
4
3
  *
5
4
  * CE-pendulum-period is a monomial and CE-kinetic-energy's AST is `m·v²`, so a
6
5
  * user formula wrong by 2π or ½ could not be caught (persona findings L2, L7).
7
- * `src/canonical` is a pinned Criterion 3 input tree, so the prefactors live
8
- * here, outside it (Mothership ruling 2026-09-25). Each prefactor multiplies the
9
- * entry's AST, or its monomial when it has no AST; a test holds that neither
10
- * carries a constant of its own.
11
- *
12
- * Every quote is verbatim wikitext from the pinned Wikipedia revision in its
13
- * locator, fetched and matched on 2026-09-25 (the first nine), 2026-09-27 (the
14
- * next rows, and the group prefactor below), or 2026-10-04 (dynamic pressure,
15
- * Laplace pressure, inductor energy, equipartition, kinetic pressure, half-life,
16
- * and the Thomson cross-section).
6
+ * Each entry that records only dimensionally, or only up to a constant, states
7
+ * its exact prefactor as `prefactor` with a verbatim quote and a revision-pinned
8
+ * locator; a test holds that neither its AST nor its monomial carries a constant
9
+ * of its own. The lookups here read those fields; the entry owns the fact, and
10
+ * a caller that wants the quote or the locator reads the entry.
17
11
  *
18
12
  * A prefactor that depends on a dimensionless group the entry's dimensional
19
- * record does not carry (CE-sound-speed's √γ) is not a constant, so it is not in
20
- * CANONICAL_PREFACTORS and canonicalPrefactor does not return it: it is in
21
- * CANONICAL_GROUP_PREFACTORS, which only a caller that can bind the group uses.
13
+ * record does not carry (CE-sound-speed's √γ) is not a constant: it is the
14
+ * entry's `groupPrefactor`, and `canonicalPrefactor` does not return it. Only
15
+ * a caller that can bind the group uses `canonicalGroupPrefactor`.
22
16
  *
23
17
  * @module composition/canonical-prefactors
24
18
  */
25
- /** One sourced prefactor. @internal */
26
- export interface CanonicalPrefactor {
27
- /** A `CanonicalEquation.id`. */
28
- readonly id: string;
29
- /** The exact dimensionless factor in front of the entry's AST or monomial. */
30
- readonly prefactor: number;
31
- /** Verbatim source text the factor is read from. */
32
- readonly quote: string;
33
- /** Where the quote is: page, revision id and wikitext line. */
34
- readonly locator: string;
35
- }
36
- /** The sourced prefactors, by canonical id. @internal */
37
- export declare const CANONICAL_PREFACTORS: readonly CanonicalPrefactor[];
38
19
  /** The sourced prefactor of a canonical entry, or `undefined`. @internal */
39
20
  export declare function canonicalPrefactor(id: string): number | undefined;
40
21
  /**
@@ -50,7 +31,7 @@ export interface CanonicalGroupPrefactor {
50
31
  readonly quote: string;
51
32
  readonly locator: string;
52
33
  }
53
- /** The sourced group prefactors, by canonical id. @internal */
34
+ /** The sourced group prefactors, one row per entry that records one. @internal */
54
35
  export declare const CANONICAL_GROUP_PREFACTORS: readonly CanonicalGroupPrefactor[];
55
36
  /** The prefactor of a group-dependent entry at a value of its group, or `undefined`. @internal */
56
37
  export declare function canonicalGroupPrefactor(id: string, groupValue: number): number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-prefactors.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EA4K7D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,+DAA+D;AAC/D,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAUxE,CAAC;AAEF,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1F"}
1
+ {"version":3,"file":"canonical-prefactors.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,EAAE,SAAS,uBAAuB,EAExE,CAAC;AAEF,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG1F"}
@@ -1,217 +1,30 @@
1
1
  /**
2
- * Exact prefactors for canonical equations that `src/canonical` records only
3
- * dimensionally or only up to a constant.
2
+ * Sourced prefactors of canonical equations, projected from the entries.
4
3
  *
5
4
  * CE-pendulum-period is a monomial and CE-kinetic-energy's AST is `m·v²`, so a
6
5
  * user formula wrong by 2π or ½ could not be caught (persona findings L2, L7).
7
- * `src/canonical` is a pinned Criterion 3 input tree, so the prefactors live
8
- * here, outside it (Mothership ruling 2026-09-25). Each prefactor multiplies the
9
- * entry's AST, or its monomial when it has no AST; a test holds that neither
10
- * carries a constant of its own.
11
- *
12
- * Every quote is verbatim wikitext from the pinned Wikipedia revision in its
13
- * locator, fetched and matched on 2026-09-25 (the first nine), 2026-09-27 (the
14
- * next rows, and the group prefactor below), or 2026-10-04 (dynamic pressure,
15
- * Laplace pressure, inductor energy, equipartition, kinetic pressure, half-life,
16
- * and the Thomson cross-section).
6
+ * Each entry that records only dimensionally, or only up to a constant, states
7
+ * its exact prefactor as `prefactor` with a verbatim quote and a revision-pinned
8
+ * locator; a test holds that neither its AST nor its monomial carries a constant
9
+ * of its own. The lookups here read those fields; the entry owns the fact, and
10
+ * a caller that wants the quote or the locator reads the entry.
17
11
  *
18
12
  * A prefactor that depends on a dimensionless group the entry's dimensional
19
- * record does not carry (CE-sound-speed's √γ) is not a constant, so it is not in
20
- * CANONICAL_PREFACTORS and canonicalPrefactor does not return it: it is in
21
- * CANONICAL_GROUP_PREFACTORS, which only a caller that can bind the group uses.
13
+ * record does not carry (CE-sound-speed's √γ) is not a constant: it is the
14
+ * entry's `groupPrefactor`, and `canonicalPrefactor` does not return it. Only
15
+ * a caller that can bind the group uses `canonicalGroupPrefactor`.
22
16
  *
23
17
  * @module composition/canonical-prefactors
24
18
  */
25
- /** The sourced prefactors, by canonical id. @internal */
26
- export const CANONICAL_PREFACTORS = [
27
- {
28
- id: 'CE-pendulum-period',
29
- prefactor: 2 * Math.PI,
30
- quote: String.raw `T_0 = 2\pi\sqrt{\frac \ell g}`,
31
- locator: "Wikipedia, 'Pendulum (mechanics)', revision 1374595895, wikitext line 171",
32
- },
33
- {
34
- id: 'CE-kinetic-energy',
35
- prefactor: 0.5,
36
- quote: String.raw `E_\text{k} = \frac{1}{2} mv^2`,
37
- locator: "Wikipedia, 'Kinetic energy', revision 1370969006, wikitext line 56",
38
- },
39
- {
40
- id: 'CE-rotational-kinetic-energy',
41
- prefactor: 0.5,
42
- quote: String.raw `E_\text{rotational} = \tfrac{1}{2} I \omega^2`,
43
- locator: "Wikipedia, 'Rotational energy', revision 1258577842, wikitext line 3",
44
- },
45
- {
46
- id: 'CE-capacitor-energy',
47
- prefactor: 0.5,
48
- quote: String.raw `W = \frac{1}{2}CV^2`,
49
- locator: "Wikipedia, 'Capacitor', revision 1375788837, wikitext line 137",
50
- },
51
- {
52
- id: 'CE-schwarzschild-radius',
53
- prefactor: 2,
54
- quote: String.raw `Schwarzschild radius{{br}}<math display="inline">\frac{2GM}{c^2}</math>`,
55
- locator: "Wikipedia, 'Schwarzschild radius', revision 1373854769, wikitext line 25",
56
- },
57
- {
58
- // a³/T² = GM/(4π²) for M ≫ m gives T = 2π √(a³/(GM)); the canonical monomial is a^1.5 (GM)^-0.5.
59
- id: 'CE-kepler-third',
60
- prefactor: 2 * Math.PI,
61
- quote: String.raw `\frac{a^3}{T^2} = \frac{G(M + m)}{4\pi^2} \approx \frac{GM}{4\pi^2}`,
62
- locator: "Wikipedia, 'Kepler's laws of planetary motion', revision 1376360196, wikitext line 232",
63
- },
64
- {
65
- id: 'CE-lc-resonance',
66
- prefactor: 1,
67
- quote: String.raw `\omega_0 = \frac{1}{\sqrt{LC}},`,
68
- locator: "Wikipedia, 'LC circuit', revision 1350658867, wikitext line 66",
69
- },
70
- {
71
- // The Stokes friction coefficient ζ = 6πηr; the drag at speed v is F = ζ v.
72
- id: 'CE-stokes-drag',
73
- prefactor: 6 * Math.PI,
74
- quote: String.raw `\zeta = 6 \pi \, \eta \, r,`,
75
- locator: "Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 77",
76
- },
77
- {
78
- id: 'CE-stokes-einstein',
79
- prefactor: 1 / (6 * Math.PI),
80
- quote: String.raw `D = \frac{k_\text{B} T}{6\pi\,\eta\,r}.`,
81
- locator: "Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 79",
82
- },
83
- {
84
- id: 'CE-simple-harmonic-frequency',
85
- prefactor: 1,
86
- quote: String.raw `\omega = \sqrt{\frac k m}.`,
87
- locator: "Wikipedia, 'Harmonic oscillator', revision 1373924880, wikitext line 44",
88
- },
89
- {
90
- id: 'CE-spring-potential-energy',
91
- prefactor: 0.5,
92
- quote: String.raw `U_\mathrm{el}(x) = \tfrac 1 2 kx^2`,
93
- locator: "Wikipedia, 'Hooke's law', revision 1375736650, wikitext line 146",
94
- },
95
- {
96
- id: 'CE-oscillator-energy',
97
- prefactor: 0.5,
98
- quote: String.raw `E = K + U = \tfrac12 k A^2.`,
99
- locator: "Wikipedia, 'Simple harmonic motion', revision 1347475303, wikitext line 80",
100
- },
101
- {
102
- // The source writes the tension T; the canonical entry calls it F.
103
- id: 'CE-string-wave-speed',
104
- prefactor: 1,
105
- quote: String.raw `v=\sqrt{T\over\mu},`,
106
- locator: "Wikipedia, 'String vibration', revision 1306385524, wikitext line 40",
107
- },
108
- {
109
- // The three Planck units are all-constant: compared once, at the SI values (persona finding W5).
110
- id: 'CE-planck-length',
111
- prefactor: 1,
112
- quote: String.raw `<math>l_\text{P} = \sqrt{\frac{\hbar G}{c^3}}</math>`,
113
- locator: "Wikipedia, 'Planck units', revision 1375441167, wikitext line 77",
114
- },
115
- {
116
- id: 'CE-planck-mass',
117
- prefactor: 1,
118
- quote: String.raw `<math>m_\text{P} = \sqrt{\frac{\hbar c}{G}}</math>`,
119
- locator: "Wikipedia, 'Planck units', revision 1375441167, wikitext line 82",
120
- },
121
- {
122
- id: 'CE-planck-time',
123
- prefactor: 1,
124
- quote: String.raw `<math>t_\text{P} = \sqrt{\frac{\hbar G}{c^5}}</math>`,
125
- locator: "Wikipedia, 'Planck units', revision 1375441167, wikitext line 87",
126
- },
127
- {
128
- // The AST is μ₀ I / r; the quoted wire field divides by 2π.
129
- id: 'CE-magnetic-field-wire',
130
- prefactor: 1 / (2 * Math.PI),
131
- quote: String.raw `B = \frac{\mu_0I}{2\pi x}`,
132
- locator: "Wikipedia, 'Magnetic field', revision 1375215267, wikitext line 876",
133
- },
134
- {
135
- // The AST divides by ε₀ c³ only; the quoted power divides by 6π as well.
136
- id: 'CE-larmor-power',
137
- prefactor: 1 / (6 * Math.PI),
138
- quote: String.raw `\frac{q^2 a^2}{6 \pi \varepsilon_0 c^3}`,
139
- locator: "Wikipedia, 'Larmor formula', revision 1352376843, wikitext line 9",
140
- },
141
- {
142
- // The quote's electric term is ε E²/2. In vacuum ε = ε₀, and the AST is ε₀ E².
143
- id: 'CE-field-energy-density',
144
- prefactor: 0.5,
145
- quote: String.raw `u = \frac{\varepsilon}{2} \mathbf{E}^2 + \frac{1}{2 \mu} \mathbf{B}^2`,
146
- locator: "Wikipedia, 'Energy density', revision 1366889538, wikitext line 81",
147
- },
148
- {
149
- // The L0 monomial is ħ/(m c). The quote is the reduced wavelength, so the factor is 1.
150
- // λ = h/(m c) is the separate fully-quantitative entry CE-compton-wavelength-full.
151
- id: 'CE-compton-wavelength',
152
- prefactor: 1,
153
- quote: String.raw `\lambda\!\!\!\bar{} = \frac{\lambda}{2 \pi} = \frac{\hbar}{m c},`,
154
- locator: "Wikipedia, 'Compton wavelength', revision 1376812882, wikitext line 13",
155
- },
156
- {
157
- id: 'CE-dynamic-pressure',
158
- prefactor: 0.5,
159
- quote: String.raw `q = \frac{1}{2}\rho\, u^2`,
160
- locator: "Wikipedia, 'Dynamic pressure', revision 1323192083, wikitext line 6",
161
- },
162
- {
163
- id: 'CE-laplace-pressure',
164
- prefactor: 2,
165
- quote: String.raw `\Delta p = \frac{2 \gamma}{R}.`,
166
- locator: "Wikipedia, 'Young–Laplace equation', revision 1350190310, wikitext line 40",
167
- },
168
- {
169
- id: 'CE-inductor-energy',
170
- prefactor: 0.5,
171
- quote: String.raw `\tfrac{1}{2} L\,I^2`,
172
- locator: "Wikipedia, 'Inductance', revision 1372308482, wikitext line 109",
173
- },
174
- {
175
- id: 'CE-equipartition',
176
- prefactor: 1.5,
177
- quote: String.raw `\langle H_{\mathrm{kin}} \rangle = \left\langle \frac{p^2}{2m} \right\rangle = \langle \tfrac{1}{2} m v^{2} \rangle = \tfrac{3}{2} k_\text{B} T.`,
178
- locator: "Wikipedia, 'Equipartition theorem', revision 1373697867, wikitext line 304",
179
- },
180
- {
181
- id: 'CE-kinetic-pressure',
182
- prefactor: 1 / 3,
183
- quote: String.raw `= \frac{1}{3} n mv_\text{rms}^2`,
184
- locator: "Wikipedia, 'Kinetic theory of gases', revision 1371478093, wikitext line 173",
185
- },
186
- {
187
- id: 'CE-half-life',
188
- prefactor: Math.log(2),
189
- quote: String.raw `t_{1/2} = \frac{\ln (2)}{\lambda} = \tau \ln(2)`,
190
- locator: "Wikipedia, 'Half-life', revision 1373221894, wikitext line 64",
191
- },
192
- {
193
- id: 'CE-thomson-cross-section',
194
- prefactor: (8 * Math.PI) / 3,
195
- quote: String.raw `\sigma_\text{t} = \frac{8\pi} 3 \left(\frac{q^2}{4\pi\varepsilon_0 mc^2}\right)^2 = \frac{8\pi} 3 {r}^2 = \frac{8 \pi}{3} \left(\alpha \lambda\!\!\!\bar{}_\text{c}\right)^2 ,`,
196
- locator: "Wikipedia, 'Thomson scattering', revision 1348001870, wikitext line 31",
197
- },
198
- ];
19
+ import { CANONICAL_EQUATIONS } from '../canonical/registry.js';
20
+ /** Entry id → the exact factor in front of its AST or monomial, read from the entry's `prefactor`. */
21
+ const PREFACTOR_BY_ID = new Map(CANONICAL_EQUATIONS.flatMap((e) => (e.prefactor === undefined ? [] : [[e.id, e.prefactor.value]])));
199
22
  /** The sourced prefactor of a canonical entry, or `undefined`. @internal */
200
23
  export function canonicalPrefactor(id) {
201
- return CANONICAL_PREFACTORS.find((p) => p.id === id)?.prefactor;
24
+ return PREFACTOR_BY_ID.get(id);
202
25
  }
203
- /** The sourced group prefactors, by canonical id. @internal */
204
- export const CANONICAL_GROUP_PREFACTORS = [
205
- {
206
- // c = √(γ p/ρ): the monomial p^½ ρ^-½ times γ^½, γ the adiabatic index.
207
- id: 'CE-sound-speed',
208
- group: 'gamma',
209
- coefficient: 1,
210
- exponent: 0.5,
211
- quote: String.raw `c = \sqrt{\gamma \cdot {p \over \rho}},`,
212
- locator: "Wikipedia, 'Speed of sound', revision 1373106219, wikitext line 142",
213
- },
214
- ];
26
+ /** The sourced group prefactors, one row per entry that records one. @internal */
27
+ export const CANONICAL_GROUP_PREFACTORS = CANONICAL_EQUATIONS.flatMap((e) => e.groupPrefactor === undefined ? [] : [{ id: e.id, ...e.groupPrefactor }]);
215
28
  /** The prefactor of a group-dependent entry at a value of its group, or `undefined`. @internal */
216
29
  export function canonicalGroupPrefactor(id, groupValue) {
217
30
  const p = CANONICAL_GROUP_PREFACTORS.find((q) => q.id === id);
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-prefactors.js","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canonical-prefactors.js","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,sGAAsG;AACtG,MAAM,eAAe,GAAgC,IAAI,GAAG,CAC1D,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAU,CAAC,CAAC,CAAC,CAC5G,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAgBD,kFAAkF;AAClF,MAAM,CAAC,MAAM,0BAA0B,GAAuC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9G,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAC1E,CAAC;AAEF,kGAAkG;AAClG,MAAM,UAAU,uBAAuB,CAAC,EAAU,EAAE,UAAkB;IACpE,MAAM,CAAC,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC;AAChF,CAAC","sourcesContent":["/**\n * Sourced prefactors of canonical equations, projected from the entries.\n *\n * CE-pendulum-period is a monomial and CE-kinetic-energy's AST is `m·v²`, so a\n * user formula wrong by 2π or ½ could not be caught (persona findings L2, L7).\n * Each entry that records only dimensionally, or only up to a constant, states\n * its exact prefactor as `prefactor` with a verbatim quote and a revision-pinned\n * locator; a test holds that neither its AST nor its monomial carries a constant\n * of its own. The lookups here read those fields; the entry owns the fact, and\n * a caller that wants the quote or the locator reads the entry.\n *\n * A prefactor that depends on a dimensionless group the entry's dimensional\n * record does not carry (CE-sound-speed's √γ) is not a constant: it is the\n * entry's `groupPrefactor`, and `canonicalPrefactor` does not return it. Only\n * a caller that can bind the group uses `canonicalGroupPrefactor`.\n *\n * @module composition/canonical-prefactors\n */\n\nimport { CANONICAL_EQUATIONS } from '../canonical/registry.js';\n\n/** Entry id → the exact factor in front of its AST or monomial, read from the entry's `prefactor`. */\nconst PREFACTOR_BY_ID: ReadonlyMap<string, number> = new Map(\n CANONICAL_EQUATIONS.flatMap((e) => (e.prefactor === undefined ? [] : [[e.id, e.prefactor.value] as const])),\n);\n\n/** The sourced prefactor of a canonical entry, or `undefined`. @internal */\nexport function canonicalPrefactor(id: string): number | undefined {\n return PREFACTOR_BY_ID.get(id);\n}\n\n/**\n * A sourced prefactor that is a power of a dimensionless group: the factor in\n * front of the entry's AST or monomial is `coefficient · group^exponent`. @internal\n */\nexport interface CanonicalGroupPrefactor {\n readonly id: string;\n /** The group as the entry's formula names it (`'gamma'` for γ). */\n readonly group: string;\n readonly coefficient: number;\n readonly exponent: number;\n readonly quote: string;\n readonly locator: string;\n}\n\n/** The sourced group prefactors, one row per entry that records one. @internal */\nexport const CANONICAL_GROUP_PREFACTORS: readonly CanonicalGroupPrefactor[] = CANONICAL_EQUATIONS.flatMap((e) =>\n e.groupPrefactor === undefined ? [] : [{ id: e.id, ...e.groupPrefactor }],\n);\n\n/** The prefactor of a group-dependent entry at a value of its group, or `undefined`. @internal */\nexport function canonicalGroupPrefactor(id: string, groupValue: number): number | undefined {\n const p = CANONICAL_GROUP_PREFACTORS.find((q) => q.id === id);\n return p === undefined ? undefined : p.coefficient * groupValue ** p.exponent;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-graph.d.ts","sourceRoot":"","sources":["../../src/composition/catalog-graph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAwD5C,wEAAwE;AACxE,eAAO,MAAM,aAAa,EAAE,SAAS,UAAU,EAAsC,CAAC;AAItF,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAIlD;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,IAAI;IACpC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;CACvC,CAgBA"}
1
+ {"version":3,"file":"catalog-graph.d.ts","sourceRoot":"","sources":["../../src/composition/catalog-graph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAqC5C,wEAAwE;AACxE,eAAO,MAAM,aAAa,EAAE,SAAS,UAAU,EAAsC,CAAC;AAItF,2CAA2C;AAC3C,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,CAIlD;AAED,yDAAyD;AACzD,wBAAgB,kBAAkB,IAAI;IACpC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;CACvC,CAgBA"}
@@ -8,27 +8,13 @@ import { parseCatalogExpression } from '../bridges/expr-parse.js';
8
8
  import { evaluateCatalogRelation, relationHolds } from '../bridges/relation-eval.js';
9
9
  import { withBoundAliases } from './edge.js';
10
10
  import { quantityByName } from './quantities.js';
11
- function regimeFor(relation) {
12
- const fromEntry = relation.catalogId === null ? undefined : catalogEntry(relation.catalogId)?.regime;
13
- if (fromEntry !== undefined && relation.regime !== undefined && JSON.stringify(fromEntry) !== JSON.stringify(relation.regime)) {
14
- throw new Error(`catalog ${relation.catalogId} regime disagrees with relation ${relation.id}`);
15
- }
16
- return fromEntry ?? relation.regime;
17
- }
18
- function inherited(relation, field) {
19
- const fromRelation = relation[field];
20
- const entry = relation.catalogId === null ? undefined : catalogEntry(relation.catalogId);
21
- const fromEntry = entry?.[field];
22
- if (fromRelation !== undefined && fromEntry !== undefined && JSON.stringify(fromRelation) !== JSON.stringify(fromEntry)) {
23
- throw new Error(`catalog ${relation.catalogId} ${field} disagrees with relation ${relation.id}`);
24
- }
25
- return fromRelation ?? fromEntry;
26
- }
11
+ /** The catalog row owns the relation contract, the regime, the conventions and the counterexamples; the edge reads them from it. */
27
12
  function buildEdge(relation) {
28
- const regime = regimeFor(relation);
29
- const contract = inherited(relation, 'relation');
30
- const conventions = inherited(relation, 'conventions');
31
- const counterexamples = inherited(relation, 'counterexamples');
13
+ const row = relation.catalogId === null ? undefined : catalogEntry(relation.catalogId);
14
+ const regime = row?.regime;
15
+ const contract = row?.relation;
16
+ const conventions = row?.conventions;
17
+ const counterexamples = row?.counterexamples;
32
18
  const edge = {
33
19
  id: relation.id,
34
20
  beId: relation.catalogId,
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-graph.js","sourceRoot":"","sources":["../../src/composition/catalog-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-graph.js","sourceRoot":"","sources":["../../src/composition/catalog-graph.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The composition graph is the relation projection of the bridge catalog.\n *\n * @module composition/catalog-graph\n */\n\nimport { catalogEntry, catalogRelations } from '../bridges/catalog-load.js';\nimport { parseCatalogExpression } from '../bridges/expr-parse.js';\nimport { evaluateCatalogRelation, relationHolds } from '../bridges/relation-eval.js';\nimport type { BridgeEdge } from './edge.js';\nimport { withBoundAliases } from './edge.js';\nimport { quantityByName } from './quantities.js';\n\n/** The catalog row owns the relation contract, the regime, the conventions and the counterexamples; the edge reads them from it. */\nfunction buildEdge(relation: ReturnType<typeof catalogRelations>[number]): BridgeEdge {\n const row = relation.catalogId === null ? undefined : catalogEntry(relation.catalogId);\n const regime = row?.regime;\n const contract = row?.relation;\n const conventions = row?.conventions;\n const counterexamples = row?.counterexamples;\n const edge: BridgeEdge = {\n id: relation.id,\n beId: relation.catalogId,\n kind: relation.kind,\n label: relation.label,\n sources: relation.sources.map((name) => quantityByName(name)),\n ...(Object.keys(relation.aliases).length > 0 ? { aliases: relation.aliases } : {}),\n target: quantityByName(relation.target),\n confidence: relation.confidence,\n domain: {\n description: relation.domain,\n predicate: (inputs) => relationHolds(relation, inputs),\n },\n evaluate: (inputs) => evaluateCatalogRelation(relation, inputs),\n symbolic: parseCatalogExpression(relation.expression),\n citation: relation.citation,\n ...(relation.coefficientUnset === true ? { coefficientUnset: true } : {}),\n ...(relation.formulaFactors !== undefined ? { formulaFactors: relation.formulaFactors } : {}),\n ...(contract !== undefined ? { relation: contract } : {}),\n ...(regime !== undefined ? { regime } : {}),\n ...(conventions !== undefined ? { conventions } : {}),\n ...(counterexamples !== undefined ? { counterexamples } : {}),\n };\n return withBoundAliases(edge);\n}\n\n/** Every catalog relation as a graph edge, in catalog order. @public */\nexport const CATALOG_GRAPH: readonly BridgeEdge[] = catalogRelations().map(buildEdge);\n\nconst BY_ID = new Map(CATALOG_GRAPH.map((edge) => [edge.id, edge]));\n\n/** The catalog edge with this graph id. */\nexport function catalogEdge(id: string): BridgeEdge {\n const edge = BY_ID.get(id);\n if (edge === undefined) throw new Error(`catalogEdge: no edge '${id}'`);\n return edge;\n}\n\n/** The two composition demonstrations the CLI prints. */\nexport function demonstrationEdges(): {\n readonly hawking: BridgeEdge;\n readonly landauer: BridgeEdge;\n readonly schwarzschild: BridgeEdge;\n readonly hawkingViaRadius: BridgeEdge;\n} {\n const hawking = catalogRelations().find(\n (row) => row.target === 'hawking-temperature' && row.sources.length === 1 && row.sources[0] === 'mass',\n );\n const landauer = catalogRelations().find((row) => row.target === 'landauer-erasure-energy');\n const via = catalogRelations().find((row) => row.target === 'hawking-temperature' && row.sources.includes('schwarzschild-radius'));\n const law = catalogRelations().find((row) => row.kind === 'law' && row.target === 'schwarzschild-radius');\n if (hawking === undefined || landauer === undefined || via === undefined || law === undefined) {\n throw new Error('demonstrationEdges: a demonstration relation is missing');\n }\n return {\n hawking: catalogEdge(hawking.id),\n landauer: catalogEdge(landauer.id),\n schwarzschild: catalogEdge(law.id),\n hawkingViaRadius: catalogEdge(via.id),\n };\n}\n"]}
@@ -38,6 +38,8 @@ export declare function compareChainEdgeIds(left: readonly string[], right: read
38
38
  /**
39
39
  * Total order of chain candidates. Returns a new array of the same
40
40
  * objects. The input array is left as it was.
41
+ *
42
+ * @internal
41
43
  */
42
44
  export declare function orderChainCandidates(candidates: readonly ChainCandidate[]): ChainCandidate[];
43
45
  //# sourceMappingURL=chain-candidate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chain-candidate.d.ts","sourceRoot":"","sources":["../../src/composition/chain-candidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CASjG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAM5F"}
1
+ {"version":3,"file":"chain-candidate.d.ts","sourceRoot":"","sources":["../../src/composition/chain-candidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CASjG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE,CAM5F"}
@@ -44,6 +44,8 @@ export function compareChainEdgeIds(left, right) {
44
44
  /**
45
45
  * Total order of chain candidates. Returns a new array of the same
46
46
  * objects. The input array is left as it was.
47
+ *
48
+ * @internal
47
49
  */
48
50
  export function orderChainCandidates(candidates) {
49
51
  return [...candidates].sort((a, b) => {