@wootsup/yt-builder-mcp 1.5.0 → 1.6.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/auth.d.ts +11 -0
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +11 -0
- package/dist/auth.js.map +1 -1
- package/dist/cli/doctor-command.d.ts.map +1 -1
- package/dist/cli/doctor-command.js +45 -2
- package/dist/cli/doctor-command.js.map +1 -1
- package/dist/client.d.ts +18 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +13 -1
- package/dist/client.js.map +1 -1
- package/dist/clients/claude-code.d.ts.map +1 -1
- package/dist/clients/claude-code.js +5 -2
- package/dist/clients/claude-code.js.map +1 -1
- package/dist/clients/claude-desktop.d.ts.map +1 -1
- package/dist/clients/claude-desktop.js +5 -2
- package/dist/clients/claude-desktop.js.map +1 -1
- package/dist/clients/cline.d.ts.map +1 -1
- package/dist/clients/cline.js +5 -2
- package/dist/clients/cline.js.map +1 -1
- package/dist/clients/codex-cli.d.ts.map +1 -1
- package/dist/clients/codex-cli.js +127 -2
- package/dist/clients/codex-cli.js.map +1 -1
- package/dist/clients/continue.d.ts.map +1 -1
- package/dist/clients/continue.js +11 -2
- package/dist/clients/continue.js.map +1 -1
- package/dist/clients/cursor.d.ts.map +1 -1
- package/dist/clients/cursor.js +5 -2
- package/dist/clients/cursor.js.map +1 -1
- package/dist/clients/gemini-cli.d.ts.map +1 -1
- package/dist/clients/gemini-cli.js +5 -2
- package/dist/clients/gemini-cli.js.map +1 -1
- package/dist/clients/index.d.ts +49 -0
- package/dist/clients/index.d.ts.map +1 -1
- package/dist/clients/index.js +79 -0
- package/dist/clients/index.js.map +1 -1
- package/dist/clients/roo-code.d.ts.map +1 -1
- package/dist/clients/roo-code.js +5 -2
- package/dist/clients/roo-code.js.map +1 -1
- package/dist/clients/zed.d.ts.map +1 -1
- package/dist/clients/zed.js +22 -2
- package/dist/clients/zed.js.map +1 -1
- package/dist/diagnostics/doctor.d.ts +10 -1
- package/dist/diagnostics/doctor.d.ts.map +1 -1
- package/dist/diagnostics/doctor.js +23 -0
- package/dist/diagnostics/doctor.js.map +1 -1
- package/dist/diagnostics/startup-self-probe.d.ts +39 -0
- package/dist/diagnostics/startup-self-probe.d.ts.map +1 -0
- package/dist/diagnostics/startup-self-probe.js +87 -0
- package/dist/diagnostics/startup-self-probe.js.map +1 -0
- package/dist/gateway/essentials.d.ts +15 -6
- package/dist/gateway/essentials.d.ts.map +1 -1
- package/dist/gateway/essentials.js +51 -5
- package/dist/gateway/essentials.js.map +1 -1
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -2
- package/dist/index.js.map +1 -1
- package/dist/net/proxy-dispatcher.d.ts +7 -0
- package/dist/net/proxy-dispatcher.d.ts.map +1 -1
- package/dist/net/proxy-dispatcher.js +7 -2
- package/dist/net/proxy-dispatcher.js.map +1 -1
- package/dist/net/site-basic-auth.d.ts +65 -0
- package/dist/net/site-basic-auth.d.ts.map +1 -0
- package/dist/net/site-basic-auth.js +118 -0
- package/dist/net/site-basic-auth.js.map +1 -0
- package/dist/proxy/bridge.d.ts +18 -1
- package/dist/proxy/bridge.d.ts.map +1 -1
- package/dist/proxy/bridge.js +23 -3
- package/dist/proxy/bridge.js.map +1 -1
- package/dist/setup-wizard-types.d.ts +9 -0
- package/dist/setup-wizard-types.d.ts.map +1 -1
- package/dist/setup-wizard.d.ts.map +1 -1
- package/dist/setup-wizard.js +37 -0
- package/dist/setup-wizard.js.map +1 -1
- package/dist/sites/client-pool.d.ts +35 -1
- package/dist/sites/client-pool.d.ts.map +1 -1
- package/dist/sites/client-pool.js +45 -1
- package/dist/sites/client-pool.js.map +1 -1
- package/dist/tools/elements/builders.js +7 -7
- package/dist/tools/elements/builders.js.map +1 -1
- package/dist/tools/elements/handlers.d.ts +2 -0
- package/dist/tools/elements/handlers.d.ts.map +1 -1
- package/dist/tools/elements/handlers.js +48 -2
- package/dist/tools/elements/handlers.js.map +1 -1
- package/dist/tools/format/elements-format.d.ts.map +1 -1
- package/dist/tools/format/elements-format.js +8 -0
- package/dist/tools/format/elements-format.js.map +1 -1
- package/dist/tools/format/health-format.d.ts +2 -0
- package/dist/tools/format/health-format.d.ts.map +1 -1
- package/dist/tools/format/health-format.js +11 -0
- package/dist/tools/format/health-format.js.map +1 -1
- package/dist/tools/format/pages-format.d.ts +23 -0
- package/dist/tools/format/pages-format.d.ts.map +1 -1
- package/dist/tools/format/pages-format.js +28 -0
- package/dist/tools/format/pages-format.js.map +1 -1
- package/dist/tools/format/source-schema-format.d.ts +64 -0
- package/dist/tools/format/source-schema-format.d.ts.map +1 -0
- package/dist/tools/format/source-schema-format.js +161 -0
- package/dist/tools/format/source-schema-format.js.map +1 -0
- package/dist/tools/health.d.ts.map +1 -1
- package/dist/tools/health.js +31 -0
- package/dist/tools/health.js.map +1 -1
- package/dist/tools/multi-items/builders.js +2 -2
- package/dist/tools/multi-items/builders.js.map +1 -1
- package/dist/tools/multi-items/inspect-handler.d.ts +8 -0
- package/dist/tools/multi-items/inspect-handler.d.ts.map +1 -1
- package/dist/tools/multi-items/inspect-handler.js +48 -2
- package/dist/tools/multi-items/inspect-handler.js.map +1 -1
- package/dist/tools/pages/builders.d.ts.map +1 -1
- package/dist/tools/pages/builders.js +115 -26
- package/dist/tools/pages/builders.js.map +1 -1
- package/dist/tools/pages/handlers-read.d.ts +20 -1
- package/dist/tools/pages/handlers-read.d.ts.map +1 -1
- package/dist/tools/pages/handlers-read.js +131 -7
- package/dist/tools/pages/handlers-read.js.map +1 -1
- package/dist/tools/pages/handlers-write.d.ts +42 -1
- package/dist/tools/pages/handlers-write.d.ts.map +1 -1
- package/dist/tools/pages/handlers-write.js +114 -5
- package/dist/tools/pages/handlers-write.js.map +1 -1
- package/dist/tools/pages/schemas.d.ts +24 -0
- package/dist/tools/pages/schemas.d.ts.map +1 -1
- package/dist/tools/pages/schemas.js +30 -0
- package/dist/tools/pages/schemas.js.map +1 -1
- package/dist/tools/pool-resolve-helper.d.ts +11 -26
- package/dist/tools/pool-resolve-helper.d.ts.map +1 -1
- package/dist/tools/pool-resolve-helper.js +50 -0
- package/dist/tools/pool-resolve-helper.js.map +1 -1
- package/dist/tools/sources/builders.d.ts.map +1 -1
- package/dist/tools/sources/builders.js +258 -4
- package/dist/tools/sources/builders.js.map +1 -1
- package/dist/tools/sources/handlers-bind.d.ts +107 -0
- package/dist/tools/sources/handlers-bind.d.ts.map +1 -1
- package/dist/tools/sources/handlers-bind.js +197 -2
- package/dist/tools/sources/handlers-bind.js.map +1 -1
- package/dist/tools/sources/handlers.d.ts +54 -0
- package/dist/tools/sources/handlers.d.ts.map +1 -1
- package/dist/tools/sources/handlers.js +82 -0
- package/dist/tools/sources/handlers.js.map +1 -1
- package/dist/tools/sparse-fields.d.ts +37 -1
- package/dist/tools/sparse-fields.d.ts.map +1 -1
- package/dist/tools/sparse-fields.js +35 -5
- package/dist/tools/sparse-fields.js.map +1 -1
- package/dist/tools/tool-builder/results.d.ts.map +1 -1
- package/dist/tools/tool-builder/results.js +3 -0
- package/dist/tools/tool-builder/results.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/skills/yt-builder-mcp/SKILL.md +80 -34
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// packages/mcp/src/net/site-basic-auth.ts
|
|
2
|
+
/**
|
|
3
|
+
* Parse `YTB_MCP_SITE_BASIC_AUTH` ('user:pass') into URL **userinfo** that is
|
|
4
|
+
* injected into the upstream request URL (`https://user:pass@host/…`) on BOTH
|
|
5
|
+
* transports (fat-mode {@link RestClient} base URL and proxy-mode endpoint URL).
|
|
6
|
+
*
|
|
7
|
+
* Why this exists (U3 — Glöckle post-cert QA blocker): a site fronted by a pure
|
|
8
|
+
* HTTP **Basic-Auth realm** (e.g. `qa.gloeckle.de`) requires
|
|
9
|
+
* `Authorization: Basic …`. But the plugin Bearer already owns the single
|
|
10
|
+
* `Authorization` header on every outbound request, and `YTB_MCP_EXTRA_HEADERS`
|
|
11
|
+
* HARD-FORBIDS an `Authorization` key (see {@link parseExtraHeaders}) — so Basic
|
|
12
|
+
* and the Bearer collide on the one header and the site is unreachable.
|
|
13
|
+
*
|
|
14
|
+
* The fix routes the site-level Basic credentials on a **separate transport**:
|
|
15
|
+
* URL userinfo. Userinfo and the `Authorization` header are independent — undici
|
|
16
|
+
* / fetch turn `https://user:pass@host` into an `Authorization: Basic …` toward
|
|
17
|
+
* the **gateway/realm**, while we keep emitting `Authorization: Bearer …` toward
|
|
18
|
+
* the **plugin** behind it. The Bearer is never touched; the realm and the
|
|
19
|
+
* plugin each get the credential they expect.
|
|
20
|
+
*
|
|
21
|
+
* ── Accepted format ─────────────────────────────────────────────────────────
|
|
22
|
+
* `user:pass` — split on the FIRST colon (passwords may contain colons).
|
|
23
|
+
* - The username MUST be non-empty.
|
|
24
|
+
* - The password MAY be empty (some realms use a user-only token).
|
|
25
|
+
* Both halves are percent-encoded for userinfo via the WHATWG URL encoder, so
|
|
26
|
+
* reserved chars (`@`, `/`, `:`, space, …) survive into a valid URL.
|
|
27
|
+
*
|
|
28
|
+
* ── Security invariants ─────────────────────────────────────────────────────
|
|
29
|
+
* - The credential value is **NEVER** echoed in a warning or logged. Malformed
|
|
30
|
+
* input yields a generic "missing colon / empty username" warning only.
|
|
31
|
+
* - This channel NEVER touches the `Authorization` header — it rides URL
|
|
32
|
+
* userinfo exclusively, so the Bearer always wins (orthogonal transports).
|
|
33
|
+
*
|
|
34
|
+
* Pure + deterministic. `warnings` collects non-fatal issues; the caller (the
|
|
35
|
+
* server boot path) surfaces them once to stderr.
|
|
36
|
+
*
|
|
37
|
+
* @license MIT
|
|
38
|
+
*/
|
|
39
|
+
/** Canonical env-var name for the site-level HTTP Basic-Auth feature. */
|
|
40
|
+
export const ENV_SITE_BASIC_AUTH = 'YTB_MCP_SITE_BASIC_AUTH';
|
|
41
|
+
/**
|
|
42
|
+
* Encode a single userinfo component (username or password) exactly as the
|
|
43
|
+
* WHATWG URL serializer would. Using the URL setter (rather than
|
|
44
|
+
* `encodeURIComponent`) guarantees the result is byte-for-byte what lands on a
|
|
45
|
+
* real request URL, and is idempotent if the value is already encoded.
|
|
46
|
+
*/
|
|
47
|
+
function encodeUserinfoComponent(part, value) {
|
|
48
|
+
const u = new URL('https://x.invalid/');
|
|
49
|
+
if (part === 'username') {
|
|
50
|
+
u.username = value;
|
|
51
|
+
return u.username;
|
|
52
|
+
}
|
|
53
|
+
// A password-only set still needs a (placeholder) username for the URL to be
|
|
54
|
+
// valid; read back ONLY the password component.
|
|
55
|
+
u.username = 'x';
|
|
56
|
+
u.password = value;
|
|
57
|
+
return u.password;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse `YTB_MCP_SITE_BASIC_AUTH` from `env` (default `process.env`). Returns
|
|
61
|
+
* `{ userinfo: null, warnings: [] }` when unset/blank, and a generic warning
|
|
62
|
+
* (never containing the secret) when the value is malformed.
|
|
63
|
+
*/
|
|
64
|
+
export function parseSiteBasicAuth(env = process.env) {
|
|
65
|
+
const raw = (env[ENV_SITE_BASIC_AUTH] ?? '').trim();
|
|
66
|
+
if (raw === '') {
|
|
67
|
+
return { userinfo: null, warnings: [] };
|
|
68
|
+
}
|
|
69
|
+
const idx = raw.indexOf(':');
|
|
70
|
+
if (idx < 0) {
|
|
71
|
+
// Deliberately do NOT echo `raw` — it IS the credential.
|
|
72
|
+
return {
|
|
73
|
+
userinfo: null,
|
|
74
|
+
warnings: [
|
|
75
|
+
`${ENV_SITE_BASIC_AUTH}: ignored — expected "user:pass" (a ":" separating username from password). The credential value is not shown.`,
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
const user = raw.slice(0, idx);
|
|
80
|
+
const password = raw.slice(idx + 1);
|
|
81
|
+
if (user === '') {
|
|
82
|
+
return {
|
|
83
|
+
userinfo: null,
|
|
84
|
+
warnings: [
|
|
85
|
+
`${ENV_SITE_BASIC_AUTH}: ignored — the username (before ":") is empty. Expected "user:pass". The credential value is not shown.`,
|
|
86
|
+
],
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
const userinfo = `${encodeUserinfoComponent('username', user)}:${encodeUserinfoComponent('password', password)}`;
|
|
90
|
+
return { userinfo, warnings: [] };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Splice `userinfo` (a percent-encoded `user:pass`) into `url`, returning the
|
|
94
|
+
* resulting href. When `userinfo` is `null`, the URL is returned unchanged
|
|
95
|
+
* (string form). Any pre-existing userinfo on the URL is overwritten.
|
|
96
|
+
*
|
|
97
|
+
* This is the ONLY mutation the site-Basic channel performs — it never adds or
|
|
98
|
+
* alters a header, so the Bearer in `Authorization` is untouched.
|
|
99
|
+
*/
|
|
100
|
+
export function applyUserinfoToUrl(url, userinfo) {
|
|
101
|
+
const parsed = url instanceof URL ? new URL(url.href) : new URL(url);
|
|
102
|
+
if (userinfo === null) {
|
|
103
|
+
return parsed.href;
|
|
104
|
+
}
|
|
105
|
+
const sep = userinfo.indexOf(':');
|
|
106
|
+
if (sep < 0) {
|
|
107
|
+
// Defensive — parseSiteBasicAuth always produces a colon; a caller that
|
|
108
|
+
// hand-builds a userinfo without one gets username-only behaviour.
|
|
109
|
+
parsed.username = userinfo;
|
|
110
|
+
parsed.password = '';
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
parsed.username = userinfo.slice(0, sep);
|
|
114
|
+
parsed.password = userinfo.slice(sep + 1);
|
|
115
|
+
}
|
|
116
|
+
return parsed.href;
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=site-basic-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site-basic-auth.js","sourceRoot":"","sources":["../../src/net/site-basic-auth.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAa7D;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,IAA6B,EAAE,KAAa;IACzE,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;QACnB,OAAO,CAAC,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,6EAA6E;IAC7E,gDAAgD;IAChD,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;IACjB,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;IACnB,OAAO,CAAC,CAAC,QAAQ,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpD,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACb,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACV,yDAAyD;QACzD,OAAO;YACH,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE;gBACN,GAAG,mBAAmB,gHAAgH;aACzI;SACJ,CAAC;IACN,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QACd,OAAO;YACH,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE;gBACN,GAAG,mBAAmB,0GAA0G;aACnI;SACJ,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;IACjH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAiB,EAAE,QAAuB;IACzE,MAAM,MAAM,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACrE,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACV,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACzC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,CAAC"}
|
package/dist/proxy/bridge.d.ts
CHANGED
|
@@ -44,8 +44,16 @@ export declare function bridgeTransports(local: Transport, remote: Transport): v
|
|
|
44
44
|
interface ProxyConfig {
|
|
45
45
|
endpointUrl: URL;
|
|
46
46
|
token: string;
|
|
47
|
-
/** Extra headers from `YTB_MCP_EXTRA_HEADERS` (
|
|
47
|
+
/** Extra headers from `YTB_MCP_EXTRA_HEADERS` (WAF / gateway secret). */
|
|
48
48
|
extraHeaders?: Record<string, string>;
|
|
49
|
+
/**
|
|
50
|
+
* U3 — percent-encoded `user:pass` userinfo for a site-level HTTP Basic-Auth
|
|
51
|
+
* realm (`YTB_MCP_SITE_BASIC_AUTH`). Spliced into `endpointUrl`
|
|
52
|
+
* (`https://user:pass@host/…`) so the realm gets `Authorization: Basic …`
|
|
53
|
+
* while the Bearer header still reaches the plugin. Orthogonal transports —
|
|
54
|
+
* the Bearer is never overwritten.
|
|
55
|
+
*/
|
|
56
|
+
siteBasicUserinfo?: string;
|
|
49
57
|
}
|
|
50
58
|
/**
|
|
51
59
|
* Build the upstream `requestInit.headers` for proxy mode: the Bearer is
|
|
@@ -53,6 +61,15 @@ interface ProxyConfig {
|
|
|
53
61
|
* `Authorization` can NEVER be overwritten. Exported for unit tests.
|
|
54
62
|
*/
|
|
55
63
|
export declare function buildProxyRequestHeaders(config: ProxyConfig): Record<string, string>;
|
|
64
|
+
/**
|
|
65
|
+
* Resolve the upstream endpoint URL the proxy connects to, splicing in the U3
|
|
66
|
+
* site-level HTTP Basic userinfo (`https://user:pass@host/…`) when configured so
|
|
67
|
+
* the realm gets `Authorization: Basic …`. The Bearer rides the Authorization
|
|
68
|
+
* header (see {@link buildProxyRequestHeaders}) — independent transport, never
|
|
69
|
+
* clobbered. Returns the original URL unchanged when no site-Basic is set.
|
|
70
|
+
* Exported for unit tests.
|
|
71
|
+
*/
|
|
72
|
+
export declare function resolveProxyEndpointUrl(config: ProxyConfig): URL;
|
|
56
73
|
/** Build the real transports + bridge them; resolves when EITHER side closes. */
|
|
57
74
|
export declare function runProxy(config: ProxyConfig, deps?: {
|
|
58
75
|
makeTransports?: (c: ProxyConfig) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/proxy/bridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/proxy/bridge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAiE/E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAoC5D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,IAAI,CAuD1E;AAED;;mDAEmD;AACnD,UAAU,WAAW;IACnB,WAAW,EAAE,GAAG,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAKpF;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAKhE;AAcD,iFAAiF;AACjF,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK;QACnC,KAAK,EAAE,SAAS,CAAC;QACjB,MAAM,EAAE,SAAS,CAAC;KACnB,CAAC;CACE,GACL,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,qFAAqF;AACrF,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAO,GAC1D,OAAO,CAAC,OAAO,CAAC,CAkBlB"}
|
package/dist/proxy/bridge.js
CHANGED
|
@@ -3,6 +3,7 @@ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/
|
|
|
3
3
|
import { resolveMode } from './mode.js';
|
|
4
4
|
import { diagnoseNetworkError } from '../diagnostics/diagnose-network-error.js';
|
|
5
5
|
import { mergeExtraHeaders, parseExtraHeaders } from '../net/extra-headers.js';
|
|
6
|
+
import { applyUserinfoToUrl, parseSiteBasicAuth } from '../net/site-basic-auth.js';
|
|
6
7
|
/** Narrow an unknown caught value to a human-readable message (no `any`). */
|
|
7
8
|
function errorMessage(err) {
|
|
8
9
|
if (err instanceof Error)
|
|
@@ -183,9 +184,23 @@ export function buildProxyRequestHeaders(config) {
|
|
|
183
184
|
? mergeExtraHeaders(base, config.extraHeaders)
|
|
184
185
|
: base;
|
|
185
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Resolve the upstream endpoint URL the proxy connects to, splicing in the U3
|
|
189
|
+
* site-level HTTP Basic userinfo (`https://user:pass@host/…`) when configured so
|
|
190
|
+
* the realm gets `Authorization: Basic …`. The Bearer rides the Authorization
|
|
191
|
+
* header (see {@link buildProxyRequestHeaders}) — independent transport, never
|
|
192
|
+
* clobbered. Returns the original URL unchanged when no site-Basic is set.
|
|
193
|
+
* Exported for unit tests.
|
|
194
|
+
*/
|
|
195
|
+
export function resolveProxyEndpointUrl(config) {
|
|
196
|
+
if (config.siteBasicUserinfo === undefined || config.siteBasicUserinfo === '') {
|
|
197
|
+
return config.endpointUrl;
|
|
198
|
+
}
|
|
199
|
+
return new URL(applyUserinfoToUrl(config.endpointUrl, config.siteBasicUserinfo));
|
|
200
|
+
}
|
|
186
201
|
/** Injection seam for tests — production builds the real SDK transports. */
|
|
187
202
|
function defaultTransports(config) {
|
|
188
|
-
const remote = new StreamableHTTPClientTransport(config
|
|
203
|
+
const remote = new StreamableHTTPClientTransport(resolveProxyEndpointUrl(config), {
|
|
189
204
|
requestInit: { headers: buildProxyRequestHeaders(config) },
|
|
190
205
|
});
|
|
191
206
|
const local = new StdioServerTransport();
|
|
@@ -222,13 +237,18 @@ export async function maybeRunProxy(env, deps = {}) {
|
|
|
222
237
|
if (resolved.mode !== 'proxy')
|
|
223
238
|
return false;
|
|
224
239
|
const run = deps.runProxy ?? runProxy;
|
|
225
|
-
// Glöckle gap #14 — attach corporate extra headers (
|
|
226
|
-
//
|
|
240
|
+
// Glöckle gap #14 — attach corporate extra headers (WAF / gateway secret) to
|
|
241
|
+
// every upstream request. parseExtraHeaders reads YTB_MCP_EXTRA_HEADERS.
|
|
227
242
|
const { headers: extraHeaders } = parseExtraHeaders(env);
|
|
243
|
+
// U3 — a site-level HTTP Basic-Auth realm rides URL userinfo, not a header
|
|
244
|
+
// (the Bearer owns Authorization). parseSiteBasicAuth reads
|
|
245
|
+
// YTB_MCP_SITE_BASIC_AUTH; `null` when unset/malformed → no userinfo spliced.
|
|
246
|
+
const { userinfo: siteBasicUserinfo } = parseSiteBasicAuth(env);
|
|
228
247
|
await run({
|
|
229
248
|
endpointUrl: resolved.endpointUrl,
|
|
230
249
|
token: resolved.token,
|
|
231
250
|
...(Object.keys(extraHeaders).length > 0 ? { extraHeaders } : {}),
|
|
251
|
+
...(siteBasicUserinfo !== null ? { siteBasicUserinfo } : {}),
|
|
232
252
|
});
|
|
233
253
|
return true;
|
|
234
254
|
}
|
package/dist/proxy/bridge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/proxy/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/proxy/bridge.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEnF,6EAA6E;AAC7E,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC7C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;QAC3D,MAAM,EAAE,GAAI,GAAuB,CAAC,EAAE,CAAC;QACvC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AASD,SAAS,kBAAkB,CAAC,CAAU;IACpC,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ;QAClD,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ,CACnD,CAAC;AACJ,CAAC;AAaD,SAAS,sBAAsB,CAAC,CAAU;IACxC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,OAAO,GAAI,CAA2B,CAAC,OAAO,CAAC;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IACxD,MAAM,MAAM,GAAI,GAA4B,CAAC,MAAM,CAAC;IACpD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAE9D,4DAA4D;IAC5D,MAAM,OAAO,GAAI,MAAgC,CAAC,OAAO,CAAC;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,CAAC;IAExC,6EAA6E;IAC7E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IAEpE,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;QACvE,qCAAqC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IAE/C,sEAAsE;IACtE,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,gBAAgB,GAA4B;QAChD,GAAI,MAAkC;QACtC,OAAO,EAAE,KAAK,CAAC,OAAO;KACvB,CAAC;IACF,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;QAAE,gBAAgB,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC1E,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,gBAAgB,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,GAAI,GAA+B,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB,EAAE,MAAiB;IAClE,KAAK,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE;QACxB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAClC,mEAAmE;YACnE,yEAAyE;YACzE,0EAA0E;YAC1E,gDAAgD;YAChD,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,gDAAgD,CAAC;YACnH,gDAAgD;YAChD,OAAO,CAAC,KAAK,CACX,0CAA0C,EAC1C,OAAO,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CACrD,CAAC;YACF,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,8DAA8D;gBAC9D,MAAM,KAAK,GAAG;oBACZ,OAAO,EAAE,KAAK;oBACd,EAAE;oBACF,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,yBAAyB,OAAO,KAAK,IAAI,EAAE;qBACrD;iBACF,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,KAAkC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAgB,EAAE,EAAE;oBACxE,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5F,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE;QACzB,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,CAAmB,CAAC;QACjE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YAC5C,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE;QACnB,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;QACpB,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC,CAAC;IACF,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;QACtB,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAoBD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAmB;IAC1D,MAAM,IAAI,GAA2B,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;IACjF,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QACrF,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAmB;IACzD,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,IAAI,MAAM,CAAC,iBAAiB,KAAK,EAAE,EAAE,CAAC;QAC9E,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,MAAmB;IAI5C,MAAM,MAAM,GAAG,IAAI,6BAA6B,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE;QAChF,WAAW,EAAE,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,EAAE;KAC3D,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACzC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAmB,EACnB,OAKI,EAAE;IAEN,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;IAE7E,wEAAwE;IACxE,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAC3C,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;QACrC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;QACvC,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE;YACnB,cAAc,EAAE,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACpB,eAAe,EAAE,EAAE,CAAC;YACpB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACpB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,MAAM,CAAC;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAsB,EACtB,OAAyD,EAAE;IAE3D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;IACtC,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACzD,2EAA2E;IAC3E,4DAA4D;IAC5D,8EAA8E;IAC9E,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,GAAG,CAAC;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -200,6 +200,15 @@ export interface WizardDeps {
|
|
|
200
200
|
* it on Node ≥ 22.15. Injectable so tests pin a version deterministically.
|
|
201
201
|
*/
|
|
202
202
|
nodeVersion?: string;
|
|
203
|
+
/**
|
|
204
|
+
* P0.1 — process environment (default `process.env`) read ONLY to detect a
|
|
205
|
+
* corporate forward-proxy (`HTTP(S)_PROXY`) for the default-on CA bake: when
|
|
206
|
+
* no explicit `--ca` was given and a proxy is configured (or the health
|
|
207
|
+
* probe reported a TLS-trust failure), the wizard auto-bakes
|
|
208
|
+
* `NODE_OPTIONS=--use-system-ca` (Node ≥ 22.15) unattended. Injectable so
|
|
209
|
+
* tests drive the proxy-present branch deterministically.
|
|
210
|
+
*/
|
|
211
|
+
processEnv?: NodeJS.ProcessEnv;
|
|
203
212
|
/**
|
|
204
213
|
* G-D #6 — prompt the user for a corporate-CA trust strategy when a probe
|
|
205
214
|
* fails with a TLS-inspection error. `systemCaSupported` tells the prompt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard-types.d.ts","sourceRoot":"","sources":["../src/setup-wizard-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-wizard-types.d.ts","sourceRoot":"","sources":["../src/setup-wizard-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.d.ts","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
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"}
|
package/dist/setup-wizard.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { cancel, log, note, outro, spinner } from '@clack/prompts';
|
|
17
17
|
import { supportsSystemCa } from './diagnostics/ca-trust.js';
|
|
18
|
+
import { hasProxyConfigured } from './net/proxy-dispatcher.js';
|
|
18
19
|
import { SERVER_NAME, SERVER_VERSION } from './server.js';
|
|
19
20
|
import { buildCaEnv } from './setup-ca-env.js';
|
|
20
21
|
import { buildNpxSpec } from './setup-npx-spec.js';
|
|
@@ -222,6 +223,42 @@ export async function runWizard(deps = DEFAULT_WIZARD_DEPS) {
|
|
|
222
223
|
// Pass an empty `currentEnv` so the WRITTEN config's NODE_OPTIONS is a clean
|
|
223
224
|
// `--use-system-ca` for the MCP server's own runtime — not the operator's
|
|
224
225
|
// current shell NODE_OPTIONS (which is irrelevant to the spawned server).
|
|
226
|
+
//
|
|
227
|
+
// P0.1 (default-on CA bake) — the install-blocker Glöckle hit: a DEFAULT
|
|
228
|
+
// `setup` (no `--ca` flag) against a corporate-proxied / TLS-inspected site
|
|
229
|
+
// baked NOTHING, so the very first `/mcp` connect hung 30s on the untrusted
|
|
230
|
+
// CA. Make the bake default-on: when the operator gave NO explicit CA choice
|
|
231
|
+
// AND we have a corporate-network signal (a forward proxy is configured, OR
|
|
232
|
+
// the health probe reported a TLS chain-of-trust failure), auto-select the
|
|
233
|
+
// OS trust store on a supporting Node (Node ≥ 22.15 → NODE_OPTIONS=
|
|
234
|
+
// --use-system-ca, zero-export). On an older Node we can't write a flag it
|
|
235
|
+
// would reject, so we leave the env untouched and warn the operator to
|
|
236
|
+
// re-run with `--ca <corp-root-ca.pem>`. Idempotent: `withSystemCaFlag`
|
|
237
|
+
// dedupes the flag. An explicit `--ca` / interactive CA choice always wins
|
|
238
|
+
// (this only fills the gap when the operator chose nothing).
|
|
239
|
+
const caExplicit = caChoice.caCertPath !== undefined || caChoice.caMode !== undefined;
|
|
240
|
+
if (!caExplicit) {
|
|
241
|
+
const proxyPresent = hasProxyConfigured(deps.processEnv ?? process.env);
|
|
242
|
+
const tlsTrustFailure = health.caTrust === true;
|
|
243
|
+
if (proxyPresent || tlsTrustFailure) {
|
|
244
|
+
const reason = proxyPresent
|
|
245
|
+
? 'a corporate forward proxy (HTTP(S)_PROXY) is configured'
|
|
246
|
+
: 'the site presented an untrusted (TLS-inspection) certificate';
|
|
247
|
+
if (supportsSystemCa(nodeVersion)) {
|
|
248
|
+
caChoice = { caMode: 'system' };
|
|
249
|
+
const baked = `Corporate network detected (${reason}) — baking NODE_OPTIONS=--use-system-ca so the server trusts your OS / corporate root CA store. Re-run with \`--ca <path-to-corp-root-ca.pem>\` to pin a specific .pem instead. Never disables TLS verification.`;
|
|
250
|
+
// Route through BOTH the clack UI (human, interactive) and the
|
|
251
|
+
// logFn sink (stderr / captured in tests + non-TTY installs).
|
|
252
|
+
log.info(baked);
|
|
253
|
+
logFn(baked);
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
const warnPem = `Corporate network detected (${reason}), but this Node (${nodeVersion}) is below 22.15 and cannot read the OS trust store (--use-system-ca). Re-run setup with \`--ca <path-to-corp-root-ca.pem>\` (export your corporate root CA to a .pem). Never disable TLS verification.`;
|
|
257
|
+
log.warn(warnPem);
|
|
258
|
+
logFn(warnPem);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
225
262
|
const caEnv = buildCaEnv(caChoice, nodeVersion, {});
|
|
226
263
|
for (const w of caEnv.warnings)
|
|
227
264
|
log.warn(w);
|
package/dist/setup-wizard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,15 @@ export declare class ClientPool {
|
|
|
85
85
|
private readonly secretResolver;
|
|
86
86
|
private readonly timeoutMs;
|
|
87
87
|
private readonly cache;
|
|
88
|
+
/**
|
|
89
|
+
* U2 — per-site coarse token scope (`read` | `write`), learned
|
|
90
|
+
* opportunistically when a `health` / `diagnose` call observes the PHP
|
|
91
|
+
* payload's `token_scope`. The Node write-tool pre-flight reads it to fail
|
|
92
|
+
* a write FAST (no ETag fetch, no body build) when the configured key is
|
|
93
|
+
* known read-only. Absent (`undefined`) = not yet learned → the pre-flight
|
|
94
|
+
* stays silent and the REST chokepoint remains the authority.
|
|
95
|
+
*/
|
|
96
|
+
private readonly tokenScopeCache;
|
|
88
97
|
/**
|
|
89
98
|
* Runtime active-site override (Phase 3 — `yootheme_builder_use_site`).
|
|
90
99
|
*
|
|
@@ -107,7 +116,16 @@ export declare class ClientPool {
|
|
|
107
116
|
* {@link RestClient}).
|
|
108
117
|
*/
|
|
109
118
|
private readonly extraHeaders;
|
|
110
|
-
|
|
119
|
+
/**
|
|
120
|
+
* U3 — percent-encoded `user:pass` userinfo for a site-level HTTP Basic-Auth
|
|
121
|
+
* realm, attached to EVERY client this pool constructs. Parsed once from
|
|
122
|
+
* `YTB_MCP_SITE_BASIC_AUTH` (default) or injected by a caller/test. `null`
|
|
123
|
+
* when unset/malformed → no userinfo is spliced and behaviour is unchanged.
|
|
124
|
+
* Orthogonal to the Bearer: it rides URL userinfo, never the Authorization
|
|
125
|
+
* header (enforced in {@link RestClient}).
|
|
126
|
+
*/
|
|
127
|
+
private readonly siteBasicUserinfo;
|
|
128
|
+
constructor(_registry: SiteRegistry, secretResolver: SecretResolver, timeoutMs?: number, extraHeaders?: Record<string, string>, siteBasicUserinfo?: string | null);
|
|
111
129
|
/**
|
|
112
130
|
* The current runtime active-site override, or `null` when none is
|
|
113
131
|
* set (the registry default is in effect). Read-only peek — does not
|
|
@@ -152,11 +170,27 @@ export declare class ClientPool {
|
|
|
152
170
|
* `default_site_id` points at a stale entry).
|
|
153
171
|
*/
|
|
154
172
|
resolve(siteId?: string): Promise<PoolResolution>;
|
|
173
|
+
/**
|
|
174
|
+
* U2 — record the coarse token scope learned for a site from a
|
|
175
|
+
* health / diagnose probe of the PHP `token_scope` field. Idempotent;
|
|
176
|
+
* the latest observation wins (a key swap → re-mint can flip read↔write).
|
|
177
|
+
*/
|
|
178
|
+
setTokenScope(siteId: string, scope: 'read' | 'write'): void;
|
|
179
|
+
/**
|
|
180
|
+
* U2 — the last-known coarse token scope for a site, or `undefined` when
|
|
181
|
+
* none has been observed yet. The write-tool pre-flight ONLY fails fast on
|
|
182
|
+
* a known `read`; an `undefined` scope means "not learned" and never blocks
|
|
183
|
+
* (the REST chokepoint stays the source of truth).
|
|
184
|
+
*/
|
|
185
|
+
tokenScope(siteId: string): 'read' | 'write' | undefined;
|
|
155
186
|
/**
|
|
156
187
|
* Drop the cached client for `siteId` — used by the auth layer
|
|
157
188
|
* after a `401 invalid_kid` so the next call re-runs the bearer
|
|
158
189
|
* resolve and builds a fresh {@link RestClient}.
|
|
159
190
|
*
|
|
191
|
+
* Also drops the learned token scope: a re-resolve may mint against a
|
|
192
|
+
* different key, so a stale read/write verdict must not survive.
|
|
193
|
+
*
|
|
160
194
|
* No-op when `siteId` is not in the cache.
|
|
161
195
|
*/
|
|
162
196
|
invalidate(siteId: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"client-pool.d.ts","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IACzC,SAAgB,IAAI,EAAG,iBAAiB,CAAU;gBAG9C,OAAO,SAG6E;CAK3F;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAInB,MAAM,EAAE,MAAM;aACd,SAAS,EAAE,SAAS,MAAM,EAAE;IAJhD,SAAgB,IAAI,EAAG,cAAc,CAAU;gBAG3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,MAAM,EAAE;CAQnD;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC/B;AAED;;;;;;;;GAQG;AACH,qBAAa,UAAU;IAgDf,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAjD9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEvD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuC;IAEvE;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,cAAc,CAAuB;IAE7C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IAEtD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;gBAG7B,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,cAAc,EAC9B,SAAS,GAAE,MAAe,EAC3C,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA+B,EAClE,iBAAiB,GAAE,MAAM,GAAG,IAAoC;IAMpE;;;;OAIG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAI7B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAW1C;;;;;;;;;;;;OAYG;IACH,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED;;;;;;;;;;OAUG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA0EvD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAI5D;;;;;OAKG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS;IAIxD;;;;;;;;;OASG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAInC"}
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
*/
|
|
39
39
|
import { RestClient } from '../client.js';
|
|
40
40
|
import { parseExtraHeaders } from '../net/extra-headers.js';
|
|
41
|
+
import { parseSiteBasicAuth } from '../net/site-basic-auth.js';
|
|
41
42
|
/**
|
|
42
43
|
* Thrown when `resolve()` is called without a `siteId` AND the
|
|
43
44
|
* registry has no default configured (neither `default_site_id` nor a
|
|
@@ -86,6 +87,15 @@ export class ClientPool {
|
|
|
86
87
|
secretResolver;
|
|
87
88
|
timeoutMs;
|
|
88
89
|
cache = new Map();
|
|
90
|
+
/**
|
|
91
|
+
* U2 — per-site coarse token scope (`read` | `write`), learned
|
|
92
|
+
* opportunistically when a `health` / `diagnose` call observes the PHP
|
|
93
|
+
* payload's `token_scope`. The Node write-tool pre-flight reads it to fail
|
|
94
|
+
* a write FAST (no ETag fetch, no body build) when the configured key is
|
|
95
|
+
* known read-only. Absent (`undefined`) = not yet learned → the pre-flight
|
|
96
|
+
* stays silent and the REST chokepoint remains the authority.
|
|
97
|
+
*/
|
|
98
|
+
tokenScopeCache = new Map();
|
|
89
99
|
/**
|
|
90
100
|
* Runtime active-site override (Phase 3 — `yootheme_builder_use_site`).
|
|
91
101
|
*
|
|
@@ -108,11 +118,21 @@ export class ClientPool {
|
|
|
108
118
|
* {@link RestClient}).
|
|
109
119
|
*/
|
|
110
120
|
extraHeaders;
|
|
111
|
-
|
|
121
|
+
/**
|
|
122
|
+
* U3 — percent-encoded `user:pass` userinfo for a site-level HTTP Basic-Auth
|
|
123
|
+
* realm, attached to EVERY client this pool constructs. Parsed once from
|
|
124
|
+
* `YTB_MCP_SITE_BASIC_AUTH` (default) or injected by a caller/test. `null`
|
|
125
|
+
* when unset/malformed → no userinfo is spliced and behaviour is unchanged.
|
|
126
|
+
* Orthogonal to the Bearer: it rides URL userinfo, never the Authorization
|
|
127
|
+
* header (enforced in {@link RestClient}).
|
|
128
|
+
*/
|
|
129
|
+
siteBasicUserinfo;
|
|
130
|
+
constructor(_registry, secretResolver, timeoutMs = 15_000, extraHeaders = parseExtraHeaders().headers, siteBasicUserinfo = parseSiteBasicAuth().userinfo) {
|
|
112
131
|
this._registry = _registry;
|
|
113
132
|
this.secretResolver = secretResolver;
|
|
114
133
|
this.timeoutMs = timeoutMs;
|
|
115
134
|
this.extraHeaders = extraHeaders;
|
|
135
|
+
this.siteBasicUserinfo = siteBasicUserinfo;
|
|
116
136
|
}
|
|
117
137
|
/**
|
|
118
138
|
* The current runtime active-site override, or `null` when none is
|
|
@@ -219,6 +239,9 @@ export class ClientPool {
|
|
|
219
239
|
...(Object.keys(this.extraHeaders).length > 0
|
|
220
240
|
? { extraHeaders: this.extraHeaders }
|
|
221
241
|
: {}),
|
|
242
|
+
...(this.siteBasicUserinfo !== null
|
|
243
|
+
? { siteBasicUserinfo: this.siteBasicUserinfo }
|
|
244
|
+
: {}),
|
|
222
245
|
});
|
|
223
246
|
this.cache.set(id, client);
|
|
224
247
|
}
|
|
@@ -238,15 +261,36 @@ export class ClientPool {
|
|
|
238
261
|
};
|
|
239
262
|
return { client, site: resolved };
|
|
240
263
|
}
|
|
264
|
+
/**
|
|
265
|
+
* U2 — record the coarse token scope learned for a site from a
|
|
266
|
+
* health / diagnose probe of the PHP `token_scope` field. Idempotent;
|
|
267
|
+
* the latest observation wins (a key swap → re-mint can flip read↔write).
|
|
268
|
+
*/
|
|
269
|
+
setTokenScope(siteId, scope) {
|
|
270
|
+
this.tokenScopeCache.set(siteId, scope);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* U2 — the last-known coarse token scope for a site, or `undefined` when
|
|
274
|
+
* none has been observed yet. The write-tool pre-flight ONLY fails fast on
|
|
275
|
+
* a known `read`; an `undefined` scope means "not learned" and never blocks
|
|
276
|
+
* (the REST chokepoint stays the source of truth).
|
|
277
|
+
*/
|
|
278
|
+
tokenScope(siteId) {
|
|
279
|
+
return this.tokenScopeCache.get(siteId);
|
|
280
|
+
}
|
|
241
281
|
/**
|
|
242
282
|
* Drop the cached client for `siteId` — used by the auth layer
|
|
243
283
|
* after a `401 invalid_kid` so the next call re-runs the bearer
|
|
244
284
|
* resolve and builds a fresh {@link RestClient}.
|
|
245
285
|
*
|
|
286
|
+
* Also drops the learned token scope: a re-resolve may mint against a
|
|
287
|
+
* different key, so a stale read/write verdict must not survive.
|
|
288
|
+
*
|
|
246
289
|
* No-op when `siteId` is not in the cache.
|
|
247
290
|
*/
|
|
248
291
|
invalidate(siteId) {
|
|
249
292
|
this.cache.delete(siteId);
|
|
293
|
+
this.tokenScopeCache.delete(siteId);
|
|
250
294
|
}
|
|
251
295
|
}
|
|
252
296
|
//# sourceMappingURL=client-pool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-pool.js","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"client-pool.js","sourceRoot":"","sources":["../../src/sites/client-pool.ts"],"names":[],"mappings":"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"}
|