universal-physics-tensor 9.0.0 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1109) hide show
  1. package/README.md +21 -17
  2. package/bin/upt.mjs +13 -1
  3. package/data/atlas/atlas.json +79 -68
  4. package/data/atlas/atlas.jsonld +1 -1
  5. package/data/atlas/diffusion.json +24 -23
  6. package/data/atlas/oscillators.json +21 -16
  7. package/data/atlas/waves.json +36 -31
  8. package/data/atlas/witness-results.json +11 -11
  9. package/data/bridge-catalog.json +1192 -1636
  10. package/data/bridge-catalog.schema.json +390 -135
  11. package/data/quantities.json +53 -19
  12. package/data/schemas/atlas-record.v0.json +184 -46
  13. package/data/units.json +33 -4
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +35 -18
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.js.map +1 -1
  18. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  20. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  21. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  22. package/dist/atlas/benchmark/baselines.js +8 -0
  23. package/dist/atlas/benchmark/baselines.js.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  26. package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
  27. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  28. package/dist/atlas/benchmark/leakage.js.map +1 -1
  29. package/dist/atlas/benchmark/loader.js +2 -2
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +3 -3
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +16 -8
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  45. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  46. package/dist/atlas/catalog-formal-ref.js +52 -5
  47. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  48. package/dist/atlas/chain-pipeline.d.ts +0 -11
  49. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  50. package/dist/atlas/chain-pipeline.js +12 -24
  51. package/dist/atlas/chain-pipeline.js.map +1 -1
  52. package/dist/atlas/composition-table.js.map +1 -1
  53. package/dist/atlas/conventions.js.map +1 -1
  54. package/dist/atlas/coverage.d.ts +2 -2
  55. package/dist/atlas/coverage.js.map +1 -1
  56. package/dist/atlas/derivation.js.map +1 -1
  57. package/dist/atlas/derive-evidence.d.ts +6 -4
  58. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  59. package/dist/atlas/derive-evidence.js +7 -2
  60. package/dist/atlas/derive-evidence.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  62. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  63. package/dist/atlas/diffusion/bridges-closure.js +8 -17
  64. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  65. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  66. package/dist/atlas/diffusion/bridges.js +27 -42
  67. package/dist/atlas/diffusion/bridges.js.map +1 -1
  68. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  69. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  70. package/dist/atlas/diffusion/dimensions.js +8 -16
  71. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  72. package/dist/atlas/diffusion/index.d.ts +1 -1
  73. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  74. package/dist/atlas/diffusion/index.js.map +1 -1
  75. package/dist/atlas/diffusion/models.d.ts +3 -3
  76. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  77. package/dist/atlas/diffusion/models.js +5 -10
  78. package/dist/atlas/diffusion/models.js.map +1 -1
  79. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  80. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  81. package/dist/atlas/diffusion/numerics.js +38 -24
  82. package/dist/atlas/diffusion/numerics.js.map +1 -1
  83. package/dist/atlas/error-algebra.d.ts +6 -0
  84. package/dist/atlas/error-algebra.d.ts.map +1 -1
  85. package/dist/atlas/error-algebra.js +26 -0
  86. package/dist/atlas/error-algebra.js.map +1 -1
  87. package/dist/atlas/export.d.ts +18 -2
  88. package/dist/atlas/export.d.ts.map +1 -1
  89. package/dist/atlas/export.js +9 -3
  90. package/dist/atlas/export.js.map +1 -1
  91. package/dist/atlas/families.d.ts +19 -2
  92. package/dist/atlas/families.d.ts.map +1 -1
  93. package/dist/atlas/families.js +26 -3
  94. package/dist/atlas/families.js.map +1 -1
  95. package/dist/atlas/family.d.ts +27 -0
  96. package/dist/atlas/family.d.ts.map +1 -0
  97. package/dist/atlas/family.js +12 -0
  98. package/dist/atlas/family.js.map +1 -0
  99. package/dist/atlas/index.d.ts +3 -2
  100. package/dist/atlas/index.d.ts.map +1 -1
  101. package/dist/atlas/index.js +2 -1
  102. package/dist/atlas/index.js.map +1 -1
  103. package/dist/atlas/link-prediction.d.ts +107 -4
  104. package/dist/atlas/link-prediction.d.ts.map +1 -1
  105. package/dist/atlas/link-prediction.js +212 -66
  106. package/dist/atlas/link-prediction.js.map +1 -1
  107. package/dist/atlas/model.js.map +1 -1
  108. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  109. package/dist/atlas/oscillators/bridges-coarse.js +7 -12
  110. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  111. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  112. package/dist/atlas/oscillators/bridges-exact.js +6 -10
  113. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  114. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  115. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  116. package/dist/atlas/oscillators/bridges-limits.js +23 -36
  117. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  118. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  119. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  120. package/dist/atlas/oscillators/dimensions.js +9 -21
  121. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  122. package/dist/atlas/oscillators/index.d.ts +1 -16
  123. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  124. package/dist/atlas/oscillators/index.js.map +1 -1
  125. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  126. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  127. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  128. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  129. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  130. package/dist/atlas/oscillators/models.js +2 -6
  131. package/dist/atlas/oscillators/models.js.map +1 -1
  132. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  133. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  134. package/dist/atlas/oscillators/norms.js.map +1 -1
  135. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  136. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  137. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  138. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  139. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  140. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  141. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  142. package/dist/atlas/oscillators/phase-translation.js +3 -4
  143. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  144. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  145. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  146. package/dist/atlas/oscillators/position-translation.js +123 -12
  147. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  148. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  149. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  150. package/dist/atlas/oscillators/rejections.js +0 -7
  151. package/dist/atlas/oscillators/rejections.js.map +1 -1
  152. package/dist/atlas/path-bound.js.map +1 -1
  153. package/dist/atlas/physjs-entries.generated.d.ts +25 -24
  154. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  155. package/dist/atlas/physjs-entries.generated.js +25 -24
  156. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  157. package/dist/atlas/physjs-ref.d.ts +107 -70
  158. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  159. package/dist/atlas/physjs-ref.js +184 -101
  160. package/dist/atlas/physjs-ref.js.map +1 -1
  161. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  162. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  163. package/dist/atlas/physjs-reviewed.js +194 -0
  164. package/dist/atlas/physjs-reviewed.js.map +1 -0
  165. package/dist/atlas/poster/associations.js.map +1 -1
  166. package/dist/atlas/poster/derivations.js.map +1 -1
  167. package/dist/atlas/poster/statements.d.ts +0 -19
  168. package/dist/atlas/poster/statements.d.ts.map +1 -1
  169. package/dist/atlas/poster/statements.js +1 -1
  170. package/dist/atlas/poster/statements.js.map +1 -1
  171. package/dist/atlas/proof-target.d.ts +1 -1
  172. package/dist/atlas/proof-target.js +1 -1
  173. package/dist/atlas/proof-target.js.map +1 -1
  174. package/dist/atlas/public.d.ts +2 -1
  175. package/dist/atlas/public.d.ts.map +1 -1
  176. package/dist/atlas/public.js +2 -1
  177. package/dist/atlas/public.js.map +1 -1
  178. package/dist/atlas/regime.d.ts +1 -1
  179. package/dist/atlas/regime.d.ts.map +1 -1
  180. package/dist/atlas/regime.js +1 -1
  181. package/dist/atlas/regime.js.map +1 -1
  182. package/dist/atlas/serialize.d.ts +18 -12
  183. package/dist/atlas/serialize.d.ts.map +1 -1
  184. package/dist/atlas/serialize.js +28 -18
  185. package/dist/atlas/serialize.js.map +1 -1
  186. package/dist/atlas/statement.js.map +1 -1
  187. package/dist/atlas/text-overlap.d.ts +23 -0
  188. package/dist/atlas/text-overlap.d.ts.map +1 -0
  189. package/dist/atlas/text-overlap.js +41 -0
  190. package/dist/atlas/text-overlap.js.map +1 -0
  191. package/dist/atlas/translation-registry.js.map +1 -1
  192. package/dist/atlas/translation.js.map +1 -1
  193. package/dist/atlas/types.d.ts +9 -2
  194. package/dist/atlas/types.d.ts.map +1 -1
  195. package/dist/atlas/types.js +1 -1
  196. package/dist/atlas/types.js.map +1 -1
  197. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  198. package/dist/atlas/waves/bridges-closure.js +2 -9
  199. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  200. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  201. package/dist/atlas/waves/bridges.js +32 -52
  202. package/dist/atlas/waves/bridges.js.map +1 -1
  203. package/dist/atlas/waves/index.d.ts +1 -1
  204. package/dist/atlas/waves/index.d.ts.map +1 -1
  205. package/dist/atlas/waves/index.js.map +1 -1
  206. package/dist/atlas/waves/models.d.ts +5 -6
  207. package/dist/atlas/waves/models.d.ts.map +1 -1
  208. package/dist/atlas/waves/models.js +7 -13
  209. package/dist/atlas/waves/models.js.map +1 -1
  210. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  211. package/dist/atlas/waves/numerics.js +10 -3
  212. package/dist/atlas/waves/numerics.js.map +1 -1
  213. package/dist/atlas/witness-artifact.js.map +1 -1
  214. package/dist/atlas/witness-dominance.d.ts +4 -3
  215. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  216. package/dist/atlas/witness-dominance.js +15 -5
  217. package/dist/atlas/witness-dominance.js.map +1 -1
  218. package/dist/atlas/witness-numeric.d.ts +38 -4
  219. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  220. package/dist/atlas/witness-numeric.js +80 -2
  221. package/dist/atlas/witness-numeric.js.map +1 -1
  222. package/dist/atlas/witness-result.d.ts +7 -1
  223. package/dist/atlas/witness-result.d.ts.map +1 -1
  224. package/dist/atlas/witness-result.js.map +1 -1
  225. package/dist/atlas/witness-specs.d.ts.map +1 -1
  226. package/dist/atlas/witness-specs.js +19 -0
  227. package/dist/atlas/witness-specs.js.map +1 -1
  228. package/dist/atlas/witness-symbolic.d.ts +75 -3
  229. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  230. package/dist/atlas/witness-symbolic.js +116 -10
  231. package/dist/atlas/witness-symbolic.js.map +1 -1
  232. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  233. package/dist/bridges/caller-table.d.ts +1 -1
  234. package/dist/bridges/caller-table.d.ts.map +1 -1
  235. package/dist/bridges/caller-table.js.map +1 -1
  236. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  237. package/dist/bridges/carrier-sign.js +8 -3
  238. package/dist/bridges/carrier-sign.js.map +1 -1
  239. package/dist/bridges/catalog-adapter.d.ts +12 -3
  240. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  241. package/dist/bridges/catalog-adapter.js +17 -9
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/catalog-load.d.ts +12 -2
  244. package/dist/bridges/catalog-load.d.ts.map +1 -1
  245. package/dist/bridges/catalog-load.js +181 -13
  246. package/dist/bridges/catalog-load.js.map +1 -1
  247. package/dist/bridges/catalog-types.d.ts +74 -26
  248. package/dist/bridges/catalog-types.d.ts.map +1 -1
  249. package/dist/bridges/catalog-types.js +11 -1
  250. package/dist/bridges/catalog-types.js.map +1 -1
  251. package/dist/bridges/coefficient-statement.js +1 -5
  252. package/dist/bridges/coefficient-statement.js.map +1 -1
  253. package/dist/bridges/confrontation-coverage.js.map +1 -1
  254. package/dist/bridges/confrontations.d.ts +1 -1
  255. package/dist/bridges/confrontations.d.ts.map +1 -1
  256. package/dist/bridges/confrontations.js +1 -1
  257. package/dist/bridges/confrontations.js.map +1 -1
  258. package/dist/bridges/evaluation-errors.d.ts +46 -3
  259. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  260. package/dist/bridges/evaluation-errors.js +40 -4
  261. package/dist/bridges/evaluation-errors.js.map +1 -1
  262. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  263. package/dist/bridges/evaluator-inputs.js +7 -5
  264. package/dist/bridges/evaluator-inputs.js.map +1 -1
  265. package/dist/bridges/evaluators.d.ts +17 -2
  266. package/dist/bridges/evaluators.d.ts.map +1 -1
  267. package/dist/bridges/evaluators.js +76 -28
  268. package/dist/bridges/evaluators.js.map +1 -1
  269. package/dist/bridges/expr-parse.d.ts +38 -4
  270. package/dist/bridges/expr-parse.d.ts.map +1 -1
  271. package/dist/bridges/expr-parse.js +101 -12
  272. package/dist/bridges/expr-parse.js.map +1 -1
  273. package/dist/bridges/holds.d.ts +40 -4
  274. package/dist/bridges/holds.d.ts.map +1 -1
  275. package/dist/bridges/holds.js +128 -19
  276. package/dist/bridges/holds.js.map +1 -1
  277. package/dist/bridges/index.d.ts +15 -14
  278. package/dist/bridges/index.d.ts.map +1 -1
  279. package/dist/bridges/index.js +14 -15
  280. package/dist/bridges/index.js.map +1 -1
  281. package/dist/bridges/input-contract.js.map +1 -1
  282. package/dist/bridges/membership.d.ts +5 -3
  283. package/dist/bridges/membership.d.ts.map +1 -1
  284. package/dist/bridges/membership.js +5 -6
  285. package/dist/bridges/membership.js.map +1 -1
  286. package/dist/bridges/notices.d.ts.map +1 -1
  287. package/dist/bridges/notices.js +5 -5
  288. package/dist/bridges/notices.js.map +1 -1
  289. package/dist/bridges/observations/types.js.map +1 -1
  290. package/dist/bridges/rejected.d.ts +11 -17
  291. package/dist/bridges/rejected.d.ts.map +1 -1
  292. package/dist/bridges/rejected.js +13 -68
  293. package/dist/bridges/rejected.js.map +1 -1
  294. package/dist/bridges/relation-eval.d.ts +6 -7
  295. package/dist/bridges/relation-eval.d.ts.map +1 -1
  296. package/dist/bridges/relation-eval.js +20 -50
  297. package/dist/bridges/relation-eval.js.map +1 -1
  298. package/dist/bridges/rhs-registry.js.map +1 -1
  299. package/dist/bridges/sensitivity.d.ts +11 -3
  300. package/dist/bridges/sensitivity.d.ts.map +1 -1
  301. package/dist/bridges/sensitivity.js +27 -13
  302. package/dist/bridges/sensitivity.js.map +1 -1
  303. package/dist/bridges/tensor-index.js.map +1 -1
  304. package/dist/bridges/types.d.ts +1 -7
  305. package/dist/bridges/types.d.ts.map +1 -1
  306. package/dist/bridges/types.js +1 -4
  307. package/dist/bridges/types.js.map +1 -1
  308. package/dist/bridges/validity.d.ts +33 -0
  309. package/dist/bridges/validity.d.ts.map +1 -0
  310. package/dist/bridges/validity.js +67 -0
  311. package/dist/bridges/validity.js.map +1 -0
  312. package/dist/canonical/canonical-equation.js.map +1 -1
  313. package/dist/canonical/dimensional-fields.js.map +1 -1
  314. package/dist/canonical/entries/_l1-build.js.map +1 -1
  315. package/dist/canonical/entries/atomic.js +1 -3
  316. package/dist/canonical/entries/atomic.js.map +1 -1
  317. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  318. package/dist/canonical/entries/condensed-matter.js +8 -9
  319. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  320. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  321. package/dist/canonical/entries/dimensional-classics.js +5 -6
  322. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  323. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  324. package/dist/canonical/entries/electromagnetism.js +6 -12
  325. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  326. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  327. package/dist/canonical/entries/fluids-waves.js +3 -7
  328. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  329. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  330. package/dist/canonical/entries/mechanics.js +4 -6
  331. package/dist/canonical/entries/mechanics.js.map +1 -1
  332. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  333. package/dist/canonical/entries/nonmonomial.js +38 -39
  334. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  335. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  336. package/dist/canonical/entries/relativity.js +6 -6
  337. package/dist/canonical/entries/relativity.js.map +1 -1
  338. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  339. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  340. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  341. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  342. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  343. package/dist/canonical/fixed-points.d.ts +94 -0
  344. package/dist/canonical/fixed-points.d.ts.map +1 -0
  345. package/dist/canonical/fixed-points.js +81 -0
  346. package/dist/canonical/fixed-points.js.map +1 -0
  347. package/dist/canonical/linkage.d.ts +29 -4
  348. package/dist/canonical/linkage.d.ts.map +1 -1
  349. package/dist/canonical/linkage.js +47 -64
  350. package/dist/canonical/linkage.js.map +1 -1
  351. package/dist/canonical/normal-form.d.ts +0 -8
  352. package/dist/canonical/normal-form.d.ts.map +1 -1
  353. package/dist/canonical/normal-form.js +22 -23
  354. package/dist/canonical/normal-form.js.map +1 -1
  355. package/dist/canonical/registry.js.map +1 -1
  356. package/dist/canonical/residual.js.map +1 -1
  357. package/dist/canonical/seed-l-layer.d.ts +7 -1
  358. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  359. package/dist/canonical/seed-l-layer.js +7 -1
  360. package/dist/canonical/seed-l-layer.js.map +1 -1
  361. package/dist/canonical/structural.d.ts +42 -21
  362. package/dist/canonical/structural.d.ts.map +1 -1
  363. package/dist/canonical/structural.js +64 -23
  364. package/dist/canonical/structural.js.map +1 -1
  365. package/dist/cases/brownian-sphere.d.ts +3 -3
  366. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  367. package/dist/cases/brownian-sphere.js +10 -9
  368. package/dist/cases/brownian-sphere.js.map +1 -1
  369. package/dist/cases/damped-resonator.d.ts.map +1 -1
  370. package/dist/cases/damped-resonator.js +8 -11
  371. package/dist/cases/damped-resonator.js.map +1 -1
  372. package/dist/cases/index.js.map +1 -1
  373. package/dist/cases/kepler-rv.d.ts +1 -1
  374. package/dist/cases/kepler-rv.d.ts.map +1 -1
  375. package/dist/cases/kepler-rv.js +3 -2
  376. package/dist/cases/kepler-rv.js.map +1 -1
  377. package/dist/cases/lumped-cooling.d.ts +8 -3
  378. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  379. package/dist/cases/lumped-cooling.js +22 -24
  380. package/dist/cases/lumped-cooling.js.map +1 -1
  381. package/dist/cases/quadrature.d.ts +7 -9
  382. package/dist/cases/quadrature.d.ts.map +1 -1
  383. package/dist/cases/quadrature.js +28 -32
  384. package/dist/cases/quadrature.js.map +1 -1
  385. package/dist/cases/resistor-noise.js +7 -7
  386. package/dist/cases/resistor-noise.js.map +1 -1
  387. package/dist/cases/skin-depth.d.ts +0 -4
  388. package/dist/cases/skin-depth.d.ts.map +1 -1
  389. package/dist/cases/skin-depth.js +3 -7
  390. package/dist/cases/skin-depth.js.map +1 -1
  391. package/dist/cases/types.js.map +1 -1
  392. package/dist/cli/args.d.ts +30 -3
  393. package/dist/cli/args.d.ts.map +1 -1
  394. package/dist/cli/args.js +47 -9
  395. package/dist/cli/args.js.map +1 -1
  396. package/dist/cli/bindings.d.ts +13 -0
  397. package/dist/cli/bindings.d.ts.map +1 -0
  398. package/dist/cli/bindings.js +33 -0
  399. package/dist/cli/bindings.js.map +1 -0
  400. package/dist/cli/closed-form-range.js.map +1 -1
  401. package/dist/cli/command.d.ts +8 -1
  402. package/dist/cli/command.d.ts.map +1 -1
  403. package/dist/cli/command.js.map +1 -1
  404. package/dist/cli/commands/_atlas-map.d.ts +2 -11
  405. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  406. package/dist/cli/commands/_atlas-map.js +50 -35
  407. package/dist/cli/commands/_atlas-map.js.map +1 -1
  408. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  409. package/dist/cli/commands/_atlas-route.js +6 -2
  410. package/dist/cli/commands/_atlas-route.js.map +1 -1
  411. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  412. package/dist/cli/commands/_discovery-opts.js +48 -14
  413. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  414. package/dist/cli/commands/atlas.d.ts.map +1 -1
  415. package/dist/cli/commands/atlas.js +9 -8
  416. package/dist/cli/commands/atlas.js.map +1 -1
  417. package/dist/cli/commands/audit.d.ts.map +1 -1
  418. package/dist/cli/commands/audit.js +20 -20
  419. package/dist/cli/commands/audit.js.map +1 -1
  420. package/dist/cli/commands/axes.d.ts.map +1 -1
  421. package/dist/cli/commands/axes.js +20 -1
  422. package/dist/cli/commands/axes.js.map +1 -1
  423. package/dist/cli/commands/candidates.d.ts.map +1 -1
  424. package/dist/cli/commands/candidates.js +16 -8
  425. package/dist/cli/commands/candidates.js.map +1 -1
  426. package/dist/cli/commands/canonical.js.map +1 -1
  427. package/dist/cli/commands/chain.js +1 -1
  428. package/dist/cli/commands/chain.js.map +1 -1
  429. package/dist/cli/commands/confront.d.ts.map +1 -1
  430. package/dist/cli/commands/confront.js +22 -20
  431. package/dist/cli/commands/confront.js.map +1 -1
  432. package/dist/cli/commands/connectors.js.map +1 -1
  433. package/dist/cli/commands/coverage.js.map +1 -1
  434. package/dist/cli/commands/derive.d.ts.map +1 -1
  435. package/dist/cli/commands/derive.js +60 -35
  436. package/dist/cli/commands/derive.js.map +1 -1
  437. package/dist/cli/commands/discover.d.ts.map +1 -1
  438. package/dist/cli/commands/discover.js +20 -10
  439. package/dist/cli/commands/discover.js.map +1 -1
  440. package/dist/cli/commands/eval.d.ts.map +1 -1
  441. package/dist/cli/commands/eval.js +14 -10
  442. package/dist/cli/commands/eval.js.map +1 -1
  443. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  444. package/dist/cli/commands/evaluate.js +108 -58
  445. package/dist/cli/commands/evaluate.js.map +1 -1
  446. package/dist/cli/commands/explain.d.ts.map +1 -1
  447. package/dist/cli/commands/explain.js +16 -8
  448. package/dist/cli/commands/explain.js.map +1 -1
  449. package/dist/cli/commands/frontier.js.map +1 -1
  450. package/dist/cli/commands/ground.d.ts.map +1 -1
  451. package/dist/cli/commands/ground.js +41 -10
  452. package/dist/cli/commands/ground.js.map +1 -1
  453. package/dist/cli/commands/index.js.map +1 -1
  454. package/dist/cli/commands/map.d.ts.map +1 -1
  455. package/dist/cli/commands/map.js +155 -92
  456. package/dist/cli/commands/map.js.map +1 -1
  457. package/dist/cli/commands/metric.d.ts.map +1 -1
  458. package/dist/cli/commands/metric.js +58 -20
  459. package/dist/cli/commands/metric.js.map +1 -1
  460. package/dist/cli/commands/path.d.ts +10 -0
  461. package/dist/cli/commands/path.d.ts.map +1 -1
  462. package/dist/cli/commands/path.js +29 -7
  463. package/dist/cli/commands/path.js.map +1 -1
  464. package/dist/cli/commands/predict.js.map +1 -1
  465. package/dist/cli/commands/priority.js.map +1 -1
  466. package/dist/cli/commands/probe.d.ts.map +1 -1
  467. package/dist/cli/commands/probe.js +105 -38
  468. package/dist/cli/commands/probe.js.map +1 -1
  469. package/dist/cli/commands/recover.js +1 -1
  470. package/dist/cli/commands/recover.js.map +1 -1
  471. package/dist/cli/commands/regime.d.ts +5 -4
  472. package/dist/cli/commands/regime.d.ts.map +1 -1
  473. package/dist/cli/commands/regime.js +25 -26
  474. package/dist/cli/commands/regime.js.map +1 -1
  475. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  476. package/dist/cli/commands/retrieve.js +23 -14
  477. package/dist/cli/commands/retrieve.js.map +1 -1
  478. package/dist/cli/commands/search.d.ts.map +1 -1
  479. package/dist/cli/commands/search.js +9 -4
  480. package/dist/cli/commands/search.js.map +1 -1
  481. package/dist/cli/commands/symbolic.js +31 -36
  482. package/dist/cli/commands/symbolic.js.map +1 -1
  483. package/dist/cli/commands/testplan.d.ts.map +1 -1
  484. package/dist/cli/commands/testplan.js +5 -3
  485. package/dist/cli/commands/testplan.js.map +1 -1
  486. package/dist/cli/conventions.js.map +1 -1
  487. package/dist/cli/determination.js.map +1 -1
  488. package/dist/cli/errors.js.map +1 -1
  489. package/dist/cli/euler-guard.js.map +1 -1
  490. package/dist/cli/eval-numbers.js.map +1 -1
  491. package/dist/cli/expr-print.d.ts +28 -3
  492. package/dist/cli/expr-print.d.ts.map +1 -1
  493. package/dist/cli/expr-print.js +42 -22
  494. package/dist/cli/expr-print.js.map +1 -1
  495. package/dist/cli/flag-help.js.map +1 -1
  496. package/dist/cli/graphs.js.map +1 -1
  497. package/dist/cli/library-defaults.d.ts +19 -0
  498. package/dist/cli/library-defaults.d.ts.map +1 -0
  499. package/dist/cli/library-defaults.js +22 -0
  500. package/dist/cli/library-defaults.js.map +1 -0
  501. package/dist/cli/main.d.ts +7 -0
  502. package/dist/cli/main.d.ts.map +1 -1
  503. package/dist/cli/main.js +25 -6
  504. package/dist/cli/main.js.map +1 -1
  505. package/dist/cli/map-evidence.js.map +1 -1
  506. package/dist/cli/numeric-flag.d.ts +12 -0
  507. package/dist/cli/numeric-flag.d.ts.map +1 -0
  508. package/dist/cli/numeric-flag.js +44 -0
  509. package/dist/cli/numeric-flag.js.map +1 -0
  510. package/dist/cli/output.d.ts +23 -6
  511. package/dist/cli/output.d.ts.map +1 -1
  512. package/dist/cli/output.js +15 -0
  513. package/dist/cli/output.js.map +1 -1
  514. package/dist/cli/published-url.js.map +1 -1
  515. package/dist/cli/record-reach.d.ts +6 -0
  516. package/dist/cli/record-reach.d.ts.map +1 -1
  517. package/dist/cli/record-reach.js +17 -11
  518. package/dist/cli/record-reach.js.map +1 -1
  519. package/dist/cli/record-tables.d.ts.map +1 -1
  520. package/dist/cli/record-tables.js +7 -6
  521. package/dist/cli/record-tables.js.map +1 -1
  522. package/dist/cli/record.d.ts +1 -5
  523. package/dist/cli/record.d.ts.map +1 -1
  524. package/dist/cli/record.js +40 -20
  525. package/dist/cli/record.js.map +1 -1
  526. package/dist/cli/search-index.d.ts +5 -0
  527. package/dist/cli/search-index.d.ts.map +1 -1
  528. package/dist/cli/search-index.js +19 -7
  529. package/dist/cli/search-index.js.map +1 -1
  530. package/dist/cli/statuses.d.ts +0 -2
  531. package/dist/cli/statuses.d.ts.map +1 -1
  532. package/dist/cli/statuses.js +0 -7
  533. package/dist/cli/statuses.js.map +1 -1
  534. package/dist/cli/stored-results.d.ts +7 -0
  535. package/dist/cli/stored-results.d.ts.map +1 -0
  536. package/dist/cli/stored-results.js +23 -0
  537. package/dist/cli/stored-results.js.map +1 -0
  538. package/dist/cli/top-level-help.js.map +1 -1
  539. package/dist/cli/version.d.ts.map +1 -1
  540. package/dist/cli/version.js +7 -5
  541. package/dist/cli/version.js.map +1 -1
  542. package/dist/cli-api.d.ts +49 -14
  543. package/dist/cli-api.d.ts.map +1 -1
  544. package/dist/cli-api.js +42 -17
  545. package/dist/cli-api.js.map +1 -1
  546. package/dist/composition/adjudication.js.map +1 -1
  547. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  548. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  549. package/dist/composition/algebraic-equivalence.js +115 -0
  550. package/dist/composition/algebraic-equivalence.js.map +1 -0
  551. package/dist/composition/aliases.js.map +1 -1
  552. package/dist/composition/audit-coverage.d.ts +2 -0
  553. package/dist/composition/audit-coverage.d.ts.map +1 -1
  554. package/dist/composition/audit-coverage.js.map +1 -1
  555. package/dist/composition/axes.d.ts +6 -0
  556. package/dist/composition/axes.d.ts.map +1 -1
  557. package/dist/composition/axes.js +18 -6
  558. package/dist/composition/axes.js.map +1 -1
  559. package/dist/composition/axis-audit.d.ts +47 -20
  560. package/dist/composition/axis-audit.d.ts.map +1 -1
  561. package/dist/composition/axis-audit.js +82 -9
  562. package/dist/composition/axis-audit.js.map +1 -1
  563. package/dist/composition/bridge-analysis.d.ts +14 -15
  564. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  565. package/dist/composition/bridge-analysis.js +148 -91
  566. package/dist/composition/bridge-analysis.js.map +1 -1
  567. package/dist/composition/bridge-prediction.d.ts +5 -1
  568. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  569. package/dist/composition/bridge-prediction.js +12 -16
  570. package/dist/composition/bridge-prediction.js.map +1 -1
  571. package/dist/composition/buckingham-filter.js.map +1 -1
  572. package/dist/composition/canonical-compare.d.ts +40 -0
  573. package/dist/composition/canonical-compare.d.ts.map +1 -1
  574. package/dist/composition/canonical-compare.js +134 -26
  575. package/dist/composition/canonical-compare.js.map +1 -1
  576. package/dist/composition/canonical-graph.d.ts +9 -10
  577. package/dist/composition/canonical-graph.d.ts.map +1 -1
  578. package/dist/composition/canonical-graph.js +33 -102
  579. package/dist/composition/canonical-graph.js.map +1 -1
  580. package/dist/composition/canonical-json.js +2 -2
  581. package/dist/composition/canonical-json.js.map +1 -1
  582. package/dist/composition/canonical-prefactors.js.map +1 -1
  583. package/dist/composition/catalog-graph.d.ts.map +1 -1
  584. package/dist/composition/catalog-graph.js +8 -25
  585. package/dist/composition/catalog-graph.js.map +1 -1
  586. package/dist/composition/chain-candidate.d.ts +10 -0
  587. package/dist/composition/chain-candidate.d.ts.map +1 -1
  588. package/dist/composition/chain-candidate.js +11 -2
  589. package/dist/composition/chain-candidate.js.map +1 -1
  590. package/dist/composition/chain-match.d.ts +6 -3
  591. package/dist/composition/chain-match.d.ts.map +1 -1
  592. package/dist/composition/chain-match.js +4 -1
  593. package/dist/composition/chain-match.js.map +1 -1
  594. package/dist/composition/chain-regime.js.map +1 -1
  595. package/dist/composition/chain-result.d.ts.map +1 -1
  596. package/dist/composition/chain-result.js +2 -14
  597. package/dist/composition/chain-result.js.map +1 -1
  598. package/dist/composition/compose-surface.js.map +1 -1
  599. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  600. package/dist/composition/compose-symbolic.js +3 -2
  601. package/dist/composition/compose-symbolic.js.map +1 -1
  602. package/dist/composition/compose.d.ts.map +1 -1
  603. package/dist/composition/compose.js +166 -41
  604. package/dist/composition/compose.js.map +1 -1
  605. package/dist/composition/composition-recovery.d.ts.map +1 -1
  606. package/dist/composition/composition-recovery.js +4 -7
  607. package/dist/composition/composition-recovery.js.map +1 -1
  608. package/dist/composition/consequence.d.ts.map +1 -1
  609. package/dist/composition/consequence.js +15 -6
  610. package/dist/composition/consequence.js.map +1 -1
  611. package/dist/composition/consistency.js.map +1 -1
  612. package/dist/composition/descriptor.d.ts +1 -1
  613. package/dist/composition/descriptor.d.ts.map +1 -1
  614. package/dist/composition/descriptor.js.map +1 -1
  615. package/dist/composition/dimension-adjacency.js.map +1 -1
  616. package/dist/composition/discovery.d.ts +77 -11
  617. package/dist/composition/discovery.d.ts.map +1 -1
  618. package/dist/composition/discovery.js +194 -80
  619. package/dist/composition/discovery.js.map +1 -1
  620. package/dist/composition/edge.d.ts +40 -10
  621. package/dist/composition/edge.d.ts.map +1 -1
  622. package/dist/composition/edge.js +47 -12
  623. package/dist/composition/edge.js.map +1 -1
  624. package/dist/composition/enumerate.d.ts +2 -2
  625. package/dist/composition/enumerate.d.ts.map +1 -1
  626. package/dist/composition/enumerate.js +18 -3
  627. package/dist/composition/enumerate.js.map +1 -1
  628. package/dist/composition/evaluate-relation.d.ts +35 -11
  629. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  630. package/dist/composition/evaluate-relation.js +60 -39
  631. package/dist/composition/evaluate-relation.js.map +1 -1
  632. package/dist/composition/explain.d.ts +5 -9
  633. package/dist/composition/explain.d.ts.map +1 -1
  634. package/dist/composition/explain.js +38 -18
  635. package/dist/composition/explain.js.map +1 -1
  636. package/dist/composition/expr-eval.d.ts.map +1 -1
  637. package/dist/composition/expr-eval.js +2 -11
  638. package/dist/composition/expr-eval.js.map +1 -1
  639. package/dist/composition/expr-simplify.d.ts +16 -0
  640. package/dist/composition/expr-simplify.d.ts.map +1 -1
  641. package/dist/composition/expr-simplify.js +24 -59
  642. package/dist/composition/expr-simplify.js.map +1 -1
  643. package/dist/composition/expr-subst.js.map +1 -1
  644. package/dist/composition/formula-shape.d.ts +28 -0
  645. package/dist/composition/formula-shape.d.ts.map +1 -1
  646. package/dist/composition/formula-shape.js +96 -2
  647. package/dist/composition/formula-shape.js.map +1 -1
  648. package/dist/composition/frontier-account.d.ts +3 -2
  649. package/dist/composition/frontier-account.d.ts.map +1 -1
  650. package/dist/composition/frontier-account.js +7 -3
  651. package/dist/composition/frontier-account.js.map +1 -1
  652. package/dist/composition/graph-structure.d.ts +98 -0
  653. package/dist/composition/graph-structure.d.ts.map +1 -0
  654. package/dist/composition/graph-structure.js +167 -0
  655. package/dist/composition/graph-structure.js.map +1 -0
  656. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  657. package/dist/composition/graph-viz-svg.js +1 -1
  658. package/dist/composition/graph-viz-svg.js.map +1 -1
  659. package/dist/composition/graph-viz.d.ts.map +1 -1
  660. package/dist/composition/graph-viz.js +8 -37
  661. package/dist/composition/graph-viz.js.map +1 -1
  662. package/dist/composition/grounding.js.map +1 -1
  663. package/dist/composition/identifiability.d.ts +91 -4
  664. package/dist/composition/identifiability.d.ts.map +1 -1
  665. package/dist/composition/identifiability.js +363 -6
  666. package/dist/composition/identifiability.js.map +1 -1
  667. package/dist/composition/index.d.ts +14 -8
  668. package/dist/composition/index.d.ts.map +1 -1
  669. package/dist/composition/index.js +7 -5
  670. package/dist/composition/index.js.map +1 -1
  671. package/dist/composition/mathts-quiet.d.ts +29 -0
  672. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  673. package/dist/composition/mathts-quiet.js +57 -0
  674. package/dist/composition/mathts-quiet.js.map +1 -0
  675. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  676. package/dist/composition/mathts-scalar-symbols.js +20 -35
  677. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  678. package/dist/composition/not-composable-seeds.d.ts +3 -1
  679. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  680. package/dist/composition/not-composable-seeds.js +2 -0
  681. package/dist/composition/not-composable-seeds.js.map +1 -1
  682. package/dist/composition/probe/backend-protocol.js.map +1 -1
  683. package/dist/composition/probe/candidate-store.js.map +1 -1
  684. package/dist/composition/probe/corpus.d.ts +4 -2
  685. package/dist/composition/probe/corpus.d.ts.map +1 -1
  686. package/dist/composition/probe/corpus.js +20 -9
  687. package/dist/composition/probe/corpus.js.map +1 -1
  688. package/dist/composition/probe/dataset.d.ts +17 -0
  689. package/dist/composition/probe/dataset.d.ts.map +1 -1
  690. package/dist/composition/probe/dataset.js +95 -50
  691. package/dist/composition/probe/dataset.js.map +1 -1
  692. package/dist/composition/probe/experiment-design.d.ts +5 -1
  693. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  694. package/dist/composition/probe/experiment-design.js +44 -24
  695. package/dist/composition/probe/experiment-design.js.map +1 -1
  696. package/dist/composition/probe/expression-gaps.js.map +1 -1
  697. package/dist/composition/probe/falsify.d.ts +14 -3
  698. package/dist/composition/probe/falsify.d.ts.map +1 -1
  699. package/dist/composition/probe/falsify.js +16 -27
  700. package/dist/composition/probe/falsify.js.map +1 -1
  701. package/dist/composition/probe/fingerprint.js.map +1 -1
  702. package/dist/composition/probe/fit.d.ts +7 -1
  703. package/dist/composition/probe/fit.d.ts.map +1 -1
  704. package/dist/composition/probe/fit.js +48 -23
  705. package/dist/composition/probe/fit.js.map +1 -1
  706. package/dist/composition/probe/frontier.d.ts.map +1 -1
  707. package/dist/composition/probe/frontier.js +33 -15
  708. package/dist/composition/probe/frontier.js.map +1 -1
  709. package/dist/composition/probe/generator.d.ts +27 -1
  710. package/dist/composition/probe/generator.d.ts.map +1 -1
  711. package/dist/composition/probe/generator.js +53 -30
  712. package/dist/composition/probe/generator.js.map +1 -1
  713. package/dist/composition/probe/index.d.ts +18 -2
  714. package/dist/composition/probe/index.d.ts.map +1 -1
  715. package/dist/composition/probe/index.js +10 -2
  716. package/dist/composition/probe/index.js.map +1 -1
  717. package/dist/composition/probe/limits.d.ts +24 -1
  718. package/dist/composition/probe/limits.d.ts.map +1 -1
  719. package/dist/composition/probe/limits.js +53 -11
  720. package/dist/composition/probe/limits.js.map +1 -1
  721. package/dist/composition/probe/metadata.js.map +1 -1
  722. package/dist/composition/probe/pipeline.d.ts +5 -0
  723. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  724. package/dist/composition/probe/pipeline.js +22 -9
  725. package/dist/composition/probe/pipeline.js.map +1 -1
  726. package/dist/composition/probe/power-law.d.ts +121 -0
  727. package/dist/composition/probe/power-law.d.ts.map +1 -0
  728. package/dist/composition/probe/power-law.js +255 -0
  729. package/dist/composition/probe/power-law.js.map +1 -0
  730. package/dist/composition/probe/problem.d.ts +12 -1
  731. package/dist/composition/probe/problem.d.ts.map +1 -1
  732. package/dist/composition/probe/problem.js +242 -48
  733. package/dist/composition/probe/problem.js.map +1 -1
  734. package/dist/composition/probe/report.js +1 -1
  735. package/dist/composition/probe/report.js.map +1 -1
  736. package/dist/composition/probe/residual.d.ts +6 -1
  737. package/dist/composition/probe/residual.d.ts.map +1 -1
  738. package/dist/composition/probe/residual.js +9 -7
  739. package/dist/composition/probe/residual.js.map +1 -1
  740. package/dist/composition/probe/run-manifest.js +2 -2
  741. package/dist/composition/probe/run-manifest.js.map +1 -1
  742. package/dist/composition/probe/scoring.d.ts +2 -1
  743. package/dist/composition/probe/scoring.d.ts.map +1 -1
  744. package/dist/composition/probe/scoring.js +21 -7
  745. package/dist/composition/probe/scoring.js.map +1 -1
  746. package/dist/composition/probe/search-budget.js.map +1 -1
  747. package/dist/composition/probe/serialize.js.map +1 -1
  748. package/dist/composition/probe/structure.d.ts +82 -17
  749. package/dist/composition/probe/structure.d.ts.map +1 -1
  750. package/dist/composition/probe/structure.js +129 -55
  751. package/dist/composition/probe/structure.js.map +1 -1
  752. package/dist/composition/probe/study.d.ts +35 -12
  753. package/dist/composition/probe/study.d.ts.map +1 -1
  754. package/dist/composition/probe/study.js +241 -184
  755. package/dist/composition/probe/study.js.map +1 -1
  756. package/dist/composition/probe/t-tail.d.ts +17 -0
  757. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  758. package/dist/composition/probe/t-tail.js +32 -0
  759. package/dist/composition/probe/t-tail.js.map +1 -0
  760. package/dist/composition/probe/types.d.ts +6 -1
  761. package/dist/composition/probe/types.d.ts.map +1 -1
  762. package/dist/composition/probe/types.js +2 -0
  763. package/dist/composition/probe/types.js.map +1 -1
  764. package/dist/composition/proposed-bridges.d.ts +51 -13
  765. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  766. package/dist/composition/proposed-bridges.js +110 -58
  767. package/dist/composition/proposed-bridges.js.map +1 -1
  768. package/dist/composition/quantities.d.ts +0 -4
  769. package/dist/composition/quantities.d.ts.map +1 -1
  770. package/dist/composition/quantities.js +5 -5
  771. package/dist/composition/quantities.js.map +1 -1
  772. package/dist/composition/quantity-clusters.d.ts +48 -0
  773. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  774. package/dist/composition/quantity-clusters.js +98 -0
  775. package/dist/composition/quantity-clusters.js.map +1 -0
  776. package/dist/composition/quantity.d.ts +18 -2
  777. package/dist/composition/quantity.d.ts.map +1 -1
  778. package/dist/composition/quantity.js +35 -6
  779. package/dist/composition/quantity.js.map +1 -1
  780. package/dist/composition/rational-exponent.d.ts +40 -0
  781. package/dist/composition/rational-exponent.d.ts.map +1 -0
  782. package/dist/composition/rational-exponent.js +65 -0
  783. package/dist/composition/rational-exponent.js.map +1 -0
  784. package/dist/composition/representative-values.d.ts +22 -0
  785. package/dist/composition/representative-values.d.ts.map +1 -1
  786. package/dist/composition/representative-values.js +23 -0
  787. package/dist/composition/representative-values.js.map +1 -1
  788. package/dist/composition/retrodiction.d.ts +16 -6
  789. package/dist/composition/retrodiction.d.ts.map +1 -1
  790. package/dist/composition/retrodiction.js +36 -10
  791. package/dist/composition/retrodiction.js.map +1 -1
  792. package/dist/composition/uncertainty.js.map +1 -1
  793. package/dist/composition/user-equation.d.ts.map +1 -1
  794. package/dist/composition/user-equation.js +2 -2
  795. package/dist/composition/user-equation.js.map +1 -1
  796. package/dist/core/assignment.d.ts +19 -0
  797. package/dist/core/assignment.d.ts.map +1 -0
  798. package/dist/core/assignment.js +19 -0
  799. package/dist/core/assignment.js.map +1 -0
  800. package/dist/core/axes-registry.d.ts +8 -5
  801. package/dist/core/axes-registry.d.ts.map +1 -1
  802. package/dist/core/axes-registry.js.map +1 -1
  803. package/dist/core/cell.js.map +1 -1
  804. package/dist/core/compare.d.ts +32 -0
  805. package/dist/core/compare.d.ts.map +1 -0
  806. package/dist/core/compare.js +46 -0
  807. package/dist/core/compare.js.map +1 -0
  808. package/dist/core/constants.d.ts +35 -35
  809. package/dist/core/constants.d.ts.map +1 -1
  810. package/dist/core/constants.js +52 -37
  811. package/dist/core/constants.js.map +1 -1
  812. package/dist/core/data-file.d.ts +7 -0
  813. package/dist/core/data-file.d.ts.map +1 -1
  814. package/dist/core/data-file.js +17 -0
  815. package/dist/core/data-file.js.map +1 -1
  816. package/dist/core/flux-rules.js +1 -1
  817. package/dist/core/flux-rules.js.map +1 -1
  818. package/dist/core/format.d.ts +36 -0
  819. package/dist/core/format.d.ts.map +1 -0
  820. package/dist/core/format.js +39 -0
  821. package/dist/core/format.js.map +1 -0
  822. package/dist/core/hash.d.ts +14 -0
  823. package/dist/core/hash.d.ts.map +1 -0
  824. package/dist/core/hash.js +17 -0
  825. package/dist/core/hash.js.map +1 -0
  826. package/dist/core/json-schema.d.ts +3 -1
  827. package/dist/core/json-schema.d.ts.map +1 -1
  828. package/dist/core/json-schema.js +41 -16
  829. package/dist/core/json-schema.js.map +1 -1
  830. package/dist/core/labeled-tensor.d.ts +6 -1
  831. package/dist/core/labeled-tensor.d.ts.map +1 -1
  832. package/dist/core/labeled-tensor.js +18 -16
  833. package/dist/core/labeled-tensor.js.map +1 -1
  834. package/dist/core/mathts-read.d.ts +25 -0
  835. package/dist/core/mathts-read.d.ts.map +1 -0
  836. package/dist/core/mathts-read.js +51 -0
  837. package/dist/core/mathts-read.js.map +1 -0
  838. package/dist/core/regime-registry.d.ts +6 -2
  839. package/dist/core/regime-registry.d.ts.map +1 -1
  840. package/dist/core/regime-registry.js.map +1 -1
  841. package/dist/core/regime-rule-install.js.map +1 -1
  842. package/dist/core/regimes-builtins.js.map +1 -1
  843. package/dist/core/tensor.d.ts +7 -4
  844. package/dist/core/tensor.d.ts.map +1 -1
  845. package/dist/core/tensor.js +64 -8
  846. package/dist/core/tensor.js.map +1 -1
  847. package/dist/core/types.d.ts +5 -5
  848. package/dist/core/types.js.map +1 -1
  849. package/dist/core/universal-index.js.map +1 -1
  850. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  851. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  852. package/dist/diff/bridge-ast-gradient.js +10 -6
  853. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  854. package/dist/diff/bridge-gradient.d.ts +43 -86
  855. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  856. package/dist/diff/bridge-gradient.js +40 -109
  857. package/dist/diff/bridge-gradient.js.map +1 -1
  858. package/dist/diff/bridge-specs.d.ts +16 -5
  859. package/dist/diff/bridge-specs.d.ts.map +1 -1
  860. package/dist/diff/bridge-specs.js +19 -4
  861. package/dist/diff/bridge-specs.js.map +1 -1
  862. package/dist/dimensional/algebra.d.ts +18 -0
  863. package/dist/dimensional/algebra.d.ts.map +1 -1
  864. package/dist/dimensional/algebra.js +41 -1
  865. package/dist/dimensional/algebra.js.map +1 -1
  866. package/dist/dimensional/ast-builders.d.ts +12 -4
  867. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  868. package/dist/dimensional/ast-builders.js +17 -5
  869. package/dist/dimensional/ast-builders.js.map +1 -1
  870. package/dist/dimensional/ast-leaves.d.ts +81 -0
  871. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  872. package/dist/dimensional/ast-leaves.js +146 -0
  873. package/dist/dimensional/ast-leaves.js.map +1 -0
  874. package/dist/dimensional/ast-types.js.map +1 -1
  875. package/dist/dimensional/bridge-check.js.map +1 -1
  876. package/dist/dimensional/buckingham.d.ts.map +1 -1
  877. package/dist/dimensional/buckingham.js +15 -27
  878. package/dist/dimensional/buckingham.js.map +1 -1
  879. package/dist/dimensional/connection-validators.d.ts +2 -1
  880. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  881. package/dist/dimensional/connection-validators.js.map +1 -1
  882. package/dist/dimensional/connection.js.map +1 -1
  883. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  884. package/dist/dimensional/constant-rows.js +17 -13
  885. package/dist/dimensional/constant-rows.js.map +1 -1
  886. package/dist/dimensional/constants.d.ts +5 -6
  887. package/dist/dimensional/constants.d.ts.map +1 -1
  888. package/dist/dimensional/constants.js +5 -6
  889. package/dist/dimensional/constants.js.map +1 -1
  890. package/dist/dimensional/curvature-composite.js.map +1 -1
  891. package/dist/dimensional/curvature-invariants.js.map +1 -1
  892. package/dist/dimensional/curvature.js.map +1 -1
  893. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  894. package/dist/dimensional/dimension-inference.js +1 -2
  895. package/dist/dimensional/dimension-inference.js.map +1 -1
  896. package/dist/dimensional/dimension-spec.d.ts +13 -7
  897. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  898. package/dist/dimensional/dimension-spec.js +49 -23
  899. package/dist/dimensional/dimension-spec.js.map +1 -1
  900. package/dist/dimensional/einstein-equation.js.map +1 -1
  901. package/dist/dimensional/errors.d.ts +4 -2
  902. package/dist/dimensional/errors.d.ts.map +1 -1
  903. package/dist/dimensional/errors.js +3 -17
  904. package/dist/dimensional/errors.js.map +1 -1
  905. package/dist/dimensional/exact-scale.d.ts +0 -17
  906. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  907. package/dist/dimensional/exact-scale.js +8 -8
  908. package/dist/dimensional/exact-scale.js.map +1 -1
  909. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  910. package/dist/dimensional/formula-names.js.map +1 -1
  911. package/dist/dimensional/fresh-label.js.map +1 -1
  912. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  913. package/dist/dimensional/friedmann-equation.js +3 -3
  914. package/dist/dimensional/friedmann-equation.js.map +1 -1
  915. package/dist/dimensional/gauge-field.d.ts +2 -3
  916. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  917. package/dist/dimensional/gauge-field.js +2 -3
  918. package/dist/dimensional/gauge-field.js.map +1 -1
  919. package/dist/dimensional/hyphen-names.d.ts +12 -2
  920. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  921. package/dist/dimensional/hyphen-names.js +45 -12
  922. package/dist/dimensional/hyphen-names.js.map +1 -1
  923. package/dist/dimensional/killing-validators.js.map +1 -1
  924. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  925. package/dist/dimensional/metric-validators.d.ts +2 -1
  926. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  927. package/dist/dimensional/metric-validators.js.map +1 -1
  928. package/dist/dimensional/metric.d.ts.map +1 -1
  929. package/dist/dimensional/metric.js +0 -1
  930. package/dist/dimensional/metric.js.map +1 -1
  931. package/dist/dimensional/natural-units.js.map +1 -1
  932. package/dist/dimensional/quantity-registry.d.ts +13 -0
  933. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  934. package/dist/dimensional/quantity-registry.js +14 -6
  935. package/dist/dimensional/quantity-registry.js.map +1 -1
  936. package/dist/dimensional/rg-flow.js.map +1 -1
  937. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  938. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  939. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  940. package/dist/dimensional/symbolic-constants.js +20 -3
  941. package/dist/dimensional/symbolic-constants.js.map +1 -1
  942. package/dist/dimensional/tensor-trace.js.map +1 -1
  943. package/dist/dimensional/tensor.js.map +1 -1
  944. package/dist/dimensional/types.d.ts +36 -0
  945. package/dist/dimensional/types.d.ts.map +1 -1
  946. package/dist/dimensional/types.js +45 -7
  947. package/dist/dimensional/types.js.map +1 -1
  948. package/dist/dimensional/unit-convention.d.ts +0 -2
  949. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  950. package/dist/dimensional/unit-convention.js +2 -2
  951. package/dist/dimensional/unit-convention.js.map +1 -1
  952. package/dist/dimensional/unit-data.d.ts.map +1 -1
  953. package/dist/dimensional/unit-data.js +11 -7
  954. package/dist/dimensional/unit-data.js.map +1 -1
  955. package/dist/dimensional/units.d.ts.map +1 -1
  956. package/dist/dimensional/units.js +38 -20
  957. package/dist/dimensional/units.js.map +1 -1
  958. package/dist/dimensional/validator-registry.js.map +1 -1
  959. package/dist/dimensional/validator.d.ts +0 -16
  960. package/dist/dimensional/validator.d.ts.map +1 -1
  961. package/dist/dimensional/validator.js +65 -29
  962. package/dist/dimensional/validator.js.map +1 -1
  963. package/dist/dimensional/weyl-validators.js.map +1 -1
  964. package/dist/index.d.ts +59 -8
  965. package/dist/index.d.ts.map +1 -1
  966. package/dist/index.js +22 -24
  967. package/dist/index.js.map +1 -1
  968. package/dist/numerical/bianchi-residual.js.map +1 -1
  969. package/dist/numerical/binding-value.d.ts +11 -6
  970. package/dist/numerical/binding-value.d.ts.map +1 -1
  971. package/dist/numerical/binding-value.js +126 -122
  972. package/dist/numerical/binding-value.js.map +1 -1
  973. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  974. package/dist/numerical/christoffel-flat.js +3 -2
  975. package/dist/numerical/christoffel-flat.js.map +1 -1
  976. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  977. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  978. package/dist/numerical/covariant-eikonal.js +36 -13
  979. package/dist/numerical/covariant-eikonal.js.map +1 -1
  980. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  981. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  982. package/dist/numerical/curvature-lowering-helpers.js +9 -5
  983. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  984. package/dist/numerical/derivative-lowering.js.map +1 -1
  985. package/dist/numerical/einstein-equation.js.map +1 -1
  986. package/dist/numerical/engine-registry.js.map +1 -1
  987. package/dist/numerical/errors.d.ts +7 -3
  988. package/dist/numerical/errors.d.ts.map +1 -1
  989. package/dist/numerical/errors.js +5 -8
  990. package/dist/numerical/errors.js.map +1 -1
  991. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  992. package/dist/numerical/evaluator-uncertainty.js +19 -2
  993. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  994. package/dist/numerical/finite-difference.d.ts +22 -0
  995. package/dist/numerical/finite-difference.d.ts.map +1 -0
  996. package/dist/numerical/finite-difference.js +27 -0
  997. package/dist/numerical/finite-difference.js.map +1 -0
  998. package/dist/numerical/formula-contract.d.ts +63 -7
  999. package/dist/numerical/formula-contract.d.ts.map +1 -1
  1000. package/dist/numerical/formula-contract.js +61 -42
  1001. package/dist/numerical/formula-contract.js.map +1 -1
  1002. package/dist/numerical/formula-dimension.d.ts +8 -7
  1003. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  1004. package/dist/numerical/formula-dimension.js +58 -36
  1005. package/dist/numerical/formula-dimension.js.map +1 -1
  1006. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  1007. package/dist/numerical/formula-mathts.js +5 -2
  1008. package/dist/numerical/formula-mathts.js.map +1 -1
  1009. package/dist/numerical/formula-registry.d.ts +13 -3
  1010. package/dist/numerical/formula-registry.d.ts.map +1 -1
  1011. package/dist/numerical/formula-registry.js +7 -2
  1012. package/dist/numerical/formula-registry.js.map +1 -1
  1013. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  1014. package/dist/numerical/geodesic-integrator.js +22 -14
  1015. package/dist/numerical/geodesic-integrator.js.map +1 -1
  1016. package/dist/numerical/geometrized.d.ts.map +1 -1
  1017. package/dist/numerical/geometrized.js +0 -1
  1018. package/dist/numerical/geometrized.js.map +1 -1
  1019. package/dist/numerical/gl4-integrator.d.ts +28 -27
  1020. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  1021. package/dist/numerical/gl4-integrator.js +41 -42
  1022. package/dist/numerical/gl4-integrator.js.map +1 -1
  1023. package/dist/numerical/grid-field.js.map +1 -1
  1024. package/dist/numerical/index.js.map +1 -1
  1025. package/dist/numerical/input-validation.d.ts +3 -6
  1026. package/dist/numerical/input-validation.d.ts.map +1 -1
  1027. package/dist/numerical/input-validation.js +4 -8
  1028. package/dist/numerical/input-validation.js.map +1 -1
  1029. package/dist/numerical/killing.d.ts +8 -5
  1030. package/dist/numerical/killing.d.ts.map +1 -1
  1031. package/dist/numerical/killing.js.map +1 -1
  1032. package/dist/numerical/klein-gordon.js.map +1 -1
  1033. package/dist/numerical/kretschmann.js.map +1 -1
  1034. package/dist/numerical/lowering-utils.js.map +1 -1
  1035. package/dist/numerical/lowering.d.ts.map +1 -1
  1036. package/dist/numerical/lowering.js +7 -17
  1037. package/dist/numerical/lowering.js.map +1 -1
  1038. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  1039. package/dist/numerical/mathts-engine.js +16 -25
  1040. package/dist/numerical/mathts-engine.js.map +1 -1
  1041. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  1042. package/dist/numerical/metric-inverse.js +83 -46
  1043. package/dist/numerical/metric-inverse.js.map +1 -1
  1044. package/dist/numerical/null-ic.js.map +1 -1
  1045. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  1046. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  1047. package/dist/numerical/null-ray-integrator.js +12 -12
  1048. package/dist/numerical/null-ray-integrator.js.map +1 -1
  1049. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  1050. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  1051. package/dist/numerical/pderiv.d.ts.map +1 -1
  1052. package/dist/numerical/pderiv.js +9 -2
  1053. package/dist/numerical/pderiv.js.map +1 -1
  1054. package/dist/numerical/perihelion-finder.d.ts +0 -36
  1055. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  1056. package/dist/numerical/perihelion-finder.js +41 -87
  1057. package/dist/numerical/perihelion-finder.js.map +1 -1
  1058. package/dist/numerical/quadrature.d.ts +5 -2
  1059. package/dist/numerical/quadrature.d.ts.map +1 -1
  1060. package/dist/numerical/quadrature.js +19 -4
  1061. package/dist/numerical/quadrature.js.map +1 -1
  1062. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  1063. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  1064. package/dist/numerical/rk4-trajectory.js +37 -0
  1065. package/dist/numerical/rk4-trajectory.js.map +1 -0
  1066. package/dist/numerical/schwarzschild.d.ts +14 -0
  1067. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  1068. package/dist/numerical/schwarzschild.js +17 -0
  1069. package/dist/numerical/schwarzschild.js.map +1 -0
  1070. package/dist/numerical/spacetime-metrics.d.ts +25 -19
  1071. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  1072. package/dist/numerical/spacetime-metrics.js +180 -286
  1073. package/dist/numerical/spacetime-metrics.js.map +1 -1
  1074. package/dist/numerical/statistics.d.ts +24 -0
  1075. package/dist/numerical/statistics.d.ts.map +1 -0
  1076. package/dist/numerical/statistics.js +52 -0
  1077. package/dist/numerical/statistics.js.map +1 -0
  1078. package/dist/numerical/strides.js.map +1 -1
  1079. package/dist/numerical/tensor-engine.d.ts +30 -5
  1080. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  1081. package/dist/numerical/tensor-engine.js +12 -0
  1082. package/dist/numerical/tensor-engine.js.map +1 -1
  1083. package/dist/numerical/types.js.map +1 -1
  1084. package/dist/numerical/weyl-lowering.js.map +1 -1
  1085. package/dist/relations/category.js.map +1 -1
  1086. package/dist/relations/composition-table.d.ts +4 -4
  1087. package/dist/relations/composition-table.js +4 -4
  1088. package/dist/relations/composition-table.js.map +1 -1
  1089. package/dist/relations/conventions.js.map +1 -1
  1090. package/dist/relations/domain-regimes.js.map +1 -1
  1091. package/dist/relations/regime-registration.js.map +1 -1
  1092. package/dist/relations/regime-vocabularies.js.map +1 -1
  1093. package/dist/relations/regime.d.ts +28 -8
  1094. package/dist/relations/regime.d.ts.map +1 -1
  1095. package/dist/relations/regime.js +44 -15
  1096. package/dist/relations/regime.js.map +1 -1
  1097. package/dist/relations/types.d.ts +18 -5
  1098. package/dist/relations/types.d.ts.map +1 -1
  1099. package/dist/relations/types.js +5 -3
  1100. package/dist/relations/types.js.map +1 -1
  1101. package/package.json +16 -20
  1102. package/dist/bridges/registry.d.ts +0 -60
  1103. package/dist/bridges/registry.d.ts.map +0 -1
  1104. package/dist/bridges/registry.js +0 -87
  1105. package/dist/bridges/registry.js.map +0 -1
  1106. package/dist/cli/poster-source.d.ts +0 -154
  1107. package/dist/cli/poster-source.d.ts.map +0 -1
  1108. package/dist/cli/poster-source.js +0 -184
  1109. package/dist/cli/poster-source.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"labeled-tensor.js","sourceRoot":"","sources":["../../src/core/labeled-tensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"labeled-tensor.js","sourceRoot":"","sources":["../../src/core/labeled-tensor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `LabeledTensor` — engine-level tensor wrapped with\n * `UniversalIndex`-tagged metadata. The catalog-facing surface\n * for physics-axis-aware contractions.\n *\n * Phase 2 + Phase 3 of v0.7 Proposal 1 (Intelligent Index Layer).\n *\n * Composition (Decision #5): `LabeledTensor` owns an `EngineTensor`,\n * a `TensorEngine`, and a labels record. The engine handle is the\n * boundary — `LabeledTensor` doesn't reach into the underlying\n * Float64Array / MathTS handle. Contract matching is strictly\n * `UniversalIndexId` equality (Decision #3). Two indices that share a\n * `name` and not an `id` are refused: `contract` throws\n * `IndexNameMismatchError` and the message names both ids. It does not\n * contract them and it does not return their outer product. Indices\n * whose names differ stay free axes.\n *\n * Design: `docs/planning/v0.7-Proposal-1-Design.md` Decisions\n * #1, #3, #5, #6, #7, #9.\n *\n * Cross-Phase Invariants preserved:\n * - #1 adapter-on-top: this module does NOT import\n * `src/dimensional/tensor.ts` or `src/numerical/lowering.ts`.\n * - #4 `TensorSymbolNode` + `computeContraction` UNCHANGED.\n * - #5 `TensorEngine` interface UNCHANGED (consumes, doesn't\n * extend).\n *\n * @module core/labeled-tensor\n */\n\nimport type { EngineTensor, TensorEngine, EinsumSpec } from '../numerical/tensor-engine.js';\nimport { UPTError } from '../dimensional/errors.js';\nimport type { AxisName, UniversalIndex, UniversalIndexId } from './universal-index.js';\n\n// ---------------------------------------------------------------------------\n// Error classes (Phase 3 surface, declared here for co-location with\n// the guards that throw them)\n// ---------------------------------------------------------------------------\n\n/**\n * Thrown by the `LabeledTensor` constructor when the labels record\n * doesn't agree with the underlying tensor's rank\n * (`Object.keys(labels).length !== tensor.shape.length`).\n *\n * @public\n */\nexport class LabeledTensorConstructionError extends UPTError {\n public readonly labelCount: number;\n public readonly tensorRank: number;\n constructor(labelCount: number, tensorRank: number) {\n super(\n `LabeledTensor: labels record has ${labelCount} entries but ` +\n `tensor rank is ${tensorRank}. Every tensor axis must carry exactly ` +\n `one UniversalIndex label.`,\n );\n this.name = 'LabeledTensorConstructionError';\n this.labelCount = labelCount;\n this.tensorRank = tensorRank;\n }\n}\n\n/**\n * Thrown by `contract` when two `UniversalIndex` values share an\n * `id` but disagree on `axis`. Per Decision #7, this is a physics\n * error caught at the wrapper level. Impossible if both operands\n * use the `Axes` registry; defensive against off-registry\n * `makeIndex` consumers.\n *\n * @public\n */\nexport class AxisMismatchError extends UPTError {\n public readonly indexId: UniversalIndexId;\n public readonly leftAxis: AxisName;\n public readonly rightAxis: AxisName;\n constructor(\n indexId: UniversalIndexId,\n leftAxis: AxisName,\n rightAxis: AxisName,\n ) {\n super(\n `LabeledTensor.contract: indices with the same id '${indexId}' ` +\n `disagree on axis ('${leftAxis}' vs '${rightAxis}'). Cross-axis ` +\n `contraction is a physics error.`,\n );\n this.name = 'AxisMismatchError';\n this.indexId = indexId;\n this.leftAxis = leftAxis;\n this.rightAxis = rightAxis;\n }\n}\n\n/**\n * Thrown by `contract` when the same `UniversalIndexId` appears in\n * more than one non-contracted (free) position across the two\n * operands. Same physical axis showing up free on both sides is\n * physically meaningful (joint distribution) but the einsum\n * machinery has no canonical way to disambiguate.\n *\n * @public\n */\nexport class IdentityConflictError extends UPTError {\n public readonly indexId: UniversalIndexId;\n /**\n * `where` says which shape was met: the id twice on ONE operand (a\n * self-contraction, which `contract` does not perform), or the id as a\n * free axis on BOTH operands beside a contraction (three occurrences).\n */\n constructor(indexId: UniversalIndexId, where: 'one-operand' | 'both-operands' = 'both-operands') {\n super(\n where === 'one-operand'\n ? `LabeledTensor.contract: UniversalIndexId '${indexId}' appears twice on one operand. ` +\n `A self-contraction is not a contract(); rename one axis or trace it first.`\n : `LabeledTensor.contract: UniversalIndexId '${indexId}' appears as a ` +\n `free axis on both operands. Same physical axis on both sides is ` +\n `ambiguous — rename or contract one side first.`,\n );\n this.name = 'IdentityConflictError';\n this.indexId = indexId;\n }\n}\n\n/**\n * Thrown by `contract` when both operands carry the same index `name`\n * and those occurrences do not all share one `UniversalIndexId`.\n *\n * Decision #3 matches by id. A second `makeIndex` call with the same\n * name is a different index. Returning the outer product hid that: the\n * caller who meant one index got a higher-rank tensor and no ids.\n * The error names every id. Distinct names stay an outer product.\n *\n * @public\n */\nexport class IndexNameMismatchError extends UPTError {\n public readonly indexName: string;\n public readonly ids: readonly UniversalIndexId[];\n constructor(\n indexName: string,\n occurrences: readonly { id: UniversalIndexId; axis: AxisName }[],\n ) {\n const ids = [...new Set(occurrences.map((o) => o.id))];\n const described = occurrences\n .map((o) => `'${o.id}' (axis '${o.axis}')`)\n .join(' and ');\n super(\n `LabeledTensor.contract: index name '${indexName}' is carried by ` +\n `unequal ids ${described}. Contraction matches UniversalIndexId, ` +\n `not the name. Reuse one UniversalIndex object, or take it from ` +\n `the Axes registry. A second makeIndex call with the same name is ` +\n `a different index and is not an outer product.`,\n );\n this.name = 'IndexNameMismatchError';\n this.indexName = indexName;\n this.ids = ids;\n }\n}\n\n/**\n * Thrown by `reshape` when the requested shape would change the\n * tensor rank. v0.7.0 allows only axis-by-axis size change;\n * rank-changing reshape is deferred to v0.8.0+ (`mergeAxes` /\n * `splitAxis` helpers).\n *\n * @public\n */\nexport class RankPreservationError extends UPTError {\n public readonly fromRank: number;\n public readonly toRank: number;\n constructor(fromRank: number, toRank: number) {\n super(\n `LabeledTensor.reshape: cannot change rank from ${fromRank} to ` +\n `${toRank}. v0.7.0 supports only same-rank reshape; use a future ` +\n `mergeAxes / splitAxis helper for rank changes.`,\n );\n this.name = 'RankPreservationError';\n this.fromRank = fromRank;\n this.toRank = toRank;\n }\n}\n\n/**\n * Thrown by the `LabeledTensor` constructor when an explicit `axisOrder` is\n * not a valid permutation of the label keys (wrong length, a key that is not a\n * label, or a duplicate). Distinct from `LabeledTensorConstructionError` (which\n * means label-count ≠ tensor-rank) so a consumer never reads a rank-mismatch\n * field on an order error.\n *\n * @public\n */\nexport class AxisOrderError extends UPTError {\n public readonly axisOrder: readonly string[];\n public readonly labelKeys: readonly string[];\n constructor(axisOrder: readonly string[], labelKeys: readonly string[]) {\n super(\n `LabeledTensor: axisOrder [${axisOrder.join(', ')}] is not a permutation ` +\n `of the label keys [${labelKeys.join(', ')}] (it must list every label ` +\n `key exactly once, in engine-axis order).`,\n );\n this.name = 'AxisOrderError';\n this.axisOrder = axisOrder;\n this.labelKeys = labelKeys;\n }\n}\n\n/**\n * Thrown by `mergeAxes` when the request is malformed: fewer than two keys, an\n * unknown key, keys that are not a contiguous run of engine-axis positions, or a\n * merged key/id that collides with a surviving axis.\n *\n * @public\n */\nexport class AxisMergeError extends UPTError {\n constructor(message: string) {\n super(`LabeledTensor.mergeAxes: ${message}`);\n this.name = 'AxisMergeError';\n }\n}\n\n/**\n * Thrown by `splitAxis` when the request is malformed: an unknown key, fewer\n * than two parts, a non-positive/non-integer part size, a size product that\n * does not match the original axis size, or a part key/id that collides.\n *\n * @public\n */\nexport class AxisSplitError extends UPTError {\n constructor(message: string) {\n super(`LabeledTensor.splitAxis: ${message}`);\n this.name = 'AxisSplitError';\n }\n}\n\n// ---------------------------------------------------------------------------\n// canonicalLabelOrder — Risk 2 mitigation\n// ---------------------------------------------------------------------------\n\n/**\n * Stable lexicographic ordering of label keys. JavaScript's\n * `Object.entries` preserves string-key insertion order, but we\n * route all label-key→axis-position mapping through this helper\n * so the contract algorithm doesn't accidentally depend on\n * constructor-call ordering.\n *\n * @internal\n */\nexport function canonicalLabelOrder<L extends Record<string, UniversalIndex<AxisName>>>(\n labels: L,\n): string[] {\n return Object.keys(labels).sort();\n}\n\n/**\n * True iff `order` lists exactly the members of `keys`, each once (same length,\n * no duplicates, no foreign entries). Used to validate an explicit `axisOrder`.\n *\n * @internal\n */\nfunction isPermutationOf(order: readonly string[], keys: readonly string[]): boolean {\n if (order.length !== keys.length) return false;\n const seen = new Set<string>();\n const keySet = new Set(keys);\n for (const k of order) {\n if (!keySet.has(k) || seen.has(k)) return false;\n seen.add(k);\n }\n return true;\n}\n\n// ---------------------------------------------------------------------------\n// LabeledTensor (wrapper class)\n// ---------------------------------------------------------------------------\n\n/**\n * Engine-agnostic wrapper carrying physics-axis-tagged metadata over\n * an opaque `EngineTensor`. Two `LabeledTensor`s contract over\n * shared `UniversalIndexId` values; non-shared ids become the\n * result's free axes.\n *\n * Construction enforces `Object.keys(labels).length === tensor.shape.length`.\n *\n * @public\n */\nexport class LabeledTensor<\n L extends Record<string, UniversalIndex<AxisName>> = Record<string, UniversalIndex<AxisName>>,\n> {\n public readonly tensor: EngineTensor;\n public readonly engine: TensorEngine;\n public readonly labels: L;\n /**\n * The label keys in ENGINE-AXIS order: `axisOrder[i]` is the key of engine\n * axis `i`. This is the AUTHORITATIVE label↔axis mapping — consumers must use\n * it (or {@link axisOf}) rather than re-deriving position by sorting keys,\n * because `transpose` / `contract` can leave the engine axes in a non-sorted\n * order. Defaults to `canonicalLabelOrder(labels)` (sorted) when not supplied.\n */\n public readonly axisOrder: readonly string[];\n\n constructor(\n tensor: EngineTensor,\n engine: TensorEngine,\n labels: L,\n axisOrder?: readonly string[],\n ) {\n const labelKeys = Object.keys(labels);\n if (labelKeys.length !== tensor.shape.length) {\n throw new LabeledTensorConstructionError(labelKeys.length, tensor.shape.length);\n }\n const order = axisOrder ?? canonicalLabelOrder(labels);\n // Validate `order` is a permutation of the label keys: same length, every\n // entry is a label key, no duplicates.\n if (order.length !== labelKeys.length || !isPermutationOf(order, labelKeys)) {\n throw new AxisOrderError(order, labelKeys);\n }\n this.tensor = tensor;\n this.engine = engine;\n this.labels = labels;\n this.axisOrder = order;\n }\n\n /**\n * Engine-axis position of a label key (the inverse of {@link axisOrder}).\n * Throws if the key is not a label.\n *\n * @public\n */\n public axisOf(key: string): number {\n const axis = this.axisOrder.indexOf(key);\n if (axis === -1) {\n throw new UPTError(`LabeledTensor.axisOf: '${key}' is not a label key.`);\n }\n return axis;\n }\n\n /**\n * Identity-aware contraction (Decision #3): match labels by\n * `UniversalIndexId` equality only. Returns a new `LabeledTensor`\n * whose free labels are the union of both operands' free labels\n * minus the contracted ids, evaluated in `this`-first,\n * `other`-second canonical order.\n *\n * Throws:\n * - `IndexNameMismatchError` if both operands use one `name` and\n * the ids differ. The message names both ids.\n * - `AxisMismatchError` if a shared id disagrees on axis.\n * - `IdentityConflictError` if a non-shared id appears free on\n * both operands.\n *\n * @public\n */\n public contract<R extends Record<string, UniversalIndex<AxisName>>>(\n other: LabeledTensor<R>,\n ): LabeledTensor {\n if (this.engine !== other.engine) {\n throw new UPTError(\n `LabeledTensor.contract: engine mismatch (${this.engine.name} vs ` +\n `${other.engine.name}). Both operands must share an engine.`,\n );\n }\n\n // Map labels → ENGINE axis positions via each operand's authoritative\n // axisOrder (NOT sorted key order — an operand may carry a non-sorted order\n // from a prior transpose/contract).\n const leftOrder = this.axisOrder;\n const rightOrder = other.axisOrder;\n\n // Same name on both operands is one index only when the ids match.\n // A fresh makeIndex with that name is a different id; the outer\n // product of that pair is the footgun Decision #3 exists to stop.\n const byName = new Map<string, Array<{ id: UniversalIndexId; axis: AxisName; side: 0 | 1 }>>();\n const noteName = (\n side: 0 | 1,\n order: readonly string[],\n labels: Record<string, UniversalIndex<AxisName>>,\n ): void => {\n for (const key of order) {\n const idx = labels[key];\n const list = byName.get(idx.name) ?? [];\n list.push({ id: idx.id, axis: idx.axis, side });\n byName.set(idx.name, list);\n }\n };\n noteName(0, leftOrder, this.labels);\n noteName(1, rightOrder, other.labels);\n for (const [indexName, occurrences] of byName) {\n const onLeft = occurrences.some((o) => o.side === 0);\n const onRight = occurrences.some((o) => o.side === 1);\n if (!onLeft || !onRight) continue;\n const ids = new Set(occurrences.map((o) => o.id));\n if (ids.size > 1) throw new IndexNameMismatchError(indexName, occurrences);\n }\n\n // Build id → (operand, axis-position) sites.\n const sites = new Map<UniversalIndexId, Array<{ operand: 0 | 1; axis: number; key: string; axisName: AxisName }>>();\n leftOrder.forEach((key, axis) => {\n const idx = this.labels[key];\n const list = sites.get(idx.id) ?? [];\n list.push({ operand: 0, axis, key, axisName: idx.axis });\n sites.set(idx.id, list);\n });\n rightOrder.forEach((key, axis) => {\n const idx = other.labels[key];\n const list = sites.get(idx.id) ?? [];\n list.push({ operand: 1, axis, key, axisName: idx.axis });\n sites.set(idx.id, list);\n });\n\n // Classify each id: contracted (in both operands) vs free (in one).\n const contractions: EinsumSpec['contractions'][number][] = [];\n const free: EinsumSpec['free'][number][] = [];\n const resultLabels: Record<string, UniversalIndex<AxisName>> = {};\n // The result's engine-axis order: the result key of each free axis, pushed\n // in the SAME order the free axes enter `spec.free` (which is the order the\n // engine emits result axes). Kept exactly parallel to `free` so it is always\n // a valid permutation of `Object.keys(resultLabels)`.\n const resultAxisOrder: string[] = [];\n\n for (const [id, occurrences] of sites) {\n if (occurrences.length === 1) {\n // Free axis on exactly one operand. Carry through.\n const o = occurrences[0];\n free.push({ operand: o.operand, axis: o.axis });\n // Preserve the original label key; on collision (both operands use the\n // same string key for *different* ids) suffix until a FREE key is found\n // (`x` → `x_0`/`x_1` → `x_0_0`…), so result keys stay UNIQUE and\n // resultAxisOrder remains a valid permutation (Eve Y1: guarding only the\n // unsuffixed key could overwrite an existing suffixed key).\n let key = o.key;\n if (resultLabels[key] !== undefined) {\n let n = 0;\n do {\n key = `${o.key}_${o.operand}${n === 0 ? '' : `_${n}`}`;\n n++;\n } while (resultLabels[key] !== undefined);\n }\n resultLabels[key] = o.operand === 0\n ? this.labels[o.key]\n : other.labels[o.key];\n resultAxisOrder.push(key);\n } else if (occurrences.length === 2) {\n const [a, b] = occurrences;\n if (a.operand === b.operand) {\n // The same id twice in one operand is a self-contraction, which\n // contract() does not perform.\n throw new IdentityConflictError(id, 'one-operand');\n }\n if (a.axisName !== b.axisName) {\n throw new AxisMismatchError(id, a.axisName, b.axisName);\n }\n contractions.push({ pair: [[a.operand, a.axis], [b.operand, b.axis]] });\n } else {\n // 3+ occurrences across the two operands: triple+ contraction,\n // not supported by the binary einsum primitive. Reject.\n throw new IdentityConflictError(id);\n }\n }\n\n const spec: EinsumSpec = { contractions, free };\n const resultTensor = this.engine.einsum(spec, this.tensor, other.tensor);\n return new LabeledTensor(resultTensor, this.engine, resultLabels, resultAxisOrder);\n }\n\n /**\n * Reorder axes per the given permutation of label keys. The new\n * label record reflects the new axis order; the engine handles\n * the storage-level permutation via `engine.transpose`.\n *\n * @public\n */\n public transpose(newKeyOrder: ReadonlyArray<keyof L & string>): LabeledTensor<L> {\n // Permutation is computed against the CURRENT engine-axis order\n // (`this.axisOrder`), NOT the sorted key order — `this.axisOrder` may\n // already be non-sorted (e.g. a contract result, or a prior transpose).\n if (newKeyOrder.length !== this.axisOrder.length) {\n throw new UPTError(\n `LabeledTensor.transpose: new key order has ${newKeyOrder.length} ` +\n `entries but tensor has ${this.axisOrder.length} axes.`,\n );\n }\n const currentIndex = new Map(this.axisOrder.map((k, i) => [k, i]));\n const perm: number[] = [];\n for (const key of newKeyOrder) {\n const pos = currentIndex.get(key);\n if (pos === undefined) {\n throw new UPTError(\n `LabeledTensor.transpose: key '${String(key)}' not found in labels.`,\n );\n }\n perm.push(pos);\n }\n const transposedTensor = this.engine.transpose(this.tensor, perm);\n // The result's engine axis i is the old axis perm[i] = newKeyOrder[i], so\n // the new axisOrder IS newKeyOrder.\n return new LabeledTensor(transposedTensor, this.engine, this.labels, [...newKeyOrder]);\n }\n\n /**\n * Per-axis size change. Rank must be preserved (Decision #5);\n * rank-changing reshape throws `RankPreservationError`. v0.8.0+\n * may add `mergeAxes` / `splitAxis` for rank-changing operations.\n *\n * Labels survive unchanged (axis identity is preserved across a\n * size-only reshape).\n *\n * @public\n */\n public reshape(shape: ReadonlyArray<number>): LabeledTensor<L> {\n if (shape.length !== this.tensor.shape.length) {\n throw new RankPreservationError(this.tensor.shape.length, shape.length);\n }\n const reshapedTensor = this.engine.reshape(this.tensor, shape);\n // Rank-preserving size change never reorders axes — carry axisOrder through.\n return new LabeledTensor(reshapedTensor, this.engine, this.labels, this.axisOrder);\n }\n\n /**\n * Fuse a CONTIGUOUS run of engine axes (named by `keys`) into ONE axis\n * carrying the caller-supplied `merged` label. Rank R → R − (keys.length − 1).\n *\n * The keys must occupy a gapless consecutive run of engine-axis positions\n * (`engine.reshape` fuses STORAGE-adjacent axes only) — `transpose` them\n * adjacent first otherwise. The fused axis spans the merged axes in ENGINE\n * order; the order `keys` are listed does not matter (the merged axis is\n * opaque). The caller owns the merged axis's identity — no composite-id is\n * synthesized.\n *\n * @public\n */\n public mergeAxes(\n keys: readonly string[],\n merged: { key: string; index: UniversalIndex<AxisName> },\n ): LabeledTensor {\n if (keys.length < 2) {\n throw new AxisMergeError(`need at least 2 keys to merge, got ${keys.length}.`);\n }\n if (new Set(keys).size !== keys.length) {\n throw new AxisMergeError(`keys ${JSON.stringify(keys)} contain a duplicate.`);\n }\n const positions: number[] = [];\n for (const k of keys) {\n const p = this.axisOrder.indexOf(k);\n if (p === -1) throw new AxisMergeError(`'${k}' is not a label key.`);\n positions.push(p);\n }\n // Distinct keys have distinct positions (the duplicate check above), so a\n // contiguous run is exactly `hi − lo === n − 1`.\n const sorted = [...positions].sort((a, b) => a - b);\n const lo = sorted[0];\n const hi = sorted[sorted.length - 1];\n if (hi - lo !== sorted.length - 1) {\n throw new AxisMergeError(\n `keys ${JSON.stringify(keys)} are not a contiguous run of engine axes ` +\n `(positions ${JSON.stringify(positions)}); transpose them adjacent first.`,\n );\n }\n // Surviving keys = axes outside the merged run. (A merged key may safely\n // REUSE one of the consumed keys' names — those are not surviving.)\n const survivingKeys = this.axisOrder.filter((_, i) => i < lo || i > hi);\n if (survivingKeys.includes(merged.key)) {\n throw new AxisMergeError(`merged key '${merged.key}' collides with a surviving label key.`);\n }\n for (const k of survivingKeys) {\n if (this.labels[k].id === merged.index.id) {\n throw new AxisMergeError(\n `merged id '${merged.index.id}' collides with surviving axis '${k}'.`,\n );\n }\n }\n\n const shape = this.tensor.shape;\n let mergedSize = 1;\n for (let i = lo; i <= hi; i++) mergedSize *= shape[i];\n const newShape = [...shape.slice(0, lo), mergedSize, ...shape.slice(hi + 1)];\n\n const newLabels: Record<string, UniversalIndex<AxisName>> = {};\n for (const k of survivingKeys) newLabels[k] = this.labels[k];\n newLabels[merged.key] = merged.index;\n\n const newAxisOrder = [\n ...this.axisOrder.slice(0, lo),\n merged.key,\n ...this.axisOrder.slice(hi + 1),\n ];\n\n const reshaped = this.engine.reshape(this.tensor, newShape);\n return new LabeledTensor(reshaped, this.engine, newLabels, newAxisOrder);\n }\n\n /**\n * Split ONE engine axis (named `key`) into several, each carrying a\n * caller-supplied sub-label whose sizes multiply to the original axis size.\n * Rank R → R + (parts.length − 1). The parts occupy the split axis's position\n * in `parts` order. Inverse of {@link mergeAxes}.\n *\n * @public\n */\n public splitAxis(\n key: string,\n parts: readonly { key: string; index: UniversalIndex<AxisName>; size: number }[],\n ): LabeledTensor {\n const p = this.axisOrder.indexOf(key);\n if (p === -1) throw new AxisSplitError(`'${key}' is not a label key.`);\n if (parts.length < 2) {\n throw new AxisSplitError(`need at least 2 parts to split into, got ${parts.length}.`);\n }\n let product = 1;\n for (const part of parts) {\n if (!Number.isInteger(part.size) || part.size <= 0) {\n throw new AxisSplitError(`part '${part.key}' size must be a positive integer, got ${part.size}.`);\n }\n product *= part.size;\n }\n const axisSize = this.tensor.shape[p];\n if (product !== axisSize) {\n throw new AxisSplitError(\n `part sizes multiply to ${product} but axis '${key}' has size ${axisSize}.`,\n );\n }\n const survivingKeys = this.axisOrder.filter((k) => k !== key);\n const seen = new Set<string>();\n const seenIds = new Set<UniversalIndexId>();\n for (const part of parts) {\n if (survivingKeys.includes(part.key)) {\n throw new AxisSplitError(`part key '${part.key}' collides with a surviving label key.`);\n }\n if (seen.has(part.key)) throw new AxisSplitError(`duplicate part key '${part.key}'.`);\n seen.add(part.key);\n // Both parts SURVIVE, so two parts sharing one id would build a tensor\n // that `contract` later rejects as IdentityConflictError — fail here at\n // the malformed call instead (Eve Y1). (mergeAxes has no analogue: its\n // merged id replaces consumed axes, so reusing a consumed id is legal.)\n if (seenIds.has(part.index.id)) {\n throw new AxisSplitError(`two parts share id '${part.index.id}'.`);\n }\n seenIds.add(part.index.id);\n for (const k of survivingKeys) {\n if (this.labels[k].id === part.index.id) {\n throw new AxisSplitError(\n `part id '${part.index.id}' collides with surviving axis '${k}'.`,\n );\n }\n }\n }\n\n const shape = this.tensor.shape;\n const newShape = [...shape.slice(0, p), ...parts.map((pt) => pt.size), ...shape.slice(p + 1)];\n\n const newLabels: Record<string, UniversalIndex<AxisName>> = {};\n for (const k of survivingKeys) newLabels[k] = this.labels[k];\n for (const part of parts) newLabels[part.key] = part.index;\n\n const newAxisOrder = [\n ...this.axisOrder.slice(0, p),\n ...parts.map((pt) => pt.key),\n ...this.axisOrder.slice(p + 1),\n ];\n\n const reshaped = this.engine.reshape(this.tensor, newShape);\n return new LabeledTensor(reshaped, this.engine, newLabels, newAxisOrder);\n }\n}\n"]}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Readers for the typed MathTS results.
3
+ *
4
+ * The typed MathTS functions (`lgamma`, `ellipticK`, `mean`, `gcd`, `inv`,
5
+ * …) are dispatch objects whose declared return is `unknown`, so every
6
+ * caller used to carry its own `typeof` check before arithmetic. These three
7
+ * readers are that check, once: each returns the value as the type it is and
8
+ * throws a `TypeError` naming the MathTS function otherwise. They check the
9
+ * shape, not the value: a `NaN` is a number and is passed through, as the
10
+ * inline checks passed it.
11
+ *
12
+ * @module core/mathts-read
13
+ */
14
+ /** The number `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */
15
+ export declare function numberFrom(fn: string, v: unknown): number;
16
+ /** The bigint `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */
17
+ export declare function bigintFrom(fn: string, v: unknown): bigint;
18
+ /**
19
+ * The `n`×`n` number matrix `v` is, copied row by row into a fresh `number[][]`,
20
+ * or a `TypeError` naming the MathTS function `fn` when `v` is not an array of
21
+ * `n` rows of `n` numbers.
22
+ * @internal
23
+ */
24
+ export declare function numberMatrixFrom(fn: string, v: unknown, n: number): number[][];
25
+ //# sourceMappingURL=mathts-read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathts-read.d.ts","sourceRoot":"","sources":["../../src/core/mathts-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAQH,kHAAkH;AAClH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED,kHAAkH;AAClH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAGzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAS9E"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Readers for the typed MathTS results.
3
+ *
4
+ * The typed MathTS functions (`lgamma`, `ellipticK`, `mean`, `gcd`, `inv`,
5
+ * …) are dispatch objects whose declared return is `unknown`, so every
6
+ * caller used to carry its own `typeof` check before arithmetic. These three
7
+ * readers are that check, once: each returns the value as the type it is and
8
+ * throws a `TypeError` naming the MathTS function otherwise. They check the
9
+ * shape, not the value: a `NaN` is a number and is passed through, as the
10
+ * inline checks passed it.
11
+ *
12
+ * @module core/mathts-read
13
+ */
14
+ function kindOf(v) {
15
+ if (v === null)
16
+ return 'null';
17
+ if (Array.isArray(v))
18
+ return 'array';
19
+ return typeof v;
20
+ }
21
+ /** The number `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */
22
+ export function numberFrom(fn, v) {
23
+ if (typeof v !== 'number')
24
+ throw new TypeError(`${fn} did not return a number (got ${kindOf(v)})`);
25
+ return v;
26
+ }
27
+ /** The bigint `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */
28
+ export function bigintFrom(fn, v) {
29
+ if (typeof v !== 'bigint')
30
+ throw new TypeError(`${fn} did not return a bigint (got ${kindOf(v)})`);
31
+ return v;
32
+ }
33
+ /**
34
+ * The `n`×`n` number matrix `v` is, copied row by row into a fresh `number[][]`,
35
+ * or a `TypeError` naming the MathTS function `fn` when `v` is not an array of
36
+ * `n` rows of `n` numbers.
37
+ * @internal
38
+ */
39
+ export function numberMatrixFrom(fn, v, n) {
40
+ const refuse = () => {
41
+ throw new TypeError(`${fn} did not return a ${n}×${n} number matrix (got ${kindOf(v)})`);
42
+ };
43
+ if (!Array.isArray(v) || v.length !== n)
44
+ return refuse();
45
+ return v.map((row) => {
46
+ if (!Array.isArray(row) || row.length !== n)
47
+ return refuse();
48
+ return row.map((x) => (typeof x === 'number' ? x : refuse()));
49
+ });
50
+ }
51
+ //# sourceMappingURL=mathts-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mathts-read.js","sourceRoot":"","sources":["../../src/core/mathts-read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,SAAS,MAAM,CAAC,CAAU;IACxB,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,CAAU;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iCAAiC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnG,OAAO,CAAC,CAAC;AACX,CAAC;AAED,kHAAkH;AAClH,MAAM,UAAU,UAAU,CAAC,EAAU,EAAE,CAAU;IAC/C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,iCAAiC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnG,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAU,EAAE,CAAU,EAAE,CAAS;IAChE,MAAM,MAAM,GAAG,GAAU,EAAE;QACzB,MAAM,IAAI,SAAS,CAAC,GAAG,EAAE,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3F,CAAC,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,EAAE,CAAC;IACzD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAY,EAAE,EAAE;QAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,MAAM,EAAE,CAAC;QAC7D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * Readers for the typed MathTS results.\n *\n * The typed MathTS functions (`lgamma`, `ellipticK`, `mean`, `gcd`, `inv`,\n * …) are dispatch objects whose declared return is `unknown`, so every\n * caller used to carry its own `typeof` check before arithmetic. These three\n * readers are that check, once: each returns the value as the type it is and\n * throws a `TypeError` naming the MathTS function otherwise. They check the\n * shape, not the value: a `NaN` is a number and is passed through, as the\n * inline checks passed it.\n *\n * @module core/mathts-read\n */\n\nfunction kindOf(v: unknown): string {\n if (v === null) return 'null';\n if (Array.isArray(v)) return 'array';\n return typeof v;\n}\n\n/** The number `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */\nexport function numberFrom(fn: string, v: unknown): number {\n if (typeof v !== 'number') throw new TypeError(`${fn} did not return a number (got ${kindOf(v)})`);\n return v;\n}\n\n/** The bigint `v` is, or a `TypeError` naming the MathTS function `fn` that returned something else. @internal */\nexport function bigintFrom(fn: string, v: unknown): bigint {\n if (typeof v !== 'bigint') throw new TypeError(`${fn} did not return a bigint (got ${kindOf(v)})`);\n return v;\n}\n\n/**\n * The `n`×`n` number matrix `v` is, copied row by row into a fresh `number[][]`,\n * or a `TypeError` naming the MathTS function `fn` when `v` is not an array of\n * `n` rows of `n` numbers.\n * @internal\n */\nexport function numberMatrixFrom(fn: string, v: unknown, n: number): number[][] {\n const refuse = (): never => {\n throw new TypeError(`${fn} did not return a ${n}×${n} number matrix (got ${kindOf(v)})`);\n };\n if (!Array.isArray(v) || v.length !== n) return refuse();\n return v.map((row: unknown) => {\n if (!Array.isArray(row) || row.length !== n) return refuse();\n return row.map((x: unknown) => (typeof x === 'number' ? x : refuse()));\n });\n}\n"]}
@@ -152,7 +152,12 @@ export declare function getCellRegimes(cellId: string): ReadonlyArray<RegimeValu
152
152
  * @internal
153
153
  */
154
154
  export declare function _resetRegistryForTesting(): void;
155
- type AxisConvenience<Axis extends AxisName> = (spec: Omit<RegimeSpec<Axis>, 'axis'>) => RegimeValueBase;
155
+ /**
156
+ * The shape of the per-axis `define*` helpers: a {@link RegimeSpec} with the
157
+ * axis already fixed, returning the registered value.
158
+ * @public
159
+ */
160
+ export type AxisConvenience<Axis extends AxisName> = (spec: Omit<RegimeSpec<Axis>, 'axis'>) => RegimeValueBase;
156
161
  /** Register a regime on the `'scale'` axis. @public */
157
162
  export declare const defineScale: AxisConvenience<'scale'>;
158
163
  /** Register a regime on the `'force'` axis. @public */
@@ -165,5 +170,4 @@ export declare const defineInformation: AxisConvenience<'information'>;
165
170
  export declare const defineDimension: AxisConvenience<'dimension'>;
166
171
  /** Register a regime on the `'topology'` axis. @public */
167
172
  export declare const defineTopology: AxisConvenience<'topology'>;
168
- export {};
169
173
  //# sourceMappingURL=regime-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"regime-registry.d.ts","sourceRoot":"","sources":["../../src/core/regime-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAChB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU,CAAC,IAAI,SAAS,QAAQ,GAAG,QAAQ;IAC1D,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG;QAC5D,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,SAAgB,IAAI,EAAE,QAAQ,CAAC;IAC/B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,YAAY,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAUvF;CACF;AAqBD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,SAAS,QAAQ,EAChD,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,GACrB,eAAe,CA2BjB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAErF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,CAGhF;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAEvF;AAQD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,GACtC,IAAI,CAEN;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAEzF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAG/C;AAMD,KAAK,eAAe,CAAC,IAAI,SAAS,QAAQ,IAAI,CAC5C,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,KACjC,eAAe,CAAC;AAErB,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,OAAO,CACV,CAAC;AAExC,uDAAuD;AACvD,eAAO,MAAM,WAAW,EAAE,eAAe,CAAC,OAAO,CACV,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,UAAU,CACb,CAAC;AAE3C,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAAC,aAAa,CAChB,CAAC;AAE9C,2DAA2D;AAC3D,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,WAAW,CACd,CAAC;AAE5C,0DAA0D;AAC1D,eAAO,MAAM,cAAc,EAAE,eAAe,CAAC,UAAU,CACb,CAAC"}
1
+ {"version":3,"file":"regime-registry.d.ts","sourceRoot":"","sources":["../../src/core/regime-registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"regime-registry.js","sourceRoot":"","sources":["../../src/core/regime-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regime-registry.js","sourceRoot":"","sources":["../../src/core/regime-registry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `RegimeType` extension system — v0.8 Proposal 5.\n *\n * Per P5 Decision #1, this module ships the extension MECHANISM\n * (`defineRegime`, `lookupRegime`, `listRegimesByAxis`,\n * `provenanceFor`) PLUS the eight v0.6-shipped closed-union values\n * pre-registered (per Phase 2 — see `src/core/regimes-builtins.ts`).\n * Closed taxonomy of new physics-regime built-ins is deferred to\n * v0.9 per Decision #1 framing.\n *\n * Per P5 Adam-H1 reconciliation, Phase 4's per-cell regime field\n * ships as a sibling registry (`regimesForCell`) keyed by cell id\n * rather than as a new field on `BridgeCell` (avoids the\n * `cellToBridge` adapter round-trip that would strip unknown\n * fields).\n *\n * Per P5 Eve-M2 reconciliation, `FluxRuleKind` is extended with\n * `'regime-consistency'` discriminator in this commit (Phase 4\n * rule fires from `addCell`).\n *\n * @module core/regime-registry\n */\n\nimport type { AxisName } from './universal-index.js';\n\n/**\n * Provenance for a registered regime. Tracks WHO registered the\n * regime (the catalog source or downstream package name) and WHEN.\n * Per P5 Decision #4.\n *\n * @public\n */\nexport interface RegimeProvenance {\n /** The package or module that registered this regime. */\n readonly registeredBy: string;\n /** ISO-8601 timestamp string. Filled in by `defineRegime`. */\n readonly registeredAt: string;\n /** Optional citation (URL, DOI, or free-text). */\n readonly citation?: string;\n}\n\n/**\n * The base shape every registered regime carries. Implementation\n * detail: callers always interact via the per-axis convenience\n * APIs (`defineScale`, `defineForce`, ... — Phase 3) which\n * narrow `axis` to a literal at the type level.\n *\n * Per P5 Decision #2 (locked field set): `axis`, `tag`,\n * `displayName`, `tags?`, `limits?`, `provenance`.\n *\n * @public\n */\nexport interface RegimeValueBase {\n readonly axis: AxisName;\n readonly tag: string;\n readonly displayName: string;\n readonly tags?: ReadonlyArray<string>;\n readonly limits?: {\n readonly min?: number;\n readonly max?: number;\n };\n readonly provenance: RegimeProvenance;\n}\n\n/**\n * Spec passed to `defineRegime` to register a new regime value\n * under a given axis. The `provenance.registeredAt` field is\n * filled by `defineRegime` (so callers don't have to thread the\n * timestamp themselves).\n *\n * @public\n */\nexport interface RegimeSpec<Axis extends AxisName = AxisName> {\n readonly axis: Axis;\n readonly tag: string;\n readonly displayName: string;\n readonly tags?: ReadonlyArray<string>;\n readonly limits?: { readonly min?: number; readonly max?: number };\n readonly provenance: Omit<RegimeProvenance, 'registeredAt'> & {\n readonly registeredAt?: string;\n };\n}\n\n/**\n * Thrown when `defineRegime` receives a spec that contradicts an\n * already-registered (axis, tag) pair. Carries both specs for\n * diagnosis. Per P5 Decision #4 + Eve-L1 reconciliation\n * (idempotent re-registration with the SAME spec is allowed;\n * collisions throw).\n *\n * @public\n */\nexport class RegimeCollisionError extends Error {\n public readonly axis: AxisName;\n public readonly tag: string;\n constructor(axis: AxisName, tag: string, existing: RegimeValueBase, incoming: RegimeSpec) {\n super(\n `RegimeRegistry.defineRegime: cannot re-register (${axis}, '${tag}') ` +\n `with a different displayName ('${existing.displayName}' vs ` +\n `'${incoming.displayName}'). Identical re-registrations are ` +\n `idempotent; only conflicting specs throw.`,\n );\n this.name = 'RegimeCollisionError';\n this.axis = axis;\n this.tag = tag;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Private singleton storage\n// ---------------------------------------------------------------------------\n\nconst registry = new Map<AxisName, Map<string, RegimeValueBase>>();\n\nfunction ensureAxisMap(axis: AxisName): Map<string, RegimeValueBase> {\n let m = registry.get(axis);\n if (!m) {\n m = new Map();\n registry.set(axis, m);\n }\n return m;\n}\n\n// ---------------------------------------------------------------------------\n// Public API (Phase 1)\n// ---------------------------------------------------------------------------\n\n/**\n * Register a regime under its `(axis, tag)` coordinate. Idempotent\n * for identical re-registrations; throws `RegimeCollisionError`\n * for the same `(axis, tag)` with different content.\n *\n * Returns the canonicalized `RegimeValueBase` (with\n * `provenance.registeredAt` filled in if omitted).\n *\n * @public\n */\nexport function defineRegime<Axis extends AxisName>(\n spec: RegimeSpec<Axis>,\n): RegimeValueBase {\n const axisMap = ensureAxisMap(spec.axis);\n const existing = axisMap.get(spec.tag);\n const canonical: RegimeValueBase = {\n axis: spec.axis,\n tag: spec.tag,\n displayName: spec.displayName,\n ...(spec.tags ? { tags: spec.tags } : {}),\n ...(spec.limits ? { limits: spec.limits } : {}),\n provenance: {\n registeredBy: spec.provenance.registeredBy,\n registeredAt: spec.provenance.registeredAt ?? new Date().toISOString(),\n ...(spec.provenance.citation ? { citation: spec.provenance.citation } : {}),\n },\n };\n if (existing) {\n // Idempotency check: identical (modulo timestamp).\n if (\n existing.displayName !== canonical.displayName ||\n existing.provenance.registeredBy !== canonical.provenance.registeredBy\n ) {\n throw new RegimeCollisionError(spec.axis, spec.tag, existing, spec);\n }\n return existing;\n }\n axisMap.set(spec.tag, canonical);\n return canonical;\n}\n\n/**\n * Look up a registered regime by `(axis, tag)`. Returns `undefined`\n * if not registered.\n *\n * @public\n */\nexport function lookupRegime(axis: AxisName, tag: string): RegimeValueBase | undefined {\n return registry.get(axis)?.get(tag);\n}\n\n/**\n * Enumerate all regimes registered under a given axis. Returns\n * a snapshot array (safe to iterate without holding a registry\n * reference).\n *\n * @public\n */\nexport function listRegimesByAxis(axis: AxisName): ReadonlyArray<RegimeValueBase> {\n const m = registry.get(axis);\n return m ? [...m.values()] : [];\n}\n\n/**\n * Get the provenance of a specific `(axis, tag)` regime. Helper\n * for audit-tooling that needs to know who registered what.\n *\n * @public\n */\nexport function provenanceFor(axis: AxisName, tag: string): RegimeProvenance | undefined {\n return lookupRegime(axis, tag)?.provenance;\n}\n\n// ---------------------------------------------------------------------------\n// Phase 4 — per-cell regime attachment (sibling registry per Adam-M1)\n// ---------------------------------------------------------------------------\n\nconst cellRegimes = new Map<string, ReadonlyArray<RegimeValueBase>>();\n\n/**\n * Attach regime values to a cell by its `id`. Per P5 Adam-M1\n * resolution, regimes ride on a sibling registry rather than as a\n * `BridgeCell.regimes?` field — this preserves the P3 surface\n * contract (no new `BridgeCell` fields) and avoids the\n * `cellToBridge` adapter round-trip.\n *\n * Idempotent (same id + same regime set is a no-op).\n *\n * @public\n */\nexport function attachRegimesToCell(\n cellId: string,\n regimes: ReadonlyArray<RegimeValueBase>,\n): void {\n cellRegimes.set(cellId, regimes);\n}\n\n/**\n * Get the regimes attached to a cell by its `id`. Returns\n * `undefined` if no regimes are attached.\n *\n * @public\n */\nexport function getCellRegimes(cellId: string): ReadonlyArray<RegimeValueBase> | undefined {\n return cellRegimes.get(cellId);\n}\n\n/**\n * Clear all registered regimes AND all cell attachments. Test-only\n * helper — DO NOT call from production code.\n *\n * @internal\n */\nexport function _resetRegistryForTesting(): void {\n registry.clear();\n cellRegimes.clear();\n}\n\n// ---------------------------------------------------------------------------\n// Phase 3 — per-axis convenience APIs (typed narrowing)\n// ---------------------------------------------------------------------------\n\n/**\n * The shape of the per-axis `define*` helpers: a {@link RegimeSpec} with the\n * axis already fixed, returning the registered value.\n * @public\n */\nexport type AxisConvenience<Axis extends AxisName> = (\n spec: Omit<RegimeSpec<Axis>, 'axis'>,\n) => RegimeValueBase;\n\n/** Register a regime on the `'scale'` axis. @public */\nexport const defineScale: AxisConvenience<'scale'> = (s) =>\n defineRegime({ ...s, axis: 'scale' });\n\n/** Register a regime on the `'force'` axis. @public */\nexport const defineForce: AxisConvenience<'force'> = (s) =>\n defineRegime({ ...s, axis: 'force' });\n\n/** Register a regime on the `'symmetry'` axis. @public */\nexport const defineSymmetry: AxisConvenience<'symmetry'> = (s) =>\n defineRegime({ ...s, axis: 'symmetry' });\n\n/** Register a regime on the `'information'` axis. @public */\nexport const defineInformation: AxisConvenience<'information'> = (s) =>\n defineRegime({ ...s, axis: 'information' });\n\n/** Register a regime on the `'dimension'` axis. @public */\nexport const defineDimension: AxisConvenience<'dimension'> = (s) =>\n defineRegime({ ...s, axis: 'dimension' });\n\n/** Register a regime on the `'topology'` axis. @public */\nexport const defineTopology: AxisConvenience<'topology'> = (s) =>\n defineRegime({ ...s, axis: 'topology' });\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"regime-rule-install.js","sourceRoot":"","sources":["../../src/core/regime-rule-install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regime-rule-install.js","sourceRoot":"","sources":["../../src/core/regime-rule-install.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Wiring: installs P5's `RegimeConsistency` rule body into the\n * flux-rules registry. Importing this module activates Rule 4\n * (regime-consistency, WARNING tier) on every `UniversalTensor`.\n *\n * Phase 4 of v0.8 Proposal 5.\n *\n * The rule body checks: for each attached regime on a cell (via\n * `getCellRegimes(cell.id)`), does the regime's axis MATCH a\n * coordinate axis the cell occupies? If not, emit a warning.\n * Example: a `LawCell` with `scales: ['classical']` attached to\n * a regime whose `axis === 'scale'` but `tag === 'quantum'`\n * — the cell sits in classical coords but is tagged with a quantum\n * regime → warning.\n *\n * Per P5 Adam-M2 reconciliation, cells carry PLURAL axis arrays\n * (`LawCell.scales`, `LawCell.forces`); the rule reads any of them\n * and matches against the regime tag.\n *\n * Importing this module installs the rule. Consumers who don't\n * want regime checks can simply skip the import.\n *\n * @module core/regime-rule-install\n */\n\nimport { installRegimeConsistencyRule, type FluxRuleResult } from './flux-rules.js';\nimport { getCellRegimes } from './regime-registry.js';\nimport type { Cell } from './cell.js';\nimport type { AxisName } from './universal-index.js';\n\nfunction cellOccupiesAxisTag(cell: Cell, axis: AxisName, tag: string): boolean {\n switch (cell.kind) {\n case 'law':\n switch (axis) {\n case 'scale': return cell.scales.some((s) => s === tag);\n case 'force': return cell.forces.some((f) => f === tag);\n case 'symmetry': return cell.symmetries.some((s) => s === tag);\n case 'information':\n return cell.informationMeasures?.some((i) => i === tag) ?? false;\n case 'dimension':\n return cell.dimensions?.some((d) => String(d) === tag) ?? false;\n case 'topology':\n return cell.topologies?.some((t) => String(t) === tag) ?? false;\n }\n return false;\n case 'bridge':\n switch (axis) {\n case 'scale': return cell.source.scale === tag || cell.target.scale === tag;\n case 'force': return cell.source.force === tag || cell.target.force === tag;\n case 'symmetry': return cell.source.symmetry === tag || cell.target.symmetry === tag;\n case 'information':\n return cell.source.information === tag || cell.target.information === tag;\n case 'dimension':\n return String(cell.source.dimension) === tag || String(cell.target.dimension) === tag;\n case 'topology':\n return String(cell.source.topology) === tag || String(cell.target.topology) === tag;\n }\n return false;\n case 'emergence':\n return cell.indices.some((ix) => {\n switch (axis) {\n case 'scale': return ix.scale === tag;\n case 'force': return ix.force === tag;\n case 'symmetry': return ix.symmetry === tag;\n case 'information': return ix.information === tag;\n case 'dimension': return String(ix.dimension) === tag;\n case 'topology': return String(ix.topology) === tag;\n }\n return false;\n });\n }\n}\n\ninstallRegimeConsistencyRule((cell: Cell): FluxRuleResult => {\n const regimes = getCellRegimes(cell.id);\n if (!regimes || regimes.length === 0) return { ok: true };\n\n const mismatches = regimes.filter((r) => !cellOccupiesAxisTag(cell, r.axis, r.tag));\n if (mismatches.length === 0) return { ok: true };\n\n const m = mismatches[0];\n return {\n ok: true, // WARNING tier — does not throw\n diagnostic: {\n severity: 'warning',\n ruleName: 'regime-consistency',\n cellId: cell.id,\n message:\n `Cell '${cell.id}' is attached to regime '${m.tag}' on axis '${m.axis}' ` +\n `(displayName: '${m.displayName}') but the cell does not occupy any ` +\n `${m.axis} coordinate matching that tag. Either correct the attachment ` +\n `or extend the cell's ${m.axis} coordinates.`,\n },\n };\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"regimes-builtins.js","sourceRoot":"","sources":["../../src/core/regimes-builtins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"regimes-builtins.js","sourceRoot":"","sources":["../../src/core/regimes-builtins.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in regime registrations — Phase 2 of v0.8 Proposal 5.\n *\n * Pre-registers the v0.6-shipped closed-union values from\n * `src/core/types.ts` under the corresponding `AxisName`. This\n * gives downstream consumers a stable starting point: every\n * value already in the catalog has an entry in the regime\n * registry without per-bridge migration.\n *\n * Per P5 Decision #1, this does NOT close the new physics-regime\n * taxonomy (e.g., no \"classical-mechanics\", \"QFT\" regimes\n * shipped — those are v0.9 per-bridge physics review).\n *\n * Module-load side effect: registers every value below at import\n * time. Idempotent — re-importing or double-importing is a\n * no-op (see `defineRegime` idempotency in\n * `regime-registry.ts`).\n *\n * @module core/regimes-builtins\n */\n\nimport { defineRegime } from './regime-registry.js';\nimport type {\n PhysicalScale,\n Force,\n Symmetry,\n InformationMeasure,\n} from './types.js';\n\nconst BUILTIN_SOURCE = 'universal-physics-tensor';\n\n// ---------------------------------------------------------------------------\n// Scale axis — 4 entries\n// ---------------------------------------------------------------------------\n\nconst scaleTags: Array<{ tag: PhysicalScale; displayName: string }> = [\n { tag: 'quantum', displayName: 'Quantum (< 10^-9 m)' },\n { tag: 'mesoscopic', displayName: 'Mesoscopic (10^-9 to 10^-6 m)' },\n { tag: 'classical', displayName: 'Classical (10^-6 to 10^26 m)' },\n { tag: 'cosmological', displayName: 'Cosmological (> 10^26 m)' },\n];\n\nfor (const { tag, displayName } of scaleTags) {\n defineRegime({\n axis: 'scale',\n tag,\n displayName,\n provenance: { registeredBy: BUILTIN_SOURCE },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Force axis — 5 entries\n// ---------------------------------------------------------------------------\n\nconst forceTags: Array<{ tag: Force; displayName: string }> = [\n { tag: 'gravitational', displayName: 'Gravitational' },\n { tag: 'electromagnetic', displayName: 'Electromagnetic' },\n { tag: 'weak', displayName: 'Weak nuclear' },\n { tag: 'strong', displayName: 'Strong nuclear' },\n { tag: 'emergent', displayName: 'Emergent (friction, tension, etc.)' },\n];\n\nfor (const { tag, displayName } of forceTags) {\n defineRegime({\n axis: 'force',\n tag,\n displayName,\n provenance: { registeredBy: BUILTIN_SOURCE },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Symmetry axis — 5 entries (Eve-M1: NOT 4 + placeholder)\n// ---------------------------------------------------------------------------\n\nconst symmetryTags: Array<{ tag: Symmetry; displayName: string }> = [\n { tag: 'poincare', displayName: 'Poincaré (spacetime)' },\n { tag: 'gauge', displayName: 'Gauge (U(1), SU(2), SU(3))' },\n { tag: 'conformal', displayName: 'Conformal (scale invariance)' },\n { tag: 'susy', displayName: 'Supersymmetry' },\n { tag: 'emergent', displayName: 'Emergent (effective symmetries)' },\n];\n\nfor (const { tag, displayName } of symmetryTags) {\n defineRegime({\n axis: 'symmetry',\n tag,\n displayName,\n provenance: { registeredBy: BUILTIN_SOURCE },\n });\n}\n\n// ---------------------------------------------------------------------------\n// Information axis — 4 entries\n// ---------------------------------------------------------------------------\n\nconst informationTags: Array<{ tag: InformationMeasure; displayName: string }> = [\n { tag: 'vonNeumann', displayName: 'von Neumann entropy' },\n { tag: 'shannon', displayName: 'Shannon entropy' },\n { tag: 'kolmogorov', displayName: 'Kolmogorov complexity' },\n { tag: 'quantumDiscord', displayName: 'Quantum discord' },\n];\n\nfor (const { tag, displayName } of informationTags) {\n defineRegime({\n axis: 'information',\n tag,\n displayName,\n provenance: { registeredBy: BUILTIN_SOURCE },\n });\n}\n\n// dimension and topology axes are integer-valued; no built-in\n// registrations ship (per P1 Phase 0 census + P5 Decision #4 —\n// integer axes are wildcards).\n"]}
@@ -107,11 +107,16 @@ export declare class UniversalTensor {
107
107
  * @public
108
108
  */
109
109
  addCell(cell: Cell): boolean;
110
+ /** The stored entry `cell.id` currently names in its own kind's map, if any. */
111
+ private snapshotEntry;
110
112
  /**
111
113
  * Internal helper: roll back the legacy `addLaw`/`addBridge`/
112
114
  * `addEmergence` storage for a cell that just failed a rule check.
113
- * Used by `addCell` to maintain fail-atomic semantics on
114
- * ERROR-tier rule violations.
115
+ * Removes the freshly stored entry and, when the add replaced an
116
+ * existing entry, stores that entry again through the same add path
117
+ * (it passed structural validation when it was first stored). Used by
118
+ * `addCell` to maintain fail-atomic semantics on ERROR-tier rule
119
+ * violations.
115
120
  *
116
121
  * @internal
117
122
  */
@@ -229,8 +234,6 @@ export declare class UniversalTensor {
229
234
  occupiedCells: number;
230
235
  totalEntries: number;
231
236
  sparse: boolean;
232
- /** @deprecated use occupiedCells (cell count) or totalEntries (sum of set sizes) */
233
- totalElements: number;
234
237
  };
235
238
  /**
236
239
  * Serialize tensor indices to string key.
@@ -1 +1 @@
1
- {"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/core/tensor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/core/tensor.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * - E: Emergent phenomena (higher-order correlations)
12
12
  */
13
13
  import { lawToCell, bridgeToCell, emergenceToCell } from './cell.js';
14
+ import { Axes } from './axes-registry.js';
14
15
  import { runRules, V07_CELL_RULES, FluxViolationError } from './flux-rules.js';
15
16
  /**
16
17
  * Map the string-vocabulary {@link CellConfidence} to a representative
@@ -95,6 +96,20 @@ function cellToEmergence(cell) {
95
96
  confidence: statusToConfidenceNumber(cell.confidence),
96
97
  };
97
98
  }
99
+ /**
100
+ * Refuse a configured axis value the registry does not name. `admitted` is the
101
+ * registry namespace for that axis (`Axes.scale`, …), whose keys are the values.
102
+ */
103
+ function requireAxisValues(field, values, admitted) {
104
+ if (!Array.isArray(values))
105
+ throw new TypeError(`TensorConfig.${field} must be an array`);
106
+ const known = Object.keys(admitted);
107
+ for (const value of values) {
108
+ if (typeof value !== 'string' || !known.includes(value)) {
109
+ throw new RangeError(`TensorConfig.${field}: '${String(value)}' is not an axis value; the registry names ${known.join(', ')}`);
110
+ }
111
+ }
112
+ }
98
113
  /**
99
114
  * The rank-6 universal physics tensor Π = L + B + E: a sparse store of
100
115
  * physical-law / bridge / emergence cells indexed by regime coordinates.
@@ -136,6 +151,15 @@ export class UniversalTensor {
136
151
  if (!Array.isArray(config.forces) || config.forces.length === 0) {
137
152
  throw new TypeError('TensorConfig.forces must be a non-empty array');
138
153
  }
154
+ // Each value is one the axis registry names: `scales: ['nope']` used to build a tensor over
155
+ // an axis value nothing else in the library knows.
156
+ requireAxisValues('scales', config.scales, Axes.scale);
157
+ requireAxisValues('forces', config.forces, Axes.force);
158
+ if (config.symmetries !== undefined)
159
+ requireAxisValues('symmetries', config.symmetries, Axes.symmetry);
160
+ if (config.informationMeasures !== undefined) {
161
+ requireAxisValues('informationMeasures', config.informationMeasures, Axes.information);
162
+ }
139
163
  // Apply defaults
140
164
  this.config = {
141
165
  rank: config.rank,
@@ -336,8 +360,11 @@ export class UniversalTensor {
336
360
  // v0.7-p2 Phase 2 Task 2.3: dispatch to legacy add method FIRST
337
361
  // (catches structural-validation throws on bad inputs), then run
338
362
  // flux rules. ERROR-tier diagnostics throw FluxViolationError and
339
- // roll back the legacy add by removing the freshly-stored entry
340
- // (fail-atomic per Decision #4).
363
+ // roll back the legacy add (fail-atomic per Decision #4). The add may
364
+ // REPLACE an entry with the same id, so the entry that was there is
365
+ // snapshotted first and put back on rollback; deleting the id would
366
+ // erase a good record because its replacement was bad.
367
+ const previous = this.snapshotEntry(cell);
341
368
  let newlyAdded;
342
369
  switch (cell.kind) {
343
370
  case 'law':
@@ -363,21 +390,46 @@ export class UniversalTensor {
363
390
  const errDiag = report.diagnostics.find((d) => d.severity === 'error');
364
391
  if (errDiag) {
365
392
  // Roll back the legacy add before throwing (fail-atomic).
366
- this.rollbackCell(cell);
393
+ this.rollbackCell(cell, previous);
367
394
  throw new FluxViolationError(errDiag.ruleName, errDiag.cellId, errDiag.message);
368
395
  }
369
396
  }
370
397
  return newlyAdded;
371
398
  }
399
+ /** The stored entry `cell.id` currently names in its own kind's map, if any. */
400
+ snapshotEntry(cell) {
401
+ switch (cell.kind) {
402
+ case 'law': {
403
+ const law = this.knownLaws.get(cell.id);
404
+ return law === undefined ? undefined : { kind: 'law', law };
405
+ }
406
+ case 'bridge': {
407
+ const bridge = this.bridgeEquations.get(cell.id);
408
+ return bridge === undefined ? undefined : { kind: 'bridge', bridge };
409
+ }
410
+ case 'emergence': {
411
+ const phenomenon = this.emergentPhenomena.get(cell.id);
412
+ return phenomenon === undefined ? undefined : { kind: 'emergence', phenomenon };
413
+ }
414
+ default: {
415
+ const _exhaustive = cell;
416
+ void _exhaustive;
417
+ return undefined;
418
+ }
419
+ }
420
+ }
372
421
  /**
373
422
  * Internal helper: roll back the legacy `addLaw`/`addBridge`/
374
423
  * `addEmergence` storage for a cell that just failed a rule check.
375
- * Used by `addCell` to maintain fail-atomic semantics on
376
- * ERROR-tier rule violations.
424
+ * Removes the freshly stored entry and, when the add replaced an
425
+ * existing entry, stores that entry again through the same add path
426
+ * (it passed structural validation when it was first stored). Used by
427
+ * `addCell` to maintain fail-atomic semantics on ERROR-tier rule
428
+ * violations.
377
429
  *
378
430
  * @internal
379
431
  */
380
- rollbackCell(cell) {
432
+ rollbackCell(cell, previous) {
381
433
  switch (cell.kind) {
382
434
  case 'law': {
383
435
  const law = this.knownLaws.get(cell.id);
@@ -389,6 +441,8 @@ export class UniversalTensor {
389
441
  this.removeFromCell(this.serializeIndices({ scale, force }), cell.id);
390
442
  }
391
443
  }
444
+ if (previous?.kind === 'law')
445
+ this.addLaw(previous.law);
392
446
  return;
393
447
  }
394
448
  case 'bridge': {
@@ -397,6 +451,8 @@ export class UniversalTensor {
397
451
  return;
398
452
  this.bridgeEquations.delete(cell.id);
399
453
  this.removeFromCell(this.bridgeCellKey(bridge.source, bridge.target), cell.id);
454
+ if (previous?.kind === 'bridge')
455
+ this.addBridge(previous.bridge);
400
456
  return;
401
457
  }
402
458
  case 'emergence': {
@@ -409,6 +465,8 @@ export class UniversalTensor {
409
465
  if (key)
410
466
  this.removeFromCell(key, cell.id);
411
467
  }
468
+ if (previous?.kind === 'emergence')
469
+ this.addEmergence(previous.phenomenon);
412
470
  return;
413
471
  }
414
472
  default: {
@@ -662,8 +720,6 @@ export class UniversalTensor {
662
720
  occupiedCells: this.tensorData.size,
663
721
  totalEntries,
664
722
  sparse: this.config.sparse,
665
- /** @deprecated use occupiedCells (cell count) or totalEntries (sum of set sizes) */
666
- totalElements: this.tensorData.size,
667
723
  };
668
724
  }
669
725
  /**