@aauth/proxy 0.2.7 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tools.d.ts +5 -1
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +29 -6
- package/dist/tools.js.map +1 -1
- package/package.json +1 -1
package/dist/tools.d.ts
CHANGED
|
@@ -8,7 +8,11 @@ export interface ProxyDeps {
|
|
|
8
8
|
registryCache: RegistryCache;
|
|
9
9
|
identity: IdentityProvider;
|
|
10
10
|
docCache?: DocCache;
|
|
11
|
-
onInteraction?: (url: string, code: string, pollUrl: string) => void | Promise<void>;
|
|
11
|
+
onInteraction?: (url: string, code: string, pollUrl: string, onComplete?: () => void) => void | Promise<void>;
|
|
12
|
+
authPending?: {
|
|
13
|
+
get(resource: string): Promise<void> | undefined;
|
|
14
|
+
set(resource: string, done: Promise<void>): void;
|
|
15
|
+
};
|
|
12
16
|
agentLocal?: () => string | undefined;
|
|
13
17
|
}
|
|
14
18
|
export declare function buildProxyTools(server: McpServer, deps: ProxyDeps): Promise<void>;
|
package/dist/tools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,gBAAgB,CAAA;IAG1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAOlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,OAAO,CAAA;IACX,aAAa,EAAE,aAAa,CAAA;IAC5B,QAAQ,EAAE,gBAAgB,CAAA;IAG1B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IAMnB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAK7G,WAAW,CAAC,EAAE;QACZ,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;QAChD,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KACjD,CAAA;IAGD,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;CACtC;AAqBD,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAmQvF"}
|
package/dist/tools.js
CHANGED
|
@@ -185,6 +185,22 @@ export async function buildProxyTools(server, deps) {
|
|
|
185
185
|
if (!found.ok)
|
|
186
186
|
return text(found.msg);
|
|
187
187
|
const invokeArgs = { pathParams: path_params, query, body };
|
|
188
|
+
// If there's an in-flight authorization for this resource, wait up to 30s
|
|
189
|
+
// for it to complete before hitting the resource/PS again. This avoids
|
|
190
|
+
// creating new temporal state (codes, pending interactions) on every retry.
|
|
191
|
+
const inFlight = deps.authPending?.get(found.l1.resource);
|
|
192
|
+
if (inFlight) {
|
|
193
|
+
let resolved = false;
|
|
194
|
+
await Promise.race([
|
|
195
|
+
inFlight.then(() => { resolved = true; }),
|
|
196
|
+
new Promise((r) => setTimeout(r, 30_000)),
|
|
197
|
+
]);
|
|
198
|
+
if (!resolved) {
|
|
199
|
+
return text(`Authorization for ${found.l1.resource} is still in progress.\n\n` +
|
|
200
|
+
`The user has not yet completed authorization. Try again in a moment.`);
|
|
201
|
+
}
|
|
202
|
+
// Auth completed — fall through to invokeAtResource; PS now has the grant.
|
|
203
|
+
}
|
|
188
204
|
let result;
|
|
189
205
|
try {
|
|
190
206
|
result = await invokeAtResource(c.cfg, found.l1, op_id, invokeArgs);
|
|
@@ -193,20 +209,27 @@ export async function buildProxyTools(server, deps) {
|
|
|
193
209
|
return text(`invoke error: ${err.message}`);
|
|
194
210
|
}
|
|
195
211
|
if (result.kind === 'interaction') {
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
|
|
212
|
+
// Wire up a Promise that resolves when onInteraction's poll completes.
|
|
213
|
+
// This is stored in authPending so future invokes can wait on it.
|
|
214
|
+
let markComplete;
|
|
215
|
+
const authDone = new Promise((r) => { markComplete = r; });
|
|
216
|
+
// onInteraction may throw (cloud: MCP URL elicitation) or return (stdio/fallback).
|
|
217
|
+
await deps.onInteraction?.(result.interaction.url, result.interaction.code, result.interaction.pollUrl, markComplete);
|
|
218
|
+
// Only reached if onInteraction returned (fallback path, not elicitation).
|
|
219
|
+
// Register the promise so concurrent/subsequent invokes wait on it.
|
|
220
|
+
deps.authPending?.set(found.l1.resource, authDone);
|
|
199
221
|
const authUrl = `${result.interaction.url}?code=${result.interaction.code}`;
|
|
200
222
|
const qr = renderUnicodeCompact(authUrl);
|
|
201
223
|
return text(`Authorization required for ${found.l1.resource}.\n\n` +
|
|
202
|
-
`IMPORTANT: You MUST do all
|
|
224
|
+
`IMPORTANT: You MUST do all of the following in your response:\n` +
|
|
203
225
|
`1. Display the QR code below verbatim so the user can scan it.\n` +
|
|
204
226
|
`2. Show the authorization URL so the user can open it.\n` +
|
|
205
|
-
`3. Offer to open the URL using browser tools if available.\n
|
|
227
|
+
`3. Offer to open the URL using browser tools if available.\n` +
|
|
228
|
+
`4. After showing the URL and QR code, automatically retry invoke — the server will wait up to 30 seconds for authorization to complete before responding.\n\n` +
|
|
206
229
|
`Authorization URL: ${authUrl}\n\n` +
|
|
207
230
|
`QR code:\n\n` +
|
|
208
231
|
`\`\`\`\n${qr}\n\`\`\`\n\n` +
|
|
209
|
-
`
|
|
232
|
+
`Retry invoke now.`);
|
|
210
233
|
}
|
|
211
234
|
if (result.status >= 200 && result.status < 300)
|
|
212
235
|
await l1.touch(found.l1.resource);
|
package/dist/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8EAA8E;AAC9E,+EAA+E;AAC/E,gDAAgD;AAChD,EAAE;AACF,uEAAuE;AACvE,4EAA4E;AAC5E,6EAA6E;AAC7E,0BAA0B;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,KAAK,CAAA;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,OAAO,EACL,aAAa,EACb,wBAAwB,EACxB,yBAAyB,EACzB,SAAS,GACV,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|