lazy-mcp 1.5.2 → 1.6.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 CHANGED
@@ -27,6 +27,7 @@ A proxy tool that converts normal MCP servers to use a lazy-loading pattern, dra
27
27
  - [For Maintainers](#for-maintainers)
28
28
  - [Configuration Reference](#configuration-reference)
29
29
  - [Server Configuration Fields](#server-configuration-fields)
30
+ - [OAuth 2.0 Authentication](#oauth-20-authentication)
30
31
  - [Command Format](#command-format)
31
32
  - [Environment Variables](#environment-variables)
32
33
  - [Health Monitoring](#health-monitoring)
@@ -38,10 +39,11 @@ A proxy tool that converts normal MCP servers to use a lazy-loading pattern, dra
38
39
  ## Features
39
40
 
40
41
  - **Single-Server Mode**: Wrap one MCP server with 3 meta-tools (legacy mode)
41
- - **Multi-Server Mode**: Aggregate multiple MCP servers with on-demand discovery (NEW!)
42
+ - **Multi-Server Mode**: Aggregate multiple MCP servers with on-demand discovery
42
43
  - **Lazy Loading**: Only discover tools when needed, not upfront
43
44
  - **Batch Discovery**: Discover multiple servers in one call
44
45
  - **90%+ Context Reduction**: From ~16K to ~1.5K tokens initially
46
+ - **Built-in OAuth 2.0 + PKCE**: Authenticate with OAuth-protected remote servers without a browser — works in sandboxed agent environments
45
47
  - **Background Health Monitoring**: Probes all servers on startup and periodically; `list_servers` shows accurate health from the first call
46
48
  - **Hot Config Reload**: Send `SIGHUP` to reload config without restarting — add, remove, or update servers on the fly
47
49
 
@@ -59,7 +61,7 @@ Wraps one MCP server and exposes three meta-tools:
59
61
 
60
62
  Aggregates multiple MCP servers and exposes four meta-tools:
61
63
 
62
- - `list_servers` - Lists all configured MCP servers with health status
64
+ - `list_servers` - Lists all configured MCP servers with health status. Response includes `pid` and `config_file` so an agent can fix broken config and reload via `kill -HUP <pid>`
63
65
  - `list_commands` - Discovers tools from specific server(s), supports batch discovery
64
66
  - `describe_commands` - Gets detailed schemas from a server
65
67
  - `invoke_command` - Executes commands from a specific server
@@ -108,12 +110,19 @@ Create a configuration file at `~/.config/lazy-mcp/servers.json`:
108
110
  },
109
111
  {
110
112
  "name": "my-remote-server",
111
- "description": "Custom remote MCP server",
113
+ "description": "Custom remote MCP server with static token",
112
114
  "type": "remote",
113
115
  "url": "https://api.example.com/mcp",
114
116
  "headers": {
115
117
  "Authorization": "Bearer ${API_TOKEN}"
116
118
  }
119
+ },
120
+ {
121
+ "name": "glean",
122
+ "description": "Glean enterprise search (OAuth)",
123
+ "type": "remote",
124
+ "url": "https://your-company.glean.com/mcp/default",
125
+ "oauth": {}
117
126
  }
118
127
  ],
119
128
  "healthMonitor": {
@@ -301,16 +310,68 @@ npm run dev -- http://localhost:3000/mcp
301
310
  |-------|------|----------|-------------|
302
311
  | `name` | string | ✅ | Unique server identifier |
303
312
  | `description` | string | ✅ | Human-readable description |
304
- | `type` | "local" \| "remote" | | Server connection type |
313
+ | `type` | "local" \| "remote" | Optional | Inferred from `url` (remote) or `command` (local) if omitted |
305
314
  | `command` | string[] \| string | For local | Command to execute (array format recommended) |
306
315
  | `args` | string[] | Optional | Arguments (only if command is string) |
307
316
  | `url` | string | For remote | HTTP/HTTPS URL |
308
- | `headers` | object | Optional | HTTP headers for remote servers |
317
+ | `headers` | object | Optional | Static HTTP headers for remote servers |
318
+ | `oauth` | object | Optional | OAuth 2.0 config for remote servers (see below) |
309
319
  | `env` | object | Optional | Environment variables (supports `${VAR}` expansion) |
310
320
  | `enabled` | boolean | Optional | Enable/disable server (default: true) |
311
321
  | `examples` | object[] | Optional | Usage examples shown in `list_servers` output |
312
322
  | `tags` | string[] | Optional | Capability tags for filtering (e.g. `"api"`, `"browser"`) |
313
323
 
324
+ ### OAuth 2.0 Authentication
325
+
326
+ lazy-mcp has built-in OAuth 2.0 + PKCE support for remote servers that require user authorization. It works without opening a browser automatically, making it suitable for sandboxed agent environments: when authentication is needed, lazy-mcp returns the authorization URL in the error message so the agent can present it to the user.
327
+
328
+ OAuth server endpoints are **discovered automatically** via RFC 8414 (`/.well-known/oauth-authorization-server`). Dynamic client registration (RFC 7591) is used when no `clientId` is provided.
329
+
330
+ Tokens are persisted to `~/.config/lazy-mcp/tokens.json` (mode `0600`) and refreshed automatically via `refresh_token` when available.
331
+
332
+ **Minimal config** (fully automatic — discovery + dynamic registration):
333
+ ```json
334
+ {
335
+ "name": "glean",
336
+ "description": "Glean enterprise search",
337
+ "type": "remote",
338
+ "url": "https://your-company.glean.com/mcp/default",
339
+ "oauth": {}
340
+ }
341
+ ```
342
+
343
+ **With a pre-registered client ID**:
344
+ ```json
345
+ {
346
+ "name": "glean",
347
+ "description": "Glean enterprise search",
348
+ "type": "remote",
349
+ "url": "https://your-company.glean.com/mcp/default",
350
+ "oauth": {
351
+ "clientId": "${GLEAN_CLIENT_ID}",
352
+ "extraHeaders": { "X-Glean-Auth-Type": "OAUTH" }
353
+ }
354
+ }
355
+ ```
356
+
357
+ **`oauth` object fields:**
358
+
359
+ | Field | Type | Default | Description |
360
+ |-------|------|---------|-------------|
361
+ | `clientId` | string | — | OAuth client ID. If omitted, dynamic registration (RFC 7591) is attempted |
362
+ | `clientSecret` | string | — | Client secret (omit for public-client / PKCE-only flows) |
363
+ | `callbackPort` | number | `8947` | Local port for the OAuth redirect callback server |
364
+ | `extraHeaders` | object | — | Additional headers added to every authenticated request (e.g. `X-Glean-Auth-Type`) |
365
+
366
+ **How it works:**
367
+
368
+ 1. Agent calls `invoke_command` (or `list_commands`) on an OAuth-protected server
369
+ 2. lazy-mcp returns an `isError: true` response with the authorization URL
370
+ 3. Agent presents the URL to the user: _"Open this URL to authorize Glean: https://..."_
371
+ 4. User opens the URL in a browser and completes authorization
372
+ 5. Browser redirects to `http://localhost:8947/callback` — lazy-mcp captures the token
373
+ 6. Agent retries the original command — now succeeds transparently
374
+
314
375
  ### Command Format
315
376
 
316
377
  **Recommended** (OpenCode-compatible):
package/dist/cli.js CHANGED
@@ -269,7 +269,7 @@ async function runMultiServerMode(args) {
269
269
  }
270
270
  try {
271
271
  const config = config_1.ConfigLoader.load(configPath);
272
- const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor);
272
+ const serverManager = new server_manager_1.ServerManager(config.servers, config.cache, config.healthMonitor, configPath);
273
273
  const lazyServer = new server_1.LazyMCPServer(undefined, serverManager);
274
274
  const cleanup = async () => {
275
275
  console.error('\nShutting down...');
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -3,6 +3,8 @@ export declare class ConfigLoader {
3
3
  static load(configPath: string): MultiServerConfig;
4
4
  private static resolvePath;
5
5
  private static validate;
6
+ /** Validates a server entry. Returns an error string if invalid, null if valid.
7
+ * Also mutates `server.type` to infer it from url/command when absent. */
6
8
  private static validateServer;
7
9
  static expandEnvVars(value: string): string;
8
10
  static processEnv(env: Record<string, string>): Record<string, string>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,SAAS,CAAC;AAE1D,qBAAa,YAAY;IACvB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAmBlD,OAAO,CAAC,MAAM,CAAC,WAAW;IAO1B,OAAO,CAAC,MAAM,CAAC,QAAQ;IAoBvB,OAAO,CAAC,MAAM,CAAC,cAAc;IAyD7B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAOvE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,SAAS,CAAC;AAW1D,qBAAa,YAAY;IACvB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IAmBlD,OAAO,CAAC,MAAM,CAAC,WAAW;IAO1B,OAAO,CAAC,MAAM,CAAC,QAAQ;IA6BvB;+EAC2E;IAC3E,OAAO,CAAC,MAAM,CAAC,cAAc;IA2F7B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAM3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAOvE"}
package/dist/config.js CHANGED
@@ -37,6 +37,16 @@ exports.ConfigLoader = void 0;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const os = __importStar(require("os"));
40
+ /** Infer server type from fields when not explicitly set. */
41
+ function inferServerType(server) {
42
+ const hasUrl = !!server.url;
43
+ const hasCommand = !!server.command;
44
+ if (hasUrl && !hasCommand)
45
+ return 'remote';
46
+ if (hasCommand && !hasUrl)
47
+ return 'local';
48
+ return null; // ambiguous or missing — caller handles error
49
+ }
40
50
  class ConfigLoader {
41
51
  static load(configPath) {
42
52
  const resolvedPath = this.resolvePath(configPath);
@@ -70,60 +80,105 @@ class ConfigLoader {
70
80
  throw new Error('Config must have at least one server');
71
81
  }
72
82
  config.servers.forEach((server, index) => {
73
- this.validateServer(server, index);
83
+ const error = this.validateServer(server, index);
84
+ if (error) {
85
+ // Tag the server with its config error rather than aborting the whole load.
86
+ // ServerManager will show it as unhealthy so the agent can fix it.
87
+ server._configError = error;
88
+ // Ensure it has a stable type so downstream code doesn't crash
89
+ if (!server.type) {
90
+ server.type = inferServerType(server) ?? 'local';
91
+ }
92
+ }
74
93
  });
75
94
  return config;
76
95
  }
96
+ /** Validates a server entry. Returns an error string if invalid, null if valid.
97
+ * Also mutates `server.type` to infer it from url/command when absent. */
77
98
  static validateServer(server, index) {
78
99
  const prefix = `Server ${index}`;
79
100
  if (!server.name || typeof server.name !== 'string') {
80
- throw new Error(`${prefix}: "name" is required and must be a string`);
101
+ return `${prefix}: "name" is required and must be a string`;
81
102
  }
103
+ const id = `${prefix} (${server.name})`;
82
104
  if (!server.description || typeof server.description !== 'string') {
83
- throw new Error(`${prefix} (${server.name}): "description" is required and must be a string`);
105
+ return `${id}: "description" is required and must be a string`;
84
106
  }
85
- if (!server.type || !['local', 'remote'].includes(server.type)) {
86
- throw new Error(`${prefix} (${server.name}): "type" must be "local" or "remote"`);
107
+ // Infer type from fields if not explicitly set
108
+ if (!server.type) {
109
+ const inferred = inferServerType(server);
110
+ if (!inferred) {
111
+ return `${id}: cannot infer type — provide either "url" (remote) or "command" (local)`;
112
+ }
113
+ server.type = inferred;
114
+ }
115
+ else if (!['local', 'remote'].includes(server.type)) {
116
+ return `${id}: "type" must be "local" or "remote"`;
117
+ }
118
+ else {
119
+ // Validate type is consistent with fields
120
+ if (server.type === 'remote' && server.command) {
121
+ return `${id}: type is "remote" but "command" is set — use "url" for remote servers`;
122
+ }
123
+ if (server.type === 'local' && server.url) {
124
+ return `${id}: type is "local" but "url" is set — use "command" for local servers`;
125
+ }
87
126
  }
88
127
  if (server.type === 'local') {
89
128
  if (!server.command) {
90
- throw new Error(`${prefix} (${server.name}): local servers require "command"`);
129
+ return `${id}: local servers require "command"`;
91
130
  }
92
- // Support both formats:
93
- // 1. OpenCode format: command: ["npx", "-y", "package"]
94
- // 2. Legacy format: command: "npx", args: ["-y", "package"]
95
131
  if (Array.isArray(server.command)) {
96
132
  if (server.command.length === 0) {
97
- throw new Error(`${prefix} (${server.name}): "command" array cannot be empty`);
133
+ return `${id}: "command" array cannot be empty`;
98
134
  }
99
135
  if (!server.command.every((arg) => typeof arg === 'string')) {
100
- throw new Error(`${prefix} (${server.name}): "command" array must contain only strings`);
136
+ return `${id}: "command" array must contain only strings`;
101
137
  }
102
138
  }
103
139
  else if (typeof server.command === 'string') {
104
140
  if (server.args && !Array.isArray(server.args)) {
105
- throw new Error(`${prefix} (${server.name}): "args" must be an array`);
141
+ return `${id}: "args" must be an array`;
106
142
  }
107
143
  }
108
144
  else {
109
- throw new Error(`${prefix} (${server.name}): "command" must be a string or array`);
145
+ return `${id}: "command" must be a string or array`;
110
146
  }
111
147
  }
112
148
  if (server.type === 'remote') {
113
149
  if (!server.url || typeof server.url !== 'string') {
114
- throw new Error(`${prefix} (${server.name}): remote servers require "url" as a string`);
150
+ return `${id}: remote servers require "url" as a string`;
115
151
  }
116
152
  if (!server.url.startsWith('http://') && !server.url.startsWith('https://') &&
117
153
  !server.url.startsWith('ws://') && !server.url.startsWith('wss://')) {
118
- throw new Error(`${prefix} (${server.name}): "url" must start with http://, https://, ws://, or wss://`);
154
+ return `${id}: "url" must start with http://, https://, ws://, or wss://`;
119
155
  }
120
156
  if (server.headers && typeof server.headers !== 'object') {
121
- throw new Error(`${prefix} (${server.name}): "headers" must be an object`);
157
+ return `${id}: "headers" must be an object`;
122
158
  }
123
159
  }
124
160
  if (server.env && typeof server.env !== 'object') {
125
- throw new Error(`${prefix} (${server.name}): "env" must be an object`);
161
+ return `${id}: "env" must be an object`;
162
+ }
163
+ if (server.oauth !== undefined) {
164
+ if (server.type !== 'remote') {
165
+ return `${id}: "oauth" is only supported for remote servers`;
166
+ }
167
+ const o = server.oauth;
168
+ if (o.clientId !== undefined && typeof o.clientId !== 'string') {
169
+ return `${id}: oauth.clientId must be a string`;
170
+ }
171
+ if (o.clientSecret !== undefined && typeof o.clientSecret !== 'string') {
172
+ return `${id}: oauth.clientSecret must be a string`;
173
+ }
174
+ if (o.callbackPort !== undefined && (typeof o.callbackPort !== 'number' || o.callbackPort < 1 || o.callbackPort > 65535)) {
175
+ return `${id}: oauth.callbackPort must be a valid port number (1-65535)`;
176
+ }
177
+ if (o.extraHeaders !== undefined && typeof o.extraHeaders !== 'object') {
178
+ return `${id}: oauth.extraHeaders must be an object`;
179
+ }
126
180
  }
181
+ return null;
127
182
  }
128
183
  static expandEnvVars(value) {
129
184
  return value.replace(/\$\{([^}]+)\}/g, (match, varName) => {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { CommandInfo, CommandSchema, MultiServerProxy, ServerInfo } from './types';
1
+ import { CommandInfo, CommandSchema, MultiServerProxy, ServersListResult } from './types';
2
2
  import { ServerManager } from './server-manager';
3
3
  export declare class MultiServerProxyImpl implements MultiServerProxy {
4
4
  private serverManager;
5
5
  constructor(serverManager: ServerManager);
6
- listServers(filter?: string): Promise<ServerInfo[]>;
6
+ listServers(filter?: string): Promise<ServersListResult>;
7
7
  listCommands(server?: string, servers?: string[]): Promise<CommandInfo[] | Record<string, CommandInfo[]>>;
8
8
  describeCommands(server: string, commandNames: string[]): Promise<CommandSchema[]>;
9
9
  invokeCommand(server: string, commandName: string, parameters: Record<string, any>): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"multi-proxy.d.ts","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIlC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAInD,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IA4BzG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoBlF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAQxG"}
1
+ {"version":3,"file":"multi-proxy.d.ts","sourceRoot":"","sources":["../src/multi-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,oBAAqB,YAAW,gBAAgB;IAC3D,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIlC,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxD,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IA4BzG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoBlF,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAQxG"}
@@ -0,0 +1,103 @@
1
+ import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
2
+ import { OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
3
+ import { OAuthConfig } from './types';
4
+ declare const DEFAULT_CALLBACK_PORT = 8947;
5
+ /**
6
+ * Implements OAuthClientProvider from the MCP SDK.
7
+ *
8
+ * The only behaviour that differs from a standard provider (like mcp-remote's
9
+ * NodeOAuthClientProvider) is `redirectToAuthorization`: instead of opening a
10
+ * browser, we throw an AUTH_REQUIRED MCPException containing the URL so the
11
+ * agent can surface it to the user.
12
+ *
13
+ * Token discovery, PKCE, token exchange, and refresh are all delegated to the
14
+ * SDK's `auth()` / lower-level functions. OAuth server endpoints are discovered
15
+ * automatically via RFC 8414 (/.well-known/oauth-authorization-server).
16
+ *
17
+ * Storage layout in ~/.config/lazy-mcp/:
18
+ * tokens.json — { [serverName]: OAuthTokens }
19
+ * client-info.json — { [serverName]: OAuthClientInformationFull }
20
+ * (code verifiers are kept in-memory only; they live for one callback round-trip)
21
+ */
22
+ export declare class OAuthManager implements OAuthClientProvider {
23
+ private readonly serverName;
24
+ private readonly serverUrl;
25
+ private readonly config;
26
+ /** In-memory PKCE code verifier for the current in-flight flow. */
27
+ private _codeVerifier;
28
+ /** The authorization URL captured inside redirectToAuthorization(). */
29
+ private _pendingAuthUrl;
30
+ /** Callback HTTP server — started lazily, closed after token is captured. */
31
+ private _callbackServer;
32
+ /** Pending promise waiters for the current flow. */
33
+ private _waiters;
34
+ constructor(serverName: string, serverUrl: string, config: OAuthConfig);
35
+ /** The local port the OAuth callback server listens on. */
36
+ get callbackPort(): number;
37
+ /**
38
+ * Returns auth headers if a valid non-expired token is stored, otherwise null.
39
+ * Safe to call before every request — no side effects.
40
+ */
41
+ getStoredAuthHeaders(): Record<string, string> | null;
42
+ /**
43
+ * Attempts to silently refresh the stored token.
44
+ * Returns new auth headers on success, null if no refresh token available.
45
+ * Deletes the stale token if refresh fails.
46
+ */
47
+ tryRefresh(): Promise<Record<string, string> | null>;
48
+ /**
49
+ * Starts the OAuth authorization flow.
50
+ *
51
+ * Calls the SDK's `auth()` function which:
52
+ * 1. Discovers OAuth endpoints via RFC 8414
53
+ * 2. Registers the client dynamically if needed (RFC 7591)
54
+ * 3. Calls our `redirectToAuthorization()` which throws AUTH_REQUIRED
55
+ *
56
+ * The caller must catch AUTH_REQUIRED, surface the URL to the user, then
57
+ * await the returned `done` promise which resolves once the callback server
58
+ * captures the code and exchanges it for a token.
59
+ *
60
+ * Calling startFlow() while a flow is already in progress re-uses it.
61
+ */
62
+ startFlow(): {
63
+ authUrl: string;
64
+ done: Promise<Record<string, string>>;
65
+ };
66
+ /**
67
+ * Async version of startFlow() — preferred when the caller can await.
68
+ * Resolves once the auth URL is available (after endpoint discovery).
69
+ */
70
+ startFlowAsync(): Promise<{
71
+ authUrl: string;
72
+ done: Promise<Record<string, string>>;
73
+ }>;
74
+ /** Cancel any in-flight flow and shut down the callback server. */
75
+ cancelFlow(): void;
76
+ /** Delete stored tokens for this server (e.g. after a confirmed 401). */
77
+ deleteTokens(): void;
78
+ get redirectUrl(): string;
79
+ get clientMetadata(): OAuthClientMetadata;
80
+ clientInformation(): OAuthClientInformationFull | undefined;
81
+ saveClientInformation(info: OAuthClientInformationFull): void;
82
+ tokens(): OAuthTokens | undefined;
83
+ saveTokens(tokens: OAuthTokens): void;
84
+ /**
85
+ * Called by the SDK instead of opening a browser.
86
+ * We capture the URL and throw AUTH_REQUIRED to interrupt the flow.
87
+ * The callback server (already running) will complete the exchange.
88
+ */
89
+ redirectToAuthorization(authorizationUrl: URL): void;
90
+ saveCodeVerifier(codeVerifier: string): void;
91
+ codeVerifier(): string;
92
+ invalidateCredentials(scope: 'all' | 'client' | 'tokens' | 'verifier'): void;
93
+ private loadTokens;
94
+ private isExpired;
95
+ private buildHeaders;
96
+ private _rejectAll;
97
+ private _resolveAll;
98
+ private _runAuthFlow;
99
+ private _startCallbackServer;
100
+ private _closeCallbackServer;
101
+ }
102
+ export { DEFAULT_CALLBACK_PORT };
103
+ //# sourceMappingURL=oauth-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-manager.d.ts","sourceRoot":"","sources":["../src/oauth-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,mBAAmB,EACpB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACZ,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAA8B,WAAW,EAAE,MAAM,SAAS,CAAC;AAIlE,QAAA,MAAM,qBAAqB,OAAO,CAAC;AA4BnC;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAa,YAAW,mBAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,mEAAmE;IACnE,OAAO,CAAC,aAAa,CAAc;IAEnC,uEAAuE;IACvE,OAAO,CAAC,eAAe,CAAoB;IAE3C,6EAA6E;IAC7E,OAAO,CAAC,eAAe,CAA4B;IAEnD,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAGR;gBAEI,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAQtE,2DAA2D;IAC3D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;OAGG;IACH,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAOrD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAiB1D;;;;;;;;;;;;;OAaG;IACH,SAAS,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE;IA2DvE;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;KAAE,CAAC;IA+B3F,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAMlB,yEAAyE;IACzE,YAAY,IAAI,IAAI;IAQpB,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,cAAc,IAAI,mBAAmB,CASxC;IAED,iBAAiB,IAAI,0BAA0B,GAAG,SAAS;IAc3D,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAM7D,MAAM,IAAI,WAAW,GAAG,SAAS;IAIjC,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAMrC;;;;OAIG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,IAAI;IAWpD,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAI5C,YAAY,IAAI,MAAM;IAItB,qBAAqB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI;IAgB5E,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;YAKL,YAAY;IAI1B,OAAO,CAAC,oBAAoB;IA4E5B,OAAO,CAAC,oBAAoB;CAM7B;AAuBD,OAAO,EAAE,qBAAqB,EAAE,CAAC"}