@qwen-code/arena-agent 0.0.10-dev.16 → 0.0.10-dev.17

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.
Files changed (59) hide show
  1. package/.env.example +5 -4
  2. package/CHANGELOG.md +34 -1
  3. package/README.md +18 -12
  4. package/dist/agent.js +31 -9
  5. package/dist/agent.js.map +1 -1
  6. package/dist/anthropic.js +33 -49
  7. package/dist/anthropic.js.map +1 -1
  8. package/dist/attachment-limits.d.ts +4 -0
  9. package/dist/attachment-limits.js +10 -0
  10. package/dist/attachment-limits.js.map +1 -0
  11. package/dist/attachments.d.ts +4 -2
  12. package/dist/attachments.js +9 -11
  13. package/dist/attachments.js.map +1 -1
  14. package/dist/brave-search.js +4 -3
  15. package/dist/brave-search.js.map +1 -1
  16. package/dist/cli.js +4 -1
  17. package/dist/cli.js.map +1 -1
  18. package/dist/compaction-threshold.d.ts +3 -0
  19. package/dist/compaction-threshold.js +6 -0
  20. package/dist/compaction-threshold.js.map +1 -0
  21. package/dist/compaction.d.ts +4 -3
  22. package/dist/compaction.js +72 -39
  23. package/dist/compaction.js.map +1 -1
  24. package/dist/config.d.ts +1 -1
  25. package/dist/config.js +8 -8
  26. package/dist/config.js.map +1 -1
  27. package/dist/history.js +2 -1
  28. package/dist/history.js.map +1 -1
  29. package/dist/image-input-fallback.js +5 -0
  30. package/dist/image-input-fallback.js.map +1 -1
  31. package/dist/mode.js +1 -1
  32. package/dist/mode.js.map +1 -1
  33. package/dist/model-stream.d.ts +16 -0
  34. package/dist/model-stream.js +129 -0
  35. package/dist/model-stream.js.map +1 -0
  36. package/dist/openai-responses.d.ts +1 -0
  37. package/dist/openai-responses.js +79 -85
  38. package/dist/openai-responses.js.map +1 -1
  39. package/dist/provider.js +42 -33
  40. package/dist/provider.js.map +1 -1
  41. package/dist/server.js +16 -11
  42. package/dist/server.js.map +1 -1
  43. package/dist/session-memory-prompts.d.ts +1 -0
  44. package/dist/session-memory-prompts.js +2 -1
  45. package/dist/session-memory-prompts.js.map +1 -1
  46. package/dist/side-query.js +5 -0
  47. package/dist/side-query.js.map +1 -1
  48. package/dist/startup-config.js +2 -1
  49. package/dist/startup-config.js.map +1 -1
  50. package/dist/summary-compaction.js +5 -0
  51. package/dist/summary-compaction.js.map +1 -1
  52. package/dist/tui.js +3 -0
  53. package/dist/tui.js.map +1 -1
  54. package/dist/types.d.ts +2 -1
  55. package/dist/web/app.js +22 -5
  56. package/dist/web/app.js.map +1 -1
  57. package/docs/BINARY_DISTRIBUTION.md +36 -4
  58. package/docs/MODES_AND_RELEASES.md +7 -2
  59. package/package.json +1 -1
@@ -0,0 +1,129 @@
1
+ export const INCOMPLETE_MODEL_RESPONSE = "ARENA_INCOMPLETE_MODEL_RESPONSE";
2
+ export const TRANSIENT_MODEL_ERROR = "ARENA_UPSTREAM_TRANSIENT";
3
+ export const CAPACITY_MODEL_ERROR = "ARENA_UPSTREAM_CAPACITY";
4
+ export function isCapacityErrorMessage(message) {
5
+ const normalized = message.toLowerCase();
6
+ return normalized.includes("experiencing high demand") ||
7
+ normalized.includes("maximum usage size allowed during peak load") ||
8
+ normalized.includes("provisioned throughput");
9
+ }
10
+ const transientTypes = new Set([
11
+ "api_error", "overloaded_error", "rate_limit_error", "rate_limit_exceeded",
12
+ "request_timeout", "server_error", "service_unavailable", "temporarily_unavailable", "timeout",
13
+ "internal_server_error", "service_unavailable_error", "timeout_error",
14
+ ].map(value => value.replace(/_/g, "")));
15
+ export function modelErrorStatus(...values) {
16
+ return values.map(value => typeof value === "number" || typeof value === "string" ? Number(value) : NaN)
17
+ .find(value => Number.isInteger(value) && value >= 100 && value <= 599);
18
+ }
19
+ export function modelErrorCode(...values) {
20
+ const value = values.find(value => (typeof value === "string" && value) ||
21
+ (typeof value === "number" && Number.isFinite(value)));
22
+ return value === undefined ? undefined : String(value);
23
+ }
24
+ export function isTransientModelError(code, type, status) {
25
+ // An explicit HTTP error status is more specific than a generic APIError.
26
+ if (status !== undefined)
27
+ return status === 408 || status === 409 || status === 429 || (status >= 500 && status <= 599);
28
+ return [code, type].some(value => value !== undefined && transientTypes.has(value.toLowerCase().replace(/[_-]/g, "")));
29
+ }
30
+ export function incompleteModelResponse(message) {
31
+ return Object.assign(new Error(message), { code: INCOMPLETE_MODEL_RESPONSE });
32
+ }
33
+ /** Tool-free callers must not publish text from an explicitly unfinished turn. */
34
+ export function assertCompleteTextResponse(finishReason) {
35
+ if (finishReason && finishReason !== "stop") {
36
+ throw new Error(`Model text response was incomplete (finish_reason=${finishReason})`);
37
+ }
38
+ }
39
+ export async function modelResponseJson(response) {
40
+ let value;
41
+ try {
42
+ value = await response.json();
43
+ }
44
+ catch (error) {
45
+ if (error instanceof SyntaxError)
46
+ throw incompleteModelResponse("Model response contained invalid JSON");
47
+ throw error;
48
+ }
49
+ if (!value || typeof value !== "object" || Array.isArray(value))
50
+ throw incompleteModelResponse("Model response is not an object");
51
+ return value;
52
+ }
53
+ export function modelRecord(value) {
54
+ return value !== null && typeof value === "object" && !Array.isArray(value)
55
+ ? value : {};
56
+ }
57
+ /** Preserve upstream error metadata even when HTTP headers already said 200. */
58
+ export function upstreamModelError(event, protocol) {
59
+ const error = modelRecord(event.error);
60
+ const text = (...values) => values.find(value => typeof value === "string" && value);
61
+ const upstreamCode = modelErrorCode(error.code, event.code);
62
+ const upstreamType = text(error.type, event.type === "error" ? undefined : event.type);
63
+ const status = modelErrorStatus(error.status, error.status_code, event.status, event.status_code, error.code, event.code);
64
+ const transient = isTransientModelError(upstreamCode, upstreamType, status);
65
+ const message = text(error.message, event.message, event.error) || "upstream request failed";
66
+ return Object.assign(new Error(`${protocol} error: ${message}`), {
67
+ code: isCapacityErrorMessage(message) ? CAPACITY_MODEL_ERROR : transient ? TRANSIENT_MODEL_ERROR : upstreamCode,
68
+ upstreamCode, upstreamType, status,
69
+ });
70
+ }
71
+ /** Decode SSE consistently; each adapter decides what completes its protocol. */
72
+ export async function* modelSseEvents(stream, invalid = incompleteModelResponse) {
73
+ const reader = stream.getReader();
74
+ const decoder = new TextDecoder();
75
+ let buffer = "";
76
+ const parse = (frame) => {
77
+ const lines = frame.split("\n");
78
+ const payload = lines.filter(line => line.startsWith("data:")).map(line => line.slice(5).trimStart()).join("\n");
79
+ if (!payload)
80
+ return;
81
+ if (payload === "[DONE]")
82
+ return payload;
83
+ let value;
84
+ try {
85
+ value = JSON.parse(payload);
86
+ }
87
+ catch {
88
+ throw invalid("Model stream contained invalid JSON");
89
+ }
90
+ if (!value || typeof value !== "object" || Array.isArray(value))
91
+ throw invalid("Model stream contained a non-object event");
92
+ const event = value;
93
+ const eventType = lines.find(line => line.startsWith("event:"))?.slice(6).trim();
94
+ if (eventType === "error" && event.type !== "error" && !event.error) {
95
+ // The SSE name declares a failure; data.type may name its exception class.
96
+ return { ...event, type: "error", error: event };
97
+ }
98
+ if (!event.type && eventType)
99
+ event.type = eventType;
100
+ return event;
101
+ };
102
+ try {
103
+ while (true) {
104
+ const { done, value } = await reader.read();
105
+ buffer = (buffer + decoder.decode(value, { stream: !done })).replace(/\r\n/g, "\n");
106
+ let boundary = buffer.indexOf("\n\n");
107
+ while (boundary !== -1) {
108
+ const event = parse(buffer.slice(0, boundary));
109
+ buffer = buffer.slice(boundary + 2);
110
+ if (event !== undefined)
111
+ yield event;
112
+ boundary = buffer.indexOf("\n\n");
113
+ }
114
+ if (done)
115
+ break;
116
+ }
117
+ const event = parse(buffer);
118
+ if (event !== undefined)
119
+ yield event;
120
+ }
121
+ finally {
122
+ try {
123
+ await reader.cancel();
124
+ }
125
+ catch { /* Keep the original failure. */ }
126
+ reader.releaseLock();
127
+ }
128
+ }
129
+ //# sourceMappingURL=model-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-stream.js","sourceRoot":"","sources":["../src/model-stream.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare function responsesInput(messages: ModelMessage[]): ResponseInputI
6
6
  export declare function responsesRequestBody(request: ModelRequest, model: string, includeToolStrict?: boolean): Record<string, unknown>;
7
7
  export declare const RESPONSES_CAPACITY_ERROR_CODE = "ARENA_UPSTREAM_CAPACITY";
8
8
  export declare const RESPONSES_TRANSIENT_ERROR_CODE = "ARENA_UPSTREAM_TRANSIENT";
9
+ export declare const RESPONSES_INCOMPLETE_STREAM_ERROR_CODE = "ARENA_RESPONSES_INCOMPLETE_STREAM";
9
10
  /** Structured failure delivered inside an otherwise-successful Responses SSE request. */
10
11
  export declare class OpenAIResponsesStreamError extends Error {
11
12
  readonly eventType: string;
@@ -1,3 +1,4 @@
1
+ import { CAPACITY_MODEL_ERROR, TRANSIENT_MODEL_ERROR, isCapacityErrorMessage, isTransientModelError, modelErrorCode, modelErrorStatus, modelSseEvents } from "./model-stream.js";
1
2
  function record(value) {
2
3
  return value !== null && typeof value === "object" && !Array.isArray(value)
3
4
  ? value
@@ -6,14 +7,6 @@ function record(value) {
6
7
  function stringValue(value) {
7
8
  return typeof value === "string" ? value : "";
8
9
  }
9
- function numericValue(value) {
10
- if (typeof value === "number" && Number.isFinite(value))
11
- return value;
12
- if (typeof value !== "string" || !value.trim())
13
- return undefined;
14
- const parsed = Number(value);
15
- return Number.isFinite(parsed) ? parsed : undefined;
16
- }
17
10
  function responsesUserContent(content) {
18
11
  if (!Array.isArray(content))
19
12
  return content;
@@ -138,33 +131,9 @@ function responsesUsage(value) {
138
131
  ...(typeof totalTokens === "number" ? { total_tokens: totalTokens } : {}),
139
132
  };
140
133
  }
141
- export const RESPONSES_CAPACITY_ERROR_CODE = "ARENA_UPSTREAM_CAPACITY";
142
- export const RESPONSES_TRANSIENT_ERROR_CODE = "ARENA_UPSTREAM_TRANSIENT";
143
- const transientResponsesErrorIdentifiers = new Set([
144
- "overloaded_error",
145
- "rate_limit_exceeded",
146
- "request_timeout",
147
- "server_error",
148
- "service_unavailable",
149
- "temporarily_unavailable",
150
- "timeout",
151
- ]);
152
- function isCapacityErrorMessage(message) {
153
- const normalized = message.toLowerCase();
154
- return (normalized.includes("experiencing high demand") ||
155
- normalized.includes("maximum usage size allowed during peak load") ||
156
- normalized.includes("provisioned throughput"));
157
- }
158
- function isTransientResponsesError(upstreamCode, upstreamType, status) {
159
- if (status === 408 ||
160
- status === 409 ||
161
- status === 429 ||
162
- (status !== undefined && status >= 500 && status <= 599)) {
163
- return true;
164
- }
165
- return [upstreamCode, upstreamType].some((value) => value !== undefined &&
166
- transientResponsesErrorIdentifiers.has(value.toLowerCase()));
167
- }
134
+ export const RESPONSES_CAPACITY_ERROR_CODE = CAPACITY_MODEL_ERROR;
135
+ export const RESPONSES_TRANSIENT_ERROR_CODE = TRANSIENT_MODEL_ERROR;
136
+ export const RESPONSES_INCOMPLETE_STREAM_ERROR_CODE = "ARENA_RESPONSES_INCOMPLETE_STREAM";
168
137
  /** Structured failure delivered inside an otherwise-successful Responses SSE request. */
169
138
  export class OpenAIResponsesStreamError extends Error {
170
139
  eventType;
@@ -182,7 +151,7 @@ export class OpenAIResponsesStreamError extends Error {
182
151
  if (isCapacityErrorMessage(options.message)) {
183
152
  this.code = RESPONSES_CAPACITY_ERROR_CODE;
184
153
  }
185
- else if (isTransientResponsesError(options.upstreamCode, options.upstreamType, options.status)) {
154
+ else if (isTransientModelError(options.upstreamCode, options.upstreamType, options.status)) {
186
155
  this.code = RESPONSES_TRANSIENT_ERROR_CODE;
187
156
  }
188
157
  else {
@@ -201,19 +170,31 @@ function responsesError(event) {
201
170
  return new OpenAIResponsesStreamError({
202
171
  message,
203
172
  eventType: stringValue(event.type) || "unknown",
204
- upstreamCode: stringValue(error.code) ||
205
- stringValue(responseError.code) ||
206
- stringValue(event.code) ||
207
- undefined,
173
+ upstreamCode: modelErrorCode(error.code, responseError.code, event.code),
208
174
  upstreamType: stringValue(error.type) ||
209
175
  stringValue(responseError.type) ||
210
176
  undefined,
211
- status: numericValue(error.status) ??
212
- numericValue(responseError.status) ??
213
- numericValue(response.status) ??
214
- numericValue(event.status),
177
+ status: modelErrorStatus(error.status, error.status_code, responseError.status, responseError.status_code, response.status, response.status_code, event.status, event.status_code, error.code, responseError.code, event.code),
215
178
  });
216
179
  }
180
+ function incompleteResponsesStream(message) {
181
+ return new OpenAIResponsesStreamError({
182
+ message,
183
+ eventType: "stream.incomplete",
184
+ upstreamCode: RESPONSES_INCOMPLETE_STREAM_ERROR_CODE,
185
+ });
186
+ }
187
+ function checkResponseStatus(response, terminalStatus) {
188
+ if (response.status === "failed" || Object.keys(record(response.error)).length) {
189
+ throw responsesError({ type: "response.failed", response });
190
+ }
191
+ if (response.status === "cancelled") {
192
+ throw responsesError({ type: "response.cancelled", response });
193
+ }
194
+ if (!["completed", "incomplete"].includes(String(response.status ?? terminalStatus))) {
195
+ throw incompleteResponsesStream("OpenAI Responses response did not reach a terminal status");
196
+ }
197
+ }
217
198
  function toolIndex(event, fallback) {
218
199
  return typeof event.output_index === "number" ? event.output_index : fallback;
219
200
  }
@@ -241,11 +222,21 @@ function toolDelta(state, values) {
241
222
  }
242
223
  /** Translate native Responses SSE events into Arena's provider-neutral chunks. */
243
224
  export async function* responsesChunks(stream) {
244
- const reader = stream.getReader();
245
- const decoder = new TextDecoder();
246
225
  const tools = new Map();
247
226
  const completedItemIndexes = new Set();
248
- let buffer = "";
227
+ const textParts = new Map();
228
+ let sawTerminal = false;
229
+ const emitText = function* (index, contentIndex, text, complete = false) {
230
+ const key = `${index}:${contentIndex}`;
231
+ const previous = textParts.get(key) || "";
232
+ if (complete && !text.startsWith(previous)) {
233
+ throw incompleteResponsesStream("OpenAI Responses completed text disagrees with its streamed prefix");
234
+ }
235
+ const delta = complete ? text.slice(previous.length) : text;
236
+ textParts.set(key, complete ? text : previous + text);
237
+ if (delta)
238
+ yield { choices: [{ delta: { content: delta } }] };
239
+ };
249
240
  const captureOutputItem = function* (index, item, replace = false) {
250
241
  if (!Object.keys(item).length ||
251
242
  (!replace && completedItemIndexes.has(index))) {
@@ -259,16 +250,15 @@ export async function* responsesChunks(stream) {
259
250
  const processEvent = function* (event) {
260
251
  const type = stringValue(event.type);
261
252
  const response = record(event.response);
262
- if (type === "error" || type === "response.failed") {
253
+ if (type === "error" || type === "response.failed" || type === "response.cancelled" ||
254
+ Object.keys(record(event.error)).length) {
263
255
  throw responsesError(event);
264
256
  }
265
257
  if (type === "response.created" || type === "response.in_progress") {
266
258
  return;
267
259
  }
268
260
  if (type === "response.output_text.delta" || type === "response.refusal.delta") {
269
- yield {
270
- choices: [{ delta: { content: stringValue(event.delta) } }],
271
- };
261
+ yield* emitText(toolIndex(event, 0), typeof event.content_index === "number" ? event.content_index : 0, stringValue(event.delta));
272
262
  return;
273
263
  }
274
264
  if (type === "response.reasoning_summary_text.delta" ||
@@ -323,6 +313,14 @@ export async function* responsesChunks(stream) {
323
313
  const index = toolIndex(event, tools.size);
324
314
  if (type === "response.output_item.done") {
325
315
  yield* captureOutputItem(index, item);
316
+ if (item.type === "message" && Array.isArray(item.content)) {
317
+ for (const [contentIndex, rawPart] of item.content.entries()) {
318
+ const part = record(rawPart);
319
+ if (part.type === "output_text" || part.type === "refusal") {
320
+ yield* emitText(index, contentIndex, stringValue(part.text) || stringValue(part.refusal), true);
321
+ }
322
+ }
323
+ }
326
324
  }
327
325
  if (type === "response.output_item.done" && item.type !== "function_call") {
328
326
  return;
@@ -336,36 +334,45 @@ export async function* responsesChunks(stream) {
336
334
  };
337
335
  const id = stringValue(item.call_id) || state.id;
338
336
  const name = stringValue(item.name) || state.name;
339
- const completeArguments = stringValue(event.arguments) || stringValue(item.arguments);
340
- const suffix = completeArguments.startsWith(state.arguments)
341
- ? completeArguments.slice(state.arguments.length)
342
- : state.arguments
343
- ? ""
344
- : completeArguments;
345
- if (!state.headerEmitted || suffix) {
337
+ if ((state.id && id !== state.id) || (state.name && name !== state.name)) {
338
+ throw incompleteResponsesStream("OpenAI Responses completed tool identity disagrees with its streamed header");
339
+ }
340
+ const completeArguments = typeof event.arguments === "string" ? event.arguments
341
+ : typeof item.arguments === "string" ? item.arguments : undefined;
342
+ if (completeArguments !== undefined && !completeArguments.startsWith(state.arguments)) {
343
+ throw incompleteResponsesStream("OpenAI Responses completed tool arguments disagree with their streamed prefix");
344
+ }
345
+ const suffix = completeArguments?.slice(state.arguments.length) || "";
346
+ const missingId = !state.headerEmitted || !state.id;
347
+ const missingName = !state.headerEmitted || !state.name;
348
+ if (!state.headerEmitted || (missingId && id) || (missingName && name) || suffix) {
346
349
  yield {
347
350
  ...toolDelta(state, {
348
- ...(!state.headerEmitted && id ? { id } : {}),
349
- ...(!state.headerEmitted && name ? { name } : {}),
351
+ ...(missingId && id ? { id } : {}),
352
+ ...(missingName && name ? { name } : {}),
350
353
  ...(suffix ? { arguments: suffix } : {}),
351
354
  }),
352
355
  };
353
356
  }
354
357
  state.id = id;
355
358
  state.name = name;
356
- state.arguments = completeArguments || state.arguments;
359
+ state.arguments = completeArguments ?? state.arguments;
357
360
  state.headerEmitted = true;
358
361
  tools.set(index, state);
359
362
  return;
360
363
  }
361
364
  if (type === "response.completed" || type === "response.incomplete") {
362
365
  const completed = response;
366
+ checkResponseStatus(completed, type.slice("response.".length));
363
367
  if (Array.isArray(completed.output)) {
364
368
  for (const [index, rawItem] of completed.output.entries()) {
365
369
  // The completed response is authoritative and may carry fields such
366
370
  // as encrypted_content that were absent from an earlier added/done
367
371
  // event emitted by a compatible gateway.
368
372
  yield* captureOutputItem(index, record(rawItem), true);
373
+ // Some gateways send the final output without all delta/done events.
374
+ // Recover missing text and tool arguments without duplicating deltas.
375
+ yield* processEvent({ type: "response.output_item.done", output_index: index, item: rawItem });
369
376
  }
370
377
  }
371
378
  const incompleteDetails = record(completed.incomplete_details);
@@ -377,7 +384,7 @@ export async function* responsesChunks(stream) {
377
384
  choices: [
378
385
  {
379
386
  delta: {},
380
- finish_reason: type === "response.incomplete" || incompleteReason
387
+ finish_reason: type === "response.incomplete" || completed.status === "incomplete" || incompleteReason
381
388
  ? incompleteReason === "max_output_tokens"
382
389
  ? "length"
383
390
  : "incomplete"
@@ -387,35 +394,22 @@ export async function* responsesChunks(stream) {
387
394
  },
388
395
  ],
389
396
  };
397
+ sawTerminal = true;
390
398
  }
391
399
  };
392
- const consumeFrame = function* (frame) {
393
- const payload = frame
394
- .split("\n")
395
- .filter((line) => line.startsWith("data:"))
396
- .map((line) => line.slice(5).trimStart())
397
- .join("\n");
398
- if (!payload || payload === "[DONE]")
399
- return;
400
- yield* processEvent(JSON.parse(payload));
401
- };
402
- while (true) {
403
- const { done, value } = await reader.read();
404
- buffer += decoder.decode(value, { stream: !done }).replace(/\r\n/g, "\n");
405
- let boundary = buffer.indexOf("\n\n");
406
- while (boundary !== -1) {
407
- yield* consumeFrame(buffer.slice(0, boundary));
408
- buffer = buffer.slice(boundary + 2);
409
- boundary = buffer.indexOf("\n\n");
410
- }
411
- if (done)
400
+ for await (const event of modelSseEvents(stream, incompleteResponsesStream)) {
401
+ if (event === "[DONE]")
412
402
  break;
403
+ yield* processEvent(event);
404
+ if (sawTerminal)
405
+ return;
413
406
  }
414
- if (buffer)
415
- yield* consumeFrame(buffer);
407
+ if (!sawTerminal)
408
+ throw incompleteResponsesStream("OpenAI Responses stream ended before a terminal response event");
416
409
  }
417
410
  /** Translate a non-streaming Responses object into one Arena chunk. */
418
411
  export function responsesFallbackChunk(value) {
412
+ checkResponseStatus(value);
419
413
  const output = Array.isArray(value.output) ? value.output : [];
420
414
  const content = [];
421
415
  const reasoning = [];
@@ -464,7 +458,7 @@ export function responsesFallbackChunk(value) {
464
458
  : {}),
465
459
  ...(toolCalls.length ? { tool_calls: toolCalls } : {}),
466
460
  },
467
- finish_reason: incompleteReason
461
+ finish_reason: value.status === "incomplete" || incompleteReason
468
462
  ? incompleteReason === "max_output_tokens"
469
463
  ? "length"
470
464
  : "incomplete"
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../src/openai-responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../src/openai-responses.ts"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -2,6 +2,7 @@ import crypto from "node:crypto";
2
2
  import { anthropicChunks, anthropicFallbackChunk, anthropicRequestBody, } from "./anthropic.js";
3
3
  import { codeArenaRequestTools } from "./code-tool-schema.js";
4
4
  import { isCodeArenaMode } from "./mode.js";
5
+ import { incompleteModelResponse, modelRecord, modelResponseJson, modelSseEvents, upstreamModelError } from "./model-stream.js";
5
6
  import { diagnosticError, diagnosticValue, rawDiagnosticValue, requestDiagnosticSummary, requestMediaTypes, responseRequestIds, safeEndpoint, } from "./model-diagnostics.js";
6
7
  import { responsesChunks, responsesFallbackChunk, responsesRequestBody, } from "./openai-responses.js";
7
8
  const defaultModelTransportTimeoutMs = 300_000;
@@ -363,52 +364,60 @@ export function withIdleTimeout(stream, timeoutMs) {
363
364
  });
364
365
  }
365
366
  async function* parseSse(stream) {
366
- const reader = stream.getReader();
367
- const decoder = new TextDecoder();
368
- let buffer = "";
369
- while (true) {
370
- const { done, value } = await reader.read();
371
- buffer += decoder.decode(value, { stream: !done }).replace(/\r\n/g, "\n");
372
- let boundary = buffer.indexOf("\n\n");
373
- while (boundary !== -1) {
374
- const frame = buffer.slice(0, boundary);
375
- buffer = buffer.slice(boundary + 2);
376
- const payload = frame
377
- .split("\n")
378
- .filter((line) => line.startsWith("data:"))
379
- .map((line) => line.slice(5).trimStart())
380
- .join("\n");
381
- if (payload && payload !== "[DONE]") {
382
- yield JSON.parse(payload);
367
+ const pending = new Set();
368
+ let finished = false;
369
+ for await (const event of modelSseEvents(stream)) {
370
+ if (event === "[DONE]")
371
+ break;
372
+ if (event.error || event.type === "error")
373
+ throw upstreamModelError(event, "Chat Completions");
374
+ const chunk = event;
375
+ for (const [position, choice] of (chunk.choices || []).entries()) {
376
+ const delta = modelRecord(choice.delta);
377
+ if (!delta.content && typeof delta.refusal === "string") {
378
+ choice.delta = { ...choice.delta, content: delta.refusal };
383
379
  }
384
- boundary = buffer.indexOf("\n\n");
380
+ const choiceIndex = modelRecord(choice).index;
381
+ const index = typeof choiceIndex === "number" ? choiceIndex : position;
382
+ if (choice.finish_reason != null) {
383
+ choice.finish_reason = chatFinishReason(choice.finish_reason);
384
+ pending.delete(index);
385
+ if (index === 0)
386
+ finished = true;
387
+ }
388
+ else
389
+ pending.add(index);
385
390
  }
386
- if (done)
387
- break;
388
- }
389
- const payload = buffer
390
- .split("\n")
391
- .filter((line) => line.startsWith("data:"))
392
- .map((line) => line.slice(5).trimStart())
393
- .join("\n");
394
- if (payload && payload !== "[DONE]") {
395
- yield JSON.parse(payload);
391
+ yield chunk;
396
392
  }
393
+ // A finish chunk may be followed by a usage-only chunk. Consume those until
394
+ // DONE/EOF, but neither sentinel can stand in for a finished choice.
395
+ if (!finished || pending.size)
396
+ throw incompleteModelResponse("Chat Completions stream ended before finish_reason");
397
+ }
398
+ function chatFinishReason(value) {
399
+ if (typeof value !== "string" || !value)
400
+ throw incompleteModelResponse("Chat Completions response is missing finish_reason");
401
+ return ["stop", "tool_calls", "length", "content_filter"].includes(value) ? value : "incomplete";
397
402
  }
398
403
  function fallbackChunk(value) {
404
+ if (value.error || value.type === "error")
405
+ throw upstreamModelError(value, "Chat Completions");
399
406
  const choices = (value.choices || []);
407
+ if (!Array.isArray(choices) || !choices.length)
408
+ throw incompleteModelResponse("Chat Completions response is missing choices");
400
409
  return {
401
410
  usage: value.usage,
402
411
  choices: choices.map((choice) => {
403
412
  const message = (choice.message || {});
404
413
  return {
405
414
  delta: {
406
- content: message.content,
415
+ content: (message.content || (typeof message.refusal === "string" ? message.refusal : undefined)),
407
416
  reasoning_content: (message.reasoning_content ||
408
417
  message.reasoning),
409
418
  tool_calls: message.tool_calls,
410
419
  },
411
- finish_reason: choice.finish_reason,
420
+ finish_reason: chatFinishReason(choice.finish_reason),
412
421
  };
413
422
  }),
414
423
  };
@@ -814,7 +823,7 @@ export class HttpModelClient {
814
823
  }
815
824
  }
816
825
  else {
817
- const value = (await response.json());
826
+ const value = await modelResponseJson(response);
818
827
  const chunk = fallbackChunk(value);
819
828
  chunks = 1;
820
829
  aggregatedResponse.add(chunk);
@@ -943,7 +952,7 @@ export class HttpModelClient {
943
952
  }
944
953
  }
945
954
  else {
946
- const value = (await response.json());
955
+ const value = await modelResponseJson(response);
947
956
  const chunk = responsesFallbackChunk(value);
948
957
  chunks = 1;
949
958
  aggregatedResponse.add(chunk);
@@ -1032,7 +1041,7 @@ export class HttpModelClient {
1032
1041
  }
1033
1042
  }
1034
1043
  else {
1035
- const value = (await response.json());
1044
+ const value = await modelResponseJson(response);
1036
1045
  const chunk = anthropicFallbackChunk(value);
1037
1046
  chunks = 1;
1038
1047
  aggregatedResponse.add(chunk);