Skip to main content
Glama
@google__generative-ai@0.24.1.patch4.43 kB
diff --git a/dist/index.js b/dist/index.js index 2fe925f220bfdf87321c022705c5bff0de8b6e05..7aef8e9a8092da56c626606e6aa9bb054278e30c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -730,8 +730,24 @@ function getResponseStream(inputStream) { .then(({ value, done }) => { if (done) { if (currentText.trim()) { - controller.error(new GoogleGenerativeAIError("Failed to parse stream")); - return; + // Try to parse as JSON error response (Gemini sends plain JSON for errors) + try { + const errorResponse = JSON.parse(currentText.trim()); + if (errorResponse.error) { + const err = new GoogleGenerativeAIError(`API error: ${errorResponse.error.message || 'Unknown error'}`); + err.errorDetails = errorResponse.error; + err.status = errorResponse.error.status; + err.code = errorResponse.error.code; + controller.error(err); + return; + } + } catch (parseError) { + // Not valid JSON, treat as unparsed content + const err = new GoogleGenerativeAIError("Failed to parse stream - received incomplete response"); + err.unparsedContent = currentText.trim(); + controller.error(err); + return; + } } controller.close(); return; @@ -762,7 +778,7 @@ function getResponseStream(inputStream) { else { err = new GoogleGenerativeAIError("Error reading from the stream"); } - throw err; + controller.error(err); }); } }, diff --git a/dist/index.mjs b/dist/index.mjs index 6aec979baf268a17a0596c56971f65608bb2c95f..79d79ad1a1abb37fdabc8b7f49347be1a104b1d0 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -728,8 +728,24 @@ function getResponseStream(inputStream) { .then(({ value, done }) => { if (done) { if (currentText.trim()) { - controller.error(new GoogleGenerativeAIError("Failed to parse stream")); - return; + // Try to parse as JSON error response (Gemini sends plain JSON for errors) + try { + const errorResponse = JSON.parse(currentText.trim()); + if (errorResponse.error) { + const err = new GoogleGenerativeAIError(`API error: ${errorResponse.error.message || 'Unknown error'}`); + err.errorDetails = errorResponse.error; + err.status = errorResponse.error.status; + err.code = errorResponse.error.code; + controller.error(err); + return; + } + } catch (parseError) { + // Not valid JSON, treat as unparsed content + const err = new GoogleGenerativeAIError("Failed to parse stream - received incomplete response"); + err.unparsedContent = currentText.trim(); + controller.error(err); + return; + } } controller.close(); return; @@ -760,7 +776,7 @@ function getResponseStream(inputStream) { else { err = new GoogleGenerativeAIError("Error reading from the stream"); } - throw err; + controller.error(err); }); } },

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KasarLabs/snak'

If you have feedback or need assistance with the MCP directory API, please join our Discord server