universal-physics-tensor 0.45.1 → 0.46.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 (473) hide show
  1. package/README.md +28 -27
  2. package/dist/atlas/applicability.d.ts +108 -0
  3. package/dist/atlas/applicability.d.ts.map +1 -0
  4. package/dist/atlas/applicability.js +301 -0
  5. package/dist/atlas/applicability.js.map +1 -0
  6. package/dist/atlas/association.d.ts +92 -0
  7. package/dist/atlas/association.d.ts.map +1 -0
  8. package/dist/atlas/association.js +112 -0
  9. package/dist/atlas/association.js.map +1 -0
  10. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  12. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  13. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  14. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  15. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  16. package/dist/atlas/benchmark/baselines.js +112 -0
  17. package/dist/atlas/benchmark/baselines.js.map +1 -0
  18. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  19. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  20. package/dist/atlas/benchmark/leakage.js +100 -0
  21. package/dist/atlas/benchmark/leakage.js.map +1 -0
  22. package/dist/atlas/benchmark/loader.d.ts +56 -0
  23. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  24. package/dist/atlas/benchmark/loader.js +104 -0
  25. package/dist/atlas/benchmark/loader.js.map +1 -0
  26. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  28. package/dist/atlas/benchmark/run-atlas.js +210 -0
  29. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  30. package/dist/atlas/benchmark/stats.d.ts +90 -0
  31. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  32. package/dist/atlas/benchmark/stats.js +159 -0
  33. package/dist/atlas/benchmark/stats.js.map +1 -0
  34. package/dist/atlas/benchmark/study.d.ts +120 -0
  35. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  36. package/dist/atlas/benchmark/study.js +192 -0
  37. package/dist/atlas/benchmark/study.js.map +1 -0
  38. package/dist/atlas/benchmark/types.d.ts +79 -0
  39. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  40. package/dist/atlas/benchmark/types.js +46 -0
  41. package/dist/atlas/benchmark/types.js.map +1 -0
  42. package/dist/atlas/composition-table.d.ts +55 -0
  43. package/dist/atlas/composition-table.d.ts.map +1 -0
  44. package/dist/atlas/composition-table.js +133 -0
  45. package/dist/atlas/composition-table.js.map +1 -0
  46. package/dist/atlas/conventions.d.ts +63 -0
  47. package/dist/atlas/conventions.d.ts.map +1 -0
  48. package/dist/atlas/conventions.js +93 -0
  49. package/dist/atlas/conventions.js.map +1 -0
  50. package/dist/atlas/coverage.d.ts +93 -0
  51. package/dist/atlas/coverage.d.ts.map +1 -0
  52. package/dist/atlas/coverage.js +69 -0
  53. package/dist/atlas/coverage.js.map +1 -0
  54. package/dist/atlas/derivation.d.ts +137 -0
  55. package/dist/atlas/derivation.d.ts.map +1 -0
  56. package/dist/atlas/derivation.js +190 -0
  57. package/dist/atlas/derivation.js.map +1 -0
  58. package/dist/atlas/derive-evidence.d.ts +218 -0
  59. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  60. package/dist/atlas/derive-evidence.js +225 -0
  61. package/dist/atlas/derive-evidence.js.map +1 -0
  62. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  64. package/dist/atlas/diffusion/bridges-closure.js +324 -0
  65. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  66. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  67. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  68. package/dist/atlas/diffusion/bridges.js +226 -0
  69. package/dist/atlas/diffusion/bridges.js.map +1 -0
  70. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  72. package/dist/atlas/diffusion/dimensions.js +21 -0
  73. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  74. package/dist/atlas/diffusion/index.d.ts +16 -0
  75. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  76. package/dist/atlas/diffusion/index.js +23 -0
  77. package/dist/atlas/diffusion/index.js.map +1 -0
  78. package/dist/atlas/diffusion/models.d.ts +24 -0
  79. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  80. package/dist/atlas/diffusion/models.js +139 -0
  81. package/dist/atlas/diffusion/models.js.map +1 -0
  82. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  83. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  84. package/dist/atlas/diffusion/numerics.js +251 -0
  85. package/dist/atlas/diffusion/numerics.js.map +1 -0
  86. package/dist/atlas/error-algebra.d.ts +52 -0
  87. package/dist/atlas/error-algebra.d.ts.map +1 -0
  88. package/dist/atlas/error-algebra.js +55 -0
  89. package/dist/atlas/error-algebra.js.map +1 -0
  90. package/dist/atlas/export.d.ts +48 -0
  91. package/dist/atlas/export.d.ts.map +1 -0
  92. package/dist/atlas/export.js +106 -0
  93. package/dist/atlas/export.js.map +1 -0
  94. package/dist/atlas/families.d.ts +14 -0
  95. package/dist/atlas/families.d.ts.map +1 -0
  96. package/dist/atlas/families.js +20 -0
  97. package/dist/atlas/families.js.map +1 -0
  98. package/dist/atlas/index.d.ts +90 -0
  99. package/dist/atlas/index.d.ts.map +1 -0
  100. package/dist/atlas/index.js +69 -0
  101. package/dist/atlas/index.js.map +1 -0
  102. package/dist/atlas/link-prediction.d.ts +71 -0
  103. package/dist/atlas/link-prediction.d.ts.map +1 -0
  104. package/dist/atlas/link-prediction.js +128 -0
  105. package/dist/atlas/link-prediction.js.map +1 -0
  106. package/dist/atlas/model.d.ts +70 -0
  107. package/dist/atlas/model.d.ts.map +1 -0
  108. package/dist/atlas/model.js +26 -0
  109. package/dist/atlas/model.js.map +1 -0
  110. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  112. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  114. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  116. package/dist/atlas/oscillators/bridges-exact.js +227 -0
  117. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  118. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  120. package/dist/atlas/oscillators/bridges-limits.js +342 -0
  121. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  122. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  124. package/dist/atlas/oscillators/dimensions.js +34 -0
  125. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  126. package/dist/atlas/oscillators/index.d.ts +38 -0
  127. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  128. package/dist/atlas/oscillators/index.js +37 -0
  129. package/dist/atlas/oscillators/index.js.map +1 -0
  130. package/dist/atlas/oscillators/models.d.ts +25 -0
  131. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  132. package/dist/atlas/oscillators/models.js +160 -0
  133. package/dist/atlas/oscillators/models.js.map +1 -0
  134. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  135. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  136. package/dist/atlas/oscillators/rejections.js +54 -0
  137. package/dist/atlas/oscillators/rejections.js.map +1 -0
  138. package/dist/atlas/path-bound.d.ts +143 -0
  139. package/dist/atlas/path-bound.d.ts.map +1 -0
  140. package/dist/atlas/path-bound.js +268 -0
  141. package/dist/atlas/path-bound.js.map +1 -0
  142. package/dist/atlas/poster/associations.d.ts +66 -0
  143. package/dist/atlas/poster/associations.d.ts.map +1 -0
  144. package/dist/atlas/poster/associations.js +90 -0
  145. package/dist/atlas/poster/associations.js.map +1 -0
  146. package/dist/atlas/poster/derivations.d.ts +156 -0
  147. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  148. package/dist/atlas/poster/derivations.js +430 -0
  149. package/dist/atlas/poster/derivations.js.map +1 -0
  150. package/dist/atlas/poster/statements.d.ts +198 -0
  151. package/dist/atlas/poster/statements.d.ts.map +1 -0
  152. package/dist/atlas/poster/statements.js +365 -0
  153. package/dist/atlas/poster/statements.js.map +1 -0
  154. package/dist/atlas/public.d.ts +26 -0
  155. package/dist/atlas/public.d.ts.map +1 -0
  156. package/dist/atlas/public.js +21 -0
  157. package/dist/atlas/public.js.map +1 -0
  158. package/dist/atlas/regime.d.ts +171 -0
  159. package/dist/atlas/regime.d.ts.map +1 -0
  160. package/dist/atlas/regime.js +309 -0
  161. package/dist/atlas/regime.js.map +1 -0
  162. package/dist/atlas/serialize.d.ts +50 -0
  163. package/dist/atlas/serialize.d.ts.map +1 -0
  164. package/dist/atlas/serialize.js +180 -0
  165. package/dist/atlas/serialize.js.map +1 -0
  166. package/dist/atlas/statement.d.ts +165 -0
  167. package/dist/atlas/statement.d.ts.map +1 -0
  168. package/dist/atlas/statement.js +176 -0
  169. package/dist/atlas/statement.js.map +1 -0
  170. package/dist/atlas/types.d.ts +308 -0
  171. package/dist/atlas/types.d.ts.map +1 -0
  172. package/dist/atlas/types.js +61 -0
  173. package/dist/atlas/types.js.map +1 -0
  174. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  176. package/dist/atlas/waves/bridges-closure.js +223 -0
  177. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  178. package/dist/atlas/waves/bridges.d.ts +49 -0
  179. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  180. package/dist/atlas/waves/bridges.js +265 -0
  181. package/dist/atlas/waves/bridges.js.map +1 -0
  182. package/dist/atlas/waves/index.d.ts +16 -0
  183. package/dist/atlas/waves/index.d.ts.map +1 -0
  184. package/dist/atlas/waves/index.js +23 -0
  185. package/dist/atlas/waves/index.js.map +1 -0
  186. package/dist/atlas/waves/models.d.ts +29 -0
  187. package/dist/atlas/waves/models.d.ts.map +1 -0
  188. package/dist/atlas/waves/models.js +127 -0
  189. package/dist/atlas/waves/models.js.map +1 -0
  190. package/dist/atlas/waves/numerics.d.ts +149 -0
  191. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  192. package/dist/atlas/waves/numerics.js +218 -0
  193. package/dist/atlas/waves/numerics.js.map +1 -0
  194. package/dist/atlas/witness-artifact.d.ts +65 -0
  195. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  196. package/dist/atlas/witness-artifact.js +78 -0
  197. package/dist/atlas/witness-artifact.js.map +1 -0
  198. package/dist/atlas/witness-numeric.d.ts +81 -0
  199. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  200. package/dist/atlas/witness-numeric.js +105 -0
  201. package/dist/atlas/witness-numeric.js.map +1 -0
  202. package/dist/atlas/witness-result.d.ts +77 -0
  203. package/dist/atlas/witness-result.d.ts.map +1 -0
  204. package/dist/atlas/witness-result.js +39 -0
  205. package/dist/atlas/witness-result.js.map +1 -0
  206. package/dist/atlas/witness-specs.d.ts +110 -0
  207. package/dist/atlas/witness-specs.d.ts.map +1 -0
  208. package/dist/atlas/witness-specs.js +372 -0
  209. package/dist/atlas/witness-specs.js.map +1 -0
  210. package/dist/atlas/witness-symbolic.d.ts +79 -0
  211. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  212. package/dist/atlas/witness-symbolic.js +140 -0
  213. package/dist/atlas/witness-symbolic.js.map +1 -0
  214. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  216. package/dist/atlas/witnesses/quantum-support.js +48 -0
  217. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  218. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  219. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  220. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  221. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  222. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  223. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  224. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  225. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  226. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  227. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  228. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  229. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  230. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  231. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  232. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  233. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  234. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  235. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  236. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  237. package/dist/bridges/bridge-equations.d.ts +2 -1
  238. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  239. package/dist/bridges/bridge-equations.js +3 -2
  240. package/dist/bridges/bridge-equations.js.map +1 -1
  241. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  244. package/dist/bridges/equations/_be-helpers.js +2 -2
  245. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  246. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +88 -58
  247. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  248. package/dist/bridges/equations/be-35-conformal-bootstrap.js +102 -62
  249. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  250. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  251. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  252. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  253. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  254. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  255. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  256. package/dist/bridges/gravitational-lensing.js.map +1 -1
  257. package/dist/bridges/index.d.ts +125 -7
  258. package/dist/bridges/index.d.ts.map +1 -1
  259. package/dist/bridges/index.js +483 -20
  260. package/dist/bridges/index.js.map +1 -1
  261. package/dist/bridges/perihelion-precession.d.ts +10 -0
  262. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  263. package/dist/bridges/perihelion-precession.js.map +1 -1
  264. package/dist/bridges/rhs-registry.js +2 -2
  265. package/dist/canonical/canonical-equation.d.ts +15 -0
  266. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  267. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  268. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  269. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  270. package/dist/canonical/entries/atomic.js +23 -0
  271. package/dist/canonical/entries/atomic.js.map +1 -1
  272. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  273. package/dist/canonical/entries/nonmonomial.js +93 -0
  274. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  275. package/dist/canonical/normal-form.js.map +1 -1
  276. package/dist/canonical/residual.d.ts +28 -0
  277. package/dist/canonical/residual.d.ts.map +1 -0
  278. package/dist/canonical/residual.js +31 -0
  279. package/dist/canonical/residual.js.map +1 -0
  280. package/dist/cli/command.d.ts +8 -0
  281. package/dist/cli/command.d.ts.map +1 -1
  282. package/dist/cli/command.js +10 -0
  283. package/dist/cli/command.js.map +1 -1
  284. package/dist/cli/commands/atlas.d.ts +3 -0
  285. package/dist/cli/commands/atlas.d.ts.map +1 -0
  286. package/dist/cli/commands/atlas.js +158 -0
  287. package/dist/cli/commands/atlas.js.map +1 -0
  288. package/dist/cli/commands/confront.js.map +1 -1
  289. package/dist/cli/commands/coverage.js +3 -3
  290. package/dist/cli/commands/index.d.ts +3 -0
  291. package/dist/cli/commands/index.d.ts.map +1 -1
  292. package/dist/cli/commands/index.js +3 -0
  293. package/dist/cli/commands/index.js.map +1 -1
  294. package/dist/cli/commands/map.d.ts.map +1 -1
  295. package/dist/cli/commands/map.js +161 -27
  296. package/dist/cli/commands/map.js.map +1 -1
  297. package/dist/cli/commands/path.d.ts +3 -0
  298. package/dist/cli/commands/path.d.ts.map +1 -0
  299. package/dist/cli/commands/path.js +145 -0
  300. package/dist/cli/commands/path.js.map +1 -0
  301. package/dist/cli/commands/recover.d.ts.map +1 -1
  302. package/dist/cli/commands/recover.js +25 -6
  303. package/dist/cli/commands/recover.js.map +1 -1
  304. package/dist/cli/commands/regime.d.ts +14 -0
  305. package/dist/cli/commands/regime.d.ts.map +1 -0
  306. package/dist/cli/commands/regime.js +189 -0
  307. package/dist/cli/commands/regime.js.map +1 -0
  308. package/dist/cli/errors.d.ts.map +1 -1
  309. package/dist/cli/graphs.d.ts.map +1 -1
  310. package/dist/cli/graphs.js +5 -1
  311. package/dist/cli/graphs.js.map +1 -1
  312. package/dist/cli/main.d.ts.map +1 -1
  313. package/dist/cli/main.js +22 -0
  314. package/dist/cli/main.js.map +1 -1
  315. package/dist/cli/output.d.ts +6 -1
  316. package/dist/cli/output.d.ts.map +1 -1
  317. package/dist/cli/output.js.map +1 -1
  318. package/dist/cli/version.js.map +1 -1
  319. package/dist/cli-api.d.ts +16 -0
  320. package/dist/cli-api.d.ts.map +1 -1
  321. package/dist/cli-api.js +18 -0
  322. package/dist/cli-api.js.map +1 -1
  323. package/dist/composition/axis-audit.js.map +1 -1
  324. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  325. package/dist/composition/bridge-prediction.js +0 -0
  326. package/dist/composition/bridge-prediction.js.map +1 -1
  327. package/dist/composition/canonical-graph.d.ts +2 -2
  328. package/dist/composition/canonical-graph.js +2 -2
  329. package/dist/composition/canonical-graph.js.map +1 -1
  330. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  331. package/dist/composition/compose-symbolic.js.map +1 -1
  332. package/dist/composition/compose.d.ts.map +1 -1
  333. package/dist/composition/compose.js +80 -1
  334. package/dist/composition/compose.js.map +1 -1
  335. package/dist/composition/consequence.js.map +1 -1
  336. package/dist/composition/discovery.js.map +1 -1
  337. package/dist/composition/edge.d.ts +64 -0
  338. package/dist/composition/edge.d.ts.map +1 -1
  339. package/dist/composition/edge.js +29 -0
  340. package/dist/composition/edge.js.map +1 -1
  341. package/dist/composition/edges/calibration.d.ts.map +1 -1
  342. package/dist/composition/edges/calibration.js +46 -0
  343. package/dist/composition/edges/calibration.js.map +1 -1
  344. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  345. package/dist/composition/edges/catalog-quantum.js +9 -0
  346. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  347. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  348. package/dist/composition/edges/catalog-tranche.js +18 -0
  349. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  350. package/dist/composition/enumerate.js.map +1 -1
  351. package/dist/composition/explain.js.map +1 -1
  352. package/dist/composition/expr-eval.d.ts.map +1 -1
  353. package/dist/composition/expr-eval.js.map +1 -1
  354. package/dist/composition/expr-simplify.d.ts +13 -0
  355. package/dist/composition/expr-simplify.d.ts.map +1 -1
  356. package/dist/composition/expr-simplify.js +25 -0
  357. package/dist/composition/expr-simplify.js.map +1 -1
  358. package/dist/composition/expr-subst.js.map +1 -1
  359. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  360. package/dist/composition/graph-viz.d.ts +118 -1
  361. package/dist/composition/graph-viz.d.ts.map +1 -1
  362. package/dist/composition/graph-viz.js +189 -6
  363. package/dist/composition/graph-viz.js.map +1 -1
  364. package/dist/composition/identifiability.js.map +1 -1
  365. package/dist/composition/index.d.ts +4 -2
  366. package/dist/composition/index.d.ts.map +1 -1
  367. package/dist/composition/index.js +2 -1
  368. package/dist/composition/index.js.map +1 -1
  369. package/dist/composition/poster-source.d.ts +153 -0
  370. package/dist/composition/poster-source.d.ts.map +1 -0
  371. package/dist/composition/poster-source.js +183 -0
  372. package/dist/composition/poster-source.js.map +1 -0
  373. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  374. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  375. package/dist/composition/probe/backend-protocol.js +9 -2
  376. package/dist/composition/probe/backend-protocol.js.map +1 -1
  377. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  378. package/dist/composition/probe/limits.js.map +1 -1
  379. package/dist/composition/probe/pipeline.js.map +1 -1
  380. package/dist/composition/probe/problem.js.map +1 -1
  381. package/dist/composition/probe/residual.d.ts.map +1 -1
  382. package/dist/composition/probe/residual.js.map +1 -1
  383. package/dist/composition/probe/search-budget.js.map +1 -1
  384. package/dist/composition/proposed-bridges.d.ts +2 -2
  385. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  386. package/dist/composition/proposed-bridges.js +1 -1
  387. package/dist/composition/proposed-bridges.js.map +1 -1
  388. package/dist/composition/retrodiction.js.map +1 -1
  389. package/dist/composition/uncertainty.d.ts +52 -2
  390. package/dist/composition/uncertainty.d.ts.map +1 -1
  391. package/dist/composition/uncertainty.js +38 -2
  392. package/dist/composition/uncertainty.js.map +1 -1
  393. package/dist/composition/user-equation.d.ts.map +1 -1
  394. package/dist/core/flux-rules.d.ts.map +1 -1
  395. package/dist/core/flux-rules.js.map +1 -1
  396. package/dist/core/labeled-tensor.d.ts.map +1 -1
  397. package/dist/core/regime-registry.d.ts.map +1 -1
  398. package/dist/core/regime-rule-install.js.map +1 -1
  399. package/dist/core/tensor.d.ts.map +1 -1
  400. package/dist/core/tensor.js.map +1 -1
  401. package/dist/core/types.d.ts.map +1 -1
  402. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  403. package/dist/dimensional/ast-types.d.ts +31 -1
  404. package/dist/dimensional/ast-types.d.ts.map +1 -1
  405. package/dist/dimensional/bridge-check.d.ts +1 -1
  406. package/dist/dimensional/bridge-check.js +1 -1
  407. package/dist/dimensional/buckingham.d.ts.map +1 -1
  408. package/dist/dimensional/connection.d.ts +2 -0
  409. package/dist/dimensional/connection.d.ts.map +1 -1
  410. package/dist/dimensional/connection.js +2 -0
  411. package/dist/dimensional/connection.js.map +1 -1
  412. package/dist/dimensional/curvature-composite.d.ts +5 -3
  413. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  414. package/dist/dimensional/curvature-composite.js +1 -0
  415. package/dist/dimensional/curvature-composite.js.map +1 -1
  416. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  417. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  418. package/dist/dimensional/curvature-invariants.js +2 -0
  419. package/dist/dimensional/curvature-invariants.js.map +1 -1
  420. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  421. package/dist/dimensional/einstein-equation.d.ts +3 -3
  422. package/dist/dimensional/einstein-equation.js +3 -3
  423. package/dist/dimensional/errors.d.ts.map +1 -1
  424. package/dist/dimensional/metric.d.ts +5 -2
  425. package/dist/dimensional/metric.d.ts.map +1 -1
  426. package/dist/dimensional/metric.js +5 -2
  427. package/dist/dimensional/metric.js.map +1 -1
  428. package/dist/dimensional/tensor-trace.js.map +1 -1
  429. package/dist/dimensional/validator-registry.js.map +1 -1
  430. package/dist/dimensional/validator.d.ts +3 -2
  431. package/dist/dimensional/validator.d.ts.map +1 -1
  432. package/dist/dimensional/validator.js +23 -4
  433. package/dist/dimensional/validator.js.map +1 -1
  434. package/dist/index.d.ts +4 -3
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +4 -1
  437. package/dist/index.js.map +1 -1
  438. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  439. package/dist/numerical/curvature-lowering-helpers.js +142 -1
  440. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  441. package/dist/numerical/errors.d.ts.map +1 -1
  442. package/dist/numerical/errors.js.map +1 -1
  443. package/dist/numerical/float64-engine.d.ts.map +1 -1
  444. package/dist/numerical/float64-engine.js +51 -24
  445. package/dist/numerical/float64-engine.js.map +1 -1
  446. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  447. package/dist/numerical/formula-dimension.js.map +1 -1
  448. package/dist/numerical/formula.d.ts.map +1 -1
  449. package/dist/numerical/formula.js.map +1 -1
  450. package/dist/numerical/geometrized.d.ts.map +1 -1
  451. package/dist/numerical/gl4-integrator.d.ts +3 -3
  452. package/dist/numerical/gl4-integrator.js +3 -3
  453. package/dist/numerical/killing.d.ts +47 -5
  454. package/dist/numerical/killing.d.ts.map +1 -1
  455. package/dist/numerical/killing.js +41 -3
  456. package/dist/numerical/killing.js.map +1 -1
  457. package/dist/numerical/klein-gordon.d.ts +2 -2
  458. package/dist/numerical/klein-gordon.js +2 -2
  459. package/dist/numerical/lowering.d.ts +2 -2
  460. package/dist/numerical/lowering.d.ts.map +1 -1
  461. package/dist/numerical/lowering.js +5 -3
  462. package/dist/numerical/lowering.js.map +1 -1
  463. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  464. package/dist/numerical/mathts-engine.js.map +1 -1
  465. package/dist/numerical/metric-inverse.js.map +1 -1
  466. package/dist/numerical/perihelion-finder.d.ts +15 -13
  467. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  468. package/dist/numerical/perihelion-finder.js +15 -13
  469. package/dist/numerical/perihelion-finder.js.map +1 -1
  470. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  471. package/dist/numerical/weyl-lowering.js +90 -40
  472. package/dist/numerical/weyl-lowering.js.map +1 -1
  473. package/package.json +121 -104
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Atlas Phase 6, S6.4 — the versioned export: one combined JSON artifact for
3
+ * every family, and a JSON-LD projection with stable ids, QUDT quantity kinds
4
+ * where they genuinely resolve, and PROV-O-shaped provenance.
5
+ *
6
+ * Design note: `docs/planning/Atlas-Phase-6-Design.md` §2.
7
+ *
8
+ * Pure: no I/O. The QUDT resolution table (`data/atlas/qudt-resolution.json`) is
9
+ * passed IN by the emitter, so this module cannot drift from the table it was
10
+ * given and never reads the tree.
11
+ *
12
+ * ## Why the QUDT table is keyed by (model, parameter), never by name
13
+ *
14
+ * `kappa` is a SPRING CONSTANT in `model-chain` and a THERMAL CONDUCTIVITY in
15
+ * `model-heat`. A name-keyed table would assign one of them the other's
16
+ * quantity kind — a notation collision in the atlas's own data.
17
+ *
18
+ * ## Schema version
19
+ *
20
+ * The combined artifact keeps `schemaVersion: '0'`. Phase 4 added one OPTIONAL
21
+ * field (`formalRef`); an additive optional field is not a breaking change, and
22
+ * the plan bumps to `v1` only on one.
23
+ *
24
+ * @module atlas/export
25
+ * @internal
26
+ */
27
+ import { toAtlasJson } from './serialize.js';
28
+ /** The stable id namespace. A URN, so no id depends on a host that could move. @internal */
29
+ export const ATLAS_ID_PREFIX = 'urn:upt:atlas:';
30
+ const modelIri = (id) => `${ATLAS_ID_PREFIX}model:${id}`;
31
+ const bridgeIri = (id) => `${ATLAS_ID_PREFIX}bridge:${id}`;
32
+ /** The combined artifact: every family's record under one version stamp. @internal */
33
+ export function toCombinedAtlasJson(families, packageVersion) {
34
+ return {
35
+ schemaVersion: '0',
36
+ packageVersion,
37
+ families: families.map((f) => {
38
+ const { packageVersion: _dropped, ...record } = toAtlasJson(f, packageVersion);
39
+ return record;
40
+ }),
41
+ };
42
+ }
43
+ /**
44
+ * The JSON-LD projection.
45
+ *
46
+ * @throws Error when a model parameter has NO entry in the resolution table — an
47
+ * unlisted parameter is a gap in the table, and exporting it silently blank
48
+ * would be indistinguishable from a deliberate "no QUDT kind resolves".
49
+ * @internal
50
+ */
51
+ export function toAtlasJsonLd(families, packageVersion, qudt) {
52
+ const graph = [];
53
+ for (const family of families) {
54
+ for (const m of family.models) {
55
+ graph.push({
56
+ '@id': modelIri(m.id),
57
+ '@type': 'upt:Model',
58
+ 'upt:family': family.family,
59
+ 'upt:dynamics': m.dynamics,
60
+ 'upt:parameter': m.parameters.map((p) => {
61
+ const key = `${m.id}/${p.name}`;
62
+ if (!(key in qudt.entries)) {
63
+ throw new Error(`toAtlasJsonLd: no QUDT resolution entry for ${key}`);
64
+ }
65
+ const kind = qudt.entries[key];
66
+ return {
67
+ 'upt:symbol': p.name,
68
+ 'upt:dimension': [p.dim.L, p.dim.M, p.dim.T, p.dim.I, p.dim.Theta, p.dim.N, p.dim.J],
69
+ ...(kind === null ? {} : { 'qudt:hasQuantityKind': { '@id': kind } }),
70
+ };
71
+ }),
72
+ ...(m.canonicalRefs.length === 0 ? {} : { 'upt:canonicalRef': [...m.canonicalRefs] }),
73
+ });
74
+ }
75
+ for (const b of family.bridges) {
76
+ graph.push({
77
+ '@id': bridgeIri(b.id),
78
+ '@type': ['upt:Bridge', 'prov:Entity'],
79
+ 'upt:relation': b.relation,
80
+ 'upt:premise': b.premises.map((p) => ({ '@id': modelIri(p) })),
81
+ 'upt:conclusion': { '@id': modelIri(b.conclusion) },
82
+ // PROV-O shape: the bridge's claim is derived from its premises, and
83
+ // its sources are the citations it states.
84
+ 'prov:wasDerivedFrom': b.premises.map((p) => ({ '@id': modelIri(p) })),
85
+ 'dcterms:source': [...b.citations],
86
+ 'upt:reviewStatus': b.reviewStatus,
87
+ 'upt:witness': b.witnesses.map((w) => ({ 'upt:id': w.id, 'upt:kind': w.kind, 'upt:test': w.test })),
88
+ ...(b.formalRef === undefined
89
+ ? {}
90
+ : { 'upt:formalRef': { 'upt:statement': b.formalRef.statement, 'upt:fidelity': b.formalRef.fidelity } }),
91
+ });
92
+ }
93
+ }
94
+ return {
95
+ '@context': {
96
+ upt: `${ATLAS_ID_PREFIX}vocab:`,
97
+ prov: 'http://www.w3.org/ns/prov#',
98
+ qudt: 'http://qudt.org/schema/qudt/',
99
+ dcterms: 'http://purl.org/dc/terms/',
100
+ },
101
+ '@id': `${ATLAS_ID_PREFIX}release:${packageVersion}`,
102
+ 'upt:qudtProbedAt': qudt.probedAt,
103
+ '@graph': graph,
104
+ };
105
+ }
106
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/atlas/export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Every registered atlas family, in the order they were built.
3
+ *
4
+ * Gates that must cover the WHOLE atlas (the evidence rule, admission, the
5
+ * JSON artifacts) iterate this list rather than naming one family, so a new
6
+ * family is checked the moment it is registered here. A gate that named
7
+ * `OSCILLATOR_FAMILY` directly would pass forever over a family it never read.
8
+ *
9
+ * @module atlas/families
10
+ */
11
+ import type { AtlasFamily } from './oscillators/index.js';
12
+ /** All atlas families. @internal */
13
+ export declare const ATLAS_FAMILIES: readonly AtlasFamily[];
14
+ //# sourceMappingURL=families.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"families.d.ts","sourceRoot":"","sources":["../../src/atlas/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,oCAAoC;AACpC,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAIhD,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Every registered atlas family, in the order they were built.
3
+ *
4
+ * Gates that must cover the WHOLE atlas (the evidence rule, admission, the
5
+ * JSON artifacts) iterate this list rather than naming one family, so a new
6
+ * family is checked the moment it is registered here. A gate that named
7
+ * `OSCILLATOR_FAMILY` directly would pass forever over a family it never read.
8
+ *
9
+ * @module atlas/families
10
+ */
11
+ import { DIFFUSION_FAMILY } from './diffusion/index.js';
12
+ import { OSCILLATOR_FAMILY } from './oscillators/index.js';
13
+ import { WAVES_FAMILY } from './waves/index.js';
14
+ /** All atlas families. @internal */
15
+ export const ATLAS_FAMILIES = [
16
+ OSCILLATOR_FAMILY,
17
+ DIFFUSION_FAMILY,
18
+ WAVES_FAMILY,
19
+ ];
20
+ //# sourceMappingURL=families.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"families.js","sourceRoot":"","sources":["../../src/atlas/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,oCAAoC;AACpC,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,iBAAiB;IACjB,gBAAgB;IAChB,YAAY;CACb,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Atlas Phase 0 barrel — the oscillator pilot.
3
+ *
4
+ * Reachable only through the `universal-physics-tensor/atlas` subpath. Not
5
+ * re-exported from the root `universal-physics-tensor` entry before Phase 6.
6
+ *
7
+ * All symbols are `@internal`: these are throwaway pilot types (design note
8
+ * §4), not a stability contract.
9
+ *
10
+ * ⚠ **THE INVARIANT IS: NEVER THE BARREL.** `src/bridges/` and
11
+ * `src/composition/` must not import THIS FILE — `src/atlas/` imports
12
+ * `bridges/*` and `composition/*`, so a barrel import closes a cycle that
13
+ * `bun run docs:deps` reports. Importing a leaf module (`./types.js`,
14
+ * `./regime.js`, `./composition-table.js`, …) is fine and the tree has always
15
+ * done it, VALUES INCLUDED: `bridges/index.ts:40`, `composition/compose.ts`,
16
+ * `composition/graph-viz.ts`.
17
+ *
18
+ * This comment used to say "TYPES ONLY, and only from `src/atlas/types.js`",
19
+ * which the tree HAS NEVER SATISFIED while `docs:deps` reported 0 cycles.
20
+ * A rule stricter than the invariant it protects gets silently violated by
21
+ * correct code, and the next reader either believes a false description of
22
+ * the tree or "fixes" code that was right. Corrected 2026-09-22 against the
23
+ * same measurement that corrected `CLAUDE.md`.
24
+ *
25
+ * @module atlas
26
+ */
27
+ export type { RelationType, EvidenceTag, LimitCharacter, RegimeInequality, Regime, ApproximationBound, Witness, Counterexample, AtlasBridge, AtlasRejection, FormalFidelity, FormalRef, } from './types.js';
28
+ export { MissingHorizonError, MissingLipschitzError } from './types.js';
29
+ export { ALL_EVIDENCE_TAGS } from './types.js';
30
+ export { deriveEvidence, deriveEvidenceForVerdict, NO_PASSING_WITNESSES } from './derive-evidence.js';
31
+ export type { CounterexampleLike, EvidenceInput, MembershipVerdict, RejectionLike, WitnessLike, } from './derive-evidence.js';
32
+ export { composeRelation, COMPOSITION_TABLE, NO_COMPOSITE_CLAIM } from './composition-table.js';
33
+ export type { CompositionResult, NoCompositeClaim } from './composition-table.js';
34
+ export { boundPath, findPath } from './path-bound.js';
35
+ export type { NoClaimReason, PathBoundClaim, PathBoundResult, PathNoClaim } from './path-bound.js';
36
+ export type { AtlasModel, ModelId } from './model.js';
37
+ export { composeBounds, composeBoundPath, IDENTITY_BOUND } from './error-algebra.js';
38
+ export type { BoundPair, ComposedPath } from './error-algebra.js';
39
+ export { deriveRegimeGroups, regimeHolds } from './regime.js';
40
+ export type { RegimeCheck } from './regime.js';
41
+ export { CAPACITANCE, CUBIC_STIFFNESS, DAMPING, INDUCTANCE, RESISTANCE, SPRING_CONSTANT, } from './oscillators/dimensions.js';
42
+ export { ATLAS_MODELS, getAtlasModel } from './oscillators/models.js';
43
+ export { OSCILLATOR_FAMILY } from './oscillators/index.js';
44
+ export type { AtlasFamily } from './oscillators/index.js';
45
+ export { toAtlasJson, ATLAS_RECORD_SCHEMA_VERSION } from './serialize.js';
46
+ export type { AtlasRecordJson, JsonValue } from './serialize.js';
47
+ export { blockingFindings, checkApplicability, } from './applicability.js';
48
+ export type { ApplicabilityFinding, ApplicabilityFindingKind, ApplicabilityInput, ApplicabilitySeverity, } from './applicability.js';
49
+ export { passingWitnessIds } from './witness-result.js';
50
+ export type { UnresolvedReason, WitnessRunResult, WitnessStatus, } from './witness-result.js';
51
+ export { ATLAS_FAMILIES } from './families.js';
52
+ export { runLinkPrediction } from './link-prediction.js';
53
+ export { ATLAS_ID_PREFIX, toAtlasJsonLd, toCombinedAtlasJson } from './export.js';
54
+ export type { QudtResolution } from './export.js';
55
+ export type { LinkPredictionResult, LinkPredictionTrial } from './link-prediction.js';
56
+ export { DIFFUSION_FAMILY } from './diffusion/index.js';
57
+ export { BRIDGE_HEAT_DIFFUSION, BRIDGE_SCHRODINGER_DIFFUSION, BRIDGE_WALK_DIFFUSION, DIFFUSION_BRIDGES, } from './diffusion/bridges.js';
58
+ export { DIFFUSION_MODELS, getDiffusionModel } from './diffusion/models.js';
59
+ export { WAVES_FAMILY } from './waves/index.js';
60
+ export { BRIDGE_KLEIN_GORDON_WAVE, BRIDGE_SOUND_SPEED, BRIDGE_STRING_WAVE, BRIDGE_WAVE_DALEMBERT, WAVE_BRIDGES, } from './waves/bridges.js';
61
+ export { WAVE_MODELS } from './waves/models.js';
62
+ export { DIFFUSION_CLOSURE_BRIDGES } from './diffusion/bridges-closure.js';
63
+ export { WAVE_CLOSURE_BRIDGES } from './waves/bridges-closure.js';
64
+ export { FAILURE_KINDS, HELD_OUT_FAMILY, HELD_OUT_MARKERS } from './benchmark/types.js';
65
+ export type { Authorship, BenchmarkItem, BenchmarkSplit, FailureKind } from './benchmark/types.js';
66
+ export { checkRenamedVariants, findCrossSplitLeakage, leakageKey } from './benchmark/leakage.js';
67
+ export type { LeakageCollision, VariantProblem } from './benchmark/leakage.js';
68
+ export { ABLATION_CONFIGS, FULL_CONFIG, runAtlasCondition, runAtlasOnItem, } from './benchmark/run-atlas.js';
69
+ export type { AtlasRunConfig, AtlasVerdict } from './benchmark/run-atlas.js';
70
+ export { rankBySymbolOverlap, rankByStructure, rankByTextOverlap, recallAtK, } from './benchmark/baselines.js';
71
+ export type { CorpusRecord, Ranking, RetrievalQuery } from './benchmark/baselines.js';
72
+ export { parseBackendResponse } from './benchmark/backend-shapes.js';
73
+ export { cohensKappa, mcnemar, pairedDifferenceInterval, powerReport, wilsonInterval, Z95, } from './benchmark/stats.js';
74
+ export type { Interval, McNemarResult, PairedTable, PowerReport } from './benchmark/stats.js';
75
+ export { pairedRejection, scoreAblation, scoreCondition } from './benchmark/study.js';
76
+ export type { AblationRow, ConditionAnswer, ConditionMetrics, ItemLabel, PairedRejection, } from './benchmark/study.js';
77
+ export type { BackendShapeError, BenchmarkBackendRequest, BenchmarkBackendResponse, } from './benchmark/backend-shapes.js';
78
+ export { runWitnessRegistry, artifactPassingWitnessIds } from './witness-artifact.js';
79
+ export type { WitnessResultRecord, WitnessResultsArtifact } from './witness-artifact.js';
80
+ export { WITNESS_REGISTRY } from './witness-specs.js';
81
+ export type { RegisteredNumericWitness, RegisteredSymbolicWitness, RegisteredWitness, } from './witness-specs.js';
82
+ export { runSymbolicWitness } from './witness-symbolic.js';
83
+ export type { SymbolicSimplifier, SymbolicWitnessSpec } from './witness-symbolic.js';
84
+ export { runNumericWitness } from './witness-numeric.js';
85
+ export type { Convergence, NumericWitnessRunResult, NumericWitnessSpec, } from './witness-numeric.js';
86
+ export { contextUnion, statementContextUnion } from './statement.js';
87
+ export type { Context, ContextUnionFormed, ContextUnionRefused, ContextUnionResult, NoUnionReason, Statement, StatementId, } from './statement.js';
88
+ export { composeDerivations, composeDerivationsOrThrow, DerivationCompositionError, makeDerivation, } from './derivation.js';
89
+ export type { CompositeFormed, CompositeRefused, Derivation, DerivationCompositionResult, DerivationId, DerivationSpec, NoCompositeReason, } from './derivation.js';
90
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/atlas/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Atlas Phase 0 barrel — the oscillator pilot.
3
+ *
4
+ * Reachable only through the `universal-physics-tensor/atlas` subpath. Not
5
+ * re-exported from the root `universal-physics-tensor` entry before Phase 6.
6
+ *
7
+ * All symbols are `@internal`: these are throwaway pilot types (design note
8
+ * §4), not a stability contract.
9
+ *
10
+ * ⚠ **THE INVARIANT IS: NEVER THE BARREL.** `src/bridges/` and
11
+ * `src/composition/` must not import THIS FILE — `src/atlas/` imports
12
+ * `bridges/*` and `composition/*`, so a barrel import closes a cycle that
13
+ * `bun run docs:deps` reports. Importing a leaf module (`./types.js`,
14
+ * `./regime.js`, `./composition-table.js`, …) is fine and the tree has always
15
+ * done it, VALUES INCLUDED: `bridges/index.ts:40`, `composition/compose.ts`,
16
+ * `composition/graph-viz.ts`.
17
+ *
18
+ * This comment used to say "TYPES ONLY, and only from `src/atlas/types.js`",
19
+ * which the tree HAS NEVER SATISFIED while `docs:deps` reported 0 cycles.
20
+ * A rule stricter than the invariant it protects gets silently violated by
21
+ * correct code, and the next reader either believes a false description of
22
+ * the tree or "fixes" code that was right. Corrected 2026-09-22 against the
23
+ * same measurement that corrected `CLAUDE.md`.
24
+ *
25
+ * @module atlas
26
+ */
27
+ export { MissingHorizonError, MissingLipschitzError } from './types.js';
28
+ export { ALL_EVIDENCE_TAGS } from './types.js';
29
+ // The Phase 1–3 core. Absent from this barrel until the S6.7 API review found
30
+ // the gap: subpath users could not reach evidence derivation, the composition
31
+ // table or path bounding at all (tests/atlas/barrel-completeness.test.ts).
32
+ export { deriveEvidence, deriveEvidenceForVerdict, NO_PASSING_WITNESSES } from './derive-evidence.js';
33
+ export { composeRelation, COMPOSITION_TABLE, NO_COMPOSITE_CLAIM } from './composition-table.js';
34
+ export { boundPath, findPath } from './path-bound.js';
35
+ export { composeBounds, composeBoundPath, IDENTITY_BOUND } from './error-algebra.js';
36
+ export { deriveRegimeGroups, regimeHolds } from './regime.js';
37
+ export { CAPACITANCE, CUBIC_STIFFNESS, DAMPING, INDUCTANCE, RESISTANCE, SPRING_CONSTANT, } from './oscillators/dimensions.js';
38
+ export { ATLAS_MODELS, getAtlasModel } from './oscillators/models.js';
39
+ export { OSCILLATOR_FAMILY } from './oscillators/index.js';
40
+ export { toAtlasJson, ATLAS_RECORD_SCHEMA_VERSION } from './serialize.js';
41
+ export { blockingFindings, checkApplicability, } from './applicability.js';
42
+ export { passingWitnessIds } from './witness-result.js';
43
+ export { ATLAS_FAMILIES } from './families.js';
44
+ export { runLinkPrediction } from './link-prediction.js';
45
+ export { ATLAS_ID_PREFIX, toAtlasJsonLd, toCombinedAtlasJson } from './export.js';
46
+ export { DIFFUSION_FAMILY } from './diffusion/index.js';
47
+ export { BRIDGE_HEAT_DIFFUSION, BRIDGE_SCHRODINGER_DIFFUSION, BRIDGE_WALK_DIFFUSION, DIFFUSION_BRIDGES, } from './diffusion/bridges.js';
48
+ export { DIFFUSION_MODELS, getDiffusionModel } from './diffusion/models.js';
49
+ export { WAVES_FAMILY } from './waves/index.js';
50
+ export { BRIDGE_KLEIN_GORDON_WAVE, BRIDGE_SOUND_SPEED, BRIDGE_STRING_WAVE, BRIDGE_WAVE_DALEMBERT, WAVE_BRIDGES, } from './waves/bridges.js';
51
+ export { WAVE_MODELS } from './waves/models.js';
52
+ export { DIFFUSION_CLOSURE_BRIDGES } from './diffusion/bridges-closure.js';
53
+ export { WAVE_CLOSURE_BRIDGES } from './waves/bridges-closure.js';
54
+ // Phase 5 benchmark: the PURE parts only. `benchmark/loader.ts` reads files and is
55
+ // deliberately not re-exported, so importing this barrel never pulls in file I/O.
56
+ export { FAILURE_KINDS, HELD_OUT_FAMILY, HELD_OUT_MARKERS } from './benchmark/types.js';
57
+ export { checkRenamedVariants, findCrossSplitLeakage, leakageKey } from './benchmark/leakage.js';
58
+ export { ABLATION_CONFIGS, FULL_CONFIG, runAtlasCondition, runAtlasOnItem, } from './benchmark/run-atlas.js';
59
+ export { rankBySymbolOverlap, rankByStructure, rankByTextOverlap, recallAtK, } from './benchmark/baselines.js';
60
+ export { parseBackendResponse } from './benchmark/backend-shapes.js';
61
+ export { cohensKappa, mcnemar, pairedDifferenceInterval, powerReport, wilsonInterval, Z95, } from './benchmark/stats.js';
62
+ export { pairedRejection, scoreAblation, scoreCondition } from './benchmark/study.js';
63
+ export { runWitnessRegistry, artifactPassingWitnessIds } from './witness-artifact.js';
64
+ export { WITNESS_REGISTRY } from './witness-specs.js';
65
+ export { runSymbolicWitness } from './witness-symbolic.js';
66
+ export { runNumericWitness } from './witness-numeric.js';
67
+ export { contextUnion, statementContextUnion } from './statement.js';
68
+ export { composeDerivations, composeDerivationsOrThrow, DerivationCompositionError, makeDerivation, } from './derivation.js';
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/atlas/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Atlas Phase 6, S6.3 — link prediction over the typed model graph: ONE result,
3
+ * stated as a hypothesis about the representation.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-6-Design.md` §1.
6
+ *
7
+ * The graph: every model in every registered family is a node; every
8
+ * premise→conclusion pair of every bridge is an undirected edge. The test is
9
+ * leave-one-bridge-out: remove a bridge's edges, then ask each predictor to rank
10
+ * the conclusion among every model not already adjacent to the premise. A hit is
11
+ * the held-out conclusion inside the top k.
12
+ *
13
+ * - **structural predictor** — common neighbours in the remaining graph, ties
14
+ * broken by sharing the premise's family, then by id;
15
+ * - **text baseline** — word-token overlap between the models' dynamics and
16
+ * state-space descriptions, ties broken by id.
17
+ *
18
+ * ⚠ **What this result cannot carry.** The graph is small (24 models, 22 pairs)
19
+ * and was curated by the same agent that runs the test, in-distribution. It is a
20
+ * statement about how this representation behaves on its own content — not a
21
+ * discovery claim, not a hub or gap claim, and not evidence about physics the
22
+ * atlas does not contain. ROADMAP Phase 6 asks for it as a hypothesis test, and
23
+ * that is its whole scope. Product A (`src/composition/discovery.ts`) is not
24
+ * touched: a test pins that nothing under `src/atlas/` imports it.
25
+ *
26
+ * @module atlas/link-prediction
27
+ * @internal
28
+ */
29
+ import type { AtlasFamily } from './oscillators/index.js';
30
+ /** One held-out pair and whether each predictor recovered it. @internal */
31
+ export interface LinkPredictionTrial {
32
+ readonly bridgeId: string;
33
+ readonly premise: string;
34
+ readonly conclusion: string;
35
+ /** 1-based rank of the held-out conclusion; Infinity when it was not a candidate. */
36
+ readonly structuralRank: number;
37
+ readonly textRank: number;
38
+ /** How many candidates the conclusion competed against. */
39
+ readonly candidates: number;
40
+ }
41
+ /** The whole leave-one-bridge-out run. @internal */
42
+ export interface LinkPredictionResult {
43
+ readonly k: number;
44
+ readonly trials: readonly LinkPredictionTrial[];
45
+ /**
46
+ * Held-out pairs whose endpoints stay adjacent through ANOTHER bridge. Such a
47
+ * pair is not a missing link — the conclusion cannot even be a candidate — so
48
+ * it is excluded from the trials and counted here instead of silently.
49
+ */
50
+ readonly stillConnected: number;
51
+ readonly structuralHits: number;
52
+ readonly textHits: number;
53
+ /**
54
+ * The hit rate a RANDOM ranking would get: the mean over trials of
55
+ * min(k, candidates)/candidates. On a small graph this is high, and a
56
+ * predictor's recall means nothing until it is read against it.
57
+ */
58
+ readonly chanceRecall: number;
59
+ /** Mean reciprocal rank of the held-out conclusion. */
60
+ readonly structuralMrr: number;
61
+ readonly textMrr: number;
62
+ }
63
+ /**
64
+ * Run leave-one-bridge-out link prediction over the families' model graph.
65
+ *
66
+ * @param families - the atlas families (normally `ATLAS_FAMILIES`).
67
+ * @param k - the depth a hit must fall within (10, as pre-registered for recall).
68
+ * @internal
69
+ */
70
+ export declare function runLinkPrediction(families: readonly AtlasFamily[], k?: number): LinkPredictionResult;
71
+ //# sourceMappingURL=link-prediction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-prediction.d.ts","sourceRoot":"","sources":["../../src/atlas/link-prediction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAsBD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,EAAE,CAAC,SAAK,GAAG,oBAAoB,CAkEhG"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Atlas Phase 6, S6.3 — link prediction over the typed model graph: ONE result,
3
+ * stated as a hypothesis about the representation.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-6-Design.md` §1.
6
+ *
7
+ * The graph: every model in every registered family is a node; every
8
+ * premise→conclusion pair of every bridge is an undirected edge. The test is
9
+ * leave-one-bridge-out: remove a bridge's edges, then ask each predictor to rank
10
+ * the conclusion among every model not already adjacent to the premise. A hit is
11
+ * the held-out conclusion inside the top k.
12
+ *
13
+ * - **structural predictor** — common neighbours in the remaining graph, ties
14
+ * broken by sharing the premise's family, then by id;
15
+ * - **text baseline** — word-token overlap between the models' dynamics and
16
+ * state-space descriptions, ties broken by id.
17
+ *
18
+ * ⚠ **What this result cannot carry.** The graph is small (24 models, 22 pairs)
19
+ * and was curated by the same agent that runs the test, in-distribution. It is a
20
+ * statement about how this representation behaves on its own content — not a
21
+ * discovery claim, not a hub or gap claim, and not evidence about physics the
22
+ * atlas does not contain. ROADMAP Phase 6 asks for it as a hypothesis test, and
23
+ * that is its whole scope. Product A (`src/composition/discovery.ts`) is not
24
+ * touched: a test pins that nothing under `src/atlas/` imports it.
25
+ *
26
+ * @module atlas/link-prediction
27
+ * @internal
28
+ */
29
+ const tokens = (text) => new Set(text.toLowerCase().split(/[^\p{L}\p{N}]+/u).filter((t) => t.length > 0));
30
+ const jaccard = (a, b) => {
31
+ if (a.size === 0 && b.size === 0)
32
+ return 0;
33
+ let inter = 0;
34
+ for (const x of a)
35
+ if (b.has(x))
36
+ inter++;
37
+ return inter / (a.size + b.size - inter);
38
+ };
39
+ /** Rank candidates by descending score list (lexicographic), then ascending id. */
40
+ function rank(candidates, score) {
41
+ return [...candidates].sort((x, y) => {
42
+ const sx = score(x);
43
+ const sy = score(y);
44
+ for (let i = 0; i < sx.length; i++)
45
+ if (sx[i] !== sy[i])
46
+ return sy[i] - sx[i];
47
+ return x < y ? -1 : x > y ? 1 : 0;
48
+ });
49
+ }
50
+ /**
51
+ * Run leave-one-bridge-out link prediction over the families' model graph.
52
+ *
53
+ * @param families - the atlas families (normally `ATLAS_FAMILIES`).
54
+ * @param k - the depth a hit must fall within (10, as pre-registered for recall).
55
+ * @internal
56
+ */
57
+ export function runLinkPrediction(families, k = 10) {
58
+ const models = new Map();
59
+ for (const f of families)
60
+ for (const m of f.models)
61
+ models.set(m.id, m);
62
+ const bridges = families.flatMap((f) => f.bridges);
63
+ const edgesOf = (b) => b.premises.map((p) => [p, b.conclusion]);
64
+ const trials = [];
65
+ let stillConnected = 0;
66
+ for (const held of bridges) {
67
+ // The graph WITHOUT the held-out bridge.
68
+ const adj = new Map();
69
+ for (const id of models.keys())
70
+ adj.set(id, new Set());
71
+ for (const b of bridges) {
72
+ if (b === held)
73
+ continue;
74
+ for (const [u, v] of edgesOf(b)) {
75
+ adj.get(u)?.add(v);
76
+ adj.get(v)?.add(u);
77
+ }
78
+ }
79
+ for (const [premise, conclusion] of edgesOf(held)) {
80
+ const pModel = models.get(premise);
81
+ if (pModel === undefined)
82
+ continue;
83
+ const neighbours = adj.get(premise) ?? new Set();
84
+ if (neighbours.has(conclusion)) {
85
+ stillConnected++;
86
+ continue;
87
+ }
88
+ const candidates = [...models.keys()].filter((id) => id !== premise && !neighbours.has(id));
89
+ const common = (id) => {
90
+ let n = 0;
91
+ for (const x of adj.get(id) ?? [])
92
+ if (neighbours.has(x))
93
+ n++;
94
+ return n;
95
+ };
96
+ const structural = rank(candidates, (id) => [common(id), models.get(id).family === pModel.family ? 1 : 0]);
97
+ const pText = tokens(`${pModel.dynamics} ${pModel.stateSpace}`);
98
+ const text = rank(candidates, (id) => {
99
+ const m = models.get(id);
100
+ return [jaccard(pText, tokens(`${m.dynamics} ${m.stateSpace}`))];
101
+ });
102
+ const at = (list) => {
103
+ const i = list.indexOf(conclusion);
104
+ return i < 0 ? Number.POSITIVE_INFINITY : i + 1;
105
+ };
106
+ trials.push({
107
+ bridgeId: held.id,
108
+ premise,
109
+ conclusion,
110
+ structuralRank: at(structural),
111
+ textRank: at(text),
112
+ candidates: candidates.length,
113
+ });
114
+ }
115
+ }
116
+ const mean = (xs) => (xs.length === 0 ? Number.NaN : xs.reduce((a, b) => a + b, 0) / xs.length);
117
+ return {
118
+ k,
119
+ trials,
120
+ stillConnected,
121
+ structuralHits: trials.filter((t) => t.structuralRank <= k).length,
122
+ textHits: trials.filter((t) => t.textRank <= k).length,
123
+ chanceRecall: mean(trials.map((t) => Math.min(k, t.candidates) / t.candidates)),
124
+ structuralMrr: mean(trials.map((t) => 1 / t.structuralRank)),
125
+ textMrr: mean(trials.map((t) => 1 / t.textRank)),
126
+ };
127
+ }
128
+ //# sourceMappingURL=link-prediction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-prediction.js","sourceRoot":"","sources":["../../src/atlas/link-prediction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The `Model` record — Phase 3's promotion of the Phase 0 `AtlasModel`.
3
+ *
4
+ * ROADMAP Phase 3 makes the MODEL the unit rather than the equation: state
5
+ * space, dynamics, observables, parameters, boundary/initial data, symmetry
6
+ * group where known, regime. This module is the record's new home; the nine
7
+ * Phase 0 fields are carried over unchanged and three are added.
8
+ *
9
+ * **`boundaryData`, `initialData` and `symmetryGroup` are all OPTIONAL**
10
+ * (`docs/planning/Atlas-Phase-3-Design.md` §4, which supersedes the
11
+ * implementation plan's wording on the first two). No boundary or initial
12
+ * data is recorded for the nine oscillator models, so a required field would
13
+ * force either fabricated values or empty ones asserting "there are none".
14
+ * `oscillators/models.ts` refuses exactly that fabrication for `inequalities`.
15
+ * **An absent field says "not recorded"; a present empty one says "there are
16
+ * none", and only one of those is true here** — so the nine literals stay
17
+ * byte-identical and record nothing they do not have a source for.
18
+ *
19
+ * `src/atlas/serialize.ts` enumerates model fields explicitly, so a model
20
+ * carrying none of the three serializes byte-identically to Phase 0's
21
+ * committed `data/atlas/oscillators.json`.
22
+ *
23
+ * @module atlas/model
24
+ */
25
+ import type { DimensionalVariable } from '../dimensional/buckingham.js';
26
+ import type { Regime } from './types.js';
27
+ /**
28
+ * One model in the atlas.
29
+ *
30
+ * The first nine fields are Phase 0's `AtlasModel` verbatim. The last three
31
+ * are the Phase 3 additions and are omitted, never emptied, when unrecorded.
32
+ *
33
+ * @public
34
+ */
35
+ export interface AtlasModel {
36
+ /** `'model-spring'`, `'model-lc'`, … */
37
+ readonly id: string;
38
+ readonly family: string;
39
+ readonly stateSpace: string;
40
+ /** Display form of the ODE. */
41
+ readonly dynamics: string;
42
+ readonly observables: readonly string[];
43
+ /** Dimensioned parameters. */
44
+ readonly parameters: readonly DimensionalVariable[];
45
+ /** `'theta0'`, `'qa'` — declared with the zero dimension. */
46
+ readonly dimensionlessInputs: readonly string[];
47
+ /** `'CE-simple-harmonic-frequency'`, … — must resolve in `CANONICAL_EQUATIONS`. */
48
+ readonly canonicalRefs: readonly string[];
49
+ readonly regime: Regime;
50
+ /**
51
+ * Boundary conditions the model is posed with, each as its stated display
52
+ * form (`'u(0, t) = u(L, t) = 0'`). **Omit when none is recorded** — an
53
+ * empty array would claim the model has no boundary conditions.
54
+ */
55
+ readonly boundaryData?: readonly string[];
56
+ /**
57
+ * Initial conditions the model is posed with (`'x(0) = x₀'`). Omit when
58
+ * none is recorded; see `boundaryData`.
59
+ */
60
+ readonly initialData?: readonly string[];
61
+ /**
62
+ * The symmetry group where it is known, as stated (`'SO(2)'`,
63
+ * `'time translation'`). Omit when unknown — Phase 3 records only
64
+ * symmetries a source states.
65
+ */
66
+ readonly symmetryGroup?: string;
67
+ }
68
+ /** A `Model`'s id, as `CanonicalEquation.model` references it. @internal */
69
+ export type ModelId = string;
70
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/atlas/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,8BAA8B;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,mBAAmB,EAAE,CAAC;IACpD,6DAA6D;IAC7D,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,mFAAmF;IACnF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAGxB;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC"}