universal-physics-tensor 8.0.0 → 10.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 (916) hide show
  1. package/README.md +26 -21
  2. package/data/atlas/atlas.json +75 -64
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +23 -22
  5. package/data/atlas/oscillators.json +21 -16
  6. package/data/atlas/waves.json +33 -28
  7. package/data/bridge-catalog.json +1356 -1791
  8. package/data/bridge-catalog.schema.json +789 -46
  9. package/data/quantities.json +280 -234
  10. package/data/quantities.schema.json +52 -0
  11. package/data/schemas/atlas-record.v0.json +184 -46
  12. package/data/units.json +1178 -0
  13. package/data/units.schema.json +124 -0
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +14 -3
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.d.ts +1 -1
  18. package/dist/atlas/association.js.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  21. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  22. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  23. package/dist/atlas/benchmark/baselines.js +8 -0
  24. package/dist/atlas/benchmark/baselines.js.map +1 -1
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  26. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  27. package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
  28. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  29. package/dist/atlas/benchmark/leakage.js.map +1 -1
  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 +1 -1
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +1 -1
  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.js.map +1 -1
  45. package/dist/atlas/chain-pipeline.d.ts +0 -11
  46. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  47. package/dist/atlas/chain-pipeline.js +5 -16
  48. package/dist/atlas/chain-pipeline.js.map +1 -1
  49. package/dist/atlas/composition-table.js.map +1 -1
  50. package/dist/atlas/conventions.js.map +1 -1
  51. package/dist/atlas/coverage.d.ts +2 -2
  52. package/dist/atlas/coverage.js.map +1 -1
  53. package/dist/atlas/derivation.js.map +1 -1
  54. package/dist/atlas/derive-evidence.d.ts +6 -4
  55. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  56. package/dist/atlas/derive-evidence.js +7 -2
  57. package/dist/atlas/derive-evidence.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  60. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  62. package/dist/atlas/diffusion/bridges.js +0 -3
  63. package/dist/atlas/diffusion/bridges.js.map +1 -1
  64. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  65. package/dist/atlas/diffusion/index.d.ts +1 -1
  66. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  67. package/dist/atlas/diffusion/index.js.map +1 -1
  68. package/dist/atlas/diffusion/models.js.map +1 -1
  69. package/dist/atlas/diffusion/numerics.js.map +1 -1
  70. package/dist/atlas/error-algebra.d.ts +6 -0
  71. package/dist/atlas/error-algebra.d.ts.map +1 -1
  72. package/dist/atlas/error-algebra.js +26 -0
  73. package/dist/atlas/error-algebra.js.map +1 -1
  74. package/dist/atlas/export.d.ts +18 -2
  75. package/dist/atlas/export.d.ts.map +1 -1
  76. package/dist/atlas/export.js +9 -3
  77. package/dist/atlas/export.js.map +1 -1
  78. package/dist/atlas/families.d.ts +19 -2
  79. package/dist/atlas/families.d.ts.map +1 -1
  80. package/dist/atlas/families.js +26 -3
  81. package/dist/atlas/families.js.map +1 -1
  82. package/dist/atlas/family.d.ts +27 -0
  83. package/dist/atlas/family.d.ts.map +1 -0
  84. package/dist/atlas/family.js +12 -0
  85. package/dist/atlas/family.js.map +1 -0
  86. package/dist/atlas/index.d.ts +3 -2
  87. package/dist/atlas/index.d.ts.map +1 -1
  88. package/dist/atlas/index.js +2 -1
  89. package/dist/atlas/index.js.map +1 -1
  90. package/dist/atlas/link-prediction.d.ts +1 -1
  91. package/dist/atlas/link-prediction.d.ts.map +1 -1
  92. package/dist/atlas/link-prediction.js.map +1 -1
  93. package/dist/atlas/model.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  96. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  99. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  100. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  101. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  102. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  103. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  104. package/dist/atlas/oscillators/index.d.ts +1 -16
  105. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  106. package/dist/atlas/oscillators/index.js.map +1 -1
  107. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  108. package/dist/atlas/oscillators/models.js.map +1 -1
  109. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  110. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  111. package/dist/atlas/oscillators/norms.js.map +1 -1
  112. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  113. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  114. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  115. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  116. package/dist/atlas/oscillators/rejections.js.map +1 -1
  117. package/dist/atlas/path-bound.js.map +1 -1
  118. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  119. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  120. package/dist/atlas/physjs-entries.generated.js +1854 -345
  121. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  122. package/dist/atlas/physjs-ref.d.ts +151 -117
  123. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  124. package/dist/atlas/physjs-ref.js +244 -211
  125. package/dist/atlas/physjs-ref.js.map +1 -1
  126. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  127. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  128. package/dist/atlas/physjs-reviewed.js +194 -0
  129. package/dist/atlas/physjs-reviewed.js.map +1 -0
  130. package/dist/atlas/poster/associations.js.map +1 -1
  131. package/dist/atlas/poster/derivations.js.map +1 -1
  132. package/dist/atlas/poster/statements.js.map +1 -1
  133. package/dist/atlas/proof-target.d.ts +16 -8
  134. package/dist/atlas/proof-target.d.ts.map +1 -1
  135. package/dist/atlas/proof-target.js +34 -31
  136. package/dist/atlas/proof-target.js.map +1 -1
  137. package/dist/atlas/public.d.ts +2 -1
  138. package/dist/atlas/public.d.ts.map +1 -1
  139. package/dist/atlas/public.js +2 -1
  140. package/dist/atlas/public.js.map +1 -1
  141. package/dist/atlas/regime.js.map +1 -1
  142. package/dist/atlas/serialize.d.ts +18 -12
  143. package/dist/atlas/serialize.d.ts.map +1 -1
  144. package/dist/atlas/serialize.js +28 -18
  145. package/dist/atlas/serialize.js.map +1 -1
  146. package/dist/atlas/statement.js.map +1 -1
  147. package/dist/atlas/translation-registry.js.map +1 -1
  148. package/dist/atlas/translation.js.map +1 -1
  149. package/dist/atlas/types.d.ts +9 -2
  150. package/dist/atlas/types.d.ts.map +1 -1
  151. package/dist/atlas/types.js +1 -1
  152. package/dist/atlas/types.js.map +1 -1
  153. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  154. package/dist/atlas/waves/bridges-closure.js +0 -3
  155. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  156. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  157. package/dist/atlas/waves/bridges.js +0 -4
  158. package/dist/atlas/waves/bridges.js.map +1 -1
  159. package/dist/atlas/waves/index.d.ts +1 -1
  160. package/dist/atlas/waves/index.d.ts.map +1 -1
  161. package/dist/atlas/waves/index.js.map +1 -1
  162. package/dist/atlas/waves/models.js.map +1 -1
  163. package/dist/atlas/waves/numerics.js.map +1 -1
  164. package/dist/atlas/witness-artifact.js.map +1 -1
  165. package/dist/atlas/witness-dominance.d.ts +4 -3
  166. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  167. package/dist/atlas/witness-dominance.js +15 -5
  168. package/dist/atlas/witness-dominance.js.map +1 -1
  169. package/dist/atlas/witness-numeric.d.ts +8 -4
  170. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  171. package/dist/atlas/witness-numeric.js +27 -2
  172. package/dist/atlas/witness-numeric.js.map +1 -1
  173. package/dist/atlas/witness-result.d.ts +7 -1
  174. package/dist/atlas/witness-result.d.ts.map +1 -1
  175. package/dist/atlas/witness-result.js.map +1 -1
  176. package/dist/atlas/witness-specs.js.map +1 -1
  177. package/dist/atlas/witness-symbolic.js.map +1 -1
  178. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  179. package/dist/bridges/caller-table.d.ts +1 -1
  180. package/dist/bridges/caller-table.d.ts.map +1 -1
  181. package/dist/bridges/caller-table.js.map +1 -1
  182. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  183. package/dist/bridges/carrier-sign.js +8 -3
  184. package/dist/bridges/carrier-sign.js.map +1 -1
  185. package/dist/bridges/catalog-adapter.d.ts +12 -3
  186. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  187. package/dist/bridges/catalog-adapter.js +22 -14
  188. package/dist/bridges/catalog-adapter.js.map +1 -1
  189. package/dist/bridges/catalog-load.d.ts +19 -2
  190. package/dist/bridges/catalog-load.d.ts.map +1 -1
  191. package/dist/bridges/catalog-load.js +233 -14
  192. package/dist/bridges/catalog-load.js.map +1 -1
  193. package/dist/bridges/catalog-types.d.ts +96 -27
  194. package/dist/bridges/catalog-types.d.ts.map +1 -1
  195. package/dist/bridges/catalog-types.js.map +1 -1
  196. package/dist/bridges/coefficient-statement.js +1 -5
  197. package/dist/bridges/coefficient-statement.js.map +1 -1
  198. package/dist/bridges/confrontation-coverage.js.map +1 -1
  199. package/dist/bridges/confrontations.d.ts +1 -1
  200. package/dist/bridges/confrontations.d.ts.map +1 -1
  201. package/dist/bridges/confrontations.js +1 -1
  202. package/dist/bridges/confrontations.js.map +1 -1
  203. package/dist/bridges/evaluation-errors.d.ts +89 -0
  204. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  205. package/dist/bridges/evaluation-errors.js +136 -0
  206. package/dist/bridges/evaluation-errors.js.map +1 -0
  207. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  208. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  209. package/dist/bridges/evaluator-inputs.js +24 -24
  210. package/dist/bridges/evaluator-inputs.js.map +1 -1
  211. package/dist/bridges/evaluators.d.ts +48 -8
  212. package/dist/bridges/evaluators.d.ts.map +1 -1
  213. package/dist/bridges/evaluators.js +173 -38
  214. package/dist/bridges/evaluators.js.map +1 -1
  215. package/dist/bridges/expr-parse.d.ts +38 -7
  216. package/dist/bridges/expr-parse.d.ts.map +1 -1
  217. package/dist/bridges/expr-parse.js +129 -156
  218. package/dist/bridges/expr-parse.js.map +1 -1
  219. package/dist/bridges/holds.d.ts +16 -8
  220. package/dist/bridges/holds.d.ts.map +1 -1
  221. package/dist/bridges/holds.js +130 -236
  222. package/dist/bridges/holds.js.map +1 -1
  223. package/dist/bridges/index.d.ts +15 -14
  224. package/dist/bridges/index.d.ts.map +1 -1
  225. package/dist/bridges/index.js +14 -15
  226. package/dist/bridges/index.js.map +1 -1
  227. package/dist/bridges/input-contract.d.ts +65 -0
  228. package/dist/bridges/input-contract.d.ts.map +1 -0
  229. package/dist/bridges/input-contract.js +97 -0
  230. package/dist/bridges/input-contract.js.map +1 -0
  231. package/dist/bridges/membership.d.ts +5 -3
  232. package/dist/bridges/membership.d.ts.map +1 -1
  233. package/dist/bridges/membership.js +5 -6
  234. package/dist/bridges/membership.js.map +1 -1
  235. package/dist/bridges/notices.d.ts +11 -0
  236. package/dist/bridges/notices.d.ts.map +1 -0
  237. package/dist/bridges/notices.js +22 -0
  238. package/dist/bridges/notices.js.map +1 -0
  239. package/dist/bridges/observations/types.js.map +1 -1
  240. package/dist/bridges/rejected.d.ts +11 -17
  241. package/dist/bridges/rejected.d.ts.map +1 -1
  242. package/dist/bridges/rejected.js +13 -68
  243. package/dist/bridges/rejected.js.map +1 -1
  244. package/dist/bridges/relation-eval.d.ts +5 -6
  245. package/dist/bridges/relation-eval.d.ts.map +1 -1
  246. package/dist/bridges/relation-eval.js +9 -38
  247. package/dist/bridges/relation-eval.js.map +1 -1
  248. package/dist/bridges/rhs-registry.js.map +1 -1
  249. package/dist/bridges/sensitivity.d.ts +11 -3
  250. package/dist/bridges/sensitivity.d.ts.map +1 -1
  251. package/dist/bridges/sensitivity.js +24 -10
  252. package/dist/bridges/sensitivity.js.map +1 -1
  253. package/dist/bridges/tensor-index.js.map +1 -1
  254. package/dist/bridges/types.d.ts +1 -7
  255. package/dist/bridges/types.d.ts.map +1 -1
  256. package/dist/bridges/types.js +1 -4
  257. package/dist/bridges/types.js.map +1 -1
  258. package/dist/canonical/canonical-equation.d.ts +31 -0
  259. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  260. package/dist/canonical/canonical-equation.js.map +1 -1
  261. package/dist/canonical/dimensional-fields.js.map +1 -1
  262. package/dist/canonical/entries/_l1-build.js.map +1 -1
  263. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  264. package/dist/canonical/entries/atomic.js +11 -1
  265. package/dist/canonical/entries/atomic.js.map +1 -1
  266. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  267. package/dist/canonical/entries/condensed-matter.js +7 -4
  268. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  269. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  270. package/dist/canonical/entries/dimensional-classics.js +50 -2
  271. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  272. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  273. package/dist/canonical/entries/electromagnetism.js +32 -2
  274. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  275. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  276. package/dist/canonical/entries/fluids-waves.js +34 -0
  277. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  278. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  279. package/dist/canonical/entries/mechanics.js +24 -0
  280. package/dist/canonical/entries/mechanics.js.map +1 -1
  281. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  282. package/dist/canonical/entries/nonmonomial.js +42 -24
  283. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  284. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  285. package/dist/canonical/entries/relativity.js +6 -0
  286. package/dist/canonical/entries/relativity.js.map +1 -1
  287. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  288. package/dist/canonical/entries/statistical-mechanics.js +24 -5
  289. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  290. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  291. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  292. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  293. package/dist/canonical/linkage.d.ts +29 -4
  294. package/dist/canonical/linkage.d.ts.map +1 -1
  295. package/dist/canonical/linkage.js +31 -29
  296. package/dist/canonical/linkage.js.map +1 -1
  297. package/dist/canonical/normal-form.d.ts +0 -8
  298. package/dist/canonical/normal-form.d.ts.map +1 -1
  299. package/dist/canonical/normal-form.js +17 -12
  300. package/dist/canonical/normal-form.js.map +1 -1
  301. package/dist/canonical/registry.js.map +1 -1
  302. package/dist/canonical/residual.js.map +1 -1
  303. package/dist/canonical/seed-l-layer.d.ts +7 -1
  304. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  305. package/dist/canonical/seed-l-layer.js +7 -1
  306. package/dist/canonical/seed-l-layer.js.map +1 -1
  307. package/dist/canonical/structural.d.ts +21 -0
  308. package/dist/canonical/structural.d.ts.map +1 -1
  309. package/dist/canonical/structural.js +24 -4
  310. package/dist/canonical/structural.js.map +1 -1
  311. package/dist/cases/brownian-sphere.js +4 -4
  312. package/dist/cases/brownian-sphere.js.map +1 -1
  313. package/dist/cases/damped-resonator.js +2 -2
  314. package/dist/cases/damped-resonator.js.map +1 -1
  315. package/dist/cases/index.d.ts +9 -2
  316. package/dist/cases/index.d.ts.map +1 -1
  317. package/dist/cases/index.js +26 -7
  318. package/dist/cases/index.js.map +1 -1
  319. package/dist/cases/kepler-rv.js +6 -6
  320. package/dist/cases/kepler-rv.js.map +1 -1
  321. package/dist/cases/lumped-cooling.js +1 -1
  322. package/dist/cases/lumped-cooling.js.map +1 -1
  323. package/dist/cases/quadrature.js.map +1 -1
  324. package/dist/cases/resistor-noise.js +3 -3
  325. package/dist/cases/resistor-noise.js.map +1 -1
  326. package/dist/cases/skin-depth.js.map +1 -1
  327. package/dist/cases/types.js.map +1 -1
  328. package/dist/cli/args.d.ts +7 -2
  329. package/dist/cli/args.d.ts.map +1 -1
  330. package/dist/cli/args.js +18 -2
  331. package/dist/cli/args.js.map +1 -1
  332. package/dist/cli/bindings.d.ts +13 -0
  333. package/dist/cli/bindings.d.ts.map +1 -0
  334. package/dist/cli/bindings.js +32 -0
  335. package/dist/cli/bindings.js.map +1 -0
  336. package/dist/cli/closed-form-range.js.map +1 -1
  337. package/dist/cli/command.js.map +1 -1
  338. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  339. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  340. package/dist/cli/commands/_atlas-map.js +43 -18
  341. package/dist/cli/commands/_atlas-map.js.map +1 -1
  342. package/dist/cli/commands/_atlas-route.js.map +1 -1
  343. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  344. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  345. package/dist/cli/commands/_discovery-opts.js +48 -18
  346. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  347. package/dist/cli/commands/atlas.d.ts.map +1 -1
  348. package/dist/cli/commands/atlas.js +7 -12
  349. package/dist/cli/commands/atlas.js.map +1 -1
  350. package/dist/cli/commands/audit.d.ts.map +1 -1
  351. package/dist/cli/commands/audit.js +13 -21
  352. package/dist/cli/commands/audit.js.map +1 -1
  353. package/dist/cli/commands/axes.js.map +1 -1
  354. package/dist/cli/commands/candidates.d.ts.map +1 -1
  355. package/dist/cli/commands/candidates.js +16 -8
  356. package/dist/cli/commands/candidates.js.map +1 -1
  357. package/dist/cli/commands/canonical.js.map +1 -1
  358. package/dist/cli/commands/chain.js +1 -1
  359. package/dist/cli/commands/chain.js.map +1 -1
  360. package/dist/cli/commands/confront.d.ts.map +1 -1
  361. package/dist/cli/commands/confront.js +22 -14
  362. package/dist/cli/commands/confront.js.map +1 -1
  363. package/dist/cli/commands/connectors.d.ts.map +1 -1
  364. package/dist/cli/commands/connectors.js +8 -9
  365. package/dist/cli/commands/connectors.js.map +1 -1
  366. package/dist/cli/commands/coverage.js.map +1 -1
  367. package/dist/cli/commands/derive.d.ts.map +1 -1
  368. package/dist/cli/commands/derive.js +50 -26
  369. package/dist/cli/commands/derive.js.map +1 -1
  370. package/dist/cli/commands/discover.d.ts.map +1 -1
  371. package/dist/cli/commands/discover.js +18 -13
  372. package/dist/cli/commands/discover.js.map +1 -1
  373. package/dist/cli/commands/eval.d.ts.map +1 -1
  374. package/dist/cli/commands/eval.js +29 -26
  375. package/dist/cli/commands/eval.js.map +1 -1
  376. package/dist/cli/commands/evaluate.d.ts +1 -35
  377. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  378. package/dist/cli/commands/evaluate.js +99 -208
  379. package/dist/cli/commands/evaluate.js.map +1 -1
  380. package/dist/cli/commands/explain.d.ts.map +1 -1
  381. package/dist/cli/commands/explain.js +57 -45
  382. package/dist/cli/commands/explain.js.map +1 -1
  383. package/dist/cli/commands/frontier.js.map +1 -1
  384. package/dist/cli/commands/ground.d.ts.map +1 -1
  385. package/dist/cli/commands/ground.js +41 -11
  386. package/dist/cli/commands/ground.js.map +1 -1
  387. package/dist/cli/commands/index.js.map +1 -1
  388. package/dist/cli/commands/map.d.ts.map +1 -1
  389. package/dist/cli/commands/map.js +84 -92
  390. package/dist/cli/commands/map.js.map +1 -1
  391. package/dist/cli/commands/metric.d.ts.map +1 -1
  392. package/dist/cli/commands/metric.js +53 -15
  393. package/dist/cli/commands/metric.js.map +1 -1
  394. package/dist/cli/commands/path.js +4 -4
  395. package/dist/cli/commands/path.js.map +1 -1
  396. package/dist/cli/commands/predict.js.map +1 -1
  397. package/dist/cli/commands/priority.js.map +1 -1
  398. package/dist/cli/commands/probe.d.ts.map +1 -1
  399. package/dist/cli/commands/probe.js +50 -26
  400. package/dist/cli/commands/probe.js.map +1 -1
  401. package/dist/cli/commands/recover.js +1 -1
  402. package/dist/cli/commands/recover.js.map +1 -1
  403. package/dist/cli/commands/regime.d.ts +5 -4
  404. package/dist/cli/commands/regime.d.ts.map +1 -1
  405. package/dist/cli/commands/regime.js +25 -27
  406. package/dist/cli/commands/regime.js.map +1 -1
  407. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  408. package/dist/cli/commands/retrieve.js +22 -14
  409. package/dist/cli/commands/retrieve.js.map +1 -1
  410. package/dist/cli/commands/search.d.ts.map +1 -1
  411. package/dist/cli/commands/search.js +8 -4
  412. package/dist/cli/commands/search.js.map +1 -1
  413. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  414. package/dist/cli/commands/symbolic.js +14 -7
  415. package/dist/cli/commands/symbolic.js.map +1 -1
  416. package/dist/cli/commands/testplan.js +4 -4
  417. package/dist/cli/commands/testplan.js.map +1 -1
  418. package/dist/cli/conventions.d.ts +6 -7
  419. package/dist/cli/conventions.d.ts.map +1 -1
  420. package/dist/cli/conventions.js +19 -28
  421. package/dist/cli/conventions.js.map +1 -1
  422. package/dist/cli/determination.js.map +1 -1
  423. package/dist/cli/errors.js.map +1 -1
  424. package/dist/cli/euler-guard.d.ts +13 -2
  425. package/dist/cli/euler-guard.d.ts.map +1 -1
  426. package/dist/cli/euler-guard.js +17 -3
  427. package/dist/cli/euler-guard.js.map +1 -1
  428. package/dist/cli/eval-numbers.d.ts +4 -9
  429. package/dist/cli/eval-numbers.d.ts.map +1 -1
  430. package/dist/cli/eval-numbers.js +11 -41
  431. package/dist/cli/eval-numbers.js.map +1 -1
  432. package/dist/cli/expr-print.d.ts +29 -2
  433. package/dist/cli/expr-print.d.ts.map +1 -1
  434. package/dist/cli/expr-print.js +46 -2
  435. package/dist/cli/expr-print.js.map +1 -1
  436. package/dist/cli/flag-help.js.map +1 -1
  437. package/dist/cli/graphs.js.map +1 -1
  438. package/dist/cli/library-defaults.d.ts +19 -0
  439. package/dist/cli/library-defaults.d.ts.map +1 -0
  440. package/dist/cli/library-defaults.js +22 -0
  441. package/dist/cli/library-defaults.js.map +1 -0
  442. package/dist/cli/main.js +7 -3
  443. package/dist/cli/main.js.map +1 -1
  444. package/dist/cli/map-evidence.js.map +1 -1
  445. package/dist/cli/output.d.ts +3 -6
  446. package/dist/cli/output.d.ts.map +1 -1
  447. package/dist/cli/output.js.map +1 -1
  448. package/dist/cli/published-url.d.ts +2 -0
  449. package/dist/cli/published-url.d.ts.map +1 -1
  450. package/dist/cli/published-url.js +5 -0
  451. package/dist/cli/published-url.js.map +1 -1
  452. package/dist/cli/record-reach.d.ts +6 -0
  453. package/dist/cli/record-reach.d.ts.map +1 -1
  454. package/dist/cli/record-reach.js +16 -10
  455. package/dist/cli/record-reach.js.map +1 -1
  456. package/dist/cli/record-tables.d.ts +2 -1
  457. package/dist/cli/record-tables.d.ts.map +1 -1
  458. package/dist/cli/record-tables.js +8 -3
  459. package/dist/cli/record-tables.js.map +1 -1
  460. package/dist/cli/record.d.ts.map +1 -1
  461. package/dist/cli/record.js +31 -12
  462. package/dist/cli/record.js.map +1 -1
  463. package/dist/cli/search-index.d.ts +5 -0
  464. package/dist/cli/search-index.d.ts.map +1 -1
  465. package/dist/cli/search-index.js +12 -1
  466. package/dist/cli/search-index.js.map +1 -1
  467. package/dist/cli/statuses.js.map +1 -1
  468. package/dist/cli/top-level-help.js.map +1 -1
  469. package/dist/cli/version.js.map +1 -1
  470. package/dist/cli-api.d.ts +57 -18
  471. package/dist/cli-api.d.ts.map +1 -1
  472. package/dist/cli-api.js +49 -21
  473. package/dist/cli-api.js.map +1 -1
  474. package/dist/composition/adjudication.d.ts +8 -30
  475. package/dist/composition/adjudication.d.ts.map +1 -1
  476. package/dist/composition/adjudication.js +15 -67
  477. package/dist/composition/adjudication.js.map +1 -1
  478. package/dist/composition/aliases.d.ts +1 -1
  479. package/dist/composition/aliases.d.ts.map +1 -1
  480. package/dist/composition/aliases.js +10 -20
  481. package/dist/composition/aliases.js.map +1 -1
  482. package/dist/composition/audit-coverage.d.ts +2 -0
  483. package/dist/composition/audit-coverage.d.ts.map +1 -1
  484. package/dist/composition/audit-coverage.js.map +1 -1
  485. package/dist/composition/axes.d.ts +12 -0
  486. package/dist/composition/axes.d.ts.map +1 -1
  487. package/dist/composition/axes.js +18 -6
  488. package/dist/composition/axes.js.map +1 -1
  489. package/dist/composition/axis-audit.js.map +1 -1
  490. package/dist/composition/bridge-analysis.d.ts +0 -14
  491. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  492. package/dist/composition/bridge-analysis.js +66 -57
  493. package/dist/composition/bridge-analysis.js.map +1 -1
  494. package/dist/composition/bridge-prediction.d.ts +5 -1
  495. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  496. package/dist/composition/bridge-prediction.js +12 -16
  497. package/dist/composition/bridge-prediction.js.map +1 -1
  498. package/dist/composition/buckingham-filter.js.map +1 -1
  499. package/dist/composition/canonical-compare.d.ts.map +1 -1
  500. package/dist/composition/canonical-compare.js +12 -2
  501. package/dist/composition/canonical-compare.js.map +1 -1
  502. package/dist/composition/canonical-graph.d.ts +15 -18
  503. package/dist/composition/canonical-graph.d.ts.map +1 -1
  504. package/dist/composition/canonical-graph.js +59 -85
  505. package/dist/composition/canonical-graph.js.map +1 -1
  506. package/dist/composition/canonical-json.js.map +1 -1
  507. package/dist/composition/canonical-prefactors.d.ts +10 -29
  508. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  509. package/dist/composition/canonical-prefactors.js +15 -202
  510. package/dist/composition/canonical-prefactors.js.map +1 -1
  511. package/dist/composition/catalog-graph.d.ts.map +1 -1
  512. package/dist/composition/catalog-graph.js +6 -20
  513. package/dist/composition/catalog-graph.js.map +1 -1
  514. package/dist/composition/chain-candidate.d.ts +2 -0
  515. package/dist/composition/chain-candidate.d.ts.map +1 -1
  516. package/dist/composition/chain-candidate.js +2 -0
  517. package/dist/composition/chain-candidate.js.map +1 -1
  518. package/dist/composition/chain-match.js.map +1 -1
  519. package/dist/composition/chain-regime.js.map +1 -1
  520. package/dist/composition/chain-result.js.map +1 -1
  521. package/dist/composition/compose-surface.js.map +1 -1
  522. package/dist/composition/compose-symbolic.js.map +1 -1
  523. package/dist/composition/compose.d.ts.map +1 -1
  524. package/dist/composition/compose.js +154 -36
  525. package/dist/composition/compose.js.map +1 -1
  526. package/dist/composition/composition-recovery.js.map +1 -1
  527. package/dist/composition/consequence.d.ts.map +1 -1
  528. package/dist/composition/consequence.js +15 -6
  529. package/dist/composition/consequence.js.map +1 -1
  530. package/dist/composition/consistency.js.map +1 -1
  531. package/dist/composition/descriptor.d.ts +1 -1
  532. package/dist/composition/descriptor.d.ts.map +1 -1
  533. package/dist/composition/descriptor.js.map +1 -1
  534. package/dist/composition/dimension-adjacency.js.map +1 -1
  535. package/dist/composition/discovery.d.ts +67 -7
  536. package/dist/composition/discovery.d.ts.map +1 -1
  537. package/dist/composition/discovery.js +83 -23
  538. package/dist/composition/discovery.js.map +1 -1
  539. package/dist/composition/edge.d.ts +19 -22
  540. package/dist/composition/edge.d.ts.map +1 -1
  541. package/dist/composition/edge.js +25 -28
  542. package/dist/composition/edge.js.map +1 -1
  543. package/dist/composition/enumerate.d.ts +2 -2
  544. package/dist/composition/enumerate.d.ts.map +1 -1
  545. package/dist/composition/enumerate.js.map +1 -1
  546. package/dist/composition/evaluate-relation.d.ts +29 -5
  547. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  548. package/dist/composition/evaluate-relation.js +100 -72
  549. package/dist/composition/evaluate-relation.js.map +1 -1
  550. package/dist/composition/explain.d.ts +14 -4
  551. package/dist/composition/explain.d.ts.map +1 -1
  552. package/dist/composition/explain.js +53 -19
  553. package/dist/composition/explain.js.map +1 -1
  554. package/dist/composition/expr-eval.d.ts.map +1 -1
  555. package/dist/composition/expr-eval.js +2 -1
  556. package/dist/composition/expr-eval.js.map +1 -1
  557. package/dist/composition/expr-simplify.d.ts.map +1 -1
  558. package/dist/composition/expr-simplify.js +9 -39
  559. package/dist/composition/expr-simplify.js.map +1 -1
  560. package/dist/composition/expr-subst.js.map +1 -1
  561. package/dist/composition/formula-shape.d.ts +9 -0
  562. package/dist/composition/formula-shape.d.ts.map +1 -1
  563. package/dist/composition/formula-shape.js +54 -0
  564. package/dist/composition/formula-shape.js.map +1 -1
  565. package/dist/composition/frontier-account.d.ts +3 -2
  566. package/dist/composition/frontier-account.d.ts.map +1 -1
  567. package/dist/composition/frontier-account.js +7 -3
  568. package/dist/composition/frontier-account.js.map +1 -1
  569. package/dist/composition/graph-viz-svg.js.map +1 -1
  570. package/dist/composition/graph-viz.js.map +1 -1
  571. package/dist/composition/grounding.js.map +1 -1
  572. package/dist/composition/identifiability.js.map +1 -1
  573. package/dist/composition/index.d.ts +9 -5
  574. package/dist/composition/index.d.ts.map +1 -1
  575. package/dist/composition/index.js +7 -4
  576. package/dist/composition/index.js.map +1 -1
  577. package/dist/composition/mathts-quiet.d.ts +28 -0
  578. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  579. package/dist/composition/mathts-quiet.js +56 -0
  580. package/dist/composition/mathts-quiet.js.map +1 -0
  581. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  582. package/dist/composition/mathts-scalar-symbols.js +18 -34
  583. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  584. package/dist/composition/not-composable-seeds.d.ts +3 -1
  585. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  586. package/dist/composition/not-composable-seeds.js +2 -0
  587. package/dist/composition/not-composable-seeds.js.map +1 -1
  588. package/dist/composition/probe/backend-protocol.js.map +1 -1
  589. package/dist/composition/probe/candidate-store.js.map +1 -1
  590. package/dist/composition/probe/corpus.js.map +1 -1
  591. package/dist/composition/probe/dataset.js.map +1 -1
  592. package/dist/composition/probe/experiment-design.js.map +1 -1
  593. package/dist/composition/probe/expression-gaps.js.map +1 -1
  594. package/dist/composition/probe/falsify.d.ts +14 -3
  595. package/dist/composition/probe/falsify.d.ts.map +1 -1
  596. package/dist/composition/probe/falsify.js +14 -27
  597. package/dist/composition/probe/falsify.js.map +1 -1
  598. package/dist/composition/probe/fingerprint.js.map +1 -1
  599. package/dist/composition/probe/fit.d.ts +1 -1
  600. package/dist/composition/probe/fit.d.ts.map +1 -1
  601. package/dist/composition/probe/fit.js +2 -1
  602. package/dist/composition/probe/fit.js.map +1 -1
  603. package/dist/composition/probe/frontier.js.map +1 -1
  604. package/dist/composition/probe/generator.js.map +1 -1
  605. package/dist/composition/probe/index.d.ts +4 -2
  606. package/dist/composition/probe/index.d.ts.map +1 -1
  607. package/dist/composition/probe/index.js +4 -2
  608. package/dist/composition/probe/index.js.map +1 -1
  609. package/dist/composition/probe/limits.js.map +1 -1
  610. package/dist/composition/probe/metadata.js.map +1 -1
  611. package/dist/composition/probe/pipeline.d.ts +5 -0
  612. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  613. package/dist/composition/probe/pipeline.js +13 -6
  614. package/dist/composition/probe/pipeline.js.map +1 -1
  615. package/dist/composition/probe/problem.d.ts +8 -0
  616. package/dist/composition/probe/problem.d.ts.map +1 -1
  617. package/dist/composition/probe/problem.js +78 -12
  618. package/dist/composition/probe/problem.js.map +1 -1
  619. package/dist/composition/probe/report.js.map +1 -1
  620. package/dist/composition/probe/residual.js.map +1 -1
  621. package/dist/composition/probe/run-manifest.js +2 -2
  622. package/dist/composition/probe/run-manifest.js.map +1 -1
  623. package/dist/composition/probe/scoring.d.ts +2 -1
  624. package/dist/composition/probe/scoring.d.ts.map +1 -1
  625. package/dist/composition/probe/scoring.js +21 -7
  626. package/dist/composition/probe/scoring.js.map +1 -1
  627. package/dist/composition/probe/search-budget.js.map +1 -1
  628. package/dist/composition/probe/serialize.js.map +1 -1
  629. package/dist/composition/probe/structure.js.map +1 -1
  630. package/dist/composition/probe/study.d.ts +4 -3
  631. package/dist/composition/probe/study.d.ts.map +1 -1
  632. package/dist/composition/probe/study.js +5 -3
  633. package/dist/composition/probe/study.js.map +1 -1
  634. package/dist/composition/probe/types.d.ts +3 -1
  635. package/dist/composition/probe/types.d.ts.map +1 -1
  636. package/dist/composition/probe/types.js +2 -0
  637. package/dist/composition/probe/types.js.map +1 -1
  638. package/dist/composition/proposed-bridges.d.ts +11 -4
  639. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  640. package/dist/composition/proposed-bridges.js +14 -6
  641. package/dist/composition/proposed-bridges.js.map +1 -1
  642. package/dist/composition/quantities.d.ts +0 -4
  643. package/dist/composition/quantities.d.ts.map +1 -1
  644. package/dist/composition/quantities.js +5 -5
  645. package/dist/composition/quantities.js.map +1 -1
  646. package/dist/composition/quantity.d.ts +18 -2
  647. package/dist/composition/quantity.d.ts.map +1 -1
  648. package/dist/composition/quantity.js +35 -6
  649. package/dist/composition/quantity.js.map +1 -1
  650. package/dist/composition/representative-values.js.map +1 -1
  651. package/dist/composition/retrodiction.d.ts +18 -0
  652. package/dist/composition/retrodiction.d.ts.map +1 -1
  653. package/dist/composition/retrodiction.js +37 -7
  654. package/dist/composition/retrodiction.js.map +1 -1
  655. package/dist/composition/uncertainty.js.map +1 -1
  656. package/dist/composition/user-equation.d.ts +11 -7
  657. package/dist/composition/user-equation.d.ts.map +1 -1
  658. package/dist/composition/user-equation.js +24 -26
  659. package/dist/composition/user-equation.js.map +1 -1
  660. package/dist/core/axes-registry.d.ts +8 -5
  661. package/dist/core/axes-registry.d.ts.map +1 -1
  662. package/dist/core/axes-registry.js.map +1 -1
  663. package/dist/core/cell.js.map +1 -1
  664. package/dist/core/constants.d.ts +35 -12
  665. package/dist/core/constants.d.ts.map +1 -1
  666. package/dist/core/constants.js +46 -15
  667. package/dist/core/constants.js.map +1 -1
  668. package/dist/core/data-file.d.ts +27 -0
  669. package/dist/core/data-file.d.ts.map +1 -0
  670. package/dist/core/data-file.js +48 -0
  671. package/dist/core/data-file.js.map +1 -0
  672. package/dist/core/flux-rules.js +1 -1
  673. package/dist/core/flux-rules.js.map +1 -1
  674. package/dist/core/json-schema.d.ts +27 -0
  675. package/dist/core/json-schema.d.ts.map +1 -0
  676. package/dist/core/json-schema.js +177 -0
  677. package/dist/core/json-schema.js.map +1 -0
  678. package/dist/core/labeled-tensor.d.ts +6 -1
  679. package/dist/core/labeled-tensor.d.ts.map +1 -1
  680. package/dist/core/labeled-tensor.js +18 -8
  681. package/dist/core/labeled-tensor.js.map +1 -1
  682. package/dist/core/regime-registry.d.ts +6 -2
  683. package/dist/core/regime-registry.d.ts.map +1 -1
  684. package/dist/core/regime-registry.js.map +1 -1
  685. package/dist/core/regime-rule-install.js.map +1 -1
  686. package/dist/core/regimes-builtins.js.map +1 -1
  687. package/dist/core/tensor.d.ts +7 -4
  688. package/dist/core/tensor.d.ts.map +1 -1
  689. package/dist/core/tensor.js +40 -8
  690. package/dist/core/tensor.js.map +1 -1
  691. package/dist/core/types.d.ts +3 -2
  692. package/dist/core/types.d.ts.map +1 -1
  693. package/dist/core/types.js +16 -14
  694. package/dist/core/types.js.map +1 -1
  695. package/dist/core/universal-index.js.map +1 -1
  696. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  697. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  698. package/dist/diff/bridge-ast-gradient.js +16 -23
  699. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  700. package/dist/diff/bridge-gradient.d.ts +24 -80
  701. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  702. package/dist/diff/bridge-gradient.js +21 -98
  703. package/dist/diff/bridge-gradient.js.map +1 -1
  704. package/dist/diff/bridge-specs.d.ts +18 -6
  705. package/dist/diff/bridge-specs.d.ts.map +1 -1
  706. package/dist/diff/bridge-specs.js +17 -5
  707. package/dist/diff/bridge-specs.js.map +1 -1
  708. package/dist/dimensional/algebra.js.map +1 -1
  709. package/dist/dimensional/ast-builders.d.ts +5 -4
  710. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  711. package/dist/dimensional/ast-builders.js +6 -5
  712. package/dist/dimensional/ast-builders.js.map +1 -1
  713. package/dist/dimensional/ast-types.js.map +1 -1
  714. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  715. package/dist/dimensional/bridge-check.js +3 -5
  716. package/dist/dimensional/bridge-check.js.map +1 -1
  717. package/dist/dimensional/buckingham.js.map +1 -1
  718. package/dist/dimensional/connection-validators.d.ts +2 -1
  719. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  720. package/dist/dimensional/connection-validators.js.map +1 -1
  721. package/dist/dimensional/connection.js.map +1 -1
  722. package/dist/dimensional/constant-rows.d.ts +54 -0
  723. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  724. package/dist/dimensional/constant-rows.js +115 -0
  725. package/dist/dimensional/constant-rows.js.map +1 -0
  726. package/dist/dimensional/constants.d.ts +7 -17
  727. package/dist/dimensional/constants.d.ts.map +1 -1
  728. package/dist/dimensional/constants.js +12 -21
  729. package/dist/dimensional/constants.js.map +1 -1
  730. package/dist/dimensional/curvature-composite.js.map +1 -1
  731. package/dist/dimensional/curvature-invariants.js.map +1 -1
  732. package/dist/dimensional/curvature.js.map +1 -1
  733. package/dist/dimensional/dimension-inference.js.map +1 -1
  734. package/dist/dimensional/dimension-spec.d.ts +21 -6
  735. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  736. package/dist/dimensional/dimension-spec.js +150 -160
  737. package/dist/dimensional/dimension-spec.js.map +1 -1
  738. package/dist/dimensional/einstein-equation.js.map +1 -1
  739. package/dist/dimensional/errors.d.ts +3 -1
  740. package/dist/dimensional/errors.d.ts.map +1 -1
  741. package/dist/dimensional/errors.js +2 -2
  742. package/dist/dimensional/errors.js.map +1 -1
  743. package/dist/dimensional/exact-scale.d.ts +79 -0
  744. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  745. package/dist/dimensional/exact-scale.js +222 -0
  746. package/dist/dimensional/exact-scale.js.map +1 -0
  747. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  748. package/dist/dimensional/formula-names.d.ts +13 -12
  749. package/dist/dimensional/formula-names.d.ts.map +1 -1
  750. package/dist/dimensional/formula-names.js +28 -51
  751. package/dist/dimensional/formula-names.js.map +1 -1
  752. package/dist/dimensional/fresh-label.js.map +1 -1
  753. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  754. package/dist/dimensional/friedmann-equation.js +3 -3
  755. package/dist/dimensional/friedmann-equation.js.map +1 -1
  756. package/dist/dimensional/gauge-field.d.ts +2 -3
  757. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  758. package/dist/dimensional/gauge-field.js +0 -1
  759. package/dist/dimensional/gauge-field.js.map +1 -1
  760. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  761. package/dist/dimensional/hyphen-names.js +8 -0
  762. package/dist/dimensional/hyphen-names.js.map +1 -1
  763. package/dist/dimensional/killing-validators.js.map +1 -1
  764. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  765. package/dist/dimensional/metric-validators.d.ts +2 -1
  766. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  767. package/dist/dimensional/metric-validators.js.map +1 -1
  768. package/dist/dimensional/metric.js.map +1 -1
  769. package/dist/dimensional/natural-units.js.map +1 -1
  770. package/dist/dimensional/quantity-registry.d.ts +23 -1
  771. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  772. package/dist/dimensional/quantity-registry.js +55 -18
  773. package/dist/dimensional/quantity-registry.js.map +1 -1
  774. package/dist/dimensional/rg-flow.js.map +1 -1
  775. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  776. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  777. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  778. package/dist/dimensional/symbolic-constants.js +114 -92
  779. package/dist/dimensional/symbolic-constants.js.map +1 -1
  780. package/dist/dimensional/tensor-trace.js.map +1 -1
  781. package/dist/dimensional/tensor.js.map +1 -1
  782. package/dist/dimensional/types.js.map +1 -1
  783. package/dist/dimensional/unit-convention.d.ts +0 -2
  784. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  785. package/dist/dimensional/unit-convention.js +2 -2
  786. package/dist/dimensional/unit-convention.js.map +1 -1
  787. package/dist/dimensional/unit-data.d.ts +70 -0
  788. package/dist/dimensional/unit-data.d.ts.map +1 -0
  789. package/dist/dimensional/unit-data.js +139 -0
  790. package/dist/dimensional/unit-data.js.map +1 -0
  791. package/dist/dimensional/units.d.ts +87 -24
  792. package/dist/dimensional/units.d.ts.map +1 -1
  793. package/dist/dimensional/units.js +290 -295
  794. package/dist/dimensional/units.js.map +1 -1
  795. package/dist/dimensional/validator-registry.js.map +1 -1
  796. package/dist/dimensional/validator.d.ts +0 -16
  797. package/dist/dimensional/validator.d.ts.map +1 -1
  798. package/dist/dimensional/validator.js +65 -29
  799. package/dist/dimensional/validator.js.map +1 -1
  800. package/dist/dimensional/weyl-validators.js.map +1 -1
  801. package/dist/index.d.ts +65 -18
  802. package/dist/index.d.ts.map +1 -1
  803. package/dist/index.js +19 -24
  804. package/dist/index.js.map +1 -1
  805. package/dist/numerical/bianchi-residual.js.map +1 -1
  806. package/dist/numerical/binding-value.d.ts +32 -7
  807. package/dist/numerical/binding-value.d.ts.map +1 -1
  808. package/dist/numerical/binding-value.js +218 -209
  809. package/dist/numerical/binding-value.js.map +1 -1
  810. package/dist/numerical/christoffel-flat.js.map +1 -1
  811. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  812. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  813. package/dist/numerical/covariant-eikonal.js +2 -2
  814. package/dist/numerical/covariant-eikonal.js.map +1 -1
  815. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  816. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  817. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  818. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  819. package/dist/numerical/derivative-lowering.js.map +1 -1
  820. package/dist/numerical/einstein-equation.js.map +1 -1
  821. package/dist/numerical/engine-registry.js.map +1 -1
  822. package/dist/numerical/errors.d.ts +7 -3
  823. package/dist/numerical/errors.d.ts.map +1 -1
  824. package/dist/numerical/errors.js +5 -5
  825. package/dist/numerical/errors.js.map +1 -1
  826. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  827. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  828. package/dist/numerical/evaluator-uncertainty.js +134 -0
  829. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  830. package/dist/numerical/formula-contract.d.ts +67 -7
  831. package/dist/numerical/formula-contract.d.ts.map +1 -1
  832. package/dist/numerical/formula-contract.js +68 -42
  833. package/dist/numerical/formula-contract.js.map +1 -1
  834. package/dist/numerical/formula-dimension.d.ts +17 -7
  835. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  836. package/dist/numerical/formula-dimension.js +120 -44
  837. package/dist/numerical/formula-dimension.js.map +1 -1
  838. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  839. package/dist/numerical/formula-mathts.js +10 -3
  840. package/dist/numerical/formula-mathts.js.map +1 -1
  841. package/dist/numerical/formula-registry.d.ts +13 -3
  842. package/dist/numerical/formula-registry.d.ts.map +1 -1
  843. package/dist/numerical/formula-registry.js +7 -2
  844. package/dist/numerical/formula-registry.js.map +1 -1
  845. package/dist/numerical/geodesic-integrator.js.map +1 -1
  846. package/dist/numerical/geometrized.js.map +1 -1
  847. package/dist/numerical/gl4-integrator.d.ts +28 -27
  848. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  849. package/dist/numerical/gl4-integrator.js +44 -45
  850. package/dist/numerical/gl4-integrator.js.map +1 -1
  851. package/dist/numerical/grid-field.js.map +1 -1
  852. package/dist/numerical/index.js.map +1 -1
  853. package/dist/numerical/input-validation.d.ts +3 -6
  854. package/dist/numerical/input-validation.d.ts.map +1 -1
  855. package/dist/numerical/input-validation.js +4 -8
  856. package/dist/numerical/input-validation.js.map +1 -1
  857. package/dist/numerical/killing.d.ts +8 -5
  858. package/dist/numerical/killing.d.ts.map +1 -1
  859. package/dist/numerical/killing.js.map +1 -1
  860. package/dist/numerical/klein-gordon.js.map +1 -1
  861. package/dist/numerical/kretschmann.js.map +1 -1
  862. package/dist/numerical/lowering-utils.js.map +1 -1
  863. package/dist/numerical/lowering.d.ts.map +1 -1
  864. package/dist/numerical/lowering.js +7 -17
  865. package/dist/numerical/lowering.js.map +1 -1
  866. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  867. package/dist/numerical/mathts-engine.js +11 -6
  868. package/dist/numerical/mathts-engine.js.map +1 -1
  869. package/dist/numerical/metric-inverse.js.map +1 -1
  870. package/dist/numerical/null-ic.js.map +1 -1
  871. package/dist/numerical/null-ray-integrator.js +4 -4
  872. package/dist/numerical/null-ray-integrator.js.map +1 -1
  873. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  874. package/dist/numerical/pderiv.d.ts.map +1 -1
  875. package/dist/numerical/pderiv.js +9 -2
  876. package/dist/numerical/pderiv.js.map +1 -1
  877. package/dist/numerical/perihelion-finder.js.map +1 -1
  878. package/dist/numerical/quadrature.d.ts +5 -2
  879. package/dist/numerical/quadrature.d.ts.map +1 -1
  880. package/dist/numerical/quadrature.js +20 -3
  881. package/dist/numerical/quadrature.js.map +1 -1
  882. package/dist/numerical/spacetime-metrics.d.ts +17 -19
  883. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  884. package/dist/numerical/spacetime-metrics.js +158 -250
  885. package/dist/numerical/spacetime-metrics.js.map +1 -1
  886. package/dist/numerical/strides.js.map +1 -1
  887. package/dist/numerical/tensor-engine.d.ts +9 -5
  888. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  889. package/dist/numerical/tensor-engine.js.map +1 -1
  890. package/dist/numerical/types.js.map +1 -1
  891. package/dist/numerical/weyl-lowering.js.map +1 -1
  892. package/dist/relations/category.js.map +1 -1
  893. package/dist/relations/composition-table.d.ts +4 -4
  894. package/dist/relations/composition-table.js +4 -4
  895. package/dist/relations/composition-table.js.map +1 -1
  896. package/dist/relations/conventions.js.map +1 -1
  897. package/dist/relations/domain-regimes.js.map +1 -1
  898. package/dist/relations/regime-registration.js.map +1 -1
  899. package/dist/relations/regime-vocabularies.js.map +1 -1
  900. package/dist/relations/regime.d.ts +18 -8
  901. package/dist/relations/regime.d.ts.map +1 -1
  902. package/dist/relations/regime.js +26 -14
  903. package/dist/relations/regime.js.map +1 -1
  904. package/dist/relations/types.d.ts +26 -6
  905. package/dist/relations/types.d.ts.map +1 -1
  906. package/dist/relations/types.js +15 -3
  907. package/dist/relations/types.js.map +1 -1
  908. package/package.json +10 -14
  909. package/dist/bridges/registry.d.ts +0 -60
  910. package/dist/bridges/registry.d.ts.map +0 -1
  911. package/dist/bridges/registry.js +0 -87
  912. package/dist/bridges/registry.js.map +0 -1
  913. package/dist/cli/poster-source.d.ts +0 -154
  914. package/dist/cli/poster-source.d.ts.map +0 -1
  915. package/dist/cli/poster-source.js +0 -184
  916. package/dist/cli/poster-source.js.map +0 -1
@@ -11,6 +11,7 @@ import { resolveGraph } from '../graphs.js';
11
11
  import { emitJson } from '../output.js';
12
12
  import { UsageError, CliError } from '../errors.js';
13
13
  import { publishedUrl } from '../published-url.js';
14
+ import { PROBE_BUDGET_MS_DEFAULT, PROBE_CORRECTION_TERMS_MAX, PROBE_HOLDOUT_TOL_DEFAULT, PROBE_STUDY_ALPHA_DEFAULT, } from '../library-defaults.js';
14
15
  const PROBE_SUBCOMMANDS = [
15
16
  { name: 'scan', summary: 'List typed frontier gaps. The default listing is the searchable ones.' },
16
17
  { name: 'show', summary: 'Print one gap by id.' },
@@ -27,8 +28,8 @@ const FLAGS = [
27
28
  sourceFlag('catalog', 'Which graph a subverb reads: catalog, canonical, or both.'),
28
29
  JSON_FLAG,
29
30
  { 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' },
31
+ { name: '--budget-ms', valueStyle: 'attached', description: 'Wall-clock cap in milliseconds.', defaultValue: PROBE_BUDGET_MS_DEFAULT },
32
+ { name: '--holdout-tol', valueStyle: 'attached', description: 'Relative holdout RMSE cap.', defaultValue: PROBE_HOLDOUT_TOL_DEFAULT },
32
33
  { name: '--worker', valueStyle: 'attached', description: 'Optional NDJSON worker, spawned as node PATH. The path must be a .js, .mjs, or .cjs file.' },
33
34
  { name: '--bounds', valueStyle: 'attached', description: 'Bounds for design, as the design subverb reads them.' },
34
35
  { name: '--h1', valueStyle: 'attached', description: 'First hypothesis for design.' },
@@ -37,7 +38,7 @@ const FLAGS = [
37
38
  { name: '--all', valueStyle: 'none', description: 'scan: include Product A wrappers, which are not searchable here.' },
38
39
  { name: '--data', valueStyle: 'attached', description: 'Study file (JSON, or CSV when the name ends in .csv) for study.' },
39
40
  { 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' },
41
+ { name: '--alpha', valueStyle: 'attached', description: 'study: χ² test level.', defaultValue: `the file's alpha, else ${PROBE_STUDY_ALPHA_DEFAULT}` },
41
42
  ];
42
43
  /**
43
44
  * The text printed when a scan has gaps and none of them are searchable.
@@ -83,11 +84,11 @@ const HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|
83
84
  or CSV) with its own provenance
84
85
  --searchable-only scan: only Product-B-searchable gaps (default)
85
86
  --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)
87
+ --budget-ms=N wall-clock cap (default ${PROBE_BUDGET_MS_DEFAULT})
88
+ --holdout-tol=X relative holdout RMSE cap (default ${PROBE_HOLDOUT_TOL_DEFAULT})
88
89
  --worker=PATH optional NDJSON worker (spawned as node PATH)
89
90
  --source=catalog|canonical|both the graph a subverb reads (default catalog)
90
- --alpha=X study: χ² test level (default: the file's, else 0.001)
91
+ --alpha=X study: χ² test level (default: the file's, else ${PROBE_STUDY_ALPHA_DEFAULT})
91
92
  --json machine envelope
92
93
 
93
94
  PROBLEM FILE (--problem=FILE, JSON)
@@ -144,10 +145,10 @@ const HELP = `upt probe <scan|show|run|candidates|falsify|rank|design|reproduce|
144
145
  models over the governing names in SI units, e.g.
145
146
  "2*pi*sqrt(length/gravity)"; must have the target's dimension.
146
147
  fitPrefactor (default false) fits one scale on exploratory rows.
147
- criterion optional {"alpha"} (default 0.001)
148
+ criterion optional {"alpha"} (default ${PROBE_STUDY_ALPHA_DEFAULT})
148
149
  design optional {"variables": {input: {"min", "max", "steps"?}}}
149
150
  correction optional {"input": <dimensionless input u>, "powers": [2, 4]},
150
- or a list of them, one per input (at most 6 powers in all):
151
+ or a list of them, one per input (at most ${PROBE_CORRECTION_TERMS_MAX} powers in all):
151
152
  also search m(x)·(1 + c₁u² + c₂u⁴ + …) for each monomial m,
152
153
  fit on exploratory rows only. Terms are admitted in the
153
154
  declared order, family by family, while each passes an
@@ -194,7 +195,7 @@ function budgetFromFlags(api, flags) {
194
195
  return undefined;
195
196
  const n = Number(raw);
196
197
  if (!Number.isFinite(n) || n <= 0) {
197
- throw new UsageError('upt probe: --budget-ms must be a positive number');
198
+ throw new CliError('upt probe: --budget-ms must be a positive number');
198
199
  }
199
200
  return { ...api.DEFAULT_SEARCH_BUDGET, maxWallClockMs: n };
200
201
  }
@@ -204,7 +205,7 @@ function holdoutTolFromFlags(flags) {
204
205
  return undefined;
205
206
  const n = Number(raw);
206
207
  if (!Number.isFinite(n) || n <= 0) {
207
- throw new UsageError('upt probe: --holdout-tol must be a positive number');
208
+ throw new CliError('upt probe: --holdout-tol must be a positive number');
208
209
  }
209
210
  return n;
210
211
  }
@@ -214,32 +215,52 @@ function problemPath(flags) {
214
215
  throw new UsageError('upt probe: --problem=FILE is required for this subverb');
215
216
  return p;
216
217
  }
218
+ /** The `code` and `path` Node puts on a failed file-system call; empty for any other error. */
219
+ function errnoOf(e) {
220
+ if (!(e instanceof Error))
221
+ return {};
222
+ const code = 'code' in e ? e.code : undefined;
223
+ const path = 'path' in e ? e.path : undefined;
224
+ return {
225
+ ...(typeof code === 'string' ? { code } : {}),
226
+ ...(typeof path === 'string' ? { path } : {}),
227
+ };
228
+ }
217
229
  /** Map probe file/parse failures to CLI errors (no stack traces). */
218
- function mapProbeError(e, context) {
230
+ function mapProbeError(api, e, context) {
219
231
  if (e instanceof UsageError || e instanceof CliError)
220
232
  throw e;
221
- const err = e;
222
- if (err?.code === 'ENOENT') {
223
- throw new CliError(`upt probe: file not found: ${err.path ?? context ?? 'unknown'}`);
233
+ const errno = errnoOf(e);
234
+ if (errno.code === 'ENOENT') {
235
+ throw new CliError(`upt probe: file not found: ${errno.path ?? context ?? 'unknown'}`);
224
236
  }
225
237
  if (e instanceof SyntaxError) {
226
238
  throw new CliError(`upt probe: invalid JSON${context ? ` in ${context}` : ''}: ${e.message}`);
227
239
  }
240
+ // The loader checks every field it reads and names the one that is wrong.
241
+ if (e instanceof api.ProblemFileError) {
242
+ throw new CliError(`upt probe: ${context ?? 'the file'} is not a problem file: ${e.message}. \`upt help probe\` shows the format.`);
243
+ }
244
+ // A TypeError or a RangeError past those checks is a field of a shape the loader does not
245
+ // check. It is reported as that, with the engine's words marked as the engine's.
246
+ if (e instanceof TypeError || e instanceof RangeError) {
247
+ 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.`);
248
+ }
228
249
  if (e instanceof Error) {
229
250
  throw new CliError(`upt probe: ${e.message}`);
230
251
  }
231
252
  throw e;
232
253
  }
233
- function readJsonFile(path) {
254
+ function readJsonFile(api, path) {
234
255
  try {
235
256
  return JSON.parse(readFileSync(path, 'utf8'));
236
257
  }
237
258
  catch (e) {
238
- mapProbeError(e, path);
259
+ mapProbeError(api, e, path);
239
260
  }
240
261
  }
241
262
  /** Reject Node flag injection via `--worker=--import=…` etc. */
242
- function validateWorkerPath(worker) {
263
+ function validateWorkerPath(api, worker) {
243
264
  if (worker.startsWith('-')) {
244
265
  throw new UsageError('upt probe: --worker must be a script path, not a Node flag');
245
266
  }
@@ -252,7 +273,7 @@ function validateWorkerPath(worker) {
252
273
  }
253
274
  }
254
275
  catch (e) {
255
- mapProbeError(e, worker);
276
+ mapProbeError(api, e, worker);
256
277
  }
257
278
  return worker;
258
279
  }
@@ -332,10 +353,10 @@ async function run(ctx) {
332
353
  }
333
354
  let suggestion;
334
355
  try {
335
- suggestion = api.suggestDiscriminatingPoint(api.parseExprJson(h1p), api.parseExprJson(h2p), api.parseDesignBounds(readJsonFile(bp), bp));
356
+ suggestion = api.suggestDiscriminatingPoint(api.parseExprJson(h1p), api.parseExprJson(h2p), api.parseDesignBounds(readJsonFile(api, bp), bp));
336
357
  }
337
358
  catch (e) {
338
- mapProbeError(e);
359
+ mapProbeError(api, e);
339
360
  }
340
361
  if (args.flags.has('json')) {
341
362
  emitJson({ command: 'probe', epistemics: EPISTEMICS, result: suggestion }, ctx.write);
@@ -359,14 +380,17 @@ async function run(ctx) {
359
380
  problem = api.loadSearchProblemFromJson(pp);
360
381
  }
361
382
  catch (e) {
362
- mapProbeError(e, pp);
383
+ mapProbeError(api, e, pp);
363
384
  }
364
385
  const workerRaw = args.flags.get('worker')?.[0];
365
- const worker = workerRaw ? validateWorkerPath(workerRaw) : undefined;
386
+ // `--worker=` with nothing after it is not "no worker": it is refused, as `--replication=` is.
387
+ if (workerRaw === '')
388
+ throw new UsageError('upt probe: --worker needs a PATH (a .js, .mjs, or .cjs file)');
389
+ const worker = workerRaw === undefined ? undefined : validateWorkerPath(api, workerRaw);
366
390
  const result = await api.runProbeSearch(problem, {
367
391
  budget: budgetFromFlags(api, args.flags),
368
392
  holdoutTol: holdoutTolFromFlags(args.flags),
369
- backendArgv: worker ? [process.execPath, worker] : undefined,
393
+ backendArgv: worker ? api.nodeWorkerArgv(worker) : undefined,
370
394
  });
371
395
  if (sub === 'run' || sub === 'reproduce' || sub === 'rank' || sub === 'candidates' || sub === 'falsify') {
372
396
  if (args.flags.has('json')) {
@@ -421,7 +445,7 @@ function alphaFromFlags(flags) {
421
445
  return undefined;
422
446
  const n = Number(raw);
423
447
  if (!Number.isFinite(n) || n <= 0 || n >= 1) {
424
- throw new UsageError('upt probe: --alpha must be a number in (0, 1)');
448
+ throw new CliError('upt probe: --alpha must be a number in (0, 1)');
425
449
  }
426
450
  return n;
427
451
  }
@@ -440,14 +464,14 @@ async function runStudy(ctx, source) {
440
464
  study = api.loadStudyFile(path, replication);
441
465
  }
442
466
  catch (e) {
443
- mapProbeError(e, e instanceof SyntaxError ? undefined : path);
467
+ mapProbeError(api, e, e instanceof SyntaxError ? undefined : path);
444
468
  }
445
469
  let result;
446
470
  try {
447
471
  result = await api.runProbeStudy(study, { budget, alpha });
448
472
  }
449
473
  catch (e) {
450
- mapProbeError(e, path);
474
+ mapProbeError(api, e, path);
451
475
  }
452
476
  if (args.flags.has('json')) {
453
477
  emitJson({ command: 'probe', source, epistemics: EPISTEMICS, options: { subverb: 'study' }, result }, ctx.write);
@@ -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 type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.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: 'First hypothesis for design.' },\n { name: '--h2', valueStyle: 'attached', description: 'Second hypothesis for design.' },\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 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\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 = Number(raw);\n if (!Number.isFinite(n) || 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 = Number(raw);\n if (!Number.isFinite(n) || 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/** Map probe file/parse failures to CLI errors (no stack traces). */\nfunction mapProbeError(api: CommandCtx['api'], e: unknown, context?: string): 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 throw new CliError(\n `upt probe: invalid JSON${context ? ` in ${context}` : ''}: ${e.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 a problem file: ${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 (!isSubverb(sub)) {\n throw new UsageError(\n `upt probe needs a subverb (${SUBVERBS.join('|')}). See \\`upt help probe\\`.`,\n );\n }\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 let suggestion;\n try {\n suggestion = api.suggestDiscriminatingPoint(\n api.parseExprJson(h1p),\n api.parseExprJson(h2p),\n api.parseDesignBounds(readJsonFile(api, bp), bp),\n );\n } catch (e) {\n mapProbeError(api, e);\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 = Number(raw);\n if (!Number.isFinite(n) || 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 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,OASrB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { registerCommand } from '../command.js';
2
2
  import { commandHelp, JSON_FLAG } from '../flag-help.js';
3
3
  import { CliError, EXIT_CHECK_FAILED, UsageError } from '../errors.js';
4
- import { assertSynonymAgreement, resolveQuantityName, SynonymDisagreementError, } from '../../dimensional/formula-names.js';
5
4
  import { emitJson } from '../output.js';
5
+ import { splitAssignments } from '../bindings.js';
6
6
  const FLAGS = [
7
7
  {
8
8
  name: '--at',
@@ -24,7 +24,7 @@ const FLAGS = [
24
24
  },
25
25
  JSON_FLAG,
26
26
  ];
27
- const HELP = `upt regime <family> [--at group=value ...] [--json]
27
+ const HELP = `upt regime <family> [--at group=value ...] [--assume premise ...] [--deny premise ...] [--json]
28
28
  Where in parameter space a family's models are claimed to apply.
29
29
  --at states a point in REGIME COORDINATES (π-group formulas, or a
30
30
  dimensionless input's own name, e.g. --at theta0=0.2). Every model AND
@@ -57,20 +57,14 @@ const HELP = `upt regime <family> [--at group=value ...] [--json]
57
57
  * positionals, so `--at theta0=0.2 T0=1 t=10` works as written: the parser
58
58
  * gives `--at` one value and leaves the rest as positionals.
59
59
  *
60
- * @throws CliError on a malformed or non-finite assignment. A dropped
61
- * coordinate would silently turn a CHECKED inequality into an unchecked one,
62
- * which is exactly the reading this command exists to keep honest.
60
+ * @throws UsageError on a token with no `=`, CliError on a non-finite value or
61
+ * a group given twice. A dropped coordinate would silently turn a CHECKED
62
+ * inequality into an unchecked one, which is exactly the reading this
63
+ * command exists to keep honest.
63
64
  * @internal
64
65
  */
65
66
  export function parseAt(api, raw, command, notes) {
66
- const assignments = [];
67
- for (const token of raw) {
68
- const eq = token.indexOf('=');
69
- if (eq <= 0) {
70
- throw new CliError(`upt ${command}: '${token}' is not a group=value assignment`);
71
- }
72
- assignments.push({ name: token.slice(0, eq), raw: token.slice(eq + 1), token });
73
- }
67
+ const assignments = splitAssignments(command, raw, 'group=value');
74
68
  const siblings = assignments.map((a) => ({ name: a.name, raw: a.raw }));
75
69
  const point = {};
76
70
  for (const a of assignments) {
@@ -89,17 +83,17 @@ export function parseAt(api, raw, command, notes) {
89
83
  catch (e) {
90
84
  if (e instanceof CliError)
91
85
  throw e;
92
- if (e instanceof api.UnitError && /is a temperature/.test(e.message)) {
86
+ if (e instanceof api.TemperatureBindingError) {
93
87
  throw new CliError(`upt ${command}: '${a.token}' is not a temperature. ${e.message}`);
94
88
  }
95
89
  throw new CliError(`upt ${command}: '${a.token}' is not a finite number. ${e.message}`);
96
90
  }
97
91
  }
98
92
  try {
99
- assertSynonymAgreement(point);
93
+ api.assertSynonymAgreement(point);
100
94
  }
101
95
  catch (e) {
102
- if (e instanceof SynonymDisagreementError)
96
+ if (e instanceof api.SynonymDisagreementError)
103
97
  throw new CliError(`upt ${command}: ${e.message}`);
104
98
  throw e;
105
99
  }
@@ -116,7 +110,7 @@ const normalizeGroup = (name) => name.replace(/\s+/g, '').replace(/\*/g, '·');
116
110
  * lists the keys that are neither a group nor a parameter of any regime here.
117
111
  * @internal
118
112
  */
119
- export function resolveAtPoint(point, regimes) {
113
+ export function resolveAtPoint(api, point, regimes) {
120
114
  const groups = new Map();
121
115
  for (const r of regimes) {
122
116
  for (const [key, g] of Object.entries(r.groupDefinitions))
@@ -134,7 +128,7 @@ export function resolveAtPoint(point, regimes) {
134
128
  const values = {};
135
129
  const unknown = [];
136
130
  for (const [key, value] of Object.entries(point)) {
137
- const resolved = resolveQuantityName(key, named) ?? key;
131
+ const resolved = api.resolveQuantityName(key, named) ?? key;
138
132
  const group = byNormal.get(normalizeGroup(resolved)) ?? byNormal.get(normalizeGroup(key));
139
133
  const stored = group ?? resolved;
140
134
  values[stored] = value;
@@ -217,7 +211,7 @@ async function run(ctx) {
217
211
  // anything — the tri-state's `true` is vacuous when there is nothing to
218
212
  // check, so that case is labelled rather than left to read as a pass.
219
213
  const records = registration.records;
220
- const { values: resolved, unknown } = resolveAtPoint(point, records.map((r) => r.regime));
214
+ const { values: resolved, unknown } = resolveAtPoint(api, point, records.map((r) => r.regime));
221
215
  const unmatched = [
222
216
  ...assume.map((d) => ({ flag: '--assume', d })),
223
217
  ...deny.map((d) => ({ flag: '--deny', d })),
@@ -289,11 +283,11 @@ async function run(ctx) {
289
283
  const samples = {};
290
284
  for (const [group, value] of Object.entries(resolved))
291
285
  samples[group] = [value];
292
- // Coverage is asked of the records that actually CONSTRAIN something. An
293
- // unconstrained model regime holds at every point, so including the models
294
- // would make coverage vacuously total and the report would answer nothing.
286
+ // `uncoveredRegions` counts a record as covering a point only when it checked an
287
+ // inequality there, so an unconstrained model regime covers nothing and every record
288
+ // can be passed. The constraining count is the report's, not a filter.
295
289
  const constraining = records.filter((r) => r.regime.inequalities.length > 0);
296
- const uncovered = stated.length === 0 ? null : api.uncoveredRegions(registration.name, constraining, samples);
290
+ const uncovered = stated.length === 0 ? null : api.uncoveredRegions(registration.name, records, samples);
297
291
  if (wantJson) {
298
292
  emitJson({
299
293
  command: 'regime',
@@ -315,9 +309,13 @@ async function run(ctx) {
315
309
  return verdicts.some((v) => v.ok === false) ? EXIT_CHECK_FAILED : 0;
316
310
  }
317
311
  out(`\nRegimes of family '${registration.name}'`);
318
- out(stated.length === 0
319
- ? '(no --at point supplied: every inequality is UNCHECKED, which is not a pass)'
320
- : `at ${stated.map((g) => `${g}=${point[g]}`).join(' · ')}`);
312
+ // A family whose records state no inequality has nothing to check at any point: VACUOUS, not UNCHECKED.
313
+ const allVacuous = verdicts.every((v) => v.vacuous);
314
+ out(allVacuous
315
+ ? '(this family states no inequality: every record is VACUOUS, and no --at point could check it)'
316
+ : stated.length === 0
317
+ ? '(no --at point supplied: every inequality is UNCHECKED, which is not a pass)'
318
+ : `at ${stated.map((g) => `${g}=${point[g]}`).join(' · ')}`);
321
319
  if (unknown.length > 0) {
322
320
  out(`unknown coordinate(s): ${unknown.join(', ')} — no record in family '${registration.name}' uses ` +
323
321
  `${unknown.length === 1 ? 'it' : 'them'}; ignored`);
@@ -391,7 +389,7 @@ export const command = {
391
389
  flags: FLAGS,
392
390
  help: commandHelp(HELP, FLAGS),
393
391
  summary: 'Report where a family\'s models are valid, violated, or unknown.',
394
- example: 'upt regime <name>',
392
+ example: 'upt regime oscillators --at theta0=0.2',
395
393
  group: 'explore',
396
394
  run,
397
395
  };