@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 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
@@ -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":"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"}
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 Error if the provider does not support OAuth or pi-ai is not installed
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":"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"}
1
+ {"version":3,"file":"provider-manager.d.ts","sourceRoot":"","sources":["../src/provider-manager.ts"],"names":[],"mappings":"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"}
@@ -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
- async function withOAuthCallbackPageShim(provider, providerName, render, run) {
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 (!render || !route) {
29
- return run();
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
- const release = installOAuthCallbackPageShim({
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 Error if the provider does not support OAuth or pi-ai is not installed
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 Error(`Provider "${provider}" does not support OAuth`);
518
+ throw new OAuthError('unsupported_provider', provider, `Provider "${provider}" does not support OAuth`);
437
519
  }
438
- this.activeOAuthAbort = new AbortController();
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 withOAuthCallbackPageShim(provider, oauthProvider.name, callbacks.renderCallbackPage, () => oauthProvider.login({
441
- onAuth: callbacks.onAuth,
442
- onPrompt: callbacks.onPrompt,
443
- onProgress: callbacks.onProgress,
444
- onManualCodeInput: callbacks.onManualCodeInput,
445
- onSelect: callbacks.onSelect,
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
- catch (err) {
454
- this.activeOAuthAbort = null;
455
- throw err;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@animus-labs/cortex",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "Production-grade agent framework with structured context management, compaction, tools, and MCP support",
5
5
  "license": "MIT",
6
6
  "author": "Animus Labs",
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,
@@ -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
- async function withOAuthCallbackPageShim<T>(
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
- run: () => Promise<T>,
276
- ): Promise<T> {
396
+ onResult: ActiveOAuthCallbackPageShim['onResult'],
397
+ ): () => void {
277
398
  const route = OAUTH_CALLBACK_ROUTES[provider];
278
- if (!render || !route) {
279
- return run();
399
+ if (!route || (!render && !onResult)) {
400
+ return () => {};
280
401
  }
281
402
 
282
- const release = installOAuthCallbackPageShim({
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 Error if the provider does not support OAuth or pi-ai is not installed
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 Error(`Provider "${provider}" does not support OAuth`);
873
+ throw new OAuthError(
874
+ 'unsupported_provider',
875
+ provider,
876
+ `Provider "${provider}" does not support OAuth`,
877
+ );
742
878
  }
743
879
 
744
- this.activeOAuthAbort = new AbortController();
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
- try {
747
- const rawCredentials = await withOAuthCallbackPageShim(
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
- oauthProvider.name,
750
- callbacks.renderCallbackPage,
751
- () => oauthProvider.login({
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
- this.activeOAuthAbort = null;
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
- } catch (err) {
768
- this.activeOAuthAbort = null;
769
- throw err;
967
+ } finally {
968
+ if (timer) clearTimeout(timer);
969
+ releaseShim();
970
+ if (this.activeOAuthAbort === abort) this.activeOAuthAbort = null;
770
971
  }
771
972
  }
772
973