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.
@@ -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(): Promise<void>;
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":"AAAA,OAAO,EAIL,KAAK,eAAe,IAAI,uBAAuB,EAC/C,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAIL,KAAK,cAAc,EAGpB,MAAM,oCAAoC,CAAC;AAa5C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,iBAAiB,GAAG,KAAK,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,qBAAqB,CAAC;CACnC;AAyCD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AACzC,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAmD1C,qBAAa,iBAAiB;IAO1B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IAV1C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,OAAO,CAAC,UAAU,CAAwC;gBAGvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,qBAAqB,EAC3B,eAAe,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,EACzD,uBAAuB,GAAE,MAAM,MAA6B;IAG/E,SAAS;;;;;;;;;;;;;IAmBH,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAwCnC,KAAK;IAcL,SAAS,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IA0BpD,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,OAAO,CAAC,cAAc,CAAC;IAsD1B;;;;;;;OAOG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2DzF;;;;;;;OAOG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAoE5E,wBAAwB;YA0CxB,aAAa;CAoC5B;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAG1F;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAQnD;AAED,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,oBAAyB,iBA2NjF"}
1
+ {"version":3,"file":"stdio-proxy.d.ts","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"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"}
@@ -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 = init?.signal
58
- ? AbortSignal.any([controller.signal, init.signal])
59
- : controller.signal;
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 = (await this.tryConnectStreamableHttp()) || (await this.tryConnectSse());
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
- async close() {
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 (this.connected?.client) {
167
- await this.connected.client.close();
188
+ if (connection.client) {
189
+ await connection.client.close();
168
190
  }
169
- else if (this.connected?.transport) {
170
- await this.connected.transport.close();
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 this.connected.client.listTools();
187
- this.toolsCache = result;
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 result = await this.connected.client.listTools();
199
- this.toolsCache = result;
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 this.connected.client.callTool({
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 getAuthHeaders(this.apiKey, this.baseUrl);
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
- fetch: fetchWithTimeout(REQUEST_TIMEOUT_MS),
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 getAuthHeaders(this.apiKey, this.baseUrl);
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
- fetch: fetchWithTimeout(REQUEST_TIMEOUT_MS),
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
- ? 'OAuth enabled; call get_subscription_status before image generation'
514
- : 'Unavailable with API-key-only authentication; run "gb auth login" to enable it';
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 = (isRequestTimeout
572
- ? `Upstream request timed out after the proxy accepted it.\n` +
573
- `- The generation may have completed after the response path closed; check the gallery before retrying.\n`
574
- : `Upstream not reachable.\n`) +
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.close();
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":"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"}
1
+ {"version":3,"file":"stdio-proxy.js","sourceRoot":"","sources":["../../src/mcp/stdio-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,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,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvF,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,EAAE,cAA4B;IACvE,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,WAAW,CAAC,GAAG,CAAC;YAC7B,UAAU,CAAC,MAAM;YACjB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,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;IAUT;IACA;IACA;IACA;IACA;IAbX,SAAS,GAA6B,IAAI,CAAC;IAC3C,OAAO,GAAG,KAAK,CAAC;IACP,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,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,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,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;wBACA,CAAC,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;4BACvC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;gBACpD,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,2EAA2E;IAC3E,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS;QACrC,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;YAAE,OAAO;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,CAAC;iBAAM,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,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,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU;gBAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YAC5D,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,CAAC,UAAU,CAAC,CAAC;YAE7B,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,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,SAAS,KAAK,eAAe;gBAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACjE,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,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAElC,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,UAAU,CAAC,MAAM,CAAC,QAAQ,CAC7C;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,CAAC,UAAU,CAAC,CAAC;YAC7B,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,QAAQ,EAAE,OAAO;YACjB,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,QAAQ,EAAE,OAAO;YACjB,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,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,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,QAAQ,EAAE,OAAO,EAAE;YAC3C,YAAY;YACZ,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;SAC5E,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,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,cAAyD,CAAC;QAC9D,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,IAAI,OAAO,CACT,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACZ,CAAC,cAAc,GAAG,UAAU,CAC1B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EACzD,kBAAkB,CACnB,CAAC,CACL;aACF,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,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;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpF,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,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,QAAQ,EAAE,OAAO,EAAE;YAC3C,YAAY;YACZ,KAAK,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;SAC5E,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;QACnE,2EAA2E;QAC3E,+EAA+E;QAC/E,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACzB,IAAI,IAAI,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YAC7D,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC;YACtC,KAAK,MAAM;iBACR,KAAK,EAAE;iBACP,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC;QAEF,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,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,cAAyD,CAAC;QAC9D,IAAI,CAAC;YACH,yDAAyD;YACzD,MAAM,OAAO,CAAC,IAAI,CAAC;gBACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACzB,IAAI,OAAO,CACT,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CACZ,CAAC,cAAc,GAAG,UAAU,CAC1B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,EACzD,kBAAkB,CACnB,CAAC,CACL;aACF,CAAC,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC;YACf,CAAC;YACD,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;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACnC,YAAY,CAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,iBAAiB;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAQ,KAAgD,EAAE,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;AACjF,CAAC;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,WAAW,EAAE,IAAI,EAAE,EAAE;QAC9C,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,IAAI,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IAED,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;IACtE,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB;;;;OAIG;IACH,SAAS,uBAAuB,CAAC,UAAkB,CAAC;QAClD,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,IAAI,OAAO,IAAI,YAAY,IAAI,oBAAoB,EAAE,CAAC;YACpE,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,YAAY,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,CAAC;gBACnD,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,YAAY;gBAAE,OAAO;YACzB,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,YAAY;YAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvC,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,IAAI,YAAY;YAAE,OAAO,cAAc,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;QACpF,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,2EAA2E;YAC3E,wEAAwE;YACxE,MAAM,mBAAmB,GAAG,SAAS,UAAU,EAAE,EAAE,CAAC;YACpD,MAAM,kBAAkB,GACtB,eAAe,KAAK,oBAAoB;gBACtC,CAAC,CAAC,uFAAuF;gBACzF,CAAC,CAAC,2EAA2E,CAAC;YAClF,IAAI,OAAO,GACT,8BAA8B;gBAC9B,2BAA2B,mBAAmB,wCAAwC;gBACtF,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,+CAA+C;gBACnH,mFAAmF;gBACnF,gGAAgG;gBAChG,gHAAgH;gBAChH,8FAA8F;gBAC9F,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,eAAe,CAAC,KAAK,CAAC;gBACrB,CAAC,CAAC,kFAAkF;oBAClF,4EAA4E;gBAC9E,CAAC,CAAC,gBAAgB;oBAChB,CAAC,CAAC,2DAA2D;wBAC3D,0GAA0G;oBAC5G,CAAC,CAAC,kCAAkC;wBAClC,0JAA0J,CAAC;gBACjK,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,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnC,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,MAAM,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACjG,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,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import './runtime.js';
3
3
  //# sourceMappingURL=mcp-stdio.d.ts.map
@@ -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 { runGoBananasMcpStdioProxy } from './mcp/stdio-proxy.js';
3
- // Parse --api-key and --server-url from argv so users can pass them directly
4
- // e.g. npx gobananas-mcp --api-key sk_live_xxx
5
- function parseArgs() {
6
- const args = process.argv.slice(2);
7
- const result = {};
8
- for (let i = 0; i < args.length; i++) {
9
- if (args[i] === '--api-key' && args[i + 1]) {
10
- result.apiKey = args[++i];
11
- }
12
- else if (args[i] === '--server-url' && args[i + 1]) {
13
- result.serverUrl = args[++i];
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