gobananas-cli 1.3.3 → 1.3.5

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
  /**
@@ -69,4 +80,5 @@ export declare class UpstreamGoBananas {
69
80
  export declare function resolveExplicitMcpApiKey(options: McpStdioProxyOptions): string | undefined;
70
81
  export declare function createGoBananasStdioServer(): Server;
71
82
  export declare function runGoBananasMcpStdioProxy(options?: McpStdioProxyOptions): Promise<void>;
83
+ export {};
72
84
  //# 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":"AACA,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,6BAA6B,EAC7B,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;AA8C1C,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAC9D,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,qBAAa,iBAAiB;IAU1B,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;IAb1C,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,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;IA2CzC,2EAA2E;IACrE,QAAQ;IAOR,KAAK,CAAC,UAAU,2BAAiB;IAgBjC,SAAS,IAAI,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC;IA4BpD,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;IAwD1B;;;;;;;OAOG;IACG,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4DzF;;;;;;;OAOG;IACG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;YAqE5E,wBAAwB;YAyDxB,aAAa;CA8D5B;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,iBA+OjF"}
@@ -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 } 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,6 +464,10 @@ 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
  }
410
473
  export function resolveExplicitMcpApiKey(options) {
@@ -413,7 +476,7 @@ export function resolveExplicitMcpApiKey(options) {
413
476
  }
414
477
  export function createGoBananasStdioServer() {
415
478
  return new Server({ name: 'go-bananas-stdio', version: PACKAGE_VERSION }, {
416
- capabilities: { tools: {} },
479
+ capabilities: { tools: { listChanged: true } },
417
480
  instructions: GO_BANANAS_MCP_INSTRUCTIONS,
418
481
  });
419
482
  }
@@ -428,6 +491,9 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
428
491
  const mode = options.transport ??
429
492
  process.env.GO_BANANAS_MCP_TRANSPORT ??
430
493
  'streamable-http';
494
+ if (!['auto', 'streamable-http', 'sse'].includes(mode)) {
495
+ throw new Error('MCP transport must be auto, streamable-http, or sse');
496
+ }
431
497
  const diagTool = getDiagnosticToolDefinition();
432
498
  const server = createGoBananasStdioServer();
433
499
  const upstream = new UpstreamGoBananas(baseUrl, apiKey, mode, async (notification) => {
@@ -435,6 +501,7 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
435
501
  });
436
502
  server.setRequestHandler(PingRequestSchema, async () => ({}));
437
503
  let backgroundRetryTimer = null;
504
+ let shuttingDown = false;
438
505
  /**
439
506
  * Schedule a background retry to reconnect to upstream after initial failure.
440
507
  * Uses exponential backoff: 5s, 10s, 20s, 40s, then stops.
@@ -442,17 +509,19 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
442
509
  */
443
510
  function scheduleBackgroundRetry(attempt = 0) {
444
511
  const MAX_ATTEMPTS = 4;
445
- if (attempt >= MAX_ATTEMPTS || backgroundRetryTimer) {
512
+ if (shuttingDown || attempt >= MAX_ATTEMPTS || backgroundRetryTimer) {
446
513
  return;
447
514
  }
448
515
  const delayMs = 5_000 * Math.pow(2, attempt); // 5s, 10s, 20s, 40s
449
516
  backgroundRetryTimer = setTimeout(async () => {
450
517
  backgroundRetryTimer = null;
451
- if (upstream.getStatus().connected) {
518
+ if (shuttingDown || upstream.getStatus().connected) {
452
519
  return; // Already connected
453
520
  }
454
521
  logError(`Background retry ${attempt + 1}/${MAX_ATTEMPTS}: reconnecting upstream…`);
455
522
  const tools = await upstream.listTools();
523
+ if (shuttingDown)
524
+ return;
456
525
  if (tools?.tools?.length) {
457
526
  logError(`Background retry succeeded: ${tools.tools.length} tools loaded.`);
458
527
  try {
@@ -468,6 +537,8 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
468
537
  }, delayMs);
469
538
  }
470
539
  server.setRequestHandler(ListToolsRequestSchema, async () => {
540
+ if (shuttingDown)
541
+ return { tools: [] };
471
542
  try {
472
543
  const upstreamTools = await upstream.listTools();
473
544
  if (!upstreamTools?.tools?.length) {
@@ -487,6 +558,8 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
487
558
  }
488
559
  });
489
560
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
561
+ if (shuttingDown)
562
+ return toolTextResult('Go Bananas proxy is shutting down.', true);
490
563
  const toolName = request.params.name;
491
564
  const toolArgs = (request.params.arguments ?? {});
492
565
  if (toolName === DIAG_TOOL_NAME) {
@@ -509,16 +582,24 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
509
582
  const status = upstream.getStatus();
510
583
  const authDescription = await upstream.getAuthDescription();
511
584
  const generationLane = getConfig().generationLane;
585
+ // This reference identifies only this local diagnostic response. It is not
586
+ // sent upstream and must not be presented as a correlated server trace.
587
+ const diagnosticReference = `local-${randomUUID()}`;
512
588
  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';
589
+ ? 'Not tested; OAuth configured, but subscription connection and eligibility are unknown'
590
+ : 'Not tested; OAuth login required before checking subscription eligibility';
515
591
  let message = `Go Bananas MCP stdio proxy\n` +
592
+ `- Diagnostic reference: ${diagnosticReference} (local only; not a server trace ID)\n` +
516
593
  `- Package: ${status.packageName} v${status.packageVersion}\n` +
517
594
  `- Base URL: ${status.baseUrl}\n` +
518
595
  `- Authorization: ${authDescription}\n` +
519
596
  `- Subscription generation: ${subscriptionAccess}\n` +
520
597
  `- Configured generation lane: ${generationLane}\n` +
521
- `- Subscription tools available: ${status.subscriptionToolsAvailable}\n` +
598
+ `- Subscription tools available: ${status.subscriptionToolsAvailable} (discovery only; not execution permission)\n` +
599
+ `- Scope readiness: Unknown; effective server permissions have not been verified\n` +
600
+ `- Provider readiness: Not tested; provider credentials, billing and model access are unknown\n` +
601
+ `- Workflow readiness: Not tested by this diagnostic; upload, generation, editing and download are unverified\n` +
602
+ `- Generation and paid probes: None; this diagnostic does not run generation or paid checks\n` +
522
603
  `- Upstream mode: ${status.mode}\n` +
523
604
  `- Upstream connected: ${status.connected}\n` +
524
605
  (status.connectedTransport ? `- Connected transport: ${status.connectedTransport}\n` : '') +
@@ -571,7 +652,8 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
571
652
  const hint = (isRequestTimeout
572
653
  ? `Upstream request timed out after the proxy accepted it.\n` +
573
654
  `- The generation may have completed after the response path closed; check the gallery before retrying.\n`
574
- : `Upstream not reachable.\n`) +
655
+ : `Upstream response unavailable.\n` +
656
+ `- 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
657
  `- Proxy: ${status.packageName} v${status.packageVersion}\n` +
576
658
  `- Request timeout: ${REQUEST_TIMEOUT_MS / 1000}s\n` +
577
659
  `- Base URL: ${status.baseUrl}\n` +
@@ -585,13 +667,17 @@ export async function runGoBananasMcpStdioProxy(options = {}) {
585
667
  const transport = new StdioServerTransport();
586
668
  await server.connect(transport);
587
669
  const shutdown = async () => {
670
+ if (shuttingDown)
671
+ return;
672
+ shuttingDown = true;
588
673
  if (backgroundRetryTimer) {
589
674
  clearTimeout(backgroundRetryTimer);
590
675
  backgroundRetryTimer = null;
591
676
  }
592
- await upstream.close();
677
+ await upstream.shutdown();
593
678
  await server.close();
594
679
  };
680
+ process.stdin.once('end', () => shutdown().catch((error) => logError('Shutdown failed', error)));
595
681
  process.on('SIGINT', () => shutdown().catch(() => process.exit(0)));
596
682
  process.on('SIGTERM', () => shutdown().catch(() => process.exit(0)));
597
683
  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":"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"}
@@ -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
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-stdio.js","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,6EAA6E;AAC7E,+CAA+C;AAC/C,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAA4C,EAAE,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC;AAEzB,yBAAyB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC9C,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,+CAA+C,OAAO,IAAI,CAAC,CAAC;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mcp-stdio.js","sourceRoot":"","sources":["../src/mcp-stdio.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,0EAA0E;AAC1E,4EAA4E;AAC5E,wDAAwD;AACxD,qBAAqB,EAAE;KACpB,IAAI,CAAC,eAAe,CAAC;KACrB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;KACxB,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,+CAA+C,OAAO,IAAI,CAAC,CAAC;IACjF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Shared entry-point guard; no configuration or network is accessed here. */
2
+ export declare function supportsNodeVersion(version: string): boolean;
3
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAM5D"}
@@ -0,0 +1,14 @@
1
+ /** Shared entry-point guard; no configuration or network is accessed here. */
2
+ export function supportsNodeVersion(version) {
3
+ const match = /^(\d+)\.(\d+)\.(\d+)$/.exec(version);
4
+ if (!match)
5
+ return false;
6
+ const major = Number(match[1]);
7
+ const minor = Number(match[2]);
8
+ return major > 20 || (major === 20 && minor >= 3);
9
+ }
10
+ if (!supportsNodeVersion(process.versions.node)) {
11
+ process.stderr.write(`Go Bananas requires Node.js 20.3.0 or newer (found ${process.versions.node}). Upgrade Node.js before starting the CLI or MCP connection.\n`);
12
+ process.exit(1);
13
+ }
14
+ //# sourceMappingURL=runtime.js.map