authflow-cli 0.2.0 → 0.4.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/README.md +55 -5
- package/dist/cli.js +4 -35
- package/dist/cli.js.map +1 -1
- package/dist/client-conformance.d.ts +34 -0
- package/dist/client-conformance.js +379 -0
- package/dist/client-conformance.js.map +1 -0
- package/dist/client-fixtures.d.ts +67 -0
- package/dist/client-fixtures.js +130 -0
- package/dist/client-fixtures.js.map +1 -0
- package/dist/commands/connect.js +11 -1
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/doctor.js +13 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.js +32 -5
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/plan.d.ts +6 -0
- package/dist/commands/plan.js +26 -0
- package/dist/commands/plan.js.map +1 -0
- package/dist/commands/probe.js +1 -0
- package/dist/commands/probe.js.map +1 -1
- package/dist/commands/set-connected-account.d.ts +7 -0
- package/dist/commands/set-connected-account.js +38 -0
- package/dist/commands/set-connected-account.js.map +1 -0
- package/dist/doctor.d.ts +26 -2
- package/dist/doctor.js +127 -16
- package/dist/doctor.js.map +1 -1
- package/dist/google-redirect.d.ts +31 -0
- package/dist/google-redirect.js +479 -0
- package/dist/google-redirect.js.map +1 -0
- package/dist/mcp/server.js +32 -11
- package/dist/mcp/server.js.map +1 -1
- package/dist/program.d.ts +6 -0
- package/dist/program.js +46 -0
- package/dist/program.js.map +1 -0
- package/dist/rail.js +2 -1
- package/dist/rail.js.map +1 -1
- package/dist/status.js +18 -6
- package/dist/status.js.map +1 -1
- package/dist/surface.d.ts +22 -0
- package/dist/surface.js +22 -0
- package/dist/surface.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drive the real Google sign-in challenge, then ask Google whether the rail's redirect_uri
|
|
3
|
+
* is registered on the OAuth client.
|
|
4
|
+
*
|
|
5
|
+
* This exists because a misregistered Google callback surfaces at the very end of the paid
|
|
6
|
+
* loop — after DCR, after authorize — as a Google error page that reads like a rail outage.
|
|
7
|
+
* Nothing else in the product verified it, so both sides argued from prose.
|
|
8
|
+
*
|
|
9
|
+
* A bare GET /login cannot provoke the challenge: OnGet only renders, OnPost issues the
|
|
10
|
+
* Google ChallengeResult, and both require a live authorize returnUrl (a registered client,
|
|
11
|
+
* RFC 8707 resource, and the mcp scope). That is why this probe POSTs DCR, starts /authorize,
|
|
12
|
+
* then POSTs the login form. A GET /login that 500s on a missing returnUrl is a different
|
|
13
|
+
* check, in doctor.ts.
|
|
14
|
+
*
|
|
15
|
+
* Google's registered-vs-not signal is the first 302 off accounts.google.com (do not follow
|
|
16
|
+
* it): identifier/consent means the URI is accepted; /signin/oauth/error plus the OAuth error
|
|
17
|
+
* code redirect_uri_mismatch means it is not. Status is 302 in both cases.
|
|
18
|
+
*/
|
|
19
|
+
import { createHash, randomBytes } from "node:crypto";
|
|
20
|
+
import { cursorCanonicalDcr, dcrProbeClientNamePrefix } from "./client-fixtures.js";
|
|
21
|
+
import { fetchOrNull } from "./doctor.js";
|
|
22
|
+
/** ASP.NET Google handler default CallbackPath; the rail does not override it. */
|
|
23
|
+
export const googleCallbackPath = "/signin-google";
|
|
24
|
+
const googleHost = "accounts.google.com";
|
|
25
|
+
const advisoryDetail = "Advisory — not proven. Provoking the Google challenge requires a throwaway DCR client and " +
|
|
26
|
+
"a live RFC 8707 resource, then a POST to /login with that authorize returnUrl. A pass here " +
|
|
27
|
+
"does not mean Google accepted the rail's redirect_uri.";
|
|
28
|
+
const advisoryRemedy = "Re-run with --client and --slug (not --dry-run) to register a throwaway DCR client, start " +
|
|
29
|
+
"/authorize, POST the login form, and ask Google whether the callback is registered.";
|
|
30
|
+
export function expectedGoogleCallbackUri(issuer) {
|
|
31
|
+
return `${issuer.trim().replace(/\/+$/, "")}${googleCallbackPath}`;
|
|
32
|
+
}
|
|
33
|
+
export async function checkGoogleRedirectUri(issuer, options = {}) {
|
|
34
|
+
if (options.dryRun || !options.slug) {
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
name: "google redirect_uri registered",
|
|
38
|
+
pass: true,
|
|
39
|
+
detail: options.dryRun
|
|
40
|
+
? `${advisoryDetail} --dry-run skipped the DCR POST, so the challenge was not started.`
|
|
41
|
+
: `${advisoryDetail} No --slug, so there is no resource to put on /authorize.`,
|
|
42
|
+
remedy: advisoryRemedy,
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
return probeGoogleRedirectUri(issuer, options.slug);
|
|
47
|
+
}
|
|
48
|
+
export async function probeGoogleRedirectUri(issuer, slug) {
|
|
49
|
+
const base = issuer.trim().replace(/\/+$/, "");
|
|
50
|
+
const expected = expectedGoogleCallbackUri(base);
|
|
51
|
+
const resource = await fetchResourceIdentifier(base, slug);
|
|
52
|
+
if (!resource.ok) {
|
|
53
|
+
return [resource.check];
|
|
54
|
+
}
|
|
55
|
+
const registration = await registerProbeClient(base);
|
|
56
|
+
if (!registration.ok) {
|
|
57
|
+
return [registration.check];
|
|
58
|
+
}
|
|
59
|
+
const authorize = await startAuthorize(base, {
|
|
60
|
+
clientId: registration.clientId,
|
|
61
|
+
redirectUri: registration.redirectUri,
|
|
62
|
+
resource: resource.resource,
|
|
63
|
+
});
|
|
64
|
+
if (!authorize.ok) {
|
|
65
|
+
return [authorize.check];
|
|
66
|
+
}
|
|
67
|
+
const login = await fetchLoginPage(base, authorize.loginPath);
|
|
68
|
+
if (!login.ok) {
|
|
69
|
+
return [login.check];
|
|
70
|
+
}
|
|
71
|
+
const challenge = await postGoogleChallenge(base, authorize.loginPath, login);
|
|
72
|
+
if (!challenge.ok) {
|
|
73
|
+
return [challenge.check];
|
|
74
|
+
}
|
|
75
|
+
const emitted = challenge.redirectUri;
|
|
76
|
+
const callback = sameCallbackUri(emitted, expected)
|
|
77
|
+
? {
|
|
78
|
+
name: "google callback URI",
|
|
79
|
+
pass: true,
|
|
80
|
+
detail: `Rail sent redirect_uri=${emitted}.`,
|
|
81
|
+
}
|
|
82
|
+
: {
|
|
83
|
+
name: "google callback URI",
|
|
84
|
+
pass: false,
|
|
85
|
+
detail: `Rail sent redirect_uri=${emitted}, expected ${expected}.`,
|
|
86
|
+
remedy: "This is a rail misconfiguration (AuthServer:Issuer or a proxy rewriting the Host), " +
|
|
87
|
+
"not a Google Console gap. Register the URI the rail actually emits, or fix the host " +
|
|
88
|
+
`so the challenge uses ${expected}.`,
|
|
89
|
+
};
|
|
90
|
+
const registered = await askGoogle(challenge.googleUrl, emitted);
|
|
91
|
+
return [callback, registered];
|
|
92
|
+
}
|
|
93
|
+
async function fetchResourceIdentifier(base, slug) {
|
|
94
|
+
const url = `${base}/.well-known/oauth-protected-resource/${encodeURIComponent(slug)}/mcp`;
|
|
95
|
+
const response = await fetchOrNull(url);
|
|
96
|
+
if (response.status !== 200) {
|
|
97
|
+
return {
|
|
98
|
+
ok: false,
|
|
99
|
+
check: {
|
|
100
|
+
name: "google challenge",
|
|
101
|
+
pass: false,
|
|
102
|
+
detail: `Need a live resource to start /authorize; ${url} returned ${response.status ?? response.error}.`,
|
|
103
|
+
remedy: response.status === 404
|
|
104
|
+
? `No live resource at slug '${slug}'. Check pending_requirements.`
|
|
105
|
+
: "The Google check cannot start authorize without the PRM document. File a rail bug.",
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
const document = JSON.parse(response.body ?? "");
|
|
111
|
+
const resource = typeof document.resource === "string" ? document.resource.trim() : "";
|
|
112
|
+
if (!resource) {
|
|
113
|
+
return {
|
|
114
|
+
ok: false,
|
|
115
|
+
check: {
|
|
116
|
+
name: "google challenge",
|
|
117
|
+
pass: false,
|
|
118
|
+
detail: `${url} has no resource identifier.`,
|
|
119
|
+
remedy: "PRM must name the RFC 8707 resource. File a rail bug.",
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { ok: true, resource };
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return {
|
|
127
|
+
ok: false,
|
|
128
|
+
check: {
|
|
129
|
+
name: "google challenge",
|
|
130
|
+
pass: false,
|
|
131
|
+
detail: `${url} did not return JSON.`,
|
|
132
|
+
remedy: "File this against the rail.",
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
async function registerProbeClient(base) {
|
|
138
|
+
const endpoint = `${base}/register`;
|
|
139
|
+
const redirectUri = cursorCanonicalDcr.payload.redirect_uris[2] ?? "http://127.0.0.1:8787/callback";
|
|
140
|
+
const response = await fetchOrNull(endpoint, {
|
|
141
|
+
method: "POST",
|
|
142
|
+
headers: { "Content-Type": "application/json", Accept: "application/json" },
|
|
143
|
+
body: JSON.stringify({
|
|
144
|
+
...cursorCanonicalDcr.payload,
|
|
145
|
+
client_name: `${dcrProbeClientNamePrefix} google-redirect`,
|
|
146
|
+
}),
|
|
147
|
+
});
|
|
148
|
+
if (!response.ok && response.error) {
|
|
149
|
+
return {
|
|
150
|
+
ok: false,
|
|
151
|
+
check: {
|
|
152
|
+
name: "google challenge",
|
|
153
|
+
pass: false,
|
|
154
|
+
detail: `POST ${endpoint} could not be reached: ${response.error}`,
|
|
155
|
+
remedy: "DCR is required to start /authorize. File a rail bug.",
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (response.status !== 201) {
|
|
160
|
+
return {
|
|
161
|
+
ok: false,
|
|
162
|
+
check: {
|
|
163
|
+
name: "google challenge",
|
|
164
|
+
pass: false,
|
|
165
|
+
detail: `POST ${endpoint} returned ${response.status ?? response.error}, expected 201.`,
|
|
166
|
+
remedy: "DCR must succeed before the Google challenge can be provoked. File a rail bug.",
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const body = JSON.parse(response.body ?? "");
|
|
172
|
+
const clientId = typeof body.client_id === "string" ? body.client_id : "";
|
|
173
|
+
if (!clientId) {
|
|
174
|
+
return {
|
|
175
|
+
ok: false,
|
|
176
|
+
check: {
|
|
177
|
+
name: "google challenge",
|
|
178
|
+
pass: false,
|
|
179
|
+
detail: "DCR 201 but no client_id.",
|
|
180
|
+
remedy: "File this against the rail.",
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return { ok: true, clientId, redirectUri };
|
|
185
|
+
}
|
|
186
|
+
catch {
|
|
187
|
+
return {
|
|
188
|
+
ok: false,
|
|
189
|
+
check: {
|
|
190
|
+
name: "google challenge",
|
|
191
|
+
pass: false,
|
|
192
|
+
detail: "DCR 201 but the body was not JSON.",
|
|
193
|
+
remedy: "File this against the rail.",
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async function startAuthorize(base, args) {
|
|
199
|
+
const url = new URL("/authorize", `${base}/`);
|
|
200
|
+
url.searchParams.set("response_type", "code");
|
|
201
|
+
url.searchParams.set("client_id", args.clientId);
|
|
202
|
+
url.searchParams.set("redirect_uri", args.redirectUri);
|
|
203
|
+
url.searchParams.set("scope", "mcp");
|
|
204
|
+
url.searchParams.set("resource", args.resource);
|
|
205
|
+
url.searchParams.set("code_challenge", pkceS256Challenge());
|
|
206
|
+
url.searchParams.set("code_challenge_method", "S256");
|
|
207
|
+
url.searchParams.set("state", "authflow-cli-google-redirect");
|
|
208
|
+
const response = await fetchOrNull(url.href, { redirect: "manual" });
|
|
209
|
+
const location = response.location ?? "";
|
|
210
|
+
if (response.status !== 302 || !location) {
|
|
211
|
+
return {
|
|
212
|
+
ok: false,
|
|
213
|
+
check: {
|
|
214
|
+
name: "google challenge",
|
|
215
|
+
pass: false,
|
|
216
|
+
detail: `GET /authorize returned ${response.status ?? response.error}, expected a 302 to /login.`,
|
|
217
|
+
remedy: "Authorize must send an unauthenticated user to the login page. Check that the " +
|
|
218
|
+
"resource identifier in PRM is the one the registry knows, and that PKCE S256 is accepted.",
|
|
219
|
+
},
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
let login;
|
|
223
|
+
try {
|
|
224
|
+
login = new URL(location, `${base}/`);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
return {
|
|
228
|
+
ok: false,
|
|
229
|
+
check: {
|
|
230
|
+
name: "google challenge",
|
|
231
|
+
pass: false,
|
|
232
|
+
detail: `GET /authorize redirected to an unparseable Location: '${location}'.`,
|
|
233
|
+
remedy: "File this against the rail.",
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
if (login.pathname !== "/login") {
|
|
238
|
+
return {
|
|
239
|
+
ok: false,
|
|
240
|
+
check: {
|
|
241
|
+
name: "google challenge",
|
|
242
|
+
pass: false,
|
|
243
|
+
detail: `GET /authorize redirected to ${login.pathname}, expected /login. Location=${location}`,
|
|
244
|
+
remedy: "If this is an OAuth error to the client redirect_uri, the resource parameter did not " +
|
|
245
|
+
"match a registered resource. Use the resource identifier from the PRM document.",
|
|
246
|
+
},
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
return { ok: true, loginPath: `${login.pathname}${login.search}` };
|
|
250
|
+
}
|
|
251
|
+
async function fetchLoginPage(base, loginPath) {
|
|
252
|
+
const response = await fetchOrNull(`${base}${loginPath}`, { redirect: "manual" });
|
|
253
|
+
if (response.status !== 200) {
|
|
254
|
+
return {
|
|
255
|
+
ok: false,
|
|
256
|
+
check: {
|
|
257
|
+
name: "google challenge",
|
|
258
|
+
pass: false,
|
|
259
|
+
detail: `GET ${loginPath} returned ${response.status ?? response.error}, expected 200.`,
|
|
260
|
+
remedy: "The authorize flow reached /login but the page did not render. File a rail bug.",
|
|
261
|
+
},
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
const token = antiforgeryToken(response.body ?? "");
|
|
265
|
+
if (!token) {
|
|
266
|
+
return {
|
|
267
|
+
ok: false,
|
|
268
|
+
check: {
|
|
269
|
+
name: "google challenge",
|
|
270
|
+
pass: false,
|
|
271
|
+
detail: "Login page had no __RequestVerificationToken; cannot POST the Google challenge.",
|
|
272
|
+
remedy: "File this against the rail.",
|
|
273
|
+
},
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
return { ok: true, token, cookies: cookieHeader(response.headers) };
|
|
277
|
+
}
|
|
278
|
+
async function postGoogleChallenge(base, loginPath, login) {
|
|
279
|
+
const returnUrl = new URL(loginPath, `${base}/`).searchParams.get("returnUrl") ?? "";
|
|
280
|
+
const form = new URLSearchParams();
|
|
281
|
+
form.set("__RequestVerificationToken", login.token);
|
|
282
|
+
if (returnUrl) {
|
|
283
|
+
form.set("returnUrl", returnUrl);
|
|
284
|
+
}
|
|
285
|
+
const headers = {
|
|
286
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
287
|
+
};
|
|
288
|
+
if (login.cookies) {
|
|
289
|
+
headers.cookie = login.cookies;
|
|
290
|
+
}
|
|
291
|
+
const response = await fetchOrNull(`${base}${loginPath}`, {
|
|
292
|
+
method: "POST",
|
|
293
|
+
headers,
|
|
294
|
+
body: form.toString(),
|
|
295
|
+
redirect: "manual",
|
|
296
|
+
});
|
|
297
|
+
const location = response.location ?? "";
|
|
298
|
+
if (response.status !== 302 || !location) {
|
|
299
|
+
return {
|
|
300
|
+
ok: false,
|
|
301
|
+
check: {
|
|
302
|
+
name: "google challenge",
|
|
303
|
+
pass: false,
|
|
304
|
+
detail: `POST /login returned ${response.status ?? response.error}, expected a 302 to ${googleHost}.`,
|
|
305
|
+
remedy: "Google sign-in is not configured, or the login POST did not issue a ChallengeResult. " +
|
|
306
|
+
"This is a rail configuration problem, not a Google Console gap.",
|
|
307
|
+
},
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
let googleUrl;
|
|
311
|
+
try {
|
|
312
|
+
googleUrl = new URL(location, `${base}/`);
|
|
313
|
+
}
|
|
314
|
+
catch {
|
|
315
|
+
return {
|
|
316
|
+
ok: false,
|
|
317
|
+
check: {
|
|
318
|
+
name: "google challenge",
|
|
319
|
+
pass: false,
|
|
320
|
+
detail: `POST /login redirected to an unparseable Location: '${location}'.`,
|
|
321
|
+
remedy: "File this against the rail.",
|
|
322
|
+
},
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
if (googleUrl.hostname !== googleHost) {
|
|
326
|
+
return {
|
|
327
|
+
ok: false,
|
|
328
|
+
check: {
|
|
329
|
+
name: "google challenge",
|
|
330
|
+
pass: false,
|
|
331
|
+
detail: `POST /login redirected to ${googleUrl.host}, expected ${googleHost}.`,
|
|
332
|
+
remedy: "The login challenge did not send the browser to Google. Google sign-in is not " +
|
|
333
|
+
"configured, or a proxy intercepted the challenge.",
|
|
334
|
+
},
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
const redirectUri = googleUrl.searchParams.get("redirect_uri") ?? "";
|
|
338
|
+
if (!redirectUri) {
|
|
339
|
+
return {
|
|
340
|
+
ok: false,
|
|
341
|
+
check: {
|
|
342
|
+
name: "google challenge",
|
|
343
|
+
pass: false,
|
|
344
|
+
detail: `Google authorize URL has no redirect_uri. Location=${location.slice(0, 200)}`,
|
|
345
|
+
remedy: "File this against the rail.",
|
|
346
|
+
},
|
|
347
|
+
};
|
|
348
|
+
}
|
|
349
|
+
return { ok: true, googleUrl, redirectUri };
|
|
350
|
+
}
|
|
351
|
+
async function askGoogle(googleUrl, redirectUri) {
|
|
352
|
+
const response = await fetchOrNull(googleUrl.href, { redirect: "manual" });
|
|
353
|
+
if (!response.ok && response.error) {
|
|
354
|
+
return {
|
|
355
|
+
name: "google redirect_uri registered",
|
|
356
|
+
pass: false,
|
|
357
|
+
detail: `Could not reach ${googleHost}: ${response.error}. Did not prove the URI is registered.`,
|
|
358
|
+
remedy: `This check has to ask Google. Retry from a network that can reach ${googleHost}. ` +
|
|
359
|
+
`The URI to register is ${redirectUri}.`,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
if (googleRedirectUriRejected(response.location, response.body)) {
|
|
363
|
+
return {
|
|
364
|
+
name: "google redirect_uri registered",
|
|
365
|
+
pass: false,
|
|
366
|
+
detail: `Google rejected redirect_uri=${redirectUri} (redirect_uri_mismatch). ` +
|
|
367
|
+
`Google returned ${response.status} to ${response.location ?? "(no Location)"}.`,
|
|
368
|
+
remedy: `Paste this exact URI into the Google Cloud OAuth client's Authorized redirect URIs: ${redirectUri}`,
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
if (googleRedirectUriAccepted(response.location)) {
|
|
372
|
+
return {
|
|
373
|
+
name: "google redirect_uri registered",
|
|
374
|
+
pass: true,
|
|
375
|
+
detail: `Google accepted redirect_uri=${redirectUri} (302 to the identifier/consent flow). ` +
|
|
376
|
+
"Does not prove a human can finish sign-in, only that this URI is on the client.",
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
return {
|
|
380
|
+
name: "google redirect_uri registered",
|
|
381
|
+
pass: false,
|
|
382
|
+
detail: `Google returned ${response.status} ` +
|
|
383
|
+
`${response.location ? `Location=${response.location} ` : ""}` +
|
|
384
|
+
"with neither an identifier/consent redirect nor redirect_uri_mismatch. " +
|
|
385
|
+
"Not treating this as registered.",
|
|
386
|
+
remedy: `Retry. If this persists, paste ${redirectUri} into the Google Cloud Console and re-run.`,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
/** OAuth error code, not UI copy — present in the URL even when the HTML is localized. */
|
|
390
|
+
export function googleRedirectUriRejected(location, body) {
|
|
391
|
+
const haystack = `${location ?? ""}\n${body ?? ""}`;
|
|
392
|
+
if (/redirect_uri_mismatch/i.test(haystack)) {
|
|
393
|
+
return true;
|
|
394
|
+
}
|
|
395
|
+
if (!location) {
|
|
396
|
+
return false;
|
|
397
|
+
}
|
|
398
|
+
try {
|
|
399
|
+
const url = new URL(location, `https://${googleHost}/`);
|
|
400
|
+
if (url.pathname.includes("/signin/oauth/error")) {
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
const authError = url.searchParams.get("authError") ?? "";
|
|
404
|
+
return authError.length > 0 && /redirect_uri_mismatch/i.test(decodeAuthError(authError));
|
|
405
|
+
}
|
|
406
|
+
catch {
|
|
407
|
+
return false;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
export function googleRedirectUriAccepted(location) {
|
|
411
|
+
if (!location) {
|
|
412
|
+
return false;
|
|
413
|
+
}
|
|
414
|
+
try {
|
|
415
|
+
const url = new URL(location, `https://${googleHost}/`);
|
|
416
|
+
if (url.pathname.includes("/signin/oauth/error")) {
|
|
417
|
+
return false;
|
|
418
|
+
}
|
|
419
|
+
return (/\/v3\/signin\/identifier$/i.test(url.pathname) ||
|
|
420
|
+
/\/signin\/identifier$/i.test(url.pathname) ||
|
|
421
|
+
/\/signin\/oauth\/legacy\/consent$/i.test(url.pathname) ||
|
|
422
|
+
/\/signin\/oauth\/consent$/i.test(url.pathname));
|
|
423
|
+
}
|
|
424
|
+
catch {
|
|
425
|
+
return false;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
export function sameCallbackUri(emitted, expected) {
|
|
429
|
+
try {
|
|
430
|
+
const a = new URL(emitted);
|
|
431
|
+
const b = new URL(expected);
|
|
432
|
+
return a.protocol === b.protocol && a.host === b.host && normalizePath(a.pathname) === normalizePath(b.pathname);
|
|
433
|
+
}
|
|
434
|
+
catch {
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
function normalizePath(path) {
|
|
439
|
+
return path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
|
|
440
|
+
}
|
|
441
|
+
function antiforgeryToken(html) {
|
|
442
|
+
const named = html.match(/name="__RequestVerificationToken"[^>]*value="([^"]+)"/);
|
|
443
|
+
if (named?.[1]) {
|
|
444
|
+
return named[1];
|
|
445
|
+
}
|
|
446
|
+
const valued = html.match(/value="([^"]+)"[^>]*name="__RequestVerificationToken"/);
|
|
447
|
+
return valued?.[1];
|
|
448
|
+
}
|
|
449
|
+
function cookieHeader(headers) {
|
|
450
|
+
if (!headers || typeof headers.getSetCookie !== "function") {
|
|
451
|
+
return "";
|
|
452
|
+
}
|
|
453
|
+
const jar = new Map();
|
|
454
|
+
for (const line of headers.getSetCookie()) {
|
|
455
|
+
const pair = line.split(";")[0] ?? "";
|
|
456
|
+
const eq = pair.indexOf("=");
|
|
457
|
+
if (eq > 0) {
|
|
458
|
+
jar.set(pair.slice(0, eq).trim(), pair.slice(eq + 1));
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
return [...jar.entries()].map(([name, value]) => `${name}=${value}`).join("; ");
|
|
462
|
+
}
|
|
463
|
+
function decodeAuthError(value) {
|
|
464
|
+
try {
|
|
465
|
+
const padded = value.replace(/-/g, "+").replace(/_/g, "/");
|
|
466
|
+
return Buffer.from(padded, "base64").toString("utf8");
|
|
467
|
+
}
|
|
468
|
+
catch {
|
|
469
|
+
return "";
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
function pkceS256Challenge() {
|
|
473
|
+
const verifier = base64Url(randomBytes(32));
|
|
474
|
+
return base64Url(createHash("sha256").update(verifier).digest());
|
|
475
|
+
}
|
|
476
|
+
function base64Url(bytes) {
|
|
477
|
+
return bytes.toString("base64").replace(/=+$/g, "").replace(/\+/g, "-").replace(/\//g, "_");
|
|
478
|
+
}
|
|
479
|
+
//# sourceMappingURL=google-redirect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-redirect.js","sourceRoot":"","sources":["../src/google-redirect.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -2,7 +2,8 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import { requireAdminKey, requireIssuer } from "../config.js";
|
|
5
|
-
import {
|
|
5
|
+
import { runDoctorAndConnect } from "../client-conformance.js";
|
|
6
|
+
import { formatDoctorReport } from "../doctor.js";
|
|
6
7
|
import { buildIntegrationPlan, integrationFrameworks, isIntegrationFramework, } from "../integration.js";
|
|
7
8
|
import { describePending, getResource, listResources, mintDevHeader, probeConformance, registerResource, rotateOriginKey, setConnectedAccount, setOrigin, signupTenant, startConnect, } from "../rail.js";
|
|
8
9
|
import { secretTargets, writeAdminApiKey, writeOriginApiKey } from "../secrets.js";
|
|
@@ -56,12 +57,14 @@ const adminKeyArg = z
|
|
|
56
57
|
.optional()
|
|
57
58
|
.describe("Admin API key. Defaults to the AUTHFLOW_ADMIN_API_KEY environment variable.");
|
|
58
59
|
export function createOnboardingServer() {
|
|
59
|
-
const server = new McpServer({ name: "authflow-onboarding", version: "0.
|
|
60
|
-
instructions: "Onboard an MCP server onto the Authflow rail.
|
|
61
|
-
"
|
|
60
|
+
const server = new McpServer({ name: "authflow-onboarding", version: "0.3.0" }, {
|
|
61
|
+
instructions: "Onboard an MCP server onto the Authflow rail. This server talks to the rail; the docs MCP " +
|
|
62
|
+
"(https://docs.authflow.ai/mcp) only reads the contract. Typical order: authflow_doctor to " +
|
|
63
|
+
"confirm the rail is reachable, authflow_signup if AUTHFLOW_ADMIN_API_KEY is missing, " +
|
|
62
64
|
"authflow_register_resource to create a draft and capture the origin API key, " +
|
|
63
65
|
"authflow_integration_plan to get framework-specific code to apply to the user's " +
|
|
64
|
-
"codebase,
|
|
66
|
+
"codebase, then Stripe — authflow_set_connected_account if they already have acct_…, " +
|
|
67
|
+
"otherwise authflow_start_stripe_connect for the hosted KYC link — authflow_set_origin once " +
|
|
65
68
|
"the origin is deployed, then authflow_probe before real traffic. Read pending_requirements " +
|
|
66
69
|
"on any receipt to see what still blocks go-live. " +
|
|
67
70
|
"If you are resuming and unsure what already happened, call authflow_status before doing " +
|
|
@@ -107,19 +110,37 @@ export function createOnboardingServer() {
|
|
|
107
110
|
server.registerTool("authflow_doctor", {
|
|
108
111
|
title: "Check the Authflow rail is reachable and correctly configured",
|
|
109
112
|
description: "Preflight a rail deployment: issuer reachable, Origin Protocol keys document served and " +
|
|
110
|
-
"self-consistent, and (with a slug) the resource's PRM
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
+
"self-consistent, consumer pages that must not 500, and (with a slug) the resource's PRM " +
|
|
114
|
+
"document and gateway 401 challenge. With client and slug (and not dry_run) also drive " +
|
|
115
|
+
"authorize through login and ask Google whether the rail's /signin-google redirect_uri is " +
|
|
116
|
+
"registered. Run this first, and run it again whenever something looks broken — it " +
|
|
117
|
+
"distinguishes a misconfigured hostname from an actual rail outage, which look identical " +
|
|
118
|
+
"from the outside. Without client the tool performs no writes. With client and without " +
|
|
119
|
+
"dry_run it creates OAuth client registrations on the rail (stamped authflow-cli " +
|
|
120
|
+
"doctor-connect). dry_run is discovery only.",
|
|
113
121
|
inputSchema: {
|
|
114
122
|
issuer: issuerArg,
|
|
115
123
|
slug: z
|
|
116
124
|
.string()
|
|
117
125
|
.optional()
|
|
118
126
|
.describe("Resource slug. Adds PRM and gateway-challenge checks for that resource."),
|
|
127
|
+
client: z
|
|
128
|
+
.enum(["cursor", "claude", "chatgpt", "all"])
|
|
129
|
+
.optional()
|
|
130
|
+
.describe("Replay this MCP client's OAuth registration (cursor, claude, chatgpt, or all). " +
|
|
131
|
+
"POSTs DCR unless dry_run is true."),
|
|
132
|
+
dry_run: z
|
|
133
|
+
.boolean()
|
|
134
|
+
.optional()
|
|
135
|
+
.describe("With client: discovery only, do not POST DCR registrations."),
|
|
119
136
|
},
|
|
120
|
-
annotations: { readOnlyHint:
|
|
121
|
-
}, async ({ issuer, slug }) => attempt(async () => {
|
|
122
|
-
const report = await
|
|
137
|
+
annotations: { readOnlyHint: false, destructiveHint: false, openWorldHint: true },
|
|
138
|
+
}, async ({ issuer, slug, client, dry_run }) => attempt(async () => {
|
|
139
|
+
const report = await runDoctorAndConnect(requireIssuer(issuer), {
|
|
140
|
+
slug,
|
|
141
|
+
client,
|
|
142
|
+
dryRun: dry_run,
|
|
143
|
+
});
|
|
123
144
|
return ok(`${formatDoctorReport(report)}\n\n${JSON.stringify(report, null, 2)}`);
|
|
124
145
|
}));
|
|
125
146
|
server.registerTool("authflow_register_resource", {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,aAAa,EAA4B,MAAM,cAAc,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,eAAe,EACf,WAAW,EACX,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAqB,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAmBlE,SAAS,EAAE,CAAC,OAAgB;IAC1B,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,GAA8B;IACnD,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED,oGAAoG;AACpG,SAAS,SAAS,CAAC,MAAe,EAAE,QAAiB;IACnD,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,OAA4B;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACnD,OAAO;QACL,GAAG,OAAO;QACV,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1F,iBAAiB,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;QACpE,iBAAiB,EAAE,eAAe,CAAC,OAAO,CAAC;QAC3C,sBAAsB,EACpB,4FAA4F;YAC5F,uFAAuF;KAC1F,CAAC;AACJ,CAAC;AAED,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,iFAAiF,CAAC,CAAC;AAE/F,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,CAAC,6EAA6E,CAAC,CAAC;AAE3F,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,EAAE,EACjD;QACE,YAAY,EACV,0FAA0F;YAC1F,+EAA+E;YAC/E,+EAA+E;YAC/E,kFAAkF;YAClF,4FAA4F;YAC5F,6FAA6F;YAC7F,mDAAmD;YACnD,0FAA0F;YAC1F,8EAA8E;YAC9E,yFAAyF;YACzF,yFAAyF;YACzF,8EAA8E;KACjF,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,yFAAyF;YACzF,2FAA2F;YAC3F,2FAA2F;YAC3F,yFAAyF;YACzF,YAAY;QACd,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACzD,aAAa,EAAE,CAAC;iBACb,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YAC5F,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7D,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;QACjE,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC;gBACtC,KAAK,EAAE,OAAO,CAAC,aAAa;gBAC5B,WAAW,EAAE,kBAAkB;aAChC,CAAC,CAAC;YACH,OAAO,CAAC,aAAa,GAAG,cAAc,QAAQ,GAAG,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,CAAC;YACR,GAAG,OAAO;YACV,UAAU,EAAE;gBACV,yFAAyF;gBACzF,mDAAmD;aACpD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,+DAA+D;QACtE,WAAW,EACT,0FAA0F;YAC1F,4FAA4F;YAC5F,wFAAwF;YACxF,2FAA2F;QAC7F,WAAW,EAAE;YACX,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;SACvF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CACzB,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,iCAAiC;QACxC,WAAW,EACT,yFAAyF;YACzF,4FAA4F;YAC5F,4FAA4F;YAC5F,0FAA0F;YAC1F,2FAA2F;YAC3F,gDAAgD;QAClD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CAAC,wFAAwF,CAAC;YACrG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAClG,kBAAkB,EAAE,CAAC;iBAClB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,OAAO,CAAC,GAAG,CAAC;iBACZ,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,kBAAkB,EAAE,CAAC;iBAClB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,OAAO,CAAC,EAAE,CAAC;iBACX,QAAQ,CAAC,sCAAsC,CAAC;YACnD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACpE,oBAAoB,EAAE,CAAC;iBACpB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,4EAA4E,CAAC;YACzF,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2EAA2E,CAAC;YACxF,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;iBAC5C,QAAQ,EAAE;iBACV,QAAQ,CACP,oFAAoF;gBAClF,mFAAmF,CACtF;YACH,sBAAsB,EAAE,CAAC;iBACtB,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CAAC,qDAAqD,CAAC;YAClE,UAAU,EAAE,CAAC;iBACV,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;iBAClD,QAAQ,EAAE;iBACV,QAAQ,CAAC,4DAA4D,CAAC;YACzE,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,aAA6D,CAAC;iBACnE,QAAQ,EAAE;iBACV,QAAQ,CAAC,0EAA0E,CAAC;YACvF,kBAAkB,EAAE,CAAC;iBAClB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6EAA6E,CAAC;YAC1F,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;YAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI;YAC5C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,IAAI,IAAI;YACvD,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;YAC7C,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QAEH,2FAA2F;QAC3F,0FAA0F;QAC1F,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;QAC5C,IAAI,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;gBACvC,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE,IAAI,CAAC,kBAAkB;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,GAAG,cAAc,QAAQ,GAAG,CAAC;QACrD,CAAC;QAED,OAAO,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,yFAAyF;YACzF,4DAA4D;QAC9D,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;QAC5E,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACpC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAChG,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;QACE,KAAK,EAAE,yCAAyC;QAChD,WAAW,EACT,6FAA6F;YAC7F,4FAA4F;YAC5F,+EAA+E;QACjF,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;QAC1D,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAC9B,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC;YACR,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,QAAQ;gBACtD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE;aAC1D,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,qDAAqD;QAC5D,WAAW,EACT,sFAAsF;YACtF,oFAAoF;YACpF,8EAA8E;YAC9E,4FAA4F;YAC5F,gFAAgF;QAClF,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE;QAC5E,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACpC,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC;YACR,GAAG,iBAAiB,CAAC,OAAO,CAAC;YAC7B,iBAAiB,EAAE,eAAe,CAAC,OAAO,CAAC;SAC5C,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,8DAA8D;QACrE,WAAW,EACT,yFAAyF;YACzF,4FAA4F;YAC5F,2FAA2F;YAC3F,8EAA8E;QAChF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC,qBAAyD,CAAC;iBAC/D,QAAQ,CAAC,8DAA8D,CAAC;YAC3E,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAC/C,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,sBAAsB,SAAS,kBAAkB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,+BAA+B,EAC/B;QACE,KAAK,EAAE,2CAA2C;QAClD,WAAW,EACT,0FAA0F;YAC1F,6FAA6F;YAC7F,6FAA6F;YAC7F,2FAA2F;YAC3F,oFAAoF;QACtF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC7E,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAC3C,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7E,OAAO,EAAE,CAAC;YACR,GAAG,MAAM;YACT,UAAU,EAAE,MAAM,CAAC,eAAe;gBAChC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,cAAc,0EAA0E,CAAC;SAC9G,CAAC,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gCAAgC,EAChC;QACE,KAAK,EAAE,iDAAiD;QACxD,WAAW,EACT,4FAA4F;YAC5F,iFAAiF;QACnF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;YACnF,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CAC1D,OAAO,CAAC,KAAK,IAAI,EAAE,CACjB,EAAE,CACA,aAAa,CACX,MAAM,mBAAmB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,oBAAoB,CAAC,CACpF,CACF,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,uCAAuC;QAC9C,WAAW,EACT,0FAA0F;YAC1F,6FAA6F;YAC7F,qEAAqE;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACpF,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,CACrD,OAAO,CAAC,KAAK,IAAI,EAAE,CACjB,EAAE,CAAC,aAAa,CAAC,MAAM,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CACxF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,6DAA6D;QACpE,WAAW,EACT,0FAA0F;YAC1F,qFAAqF;YACrF,kFAAkF;YAClF,wEAAwE;QAC1E,WAAW,EAAE;YACX,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,CACnC,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACjF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QAClE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,iDAAiD;QACxD,WAAW,EACT,0FAA0F;YAC1F,0FAA0F;YAC1F,0CAA0C;QAC5C,WAAW,EAAE;YACX,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+DAA+D,CAAC;YAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YACxD,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;YACxD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC9B,MAAM,EAAE,SAAS;SAClB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;KAClF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,CACP,MAAM,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,YAAY,EAAE,IAAI,CAAC,aAAa;SACjC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,oCAAoC;QAC3C,WAAW,EACT,yFAAyF;YACzF,0FAA0F;YAC1F,4EAA4E;QAC9E,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,aAAa,EAAE,CAAC;iBACb,IAAI,CAAC,aAA6D,CAAC;iBACnE,QAAQ,EAAE;iBACV,QAAQ,CAAC,6BAA6B,CAAC;YAC1C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YACzC,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,WAAW;SACvB;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACjF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,OAAO,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACzF,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;QACnC,IAAI,IAAI,CAAC,aAAa,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC;gBACvC,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,IAAI,CAAC,kBAAkB;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,cAAc,GAAG,cAAc,QAAQ,GAAG,CAAC;QACrD,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,CAAC,CACL,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|