@nac3/forge-cli 1.20.2 → 1.21.1
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/commands/doctor.d.ts +69 -7
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +694 -329
- package/dist/commands/doctor.js.map +1 -1
- package/dist/core/brain_config.d.ts +11 -0
- package/dist/core/brain_config.d.ts.map +1 -1
- package/dist/core/brain_config.js +21 -5
- package/dist/core/brain_config.js.map +1 -1
- package/dist/core/provider_keys.d.ts +39 -0
- package/dist/core/provider_keys.d.ts.map +1 -1
- package/dist/core/provider_keys.js +54 -0
- package/dist/core/provider_keys.js.map +1 -1
- package/dist/core/whats_new.d.ts.map +1 -1
- package/dist/core/whats_new.js +27 -0
- package/dist/core/whats_new.js.map +1 -1
- package/dist/license/auto_sync.d.ts.map +1 -1
- package/dist/license/auto_sync.js +14 -0
- package/dist/license/auto_sync.js.map +1 -1
- package/dist/license/index.d.ts +15 -0
- package/dist/license/index.d.ts.map +1 -1
- package/dist/license/index.js +41 -0
- package/dist/license/index.js.map +1 -1
- package/dist/relay/board_snapshot.d.ts +14 -0
- package/dist/relay/board_snapshot.d.ts.map +1 -1
- package/dist/relay/board_snapshot.js +82 -2
- package/dist/relay/board_snapshot.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/voice/registry.d.ts +24 -0
- package/dist/voice/registry.d.ts.map +1 -1
- package/dist/voice/registry.js +13 -0
- package/dist/voice/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,22 +1,84 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `yf doctor` -- environment + project health check.
|
|
3
|
-
* what's installed, what's missing, what's misconfigured.
|
|
2
|
+
* `yf doctor` -- environment + project health check.
|
|
4
3
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* THE HONESTY CONTRACT (PND-184, 2026-10-26)
|
|
5
|
+
* ------------------------------------------
|
|
6
|
+
* A check may only assert what it verified, and it must say what it
|
|
7
|
+
* looked at. Every check answers four questions:
|
|
8
|
+
*
|
|
9
|
+
* P1 does it read the source that GOVERNS at runtime -- the file
|
|
10
|
+
* the real component reads -- rather than an adjacent or
|
|
11
|
+
* inherited field?
|
|
12
|
+
* P2 can it go green without having been able to look? (no: that
|
|
13
|
+
* is the false-green half of the defect)
|
|
14
|
+
* P3 can it go red about something the real component does not
|
|
15
|
+
* use? (no: that is the false-red half -- F-01)
|
|
16
|
+
* P4 when it cannot look, does it SAY SO, or does it collapse
|
|
17
|
+
* "could not verify" into one of the other two?
|
|
18
|
+
*
|
|
19
|
+
* Hence `Check.status` is a THIRD state (`ok` | `fail` | `unknown`),
|
|
20
|
+
* not a boolean, and every check carries `source` (what it read),
|
|
21
|
+
* plus `expected` / `found` / `conflict` when they add information.
|
|
22
|
+
*
|
|
23
|
+
* Why this matters enough to restructure the command: the Urazuke
|
|
24
|
+
* method documented this same defect twice in its own history -- a
|
|
25
|
+
* publish check that reported forty failed attempts over thirteen
|
|
26
|
+
* minutes when the publish had in fact succeeded, because it collapsed
|
|
27
|
+
* two outcomes into one message; and a guard that claimed a server had
|
|
28
|
+
* something configured when all it had verified was that a file
|
|
29
|
+
* existed in a repository. `yf doctor` is the face Forge shows when
|
|
30
|
+
* something is wrong: it is the last place that can afford a green it
|
|
31
|
+
* did not earn.
|
|
32
|
+
*
|
|
33
|
+
* SIDE EFFECTS: none on the config dir. A diagnostic command must not
|
|
34
|
+
* change the machine it is diagnosing (PND-188). It does not start the
|
|
35
|
+
* trial, does not create the vault, does not seed voice-config.json.
|
|
36
|
+
*
|
|
37
|
+
* ASCII-only.
|
|
8
38
|
*/
|
|
9
39
|
import type { Command } from 'commander';
|
|
10
40
|
export interface DoctorOptions {
|
|
11
41
|
json?: boolean;
|
|
42
|
+
verbose?: boolean;
|
|
12
43
|
}
|
|
13
|
-
|
|
44
|
+
/** `ok` = verified good. `fail` = verified bad. `unknown` = could NOT
|
|
45
|
+
* verify -- a third outcome, never a synonym for either other one. */
|
|
46
|
+
export type CheckStatus = 'ok' | 'fail' | 'unknown';
|
|
47
|
+
export interface Check {
|
|
48
|
+
/** Stable machine id. Scripts and tests match on this, never on
|
|
49
|
+
* `name` -- the label is prose and may be reworded. */
|
|
50
|
+
id: string;
|
|
14
51
|
name: string;
|
|
52
|
+
status: CheckStatus;
|
|
53
|
+
/** Back-compat for existing consumers: true only when status==='ok'.
|
|
54
|
+
* An `unknown` is NOT ok -- it is also not a failure, which is why
|
|
55
|
+
* the summary counts the three separately. */
|
|
15
56
|
ok: boolean;
|
|
57
|
+
/** What this check actually looked at: a path, a module specifier,
|
|
58
|
+
* a URL, an env var. Mandatory. */
|
|
59
|
+
source: string;
|
|
60
|
+
/** What it expected to find there. */
|
|
61
|
+
expected?: string;
|
|
62
|
+
/** What it found instead. */
|
|
63
|
+
found?: string;
|
|
16
64
|
detail: string;
|
|
17
65
|
hint?: string;
|
|
66
|
+
/** Another source that says something different, named explicitly so
|
|
67
|
+
* the user is not sent to reconfigure the one that already works. */
|
|
68
|
+
conflict?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface DoctorEnv {
|
|
71
|
+
/** Config dir to inspect. Defaults to configDir(), which honours
|
|
72
|
+
* YF_CONFIG_DIR (PND-190: the brain check used to resolve the home
|
|
73
|
+
* by hand and read a different directory than the keys layer). */
|
|
74
|
+
configDir?: string;
|
|
75
|
+
cwd?: string;
|
|
76
|
+
fetchImpl?: typeof fetch;
|
|
77
|
+
nowMs?: () => number;
|
|
78
|
+
timeoutMs?: number;
|
|
18
79
|
}
|
|
19
80
|
export declare function registerDoctorCommand(program: Command): void;
|
|
81
|
+
export declare function runDoctorChecks(env?: DoctorEnv): Promise<Check[]>;
|
|
20
82
|
/** PND-031 -- 3 HITO 4 doctor probes. Extracted so tests can
|
|
21
83
|
* exercise them with injected fetch + tmp config dir without
|
|
22
84
|
* spinning the whole doctor runner. */
|
|
@@ -24,9 +86,9 @@ export declare function runHito4DoctorChecks(checks: Check[], opts?: {
|
|
|
24
86
|
baseUrl?: string;
|
|
25
87
|
fetchImpl?: typeof fetch;
|
|
26
88
|
timeoutMs?: number;
|
|
89
|
+
configDir?: string;
|
|
27
90
|
/** When set, override license.json staleness comparison.
|
|
28
91
|
* Defaults to `Date.now()`. */
|
|
29
92
|
nowMs?: () => number;
|
|
30
93
|
}): Promise<void>;
|
|
31
|
-
export {};
|
|
32
94
|
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;uEACuE;AACvE,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,KAAK;IACpB;4DACwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB;;mDAE+C;IAC/C,EAAE,EAAE,OAAO,CAAC;IACZ;wCACoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;0EACsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB;;uEAEmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiBD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2D5D;AAED,wBAAsB,eAAe,CAAC,GAAG,GAAE,SAAc,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA+B3E;AAonBD;;wCAEwC;AACxC,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,KAAK,EAAE,EACf,IAAI,GAAE;IACJ,OAAO,CAAC,EAAK,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,OAAO,KAAK,CAAC;IAC1B,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB;oCACgC;IAChC,KAAK,CAAC,EAAO,MAAM,MAAM,CAAC;CACtB,GACL,OAAO,CAAC,IAAI,CAAC,CAsHf"}
|