@animus-labs/cortex 0.2.3 → 0.2.4
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/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/provider-manager.d.ts +38 -1
- package/dist/provider-manager.d.ts.map +1 -1
- package/dist/provider-manager.js +156 -25
- package/dist/provider-manager.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -1
- package/src/provider-manager.ts +234 -33
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,6 @@ export type { CortexModel } from './model-wrapper.js';
|
|
|
51
51
|
export { inferUtilityModel, inferUtilityModelId } from './utility-model-inference.js';
|
|
52
52
|
export { PROVIDER_REGISTRY, OAUTH_PROVIDER_IDS, UTILITY_MODEL_OVERRIDES, UTILITY_MODEL_DEFAULTS, PRIMARY_MODEL_DEFAULTS, PROVIDER_CACHE_CONFIG, resolveCacheRetention, } from './provider-registry.js';
|
|
53
53
|
export type { AuthMethod, ProviderInfo, ModelInfo, ProviderCacheConfig, CacheRetention, } from './provider-registry.js';
|
|
54
|
-
export { ProviderManager } from './provider-manager.js';
|
|
55
|
-
export type { IProviderManager, OAuthCallbacks, OAuthCallbackPageContext, OAuthCallbackPageRenderer, OAuthCallbackPageStatus, OAuthMeta, OAuthResult, OAuthRefreshResult, CustomModelConfig, ApiKeyValidationStatus, ApiKeyValidationResult, } from './provider-manager.js';
|
|
54
|
+
export { ProviderManager, OAuthError } from './provider-manager.js';
|
|
55
|
+
export type { OAuthErrorCode, IProviderManager, OAuthCallbacks, OAuthCallbackPageContext, OAuthCallbackPageRenderer, OAuthCallbackPageStatus, OAuthMeta, OAuthResult, OAuthRefreshResult, CustomModelConfig, ApiKeyValidationStatus, ApiKeyValidationResult, } from './provider-manager.js';
|
|
56
56
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -54,5 +54,5 @@ export { inferUtilityModel, inferUtilityModelId } from './utility-model-inferenc
|
|
|
54
54
|
// Provider Registry (Phase 1D)
|
|
55
55
|
export { PROVIDER_REGISTRY, OAUTH_PROVIDER_IDS, UTILITY_MODEL_OVERRIDES, UTILITY_MODEL_DEFAULTS, PRIMARY_MODEL_DEFAULTS, PROVIDER_CACHE_CONFIG, resolveCacheRetention, } from './provider-registry.js';
|
|
56
56
|
// Provider Manager (Phase 1D)
|
|
57
|
-
export { ProviderManager } from './provider-manager.js';
|
|
57
|
+
export { ProviderManager, OAuthError } from './provider-manager.js';
|
|
58
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAoDH,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,kBAAkB;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,6BAA6B;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUhD,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,yBAAyB;AACzB,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAG3G,iBAAiB;AACjB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,+BAA+B;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,4BAA4B;AAC5B,OAAO,EACL,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,kBAAkB,CAAC;AAsC1B,yBAAyB;AACzB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACvH,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,qCAAqC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AAQtC,uBAAuB;AACvB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,iFAAiF;AACjF,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AAkBtC,2BAA2B;AAC3B,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEtF,+BAA+B;AAC/B,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAShC,8BAA8B;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,6 +62,15 @@ export interface OAuthCallbacks {
|
|
|
62
62
|
* localhost callback routes and is restored immediately after the login flow.
|
|
63
63
|
*/
|
|
64
64
|
renderCallbackPage?: OAuthCallbackPageRenderer | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Overall timeout for the OAuth flow, in milliseconds. pi-ai's
|
|
67
|
+
* callback-server flows (e.g. Anthropic) do not honor an abort signal and
|
|
68
|
+
* hang forever if the callback never arrives or arrives with an error, so
|
|
69
|
+
* Cortex enforces this timeout itself and rejects with an
|
|
70
|
+
* `OAuthError('timed_out')`. Defaults to 5 minutes. Pass `0` or a negative
|
|
71
|
+
* value to disable (not recommended).
|
|
72
|
+
*/
|
|
73
|
+
timeoutMs?: number | undefined;
|
|
65
74
|
}
|
|
66
75
|
/** Status of the browser callback page produced by an OAuth flow. */
|
|
67
76
|
export type OAuthCallbackPageStatus = 'success' | 'error';
|
|
@@ -132,6 +141,32 @@ export interface OAuthRefreshResult {
|
|
|
132
141
|
/** Whether the credentials were actually refreshed (true) or reused as-is (false). */
|
|
133
142
|
changed: boolean;
|
|
134
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Discriminant for OAuth flow failures, so consumers can render specific
|
|
146
|
+
* UX instead of parsing error strings.
|
|
147
|
+
*
|
|
148
|
+
* - `unsupported_provider`: provider has no OAuth support.
|
|
149
|
+
* - `callback_port_in_use`: the provider's fixed loopback callback port is
|
|
150
|
+
* already bound (e.g. another Anthropic app on 53692, or a leftover flow).
|
|
151
|
+
* Detected before the browser opens.
|
|
152
|
+
* - `cancelled`: the flow was cancelled via `cancelOAuth()`.
|
|
153
|
+
* - `timed_out`: the flow exceeded its timeout (pi-ai's callback servers do
|
|
154
|
+
* not honor an abort signal, so this is the backstop against hangs).
|
|
155
|
+
* - `callback_failed`: the browser callback fired but the provider reported
|
|
156
|
+
* an error (e.g. state mismatch). Surfaced immediately instead of hanging.
|
|
157
|
+
*/
|
|
158
|
+
export type OAuthErrorCode = 'unsupported_provider' | 'callback_port_in_use' | 'cancelled' | 'timed_out' | 'callback_failed';
|
|
159
|
+
/** Structured error thrown by initiateOAuth. */
|
|
160
|
+
export declare class OAuthError extends Error {
|
|
161
|
+
readonly code: OAuthErrorCode;
|
|
162
|
+
readonly provider: string;
|
|
163
|
+
/** The fixed callback port, when relevant (`callback_port_in_use`). */
|
|
164
|
+
readonly port?: number | undefined;
|
|
165
|
+
constructor(code: OAuthErrorCode, provider: string, message: string, options?: {
|
|
166
|
+
port?: number | undefined;
|
|
167
|
+
cause?: unknown;
|
|
168
|
+
});
|
|
169
|
+
}
|
|
135
170
|
/** Configuration for creating a custom model endpoint. */
|
|
136
171
|
export interface CustomModelConfig {
|
|
137
172
|
/** Base URL of the OpenAI-compatible API (e.g., 'http://localhost:11434/v1'). */
|
|
@@ -201,7 +236,9 @@ export declare class ProviderManager implements IProviderManager {
|
|
|
201
236
|
* @param provider - OAuth provider identifier
|
|
202
237
|
* @param callbacks - UI callbacks for auth URL, prompts, and progress
|
|
203
238
|
* @returns The OAuth credentials and display metadata
|
|
204
|
-
* @throws
|
|
239
|
+
* @throws {OAuthError} `unsupported_provider`, `callback_port_in_use`,
|
|
240
|
+
* `cancelled`, `timed_out`, or `callback_failed`. Other errors (e.g.
|
|
241
|
+
* network/token-exchange failures from pi-ai) propagate as-is.
|
|
205
242
|
*/
|
|
206
243
|
initiateOAuth(provider: string, callbacks: OAuthCallbacks): Promise<OAuthResult>;
|
|
207
244
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-manager.d.ts","sourceRoot":"","sources":["../src/provider-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/D;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvG;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1C;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAElC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-manager.d.ts","sourceRoot":"","sources":["../src/provider-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/provider-manager.js
CHANGED
|
@@ -18,28 +18,93 @@ import { createRequire } from 'node:module';
|
|
|
18
18
|
import { wrapModel } from './model-wrapper.js';
|
|
19
19
|
import { inferUtilityModelId } from './utility-model-inference.js';
|
|
20
20
|
const nodeRequire = createRequire(import.meta.url);
|
|
21
|
+
/** Structured error thrown by initiateOAuth. */
|
|
22
|
+
export class OAuthError extends Error {
|
|
23
|
+
code;
|
|
24
|
+
provider;
|
|
25
|
+
/** The fixed callback port, when relevant (`callback_port_in_use`). */
|
|
26
|
+
port;
|
|
27
|
+
constructor(code, provider, message, options) {
|
|
28
|
+
super(message, options?.cause !== undefined ? { cause: options.cause } : undefined);
|
|
29
|
+
this.name = 'OAuthError';
|
|
30
|
+
this.code = code;
|
|
31
|
+
this.provider = provider;
|
|
32
|
+
this.port = options?.port;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
21
35
|
const OAUTH_CALLBACK_ROUTES = {
|
|
22
36
|
anthropic: { path: '/callback', port: 53692 },
|
|
23
37
|
'openai-codex': { path: '/auth/callback', port: 1455 },
|
|
24
38
|
};
|
|
25
39
|
let activeOAuthCallbackPageShim = null;
|
|
26
|
-
|
|
40
|
+
/** Ensures `onResult` fires at most once per installed shim. */
|
|
41
|
+
let oauthCallbackResultNotified = false;
|
|
42
|
+
/** Default overall OAuth flow timeout (pi-ai hangs without this). */
|
|
43
|
+
const DEFAULT_OAUTH_FLOW_TIMEOUT_MS = 5 * 60_000;
|
|
44
|
+
/**
|
|
45
|
+
* Probe whether something is already listening on a loopback port. Used to
|
|
46
|
+
* fail an OAuth flow fast (before opening a browser) when the provider's
|
|
47
|
+
* fixed callback port is occupied — otherwise pi-ai binds the other stack /
|
|
48
|
+
* the browser hits the wrong listener and the user gets a dead page while
|
|
49
|
+
* pi-ai waits forever.
|
|
50
|
+
*/
|
|
51
|
+
function probeCallbackPortInUse(port, host) {
|
|
52
|
+
const net = nodeRequire('node:net');
|
|
53
|
+
return new Promise((resolve) => {
|
|
54
|
+
let settled = false;
|
|
55
|
+
const finish = (inUse) => {
|
|
56
|
+
if (settled)
|
|
57
|
+
return;
|
|
58
|
+
settled = true;
|
|
59
|
+
socket.destroy();
|
|
60
|
+
resolve(inUse);
|
|
61
|
+
};
|
|
62
|
+
const socket = net.connect({ port, host });
|
|
63
|
+
socket.once('connect', () => finish(true));
|
|
64
|
+
socket.once('error', () => finish(false));
|
|
65
|
+
socket.setTimeout(600, () => finish(false));
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Throw an `OAuthError('callback_port_in_use')` if the provider's fixed
|
|
70
|
+
* callback port is occupied on either IPv4 or IPv6 loopback. No-op for
|
|
71
|
+
* providers without a known callback route (manual/device-code flows).
|
|
72
|
+
*/
|
|
73
|
+
async function assertOAuthCallbackPortAvailable(provider) {
|
|
27
74
|
const route = OAUTH_CALLBACK_ROUTES[provider];
|
|
28
|
-
if (!
|
|
29
|
-
return
|
|
75
|
+
if (!route)
|
|
76
|
+
return;
|
|
77
|
+
for (const host of ['127.0.0.1', '::1']) {
|
|
78
|
+
if (await probeCallbackPortInUse(route.port, host)) {
|
|
79
|
+
throw new OAuthError('callback_port_in_use', provider, `OAuth callback port ${route.port} for "${provider}" is already in use ` +
|
|
80
|
+
`(detected on ${host}). This is a fixed port: another application is ` +
|
|
81
|
+
`holding it, or a previous sign-in did not finish. Close that ` +
|
|
82
|
+
`application (or restart the host process), then try again.`, { port: route.port });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Install the callback-page shim for a flow when there is a known callback
|
|
88
|
+
* route AND something to do with it (a custom renderer and/or a result
|
|
89
|
+
* observer). Returns a release function (a no-op when no shim was installed).
|
|
90
|
+
*
|
|
91
|
+
* Unlike a `try/finally` wrapper around pi-ai's `login()`, the caller owns
|
|
92
|
+
* the release lifecycle: pi-ai's callback-server flows hang forever on a
|
|
93
|
+
* non-success callback, so cleanup must be tied to the flow's own
|
|
94
|
+
* race/timeout, not to awaiting the (possibly never-settling) login promise.
|
|
95
|
+
*/
|
|
96
|
+
function maybeInstallOAuthCallbackShim(provider, providerName, render, onResult) {
|
|
97
|
+
const route = OAUTH_CALLBACK_ROUTES[provider];
|
|
98
|
+
if (!route || (!render && !onResult)) {
|
|
99
|
+
return () => { };
|
|
30
100
|
}
|
|
31
|
-
|
|
101
|
+
return installOAuthCallbackPageShim({
|
|
32
102
|
provider,
|
|
33
103
|
providerName,
|
|
34
104
|
route,
|
|
35
105
|
render,
|
|
106
|
+
onResult,
|
|
36
107
|
});
|
|
37
|
-
try {
|
|
38
|
-
return await run();
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
release();
|
|
42
|
-
}
|
|
43
108
|
}
|
|
44
109
|
function installOAuthCallbackPageShim(shim) {
|
|
45
110
|
if (activeOAuthCallbackPageShim) {
|
|
@@ -49,6 +114,7 @@ function installOAuthCallbackPageShim(shim) {
|
|
|
49
114
|
const prototype = http.ServerResponse.prototype;
|
|
50
115
|
const previousEnd = prototype.end;
|
|
51
116
|
activeOAuthCallbackPageShim = shim;
|
|
117
|
+
oauthCallbackResultNotified = false;
|
|
52
118
|
const patchedEnd = function patchedOAuthCallbackEnd(...args) {
|
|
53
119
|
const replacement = maybeRenderOAuthCallbackPage(this, args[0]);
|
|
54
120
|
if (replacement) {
|
|
@@ -112,6 +178,20 @@ function maybeRenderOAuthCallbackPage(response, chunk) {
|
|
|
112
178
|
if (details !== undefined) {
|
|
113
179
|
context.details = details;
|
|
114
180
|
}
|
|
181
|
+
// Notify the flow that the browser callback fired (once). This lets
|
|
182
|
+
// initiateOAuth react to a failed callback immediately rather than
|
|
183
|
+
// waiting on pi-ai, which hangs on non-success callbacks.
|
|
184
|
+
if (!oauthCallbackResultNotified && shim.onResult) {
|
|
185
|
+
oauthCallbackResultNotified = true;
|
|
186
|
+
try {
|
|
187
|
+
shim.onResult(status, context);
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
// An observer must never break the callback response.
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
if (!shim.render)
|
|
194
|
+
return null;
|
|
115
195
|
try {
|
|
116
196
|
const rendered = shim.render(context);
|
|
117
197
|
return typeof rendered === 'string' && rendered.trim().length > 0 ? rendered : null;
|
|
@@ -427,32 +507,83 @@ export class ProviderManager {
|
|
|
427
507
|
* @param provider - OAuth provider identifier
|
|
428
508
|
* @param callbacks - UI callbacks for auth URL, prompts, and progress
|
|
429
509
|
* @returns The OAuth credentials and display metadata
|
|
430
|
-
* @throws
|
|
510
|
+
* @throws {OAuthError} `unsupported_provider`, `callback_port_in_use`,
|
|
511
|
+
* `cancelled`, `timed_out`, or `callback_failed`. Other errors (e.g.
|
|
512
|
+
* network/token-exchange failures from pi-ai) propagate as-is.
|
|
431
513
|
*/
|
|
432
514
|
async initiateOAuth(provider, callbacks) {
|
|
433
515
|
const oauthModule = await loadPiAiOAuth();
|
|
434
516
|
const oauthProvider = oauthModule.getOAuthProvider?.(provider);
|
|
435
517
|
if (!oauthProvider) {
|
|
436
|
-
throw new
|
|
518
|
+
throw new OAuthError('unsupported_provider', provider, `Provider "${provider}" does not support OAuth`);
|
|
437
519
|
}
|
|
438
|
-
|
|
520
|
+
// (A) Fail fast — before opening a browser — if the provider's fixed
|
|
521
|
+
// callback port is already taken. Otherwise pi-ai binds the other
|
|
522
|
+
// stack, the browser hits the wrong listener, and pi-ai waits forever.
|
|
523
|
+
await assertOAuthCallbackPortAvailable(provider);
|
|
524
|
+
const abort = new AbortController();
|
|
525
|
+
this.activeOAuthAbort = abort;
|
|
526
|
+
// (C) pi-ai only settles its callback wait on success; on a failed
|
|
527
|
+
// callback (e.g. state mismatch) it hangs. The render shim already sees
|
|
528
|
+
// that response — use it to fail the flow immediately with the reason.
|
|
529
|
+
let failFromCallback;
|
|
530
|
+
const callbackFailure = new Promise((_, reject) => {
|
|
531
|
+
failFromCallback = reject;
|
|
532
|
+
});
|
|
533
|
+
const handleCallbackResult = (status, ctx) => {
|
|
534
|
+
if (status !== 'error')
|
|
535
|
+
return;
|
|
536
|
+
const detail = ctx.details ? ` (${ctx.details})` : '';
|
|
537
|
+
failFromCallback(new OAuthError('callback_failed', provider, `OAuth callback for "${provider}" reported a failure: ${ctx.message}${detail}`));
|
|
538
|
+
};
|
|
539
|
+
const releaseShim = maybeInstallOAuthCallbackShim(provider, oauthProvider.name, callbacks.renderCallbackPage, handleCallbackResult);
|
|
540
|
+
// (B) pi-ai callback servers ignore the abort signal, so cancellation
|
|
541
|
+
// and timeout are enforced here. Without this the flow hangs forever.
|
|
542
|
+
const timeoutMs = callbacks.timeoutMs ?? DEFAULT_OAUTH_FLOW_TIMEOUT_MS;
|
|
543
|
+
let timer;
|
|
544
|
+
const timeout = new Promise((_, reject) => {
|
|
545
|
+
if (timeoutMs > 0 && Number.isFinite(timeoutMs)) {
|
|
546
|
+
timer = setTimeout(() => reject(new OAuthError('timed_out', provider, `OAuth flow for "${provider}" timed out after ${timeoutMs}ms.`)), timeoutMs);
|
|
547
|
+
timer.unref?.();
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
const cancelled = new Promise((_, reject) => {
|
|
551
|
+
abort.signal.addEventListener('abort', () => reject(new OAuthError('cancelled', provider, `OAuth flow for "${provider}" was cancelled.`)), { once: true });
|
|
552
|
+
});
|
|
553
|
+
const login = oauthProvider.login({
|
|
554
|
+
onAuth: callbacks.onAuth,
|
|
555
|
+
onPrompt: callbacks.onPrompt,
|
|
556
|
+
onProgress: callbacks.onProgress,
|
|
557
|
+
onManualCodeInput: callbacks.onManualCodeInput,
|
|
558
|
+
onSelect: callbacks.onSelect,
|
|
559
|
+
signal: abort.signal,
|
|
560
|
+
});
|
|
561
|
+
// Whichever promise loses the race may still settle later (pi-ai's
|
|
562
|
+
// login can hang or settle late; the aux promises can reject after the
|
|
563
|
+
// race is decided). Attach inert handlers so a late rejection never
|
|
564
|
+
// surfaces as an unhandled rejection. Promise.race still observes the
|
|
565
|
+
// first settlement independently.
|
|
566
|
+
login.catch(() => { });
|
|
567
|
+
cancelled.catch(() => { });
|
|
568
|
+
timeout.catch(() => { });
|
|
569
|
+
callbackFailure.catch(() => { });
|
|
439
570
|
try {
|
|
440
|
-
const rawCredentials = await
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
signal: this.activeOAuthAbort.signal,
|
|
447
|
-
}));
|
|
448
|
-
this.activeOAuthAbort = null;
|
|
571
|
+
const rawCredentials = await Promise.race([
|
|
572
|
+
login,
|
|
573
|
+
cancelled,
|
|
574
|
+
timeout,
|
|
575
|
+
callbackFailure,
|
|
576
|
+
]);
|
|
449
577
|
const credentials = JSON.stringify(rawCredentials);
|
|
450
578
|
const meta = buildOAuthMeta(provider, rawCredentials);
|
|
451
579
|
return { credentials, meta };
|
|
452
580
|
}
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
581
|
+
finally {
|
|
582
|
+
if (timer)
|
|
583
|
+
clearTimeout(timer);
|
|
584
|
+
releaseShim();
|
|
585
|
+
if (this.activeOAuthAbort === abort)
|
|
586
|
+
this.activeOAuthAbort = null;
|
|
456
587
|
}
|
|
457
588
|
}
|
|
458
589
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-manager.js","sourceRoot":"","sources":["../src/provider-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider-manager.js","sourceRoot":"","sources":["../src/provider-manager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -281,8 +281,9 @@ export type {
|
|
|
281
281
|
} from './provider-registry.js';
|
|
282
282
|
|
|
283
283
|
// Provider Manager (Phase 1D)
|
|
284
|
-
export { ProviderManager } from './provider-manager.js';
|
|
284
|
+
export { ProviderManager, OAuthError } from './provider-manager.js';
|
|
285
285
|
export type {
|
|
286
|
+
OAuthErrorCode,
|
|
286
287
|
IProviderManager,
|
|
287
288
|
OAuthCallbacks,
|
|
288
289
|
OAuthCallbackPageContext,
|
package/src/provider-manager.ts
CHANGED
|
@@ -75,6 +75,16 @@ export interface OAuthCallbacks {
|
|
|
75
75
|
* localhost callback routes and is restored immediately after the login flow.
|
|
76
76
|
*/
|
|
77
77
|
renderCallbackPage?: OAuthCallbackPageRenderer | undefined;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Overall timeout for the OAuth flow, in milliseconds. pi-ai's
|
|
81
|
+
* callback-server flows (e.g. Anthropic) do not honor an abort signal and
|
|
82
|
+
* hang forever if the callback never arrives or arrives with an error, so
|
|
83
|
+
* Cortex enforces this timeout itself and rejects with an
|
|
84
|
+
* `OAuthError('timed_out')`. Defaults to 5 minutes. Pass `0` or a negative
|
|
85
|
+
* value to disable (not recommended).
|
|
86
|
+
*/
|
|
87
|
+
timeoutMs?: number | undefined;
|
|
78
88
|
}
|
|
79
89
|
|
|
80
90
|
/** Status of the browser callback page produced by an OAuth flow. */
|
|
@@ -152,6 +162,48 @@ export interface OAuthRefreshResult {
|
|
|
152
162
|
changed: boolean;
|
|
153
163
|
}
|
|
154
164
|
|
|
165
|
+
/**
|
|
166
|
+
* Discriminant for OAuth flow failures, so consumers can render specific
|
|
167
|
+
* UX instead of parsing error strings.
|
|
168
|
+
*
|
|
169
|
+
* - `unsupported_provider`: provider has no OAuth support.
|
|
170
|
+
* - `callback_port_in_use`: the provider's fixed loopback callback port is
|
|
171
|
+
* already bound (e.g. another Anthropic app on 53692, or a leftover flow).
|
|
172
|
+
* Detected before the browser opens.
|
|
173
|
+
* - `cancelled`: the flow was cancelled via `cancelOAuth()`.
|
|
174
|
+
* - `timed_out`: the flow exceeded its timeout (pi-ai's callback servers do
|
|
175
|
+
* not honor an abort signal, so this is the backstop against hangs).
|
|
176
|
+
* - `callback_failed`: the browser callback fired but the provider reported
|
|
177
|
+
* an error (e.g. state mismatch). Surfaced immediately instead of hanging.
|
|
178
|
+
*/
|
|
179
|
+
export type OAuthErrorCode =
|
|
180
|
+
| 'unsupported_provider'
|
|
181
|
+
| 'callback_port_in_use'
|
|
182
|
+
| 'cancelled'
|
|
183
|
+
| 'timed_out'
|
|
184
|
+
| 'callback_failed';
|
|
185
|
+
|
|
186
|
+
/** Structured error thrown by initiateOAuth. */
|
|
187
|
+
export class OAuthError extends Error {
|
|
188
|
+
readonly code: OAuthErrorCode;
|
|
189
|
+
readonly provider: string;
|
|
190
|
+
/** The fixed callback port, when relevant (`callback_port_in_use`). */
|
|
191
|
+
readonly port?: number | undefined;
|
|
192
|
+
|
|
193
|
+
constructor(
|
|
194
|
+
code: OAuthErrorCode,
|
|
195
|
+
provider: string,
|
|
196
|
+
message: string,
|
|
197
|
+
options?: { port?: number | undefined; cause?: unknown },
|
|
198
|
+
) {
|
|
199
|
+
super(message, options?.cause !== undefined ? { cause: options.cause } : undefined);
|
|
200
|
+
this.name = 'OAuthError';
|
|
201
|
+
this.code = code;
|
|
202
|
+
this.provider = provider;
|
|
203
|
+
this.port = options?.port;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
155
207
|
/** Configuration for creating a custom model endpoint. */
|
|
156
208
|
export interface CustomModelConfig {
|
|
157
209
|
/** Base URL of the OpenAI-compatible API (e.g., 'http://localhost:11434/v1'). */
|
|
@@ -256,7 +308,13 @@ interface ActiveOAuthCallbackPageShim {
|
|
|
256
308
|
readonly provider: string;
|
|
257
309
|
readonly providerName: string;
|
|
258
310
|
readonly route: OAuthCallbackRoute;
|
|
259
|
-
readonly render: OAuthCallbackPageRenderer;
|
|
311
|
+
readonly render: OAuthCallbackPageRenderer | undefined;
|
|
312
|
+
/**
|
|
313
|
+
* Notified exactly once when the browser callback fires and its status
|
|
314
|
+
* (success/error) is known. Lets the flow react immediately instead of
|
|
315
|
+
* waiting on pi-ai (which hangs on non-success callbacks).
|
|
316
|
+
*/
|
|
317
|
+
readonly onResult?: ((status: OAuthCallbackPageStatus, context: OAuthCallbackPageContext) => void) | undefined;
|
|
260
318
|
}
|
|
261
319
|
|
|
262
320
|
type ServerResponseEnd = ServerResponse['end'];
|
|
@@ -267,30 +325,88 @@ const OAUTH_CALLBACK_ROUTES: Record<string, OAuthCallbackRoute> = {
|
|
|
267
325
|
};
|
|
268
326
|
|
|
269
327
|
let activeOAuthCallbackPageShim: ActiveOAuthCallbackPageShim | null = null;
|
|
328
|
+
/** Ensures `onResult` fires at most once per installed shim. */
|
|
329
|
+
let oauthCallbackResultNotified = false;
|
|
330
|
+
|
|
331
|
+
/** Default overall OAuth flow timeout (pi-ai hangs without this). */
|
|
332
|
+
const DEFAULT_OAUTH_FLOW_TIMEOUT_MS = 5 * 60_000;
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
* Probe whether something is already listening on a loopback port. Used to
|
|
336
|
+
* fail an OAuth flow fast (before opening a browser) when the provider's
|
|
337
|
+
* fixed callback port is occupied — otherwise pi-ai binds the other stack /
|
|
338
|
+
* the browser hits the wrong listener and the user gets a dead page while
|
|
339
|
+
* pi-ai waits forever.
|
|
340
|
+
*/
|
|
341
|
+
function probeCallbackPortInUse(port: number, host: string): Promise<boolean> {
|
|
342
|
+
const net = nodeRequire('node:net') as typeof import('node:net');
|
|
343
|
+
return new Promise((resolve) => {
|
|
344
|
+
let settled = false;
|
|
345
|
+
const finish = (inUse: boolean) => {
|
|
346
|
+
if (settled) return;
|
|
347
|
+
settled = true;
|
|
348
|
+
socket.destroy();
|
|
349
|
+
resolve(inUse);
|
|
350
|
+
};
|
|
351
|
+
const socket = net.connect({ port, host });
|
|
352
|
+
socket.once('connect', () => finish(true));
|
|
353
|
+
socket.once('error', () => finish(false));
|
|
354
|
+
socket.setTimeout(600, () => finish(false));
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* Throw an `OAuthError('callback_port_in_use')` if the provider's fixed
|
|
360
|
+
* callback port is occupied on either IPv4 or IPv6 loopback. No-op for
|
|
361
|
+
* providers without a known callback route (manual/device-code flows).
|
|
362
|
+
*/
|
|
363
|
+
async function assertOAuthCallbackPortAvailable(provider: string): Promise<void> {
|
|
364
|
+
const route = OAUTH_CALLBACK_ROUTES[provider];
|
|
365
|
+
if (!route) return;
|
|
366
|
+
|
|
367
|
+
for (const host of ['127.0.0.1', '::1']) {
|
|
368
|
+
if (await probeCallbackPortInUse(route.port, host)) {
|
|
369
|
+
throw new OAuthError(
|
|
370
|
+
'callback_port_in_use',
|
|
371
|
+
provider,
|
|
372
|
+
`OAuth callback port ${route.port} for "${provider}" is already in use ` +
|
|
373
|
+
`(detected on ${host}). This is a fixed port: another application is ` +
|
|
374
|
+
`holding it, or a previous sign-in did not finish. Close that ` +
|
|
375
|
+
`application (or restart the host process), then try again.`,
|
|
376
|
+
{ port: route.port },
|
|
377
|
+
);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
270
381
|
|
|
271
|
-
|
|
382
|
+
/**
|
|
383
|
+
* Install the callback-page shim for a flow when there is a known callback
|
|
384
|
+
* route AND something to do with it (a custom renderer and/or a result
|
|
385
|
+
* observer). Returns a release function (a no-op when no shim was installed).
|
|
386
|
+
*
|
|
387
|
+
* Unlike a `try/finally` wrapper around pi-ai's `login()`, the caller owns
|
|
388
|
+
* the release lifecycle: pi-ai's callback-server flows hang forever on a
|
|
389
|
+
* non-success callback, so cleanup must be tied to the flow's own
|
|
390
|
+
* race/timeout, not to awaiting the (possibly never-settling) login promise.
|
|
391
|
+
*/
|
|
392
|
+
function maybeInstallOAuthCallbackShim(
|
|
272
393
|
provider: string,
|
|
273
394
|
providerName: string,
|
|
274
395
|
render: OAuthCallbackPageRenderer | undefined,
|
|
275
|
-
|
|
276
|
-
):
|
|
396
|
+
onResult: ActiveOAuthCallbackPageShim['onResult'],
|
|
397
|
+
): () => void {
|
|
277
398
|
const route = OAUTH_CALLBACK_ROUTES[provider];
|
|
278
|
-
if (!
|
|
279
|
-
return
|
|
399
|
+
if (!route || (!render && !onResult)) {
|
|
400
|
+
return () => {};
|
|
280
401
|
}
|
|
281
402
|
|
|
282
|
-
|
|
403
|
+
return installOAuthCallbackPageShim({
|
|
283
404
|
provider,
|
|
284
405
|
providerName,
|
|
285
406
|
route,
|
|
286
407
|
render,
|
|
408
|
+
onResult,
|
|
287
409
|
});
|
|
288
|
-
|
|
289
|
-
try {
|
|
290
|
-
return await run();
|
|
291
|
-
} finally {
|
|
292
|
-
release();
|
|
293
|
-
}
|
|
294
410
|
}
|
|
295
411
|
|
|
296
412
|
function installOAuthCallbackPageShim(shim: ActiveOAuthCallbackPageShim): () => void {
|
|
@@ -304,6 +420,7 @@ function installOAuthCallbackPageShim(shim: ActiveOAuthCallbackPageShim): () =>
|
|
|
304
420
|
const prototype = http.ServerResponse.prototype;
|
|
305
421
|
const previousEnd = prototype.end;
|
|
306
422
|
activeOAuthCallbackPageShim = shim;
|
|
423
|
+
oauthCallbackResultNotified = false;
|
|
307
424
|
|
|
308
425
|
const patchedEnd = function patchedOAuthCallbackEnd(this: ServerResponse, ...args: unknown[]) {
|
|
309
426
|
const replacement = maybeRenderOAuthCallbackPage(this, args[0]);
|
|
@@ -374,6 +491,19 @@ function maybeRenderOAuthCallbackPage(response: ServerResponse, chunk: unknown):
|
|
|
374
491
|
context.details = details;
|
|
375
492
|
}
|
|
376
493
|
|
|
494
|
+
// Notify the flow that the browser callback fired (once). This lets
|
|
495
|
+
// initiateOAuth react to a failed callback immediately rather than
|
|
496
|
+
// waiting on pi-ai, which hangs on non-success callbacks.
|
|
497
|
+
if (!oauthCallbackResultNotified && shim.onResult) {
|
|
498
|
+
oauthCallbackResultNotified = true;
|
|
499
|
+
try {
|
|
500
|
+
shim.onResult(status, context);
|
|
501
|
+
} catch {
|
|
502
|
+
// An observer must never break the callback response.
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
if (!shim.render) return null;
|
|
377
507
|
try {
|
|
378
508
|
const rendered = shim.render(context);
|
|
379
509
|
return typeof rendered === 'string' && rendered.trim().length > 0 ? rendered : null;
|
|
@@ -732,41 +862,112 @@ export class ProviderManager implements IProviderManager {
|
|
|
732
862
|
* @param provider - OAuth provider identifier
|
|
733
863
|
* @param callbacks - UI callbacks for auth URL, prompts, and progress
|
|
734
864
|
* @returns The OAuth credentials and display metadata
|
|
735
|
-
* @throws
|
|
865
|
+
* @throws {OAuthError} `unsupported_provider`, `callback_port_in_use`,
|
|
866
|
+
* `cancelled`, `timed_out`, or `callback_failed`. Other errors (e.g.
|
|
867
|
+
* network/token-exchange failures from pi-ai) propagate as-is.
|
|
736
868
|
*/
|
|
737
869
|
async initiateOAuth(provider: string, callbacks: OAuthCallbacks): Promise<OAuthResult> {
|
|
738
870
|
const oauthModule = await loadPiAiOAuth();
|
|
739
871
|
const oauthProvider = oauthModule.getOAuthProvider?.(provider);
|
|
740
872
|
if (!oauthProvider) {
|
|
741
|
-
throw new
|
|
873
|
+
throw new OAuthError(
|
|
874
|
+
'unsupported_provider',
|
|
875
|
+
provider,
|
|
876
|
+
`Provider "${provider}" does not support OAuth`,
|
|
877
|
+
);
|
|
742
878
|
}
|
|
743
879
|
|
|
744
|
-
|
|
880
|
+
// (A) Fail fast — before opening a browser — if the provider's fixed
|
|
881
|
+
// callback port is already taken. Otherwise pi-ai binds the other
|
|
882
|
+
// stack, the browser hits the wrong listener, and pi-ai waits forever.
|
|
883
|
+
await assertOAuthCallbackPortAvailable(provider);
|
|
745
884
|
|
|
746
|
-
|
|
747
|
-
|
|
885
|
+
const abort = new AbortController();
|
|
886
|
+
this.activeOAuthAbort = abort;
|
|
887
|
+
|
|
888
|
+
// (C) pi-ai only settles its callback wait on success; on a failed
|
|
889
|
+
// callback (e.g. state mismatch) it hangs. The render shim already sees
|
|
890
|
+
// that response — use it to fail the flow immediately with the reason.
|
|
891
|
+
let failFromCallback!: (err: OAuthError) => void;
|
|
892
|
+
const callbackFailure = new Promise<never>((_, reject) => {
|
|
893
|
+
failFromCallback = reject;
|
|
894
|
+
});
|
|
895
|
+
const handleCallbackResult = (
|
|
896
|
+
status: OAuthCallbackPageStatus,
|
|
897
|
+
ctx: OAuthCallbackPageContext,
|
|
898
|
+
): void => {
|
|
899
|
+
if (status !== 'error') return;
|
|
900
|
+
const detail = ctx.details ? ` (${ctx.details})` : '';
|
|
901
|
+
failFromCallback(new OAuthError(
|
|
902
|
+
'callback_failed',
|
|
748
903
|
provider,
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
onAuth: callbacks.onAuth,
|
|
753
|
-
onPrompt: callbacks.onPrompt,
|
|
754
|
-
onProgress: callbacks.onProgress,
|
|
755
|
-
onManualCodeInput: callbacks.onManualCodeInput,
|
|
756
|
-
onSelect: callbacks.onSelect,
|
|
757
|
-
signal: this.activeOAuthAbort!.signal,
|
|
758
|
-
}),
|
|
759
|
-
);
|
|
904
|
+
`OAuth callback for "${provider}" reported a failure: ${ctx.message}${detail}`,
|
|
905
|
+
));
|
|
906
|
+
};
|
|
760
907
|
|
|
761
|
-
|
|
908
|
+
const releaseShim = maybeInstallOAuthCallbackShim(
|
|
909
|
+
provider,
|
|
910
|
+
oauthProvider.name,
|
|
911
|
+
callbacks.renderCallbackPage,
|
|
912
|
+
handleCallbackResult,
|
|
913
|
+
);
|
|
914
|
+
|
|
915
|
+
// (B) pi-ai callback servers ignore the abort signal, so cancellation
|
|
916
|
+
// and timeout are enforced here. Without this the flow hangs forever.
|
|
917
|
+
const timeoutMs = callbacks.timeoutMs ?? DEFAULT_OAUTH_FLOW_TIMEOUT_MS;
|
|
918
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
919
|
+
const timeout = new Promise<never>((_, reject) => {
|
|
920
|
+
if (timeoutMs > 0 && Number.isFinite(timeoutMs)) {
|
|
921
|
+
timer = setTimeout(() => reject(new OAuthError(
|
|
922
|
+
'timed_out',
|
|
923
|
+
provider,
|
|
924
|
+
`OAuth flow for "${provider}" timed out after ${timeoutMs}ms.`,
|
|
925
|
+
)), timeoutMs);
|
|
926
|
+
timer.unref?.();
|
|
927
|
+
}
|
|
928
|
+
});
|
|
929
|
+
const cancelled = new Promise<never>((_, reject) => {
|
|
930
|
+
abort.signal.addEventListener('abort', () => reject(new OAuthError(
|
|
931
|
+
'cancelled',
|
|
932
|
+
provider,
|
|
933
|
+
`OAuth flow for "${provider}" was cancelled.`,
|
|
934
|
+
)), { once: true });
|
|
935
|
+
});
|
|
936
|
+
|
|
937
|
+
const login = oauthProvider.login({
|
|
938
|
+
onAuth: callbacks.onAuth,
|
|
939
|
+
onPrompt: callbacks.onPrompt,
|
|
940
|
+
onProgress: callbacks.onProgress,
|
|
941
|
+
onManualCodeInput: callbacks.onManualCodeInput,
|
|
942
|
+
onSelect: callbacks.onSelect,
|
|
943
|
+
signal: abort.signal,
|
|
944
|
+
}) as Promise<Record<string, unknown>>;
|
|
945
|
+
// Whichever promise loses the race may still settle later (pi-ai's
|
|
946
|
+
// login can hang or settle late; the aux promises can reject after the
|
|
947
|
+
// race is decided). Attach inert handlers so a late rejection never
|
|
948
|
+
// surfaces as an unhandled rejection. Promise.race still observes the
|
|
949
|
+
// first settlement independently.
|
|
950
|
+
login.catch(() => {});
|
|
951
|
+
cancelled.catch(() => {});
|
|
952
|
+
timeout.catch(() => {});
|
|
953
|
+
callbackFailure.catch(() => {});
|
|
954
|
+
|
|
955
|
+
try {
|
|
956
|
+
const rawCredentials = await Promise.race([
|
|
957
|
+
login,
|
|
958
|
+
cancelled,
|
|
959
|
+
timeout,
|
|
960
|
+
callbackFailure,
|
|
961
|
+
]);
|
|
762
962
|
|
|
763
963
|
const credentials = JSON.stringify(rawCredentials);
|
|
764
964
|
const meta = buildOAuthMeta(provider, rawCredentials);
|
|
765
965
|
|
|
766
966
|
return { credentials, meta };
|
|
767
|
-
}
|
|
768
|
-
|
|
769
|
-
|
|
967
|
+
} finally {
|
|
968
|
+
if (timer) clearTimeout(timer);
|
|
969
|
+
releaseShim();
|
|
970
|
+
if (this.activeOAuthAbort === abort) this.activeOAuthAbort = null;
|
|
770
971
|
}
|
|
771
972
|
}
|
|
772
973
|
|