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,55 @@
1
+ /**
2
+ * The composition table for `RelationType` — a literal 8×8 matrix.
3
+ *
4
+ * `composeRelation(first, second)` answers: if one bridge asserts `first` and a
5
+ * second bridge asserts `second`, what relation does the chain assert? The
6
+ * argument order is the `First ∘ Second` column order of design note
7
+ * `docs/planning/Atlas-Phase-1-Design.md` §2.1.
8
+ *
9
+ * **The table is a deliberate UNDER-approximation of Blueprint v2 §4.2.** Every
10
+ * cell not named in §2.1 is `'no-composite-claim'`, because a wrong composite
11
+ * type is a false physical claim while silence is only silence. Eight of the
12
+ * sixty-four cells are defined; the remaining fifty-six are silent, and the
13
+ * reasons for the notable silences are §2.2.
14
+ *
15
+ * Two cells the implementation plan asserts are NOT defined here, on the
16
+ * authority of the design note (§0 and §2.2 item 5):
17
+ *
18
+ * - `exact-equivalence ∘ approximation`, either order. An exact equivalence
19
+ * contributes `IDENTITY_BOUND` only *in the norm a given bridge states* (see
20
+ * `./error-algebra.ts`), and no field in Sprint 1 records a norm, so
21
+ * norm-compatibility cannot be checked. A `norm?` field unblocks it in
22
+ * Phase 2.
23
+ * - `structural-analogy ∘ structural-analogy`. Analogy is not transitive: the
24
+ * shared structure can dilute to nothing across a chain.
25
+ *
26
+ * Widening this table is a reviewed act — `tests/atlas/composition-table.test.ts`
27
+ * pins the count of silent cells.
28
+ *
29
+ * Pure: no I/O, no registry reads, and no import from `src/composition/`.
30
+ *
31
+ * @module atlas/composition-table
32
+ */
33
+ import type { RelationType } from './types.js';
34
+ /** What `composeRelation` returns when the chain asserts nothing. @public */
35
+ export type NoCompositeClaim = 'no-composite-claim';
36
+ /** The result of composing two relations. @public */
37
+ export type CompositionResult = RelationType | NoCompositeClaim;
38
+ /** @public */
39
+ export declare const NO_COMPOSITE_CLAIM: NoCompositeClaim;
40
+ /**
41
+ * Every row of every column, written out. `Record<RelationType, …>` makes the
42
+ * exhaustiveness structural: a ninth `RelationType` member fails to compile
43
+ * here rather than silently acquiring a row of `'no-composite-claim'`.
44
+ *
45
+ * @public
46
+ */
47
+ export declare const COMPOSITION_TABLE: Readonly<Record<RelationType, Readonly<Record<RelationType, CompositionResult>>>>;
48
+ /**
49
+ * The relation a chain of two bridges asserts, or `'no-composite-claim'` when
50
+ * this sprint declines to assert one. A table lookup — no rules, no inference.
51
+ *
52
+ * @public
53
+ */
54
+ export declare function composeRelation(first: RelationType, second: RelationType): CompositionResult;
55
+ //# sourceMappingURL=composition-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-table.d.ts","sourceRoot":"","sources":["../../src/atlas/composition-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAEhE,cAAc;AACd,eAAO,MAAM,kBAAkB,EAAE,gBAAuC,CAAC;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CACtC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAkFxE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,YAAY,GACnB,iBAAiB,CAEnB"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * The composition table for `RelationType` — a literal 8×8 matrix.
3
+ *
4
+ * `composeRelation(first, second)` answers: if one bridge asserts `first` and a
5
+ * second bridge asserts `second`, what relation does the chain assert? The
6
+ * argument order is the `First ∘ Second` column order of design note
7
+ * `docs/planning/Atlas-Phase-1-Design.md` §2.1.
8
+ *
9
+ * **The table is a deliberate UNDER-approximation of Blueprint v2 §4.2.** Every
10
+ * cell not named in §2.1 is `'no-composite-claim'`, because a wrong composite
11
+ * type is a false physical claim while silence is only silence. Eight of the
12
+ * sixty-four cells are defined; the remaining fifty-six are silent, and the
13
+ * reasons for the notable silences are §2.2.
14
+ *
15
+ * Two cells the implementation plan asserts are NOT defined here, on the
16
+ * authority of the design note (§0 and §2.2 item 5):
17
+ *
18
+ * - `exact-equivalence ∘ approximation`, either order. An exact equivalence
19
+ * contributes `IDENTITY_BOUND` only *in the norm a given bridge states* (see
20
+ * `./error-algebra.ts`), and no field in Sprint 1 records a norm, so
21
+ * norm-compatibility cannot be checked. A `norm?` field unblocks it in
22
+ * Phase 2.
23
+ * - `structural-analogy ∘ structural-analogy`. Analogy is not transitive: the
24
+ * shared structure can dilute to nothing across a chain.
25
+ *
26
+ * Widening this table is a reviewed act — `tests/atlas/composition-table.test.ts`
27
+ * pins the count of silent cells.
28
+ *
29
+ * Pure: no I/O, no registry reads, and no import from `src/composition/`.
30
+ *
31
+ * @module atlas/composition-table
32
+ */
33
+ /** @public */
34
+ export const NO_COMPOSITE_CLAIM = 'no-composite-claim';
35
+ /**
36
+ * Every row of every column, written out. `Record<RelationType, …>` makes the
37
+ * exhaustiveness structural: a ninth `RelationType` member fails to compile
38
+ * here rather than silently acquiring a row of `'no-composite-claim'`.
39
+ *
40
+ * @public
41
+ */
42
+ export const COMPOSITION_TABLE = {
43
+ derivation: {
44
+ derivation: 'derivation',
45
+ 'exact-equivalence': 'derivation',
46
+ restriction: NO_COMPOSITE_CLAIM,
47
+ approximation: NO_COMPOSITE_CLAIM,
48
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
49
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
50
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
51
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
52
+ },
53
+ 'exact-equivalence': {
54
+ derivation: 'derivation',
55
+ 'exact-equivalence': 'exact-equivalence',
56
+ restriction: 'restriction',
57
+ approximation: NO_COMPOSITE_CLAIM,
58
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
59
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
60
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
61
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
62
+ },
63
+ restriction: {
64
+ derivation: NO_COMPOSITE_CLAIM,
65
+ 'exact-equivalence': 'restriction',
66
+ restriction: 'restriction',
67
+ approximation: NO_COMPOSITE_CLAIM,
68
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
69
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
70
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
71
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
72
+ },
73
+ approximation: {
74
+ derivation: NO_COMPOSITE_CLAIM,
75
+ 'exact-equivalence': NO_COMPOSITE_CLAIM,
76
+ restriction: NO_COMPOSITE_CLAIM,
77
+ approximation: NO_COMPOSITE_CLAIM,
78
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
79
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
80
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
81
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
82
+ },
83
+ 'coarse-graining': {
84
+ derivation: NO_COMPOSITE_CLAIM,
85
+ 'exact-equivalence': NO_COMPOSITE_CLAIM,
86
+ restriction: NO_COMPOSITE_CLAIM,
87
+ approximation: NO_COMPOSITE_CLAIM,
88
+ 'coarse-graining': 'coarse-graining',
89
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
90
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
91
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
92
+ },
93
+ 'analytic-continuation': {
94
+ derivation: NO_COMPOSITE_CLAIM,
95
+ 'exact-equivalence': NO_COMPOSITE_CLAIM,
96
+ restriction: NO_COMPOSITE_CLAIM,
97
+ approximation: NO_COMPOSITE_CLAIM,
98
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
99
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
100
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
101
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
102
+ },
103
+ 'structural-analogy': {
104
+ derivation: NO_COMPOSITE_CLAIM,
105
+ 'exact-equivalence': NO_COMPOSITE_CLAIM,
106
+ restriction: NO_COMPOSITE_CLAIM,
107
+ approximation: NO_COMPOSITE_CLAIM,
108
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
109
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
110
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
111
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
112
+ },
113
+ 'deformation-quantization': {
114
+ derivation: NO_COMPOSITE_CLAIM,
115
+ 'exact-equivalence': NO_COMPOSITE_CLAIM,
116
+ restriction: NO_COMPOSITE_CLAIM,
117
+ approximation: NO_COMPOSITE_CLAIM,
118
+ 'coarse-graining': NO_COMPOSITE_CLAIM,
119
+ 'analytic-continuation': NO_COMPOSITE_CLAIM,
120
+ 'structural-analogy': NO_COMPOSITE_CLAIM,
121
+ 'deformation-quantization': NO_COMPOSITE_CLAIM,
122
+ },
123
+ };
124
+ /**
125
+ * The relation a chain of two bridges asserts, or `'no-composite-claim'` when
126
+ * this sprint declines to assert one. A table lookup — no rules, no inference.
127
+ *
128
+ * @public
129
+ */
130
+ export function composeRelation(first, second) {
131
+ return COMPOSITION_TABLE[first][second];
132
+ }
133
+ //# sourceMappingURL=composition-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composition-table.js","sourceRoot":"","sources":["../../src/atlas/composition-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAUH,cAAc;AACd,MAAM,CAAC,MAAM,kBAAkB,GAAqB,oBAAoB,CAAC;AAEzE;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;QACxB,mBAAmB,EAAE,YAAY;QACjC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,mBAAmB,EAAE;QACnB,UAAU,EAAE,YAAY;QACxB,mBAAmB,EAAE,mBAAmB;QACxC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,WAAW,EAAE;QACX,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,aAAa;QAClC,WAAW,EAAE,aAAa;QAC1B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,aAAa,EAAE;QACb,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,iBAAiB,EAAE;QACjB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,iBAAiB;QACpC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,uBAAuB,EAAE;QACvB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,oBAAoB,EAAE;QACpB,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;IACD,0BAA0B,EAAE;QAC1B,UAAU,EAAE,kBAAkB;QAC9B,mBAAmB,EAAE,kBAAkB;QACvC,WAAW,EAAE,kBAAkB;QAC/B,aAAa,EAAE,kBAAkB;QACjC,iBAAiB,EAAE,kBAAkB;QACrC,uBAAuB,EAAE,kBAAkB;QAC3C,oBAAoB,EAAE,kBAAkB;QACxC,0BAA0B,EAAE,kBAAkB;KAC/C;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,MAAoB;IAEpB,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Atlas Phase 1 — convention comparison.
3
+ *
4
+ * `Conventions` (`src/atlas/types.ts`) records the sign and unit choices a
5
+ * record depends on. Two records that disagree on one of those choices are not
6
+ * directly comparable, and this module says WHICH keys disagree.
7
+ *
8
+ * **`undefined` is "unknown", never "mismatch", and that asymmetry is the
9
+ * whole design.** A record that declares nothing about the metric signature
10
+ * has not chosen `'+---'`; it has not said. Reporting the absence as a
11
+ * disagreement would manufacture conflicts out of missing data — and because
12
+ * almost every record in the repo declares nothing today, it would manufacture
13
+ * them at scale. The same reasoning that makes design note §3 require a
14
+ * NON-EMPTY `conventions` before `convention-checked` can be derived applies
15
+ * in the mirror here: absence earns neither a tag nor an accusation.
16
+ *
17
+ * A mismatch is therefore reported only when BOTH sides declare the key and
18
+ * the declared values differ.
19
+ *
20
+ * @module atlas/conventions
21
+ */
22
+ import type { Conventions } from './types.js';
23
+ /** The keys `checkConventions` compares. @internal */
24
+ export type ConventionKey = keyof Conventions;
25
+ /**
26
+ * The convention keys on which `a` and `b` DECLARE different values.
27
+ *
28
+ * Returns an empty list when they agree, when either side is absent, and when
29
+ * neither declares a key in common.
30
+ *
31
+ * ⚠ **An empty list is NOT a statement that the two are compatible** — it means
32
+ * no DECLARED pair disagrees. Eve (E1, 2026-09-21) flagged that this conflates
33
+ * the safe case with the dangerous one: record A declaring `metricSignature:
34
+ * '-+++'` while B simply never declared it returns `[]`, exactly like genuine
35
+ * agreement, and a caller printing nothing leads a reader to infer "checked, no
36
+ * conflict". Silence is not agreement. Use {@link unknownConventionKeys} to
37
+ * surface that case, and prefer reporting the two together.
38
+ *
39
+ * @param a - one record's conventions, or `undefined` when it declares none.
40
+ * @param b - the other record's conventions, or `undefined`.
41
+ * @returns the mismatched keys, in `Conventions` declaration order.
42
+ *
43
+ * @internal
44
+ */
45
+ export declare function checkConventions(a: Conventions | undefined, b: Conventions | undefined): readonly ConventionKey[];
46
+ /**
47
+ * The convention keys where exactly ONE side declares a value — the cases
48
+ * {@link checkConventions} deliberately does not call mismatches.
49
+ *
50
+ * This exists because "no declared pair disagrees" and "these two are
51
+ * compatible" are different claims, and only the first is checkable from the
52
+ * data. A key listed here is a question, not a conflict: the records MIGHT use
53
+ * opposite sign conventions and one simply never said. Reporting it separately
54
+ * lets a reader distinguish *verified agreement* from *nobody wrote it down*,
55
+ * which is the distinction an empty mismatch list destroys.
56
+ *
57
+ * Both sides absent is NOT unknown — it is simply a key nobody uses, so it is
58
+ * omitted. Only an asymmetric declaration is reported.
59
+ *
60
+ * @internal
61
+ */
62
+ export declare function unknownConventionKeys(a: Conventions | undefined, b: Conventions | undefined): readonly ConventionKey[];
63
+ //# sourceMappingURL=conventions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventions.d.ts","sourceRoot":"","sources":["../../src/atlas/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,sDAAsD;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC;AAgB9C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,SAAS,aAAa,EAAE,CAS1B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,CAAC,EAAE,WAAW,GAAG,SAAS,EAC1B,CAAC,EAAE,WAAW,GAAG,SAAS,GACzB,SAAS,aAAa,EAAE,CAS1B"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Atlas Phase 1 — convention comparison.
3
+ *
4
+ * `Conventions` (`src/atlas/types.ts`) records the sign and unit choices a
5
+ * record depends on. Two records that disagree on one of those choices are not
6
+ * directly comparable, and this module says WHICH keys disagree.
7
+ *
8
+ * **`undefined` is "unknown", never "mismatch", and that asymmetry is the
9
+ * whole design.** A record that declares nothing about the metric signature
10
+ * has not chosen `'+---'`; it has not said. Reporting the absence as a
11
+ * disagreement would manufacture conflicts out of missing data — and because
12
+ * almost every record in the repo declares nothing today, it would manufacture
13
+ * them at scale. The same reasoning that makes design note §3 require a
14
+ * NON-EMPTY `conventions` before `convention-checked` can be derived applies
15
+ * in the mirror here: absence earns neither a tag nor an accusation.
16
+ *
17
+ * A mismatch is therefore reported only when BOTH sides declare the key and
18
+ * the declared values differ.
19
+ *
20
+ * @module atlas/conventions
21
+ */
22
+ /**
23
+ * Every key of `Conventions`, as values. Written out rather than derived,
24
+ * because a type has no runtime extent; `tests/atlas/conventions.test.ts`
25
+ * pins this list against the interface so a new field cannot be added to
26
+ * `Conventions` and silently skipped by the comparison.
27
+ */
28
+ const CONVENTION_KEYS = [
29
+ 'heatWorkSign',
30
+ 'metricSignature',
31
+ 'fourierNormalization',
32
+ 'unitSystem',
33
+ 'capacitorChargeSign',
34
+ ];
35
+ /**
36
+ * The convention keys on which `a` and `b` DECLARE different values.
37
+ *
38
+ * Returns an empty list when they agree, when either side is absent, and when
39
+ * neither declares a key in common.
40
+ *
41
+ * ⚠ **An empty list is NOT a statement that the two are compatible** — it means
42
+ * no DECLARED pair disagrees. Eve (E1, 2026-09-21) flagged that this conflates
43
+ * the safe case with the dangerous one: record A declaring `metricSignature:
44
+ * '-+++'` while B simply never declared it returns `[]`, exactly like genuine
45
+ * agreement, and a caller printing nothing leads a reader to infer "checked, no
46
+ * conflict". Silence is not agreement. Use {@link unknownConventionKeys} to
47
+ * surface that case, and prefer reporting the two together.
48
+ *
49
+ * @param a - one record's conventions, or `undefined` when it declares none.
50
+ * @param b - the other record's conventions, or `undefined`.
51
+ * @returns the mismatched keys, in `Conventions` declaration order.
52
+ *
53
+ * @internal
54
+ */
55
+ export function checkConventions(a, b) {
56
+ if (a === undefined || b === undefined)
57
+ return [];
58
+ return CONVENTION_KEYS.filter((k) => {
59
+ const av = a[k];
60
+ const bv = b[k];
61
+ // Either side silent ⇒ unknown, not disagreement.
62
+ if (av === undefined || bv === undefined)
63
+ return false;
64
+ return av !== bv;
65
+ });
66
+ }
67
+ /**
68
+ * The convention keys where exactly ONE side declares a value — the cases
69
+ * {@link checkConventions} deliberately does not call mismatches.
70
+ *
71
+ * This exists because "no declared pair disagrees" and "these two are
72
+ * compatible" are different claims, and only the first is checkable from the
73
+ * data. A key listed here is a question, not a conflict: the records MIGHT use
74
+ * opposite sign conventions and one simply never said. Reporting it separately
75
+ * lets a reader distinguish *verified agreement* from *nobody wrote it down*,
76
+ * which is the distinction an empty mismatch list destroys.
77
+ *
78
+ * Both sides absent is NOT unknown — it is simply a key nobody uses, so it is
79
+ * omitted. Only an asymmetric declaration is reported.
80
+ *
81
+ * @internal
82
+ */
83
+ export function unknownConventionKeys(a, b) {
84
+ const av = a ?? {};
85
+ const bv = b ?? {};
86
+ return CONVENTION_KEYS.filter((k) => {
87
+ const x = av[k];
88
+ const y = bv[k];
89
+ // Exactly one declared: the asymmetric case. Neither declared ⇒ not a question.
90
+ return (x === undefined) !== (y === undefined);
91
+ });
92
+ }
93
+ //# sourceMappingURL=conventions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conventions.js","sourceRoot":"","sources":["../../src/atlas/conventions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAOH;;;;;GAKG;AACH,MAAM,eAAe,GAA6B;IAChD,cAAc;IACd,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;IACZ,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,CAA0B,EAC1B,CAA0B;IAE1B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClD,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,kDAAkD;QAClD,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CACnC,CAA0B,EAC1B,CAA0B;IAE1B,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IACnB,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAChB,gFAAgF;QAChF,OAAO,CAAC,CAAC,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Atlas Phase 1, S1.3 — evidence coverage, counted BY TAG.
3
+ *
4
+ * Design note `docs/planning/Atlas-Phase-1-Design.md` §3: *"Any future commit
5
+ * that appears to raise a row's evidence without adding a witness is a bug,
6
+ * and the coverage report is what makes it visible: it reports counts BY TAG,
7
+ * so a jump is legible."*
8
+ *
9
+ * A single "how many records have evidence" total would hide exactly the
10
+ * movement this report exists to expose — one tag inflating while another
11
+ * drains reads as no change at all. So the report is per tag, every tag is
12
+ * present with an explicit zero, and `records` is reported beside the counts
13
+ * (the counts do not sum to it: a record carries several tags).
14
+ *
15
+ * Pure: no I/O, no catalog import, no caching — every function here takes
16
+ * what it counts as an argument, so it can never disagree with a registry.
17
+ *
18
+ * @module atlas/coverage
19
+ * @internal
20
+ */
21
+ import type { EvidenceTag } from './types.js';
22
+ export { ALL_EVIDENCE_TAGS } from './types.js';
23
+ /** Counts by tag over a set of records. @internal */
24
+ export interface EvidenceCoverage {
25
+ /** How many records were counted. */
26
+ readonly records: number;
27
+ /** One entry per `EvidenceTag`, zero included. Counts overlap by design. */
28
+ readonly byTag: Readonly<Record<EvidenceTag, number>>;
29
+ }
30
+ /**
31
+ * Count derived evidence sets by tag.
32
+ *
33
+ * @param evidenceSets - one derived set per record, e.g. the output of
34
+ * `deriveEvidence` mapped over a catalog. Deriving is the caller's job; this
35
+ * function never derives, so it cannot disagree with the derivation.
36
+ * @internal
37
+ */
38
+ export declare function summarizeEvidence(evidenceSets: Iterable<ReadonlySet<EvidenceTag>>): EvidenceCoverage;
39
+ /**
40
+ * How much of the catalog carries the Phase 1 overlay.
41
+ *
42
+ * `summarizeEvidence` above answers "what support do these records have";
43
+ * this answers the different question "how much has anyone LOOKED at". The two
44
+ * must not be conflated: a row can be `verified` (its derived tag set is
45
+ * non-empty, which a machine check produces) while nobody has recorded a
46
+ * `relation` for it at all.
47
+ *
48
+ * - `schema` — the denominator: the 55 catalog rows plus the canonical
49
+ * registry. The atlas families are NOT in it; they are reported separately,
50
+ * because a nine-model pilot would otherwise dilute a catalog-wide fraction.
51
+ * - `audited` — a HUMAN set `relation` or `conventions` on the record.
52
+ * - `verified` — a derived evidence tag set is non-empty. Passed IN, never
53
+ * derived here, for the same reason `summarizeEvidence` never derives.
54
+ * - `notYetAudited` — `schema − audited`, stated rather than left to arithmetic.
55
+ *
56
+ * @internal
57
+ */
58
+ export interface OverlayCoverage {
59
+ readonly schema: number;
60
+ readonly audited: number;
61
+ readonly verified: number;
62
+ readonly notYetAudited: number;
63
+ /** The atlas pilot, reported beside the catalog and never mixed into it. */
64
+ readonly atlas: {
65
+ readonly bridges: number;
66
+ readonly reviewed: number;
67
+ };
68
+ }
69
+ /** A record that may carry the Phase 1 overlay. Structural, so this module
70
+ * imports no registry and cannot become a second source of truth. @internal */
71
+ export interface OverlayBearing {
72
+ readonly relation?: unknown;
73
+ readonly conventions?: unknown;
74
+ }
75
+ /** An atlas bridge, reduced to the one field this report reads. @internal */
76
+ export interface ReviewStatusBearing {
77
+ readonly reviewStatus: 'proposed' | 'reviewed';
78
+ }
79
+ /**
80
+ * Count overlay coverage over the catalog rows and canonical entries.
81
+ *
82
+ * Every input is PASSED IN. The module stays pure and importless, so it can
83
+ * never disagree with the registries — the caller states which registries it
84
+ * counted, exactly as `summarizeEvidence` requires its caller to state which
85
+ * evidence sets it derived.
86
+ *
87
+ * @param schemaRecords - the catalog rows and canonical entries, concatenated.
88
+ * @param verifiedCount - how many of them have a non-empty derived tag set.
89
+ * @param atlasBridges - the atlas pilot's bridges, reported separately.
90
+ * @internal
91
+ */
92
+ export declare function overlayCoverage(schemaRecords: readonly OverlayBearing[], verifiedCount: number, atlasBridges: readonly ReviewStatusBearing[]): OverlayCoverage;
93
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/atlas/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;CACvD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,GAC/C,gBAAgB,CAWlB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED;+EAC+E;AAC/E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;CAChD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,aAAa,EAAE,SAAS,cAAc,EAAE,EACxC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,SAAS,mBAAmB,EAAE,GAC3C,eAAe,CAcjB"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Atlas Phase 1, S1.3 — evidence coverage, counted BY TAG.
3
+ *
4
+ * Design note `docs/planning/Atlas-Phase-1-Design.md` §3: *"Any future commit
5
+ * that appears to raise a row's evidence without adding a witness is a bug,
6
+ * and the coverage report is what makes it visible: it reports counts BY TAG,
7
+ * so a jump is legible."*
8
+ *
9
+ * A single "how many records have evidence" total would hide exactly the
10
+ * movement this report exists to expose — one tag inflating while another
11
+ * drains reads as no change at all. So the report is per tag, every tag is
12
+ * present with an explicit zero, and `records` is reported beside the counts
13
+ * (the counts do not sum to it: a record carries several tags).
14
+ *
15
+ * Pure: no I/O, no catalog import, no caching — every function here takes
16
+ * what it counts as an argument, so it can never disagree with a registry.
17
+ *
18
+ * @module atlas/coverage
19
+ * @internal
20
+ */
21
+ import { ALL_EVIDENCE_TAGS } from './types.js';
22
+ // Moved to `types.ts`: the derived-tag literals may appear under `src/atlas/`
23
+ // only there and in `derive-evidence.ts`. Re-exported so callers are unchanged.
24
+ export { ALL_EVIDENCE_TAGS } from './types.js';
25
+ /**
26
+ * Count derived evidence sets by tag.
27
+ *
28
+ * @param evidenceSets - one derived set per record, e.g. the output of
29
+ * `deriveEvidence` mapped over a catalog. Deriving is the caller's job; this
30
+ * function never derives, so it cannot disagree with the derivation.
31
+ * @internal
32
+ */
33
+ export function summarizeEvidence(evidenceSets) {
34
+ const byTag = Object.fromEntries(ALL_EVIDENCE_TAGS.map((t) => [t, 0]));
35
+ let records = 0;
36
+ for (const set of evidenceSets) {
37
+ records += 1;
38
+ for (const tag of set)
39
+ byTag[tag] += 1;
40
+ }
41
+ return { records, byTag };
42
+ }
43
+ /**
44
+ * Count overlay coverage over the catalog rows and canonical entries.
45
+ *
46
+ * Every input is PASSED IN. The module stays pure and importless, so it can
47
+ * never disagree with the registries — the caller states which registries it
48
+ * counted, exactly as `summarizeEvidence` requires its caller to state which
49
+ * evidence sets it derived.
50
+ *
51
+ * @param schemaRecords - the catalog rows and canonical entries, concatenated.
52
+ * @param verifiedCount - how many of them have a non-empty derived tag set.
53
+ * @param atlasBridges - the atlas pilot's bridges, reported separately.
54
+ * @internal
55
+ */
56
+ export function overlayCoverage(schemaRecords, verifiedCount, atlasBridges) {
57
+ const audited = schemaRecords.filter((r) => r.relation !== undefined || r.conventions !== undefined).length;
58
+ return {
59
+ schema: schemaRecords.length,
60
+ audited,
61
+ verified: verifiedCount,
62
+ notYetAudited: schemaRecords.length - audited,
63
+ atlas: {
64
+ bridges: atlasBridges.length,
65
+ reviewed: atlasBridges.filter((b) => b.reviewStatus === 'reviewed').length,
66
+ },
67
+ };
68
+ }
69
+ //# sourceMappingURL=coverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/atlas/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAG/C,8EAA8E;AAC9E,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAU/C;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAgD;IAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAGpE,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,GAAG;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AA8CD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,aAAwC,EACxC,aAAqB,EACrB,YAA4C;IAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,CAC/D,CAAC,MAAM,CAAC;IACT,OAAO;QACL,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,OAAO;QACP,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,aAAa,CAAC,MAAM,GAAG,OAAO;QAC7C,KAAK,EAAE;YACL,OAAO,EAAE,YAAY,CAAC,MAAM;YAC5B,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,UAAU,CAAC,CAAC,MAAM;SAC3E;KACF,CAAC;AACJ,CAAC"}