@wootsup/yt-builder-mcp 1.6.0 → 1.6.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.
Files changed (38) hide show
  1. package/bin/yt-builder-mcp.js +72 -0
  2. package/dist/diagnostics/ca-reexec.d.ts +41 -0
  3. package/dist/diagnostics/ca-reexec.d.ts.map +1 -0
  4. package/dist/diagnostics/ca-reexec.js +91 -0
  5. package/dist/diagnostics/ca-reexec.js.map +1 -0
  6. package/dist/diagnostics/ca-trust.d.ts +11 -0
  7. package/dist/diagnostics/ca-trust.d.ts.map +1 -1
  8. package/dist/diagnostics/ca-trust.js +14 -1
  9. package/dist/diagnostics/ca-trust.js.map +1 -1
  10. package/dist/diagnostics/diagnose-network-error.d.ts +11 -0
  11. package/dist/diagnostics/diagnose-network-error.d.ts.map +1 -1
  12. package/dist/diagnostics/diagnose-network-error.js +18 -3
  13. package/dist/diagnostics/diagnose-network-error.js.map +1 -1
  14. package/dist/setup-wizard-handshake.d.ts.map +1 -1
  15. package/dist/setup-wizard-handshake.js +17 -4
  16. package/dist/setup-wizard-handshake.js.map +1 -1
  17. package/dist/setup-wizard-types.d.ts +13 -0
  18. package/dist/setup-wizard-types.d.ts.map +1 -1
  19. package/dist/setup-wizard.d.ts.map +1 -1
  20. package/dist/setup-wizard.js +74 -0
  21. package/dist/setup-wizard.js.map +1 -1
  22. package/dist/tools/format/pages-format.d.ts +9 -5
  23. package/dist/tools/format/pages-format.d.ts.map +1 -1
  24. package/dist/tools/format/pages-format.js +22 -14
  25. package/dist/tools/format/pages-format.js.map +1 -1
  26. package/dist/tools/pages/builders.d.ts.map +1 -1
  27. package/dist/tools/pages/builders.js +24 -11
  28. package/dist/tools/pages/builders.js.map +1 -1
  29. package/dist/tools/pages/handlers-read.d.ts +5 -2
  30. package/dist/tools/pages/handlers-read.d.ts.map +1 -1
  31. package/dist/tools/pages/handlers-read.js +29 -7
  32. package/dist/tools/pages/handlers-read.js.map +1 -1
  33. package/dist/tools/pages/schemas.d.ts +14 -1
  34. package/dist/tools/pages/schemas.d.ts.map +1 -1
  35. package/dist/tools/pages/schemas.js +28 -5
  36. package/dist/tools/pages/schemas.js.map +1 -1
  37. package/manifest.json +1 -1
  38. package/package.json +1 -1
@@ -25,15 +25,39 @@
25
25
  * YTB_MCP_TEST_MODE=1 forces the 'server' route so the smoke-test probe
26
26
  * always reaches `dist/index.js` even when run from a TTY.
27
27
  *
28
+ * RUNTIME CA SELF-HEAL (server branch only): corporate-CA trust used to depend
29
+ * ENTIRELY on `NODE_OPTIONS=--use-system-ca` being in the client config env
30
+ * before Node booted. When that value got clobbered (Glöckle v1.6) Node fell
31
+ * back to its bundled Mozilla CAs, could not build the corporate TLS-inspection
32
+ * chain, and `/mcp` hung for 30s. To stop depending on the config carrying the
33
+ * flag, the server SELF-HEALS: in the 'server' branch, BEFORE importing
34
+ * `dist/index.js`, if this Node supports `--use-system-ca` (≥ 22.15.0) AND the
35
+ * flag is not already active AND a loop-guard sentinel is not set, we re-exec
36
+ * the SAME bin with `node --use-system-ca …`, inherit stdio (so the MCP stdio
37
+ * JSON-RPC transport is byte-transparent — the parent is a thin passthrough),
38
+ * forward the child's exit code, and do NOT continue in the parent. The sentinel
39
+ * (set on the child env) + the already-active check PREVENT an infinite re-exec
40
+ * loop. The whole step is wrapped in try/catch: ANY failure falls through to a
41
+ * normal in-process start — a re-exec failure must NEVER break startup. The
42
+ * decision is the pure, unit-tested `decideCaReexec()`. The re-exec is SKIPPED
43
+ * under YTB_MCP_TEST_MODE=1 and never runs on the 'cli'/'hint' routes.
44
+ *
28
45
  * @license MIT
29
46
  */
30
47
  import { argv, stdin, stderr, exit } from 'node:process';
48
+ import { spawnSync } from 'node:child_process';
49
+ import { fileURLToPath } from 'node:url';
31
50
 
32
51
  import {
33
52
  decideInvocation,
34
53
  isKnownSubcommand,
35
54
  BARE_INVOCATION_HINT,
36
55
  } from '../dist/cli/invocation-decision.js';
56
+ import {
57
+ decideCaReexec,
58
+ CA_REEXEC_SENTINEL,
59
+ USE_SYSTEM_CA_FLAG,
60
+ } from '../dist/diagnostics/ca-reexec.js';
37
61
 
38
62
  const args = argv.slice(2);
39
63
  const subcommand = args[0];
@@ -67,6 +91,54 @@ if (action === 'cli') {
67
91
  } else {
68
92
  // 'server' — stdin is NOT a TTY (an AI client piping JSON-RPC → real
69
93
  // MCP stdio server) or YTB_MCP_TEST_MODE=1 forced this route.
94
+
95
+ // RUNTIME CA SELF-HEAL: re-exec with `--use-system-ca` when needed so
96
+ // corporate TLS-inspection trust no longer depends on the client config
97
+ // carrying NODE_OPTIONS. SKIPPED under test mode (the smoke test must reach
98
+ // dist/index.js without a fork). Defensive: ANY failure falls through to a
99
+ // normal in-process start — a re-exec failure must never break startup.
100
+ if (process.env.YTB_MCP_TEST_MODE !== '1') {
101
+ try {
102
+ const shouldReexec = decideCaReexec({
103
+ nodeVersion: process.version,
104
+ execArgv: process.execArgv,
105
+ nodeOptions: process.env.NODE_OPTIONS,
106
+ sentinel: process.env[CA_REEXEC_SENTINEL],
107
+ });
108
+ if (shouldReexec) {
109
+ const self = fileURLToPath(import.meta.url);
110
+ // stdio:'inherit' → the child owns the MCP stdio JSON-RPC
111
+ // transport directly; the parent is a transparent passthrough
112
+ // that just forwards the child's exit code.
113
+ const child = spawnSync(
114
+ process.execPath,
115
+ [USE_SYSTEM_CA_FLAG, self, ...args],
116
+ {
117
+ stdio: 'inherit',
118
+ env: { ...process.env, [CA_REEXEC_SENTINEL]: '1' },
119
+ },
120
+ );
121
+ if (child.error) {
122
+ // Spawn itself failed (e.g. EACCES) — fall through to an
123
+ // in-process start rather than exiting on a heal failure.
124
+ stderr.write(
125
+ `yt-builder-mcp: CA self-heal re-exec failed (${child.error.message}); ` +
126
+ 'starting in-process.\n',
127
+ );
128
+ } else {
129
+ // The child ran the server to completion; mirror its exit.
130
+ // signal → 1 (no clean code), else the child's code (or 0).
131
+ exit(child.signal ? 1 : (child.status ?? 0));
132
+ }
133
+ }
134
+ } catch (err) {
135
+ const msg = err instanceof Error ? err.message : String(err);
136
+ stderr.write(
137
+ `yt-builder-mcp: CA self-heal skipped (${msg}); starting in-process.\n`,
138
+ );
139
+ }
140
+ }
141
+
70
142
  // `dist/index.js` branches on the env var: test-mode prints the tool
71
143
  // list to stderr and exits 0; otherwise it starts the stdio server.
72
144
  // Importing here does NOT itself force stdio mode.
@@ -0,0 +1,41 @@
1
+ /** Env var name the parent stamps on the re-exec'd child to break the loop. */
2
+ export declare const CA_REEXEC_SENTINEL = "YTB_MCP_CA_REEXEC";
3
+ /** The Node flag we re-exec with — adds the OS trust store, never disables TLS. */
4
+ export declare const USE_SYSTEM_CA_FLAG = "--use-system-ca";
5
+ /**
6
+ * Is `--use-system-ca` already active for THIS process — either passed on the
7
+ * command line (surfaces in `process.execArgv`) or carried in `NODE_OPTIONS`?
8
+ *
9
+ * Both inputs are matched as whitespace-delimited tokens so a longer flag that
10
+ * merely CONTAINS the substring (none exists today, but defensively) cannot
11
+ * produce a false positive. `execArgv` entries are already individual tokens;
12
+ * `NODE_OPTIONS` is a single space-separated string, so it is split first.
13
+ *
14
+ * @param execArgv `process.execArgv` (Node-level flags, one per element).
15
+ * @param nodeOptions the `NODE_OPTIONS` env value (or undefined when unset).
16
+ */
17
+ export declare function isSystemCaActive(execArgv: readonly string[], nodeOptions: string | undefined): boolean;
18
+ /** Inputs to {@link decideCaReexec} — every signal is passed in (no globals). */
19
+ export interface CaReexecInputs {
20
+ /** `process.version`, e.g. "v22.17.0". */
21
+ readonly nodeVersion: string;
22
+ /** `process.execArgv` — Node flags this process was launched with. */
23
+ readonly execArgv: readonly string[];
24
+ /** The `NODE_OPTIONS` env value, or undefined when unset. */
25
+ readonly nodeOptions: string | undefined;
26
+ /** The loop-guard sentinel env value ({@link CA_REEXEC_SENTINEL}), or undefined. */
27
+ readonly sentinel: string | undefined;
28
+ }
29
+ /**
30
+ * Should the server bin re-exec itself WITH `--use-system-ca`?
31
+ *
32
+ * Returns `true` iff ALL hold:
33
+ * 1. this Node can read the OS trust store ({@link supportsSystemCa}: ≥ 22.15.0),
34
+ * 2. `--use-system-ca` is NOT already active ({@link isSystemCaActive}),
35
+ * 3. the loop-guard sentinel is NOT set.
36
+ *
37
+ * Any of: Node too old, flag already active, or sentinel set → `false`
38
+ * (proceed in-process). Pure: depends only on its arguments.
39
+ */
40
+ export declare function decideCaReexec(inputs: CaReexecInputs): boolean;
41
+ //# sourceMappingURL=ca-reexec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-reexec.d.ts","sourceRoot":"","sources":["../../src/diagnostics/ca-reexec.ts"],"names":[],"mappings":"AAoCA,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AAEtD,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC5B,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,OAAO,CAaT;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAe9D"}
@@ -0,0 +1,91 @@
1
+ // packages/mcp/src/diagnostics/ca-reexec.ts
2
+ /**
3
+ * Pure decision core for the runtime `--use-system-ca` SELF-HEAL re-exec in
4
+ * `bin/yt-builder-mcp.js` (server branch only).
5
+ *
6
+ * THE PROBLEM IT SOLVES — env-clobber regression (Glöckle v1.6, 2026-06):
7
+ * corporate-CA trust depended ENTIRELY on `NODE_OPTIONS=--use-system-ca` being
8
+ * present in the MCP client config env BEFORE Node booted. On the Glöckle
9
+ * install that value got wiped, so Node fell back to its bundled Mozilla CA set,
10
+ * could not build the corporate TLS-inspection chain, and the `/mcp` handshake
11
+ * hung for 30s. `mergeServerEnv` (clients/index.ts) is correct; the robust fix
12
+ * is to STOP depending on the config carrying the flag and have the SERVER
13
+ * self-heal at launch by re-exec'ing itself WITH `--use-system-ca`.
14
+ *
15
+ * WHY `--use-system-ca` IS SAFE TO APPLY UNCONDITIONALLY (on a supporting Node):
16
+ * the flag only ADDS the OS trust store (Windows CryptoAPI / macOS Keychain) to
17
+ * Node's bundled Mozilla CAs. It never DISABLES TLS verification. For a
18
+ * non-corporate user it is a harmless superset; for a corporate user it is the
19
+ * whole fix.
20
+ *
21
+ * THE LOOP-GUARD (critical): a re-exec that itself re-execs is an infinite fork
22
+ * bomb. {@link decideCaReexec} returns `false` whenever the flag is ALREADY
23
+ * active (in `process.execArgv` OR the `NODE_OPTIONS` env) OR a sentinel env var
24
+ * (set by the parent on the child it spawns) is present. The shim sets the
25
+ * sentinel on the child, so the child's own `decideCaReexec` returns `false` and
26
+ * proceeds in-process.
27
+ *
28
+ * The bin shim is a thin, un-typed JS file; the decision logic lives here, in a
29
+ * typed + unit-tested module, exactly like `cli/invocation-decision.ts`.
30
+ *
31
+ * @license MIT
32
+ */
33
+ import { supportsSystemCa } from './ca-trust.js';
34
+ /** Env var name the parent stamps on the re-exec'd child to break the loop. */
35
+ export const CA_REEXEC_SENTINEL = 'YTB_MCP_CA_REEXEC';
36
+ /** The Node flag we re-exec with — adds the OS trust store, never disables TLS. */
37
+ export const USE_SYSTEM_CA_FLAG = '--use-system-ca';
38
+ /**
39
+ * Is `--use-system-ca` already active for THIS process — either passed on the
40
+ * command line (surfaces in `process.execArgv`) or carried in `NODE_OPTIONS`?
41
+ *
42
+ * Both inputs are matched as whitespace-delimited tokens so a longer flag that
43
+ * merely CONTAINS the substring (none exists today, but defensively) cannot
44
+ * produce a false positive. `execArgv` entries are already individual tokens;
45
+ * `NODE_OPTIONS` is a single space-separated string, so it is split first.
46
+ *
47
+ * @param execArgv `process.execArgv` (Node-level flags, one per element).
48
+ * @param nodeOptions the `NODE_OPTIONS` env value (or undefined when unset).
49
+ */
50
+ export function isSystemCaActive(execArgv, nodeOptions) {
51
+ if (execArgv.includes(USE_SYSTEM_CA_FLAG)) {
52
+ return true;
53
+ }
54
+ if (typeof nodeOptions === 'string') {
55
+ // NODE_OPTIONS is a space-separated flag list; tokenise before matching
56
+ // so we compare whole flags, never a substring of one.
57
+ const tokens = nodeOptions.split(/\s+/).filter((t) => t.length > 0);
58
+ if (tokens.includes(USE_SYSTEM_CA_FLAG)) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ /**
65
+ * Should the server bin re-exec itself WITH `--use-system-ca`?
66
+ *
67
+ * Returns `true` iff ALL hold:
68
+ * 1. this Node can read the OS trust store ({@link supportsSystemCa}: ≥ 22.15.0),
69
+ * 2. `--use-system-ca` is NOT already active ({@link isSystemCaActive}),
70
+ * 3. the loop-guard sentinel is NOT set.
71
+ *
72
+ * Any of: Node too old, flag already active, or sentinel set → `false`
73
+ * (proceed in-process). Pure: depends only on its arguments.
74
+ */
75
+ export function decideCaReexec(inputs) {
76
+ const { nodeVersion, execArgv, nodeOptions, sentinel } = inputs;
77
+ // Loop-guard: a child we already re-exec'd carries the sentinel. Never re-exec it.
78
+ if (sentinel !== undefined && sentinel !== '') {
79
+ return false;
80
+ }
81
+ // Node too old to read the OS trust store — re-exec would be a no-op flag.
82
+ if (!supportsSystemCa(nodeVersion)) {
83
+ return false;
84
+ }
85
+ // Already running with the flag (execArgv or NODE_OPTIONS) — nothing to heal.
86
+ if (isSystemCaActive(execArgv, nodeOptions)) {
87
+ return false;
88
+ }
89
+ return true;
90
+ }
91
+ //# sourceMappingURL=ca-reexec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ca-reexec.js","sourceRoot":"","sources":["../../src/diagnostics/ca-reexec.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAEtD,mFAAmF;AACnF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAC5B,QAA2B,EAC3B,WAA+B;IAE/B,IAAI,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QAClC,wEAAwE;QACxE,uDAAuD;QACvD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAcD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAAC,MAAsB;IACjD,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAChE,mFAAmF;IACnF,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,2EAA2E;IAC3E,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,8EAA8E;IAC9E,IAAI,gBAAgB,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -5,6 +5,17 @@
5
5
  * same walker + code set as {@link diagnoseNetworkError}.
6
6
  */
7
7
  export declare function isCaTrustError(err: unknown): boolean;
8
+ /**
9
+ * True when `err` (or anything in its `.cause` / `AggregateError.errors`
10
+ * chain) carries a connection/handshake timeout code — the OPAQUE form a
11
+ * corporate TLS-inspection proxy takes when the cert chain can't be built and
12
+ * the handshake hangs instead of failing with a clean CA-trust code. Pure;
13
+ * reuses the same walker + canonical {@link TIMEOUT_CODES} set as
14
+ * {@link diagnoseNetworkError} (no duplicate classifier). The wizard uses this
15
+ * to attempt the OS-trust-store (`--use-system-ca`) recovery on a timeout —
16
+ * safe because `--use-system-ca` only ADDS the OS store and never disables TLS.
17
+ */
18
+ export declare function isTimeoutError(err: unknown): boolean;
8
19
  /** Node version that first reads the OS trust store via `--use-system-ca`. */
9
20
  export declare const SYSTEM_CA_NODE_FLOOR: readonly [number, number, number];
10
21
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ca-trust.d.ts","sourceRoot":"","sources":["../../src/diagnostics/ca-trust.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAe,CAAC;AAQnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,GAAE,MAAwB,GAAG,OAAO,CAS/E"}
1
+ {"version":3,"file":"ca-trust.d.ts","sourceRoot":"","sources":["../../src/diagnostics/ca-trust.ts"],"names":[],"mappings":"AAqBA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEpD;AAED,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAe,CAAC;AAQnF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,GAAE,MAAwB,GAAG,OAAO,CAS/E"}
@@ -15,7 +15,7 @@
15
15
  * 22.15.0. Below that floor, a corporate CA must be supplied as a `.pem`
16
16
  * via NODE_EXTRA_CA_CERTS. Neither path ever disables TLS verification.
17
17
  */
18
- import { CA_TRUST_CODES, collectCodes } from './diagnose-network-error.js';
18
+ import { CA_TRUST_CODES, collectCodes, TIMEOUT_CODES } from './diagnose-network-error.js';
19
19
  /**
20
20
  * True when `err` (or anything in its `.cause` / `AggregateError.errors`
21
21
  * chain) carries a TLS chain-of-trust failure code — the signature of a
@@ -25,6 +25,19 @@ import { CA_TRUST_CODES, collectCodes } from './diagnose-network-error.js';
25
25
  export function isCaTrustError(err) {
26
26
  return collectCodes(err).some((c) => CA_TRUST_CODES.has(c));
27
27
  }
28
+ /**
29
+ * True when `err` (or anything in its `.cause` / `AggregateError.errors`
30
+ * chain) carries a connection/handshake timeout code — the OPAQUE form a
31
+ * corporate TLS-inspection proxy takes when the cert chain can't be built and
32
+ * the handshake hangs instead of failing with a clean CA-trust code. Pure;
33
+ * reuses the same walker + canonical {@link TIMEOUT_CODES} set as
34
+ * {@link diagnoseNetworkError} (no duplicate classifier). The wizard uses this
35
+ * to attempt the OS-trust-store (`--use-system-ca`) recovery on a timeout —
36
+ * safe because `--use-system-ca` only ADDS the OS store and never disables TLS.
37
+ */
38
+ export function isTimeoutError(err) {
39
+ return collectCodes(err).some((c) => TIMEOUT_CODES.has(c));
40
+ }
28
41
  /** Node version that first reads the OS trust store via `--use-system-ca`. */
29
42
  export const SYSTEM_CA_NODE_FLOOR = [22, 15, 0];
30
43
  function parseNodeVersion(v) {
@@ -1 +1 @@
1
- {"version":3,"file":"ca-trust.js","sourceRoot":"","sources":["../../src/diagnostics/ca-trust.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACvC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF,SAAS,gBAAgB,CAAC,CAAS;IAC/B,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,OAAO,CAAC,OAAO;IAClE,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,6BAA6B;AAC9C,CAAC"}
1
+ {"version":3,"file":"ca-trust.js","sourceRoot":"","sources":["../../src/diagnostics/ca-trust.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAE3C;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1F;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACvC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,GAAY;IACvC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,MAAM,CAAC,MAAM,oBAAoB,GAAsC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAEnF,SAAS,gBAAgB,CAAC,CAAS;IAC/B,MAAM,CAAC,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB,OAAO,CAAC,OAAO;IAClE,MAAM,CAAC,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC7B,MAAM,KAAK,GAAG,oBAAoB,CAAC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE;YAAE,OAAO,KAAK,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,6BAA6B;AAC9C,CAAC"}
@@ -22,6 +22,17 @@ export interface NetworkDiagnosis {
22
22
  * definition of "this is a TLS-inspection CA problem" in the package.
23
23
  */
24
24
  export declare const CA_TRUST_CODES: ReadonlySet<string>;
25
+ /**
26
+ * Connection/handshake timeout signatures.
27
+ *
28
+ * Exported so the wizard's timeout-detection path (`isTimeoutError`) classifies
29
+ * an outbound failure against the SAME canonical set — there is exactly one
30
+ * definition of "this connection timed out" in the package. A TLS-inspecting
31
+ * corporate proxy whose root CA can't be built can manifest as one of these
32
+ * opaque timeouts (the handshake hangs) rather than a clean CA-trust code, which
33
+ * is why the wizard now attempts `--use-system-ca` on a timeout too.
34
+ */
35
+ export declare const TIMEOUT_CODES: ReadonlySet<string>;
25
36
  /**
26
37
  * Walk `err`, its `.cause` chain, and any `AggregateError.errors`, collecting
27
38
  * every `.code` string. A Node global-fetch failure (`TypeError: fetch failed`)
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose-network-error.d.ts","sourceRoot":"","sources":["../../src/diagnostics/diagnose-network-error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO7C,CAAC;AAmCH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAa9D;AAOD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,gBAAgB,GAAG,IAAI,CAqFzB"}
1
+ {"version":3,"file":"diagnose-network-error.d.ts","sourceRoot":"","sources":["../../src/diagnostics/diagnose-network-error.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC7B,6FAA6F;IAC7F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,iFAAiF;IACjF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,CAO7C,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAK5C,CAAC;AA4BH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAa9D;AAOD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAChC,GAAG,EAAE,OAAO,EACZ,GAAG,GAAE,MAAM,CAAC,UAAwB,GACrC,gBAAgB,GAAG,IAAI,CA2FzB"}
@@ -14,7 +14,17 @@ export const CA_TRUST_CODES = new Set([
14
14
  'SELF_SIGNED_CERT',
15
15
  'CERT_UNTRUSTED',
16
16
  ]);
17
- const TIMEOUT_CODES = new Set([
17
+ /**
18
+ * Connection/handshake timeout signatures.
19
+ *
20
+ * Exported so the wizard's timeout-detection path (`isTimeoutError`) classifies
21
+ * an outbound failure against the SAME canonical set — there is exactly one
22
+ * definition of "this connection timed out" in the package. A TLS-inspecting
23
+ * corporate proxy whose root CA can't be built can manifest as one of these
24
+ * opaque timeouts (the handshake hangs) rather than a clean CA-trust code, which
25
+ * is why the wizard now attempts `--use-system-ca` on a timeout too.
26
+ */
27
+ export const TIMEOUT_CODES = new Set([
18
28
  'UND_ERR_CONNECT_TIMEOUT',
19
29
  'ETIMEDOUT',
20
30
  'UND_ERR_HEADERS_TIMEOUT',
@@ -133,16 +143,21 @@ export function diagnoseNetworkError(err, env = process.env) {
133
143
  }
134
144
  const timeoutCode = has(TIMEOUT_CODES);
135
145
  if (timeoutCode !== null) {
146
+ // A TLS-inspecting corporate CA can hang the handshake into an opaque
147
+ // timeout (not a clean cert code), so the CA path is named alongside the
148
+ // proxy/VPN guidance — setup now retries with --use-system-ca on a
149
+ // timeout automatically; if it still fails, pin the corporate root CA.
150
+ const caHint = ' If your network uses TLS inspection / a self-signed corporate CA, setup now retries with --use-system-ca automatically (Node ≥ 22.15); if it still fails, re-run setup with `--ca <corp-root-ca.pem>`. Never disable TLS verification.';
136
151
  return proxy !== null
137
152
  ? {
138
153
  code: timeoutCode,
139
154
  summary: `The connection through the proxy (${proxy}) timed out.`,
140
- fix: `Confirm HTTPS_PROXY=${proxy} can reach the site, and set NO_PROXY for internal hosts. Run \`… doctor\`.`,
155
+ fix: `Confirm HTTPS_PROXY=${proxy} can reach the site, and set NO_PROXY for internal hosts. Run \`… doctor\`.${caHint}`,
141
156
  }
142
157
  : {
143
158
  code: timeoutCode,
144
159
  summary: 'The connection timed out.',
145
- fix: 'The site may be internal (VPN needed) or require a proxy (set HTTPS_PROXY). Run `npx -y @wootsup/yt-builder-mcp doctor` to diagnose.',
160
+ fix: `The site may be internal (VPN needed) or require a proxy (set HTTPS_PROXY). Run \`npx -y @wootsup/yt-builder-mcp doctor\` to diagnose.${caHint}`,
146
161
  };
147
162
  }
148
163
  const dnsCode = has(DNS_CODES);
@@ -1 +1 @@
1
- {"version":3,"file":"diagnose-network-error.js","sourceRoot":"","sources":["../../src/diagnostics/diagnose-network-error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnose-network-error.js","sourceRoot":"","sources":["../../src/diagnostics/diagnose-network-error.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-wizard-handshake.d.ts","sourceRoot":"","sources":["../src/setup-wizard-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,yBAAyB,CAAC;AAgCjC,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAe5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CA4B9B;AAED,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,eAAe,CAAC,CAgB1B"}
1
+ {"version":3,"file":"setup-wizard-handshake.d.ts","sourceRoot":"","sources":["../src/setup-wizard-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACR,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACtB,MAAM,yBAAyB,CAAC;AAgCjC,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,iBAAiB,CAAC,CAuB5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACtC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,mBAAmB,CAAC,CA4B9B;AAED,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,OAAO,KAAK,EACxB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,eAAe,CAAC,CAkB1B;AAED,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED,wBAAsB,gBAAgB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,eAAe,CAAC,CAgB1B"}
@@ -7,7 +7,7 @@
7
7
  * @license MIT
8
8
  */
9
9
  import { RestClient } from './client.js';
10
- import { isCaTrustError } from './diagnostics/ca-trust.js';
10
+ import { isCaTrustError, isTimeoutError } from './diagnostics/ca-trust.js';
11
11
  import { diagnoseNetworkError } from './diagnostics/diagnose-network-error.js';
12
12
  // Placeholder Bearer used only for the unauthenticated /health probe;
13
13
  // constructed dynamically so the secret-grep-gate doesn't flag the
@@ -51,8 +51,16 @@ export async function defaultProbeHealth(wpUrl, fetchImpl, extraHeaders) {
51
51
  }
52
52
  catch (e) {
53
53
  // Classify the raw error BEFORE stringifying so the wizard can offer
54
- // the corporate-CA prompt (G-D #6) on a TLS chain-of-trust failure.
55
- return { ok: false, error: describeProbeError(e), ...(isCaTrustError(e) ? { caTrust: true } : {}) };
54
+ // the corporate-CA prompt (G-D #6) on a TLS chain-of-trust failure, OR
55
+ // auto-attempt --use-system-ca on an opaque timeout (a TLS-inspecting
56
+ // proxy whose CA chain can't be built often hangs into a 30s timeout
57
+ // rather than a clean cert code).
58
+ return {
59
+ ok: false,
60
+ error: describeProbeError(e),
61
+ ...(isCaTrustError(e) ? { caTrust: true } : {}),
62
+ ...(isTimeoutError(e) ? { timeout: true } : {}),
63
+ };
56
64
  }
57
65
  }
58
66
  /**
@@ -106,7 +114,12 @@ export async function defaultProbeAuth(wpUrl, bearer, fetchImpl, extraHeaders) {
106
114
  return { ok: true };
107
115
  }
108
116
  catch (e) {
109
- return { ok: false, error: describeProbeError(e), ...(isCaTrustError(e) ? { caTrust: true } : {}) };
117
+ return {
118
+ ok: false,
119
+ error: describeProbeError(e),
120
+ ...(isCaTrustError(e) ? { caTrust: true } : {}),
121
+ ...(isTimeoutError(e) ? { timeout: true } : {}),
122
+ };
110
123
  }
111
124
  }
112
125
  /** Extract `major.minor` from a semver-like string (`0.1.0-alpha.1` → `0.1`); `''` on malformed input. */
@@ -1 +1 @@
1
- {"version":3,"file":"setup-wizard-handshake.js","sourceRoot":"","sources":["../src/setup-wizard-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAQ/E,sEAAsE;AACtE,mEAAmE;AACnE,uCAAuC;AACvC,MAAM,8BAA8B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,CAAU;IAClC,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,YAAgD;IAChE,OAAO,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACtC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,cAAc,CAAC;IACtE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,KAAa,EACb,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8BAA8B;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,qEAAqE;QACrE,oEAAoE;QACpE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxG,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,KAAa,EACb,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8BAA8B;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAC7E,CAAC;QACD,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6DAA6D,OAAO,IAAI,SAAS,GAAG,EAAE,CAAC;QACtH,CAAC;QACD,MAAM,MAAM,GAAwB;YAChC,EAAE,EAAE,IAAI;YACR,OAAO;YACP,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,GAAG,CAAC,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,KAAa,EACb,MAAc,EACd,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,MAAM;YACnB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxG,CAAC;AACL,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,KAAa,EACb,MAAc,EACd,cAAsB,EACtB,YAAqC;IAErC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,qBAAqB,EAAE,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;IAC7E,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACpF,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAClD,OAAO;YACH,GAAG,QAAQ;YACX,OAAO,EAAE,gBAAgB,cAAc,KAAK,KAAK,iBAAiB,MAAM,CAAC,aAAa,KAAK,KAAK,iFAAiF;SACpL,CAAC;IACN,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"setup-wizard-handshake.js","sourceRoot":"","sources":["../src/setup-wizard-handshake.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAQ/E,sEAAsE;AACtE,mEAAmE;AACnE,uCAAuC;AACvC,MAAM,8BAA8B,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,CAAU;IAClC,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3D,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,YAAgD;IAChE,OAAO,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAY;IACtC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9D,MAAM,GAAG,GAAG,GAA8B,CAAC;IAC3C,IAAI,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,cAAc,CAAC;IACtE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IACxD,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACpC,KAAa,EACb,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8BAA8B;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,OAAO,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACpF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,qEAAqE;QACrE,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,kCAAkC;QAClC,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC5B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,KAAa,EACb,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,8BAA8B;YAC3C,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,2CAA2C,EAAE,CAAC;QAC7E,CAAC;QACD,MAAM,GAAG,GAAG,GAA8B,CAAC;QAC3C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;YAC/B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,6DAA6D,OAAO,IAAI,SAAS,GAAG,EAAE,CAAC;QACtH,CAAC;QACD,MAAM,MAAM,GAAwB;YAChC,EAAE,EAAE,IAAI;YACR,OAAO;YACP,GAAG,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChG,GAAG,CAAC,OAAO,GAAG,CAAC,cAAc,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3F,CAAC;QACF,OAAO,MAAM,CAAC;IAClB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,KAAa,EACb,MAAc,EACd,SAAwB,EACxB,YAAqC;IAErC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC;YAC1B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,MAAM;YACnB,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO;YACH,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC5B,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;IACN,CAAC;AACL,CAAC;AAED,0GAA0G;AAC1G,MAAM,UAAU,UAAU,CAAC,OAAe;IACtC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACzC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,KAAa,EACb,MAAc,EACd,cAAsB,EACtB,YAAqC;IAErC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,qBAAqB,EAAE,CAAC;IACnF,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5E,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;IAC7E,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACpF,MAAM,KAAK,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;QAClD,OAAO;YACH,GAAG,QAAQ;YACX,OAAO,EAAE,gBAAgB,cAAc,KAAK,KAAK,iBAAiB,MAAM,CAAC,aAAa,KAAK,KAAK,iFAAiF;SACpL,CAAC;IACN,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -115,12 +115,25 @@ export interface HealthProbeResult {
115
115
  * {@link isCaTrustError}; absent/false means "not a CA problem".
116
116
  */
117
117
  readonly caTrust?: boolean;
118
+ /**
119
+ * True when the failure was a connection/handshake TIMEOUT (e.g.
120
+ * `UND_ERR_CONNECT_TIMEOUT` / `ETIMEDOUT`). A TLS-inspecting corporate
121
+ * proxy whose root CA can't be built often manifests as an opaque 30s
122
+ * timeout rather than a clean CA-trust code, so the wizard attempts the
123
+ * OS-trust-store (`--use-system-ca`) recovery on a timeout too (on Node ≥
124
+ * 22.15). Set by the probe via {@link isTimeoutError}; absent/false means
125
+ * "not a timeout". May coincide with — but is independent of —
126
+ * {@link caTrust}.
127
+ */
128
+ readonly timeout?: boolean;
118
129
  }
119
130
  export interface AuthProbeResult {
120
131
  readonly ok: boolean;
121
132
  readonly error?: string;
122
133
  /** See {@link HealthProbeResult.caTrust}. */
123
134
  readonly caTrust?: boolean;
135
+ /** See {@link HealthProbeResult.timeout}. */
136
+ readonly timeout?: boolean;
124
137
  }
125
138
  /**
126
139
  * The user's answer to the wizard's corporate-CA prompt (G-D #6).
@@ -1 +1 @@
1
- {"version":3,"file":"setup-wizard-types.d.ts","sourceRoot":"","sources":["../src/setup-wizard-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACR,cAAc,EACd,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IACzB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACvB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;KACvC,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACpC,mCAAmC;IACnC,aAAa,EAAE,MAAM,SAAS,cAAc,EAAE,CAAC;IAC/C,mDAAmD;IACnD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChE,qDAAqD;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,sDAAsD;IACtD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,uDAAuD;IACvD,WAAW,EAAE,CACT,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,KACtB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B;8DAC0D;IAC1D,SAAS,EAAE,CACP,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,KACrB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9F;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;KACnC,KAAK,OAAO,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtF,mDAAmD;IACnD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D"}
1
+ {"version":3,"file":"setup-wizard-types.d.ts","sourceRoot":"","sources":["../src/setup-wizard-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACR,cAAc,EACd,eAAe,EAClB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,aAAa;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,sEAAsE;IACtE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC3C,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,qCAAqC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,YAAY;IACzB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,mCAAmC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GACpB;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElC,MAAM,WAAW,eAAe;IAC5B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oEAAoE;IACpE,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACvB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,KAAK,EAAE;QACZ,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;KACvC,KAAK,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACpC,mCAAmC;IACnC,aAAa,EAAE,MAAM,SAAS,cAAc,EAAE,CAAC;IAC/C,mDAAmD;IACnD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChE,qDAAqD;IACrD,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACvE,sDAAsD;IACtD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,uDAAuD;IACvD,WAAW,EAAE,CACT,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,KACtB,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1B;8DAC0D;IAC1D,SAAS,EAAE,CACP,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,KACrB,OAAO,CAAC,eAAe,CAAC,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1E;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC9F;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;KACnC,KAAK,OAAO,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACtF,mDAAmD;IACnD,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,EACd,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7E,YAAY,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,GACd,CAAC;AAsBF;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC3B,IAAI,GAAE,UAAgC,GACvC,OAAO,CAAC,MAAM,CAAC,CAwUjB"}
1
+ {"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,OAAO,KAAK,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,EACd,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7E,YAAY,EACR,eAAe,EACf,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,UAAU,EACV,WAAW,GACd,CAAC;AAqCF;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC3B,IAAI,GAAE,UAAgC,GACvC,OAAO,CAAC,MAAM,CAAC,CAsYjB"}
@@ -40,6 +40,19 @@ const SERVER_KEY = 'yt-builder-mcp';
40
40
  */
41
41
  const SYSTEM_CA_DEFERRED_MESSAGE = '✅ Configured to use the OS trust store (--use-system-ca) — this takes effect when ' +
42
42
  "your AI client next launches the server. The current setup process can't validate it in-process.";
43
+ /**
44
+ * Honest outcome when the health probe failed with an opaque TIMEOUT and we
45
+ * auto-attempted the OS-trust-store recovery (a TLS-inspecting corporate proxy
46
+ * whose CA chain can't be built hangs into a 30s timeout rather than a clean
47
+ * cert error). Like {@link SYSTEM_CA_DEFERRED_MESSAGE}, system mode can't be
48
+ * validated in-process — but a timeout is ALSO ambiguous (it can be a genuine
49
+ * proxy/VPN reachability problem), so we keep the proxy/VPN guidance visible:
50
+ * if the next launch still fails, the cause was reachability, not the CA.
51
+ */
52
+ const TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE = '✅ The connection timed out — a TLS-inspecting corporate proxy can hang the handshake this way, so the ' +
53
+ 'server was configured to use the OS trust store (--use-system-ca), validated when your AI client next ' +
54
+ 'launches the server. If it still fails after restart, the timeout was a reachability problem instead: ' +
55
+ 'the site may be internal (VPN needed) or require a proxy (set HTTPS_PROXY). Never disables TLS verification.';
43
56
  /**
44
57
  * Run the interactive setup wizard. Returns a process exit-code so the
45
58
  * outer dispatcher can `process.exit(rc)` cleanly.
@@ -166,6 +179,67 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
166
179
  }
167
180
  }
168
181
  }
182
+ // Timeout → OS-trust-store auto-bake (Glöckle corporate-CA timeout gap).
183
+ // A TLS-inspecting corporate proxy whose root CA chain can't be built
184
+ // often hangs the handshake into an OPAQUE 30s timeout rather than a
185
+ // clean cert code — so `health.caTrust` is false and the CA prompt above
186
+ // never fires, leaving the operator to set NODE_OPTIONS=--use-system-ca
187
+ // by hand. When the probe failed with a TIMEOUT, this Node can read the
188
+ // OS trust store (Node ≥ 22.15), and NO CA was chosen yet, attempt the
189
+ // SAME system-CA recovery the caTrust branch does: bake caMode:'system'
190
+ // and RE-PROBE. `--use-system-ca` only ADDS the OS store (never disables
191
+ // TLS), so attempting it on a timeout is safe even if the timeout turns
192
+ // out to be a genuine proxy/VPN issue — the re-probe just fails again and
193
+ // the proxy/VPN guidance is still shown. Like the caTrust branch, system
194
+ // mode can't validate in-process, so a still-failing re-probe defers
195
+ // validation to next launch (the written config is correct) rather than
196
+ // discarding it; the ambiguity (CA vs reachability) is surfaced honestly.
197
+ const caChosenSoFar = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
198
+ if (!health.ok && health.timeout === true && !caChosenSoFar && supportsSystemCa(nodeVersion)) {
199
+ log.warn(`The connection timed out — attempting the OS trust store (--use-system-ca) in case a corporate TLS-inspection proxy is hanging the TLS handshake: ${health.error ?? 'timeout'}`);
200
+ caChoice = { caMode: 'system' };
201
+ const reSpinner = spinner();
202
+ reSpinner.start('Re-checking the connection with --use-system-ca applied…');
203
+ if (deps.applyAndReProbe !== undefined) {
204
+ const re = await deps.applyAndReProbe({
205
+ wpUrl: answers.wpUrl,
206
+ bearer: answers.bearer,
207
+ choice: { choice: 'system' },
208
+ });
209
+ health = re.health;
210
+ auth = re.auth;
211
+ }
212
+ else {
213
+ health = await deps.probeHealth(answers.wpUrl);
214
+ auth = await deps.probeAuth(answers.wpUrl, answers.bearer);
215
+ }
216
+ if (health.ok) {
217
+ reSpinner.stop('✅ connected — OS trust store resolved the timeout.');
218
+ }
219
+ else {
220
+ // System mode can't validate in-process (the OS store is only
221
+ // read when Node restarts WITH the flag). Defer validation to the
222
+ // next launch instead of discarding the (now correct) config —
223
+ // but keep the proxy/VPN guidance visible for the ambiguous case.
224
+ systemCaDeferred = true;
225
+ reSpinner.stop('OS trust store configured (--use-system-ca).');
226
+ logFn(TIMEOUT_SYSTEM_CA_DEFERRED_MESSAGE);
227
+ }
228
+ }
229
+ else if (!health.ok && health.timeout === true && !caChosenSoFar && !supportsSystemCa(nodeVersion)) {
230
+ // Below the system-CA floor we cannot write a flag the target Node
231
+ // would reject. Warn to supply a .pem instead (the only CA option on
232
+ // an old Node), then fall through to the generic continue decision.
233
+ // Route through BOTH the clack UI and the logFn sink so the warning is
234
+ // capturable in non-TTY / test contexts (mirrors the P0.1 below-floor
235
+ // branch). Intentionally does NOT name the OS-trust-store flag (the
236
+ // whole point is that it's unavailable on this Node).
237
+ const warnPem = `The connection timed out and this Node (${nodeVersion}) is below 22.15, so the OS trust store cannot be read. ` +
238
+ 'If a corporate TLS-inspection proxy is the cause, re-run setup with `--ca <path-to-corp-root-ca.pem>` ' +
239
+ '(export your corporate root CA to a .pem). Otherwise the site may need a VPN/proxy. Never disable TLS verification.';
240
+ log.warn(warnPem);
241
+ logFn(warnPem);
242
+ }
169
243
  // If the connection is still down after the (optional) CA step, fall
170
244
  // through to the generic continue-anyway decision — UNLESS system-CA was
171
245
  // configured, where validation is deferred to next launch and the (false-