mohdel 3.8.0 → 3.8.1

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.
@@ -262,6 +262,11 @@ async function * runStreaming (envelope, client, args, config, start, deps) {
262
262
  return
263
263
  }
264
264
 
265
+ if (finishReason === null) {
266
+ yield { type: 'error', error: classifyProviderError(new Error(`${config.provider} stream ended before completion`), envelope.auth?.key, { provider: config.provider }) }
267
+ return
268
+ }
269
+
265
270
  const collectedToolCalls = Object.values(toolCallAccum).map(tc => ({
266
271
  id: tc.id,
267
272
  function: { name: tc.name, arguments: tc.arguments }
@@ -167,12 +167,12 @@ export async function * openai (envelope, deps = {}) {
167
167
  }
168
168
  break
169
169
 
170
- case 'response.failed':
171
- if (providerOf(envelope.model) === 'chatgpt') {
172
- yield { type: 'error', error: classifyProviderError(new Error('ChatGPT response failed'), envelope.auth?.key, { provider: 'chatgpt' }) }
173
- return
174
- }
175
- break
170
+ case 'response.failed': {
171
+ const provider = providerOf(envelope.model)
172
+ const failure = Object.assign(new Error(`${provider} response failed`), { error: event.response?.error })
173
+ yield { type: 'error', error: classifyProviderError(failure, envelope.auth?.key, { provider }) }
174
+ return
175
+ }
176
176
 
177
177
  default:
178
178
  break
@@ -194,8 +194,9 @@ export async function * openai (envelope, deps = {}) {
194
194
  }
195
195
 
196
196
  const end = String(process.hrtime.bigint())
197
- if (providerOf(envelope.model) === 'chatgpt' && !terminalResponse) {
198
- yield { type: 'error', error: classifyProviderError(new Error('ChatGPT stream ended before completion'), envelope.auth?.key, { provider: 'chatgpt' }) }
197
+ if (!terminalResponse) {
198
+ const provider = providerOf(envelope.model)
199
+ yield { type: 'error', error: classifyProviderError(new Error(`${provider} stream ended before completion`), envelope.auth?.key, { provider }) }
199
200
  return
200
201
  }
201
202
  // OpenAI Responses reports `output_tokens` INCLUDING reasoning
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mohdel",
3
- "version": "3.8.0",
3
+ "version": "3.8.1",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "Christophe Le Bars",
@@ -144,7 +144,7 @@
144
144
  "@opentelemetry/exporter-trace-otlp-grpc": "^0.222.0",
145
145
  "@opentelemetry/sdk-node": "^0.222.0",
146
146
  "chalk": "^6.0.1",
147
- "mohdel-thin-gate-linux-x64-gnu": "3.8.0"
147
+ "mohdel-thin-gate-linux-x64-gnu": "3.8.1"
148
148
  },
149
149
  "dependencies": {
150
150
  "@anthropic-ai/sdk": "^0.129.0",