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
@@ -5,12 +5,15 @@
5
5
  * link and regime-transition gaps abstain and tell the user to use discover.
6
6
  */
7
7
  import { readFileSync, statSync } from 'node:fs';
8
+ import { refuseExtraPositionals } from '../args.js';
8
9
  import { registerCommand } from '../command.js';
10
+ import { realFlag } from '../numeric-flag.js';
9
11
  import { commandHelp, JSON_FLAG, sourceFlag } from '../flag-help.js';
10
12
  import { resolveGraph } from '../graphs.js';
11
13
  import { emitJson } from '../output.js';
12
14
  import { UsageError, CliError } from '../errors.js';
13
15
  import { publishedUrl } from '../published-url.js';
16
+ import { PROBE_BUDGET_MS_DEFAULT, PROBE_CORRECTION_TERMS_MAX, PROBE_HOLDOUT_TOL_DEFAULT, PROBE_STUDY_ALPHA_DEFAULT, } from '../library-defaults.js';
14
17
  const PROBE_SUBCOMMANDS = [
15
18
  { name: 'scan', summary: 'List typed frontier gaps. The default listing is the searchable ones.' },
16
19
  { name: 'show', summary: 'Print one gap by id.' },
@@ -27,17 +30,17 @@ const FLAGS = [
27
30
  sourceFlag('catalog', 'Which graph a subverb reads: catalog, canonical, or both.'),
28
31
  JSON_FLAG,
29
32
  { name: '--problem', valueStyle: 'attached', description: 'Problem JSON file for run, candidates, falsify, rank, and reproduce.' },
30
- { name: '--budget-ms', valueStyle: 'attached', description: 'Wall-clock cap in milliseconds.', defaultValue: '5000' },
31
- { name: '--holdout-tol', valueStyle: 'attached', description: 'Relative holdout RMSE cap.', defaultValue: '0.15' },
33
+ { name: '--budget-ms', valueStyle: 'attached', description: 'Wall-clock cap in milliseconds.', defaultValue: PROBE_BUDGET_MS_DEFAULT },
34
+ { name: '--holdout-tol', valueStyle: 'attached', description: 'Relative holdout RMSE cap.', defaultValue: PROBE_HOLDOUT_TOL_DEFAULT },
32
35
  { name: '--worker', valueStyle: 'attached', description: 'Optional NDJSON worker, spawned as node PATH. The path must be a .js, .mjs, or .cjs file.' },
33
36
  { name: '--bounds', valueStyle: 'attached', description: 'Bounds for design, as the design subverb reads them.' },
34
- { name: '--h1', valueStyle: 'attached', description: 'First hypothesis for design.' },
35
- { name: '--h2', valueStyle: 'attached', description: 'Second hypothesis for design.' },
37
+ { name: '--h1', valueStyle: 'attached', description: "First hypothesis for design: an expression-tree JSON file. A symbol node's dim carries all seven exponents, L, M, T, I, Theta, N and J (a dimensionless symbol writes each as 0); a partial record is refused." },
38
+ { name: '--h2', valueStyle: 'attached', description: 'Second hypothesis for design, an expression-tree JSON file in the form --h1 takes.' },
36
39
  { name: '--searchable-only', valueStyle: 'none', description: 'scan: list only Product-B-searchable gaps. This is the default.' },
37
40
  { name: '--all', valueStyle: 'none', description: 'scan: include Product A wrappers, which are not searchable here.' },
38
41
  { name: '--data', valueStyle: 'attached', description: 'Study file (JSON, or CSV when the name ends in .csv) for study.' },
39
42
  { name: '--replication', valueStyle: 'attached', description: 'study: replication rows from a separate JSON or CSV file.' },
40
- { name: '--alpha', valueStyle: 'attached', description: 'study: χ² test level.', defaultValue: 'the file\'s alpha, else 0.001' },
43
+ { name: '--alpha', valueStyle: 'attached', description: 'study: χ² test level.', defaultValue: `the file's alpha, else ${PROBE_STUDY_ALPHA_DEFAULT}` },
41
44
  ];
42
45
  /**
43
46
  * The text printed when a scan has gaps and none of them are searchable.
@@ -69,7 +72,13 @@ const HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|
69
72
  \`--problem=FILE\`. The id is not that file.
70
73
  scan typed frontier gaps (default: searchable only)
71
74
  show <gap-id> one gap
72
- run --problem=FILE bounded native search (MHC / holdout / budget)
75
+ run --problem=FILE bounded native search (MHC / holdout / budget).
76
+ When the governing variables leave dimensionless
77
+ groups, the native enumerator also fits a rational
78
+ power law of the π-groups, base · Π πₖ^(p/q) with
79
+ q ≤ 6 within 2σ, on the exploratory rows only (the
80
+ holdout rows are never fitted); an exponent that is
81
+ no such fraction is reported, not a candidate
73
82
  candidates same as run; list stored statuses
74
83
  falsify run + print falsification batteries
75
84
  rank run + Pareto front
@@ -83,11 +92,11 @@ const HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|
83
92
  or CSV) with its own provenance
84
93
  --searchable-only scan: only Product-B-searchable gaps (default)
85
94
  --all scan: include Product A wrappers (not searchable)
86
- --budget-ms=N wall-clock cap (default 5000)
87
- --holdout-tol=X relative holdout RMSE cap (default 0.15)
95
+ --budget-ms=N wall-clock cap (default ${PROBE_BUDGET_MS_DEFAULT})
96
+ --holdout-tol=X relative holdout RMSE cap (default ${PROBE_HOLDOUT_TOL_DEFAULT})
88
97
  --worker=PATH optional NDJSON worker (spawned as node PATH)
89
98
  --source=catalog|canonical|both the graph a subverb reads (default catalog)
90
- --alpha=X study: χ² test level (default: the file's, else 0.001)
99
+ --alpha=X study: χ² test level (default: the file's, else ${PROBE_STUDY_ALPHA_DEFAULT})
91
100
  --json machine envelope
92
101
 
93
102
  PROBLEM FILE (--problem=FILE, JSON)
@@ -144,10 +153,10 @@ const HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|
144
153
  models over the governing names in SI units, e.g.
145
154
  "2*pi*sqrt(length/gravity)"; must have the target's dimension.
146
155
  fitPrefactor (default false) fits one scale on exploratory rows.
147
- criterion optional {"alpha"} (default 0.001)
156
+ criterion optional {"alpha"} (default ${PROBE_STUDY_ALPHA_DEFAULT})
148
157
  design optional {"variables": {input: {"min", "max", "steps"?}}}
149
158
  correction optional {"input": <dimensionless input u>, "powers": [2, 4]},
150
- or a list of them, one per input (at most 6 powers in all):
159
+ or a list of them, one per input (at most ${PROBE_CORRECTION_TERMS_MAX} powers in all):
151
160
  also search m(x)·(1 + c₁u² + c₂u⁴ + …) for each monomial m,
152
161
  fit on exploratory rows only. Terms are admitted in the
153
162
  declared order, family by family, while each passes an
@@ -188,13 +197,15 @@ const EPISTEMICS = '⚠ experimental Product B. Not a discovery claim. `upt disc
188
197
  function isSubverb(s) {
189
198
  return SUBVERBS.includes(s);
190
199
  }
200
+ // Each numeric flag: the grammar first (a malformed token is usage, exit 2), the range after
201
+ // (a well-formed value outside it is a bad value, exit 1).
191
202
  function budgetFromFlags(api, flags) {
192
203
  const raw = flags.get('budget-ms')?.[0];
193
204
  if (raw === undefined)
194
205
  return undefined;
195
- const n = Number(raw);
196
- if (!Number.isFinite(n) || n <= 0) {
197
- throw new UsageError('upt probe: --budget-ms must be a positive number');
206
+ const n = realFlag('probe', '--budget-ms', raw);
207
+ if (!(n > 0)) {
208
+ throw new CliError('upt probe: --budget-ms must be a positive number');
198
209
  }
199
210
  return { ...api.DEFAULT_SEARCH_BUDGET, maxWallClockMs: n };
200
211
  }
@@ -202,9 +213,9 @@ function holdoutTolFromFlags(flags) {
202
213
  const raw = flags.get('holdout-tol')?.[0];
203
214
  if (raw === undefined)
204
215
  return undefined;
205
- const n = Number(raw);
206
- if (!Number.isFinite(n) || n <= 0) {
207
- throw new UsageError('upt probe: --holdout-tol must be a positive number');
216
+ const n = realFlag('probe', '--holdout-tol', raw);
217
+ if (!(n > 0)) {
218
+ throw new CliError('upt probe: --holdout-tol must be a positive number');
208
219
  }
209
220
  return n;
210
221
  }
@@ -214,32 +225,58 @@ function problemPath(flags) {
214
225
  throw new UsageError('upt probe: --problem=FILE is required for this subverb');
215
226
  return p;
216
227
  }
217
- /** Map probe file/parse failures to CLI errors (no stack traces). */
218
- function mapProbeError(e, context) {
228
+ /** The `code` and `path` Node puts on a failed file-system call; empty for any other error. */
229
+ function errnoOf(e) {
230
+ if (!(e instanceof Error))
231
+ return {};
232
+ const code = 'code' in e ? e.code : undefined;
233
+ const path = 'path' in e ? e.path : undefined;
234
+ return {
235
+ ...(typeof code === 'string' ? { code } : {}),
236
+ ...(typeof path === 'string' ? { path } : {}),
237
+ };
238
+ }
239
+ /**
240
+ * Map probe file/parse failures to CLI errors (no stack traces). `kind` names what the file was
241
+ * read as (`a problem file` for `run --problem`, `an expression file` for a `design` hypothesis,
242
+ * `a bounds file` for its bounds), so a refusal of the loader's own checks says the right thing.
243
+ */
244
+ function mapProbeError(api, e, context, kind = 'a problem file') {
219
245
  if (e instanceof UsageError || e instanceof CliError)
220
246
  throw e;
221
- const err = e;
222
- if (err?.code === 'ENOENT') {
223
- throw new CliError(`upt probe: file not found: ${err.path ?? context ?? 'unknown'}`);
247
+ const errno = errnoOf(e);
248
+ if (errno.code === 'ENOENT') {
249
+ throw new CliError(`upt probe: file not found: ${errno.path ?? context ?? 'unknown'}`);
224
250
  }
225
251
  if (e instanceof SyntaxError) {
226
- throw new CliError(`upt probe: invalid JSON${context ? ` in ${context}` : ''}: ${e.message}`);
252
+ // The JSON readers prefix the file's path; a context that names it already drops the repeat.
253
+ const message = context !== undefined && e.message.startsWith(`${context}: `) ? e.message.slice(context.length + 2) : e.message;
254
+ throw new CliError(`upt probe: invalid JSON${context ? ` in ${context}` : ''}: ${message}`);
255
+ }
256
+ // The loader checks every field it reads and names the one that is wrong.
257
+ if (e instanceof api.ProblemFileError) {
258
+ throw new CliError(`upt probe: ${context ?? 'the file'} is not ${kind}: ${e.message}. \`upt help probe\` shows the format.`);
259
+ }
260
+ // A TypeError or a RangeError past those checks is a field of a shape the loader does not
261
+ // check. It is reported as that, with the engine's words marked as the engine's.
262
+ if (e instanceof TypeError || e instanceof RangeError) {
263
+ throw new CliError(`upt probe: ${context ?? 'the file'} has a field of a shape the probe does not read (internal: ${e.message}). \`upt help probe\` shows the format.`);
227
264
  }
228
265
  if (e instanceof Error) {
229
266
  throw new CliError(`upt probe: ${e.message}`);
230
267
  }
231
268
  throw e;
232
269
  }
233
- function readJsonFile(path) {
270
+ function readJsonFile(api, path) {
234
271
  try {
235
272
  return JSON.parse(readFileSync(path, 'utf8'));
236
273
  }
237
274
  catch (e) {
238
- mapProbeError(e, path);
275
+ mapProbeError(api, e, path);
239
276
  }
240
277
  }
241
278
  /** Reject Node flag injection via `--worker=--import=…` etc. */
242
- function validateWorkerPath(worker) {
279
+ function validateWorkerPath(api, worker) {
243
280
  if (worker.startsWith('-')) {
244
281
  throw new UsageError('upt probe: --worker must be a script path, not a Node flag');
245
282
  }
@@ -252,16 +289,22 @@ function validateWorkerPath(worker) {
252
289
  }
253
290
  }
254
291
  catch (e) {
255
- mapProbeError(e, worker);
292
+ mapProbeError(api, e, worker);
256
293
  }
257
294
  return worker;
258
295
  }
259
296
  async function run(ctx) {
260
297
  const { args, api, out } = ctx;
261
298
  const sub = args.positionals[0];
262
- if (!isSubverb(sub)) {
299
+ if (sub === undefined) {
263
300
  throw new UsageError(`upt probe needs a subverb (${SUBVERBS.join('|')}). See \`upt help probe\`.`);
264
301
  }
302
+ // A token that is not a subverb is named as such, not reported as a missing one.
303
+ if (!isSubverb(sub)) {
304
+ throw new UsageError(`upt probe: '${sub}' is not a subverb (${SUBVERBS.join('|')}). See \`upt help probe\`.`);
305
+ }
306
+ // `show` reads its gap id; every other subverb reads the subverb alone (§Hardening).
307
+ refuseExtraPositionals(`probe ${sub}`, args.positionals.slice(sub === 'show' ? 2 : 1), 0);
265
308
  const { graph, source } = resolveGraph(api, args.flags);
266
309
  if (sub === 'scan') {
267
310
  if (args.flags.has('searchable-only') && args.flags.has('all')) {
@@ -330,12 +373,30 @@ async function run(ctx) {
330
373
  if (!h1p || !h2p || !bp) {
331
374
  throw new UsageError('upt probe design needs --h1=FILE --h2=FILE --bounds=FILE');
332
375
  }
376
+ // Each file is parsed under its own name, so an invalid JSON message names the file.
377
+ const parseExpr = (path) => {
378
+ try {
379
+ return api.parseExprJson(path);
380
+ }
381
+ catch (e) {
382
+ mapProbeError(api, e, path, 'an expression file');
383
+ }
384
+ };
385
+ const h1 = parseExpr(h1p);
386
+ const h2 = parseExpr(h2p);
387
+ let bounds;
388
+ try {
389
+ bounds = api.parseDesignBounds(readJsonFile(api, bp), bp);
390
+ }
391
+ catch (e) {
392
+ mapProbeError(api, e, bp, 'a bounds file');
393
+ }
333
394
  let suggestion;
334
395
  try {
335
- suggestion = api.suggestDiscriminatingPoint(api.parseExprJson(h1p), api.parseExprJson(h2p), api.parseDesignBounds(readJsonFile(bp), bp));
396
+ suggestion = api.suggestDiscriminatingPoint(h1, h2, bounds);
336
397
  }
337
398
  catch (e) {
338
- mapProbeError(e);
399
+ mapProbeError(api, e, `${h1p}, ${h2p}, ${bp}`);
339
400
  }
340
401
  if (args.flags.has('json')) {
341
402
  emitJson({ command: 'probe', epistemics: EPISTEMICS, result: suggestion }, ctx.write);
@@ -359,14 +420,17 @@ async function run(ctx) {
359
420
  problem = api.loadSearchProblemFromJson(pp);
360
421
  }
361
422
  catch (e) {
362
- mapProbeError(e, pp);
423
+ mapProbeError(api, e, pp);
363
424
  }
364
425
  const workerRaw = args.flags.get('worker')?.[0];
365
- const worker = workerRaw ? validateWorkerPath(workerRaw) : undefined;
426
+ // `--worker=` with nothing after it is not "no worker": it is refused, as `--replication=` is.
427
+ if (workerRaw === '')
428
+ throw new UsageError('upt probe: --worker needs a PATH (a .js, .mjs, or .cjs file)');
429
+ const worker = workerRaw === undefined ? undefined : validateWorkerPath(api, workerRaw);
366
430
  const result = await api.runProbeSearch(problem, {
367
431
  budget: budgetFromFlags(api, args.flags),
368
432
  holdoutTol: holdoutTolFromFlags(args.flags),
369
- backendArgv: worker ? [process.execPath, worker] : undefined,
433
+ backendArgv: worker ? api.nodeWorkerArgv(worker) : undefined,
370
434
  });
371
435
  if (sub === 'run' || sub === 'reproduce' || sub === 'rank' || sub === 'candidates' || sub === 'falsify') {
372
436
  if (args.flags.has('json')) {
@@ -419,9 +483,9 @@ function alphaFromFlags(flags) {
419
483
  const raw = flags.get('alpha')?.[0];
420
484
  if (raw === undefined)
421
485
  return undefined;
422
- const n = Number(raw);
423
- if (!Number.isFinite(n) || n <= 0 || n >= 1) {
424
- throw new UsageError('upt probe: --alpha must be a number in (0, 1)');
486
+ const n = realFlag('probe', '--alpha', raw);
487
+ if (!(n > 0 && n < 1)) {
488
+ throw new CliError('upt probe: --alpha must be a number in (0, 1)');
425
489
  }
426
490
  return n;
427
491
  }
@@ -440,14 +504,14 @@ async function runStudy(ctx, source) {
440
504
  study = api.loadStudyFile(path, replication);
441
505
  }
442
506
  catch (e) {
443
- mapProbeError(e, e instanceof SyntaxError ? undefined : path);
507
+ mapProbeError(api, e, e instanceof SyntaxError ? undefined : path);
444
508
  }
445
509
  let result;
446
510
  try {
447
511
  result = await api.runProbeStudy(study, { budget, alpha });
448
512
  }
449
513
  catch (e) {
450
- mapProbeError(e, path);
514
+ mapProbeError(api, e, path);
451
515
  }
452
516
  if (args.flags.has('json')) {
453
517
  emitJson({ command: 'probe', source, epistemics: EPISTEMICS, options: { subverb: 'study' }, result }, ctx.write);
@@ -478,6 +542,9 @@ function notFalsified(result) {
478
542
  export const command = {
479
543
  name: 'probe',
480
544
  aliases: [],
545
+ // The subverb, and `show`'s gap id. The arity is the subverb's, so `run` refuses the first
546
+ // token past what the subverb reads, naming it under `upt probe <subverb>:`.
547
+ positionals: { max: Infinity },
481
548
  flags: FLAGS,
482
549
  help: commandHelp(HELP, FLAGS),
483
550
  summary: 'Search expressions and residuals. This is not `upt discover`.',
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../src/cli/commands/probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../../src/cli/commands/probe.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt probe <subverb>` — experimental Product B expression/residual search.\n *\n * Orthogonal to `upt discover` (Product A quantity identification). Relation-\n * link and regime-transition gaps abstain and tell the user to use discover.\n */\nimport { readFileSync, statSync } from 'node:fs';\nimport { refuseExtraPositionals, type FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { realFlag } from '../numeric-flag.js';\nimport { commandHelp, JSON_FLAG, sourceFlag } from '../flag-help.js';\nimport { resolveGraph } from '../graphs.js';\nimport { emitJson } from '../output.js';\nimport { UsageError, CliError } from '../errors.js';\nimport { publishedUrl } from '../published-url.js';\nimport {\n PROBE_BUDGET_MS_DEFAULT,\n PROBE_CORRECTION_TERMS_MAX,\n PROBE_HOLDOUT_TOL_DEFAULT,\n PROBE_STUDY_ALPHA_DEFAULT,\n} from '../library-defaults.js';\n\nconst PROBE_SUBCOMMANDS = [\n { name: 'scan', summary: 'List typed frontier gaps. The default listing is the searchable ones.' },\n { name: 'show', summary: 'Print one gap by id.' },\n { name: 'run', summary: 'Run a bounded search from a problem file.' },\n { name: 'candidates', summary: 'Run the search and list stored statuses.' },\n { name: 'falsify', summary: 'Run the search and print the falsification batteries.' },\n { name: 'rank', summary: 'Run the search and print the Pareto front.' },\n { name: 'design', summary: 'Suggest a discriminating experiment from two hypotheses and bounds.' },\n { name: 'reproduce', summary: 'Re-run a problem file under the same stop contract.' },\n { name: 'study', summary: 'Fit exploratory rows only, then test on withheld holdout and replication rows.' },\n] as const;\nconst SUBVERBS = PROBE_SUBCOMMANDS.map((s) => s.name);\ntype Subverb = (typeof SUBVERBS)[number];\n\nconst FLAGS: FlagSpec[] = [\n sourceFlag('catalog', 'Which graph a subverb reads: catalog, canonical, or both.'),\n JSON_FLAG,\n { name: '--problem', valueStyle: 'attached', description: 'Problem JSON file for run, candidates, falsify, rank, and reproduce.' },\n { name: '--budget-ms', valueStyle: 'attached', description: 'Wall-clock cap in milliseconds.', defaultValue: PROBE_BUDGET_MS_DEFAULT },\n { name: '--holdout-tol', valueStyle: 'attached', description: 'Relative holdout RMSE cap.', defaultValue: PROBE_HOLDOUT_TOL_DEFAULT },\n { name: '--worker', valueStyle: 'attached', description: 'Optional NDJSON worker, spawned as node PATH. The path must be a .js, .mjs, or .cjs file.' },\n { name: '--bounds', valueStyle: 'attached', description: 'Bounds for design, as the design subverb reads them.' },\n { name: '--h1', valueStyle: 'attached', description:\n \"First hypothesis for design: an expression-tree JSON file. A symbol node's dim carries all seven exponents, L, M, T, I, Theta, N and J (a dimensionless symbol writes each as 0); a partial record is refused.\" },\n { name: '--h2', valueStyle: 'attached', description: 'Second hypothesis for design, an expression-tree JSON file in the form --h1 takes.' },\n { name: '--searchable-only', valueStyle: 'none', description: 'scan: list only Product-B-searchable gaps. This is the default.' },\n { name: '--all', valueStyle: 'none', description: 'scan: include Product A wrappers, which are not searchable here.' },\n { name: '--data', valueStyle: 'attached', description: 'Study file (JSON, or CSV when the name ends in .csv) for study.' },\n { name: '--replication', valueStyle: 'attached', description: 'study: replication rows from a separate JSON or CSV file.' },\n { name: '--alpha', valueStyle: 'attached', description: 'study: χ² test level.', defaultValue: `the file's alpha, else ${PROBE_STUDY_ALPHA_DEFAULT}` },\n];\n\n/**\n * The text printed when a scan has gaps and none of them are searchable.\n * The live catalog scan is no longer in that state; this wording stays\n * covered by a direct test.\n * @internal\n */\nexport function emptySearchableWarning(total: number): readonly string[] {\n return [\n 'upt probe scan — typed frontier gaps',\n `⚠ 0 of ${total} gaps are searchable by Product B ` +\n `(all are relation-link / regime-transition).`,\n ' Use `upt discover` for those. Pass --all to list them here.',\n ' To search expressions, write a problem file (`upt help probe`, PROBLEM FILE, has a minimal example) ' +\n 'and run `upt probe run --problem=FILE`.',\n ];\n}\n\nconst HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|study>\n Experimental expression/residual search (Product B). Orthogonal to\n \\`upt discover\\`, which vets quantity identifications a≡b and is frozen.\n Relation-link / regime-transition gaps are not searchable here — use\n \\`upt discover\\`.\n An \\`fg-expr-<case id>\\` gap is a searchable expression handle: one\n prediction-residual record per applied case, observations empty, built\n from the case id and title. It carries no named baseline and no\n dataset. Scientific-Bridge-Discovery-v1 admits a prediction-residual\n scanner only when both exist, so this listing is not a detected\n residual and not a fitted formula. \\`upt probe run\\` still requires\n \\`--problem=FILE\\`. The id is not that file.\n scan typed frontier gaps (default: searchable only)\n show <gap-id> one gap\n run --problem=FILE bounded native search (MHC / holdout / budget).\n When the governing variables leave dimensionless\n groups, the native enumerator also fits a rational\n power law of the π-groups, base · Π πₖ^(p/q) with\n q ≤ 6 within 2σ, on the exploratory rows only (the\n holdout rows are never fitted); an exponent that is\n no such fraction is reported, not a candidate\n candidates same as run; list stored statuses\n falsify run + print falsification batteries\n rank run + Pareto front\n design --h1= --h2= --bounds= discriminating experiment suggestion\n reproduce --problem=FILE re-run a problem (same stop contract)\n study --data=FILE search + fit on exploratory rows only, then χ²-test\n the candidate and declared baselines on withheld\n holdout / replication rows; suggest a discriminating\n measurement (see STUDY FILE below)\n --replication=FILE study: replication rows from a separate file (JSON\n or CSV) with its own provenance\n --searchable-only scan: only Product-B-searchable gaps (default)\n --all scan: include Product A wrappers (not searchable)\n --budget-ms=N wall-clock cap (default ${PROBE_BUDGET_MS_DEFAULT})\n --holdout-tol=X relative holdout RMSE cap (default ${PROBE_HOLDOUT_TOL_DEFAULT})\n --worker=PATH optional NDJSON worker (spawned as node PATH)\n --source=catalog|canonical|both the graph a subverb reads (default catalog)\n --alpha=X study: χ² test level (default: the file's, else ${PROBE_STUDY_ALPHA_DEFAULT})\n --json machine envelope\n\n PROBLEM FILE (--problem=FILE, JSON)\n target {\"name\", \"dim\"}: the observable to explain. \"dim\" is a named\n dimension (time, length, mass, acceleration, ...) or explicit\n L^a.M^b.T^c (e.g. \"L^3.M^-1.T^-2\").\n governing [{\"name\", \"dim\"}, ...]: the candidate inputs.\n exploratory {\"observable\", \"rows\": [{name: value, ...}, ...]}: the fit data.\n holdout the same shape: the locked data the fit must also pass. A row\n that also appears in exploratory is refused as a leak.\n gap optional {\"id\", \"kind\", \"summary\"}. \"id\" must start with \"fg-\".\n \"kind\" is one of prediction-residual, relation-link,\n regime-transition, parameter-tension, assumption-conflict,\n missing-operator, unexplained-observation (default),\n model-disagreement, causal-mechanism, other.\n role optional on a dataset: exploratory-fit (default for\n exploratory), validation-holdout (default for holdout),\n external-replication, falsification-only.\n observationsPath optional: a separate JSON file with the datasets.\n A dimensionless governing variable is written with \"dim\": \"dimensionless\".\n Minimal example (small-angle pendulum):\n {\n \"target\": {\"name\": \"period\", \"dim\": \"time\"},\n \"governing\": [{\"name\": \"length\", \"dim\": \"length\"},\n {\"name\": \"gravity\", \"dim\": \"acceleration\"}],\n \"exploratory\": {\"observable\": \"period\", \"rows\": [\n {\"length\": 1, \"gravity\": 9.81, \"period\": 2.006},\n {\"length\": 2, \"gravity\": 9.81, \"period\": 2.837},\n {\"length\": 0.5, \"gravity\": 1.62, \"period\": 3.491}]},\n \"holdout\": {\"observable\": \"period\", \"rows\": [\n {\"length\": 1.5, \"gravity\": 3.71, \"period\": 3.995}]}\n }\n\n STUDY FILE (--data=FILE, JSON, or CSV when FILE ends in .csv)\n provenance {\"synthetic\": true|false (required, never inferred),\n \"source\", \"acquisition\"?, \"calibration\"?}\n target {\"name\", \"unit\", \"sigma\"?} sigma: default row uncertainty\n governing [{\"name\", \"unit\", \"sigma\"?}, ...] \"unit\": \"\" when\n dimensionless; \"sigma\": default input uncertainty\n observations [{\"id\"?, \"role\", \"values\": {input: value}, \"observed\",\n \"sigma\"?, \"inputSigma\"?: {input: σ}, \"source\"?}, ...].\n A bare number is in the declared unit; \"120 cm\" is\n converted; a dimension mismatch, a missing σ or an\n undeclared key refuses the file.\n input σ propagated by effective variance: σ_eff² = σ_y² +\n Σ (∂f/∂x_i · σ_x_i)², with each model's own slopes; the\n report states which inputs carry σ. First order in σ_x.\n role exploratory (the only rows searched and fit) | holdout\n (withheld test, e.g. a change of regime) | replication\n (independent acquisition, withheld). A withheld row that\n repeats an exploratory row's inputs, or a replication row\n sharing an exploratory row's source, refuses the file.\n baselines optional [{\"name\", \"formula\", \"fitPrefactor\"?}]: competing\n models over the governing names in SI units, e.g.\n \"2*pi*sqrt(length/gravity)\"; must have the target's dimension.\n fitPrefactor (default false) fits one scale on exploratory rows.\n criterion optional {\"alpha\"} (default ${PROBE_STUDY_ALPHA_DEFAULT})\n design optional {\"variables\": {input: {\"min\", \"max\", \"steps\"?}}}\n correction optional {\"input\": <dimensionless input u>, \"powers\": [2, 4]},\n or a list of them, one per input (at most ${PROBE_CORRECTION_TERMS_MAX} powers in all):\n also search m(x)·(1 + c₁u² + c₂u⁴ + …) for each monomial m,\n fit on exploratory rows only. Terms are admitted in the\n declared order, family by family, while each passes an\n extra-sum-of-squares F test at p < α; the first term a\n family fails ends that family. The families are additive:\n no cross term (u·v) and no other function is searched.\n CSV '# key: value' lines above the header declare the study:\n '# target: <column>', '# target.sigma: 2 ms',\n '# governing.<input>.sigma: σ', '# provenance.synthetic: true',\n '# provenance.source: ...', and any other key above as a\n dotted path; a value is JSON when it parses, else text.\n Header: name[unit] quantity columns (name[] when\n dimensionless), and id, role, source, sigma, sigma(<input>),\n note. An empty cell is absent. Refused for the same\n reasons as the JSON it compiles to.\n REPLICATION FILE (--replication=FILE): provenance, target, governing\n and replication rows only. Refused if its source or\n acquisition is the study's (ignoring case, spacing and\n punctuation), or if a row repeats a study row's data\n exactly (the same data renamed).\n closeness replication rows at a study row's inputs are tested for\n agreement too good to be true: identity (Σz² on ν = n) and\n affine (y_rep = a + b·y_study, ν = n − 2), each a lower-tail\n χ² test at α/2. Either firing makes replication too-close:\n a copy, or an overstated σ. Rows at other inputs are not\n tested, so a copy at altered inputs is not caught.\n Verdicts: no-credible-candidate | refuted-on-holdout | survives-holdout |\n untested-on-holdout; replication is reported separately\n (survives-replication | refuted-on-replication | too-close |\n no-replication-data | not-tested). A candidate\n is credible only if it passes on exploratory rows AND a constant model\n is rejected there. A fit is not a mechanism.\n Synthetic controls: ${publishedUrl('tests/fixtures/probe-study')}/*.synthetic.{json,csv}.\n Every one was designed knowing its generating law, so a recovery shows\n the method recovers that law; none is a blind test of finding an\n unknown one, and UPT ships no blind control.`;\n\nconst EPISTEMICS =\n '⚠ experimental Product B. Not a discovery claim. `upt discover` is the identification funnel.';\n\nfunction isSubverb(s: string | undefined): s is Subverb {\n return SUBVERBS.includes(s as Subverb);\n}\n\n// Each numeric flag: the grammar first (a malformed token is usage, exit 2), the range after\n// (a well-formed value outside it is a bad value, exit 1).\nfunction budgetFromFlags(api: CommandCtx['api'], flags: Map<string, string[]>) {\n const raw = flags.get('budget-ms')?.[0];\n if (raw === undefined) return undefined;\n const n = realFlag('probe', '--budget-ms', raw);\n if (!(n > 0)) {\n throw new CliError('upt probe: --budget-ms must be a positive number');\n }\n return { ...api.DEFAULT_SEARCH_BUDGET, maxWallClockMs: n };\n}\n\nfunction holdoutTolFromFlags(flags: Map<string, string[]>): number | undefined {\n const raw = flags.get('holdout-tol')?.[0];\n if (raw === undefined) return undefined;\n const n = realFlag('probe', '--holdout-tol', raw);\n if (!(n > 0)) {\n throw new CliError('upt probe: --holdout-tol must be a positive number');\n }\n return n;\n}\n\nfunction problemPath(flags: Map<string, string[]>): string {\n const p = flags.get('problem')?.[0];\n if (!p) throw new UsageError('upt probe: --problem=FILE is required for this subverb');\n return p;\n}\n\n/** The `code` and `path` Node puts on a failed file-system call; empty for any other error. */\nfunction errnoOf(e: unknown): { code?: string; path?: string } {\n if (!(e instanceof Error)) return {};\n const code: unknown = 'code' in e ? e.code : undefined;\n const path: unknown = 'path' in e ? e.path : undefined;\n return {\n ...(typeof code === 'string' ? { code } : {}),\n ...(typeof path === 'string' ? { path } : {}),\n };\n}\n\n/**\n * Map probe file/parse failures to CLI errors (no stack traces). `kind` names what the file was\n * read as (`a problem file` for `run --problem`, `an expression file` for a `design` hypothesis,\n * `a bounds file` for its bounds), so a refusal of the loader's own checks says the right thing.\n */\nfunction mapProbeError(api: CommandCtx['api'], e: unknown, context?: string, kind = 'a problem file'): never {\n if (e instanceof UsageError || e instanceof CliError) throw e;\n const errno = errnoOf(e);\n if (errno.code === 'ENOENT') {\n throw new CliError(`upt probe: file not found: ${errno.path ?? context ?? 'unknown'}`);\n }\n if (e instanceof SyntaxError) {\n // The JSON readers prefix the file's path; a context that names it already drops the repeat.\n const message = context !== undefined && e.message.startsWith(`${context}: `) ? e.message.slice(context.length + 2) : e.message;\n throw new CliError(\n `upt probe: invalid JSON${context ? ` in ${context}` : ''}: ${message}`,\n );\n }\n // The loader checks every field it reads and names the one that is wrong.\n if (e instanceof api.ProblemFileError) {\n throw new CliError(\n `upt probe: ${context ?? 'the file'} is not ${kind}: ${e.message}. \\`upt help probe\\` shows the format.`,\n );\n }\n // A TypeError or a RangeError past those checks is a field of a shape the loader does not\n // check. It is reported as that, with the engine's words marked as the engine's.\n if (e instanceof TypeError || e instanceof RangeError) {\n throw new CliError(\n `upt probe: ${context ?? 'the file'} has a field of a shape the probe does not read (internal: ${e.message}). \\`upt help probe\\` shows the format.`,\n );\n }\n if (e instanceof Error) {\n throw new CliError(`upt probe: ${e.message}`);\n }\n throw e;\n}\n\nfunction readJsonFile(api: CommandCtx['api'], path: string): unknown {\n try {\n return JSON.parse(readFileSync(path, 'utf8'));\n } catch (e) {\n mapProbeError(api, e, path);\n }\n}\n\n/** Reject Node flag injection via `--worker=--import=…` etc. */\nfunction validateWorkerPath(api: CommandCtx['api'], worker: string): string {\n if (worker.startsWith('-')) {\n throw new UsageError('upt probe: --worker must be a script path, not a Node flag');\n }\n if (!/\\.(m?js|cjs)$/i.test(worker)) {\n throw new UsageError('upt probe: --worker must be a .js, .mjs, or .cjs file');\n }\n try {\n if (!statSync(worker).isFile()) {\n throw new UsageError(`upt probe: --worker is not a file: ${worker}`);\n }\n } catch (e) {\n mapProbeError(api, e, worker);\n }\n return worker;\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out } = ctx;\n const sub = args.positionals[0];\n if (sub === undefined) {\n throw new UsageError(\n `upt probe needs a subverb (${SUBVERBS.join('|')}). See \\`upt help probe\\`.`,\n );\n }\n // A token that is not a subverb is named as such, not reported as a missing one.\n if (!isSubverb(sub)) {\n throw new UsageError(\n `upt probe: '${sub}' is not a subverb (${SUBVERBS.join('|')}). See \\`upt help probe\\`.`,\n );\n }\n // `show` reads its gap id; every other subverb reads the subverb alone (§Hardening).\n refuseExtraPositionals(`probe ${sub}`, args.positionals.slice(sub === 'show' ? 2 : 1), 0);\n\n const { graph, source } = resolveGraph(api, args.flags);\n\n if (sub === 'scan') {\n if (args.flags.has('searchable-only') && args.flags.has('all')) {\n throw new UsageError('upt probe scan: pick one of --searchable-only or --all');\n }\n // Default: the searchable expression gaps (one prediction-residual per\n // applied case). Product A wrappers stay hidden unless `--all`. The\n // zero-searchable warning is only for a scan that really has none.\n const showAll = args.flags.has('all');\n const allGaps = api.scanWithExpressionGaps(graph);\n const searchable = allGaps.filter((g) => g.searchability.searchable);\n const gaps = showAll ? allGaps : searchable;\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'probe',\n source,\n epistemics: EPISTEMICS,\n options: {\n scan: {\n total: allGaps.length,\n searchable: searchable.length,\n showing: showAll ? 'all' : 'searchable-only',\n },\n },\n result: gaps,\n },\n ctx.write,\n );\n return 0;\n }\n if (!showAll && searchable.length === 0 && allGaps.length > 0) {\n for (const line of emptySearchableWarning(allGaps.length)) out(line);\n return 0;\n }\n out(api.formatFrontierScan(gaps));\n if (!showAll && allGaps.length > searchable.length) {\n out(\n ` (${allGaps.length - searchable.length} Product A wrappers hidden; pass --all to list them)`,\n );\n }\n if (\n !showAll &&\n searchable.length > 0 &&\n searchable.every(\n (g) =>\n g.kind === 'prediction-residual' &&\n g.id.startsWith('fg-expr-') &&\n g.observations.length === 0,\n )\n ) {\n out(\n ' Expression gaps are listed as searchable with empty observations and no named baseline or dataset. ' +\n 'A detected prediction residual needs both. An id is not a problem file (`upt probe run --problem=FILE`).',\n );\n }\n return 0;\n }\n\n if (sub === 'show') {\n const id = args.positionals[1];\n if (!id) throw new UsageError('upt probe show needs a gap id (fg-*). See `upt help probe`.');\n const gap = api.scanWithExpressionGaps(graph).find((g) => g.id === id);\n if (!gap) throw new CliError(`upt probe show: no gap '${id}' on this graph`);\n if (args.flags.has('json')) {\n emitJson({ command: 'probe', source, epistemics: EPISTEMICS, result: gap }, ctx.write);\n return 0;\n }\n out(api.formatFrontierGap(gap));\n return 0;\n }\n\n if (sub === 'design') {\n const h1p = args.flags.get('h1')?.[0];\n const h2p = args.flags.get('h2')?.[0];\n const bp = args.flags.get('bounds')?.[0];\n if (!h1p || !h2p || !bp) {\n throw new UsageError('upt probe design needs --h1=FILE --h2=FILE --bounds=FILE');\n }\n // Each file is parsed under its own name, so an invalid JSON message names the file.\n const parseExpr = (path: string) => {\n try {\n return api.parseExprJson(path);\n } catch (e) {\n mapProbeError(api, e, path, 'an expression file');\n }\n };\n const h1 = parseExpr(h1p);\n const h2 = parseExpr(h2p);\n let bounds;\n try {\n bounds = api.parseDesignBounds(readJsonFile(api, bp), bp);\n } catch (e) {\n mapProbeError(api, e, bp, 'a bounds file');\n }\n let suggestion;\n try {\n suggestion = api.suggestDiscriminatingPoint(h1, h2, bounds);\n } catch (e) {\n mapProbeError(api, e, `${h1p}, ${h2p}, ${bp}`);\n }\n if (args.flags.has('json')) {\n emitJson({ command: 'probe', epistemics: EPISTEMICS, result: suggestion }, ctx.write);\n return 0;\n }\n if (suggestion.abstained) {\n out(`upt probe design — abstained: ${suggestion.reason}`);\n return 0;\n }\n out('upt probe design — suggested discriminating point (never in a forbidden region)');\n out(` discrimination |H1-H2|/σ = ${suggestion.discrimination}`);\n out(` point ${JSON.stringify(suggestion.point)}`);\n out(` H1=${suggestion.h1} H2=${suggestion.h2}`);\n return 0;\n }\n\n if (sub === 'study') return runStudy(ctx, source);\n\n const pp = problemPath(args.flags);\n let problem;\n try {\n problem = api.loadSearchProblemFromJson(pp);\n } catch (e) {\n mapProbeError(api, e, pp);\n }\n const workerRaw = args.flags.get('worker')?.[0];\n // `--worker=` with nothing after it is not \"no worker\": it is refused, as `--replication=` is.\n if (workerRaw === '') throw new UsageError('upt probe: --worker needs a PATH (a .js, .mjs, or .cjs file)');\n const worker = workerRaw === undefined ? undefined : validateWorkerPath(api, workerRaw);\n const result = await api.runProbeSearch(problem, {\n budget: budgetFromFlags(api, args.flags),\n holdoutTol: holdoutTolFromFlags(args.flags),\n backendArgv: worker ? api.nodeWorkerArgv(worker) : undefined,\n });\n\n if (sub === 'run' || sub === 'reproduce' || sub === 'rank' || sub === 'candidates' || sub === 'falsify') {\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'probe',\n source,\n epistemics: EPISTEMICS,\n options: { subverb: sub },\n result: {\n stopReason: result.stopReason,\n runId: result.manifest.runId,\n candidates: result.candidates.map((c) => ({\n id: c.id,\n status: c.status,\n fingerprint: c.fingerprint,\n complexity: c.complexity,\n })),\n ranked: result.ranked.map((r) => ({\n id: r.record.id,\n pareto: r.pareto,\n scores: r.scores,\n status: r.record.status,\n })),\n wording: result.wording,\n ...(sub === 'falsify'\n ? { falsifications: result.falsifications, notFalsified: notFalsified(result) }\n : {}),\n },\n },\n ctx.write,\n );\n return 0;\n }\n out(api.formatProbeReport(result));\n if (sub === 'falsify') {\n for (const [id, fal] of Object.entries(result.falsifications)) {\n out(`\\n falsify ${id} survived=${fal.survived}`);\n for (const rec of fal.records) out(` ${rec.battery}: ${rec.outcome} — ${rec.detail}`);\n }\n // Every candidate is accounted for (persona finding C5): one without\n // batteries used to be passed over in silence.\n for (const n of notFalsified(result)) {\n out(`\\n falsify ${n.id}: no batteries run — status ${n.status}: ${n.reason}`);\n }\n }\n return 0;\n }\n\n throw new UsageError(`upt probe: unhandled subverb '${sub}'`);\n}\n\nfunction alphaFromFlags(flags: Map<string, string[]>): number | undefined {\n const raw = flags.get('alpha')?.[0];\n if (raw === undefined) return undefined;\n const n = realFlag('probe', '--alpha', raw);\n if (!(n > 0 && n < 1)) {\n throw new CliError('upt probe: --alpha must be a number in (0, 1)');\n }\n return n;\n}\n\nasync function runStudy(ctx: CommandCtx, source: ReturnType<typeof resolveGraph>['source']): Promise<number> {\n const { args, api, out } = ctx;\n const path = args.flags.get('data')?.[0];\n if (!path) throw new UsageError('upt probe study: --data=FILE is required');\n const replication = args.flags.get('replication')?.[0];\n if (replication === '') throw new UsageError('upt probe study: --replication needs a FILE');\n const budget = budgetFromFlags(api, args.flags);\n const alpha = alphaFromFlags(args.flags);\n let study;\n try {\n study = api.loadStudyFile(path, replication);\n } catch (e) {\n mapProbeError(api, e, e instanceof SyntaxError ? undefined : path);\n }\n let result;\n try {\n result = await api.runProbeStudy(study, { budget, alpha });\n } catch (e) {\n mapProbeError(api, e, path);\n }\n if (args.flags.has('json')) {\n emitJson(\n { command: 'probe', source, epistemics: EPISTEMICS, options: { subverb: 'study' }, result },\n ctx.write,\n );\n return 0;\n }\n out(api.formatProbeStudy(result));\n return 0;\n}\n\n/** Why the falsification batteries did not run for a candidate, by its final status. */\nconst NOT_FALSIFIED_REASON: Readonly<Record<string, string>> = {\n 'equivalent-known':\n 'batteries run only for candidates that are not equivalent to a known corpus relation',\n rejected: 'the candidate was rejected before falsification',\n 'insufficient-evidence': 'there were no holdout observations to test it on',\n 'empirically-fit': 'the candidate did not pass its holdout',\n 'structurally-valid': 'the candidate was not fit to data',\n generated: 'the candidate was not validated',\n};\n\n/** The candidates the batteries did not run for, with the reason. */\nfunction notFalsified(result: {\n candidates: readonly { id: string; status: string }[];\n falsifications: Readonly<Record<string, unknown>>;\n}): { id: string; status: string; reason: string }[] {\n return result.candidates\n .filter((c) => !(c.id in result.falsifications))\n .map((c) => ({\n id: c.id,\n status: c.status,\n reason: NOT_FALSIFIED_REASON[c.status] ?? 'the batteries did not run for this status',\n }));\n}\n\nexport const command: Command = {\n name: 'probe',\n aliases: [],\n // The subverb, and `show`'s gap id. The arity is the subverb's, so `run` refuses the first\n // token past what the subverb reads, naming it under `upt probe <subverb>:`.\n positionals: { max: Infinity },\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Search expressions and residuals. This is not `upt discover`.',\n example: 'upt probe scan',\n group: 'discovery',\n subcommands: PROBE_SUBCOMMANDS,\n run,\n};\n\nregisterCommand(command);\n"]}
@@ -48,7 +48,7 @@ async function run(ctx) {
48
48
  if (restates.length) {
49
49
  out(' RESTATES-CANONICAL (the bridge IS the canonical law — F4: NOT a discovery):');
50
50
  for (const r of restates) {
51
- const rec = r.recovery && r.recovery.tested ? ` (recovery exact, err ${r.recovery.maxRelErr.toExponential(0)})` : '';
51
+ const rec = r.recovery && r.recovery.tested ? ` (recovery exact, err ${api.formatQuantity(r.recovery.maxRelErr)})` : '';
52
52
  out(` ${r.canonicalId.padEnd(26)} ≡ bridge ${r.bridgeId}${rec}` +
53
53
  conventionAdvisory(api, r.canonicalId, r.bridgeId));
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recover.js","sourceRoot":"","sources":["../../../src/cli/commands/recover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recover.js","sourceRoot":"","sources":["../../../src/cli/commands/recover.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt recover` — validate bridges against standard physics (bridge↔canonical\n * linkage, the F4 circularity guard). Transposed verbatim from bin/upt.mjs's\n * `recoverCmd()` (lines 818-841), plus `--json`. No `--source`.\n */\nimport type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { commandHelp, JSON_FLAG } from '../flag-help.js';\nimport { emitJson } from '../output.js';\n\nconst FLAGS: FlagSpec[] = [JSON_FLAG];\n\nconst HELP = `upt recover\n Validate bridges against standard physics: classify each bridge↔\n canonical link as restates-canonical (F4 circularity — NOT a\n discovery), recovers (undeclared structural match), or\n dimensional-only. A chain of two symbolic edges is reported\n separately. That comparison does not cancel dimensionful constants,\n and a chain is never restates-canonical.`;\n\nconst EPISTEMICS =\n '⚠ structural match is \"same relation UP TO a dimensionless factor\"; that factor\\n' +\n ' may itself be physically substantive (e.g. ⟨e^-βW⟩). A review surface.';\n\n/**\n * The advisory suffix for one linkage row, or `''`.\n *\n * ADVISORY ONLY — it changes no classification, no ordering and no exit code.\n * It is empty unless BOTH the canonical equation and the bridge's graph edge\n * DECLARE a convention key and declare it differently; `checkConventions`\n * treats an undeclared key as unknown, so a record that says nothing is never\n * reported as disagreeing. No record in the repo declares conventions today,\n * so this returns `''` for every row and the output is unchanged — pinned by\n * `tests/cli/recover-conventions.test.ts`.\n */\nfunction conventionAdvisory(\n api: CommandCtx['api'],\n canonicalId: string,\n bridgeId: number,\n): string {\n const ce = api.CANONICAL_EQUATIONS.find((e) => e.id === canonicalId);\n const edge = api.CATALOG_GRAPH.find((e) => e.beId === bridgeId);\n const keys = api.checkConventions(ce?.conventions, edge?.conventions);\n return keys.length === 0 ? '' : `\\n ⚠ conventions differ: ${keys.join(', ')}`;\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out } = ctx;\n const all = api.scanLinkages();\n const composition = api.scanCompositionRecovery();\n\n if (args.flags.has('json')) {\n emitJson(\n { command: 'recover', epistemics: EPISTEMICS, result: all, compositionRecovery: composition },\n ctx.write,\n );\n return 0;\n }\n const by = (c: string) => all.filter((r) => r.classification === c);\n const restates = by('restates-canonical');\n const recovers = by('recovers');\n const dimOnly = by('dimensional-only');\n out('\\nBridge↔canonical recovery — validating bridges against standard physics');\n out('⚠ structural match is \"same relation UP TO a dimensionless factor\"; that factor');\n out(' may itself be physically substantive (e.g. ⟨e^-βW⟩). A review surface.\\n');\n out(\n ` ${all.length} non-unrelated links → ${restates.length} restates-canonical ` +\n `· ${recovers.length} recovers · ${dimOnly.length} dimensional-only\\n`\n );\n if (restates.length) {\n out(' RESTATES-CANONICAL (the bridge IS the canonical law — F4: NOT a discovery):');\n for (const r of restates) {\n const rec = r.recovery && r.recovery.tested ? ` (recovery exact, err ${api.formatQuantity(r.recovery.maxRelErr)})` : '';\n out(\n ` ${r.canonicalId.padEnd(26)} ≡ bridge ${r.bridgeId}${rec}` +\n conventionAdvisory(api, r.canonicalId, r.bridgeId)\n );\n }\n }\n if (recovers.length) {\n out(\"\\n RECOVERS (undeclared structural correspondence — worth a physicist's look):\");\n for (const r of recovers) {\n out(\n ` ${r.canonicalId.padEnd(26)} ~ bridge ${r.bridgeId} (same form up to a dimensionless factor)` +\n conventionAdvisory(api, r.canonicalId, r.bridgeId)\n );\n }\n }\n out(`\\n (${dimOnly.length} dimensional-only: same dimension, different form. Run \\`upt canonical\\` for the registry.)`);\n out('\\nComposition-derived recovery — a chain of two symbolic edges');\n out(' Compared up to a dimensionless factor. Dimensionful cancellation is not applied.');\n out(' A chain is never restates-canonical.');\n out(` ${composition.pairs.length} pairs examined, ${composition.hits.length} structural matches.`);\n for (const hit of composition.hits) {\n out(` ${hit.firstId} -> ${hit.secondId} recovers ${hit.canonicalId}`);\n }\n return 0;\n}\n\nexport const command: Command = {\n name: 'recover',\n aliases: ['recovery', 'validate'],\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Classify each bridge-to-canonical link as restates, recovers, or dimensional-only.',\n example: 'upt recover',\n group: 'explore',\n run,\n};\n\nregisterCommand(command);\n"]}
@@ -4,9 +4,10 @@ import { type Command, type CommandCtx } from '../command.js';
4
4
  * positionals, so `--at theta0=0.2 T0=1 t=10` works as written: the parser
5
5
  * gives `--at` one value and leaves the rest as positionals.
6
6
  *
7
- * @throws CliError on a malformed or non-finite assignment. A dropped
8
- * coordinate would silently turn a CHECKED inequality into an unchecked one,
9
- * which is exactly the reading this command exists to keep honest.
7
+ * @throws UsageError on a token with no `=`, CliError on a non-finite value or
8
+ * a group given twice. A dropped coordinate would silently turn a CHECKED
9
+ * inequality into an unchecked one, which is exactly the reading this
10
+ * command exists to keep honest.
10
11
  * @internal
11
12
  */
12
13
  export declare function parseAt(api: CommandCtx['api'], raw: readonly string[], command: string, notes?: string[]): Record<string, number>;
@@ -19,7 +20,7 @@ export declare function parseAt(api: CommandCtx['api'], raw: readonly string[],
19
20
  * lists the keys that are neither a group nor a parameter of any regime here.
20
21
  * @internal
21
22
  */
22
- export declare function resolveAtPoint(point: Readonly<Record<string, number>>, regimes: readonly {
23
+ export declare function resolveAtPoint(api: CommandCtx['api'], point: Readonly<Record<string, number>>, regimes: readonly {
23
24
  groupDefinitions: Readonly<Record<string, {
24
25
  exponents: Readonly<Record<string, number>>;
25
26
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"regime.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/regime.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAmB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AA6D/E;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EACtB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoCxB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS;IAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC,CAAC;IAAC,YAAY,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,GAC9J;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6BvD;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGzG;AA2PD,eAAO,MAAM,OAAO,EAAE,OASrB,CAAC"}
1
+ {"version":3,"file":"regime.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/regime.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAmB,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAyD/E;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CACrB,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EACtB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA6BxB;AAKD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACvC,OAAO,EAAE,SAAS;IAAE,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC,CAAC;IAAC,YAAY,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,GAC9J;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CA6BvD;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGzG;AA+PD,eAAO,MAAM,OAAO,EAAE,OAUrB,CAAC"}