universal-physics-tensor 0.45.2 → 0.47.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 (548) hide show
  1. package/README.md +85 -66
  2. package/bin/upt.mjs +22 -22
  3. package/dist/atlas/applicability.d.ts +108 -0
  4. package/dist/atlas/applicability.d.ts.map +1 -0
  5. package/dist/atlas/applicability.js +301 -0
  6. package/dist/atlas/applicability.js.map +1 -0
  7. package/dist/atlas/association.d.ts +92 -0
  8. package/dist/atlas/association.d.ts.map +1 -0
  9. package/dist/atlas/association.js +112 -0
  10. package/dist/atlas/association.js.map +1 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  12. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  13. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  14. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  15. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  16. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  17. package/dist/atlas/benchmark/baselines.js +112 -0
  18. package/dist/atlas/benchmark/baselines.js.map +1 -0
  19. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  20. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  21. package/dist/atlas/benchmark/leakage.js +100 -0
  22. package/dist/atlas/benchmark/leakage.js.map +1 -0
  23. package/dist/atlas/benchmark/loader.d.ts +56 -0
  24. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  25. package/dist/atlas/benchmark/loader.js +104 -0
  26. package/dist/atlas/benchmark/loader.js.map +1 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  28. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  29. package/dist/atlas/benchmark/run-atlas.js +210 -0
  30. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  31. package/dist/atlas/benchmark/stats.d.ts +90 -0
  32. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  33. package/dist/atlas/benchmark/stats.js +159 -0
  34. package/dist/atlas/benchmark/stats.js.map +1 -0
  35. package/dist/atlas/benchmark/study.d.ts +120 -0
  36. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  37. package/dist/atlas/benchmark/study.js +192 -0
  38. package/dist/atlas/benchmark/study.js.map +1 -0
  39. package/dist/atlas/benchmark/types.d.ts +79 -0
  40. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  41. package/dist/atlas/benchmark/types.js +46 -0
  42. package/dist/atlas/benchmark/types.js.map +1 -0
  43. package/dist/atlas/composition-table.d.ts +55 -0
  44. package/dist/atlas/composition-table.d.ts.map +1 -0
  45. package/dist/atlas/composition-table.js +133 -0
  46. package/dist/atlas/composition-table.js.map +1 -0
  47. package/dist/atlas/conventions.d.ts +63 -0
  48. package/dist/atlas/conventions.d.ts.map +1 -0
  49. package/dist/atlas/conventions.js +93 -0
  50. package/dist/atlas/conventions.js.map +1 -0
  51. package/dist/atlas/coverage.d.ts +93 -0
  52. package/dist/atlas/coverage.d.ts.map +1 -0
  53. package/dist/atlas/coverage.js +69 -0
  54. package/dist/atlas/coverage.js.map +1 -0
  55. package/dist/atlas/derivation.d.ts +137 -0
  56. package/dist/atlas/derivation.d.ts.map +1 -0
  57. package/dist/atlas/derivation.js +190 -0
  58. package/dist/atlas/derivation.js.map +1 -0
  59. package/dist/atlas/derive-evidence.d.ts +218 -0
  60. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  61. package/dist/atlas/derive-evidence.js +225 -0
  62. package/dist/atlas/derive-evidence.js.map +1 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  64. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  65. package/dist/atlas/diffusion/bridges-closure.js +350 -0
  66. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  67. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  68. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  69. package/dist/atlas/diffusion/bridges.js +226 -0
  70. package/dist/atlas/diffusion/bridges.js.map +1 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  72. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  73. package/dist/atlas/diffusion/dimensions.js +21 -0
  74. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  75. package/dist/atlas/diffusion/index.d.ts +16 -0
  76. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  77. package/dist/atlas/diffusion/index.js +23 -0
  78. package/dist/atlas/diffusion/index.js.map +1 -0
  79. package/dist/atlas/diffusion/models.d.ts +24 -0
  80. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  81. package/dist/atlas/diffusion/models.js +139 -0
  82. package/dist/atlas/diffusion/models.js.map +1 -0
  83. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  84. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  85. package/dist/atlas/diffusion/numerics.js +251 -0
  86. package/dist/atlas/diffusion/numerics.js.map +1 -0
  87. package/dist/atlas/error-algebra.d.ts +52 -0
  88. package/dist/atlas/error-algebra.d.ts.map +1 -0
  89. package/dist/atlas/error-algebra.js +55 -0
  90. package/dist/atlas/error-algebra.js.map +1 -0
  91. package/dist/atlas/export.d.ts +48 -0
  92. package/dist/atlas/export.d.ts.map +1 -0
  93. package/dist/atlas/export.js +106 -0
  94. package/dist/atlas/export.js.map +1 -0
  95. package/dist/atlas/families.d.ts +14 -0
  96. package/dist/atlas/families.d.ts.map +1 -0
  97. package/dist/atlas/families.js +20 -0
  98. package/dist/atlas/families.js.map +1 -0
  99. package/dist/atlas/index.d.ts +90 -0
  100. package/dist/atlas/index.d.ts.map +1 -0
  101. package/dist/atlas/index.js +69 -0
  102. package/dist/atlas/index.js.map +1 -0
  103. package/dist/atlas/link-prediction.d.ts +71 -0
  104. package/dist/atlas/link-prediction.d.ts.map +1 -0
  105. package/dist/atlas/link-prediction.js +128 -0
  106. package/dist/atlas/link-prediction.js.map +1 -0
  107. package/dist/atlas/model.d.ts +70 -0
  108. package/dist/atlas/model.d.ts.map +1 -0
  109. package/dist/atlas/model.js +26 -0
  110. package/dist/atlas/model.js.map +1 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  112. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  114. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  116. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  117. package/dist/atlas/oscillators/bridges-exact.js +230 -0
  118. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  120. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  121. package/dist/atlas/oscillators/bridges-limits.js +345 -0
  122. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  124. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  125. package/dist/atlas/oscillators/dimensions.js +34 -0
  126. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  127. package/dist/atlas/oscillators/index.d.ts +38 -0
  128. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  129. package/dist/atlas/oscillators/index.js +37 -0
  130. package/dist/atlas/oscillators/index.js.map +1 -0
  131. package/dist/atlas/oscillators/models.d.ts +25 -0
  132. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  133. package/dist/atlas/oscillators/models.js +160 -0
  134. package/dist/atlas/oscillators/models.js.map +1 -0
  135. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  136. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  137. package/dist/atlas/oscillators/rejections.js +54 -0
  138. package/dist/atlas/oscillators/rejections.js.map +1 -0
  139. package/dist/atlas/path-bound.d.ts +143 -0
  140. package/dist/atlas/path-bound.d.ts.map +1 -0
  141. package/dist/atlas/path-bound.js +268 -0
  142. package/dist/atlas/path-bound.js.map +1 -0
  143. package/dist/atlas/poster/associations.d.ts +66 -0
  144. package/dist/atlas/poster/associations.d.ts.map +1 -0
  145. package/dist/atlas/poster/associations.js +90 -0
  146. package/dist/atlas/poster/associations.js.map +1 -0
  147. package/dist/atlas/poster/derivations.d.ts +156 -0
  148. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  149. package/dist/atlas/poster/derivations.js +430 -0
  150. package/dist/atlas/poster/derivations.js.map +1 -0
  151. package/dist/atlas/poster/statements.d.ts +198 -0
  152. package/dist/atlas/poster/statements.d.ts.map +1 -0
  153. package/dist/atlas/poster/statements.js +365 -0
  154. package/dist/atlas/poster/statements.js.map +1 -0
  155. package/dist/atlas/public.d.ts +26 -0
  156. package/dist/atlas/public.d.ts.map +1 -0
  157. package/dist/atlas/public.js +21 -0
  158. package/dist/atlas/public.js.map +1 -0
  159. package/dist/atlas/regime.d.ts +171 -0
  160. package/dist/atlas/regime.d.ts.map +1 -0
  161. package/dist/atlas/regime.js +309 -0
  162. package/dist/atlas/regime.js.map +1 -0
  163. package/dist/atlas/serialize.d.ts +50 -0
  164. package/dist/atlas/serialize.d.ts.map +1 -0
  165. package/dist/atlas/serialize.js +180 -0
  166. package/dist/atlas/serialize.js.map +1 -0
  167. package/dist/atlas/statement.d.ts +165 -0
  168. package/dist/atlas/statement.d.ts.map +1 -0
  169. package/dist/atlas/statement.js +176 -0
  170. package/dist/atlas/statement.js.map +1 -0
  171. package/dist/atlas/types.d.ts +325 -0
  172. package/dist/atlas/types.d.ts.map +1 -0
  173. package/dist/atlas/types.js +61 -0
  174. package/dist/atlas/types.js.map +1 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  176. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  177. package/dist/atlas/waves/bridges-closure.js +226 -0
  178. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  179. package/dist/atlas/waves/bridges.d.ts +49 -0
  180. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  181. package/dist/atlas/waves/bridges.js +266 -0
  182. package/dist/atlas/waves/bridges.js.map +1 -0
  183. package/dist/atlas/waves/index.d.ts +16 -0
  184. package/dist/atlas/waves/index.d.ts.map +1 -0
  185. package/dist/atlas/waves/index.js +23 -0
  186. package/dist/atlas/waves/index.js.map +1 -0
  187. package/dist/atlas/waves/models.d.ts +29 -0
  188. package/dist/atlas/waves/models.d.ts.map +1 -0
  189. package/dist/atlas/waves/models.js +127 -0
  190. package/dist/atlas/waves/models.js.map +1 -0
  191. package/dist/atlas/waves/numerics.d.ts +149 -0
  192. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  193. package/dist/atlas/waves/numerics.js +218 -0
  194. package/dist/atlas/waves/numerics.js.map +1 -0
  195. package/dist/atlas/witness-artifact.d.ts +65 -0
  196. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  197. package/dist/atlas/witness-artifact.js +78 -0
  198. package/dist/atlas/witness-artifact.js.map +1 -0
  199. package/dist/atlas/witness-numeric.d.ts +81 -0
  200. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  201. package/dist/atlas/witness-numeric.js +105 -0
  202. package/dist/atlas/witness-numeric.js.map +1 -0
  203. package/dist/atlas/witness-result.d.ts +77 -0
  204. package/dist/atlas/witness-result.d.ts.map +1 -0
  205. package/dist/atlas/witness-result.js +39 -0
  206. package/dist/atlas/witness-result.js.map +1 -0
  207. package/dist/atlas/witness-specs.d.ts +110 -0
  208. package/dist/atlas/witness-specs.d.ts.map +1 -0
  209. package/dist/atlas/witness-specs.js +372 -0
  210. package/dist/atlas/witness-specs.js.map +1 -0
  211. package/dist/atlas/witness-symbolic.d.ts +79 -0
  212. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  213. package/dist/atlas/witness-symbolic.js +140 -0
  214. package/dist/atlas/witness-symbolic.js.map +1 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  216. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  217. package/dist/atlas/witnesses/quantum-support.js +48 -0
  218. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  219. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  220. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  221. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  222. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  223. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  224. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  225. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  226. package/dist/bridges/be51-lensing-confrontation.d.ts.map +1 -1
  227. package/dist/bridges/be51-lensing-confrontation.js +5 -3
  228. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  229. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -1
  230. package/dist/bridges/be52-mercury-confrontation.js +4 -1
  231. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  232. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  233. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  234. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  235. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  236. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  237. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  238. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  239. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  240. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  241. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  242. package/dist/bridges/bridge-equations.d.ts +2 -2
  243. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  244. package/dist/bridges/bridge-equations.js +2 -2
  245. package/dist/bridges/bridge-equations.js.map +1 -1
  246. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  247. package/dist/bridges/catalog-adapter.js.map +1 -1
  248. package/dist/bridges/confrontations.d.ts.map +1 -1
  249. package/dist/bridges/confrontations.js +7 -0
  250. package/dist/bridges/confrontations.js.map +1 -1
  251. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  252. package/dist/bridges/equations/_be-helpers.js +2 -2
  253. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  254. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +59 -72
  255. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  256. package/dist/bridges/equations/be-35-conformal-bootstrap.js +66 -98
  257. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  258. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  259. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  260. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  261. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  262. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  263. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  264. package/dist/bridges/gravitational-lensing.js.map +1 -1
  265. package/dist/bridges/index.d.ts +125 -7
  266. package/dist/bridges/index.d.ts.map +1 -1
  267. package/dist/bridges/index.js +483 -20
  268. package/dist/bridges/index.js.map +1 -1
  269. package/dist/bridges/observations/types.d.ts +14 -0
  270. package/dist/bridges/observations/types.d.ts.map +1 -1
  271. package/dist/bridges/observations/types.js.map +1 -1
  272. package/dist/bridges/perihelion-precession.d.ts +10 -0
  273. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  274. package/dist/bridges/perihelion-precession.js.map +1 -1
  275. package/dist/bridges/rhs-registry.js +2 -2
  276. package/dist/canonical/canonical-equation.d.ts +15 -0
  277. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  278. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  279. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  280. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  281. package/dist/canonical/entries/atomic.js +23 -0
  282. package/dist/canonical/entries/atomic.js.map +1 -1
  283. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  284. package/dist/canonical/entries/nonmonomial.js +93 -0
  285. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  286. package/dist/canonical/normal-form.js.map +1 -1
  287. package/dist/canonical/residual.d.ts +28 -0
  288. package/dist/canonical/residual.d.ts.map +1 -0
  289. package/dist/canonical/residual.js +31 -0
  290. package/dist/canonical/residual.js.map +1 -0
  291. package/dist/cli/command.d.ts +8 -0
  292. package/dist/cli/command.d.ts.map +1 -1
  293. package/dist/cli/command.js +10 -0
  294. package/dist/cli/command.js.map +1 -1
  295. package/dist/cli/commands/atlas.d.ts +3 -0
  296. package/dist/cli/commands/atlas.d.ts.map +1 -0
  297. package/dist/cli/commands/atlas.js +158 -0
  298. package/dist/cli/commands/atlas.js.map +1 -0
  299. package/dist/cli/commands/audit.js +3 -3
  300. package/dist/cli/commands/candidates.js +3 -3
  301. package/dist/cli/commands/canonical.js +3 -3
  302. package/dist/cli/commands/confront.d.ts.map +1 -1
  303. package/dist/cli/commands/confront.js +8 -1
  304. package/dist/cli/commands/confront.js.map +1 -1
  305. package/dist/cli/commands/connectors.js +7 -7
  306. package/dist/cli/commands/coverage.js +3 -3
  307. package/dist/cli/commands/derive.d.ts.map +1 -1
  308. package/dist/cli/commands/derive.js +40 -9
  309. package/dist/cli/commands/derive.js.map +1 -1
  310. package/dist/cli/commands/discover.d.ts.map +1 -1
  311. package/dist/cli/commands/discover.js +46 -27
  312. package/dist/cli/commands/discover.js.map +1 -1
  313. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  314. package/dist/cli/commands/evaluate.js +2 -1
  315. package/dist/cli/commands/evaluate.js.map +1 -1
  316. package/dist/cli/commands/explain.d.ts.map +1 -1
  317. package/dist/cli/commands/explain.js +19 -6
  318. package/dist/cli/commands/explain.js.map +1 -1
  319. package/dist/cli/commands/index.d.ts +3 -0
  320. package/dist/cli/commands/index.d.ts.map +1 -1
  321. package/dist/cli/commands/index.js +3 -0
  322. package/dist/cli/commands/index.js.map +1 -1
  323. package/dist/cli/commands/map.d.ts.map +1 -1
  324. package/dist/cli/commands/map.js +187 -36
  325. package/dist/cli/commands/map.js.map +1 -1
  326. package/dist/cli/commands/path.d.ts +3 -0
  327. package/dist/cli/commands/path.d.ts.map +1 -0
  328. package/dist/cli/commands/path.js +228 -0
  329. package/dist/cli/commands/path.js.map +1 -0
  330. package/dist/cli/commands/predict.js +4 -4
  331. package/dist/cli/commands/priority.js +2 -2
  332. package/dist/cli/commands/probe.d.ts.map +1 -1
  333. package/dist/cli/commands/probe.js +59 -2
  334. package/dist/cli/commands/probe.js.map +1 -1
  335. package/dist/cli/commands/recover.d.ts.map +1 -1
  336. package/dist/cli/commands/recover.js +25 -6
  337. package/dist/cli/commands/recover.js.map +1 -1
  338. package/dist/cli/commands/regime.d.ts +41 -0
  339. package/dist/cli/commands/regime.d.ts.map +1 -0
  340. package/dist/cli/commands/regime.js +243 -0
  341. package/dist/cli/commands/regime.js.map +1 -0
  342. package/dist/cli/commands/symbolic.js +5 -5
  343. package/dist/cli/errors.d.ts +13 -1
  344. package/dist/cli/errors.d.ts.map +1 -1
  345. package/dist/cli/errors.js +13 -1
  346. package/dist/cli/errors.js.map +1 -1
  347. package/dist/cli/graphs.d.ts.map +1 -1
  348. package/dist/cli/graphs.js +5 -1
  349. package/dist/cli/graphs.js.map +1 -1
  350. package/dist/cli/main.d.ts.map +1 -1
  351. package/dist/cli/main.js +29 -2
  352. package/dist/cli/main.js.map +1 -1
  353. package/dist/cli/output.d.ts +6 -1
  354. package/dist/cli/output.d.ts.map +1 -1
  355. package/dist/cli/output.js.map +1 -1
  356. package/dist/cli/version.js.map +1 -1
  357. package/dist/cli-api.d.ts +21 -1
  358. package/dist/cli-api.d.ts.map +1 -1
  359. package/dist/cli-api.js +23 -1
  360. package/dist/cli-api.js.map +1 -1
  361. package/dist/composition/axis-audit.js.map +1 -1
  362. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  363. package/dist/composition/bridge-prediction.js +0 -0
  364. package/dist/composition/bridge-prediction.js.map +1 -1
  365. package/dist/composition/canonical-compare.d.ts +65 -0
  366. package/dist/composition/canonical-compare.d.ts.map +1 -0
  367. package/dist/composition/canonical-compare.js +237 -0
  368. package/dist/composition/canonical-compare.js.map +1 -0
  369. package/dist/composition/canonical-graph.d.ts +2 -2
  370. package/dist/composition/canonical-graph.js +2 -2
  371. package/dist/composition/canonical-graph.js.map +1 -1
  372. package/dist/composition/canonical-prefactors.d.ts +32 -0
  373. package/dist/composition/canonical-prefactors.d.ts.map +1 -0
  374. package/dist/composition/canonical-prefactors.js +80 -0
  375. package/dist/composition/canonical-prefactors.js.map +1 -0
  376. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  377. package/dist/composition/compose-symbolic.js.map +1 -1
  378. package/dist/composition/compose.d.ts.map +1 -1
  379. package/dist/composition/compose.js +80 -1
  380. package/dist/composition/compose.js.map +1 -1
  381. package/dist/composition/consequence.js.map +1 -1
  382. package/dist/composition/discovery.d.ts +20 -3
  383. package/dist/composition/discovery.d.ts.map +1 -1
  384. package/dist/composition/discovery.js +30 -4
  385. package/dist/composition/discovery.js.map +1 -1
  386. package/dist/composition/edge.d.ts +64 -0
  387. package/dist/composition/edge.d.ts.map +1 -1
  388. package/dist/composition/edge.js +29 -0
  389. package/dist/composition/edge.js.map +1 -1
  390. package/dist/composition/edges/calibration.d.ts.map +1 -1
  391. package/dist/composition/edges/calibration.js +46 -0
  392. package/dist/composition/edges/calibration.js.map +1 -1
  393. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  394. package/dist/composition/edges/catalog-quantum.js +9 -0
  395. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  396. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  397. package/dist/composition/edges/catalog-tranche.js +18 -0
  398. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  399. package/dist/composition/enumerate.js.map +1 -1
  400. package/dist/composition/explain.d.ts +9 -1
  401. package/dist/composition/explain.d.ts.map +1 -1
  402. package/dist/composition/explain.js +34 -8
  403. package/dist/composition/explain.js.map +1 -1
  404. package/dist/composition/expr-eval.d.ts.map +1 -1
  405. package/dist/composition/expr-eval.js.map +1 -1
  406. package/dist/composition/expr-simplify.d.ts +13 -0
  407. package/dist/composition/expr-simplify.d.ts.map +1 -1
  408. package/dist/composition/expr-simplify.js +25 -0
  409. package/dist/composition/expr-simplify.js.map +1 -1
  410. package/dist/composition/expr-subst.js.map +1 -1
  411. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  412. package/dist/composition/graph-viz.d.ts +118 -1
  413. package/dist/composition/graph-viz.d.ts.map +1 -1
  414. package/dist/composition/graph-viz.js +189 -6
  415. package/dist/composition/graph-viz.js.map +1 -1
  416. package/dist/composition/grounding.d.ts.map +1 -1
  417. package/dist/composition/grounding.js +6 -1
  418. package/dist/composition/grounding.js.map +1 -1
  419. package/dist/composition/identifiability.js.map +1 -1
  420. package/dist/composition/index.d.ts +4 -2
  421. package/dist/composition/index.d.ts.map +1 -1
  422. package/dist/composition/index.js +2 -1
  423. package/dist/composition/index.js.map +1 -1
  424. package/dist/composition/poster-source.d.ts +153 -0
  425. package/dist/composition/poster-source.d.ts.map +1 -0
  426. package/dist/composition/poster-source.js +183 -0
  427. package/dist/composition/poster-source.js.map +1 -0
  428. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  429. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  430. package/dist/composition/probe/backend-protocol.js +9 -2
  431. package/dist/composition/probe/backend-protocol.js.map +1 -1
  432. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  433. package/dist/composition/probe/corpus.d.ts +12 -0
  434. package/dist/composition/probe/corpus.d.ts.map +1 -1
  435. package/dist/composition/probe/corpus.js +100 -0
  436. package/dist/composition/probe/corpus.js.map +1 -1
  437. package/dist/composition/probe/generator.d.ts +14 -0
  438. package/dist/composition/probe/generator.d.ts.map +1 -1
  439. package/dist/composition/probe/generator.js +24 -2
  440. package/dist/composition/probe/generator.js.map +1 -1
  441. package/dist/composition/probe/limits.js.map +1 -1
  442. package/dist/composition/probe/pipeline.d.ts +5 -0
  443. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  444. package/dist/composition/probe/pipeline.js +20 -3
  445. package/dist/composition/probe/pipeline.js.map +1 -1
  446. package/dist/composition/probe/problem.js.map +1 -1
  447. package/dist/composition/probe/report.d.ts.map +1 -1
  448. package/dist/composition/probe/report.js +2 -0
  449. package/dist/composition/probe/report.js.map +1 -1
  450. package/dist/composition/probe/residual.d.ts.map +1 -1
  451. package/dist/composition/probe/residual.js.map +1 -1
  452. package/dist/composition/probe/search-budget.js.map +1 -1
  453. package/dist/composition/proposed-bridges.d.ts +2 -2
  454. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  455. package/dist/composition/proposed-bridges.js +1 -1
  456. package/dist/composition/proposed-bridges.js.map +1 -1
  457. package/dist/composition/retrodiction.js.map +1 -1
  458. package/dist/composition/uncertainty.d.ts +52 -2
  459. package/dist/composition/uncertainty.d.ts.map +1 -1
  460. package/dist/composition/uncertainty.js +38 -2
  461. package/dist/composition/uncertainty.js.map +1 -1
  462. package/dist/composition/user-equation.d.ts.map +1 -1
  463. package/dist/core/constants.d.ts +13 -0
  464. package/dist/core/constants.d.ts.map +1 -1
  465. package/dist/core/constants.js +13 -0
  466. package/dist/core/constants.js.map +1 -1
  467. package/dist/core/flux-rules.d.ts.map +1 -1
  468. package/dist/core/flux-rules.js.map +1 -1
  469. package/dist/core/labeled-tensor.d.ts.map +1 -1
  470. package/dist/core/regime-registry.d.ts.map +1 -1
  471. package/dist/core/regime-rule-install.js.map +1 -1
  472. package/dist/core/tensor.d.ts.map +1 -1
  473. package/dist/core/tensor.js.map +1 -1
  474. package/dist/core/types.d.ts.map +1 -1
  475. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  476. package/dist/diff/bridge-gradient.d.ts +1 -1
  477. package/dist/diff/bridge-gradient.js +1 -1
  478. package/dist/dimensional/ast-types.d.ts +31 -1
  479. package/dist/dimensional/ast-types.d.ts.map +1 -1
  480. package/dist/dimensional/bridge-check.d.ts +1 -1
  481. package/dist/dimensional/bridge-check.js +1 -1
  482. package/dist/dimensional/buckingham.d.ts.map +1 -1
  483. package/dist/dimensional/connection.d.ts +2 -0
  484. package/dist/dimensional/connection.d.ts.map +1 -1
  485. package/dist/dimensional/connection.js +2 -0
  486. package/dist/dimensional/connection.js.map +1 -1
  487. package/dist/dimensional/curvature-composite.d.ts +5 -3
  488. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  489. package/dist/dimensional/curvature-composite.js +1 -0
  490. package/dist/dimensional/curvature-composite.js.map +1 -1
  491. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  492. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  493. package/dist/dimensional/curvature-invariants.js +2 -0
  494. package/dist/dimensional/curvature-invariants.js.map +1 -1
  495. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  496. package/dist/dimensional/einstein-equation.d.ts +3 -3
  497. package/dist/dimensional/einstein-equation.js +3 -3
  498. package/dist/dimensional/errors.d.ts.map +1 -1
  499. package/dist/dimensional/metric.d.ts +5 -2
  500. package/dist/dimensional/metric.d.ts.map +1 -1
  501. package/dist/dimensional/metric.js +5 -2
  502. package/dist/dimensional/metric.js.map +1 -1
  503. package/dist/dimensional/tensor-trace.js.map +1 -1
  504. package/dist/dimensional/validator-registry.js.map +1 -1
  505. package/dist/dimensional/validator.d.ts +3 -2
  506. package/dist/dimensional/validator.d.ts.map +1 -1
  507. package/dist/dimensional/validator.js +23 -4
  508. package/dist/dimensional/validator.js.map +1 -1
  509. package/dist/index.d.ts +4 -3
  510. package/dist/index.d.ts.map +1 -1
  511. package/dist/index.js +4 -1
  512. package/dist/index.js.map +1 -1
  513. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  514. package/dist/numerical/curvature-lowering-helpers.js +104 -0
  515. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  516. package/dist/numerical/errors.d.ts.map +1 -1
  517. package/dist/numerical/errors.js.map +1 -1
  518. package/dist/numerical/float64-engine.d.ts.map +1 -1
  519. package/dist/numerical/float64-engine.js +51 -24
  520. package/dist/numerical/float64-engine.js.map +1 -1
  521. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  522. package/dist/numerical/formula-dimension.js.map +1 -1
  523. package/dist/numerical/formula.d.ts.map +1 -1
  524. package/dist/numerical/formula.js.map +1 -1
  525. package/dist/numerical/geometrized.d.ts.map +1 -1
  526. package/dist/numerical/gl4-integrator.d.ts +3 -3
  527. package/dist/numerical/gl4-integrator.js +3 -3
  528. package/dist/numerical/killing.d.ts +47 -5
  529. package/dist/numerical/killing.d.ts.map +1 -1
  530. package/dist/numerical/killing.js +41 -3
  531. package/dist/numerical/killing.js.map +1 -1
  532. package/dist/numerical/klein-gordon.d.ts +2 -2
  533. package/dist/numerical/klein-gordon.js +2 -2
  534. package/dist/numerical/lowering.d.ts +2 -2
  535. package/dist/numerical/lowering.d.ts.map +1 -1
  536. package/dist/numerical/lowering.js +5 -3
  537. package/dist/numerical/lowering.js.map +1 -1
  538. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  539. package/dist/numerical/mathts-engine.js.map +1 -1
  540. package/dist/numerical/metric-inverse.js.map +1 -1
  541. package/dist/numerical/perihelion-finder.d.ts +15 -13
  542. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  543. package/dist/numerical/perihelion-finder.js +15 -13
  544. package/dist/numerical/perihelion-finder.js.map +1 -1
  545. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  546. package/dist/numerical/weyl-lowering.js +90 -40
  547. package/dist/numerical/weyl-lowering.js.map +1 -1
  548. package/package.json +163 -104
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Atlas Phase 4, S4.1 — the applicability checker.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §1.
5
+ *
6
+ * **This module answers "what about this bridge is not checked?", and it
7
+ * returns FINDINGS rather than a boolean.** A boolean would have to choose
8
+ * between "unchecked" and "wrong", and those are the two states the module
9
+ * exists to keep apart. Every finding therefore carries a
10
+ * {@link ApplicabilitySeverity}:
11
+ *
12
+ * - `'blocking'` — the data CONTRADICTS ITSELF. A dimensional failure, two
13
+ * records declaring opposite conventions, a literal zero divisor.
14
+ * - `'question'` — the data is SILENT. A divisor nobody guarded, a convention
15
+ * only one side declares, two premise models whose relationship is
16
+ * unrecorded.
17
+ *
18
+ * `src/atlas/conventions.ts` already argues this asymmetry at length for the
19
+ * convention comparison: absence is not disagreement. The same reasoning
20
+ * governs every rule here. Collapsing the two severities would report "four
21
+ * findings" for a record whose only defect is that nobody wrote something
22
+ * down, and would bury a genuine contradiction among them.
23
+ *
24
+ * **Nothing here mutates a record and nothing here is a verdict.** The checker
25
+ * has no authority to promote or reject: it produces the list a reviewer reads.
26
+ * That is the same firewall the rest of the repo keeps — no machine verdict
27
+ * mutates a catalog.
28
+ *
29
+ * @module atlas/applicability
30
+ * @internal
31
+ */
32
+ import { validate } from '../dimensional/validator.js';
33
+ import { checkConventions, unknownConventionKeys } from './conventions.js';
34
+ /**
35
+ * Non-vanishing markers a side condition may use. Matched case-insensitively
36
+ * against the side-condition prose.
37
+ *
38
+ * ⚠ **Shallow by design, and the asymmetry is the point** (design note §1.3).
39
+ * A side condition is free text and no parser exists for it. The failure mode
40
+ * is a FALSE QUESTION — a genuinely guarded divisor phrased in words this list
41
+ * does not know — never a false clearance, because a divisor absent from the
42
+ * prose cannot match any marker. The check over-asks rather than over-clears.
43
+ */
44
+ const NONVANISHING_MARKERS = [
45
+ '≠ 0',
46
+ '≠0',
47
+ '!= 0',
48
+ '!=0',
49
+ '<> 0',
50
+ '<>0',
51
+ 'nonzero',
52
+ 'non-zero',
53
+ 'non zero',
54
+ '> 0',
55
+ '>0',
56
+ 'positive',
57
+ ];
58
+ /** Free symbol names appearing anywhere in a subtree. */
59
+ function symbolNames(node, into = new Set()) {
60
+ if (node.kind === 'symbol') {
61
+ into.add(node.name);
62
+ return into;
63
+ }
64
+ for (const child of childNodes(node))
65
+ symbolNames(child, into);
66
+ return into;
67
+ }
68
+ /**
69
+ * The `ExprNode` children of a node, for the scalar grammar this checker
70
+ * reasons about. Tensor and curvature node families have no children here and
71
+ * return `[]`: the side-condition and squaring rules are statements about
72
+ * scalar algebra, and silently descending into a tensor node would invite
73
+ * findings whose `where` path means nothing to a reader.
74
+ */
75
+ function childNodes(node) {
76
+ switch (node.kind) {
77
+ case 'op':
78
+ return node.args;
79
+ case 'integral':
80
+ return [node.over, node.integrand, ...(node.lower ? [node.lower] : []),
81
+ ...(node.upper ? [node.upper] : [])];
82
+ case 'derivative':
83
+ return [node.of, node.wrt];
84
+ case 'dirac-delta':
85
+ return [node.arg];
86
+ case 'variational-derivative':
87
+ return [node.functional, node.field, node.over];
88
+ case 'transcendental':
89
+ return [node.arg];
90
+ case 'abs':
91
+ return [node.arg];
92
+ default:
93
+ return [];
94
+ }
95
+ }
96
+ /**
97
+ * The numeric value of a leaf that IS a literal, or `null`.
98
+ *
99
+ * Literals are `symbol` leaves whose `name` parses as a number — the same
100
+ * convention `validator.ts` uses to recognise a literal exponent, so the two
101
+ * cannot disagree about what a literal is.
102
+ */
103
+ function literalValue(node) {
104
+ if (node.kind !== 'symbol')
105
+ return null;
106
+ if (node.name.trim() === '')
107
+ return null;
108
+ const v = Number(node.name);
109
+ return Number.isFinite(v) ? v : null;
110
+ }
111
+ /** Is `name` guarded as non-vanishing by any of the stated side conditions? */
112
+ function isGuarded(name, sideConditions) {
113
+ const needle = name.toLowerCase();
114
+ return sideConditions.some((raw) => {
115
+ const s = raw.toLowerCase();
116
+ if (!s.includes(needle))
117
+ return false;
118
+ return NONVANISHING_MARKERS.some((m) => s.includes(m));
119
+ });
120
+ }
121
+ /** An even, integer literal exponent, or `null` when the exponent is anything else. */
122
+ function evenLiteralExponent(node) {
123
+ if (node.kind !== 'op' || node.op !== '^')
124
+ return null;
125
+ const exp = node.args[1];
126
+ if (exp === undefined)
127
+ return null;
128
+ const v = literalValue(exp);
129
+ if (v === null || !Number.isInteger(v) || v === 0)
130
+ return null;
131
+ return v % 2 === 0 ? v : null;
132
+ }
133
+ /** Walk the AST, applying the side-condition and squaring rules. */
134
+ function checkAst(node, sideConditions, path, out) {
135
+ if (node.kind === 'op' && node.op === '/') {
136
+ const divisor = node.args[1];
137
+ if (divisor !== undefined) {
138
+ const lit = literalValue(divisor);
139
+ if (lit === 0) {
140
+ out.push({
141
+ kind: 'division-by-zero',
142
+ severity: 'blocking',
143
+ detail: 'Division by the literal 0.',
144
+ where: `${path}args[1]`,
145
+ });
146
+ }
147
+ else if (lit === null) {
148
+ // Not a literal: it needs a stated non-vanishing side condition.
149
+ const names = [...symbolNames(divisor)];
150
+ const unguarded = names.filter((n) => !isGuarded(n, sideConditions));
151
+ // Every name guarded ⇒ nothing to ask. A divisor with NO symbols and no
152
+ // literal value (a tensor leaf, say) is reported, because nothing about
153
+ // it can be checked and silence there would read as clearance.
154
+ if (names.length === 0 || unguarded.length > 0) {
155
+ const subject = names.length === 0 ? 'the divisor' : unguarded.join(', ');
156
+ out.push({
157
+ kind: 'division-unguarded',
158
+ severity: 'question',
159
+ detail: `Division whose divisor (${subject}) has no stated non-vanishing side ` +
160
+ 'condition. This is a question, not a defect: the divisor may well be ' +
161
+ 'non-zero and simply unstated.',
162
+ where: `${path}args[1]`,
163
+ });
164
+ }
165
+ }
166
+ }
167
+ }
168
+ // Difference (or sum) of two equal even powers ⇒ the relation was obtained by
169
+ // squaring, which admits the sign-flipped branch. See design note §1.4 for why
170
+ // an isolated even power is NOT reported.
171
+ if (node.kind === 'op' && (node.op === '-' || node.op === '+')) {
172
+ const exps = node.args.map(evenLiteralExponent);
173
+ for (let i = 0; i < exps.length; i += 1) {
174
+ for (let j = i + 1; j < exps.length; j += 1) {
175
+ const a = exps[i];
176
+ if (a !== null && a !== undefined && a === exps[j]) {
177
+ out.push({
178
+ kind: 'squaring-adds-solutions',
179
+ severity: 'question',
180
+ detail: `Two terms raised to the same even power (${a}) are equated. Raising a ` +
181
+ 'relation to an even power admits the sign-flipped branch, so a side ' +
182
+ 'condition fixing the sign is needed for the step to be reversible.',
183
+ where: `${path}args[${i}]`,
184
+ });
185
+ }
186
+ }
187
+ }
188
+ }
189
+ const children = childNodes(node);
190
+ for (let i = 0; i < children.length; i += 1) {
191
+ const child = children[i];
192
+ if (child !== undefined)
193
+ checkAst(child, sideConditions, `${path}args[${i}].`, out);
194
+ }
195
+ }
196
+ /** Is this family pair recorded as already bridged? Unordered. */
197
+ function bridgeDeclared(a, b, declared) {
198
+ return declared.some(([x, y]) => (x === a && y === b) || (x === b && y === a));
199
+ }
200
+ /**
201
+ * Every unresolved question and contradiction the checker can see in a record.
202
+ *
203
+ * An EMPTY result means "no rule fired", which is weaker than "this bridge is
204
+ * valid" and must not be reported as the latter. The rules in hand cover
205
+ * dimensions, declared conventions, division guards, even-power equating and
206
+ * model families; a bridge can be wrong in ways none of them reaches.
207
+ *
208
+ * @param input - the record's checkable parts. `sideConditions` is required.
209
+ * @returns findings in rule order (dimensions, conventions, AST, models);
210
+ * never `null`, never throws on a malformed AST.
211
+ * @internal
212
+ */
213
+ export function checkApplicability(input) {
214
+ const out = [];
215
+ // 1. Dimensions — the existing validator, unchanged.
216
+ if (input.ast !== undefined) {
217
+ const result = validate(input.ast);
218
+ for (const v of result.violations) {
219
+ // A warning-severity violation does not make the record inconsistent;
220
+ // reporting it as blocking would contradict `validate`'s own verdict.
221
+ const severity = (v.severity ?? 'error') === 'error' ? 'blocking' : 'question';
222
+ out.push({
223
+ kind: 'dimensional-inconsistency',
224
+ severity,
225
+ detail: v.note,
226
+ where: v.location === '' ? undefined : v.location,
227
+ });
228
+ }
229
+ if (result.inferredDimension === null && result.violations.length === 0) {
230
+ out.push({
231
+ kind: 'dimensional-inconsistency',
232
+ severity: 'blocking',
233
+ detail: 'No dimension could be inferred for the transformation AST.',
234
+ });
235
+ }
236
+ }
237
+ // 2. Conventions — mismatches block, asymmetric declarations are questions.
238
+ const mismatches = checkConventions(input.premiseConventions, input.conclusionConventions);
239
+ for (const key of mismatches) {
240
+ out.push({
241
+ kind: 'convention-mismatch',
242
+ severity: 'blocking',
243
+ detail: `Premise and conclusion declare different values for '${key}'. Two records ` +
244
+ 'that disagree on a sign or unit choice are not directly comparable.',
245
+ where: key,
246
+ });
247
+ }
248
+ for (const key of unknownConventionKeys(input.premiseConventions, input.conclusionConventions)) {
249
+ out.push({
250
+ kind: 'convention-undeclared',
251
+ severity: 'question',
252
+ detail: `Exactly one side declares '${key}'. Silence is not agreement: the other ` +
253
+ 'record may use the opposite choice and simply never said.',
254
+ where: key,
255
+ });
256
+ }
257
+ // 3. Side conditions over the AST.
258
+ if (input.ast !== undefined)
259
+ checkAst(input.ast, input.sideConditions, '', out);
260
+ // 4. Model compatibility.
261
+ const premises = input.premises ?? [];
262
+ const declared = input.declaredBridges ?? [];
263
+ const conclusionFamily = input.conclusion?.family;
264
+ const families = new Set(premises.map((m) => m.family));
265
+ if (conclusionFamily !== undefined)
266
+ families.add(conclusionFamily);
267
+ const familyList = [...families];
268
+ for (let i = 0; i < familyList.length; i += 1) {
269
+ for (let j = i + 1; j < familyList.length; j += 1) {
270
+ const a = familyList[i];
271
+ const b = familyList[j];
272
+ if (a === undefined || b === undefined)
273
+ continue;
274
+ if (bridgeDeclared(a, b, declared))
275
+ continue;
276
+ out.push({
277
+ kind: 'model-incompatibility',
278
+ severity: 'question',
279
+ detail: `Models span families '${a}' and '${b}' with no declared bridge between ` +
280
+ 'them. An unrecorded cross-family step is exactly what the atlas exists ' +
281
+ 'to make visible.',
282
+ where: `${a}|${b}`,
283
+ });
284
+ }
285
+ }
286
+ return out;
287
+ }
288
+ /**
289
+ * The `'blocking'` subset of {@link checkApplicability}.
290
+ *
291
+ * Offered because the two severities are read by different callers — a report
292
+ * shows both, a gate looks only at contradictions — and filtering on the
293
+ * severity string at every call site is how one of them eventually filters on
294
+ * the wrong one.
295
+ *
296
+ * @internal
297
+ */
298
+ export function blockingFindings(findings) {
299
+ return findings.filter((f) => f.severity === 'blocking');
300
+ }
301
+ //# sourceMappingURL=applicability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/atlas/applicability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Atlas Phase 1 — the association registry.
3
+ *
4
+ * An `Association` records that two things SHARE something: a constant, a
5
+ * symbol, a structure, or a line of historical influence. That is the whole of
6
+ * its meaning. It asserts **no relation** between the two, makes **no
7
+ * composite claim**, and is explicitly NOT a graph edge — design note §5: *"No
8
+ * `Association` semantics beyond a registry of typed pairs — the registry is a
9
+ * container in Sprint 1, and it makes no composite claims."*
10
+ *
11
+ * The distinction is the point. `CATALOG_GRAPH` edges are claims that one
12
+ * quantity DETERMINES another. An association is the opposite epistemic act:
13
+ * it is where the atlas writes down a resemblance it has already decided is
14
+ * NOT a link, so the resemblance stops being re-surfaced as if it were fresh.
15
+ * An association that also appeared as an edge would be a contradiction, and
16
+ * `tests/atlas/association.test.ts` pins that it never does.
17
+ *
18
+ * **The seed is the `'decoy'` half of the adjudication ledger.** A `decoy`
19
+ * verdict means a physicist looked at `a ≟ b` and found a coincidence with no
20
+ * mechanism — precisely a shared appearance with no relation behind it. Every
21
+ * `'decoy'` row in `ADJUDICATIONS` (`src/composition/adjudication.ts`) gets
22
+ * one entry here, id-linked, with its `grounds` copied VERBATIM as the `note`.
23
+ *
24
+ * **No new physics is added by this module**, and two deliberate choices keep
25
+ * it that way:
26
+ *
27
+ * - `note` is the adjudicator's own prose, never a restatement. Verbatimness
28
+ * is pinned by test against the live ledger, so a re-worded ledger entry
29
+ * fails rather than silently diverging from its copy here.
30
+ * - `kind` is assigned MECHANICALLY, not per pair. Every seed is
31
+ * `'shared-structure'` because every one of them reached the ledger the
32
+ * same way: the identification funnel pairs quantities that share a
33
+ * dimensional signature. Choosing a different `kind` per row would be a
34
+ * fresh physics judgement about each pair, which is exactly the claim this
35
+ * registry exists not to make.
36
+ *
37
+ * **Why the seed is written out rather than derived from `ADJUDICATIONS` at
38
+ * import time.** `src/composition/` may import atlas TYPES only, never the
39
+ * barrel, because a value import in the other direction closes a cycle
40
+ * `docs:deps` reports (`compose.ts` already imports `atlas/composition-table`).
41
+ * An `atlas → composition/adjudication → discovery → …` value import risks the
42
+ * same cycle from the other side. So this module stays a leaf, and the
43
+ * drift protection moves into the test, which is free to import both.
44
+ *
45
+ * @module atlas/association
46
+ */
47
+ /**
48
+ * What two records share. Each value names an observable resemblance, not a
49
+ * relation: none of them implies that either record determines, derives,
50
+ * approximates or restricts the other.
51
+ *
52
+ * @internal
53
+ */
54
+ export type AssociationKind = 'shared-constant' | 'shared-symbol' | 'shared-structure' | 'historical-influence';
55
+ /**
56
+ * One recorded resemblance between two named things.
57
+ *
58
+ * A container, deliberately. It has no `relation`, no `bound`, no `regime` and
59
+ * no `evidence` — the fields that would let it make a claim are absent because
60
+ * it makes none.
61
+ *
62
+ * @internal
63
+ */
64
+ export interface Association {
65
+ /**
66
+ * Stable identity. For a seeded entry this is the `CandidateAdjudication.id`
67
+ * it came from — `candidateId(a, b)`, the two names sorted and joined with
68
+ * `~` — so the association and the verdict that produced it share a key.
69
+ */
70
+ readonly id: string;
71
+ readonly kind: AssociationKind;
72
+ /** The two names, in the order `id` encodes them (sorted, `~`-split). */
73
+ readonly between: readonly [string, string];
74
+ /** Why the resemblance is only a resemblance. Adjudicator's prose, verbatim. */
75
+ readonly note: string;
76
+ /** Repo-relative path of the record this note was copied from. */
77
+ readonly citation: string;
78
+ }
79
+ /**
80
+ * The seeded registry: one entry per `'decoy'` adjudication, in ledger order.
81
+ *
82
+ * Kept in step with `ADJUDICATIONS` by
83
+ * `tests/atlas/association.test.ts`, which re-derives this array from the live
84
+ * ledger and deep-equals it. Adding a `'decoy'` verdict without adding its
85
+ * association here fails that test.
86
+ *
87
+ * @internal
88
+ */
89
+ export declare const ASSOCIATIONS: readonly Association[];
90
+ /** Look up an association by its `candidateId`-shaped key. @internal */
91
+ export declare function associationFor(id: string): Association | undefined;
92
+ //# sourceMappingURL=association.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"association.d.ts","sourceRoot":"","sources":["../../src/atlas/association.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,WAAW,EAyD9C,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAElE"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Atlas Phase 1 — the association registry.
3
+ *
4
+ * An `Association` records that two things SHARE something: a constant, a
5
+ * symbol, a structure, or a line of historical influence. That is the whole of
6
+ * its meaning. It asserts **no relation** between the two, makes **no
7
+ * composite claim**, and is explicitly NOT a graph edge — design note §5: *"No
8
+ * `Association` semantics beyond a registry of typed pairs — the registry is a
9
+ * container in Sprint 1, and it makes no composite claims."*
10
+ *
11
+ * The distinction is the point. `CATALOG_GRAPH` edges are claims that one
12
+ * quantity DETERMINES another. An association is the opposite epistemic act:
13
+ * it is where the atlas writes down a resemblance it has already decided is
14
+ * NOT a link, so the resemblance stops being re-surfaced as if it were fresh.
15
+ * An association that also appeared as an edge would be a contradiction, and
16
+ * `tests/atlas/association.test.ts` pins that it never does.
17
+ *
18
+ * **The seed is the `'decoy'` half of the adjudication ledger.** A `decoy`
19
+ * verdict means a physicist looked at `a ≟ b` and found a coincidence with no
20
+ * mechanism — precisely a shared appearance with no relation behind it. Every
21
+ * `'decoy'` row in `ADJUDICATIONS` (`src/composition/adjudication.ts`) gets
22
+ * one entry here, id-linked, with its `grounds` copied VERBATIM as the `note`.
23
+ *
24
+ * **No new physics is added by this module**, and two deliberate choices keep
25
+ * it that way:
26
+ *
27
+ * - `note` is the adjudicator's own prose, never a restatement. Verbatimness
28
+ * is pinned by test against the live ledger, so a re-worded ledger entry
29
+ * fails rather than silently diverging from its copy here.
30
+ * - `kind` is assigned MECHANICALLY, not per pair. Every seed is
31
+ * `'shared-structure'` because every one of them reached the ledger the
32
+ * same way: the identification funnel pairs quantities that share a
33
+ * dimensional signature. Choosing a different `kind` per row would be a
34
+ * fresh physics judgement about each pair, which is exactly the claim this
35
+ * registry exists not to make.
36
+ *
37
+ * **Why the seed is written out rather than derived from `ADJUDICATIONS` at
38
+ * import time.** `src/composition/` may import atlas TYPES only, never the
39
+ * barrel, because a value import in the other direction closes a cycle
40
+ * `docs:deps` reports (`compose.ts` already imports `atlas/composition-table`).
41
+ * An `atlas → composition/adjudication → discovery → …` value import risks the
42
+ * same cycle from the other side. So this module stays a leaf, and the
43
+ * drift protection moves into the test, which is free to import both.
44
+ *
45
+ * @module atlas/association
46
+ */
47
+ /**
48
+ * The seeded registry: one entry per `'decoy'` adjudication, in ledger order.
49
+ *
50
+ * Kept in step with `ADJUDICATIONS` by
51
+ * `tests/atlas/association.test.ts`, which re-derives this array from the live
52
+ * ledger and deep-equals it. Adding a `'decoy'` verdict without adding its
53
+ * association here fails that test.
54
+ *
55
+ * @internal
56
+ */
57
+ export const ASSOCIATIONS = [
58
+ {
59
+ id: 'erasure-energy~photon-energy',
60
+ kind: 'shared-structure',
61
+ between: ['erasure-energy', 'photon-energy'],
62
+ note: "Dimensional coincidence; no mechanism. Landauer's k_B·T·ln2 is a statistical lower bound on heat dissipated to a reservoir; equating it to a single photon's hν has no universal mechanism — it rewrites thermal energy in frequency units.",
63
+ citation: 'docs/research/proposed-equations-adjudication.md',
64
+ },
65
+ {
66
+ id: 'dark-fermion-mass~erasure-energy',
67
+ kind: 'shared-structure',
68
+ between: ['dark-fermion-mass', 'erasure-energy'],
69
+ note: 'Dimensional coincidence; no mechanism. A speculative hidden-sector mass m = gv set equal to a context-dependent erasure energy — no model links a particle mass to an arbitrary processor\'s temperature.',
70
+ citation: 'docs/research/proposed-equations-adjudication.md',
71
+ },
72
+ {
73
+ id: 'dark-fermion-mass~rest-energy',
74
+ kind: 'shared-structure',
75
+ between: ['dark-fermion-mass', 'rest-energy'],
76
+ note: 'Trivial/definitional. m = vg/c² re-expresses the dark-fermion mass via E=mc² instead of via Landauer (cf. PE-2) — a definitional application, not a new bridge.',
77
+ citation: 'docs/research/proposed-equations-adjudication.md',
78
+ },
79
+ {
80
+ id: 'hubble-distance~peak-wavelength',
81
+ kind: 'shared-structure',
82
+ between: ['hubble-distance', 'peak-wavelength'],
83
+ note: 'Dimensional coincidence; no mechanism. A blackbody peak wavelength equated with the cosmological horizon — disparate domains, no mechanism; numerically off by ~10²⁹ for the CMB. The clearest "coincidence, not physics" case.',
84
+ citation: 'docs/research/proposed-equations-adjudication.md',
85
+ },
86
+ {
87
+ id: 'coarsening-length~quantum-correlation-length',
88
+ kind: 'shared-structure',
89
+ between: ['coarsening-length', 'quantum-correlation-length'],
90
+ note: 'Non-equilibrium vs equilibrium length; unanimous. A coarsening length is a non-equilibrium domain size formed by quenching through a critical point; the quantum correlation length ξ is an equilibrium static property at it. Different processes — not the same length.',
91
+ citation: 'docs/research/orphan-connector-adjudication.md',
92
+ },
93
+ {
94
+ id: 'effective-mass~tunneling-mass',
95
+ kind: 'shared-structure',
96
+ between: ['effective-mass', 'tunneling-mass'],
97
+ note: 'Different particles/Hamiltonians; unanimous. A proton\'s inertia in a specific biomolecular potential vs. an emergent electronic quasiparticle\'s effective mass in a strongly-correlated metal. Different particles, different Hamiltonians, unrelated scales.',
98
+ citation: 'docs/research/orphan-connector-adjudication.md',
99
+ },
100
+ {
101
+ id: 'decoherence-rate~mutation-rate',
102
+ kind: 'shared-structure',
103
+ between: ['decoherence-rate', 'mutation-rate'],
104
+ note: 'Same units, no shared meaning; unanimous. A decoherence rate (loss of quantum phase to the environment) vs. a mutation rate (frequency of a permanent, classical change to a DNA sequence). Same units, no shared physical meaning — decoherence may precede a mutation, but they are not one quantity.',
105
+ citation: 'docs/research/orphan-connector-adjudication.md',
106
+ },
107
+ ];
108
+ /** Look up an association by its `candidateId`-shaped key. @internal */
109
+ export function associationFor(id) {
110
+ return ASSOCIATIONS.find((a) => a.id === id);
111
+ }
112
+ //# sourceMappingURL=association.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"association.js","sourceRoot":"","sources":["../../src/atlas/association.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AAwCH;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD;QACE,EAAE,EAAE,8BAA8B;QAClC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,gBAAgB,EAAE,eAAe,CAAC;QAC5C,IAAI,EACF,6OAA6O;QAC/O,QAAQ,EAAE,kDAAkD;KAC7D;IACD;QACE,EAAE,EAAE,kCAAkC;QACtC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,mBAAmB,EAAE,gBAAgB,CAAC;QAChD,IAAI,EACF,2MAA2M;QAC7M,QAAQ,EAAE,kDAAkD;KAC7D;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,mBAAmB,EAAE,aAAa,CAAC;QAC7C,IAAI,EACF,iKAAiK;QACnK,QAAQ,EAAE,kDAAkD;KAC7D;IACD;QACE,EAAE,EAAE,iCAAiC;QACrC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;QAC/C,IAAI,EACF,iOAAiO;QACnO,QAAQ,EAAE,kDAAkD;KAC7D;IACD;QACE,EAAE,EAAE,8CAA8C;QAClD,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;QAC5D,IAAI,EACF,2QAA2Q;QAC7Q,QAAQ,EAAE,gDAAgD;KAC3D;IACD;QACE,EAAE,EAAE,+BAA+B;QACnC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QAC7C,IAAI,EACF,iQAAiQ;QACnQ,QAAQ,EAAE,gDAAgD;KAC3D;IACD;QACE,EAAE,EAAE,gCAAgC;QACpC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;QAC9C,IAAI,EACF,ySAAyS;QAC3S,QAAQ,EAAE,gDAAgD;KAC3D;CACF,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Atlas Phase 5, S5.3 — request and response SHAPES for the out-of-process
3
+ * conditions (embeddings, LLMs).
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-5-Design.md` §7.
6
+ *
7
+ * Only the shapes and a strict response parser live here. The process plumbing
8
+ * is the probe's existing NDJSON worker protocol
9
+ * (`src/composition/probe/backend-protocol.ts`): argv spawn, no shell, timeout,
10
+ * schema-validated output. **A malformed response is an ERROR, never a
11
+ * default:** an outcome that defaulted to `'abstain'` would credit a broken
12
+ * worker with the benchmark's preferred behaviour.
13
+ *
14
+ * @module atlas/benchmark/backend-shapes
15
+ * @internal
16
+ */
17
+ import type { RelationType } from '../types.js';
18
+ /** What an out-of-process condition is asked. @internal */
19
+ export interface BenchmarkBackendRequest {
20
+ readonly itemId: string;
21
+ /** `classify`: judge the claim. `retrieve`: rank `corpusIds` for it. */
22
+ readonly task: 'classify' | 'retrieve';
23
+ readonly premises: readonly string[];
24
+ readonly conclusion: string;
25
+ readonly claimedRelation: RelationType;
26
+ /** Required for `retrieve`: the records to rank. */
27
+ readonly corpusIds?: readonly string[];
28
+ readonly budgetMs: number;
29
+ }
30
+ /** What it answers. Exactly one of `outcome` or `ranking`, matching the task. @internal */
31
+ export interface BenchmarkBackendResponse {
32
+ readonly itemId: string;
33
+ readonly outcome?: 'accept' | 'reject' | 'abstain';
34
+ readonly ranking?: readonly string[];
35
+ }
36
+ /** A response that failed validation, with every reason. @internal */
37
+ export interface BackendShapeError {
38
+ readonly error: string;
39
+ }
40
+ /**
41
+ * Validate one parsed response against the request it answers.
42
+ *
43
+ * @returns the response, or an error naming every problem. Never throws.
44
+ * @internal
45
+ */
46
+ export declare function parseBackendResponse(request: BenchmarkBackendRequest, value: unknown): BenchmarkBackendResponse | BackendShapeError;
47
+ //# sourceMappingURL=backend-shapes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-shapes.d.ts","sourceRoot":"","sources":["../../../src/atlas/benchmark/backend-shapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,2DAA2D;AAC3D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,2FAA2F;AAC3F,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,uBAAuB,EAChC,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,iBAAiB,CAwB9C"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Atlas Phase 5, S5.3 — request and response SHAPES for the out-of-process
3
+ * conditions (embeddings, LLMs).
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-5-Design.md` §7.
6
+ *
7
+ * Only the shapes and a strict response parser live here. The process plumbing
8
+ * is the probe's existing NDJSON worker protocol
9
+ * (`src/composition/probe/backend-protocol.ts`): argv spawn, no shell, timeout,
10
+ * schema-validated output. **A malformed response is an ERROR, never a
11
+ * default:** an outcome that defaulted to `'abstain'` would credit a broken
12
+ * worker with the benchmark's preferred behaviour.
13
+ *
14
+ * @module atlas/benchmark/backend-shapes
15
+ * @internal
16
+ */
17
+ const OUTCOMES = new Set(['accept', 'reject', 'abstain']);
18
+ /**
19
+ * Validate one parsed response against the request it answers.
20
+ *
21
+ * @returns the response, or an error naming every problem. Never throws.
22
+ * @internal
23
+ */
24
+ export function parseBackendResponse(request, value) {
25
+ const problems = [];
26
+ if (value === null || typeof value !== 'object')
27
+ return { error: 'response is not an object' };
28
+ const v = value;
29
+ if (v['itemId'] !== request.itemId)
30
+ problems.push(`itemId ${String(v['itemId'])} ≠ ${request.itemId}`);
31
+ if (request.task === 'classify') {
32
+ if (typeof v['outcome'] !== 'string' || !OUTCOMES.has(v['outcome'])) {
33
+ problems.push('classify needs outcome ∈ {accept, reject, abstain}');
34
+ }
35
+ if (v['ranking'] !== undefined)
36
+ problems.push('classify must not carry a ranking');
37
+ }
38
+ else {
39
+ const r = v['ranking'];
40
+ if (!Array.isArray(r) || !r.every((x) => typeof x === 'string')) {
41
+ problems.push('retrieve needs ranking: string[]');
42
+ }
43
+ else {
44
+ const allowed = new Set(request.corpusIds ?? []);
45
+ const unknown = r.filter((x) => !allowed.has(x));
46
+ if (unknown.length > 0)
47
+ problems.push(`ranking names ids outside the corpus: ${unknown.join(', ')}`);
48
+ if (new Set(r).size !== r.length)
49
+ problems.push('ranking repeats an id');
50
+ }
51
+ if (v['outcome'] !== undefined)
52
+ problems.push('retrieve must not carry an outcome');
53
+ }
54
+ if (problems.length > 0)
55
+ return { error: problems.join('; ') };
56
+ return v;
57
+ }
58
+ //# sourceMappingURL=backend-shapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend-shapes.js","sourceRoot":"","sources":["../../../src/atlas/benchmark/backend-shapes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA6BH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAgC,EAChC,KAAc;IAEd,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;IAC/F,MAAM,CAAC,GAAG,KAAgC,CAAC;IAC3C,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACvG,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,CAAC,SAAS,CAAC,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAW,CAAC,CAAC,CAAC;YAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,yCAAyC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrG,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM;gBAAE,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,OAAO,CAAwC,CAAC;AAClD,CAAC"}