universal-physics-tensor 9.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 (824) hide show
  1. package/README.md +19 -16
  2. package/data/atlas/atlas.json +55 -44
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +19 -18
  5. package/data/atlas/oscillators.json +15 -10
  6. package/data/atlas/waves.json +23 -18
  7. package/data/bridge-catalog.json +886 -1473
  8. package/data/bridge-catalog.schema.json +349 -132
  9. package/data/quantities.json +53 -19
  10. package/data/schemas/atlas-record.v0.json +184 -46
  11. package/data/units.json +33 -4
  12. package/dist/atlas/applicability.d.ts.map +1 -1
  13. package/dist/atlas/applicability.js +14 -3
  14. package/dist/atlas/applicability.js.map +1 -1
  15. package/dist/atlas/association.js.map +1 -1
  16. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  17. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  18. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  19. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/baselines.js +8 -0
  21. package/dist/atlas/benchmark/baselines.js.map +1 -1
  22. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  23. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.js +15 -8
  25. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  26. package/dist/atlas/benchmark/leakage.js.map +1 -1
  27. package/dist/atlas/benchmark/loader.js.map +1 -1
  28. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  29. package/dist/atlas/benchmark/run-atlas.js +14 -2
  30. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  31. package/dist/atlas/benchmark/stats.d.ts +1 -1
  32. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  33. package/dist/atlas/benchmark/stats.js +1 -1
  34. package/dist/atlas/benchmark/stats.js.map +1 -1
  35. package/dist/atlas/benchmark/study.js.map +1 -1
  36. package/dist/atlas/benchmark/types.js.map +1 -1
  37. package/dist/atlas/bridge-record.d.ts +4 -4
  38. package/dist/atlas/bridge-record.d.ts.map +1 -1
  39. package/dist/atlas/bridge-record.js +6 -6
  40. package/dist/atlas/bridge-record.js.map +1 -1
  41. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  42. package/dist/atlas/chain-pipeline.d.ts +0 -11
  43. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  44. package/dist/atlas/chain-pipeline.js +5 -16
  45. package/dist/atlas/chain-pipeline.js.map +1 -1
  46. package/dist/atlas/composition-table.js.map +1 -1
  47. package/dist/atlas/conventions.js.map +1 -1
  48. package/dist/atlas/coverage.d.ts +2 -2
  49. package/dist/atlas/coverage.js.map +1 -1
  50. package/dist/atlas/derivation.js.map +1 -1
  51. package/dist/atlas/derive-evidence.d.ts +6 -4
  52. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  53. package/dist/atlas/derive-evidence.js +7 -2
  54. package/dist/atlas/derive-evidence.js.map +1 -1
  55. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  56. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  57. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges.js +0 -3
  60. package/dist/atlas/diffusion/bridges.js.map +1 -1
  61. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  62. package/dist/atlas/diffusion/index.d.ts +1 -1
  63. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  64. package/dist/atlas/diffusion/index.js.map +1 -1
  65. package/dist/atlas/diffusion/models.js.map +1 -1
  66. package/dist/atlas/diffusion/numerics.js.map +1 -1
  67. package/dist/atlas/error-algebra.d.ts +6 -0
  68. package/dist/atlas/error-algebra.d.ts.map +1 -1
  69. package/dist/atlas/error-algebra.js +26 -0
  70. package/dist/atlas/error-algebra.js.map +1 -1
  71. package/dist/atlas/export.d.ts +18 -2
  72. package/dist/atlas/export.d.ts.map +1 -1
  73. package/dist/atlas/export.js +9 -3
  74. package/dist/atlas/export.js.map +1 -1
  75. package/dist/atlas/families.d.ts +19 -2
  76. package/dist/atlas/families.d.ts.map +1 -1
  77. package/dist/atlas/families.js +26 -3
  78. package/dist/atlas/families.js.map +1 -1
  79. package/dist/atlas/family.d.ts +27 -0
  80. package/dist/atlas/family.d.ts.map +1 -0
  81. package/dist/atlas/family.js +12 -0
  82. package/dist/atlas/family.js.map +1 -0
  83. package/dist/atlas/index.d.ts +3 -2
  84. package/dist/atlas/index.d.ts.map +1 -1
  85. package/dist/atlas/index.js +2 -1
  86. package/dist/atlas/index.js.map +1 -1
  87. package/dist/atlas/link-prediction.d.ts +1 -1
  88. package/dist/atlas/link-prediction.d.ts.map +1 -1
  89. package/dist/atlas/link-prediction.js.map +1 -1
  90. package/dist/atlas/model.js.map +1 -1
  91. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  92. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  93. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  96. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  99. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  100. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  101. package/dist/atlas/oscillators/index.d.ts +1 -16
  102. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  103. package/dist/atlas/oscillators/index.js.map +1 -1
  104. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  105. package/dist/atlas/oscillators/models.js.map +1 -1
  106. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  107. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  108. package/dist/atlas/oscillators/norms.js.map +1 -1
  109. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  110. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  111. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  112. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  113. package/dist/atlas/oscillators/rejections.js.map +1 -1
  114. package/dist/atlas/path-bound.js.map +1 -1
  115. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  116. package/dist/atlas/physjs-ref.d.ts +79 -45
  117. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  118. package/dist/atlas/physjs-ref.js +143 -62
  119. package/dist/atlas/physjs-ref.js.map +1 -1
  120. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  121. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  122. package/dist/atlas/physjs-reviewed.js +194 -0
  123. package/dist/atlas/physjs-reviewed.js.map +1 -0
  124. package/dist/atlas/poster/associations.js.map +1 -1
  125. package/dist/atlas/poster/derivations.js.map +1 -1
  126. package/dist/atlas/poster/statements.js.map +1 -1
  127. package/dist/atlas/proof-target.js.map +1 -1
  128. package/dist/atlas/public.d.ts +2 -1
  129. package/dist/atlas/public.d.ts.map +1 -1
  130. package/dist/atlas/public.js +2 -1
  131. package/dist/atlas/public.js.map +1 -1
  132. package/dist/atlas/regime.js.map +1 -1
  133. package/dist/atlas/serialize.d.ts +18 -12
  134. package/dist/atlas/serialize.d.ts.map +1 -1
  135. package/dist/atlas/serialize.js +28 -18
  136. package/dist/atlas/serialize.js.map +1 -1
  137. package/dist/atlas/statement.js.map +1 -1
  138. package/dist/atlas/translation-registry.js.map +1 -1
  139. package/dist/atlas/translation.js.map +1 -1
  140. package/dist/atlas/types.d.ts +9 -2
  141. package/dist/atlas/types.d.ts.map +1 -1
  142. package/dist/atlas/types.js +1 -1
  143. package/dist/atlas/types.js.map +1 -1
  144. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  145. package/dist/atlas/waves/bridges-closure.js +0 -3
  146. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  147. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  148. package/dist/atlas/waves/bridges.js +0 -4
  149. package/dist/atlas/waves/bridges.js.map +1 -1
  150. package/dist/atlas/waves/index.d.ts +1 -1
  151. package/dist/atlas/waves/index.d.ts.map +1 -1
  152. package/dist/atlas/waves/index.js.map +1 -1
  153. package/dist/atlas/waves/models.js.map +1 -1
  154. package/dist/atlas/waves/numerics.js.map +1 -1
  155. package/dist/atlas/witness-artifact.js.map +1 -1
  156. package/dist/atlas/witness-dominance.d.ts +4 -3
  157. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  158. package/dist/atlas/witness-dominance.js +15 -5
  159. package/dist/atlas/witness-dominance.js.map +1 -1
  160. package/dist/atlas/witness-numeric.d.ts +8 -4
  161. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  162. package/dist/atlas/witness-numeric.js +27 -2
  163. package/dist/atlas/witness-numeric.js.map +1 -1
  164. package/dist/atlas/witness-result.d.ts +7 -1
  165. package/dist/atlas/witness-result.d.ts.map +1 -1
  166. package/dist/atlas/witness-result.js.map +1 -1
  167. package/dist/atlas/witness-specs.js.map +1 -1
  168. package/dist/atlas/witness-symbolic.js.map +1 -1
  169. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  170. package/dist/bridges/caller-table.d.ts +1 -1
  171. package/dist/bridges/caller-table.d.ts.map +1 -1
  172. package/dist/bridges/caller-table.js.map +1 -1
  173. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  174. package/dist/bridges/carrier-sign.js +8 -3
  175. package/dist/bridges/carrier-sign.js.map +1 -1
  176. package/dist/bridges/catalog-adapter.d.ts +12 -3
  177. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  178. package/dist/bridges/catalog-adapter.js +17 -9
  179. package/dist/bridges/catalog-adapter.js.map +1 -1
  180. package/dist/bridges/catalog-load.d.ts +12 -2
  181. package/dist/bridges/catalog-load.d.ts.map +1 -1
  182. package/dist/bridges/catalog-load.js +171 -8
  183. package/dist/bridges/catalog-load.js.map +1 -1
  184. package/dist/bridges/catalog-types.d.ts +48 -24
  185. package/dist/bridges/catalog-types.d.ts.map +1 -1
  186. package/dist/bridges/catalog-types.js.map +1 -1
  187. package/dist/bridges/coefficient-statement.js +1 -5
  188. package/dist/bridges/coefficient-statement.js.map +1 -1
  189. package/dist/bridges/confrontation-coverage.js.map +1 -1
  190. package/dist/bridges/confrontations.d.ts +1 -1
  191. package/dist/bridges/confrontations.d.ts.map +1 -1
  192. package/dist/bridges/confrontations.js +1 -1
  193. package/dist/bridges/confrontations.js.map +1 -1
  194. package/dist/bridges/evaluation-errors.d.ts +15 -2
  195. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  196. package/dist/bridges/evaluation-errors.js +20 -2
  197. package/dist/bridges/evaluation-errors.js.map +1 -1
  198. package/dist/bridges/evaluator-inputs.js.map +1 -1
  199. package/dist/bridges/evaluators.d.ts +17 -2
  200. package/dist/bridges/evaluators.d.ts.map +1 -1
  201. package/dist/bridges/evaluators.js +49 -16
  202. package/dist/bridges/evaluators.js.map +1 -1
  203. package/dist/bridges/expr-parse.d.ts +27 -4
  204. package/dist/bridges/expr-parse.d.ts.map +1 -1
  205. package/dist/bridges/expr-parse.js +90 -10
  206. package/dist/bridges/expr-parse.js.map +1 -1
  207. package/dist/bridges/holds.d.ts +5 -1
  208. package/dist/bridges/holds.d.ts.map +1 -1
  209. package/dist/bridges/holds.js +18 -3
  210. package/dist/bridges/holds.js.map +1 -1
  211. package/dist/bridges/index.d.ts +15 -14
  212. package/dist/bridges/index.d.ts.map +1 -1
  213. package/dist/bridges/index.js +14 -15
  214. package/dist/bridges/index.js.map +1 -1
  215. package/dist/bridges/input-contract.js.map +1 -1
  216. package/dist/bridges/membership.d.ts +5 -3
  217. package/dist/bridges/membership.d.ts.map +1 -1
  218. package/dist/bridges/membership.js +5 -6
  219. package/dist/bridges/membership.js.map +1 -1
  220. package/dist/bridges/notices.js.map +1 -1
  221. package/dist/bridges/observations/types.js.map +1 -1
  222. package/dist/bridges/rejected.d.ts +11 -17
  223. package/dist/bridges/rejected.d.ts.map +1 -1
  224. package/dist/bridges/rejected.js +13 -68
  225. package/dist/bridges/rejected.js.map +1 -1
  226. package/dist/bridges/relation-eval.d.ts +5 -6
  227. package/dist/bridges/relation-eval.d.ts.map +1 -1
  228. package/dist/bridges/relation-eval.js +9 -38
  229. package/dist/bridges/relation-eval.js.map +1 -1
  230. package/dist/bridges/rhs-registry.js.map +1 -1
  231. package/dist/bridges/sensitivity.d.ts +11 -3
  232. package/dist/bridges/sensitivity.d.ts.map +1 -1
  233. package/dist/bridges/sensitivity.js +24 -10
  234. package/dist/bridges/sensitivity.js.map +1 -1
  235. package/dist/bridges/tensor-index.js.map +1 -1
  236. package/dist/bridges/types.d.ts +1 -7
  237. package/dist/bridges/types.d.ts.map +1 -1
  238. package/dist/bridges/types.js +1 -4
  239. package/dist/bridges/types.js.map +1 -1
  240. package/dist/canonical/canonical-equation.js.map +1 -1
  241. package/dist/canonical/dimensional-fields.js.map +1 -1
  242. package/dist/canonical/entries/_l1-build.js.map +1 -1
  243. package/dist/canonical/entries/atomic.js.map +1 -1
  244. package/dist/canonical/entries/condensed-matter.js +4 -4
  245. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  246. package/dist/canonical/entries/dimensional-classics.js +2 -2
  247. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  248. package/dist/canonical/entries/electromagnetism.js +2 -2
  249. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  250. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  251. package/dist/canonical/entries/mechanics.js.map +1 -1
  252. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  253. package/dist/canonical/entries/nonmonomial.js +29 -22
  254. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  255. package/dist/canonical/entries/relativity.js.map +1 -1
  256. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  257. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  258. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  259. package/dist/canonical/linkage.d.ts +29 -4
  260. package/dist/canonical/linkage.d.ts.map +1 -1
  261. package/dist/canonical/linkage.js +31 -29
  262. package/dist/canonical/linkage.js.map +1 -1
  263. package/dist/canonical/normal-form.d.ts +0 -8
  264. package/dist/canonical/normal-form.d.ts.map +1 -1
  265. package/dist/canonical/normal-form.js +17 -12
  266. package/dist/canonical/normal-form.js.map +1 -1
  267. package/dist/canonical/registry.js.map +1 -1
  268. package/dist/canonical/residual.js.map +1 -1
  269. package/dist/canonical/seed-l-layer.d.ts +7 -1
  270. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  271. package/dist/canonical/seed-l-layer.js +7 -1
  272. package/dist/canonical/seed-l-layer.js.map +1 -1
  273. package/dist/canonical/structural.d.ts +21 -0
  274. package/dist/canonical/structural.d.ts.map +1 -1
  275. package/dist/canonical/structural.js +24 -4
  276. package/dist/canonical/structural.js.map +1 -1
  277. package/dist/cases/brownian-sphere.js +4 -4
  278. package/dist/cases/brownian-sphere.js.map +1 -1
  279. package/dist/cases/damped-resonator.js +2 -2
  280. package/dist/cases/damped-resonator.js.map +1 -1
  281. package/dist/cases/index.js.map +1 -1
  282. package/dist/cases/kepler-rv.js.map +1 -1
  283. package/dist/cases/lumped-cooling.js +1 -1
  284. package/dist/cases/lumped-cooling.js.map +1 -1
  285. package/dist/cases/quadrature.js.map +1 -1
  286. package/dist/cases/resistor-noise.js +3 -3
  287. package/dist/cases/resistor-noise.js.map +1 -1
  288. package/dist/cases/skin-depth.js.map +1 -1
  289. package/dist/cases/types.js.map +1 -1
  290. package/dist/cli/args.d.ts +7 -2
  291. package/dist/cli/args.d.ts.map +1 -1
  292. package/dist/cli/args.js +18 -2
  293. package/dist/cli/args.js.map +1 -1
  294. package/dist/cli/bindings.d.ts +13 -0
  295. package/dist/cli/bindings.d.ts.map +1 -0
  296. package/dist/cli/bindings.js +32 -0
  297. package/dist/cli/bindings.js.map +1 -0
  298. package/dist/cli/closed-form-range.js.map +1 -1
  299. package/dist/cli/command.js.map +1 -1
  300. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  301. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  302. package/dist/cli/commands/_atlas-map.js +43 -18
  303. package/dist/cli/commands/_atlas-map.js.map +1 -1
  304. package/dist/cli/commands/_atlas-route.js.map +1 -1
  305. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  306. package/dist/cli/commands/_discovery-opts.js +42 -7
  307. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  308. package/dist/cli/commands/atlas.d.ts.map +1 -1
  309. package/dist/cli/commands/atlas.js +1 -3
  310. package/dist/cli/commands/atlas.js.map +1 -1
  311. package/dist/cli/commands/audit.d.ts.map +1 -1
  312. package/dist/cli/commands/audit.js +13 -20
  313. package/dist/cli/commands/audit.js.map +1 -1
  314. package/dist/cli/commands/axes.js.map +1 -1
  315. package/dist/cli/commands/candidates.d.ts.map +1 -1
  316. package/dist/cli/commands/candidates.js +16 -8
  317. package/dist/cli/commands/candidates.js.map +1 -1
  318. package/dist/cli/commands/canonical.js.map +1 -1
  319. package/dist/cli/commands/chain.js +1 -1
  320. package/dist/cli/commands/chain.js.map +1 -1
  321. package/dist/cli/commands/confront.d.ts.map +1 -1
  322. package/dist/cli/commands/confront.js +22 -14
  323. package/dist/cli/commands/confront.js.map +1 -1
  324. package/dist/cli/commands/connectors.js.map +1 -1
  325. package/dist/cli/commands/coverage.js.map +1 -1
  326. package/dist/cli/commands/derive.d.ts.map +1 -1
  327. package/dist/cli/commands/derive.js +42 -17
  328. package/dist/cli/commands/derive.js.map +1 -1
  329. package/dist/cli/commands/discover.d.ts.map +1 -1
  330. package/dist/cli/commands/discover.js +15 -9
  331. package/dist/cli/commands/discover.js.map +1 -1
  332. package/dist/cli/commands/eval.d.ts.map +1 -1
  333. package/dist/cli/commands/eval.js +13 -10
  334. package/dist/cli/commands/eval.js.map +1 -1
  335. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  336. package/dist/cli/commands/evaluate.js +53 -31
  337. package/dist/cli/commands/evaluate.js.map +1 -1
  338. package/dist/cli/commands/explain.d.ts.map +1 -1
  339. package/dist/cli/commands/explain.js +14 -7
  340. package/dist/cli/commands/explain.js.map +1 -1
  341. package/dist/cli/commands/frontier.js.map +1 -1
  342. package/dist/cli/commands/ground.d.ts.map +1 -1
  343. package/dist/cli/commands/ground.js +40 -10
  344. package/dist/cli/commands/ground.js.map +1 -1
  345. package/dist/cli/commands/index.js.map +1 -1
  346. package/dist/cli/commands/map.d.ts.map +1 -1
  347. package/dist/cli/commands/map.js +82 -89
  348. package/dist/cli/commands/map.js.map +1 -1
  349. package/dist/cli/commands/metric.d.ts.map +1 -1
  350. package/dist/cli/commands/metric.js +53 -18
  351. package/dist/cli/commands/metric.js.map +1 -1
  352. package/dist/cli/commands/path.js +4 -4
  353. package/dist/cli/commands/path.js.map +1 -1
  354. package/dist/cli/commands/predict.js.map +1 -1
  355. package/dist/cli/commands/priority.js.map +1 -1
  356. package/dist/cli/commands/probe.d.ts.map +1 -1
  357. package/dist/cli/commands/probe.js +50 -26
  358. package/dist/cli/commands/probe.js.map +1 -1
  359. package/dist/cli/commands/recover.js +1 -1
  360. package/dist/cli/commands/recover.js.map +1 -1
  361. package/dist/cli/commands/regime.d.ts +5 -4
  362. package/dist/cli/commands/regime.d.ts.map +1 -1
  363. package/dist/cli/commands/regime.js +24 -26
  364. package/dist/cli/commands/regime.js.map +1 -1
  365. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  366. package/dist/cli/commands/retrieve.js +22 -14
  367. package/dist/cli/commands/retrieve.js.map +1 -1
  368. package/dist/cli/commands/search.d.ts.map +1 -1
  369. package/dist/cli/commands/search.js +8 -4
  370. package/dist/cli/commands/search.js.map +1 -1
  371. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  372. package/dist/cli/commands/symbolic.js +13 -9
  373. package/dist/cli/commands/symbolic.js.map +1 -1
  374. package/dist/cli/commands/testplan.js +1 -1
  375. package/dist/cli/commands/testplan.js.map +1 -1
  376. package/dist/cli/conventions.js.map +1 -1
  377. package/dist/cli/determination.js.map +1 -1
  378. package/dist/cli/errors.js.map +1 -1
  379. package/dist/cli/euler-guard.js.map +1 -1
  380. package/dist/cli/eval-numbers.js.map +1 -1
  381. package/dist/cli/expr-print.d.ts +29 -2
  382. package/dist/cli/expr-print.d.ts.map +1 -1
  383. package/dist/cli/expr-print.js +46 -2
  384. package/dist/cli/expr-print.js.map +1 -1
  385. package/dist/cli/flag-help.js.map +1 -1
  386. package/dist/cli/graphs.js.map +1 -1
  387. package/dist/cli/library-defaults.d.ts +19 -0
  388. package/dist/cli/library-defaults.d.ts.map +1 -0
  389. package/dist/cli/library-defaults.js +22 -0
  390. package/dist/cli/library-defaults.js.map +1 -0
  391. package/dist/cli/main.js +7 -3
  392. package/dist/cli/main.js.map +1 -1
  393. package/dist/cli/map-evidence.js.map +1 -1
  394. package/dist/cli/output.d.ts +3 -6
  395. package/dist/cli/output.d.ts.map +1 -1
  396. package/dist/cli/output.js.map +1 -1
  397. package/dist/cli/published-url.js.map +1 -1
  398. package/dist/cli/record-reach.d.ts +6 -0
  399. package/dist/cli/record-reach.d.ts.map +1 -1
  400. package/dist/cli/record-reach.js +16 -10
  401. package/dist/cli/record-reach.js.map +1 -1
  402. package/dist/cli/record-tables.js +1 -1
  403. package/dist/cli/record-tables.js.map +1 -1
  404. package/dist/cli/record.d.ts.map +1 -1
  405. package/dist/cli/record.js +31 -12
  406. package/dist/cli/record.js.map +1 -1
  407. package/dist/cli/search-index.d.ts +5 -0
  408. package/dist/cli/search-index.d.ts.map +1 -1
  409. package/dist/cli/search-index.js +12 -1
  410. package/dist/cli/search-index.js.map +1 -1
  411. package/dist/cli/statuses.js.map +1 -1
  412. package/dist/cli/top-level-help.js.map +1 -1
  413. package/dist/cli/version.js.map +1 -1
  414. package/dist/cli-api.d.ts +15 -9
  415. package/dist/cli-api.d.ts.map +1 -1
  416. package/dist/cli-api.js +14 -13
  417. package/dist/cli-api.js.map +1 -1
  418. package/dist/composition/adjudication.js.map +1 -1
  419. package/dist/composition/aliases.js.map +1 -1
  420. package/dist/composition/audit-coverage.d.ts +2 -0
  421. package/dist/composition/audit-coverage.d.ts.map +1 -1
  422. package/dist/composition/audit-coverage.js.map +1 -1
  423. package/dist/composition/axes.d.ts +12 -0
  424. package/dist/composition/axes.d.ts.map +1 -1
  425. package/dist/composition/axes.js +18 -6
  426. package/dist/composition/axes.js.map +1 -1
  427. package/dist/composition/axis-audit.js.map +1 -1
  428. package/dist/composition/bridge-analysis.d.ts +0 -18
  429. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  430. package/dist/composition/bridge-analysis.js +57 -47
  431. package/dist/composition/bridge-analysis.js.map +1 -1
  432. package/dist/composition/bridge-prediction.d.ts +5 -1
  433. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  434. package/dist/composition/bridge-prediction.js +12 -16
  435. package/dist/composition/bridge-prediction.js.map +1 -1
  436. package/dist/composition/buckingham-filter.js.map +1 -1
  437. package/dist/composition/canonical-compare.d.ts.map +1 -1
  438. package/dist/composition/canonical-compare.js +12 -2
  439. package/dist/composition/canonical-compare.js.map +1 -1
  440. package/dist/composition/canonical-graph.d.ts +8 -9
  441. package/dist/composition/canonical-graph.d.ts.map +1 -1
  442. package/dist/composition/canonical-graph.js +25 -67
  443. package/dist/composition/canonical-graph.js.map +1 -1
  444. package/dist/composition/canonical-json.js.map +1 -1
  445. package/dist/composition/canonical-prefactors.js.map +1 -1
  446. package/dist/composition/catalog-graph.d.ts.map +1 -1
  447. package/dist/composition/catalog-graph.js +6 -20
  448. package/dist/composition/catalog-graph.js.map +1 -1
  449. package/dist/composition/chain-candidate.d.ts +2 -0
  450. package/dist/composition/chain-candidate.d.ts.map +1 -1
  451. package/dist/composition/chain-candidate.js +2 -0
  452. package/dist/composition/chain-candidate.js.map +1 -1
  453. package/dist/composition/chain-match.js.map +1 -1
  454. package/dist/composition/chain-regime.js.map +1 -1
  455. package/dist/composition/chain-result.js.map +1 -1
  456. package/dist/composition/compose-surface.js.map +1 -1
  457. package/dist/composition/compose-symbolic.js.map +1 -1
  458. package/dist/composition/compose.d.ts.map +1 -1
  459. package/dist/composition/compose.js +153 -36
  460. package/dist/composition/compose.js.map +1 -1
  461. package/dist/composition/composition-recovery.js.map +1 -1
  462. package/dist/composition/consequence.d.ts.map +1 -1
  463. package/dist/composition/consequence.js +15 -6
  464. package/dist/composition/consequence.js.map +1 -1
  465. package/dist/composition/consistency.js.map +1 -1
  466. package/dist/composition/descriptor.d.ts +1 -1
  467. package/dist/composition/descriptor.d.ts.map +1 -1
  468. package/dist/composition/descriptor.js.map +1 -1
  469. package/dist/composition/dimension-adjacency.js.map +1 -1
  470. package/dist/composition/discovery.d.ts +21 -11
  471. package/dist/composition/discovery.d.ts.map +1 -1
  472. package/dist/composition/discovery.js +81 -21
  473. package/dist/composition/discovery.js.map +1 -1
  474. package/dist/composition/edge.d.ts +19 -8
  475. package/dist/composition/edge.d.ts.map +1 -1
  476. package/dist/composition/edge.js +24 -11
  477. package/dist/composition/edge.js.map +1 -1
  478. package/dist/composition/enumerate.d.ts +2 -2
  479. package/dist/composition/enumerate.d.ts.map +1 -1
  480. package/dist/composition/enumerate.js.map +1 -1
  481. package/dist/composition/evaluate-relation.js.map +1 -1
  482. package/dist/composition/explain.d.ts +14 -9
  483. package/dist/composition/explain.d.ts.map +1 -1
  484. package/dist/composition/explain.js +46 -13
  485. package/dist/composition/explain.js.map +1 -1
  486. package/dist/composition/expr-eval.js.map +1 -1
  487. package/dist/composition/expr-simplify.d.ts.map +1 -1
  488. package/dist/composition/expr-simplify.js +9 -39
  489. package/dist/composition/expr-simplify.js.map +1 -1
  490. package/dist/composition/expr-subst.js.map +1 -1
  491. package/dist/composition/formula-shape.d.ts +9 -0
  492. package/dist/composition/formula-shape.d.ts.map +1 -1
  493. package/dist/composition/formula-shape.js +54 -0
  494. package/dist/composition/formula-shape.js.map +1 -1
  495. package/dist/composition/frontier-account.d.ts +3 -2
  496. package/dist/composition/frontier-account.d.ts.map +1 -1
  497. package/dist/composition/frontier-account.js +7 -3
  498. package/dist/composition/frontier-account.js.map +1 -1
  499. package/dist/composition/graph-viz-svg.js.map +1 -1
  500. package/dist/composition/graph-viz.js.map +1 -1
  501. package/dist/composition/grounding.js.map +1 -1
  502. package/dist/composition/identifiability.js.map +1 -1
  503. package/dist/composition/index.d.ts +6 -4
  504. package/dist/composition/index.d.ts.map +1 -1
  505. package/dist/composition/index.js +4 -3
  506. package/dist/composition/index.js.map +1 -1
  507. package/dist/composition/mathts-quiet.d.ts +28 -0
  508. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  509. package/dist/composition/mathts-quiet.js +56 -0
  510. package/dist/composition/mathts-quiet.js.map +1 -0
  511. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  512. package/dist/composition/mathts-scalar-symbols.js +18 -34
  513. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  514. package/dist/composition/not-composable-seeds.d.ts +3 -1
  515. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  516. package/dist/composition/not-composable-seeds.js +2 -0
  517. package/dist/composition/not-composable-seeds.js.map +1 -1
  518. package/dist/composition/probe/backend-protocol.js.map +1 -1
  519. package/dist/composition/probe/candidate-store.js.map +1 -1
  520. package/dist/composition/probe/corpus.js.map +1 -1
  521. package/dist/composition/probe/dataset.js.map +1 -1
  522. package/dist/composition/probe/experiment-design.js.map +1 -1
  523. package/dist/composition/probe/expression-gaps.js.map +1 -1
  524. package/dist/composition/probe/falsify.d.ts +14 -3
  525. package/dist/composition/probe/falsify.d.ts.map +1 -1
  526. package/dist/composition/probe/falsify.js +14 -27
  527. package/dist/composition/probe/falsify.js.map +1 -1
  528. package/dist/composition/probe/fingerprint.js.map +1 -1
  529. package/dist/composition/probe/fit.d.ts +1 -1
  530. package/dist/composition/probe/fit.d.ts.map +1 -1
  531. package/dist/composition/probe/fit.js +2 -1
  532. package/dist/composition/probe/fit.js.map +1 -1
  533. package/dist/composition/probe/frontier.js.map +1 -1
  534. package/dist/composition/probe/generator.js.map +1 -1
  535. package/dist/composition/probe/index.d.ts +4 -2
  536. package/dist/composition/probe/index.d.ts.map +1 -1
  537. package/dist/composition/probe/index.js +4 -2
  538. package/dist/composition/probe/index.js.map +1 -1
  539. package/dist/composition/probe/limits.js.map +1 -1
  540. package/dist/composition/probe/metadata.js.map +1 -1
  541. package/dist/composition/probe/pipeline.d.ts +5 -0
  542. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  543. package/dist/composition/probe/pipeline.js +13 -6
  544. package/dist/composition/probe/pipeline.js.map +1 -1
  545. package/dist/composition/probe/problem.d.ts +8 -0
  546. package/dist/composition/probe/problem.d.ts.map +1 -1
  547. package/dist/composition/probe/problem.js +78 -12
  548. package/dist/composition/probe/problem.js.map +1 -1
  549. package/dist/composition/probe/report.js.map +1 -1
  550. package/dist/composition/probe/residual.js.map +1 -1
  551. package/dist/composition/probe/run-manifest.js +2 -2
  552. package/dist/composition/probe/run-manifest.js.map +1 -1
  553. package/dist/composition/probe/scoring.d.ts +2 -1
  554. package/dist/composition/probe/scoring.d.ts.map +1 -1
  555. package/dist/composition/probe/scoring.js +21 -7
  556. package/dist/composition/probe/scoring.js.map +1 -1
  557. package/dist/composition/probe/search-budget.js.map +1 -1
  558. package/dist/composition/probe/serialize.js.map +1 -1
  559. package/dist/composition/probe/structure.js.map +1 -1
  560. package/dist/composition/probe/study.d.ts +4 -3
  561. package/dist/composition/probe/study.d.ts.map +1 -1
  562. package/dist/composition/probe/study.js +5 -3
  563. package/dist/composition/probe/study.js.map +1 -1
  564. package/dist/composition/probe/types.d.ts +3 -1
  565. package/dist/composition/probe/types.d.ts.map +1 -1
  566. package/dist/composition/probe/types.js +2 -0
  567. package/dist/composition/probe/types.js.map +1 -1
  568. package/dist/composition/proposed-bridges.d.ts +11 -4
  569. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  570. package/dist/composition/proposed-bridges.js +11 -4
  571. package/dist/composition/proposed-bridges.js.map +1 -1
  572. package/dist/composition/quantities.d.ts +0 -4
  573. package/dist/composition/quantities.d.ts.map +1 -1
  574. package/dist/composition/quantities.js +5 -5
  575. package/dist/composition/quantities.js.map +1 -1
  576. package/dist/composition/quantity.d.ts +18 -2
  577. package/dist/composition/quantity.d.ts.map +1 -1
  578. package/dist/composition/quantity.js +35 -6
  579. package/dist/composition/quantity.js.map +1 -1
  580. package/dist/composition/representative-values.js.map +1 -1
  581. package/dist/composition/retrodiction.d.ts +16 -6
  582. package/dist/composition/retrodiction.d.ts.map +1 -1
  583. package/dist/composition/retrodiction.js +34 -9
  584. package/dist/composition/retrodiction.js.map +1 -1
  585. package/dist/composition/uncertainty.js.map +1 -1
  586. package/dist/composition/user-equation.js.map +1 -1
  587. package/dist/core/axes-registry.d.ts +8 -5
  588. package/dist/core/axes-registry.d.ts.map +1 -1
  589. package/dist/core/axes-registry.js.map +1 -1
  590. package/dist/core/cell.js.map +1 -1
  591. package/dist/core/constants.d.ts +8 -8
  592. package/dist/core/constants.d.ts.map +1 -1
  593. package/dist/core/constants.js +8 -10
  594. package/dist/core/constants.js.map +1 -1
  595. package/dist/core/data-file.js.map +1 -1
  596. package/dist/core/flux-rules.js +1 -1
  597. package/dist/core/flux-rules.js.map +1 -1
  598. package/dist/core/json-schema.d.ts +1 -1
  599. package/dist/core/json-schema.d.ts.map +1 -1
  600. package/dist/core/json-schema.js +31 -7
  601. package/dist/core/json-schema.js.map +1 -1
  602. package/dist/core/labeled-tensor.d.ts +6 -1
  603. package/dist/core/labeled-tensor.d.ts.map +1 -1
  604. package/dist/core/labeled-tensor.js +18 -8
  605. package/dist/core/labeled-tensor.js.map +1 -1
  606. package/dist/core/regime-registry.d.ts +6 -2
  607. package/dist/core/regime-registry.d.ts.map +1 -1
  608. package/dist/core/regime-registry.js.map +1 -1
  609. package/dist/core/regime-rule-install.js.map +1 -1
  610. package/dist/core/regimes-builtins.js.map +1 -1
  611. package/dist/core/tensor.d.ts +7 -4
  612. package/dist/core/tensor.d.ts.map +1 -1
  613. package/dist/core/tensor.js +40 -8
  614. package/dist/core/tensor.js.map +1 -1
  615. package/dist/core/types.js.map +1 -1
  616. package/dist/core/universal-index.js.map +1 -1
  617. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  618. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  619. package/dist/diff/bridge-ast-gradient.js +10 -6
  620. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  621. package/dist/diff/bridge-gradient.d.ts +24 -80
  622. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  623. package/dist/diff/bridge-gradient.js +21 -98
  624. package/dist/diff/bridge-gradient.js.map +1 -1
  625. package/dist/diff/bridge-specs.d.ts +16 -5
  626. package/dist/diff/bridge-specs.d.ts.map +1 -1
  627. package/dist/diff/bridge-specs.js +16 -4
  628. package/dist/diff/bridge-specs.js.map +1 -1
  629. package/dist/dimensional/algebra.js.map +1 -1
  630. package/dist/dimensional/ast-builders.d.ts +5 -4
  631. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  632. package/dist/dimensional/ast-builders.js +6 -5
  633. package/dist/dimensional/ast-builders.js.map +1 -1
  634. package/dist/dimensional/ast-types.js.map +1 -1
  635. package/dist/dimensional/bridge-check.js.map +1 -1
  636. package/dist/dimensional/buckingham.js.map +1 -1
  637. package/dist/dimensional/connection-validators.d.ts +2 -1
  638. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  639. package/dist/dimensional/connection-validators.js.map +1 -1
  640. package/dist/dimensional/connection.js.map +1 -1
  641. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  642. package/dist/dimensional/constant-rows.js +9 -5
  643. package/dist/dimensional/constant-rows.js.map +1 -1
  644. package/dist/dimensional/constants.d.ts +5 -6
  645. package/dist/dimensional/constants.d.ts.map +1 -1
  646. package/dist/dimensional/constants.js +5 -6
  647. package/dist/dimensional/constants.js.map +1 -1
  648. package/dist/dimensional/curvature-composite.js.map +1 -1
  649. package/dist/dimensional/curvature-invariants.js.map +1 -1
  650. package/dist/dimensional/curvature.js.map +1 -1
  651. package/dist/dimensional/dimension-inference.js.map +1 -1
  652. package/dist/dimensional/dimension-spec.d.ts +13 -7
  653. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  654. package/dist/dimensional/dimension-spec.js +49 -23
  655. package/dist/dimensional/dimension-spec.js.map +1 -1
  656. package/dist/dimensional/einstein-equation.js.map +1 -1
  657. package/dist/dimensional/errors.d.ts +3 -1
  658. package/dist/dimensional/errors.d.ts.map +1 -1
  659. package/dist/dimensional/errors.js +2 -2
  660. package/dist/dimensional/errors.js.map +1 -1
  661. package/dist/dimensional/exact-scale.js.map +1 -1
  662. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  663. package/dist/dimensional/formula-names.js.map +1 -1
  664. package/dist/dimensional/fresh-label.js.map +1 -1
  665. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  666. package/dist/dimensional/friedmann-equation.js +3 -3
  667. package/dist/dimensional/friedmann-equation.js.map +1 -1
  668. package/dist/dimensional/gauge-field.d.ts +2 -3
  669. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  670. package/dist/dimensional/gauge-field.js +0 -1
  671. package/dist/dimensional/gauge-field.js.map +1 -1
  672. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  673. package/dist/dimensional/hyphen-names.js +8 -0
  674. package/dist/dimensional/hyphen-names.js.map +1 -1
  675. package/dist/dimensional/killing-validators.js.map +1 -1
  676. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  677. package/dist/dimensional/metric-validators.d.ts +2 -1
  678. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  679. package/dist/dimensional/metric-validators.js.map +1 -1
  680. package/dist/dimensional/metric.js.map +1 -1
  681. package/dist/dimensional/natural-units.js.map +1 -1
  682. package/dist/dimensional/quantity-registry.d.ts +13 -0
  683. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  684. package/dist/dimensional/quantity-registry.js +14 -6
  685. package/dist/dimensional/quantity-registry.js.map +1 -1
  686. package/dist/dimensional/rg-flow.js.map +1 -1
  687. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  688. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  689. package/dist/dimensional/symbolic-constants.js +7 -2
  690. package/dist/dimensional/symbolic-constants.js.map +1 -1
  691. package/dist/dimensional/tensor-trace.js.map +1 -1
  692. package/dist/dimensional/tensor.js.map +1 -1
  693. package/dist/dimensional/types.js.map +1 -1
  694. package/dist/dimensional/unit-convention.d.ts +0 -2
  695. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  696. package/dist/dimensional/unit-convention.js +2 -2
  697. package/dist/dimensional/unit-convention.js.map +1 -1
  698. package/dist/dimensional/unit-data.d.ts.map +1 -1
  699. package/dist/dimensional/unit-data.js +9 -5
  700. package/dist/dimensional/unit-data.js.map +1 -1
  701. package/dist/dimensional/units.d.ts.map +1 -1
  702. package/dist/dimensional/units.js +38 -20
  703. package/dist/dimensional/units.js.map +1 -1
  704. package/dist/dimensional/validator-registry.js.map +1 -1
  705. package/dist/dimensional/validator.d.ts +0 -16
  706. package/dist/dimensional/validator.d.ts.map +1 -1
  707. package/dist/dimensional/validator.js +65 -29
  708. package/dist/dimensional/validator.js.map +1 -1
  709. package/dist/dimensional/weyl-validators.js.map +1 -1
  710. package/dist/index.d.ts +50 -5
  711. package/dist/index.d.ts.map +1 -1
  712. package/dist/index.js +12 -20
  713. package/dist/index.js.map +1 -1
  714. package/dist/numerical/bianchi-residual.js.map +1 -1
  715. package/dist/numerical/binding-value.d.ts +11 -6
  716. package/dist/numerical/binding-value.d.ts.map +1 -1
  717. package/dist/numerical/binding-value.js +126 -122
  718. package/dist/numerical/binding-value.js.map +1 -1
  719. package/dist/numerical/christoffel-flat.js.map +1 -1
  720. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  721. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  722. package/dist/numerical/covariant-eikonal.js +2 -2
  723. package/dist/numerical/covariant-eikonal.js.map +1 -1
  724. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  725. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  726. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  727. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  728. package/dist/numerical/derivative-lowering.js.map +1 -1
  729. package/dist/numerical/einstein-equation.js.map +1 -1
  730. package/dist/numerical/engine-registry.js.map +1 -1
  731. package/dist/numerical/errors.d.ts +7 -3
  732. package/dist/numerical/errors.d.ts.map +1 -1
  733. package/dist/numerical/errors.js +5 -5
  734. package/dist/numerical/errors.js.map +1 -1
  735. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  736. package/dist/numerical/evaluator-uncertainty.js +19 -2
  737. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  738. package/dist/numerical/formula-contract.d.ts +63 -7
  739. package/dist/numerical/formula-contract.d.ts.map +1 -1
  740. package/dist/numerical/formula-contract.js +61 -42
  741. package/dist/numerical/formula-contract.js.map +1 -1
  742. package/dist/numerical/formula-dimension.d.ts +8 -7
  743. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  744. package/dist/numerical/formula-dimension.js +58 -36
  745. package/dist/numerical/formula-dimension.js.map +1 -1
  746. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  747. package/dist/numerical/formula-mathts.js +5 -2
  748. package/dist/numerical/formula-mathts.js.map +1 -1
  749. package/dist/numerical/formula-registry.d.ts +13 -3
  750. package/dist/numerical/formula-registry.d.ts.map +1 -1
  751. package/dist/numerical/formula-registry.js +7 -2
  752. package/dist/numerical/formula-registry.js.map +1 -1
  753. package/dist/numerical/geodesic-integrator.js.map +1 -1
  754. package/dist/numerical/geometrized.js.map +1 -1
  755. package/dist/numerical/gl4-integrator.d.ts +28 -27
  756. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  757. package/dist/numerical/gl4-integrator.js +41 -42
  758. package/dist/numerical/gl4-integrator.js.map +1 -1
  759. package/dist/numerical/grid-field.js.map +1 -1
  760. package/dist/numerical/index.js.map +1 -1
  761. package/dist/numerical/input-validation.d.ts +3 -6
  762. package/dist/numerical/input-validation.d.ts.map +1 -1
  763. package/dist/numerical/input-validation.js +4 -8
  764. package/dist/numerical/input-validation.js.map +1 -1
  765. package/dist/numerical/killing.d.ts +8 -5
  766. package/dist/numerical/killing.d.ts.map +1 -1
  767. package/dist/numerical/killing.js.map +1 -1
  768. package/dist/numerical/klein-gordon.js.map +1 -1
  769. package/dist/numerical/kretschmann.js.map +1 -1
  770. package/dist/numerical/lowering-utils.js.map +1 -1
  771. package/dist/numerical/lowering.d.ts.map +1 -1
  772. package/dist/numerical/lowering.js +7 -17
  773. package/dist/numerical/lowering.js.map +1 -1
  774. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  775. package/dist/numerical/mathts-engine.js +11 -6
  776. package/dist/numerical/mathts-engine.js.map +1 -1
  777. package/dist/numerical/metric-inverse.js.map +1 -1
  778. package/dist/numerical/null-ic.js.map +1 -1
  779. package/dist/numerical/null-ray-integrator.js +4 -4
  780. package/dist/numerical/null-ray-integrator.js.map +1 -1
  781. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  782. package/dist/numerical/pderiv.d.ts.map +1 -1
  783. package/dist/numerical/pderiv.js +9 -2
  784. package/dist/numerical/pderiv.js.map +1 -1
  785. package/dist/numerical/perihelion-finder.js.map +1 -1
  786. package/dist/numerical/quadrature.d.ts +5 -2
  787. package/dist/numerical/quadrature.d.ts.map +1 -1
  788. package/dist/numerical/quadrature.js +20 -3
  789. package/dist/numerical/quadrature.js.map +1 -1
  790. package/dist/numerical/spacetime-metrics.d.ts +13 -19
  791. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  792. package/dist/numerical/spacetime-metrics.js +126 -248
  793. package/dist/numerical/spacetime-metrics.js.map +1 -1
  794. package/dist/numerical/strides.js.map +1 -1
  795. package/dist/numerical/tensor-engine.d.ts +9 -5
  796. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  797. package/dist/numerical/tensor-engine.js.map +1 -1
  798. package/dist/numerical/types.js.map +1 -1
  799. package/dist/numerical/weyl-lowering.js.map +1 -1
  800. package/dist/relations/category.js.map +1 -1
  801. package/dist/relations/composition-table.d.ts +4 -4
  802. package/dist/relations/composition-table.js +4 -4
  803. package/dist/relations/composition-table.js.map +1 -1
  804. package/dist/relations/conventions.js.map +1 -1
  805. package/dist/relations/domain-regimes.js.map +1 -1
  806. package/dist/relations/regime-registration.js.map +1 -1
  807. package/dist/relations/regime-vocabularies.js.map +1 -1
  808. package/dist/relations/regime.d.ts +18 -8
  809. package/dist/relations/regime.d.ts.map +1 -1
  810. package/dist/relations/regime.js +26 -14
  811. package/dist/relations/regime.js.map +1 -1
  812. package/dist/relations/types.d.ts +18 -5
  813. package/dist/relations/types.d.ts.map +1 -1
  814. package/dist/relations/types.js +5 -3
  815. package/dist/relations/types.js.map +1 -1
  816. package/package.json +10 -14
  817. package/dist/bridges/registry.d.ts +0 -60
  818. package/dist/bridges/registry.d.ts.map +0 -1
  819. package/dist/bridges/registry.js +0 -87
  820. package/dist/bridges/registry.js.map +0 -1
  821. package/dist/cli/poster-source.d.ts +0 -154
  822. package/dist/cli/poster-source.d.ts.map +0 -1
  823. package/dist/cli/poster-source.js +0 -184
  824. package/dist/cli/poster-source.js.map +0 -1
@@ -8,7 +8,8 @@
8
8
  * not yet graph-encoded — the `bridges: [a, b]` tuple is the proxy.
9
9
  *
10
10
  * Adjudication precedence (design r2-4): the negative catalog
11
- * (`rejected.ts`) overlays the tuple proxy — an id listed there is
11
+ * (the `rejections` ledger of `data/bridge-catalog.json`, projected by
12
+ * `rejected.ts`) overlays the tuple proxy — an id listed there is
12
13
  * `'not-a-bridge'` regardless of its tuple (the repo's
13
14
  * `['unknown','unknown']` convention historically marked NOT-A-BRIDGE
14
15
  * entries, so the tuple alone cannot distinguish "rejected" from
@@ -17,7 +18,7 @@
17
18
  *
18
19
  * @module bridges/membership
19
20
  */
20
- import { REJECTED_BRIDGE_IDS } from './rejected.js';
21
+ import { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS } from './rejected.js';
21
22
  /**
22
23
  * Apply the membership criterion to one catalog entry (tuple proxy +
23
24
  * rejected-registry overlay).
@@ -52,8 +53,6 @@ export function adjudicateCatalog(catalog) {
52
53
  }
53
54
  return { bridges, notABridges, unadjudicated };
54
55
  }
55
- // Re-exports: the negative catalog travels with the criterion it
56
- // overlays (v0.8.0 punch-list — replaced the membership-surface.ts
57
- // barrel indirection).
58
- export { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS } from './rejected.js';
56
+ // Re-exports: the negative catalog travels with the criterion it overlays.
57
+ export { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS };
59
58
  //# sourceMappingURL=membership.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"membership.js","sourceRoot":"","sources":["../../src/bridges/membership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAKpD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA0B;IAC9D,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA2C;IAE3C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5C,IAAI,OAAO,KAAK,cAAc;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;;YAC3D,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACjD,CAAC;AAED,iEAAiE;AACjE,mEAAmE;AACnE,uBAAuB;AACvB,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"membership.js","sourceRoot":"","sources":["../../src/bridges/membership.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAmC,MAAM,eAAe,CAAC;AAKpH;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAA0B;IAC9D,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,cAAc,CAAC;IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;IAC7B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,eAAe,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7C,CAAC;AASD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA2C;IAE3C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,OAAO,KAAK,QAAQ;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC5C,IAAI,OAAO,KAAK,cAAc;YAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;;YAC3D,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AACjD,CAAC;AAED,2EAA2E;AAC3E,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["/**\n * Bridge-membership criterion (v0.8.0 G-2) — the computable form.\n *\n * **Criterion:** *a bridge is an edge whose endpoint quantities differ\n * in at least one regime attribute; a law is an edge whose endpoints\n * share all stated regime attributes.* For graph edges this is\n * `regimesDiffer` (src/composition/quantity.ts). For catalog entries —\n * not yet graph-encoded — the `bridges: [a, b]` tuple is the proxy.\n *\n * Adjudication precedence (design r2-4): the negative catalog\n * (the `rejections` ledger of `data/bridge-catalog.json`, projected by\n * `rejected.ts`) overlays the tuple proxy — an id listed there is\n * `'not-a-bridge'` regardless of its tuple (the repo's\n * `['unknown','unknown']` convention historically marked NOT-A-BRIDGE\n * entries, so the tuple alone cannot distinguish \"rejected\" from\n * \"never adjudicated\"). Only after the overlay does an\n * `'unknown'`-containing tuple mean `'unadjudicated'`.\n *\n * @module bridges/membership\n */\n\nimport type { BridgeEquationEntry } from './index.js';\nimport { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS, type RejectedBridgeAdjudication } from './rejected.js';\n\n/** Adjudication verdict for a catalog entry. @public */\nexport type BridgeVerdict = 'bridge' | 'not-a-bridge' | 'unadjudicated';\n\n/**\n * Apply the membership criterion to one catalog entry (tuple proxy +\n * rejected-registry overlay).\n *\n * @public\n */\nexport function adjudicateBridgeEntry(entry: BridgeEquationEntry): BridgeVerdict {\n if (REJECTED_BRIDGE_IDS.has(entry.id)) return 'not-a-bridge';\n const [a, b] = entry.bridges;\n if (a === 'unknown' || b === 'unknown') return 'unadjudicated';\n return a === b ? 'not-a-bridge' : 'bridge';\n}\n\n/** Whole-catalog adjudication report. @public */\nexport interface CatalogAdjudicationReport {\n readonly bridges: ReadonlyArray<number>;\n readonly notABridges: ReadonlyArray<number>;\n readonly unadjudicated: ReadonlyArray<number>;\n}\n\n/**\n * Adjudicate every entry of a catalog under the membership criterion.\n *\n * @public\n */\nexport function adjudicateCatalog(\n catalog: ReadonlyArray<BridgeEquationEntry>,\n): CatalogAdjudicationReport {\n const bridges: number[] = [];\n const notABridges: number[] = [];\n const unadjudicated: number[] = [];\n for (const entry of catalog) {\n const verdict = adjudicateBridgeEntry(entry);\n if (verdict === 'bridge') bridges.push(entry.id);\n else if (verdict === 'not-a-bridge') notABridges.push(entry.id);\n else unadjudicated.push(entry.id);\n }\n return { bridges, notABridges, unadjudicated };\n}\n\n// Re-exports: the negative catalog travels with the criterion it overlays.\nexport { REJECTED_BRIDGE_ADJUDICATIONS, REJECTED_BRIDGE_IDS };\nexport type { RejectedBridgeAdjudication };\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"notices.js","sourceRoot":"","sources":["../../src/bridges/notices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE,kEAAkE;AAClE,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"notices.js","sourceRoot":"","sources":["../../src/bridges/notices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAGrE,kEAAkE;AAClE,SAAS,WAAW,CAAC,UAAkB;IACrC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,eAAe,CAAC,QAAyB;IACvD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * The caveats printed beside a relation's value: the record's own notice, and\n * the note of every registered constant its expression names. No caller\n * switches on a notice; the text is the record's or the constant's.\n *\n * @module bridges/notices\n */\n\nimport { constantNotes } from '../dimensional/symbolic-constants.js';\nimport type { CatalogRelation } from './catalog-types.js';\n\n/** Identifiers in an expression, in order of first appearance. */\nfunction identifiers(expression: string): string[] {\n return [...new Set(expression.match(/[A-Za-z_][A-Za-z0-9_]*/g) ?? [])];\n}\n\n/** The caveats to print beside `relation`'s value. @internal */\nexport function relationNotices(relation: CatalogRelation): string[] {\n const notes: string[] = [];\n if (relation.notice !== undefined) notes.push(relation.notice.text);\n for (const note of constantNotes(identifiers(relation.expression))) notes.push(`note: ${note}`);\n return notes;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/bridges/observations/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwKH,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;IAChF,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAChD,CAAC;AAeD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAAyD;IAEzD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC,6DAA6D,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,MAAM,UAAU,GAAG,oCAA6C,CAAC;IACjE,IAAI,CAAC,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QACpC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,iEAAiE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,kCAAkC,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAChJ,CAAC;IACD,OAAO;QACL,kBAAkB;QAClB,UAAU;QACV,cAAc;QACd,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC;QACvE,WAAW,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,cAAc;KAC7F,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,UAAqC;IACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/bridges/observations/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwKH,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;IAChF,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAC;AAChD,CAAC;AAeD;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAAyD;IAEzD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC,6DAA6D,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC;IACtE,MAAM,cAAc,GAAG,CAAC,CAAC,eAAe,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,MAAM,UAAU,GAAG,oCAA6C,CAAC;IACjE,IAAI,CAAC,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;QACpC,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,UAAU,CAAC,iEAAiE,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,IAAI,EAAE,kCAAkC,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAChJ,CAAC;IACD,OAAO;QACL,kBAAkB;QAClB,UAAU;QACV,cAAc;QACd,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gCAAgC;QACvE,WAAW,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,cAAc;KAC7F,CAAC;AACJ,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CAAC,UAAqC;IACvE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,kDAAkD,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC","sourcesContent":["/**\n * Typed observation + confrontation-outcome layer for `upt confront`.\n * The outcome is a discriminated union on `kind` so each confrontation\n * carries only the fields it can honestly populate (no NaN placeholders).\n *\n * @module bridges/observations/types\n */\n\n/** Provenance every observation record must carry. @public */\nexport interface ObservationProvenance {\n /** Paper + locus, e.g. \"Bertotti-Iess-Tortora 2003, Nature 425:374\". */\n readonly citation: string;\n readonly year: number;\n /** ISO date the value was transcribed into the repo. */\n readonly retrieved: string;\n /** Caveats: what was digitized, unit conversions, model conventions. */\n readonly note?: string;\n}\n\n/** One named uncertainty component (e.g. statistical vs systematic). @public */\nexport interface SigmaComponent {\n readonly label: string;\n readonly value: number;\n}\n\n/** How the observation constrains the prediction. @public */\nexport type ObservationKind = 'value' | 'upper-bound' | 'consistency' | 'table';\n\n/**\n * Where in this repository the support for a recorded statement is written:\n * a path from the repository root, and either a verbatim `quote` that must\n * occur in that file or a `symbol` the file must declare. A reference that\n * resolves shows only that the cited text exists; it does not show that the\n * statement it supports is true, nor that the text covers every clause.\n *\n * @public\n */\nexport type SourceRef =\n | { readonly file: string; readonly quote: string }\n | { readonly file: string; readonly symbol: string };\n\n/** One or more references; a statement is never sourced by nothing. @public */\nexport type SourceRefs = readonly [SourceRef, ...SourceRef[]];\n\n/**\n * What was done to the source's number before it reached the comparison\n * (averaging, selection, conversion, encoding of a stated agreement).\n * `source` names what supports the statement. `not-recorded` means the record\n * states nothing — it is not \"no preprocessing\".\n *\n * @public\n */\nexport type ConfrontationPreprocessing =\n | { readonly state: 'recorded'; readonly statement: string; readonly source: SourceRefs }\n | { readonly state: 'not-recorded' };\n\n/**\n * Whether the prediction is independent of the measurement it is compared\n * with. Separate from goodness of fit: a record can agree within 1σ and still\n * share an input with its prediction. `no-fitted-parameter`: the prediction\n * takes no parameter fitted to this measurement. `shares-input`: prediction\n * and observation share `shared` (a constant, calibration, baseline, or the\n * value itself). `not-recorded`: the record states neither.\n *\n * @public\n */\nexport type ConfrontationIndependence =\n | { readonly state: 'no-fitted-parameter'; readonly statement: string; readonly source: SourceRefs }\n | {\n readonly state: 'shares-input';\n readonly shared: string;\n readonly statement: string;\n readonly source: SourceRefs;\n }\n | { readonly state: 'not-recorded' };\n\n/** Data-handling fields every confrontation outcome carries. @public */\nexport interface ConfrontationDataHandling {\n readonly preprocessing: ConfrontationPreprocessing;\n readonly independence: ConfrontationIndependence;\n}\n\n/**\n * Normalized confrontation result — discriminated on `kind`. Each arm\n * carries only the fields it can honestly populate.\n *\n * @public\n */\nexport type ConfrontationOutcome = ConfrontationDataHandling & (\n | {\n readonly kind: 'value';\n readonly predicted: number;\n readonly observed: number;\n readonly sigma: number;\n readonly residualInSigma: number;\n readonly withinObserved: boolean;\n readonly units: string;\n readonly provenance: ObservationProvenance;\n /**\n * Present when `observed` is DERIVED from a different measured quantity\n * rather than measured itself. BE-51's \"observed\" deflection is the\n * prediction times (1 + γ)/2: VLBI measured γ, not a solar-limb\n * deflection to 16 digits. The report shows this measurement, and labels\n * `observed` as derived by `derivation`.\n */\n readonly measured?: {\n readonly quantity: string;\n readonly value: number;\n readonly sigma: number;\n readonly source: string;\n readonly derivation: string;\n };\n }\n | {\n readonly kind: 'upper-bound';\n readonly predicted: number;\n /** The observed upper limit. */\n readonly bound: number;\n readonly satisfied: boolean;\n /**\n * What `predicted` is. `'point'` (the default when absent): a predicted\n * value, satisfied when it lies at or below the observed limit.\n * `'encoded-bound'`: the bridge's own claim is a range `|x| ≤ predicted`,\n * satisfied when the observed limit lies inside it (BE-36). The two are\n * different comparisons and are displayed as such.\n */\n readonly predictedIs?: 'point' | 'encoded-bound';\n /**\n * Optional honesty caveat surfaced in the confront summary line — e.g. a\n * one-sided pass where only part of an asymmetric observed interval was\n * tested against a symmetric encoded bound (BE-36).\n */\n readonly caveat?: string;\n readonly units: string;\n readonly provenance: ObservationProvenance;\n }\n | {\n readonly kind: 'consistency';\n readonly predicted: number;\n readonly approaches: number;\n /** Holds what `fractionalGapIs` says; the name predates that split. */\n readonly fractionalGap: number;\n /**\n * `'agreement-bound'`: `fractionalGap` is the record's stated tolerance\n * on |observed − predicted|/|predicted|, NOT a measured difference.\n * `'observed-difference'`: it is the difference itself, and the outcome\n * carries no agreement bound. `consistencyComparison` computes the\n * difference either way.\n */\n readonly fractionalGapIs: 'agreement-bound' | 'observed-difference';\n /**\n * What `predicted` is. `'reference'` (the default when absent): a reference value the\n * observation is compared with. `'lower-limit'`: the bridge claims the range\n * `x ≥ predicted` (BE-21's KSS bound η/s ≥ 1/(4π)), decided by observed ≥ predicted. A lower\n * limit carries no agreement bound, so it requires `fractionalGapIs: 'observed-difference'`.\n */\n readonly predictedIs?: 'reference' | 'lower-limit';\n readonly units: string;\n readonly provenance: ObservationProvenance;\n }\n | {\n readonly kind: 'table';\n readonly rows: ReadonlyArray<{\n readonly label: string;\n readonly predicted: number;\n readonly observed: number;\n readonly sigma: number;\n readonly residualInSigma: number;\n }>;\n readonly units: string;\n readonly provenance: ObservationProvenance;\n }\n);\n\n/** |predicted − observed| in units of the observed 1σ. @public */\nexport function residualInSigma(predicted: number, observed: number, sigma: number): number {\n if (!(Number.isFinite(sigma) && sigma > 0)) {\n throw new RangeError('residualInSigma: sigma must be finite and > 0');\n }\n return Math.abs(predicted - observed) / sigma;\n}\n\n/** A consistency outcome's actual difference, kept apart from its agreement bound. @public */\nexport interface ConsistencyComparison {\n /** (observed − predicted) / predicted, signed; \"observed\" is the outcome's `approaches`. */\n readonly relativeDifference: number;\n readonly definition: '(observed − predicted) / predicted';\n /** The record's stated tolerance on |relativeDifference|; null when the outcome carries none. */\n readonly agreementBound: number | null;\n /** The rule the decision applies; null when the outcome states none. */\n readonly rule: '|difference| ≤ agreement bound' | 'observed ≥ predicted lower limit' | null;\n /** The decision under `rule`: compatible (true) or not (false); null when there is no rule. */\n readonly withinBound: boolean | null;\n}\n\n/**\n * The actual difference of a consistency outcome, computed from its own\n * predicted and observed values, and the compatibility decision: against its\n * agreement bound when it has one, or observed ≥ predicted when the prediction\n * is a lower limit.\n *\n * @public\n */\nexport function consistencyComparison(\n o: Extract<ConfrontationOutcome, { kind: 'consistency' }>,\n): ConsistencyComparison {\n if (!(Number.isFinite(o.predicted) && o.predicted !== 0)) {\n throw new RangeError('consistencyComparison: predicted must be finite and nonzero');\n }\n const relativeDifference = (o.approaches - o.predicted) / o.predicted;\n const agreementBound = o.fractionalGapIs === 'agreement-bound' ? o.fractionalGap : null;\n const definition = '(observed − predicted) / predicted' as const;\n if (o.predictedIs === 'lower-limit') {\n if (agreementBound !== null) {\n throw new RangeError('consistencyComparison: a lower limit carries no agreement bound');\n }\n return { relativeDifference, definition, agreementBound, rule: 'observed ≥ predicted lower limit', withinBound: o.approaches >= o.predicted };\n }\n return {\n relativeDifference,\n definition,\n agreementBound,\n rule: agreementBound === null ? null : '|difference| ≤ agreement bound',\n withinBound: agreementBound === null ? null : Math.abs(relativeDifference) <= agreementBound,\n };\n}\n\n/** Combined 1σ from named components (root-sum-square). @public */\nexport function combineInQuadrature(components: readonly SigmaComponent[]): number {\n if (components.length === 0) {\n throw new RangeError('combineInQuadrature: need at least one component');\n }\n return Math.sqrt(components.reduce((acc, c) => acc + c.value * c.value, 0));\n}\n"]}
@@ -1,19 +1,15 @@
1
1
  /**
2
- * Negative catalog (v0.8.0 P-4) — NOT-A-BRIDGE adjudications as
3
- * first-class data.
2
+ * Negative catalog — NOT-A-BRIDGE adjudications, projected from the
3
+ * `rejections` ledger of `data/bridge-catalog.json`.
4
4
  *
5
- * Each entry records the outcome of applying the v0.8.0 graph-native
6
- * membership criterion (*a bridge is an edge whose endpoint quantities
7
- * differ in at least one regime attribute*) to a catalog row, with the
8
- * physics reason and a citation. Rejected entries REMAIN in
9
- * `BRIDGE_EQUATIONS` (their formulas and encodings are still valid
10
- * physics); this registry is the adjudication overlay consumed by
11
- * `membership.ts` — an id listed here reports `'not-a-bridge'`
5
+ * Each record is the outcome of applying the graph-native membership
6
+ * criterion (*a bridge is an edge whose endpoint quantities differ in at
7
+ * least one regime attribute*) to a catalog row, with the physics reason and
8
+ * a citation. Rejected rows REMAIN in `BRIDGE_EQUATIONS` (their formulas are
9
+ * still valid physics); this projection is the adjudication overlay
10
+ * `membership.ts` consumes — an id listed here reports `'not-a-bridge'`
12
11
  * regardless of its `bridges` tuple (design r2-4 precedence).
13
12
  *
14
- * Recording rejections as data rather than audit-doc prose prevents
15
- * re-litigation and documents the criterion by counterexample.
16
- *
17
13
  * @module bridges/rejected
18
14
  */
19
15
  /** A NOT-A-BRIDGE adjudication record. @public */
@@ -26,11 +22,9 @@ export interface RejectedBridgeAdjudication {
26
22
  readonly citation: string;
27
23
  }
28
24
  /**
29
- * The negative catalog. Adjudicated 2026-06-11 (v0.8.0 Phase 4),
30
- * upholding five of the BRIDGE-PHYSICS-AUDIT §3 classifications under
31
- * the graph-native criterion. BE-42 was REVERSED to a bridge (see the
32
- * catalog entry and `docs/architecture/v0.8.0-catalog-adjudication.md`);
33
- * BE-44/46/50 remain contested/unadjudicated (same doc, with reasons).
25
+ * The negative catalog, in ledger order. Adjudicated 2026-06-11 (v0.8.0
26
+ * Phase 4); BE-42 was REVERSED to a bridge and BE-44/46/50 remain contested
27
+ * (`docs/architecture/v0.8.0-catalog-adjudication.md`).
34
28
  *
35
29
  * @public
36
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"rejected.d.ts","sourceRoot":"","sources":["../../src/bridges/rejected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,kDAAkD;AAClD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,0BAA0B,CAwDjF,CAAC;AAEJ,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC"}
1
+ {"version":3,"file":"rejected.d.ts","sourceRoot":"","sources":["../../src/bridges/rejected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,kDAAkD;AAClD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,aAAa,CAAC,0BAA0B,CAEnF,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAEnD,CAAC"}
@@ -1,81 +1,26 @@
1
1
  /**
2
- * Negative catalog (v0.8.0 P-4) — NOT-A-BRIDGE adjudications as
3
- * first-class data.
2
+ * Negative catalog — NOT-A-BRIDGE adjudications, projected from the
3
+ * `rejections` ledger of `data/bridge-catalog.json`.
4
4
  *
5
- * Each entry records the outcome of applying the v0.8.0 graph-native
6
- * membership criterion (*a bridge is an edge whose endpoint quantities
7
- * differ in at least one regime attribute*) to a catalog row, with the
8
- * physics reason and a citation. Rejected entries REMAIN in
9
- * `BRIDGE_EQUATIONS` (their formulas and encodings are still valid
10
- * physics); this registry is the adjudication overlay consumed by
11
- * `membership.ts` — an id listed here reports `'not-a-bridge'`
5
+ * Each record is the outcome of applying the graph-native membership
6
+ * criterion (*a bridge is an edge whose endpoint quantities differ in at
7
+ * least one regime attribute*) to a catalog row, with the physics reason and
8
+ * a citation. Rejected rows REMAIN in `BRIDGE_EQUATIONS` (their formulas are
9
+ * still valid physics); this projection is the adjudication overlay
10
+ * `membership.ts` consumes — an id listed here reports `'not-a-bridge'`
12
11
  * regardless of its `bridges` tuple (design r2-4 precedence).
13
12
  *
14
- * Recording rejections as data rather than audit-doc prose prevents
15
- * re-litigation and documents the criterion by counterexample.
16
- *
17
13
  * @module bridges/rejected
18
14
  */
15
+ import { catalogRejections } from './catalog-load.js';
19
16
  /**
20
- * The negative catalog. Adjudicated 2026-06-11 (v0.8.0 Phase 4),
21
- * upholding five of the BRIDGE-PHYSICS-AUDIT §3 classifications under
22
- * the graph-native criterion. BE-42 was REVERSED to a bridge (see the
23
- * catalog entry and `docs/architecture/v0.8.0-catalog-adjudication.md`);
24
- * BE-44/46/50 remain contested/unadjudicated (same doc, with reasons).
17
+ * The negative catalog, in ledger order. Adjudicated 2026-06-11 (v0.8.0
18
+ * Phase 4); BE-42 was REVERSED to a bridge and BE-44/46/50 remain contested
19
+ * (`docs/architecture/v0.8.0-catalog-adjudication.md`).
25
20
  *
26
21
  * @public
27
22
  */
28
- export const REJECTED_BRIDGE_ADJUDICATIONS = [
29
- {
30
- beId: 28,
31
- name: 'Maximum Entropy Production Principle',
32
- verdict: 'not-a-bridge',
33
- reason: 'The encoded σ = Σᵢ Jᵢ Xᵢ is the definiendum of entropy ' +
34
- 'production within nonequilibrium thermodynamics — fluxes, ' +
35
- 'forces, and σ all live in the same classical statistical ' +
36
- 'regime. The variational MEPP claim (which might bridge) is ' +
37
- 'not what is encoded (see the catalog entry’s ⚠ warning).',
38
- citation: 'Martyushev & Seleznev 2006 Phys. Rep. 426:1',
39
- },
40
- {
41
- beId: 29,
42
- name: 'Jarzynski free-energy equality (canonical 1997 form)',
43
- verdict: 'not-a-bridge',
44
- reason: '⟨e^(−βW)⟩ = e^(−βΔF) relates a nonequilibrium work ' +
45
- 'distribution to an equilibrium free energy, both within ' +
46
- 'classical statistical mechanics. Equilibrium-vs-nonequilibrium ' +
47
- 'status is not one of the regime axes — the endpoints share ' +
48
- 'scale and force attributes.',
49
- citation: 'Jarzynski 1997 PRL 78:2690',
50
- },
51
- {
52
- beId: 32,
53
- name: 'Quantum Reference Frame Transformation',
54
- verdict: 'not-a-bridge',
55
- reason: 'A transformation between quantum descriptions relative to ' +
56
- 'different reference frames — both endpoints are quantum-scale ' +
57
- 'quantities; the relation is internal to quantum theory.',
58
- citation: 'Giacomini, Castro-Ruiz & Brukner 2019 Nat. Commun. 10:494',
59
- },
60
- {
61
- beId: 35,
62
- name: 'Conformal Bootstrap - Physical Operator Equation',
63
- verdict: 'not-a-bridge',
64
- reason: 'The crossing-symmetry constraint is internal to a CFT’s ' +
65
- 'operator algebra — a consistency condition within one QFT ' +
66
- 'regime, not a relation between regimes.',
67
- citation: 'Rattazzi, Rychkov, Tonni & Vichi 2008 JHEP 0812:031',
68
- },
69
- {
70
- beId: 40,
71
- name: 'Composite Higgs Potential',
72
- verdict: 'not-a-bridge',
73
- reason: 'The SILH effective potential V(h) is a single-regime ' +
74
- 'electroweak-QFT object; its endpoints (field value, potential ' +
75
- 'energy density) share scale and force attributes.',
76
- citation: 'Giudice, Grojean, Pomarol & Rattazzi 2007 JHEP 0706:045',
77
- },
78
- ];
23
+ export const REJECTED_BRIDGE_ADJUDICATIONS = catalogRejections().map((row) => ({ beId: row.catalogId, name: row.name, verdict: 'not-a-bridge', reason: row.reason, citation: row.citation }));
79
24
  /** The rejected ids as a Set, for overlay lookups. @public */
80
25
  export const REJECTED_BRIDGE_IDS = new Set(REJECTED_BRIDGE_ADJUDICATIONS.map((r) => r.beId));
81
26
  //# sourceMappingURL=rejected.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rejected.js","sourceRoot":"","sources":["../../src/bridges/rejected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAYH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GACxC;IACE;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,cAAc;QACvB,MAAM,EACJ,yDAAyD;YACzD,4DAA4D;YAC5D,2DAA2D;YAC3D,6DAA6D;YAC7D,0DAA0D;QAC5D,QAAQ,EAAE,6CAA6C;KACxD;IACD;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,sDAAsD;QAC5D,OAAO,EAAE,cAAc;QACvB,MAAM,EACJ,qDAAqD;YACrD,0DAA0D;YAC1D,iEAAiE;YACjE,6DAA6D;YAC7D,6BAA6B;QAC/B,QAAQ,EAAE,4BAA4B;KACvC;IACD;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,cAAc;QACvB,MAAM,EACJ,4DAA4D;YAC5D,gEAAgE;YAChE,yDAAyD;QAC3D,QAAQ,EAAE,2DAA2D;KACtE;IACD;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,kDAAkD;QACxD,OAAO,EAAE,cAAc;QACvB,MAAM,EACJ,0DAA0D;YAC1D,4DAA4D;YAC5D,yCAAyC;QAC3C,QAAQ,EAAE,qDAAqD;KAChE;IACD;QACE,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,cAAc;QACvB,MAAM,EACJ,uDAAuD;YACvD,gEAAgE;YAChE,mDAAmD;QACrD,QAAQ,EAAE,yDAAyD;KACpE;CACF,CAAC;AAEJ,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAC7D,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACjD,CAAC"}
1
+ {"version":3,"file":"rejected.js","sourceRoot":"","sources":["../../src/bridges/rejected.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAYtD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA8C,iBAAiB,EAAE,CAAC,GAAG,CAC7G,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CACxH,CAAC;AAEF,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAC7D,6BAA6B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACjD,CAAC","sourcesContent":["/**\n * Negative catalog — NOT-A-BRIDGE adjudications, projected from the\n * `rejections` ledger of `data/bridge-catalog.json`.\n *\n * Each record is the outcome of applying the graph-native membership\n * criterion (*a bridge is an edge whose endpoint quantities differ in at\n * least one regime attribute*) to a catalog row, with the physics reason and\n * a citation. Rejected rows REMAIN in `BRIDGE_EQUATIONS` (their formulas are\n * still valid physics); this projection is the adjudication overlay\n * `membership.ts` consumes — an id listed here reports `'not-a-bridge'`\n * regardless of its `bridges` tuple (design r2-4 precedence).\n *\n * @module bridges/rejected\n */\n\nimport { catalogRejections } from './catalog-load.js';\n\n/** A NOT-A-BRIDGE adjudication record. @public */\nexport interface RejectedBridgeAdjudication {\n readonly beId: number;\n readonly name: string;\n readonly verdict: 'not-a-bridge';\n /** Why the endpoints do NOT differ in regime attributes. */\n readonly reason: string;\n readonly citation: string;\n}\n\n/**\n * The negative catalog, in ledger order. Adjudicated 2026-06-11 (v0.8.0\n * Phase 4); BE-42 was REVERSED to a bridge and BE-44/46/50 remain contested\n * (`docs/architecture/v0.8.0-catalog-adjudication.md`).\n *\n * @public\n */\nexport const REJECTED_BRIDGE_ADJUDICATIONS: ReadonlyArray<RejectedBridgeAdjudication> = catalogRejections().map(\n (row) => ({ beId: row.catalogId, name: row.name, verdict: 'not-a-bridge', reason: row.reason, citation: row.citation }),\n);\n\n/** The rejected ids as a Set, for overlay lookups. @public */\nexport const REJECTED_BRIDGE_IDS: ReadonlySet<number> = new Set(\n REJECTED_BRIDGE_ADJUDICATIONS.map((r) => r.beId),\n);\n"]}
@@ -8,16 +8,15 @@ import { CarrierSignError } from './carrier-sign.js';
8
8
  import type { CatalogRelation } from './catalog-types.js';
9
9
  /** Thrown when two carrier roles have opposite signs. */
10
10
  export { CarrierSignError };
11
- /** Whether `inputs` satisfy the relation's validity condition. */
11
+ /**
12
+ * Whether `inputs` satisfy the relation's validity condition. An unbound or
13
+ * unparsable condition is false; an input that names a constant the relation
14
+ * does not declare as a source throws `ConstantInputError`.
15
+ */
12
16
  export declare function relationHolds(rel: CatalogRelation, inputs: Readonly<Record<string, number>>): boolean;
13
17
  /**
14
18
  * The relation's number at `inputs`. The caller has already checked the
15
19
  * validity condition. Opposite carrier signs throw {@link CarrierSignError}.
16
20
  */
17
21
  export declare function evaluateCatalogRelation(rel: CatalogRelation, inputs: Readonly<Record<string, number>>): number;
18
- /**
19
- * Recover the one missing finite input that makes the relation equal `target`.
20
- * A bracket that does not change sign has no root and throws.
21
- */
22
- export declare function solveCatalogRelation(rel: CatalogRelation, known: Readonly<Record<string, number>>, unknown: string, target?: number): number;
23
22
  //# sourceMappingURL=relation-eval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-eval.d.ts","sourceRoot":"","sources":["../../src/bridges/relation-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,yDAAyD;AACzD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AA4D5B,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAOrG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,MAAM,CAiBR;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,OAAO,EAAE,MAAM,EACf,MAAM,SAAI,GACT,MAAM,CA2BR"}
1
+ {"version":3,"file":"relation-eval.d.ts","sourceRoot":"","sources":["../../src/bridges/relation-eval.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAA0B,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,yDAAyD;AACzD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AA4D5B;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,OAAO,CAOrG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACvC,MAAM,CAiBR"}
@@ -41,8 +41,8 @@ function classify(rel) {
41
41
  let pos;
42
42
  let neg;
43
43
  try {
44
- pos = evaluateFormula(rel.expression, { ...base, [name]: magnitude });
45
- neg = evaluateFormula(rel.expression, { ...base, [name]: -magnitude });
44
+ pos = evaluateFormula(rel.expression, { ...base, [name]: magnitude }, rel.sources);
45
+ neg = evaluateFormula(rel.expression, { ...base, [name]: -magnitude }, rel.sources);
46
46
  }
47
47
  catch {
48
48
  continue;
@@ -72,10 +72,14 @@ function classify(rel) {
72
72
  parityCache.set(rel.id, found);
73
73
  return found;
74
74
  }
75
- /** Whether `inputs` satisfy the relation's validity condition. */
75
+ /**
76
+ * Whether `inputs` satisfy the relation's validity condition. An unbound or
77
+ * unparsable condition is false; an input that names a constant the relation
78
+ * does not declare as a source throws `ConstantInputError`.
79
+ */
76
80
  export function relationHolds(rel, inputs) {
77
81
  try {
78
- return holds(rel.holds, inputs, formulaScope(), [...formulaNames()]);
82
+ return holds(rel.holds, inputs, formulaScope(), [...formulaNames()], rel.sources);
79
83
  }
80
84
  catch (error) {
81
85
  if (error instanceof HoldsError)
@@ -98,39 +102,6 @@ export function evaluateCatalogRelation(rel, inputs) {
98
102
  left: named(rel, pair.charge),
99
103
  right: named(rel, pair.mobility),
100
104
  });
101
- return evaluateFormula(rel.expression, adjusted);
102
- }
103
- /**
104
- * Recover the one missing finite input that makes the relation equal `target`.
105
- * A bracket that does not change sign has no root and throws.
106
- */
107
- export function solveCatalogRelation(rel, known, unknown, target = 0) {
108
- const f = (value) => evaluateCatalogRelation(rel, { ...known, [unknown]: value }) - target;
109
- let lo = 1e-6;
110
- let hi = 1;
111
- let flo = f(lo);
112
- let fhi = f(hi);
113
- for (let i = 0; i < 60 && flo * fhi > 0; i += 1) {
114
- lo /= 2;
115
- hi *= 2;
116
- flo = f(lo);
117
- fhi = f(hi);
118
- }
119
- if (!(flo * fhi <= 0)) {
120
- throw new Error(`solveCatalogRelation: ${rel.id} has no root for ${unknown}`);
121
- }
122
- for (let i = 0; i < 80; i += 1) {
123
- const mid = (lo + hi) / 2;
124
- const fmid = f(mid);
125
- if (flo * fmid <= 0) {
126
- hi = mid;
127
- fhi = fmid;
128
- }
129
- else {
130
- lo = mid;
131
- flo = fmid;
132
- }
133
- }
134
- return (lo + hi) / 2;
105
+ return evaluateFormula(rel.expression, adjusted, rel.sources);
135
106
  }
136
107
  //# sourceMappingURL=relation-eval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relation-eval.js","sourceRoot":"","sources":["../../src/bridges/relation-eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relation-eval.js","sourceRoot":"","sources":["../../src/bridges/relation-eval.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Evaluate one catalog relation: validity condition, carrier-sign policy,\n * and the parsed expression. No per-equation branch.\n *\n * @module bridges/relation-eval\n */\n\nimport { quantityRecord } from '../dimensional/quantity-registry.js';\nimport { applyCarrierSignPolicy, CarrierSignError } from './carrier-sign.js';\nimport type { CatalogRelation } from './catalog-types.js';\nimport { evaluateFormula, formulaNames, formulaScope } from './expr-parse.js';\nimport { holds, HoldsError } from './holds.js';\n\n/** Thrown when two carrier roles have opposite signs. */\nexport { CarrierSignError };\n\nconst parityCache = new Map<string, { readonly even: readonly string[]; readonly pair?: { readonly charge: string; readonly mobility: string } }>();\n\nfunction named(rel: CatalogRelation, name: string): string {\n const alias = rel.aliases[name]?.[0];\n return alias === undefined ? name : `${name} (${alias})`;\n}\n\nfunction signRole(name: string): 'charge' | 'mobility' | undefined {\n return quantityRecord(name)?.signRole;\n}\n\nfunction sampleInputs(rel: CatalogRelation): Record<string, number> | null {\n if (rel.reference !== undefined) return { ...rel.reference.inputs };\n if (rel.sources.length === 0) return {};\n return null;\n}\n\nfunction classify(rel: CatalogRelation): { even: readonly string[]; pair?: { charge: string; mobility: string } } {\n const cached = parityCache.get(rel.id);\n if (cached !== undefined) return cached;\n const base = sampleInputs(rel);\n const even: string[] = [];\n const odd: { charge: string[]; mobility: string[] } = { charge: [], mobility: [] };\n if (base !== null) {\n for (const name of rel.sources) {\n const x = base[name];\n if (x === undefined || x === 0 || !Number.isFinite(x)) continue;\n const magnitude = Math.abs(x);\n let pos: number;\n let neg: number;\n try {\n pos = evaluateFormula(rel.expression, { ...base, [name]: magnitude }, rel.sources);\n neg = evaluateFormula(rel.expression, { ...base, [name]: -magnitude }, rel.sources);\n } catch {\n continue;\n }\n if (!Number.isFinite(pos) || !Number.isFinite(neg)) continue;\n const scale = Math.max(Math.abs(pos), Math.abs(neg), 1);\n const isEven = Math.abs(pos - neg) <= 1e-8 * scale;\n const isOdd = Math.abs(pos + neg) <= 1e-8 * scale;\n if (isEven && !isOdd) even.push(name);\n if (isOdd && !isEven) {\n const role = signRole(name);\n if (role === 'charge') odd.charge.push(name);\n if (role === 'mobility') odd.mobility.push(name);\n }\n }\n }\n const charge = odd.charge[0];\n const mobility = odd.mobility[0];\n const found = {\n even,\n ...(charge !== undefined && mobility !== undefined ? { pair: { charge, mobility } } : {}),\n };\n parityCache.set(rel.id, found);\n return found;\n}\n\n/**\n * Whether `inputs` satisfy the relation's validity condition. An unbound or\n * unparsable condition is false; an input that names a constant the relation\n * does not declare as a source throws `ConstantInputError`.\n */\nexport function relationHolds(rel: CatalogRelation, inputs: Readonly<Record<string, number>>): boolean {\n try {\n return holds(rel.holds, inputs, formulaScope(), [...formulaNames()], rel.sources);\n } catch (error) {\n if (error instanceof HoldsError) return false;\n throw error;\n }\n}\n\n/**\n * The relation's number at `inputs`. The caller has already checked the\n * validity condition. Opposite carrier signs throw {@link CarrierSignError}.\n */\nexport function evaluateCatalogRelation(\n rel: CatalogRelation,\n inputs: Readonly<Record<string, number>>,\n): number {\n const policy = classify(rel);\n const pair = policy.pair;\n const adjusted = applyCarrierSignPolicy(\n null,\n inputs,\n new Set(policy.even),\n pair === undefined\n ? undefined\n : {\n a: inputs[pair.charge] ?? Number.NaN,\n b: inputs[pair.mobility] ?? Number.NaN,\n left: named(rel, pair.charge),\n right: named(rel, pair.mobility),\n },\n );\n return evaluateFormula(rel.expression, adjusted, rel.sources);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"rhs-registry.js","sourceRoot":"","sources":["../../src/bridges/rhs-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,iGAAiG;AACjG,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAkC,IAAI,GAAG,CACpE,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC;IACnF,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;AACnE,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"rhs-registry.js","sourceRoot":"","sources":["../../src/bridges/rhs-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,iGAAiG;AACjG,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAkC,IAAI,GAAG,CACpE,cAAc,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,gBAAgB,CAAC;IACnF,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACxC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAU,CAAC,CAAC;AACnE,CAAC,CAAC,CACH,CAAC","sourcesContent":["/**\n * Right-hand side of each catalog id that has a relation, projected from\n * that relation's expression.\n *\n * @module bridges/rhs-registry\n */\n\nimport type { ExprNode } from '../dimensional/ast-types.js';\nimport { catalogEntries, parseBridgeId, primaryRelation } from './catalog-load.js';\nimport { parseCatalogExpression } from './expr-parse.js';\n\n/** Parse `42`, `be-42`, or `BE-42` into a catalog id. This module re-exports the only parser. */\nexport { parseBridgeId };\n\n/** Catalog id → expression tree of its primary relation. */\nexport const BRIDGE_RHS_BY_ID: ReadonlyMap<number, ExprNode> = new Map(\n catalogEntries().flatMap((entry) => {\n const expression = primaryRelation(entry.id)?.expression ?? entry.scalarExpression;\n if (expression === undefined) return [];\n return [[entry.id, parseCatalogExpression(expression)] as const];\n }),\n);\n"]}
@@ -1,16 +1,24 @@
1
1
  /**
2
2
  * Deciding-measurement elasticity for value-kind confrontations. For each
3
- * numeric input of a stored prediction point, report the dimensionless
4
- * log-sensitivity E_i = |∂P/∂x_i|·x_i/P. This ranks which input the
5
- * prediction depends on most strongly. It is not an uncertainty budget.
3
+ * input of a stored prediction point, report the dimensionless
4
+ * log-sensitivity E_i = |∂P/∂x_i|·x_i/P of the number the record predicts.
5
+ * This ranks which input the prediction depends on most strongly. It is not
6
+ * an uncertainty budget.
6
7
  *
7
8
  * @module bridges/sensitivity
8
9
  */
10
+ import type { CatalogPrediction } from './catalog-types.js';
9
11
  /** One input's elasticity. @public */
10
12
  export interface Elasticity {
11
13
  readonly input: string;
12
14
  readonly elasticity: number;
13
15
  }
16
+ /**
17
+ * The number a confrontation's prediction point yields: the evaluator's value
18
+ * at the point, or the extra output the prediction names.
19
+ * @internal
20
+ */
21
+ export declare function predictedAt(catalogId: number, prediction: CatalogPrediction, inputs: Record<string, number>): number;
14
22
  /**
15
23
  * Elasticity ranking for a value-kind confrontation that stores a prediction
16
24
  * point. `[]` when the record is not value-kind, has no point, or is absent.
@@ -1 +1 @@
1
- {"version":3,"file":"sensitivity.d.ts","sourceRoot":"","sources":["../../src/bridges/sensitivity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAiBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAUnE"}
1
+ {"version":3,"file":"sensitivity.d.ts","sourceRoot":"","sources":["../../src/bridges/sensitivity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,sCAAsC;AACtC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAiBD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQpH;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CASnE"}
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * Deciding-measurement elasticity for value-kind confrontations. For each
3
- * numeric input of a stored prediction point, report the dimensionless
4
- * log-sensitivity E_i = |∂P/∂x_i|·x_i/P. This ranks which input the
5
- * prediction depends on most strongly. It is not an uncertainty budget.
3
+ * input of a stored prediction point, report the dimensionless
4
+ * log-sensitivity E_i = |∂P/∂x_i|·x_i/P of the number the record predicts.
5
+ * This ranks which input the prediction depends on most strongly. It is not
6
+ * an uncertainty budget.
6
7
  *
7
8
  * @module bridges/sensitivity
8
9
  */
9
10
  import { catalogConfrontations } from './catalog-load.js';
10
- import { evaluateFormula } from './expr-parse.js';
11
- import { primaryRelation } from './catalog-load.js';
11
+ import { BRIDGE_EVALUATORS } from './evaluators.js';
12
12
  function elasticityOf(predict, point, key) {
13
13
  const x = point[key];
14
14
  const h = Math.abs(x) * 1e-6 || 1e-12;
@@ -20,6 +20,22 @@ function elasticityOf(predict, point, key) {
20
20
  return 0;
21
21
  return (Math.abs(dP) * Math.abs(x)) / Math.abs(P);
22
22
  }
23
+ /**
24
+ * The number a confrontation's prediction point yields: the evaluator's value
25
+ * at the point, or the extra output the prediction names.
26
+ * @internal
27
+ */
28
+ export function predictedAt(catalogId, prediction, inputs) {
29
+ const spec = BRIDGE_EVALUATORS.get(catalogId);
30
+ if (spec === undefined)
31
+ throw new Error(`confrontation ${catalogId}: no evaluator predicts it`);
32
+ const result = spec.run(inputs, prediction.output === undefined ? 'value' : 'all');
33
+ const key = prediction.output ?? 'value';
34
+ const value = result[key];
35
+ if (value === undefined)
36
+ throw new Error(`confrontation ${catalogId}: the evaluator returns no '${key}' at the prediction point`);
37
+ return value;
38
+ }
23
39
  /**
24
40
  * Elasticity ranking for a value-kind confrontation that stores a prediction
25
41
  * point. `[]` when the record is not value-kind, has no point, or is absent.
@@ -30,11 +46,9 @@ export function decidingMeasurement(catalogId) {
30
46
  const row = catalogConfrontations().find((item) => item.catalogId === catalogId);
31
47
  if (row === undefined || row.kind !== 'value' || row.prediction === undefined)
32
48
  return [];
33
- const relation = primaryRelation(catalogId);
34
- if (relation === undefined)
35
- return [];
36
- const point = { ...row.prediction.inputs };
37
- const predict = (inputs) => evaluateFormula(relation.expression, inputs);
49
+ const prediction = row.prediction;
50
+ const point = { ...prediction.inputs };
51
+ const predict = (inputs) => predictedAt(catalogId, prediction, inputs);
38
52
  return Object.keys(point)
39
53
  .map((key) => ({ input: key, elasticity: elasticityOf(predict, point, key) }))
40
54
  .sort((a, b) => b.elasticity - a.elasticity);
@@ -1 +1 @@
1
- {"version":3,"file":"sensitivity.js","sourceRoot":"","sources":["../../src/bridges/sensitivity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAQpD,SAAS,YAAY,CACnB,OAAkD,EAClD,KAA6B,EAC7B,GAAW;IAEX,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC;IACtC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACjF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACzF,MAAM,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,MAA8B,EAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACzG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"sensitivity.js","sourceRoot":"","sources":["../../src/bridges/sensitivity.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAQpD,SAAS,YAAY,CACnB,OAAkD,EAClD,KAA6B,EAC7B,GAAW;IAEX,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAE,CAAC;IACtB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC;IACtC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAA6B,EAAE,MAA8B;IAC1G,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,4BAA4B,CAAC,CAAC;IAChG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,SAAS,+BAA+B,GAAG,2BAA2B,CAAC,CAAC;IAClI,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,GAAG,GAAG,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACjF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACzF,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC;IAClC,MAAM,KAAK,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;IACvC,MAAM,OAAO,GAAG,CAAC,MAA8B,EAAU,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IACvG,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAC7E,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC","sourcesContent":["/**\n * Deciding-measurement elasticity for value-kind confrontations. For each\n * input of a stored prediction point, report the dimensionless\n * log-sensitivity E_i = |∂P/∂x_i|·x_i/P of the number the record predicts.\n * This ranks which input the prediction depends on most strongly. It is not\n * an uncertainty budget.\n *\n * @module bridges/sensitivity\n */\n\nimport { catalogConfrontations } from './catalog-load.js';\nimport type { CatalogPrediction } from './catalog-types.js';\nimport { BRIDGE_EVALUATORS } from './evaluators.js';\n\n/** One input's elasticity. @public */\nexport interface Elasticity {\n readonly input: string;\n readonly elasticity: number;\n}\n\nfunction elasticityOf(\n predict: (point: Record<string, number>) => number,\n point: Record<string, number>,\n key: string,\n): number {\n const x = point[key]!;\n const h = Math.abs(x) * 1e-6 || 1e-12;\n const up = { ...point, [key]: x + h };\n const dn = { ...point, [key]: x - h };\n const P = predict(point);\n const dP = (predict(up) - predict(dn)) / (2 * h);\n if (!(Number.isFinite(P) && P !== 0)) return 0;\n return (Math.abs(dP) * Math.abs(x)) / Math.abs(P);\n}\n\n/**\n * The number a confrontation's prediction point yields: the evaluator's value\n * at the point, or the extra output the prediction names.\n * @internal\n */\nexport function predictedAt(catalogId: number, prediction: CatalogPrediction, inputs: Record<string, number>): number {\n const spec = BRIDGE_EVALUATORS.get(catalogId);\n if (spec === undefined) throw new Error(`confrontation ${catalogId}: no evaluator predicts it`);\n const result = spec.run(inputs, prediction.output === undefined ? 'value' : 'all');\n const key = prediction.output ?? 'value';\n const value = result[key];\n if (value === undefined) throw new Error(`confrontation ${catalogId}: the evaluator returns no '${key}' at the prediction point`);\n return value;\n}\n\n/**\n * Elasticity ranking for a value-kind confrontation that stores a prediction\n * point. `[]` when the record is not value-kind, has no point, or is absent.\n *\n * @public\n */\nexport function decidingMeasurement(catalogId: number): Elasticity[] {\n const row = catalogConfrontations().find((item) => item.catalogId === catalogId);\n if (row === undefined || row.kind !== 'value' || row.prediction === undefined) return [];\n const prediction = row.prediction;\n const point = { ...prediction.inputs };\n const predict = (inputs: Record<string, number>): number => predictedAt(catalogId, prediction, inputs);\n return Object.keys(point)\n .map((key) => ({ input: key, elasticity: elasticityOf(predict, point, key) }))\n .sort((a, b) => b.elasticity - a.elasticity);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tensor-index.js","sourceRoot":"","sources":["../../src/bridges/tensor-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAE7B;IACF,mBAAmB,EACjB,yFAAyF;IAC3F,sBAAsB,EACpB,oFAAoF;IACtF,+EAA+E;IAC/E,SAAS,EAAE,uEAAuE;IAClF,mBAAmB,EACjB,wFAAwF;IAC1F,kBAAkB,EAChB,uFAAuF;CAC1F,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAmD;IACtF,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,YAAY;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"tensor-index.js","sourceRoot":"","sources":["../../src/bridges/tensor-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAE7B;IACF,mBAAmB,EACjB,yFAAyF;IAC3F,sBAAsB,EACpB,oFAAoF;IACtF,+EAA+E;IAC/E,SAAS,EAAE,uEAAuE;IAClF,mBAAmB,EACjB,wFAAwF;IAC1F,kBAAkB,EAChB,uFAAuF;CAC1F,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAmD;IACtF,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,WAAW;IACd,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,mBAAmB;IACtB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,kBAAkB;IACrB,CAAC,EAAE,YAAY;CAChB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,kDAAkD,QAAQ,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["/**\n * §VI.6.1 tensor-index component for a catalog category.\n *\n * Part II §VI.6.1 files each bridge under one component. The component is\n * the category cluster. It is not the `bridges` tuple, and it is not the\n * formula's tensor rank or `dimensional_signature`. Those three were checked\n * against the lists for ids 11–50: when they disagree with the category, the\n * list follows the category (BE-34, BE-39, BE-48 for the tuple; BE-13 and\n * BE-17 for rank; BE-11 and BE-48 share `[frequency]` and do not share a\n * component).\n *\n * `unassigned` is category N. The specification states that those three\n * equations do not fit the other five patterns. A category letter absent\n * from this map throws: a new letter is not silently `unassigned`.\n *\n * The pattern strings are the alt text of the five displayed indices.\n *\n * @internal\n * @module bridges/tensor-index\n */\n\n/** The five displayed indices, plus the category-N refusal. */\nexport type TensorIndexComponent =\n | 'quantum-classical'\n | 'information-geometry'\n | 'emergence'\n | 'field-unification'\n | 'scale-transition'\n | 'unassigned';\n\n/**\n * Alt text of the index Part II §VI.6.1 displays for that component.\n * Category N has no index.\n */\nexport const TENSOR_INDEX_PATTERN: Readonly<\n Record<Exclude<TensorIndexComponent, 'unassigned'>, string>\n> = {\n 'quantum-classical':\n '\\\\boldsymbol{\\\\Pi}^{\\\\text{quantum},\\\\text{classical},\\\\gamma,\\\\delta,\\\\epsilon,\\\\zeta}',\n 'information-geometry':\n '\\\\boldsymbol{\\\\Pi}^{\\\\alpha,\\\\beta,\\\\text{Poincaré},\\\\text{info},\\\\epsilon,\\\\zeta}',\n // U+2026, the character in the §VI.6.1 alt text, not the LaTeX command \\ldots.\n emergence: '\\\\boldsymbol{\\\\Pi}^{\\\\alpha\\\\beta\\\\gamma\\\\delta\\\\epsilon\\\\zeta\\u2026}',\n 'field-unification':\n '\\\\boldsymbol{\\\\Pi}^{\\\\alpha,\\\\text{force}_i,\\\\text{symmetry},\\\\delta,\\\\epsilon,\\\\zeta}',\n 'scale-transition':\n '\\\\boldsymbol{\\\\Pi}^{\\\\text{scale}_i,\\\\text{scale}_j,\\\\gamma,\\\\delta,\\\\epsilon,\\\\zeta}',\n};\n\n/**\n * Category letter → component. A and J are one component, and so on, matching\n * the id lists in §VI.6.1 for ids 11–50.\n */\nexport const TENSOR_INDEX_BY_CATEGORY: Readonly<Record<string, TensorIndexComponent>> = {\n A: 'quantum-classical',\n J: 'quantum-classical',\n B: 'information-geometry',\n I: 'information-geometry',\n M: 'information-geometry',\n C: 'emergence',\n H: 'emergence',\n O: 'emergence',\n D: 'field-unification',\n K: 'field-unification',\n L: 'field-unification',\n E: 'scale-transition',\n F: 'scale-transition',\n G: 'scale-transition',\n N: 'unassigned',\n};\n\n/**\n * Component for a catalog category letter.\n *\n * @throws when `category` is not one of A–O. A new letter is not guessed.\n */\nexport function tensorIndexComponent(category: string): TensorIndexComponent {\n const component = TENSOR_INDEX_BY_CATEGORY[category];\n if (component === undefined) {\n throw new Error(`no §VI.6.1 tensor-index component for category ${category}`);\n }\n return component;\n}\n"]}
@@ -6,18 +6,14 @@
6
6
  import type { Conventions, Counterexample, Regime, RelationContract } from '../relations/types.js';
7
7
  /** Lifecycle status of a bridge equation in the catalog. @public */
8
8
  export type BridgeEquationStatus = 'established' | 'speculative' | 'highly-speculative' | 'invalid';
9
- /** An active status is every status except `invalid`. */
10
- export declare function isActiveStatus(s: BridgeEquationStatus): s is Exclude<BridgeEquationStatus, 'invalid'>;
11
9
  /** How badly a catalogued defect undermines a bridge equation. @public */
12
10
  export type BridgeIssueSeverity = 'self-refuting' | 'dimensional' | 'index-structure' | 'sign' | 'undefined-quantity' | 'phenomenological-ansatz' | 'other';
13
11
  /** Whether a catalogued defect can be repaired, and at what cost. @public */
14
12
  export type BridgeIssueFixable = 'spec-edit' | 'reformulation' | 'unfixable-must-mark-invalid' | 'unknown';
15
- /** Tractability of a catalog row. */
16
- export type BridgeTractabilityClass = 'closed-form' | 'numerical-tractable' | 'numerical-asymptotic' | 'formally-divergent' | 'undefined';
17
13
  /** One recorded defect. @public */
18
14
  export interface KnownIssue {
19
15
  severity: BridgeIssueSeverity;
20
- /** Verbatim issue text from the spec (may be paraphrased; cf. source). */
16
+ /** The defect, in the catalog's words. */
21
17
  description: string;
22
18
  fixable: BridgeIssueFixable;
23
19
  }
@@ -41,8 +37,6 @@ export interface BridgeEquationEntry {
41
37
  references: string[];
42
38
  dependencies: number[];
43
39
  dimensional_signature: string | null;
44
- encoded_form?: string;
45
- tractability_class: BridgeTractabilityClass;
46
40
  notes: string;
47
41
  relation?: RelationContract;
48
42
  regime?: Regime;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridges/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEnG,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,SAAS,CAAC;AAEd,yDAAyD;AACzD,wBAAgB,cAAc,CAC5B,CAAC,EAAE,oBAAoB,GACtB,CAAC,IAAI,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAE/C;AAED,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,MAAM,GACN,oBAAoB,GACpB,yBAAyB,GACzB,OAAO,CAAC;AAEZ,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,eAAe,GACf,6BAA6B,GAC7B,SAAS,CAAC;AAEd,qCAAqC;AACrC,MAAM,MAAM,uBAAuB,GAC/B,aAAa,GACb,qBAAqB,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,WAAW,CAAC;AAEhB,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,uBAAuB,CAAC;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/bridges/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEnG,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAC5B,aAAa,GACb,aAAa,GACb,oBAAoB,GACpB,SAAS,CAAC;AAEd,0EAA0E;AAC1E,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,MAAM,GACN,oBAAoB,GACpB,yBAAyB,GACzB,OAAO,CAAC;AAEZ,6EAA6E;AAC7E,MAAM,MAAM,kBAAkB,GAC1B,WAAW,GACX,eAAe,GACf,6BAA6B,GAC7B,SAAS,CAAC;AAEd,mCAAmC;AACnC,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C"}
@@ -3,8 +3,5 @@
3
3
  *
4
4
  * @module bridges/types
5
5
  */
6
- /** An active status is every status except `invalid`. */
7
- export function isActiveStatus(s) {
8
- return s !== 'invalid';
9
- }
6
+ export {};
10
7
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridges/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,yDAAyD;AACzD,MAAM,UAAU,cAAc,CAC5B,CAAuB;IAEvB,OAAO,CAAC,KAAK,SAAS,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/bridges/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG","sourcesContent":["/**\n * Catalog entry types. The rows themselves live in `data/bridge-catalog.json`.\n *\n * @module bridges/types\n */\n\nimport type { Conventions, Counterexample, Regime, RelationContract } from '../relations/types.js';\n\n/** Lifecycle status of a bridge equation in the catalog. @public */\nexport type BridgeEquationStatus =\n | 'established'\n | 'speculative'\n | 'highly-speculative'\n | 'invalid';\n\n/** How badly a catalogued defect undermines a bridge equation. @public */\nexport type BridgeIssueSeverity =\n | 'self-refuting'\n | 'dimensional'\n | 'index-structure'\n | 'sign'\n | 'undefined-quantity'\n | 'phenomenological-ansatz'\n | 'other';\n\n/** Whether a catalogued defect can be repaired, and at what cost. @public */\nexport type BridgeIssueFixable =\n | 'spec-edit'\n | 'reformulation'\n | 'unfixable-must-mark-invalid'\n | 'unknown';\n\n/** One recorded defect. @public */\nexport interface KnownIssue {\n severity: BridgeIssueSeverity;\n /** The defect, in the catalog's words. */\n description: string;\n fixable: BridgeIssueFixable;\n}\n\n/**\n * One bridge equation as the catalog records it.\n * @public\n */\nexport interface BridgeEquationEntry {\n /** Stable catalog id. A field, never a code identifier. */\n id: number;\n name: string;\n category: string;\n category_name: string;\n bridges: [string, string];\n status: BridgeEquationStatus;\n context: string;\n formula_latex: string | null;\n source_part: 'I' | 'II' | 'III' | 'IV' | 'V' | 'VI';\n source_section: string;\n known_issues: KnownIssue[];\n references: string[];\n dependencies: number[];\n dimensional_signature: string | null;\n notes: string;\n relation?: RelationContract;\n regime?: Regime;\n conventions?: Conventions;\n counterexamples?: readonly Counterexample[];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-equation.js","sourceRoot":"","sources":["../../src/canonical/canonical-equation.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"canonical-equation.js","sourceRoot":"","sources":["../../src/canonical/canonical-equation.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Canonical (textbook) physics equations — the ground-truth L-layer of the\n * universal tensor (Π = L + B + E). A `CanonicalEquation` is the *answer key*\n * that bridge equations (the B-layer) are validated against; it is NOT a\n * speculative claim.\n *\n * Entries carry whichever FIDELITY LEVELS they can:\n * - L0 (mandatory) — `dimensional`: target dim + governing vars (+ monomial\n * when dimensionally determined). Reproduced by the Buckingham-π engine.\n * - L1 (optional) — `scalarAst`: an `ExprNode` RHS, validated dimensionally.\n * - L2 (optional) — `fieldEquation`: a tensor/PDE predicate node.\n *\n * Epistemic honesty (review finding F1): an L0-only entry must never read as\n * more than \"dimensionally consistent\". `epistemicStatus` is the highest claim\n * the entry supports; `freeDimensionlessGroups > 0` means dimensions cannot pin\n * the form. Consumers must not use an entry above its `epistemicStatus`.\n *\n * See `docs/planning/Canonical-Equation-Registry-A-Design.md`.\n *\n * @module canonical/canonical-equation\n */\nimport type { ExprNode } from '../dimensional/validator.js';\nimport type { DimensionalVariable } from '../dimensional/buckingham.js';\nimport type { TensorIndices } from '../core/types.js';\nimport type { EinsteinFieldEquationNode } from '../dimensional/einstein-equation.js';\nimport type { Conventions } from '../relations/types.js';\n\n/** Physics domain — indexes the registry and (later) the discovery kind filter. */\nexport type CanonicalDomain =\n | 'mechanics'\n | 'gravitation'\n | 'general-relativity'\n | 'cosmology'\n | 'electromagnetism'\n | 'quantum'\n | 'thermodynamics'\n | 'statistical'\n | 'information'\n | 'condensed-matter';\n\n/**\n * The strongest claim an entry supports:\n * - `dimensional` — only the dimensional signature (L0).\n * - `scalar-up-to-constant`— the algebraic form, leading constant aside (L1).\n * - `fully-quantitative` — the complete relation incl. the constant.\n */\nexport type EpistemicStatus =\n | 'dimensional'\n | 'scalar-up-to-constant'\n | 'fully-quantitative';\n\n/** A field-equation predicate node (L2). Concrete node kinds live in the\n * dimensional layer; widen this union as Maxwell/Klein–Gordon nodes land. */\nexport type FieldEquationNode = EinsteinFieldEquationNode;\n\n/** Disambiguators for forms that share a dimensional signature (finding F3). */\nexport interface CanonicalForms {\n /** Bekenstein–Hawking depends on horizon AREA, not radius. */\n readonly areaOrRadius?: 'area' | 'radius';\n /** Landauer uses the NATURAL log. */\n readonly logBase?: 'e' | '2' | '10';\n /** Stefan–Boltzmann `j=σT⁴` is a FLUX; luminosity `L=σAT⁴` changes σ. */\n readonly quantityKind?: 'flux' | 'power' | 'energy';\n}\n\n/** One sourced prefactor: the exact dimensionless factor and the verbatim text it is read from. */\nexport interface SourcedPrefactor {\n readonly value: number;\n /** Verbatim source text the factor is read from. */\n readonly quote: string;\n /** Where the quote is: page, revision id and wikitext line. */\n readonly locator: string;\n}\n\n/** A sourced prefactor that is `coefficient · group^exponent` of a dimensionless group the record does not carry. */\nexport interface SourcedGroupPrefactor {\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/** A canonical (textbook) physics equation. */\nexport interface CanonicalEquation {\n /** Stable id, e.g. 'CE-newton-gravitation'. */\n readonly id: string;\n readonly name: string;\n readonly domain: CanonicalDomain;\n /** LaTeX rendering (display only). */\n readonly formula_latex: string;\n\n // ── epistemic honesty (F1) ──────────────────────────────────────────────\n readonly epistemicStatus: EpistemicStatus;\n /** 0 ⇒ the L0 monomial is fully determined; ≥1 ⇒ dimensions can't pin it. */\n readonly freeDimensionlessGroups: number;\n\n // ── L0 (always present) ─────────────────────────────────────────────────\n readonly dimensional: {\n readonly target: DimensionalVariable;\n readonly governing: readonly DimensionalVariable[];\n /** Textbook monomial exponents, or null when there are free groups. */\n readonly monomial: Readonly<Record<string, number>> | null;\n };\n // ── L1 / L2 (optional) ──────────────────────────────────────────────────\n readonly scalarAst?: ExprNode;\n readonly fieldEquation?: FieldEquationNode;\n\n // ── disambiguation (F3) ─────────────────────────────────────────────────\n readonly forms?: CanonicalForms;\n\n // ── placement + provenance ──────────────────────────────────────────────\n /** L-layer cell coordinates. */\n readonly regime: TensorIndices;\n /** Implicit regime assumptions (e.g. 'blackbody equilibrium'). */\n readonly assumptions: readonly string[];\n readonly references: readonly string[];\n /** Bridges this law is the intended correspondence partner for (advisory;\n * the check itself is Sub-project B). */\n readonly partnerBridges: readonly string[];\n /** Set when this law is LITERALLY a bridge's own relation (BH≡BE-21, …);\n * Sub-project B uses it to discount the trivial X≡X match (finding F4). */\n readonly restatesBridge?: string;\n\n // ── facts of this equation that side tables once held ──────────────────\n /** Validity condition over the governing names, in the holds grammar. Absent: permissive. */\n readonly holds?: string;\n /** The exact dimensionless prefactor in front of the AST or monomial, with its verbatim source. */\n readonly prefactor?: SourcedPrefactor;\n /** A prefactor that is a power of a dimensionless group the record does not carry (√γ). */\n readonly groupPrefactor?: SourcedGroupPrefactor;\n /** Disclosure printed when the factor is unset: the textbook factor the unit monomial is not. */\n readonly unsetFactorNote?: string;\n /** Convention line a comparison prints beside this entry. */\n readonly conventionNote?: string;\n /** Entries that share a group are one law under different conventions; a formula agreeing with any of them has matched that law. */\n readonly conventionGroup?: string;\n /** Target names this entry answers to in a comparison besides its own target. */\n readonly targetAliases?: readonly string[];\n\n // ── Atlas Phase 1 overlay (OPTIONAL; an entry without it is unchanged) ──\n /**\n * Sign/unit choices the equation depends on (first-law sign, metric\n * signature, Fourier normalization, unit system, …). A canonical equation\n * asserts no BETWEEN-model relation, so it takes `conventions` only — no\n * `relation` and no `counterexamples`.\n */\n readonly conventions?: Conventions;\n\n // ── Atlas Phase 3 overlay (OPTIONAL; an entry without it is unchanged) ──\n /**\n * The `Model` this equation is stated WITHIN (`'model-spring'`, …), as an\n * `AtlasModel.id`. ROADMAP Phase 3 makes the model the unit rather than the\n * equation; an entry whose model is not recorded omits the field rather\n * than naming a plausible one.\n */\n readonly model?: string;\n}\n"]}