universal-physics-tensor 8.0.0 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (916) hide show
  1. package/README.md +26 -21
  2. package/data/atlas/atlas.json +75 -64
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +23 -22
  5. package/data/atlas/oscillators.json +21 -16
  6. package/data/atlas/waves.json +33 -28
  7. package/data/bridge-catalog.json +1356 -1791
  8. package/data/bridge-catalog.schema.json +789 -46
  9. package/data/quantities.json +280 -234
  10. package/data/quantities.schema.json +52 -0
  11. package/data/schemas/atlas-record.v0.json +184 -46
  12. package/data/units.json +1178 -0
  13. package/data/units.schema.json +124 -0
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +14 -3
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.d.ts +1 -1
  18. package/dist/atlas/association.js.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  21. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  22. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  23. package/dist/atlas/benchmark/baselines.js +8 -0
  24. package/dist/atlas/benchmark/baselines.js.map +1 -1
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  26. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  27. package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
  28. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  29. package/dist/atlas/benchmark/leakage.js.map +1 -1
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +1 -1
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +1 -1
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  45. package/dist/atlas/chain-pipeline.d.ts +0 -11
  46. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  47. package/dist/atlas/chain-pipeline.js +5 -16
  48. package/dist/atlas/chain-pipeline.js.map +1 -1
  49. package/dist/atlas/composition-table.js.map +1 -1
  50. package/dist/atlas/conventions.js.map +1 -1
  51. package/dist/atlas/coverage.d.ts +2 -2
  52. package/dist/atlas/coverage.js.map +1 -1
  53. package/dist/atlas/derivation.js.map +1 -1
  54. package/dist/atlas/derive-evidence.d.ts +6 -4
  55. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  56. package/dist/atlas/derive-evidence.js +7 -2
  57. package/dist/atlas/derive-evidence.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  60. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  62. package/dist/atlas/diffusion/bridges.js +0 -3
  63. package/dist/atlas/diffusion/bridges.js.map +1 -1
  64. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  65. package/dist/atlas/diffusion/index.d.ts +1 -1
  66. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  67. package/dist/atlas/diffusion/index.js.map +1 -1
  68. package/dist/atlas/diffusion/models.js.map +1 -1
  69. package/dist/atlas/diffusion/numerics.js.map +1 -1
  70. package/dist/atlas/error-algebra.d.ts +6 -0
  71. package/dist/atlas/error-algebra.d.ts.map +1 -1
  72. package/dist/atlas/error-algebra.js +26 -0
  73. package/dist/atlas/error-algebra.js.map +1 -1
  74. package/dist/atlas/export.d.ts +18 -2
  75. package/dist/atlas/export.d.ts.map +1 -1
  76. package/dist/atlas/export.js +9 -3
  77. package/dist/atlas/export.js.map +1 -1
  78. package/dist/atlas/families.d.ts +19 -2
  79. package/dist/atlas/families.d.ts.map +1 -1
  80. package/dist/atlas/families.js +26 -3
  81. package/dist/atlas/families.js.map +1 -1
  82. package/dist/atlas/family.d.ts +27 -0
  83. package/dist/atlas/family.d.ts.map +1 -0
  84. package/dist/atlas/family.js +12 -0
  85. package/dist/atlas/family.js.map +1 -0
  86. package/dist/atlas/index.d.ts +3 -2
  87. package/dist/atlas/index.d.ts.map +1 -1
  88. package/dist/atlas/index.js +2 -1
  89. package/dist/atlas/index.js.map +1 -1
  90. package/dist/atlas/link-prediction.d.ts +1 -1
  91. package/dist/atlas/link-prediction.d.ts.map +1 -1
  92. package/dist/atlas/link-prediction.js.map +1 -1
  93. package/dist/atlas/model.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  96. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  99. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  100. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  101. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  102. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  103. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  104. package/dist/atlas/oscillators/index.d.ts +1 -16
  105. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  106. package/dist/atlas/oscillators/index.js.map +1 -1
  107. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  108. package/dist/atlas/oscillators/models.js.map +1 -1
  109. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  110. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  111. package/dist/atlas/oscillators/norms.js.map +1 -1
  112. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  113. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  114. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  115. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  116. package/dist/atlas/oscillators/rejections.js.map +1 -1
  117. package/dist/atlas/path-bound.js.map +1 -1
  118. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  119. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  120. package/dist/atlas/physjs-entries.generated.js +1854 -345
  121. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  122. package/dist/atlas/physjs-ref.d.ts +151 -117
  123. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  124. package/dist/atlas/physjs-ref.js +244 -211
  125. package/dist/atlas/physjs-ref.js.map +1 -1
  126. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  127. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  128. package/dist/atlas/physjs-reviewed.js +194 -0
  129. package/dist/atlas/physjs-reviewed.js.map +1 -0
  130. package/dist/atlas/poster/associations.js.map +1 -1
  131. package/dist/atlas/poster/derivations.js.map +1 -1
  132. package/dist/atlas/poster/statements.js.map +1 -1
  133. package/dist/atlas/proof-target.d.ts +16 -8
  134. package/dist/atlas/proof-target.d.ts.map +1 -1
  135. package/dist/atlas/proof-target.js +34 -31
  136. package/dist/atlas/proof-target.js.map +1 -1
  137. package/dist/atlas/public.d.ts +2 -1
  138. package/dist/atlas/public.d.ts.map +1 -1
  139. package/dist/atlas/public.js +2 -1
  140. package/dist/atlas/public.js.map +1 -1
  141. package/dist/atlas/regime.js.map +1 -1
  142. package/dist/atlas/serialize.d.ts +18 -12
  143. package/dist/atlas/serialize.d.ts.map +1 -1
  144. package/dist/atlas/serialize.js +28 -18
  145. package/dist/atlas/serialize.js.map +1 -1
  146. package/dist/atlas/statement.js.map +1 -1
  147. package/dist/atlas/translation-registry.js.map +1 -1
  148. package/dist/atlas/translation.js.map +1 -1
  149. package/dist/atlas/types.d.ts +9 -2
  150. package/dist/atlas/types.d.ts.map +1 -1
  151. package/dist/atlas/types.js +1 -1
  152. package/dist/atlas/types.js.map +1 -1
  153. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  154. package/dist/atlas/waves/bridges-closure.js +0 -3
  155. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  156. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  157. package/dist/atlas/waves/bridges.js +0 -4
  158. package/dist/atlas/waves/bridges.js.map +1 -1
  159. package/dist/atlas/waves/index.d.ts +1 -1
  160. package/dist/atlas/waves/index.d.ts.map +1 -1
  161. package/dist/atlas/waves/index.js.map +1 -1
  162. package/dist/atlas/waves/models.js.map +1 -1
  163. package/dist/atlas/waves/numerics.js.map +1 -1
  164. package/dist/atlas/witness-artifact.js.map +1 -1
  165. package/dist/atlas/witness-dominance.d.ts +4 -3
  166. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  167. package/dist/atlas/witness-dominance.js +15 -5
  168. package/dist/atlas/witness-dominance.js.map +1 -1
  169. package/dist/atlas/witness-numeric.d.ts +8 -4
  170. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  171. package/dist/atlas/witness-numeric.js +27 -2
  172. package/dist/atlas/witness-numeric.js.map +1 -1
  173. package/dist/atlas/witness-result.d.ts +7 -1
  174. package/dist/atlas/witness-result.d.ts.map +1 -1
  175. package/dist/atlas/witness-result.js.map +1 -1
  176. package/dist/atlas/witness-specs.js.map +1 -1
  177. package/dist/atlas/witness-symbolic.js.map +1 -1
  178. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  179. package/dist/bridges/caller-table.d.ts +1 -1
  180. package/dist/bridges/caller-table.d.ts.map +1 -1
  181. package/dist/bridges/caller-table.js.map +1 -1
  182. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  183. package/dist/bridges/carrier-sign.js +8 -3
  184. package/dist/bridges/carrier-sign.js.map +1 -1
  185. package/dist/bridges/catalog-adapter.d.ts +12 -3
  186. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  187. package/dist/bridges/catalog-adapter.js +22 -14
  188. package/dist/bridges/catalog-adapter.js.map +1 -1
  189. package/dist/bridges/catalog-load.d.ts +19 -2
  190. package/dist/bridges/catalog-load.d.ts.map +1 -1
  191. package/dist/bridges/catalog-load.js +233 -14
  192. package/dist/bridges/catalog-load.js.map +1 -1
  193. package/dist/bridges/catalog-types.d.ts +96 -27
  194. package/dist/bridges/catalog-types.d.ts.map +1 -1
  195. package/dist/bridges/catalog-types.js.map +1 -1
  196. package/dist/bridges/coefficient-statement.js +1 -5
  197. package/dist/bridges/coefficient-statement.js.map +1 -1
  198. package/dist/bridges/confrontation-coverage.js.map +1 -1
  199. package/dist/bridges/confrontations.d.ts +1 -1
  200. package/dist/bridges/confrontations.d.ts.map +1 -1
  201. package/dist/bridges/confrontations.js +1 -1
  202. package/dist/bridges/confrontations.js.map +1 -1
  203. package/dist/bridges/evaluation-errors.d.ts +89 -0
  204. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  205. package/dist/bridges/evaluation-errors.js +136 -0
  206. package/dist/bridges/evaluation-errors.js.map +1 -0
  207. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  208. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  209. package/dist/bridges/evaluator-inputs.js +24 -24
  210. package/dist/bridges/evaluator-inputs.js.map +1 -1
  211. package/dist/bridges/evaluators.d.ts +48 -8
  212. package/dist/bridges/evaluators.d.ts.map +1 -1
  213. package/dist/bridges/evaluators.js +173 -38
  214. package/dist/bridges/evaluators.js.map +1 -1
  215. package/dist/bridges/expr-parse.d.ts +38 -7
  216. package/dist/bridges/expr-parse.d.ts.map +1 -1
  217. package/dist/bridges/expr-parse.js +129 -156
  218. package/dist/bridges/expr-parse.js.map +1 -1
  219. package/dist/bridges/holds.d.ts +16 -8
  220. package/dist/bridges/holds.d.ts.map +1 -1
  221. package/dist/bridges/holds.js +130 -236
  222. package/dist/bridges/holds.js.map +1 -1
  223. package/dist/bridges/index.d.ts +15 -14
  224. package/dist/bridges/index.d.ts.map +1 -1
  225. package/dist/bridges/index.js +14 -15
  226. package/dist/bridges/index.js.map +1 -1
  227. package/dist/bridges/input-contract.d.ts +65 -0
  228. package/dist/bridges/input-contract.d.ts.map +1 -0
  229. package/dist/bridges/input-contract.js +97 -0
  230. package/dist/bridges/input-contract.js.map +1 -0
  231. package/dist/bridges/membership.d.ts +5 -3
  232. package/dist/bridges/membership.d.ts.map +1 -1
  233. package/dist/bridges/membership.js +5 -6
  234. package/dist/bridges/membership.js.map +1 -1
  235. package/dist/bridges/notices.d.ts +11 -0
  236. package/dist/bridges/notices.d.ts.map +1 -0
  237. package/dist/bridges/notices.js +22 -0
  238. package/dist/bridges/notices.js.map +1 -0
  239. package/dist/bridges/observations/types.js.map +1 -1
  240. package/dist/bridges/rejected.d.ts +11 -17
  241. package/dist/bridges/rejected.d.ts.map +1 -1
  242. package/dist/bridges/rejected.js +13 -68
  243. package/dist/bridges/rejected.js.map +1 -1
  244. package/dist/bridges/relation-eval.d.ts +5 -6
  245. package/dist/bridges/relation-eval.d.ts.map +1 -1
  246. package/dist/bridges/relation-eval.js +9 -38
  247. package/dist/bridges/relation-eval.js.map +1 -1
  248. package/dist/bridges/rhs-registry.js.map +1 -1
  249. package/dist/bridges/sensitivity.d.ts +11 -3
  250. package/dist/bridges/sensitivity.d.ts.map +1 -1
  251. package/dist/bridges/sensitivity.js +24 -10
  252. package/dist/bridges/sensitivity.js.map +1 -1
  253. package/dist/bridges/tensor-index.js.map +1 -1
  254. package/dist/bridges/types.d.ts +1 -7
  255. package/dist/bridges/types.d.ts.map +1 -1
  256. package/dist/bridges/types.js +1 -4
  257. package/dist/bridges/types.js.map +1 -1
  258. package/dist/canonical/canonical-equation.d.ts +31 -0
  259. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  260. package/dist/canonical/canonical-equation.js.map +1 -1
  261. package/dist/canonical/dimensional-fields.js.map +1 -1
  262. package/dist/canonical/entries/_l1-build.js.map +1 -1
  263. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  264. package/dist/canonical/entries/atomic.js +11 -1
  265. package/dist/canonical/entries/atomic.js.map +1 -1
  266. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  267. package/dist/canonical/entries/condensed-matter.js +7 -4
  268. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  269. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  270. package/dist/canonical/entries/dimensional-classics.js +50 -2
  271. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  272. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  273. package/dist/canonical/entries/electromagnetism.js +32 -2
  274. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  275. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  276. package/dist/canonical/entries/fluids-waves.js +34 -0
  277. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  278. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  279. package/dist/canonical/entries/mechanics.js +24 -0
  280. package/dist/canonical/entries/mechanics.js.map +1 -1
  281. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  282. package/dist/canonical/entries/nonmonomial.js +42 -24
  283. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  284. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  285. package/dist/canonical/entries/relativity.js +6 -0
  286. package/dist/canonical/entries/relativity.js.map +1 -1
  287. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  288. package/dist/canonical/entries/statistical-mechanics.js +24 -5
  289. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  290. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  291. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  292. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  293. package/dist/canonical/linkage.d.ts +29 -4
  294. package/dist/canonical/linkage.d.ts.map +1 -1
  295. package/dist/canonical/linkage.js +31 -29
  296. package/dist/canonical/linkage.js.map +1 -1
  297. package/dist/canonical/normal-form.d.ts +0 -8
  298. package/dist/canonical/normal-form.d.ts.map +1 -1
  299. package/dist/canonical/normal-form.js +17 -12
  300. package/dist/canonical/normal-form.js.map +1 -1
  301. package/dist/canonical/registry.js.map +1 -1
  302. package/dist/canonical/residual.js.map +1 -1
  303. package/dist/canonical/seed-l-layer.d.ts +7 -1
  304. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  305. package/dist/canonical/seed-l-layer.js +7 -1
  306. package/dist/canonical/seed-l-layer.js.map +1 -1
  307. package/dist/canonical/structural.d.ts +21 -0
  308. package/dist/canonical/structural.d.ts.map +1 -1
  309. package/dist/canonical/structural.js +24 -4
  310. package/dist/canonical/structural.js.map +1 -1
  311. package/dist/cases/brownian-sphere.js +4 -4
  312. package/dist/cases/brownian-sphere.js.map +1 -1
  313. package/dist/cases/damped-resonator.js +2 -2
  314. package/dist/cases/damped-resonator.js.map +1 -1
  315. package/dist/cases/index.d.ts +9 -2
  316. package/dist/cases/index.d.ts.map +1 -1
  317. package/dist/cases/index.js +26 -7
  318. package/dist/cases/index.js.map +1 -1
  319. package/dist/cases/kepler-rv.js +6 -6
  320. package/dist/cases/kepler-rv.js.map +1 -1
  321. package/dist/cases/lumped-cooling.js +1 -1
  322. package/dist/cases/lumped-cooling.js.map +1 -1
  323. package/dist/cases/quadrature.js.map +1 -1
  324. package/dist/cases/resistor-noise.js +3 -3
  325. package/dist/cases/resistor-noise.js.map +1 -1
  326. package/dist/cases/skin-depth.js.map +1 -1
  327. package/dist/cases/types.js.map +1 -1
  328. package/dist/cli/args.d.ts +7 -2
  329. package/dist/cli/args.d.ts.map +1 -1
  330. package/dist/cli/args.js +18 -2
  331. package/dist/cli/args.js.map +1 -1
  332. package/dist/cli/bindings.d.ts +13 -0
  333. package/dist/cli/bindings.d.ts.map +1 -0
  334. package/dist/cli/bindings.js +32 -0
  335. package/dist/cli/bindings.js.map +1 -0
  336. package/dist/cli/closed-form-range.js.map +1 -1
  337. package/dist/cli/command.js.map +1 -1
  338. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  339. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  340. package/dist/cli/commands/_atlas-map.js +43 -18
  341. package/dist/cli/commands/_atlas-map.js.map +1 -1
  342. package/dist/cli/commands/_atlas-route.js.map +1 -1
  343. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  344. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  345. package/dist/cli/commands/_discovery-opts.js +48 -18
  346. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  347. package/dist/cli/commands/atlas.d.ts.map +1 -1
  348. package/dist/cli/commands/atlas.js +7 -12
  349. package/dist/cli/commands/atlas.js.map +1 -1
  350. package/dist/cli/commands/audit.d.ts.map +1 -1
  351. package/dist/cli/commands/audit.js +13 -21
  352. package/dist/cli/commands/audit.js.map +1 -1
  353. package/dist/cli/commands/axes.js.map +1 -1
  354. package/dist/cli/commands/candidates.d.ts.map +1 -1
  355. package/dist/cli/commands/candidates.js +16 -8
  356. package/dist/cli/commands/candidates.js.map +1 -1
  357. package/dist/cli/commands/canonical.js.map +1 -1
  358. package/dist/cli/commands/chain.js +1 -1
  359. package/dist/cli/commands/chain.js.map +1 -1
  360. package/dist/cli/commands/confront.d.ts.map +1 -1
  361. package/dist/cli/commands/confront.js +22 -14
  362. package/dist/cli/commands/confront.js.map +1 -1
  363. package/dist/cli/commands/connectors.d.ts.map +1 -1
  364. package/dist/cli/commands/connectors.js +8 -9
  365. package/dist/cli/commands/connectors.js.map +1 -1
  366. package/dist/cli/commands/coverage.js.map +1 -1
  367. package/dist/cli/commands/derive.d.ts.map +1 -1
  368. package/dist/cli/commands/derive.js +50 -26
  369. package/dist/cli/commands/derive.js.map +1 -1
  370. package/dist/cli/commands/discover.d.ts.map +1 -1
  371. package/dist/cli/commands/discover.js +18 -13
  372. package/dist/cli/commands/discover.js.map +1 -1
  373. package/dist/cli/commands/eval.d.ts.map +1 -1
  374. package/dist/cli/commands/eval.js +29 -26
  375. package/dist/cli/commands/eval.js.map +1 -1
  376. package/dist/cli/commands/evaluate.d.ts +1 -35
  377. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  378. package/dist/cli/commands/evaluate.js +99 -208
  379. package/dist/cli/commands/evaluate.js.map +1 -1
  380. package/dist/cli/commands/explain.d.ts.map +1 -1
  381. package/dist/cli/commands/explain.js +57 -45
  382. package/dist/cli/commands/explain.js.map +1 -1
  383. package/dist/cli/commands/frontier.js.map +1 -1
  384. package/dist/cli/commands/ground.d.ts.map +1 -1
  385. package/dist/cli/commands/ground.js +41 -11
  386. package/dist/cli/commands/ground.js.map +1 -1
  387. package/dist/cli/commands/index.js.map +1 -1
  388. package/dist/cli/commands/map.d.ts.map +1 -1
  389. package/dist/cli/commands/map.js +84 -92
  390. package/dist/cli/commands/map.js.map +1 -1
  391. package/dist/cli/commands/metric.d.ts.map +1 -1
  392. package/dist/cli/commands/metric.js +53 -15
  393. package/dist/cli/commands/metric.js.map +1 -1
  394. package/dist/cli/commands/path.js +4 -4
  395. package/dist/cli/commands/path.js.map +1 -1
  396. package/dist/cli/commands/predict.js.map +1 -1
  397. package/dist/cli/commands/priority.js.map +1 -1
  398. package/dist/cli/commands/probe.d.ts.map +1 -1
  399. package/dist/cli/commands/probe.js +50 -26
  400. package/dist/cli/commands/probe.js.map +1 -1
  401. package/dist/cli/commands/recover.js +1 -1
  402. package/dist/cli/commands/recover.js.map +1 -1
  403. package/dist/cli/commands/regime.d.ts +5 -4
  404. package/dist/cli/commands/regime.d.ts.map +1 -1
  405. package/dist/cli/commands/regime.js +25 -27
  406. package/dist/cli/commands/regime.js.map +1 -1
  407. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  408. package/dist/cli/commands/retrieve.js +22 -14
  409. package/dist/cli/commands/retrieve.js.map +1 -1
  410. package/dist/cli/commands/search.d.ts.map +1 -1
  411. package/dist/cli/commands/search.js +8 -4
  412. package/dist/cli/commands/search.js.map +1 -1
  413. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  414. package/dist/cli/commands/symbolic.js +14 -7
  415. package/dist/cli/commands/symbolic.js.map +1 -1
  416. package/dist/cli/commands/testplan.js +4 -4
  417. package/dist/cli/commands/testplan.js.map +1 -1
  418. package/dist/cli/conventions.d.ts +6 -7
  419. package/dist/cli/conventions.d.ts.map +1 -1
  420. package/dist/cli/conventions.js +19 -28
  421. package/dist/cli/conventions.js.map +1 -1
  422. package/dist/cli/determination.js.map +1 -1
  423. package/dist/cli/errors.js.map +1 -1
  424. package/dist/cli/euler-guard.d.ts +13 -2
  425. package/dist/cli/euler-guard.d.ts.map +1 -1
  426. package/dist/cli/euler-guard.js +17 -3
  427. package/dist/cli/euler-guard.js.map +1 -1
  428. package/dist/cli/eval-numbers.d.ts +4 -9
  429. package/dist/cli/eval-numbers.d.ts.map +1 -1
  430. package/dist/cli/eval-numbers.js +11 -41
  431. package/dist/cli/eval-numbers.js.map +1 -1
  432. package/dist/cli/expr-print.d.ts +29 -2
  433. package/dist/cli/expr-print.d.ts.map +1 -1
  434. package/dist/cli/expr-print.js +46 -2
  435. package/dist/cli/expr-print.js.map +1 -1
  436. package/dist/cli/flag-help.js.map +1 -1
  437. package/dist/cli/graphs.js.map +1 -1
  438. package/dist/cli/library-defaults.d.ts +19 -0
  439. package/dist/cli/library-defaults.d.ts.map +1 -0
  440. package/dist/cli/library-defaults.js +22 -0
  441. package/dist/cli/library-defaults.js.map +1 -0
  442. package/dist/cli/main.js +7 -3
  443. package/dist/cli/main.js.map +1 -1
  444. package/dist/cli/map-evidence.js.map +1 -1
  445. package/dist/cli/output.d.ts +3 -6
  446. package/dist/cli/output.d.ts.map +1 -1
  447. package/dist/cli/output.js.map +1 -1
  448. package/dist/cli/published-url.d.ts +2 -0
  449. package/dist/cli/published-url.d.ts.map +1 -1
  450. package/dist/cli/published-url.js +5 -0
  451. package/dist/cli/published-url.js.map +1 -1
  452. package/dist/cli/record-reach.d.ts +6 -0
  453. package/dist/cli/record-reach.d.ts.map +1 -1
  454. package/dist/cli/record-reach.js +16 -10
  455. package/dist/cli/record-reach.js.map +1 -1
  456. package/dist/cli/record-tables.d.ts +2 -1
  457. package/dist/cli/record-tables.d.ts.map +1 -1
  458. package/dist/cli/record-tables.js +8 -3
  459. package/dist/cli/record-tables.js.map +1 -1
  460. package/dist/cli/record.d.ts.map +1 -1
  461. package/dist/cli/record.js +31 -12
  462. package/dist/cli/record.js.map +1 -1
  463. package/dist/cli/search-index.d.ts +5 -0
  464. package/dist/cli/search-index.d.ts.map +1 -1
  465. package/dist/cli/search-index.js +12 -1
  466. package/dist/cli/search-index.js.map +1 -1
  467. package/dist/cli/statuses.js.map +1 -1
  468. package/dist/cli/top-level-help.js.map +1 -1
  469. package/dist/cli/version.js.map +1 -1
  470. package/dist/cli-api.d.ts +57 -18
  471. package/dist/cli-api.d.ts.map +1 -1
  472. package/dist/cli-api.js +49 -21
  473. package/dist/cli-api.js.map +1 -1
  474. package/dist/composition/adjudication.d.ts +8 -30
  475. package/dist/composition/adjudication.d.ts.map +1 -1
  476. package/dist/composition/adjudication.js +15 -67
  477. package/dist/composition/adjudication.js.map +1 -1
  478. package/dist/composition/aliases.d.ts +1 -1
  479. package/dist/composition/aliases.d.ts.map +1 -1
  480. package/dist/composition/aliases.js +10 -20
  481. package/dist/composition/aliases.js.map +1 -1
  482. package/dist/composition/audit-coverage.d.ts +2 -0
  483. package/dist/composition/audit-coverage.d.ts.map +1 -1
  484. package/dist/composition/audit-coverage.js.map +1 -1
  485. package/dist/composition/axes.d.ts +12 -0
  486. package/dist/composition/axes.d.ts.map +1 -1
  487. package/dist/composition/axes.js +18 -6
  488. package/dist/composition/axes.js.map +1 -1
  489. package/dist/composition/axis-audit.js.map +1 -1
  490. package/dist/composition/bridge-analysis.d.ts +0 -14
  491. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  492. package/dist/composition/bridge-analysis.js +66 -57
  493. package/dist/composition/bridge-analysis.js.map +1 -1
  494. package/dist/composition/bridge-prediction.d.ts +5 -1
  495. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  496. package/dist/composition/bridge-prediction.js +12 -16
  497. package/dist/composition/bridge-prediction.js.map +1 -1
  498. package/dist/composition/buckingham-filter.js.map +1 -1
  499. package/dist/composition/canonical-compare.d.ts.map +1 -1
  500. package/dist/composition/canonical-compare.js +12 -2
  501. package/dist/composition/canonical-compare.js.map +1 -1
  502. package/dist/composition/canonical-graph.d.ts +15 -18
  503. package/dist/composition/canonical-graph.d.ts.map +1 -1
  504. package/dist/composition/canonical-graph.js +59 -85
  505. package/dist/composition/canonical-graph.js.map +1 -1
  506. package/dist/composition/canonical-json.js.map +1 -1
  507. package/dist/composition/canonical-prefactors.d.ts +10 -29
  508. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  509. package/dist/composition/canonical-prefactors.js +15 -202
  510. package/dist/composition/canonical-prefactors.js.map +1 -1
  511. package/dist/composition/catalog-graph.d.ts.map +1 -1
  512. package/dist/composition/catalog-graph.js +6 -20
  513. package/dist/composition/catalog-graph.js.map +1 -1
  514. package/dist/composition/chain-candidate.d.ts +2 -0
  515. package/dist/composition/chain-candidate.d.ts.map +1 -1
  516. package/dist/composition/chain-candidate.js +2 -0
  517. package/dist/composition/chain-candidate.js.map +1 -1
  518. package/dist/composition/chain-match.js.map +1 -1
  519. package/dist/composition/chain-regime.js.map +1 -1
  520. package/dist/composition/chain-result.js.map +1 -1
  521. package/dist/composition/compose-surface.js.map +1 -1
  522. package/dist/composition/compose-symbolic.js.map +1 -1
  523. package/dist/composition/compose.d.ts.map +1 -1
  524. package/dist/composition/compose.js +154 -36
  525. package/dist/composition/compose.js.map +1 -1
  526. package/dist/composition/composition-recovery.js.map +1 -1
  527. package/dist/composition/consequence.d.ts.map +1 -1
  528. package/dist/composition/consequence.js +15 -6
  529. package/dist/composition/consequence.js.map +1 -1
  530. package/dist/composition/consistency.js.map +1 -1
  531. package/dist/composition/descriptor.d.ts +1 -1
  532. package/dist/composition/descriptor.d.ts.map +1 -1
  533. package/dist/composition/descriptor.js.map +1 -1
  534. package/dist/composition/dimension-adjacency.js.map +1 -1
  535. package/dist/composition/discovery.d.ts +67 -7
  536. package/dist/composition/discovery.d.ts.map +1 -1
  537. package/dist/composition/discovery.js +83 -23
  538. package/dist/composition/discovery.js.map +1 -1
  539. package/dist/composition/edge.d.ts +19 -22
  540. package/dist/composition/edge.d.ts.map +1 -1
  541. package/dist/composition/edge.js +25 -28
  542. package/dist/composition/edge.js.map +1 -1
  543. package/dist/composition/enumerate.d.ts +2 -2
  544. package/dist/composition/enumerate.d.ts.map +1 -1
  545. package/dist/composition/enumerate.js.map +1 -1
  546. package/dist/composition/evaluate-relation.d.ts +29 -5
  547. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  548. package/dist/composition/evaluate-relation.js +100 -72
  549. package/dist/composition/evaluate-relation.js.map +1 -1
  550. package/dist/composition/explain.d.ts +14 -4
  551. package/dist/composition/explain.d.ts.map +1 -1
  552. package/dist/composition/explain.js +53 -19
  553. package/dist/composition/explain.js.map +1 -1
  554. package/dist/composition/expr-eval.d.ts.map +1 -1
  555. package/dist/composition/expr-eval.js +2 -1
  556. package/dist/composition/expr-eval.js.map +1 -1
  557. package/dist/composition/expr-simplify.d.ts.map +1 -1
  558. package/dist/composition/expr-simplify.js +9 -39
  559. package/dist/composition/expr-simplify.js.map +1 -1
  560. package/dist/composition/expr-subst.js.map +1 -1
  561. package/dist/composition/formula-shape.d.ts +9 -0
  562. package/dist/composition/formula-shape.d.ts.map +1 -1
  563. package/dist/composition/formula-shape.js +54 -0
  564. package/dist/composition/formula-shape.js.map +1 -1
  565. package/dist/composition/frontier-account.d.ts +3 -2
  566. package/dist/composition/frontier-account.d.ts.map +1 -1
  567. package/dist/composition/frontier-account.js +7 -3
  568. package/dist/composition/frontier-account.js.map +1 -1
  569. package/dist/composition/graph-viz-svg.js.map +1 -1
  570. package/dist/composition/graph-viz.js.map +1 -1
  571. package/dist/composition/grounding.js.map +1 -1
  572. package/dist/composition/identifiability.js.map +1 -1
  573. package/dist/composition/index.d.ts +9 -5
  574. package/dist/composition/index.d.ts.map +1 -1
  575. package/dist/composition/index.js +7 -4
  576. package/dist/composition/index.js.map +1 -1
  577. package/dist/composition/mathts-quiet.d.ts +28 -0
  578. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  579. package/dist/composition/mathts-quiet.js +56 -0
  580. package/dist/composition/mathts-quiet.js.map +1 -0
  581. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  582. package/dist/composition/mathts-scalar-symbols.js +18 -34
  583. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  584. package/dist/composition/not-composable-seeds.d.ts +3 -1
  585. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  586. package/dist/composition/not-composable-seeds.js +2 -0
  587. package/dist/composition/not-composable-seeds.js.map +1 -1
  588. package/dist/composition/probe/backend-protocol.js.map +1 -1
  589. package/dist/composition/probe/candidate-store.js.map +1 -1
  590. package/dist/composition/probe/corpus.js.map +1 -1
  591. package/dist/composition/probe/dataset.js.map +1 -1
  592. package/dist/composition/probe/experiment-design.js.map +1 -1
  593. package/dist/composition/probe/expression-gaps.js.map +1 -1
  594. package/dist/composition/probe/falsify.d.ts +14 -3
  595. package/dist/composition/probe/falsify.d.ts.map +1 -1
  596. package/dist/composition/probe/falsify.js +14 -27
  597. package/dist/composition/probe/falsify.js.map +1 -1
  598. package/dist/composition/probe/fingerprint.js.map +1 -1
  599. package/dist/composition/probe/fit.d.ts +1 -1
  600. package/dist/composition/probe/fit.d.ts.map +1 -1
  601. package/dist/composition/probe/fit.js +2 -1
  602. package/dist/composition/probe/fit.js.map +1 -1
  603. package/dist/composition/probe/frontier.js.map +1 -1
  604. package/dist/composition/probe/generator.js.map +1 -1
  605. package/dist/composition/probe/index.d.ts +4 -2
  606. package/dist/composition/probe/index.d.ts.map +1 -1
  607. package/dist/composition/probe/index.js +4 -2
  608. package/dist/composition/probe/index.js.map +1 -1
  609. package/dist/composition/probe/limits.js.map +1 -1
  610. package/dist/composition/probe/metadata.js.map +1 -1
  611. package/dist/composition/probe/pipeline.d.ts +5 -0
  612. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  613. package/dist/composition/probe/pipeline.js +13 -6
  614. package/dist/composition/probe/pipeline.js.map +1 -1
  615. package/dist/composition/probe/problem.d.ts +8 -0
  616. package/dist/composition/probe/problem.d.ts.map +1 -1
  617. package/dist/composition/probe/problem.js +78 -12
  618. package/dist/composition/probe/problem.js.map +1 -1
  619. package/dist/composition/probe/report.js.map +1 -1
  620. package/dist/composition/probe/residual.js.map +1 -1
  621. package/dist/composition/probe/run-manifest.js +2 -2
  622. package/dist/composition/probe/run-manifest.js.map +1 -1
  623. package/dist/composition/probe/scoring.d.ts +2 -1
  624. package/dist/composition/probe/scoring.d.ts.map +1 -1
  625. package/dist/composition/probe/scoring.js +21 -7
  626. package/dist/composition/probe/scoring.js.map +1 -1
  627. package/dist/composition/probe/search-budget.js.map +1 -1
  628. package/dist/composition/probe/serialize.js.map +1 -1
  629. package/dist/composition/probe/structure.js.map +1 -1
  630. package/dist/composition/probe/study.d.ts +4 -3
  631. package/dist/composition/probe/study.d.ts.map +1 -1
  632. package/dist/composition/probe/study.js +5 -3
  633. package/dist/composition/probe/study.js.map +1 -1
  634. package/dist/composition/probe/types.d.ts +3 -1
  635. package/dist/composition/probe/types.d.ts.map +1 -1
  636. package/dist/composition/probe/types.js +2 -0
  637. package/dist/composition/probe/types.js.map +1 -1
  638. package/dist/composition/proposed-bridges.d.ts +11 -4
  639. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  640. package/dist/composition/proposed-bridges.js +14 -6
  641. package/dist/composition/proposed-bridges.js.map +1 -1
  642. package/dist/composition/quantities.d.ts +0 -4
  643. package/dist/composition/quantities.d.ts.map +1 -1
  644. package/dist/composition/quantities.js +5 -5
  645. package/dist/composition/quantities.js.map +1 -1
  646. package/dist/composition/quantity.d.ts +18 -2
  647. package/dist/composition/quantity.d.ts.map +1 -1
  648. package/dist/composition/quantity.js +35 -6
  649. package/dist/composition/quantity.js.map +1 -1
  650. package/dist/composition/representative-values.js.map +1 -1
  651. package/dist/composition/retrodiction.d.ts +18 -0
  652. package/dist/composition/retrodiction.d.ts.map +1 -1
  653. package/dist/composition/retrodiction.js +37 -7
  654. package/dist/composition/retrodiction.js.map +1 -1
  655. package/dist/composition/uncertainty.js.map +1 -1
  656. package/dist/composition/user-equation.d.ts +11 -7
  657. package/dist/composition/user-equation.d.ts.map +1 -1
  658. package/dist/composition/user-equation.js +24 -26
  659. package/dist/composition/user-equation.js.map +1 -1
  660. package/dist/core/axes-registry.d.ts +8 -5
  661. package/dist/core/axes-registry.d.ts.map +1 -1
  662. package/dist/core/axes-registry.js.map +1 -1
  663. package/dist/core/cell.js.map +1 -1
  664. package/dist/core/constants.d.ts +35 -12
  665. package/dist/core/constants.d.ts.map +1 -1
  666. package/dist/core/constants.js +46 -15
  667. package/dist/core/constants.js.map +1 -1
  668. package/dist/core/data-file.d.ts +27 -0
  669. package/dist/core/data-file.d.ts.map +1 -0
  670. package/dist/core/data-file.js +48 -0
  671. package/dist/core/data-file.js.map +1 -0
  672. package/dist/core/flux-rules.js +1 -1
  673. package/dist/core/flux-rules.js.map +1 -1
  674. package/dist/core/json-schema.d.ts +27 -0
  675. package/dist/core/json-schema.d.ts.map +1 -0
  676. package/dist/core/json-schema.js +177 -0
  677. package/dist/core/json-schema.js.map +1 -0
  678. package/dist/core/labeled-tensor.d.ts +6 -1
  679. package/dist/core/labeled-tensor.d.ts.map +1 -1
  680. package/dist/core/labeled-tensor.js +18 -8
  681. package/dist/core/labeled-tensor.js.map +1 -1
  682. package/dist/core/regime-registry.d.ts +6 -2
  683. package/dist/core/regime-registry.d.ts.map +1 -1
  684. package/dist/core/regime-registry.js.map +1 -1
  685. package/dist/core/regime-rule-install.js.map +1 -1
  686. package/dist/core/regimes-builtins.js.map +1 -1
  687. package/dist/core/tensor.d.ts +7 -4
  688. package/dist/core/tensor.d.ts.map +1 -1
  689. package/dist/core/tensor.js +40 -8
  690. package/dist/core/tensor.js.map +1 -1
  691. package/dist/core/types.d.ts +3 -2
  692. package/dist/core/types.d.ts.map +1 -1
  693. package/dist/core/types.js +16 -14
  694. package/dist/core/types.js.map +1 -1
  695. package/dist/core/universal-index.js.map +1 -1
  696. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  697. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  698. package/dist/diff/bridge-ast-gradient.js +16 -23
  699. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  700. package/dist/diff/bridge-gradient.d.ts +24 -80
  701. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  702. package/dist/diff/bridge-gradient.js +21 -98
  703. package/dist/diff/bridge-gradient.js.map +1 -1
  704. package/dist/diff/bridge-specs.d.ts +18 -6
  705. package/dist/diff/bridge-specs.d.ts.map +1 -1
  706. package/dist/diff/bridge-specs.js +17 -5
  707. package/dist/diff/bridge-specs.js.map +1 -1
  708. package/dist/dimensional/algebra.js.map +1 -1
  709. package/dist/dimensional/ast-builders.d.ts +5 -4
  710. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  711. package/dist/dimensional/ast-builders.js +6 -5
  712. package/dist/dimensional/ast-builders.js.map +1 -1
  713. package/dist/dimensional/ast-types.js.map +1 -1
  714. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  715. package/dist/dimensional/bridge-check.js +3 -5
  716. package/dist/dimensional/bridge-check.js.map +1 -1
  717. package/dist/dimensional/buckingham.js.map +1 -1
  718. package/dist/dimensional/connection-validators.d.ts +2 -1
  719. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  720. package/dist/dimensional/connection-validators.js.map +1 -1
  721. package/dist/dimensional/connection.js.map +1 -1
  722. package/dist/dimensional/constant-rows.d.ts +54 -0
  723. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  724. package/dist/dimensional/constant-rows.js +115 -0
  725. package/dist/dimensional/constant-rows.js.map +1 -0
  726. package/dist/dimensional/constants.d.ts +7 -17
  727. package/dist/dimensional/constants.d.ts.map +1 -1
  728. package/dist/dimensional/constants.js +12 -21
  729. package/dist/dimensional/constants.js.map +1 -1
  730. package/dist/dimensional/curvature-composite.js.map +1 -1
  731. package/dist/dimensional/curvature-invariants.js.map +1 -1
  732. package/dist/dimensional/curvature.js.map +1 -1
  733. package/dist/dimensional/dimension-inference.js.map +1 -1
  734. package/dist/dimensional/dimension-spec.d.ts +21 -6
  735. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  736. package/dist/dimensional/dimension-spec.js +150 -160
  737. package/dist/dimensional/dimension-spec.js.map +1 -1
  738. package/dist/dimensional/einstein-equation.js.map +1 -1
  739. package/dist/dimensional/errors.d.ts +3 -1
  740. package/dist/dimensional/errors.d.ts.map +1 -1
  741. package/dist/dimensional/errors.js +2 -2
  742. package/dist/dimensional/errors.js.map +1 -1
  743. package/dist/dimensional/exact-scale.d.ts +79 -0
  744. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  745. package/dist/dimensional/exact-scale.js +222 -0
  746. package/dist/dimensional/exact-scale.js.map +1 -0
  747. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  748. package/dist/dimensional/formula-names.d.ts +13 -12
  749. package/dist/dimensional/formula-names.d.ts.map +1 -1
  750. package/dist/dimensional/formula-names.js +28 -51
  751. package/dist/dimensional/formula-names.js.map +1 -1
  752. package/dist/dimensional/fresh-label.js.map +1 -1
  753. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  754. package/dist/dimensional/friedmann-equation.js +3 -3
  755. package/dist/dimensional/friedmann-equation.js.map +1 -1
  756. package/dist/dimensional/gauge-field.d.ts +2 -3
  757. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  758. package/dist/dimensional/gauge-field.js +0 -1
  759. package/dist/dimensional/gauge-field.js.map +1 -1
  760. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  761. package/dist/dimensional/hyphen-names.js +8 -0
  762. package/dist/dimensional/hyphen-names.js.map +1 -1
  763. package/dist/dimensional/killing-validators.js.map +1 -1
  764. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  765. package/dist/dimensional/metric-validators.d.ts +2 -1
  766. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  767. package/dist/dimensional/metric-validators.js.map +1 -1
  768. package/dist/dimensional/metric.js.map +1 -1
  769. package/dist/dimensional/natural-units.js.map +1 -1
  770. package/dist/dimensional/quantity-registry.d.ts +23 -1
  771. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  772. package/dist/dimensional/quantity-registry.js +55 -18
  773. package/dist/dimensional/quantity-registry.js.map +1 -1
  774. package/dist/dimensional/rg-flow.js.map +1 -1
  775. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  776. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  777. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  778. package/dist/dimensional/symbolic-constants.js +114 -92
  779. package/dist/dimensional/symbolic-constants.js.map +1 -1
  780. package/dist/dimensional/tensor-trace.js.map +1 -1
  781. package/dist/dimensional/tensor.js.map +1 -1
  782. package/dist/dimensional/types.js.map +1 -1
  783. package/dist/dimensional/unit-convention.d.ts +0 -2
  784. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  785. package/dist/dimensional/unit-convention.js +2 -2
  786. package/dist/dimensional/unit-convention.js.map +1 -1
  787. package/dist/dimensional/unit-data.d.ts +70 -0
  788. package/dist/dimensional/unit-data.d.ts.map +1 -0
  789. package/dist/dimensional/unit-data.js +139 -0
  790. package/dist/dimensional/unit-data.js.map +1 -0
  791. package/dist/dimensional/units.d.ts +87 -24
  792. package/dist/dimensional/units.d.ts.map +1 -1
  793. package/dist/dimensional/units.js +290 -295
  794. package/dist/dimensional/units.js.map +1 -1
  795. package/dist/dimensional/validator-registry.js.map +1 -1
  796. package/dist/dimensional/validator.d.ts +0 -16
  797. package/dist/dimensional/validator.d.ts.map +1 -1
  798. package/dist/dimensional/validator.js +65 -29
  799. package/dist/dimensional/validator.js.map +1 -1
  800. package/dist/dimensional/weyl-validators.js.map +1 -1
  801. package/dist/index.d.ts +65 -18
  802. package/dist/index.d.ts.map +1 -1
  803. package/dist/index.js +19 -24
  804. package/dist/index.js.map +1 -1
  805. package/dist/numerical/bianchi-residual.js.map +1 -1
  806. package/dist/numerical/binding-value.d.ts +32 -7
  807. package/dist/numerical/binding-value.d.ts.map +1 -1
  808. package/dist/numerical/binding-value.js +218 -209
  809. package/dist/numerical/binding-value.js.map +1 -1
  810. package/dist/numerical/christoffel-flat.js.map +1 -1
  811. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  812. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  813. package/dist/numerical/covariant-eikonal.js +2 -2
  814. package/dist/numerical/covariant-eikonal.js.map +1 -1
  815. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  816. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  817. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  818. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  819. package/dist/numerical/derivative-lowering.js.map +1 -1
  820. package/dist/numerical/einstein-equation.js.map +1 -1
  821. package/dist/numerical/engine-registry.js.map +1 -1
  822. package/dist/numerical/errors.d.ts +7 -3
  823. package/dist/numerical/errors.d.ts.map +1 -1
  824. package/dist/numerical/errors.js +5 -5
  825. package/dist/numerical/errors.js.map +1 -1
  826. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  827. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  828. package/dist/numerical/evaluator-uncertainty.js +134 -0
  829. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  830. package/dist/numerical/formula-contract.d.ts +67 -7
  831. package/dist/numerical/formula-contract.d.ts.map +1 -1
  832. package/dist/numerical/formula-contract.js +68 -42
  833. package/dist/numerical/formula-contract.js.map +1 -1
  834. package/dist/numerical/formula-dimension.d.ts +17 -7
  835. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  836. package/dist/numerical/formula-dimension.js +120 -44
  837. package/dist/numerical/formula-dimension.js.map +1 -1
  838. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  839. package/dist/numerical/formula-mathts.js +10 -3
  840. package/dist/numerical/formula-mathts.js.map +1 -1
  841. package/dist/numerical/formula-registry.d.ts +13 -3
  842. package/dist/numerical/formula-registry.d.ts.map +1 -1
  843. package/dist/numerical/formula-registry.js +7 -2
  844. package/dist/numerical/formula-registry.js.map +1 -1
  845. package/dist/numerical/geodesic-integrator.js.map +1 -1
  846. package/dist/numerical/geometrized.js.map +1 -1
  847. package/dist/numerical/gl4-integrator.d.ts +28 -27
  848. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  849. package/dist/numerical/gl4-integrator.js +44 -45
  850. package/dist/numerical/gl4-integrator.js.map +1 -1
  851. package/dist/numerical/grid-field.js.map +1 -1
  852. package/dist/numerical/index.js.map +1 -1
  853. package/dist/numerical/input-validation.d.ts +3 -6
  854. package/dist/numerical/input-validation.d.ts.map +1 -1
  855. package/dist/numerical/input-validation.js +4 -8
  856. package/dist/numerical/input-validation.js.map +1 -1
  857. package/dist/numerical/killing.d.ts +8 -5
  858. package/dist/numerical/killing.d.ts.map +1 -1
  859. package/dist/numerical/killing.js.map +1 -1
  860. package/dist/numerical/klein-gordon.js.map +1 -1
  861. package/dist/numerical/kretschmann.js.map +1 -1
  862. package/dist/numerical/lowering-utils.js.map +1 -1
  863. package/dist/numerical/lowering.d.ts.map +1 -1
  864. package/dist/numerical/lowering.js +7 -17
  865. package/dist/numerical/lowering.js.map +1 -1
  866. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  867. package/dist/numerical/mathts-engine.js +11 -6
  868. package/dist/numerical/mathts-engine.js.map +1 -1
  869. package/dist/numerical/metric-inverse.js.map +1 -1
  870. package/dist/numerical/null-ic.js.map +1 -1
  871. package/dist/numerical/null-ray-integrator.js +4 -4
  872. package/dist/numerical/null-ray-integrator.js.map +1 -1
  873. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  874. package/dist/numerical/pderiv.d.ts.map +1 -1
  875. package/dist/numerical/pderiv.js +9 -2
  876. package/dist/numerical/pderiv.js.map +1 -1
  877. package/dist/numerical/perihelion-finder.js.map +1 -1
  878. package/dist/numerical/quadrature.d.ts +5 -2
  879. package/dist/numerical/quadrature.d.ts.map +1 -1
  880. package/dist/numerical/quadrature.js +20 -3
  881. package/dist/numerical/quadrature.js.map +1 -1
  882. package/dist/numerical/spacetime-metrics.d.ts +17 -19
  883. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  884. package/dist/numerical/spacetime-metrics.js +158 -250
  885. package/dist/numerical/spacetime-metrics.js.map +1 -1
  886. package/dist/numerical/strides.js.map +1 -1
  887. package/dist/numerical/tensor-engine.d.ts +9 -5
  888. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  889. package/dist/numerical/tensor-engine.js.map +1 -1
  890. package/dist/numerical/types.js.map +1 -1
  891. package/dist/numerical/weyl-lowering.js.map +1 -1
  892. package/dist/relations/category.js.map +1 -1
  893. package/dist/relations/composition-table.d.ts +4 -4
  894. package/dist/relations/composition-table.js +4 -4
  895. package/dist/relations/composition-table.js.map +1 -1
  896. package/dist/relations/conventions.js.map +1 -1
  897. package/dist/relations/domain-regimes.js.map +1 -1
  898. package/dist/relations/regime-registration.js.map +1 -1
  899. package/dist/relations/regime-vocabularies.js.map +1 -1
  900. package/dist/relations/regime.d.ts +18 -8
  901. package/dist/relations/regime.d.ts.map +1 -1
  902. package/dist/relations/regime.js +26 -14
  903. package/dist/relations/regime.js.map +1 -1
  904. package/dist/relations/types.d.ts +26 -6
  905. package/dist/relations/types.d.ts.map +1 -1
  906. package/dist/relations/types.js +15 -3
  907. package/dist/relations/types.js.map +1 -1
  908. package/package.json +10 -14
  909. package/dist/bridges/registry.d.ts +0 -60
  910. package/dist/bridges/registry.d.ts.map +0 -1
  911. package/dist/bridges/registry.js +0 -87
  912. package/dist/bridges/registry.js.map +0 -1
  913. package/dist/cli/poster-source.d.ts +0 -154
  914. package/dist/cli/poster-source.d.ts.map +0 -1
  915. package/dist/cli/poster-source.js +0 -184
  916. package/dist/cli/poster-source.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-adapter.js","sourceRoot":"","sources":["../../src/bridges/catalog-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-adapter.js","sourceRoot":"","sources":["../../src/bridges/catalog-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Catalog adapter: ingests `BRIDGE_EQUATIONS` into the v0.7-p2 sparse\n * semantic catalog as `BridgeCell` values.\n *\n * A cell needs a `PhysicalScale` on at least one end, and the catalog's\n * `bridges` tuple names a scale on only part of the rows (the rest name a\n * field such as `chemistry` or `plasma`). The adapter submits the rows it\n * can place and lists every other row in `unsubmitted`, with the reason in\n * `skipped`; it never guesses a scale. Phase 3 of v0.7 Proposal 2.\n *\n * Two entry points:\n *\n * `catalogToCells(entries)` — pure mapping `BridgeEquationEntry[]\n * → BridgeCell[]`. Filters out entries that would fail the\n * legacy `addBridge` validation (e.g. `bridges: ['unknown',\n * 'unknown']` collapses to identical empty `source`/`target`).\n *\n * `scanCatalog(entries)` — best-effort variant: builds candidates,\n * runs Rule 1 (dimensional consistency), returns a\n * `CatalogIngestionReport` without throwing. Caller decides\n * what to do with the diagnostics.\n *\n * `ingestCatalog(tensor, entries)` — strict variant: two-pass\n * collect-then-commit (Decision #11). If Rule 1 reports any\n * errors, throws `CatalogIngestionError(report)` and the\n * tensor is untouched. Otherwise calls `tensor.addCell` for\n * each candidate.\n *\n * Rule 1 (Dimensional Consistency) operates on\n * `BridgeEquationEntry`, NOT on `Cell` (Decision #3, resolves\n * Adam-V3). It reads `entry.dimensional_signature` directly.\n *\n * @module bridges/catalog-adapter\n */\n\nimport type {\n BridgeEquationEntry,\n BridgeEquationStatus,\n} from './index.js';\nimport type { BridgeCell, CellConfidence } from '../core/cell.js';\nimport type { UniversalTensor } from '../core/tensor.js';\nimport type {\n FluxDiagnostic,\n FluxReport,\n} from '../core/flux-rules.js';\nimport { EXPECTED_DIMENSION_BY_BRIDGE } from '../dimensional/bridge-check.js';\nimport { catalogEntries } from './catalog-load.js';\nimport { format } from '../dimensional/algebra.js';\nimport type { PhysicalScale, TensorIndices } from '../core/types.js';\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\n/**\n * Per-entry summary of the catalog ingestion attempt.\n *\n * @public\n */\nexport interface CatalogEntryStatus {\n readonly bridgeId: number;\n readonly name: string;\n /** True iff the entry would be (or was) submitted to `addCell`. */\n readonly submitted: boolean;\n /**\n * Diagnostics from Rule 1 (dimensional consistency) for this entry.\n * `undefined` means the entry passed Rule 1 cleanly.\n */\n readonly diagnostic?: FluxDiagnostic;\n}\n\n/**\n * Aggregate report returned by `scanCatalog` / `ingestCatalog`. The\n * diagnostics surface Rule 1 results; `unsubmitted` lists entries\n * that the adapter filtered out before submission (typically\n * `'unknown' → 'unknown'` bridges that would fail the legacy\n * `addBridge` source !== target check).\n *\n * @public\n */\nexport interface CatalogIngestionReport {\n readonly entries: ReadonlyArray<CatalogEntryStatus>;\n readonly errors: ReadonlyArray<FluxDiagnostic>;\n readonly warnings: ReadonlyArray<FluxDiagnostic>;\n readonly info: ReadonlyArray<FluxDiagnostic>;\n /** Bridge IDs the adapter filtered out before submission. */\n readonly unsubmitted: ReadonlyArray<number>;\n /** Why each unsubmitted id was not placed: the tuple labels that name no `PhysicalScale`. */\n readonly skipped: ReadonlyArray<{ readonly bridgeId: number; readonly reason: string }>;\n /** Cells that PASSED Rule 1 and would be submitted (or were). */\n readonly submitted: ReadonlyArray<BridgeCell>;\n}\n\n/**\n * Thrown by `ingestCatalog` when Rule 1 reports any errors. The\n * caller can inspect `report` for per-entry diagnostics.\n *\n * @public\n */\nexport class CatalogIngestionError extends Error {\n public readonly report: CatalogIngestionReport;\n\n constructor(report: CatalogIngestionReport) {\n super(\n `CatalogIngestionError: ${report.errors.length} dimensional-consistency ` +\n `error(s) in ${report.entries.length} catalog entries. ` +\n `First error: ${report.errors[0]?.message ?? '(none)'}`,\n );\n this.name = 'CatalogIngestionError';\n this.report = report;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Internal: confidence + scale mapping\n// ---------------------------------------------------------------------------\n\n/**\n * Map the catalog's `BridgeEquationStatus` string vocabulary onto\n * the `CellConfidence` vocabulary used by `BridgeCell`. The two\n * vocabularies are nearly aligned — only the `'invalid'` arm differs\n * (catalog allows it; CellConfidence excludes it per the design).\n *\n * @internal\n */\nfunction statusToCellConfidence(status: BridgeEquationStatus): CellConfidence {\n switch (status) {\n case 'established': return 'established';\n case 'speculative': return 'speculative';\n case 'highly-speculative': return 'highly-speculative';\n case 'invalid':\n // An invalid row is not a claim; the catalog carries none (the status\n // distribution test pins 0). A cell built from one is the weakest grade.\n return 'highly-speculative';\n }\n}\n\n/**\n * Translate a free-form catalog `bridges` axis label (e.g.\n * `'classical'`, `'quantum'`, `'unknown'`) to a `PhysicalScale`\n * value or `undefined`. The four-element `PhysicalScale` union is\n * exhaustive; anything else (including the `'unknown'` sentinel)\n * maps to `undefined` — making `source`/`target` an empty\n * `TensorIndices` whose serialized key is `''`.\n *\n * @internal\n */\nfunction labelToScale(label: string): PhysicalScale | undefined {\n switch (label) {\n case 'quantum':\n case 'mesoscopic':\n case 'classical':\n case 'cosmological':\n return label;\n default:\n return undefined;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Mapping: BridgeEquationEntry → BridgeCell\n// ---------------------------------------------------------------------------\n\n/**\n * Pure mapper from `BridgeEquationEntry` (legacy catalog shape) to\n * `BridgeCell` (v0.7 typed Cell variant). Filters out entries whose\n * `bridges: [from, to]` collapses to an identical source/target\n * (typically `['unknown', 'unknown']`) — those would fail the\n * legacy `addBridge` validation. The filtering decision is surfaced\n * via the `unsubmitted` array in `CatalogIngestionReport`.\n *\n * @public\n */\nexport function catalogToCells(\n entries: ReadonlyArray<BridgeEquationEntry>,\n): ReadonlyArray<BridgeCell> {\n const out: BridgeCell[] = [];\n for (const entry of entries) {\n const cell = entryToBridgeCell(entry);\n if (cell !== null) out.push(cell);\n }\n return out;\n}\n\n/**\n * Internal: build a `BridgeCell` from a single entry, returning\n * `null` if the entry is filterable (identical source/target after\n * label translation).\n *\n * @internal\n */\nfunction entryToBridgeCell(entry: BridgeEquationEntry): BridgeCell | null {\n const [fromLabel, toLabel] = entry.bridges;\n const fromScale = labelToScale(fromLabel);\n const toScale = labelToScale(toLabel);\n const source: TensorIndices = fromScale ? { scale: fromScale } : {};\n const target: TensorIndices = toScale ? { scale: toScale } : {};\n\n // Filter out entries whose source and target are both empty (the\n // 'unknown' -> 'unknown' case at HEAD). Legacy `addBridge` rejects\n // them with a TypeError; the adapter surfaces them via\n // `unsubmitted`.\n if (\n source.scale === undefined &&\n target.scale === undefined\n ) {\n return null;\n }\n\n // Equation: use formula_latex if non-empty, else a placeholder.\n const equation = entry.formula_latex && entry.formula_latex.length > 0\n ? entry.formula_latex\n : `(no LaTeX provided for BE-${entry.id})`;\n\n return {\n kind: 'bridge',\n id: `BE-${entry.id}`,\n name: entry.name,\n equation,\n confidence: statusToCellConfidence(entry.status),\n source,\n target,\n validated: entry.status === 'established',\n description: entry.notes.length > 0 ? entry.notes.slice(0, 200) : entry.name,\n };\n}\n\n// ---------------------------------------------------------------------------\n// Rule 1 — Dimensional Consistency (ERROR tier per Decision #3)\n// ---------------------------------------------------------------------------\n\n/**\n * Fires per-entry. Returns one of:\n * - undefined (no diagnostic): entry passes Rule 1.\n * - 'error' diagnostic: dimensional_signature is structurally null,\n * or non-null but does not match the expected dimension from\n * `EXPECTED_DIMENSION_BY_BRIDGE`.\n * - 'info' diagnostic: no expected entry for this bridge ID; the\n * message states how many catalog rows the table covers, counted\n * when it is printed. We can't enforce, but we record the gap.\n *\n * @internal\n */\nfunction checkDimensionalConsistency(\n entry: BridgeEquationEntry,\n): FluxDiagnostic | undefined {\n const cellId = `BE-${entry.id}`;\n // Structural null check (Eve-R1 lesson — at HEAD this fires zero\n // times; future catalog edits that introduce a null will surface\n // immediately).\n if (entry.dimensional_signature === null) {\n return {\n severity: 'error',\n ruleName: 'dimensional-consistency',\n cellId,\n message:\n `BE-${entry.id} ('${entry.name}') has dimensional_signature: ` +\n `null. Every active catalog entry must declare a structural ` +\n `dimensional signature.`,\n };\n }\n // Field-vs-expected comparison.\n const expected = EXPECTED_DIMENSION_BY_BRIDGE.get(entry.id);\n if (expected === undefined) {\n return {\n severity: 'info',\n ruleName: 'dimensional-consistency',\n cellId,\n message:\n `BE-${entry.id} ('${entry.name}') has no entry in ` +\n `EXPECTED_DIMENSION_BY_BRIDGE (${EXPECTED_DIMENSION_BY_BRIDGE.size} of ${catalogEntries().length} catalog rows covered); ` +\n `dimensional-consistency check skipped for this entry.`,\n };\n }\n const expectedFormatted = format(expected);\n if (entry.dimensional_signature !== expectedFormatted) {\n return {\n severity: 'error',\n ruleName: 'dimensional-consistency',\n cellId,\n message:\n `BE-${entry.id} ('${entry.name}') has dimensional_signature ` +\n `'${entry.dimensional_signature}' but EXPECTED_DIMENSION_BY_BRIDGE ` +\n `says '${expectedFormatted}'. Catalog and expectation disagree.`,\n };\n }\n return undefined;\n}\n\n// ---------------------------------------------------------------------------\n// Public entry points\n// ---------------------------------------------------------------------------\n\n/**\n * Best-effort catalog scan: builds candidates, runs Rule 1 per\n * entry, returns a `CatalogIngestionReport`. Does NOT mutate any\n * tensor and does NOT throw.\n *\n * @public\n */\nexport function scanCatalog(\n entries: ReadonlyArray<BridgeEquationEntry>,\n): CatalogIngestionReport {\n const statuses: CatalogEntryStatus[] = [];\n const errors: FluxDiagnostic[] = [];\n const warnings: FluxDiagnostic[] = [];\n const info: FluxDiagnostic[] = [];\n const unsubmitted: number[] = [];\n const skipped: { bridgeId: number; reason: string }[] = [];\n const submitted: BridgeCell[] = [];\n\n for (const entry of entries) {\n const diagnostic = checkDimensionalConsistency(entry);\n const cell = entryToBridgeCell(entry);\n const submittable = cell !== null;\n if (!submittable) {\n unsubmitted.push(entry.id);\n skipped.push({\n bridgeId: entry.id,\n reason: `bridges tuple [${entry.bridges.join(', ')}] names no PhysicalScale (quantum, mesoscopic, classical, cosmological) on either end`,\n });\n } else submitted.push(cell);\n\n if (diagnostic) {\n switch (diagnostic.severity) {\n case 'error': errors.push(diagnostic); break;\n case 'warning': warnings.push(diagnostic); break;\n case 'info': info.push(diagnostic); break;\n }\n }\n\n statuses.push({\n bridgeId: entry.id,\n name: entry.name,\n submitted: submittable,\n ...(diagnostic ? { diagnostic } : {}),\n });\n }\n\n return {\n entries: statuses,\n errors,\n warnings,\n info,\n unsubmitted,\n skipped,\n submitted,\n };\n}\n\n/**\n * Strict catalog ingestion: two-pass collect-then-commit per\n * Decision #11. If Rule 1 reports any errors, throws\n * `CatalogIngestionError(report)` and the tensor is untouched.\n * Otherwise calls `tensor.addCell` for each filterable candidate.\n *\n * @public\n */\nexport function ingestCatalog(\n tensor: UniversalTensor,\n entries: ReadonlyArray<BridgeEquationEntry>,\n): CatalogIngestionReport {\n const report = scanCatalog(entries);\n if (report.errors.length > 0) {\n throw new CatalogIngestionError(report);\n }\n for (const cell of report.submitted) {\n tensor.addCell(cell);\n }\n return report;\n}\n\n/**\n * Bridge-level FluxReport summary, derived from a\n * `CatalogIngestionReport`. Used by consumers that want the\n * flux-rule report shape rather than the catalog-specific report.\n *\n * @public\n */\nexport function ingestionReportToFluxReport(\n report: CatalogIngestionReport,\n): FluxReport {\n const diagnostics = [\n ...report.errors,\n ...report.warnings,\n ...report.info,\n ];\n return {\n diagnostics,\n errorCount: report.errors.length,\n warningCount: report.warnings.length,\n infoCount: report.info.length,\n };\n}\n"]}
@@ -4,7 +4,15 @@
4
4
  *
5
5
  * @module bridges/catalog-load
6
6
  */
7
- import type { CatalogConfrontation, CatalogEntry, CatalogEvaluator, CatalogFile, CatalogRelation } from './catalog-types.js';
7
+ import type { CatalogConfrontation, CatalogEntry, CatalogEvaluator, CatalogFile, CatalogFileRecord, CatalogRejection, CatalogRelation } from './catalog-types.js';
8
+ /**
9
+ * The loaded catalog from a file record: the records are in id order, each
10
+ * outcome is checked on its kind, each relation takes its row's status as its
11
+ * confidence, then the sign clauses its evaluator parameters state. The
12
+ * production catalog is this function on `data/bridge-catalog.json`.
13
+ * @internal
14
+ */
15
+ export declare function loadCatalog(file: CatalogFileRecord): CatalogFile;
8
16
  /** The loaded catalog. */
9
17
  export declare function bridgeCatalog(): CatalogFile;
10
18
  /** Catalog rows, in file order. */
@@ -13,8 +21,10 @@ export declare function catalogEntries(): readonly CatalogEntry[];
13
21
  export declare function catalogRelations(): readonly CatalogRelation[];
14
22
  /** Evaluator input contracts, in file order. */
15
23
  export declare function catalogEvaluators(): readonly CatalogEvaluator[];
16
- /** Confrontations, in file order. */
24
+ /** Confrontations, in file order; one per catalog id. */
17
25
  export declare function catalogConfrontations(): readonly CatalogConfrontation[];
26
+ /** The negative catalog, in file order. */
27
+ export declare function catalogRejections(): readonly CatalogRejection[];
18
28
  /** The row for a catalog id, or undefined. */
19
29
  export declare function catalogEntry(id: number): CatalogEntry | undefined;
20
30
  /** Relations whose catalog id is `id`, in file order. */
@@ -24,6 +34,13 @@ export declare function relationsForCatalog(id: number): readonly CatalogRelatio
24
34
  * when several relations share the id. Otherwise the first relation does.
25
35
  */
26
36
  export declare function primaryRelation(id: number): CatalogRelation | undefined;
37
+ /**
38
+ * The catalog number a piece of text names (`42`, `be-42`, `BE-42`), or
39
+ * undefined when it names none (an atlas id, a canonical id, a quantity).
40
+ * The one place a bridge id is read from text; {@link parseBridgeId} throws
41
+ * where this returns undefined.
42
+ */
43
+ export declare function catalogIdNumber(raw: string): number | undefined;
27
44
  /**
28
45
  * Parse a catalog id from a number or from text the caller typed.
29
46
  * Accepts `42`, `be-42`, and `BE-42`. This is the only such parser.
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-load.d.ts","sourceRoot":"","sources":["../../src/bridges/catalog-load.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,EAChB,MAAM,oBAAoB,CAAC;AAe5B,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,WAAW,CAE3C;AAED,mCAAmC;AACnC,wBAAgB,cAAc,IAAI,SAAS,YAAY,EAAE,CAExD;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,SAAS,eAAe,EAAE,CAE7D;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,IAAI,SAAS,gBAAgB,EAAE,CAE/D;AAED,qCAAqC;AACrC,wBAAgB,qBAAqB,IAAI,SAAS,oBAAoB,EAAE,CAEvE;AAWD,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAY/D;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"catalog-load.d.ts","sourceRoot":"","sources":["../../src/bridges/catalog-load.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,oBAAoB,EAEpB,YAAY,EACZ,gBAAgB,EAEhB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,oBAAoB,CAAC;AA6M5B;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,iBAAiB,GAAG,WAAW,CAGhE;AAID,0BAA0B;AAC1B,wBAAgB,aAAa,IAAI,WAAW,CAE3C;AAED,mCAAmC;AACnC,wBAAgB,cAAc,IAAI,SAAS,YAAY,EAAE,CAExD;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,IAAI,SAAS,eAAe,EAAE,CAE7D;AAED,gDAAgD;AAChD,wBAAgB,iBAAiB,IAAI,SAAS,gBAAgB,EAAE,CAE/D;AAED,yDAAyD;AACzD,wBAAgB,qBAAqB,IAAI,SAAS,oBAAoB,EAAE,CAEvE;AAED,2CAA2C;AAC3C,wBAAgB,iBAAiB,IAAI,SAAS,gBAAgB,EAAE,CAE/D;AAWD,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEjE;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAY/D;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD"}
@@ -4,20 +4,225 @@
4
4
  *
5
5
  * @module bridges/catalog-load
6
6
  */
7
- import { readFileSync } from 'node:fs';
8
- import { dirname, join } from 'node:path';
9
- import { fileURLToPath } from 'node:url';
7
+ import { residualInSigma } from './observations/types.js';
8
+ import { checkedDataFile } from '../core/data-file.js';
9
+ /**
10
+ * `data/bridge-catalog.json`, checked against `data/bridge-catalog.schema.json`
11
+ * (every record's `type`, the relation, evaluator, parameter and confrontation
12
+ * shapes). What a schema cannot state is checked by {@link loadCatalog}.
13
+ */
10
14
  function loadFile() {
11
- const path = join(dirname(fileURLToPath(import.meta.url)), '../../data/bridge-catalog.json');
12
- const file = JSON.parse(readFileSync(path, 'utf8'));
13
- for (const entry of file.entries) {
14
- if (entry.type !== 'standard' && entry.type !== 'cross-domain') {
15
- throw new Error(`catalog record ${entry.id} has no type`);
15
+ return checkedDataFile('bridge-catalog.json');
16
+ }
17
+ /** Records in ascending id order; a duplicate or a disordered id is refused. */
18
+ function checkOrder(file) {
19
+ for (let i = 1; i < file.entries.length; i += 1) {
20
+ const previous = file.entries[i - 1].id;
21
+ const current = file.entries[i].id;
22
+ if (current <= previous) {
23
+ throw new Error(`data/bridge-catalog.json: entry ${current} follows entry ${previous}; records are in ascending id order`);
16
24
  }
17
25
  }
18
- return file;
26
+ const seen = new Set();
27
+ for (const row of file.confrontations) {
28
+ if (seen.has(row.catalogId))
29
+ throw new Error(`data/bridge-catalog.json: catalog id ${row.catalogId} has two confrontations`);
30
+ seen.add(row.catalogId);
31
+ }
32
+ const rejected = new Set();
33
+ const ids = new Set(file.entries.map((entry) => entry.id));
34
+ for (const row of file.rejections) {
35
+ if (!ids.has(row.catalogId))
36
+ throw new Error(`data/bridge-catalog.json: rejection ${row.catalogId} names no catalog row`);
37
+ if (rejected.has(row.catalogId))
38
+ throw new Error(`data/bridge-catalog.json: catalog id ${row.catalogId} is rejected twice`);
39
+ rejected.add(row.catalogId);
40
+ }
41
+ }
42
+ const number = (o, key, where) => {
43
+ const v = o[key];
44
+ if (typeof v !== 'number' || !Number.isFinite(v))
45
+ throw new Error(`${where}: outcome.${key} must be a finite number`);
46
+ return v;
47
+ };
48
+ const boolean = (o, key, where) => {
49
+ const v = o[key];
50
+ if (typeof v !== 'boolean')
51
+ throw new Error(`${where}: outcome.${key} must be a boolean`);
52
+ return v;
53
+ };
54
+ /**
55
+ * The outcome of one confrontation, checked arm by arm on its `kind`. The
56
+ * schema states the shared fields (`kind`, `units`, `provenance`, the data
57
+ * handling); the fields each arm must carry are checked here, so the loaded
58
+ * record is a {@link ConfrontationOutcome} by inspection, not by assertion.
59
+ */
60
+ /** A stored number is written to a few significant digits; it agrees when it rounds to the computed one within 1e-3 relative (or absolute near zero). */
61
+ function agreesToStoredPrecision(stored, computed) {
62
+ return Math.abs(stored - computed) <= 1e-3 * Math.max(1, Math.abs(computed));
63
+ }
64
+ /** True when `holds` contains `clause` as a whole clause, not as the tail of a longer name. */
65
+ function holdsStatesClause(holds, clause) {
66
+ let from = 0;
67
+ for (;;) {
68
+ const at = holds.indexOf(clause, from);
69
+ if (at < 0)
70
+ return false;
71
+ const before = at === 0 ? ' ' : holds[at - 1];
72
+ if (!/[A-Za-z0-9_-]/.test(before))
73
+ return true;
74
+ from = at + 1;
75
+ }
19
76
  }
20
- const CATALOG = loadFile();
77
+ function readOutcome(row) {
78
+ const where = `data/bridge-catalog.json: confrontation ${row.catalogId}`;
79
+ const o = row.outcome;
80
+ if (o['kind'] !== row.kind)
81
+ throw new Error(`${where}: outcome.kind ${String(o['kind'])} is not the record kind ${row.kind}`);
82
+ switch (row.kind) {
83
+ case 'value': {
84
+ // The verdict is derived from the numbers, never read as stored (AGENTS law 1): a stored
85
+ // residual or verdict that disagrees with |predicted − observed|/σ is refused.
86
+ const predicted = number(o, 'predicted', where);
87
+ const observed = number(o, 'observed', where);
88
+ const sigma = number(o, 'sigma', where);
89
+ const stored = number(o, 'residualInSigma', where);
90
+ const computed = residualInSigma(predicted, observed, sigma);
91
+ if (!agreesToStoredPrecision(stored, computed)) {
92
+ throw new Error(`${where}: outcome.residualInSigma ${stored} is not |predicted − observed|/sigma = ${computed}`);
93
+ }
94
+ if (boolean(o, 'withinObserved', where) !== computed <= 1) {
95
+ throw new Error(`${where}: outcome.withinObserved must be residualInSigma <= 1 (${computed})`);
96
+ }
97
+ break;
98
+ }
99
+ case 'upper-bound': {
100
+ const predicted = number(o, 'predicted', where);
101
+ const bound = number(o, 'bound', where);
102
+ // `predictedIs` picks the comparison (`observations/types.ts`): a point is satisfied at or
103
+ // below the observed limit; an encoded bound (|x| ≤ predicted) when the limit lies inside it.
104
+ const encodedBound = o['predictedIs'] === 'encoded-bound';
105
+ const expected = encodedBound ? bound <= predicted : predicted <= bound;
106
+ if (boolean(o, 'satisfied', where) !== expected) {
107
+ throw new Error(`${where}: outcome.satisfied must be ${encodedBound ? 'bound <= predicted' : 'predicted <= bound'} (${predicted} vs ${bound})`);
108
+ }
109
+ break;
110
+ }
111
+ case 'consistency': {
112
+ const predicted = number(o, 'predicted', where);
113
+ const approaches = number(o, 'approaches', where);
114
+ const gap = number(o, 'fractionalGap', where);
115
+ if (o['fractionalGapIs'] !== 'agreement-bound' && o['fractionalGapIs'] !== 'observed-difference') {
116
+ throw new Error(`${where}: outcome.fractionalGapIs must name what fractionalGap holds`);
117
+ }
118
+ // An agreement bound is the record's stated tolerance; an observed difference is derived.
119
+ if (o['fractionalGapIs'] === 'observed-difference' && predicted !== 0) {
120
+ const computed = (approaches - predicted) / predicted;
121
+ if (!agreesToStoredPrecision(gap, computed)) {
122
+ throw new Error(`${where}: outcome.fractionalGap ${gap} is not (approaches − predicted)/predicted = ${computed}`);
123
+ }
124
+ }
125
+ break;
126
+ }
127
+ case 'table':
128
+ if (!Array.isArray(o['rows']))
129
+ throw new Error(`${where}: outcome.rows must be an array`);
130
+ break;
131
+ }
132
+ return o;
133
+ }
134
+ function narrowConfrontations(file) {
135
+ return file.confrontations.map((row) => ({ ...row, outcome: readOutcome(row) }));
136
+ }
137
+ /**
138
+ * A relation's confidence is its catalog row's `status`. The row is the one
139
+ * owner, so the file may not store a confidence beside a catalog id; a
140
+ * relation with no row stores its own. A row that is `invalid` has no
141
+ * relation to evaluate.
142
+ */
143
+ function deriveConfidence(file) {
144
+ const entries = new Map(file.entries.map((entry) => [entry.id, entry]));
145
+ const confrontations = narrowConfrontations(file);
146
+ const relations = file.relations.map((relation) => {
147
+ if (relation.catalogId === null) {
148
+ if (relation.confidence === undefined) {
149
+ throw new Error(`data/bridge-catalog.json: relation ${relation.id} has no catalog row and no confidence`);
150
+ }
151
+ return { ...relation, confidence: relation.confidence };
152
+ }
153
+ if (relation.confidence !== undefined) {
154
+ throw new Error(`data/bridge-catalog.json: relation ${relation.id} stores a confidence; the row's status is the owner`);
155
+ }
156
+ const entry = entries.get(relation.catalogId);
157
+ if (entry === undefined) {
158
+ throw new Error(`data/bridge-catalog.json: relation ${relation.id} names an unknown catalog id ${relation.catalogId}`);
159
+ }
160
+ if (entry.status === 'invalid') {
161
+ throw new Error(`data/bridge-catalog.json: relation ${relation.id} has a closed form but its row is invalid`);
162
+ }
163
+ return { ...relation, confidence: entry.status };
164
+ });
165
+ return { ...file, relations, confrontations };
166
+ }
167
+ /**
168
+ * The validity clause a parameter's sign states, in the relation's own source
169
+ * name. An absolute temperature is nonnegative unless the parameter says `any`.
170
+ */
171
+ function signClause(parameter, source) {
172
+ const sign = parameter.sign ?? (parameter.temperature === 'absolute' ? 'nonnegative' : undefined);
173
+ if (sign === 'positive')
174
+ return `${source} > 0`;
175
+ if (sign === 'nonnegative')
176
+ return `${source} >= 0`;
177
+ return undefined;
178
+ }
179
+ /**
180
+ * Add the sign clauses the evaluator parameters state to the relation they
181
+ * evaluate. The validity domain is derived from the flags, so a new bridge
182
+ * that flags its inputs cannot leave the domain behind. A clause the record
183
+ * already states is not repeated.
184
+ */
185
+ function deriveDomains(file) {
186
+ const relations = file.relations.map((relation) => {
187
+ if (relation.catalogId === null)
188
+ return relation;
189
+ const evaluator = file.evaluators.find((row) => row.catalogId === relation.catalogId);
190
+ if (evaluator === undefined)
191
+ return relation;
192
+ const clauses = [];
193
+ for (const parameter of evaluator.parameters) {
194
+ const source = relation.sources.find((name) => name === parameter.key || (relation.aliases[name] ?? []).includes(parameter.key)) ??
195
+ (relation.sources.includes(parameter.quantity) ? parameter.quantity : undefined);
196
+ if (source === undefined)
197
+ continue;
198
+ const clause = signClause(parameter, source);
199
+ // A whole-clause match: `radius > 0` is not already stated by `near-radius > 0`.
200
+ if (clause !== undefined && !holdsStatesClause(relation.holds, clause))
201
+ clauses.push(clause);
202
+ }
203
+ if (clauses.length === 0)
204
+ return relation;
205
+ const stated = relation.holds.trim() === 'true' ? '' : `${relation.holds} and `;
206
+ return {
207
+ ...relation,
208
+ holds: `${stated}${clauses.join(' and ')}`,
209
+ domain: relation.domain === '' ? clauses.join(', ') : `${relation.domain}; ${clauses.join(', ')}`,
210
+ };
211
+ });
212
+ return { ...file, relations };
213
+ }
214
+ /**
215
+ * The loaded catalog from a file record: the records are in id order, each
216
+ * outcome is checked on its kind, each relation takes its row's status as its
217
+ * confidence, then the sign clauses its evaluator parameters state. The
218
+ * production catalog is this function on `data/bridge-catalog.json`.
219
+ * @internal
220
+ */
221
+ export function loadCatalog(file) {
222
+ checkOrder(file);
223
+ return deriveDomains(deriveConfidence(file));
224
+ }
225
+ const CATALOG = loadCatalog(loadFile());
21
226
  /** The loaded catalog. */
22
227
  export function bridgeCatalog() {
23
228
  return CATALOG;
@@ -34,10 +239,14 @@ export function catalogRelations() {
34
239
  export function catalogEvaluators() {
35
240
  return CATALOG.evaluators;
36
241
  }
37
- /** Confrontations, in file order. */
242
+ /** Confrontations, in file order; one per catalog id. */
38
243
  export function catalogConfrontations() {
39
244
  return CATALOG.confrontations;
40
245
  }
246
+ /** The negative catalog, in file order. */
247
+ export function catalogRejections() {
248
+ return CATALOG.rejections;
249
+ }
41
250
  const ENTRY_BY_ID = new Map(CATALOG.entries.map((entry) => [entry.id, entry]));
42
251
  const RELATIONS_BY_CATALOG = new Map();
43
252
  for (const relation of CATALOG.relations) {
@@ -65,6 +274,16 @@ export function primaryRelation(id) {
65
274
  const rows = relationsForCatalog(id);
66
275
  return rows.find((row) => row.id === `be-${id}`) ?? rows[0];
67
276
  }
277
+ /**
278
+ * The catalog number a piece of text names (`42`, `be-42`, `BE-42`), or
279
+ * undefined when it names none (an atlas id, a canonical id, a quantity).
280
+ * The one place a bridge id is read from text; {@link parseBridgeId} throws
281
+ * where this returns undefined.
282
+ */
283
+ export function catalogIdNumber(raw) {
284
+ const match = /^(?:be-)?(\d+)$/i.exec(raw.trim());
285
+ return match === null ? undefined : Number(match[1]);
286
+ }
68
287
  /**
69
288
  * Parse a catalog id from a number or from text the caller typed.
70
289
  * Accepts `42`, `be-42`, and `BE-42`. This is the only such parser.
@@ -76,11 +295,11 @@ export function parseBridgeId(bridgeId) {
76
295
  }
77
296
  return bridgeId;
78
297
  }
79
- const match = /^(?:be-)?(\d+)$/i.exec(bridgeId.trim());
80
- if (match === null) {
298
+ const id = catalogIdNumber(bridgeId);
299
+ if (id === undefined) {
81
300
  throw new TypeError(`parseBridgeId: '${bridgeId}' is not a catalog id`);
82
301
  }
83
- return Number(match[1]);
302
+ return id;
84
303
  }
85
304
  /** Graph id for a catalog number: the stable key, not a switch. */
86
305
  export function catalogEdgeKey(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"catalog-load.js","sourceRoot":"","sources":["../../src/bridges/catalog-load.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog-load.js","sourceRoot":"","sources":["../../src/bridges/catalog-load.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The catalog loader. This module is the only place that parses a bridge id\n * out of text. Everywhere else reads the loaded records.\n *\n * @module bridges/catalog-load\n */\n\nimport { residualInSigma } from './observations/types.js';\nimport { checkedDataFile } from '../core/data-file.js';\nimport type {\n CatalogConfrontation,\n CatalogConfrontationRecord,\n CatalogEntry,\n CatalogEvaluator,\n CatalogEvaluatorParameter,\n CatalogFile,\n CatalogFileRecord,\n CatalogRejection,\n CatalogRelation,\n} from './catalog-types.js';\nimport type { ConfrontationOutcome } from './observations/types.js';\n\n/**\n * `data/bridge-catalog.json`, checked against `data/bridge-catalog.schema.json`\n * (every record's `type`, the relation, evaluator, parameter and confrontation\n * shapes). What a schema cannot state is checked by {@link loadCatalog}.\n */\nfunction loadFile(): CatalogFileRecord {\n return checkedDataFile('bridge-catalog.json') as CatalogFileRecord;\n}\n\n/** Records in ascending id order; a duplicate or a disordered id is refused. */\nfunction checkOrder(file: CatalogFileRecord): void {\n for (let i = 1; i < file.entries.length; i += 1) {\n const previous = file.entries[i - 1]!.id;\n const current = file.entries[i]!.id;\n if (current <= previous) {\n throw new Error(`data/bridge-catalog.json: entry ${current} follows entry ${previous}; records are in ascending id order`);\n }\n }\n const seen = new Set<number>();\n for (const row of file.confrontations) {\n if (seen.has(row.catalogId)) throw new Error(`data/bridge-catalog.json: catalog id ${row.catalogId} has two confrontations`);\n seen.add(row.catalogId);\n }\n const rejected = new Set<number>();\n const ids = new Set(file.entries.map((entry) => entry.id));\n for (const row of file.rejections) {\n if (!ids.has(row.catalogId)) throw new Error(`data/bridge-catalog.json: rejection ${row.catalogId} names no catalog row`);\n if (rejected.has(row.catalogId)) throw new Error(`data/bridge-catalog.json: catalog id ${row.catalogId} is rejected twice`);\n rejected.add(row.catalogId);\n }\n}\n\nconst number = (o: Readonly<Record<string, unknown>>, key: string, where: string): number => {\n const v = o[key];\n if (typeof v !== 'number' || !Number.isFinite(v)) throw new Error(`${where}: outcome.${key} must be a finite number`);\n return v;\n};\nconst boolean = (o: Readonly<Record<string, unknown>>, key: string, where: string): boolean => {\n const v = o[key];\n if (typeof v !== 'boolean') throw new Error(`${where}: outcome.${key} must be a boolean`);\n return v;\n};\n\n/**\n * The outcome of one confrontation, checked arm by arm on its `kind`. The\n * schema states the shared fields (`kind`, `units`, `provenance`, the data\n * handling); the fields each arm must carry are checked here, so the loaded\n * record is a {@link ConfrontationOutcome} by inspection, not by assertion.\n */\n/** A stored number is written to a few significant digits; it agrees when it rounds to the computed one within 1e-3 relative (or absolute near zero). */\nfunction agreesToStoredPrecision(stored: number, computed: number): boolean {\n return Math.abs(stored - computed) <= 1e-3 * Math.max(1, Math.abs(computed));\n}\n\n/** True when `holds` contains `clause` as a whole clause, not as the tail of a longer name. */\nfunction holdsStatesClause(holds: string, clause: string): boolean {\n let from = 0;\n for (;;) {\n const at = holds.indexOf(clause, from);\n if (at < 0) return false;\n const before = at === 0 ? ' ' : holds[at - 1]!;\n if (!/[A-Za-z0-9_-]/.test(before)) return true;\n from = at + 1;\n }\n}\n\nfunction readOutcome(row: CatalogConfrontationRecord): ConfrontationOutcome {\n const where = `data/bridge-catalog.json: confrontation ${row.catalogId}`;\n const o = row.outcome;\n if (o['kind'] !== row.kind) throw new Error(`${where}: outcome.kind ${String(o['kind'])} is not the record kind ${row.kind}`);\n switch (row.kind) {\n case 'value': {\n // The verdict is derived from the numbers, never read as stored (AGENTS law 1): a stored\n // residual or verdict that disagrees with |predicted − observed|/σ is refused.\n const predicted = number(o, 'predicted', where);\n const observed = number(o, 'observed', where);\n const sigma = number(o, 'sigma', where);\n const stored = number(o, 'residualInSigma', where);\n const computed = residualInSigma(predicted, observed, sigma);\n if (!agreesToStoredPrecision(stored, computed)) {\n throw new Error(`${where}: outcome.residualInSigma ${stored} is not |predicted − observed|/sigma = ${computed}`);\n }\n if (boolean(o, 'withinObserved', where) !== computed <= 1) {\n throw new Error(`${where}: outcome.withinObserved must be residualInSigma <= 1 (${computed})`);\n }\n break;\n }\n case 'upper-bound': {\n const predicted = number(o, 'predicted', where);\n const bound = number(o, 'bound', where);\n // `predictedIs` picks the comparison (`observations/types.ts`): a point is satisfied at or\n // below the observed limit; an encoded bound (|x| ≤ predicted) when the limit lies inside it.\n const encodedBound = o['predictedIs'] === 'encoded-bound';\n const expected = encodedBound ? bound <= predicted : predicted <= bound;\n if (boolean(o, 'satisfied', where) !== expected) {\n throw new Error(\n `${where}: outcome.satisfied must be ${encodedBound ? 'bound <= predicted' : 'predicted <= bound'} (${predicted} vs ${bound})`,\n );\n }\n break;\n }\n case 'consistency': {\n const predicted = number(o, 'predicted', where);\n const approaches = number(o, 'approaches', where);\n const gap = number(o, 'fractionalGap', where);\n if (o['fractionalGapIs'] !== 'agreement-bound' && o['fractionalGapIs'] !== 'observed-difference') {\n throw new Error(`${where}: outcome.fractionalGapIs must name what fractionalGap holds`);\n }\n // An agreement bound is the record's stated tolerance; an observed difference is derived.\n if (o['fractionalGapIs'] === 'observed-difference' && predicted !== 0) {\n const computed = (approaches - predicted) / predicted;\n if (!agreesToStoredPrecision(gap, computed)) {\n throw new Error(`${where}: outcome.fractionalGap ${gap} is not (approaches − predicted)/predicted = ${computed}`);\n }\n }\n break;\n }\n case 'table':\n if (!Array.isArray(o['rows'])) throw new Error(`${where}: outcome.rows must be an array`);\n break;\n }\n return o as unknown as ConfrontationOutcome;\n}\n\nfunction narrowConfrontations(file: CatalogFileRecord): readonly CatalogConfrontation[] {\n return file.confrontations.map((row) => ({ ...row, outcome: readOutcome(row) }));\n}\n\n/**\n * A relation's confidence is its catalog row's `status`. The row is the one\n * owner, so the file may not store a confidence beside a catalog id; a\n * relation with no row stores its own. A row that is `invalid` has no\n * relation to evaluate.\n */\nfunction deriveConfidence(file: CatalogFileRecord): CatalogFile {\n const entries = new Map(file.entries.map((entry) => [entry.id, entry]));\n const confrontations = narrowConfrontations(file);\n const relations = file.relations.map((relation): CatalogRelation => {\n if (relation.catalogId === null) {\n if (relation.confidence === undefined) {\n throw new Error(`data/bridge-catalog.json: relation ${relation.id} has no catalog row and no confidence`);\n }\n return { ...relation, confidence: relation.confidence };\n }\n if (relation.confidence !== undefined) {\n throw new Error(`data/bridge-catalog.json: relation ${relation.id} stores a confidence; the row's status is the owner`);\n }\n const entry = entries.get(relation.catalogId);\n if (entry === undefined) {\n throw new Error(`data/bridge-catalog.json: relation ${relation.id} names an unknown catalog id ${relation.catalogId}`);\n }\n if (entry.status === 'invalid') {\n throw new Error(`data/bridge-catalog.json: relation ${relation.id} has a closed form but its row is invalid`);\n }\n return { ...relation, confidence: entry.status };\n });\n return { ...file, relations, confrontations };\n}\n\n/**\n * The validity clause a parameter's sign states, in the relation's own source\n * name. An absolute temperature is nonnegative unless the parameter says `any`.\n */\nfunction signClause(parameter: CatalogEvaluatorParameter, source: string): string | undefined {\n const sign = parameter.sign ?? (parameter.temperature === 'absolute' ? 'nonnegative' : undefined);\n if (sign === 'positive') return `${source} > 0`;\n if (sign === 'nonnegative') return `${source} >= 0`;\n return undefined;\n}\n\n/**\n * Add the sign clauses the evaluator parameters state to the relation they\n * evaluate. The validity domain is derived from the flags, so a new bridge\n * that flags its inputs cannot leave the domain behind. A clause the record\n * already states is not repeated.\n */\nfunction deriveDomains(file: CatalogFile): CatalogFile {\n const relations = file.relations.map((relation) => {\n if (relation.catalogId === null) return relation;\n const evaluator = file.evaluators.find((row) => row.catalogId === relation.catalogId);\n if (evaluator === undefined) return relation;\n const clauses: string[] = [];\n for (const parameter of evaluator.parameters) {\n const source =\n relation.sources.find((name) => name === parameter.key || (relation.aliases[name] ?? []).includes(parameter.key)) ??\n (relation.sources.includes(parameter.quantity) ? parameter.quantity : undefined);\n if (source === undefined) continue;\n const clause = signClause(parameter, source);\n // A whole-clause match: `radius > 0` is not already stated by `near-radius > 0`.\n if (clause !== undefined && !holdsStatesClause(relation.holds, clause)) clauses.push(clause);\n }\n if (clauses.length === 0) return relation;\n const stated = relation.holds.trim() === 'true' ? '' : `${relation.holds} and `;\n return {\n ...relation,\n holds: `${stated}${clauses.join(' and ')}`,\n domain: relation.domain === '' ? clauses.join(', ') : `${relation.domain}; ${clauses.join(', ')}`,\n };\n });\n return { ...file, relations };\n}\n\n/**\n * The loaded catalog from a file record: the records are in id order, each\n * outcome is checked on its kind, each relation takes its row's status as its\n * confidence, then the sign clauses its evaluator parameters state. The\n * production catalog is this function on `data/bridge-catalog.json`.\n * @internal\n */\nexport function loadCatalog(file: CatalogFileRecord): CatalogFile {\n checkOrder(file);\n return deriveDomains(deriveConfidence(file));\n}\n\nconst CATALOG = loadCatalog(loadFile());\n\n/** The loaded catalog. */\nexport function bridgeCatalog(): CatalogFile {\n return CATALOG;\n}\n\n/** Catalog rows, in file order. */\nexport function catalogEntries(): readonly CatalogEntry[] {\n return CATALOG.entries;\n}\n\n/** Closed forms, in file order. */\nexport function catalogRelations(): readonly CatalogRelation[] {\n return CATALOG.relations;\n}\n\n/** Evaluator input contracts, in file order. */\nexport function catalogEvaluators(): readonly CatalogEvaluator[] {\n return CATALOG.evaluators;\n}\n\n/** Confrontations, in file order; one per catalog id. */\nexport function catalogConfrontations(): readonly CatalogConfrontation[] {\n return CATALOG.confrontations;\n}\n\n/** The negative catalog, in file order. */\nexport function catalogRejections(): readonly CatalogRejection[] {\n return CATALOG.rejections;\n}\n\nconst ENTRY_BY_ID = new Map(CATALOG.entries.map((entry) => [entry.id, entry]));\nconst RELATIONS_BY_CATALOG = new Map<number, CatalogRelation[]>();\nfor (const relation of CATALOG.relations) {\n if (relation.catalogId === null) continue;\n const list = RELATIONS_BY_CATALOG.get(relation.catalogId);\n if (list === undefined) RELATIONS_BY_CATALOG.set(relation.catalogId, [relation]);\n else list.push(relation);\n}\n\n/** The row for a catalog id, or undefined. */\nexport function catalogEntry(id: number): CatalogEntry | undefined {\n return ENTRY_BY_ID.get(id);\n}\n\n/** Relations whose catalog id is `id`, in file order. */\nexport function relationsForCatalog(id: number): readonly CatalogRelation[] {\n return RELATIONS_BY_CATALOG.get(id) ?? [];\n}\n\n/**\n * The relation a numeric catalog id evaluates. The graph id `be-<id>` wins\n * when several relations share the id. Otherwise the first relation does.\n */\nexport function primaryRelation(id: number): CatalogRelation | undefined {\n const rows = relationsForCatalog(id);\n return rows.find((row) => row.id === `be-${id}`) ?? rows[0];\n}\n\n/**\n * The catalog number a piece of text names (`42`, `be-42`, `BE-42`), or\n * undefined when it names none (an atlas id, a canonical id, a quantity).\n * The one place a bridge id is read from text; {@link parseBridgeId} throws\n * where this returns undefined.\n */\nexport function catalogIdNumber(raw: string): number | undefined {\n const match = /^(?:be-)?(\\d+)$/i.exec(raw.trim());\n return match === null ? undefined : Number(match[1]);\n}\n\n/**\n * Parse a catalog id from a number or from text the caller typed.\n * Accepts `42`, `be-42`, and `BE-42`. This is the only such parser.\n */\nexport function parseBridgeId(bridgeId: number | string): number {\n if (typeof bridgeId === 'number') {\n if (!Number.isInteger(bridgeId)) {\n throw new RangeError(`parseBridgeId: ${bridgeId} is not an integer catalog id`);\n }\n return bridgeId;\n }\n const id = catalogIdNumber(bridgeId);\n if (id === undefined) {\n throw new TypeError(`parseBridgeId: '${bridgeId}' is not a catalog id`);\n }\n return id;\n}\n\n/** Graph id for a catalog number: the stable key, not a switch. */\nexport function catalogEdgeKey(id: number): string {\n return `be-${id}`;\n}\n"]}