gobananas-cli 1.3.3 → 1.3.6
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 +33 -4
- package/dist/auth/oauth.d.ts +15 -0
- package/dist/auth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth.js +94 -3
- package/dist/auth/oauth.js.map +1 -1
- package/dist/commands/generate.js +1 -1
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +1 -1
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/scene.js +1 -1
- package/dist/commands/scene.js.map +1 -1
- package/dist/config/config.d.ts.map +1 -1
- package/dist/config/config.js +2 -0
- package/dist/config/config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/stdio-proxy.d.ts +19 -2
- package/dist/mcp/stdio-proxy.d.ts.map +1 -1
- package/dist/mcp/stdio-proxy.js +140 -40
- package/dist/mcp/stdio-proxy.js.map +1 -1
- package/dist/mcp-stdio.d.ts +1 -1
- package/dist/mcp-stdio.d.ts.map +1 -1
- package/dist/mcp-stdio.js +12 -21
- package/dist/mcp-stdio.js.map +1 -1
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +14 -0
- package/dist/runtime.js.map +1 -0
- package/dist/transport/mcp-client.d.ts.map +1 -1
- package/dist/transport/mcp-client.js +5 -4
- package/dist/transport/mcp-client.js.map +1 -1
- package/dist/transport/rest-client.d.ts.map +1 -1
- package/dist/transport/rest-client.js +3 -0
- package/dist/transport/rest-client.js.map +1 -1
- package/package.json +6 -3
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ListToolsResult as UpstreamListToolsResult, type ProtocolEra } from '@modelcontextprotocol/client';
|
|
1
|
+
import { Client, SSEClientTransport, StreamableHTTPClientTransport, type ListToolsResult as UpstreamListToolsResult, type ProtocolEra } from '@modelcontextprotocol/client';
|
|
2
2
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
3
|
import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
export type UpstreamTransportMode = 'auto' | 'streamable-http' | 'sse';
|
|
@@ -16,6 +16,12 @@ export interface McpStdioProxyOptions {
|
|
|
16
16
|
*/
|
|
17
17
|
export declare const CONNECT_TIMEOUT_MS = 30000;
|
|
18
18
|
export declare const REQUEST_TIMEOUT_MS = 900000;
|
|
19
|
+
type ConnectedUpstream = {
|
|
20
|
+
type: Exclude<UpstreamTransportMode, 'auto'>;
|
|
21
|
+
client: Client;
|
|
22
|
+
transport: SSEClientTransport | StreamableHTTPClientTransport;
|
|
23
|
+
protocolEra: ProtocolEra;
|
|
24
|
+
};
|
|
19
25
|
export declare class UpstreamGoBananas {
|
|
20
26
|
private readonly baseUrl;
|
|
21
27
|
private readonly apiKey;
|
|
@@ -23,6 +29,9 @@ export declare class UpstreamGoBananas {
|
|
|
23
29
|
private readonly forwardProgress;
|
|
24
30
|
private readonly getApplicationSessionId;
|
|
25
31
|
private connected;
|
|
32
|
+
private stopped;
|
|
33
|
+
private readonly shutdownController;
|
|
34
|
+
private readonly pendingClients;
|
|
26
35
|
private connectPromise;
|
|
27
36
|
private lastConnectError;
|
|
28
37
|
private toolsCache;
|
|
@@ -42,7 +51,9 @@ export declare class UpstreamGoBananas {
|
|
|
42
51
|
};
|
|
43
52
|
getAuthDescription(): Promise<string>;
|
|
44
53
|
ensureConnected(): Promise<boolean>;
|
|
45
|
-
close
|
|
54
|
+
/** Irreversible process shutdown, distinct from reusable session close. */
|
|
55
|
+
shutdown(): Promise<void>;
|
|
56
|
+
close(connection?: ConnectedUpstream | null): Promise<void>;
|
|
46
57
|
listTools(): Promise<UpstreamListToolsResult | null>;
|
|
47
58
|
callTool(name: string, args: Record<string, unknown>, requestMeta?: Record<string, unknown>): Promise<CallToolResult>;
|
|
48
59
|
/**
|
|
@@ -66,7 +77,13 @@ export declare class UpstreamGoBananas {
|
|
|
66
77
|
private tryConnectStreamableHttp;
|
|
67
78
|
private tryConnectSse;
|
|
68
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* True when the server's auth gate refused the request. The Worker rejects
|
|
82
|
+
* credentials before any tool runs, so such a call is safe to retry.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isAuthRejection(error: unknown): boolean;
|
|
69
85
|
export declare function resolveExplicitMcpApiKey(options: McpStdioProxyOptions): string | undefined;
|
|
70
86
|
export declare function createGoBananasStdioServer(): Server;
|
|
71
87
|
export declare function runGoBananasMcpStdioProxy(options?: McpStdioProxyOptions): Promise<void>;
|
|
88
|
+
export {};
|
|
72
89
|
//# sourceMappingURL=stdio-proxy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stdio-proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/stdio-proxy.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
1
2
|
import { SSEClientTransport, StreamableHTTPClientTransport, } from '@modelcontextprotocol/client';
|
|
2
3
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
3
4
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
5
|
import { CallToolRequestSchema, ListToolsRequestSchema, PingRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
6
|
import { getConfig, getOrCreateSessionId } from '../config/config.js';
|
|
6
|
-
import { getAuthHeaders } from '../auth/oauth.js';
|
|
7
|
+
import { getAuthHeaders, getTransportAuth, LoginExpiredError } from '../auth/oauth.js';
|
|
7
8
|
import { readLocalImageAsBase64, readLocalMediaFile } from '../utils/file-handler.js';
|
|
8
9
|
import { PACKAGE_NAME, PACKAGE_VERSION } from '../version.js';
|
|
9
10
|
import { createLegacyClient, createNegotiatingClient, getConnectedProtocolEra, withApplicationSessionId, } from './upstream-client.js';
|
|
@@ -50,13 +51,15 @@ function describeAuthHeaders(headers) {
|
|
|
50
51
|
*/
|
|
51
52
|
export const CONNECT_TIMEOUT_MS = 30_000; // 30s for handshake
|
|
52
53
|
export const REQUEST_TIMEOUT_MS = 900_000; // 15min for queued generation tool calls
|
|
53
|
-
function fetchWithTimeout(timeoutMs) {
|
|
54
|
+
function fetchWithTimeout(timeoutMs, shutdownSignal) {
|
|
54
55
|
return async (input, init) => {
|
|
55
56
|
const controller = new AbortController();
|
|
56
57
|
const timeout = setTimeout(() => controller.abort(), timeoutMs);
|
|
57
|
-
const signal =
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
const signal = AbortSignal.any([
|
|
59
|
+
controller.signal,
|
|
60
|
+
...(init?.signal ? [init.signal] : []),
|
|
61
|
+
...(shutdownSignal ? [shutdownSignal] : []),
|
|
62
|
+
]);
|
|
60
63
|
try {
|
|
61
64
|
return await fetch(input, { ...(init ?? {}), signal });
|
|
62
65
|
}
|
|
@@ -95,6 +98,9 @@ export class UpstreamGoBananas {
|
|
|
95
98
|
forwardProgress;
|
|
96
99
|
getApplicationSessionId;
|
|
97
100
|
connected = null;
|
|
101
|
+
stopped = false;
|
|
102
|
+
shutdownController = new AbortController();
|
|
103
|
+
pendingClients = new Set();
|
|
98
104
|
connectPromise = null;
|
|
99
105
|
lastConnectError = null;
|
|
100
106
|
toolsCache = null;
|
|
@@ -125,6 +131,8 @@ export class UpstreamGoBananas {
|
|
|
125
131
|
return describeAuthHeaders(await getAuthHeaders(this.apiKey, this.baseUrl));
|
|
126
132
|
}
|
|
127
133
|
async ensureConnected() {
|
|
134
|
+
if (this.stopped)
|
|
135
|
+
return false;
|
|
128
136
|
if (this.connected) {
|
|
129
137
|
return true;
|
|
130
138
|
}
|
|
@@ -142,7 +150,9 @@ export class UpstreamGoBananas {
|
|
|
142
150
|
}
|
|
143
151
|
else {
|
|
144
152
|
// Auto mode: try streamable-http first, fall back to SSE
|
|
145
|
-
ok =
|
|
153
|
+
ok =
|
|
154
|
+
(await this.tryConnectStreamableHttp()) ||
|
|
155
|
+
(!this.stopped && (await this.tryConnectSse()));
|
|
146
156
|
}
|
|
147
157
|
if (!ok) {
|
|
148
158
|
return false;
|
|
@@ -161,42 +171,55 @@ export class UpstreamGoBananas {
|
|
|
161
171
|
})();
|
|
162
172
|
return await this.connectPromise;
|
|
163
173
|
}
|
|
164
|
-
|
|
174
|
+
/** Irreversible process shutdown, distinct from reusable session close. */
|
|
175
|
+
async shutdown() {
|
|
176
|
+
this.stopped = true;
|
|
177
|
+
this.shutdownController.abort();
|
|
178
|
+
await Promise.allSettled([...this.pendingClients].map((client) => client.close()));
|
|
179
|
+
await this.close();
|
|
180
|
+
}
|
|
181
|
+
async close(connection = this.connected) {
|
|
182
|
+
// Detach synchronously. A delayed failure/close from this session must not
|
|
183
|
+
// retire a replacement established while its cleanup is still pending.
|
|
184
|
+
if (!connection || this.connected !== connection)
|
|
185
|
+
return;
|
|
186
|
+
this.connected = null;
|
|
165
187
|
try {
|
|
166
|
-
if (
|
|
167
|
-
await
|
|
188
|
+
if (connection.client) {
|
|
189
|
+
await connection.client.close();
|
|
168
190
|
}
|
|
169
|
-
else if (
|
|
170
|
-
await
|
|
191
|
+
else if (connection.transport) {
|
|
192
|
+
await connection.transport.close();
|
|
171
193
|
}
|
|
172
194
|
}
|
|
173
195
|
catch {
|
|
174
196
|
// ignore
|
|
175
197
|
}
|
|
176
|
-
finally {
|
|
177
|
-
this.connected = null;
|
|
178
|
-
}
|
|
179
198
|
}
|
|
180
199
|
async listTools() {
|
|
181
200
|
const ok = await this.ensureConnected();
|
|
182
201
|
if (!ok || !this.connected) {
|
|
183
202
|
return null;
|
|
184
203
|
}
|
|
204
|
+
const connection = this.connected;
|
|
185
205
|
try {
|
|
186
|
-
const result = await
|
|
187
|
-
this.
|
|
206
|
+
const result = await connection.client.listTools();
|
|
207
|
+
if (this.connected === connection)
|
|
208
|
+
this.toolsCache = result;
|
|
188
209
|
return result;
|
|
189
210
|
}
|
|
190
211
|
catch (error) {
|
|
191
212
|
// Stale session — close and retry once
|
|
192
213
|
logError('listTools failed, reconnecting upstream…', error);
|
|
193
|
-
await this.close();
|
|
214
|
+
await this.close(connection);
|
|
194
215
|
const retryOk = await this.ensureConnected();
|
|
195
216
|
if (!retryOk || !this.connected) {
|
|
196
217
|
return null;
|
|
197
218
|
}
|
|
198
|
-
const
|
|
199
|
-
|
|
219
|
+
const retryConnection = this.connected;
|
|
220
|
+
const result = await retryConnection.client.listTools();
|
|
221
|
+
if (this.connected === retryConnection)
|
|
222
|
+
this.toolsCache = result;
|
|
200
223
|
return result;
|
|
201
224
|
}
|
|
202
225
|
}
|
|
@@ -205,6 +228,7 @@ export class UpstreamGoBananas {
|
|
|
205
228
|
if (!ok || !this.connected) {
|
|
206
229
|
throw new Error('Upstream not connected');
|
|
207
230
|
}
|
|
231
|
+
const connection = this.connected;
|
|
208
232
|
// Override the MCP SDK's default 60s request timeout (DEFAULT_REQUEST_TIMEOUT_MSEC).
|
|
209
233
|
// Generation tools can wait in a queue behind other long-running requests.
|
|
210
234
|
// The SDK only requests/registers progress when onprogress is present. Copying the
|
|
@@ -232,7 +256,7 @@ export class UpstreamGoBananas {
|
|
|
232
256
|
},
|
|
233
257
|
};
|
|
234
258
|
try {
|
|
235
|
-
const result = await
|
|
259
|
+
const result = await connection.client.callTool({
|
|
236
260
|
name,
|
|
237
261
|
arguments: toolArguments,
|
|
238
262
|
...(Object.keys(forwardedMeta).length > 0 ? { _meta: forwardedMeta } : {}),
|
|
@@ -244,7 +268,7 @@ export class UpstreamGoBananas {
|
|
|
244
268
|
// side-effectful, so a retry after the upstream accepted the request can
|
|
245
269
|
// create duplicate images while the original response path is unhealthy.
|
|
246
270
|
logError('Tool call failed; closing upstream session without retry…', error);
|
|
247
|
-
await this.close();
|
|
271
|
+
await this.close(connection);
|
|
248
272
|
throw error;
|
|
249
273
|
}
|
|
250
274
|
}
|
|
@@ -275,6 +299,7 @@ export class UpstreamGoBananas {
|
|
|
275
299
|
const uploadUrl = `${this.baseUrl}/api/images/upload`;
|
|
276
300
|
const response = await fetch(uploadUrl, {
|
|
277
301
|
method: 'POST',
|
|
302
|
+
redirect: 'error',
|
|
278
303
|
headers: authHeaders,
|
|
279
304
|
body: formData,
|
|
280
305
|
});
|
|
@@ -315,6 +340,7 @@ export class UpstreamGoBananas {
|
|
|
315
340
|
const uploadUrl = `${this.baseUrl}/api/media/upload`;
|
|
316
341
|
const response = await fetch(uploadUrl, {
|
|
317
342
|
method: 'POST',
|
|
343
|
+
redirect: 'error',
|
|
318
344
|
headers: authHeaders,
|
|
319
345
|
body: formData,
|
|
320
346
|
});
|
|
@@ -340,7 +366,9 @@ export class UpstreamGoBananas {
|
|
|
340
366
|
dimensionLine);
|
|
341
367
|
}
|
|
342
368
|
async tryConnectStreamableHttp() {
|
|
343
|
-
const headers = await
|
|
369
|
+
const { headers, authProvider } = await getTransportAuth(this.apiKey, this.baseUrl);
|
|
370
|
+
if (this.stopped)
|
|
371
|
+
return false;
|
|
344
372
|
const mcpUrl = new URL('/mcp', this.baseUrl);
|
|
345
373
|
// Do not use transport-level reconnection for side-effectful tool calls.
|
|
346
374
|
// The proxy owns reconnect policy and never retries a tools/call request.
|
|
@@ -349,19 +377,26 @@ export class UpstreamGoBananas {
|
|
|
349
377
|
// generate_with_character can take 5+ min (queue wait + Gemini API).
|
|
350
378
|
// The short CONNECT_TIMEOUT is enforced below via Promise.race on connect().
|
|
351
379
|
const transport = new StreamableHTTPClientTransport(mcpUrl, {
|
|
352
|
-
requestInit: { headers },
|
|
353
|
-
|
|
380
|
+
requestInit: { headers, redirect: 'error' },
|
|
381
|
+
authProvider,
|
|
382
|
+
fetch: fetchWithTimeout(REQUEST_TIMEOUT_MS, this.shutdownController.signal),
|
|
354
383
|
});
|
|
355
384
|
const client = createNegotiatingClient(MCP_PROXY_NAME, PACKAGE_VERSION, CONNECT_TIMEOUT_MS);
|
|
356
385
|
client.setNotificationHandler('notifications/progress', async (notification) => {
|
|
357
386
|
await this.forwardProgress(notification);
|
|
358
387
|
});
|
|
388
|
+
this.pendingClients.add(client);
|
|
389
|
+
let handshakeTimer;
|
|
359
390
|
try {
|
|
360
391
|
// Use a short timeout for discovery/connection only.
|
|
361
392
|
await Promise.race([
|
|
362
393
|
client.connect(transport),
|
|
363
|
-
new Promise((_, reject) => setTimeout(() => reject(new Error('Connection handshake timed out')), CONNECT_TIMEOUT_MS)),
|
|
394
|
+
new Promise((_, reject) => (handshakeTimer = setTimeout(() => reject(new Error('Connection handshake timed out')), CONNECT_TIMEOUT_MS))),
|
|
364
395
|
]);
|
|
396
|
+
if (this.stopped) {
|
|
397
|
+
await client.close();
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
365
400
|
const protocolEra = getConnectedProtocolEra(client);
|
|
366
401
|
if (!protocolEra) {
|
|
367
402
|
throw new Error('MCP protocol era was not negotiated');
|
|
@@ -374,25 +409,49 @@ export class UpstreamGoBananas {
|
|
|
374
409
|
this.lastConnectError = error instanceof Error ? error.message : String(error);
|
|
375
410
|
return false;
|
|
376
411
|
}
|
|
412
|
+
finally {
|
|
413
|
+
this.pendingClients.delete(client);
|
|
414
|
+
clearTimeout(handshakeTimer);
|
|
415
|
+
}
|
|
377
416
|
}
|
|
378
417
|
async tryConnectSse() {
|
|
379
|
-
const headers = await
|
|
418
|
+
const { headers, authProvider } = await getTransportAuth(this.apiKey, this.baseUrl);
|
|
419
|
+
if (this.stopped)
|
|
420
|
+
return false;
|
|
380
421
|
const sseUrl = new URL('/sse', this.baseUrl);
|
|
381
422
|
// Long timeout for tool calls (same reasoning as streamable-http)
|
|
382
423
|
const transport = new SSEClientTransport(sseUrl, {
|
|
383
|
-
requestInit: { headers },
|
|
384
|
-
|
|
424
|
+
requestInit: { headers, redirect: 'error' },
|
|
425
|
+
authProvider,
|
|
426
|
+
fetch: fetchWithTimeout(REQUEST_TIMEOUT_MS, this.shutdownController.signal),
|
|
385
427
|
});
|
|
386
428
|
const client = createLegacyClient(MCP_PROXY_NAME, PACKAGE_VERSION);
|
|
429
|
+
// EventSource otherwise reconnects silently while an accepted call remains
|
|
430
|
+
// pending. Retire this exact stream; only a later explicit request reconnects.
|
|
431
|
+
client.onerror = (error) => {
|
|
432
|
+
if (this.connected?.client === client)
|
|
433
|
+
this.connected = null;
|
|
434
|
+
client.onerror = undefined;
|
|
435
|
+
this.lastConnectError = error.message;
|
|
436
|
+
void client
|
|
437
|
+
.close()
|
|
438
|
+
.catch((closeError) => logError('Failed to close lost SSE stream', closeError));
|
|
439
|
+
};
|
|
387
440
|
client.setNotificationHandler('notifications/progress', async (notification) => {
|
|
388
441
|
await this.forwardProgress(notification);
|
|
389
442
|
});
|
|
443
|
+
this.pendingClients.add(client);
|
|
444
|
+
let handshakeTimer;
|
|
390
445
|
try {
|
|
391
446
|
// Use a short timeout for the legacy SSE handshake only.
|
|
392
447
|
await Promise.race([
|
|
393
448
|
client.connect(transport),
|
|
394
|
-
new Promise((_, reject) => setTimeout(() => reject(new Error('Connection handshake timed out')), CONNECT_TIMEOUT_MS)),
|
|
449
|
+
new Promise((_, reject) => (handshakeTimer = setTimeout(() => reject(new Error('Connection handshake timed out')), CONNECT_TIMEOUT_MS))),
|
|
395
450
|
]);
|
|
451
|
+
if (this.stopped) {
|
|
452
|
+
await client.close();
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
396
455
|
const protocolEra = getConnectedProtocolEra(client);
|
|
397
456
|
if (!protocolEra) {
|
|
398
457
|
throw new Error('MCP protocol era was not negotiated');
|
|
@@ -405,15 +464,30 @@ export class UpstreamGoBananas {
|
|
|
405
464
|
this.lastConnectError = error instanceof Error ? error.message : String(error);
|
|
406
465
|
return false;
|
|
407
466
|
}
|
|
467
|
+
finally {
|
|
468
|
+
this.pendingClients.delete(client);
|
|
469
|
+
clearTimeout(handshakeTimer);
|
|
470
|
+
}
|
|
408
471
|
}
|
|
409
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* True when the server's auth gate refused the request. The Worker rejects
|
|
475
|
+
* credentials before any tool runs, so such a call is safe to retry.
|
|
476
|
+
*/
|
|
477
|
+
export function isAuthRejection(error) {
|
|
478
|
+
if (error instanceof LoginExpiredError)
|
|
479
|
+
return true;
|
|
480
|
+
if (error instanceof Error && error.name === 'UnauthorizedError')
|
|
481
|
+
return true;
|
|
482
|
+
return error?.data?.status === 401;
|
|
483
|
+
}
|
|
410
484
|
export function resolveExplicitMcpApiKey(options) {
|
|
411
485
|
const value = options.apiKey?.trim();
|
|
412
486
|
return value || undefined;
|
|
413
487
|
}
|
|
414
488
|
export function createGoBananasStdioServer() {
|
|
415
489
|
return new Server({ name: 'go-bananas-stdio', version: PACKAGE_VERSION }, {
|
|
416
|
-
capabilities: { tools: {} },
|
|
490
|
+
capabilities: { tools: { listChanged: true } },
|
|
417
491
|
instructions: GO_BANANAS_MCP_INSTRUCTIONS,
|
|
418
492
|
});
|
|
419
493
|
}
|
|
@@ -428,6 +502,9 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
428
502
|
const mode = options.transport ??
|
|
429
503
|
process.env.GO_BANANAS_MCP_TRANSPORT ??
|
|
430
504
|
'streamable-http';
|
|
505
|
+
if (!['auto', 'streamable-http', 'sse'].includes(mode)) {
|
|
506
|
+
throw new Error('MCP transport must be auto, streamable-http, or sse');
|
|
507
|
+
}
|
|
431
508
|
const diagTool = getDiagnosticToolDefinition();
|
|
432
509
|
const server = createGoBananasStdioServer();
|
|
433
510
|
const upstream = new UpstreamGoBananas(baseUrl, apiKey, mode, async (notification) => {
|
|
@@ -435,6 +512,7 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
435
512
|
});
|
|
436
513
|
server.setRequestHandler(PingRequestSchema, async () => ({}));
|
|
437
514
|
let backgroundRetryTimer = null;
|
|
515
|
+
let shuttingDown = false;
|
|
438
516
|
/**
|
|
439
517
|
* Schedule a background retry to reconnect to upstream after initial failure.
|
|
440
518
|
* Uses exponential backoff: 5s, 10s, 20s, 40s, then stops.
|
|
@@ -442,17 +520,19 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
442
520
|
*/
|
|
443
521
|
function scheduleBackgroundRetry(attempt = 0) {
|
|
444
522
|
const MAX_ATTEMPTS = 4;
|
|
445
|
-
if (attempt >= MAX_ATTEMPTS || backgroundRetryTimer) {
|
|
523
|
+
if (shuttingDown || attempt >= MAX_ATTEMPTS || backgroundRetryTimer) {
|
|
446
524
|
return;
|
|
447
525
|
}
|
|
448
526
|
const delayMs = 5_000 * Math.pow(2, attempt); // 5s, 10s, 20s, 40s
|
|
449
527
|
backgroundRetryTimer = setTimeout(async () => {
|
|
450
528
|
backgroundRetryTimer = null;
|
|
451
|
-
if (upstream.getStatus().connected) {
|
|
529
|
+
if (shuttingDown || upstream.getStatus().connected) {
|
|
452
530
|
return; // Already connected
|
|
453
531
|
}
|
|
454
532
|
logError(`Background retry ${attempt + 1}/${MAX_ATTEMPTS}: reconnecting upstream…`);
|
|
455
533
|
const tools = await upstream.listTools();
|
|
534
|
+
if (shuttingDown)
|
|
535
|
+
return;
|
|
456
536
|
if (tools?.tools?.length) {
|
|
457
537
|
logError(`Background retry succeeded: ${tools.tools.length} tools loaded.`);
|
|
458
538
|
try {
|
|
@@ -468,6 +548,8 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
468
548
|
}, delayMs);
|
|
469
549
|
}
|
|
470
550
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
551
|
+
if (shuttingDown)
|
|
552
|
+
return { tools: [] };
|
|
471
553
|
try {
|
|
472
554
|
const upstreamTools = await upstream.listTools();
|
|
473
555
|
if (!upstreamTools?.tools?.length) {
|
|
@@ -487,6 +569,8 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
487
569
|
}
|
|
488
570
|
});
|
|
489
571
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
572
|
+
if (shuttingDown)
|
|
573
|
+
return toolTextResult('Go Bananas proxy is shutting down.', true);
|
|
490
574
|
const toolName = request.params.name;
|
|
491
575
|
const toolArgs = (request.params.arguments ?? {});
|
|
492
576
|
if (toolName === DIAG_TOOL_NAME) {
|
|
@@ -509,16 +593,24 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
509
593
|
const status = upstream.getStatus();
|
|
510
594
|
const authDescription = await upstream.getAuthDescription();
|
|
511
595
|
const generationLane = getConfig().generationLane;
|
|
596
|
+
// This reference identifies only this local diagnostic response. It is not
|
|
597
|
+
// sent upstream and must not be presented as a correlated server trace.
|
|
598
|
+
const diagnosticReference = `local-${randomUUID()}`;
|
|
512
599
|
const subscriptionAccess = authDescription === 'OAuth bearer token'
|
|
513
|
-
? '
|
|
514
|
-
: '
|
|
600
|
+
? 'Not tested; OAuth configured, but subscription connection and eligibility are unknown'
|
|
601
|
+
: 'Not tested; OAuth login required before checking subscription eligibility';
|
|
515
602
|
let message = `Go Bananas MCP stdio proxy\n` +
|
|
603
|
+
`- Diagnostic reference: ${diagnosticReference} (local only; not a server trace ID)\n` +
|
|
516
604
|
`- Package: ${status.packageName} v${status.packageVersion}\n` +
|
|
517
605
|
`- Base URL: ${status.baseUrl}\n` +
|
|
518
606
|
`- Authorization: ${authDescription}\n` +
|
|
519
607
|
`- Subscription generation: ${subscriptionAccess}\n` +
|
|
520
608
|
`- Configured generation lane: ${generationLane}\n` +
|
|
521
|
-
`- Subscription tools available: ${status.subscriptionToolsAvailable}\n` +
|
|
609
|
+
`- Subscription tools available: ${status.subscriptionToolsAvailable} (discovery only; not execution permission)\n` +
|
|
610
|
+
`- Scope readiness: Unknown; effective server permissions have not been verified\n` +
|
|
611
|
+
`- Provider readiness: Not tested; provider credentials, billing and model access are unknown\n` +
|
|
612
|
+
`- Workflow readiness: Not tested by this diagnostic; upload, generation, editing and download are unverified\n` +
|
|
613
|
+
`- Generation and paid probes: None; this diagnostic does not run generation or paid checks\n` +
|
|
522
614
|
`- Upstream mode: ${status.mode}\n` +
|
|
523
615
|
`- Upstream connected: ${status.connected}\n` +
|
|
524
616
|
(status.connectedTransport ? `- Connected transport: ${status.connectedTransport}\n` : '') +
|
|
@@ -568,10 +660,14 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
568
660
|
const authDescription = await upstream.getAuthDescription();
|
|
569
661
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
570
662
|
const isRequestTimeout = /(?:-32001|request timed out)/i.test(errorMessage);
|
|
571
|
-
const hint = (
|
|
572
|
-
? `
|
|
573
|
-
`-
|
|
574
|
-
:
|
|
663
|
+
const hint = (isAuthRejection(error)
|
|
664
|
+
? `Go Bananas rejected the sign-in, so the tool did not run and is safe to retry.\n` +
|
|
665
|
+
`- Run "gb auth login" to sign in again, or check the configured API key.\n`
|
|
666
|
+
: isRequestTimeout
|
|
667
|
+
? `Upstream request timed out after the proxy accepted it.\n` +
|
|
668
|
+
`- The generation may have completed after the response path closed; check the gallery before retrying.\n`
|
|
669
|
+
: `Upstream response unavailable.\n` +
|
|
670
|
+
`- The tool may have completed before its response was lost. Check the gallery or resource state before retrying; this proxy has not replayed the call.\n`) +
|
|
575
671
|
`- Proxy: ${status.packageName} v${status.packageVersion}\n` +
|
|
576
672
|
`- Request timeout: ${REQUEST_TIMEOUT_MS / 1000}s\n` +
|
|
577
673
|
`- Base URL: ${status.baseUrl}\n` +
|
|
@@ -585,13 +681,17 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
|
|
|
585
681
|
const transport = new StdioServerTransport();
|
|
586
682
|
await server.connect(transport);
|
|
587
683
|
const shutdown = async () => {
|
|
684
|
+
if (shuttingDown)
|
|
685
|
+
return;
|
|
686
|
+
shuttingDown = true;
|
|
588
687
|
if (backgroundRetryTimer) {
|
|
589
688
|
clearTimeout(backgroundRetryTimer);
|
|
590
689
|
backgroundRetryTimer = null;
|
|
591
690
|
}
|
|
592
|
-
await upstream.
|
|
691
|
+
await upstream.shutdown();
|
|
593
692
|
await server.close();
|
|
594
693
|
};
|
|
694
|
+
process.stdin.once('end', () => shutdown().catch((error) => logError('Shutdown failed', error)));
|
|
595
695
|
process.on('SIGINT', () => shutdown().catch(() => process.exit(0)));
|
|
596
696
|
process.on('SIGTERM', () => shutdown().catch(() => process.exit(0)));
|
|
597
697
|
process.on('unhandledRejection', (reason) => logError('Unhandled rejection', reason));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio-proxy.js","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,6BAA6B,GAG9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAIlB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAUvE,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAC7C,MAAM,cAAc,GAAG,2BAA2B,CAAC;AAEnD,SAAS,QAAQ,CAAC,OAAe,EAAE,KAAe;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;QACrC,OAAO;IACT,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,YAAY,CAAC,MAA0B;IAC9C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;SAAM,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO,GAAG,MAAM,MAAM,IAAI,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,OAA+B;IAC1D,IAAI,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACzB,OAAO,WAAW,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,CAAC,oBAAoB;AAC9D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,CAAC,yCAAyC;AAEpF,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,KAAK,EAAE,KAA6B,EAAE,IAAkB,EAAE,EAAE;QACjE,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM;YACzB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnD,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACzD,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjD,+BAA+B;IAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,UAAmB,KAAK;IAC5D,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B;IAClC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,sGAAsG;QACxG,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,EAAE;SACf;KACF,CAAC;AACJ,CAAC;AASD,MAAM,OAAO,iBAAiB;IAOT;IACA;IACA;IACA;IACA;IAVX,SAAS,GAA6B,IAAI,CAAC;IAC3C,cAAc,GAA4B,IAAI,CAAC;IAC/C,gBAAgB,GAAkB,IAAI,CAAC;IACvC,UAAU,GAAmC,IAAI,CAAC;IAE1D,YACmB,OAAe,EACf,MAA0B,EAC1B,IAA2B,EAC3B,eAAyD,EACzD,0BAAwC,oBAAoB;QAJ5D,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAoB;QAC1B,SAAI,GAAJ,IAAI,CAAuB;QAC3B,oBAAe,GAAf,eAAe,CAA0C;QACzD,4BAAuB,GAAvB,uBAAuB,CAAqC;IAC5E,CAAC;IAEJ,SAAS;QACP,OAAO;YACL,WAAW,EAAE,YAAY;YACzB,cAAc,EAAE,eAAe;YAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YACzC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI;YAClC,kBAAkB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,IAAI;YAChD,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI;YAChD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;YAChD,0BAA0B,EAAE,OAAO,CACjC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,yBAAyB,CAAC;gBAC/E,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,4BAA4B,CAAC,CACnF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB;QACtB,OAAO,mBAAmB,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;YAChC,IAAI,CAAC;gBACH,IAAI,EAAE,GAAG,KAAK,CAAC;gBAEf,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;oBACpC,EAAE,GAAG,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAC7C,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC/B,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACN,yDAAyD;oBACzD,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,CAAC,EAAE,EAAE,CAAC;oBACR,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;gBACrC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uCAAuC;YACvC,QAAQ,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;YAC5D,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACvD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,IAA6B,EAC7B,WAAqC;QAErC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,qFAAqF;QACrF,2EAA2E;QAC3E,mFAAmF;QACnF,oFAAoF;QACpF,mFAAmF;QACnF,4EAA4E;QAC5E,MAAM,uBAAuB,GAAG,WAAW,EAAE,aAAa,CAAC;QAC3D,MAAM,aAAa,GAAG,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACjD,OAAO,aAAa,CAAC,aAAa,CAAC;QACnC,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACzF,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,kBAAkB;YAC3B,sBAAsB,EAAE,IAAI;YAC5B,UAAU,EAAE,CAAC,QAAgE,EAAE,EAAE;gBAC/E,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBAED,KAAK,IAAI,CAAC,eAAe,CAAC;oBACxB,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE;wBACN,aAAa,EAAE,uBAAuB;wBACtC,GAAG,QAAQ;qBACZ;iBACF,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,CAAC;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CACjD;gBACE,IAAI;gBACJ,SAAS,EAAE,aAAa;gBACxB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3E,EACD,WAAW,CACZ,CAAC;YACF,OAAO,MAAwB,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,mEAAmE;YACnE,yEAAyE;YACzE,yEAAyE;YACzE,QAAQ,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;YAC7E,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,qBAAqB,CAAC,QAAgB,EAAE,QAAiB;QAC7D,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,OAAO,cAAc,CACnB,6DAA6D;gBAC3D,4FAA4F,EAC9F,IAAI,CACL,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAE1D,qDAAqD;QACrD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,cAAc,GAAG,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAEvD,oEAAoE;QACpE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,OAAO,oBAAoB,CAAC;QACtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,cAAc,CACnB,4BAA4B,QAAQ,CAAC,MAAM,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,EACnF,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAOpC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,OAAO,cAAc,CACnB,gCAAgC,MAAM,CAAC,QAAQ,MAAM;YACnD,wEAAwE,MAAM,CAAC,QAAQ,MAAM;YAC7F,kBAAkB;YAClB,WAAW,cAAc,IAAI;YAC7B,WAAW,MAAM,QAAQ,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW;YACzE,gBAAgB,UAAU,CAAC,QAAQ,IAAI;YACvC,iBAAiB,MAAM,CAAC,UAAU,EAAE,CACvC,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,sBAAsB,CAAC,QAAgB,EAAE,QAAiB;QAC9D,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5D,OAAO,cAAc,CACnB,6DAA6D;gBAC3D,4FAA4F,EAC9F,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,cAAc,GAAG,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAEvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1E,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAE9C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,OAAO,mBAAmB,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACxD,OAAO,cAAc,CACnB,6BAA6B,QAAQ,CAAC,MAAM,MAAM,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE,EACpF,IAAI,CACL,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAWpC,CAAC;QAEF,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,YAAY,GAChB,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,aAAa,GACjB,MAAM,CAAC,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAC3C,CAAC,CAAC,mBAAmB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE;YACpD,CAAC,CAAC,EAAE,CAAC;QAET,OAAO,cAAc,CACnB,0CAA0C,MAAM,CAAC,QAAQ,MAAM;YAC7D,oCAAoC,MAAM,CAAC,GAAG,MAAM;YACpD,YAAY;YACZ,WAAW,cAAc,IAAI;YAC7B,WAAW,MAAM,CAAC,UAAU,IAAI;YAChC,aAAa,MAAM,CAAC,MAAM,IAAI;YAC9B,WAAW,MAAM,QAAQ,UAAU,CAAC,SAAS,CAAC,cAAc,EAAE,WAAW;YACzE,gBAAgB,MAAM,CAAC,SAAS,EAAE;YAClC,YAAY;YACZ,aAAa,CAChB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,yEAAyE;QACzE,0EAA0E;QAC1E,EAAE;QACF,yEAAyE;QACzE,qEAAqE;QACrE,6EAA6E;QAC7E,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,MAAM,EAAE;YAC1D,WAAW,EAAE,EAAE,OAAO,EAAE;YACxB,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;SAC5C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,uBAAuB,CAAC,cAAc,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;QAC5F,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YAC7E,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAC1F;aACF,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7C,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE;YAC/C,WAAW,EAAE,EAAE,OAAO,EAAE;YACxB,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,CAAC;SAC5C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACnE,MAAM,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;YAC7E,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAC1F;aACF,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,CAAC,SAAS,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA6B;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACrC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,OAAO,IAAI,MAAM,CACf,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,EACtD;QACE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,YAAY,EAAE,2BAA2B;KAC1C,CACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,UAAgC,EAAE;IAChF,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;IACxE,wEAAwE;IACxE,2EAA2E;IAC3E,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACjD,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,IAAI,GACR,OAAO,CAAC,SAAS;QAChB,OAAO,CAAC,GAAG,CAAC,wBAA8D;QAC3E,iBAAiB,CAAC;IAEpB,MAAM,QAAQ,GAAG,2BAA2B,EAAE,CAAC;IAE/C,MAAM,MAAM,GAAG,0BAA0B,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QACnF,MAAM,MAAM,CAAC,YAAY,CAAC,YAAyD,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9D,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IAEtE;;;;OAIG;IACH,SAAS,uBAAuB,CAAC,UAAkB,CAAC;QAClD,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,IAAI,YAAY,IAAI,oBAAoB,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB;QAClE,oBAAoB,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;YAC3C,oBAAoB,GAAG,IAAI,CAAC;YAE5B,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;gBACnC,OAAO,CAAC,oBAAoB;YAC9B,CAAC;YAED,QAAQ,CAAC,oBAAoB,OAAO,GAAG,CAAC,IAAI,YAAY,0BAA0B,CAAC,CAAC;YAEpF,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBACzB,QAAQ,CAAC,+BAA+B,KAAK,CAAC,KAAK,CAAC,MAAM,gBAAgB,CAAC,CAAC;gBAC5E,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBACrC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,uBAAuB,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAA8B,EAAE;QACpF,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;gBAClC,uBAAuB,EAAE,CAAC;gBAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,CAAC;YAED,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,WAAW,GAAG,aAAa,CAAC,KAA0B,CAAC;YAC7D,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YACxF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,mEAAmE,EAAE,KAAK,CAAC,CAAC;YACrF,uBAAuB,EAAE,CAAC;YAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;QACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;QAE7E,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,iEAAiE;YACjE,IAAI,WAAW,GAAG,KAAK,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YAE1C,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACzC,IAAI,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;oBACzB,WAAW,GAAG,IAAI,CAAC;oBACnB,+CAA+C;oBAC/C,IAAI,CAAC;wBACH,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACrC,CAAC;oBAAC,MAAM,CAAC;wBACP,2CAA2C;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC5D,MAAM,cAAc,GAAG,SAAS,EAAE,CAAC,cAAc,CAAC;YAClD,MAAM,kBAAkB,GACtB,eAAe,KAAK,oBAAoB;gBACtC,CAAC,CAAC,qEAAqE;gBACvE,CAAC,CAAC,gFAAgF,CAAC;YACvF,IAAI,OAAO,GACT,8BAA8B;gBAC9B,cAAc,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,cAAc,IAAI;gBAC9D,eAAe,MAAM,CAAC,OAAO,IAAI;gBACjC,oBAAoB,eAAe,IAAI;gBACvC,8BAA8B,kBAAkB,IAAI;gBACpD,iCAAiC,cAAc,IAAI;gBACnD,mCAAmC,MAAM,CAAC,0BAA0B,IAAI;gBACxE,oBAAoB,MAAM,CAAC,IAAI,IAAI;gBACnC,yBAAyB,MAAM,CAAC,SAAS,IAAI;gBAC7C,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,uBAAuB,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,mBAAmB,MAAM,CAAC,WAAW,IAAI;gBACzC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,IAAI,CAAC;YAEP,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,IAAI,sDAAsD,CAAC;YACpE,CAAC;iBAAM,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7B,OAAO;oBACL,UAAU;wBACV,mDAAmD;wBACnD,gDAAgD;wBAChD,iCAAiC,MAAM,CAAC,OAAO,IAAI;wBACnD,iEAAiE,CAAC;YACtE,CAAC;YAED,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAED,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,QAAQ,KAAK,0BAA0B,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YACtF,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,qBAAqB,CACzC,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAA+B,CACzC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,cAAc,CACnB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACrF,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,qCAAqC;QACrC,IAAI,QAAQ,KAAK,cAAc,IAAI,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,OAAO,MAAM,QAAQ,CAAC,sBAAsB,CAC1C,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,SAA+B,CACzC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,cAAc,CACnB,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtF,IAAI,CACL,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAC5B,QAAQ,EACR,QAAQ,EACR,OAAO,CAAC,MAAM,CAAC,KAA4C,CAC5D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,gBAAgB,GAAG,+BAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5E,MAAM,IAAI,GACR,CAAC,gBAAgB;gBACf,CAAC,CAAC,2DAA2D;oBAC3D,0GAA0G;gBAC5G,CAAC,CAAC,2BAA2B,CAAC;gBAChC,YAAY,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,cAAc,IAAI;gBAC5D,sBAAsB,kBAAkB,GAAG,IAAI,KAAK;gBACpD,eAAe,MAAM,CAAC,OAAO,IAAI;gBACjC,oBAAoB,eAAe,IAAI;gBACvC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAyB,MAAM,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrF,IAAI;gBACJ,QAAQ,cAAc,4BAA4B,CAAC;YAErD,OAAO,cAAc,CACnB,wBAAwB,QAAQ,SAAS,IAAI,OAAO,YAAY,EAAE,EAClE,IAAI,CACL,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnC,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
1
|
+
{"version":3,"file":"stdio-proxy.js","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-stdio.d.ts
CHANGED
package/dist/mcp-stdio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-stdio.d.ts","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"mcp-stdio.d.ts","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC"}
|
package/dist/mcp-stdio.js
CHANGED
|
@@ -1,24 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
//
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
17
|
-
}
|
|
18
|
-
const opts = parseArgs();
|
|
19
|
-
runGoBananasMcpStdioProxy(opts).catch((error) => {
|
|
20
|
-
const message = error instanceof Error ? error.stack || error.message : String(error);
|
|
21
|
-
process.stderr.write(`Failed to start Go Bananas MCP stdio proxy\n${message}\n`);
|
|
22
|
-
process.exit(1);
|
|
2
|
+
import './runtime.js';
|
|
3
|
+
import { createMcpProxyCommand } from './commands/mcp.js';
|
|
4
|
+
// Share validation and defaults with `gb mcp`; stdout is reserved for MCP
|
|
5
|
+
// messages during normal operation. Commander handles explicit help/version
|
|
6
|
+
// and rejects unknown flags before a server is started.
|
|
7
|
+
createMcpProxyCommand()
|
|
8
|
+
.name('gobananas-mcp')
|
|
9
|
+
.parseAsync(process.argv)
|
|
10
|
+
.catch((error) => {
|
|
11
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
12
|
+
process.stderr.write(`Failed to start Go Bananas MCP stdio proxy: ${message}\n`);
|
|
13
|
+
process.exitCode = 1;
|
|
23
14
|
});
|
|
24
15
|
//# sourceMappingURL=mcp-stdio.js.map
|