(text)
| 176 | } catch (e) { |
| 177 | // 静默——stats 累计失败不应中断响应 |
| 178 | } |
| 179 | } |
| 180 | |
| 181 | const writeOpenAIHttpError = (res, error = {}) => { |
| 182 | const status = Number(error.status) || 502 |
| 183 | const message = error.message || '上游未能生成有效响应' |
| 184 | const code = error.code || 'upstream_error' |
| 185 | const type = error.type || (status === 429 ? 'rate_limit_error' : 'upstream_error') |
| 186 | if (res.headersSent) { |
| 187 | // A media transmision el status ya se fue: el `type` del frame es lo unico que le |
| 188 | // queda al cliente para distinguir cuota de averia. Fuera de la cuota, el frame |
| 189 | // conserva su etiqueta de siempre (`upstream_stream_error`, pinchada en |
| 190 | // tests/agent-protocol.test.js:210 por su `code`). |
no test coverage detected