@microsoft/teamsfx-core 3.0.15-beta.2026072312.0 → 3.0.15-beta.2026072911.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/build/common/mcpToolFetcher.d.ts +61 -2
- package/build/common/mcpToolFetcher.d.ts.map +1 -1
- package/build/common/mcpToolFetcher.js +256 -34
- package/build/common/mcpToolFetcher.js.map +1 -1
- package/build/common/templates-config.json +3 -3
- package/build/component/generator/declarativeAgent/helper.d.ts.map +1 -1
- package/build/component/generator/declarativeAgent/helper.js +25 -2
- package/build/component/generator/declarativeAgent/helper.js.map +1 -1
- package/build/component/generator/openApiSpec/helper.d.ts.map +1 -1
- package/build/component/generator/openApiSpec/helper.js +13 -1
- package/build/component/generator/openApiSpec/helper.js.map +1 -1
- package/build/component/generator/templates/metadata/index.d.ts +15 -0
- package/build/component/generator/templates/metadata/index.d.ts.map +1 -1
- package/build/component/generator/templates/metadata/index.js +39 -0
- package/build/component/generator/templates/metadata/index.js.map +1 -1
- package/build/component/utils/mcpAuthScaffolder.d.ts +22 -0
- package/build/component/utils/mcpAuthScaffolder.d.ts.map +1 -1
- package/build/component/utils/mcpAuthScaffolder.js +30 -4
- package/build/component/utils/mcpAuthScaffolder.js.map +1 -1
- package/build/core/FxCore.declarativeAgent.d.ts.map +1 -1
- package/build/core/FxCore.declarativeAgent.js +61 -3
- package/build/core/FxCore.declarativeAgent.js.map +1 -1
- package/build/core/FxCore.js +1 -1
- package/build/core/FxCore.js.map +1 -1
- package/build/core/createProjectFrontDoor.d.ts.map +1 -1
- package/build/core/createProjectFrontDoor.js +2 -0
- package/build/core/createProjectFrontDoor.js.map +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.d.ts.map +1 -1
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/question/create.d.ts.map +1 -1
- package/build/question/create.js +2 -1
- package/build/question/create.js.map +1 -1
- package/build/question/other.d.ts.map +1 -1
- package/build/question/other.js +9 -0
- package/build/question/other.js.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts +19 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.d.ts.map +1 -1
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js +39 -0
- package/build/question/scaffold/vsc/teamsProjectTypeNode.js.map +1 -1
- package/build/v4/collectInputs/collectInputs.d.ts +1 -1
- package/build/v4/collectInputs/collectInputs.d.ts.map +1 -1
- package/build/v4/collectInputs/collectInputs.js +13 -0
- package/build/v4/collectInputs/collectInputs.js.map +1 -1
- package/build/v4/mcp/mcpAuthAction.d.ts +8 -0
- package/build/v4/mcp/mcpAuthAction.d.ts.map +1 -1
- package/build/v4/mcp/mcpAuthAction.js +27 -12
- package/build/v4/mcp/mcpAuthAction.js.map +1 -1
- package/build/v4/mcp/mcpAuthScaffold.d.ts.map +1 -1
- package/build/v4/mcp/mcpAuthScaffold.js +5 -2
- package/build/v4/mcp/mcpAuthScaffold.js.map +1 -1
- package/build/v4/renderContext/buildRenderContext.d.ts.map +1 -1
- package/build/v4/renderContext/buildRenderContext.js +3 -4
- package/build/v4/renderContext/buildRenderContext.js.map +1 -1
- package/build/v4/runtime/whitelist.d.ts +27 -0
- package/build/v4/runtime/whitelist.d.ts.map +1 -1
- package/build/v4/runtime/whitelist.js +156 -1
- package/build/v4/runtime/whitelist.js.map +1 -1
- package/build/v4/surface/deriveCreateOptions.d.ts.map +1 -1
- package/build/v4/surface/deriveCreateOptions.js +5 -2
- package/build/v4/surface/deriveCreateOptions.js.map +1 -1
- package/build/v4/surface/uiPromptUI.d.ts.map +1 -1
- package/build/v4/surface/uiPromptUI.js +9 -4
- package/build/v4/surface/uiPromptUI.js.map +1 -1
- package/package.json +6 -6
- package/resource/package.nls.cs.json +56 -55
- package/resource/package.nls.de.json +2 -1
- package/resource/package.nls.es.json +55 -54
- package/resource/package.nls.fr.json +56 -55
- package/resource/package.nls.it.json +55 -54
- package/resource/package.nls.ja.json +56 -55
- package/resource/package.nls.json +8 -3
- package/resource/package.nls.ko.json +56 -55
- package/resource/package.nls.pl.json +56 -55
- package/resource/package.nls.pt-BR.json +56 -55
- package/resource/package.nls.ru.json +56 -55
- package/resource/package.nls.tr.json +56 -55
- package/resource/package.nls.zh-Hans.json +56 -55
- package/resource/package.nls.zh-Hant.json +56 -55
- package/resource/templates/package.nls.cs.json +16 -10
- package/resource/templates/package.nls.de.json +16 -10
- package/resource/templates/package.nls.es.json +16 -10
- package/resource/templates/package.nls.fr.json +16 -10
- package/resource/templates/package.nls.it.json +16 -10
- package/resource/templates/package.nls.ja.json +16 -10
- package/resource/templates/package.nls.ko.json +17 -11
- package/resource/templates/package.nls.pl.json +16 -10
- package/resource/templates/package.nls.pt-BR.json +16 -10
- package/resource/templates/package.nls.ru.json +16 -10
- package/resource/templates/package.nls.tr.json +16 -10
- package/resource/templates/package.nls.zh-Hans.json +16 -10
- package/resource/templates/package.nls.zh-Hant.json +16 -10
- package/templates/fallback/common.zip +0 -0
- package/templates/fallback/csharp.zip +0 -0
- package/templates/fallback/js.zip +0 -0
- package/templates/fallback/python.zip +0 -0
- package/templates/fallback/ts.zip +0 -0
- package/templates/metadata.zip +0 -0
- package/templates/v4/create-selector.json +18 -0
- package/templates/v4/floor.json +1 -1
- package/templates/v4/templates-metadata.zip +0 -0
- package/templates/v4/templates.zip +0 -0
|
@@ -14,11 +14,31 @@ export interface MCPFetchResult {
|
|
|
14
14
|
export declare function fetchMCPTools(serverUrl: string): Promise<MCPFetchResult>;
|
|
15
15
|
/** Read MCP tool definitions from a wrapped or raw JSON array. */
|
|
16
16
|
export declare function readMCPToolsFromFile(filePath: string): Promise<MCPTool[]>;
|
|
17
|
+
/**
|
|
18
|
+
* What a probe learned about the URL itself, independently of whether authorization is needed.
|
|
19
|
+
*
|
|
20
|
+
* - `confirmed`: something MCP-shaped answered — either a successful `initialize` or an OAuth
|
|
21
|
+
* challenge. The URL is right.
|
|
22
|
+
* - `notEndpoint`: the server answered definitively and the answer was not MCP. The URL is
|
|
23
|
+
* most likely wrong.
|
|
24
|
+
* - `undetermined`: nothing was learned (server error, timeout, DNS or transport failure).
|
|
25
|
+
* Says nothing about the URL and must never be reported as a problem with it.
|
|
26
|
+
*/
|
|
27
|
+
export type MCPEndpointStatus = "confirmed" | "notEndpoint" | "undetermined";
|
|
17
28
|
export interface MCPAuthProbeResult {
|
|
18
29
|
requiresAuth: boolean;
|
|
19
30
|
authMetadataUrl?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Whether the URL was confirmed to be an MCP endpoint. Reported separately from `requiresAuth`
|
|
33
|
+
* because it says whether the URL is right, not whether authorization is missing. A mistyped
|
|
34
|
+
* URL commonly still serves an ordinary page on GET — the host's landing page, say — which
|
|
35
|
+
* makes it look reachable; only the `initialize` POST exposes that nothing MCP is there.
|
|
36
|
+
*/
|
|
37
|
+
endpointStatus: MCPEndpointStatus;
|
|
38
|
+
/** The HTTP status behind a `notEndpoint` verdict. Absent for the other two states. */
|
|
39
|
+
responseStatus?: number;
|
|
20
40
|
}
|
|
21
|
-
/** Probe an MCP streamable-HTTP endpoint for an OAuth challenge. */
|
|
41
|
+
/** Probe an MCP streamable-HTTP endpoint for an OAuth challenge and for the URL's validity. */
|
|
22
42
|
export declare function probeMCPServerAuth(serverUrl: string): Promise<MCPAuthProbeResult>;
|
|
23
43
|
export interface MCPOAuthMetadata {
|
|
24
44
|
authorizationUrl: string;
|
|
@@ -26,6 +46,45 @@ export interface MCPOAuthMetadata {
|
|
|
26
46
|
refreshUrl?: string;
|
|
27
47
|
wellKnownUrl: string;
|
|
28
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Build the ordered list of authorization-server metadata URLs to probe for an issuer.
|
|
51
|
+
*
|
|
52
|
+
* Providers disagree on which discovery form they serve: RFC 8414 §3.1 mandates inserting
|
|
53
|
+
* `/.well-known/oauth-authorization-server` between the host and the issuer path, while
|
|
54
|
+
* OpenID Connect Discovery §4 appends `/.well-known/openid-configuration` to the issuer.
|
|
55
|
+
* Microsoft Entra, for example, serves ONLY the appended OIDC form — the RFC 8414 insertion
|
|
56
|
+
* form returns 404 — so probing a single form silently loses the endpoints for whole classes
|
|
57
|
+
* of identity providers. Candidates are deduplicated (a host-only issuer collapses the
|
|
58
|
+
* insertion and append forms) and returned in RFC-preference order.
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildWellKnownCandidates(issuer: string): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Build the ordered list of authorization-server metadata URLs to probe for an MCP server that
|
|
63
|
+
* never pointed at an authorization server.
|
|
64
|
+
*
|
|
65
|
+
* MCP servers written against the 2025-03-26 authorization spec are their own authorization
|
|
66
|
+
* server: they publish RFC 8414 metadata at the origin root and ship no RFC 9728
|
|
67
|
+
* protected-resource document at all. Such a server answers the 401 challenge with `realm`
|
|
68
|
+
* alone, so `resource_metadata` discovery dead-ends and the endpoints have to be derived from
|
|
69
|
+
* the server URL instead. Path-derived forms are probed first, because a host exposing several
|
|
70
|
+
* MCP endpoints may serve per-endpoint metadata; the origin root is the last resort.
|
|
71
|
+
*/
|
|
72
|
+
export declare function buildMCPServerWellKnownCandidates(mcpServerUrl: string): string[];
|
|
73
|
+
/**
|
|
74
|
+
* Build the RFC 9728 protected-resource metadata URLs to probe for an MCP server that never
|
|
75
|
+
* advertised one.
|
|
76
|
+
*
|
|
77
|
+
* A server only hands out its `resource_metadata` location inside a `WWW-Authenticate`
|
|
78
|
+
* challenge, and a server that defers authorization to the individual tool calls answers an
|
|
79
|
+
* unauthenticated `initialize` with a plain 200 and no challenge at all — Google's Gmail,
|
|
80
|
+
* Calendar and Drive servers do exactly that, yet each publishes a protected-resource document
|
|
81
|
+
* naming `https://accounts.google.com/`. Waiting to be told therefore loses the metadata for a
|
|
82
|
+
* whole class of servers, so the document is derived from the resource URL instead, as MCP's
|
|
83
|
+
* authorization spec requires of clients. RFC 9728 §3.1 inserts the well-known segment between
|
|
84
|
+
* the host and the resource path; the path-less form follows for servers that publish at the
|
|
85
|
+
* origin root only.
|
|
86
|
+
*/
|
|
87
|
+
export declare function buildProtectedResourceCandidates(mcpServerUrl: string): string[];
|
|
29
88
|
/** Resolve OAuth endpoints from MCP resource or authorization-server metadata. */
|
|
30
|
-
export declare function resolveMCPOAuthMetadata(authMetadataUrl?: string, wellKnownUrl?: string): Promise<MCPOAuthMetadata>;
|
|
89
|
+
export declare function resolveMCPOAuthMetadata(authMetadataUrl?: string, wellKnownUrl?: string, mcpServerUrl?: string): Promise<MCPOAuthMetadata>;
|
|
31
90
|
//# sourceMappingURL=mcpToolFetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpToolFetcher.d.ts","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcpToolFetcher.d.ts","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,2DAA2D;AAC3D,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0E9E;AAED,kEAAkE;AAClE,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA8B/E;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;AAmC7E,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,cAAc,EAAE,iBAAiB,CAAC;IAClC,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA0DD,+FAA+F;AAC/F,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA8CvF;AAED,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAajE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAUhF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE,CAU/E;AA4CD,kFAAkF;AAClF,wBAAsB,uBAAuB,CAC3C,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAgD3B"}
|
|
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
5
5
|
exports.fetchMCPTools = fetchMCPTools;
|
|
6
6
|
exports.readMCPToolsFromFile = readMCPToolsFromFile;
|
|
7
7
|
exports.probeMCPServerAuth = probeMCPServerAuth;
|
|
8
|
+
exports.buildWellKnownCandidates = buildWellKnownCandidates;
|
|
9
|
+
exports.buildMCPServerWellKnownCandidates = buildMCPServerWellKnownCandidates;
|
|
10
|
+
exports.buildProtectedResourceCandidates = buildProtectedResourceCandidates;
|
|
8
11
|
exports.resolveMCPOAuthMetadata = resolveMCPOAuthMetadata;
|
|
9
12
|
const tslib_1 = require("tslib");
|
|
10
13
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
@@ -112,7 +115,92 @@ async function readMCPToolsFromFile(filePath) {
|
|
|
112
115
|
};
|
|
113
116
|
});
|
|
114
117
|
}
|
|
115
|
-
/**
|
|
118
|
+
/** HTTP statuses treated as proof that no MCP endpoint is routed at the URL.
|
|
119
|
+
*
|
|
120
|
+
* Deliberately enumerated rather than "any 4xx": measurements across nine live servers only ever
|
|
121
|
+
* produced these three for a wrong URL (404 from routing, 405 from an endpoint that exists but
|
|
122
|
+
* rejects the method, 403 from a WAF in front of the app). Statuses such as 429 or 408 are
|
|
123
|
+
* transient and would slander a URL that is in fact correct. 400 is excluded on purpose: the
|
|
124
|
+
* transport spec requires a server to answer 400 when it rejects the `MCP-Protocol-Version`,
|
|
125
|
+
* so a valid endpoint may well produce one for this probe. */
|
|
126
|
+
const NOT_AN_ENDPOINT_STATUSES = [403, 404, 405];
|
|
127
|
+
/** How long to wait for a deprecated HTTP+SSE server to name its message endpoint. */
|
|
128
|
+
const LEGACY_SSE_TIMEOUT_MS = 5000;
|
|
129
|
+
/** Stop buffering an event stream that is not going to name an endpoint. */
|
|
130
|
+
const LEGACY_SSE_MAX_BYTES = 8192;
|
|
131
|
+
/**
|
|
132
|
+
* A 2xx alone proves nothing: a truncated URL on a host that serves a landing page answers 200
|
|
133
|
+
* with HTML. The JSON-RPC envelope in the payload is the actual proof. The body text is searched
|
|
134
|
+
* instead of the frames being parsed because that works for both `application/json` and the
|
|
135
|
+
* `text/event-stream` framing streamable-HTTP servers use — `jsonrpc` sits inside the `data:`
|
|
136
|
+
* payload either way. The quotes keep an HTML page that merely mentions the word from matching.
|
|
137
|
+
*/
|
|
138
|
+
function carriesJSONRPCEnvelope(body) {
|
|
139
|
+
if (typeof body === "string") {
|
|
140
|
+
return body.includes('"jsonrpc"');
|
|
141
|
+
}
|
|
142
|
+
if (body && typeof body === "object") {
|
|
143
|
+
return "jsonrpc" in body;
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Read an event stream only as far as the first `endpoint` event, which is how a 2024-11-05
|
|
149
|
+
* server announces where its messages go. Anything else — the stream ending, an error, a
|
|
150
|
+
* stream that just keeps talking, a server that never answers — means no such announcement.
|
|
151
|
+
*/
|
|
152
|
+
function announcesLegacyMessageEndpoint(stream) {
|
|
153
|
+
return new Promise((resolve) => {
|
|
154
|
+
let buffered = "";
|
|
155
|
+
const settle = (found) => {
|
|
156
|
+
clearTimeout(timer);
|
|
157
|
+
stream.destroy();
|
|
158
|
+
resolve(found);
|
|
159
|
+
};
|
|
160
|
+
const timer = setTimeout(() => settle(false), LEGACY_SSE_TIMEOUT_MS);
|
|
161
|
+
stream.on("data", (chunk) => {
|
|
162
|
+
buffered += chunk.toString();
|
|
163
|
+
if (/^event:\s*endpoint\s*$/m.test(buffered)) {
|
|
164
|
+
settle(true);
|
|
165
|
+
}
|
|
166
|
+
else if (buffered.length > LEGACY_SSE_MAX_BYTES) {
|
|
167
|
+
settle(false);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
stream.on("end", () => settle(false));
|
|
171
|
+
stream.on("error", () => settle(false));
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Ask the URL, the way the MCP transport spec's backwards-compatibility rule prescribes,
|
|
176
|
+
* whether a deprecated HTTP+SSE server is listening there.
|
|
177
|
+
*
|
|
178
|
+
* A 2024-11-05 server has no streamable-HTTP endpoint to POST to, so it answers the
|
|
179
|
+
* `initialize` POST with a 4xx — the spec names 405 and 404 explicitly. Reading that 4xx as
|
|
180
|
+
* proof of a wrong URL would therefore condemn a whole generation of valid servers. The spec's
|
|
181
|
+
* own disambiguation is to open an SSE stream with GET: an HTTP+SSE server replies
|
|
182
|
+
* `text/event-stream` and names its message endpoint in the first event.
|
|
183
|
+
*/
|
|
184
|
+
async function servesLegacySSETransport(serverUrl) {
|
|
185
|
+
try {
|
|
186
|
+
const response = await axios_1.default.get(serverUrl, {
|
|
187
|
+
timeout: LEGACY_SSE_TIMEOUT_MS,
|
|
188
|
+
responseType: "stream",
|
|
189
|
+
headers: { Accept: "text/event-stream" },
|
|
190
|
+
});
|
|
191
|
+
const contentType = String(response.headers?.["content-type"] ?? "");
|
|
192
|
+
if (!contentType.includes("text/event-stream")) {
|
|
193
|
+
response.data?.destroy?.();
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
return await announcesLegacyMessageEndpoint(response.data);
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
// A GET that fails says only that the old transport is not there either.
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/** Probe an MCP streamable-HTTP endpoint for an OAuth challenge and for the URL's validity. */
|
|
116
204
|
async function probeMCPServerAuth(serverUrl) {
|
|
117
205
|
const initializeBody = {
|
|
118
206
|
jsonrpc: "2.0",
|
|
@@ -125,17 +213,22 @@ async function probeMCPServerAuth(serverUrl) {
|
|
|
125
213
|
},
|
|
126
214
|
};
|
|
127
215
|
try {
|
|
128
|
-
await axios_1.default.post(serverUrl, initializeBody, {
|
|
216
|
+
const response = await axios_1.default.post(serverUrl, initializeBody, {
|
|
129
217
|
timeout: 10000,
|
|
130
218
|
headers: {
|
|
131
219
|
"Content-Type": "application/json",
|
|
132
220
|
Accept: "application/json, text/event-stream",
|
|
133
221
|
},
|
|
134
222
|
});
|
|
135
|
-
return
|
|
223
|
+
return carriesJSONRPCEnvelope(response.data)
|
|
224
|
+
? { requiresAuth: false, endpointStatus: "confirmed" }
|
|
225
|
+
: { requiresAuth: false, endpointStatus: "notEndpoint", responseStatus: response.status };
|
|
136
226
|
}
|
|
137
227
|
catch (error) {
|
|
138
|
-
|
|
228
|
+
const status = error?.response?.status ?? error?.status;
|
|
229
|
+
if (status === 401) {
|
|
230
|
+
// Only something that means to be a protected resource issues an OAuth challenge, so a
|
|
231
|
+
// 401 confirms the endpoint just as firmly as a successful initialize does.
|
|
139
232
|
const wwwAuth = error?.response?.headers?.["www-authenticate"];
|
|
140
233
|
let authMetadataUrl;
|
|
141
234
|
if (wwwAuth) {
|
|
@@ -144,39 +237,168 @@ async function probeMCPServerAuth(serverUrl) {
|
|
|
144
237
|
authMetadataUrl = match[1];
|
|
145
238
|
}
|
|
146
239
|
}
|
|
147
|
-
return { requiresAuth: true, authMetadataUrl };
|
|
240
|
+
return { requiresAuth: true, authMetadataUrl, endpointStatus: "confirmed" };
|
|
241
|
+
}
|
|
242
|
+
if (typeof status === "number" && NOT_AN_ENDPOINT_STATUSES.includes(status)) {
|
|
243
|
+
// The spec reads a 4xx here as "this may be the old transport", not as "wrong URL", so
|
|
244
|
+
// the verdict is not settled until HTTP+SSE has been ruled out.
|
|
245
|
+
return (await servesLegacySSETransport(serverUrl))
|
|
246
|
+
? { requiresAuth: false, endpointStatus: "confirmed" }
|
|
247
|
+
: { requiresAuth: false, endpointStatus: "notEndpoint", responseStatus: status };
|
|
248
|
+
}
|
|
249
|
+
return { requiresAuth: false, endpointStatus: "undetermined" };
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Build the ordered list of authorization-server metadata URLs to probe for an issuer.
|
|
254
|
+
*
|
|
255
|
+
* Providers disagree on which discovery form they serve: RFC 8414 §3.1 mandates inserting
|
|
256
|
+
* `/.well-known/oauth-authorization-server` between the host and the issuer path, while
|
|
257
|
+
* OpenID Connect Discovery §4 appends `/.well-known/openid-configuration` to the issuer.
|
|
258
|
+
* Microsoft Entra, for example, serves ONLY the appended OIDC form — the RFC 8414 insertion
|
|
259
|
+
* form returns 404 — so probing a single form silently loses the endpoints for whole classes
|
|
260
|
+
* of identity providers. Candidates are deduplicated (a host-only issuer collapses the
|
|
261
|
+
* insertion and append forms) and returned in RFC-preference order.
|
|
262
|
+
*/
|
|
263
|
+
function buildWellKnownCandidates(issuer) {
|
|
264
|
+
const issuerUrl = new URL(issuer);
|
|
265
|
+
const origin = `${issuerUrl.protocol}//${issuerUrl.host}`;
|
|
266
|
+
// A trailing slash makes providers such as Notion return 404 for the insertion form.
|
|
267
|
+
const issuerPath = issuerUrl.pathname === "/" ? "" : issuerUrl.pathname.replace(/\/+$/, "");
|
|
268
|
+
return [
|
|
269
|
+
...new Set([
|
|
270
|
+
`${origin}/.well-known/oauth-authorization-server${issuerPath}`,
|
|
271
|
+
`${origin}/.well-known/openid-configuration${issuerPath}`,
|
|
272
|
+
`${origin}${issuerPath}/.well-known/oauth-authorization-server`,
|
|
273
|
+
`${origin}${issuerPath}/.well-known/openid-configuration`,
|
|
274
|
+
]),
|
|
275
|
+
];
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Build the ordered list of authorization-server metadata URLs to probe for an MCP server that
|
|
279
|
+
* never pointed at an authorization server.
|
|
280
|
+
*
|
|
281
|
+
* MCP servers written against the 2025-03-26 authorization spec are their own authorization
|
|
282
|
+
* server: they publish RFC 8414 metadata at the origin root and ship no RFC 9728
|
|
283
|
+
* protected-resource document at all. Such a server answers the 401 challenge with `realm`
|
|
284
|
+
* alone, so `resource_metadata` discovery dead-ends and the endpoints have to be derived from
|
|
285
|
+
* the server URL instead. Path-derived forms are probed first, because a host exposing several
|
|
286
|
+
* MCP endpoints may serve per-endpoint metadata; the origin root is the last resort.
|
|
287
|
+
*/
|
|
288
|
+
function buildMCPServerWellKnownCandidates(mcpServerUrl) {
|
|
289
|
+
const serverUrl = new URL(mcpServerUrl);
|
|
290
|
+
const origin = `${serverUrl.protocol}//${serverUrl.host}`;
|
|
291
|
+
return [
|
|
292
|
+
...new Set([
|
|
293
|
+
...buildWellKnownCandidates(mcpServerUrl),
|
|
294
|
+
`${origin}/.well-known/oauth-authorization-server`,
|
|
295
|
+
`${origin}/.well-known/openid-configuration`,
|
|
296
|
+
]),
|
|
297
|
+
];
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Build the RFC 9728 protected-resource metadata URLs to probe for an MCP server that never
|
|
301
|
+
* advertised one.
|
|
302
|
+
*
|
|
303
|
+
* A server only hands out its `resource_metadata` location inside a `WWW-Authenticate`
|
|
304
|
+
* challenge, and a server that defers authorization to the individual tool calls answers an
|
|
305
|
+
* unauthenticated `initialize` with a plain 200 and no challenge at all — Google's Gmail,
|
|
306
|
+
* Calendar and Drive servers do exactly that, yet each publishes a protected-resource document
|
|
307
|
+
* naming `https://accounts.google.com/`. Waiting to be told therefore loses the metadata for a
|
|
308
|
+
* whole class of servers, so the document is derived from the resource URL instead, as MCP's
|
|
309
|
+
* authorization spec requires of clients. RFC 9728 §3.1 inserts the well-known segment between
|
|
310
|
+
* the host and the resource path; the path-less form follows for servers that publish at the
|
|
311
|
+
* origin root only.
|
|
312
|
+
*/
|
|
313
|
+
function buildProtectedResourceCandidates(mcpServerUrl) {
|
|
314
|
+
const serverUrl = new URL(mcpServerUrl);
|
|
315
|
+
const origin = `${serverUrl.protocol}//${serverUrl.host}`;
|
|
316
|
+
const resourcePath = serverUrl.pathname === "/" ? "" : serverUrl.pathname.replace(/\/+$/, "");
|
|
317
|
+
return [
|
|
318
|
+
...new Set([
|
|
319
|
+
`${origin}/.well-known/oauth-protected-resource${resourcePath}`,
|
|
320
|
+
`${origin}/.well-known/oauth-protected-resource`,
|
|
321
|
+
]),
|
|
322
|
+
];
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Read the RFC 9728 protected-resource document the server advertised and turn its first
|
|
326
|
+
* authorization server into discovery candidates. Returns an empty list when the document
|
|
327
|
+
* names no authorization server.
|
|
328
|
+
*/
|
|
329
|
+
async function candidatesFromProtectedResourceMetadata(authMetadataUrl, canFallBack) {
|
|
330
|
+
let response;
|
|
331
|
+
try {
|
|
332
|
+
response = await axios_1.default.get(authMetadataUrl);
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
// A server advertising a document it cannot serve is broken, but the MCP server URL may
|
|
336
|
+
// still lead to the authorization server, so let the caller try that before failing.
|
|
337
|
+
if (canFallBack) {
|
|
338
|
+
return [];
|
|
148
339
|
}
|
|
149
|
-
|
|
340
|
+
throw error;
|
|
341
|
+
}
|
|
342
|
+
const issuers = response.data?.authorization_servers;
|
|
343
|
+
if (response.status === 200 && Array.isArray(issuers) && issuers.length > 0) {
|
|
344
|
+
return buildWellKnownCandidates(issuers[0]);
|
|
150
345
|
}
|
|
346
|
+
return [];
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Look for a protected-resource document at the locations RFC 9728 derives from the MCP server
|
|
350
|
+
* URL. The first document naming an authorization server wins; a location that is absent only
|
|
351
|
+
* means this server publishes at the other one.
|
|
352
|
+
*/
|
|
353
|
+
async function candidatesFromDerivedProtectedResource(mcpServerUrl) {
|
|
354
|
+
for (const candidate of buildProtectedResourceCandidates(mcpServerUrl)) {
|
|
355
|
+
const candidates = await candidatesFromProtectedResourceMetadata(candidate, true);
|
|
356
|
+
if (candidates.length > 0) {
|
|
357
|
+
return candidates;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
return [];
|
|
151
361
|
}
|
|
152
362
|
/** Resolve OAuth endpoints from MCP resource or authorization-server metadata. */
|
|
153
|
-
async function resolveMCPOAuthMetadata(authMetadataUrl, wellKnownUrl) {
|
|
154
|
-
let
|
|
155
|
-
if (
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
363
|
+
async function resolveMCPOAuthMetadata(authMetadataUrl, wellKnownUrl, mcpServerUrl) {
|
|
364
|
+
let candidates;
|
|
365
|
+
if (wellKnownUrl) {
|
|
366
|
+
// An explicitly configured URL is authoritative — never substitute a guess for it.
|
|
367
|
+
candidates = [wellKnownUrl];
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
candidates = authMetadataUrl
|
|
371
|
+
? await candidatesFromProtectedResourceMetadata(authMetadataUrl, !!mcpServerUrl)
|
|
372
|
+
: [];
|
|
373
|
+
if (candidates.length === 0 && mcpServerUrl) {
|
|
374
|
+
// The authoritative answer, when the server publishes one, is its protected-resource
|
|
375
|
+
// document — so try that before assuming the server is its own authorization server.
|
|
376
|
+
candidates = await candidatesFromDerivedProtectedResource(mcpServerUrl);
|
|
377
|
+
}
|
|
378
|
+
if (candidates.length === 0 && mcpServerUrl) {
|
|
379
|
+
candidates = buildMCPServerWellKnownCandidates(mcpServerUrl);
|
|
380
|
+
}
|
|
381
|
+
if (candidates.length === 0) {
|
|
382
|
+
throw new Error((0, localizeUtils_1.getLocalizedString)(authMetadataUrl
|
|
383
|
+
? "core.MCPForDA.mcpServerMetadataUrlNotFound"
|
|
384
|
+
: "core.MCPForDA.mcpAuthMetadataUrlNotFound"));
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
for (const candidate of candidates) {
|
|
388
|
+
try {
|
|
389
|
+
const metadataResponse = await axios_1.default.get(candidate);
|
|
390
|
+
const authorizationUrl = metadataResponse.data?.authorization_endpoint;
|
|
391
|
+
const tokenUrl = metadataResponse.data?.token_endpoint;
|
|
392
|
+
const refreshUrl = metadataResponse.data?.refresh_endpoint;
|
|
393
|
+
if (authorizationUrl && tokenUrl) {
|
|
394
|
+
return { authorizationUrl, tokenUrl, refreshUrl, wellKnownUrl: candidate };
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
// A 404 / unreachable candidate just means this provider uses a different
|
|
399
|
+
// discovery form; keep probing and report every attempt if all of them fail.
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
throw new Error((0, localizeUtils_1.getLocalizedString)("core.MCPForDA.authUrlNotFound", candidates.join(", ")));
|
|
181
403
|
}
|
|
182
404
|
//# sourceMappingURL=mcpToolFetcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpToolFetcher.js","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAqBlC,sCA0EC;AAGD,oDA8BC;AAQD,gDAkCC;AAUD,0DAqCC;;AAvND,0DAA0B;AAC1B,gEAA0B;AAC1B,mDAAqD;AAgBrD,2DAA2D;AACpD,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,IAAI,eAAmC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,6DAA6D;QAC7D,iDAAiD;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,gEAAa,2CAA2C,GAAC,CAAC;QAC7E,6DAA6D;QAC7D,iDAAiD;QACjD,MAAM,EAAE,6BAA6B,EAAE,GACrC,gEAAa,oDAAoD,GAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,KAAK,GAAc,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;gBACxD,GAAG,IAAI;gBACP,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;aACpC,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,6DAA6D;YAC7D,iDAAiD;YACjD,MAAM,EAAE,MAAM,EAAE,GAAG,gEAAa,2CAA2C,GAAC,CAAC;YAC7E,6DAA6D;YAC7D,iDAAiD;YACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,gEAAa,yCAAyC,GAAC,CAAC;YAEvF,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAc,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACxD,GAAG,IAAI;oBACP,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;iBACpC,CAAC,CAAC,CAAC;gBACJ,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IACE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAC/B,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACxC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAChC,CAAC;gBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,kEAAkE;AAC3D,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IACzD,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,QAAe,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,IAAA,kCAAkB,EAAC,sCAAsC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,oCAAoC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YACxF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,oEAAoE;AAC7D,KAAK,UAAU,kBAAkB,CAAC,SAAiB;IACxD,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE;YACN,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;SACpD;KACF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE;YAC1C,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,qCAAqC;aAC9C;SACF,CAAC,CAAC;QACH,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,eAAmC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AASD,kFAAkF;AAC3E,KAAK,UAAU,uBAAuB,CAC3C,eAAwB,EACxB,YAAqB;IAErB,IAAI,oBAAoB,GAAG,YAAY,CAAC;IAExC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,0CAA0C,CAAC,CAAC,CAAC;QAClF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAClD,IACE,QAAQ,CAAC,MAAM,KAAK,GAAG;YACvB,QAAQ,CAAC,IAAI;YACb,QAAQ,CAAC,IAAI,CAAC,qBAAqB;YACnC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAC9C,CAAC;YACD,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC;YACxE,oBAAoB,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,0CAA0C,UAAU,EAAE,CAAC;QACxH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,4CAA4C,CAAC,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACvE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC;IACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAE3D,IAAI,CAAC,gBAAgB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,+BAA+B,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACxF,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcpToolFetcher.js","sourceRoot":"","sources":["../../src/common/mcpToolFetcher.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;AAsBlC,sCA0EC;AAGD,oDA8BC;AAsHD,gDA8CC;AAoBD,4DAaC;AAaD,8EAUC;AAgBD,4EAUC;AA6CD,0DAoDC;;AAtdD,0DAA0B;AAC1B,gEAA0B;AAE1B,mDAAqD;AAgBrD,2DAA2D;AACpD,KAAK,UAAU,aAAa,CAAC,SAAiB;IACnD,IAAI,eAAmC,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,EAAE,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;YAC7D,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,6DAA6D;QAC7D,iDAAiD;QACjD,MAAM,EAAE,MAAM,EAAE,GAAG,gEAAa,2CAA2C,GAAC,CAAC;QAC7E,6DAA6D;QAC7D,iDAAiD;QACjD,MAAM,EAAE,6BAA6B,EAAE,GACrC,gEAAa,oDAAoD,GAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,KAAK,GAAc,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;gBACxD,GAAG,IAAI;gBACP,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;aACpC,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACxC,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,6DAA6D;YAC7D,iDAAiD;YACjD,MAAM,EAAE,MAAM,EAAE,GAAG,gEAAa,2CAA2C,GAAC,CAAC;YAC7E,6DAA6D;YAC7D,iDAAiD;YACjD,MAAM,EAAE,kBAAkB,EAAE,GAAG,gEAAa,yCAAyC,GAAC,CAAC;YAEvF,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAEjE,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,MAAM,KAAK,GAAc,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACxD,GAAG,IAAI;oBACP,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;iBACpC,CAAC,CAAC,CAAC;gBACJ,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YACxC,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IACE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAC/B,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACxC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EAChC,CAAC;gBACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;AACH,CAAC;AAED,kEAAkE;AAC3D,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IACzD,IAAI,CAAC,CAAC,MAAM,kBAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,iCAAiC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE5C,IAAI,QAAe,CAAC;IACpB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,OAAO,CAAC;IACrB,CAAC;SAAM,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACnD,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,IAAA,kCAAkB,EAAC,sCAAsC,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;QAChC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,oCAAoC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChG,CAAC;QACD,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;YACxF,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAcD;;;;;;;8DAO8D;AAC9D,MAAM,wBAAwB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEjD,sFAAsF;AACtF,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAEnC,4EAA4E;AAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAElC;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,IAAa;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,OAAO,SAAS,IAAI,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAgBD;;;;GAIG;AACH,SAAS,8BAA8B,CAAC,MAAgB;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,CAAC,KAAc,EAAE,EAAE;YAChC,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;YAC3C,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC7B,IAAI,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,CAAC;YACf,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;gBAClD,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,wBAAwB,CAAC,SAAiB;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1C,OAAO,EAAE,qBAAqB;YAC9B,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,MAAM,8BAA8B,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,+FAA+F;AACxF,KAAK,UAAU,kBAAkB,CAAC,SAAiB;IACxD,MAAM,cAAc,GAAG;QACrB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,CAAC;QACL,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE;YACN,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;SACpD;KACF,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE;YAC3D,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,qCAAqC;aAC9C;SACF,CAAC,CAAC;QACH,OAAO,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE;YACtD,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAY,KAAK,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;QACjE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,uFAAuF;YACvF,4EAA4E;YAC5E,MAAM,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,CAAC;YAC/D,IAAI,eAAmC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC9D,IAAI,KAAK,EAAE,CAAC;oBACV,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;QAC9E,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5E,uFAAuF;YACvF,gEAAgE;YAChE,OAAO,CAAC,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE;gBACtD,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QACrF,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;IACjE,CAAC;AACH,CAAC;AASD;;;;;;;;;;GAUG;AACH,SAAgB,wBAAwB,CAAC,MAAc;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1D,qFAAqF;IACrF,MAAM,UAAU,GAAG,SAAS,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5F,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,MAAM,0CAA0C,UAAU,EAAE;YAC/D,GAAG,MAAM,oCAAoC,UAAU,EAAE;YACzD,GAAG,MAAM,GAAG,UAAU,yCAAyC;YAC/D,GAAG,MAAM,GAAG,UAAU,mCAAmC;SAC1D,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,iCAAiC,CAAC,YAAoB;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1D,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,wBAAwB,CAAC,YAAY,CAAC;YACzC,GAAG,MAAM,yCAAyC;YAClD,GAAG,MAAM,mCAAmC;SAC7C,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,gCAAgC,CAAC,YAAoB;IACnE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9F,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,MAAM,wCAAwC,YAAY,EAAE;YAC/D,GAAG,MAAM,uCAAuC;SACjD,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,uCAAuC,CACpD,eAAuB,EACvB,WAAoB;IAEpB,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wFAAwF;QACxF,qFAAqF;QACrF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5E,OAAO,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,sCAAsC,CAAC,YAAoB;IACxE,KAAK,MAAM,SAAS,IAAI,gCAAgC,CAAC,YAAY,CAAC,EAAE,CAAC;QACvE,MAAM,UAAU,GAAG,MAAM,uCAAuC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAClF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,kFAAkF;AAC3E,KAAK,UAAU,uBAAuB,CAC3C,eAAwB,EACxB,YAAqB,EACrB,YAAqB;IAErB,IAAI,UAAoB,CAAC;IAEzB,IAAI,YAAY,EAAE,CAAC;QACjB,mFAAmF;QACnF,UAAU,GAAG,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,eAAe;YAC1B,CAAC,CAAC,MAAM,uCAAuC,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC;YAChF,CAAC,CAAC,EAAE,CAAC;QAEP,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,qFAAqF;YACrF,qFAAqF;YACrF,UAAU,GAAG,MAAM,sCAAsC,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;YAC5C,UAAU,GAAG,iCAAiC,CAAC,YAAY,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,IAAA,kCAAkB,EAChB,eAAe;gBACb,CAAC,CAAC,4CAA4C;gBAC9C,CAAC,CAAC,0CAA0C,CAC/C,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,EAAE,sBAAsB,CAAC;YACvE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC;YACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,CAAC;YAC3D,IAAI,gBAAgB,IAAI,QAAQ,EAAE,CAAC;gBACjC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;YAC7E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,6EAA6E;QAC/E,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,IAAA,kCAAkB,EAAC,+BAA+B,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "~6.12",
|
|
3
|
-
"localVersion": "6.12.1-beta.
|
|
3
|
+
"localVersion": "6.12.1-beta.2026072911.0",
|
|
4
4
|
"tagPrefix": "templates@",
|
|
5
5
|
"v4tagPrefix": "templates-v4@",
|
|
6
6
|
"vstagPrefix": "templates-vs@",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"useLocalTemplate": true,
|
|
16
16
|
"v4": {
|
|
17
17
|
"range": "~6.13",
|
|
18
|
-
"bundled":
|
|
19
|
-
"localVersion": "6.13.
|
|
18
|
+
"bundled": true,
|
|
19
|
+
"localVersion": "6.13.2026072911"
|
|
20
20
|
}
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AA4BhC,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,4BAA4B,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC,CA6C5E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAiGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,2DAEhE;AAED,wBAAsB,+BAA+B,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oEAEtF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mDAE1E;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAmE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../src/component/generator/declarativeAgent/helper.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,OAAO,EAIP,OAAO,EACP,eAAe,EACf,MAAM,EAEN,oBAAoB,EACpB,MAAM,EAEN,SAAS,EACT,OAAO,EACR,MAAM,wBAAwB,CAAC;AA4BhC,OAAO,KAAK,yBAAyB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAY3D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEvF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAElF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM,EACvB,4BAA4B,EAAE,MAAM,GACnC,OAAO,CAAC,MAAM,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EAAE,OAAO,CAAC,CAAC,CA6C5E;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6BAA6B,EAAE,MAAM,CAAC;CACvC;AAMD,wBAAsB,iBAAiB,CACrC,8BAA8B,EAAE,MAAM,EACtC,sBAAsB,EAAE,MAAM,EAC9B,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAiGnD;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,oBAAoB,EAC9B,MAAM,EAAE,MAAM,GACb,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CA6E9B;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE,OAAO,2DAEhE;AAED,wBAAsB,+BAA+B,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,oEAEtF;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,mDAE1E;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC,CAmE5C;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AACD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuC5D;AAED,wBAAsB,mBAAmB,CACvC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAqP3C"}
|
|
@@ -492,7 +492,13 @@ async function generateForMCPForDA(destinationPath, inputs) {
|
|
|
492
492
|
if (injectResult.wellKnownUrlPlaceholderUsed) {
|
|
493
493
|
warnings.push({
|
|
494
494
|
type: "mcpAuthDcrWellKnownUrlPlaceholder",
|
|
495
|
-
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"
|
|
495
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"),
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
if (injectResult.oauthUrlPlaceholderUsed) {
|
|
499
|
+
warnings.push({
|
|
500
|
+
type: "mcpAuthOAuthUrlPlaceholder",
|
|
501
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthOAuthPlaceholderWarning"),
|
|
496
502
|
});
|
|
497
503
|
}
|
|
498
504
|
}
|
|
@@ -572,6 +578,17 @@ async function generateForMCPForDAWithAuth(destinationPath, aiPluginFilePath, in
|
|
|
572
578
|
if (authProbe.authMetadataUrl) {
|
|
573
579
|
inputs[questionNames_1.QuestionNames.MCPForDAAuthMetadataUrl] = authProbe.authMetadataUrl;
|
|
574
580
|
}
|
|
581
|
+
// This branch never fetches tools, so a mistyped server URL would otherwise leave no
|
|
582
|
+
// trace at all: endpoint discovery falls back to the host and happily returns its
|
|
583
|
+
// authorization server, and the scaffold looks complete. Warns on every `notEndpoint`
|
|
584
|
+
// shape, not just 404 — this is advisory, so it can be broader than the blocking rule
|
|
585
|
+
// applied when the URL is first entered.
|
|
586
|
+
if (authProbe.endpointStatus === "notEndpoint") {
|
|
587
|
+
warnings.push({
|
|
588
|
+
type: "mcpServerUrlNotAnEndpoint",
|
|
589
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpServerUrlNotAnEndpoint", mcpServerUrl, String(authProbe.responseStatus)),
|
|
590
|
+
});
|
|
591
|
+
}
|
|
575
592
|
}
|
|
576
593
|
catch {
|
|
577
594
|
// Probe failed — continue; endpoint resolution below will best-effort
|
|
@@ -610,7 +627,13 @@ async function generateForMCPForDAWithAuth(destinationPath, aiPluginFilePath, in
|
|
|
610
627
|
if (injectResult.wellKnownUrlPlaceholderUsed) {
|
|
611
628
|
warnings.push({
|
|
612
629
|
type: "mcpAuthDcrWellKnownUrlPlaceholder",
|
|
613
|
-
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"
|
|
630
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthDcrPlaceholderWarning"),
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
if (injectResult.oauthUrlPlaceholderUsed) {
|
|
634
|
+
warnings.push({
|
|
635
|
+
type: "mcpAuthOAuthUrlPlaceholder",
|
|
636
|
+
content: (0, localizeUtils_1.getLocalizedString)("core.MCPForDA.mcpAuthOAuthPlaceholderWarning"),
|
|
614
637
|
});
|
|
615
638
|
}
|
|
616
639
|
}
|