universal-physics-tensor 0.42.0 → 0.44.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.
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.d.ts +32 -0
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.d.ts.map +1 -0
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.js +46 -0
- package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -0
- package/dist/bridges/be63-chandrasekhar-mass.d.ts +22 -0
- package/dist/bridges/be63-chandrasekhar-mass.d.ts.map +1 -0
- package/dist/bridges/be63-chandrasekhar-mass.js +36 -0
- package/dist/bridges/be63-chandrasekhar-mass.js.map +1 -0
- package/dist/bridges/be64-eddington-luminosity-confrontation.d.ts +48 -0
- package/dist/bridges/be64-eddington-luminosity-confrontation.d.ts.map +1 -0
- package/dist/bridges/be64-eddington-luminosity-confrontation.js +31 -0
- package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -0
- package/dist/bridges/be64-eddington-luminosity.d.ts +22 -0
- package/dist/bridges/be64-eddington-luminosity.d.ts.map +1 -0
- package/dist/bridges/be64-eddington-luminosity.js +37 -0
- package/dist/bridges/be64-eddington-luminosity.js.map +1 -0
- package/dist/bridges/be65-jeans-mass-confrontation.d.ts +36 -0
- package/dist/bridges/be65-jeans-mass-confrontation.d.ts.map +1 -0
- package/dist/bridges/be65-jeans-mass-confrontation.js +58 -0
- package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -0
- package/dist/bridges/be65-jeans-mass.d.ts +24 -0
- package/dist/bridges/be65-jeans-mass.d.ts.map +1 -0
- package/dist/bridges/be65-jeans-mass.js +38 -0
- package/dist/bridges/be65-jeans-mass.js.map +1 -0
- package/dist/bridges/confrontations.d.ts +21 -0
- package/dist/bridges/confrontations.d.ts.map +1 -1
- package/dist/bridges/confrontations.js +103 -0
- package/dist/bridges/confrontations.js.map +1 -1
- package/dist/bridges/evaluators.d.ts +19 -0
- package/dist/bridges/evaluators.d.ts.map +1 -0
- package/dist/bridges/evaluators.js +62 -0
- package/dist/bridges/evaluators.js.map +1 -0
- package/dist/bridges/index.d.ts +3 -0
- package/dist/bridges/index.d.ts.map +1 -1
- package/dist/bridges/index.js +69 -0
- package/dist/bridges/index.js.map +1 -1
- package/dist/cli/commands/axes.d.ts +3 -0
- package/dist/cli/commands/axes.d.ts.map +1 -0
- package/dist/cli/commands/axes.js +37 -0
- package/dist/cli/commands/axes.js.map +1 -0
- package/dist/cli/commands/confront.d.ts.map +1 -1
- package/dist/cli/commands/confront.js +76 -17
- package/dist/cli/commands/confront.js.map +1 -1
- package/dist/cli/commands/evaluate.d.ts +3 -0
- package/dist/cli/commands/evaluate.d.ts.map +1 -0
- package/dist/cli/commands/evaluate.js +79 -0
- package/dist/cli/commands/evaluate.js.map +1 -0
- package/dist/cli/commands/ground.d.ts +3 -0
- package/dist/cli/commands/ground.d.ts.map +1 -0
- package/dist/cli/commands/ground.js +48 -0
- package/dist/cli/commands/ground.js.map +1 -0
- package/dist/cli/commands/index.d.ts +3 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +3 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +134 -112
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/output.d.ts +2 -0
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js.map +1 -1
- package/dist/cli-api.d.ts +8 -2
- package/dist/cli-api.d.ts.map +1 -1
- package/dist/cli-api.js +5 -1
- package/dist/cli-api.js.map +1 -1
- package/dist/composition/quantities/common.d.ts.map +1 -1
- package/dist/composition/quantities/common.js +8 -4
- package/dist/composition/quantities/common.js.map +1 -1
- package/dist/composition/quantities/condensed-matter.d.ts.map +1 -1
- package/dist/composition/quantities/condensed-matter.js +4 -2
- package/dist/composition/quantities/condensed-matter.js.map +1 -1
- package/dist/composition/user-equation.d.ts.map +1 -1
- package/dist/composition/user-equation.js +3 -1
- package/dist/composition/user-equation.js.map +1 -1
- package/dist/core/tensor.js +5 -5
- package/dist/core/tensor.js.map +1 -1
- package/dist/dimensional/bridge-check.d.ts.map +1 -1
- package/dist/dimensional/bridge-check.js +4 -1
- package/dist/dimensional/bridge-check.js.map +1 -1
- package/dist/dimensional/buckingham.d.ts.map +1 -1
- package/dist/dimensional/buckingham.js +3 -1
- package/dist/dimensional/buckingham.js.map +1 -1
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
- package/dist/numerical/connection-lowering-helpers.js +79 -28
- package/dist/numerical/connection-lowering-helpers.js.map +1 -1
- package/dist/numerical/curvature-lowering-helpers.js +1 -1
- package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
- package/dist/numerical/float64-engine.d.ts.map +1 -1
- package/dist/numerical/float64-engine.js +8 -1
- package/dist/numerical/float64-engine.js.map +1 -1
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
- package/dist/numerical/geodesic-integrator.js +7 -1
- package/dist/numerical/geodesic-integrator.js.map +1 -1
- package/dist/numerical/gl4-integrator.d.ts.map +1 -1
- package/dist/numerical/gl4-integrator.js +81 -28
- package/dist/numerical/gl4-integrator.js.map +1 -1
- package/dist/numerical/kretschmann.d.ts.map +1 -1
- package/dist/numerical/kretschmann.js +57 -48
- package/dist/numerical/kretschmann.js.map +1 -1
- package/dist/numerical/lowering.d.ts.map +1 -1
- package/dist/numerical/lowering.js +7 -1
- package/dist/numerical/lowering.js.map +1 -1
- package/dist/numerical/pderiv.d.ts.map +1 -1
- package/dist/numerical/pderiv.js +11 -2
- package/dist/numerical/pderiv.js.map +1 -1
- package/dist/numerical/weyl-lowering.d.ts.map +1 -1
- package/dist/numerical/weyl-lowering.js +16 -21
- package/dist/numerical/weyl-lowering.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,14 +4,24 @@ import { emitJson } from '../output.js';
|
|
|
4
4
|
const FLAGS = [
|
|
5
5
|
{ name: '--bridge', valueStyle: 'attached' },
|
|
6
6
|
{ name: '--sensitivity', valueStyle: 'none' },
|
|
7
|
+
{ name: '--rigor', valueStyle: 'attached' },
|
|
8
|
+
{ name: '--frontier', valueStyle: 'none' },
|
|
7
9
|
{ name: '--json', valueStyle: 'none' },
|
|
8
10
|
];
|
|
9
|
-
const HELP = `upt confront [--bridge=be-XX] [--sensitivity] [--json]
|
|
10
|
-
Run the catalog's committed real-data confrontations (predicted vs
|
|
11
|
-
observed). --bridge runs one;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
const HELP = `upt confront [--bridge=be-XX] [--rigor=stringent|moderate|loose] [--frontier] [--sensitivity] [--json]
|
|
12
|
+
Run the catalog's committed real-data confrontations (predicted vs
|
|
13
|
+
observed), each tagged with its RIGOR tier. --bridge runs one;
|
|
14
|
+
--rigor=<tier> shows only that tier (the precision core, or the loose
|
|
15
|
+
tail that needs better data); --frontier ranks the σ-tests by margin to
|
|
16
|
+
exclusion (the tightest tests are the most at-risk under new data);
|
|
17
|
+
--sensitivity adds an input-elasticity ranking (value-kind only).`;
|
|
18
|
+
const RIGOR_TIERS = new Set(['stringent', 'moderate', 'loose']);
|
|
19
|
+
/** σ-headroom to the 1σ exclusion edge for a value outcome; null for others. */
|
|
20
|
+
function frontierMarginSigma(outcome) {
|
|
21
|
+
return outcome && outcome.kind === 'value' && typeof outcome.residualInSigma === 'number'
|
|
22
|
+
? 1 - outcome.residualInSigma
|
|
23
|
+
: null;
|
|
24
|
+
}
|
|
15
25
|
const EPISTEMICS = 'confrontation is consistency, not confirmation; a passing confrontation does not prove the bridge.';
|
|
16
26
|
const SENSITIVITY_EPISTEMICS = ' sensitivity (elasticity) ranks which input the prediction depends on most STRONGLY; ' +
|
|
17
27
|
'it is NOT which input dominates the uncertainty budget (that needs input sigma).';
|
|
@@ -28,7 +38,13 @@ async function run(ctx) {
|
|
|
28
38
|
const bridgeFlag = args.flags.get('bridge');
|
|
29
39
|
const wantJson = args.flags.has('json');
|
|
30
40
|
const wantSensitivity = args.flags.has('sensitivity');
|
|
31
|
-
const
|
|
41
|
+
const wantFrontier = args.flags.has('frontier');
|
|
42
|
+
const rigorFlag = args.flags.get('rigor');
|
|
43
|
+
const rigorTier = rigorFlag && rigorFlag.length ? rigorFlag[rigorFlag.length - 1] : undefined;
|
|
44
|
+
if (rigorTier !== undefined && !RIGOR_TIERS.has(rigorTier)) {
|
|
45
|
+
throw new CliError(`upt confront: invalid --rigor='${rigorTier}' (expected stringent|moderate|loose)`);
|
|
46
|
+
}
|
|
47
|
+
let entries = bridgeFlag && bridgeFlag.length
|
|
32
48
|
? (() => {
|
|
33
49
|
const id = parseBridgeId(bridgeFlag[bridgeFlag.length - 1]);
|
|
34
50
|
const one = api.listConfrontations().find((e) => e.bridgeId === id);
|
|
@@ -37,22 +53,64 @@ async function run(ctx) {
|
|
|
37
53
|
return [one];
|
|
38
54
|
})()
|
|
39
55
|
: api.listConfrontations();
|
|
40
|
-
|
|
56
|
+
if (rigorTier !== undefined) {
|
|
57
|
+
entries = entries.filter((e) => api.confrontationRigor(e.bridgeId) === rigorTier);
|
|
58
|
+
}
|
|
59
|
+
const results = entries.map((e) => ({
|
|
60
|
+
bridgeId: e.bridgeId,
|
|
61
|
+
title: e.title,
|
|
62
|
+
outcome: e.run(),
|
|
63
|
+
rigor: api.confrontationRigor(e.bridgeId),
|
|
64
|
+
}));
|
|
65
|
+
if (wantFrontier) {
|
|
66
|
+
// Frontier = closest to exclusion: value-kind by σ-headroom ASCENDING (smallest
|
|
67
|
+
// margin = most at-risk under new data); non-σ outcomes (bounds/consistency) after.
|
|
68
|
+
results.sort((a, b) => {
|
|
69
|
+
const ma = frontierMarginSigma(a.outcome);
|
|
70
|
+
const mb = frontierMarginSigma(b.outcome);
|
|
71
|
+
if (ma === null && mb === null)
|
|
72
|
+
return 0;
|
|
73
|
+
if (ma === null)
|
|
74
|
+
return 1;
|
|
75
|
+
if (mb === null)
|
|
76
|
+
return -1;
|
|
77
|
+
return ma - mb;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
41
80
|
if (wantJson) {
|
|
42
|
-
const jsonResults = results.map((r) =>
|
|
43
|
-
|
|
44
|
-
: r.
|
|
81
|
+
const jsonResults = results.map((r) => ({
|
|
82
|
+
bridgeId: r.bridgeId,
|
|
83
|
+
rigor: r.rigor,
|
|
84
|
+
...(wantSensitivity && r.outcome.kind === 'value'
|
|
85
|
+
? { ...r.outcome, sensitivity: api.decidingMeasurement(r.bridgeId) }
|
|
86
|
+
: r.outcome),
|
|
87
|
+
}));
|
|
45
88
|
const epistemics = wantSensitivity ? EPISTEMICS + SENSITIVITY_EPISTEMICS : EPISTEMICS;
|
|
46
|
-
emitJson({ command: 'confront', epistemics, result: jsonResults }, ctx.write);
|
|
89
|
+
emitJson({ command: 'confront', epistemics, rigorDistribution: api.rigorDistribution(), result: jsonResults }, ctx.write);
|
|
47
90
|
return 0;
|
|
48
91
|
}
|
|
49
92
|
out('\nReal-data confrontations — predicted vs observed');
|
|
50
|
-
out('(' + EPISTEMICS + (wantSensitivity ? SENSITIVITY_EPISTEMICS : '') + ')
|
|
51
|
-
|
|
52
|
-
|
|
93
|
+
out('(' + EPISTEMICS + (wantSensitivity ? SENSITIVITY_EPISTEMICS : '') + ')');
|
|
94
|
+
// The spine is a RIGOR HIERARCHY, not N equal confirmations (docs/research/pi-instrument-results.md).
|
|
95
|
+
if (results.length > 1) {
|
|
96
|
+
const d = { stringent: 0, moderate: 0, loose: 0 };
|
|
97
|
+
for (const r of results)
|
|
98
|
+
d[r.rigor]++;
|
|
99
|
+
out(`rigor: ${d.stringent} stringent · ${d.moderate} moderate · ${d.loose} loose — NOT ${results.length} equal confirmations`);
|
|
100
|
+
if (wantFrontier) {
|
|
101
|
+
out('frontier: σ-tests ordered by margin to exclusion (smallest = most at-risk under new data)');
|
|
102
|
+
}
|
|
103
|
+
out('');
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
out('');
|
|
107
|
+
}
|
|
108
|
+
for (const { bridgeId, title, rigor, outcome } of results) {
|
|
109
|
+
out(` be-${bridgeId} [${rigor}]: ${title}`);
|
|
53
110
|
switch (outcome.kind) {
|
|
54
|
-
case 'value':
|
|
55
|
-
|
|
111
|
+
case 'value': {
|
|
112
|
+
const margin = wantFrontier ? ` · margin ${(1 - outcome.residualInSigma).toFixed(2)}σ to exclusion` : '';
|
|
113
|
+
out(` predicted ${outcome.predicted} · observed ${outcome.observed} ± ${outcome.sigma} ${outcome.units} · residual ${outcome.residualInSigma.toFixed(2)}σ · ${outcome.withinObserved ? 'within 1σ ✓' : 'outside 1σ'}${margin}`);
|
|
56
114
|
if (wantSensitivity) {
|
|
57
115
|
const ranked = api.decidingMeasurement(bridgeId);
|
|
58
116
|
if (ranked.length) {
|
|
@@ -66,6 +124,7 @@ async function run(ctx) {
|
|
|
66
124
|
}
|
|
67
125
|
}
|
|
68
126
|
break;
|
|
127
|
+
}
|
|
69
128
|
case 'upper-bound':
|
|
70
129
|
out(` predicted ${outcome.predicted} ${outcome.units} · bound ${outcome.bound} · ${outcome.satisfied ? 'not excluded ✓' : 'EXCLUDED'}${outcome.caveat ? ` · ${outcome.caveat}` : ''}`);
|
|
71
130
|
if (wantSensitivity)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confront.js","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAiC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,KAAK,GAAe;IACxB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;IAC5C,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE;IAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE;CACvC,CAAC;AAEF,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"confront.js","sourceRoot":"","sources":["../../../src/cli/commands/confront.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAiF/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { registerCommand } from '../command.js';
|
|
2
|
+
import { emitJson } from '../output.js';
|
|
3
|
+
import { UsageError } from '../errors.js';
|
|
4
|
+
import { CliError } from '../errors.js';
|
|
5
|
+
const FLAGS = [{ name: '--json', valueStyle: 'none' }];
|
|
6
|
+
const HELP = `upt evaluate <be-NN> key=value ...
|
|
7
|
+
Numerically evaluate a closed-form / spacetime bridge (BE-51/52/55..65).
|
|
8
|
+
e.g. upt evaluate be-63 mu_e=2 → Chandrasekhar mass ≈ 1.44 M_⊙
|
|
9
|
+
upt evaluate be-55 C=1 → quantum Hall R_H = von Klitzing constant
|
|
10
|
+
With no bridge id, lists the evaluable bridges and their input keys.`;
|
|
11
|
+
function parseInputs(args) {
|
|
12
|
+
const out = {};
|
|
13
|
+
for (const a of args) {
|
|
14
|
+
const eq = a.indexOf('=');
|
|
15
|
+
if (eq < 0) {
|
|
16
|
+
throw new UsageError(`upt evaluate: '${a}' must be key=value (e.g. mu_e=2). See \`upt help\`.`);
|
|
17
|
+
}
|
|
18
|
+
const key = a.slice(0, eq);
|
|
19
|
+
const raw = a.slice(eq + 1);
|
|
20
|
+
const num = Number(raw);
|
|
21
|
+
if (raw === '' || !Number.isFinite(num)) {
|
|
22
|
+
throw new UsageError(`upt evaluate: '${a}' is not a finite number. Expected ${key}=<number>.`);
|
|
23
|
+
}
|
|
24
|
+
out[key] = num;
|
|
25
|
+
}
|
|
26
|
+
return out;
|
|
27
|
+
}
|
|
28
|
+
async function run(ctx) {
|
|
29
|
+
const { args, api, out } = ctx;
|
|
30
|
+
const [target, ...rest] = args.positionals;
|
|
31
|
+
if (!target) {
|
|
32
|
+
const specs = [...api.BRIDGE_EVALUATORS.values()];
|
|
33
|
+
if (args.flags.has('json')) {
|
|
34
|
+
emitJson({
|
|
35
|
+
command: 'evaluate',
|
|
36
|
+
result: specs.map((s) => ({ bridgeId: s.bridgeId, name: s.name, inputKeys: s.inputKeys })),
|
|
37
|
+
}, ctx.write);
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
out('\nEvaluable bridges (upt evaluate <be-NN> key=value ...)');
|
|
41
|
+
for (const s of specs) {
|
|
42
|
+
out(` be-${s.bridgeId} ${s.name.padEnd(34)} inputs: ${s.inputKeys.join(', ')}`);
|
|
43
|
+
}
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const m = /^be-(\d+)$/i.exec(target);
|
|
47
|
+
if (!m) {
|
|
48
|
+
throw new UsageError(`upt evaluate: '${target}' is not a bridge id (be-NN). See \`upt help\`.`);
|
|
49
|
+
}
|
|
50
|
+
const id = Number(m[1]);
|
|
51
|
+
const inputs = parseInputs(rest);
|
|
52
|
+
let result;
|
|
53
|
+
try {
|
|
54
|
+
result = api.evaluateBridge(id, inputs);
|
|
55
|
+
}
|
|
56
|
+
catch (e) {
|
|
57
|
+
// unknown-id / missing-input / out-of-range → bad value, exit 1 (documented contract).
|
|
58
|
+
throw new CliError(e.message);
|
|
59
|
+
}
|
|
60
|
+
if (args.flags.has('json')) {
|
|
61
|
+
emitJson({ command: 'evaluate', result: { bridgeId: id, inputs, output: result } }, ctx.write);
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
out(`\n● be-${id} ${api.BRIDGE_EVALUATORS.get(id)?.name ?? ''}`);
|
|
65
|
+
out(' inputs: ' + Object.entries(inputs).map(([k, v]) => `${k}=${v}`).join(', '));
|
|
66
|
+
for (const [k, v] of Object.entries(result)) {
|
|
67
|
+
out(` ${k} = ${typeof v === 'number' ? v : JSON.stringify(v)}`);
|
|
68
|
+
}
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
export const command = {
|
|
72
|
+
name: 'evaluate',
|
|
73
|
+
aliases: [],
|
|
74
|
+
flags: FLAGS,
|
|
75
|
+
help: HELP,
|
|
76
|
+
run,
|
|
77
|
+
};
|
|
78
|
+
registerCommand(command);
|
|
79
|
+
//# sourceMappingURL=evaluate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../../src/cli/commands/evaluate.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAiC,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,KAAK,GAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAEnE,MAAM,IAAI,GAAG;;;;6EAIgE,CAAC;AAE9E,SAAS,WAAW,CAAC,IAAuB;IAC1C,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,sDAAsD,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,sCAAsC,GAAG,YAAY,CAAC,CAAC;QACjG,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,GAAe;IAChC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;IAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,QAAQ,CACN;gBACE,OAAO,EAAE,UAAU;gBACnB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;aAC3F,EACD,GAAG,CAAC,KAAK,CACV,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,GAAG,CAAC,2DAA2D,CAAC,CAAC;QACjE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,IAAI,UAAU,CAAC,kBAAkB,MAAM,iDAAiD,CAAC,CAAC;IAClG,CAAC;IACD,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,uFAAuF;QACvF,MAAM,IAAI,QAAQ,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC/F,OAAO,CAAC,CAAC;IACX,CAAC;IACD,GAAG,CAAC,UAAU,EAAE,KAAK,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;IAClE,GAAG,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,KAAK,CAAC,MAAM,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAY;IAC9B,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,GAAG;CACJ,CAAC;AAEF,eAAe,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ground.ts"],"names":[],"mappings":"AAOA,OAAO,EAAmB,KAAK,OAAO,EAAmB,MAAM,eAAe,CAAC;AAyD/E,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { registerCommand } from '../command.js';
|
|
2
|
+
import { resolveGraph } from '../graphs.js';
|
|
3
|
+
import { emitJson } from '../output.js';
|
|
4
|
+
import { UsageError, CliError } from '../errors.js';
|
|
5
|
+
const FLAGS = [
|
|
6
|
+
{ name: '--source', valueStyle: 'attached' },
|
|
7
|
+
{ name: '--json', valueStyle: 'none' },
|
|
8
|
+
];
|
|
9
|
+
const HELP = `upt ground <quantityA> <quantityB>
|
|
10
|
+
The epistemic-grounding ledger for one discovery candidate a≡b: which
|
|
11
|
+
falsifiers PASSED, which ABSTAINED (gaps), and the honest ceiling — no
|
|
12
|
+
mechanism test, no data test (permanent for a dimensional candidate;
|
|
13
|
+
real mechanism/data live in \`upt confront\`).`;
|
|
14
|
+
const EPISTEMICS = '(candidate grounding is a review surface; mechanism/data live in `upt confront`, not candidate space)';
|
|
15
|
+
async function run(ctx) {
|
|
16
|
+
const { args, api, out } = ctx;
|
|
17
|
+
const { graph, source } = resolveGraph(api, args.flags);
|
|
18
|
+
const [a, b] = args.positionals;
|
|
19
|
+
if (!a || !b) {
|
|
20
|
+
throw new UsageError('upt ground needs two quantity names (a b). See `upt help`.');
|
|
21
|
+
}
|
|
22
|
+
const ranked = api.rankDiscoveries(graph);
|
|
23
|
+
const cand = ranked.find((c) => (c.a === a && c.b === b) || (c.a === b && c.b === a));
|
|
24
|
+
if (!cand) {
|
|
25
|
+
throw new CliError(`upt ground: no discovery candidate pairs '${a}' with '${b}' — they may not share a dimension, or are already connected (not a cross-cluster coincidence).`);
|
|
26
|
+
}
|
|
27
|
+
const g = api.describeGrounding(cand);
|
|
28
|
+
if (args.flags.has('json')) {
|
|
29
|
+
emitJson({ command: 'ground', source, result: { a: cand.a, b: cand.b, verdict: cand.verdict, grounding: g } }, ctx.write);
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
out(`\n● ${cand.a} ≟ ${cand.b} [${cand.verdict}]`);
|
|
33
|
+
out(EPISTEMICS + '\n');
|
|
34
|
+
out(` passed: ${g.passed.join(', ') || '—'}`);
|
|
35
|
+
out(` gaps: ${g.gaps.join(', ') || '—'}`);
|
|
36
|
+
out(` ceiling: mechanism-tested ${g.mechanismTested} · data-tested ${g.dataTested} ` +
|
|
37
|
+
'(permanent for a dimensional candidate — see `upt confront`)');
|
|
38
|
+
return 0;
|
|
39
|
+
}
|
|
40
|
+
export const command = {
|
|
41
|
+
name: 'ground',
|
|
42
|
+
aliases: [],
|
|
43
|
+
flags: FLAGS,
|
|
44
|
+
help: HELP,
|
|
45
|
+
run,
|
|
46
|
+
};
|
|
47
|
+
registerCommand(command);
|
|
48
|
+
//# sourceMappingURL=ground.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ground.js","sourceRoot":"","sources":["../../../src/cli/commands/ground.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,eAAe,CAAC;AACvB,OAAO,YAAY,CAAC;AACpB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,aAAa,CAAC;AACrB,OAAO,UAAU,CAAC;AAClB,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,WAAW,CAAC;AACnB,OAAO,eAAe,CAAC;AACvB,OAAO,aAAa,CAAC"}
|
package/dist/cli/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,qBAAqB,CAAC;AAE7B;;;qEAGqE;AACrE,KAAK,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,qBAAqB,CAAC;AAE7B;;;qEAGqE;AACrE,KAAK,EAAE,GAAG;IACR,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B,CAAC;AA8JF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,EAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAmEhF"}
|
package/dist/cli/main.js
CHANGED
|
@@ -35,118 +35,140 @@ const unknownCommandMessage = (name) => `Unknown command '${name}'. See \`upt he
|
|
|
35
35
|
// end documenting `upt version` and the global `--json` flag. Do NOT hand-edit
|
|
36
36
|
// tests/cli/golden/help.txt against this — that golden pins the OLD bin/upt.mjs
|
|
37
37
|
// and is only regenerated in Task 8, once main.ts becomes the live CLI.
|
|
38
|
-
const HELP_TEXT = `upt — Universal Physics Tensor bridge-inference CLI
|
|
39
|
-
|
|
40
|
-
Usage:
|
|
41
|
-
upt explain <quantity> [name=value | name] ...
|
|
42
|
-
Explain how the graph determines a quantity: the identifiability
|
|
43
|
-
verdict, recovered value, derivation chains, and whether the inputs
|
|
44
|
-
are dimensionally sufficient.
|
|
45
|
-
e.g. upt explain hawking-temperature mass=1.989e30
|
|
46
|
-
|
|
47
|
-
upt priority
|
|
48
|
-
Triage the speculative bridges by structural DECIDABILITY against
|
|
49
|
-
established physics (Tiers 1-3). NOT a credibility ranking.
|
|
50
|
-
|
|
51
|
-
upt audit
|
|
52
|
-
Try to derive every built-in bridge equation by dimensions: which
|
|
53
|
-
re-derive as a recognized monomial (with the prefactor recovered),
|
|
54
|
-
which are decoys, which are dimensionally open.
|
|
55
|
-
|
|
56
|
-
upt map [--source=catalog|canonical|both] [--format=text|mermaid|dot|svg]
|
|
57
|
-
[--proposed] [--out=PATH] [--equation "TARGET = EXPR"]
|
|
58
|
-
Map how the equations LINK: connected components (clusters) of the
|
|
59
|
-
graph by shared quantities, the anchored core, the link hubs, and
|
|
60
|
-
the isolated tail.
|
|
61
|
-
--format=mermaid|dot|svg emits the VISUAL map (quantities = nodes,
|
|
62
|
-
equations = junctions colored by status, one subgraph per component).
|
|
63
|
-
text (default) is the unchanged linkage printout. svg renders the dot
|
|
64
|
-
layout via the optional @viz-js/viz peer (npm i @viz-js/viz; or pipe
|
|
65
|
-
dot through "dot -Tsvg"). --proposed overlays the unadjudicated
|
|
66
|
-
identity-consequence relations (gray dashed). --out writes to a file
|
|
67
|
-
(default stdout).
|
|
68
|
-
--equation "TARGET = EXPR" injects YOUR OWN equation as a violet 'user'
|
|
69
|
-
node and reports where it lands (which cluster / shared quantities), with
|
|
70
|
-
a "did you mean?" hint for names that miss the catalog vocabulary. Use
|
|
71
|
-
underscores for multi-word quantities (photon_energy -> photon-energy).
|
|
72
|
-
e.g. upt map --equation "period = 2*pi*sqrt(length/gravity)"
|
|
73
|
-
|
|
74
|
-
upt candidates [--source=catalog|canonical|both]
|
|
75
|
-
Propose candidate cross-cluster links (quantities of the same
|
|
76
|
-
dimension in different clusters) for PHYSICIST REVIEW — a
|
|
77
|
-
coincidence-heavy surface, not discovered bridges.
|
|
78
|
-
|
|
79
|
-
upt predict
|
|
80
|
-
Project the catalog onto the (scale × force) regime plane and rank
|
|
81
|
-
the EMPTY regime cells as undiscovered-connection hypotheses
|
|
82
|
-
(triadic closure). Makes the namesake tensor operational. Review
|
|
83
|
-
surface, not discovered bridges.
|
|
84
|
-
|
|
85
|
-
upt discover [--source=catalog|canonical|both]
|
|
86
|
-
VET the link candidates through the inference suite: hypothesise
|
|
87
|
-
each identification a≡b and test whether it merges disconnected
|
|
88
|
-
physics, unlocks quantities, and stays numerically consistent.
|
|
89
|
-
Ranks promising / inert / contradictory.
|
|
90
|
-
--source=canonical runs the funnel on the standard-physics L-layer
|
|
91
|
-
ALONE (bridges excluded) — new candidates from established physics,
|
|
92
|
-
and a self-consistency check (expect 0 contradictory).
|
|
93
|
-
--derive emits, for each 'promising' identification, the ONE algebraic
|
|
94
|
-
relation it implies (monomial elimination) as an UNADJUDICATED, math-only
|
|
95
|
-
proposal — NOT a bridge (Part-VI §XXVII-B). Pairs with --source=canonical.
|
|
96
|
-
--max-orders=N tunes the magnitude-clash threshold (default 3); looser N
|
|
97
|
-
keeps more candidates 'promising', tighter N falsifies more as clashes.
|
|
98
|
-
--anchor=k=v[,k2=v2] overrides the numeric anchor (default mass=M_sun)
|
|
99
|
-
for the consistency/closure check. Both reshape the candidate pool that
|
|
100
|
-
--derive consumes.
|
|
101
|
-
|
|
102
|
-
upt connectors
|
|
103
|
-
Of the 20 ISOLATED bridges, which could connect to the anchored
|
|
104
|
-
core via a same-dimension identification? The structural frontier —
|
|
105
|
-
same-kind connectors are the motivated set for physicist review.
|
|
106
|
-
|
|
107
|
-
upt coverage
|
|
108
|
-
Audit the catalog's empirical grounding — which bridges are
|
|
109
|
-
data-confronted vs graph-computable vs encoded-only vs thin — to
|
|
110
|
-
target the physicist review. Fabricates nothing.
|
|
111
|
-
|
|
112
|
-
upt canonical
|
|
113
|
-
List the canonical-equation registry — the standard-physics L-layer
|
|
114
|
-
(textbook "answer key") with each entry's fidelity (L0/L1/L2),
|
|
115
|
-
domain, and bridge partners, plus the coverage gap.
|
|
116
|
-
|
|
117
|
-
upt recover
|
|
118
|
-
Validate bridges against standard physics: classify each bridge↔
|
|
119
|
-
canonical link as restates-canonical (F4 circularity — NOT a
|
|
120
|
-
discovery), recovers (undeclared structural match), or
|
|
121
|
-
dimensional-only.
|
|
122
|
-
|
|
123
|
-
upt symbolic [--simplify]
|
|
124
|
-
Compose bridges' SYMBOLIC (AST) forms, not just their numeric
|
|
125
|
-
evaluators (the Observable contract). Shows the CT-1 / CT-1b chains
|
|
126
|
-
composed by substitution, dimensionally validated and evaluable.
|
|
127
|
-
With --simplify, folds the composed AST via MathTS (k_B cancels),
|
|
128
|
-
re-validated dimensionally + numerically.
|
|
129
|
-
|
|
130
|
-
upt eval "<formula>" name=value ...
|
|
131
|
-
Evaluate YOUR OWN scalar formula (safe — arithmetic only). Knows
|
|
132
|
-
pi/tau and sqrt/exp/ln/sin/...; any other name must be supplied.
|
|
133
|
-
e.g. upt eval "hbar*c^3/(8*pi*G*M*k_B)" hbar=1.054571817e-34 \\
|
|
134
|
-
c=299792458 G=6.6743e-11 M=1.989e30 k_B=1.380649e-23
|
|
135
|
-
|
|
136
|
-
upt derive <target:dim> <var:dim> ... [--formula "<expr>"]
|
|
137
|
-
Derive YOUR OWN equation's dimensional form. <dim> is a named
|
|
138
|
-
dimension (length, time, mass, velocity, ...), a constant (hbar, c,
|
|
139
|
-
G, k_B, e), or explicit (L^3.M^-1.T^-2). With --formula, also verify
|
|
140
|
-
it and recover the dimensionless prefactor.
|
|
141
|
-
e.g. upt derive period:time length:length gravity:acceleration \\
|
|
142
|
-
--formula "2*pi*sqrt(length/gravity)"
|
|
143
|
-
|
|
144
|
-
upt
|
|
145
|
-
|
|
146
|
-
Run
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
38
|
+
const HELP_TEXT = `upt — Universal Physics Tensor bridge-inference CLI
|
|
39
|
+
|
|
40
|
+
Usage:
|
|
41
|
+
upt explain <quantity> [name=value | name] ...
|
|
42
|
+
Explain how the graph determines a quantity: the identifiability
|
|
43
|
+
verdict, recovered value, derivation chains, and whether the inputs
|
|
44
|
+
are dimensionally sufficient.
|
|
45
|
+
e.g. upt explain hawking-temperature mass=1.989e30
|
|
46
|
+
|
|
47
|
+
upt priority
|
|
48
|
+
Triage the speculative bridges by structural DECIDABILITY against
|
|
49
|
+
established physics (Tiers 1-3). NOT a credibility ranking.
|
|
50
|
+
|
|
51
|
+
upt audit
|
|
52
|
+
Try to derive every built-in bridge equation by dimensions: which
|
|
53
|
+
re-derive as a recognized monomial (with the prefactor recovered),
|
|
54
|
+
which are decoys, which are dimensionally open.
|
|
55
|
+
|
|
56
|
+
upt map [--source=catalog|canonical|both] [--format=text|mermaid|dot|svg]
|
|
57
|
+
[--proposed] [--out=PATH] [--equation "TARGET = EXPR"]
|
|
58
|
+
Map how the equations LINK: connected components (clusters) of the
|
|
59
|
+
graph by shared quantities, the anchored core, the link hubs, and
|
|
60
|
+
the isolated tail.
|
|
61
|
+
--format=mermaid|dot|svg emits the VISUAL map (quantities = nodes,
|
|
62
|
+
equations = junctions colored by status, one subgraph per component).
|
|
63
|
+
text (default) is the unchanged linkage printout. svg renders the dot
|
|
64
|
+
layout via the optional @viz-js/viz peer (npm i @viz-js/viz; or pipe
|
|
65
|
+
dot through "dot -Tsvg"). --proposed overlays the unadjudicated
|
|
66
|
+
identity-consequence relations (gray dashed). --out writes to a file
|
|
67
|
+
(default stdout).
|
|
68
|
+
--equation "TARGET = EXPR" injects YOUR OWN equation as a violet 'user'
|
|
69
|
+
node and reports where it lands (which cluster / shared quantities), with
|
|
70
|
+
a "did you mean?" hint for names that miss the catalog vocabulary. Use
|
|
71
|
+
underscores for multi-word quantities (photon_energy -> photon-energy).
|
|
72
|
+
e.g. upt map --equation "period = 2*pi*sqrt(length/gravity)"
|
|
73
|
+
|
|
74
|
+
upt candidates [--source=catalog|canonical|both]
|
|
75
|
+
Propose candidate cross-cluster links (quantities of the same
|
|
76
|
+
dimension in different clusters) for PHYSICIST REVIEW — a
|
|
77
|
+
coincidence-heavy surface, not discovered bridges.
|
|
78
|
+
|
|
79
|
+
upt predict
|
|
80
|
+
Project the catalog onto the (scale × force) regime plane and rank
|
|
81
|
+
the EMPTY regime cells as undiscovered-connection hypotheses
|
|
82
|
+
(triadic closure). Makes the namesake tensor operational. Review
|
|
83
|
+
surface, not discovered bridges.
|
|
84
|
+
|
|
85
|
+
upt discover [--source=catalog|canonical|both]
|
|
86
|
+
VET the link candidates through the inference suite: hypothesise
|
|
87
|
+
each identification a≡b and test whether it merges disconnected
|
|
88
|
+
physics, unlocks quantities, and stays numerically consistent.
|
|
89
|
+
Ranks promising / inert / contradictory.
|
|
90
|
+
--source=canonical runs the funnel on the standard-physics L-layer
|
|
91
|
+
ALONE (bridges excluded) — new candidates from established physics,
|
|
92
|
+
and a self-consistency check (expect 0 contradictory).
|
|
93
|
+
--derive emits, for each 'promising' identification, the ONE algebraic
|
|
94
|
+
relation it implies (monomial elimination) as an UNADJUDICATED, math-only
|
|
95
|
+
proposal — NOT a bridge (Part-VI §XXVII-B). Pairs with --source=canonical.
|
|
96
|
+
--max-orders=N tunes the magnitude-clash threshold (default 3); looser N
|
|
97
|
+
keeps more candidates 'promising', tighter N falsifies more as clashes.
|
|
98
|
+
--anchor=k=v[,k2=v2] overrides the numeric anchor (default mass=M_sun)
|
|
99
|
+
for the consistency/closure check. Both reshape the candidate pool that
|
|
100
|
+
--derive consumes.
|
|
101
|
+
|
|
102
|
+
upt connectors
|
|
103
|
+
Of the 20 ISOLATED bridges, which could connect to the anchored
|
|
104
|
+
core via a same-dimension identification? The structural frontier —
|
|
105
|
+
same-kind connectors are the motivated set for physicist review.
|
|
106
|
+
|
|
107
|
+
upt coverage
|
|
108
|
+
Audit the catalog's empirical grounding — which bridges are
|
|
109
|
+
data-confronted vs graph-computable vs encoded-only vs thin — to
|
|
110
|
+
target the physicist review. Fabricates nothing.
|
|
111
|
+
|
|
112
|
+
upt canonical
|
|
113
|
+
List the canonical-equation registry — the standard-physics L-layer
|
|
114
|
+
(textbook "answer key") with each entry's fidelity (L0/L1/L2),
|
|
115
|
+
domain, and bridge partners, plus the coverage gap.
|
|
116
|
+
|
|
117
|
+
upt recover
|
|
118
|
+
Validate bridges against standard physics: classify each bridge↔
|
|
119
|
+
canonical link as restates-canonical (F4 circularity — NOT a
|
|
120
|
+
discovery), recovers (undeclared structural match), or
|
|
121
|
+
dimensional-only.
|
|
122
|
+
|
|
123
|
+
upt symbolic [--simplify]
|
|
124
|
+
Compose bridges' SYMBOLIC (AST) forms, not just their numeric
|
|
125
|
+
evaluators (the Observable contract). Shows the CT-1 / CT-1b chains
|
|
126
|
+
composed by substitution, dimensionally validated and evaluable.
|
|
127
|
+
With --simplify, folds the composed AST via MathTS (k_B cancels),
|
|
128
|
+
re-validated dimensionally + numerically.
|
|
129
|
+
|
|
130
|
+
upt eval "<formula>" name=value ...
|
|
131
|
+
Evaluate YOUR OWN scalar formula (safe — arithmetic only). Knows
|
|
132
|
+
pi/tau and sqrt/exp/ln/sin/...; any other name must be supplied.
|
|
133
|
+
e.g. upt eval "hbar*c^3/(8*pi*G*M*k_B)" hbar=1.054571817e-34 \\
|
|
134
|
+
c=299792458 G=6.6743e-11 M=1.989e30 k_B=1.380649e-23
|
|
135
|
+
|
|
136
|
+
upt derive <target:dim> <var:dim> ... [--formula "<expr>"]
|
|
137
|
+
Derive YOUR OWN equation's dimensional form. <dim> is a named
|
|
138
|
+
dimension (length, time, mass, velocity, ...), a constant (hbar, c,
|
|
139
|
+
G, k_B, e), or explicit (L^3.M^-1.T^-2). With --formula, also verify
|
|
140
|
+
it and recover the dimensionless prefactor.
|
|
141
|
+
e.g. upt derive period:time length:length gravity:acceleration \\
|
|
142
|
+
--formula "2*pi*sqrt(length/gravity)"
|
|
143
|
+
|
|
144
|
+
upt confront [--bridge=be-XX] [--rigor=stringent|moderate|loose] [--frontier]
|
|
145
|
+
[--sensitivity]
|
|
146
|
+
Run the catalog's committed real-data confrontations (predicted vs
|
|
147
|
+
observed), each tagged with its RIGOR tier. --rigor filters to one tier
|
|
148
|
+
(the precision core, or the loose tail that needs better data); --frontier
|
|
149
|
+
ranks the σ-tests by margin to exclusion (tightest = most at-risk under new
|
|
150
|
+
data); --sensitivity ranks the prediction's input elasticities.
|
|
151
|
+
|
|
152
|
+
upt axes
|
|
153
|
+
Axis-discrimination audit — which tensor classification axes GATE the
|
|
154
|
+
discovery funnel (an axis gates only when it MEASURABLY fires). Reproduces
|
|
155
|
+
the rank-7 result (topology/statistics/symmetry classify but do not gate).
|
|
156
|
+
|
|
157
|
+
upt evaluate <be-NN> key=value ...
|
|
158
|
+
Numerically evaluate a closed-form / spacetime bridge (BE-51/52/55..65).
|
|
159
|
+
With no bridge id, lists the evaluable bridges and their input keys.
|
|
160
|
+
e.g. upt evaluate be-63 mu_e=2 → Chandrasekhar mass ~1.44 M_sun
|
|
161
|
+
|
|
162
|
+
upt ground <quantityA> <quantityB>
|
|
163
|
+
The epistemic-grounding ledger for one discovery candidate a=b: which
|
|
164
|
+
falsifiers passed, which abstained (gaps), and the honest ceiling.
|
|
165
|
+
|
|
166
|
+
upt help Show this message.
|
|
167
|
+
|
|
168
|
+
Run with no arguments for a short demo.
|
|
169
|
+
|
|
170
|
+
upt version Show the installed CLI/package version.
|
|
171
|
+
--json Global flag: emit a machine-readable JSON envelope instead of
|
|
150
172
|
text (where the command supports it).`;
|
|
151
173
|
/**
|
|
152
174
|
* Verb-first CLI entry point. `argv` is the command + its arguments (NOT
|