@framers/agentos 0.10.24 → 0.10.25

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.
@@ -127,25 +127,48 @@ export declare function openAiHasLongContextPricing(modelId: string): boolean;
127
127
  /**
128
128
  * Whether OpenAI serves `modelId` only through the Responses API. OpenAI lists
129
129
  * the `-pro` tiers, the codex models, `gpt-5.6-cyber` and the deep-research
130
- * models as Responses-only. OpenAIProvider sends a request to /v1/responses
131
- * only when it is a non-streamed GPT-5 or GPT-6 call carrying function tools
132
- * and an effort, and to /v1/chat/completions otherwise, where these ids fail.
130
+ * models as Responses-only; on /v1/chat/completions they fail (gpt-5.3-codex
131
+ * answers 404). OpenAIProvider sends every call to these ids to /v1/responses
132
+ * (see {@link openAiRequiresResponsesApi}).
133
+ *
134
+ * Only OpenAI's own families (`gpt-`, the o-series, `codex-`) qualify. Groq,
135
+ * xAI, Together and Mistral delegate to this class with their own model ids,
136
+ * and an id such as `grok-4-pro` on one of those endpoints is served by its
137
+ * Chat Completions route.
133
138
  *
134
139
  * @param modelId Provider-side model identifier.
135
140
  * @returns `true` when the model has no Chat Completions endpoint.
136
141
  */
137
142
  export declare function isOpenAIResponsesOnlyModel(modelId: string): boolean;
143
+ /**
144
+ * Whether a call to `modelId` can be served only by `/v1/responses`:
145
+ *
146
+ * - any call to a Responses-only model ({@link isOpenAIResponsesOnlyModel});
147
+ * - a GPT-6 call carrying function tools. Chat Completions does not serve
148
+ * it: `gpt-6-astra` rejects tool calls there with or without a
149
+ * `reasoning_effort` (probed 2026-09-10 and 2026-09-30), the `gpt-6.1-sol` model page lists
150
+ * tool calling on Responses only, and the `gpt-6-sol` / `gpt-6-luna`
151
+ * pages allow chat tool calls only with `reasoning_effort: 'none'`. A
152
+ * 2026-09-30 probe of a GPT-6 tool call with no `reasoning_effort` on
153
+ * /v1/chat/completions returned HTTP 400.
154
+ *
155
+ * {@link shouldRouteToOpenAiResponsesApi} applies this rule to streamed and
156
+ * non-streamed calls alike.
157
+ *
158
+ * @param modelId Provider-side model identifier.
159
+ * @param options The request's tools.
160
+ * @returns `true` when the call has no Chat Completions route.
161
+ */
162
+ export declare function openAiRequiresResponsesApi(modelId: string, options: Pick<ModelCompletionOptions, 'tools'>): boolean;
138
163
  /**
139
164
  * ModelInfo capabilities for a GPT-5, GPT-6 or o-series id, limited to what
140
165
  * OpenAIProvider can serve.
141
166
  *
142
167
  * - Responses-only models ({@link isOpenAIResponsesOnlyModel}) list as
143
- * `chat` only. This provider reaches them only on its narrow Responses
144
- * path, and the refresh leaves the Responses-only o-series ids out.
145
- * - GPT-6 omits `tool_use`. OpenAI requires the Responses API for GPT-6
146
- * Astra tool calls and `reasoning_effort: "none"` for Sol and Luna tool
147
- * calls on Chat Completions, and this provider routes a tool call to
148
- * Responses only when it carries an effort and is not streamed.
168
+ * `chat` only. Tool and streaming support vary from model to model on
169
+ * that tier, and the refresh leaves the Responses-only o-series ids out.
170
+ * - GPT-6 lists `tool_use`: every GPT-6 tool call, streamed or not, goes to
171
+ * `/v1/responses` ({@link openAiRequiresResponsesApi}).
149
172
  * - `o1-mini` and `o1-preview` have no function calling or structured
150
173
  * outputs. They and `o3-mini` take text only, and every other id takes
151
174
  * images (per model input modalities, checked 2026-09-29).
@@ -180,32 +203,30 @@ export declare function openAiReasoningCapabilities(modelId: string): string[];
180
203
  */
181
204
  export declare function isOpenAIReasoningModel(modelId: string): boolean;
182
205
  /**
183
- * Whether OpenAI rejects `reasoning_effort` sent ALONGSIDE function tools on
184
- * the `/v1/chat/completions` endpoint for `modelId`. The GPT-5 family enforces
185
- * this — "Function tools with reasoning_effort are not supported for gpt-5.5
186
- * in /v1/chat/completions. Please use /v1/responses instead." (live-observed
187
- * 2026-07-08 when the codegen frontier fallback chain routed a tool-carrying,
188
- * effort:xhigh orchestrator turn to gpt-5.5, hard-erroring the whole build).
189
- *
190
- * Such a call is routed to `/v1/responses` when it qualifies (see
191
- * {@link shouldRouteToOpenAiResponsesApi}, which preserves BOTH effort and
192
- * tools); otherwise it stays on chat/completions and must DROP
193
- * `reasoning_effort` (the model then reasons at its default depth) rather than
194
- * 400 the entire request. Scoped to the GPT-5 and GPT-6 families: the o-series
195
- * (o1/o3/o4) still accepts `reasoning_effort` + tools on chat/completions, so
196
- * dropping it there would be a needless reasoning-depth regression. Widen this
197
- * predicate if a future o-series enforces the same Responses-API requirement.
198
- *
199
- * GPT-6 enforces the SAME restriction — live-probed 2026-09-10
200
- * (chat.completions, `gpt-6-astra`, `reasoning_effort: 'xhigh'` + one function
201
- * tool): HTTP 400 `invalid_request_error` — "Function tools with
202
- * reasoning_effort are not supported for gpt-6-astra in /v1/chat/completions.
203
- * To use function tools, use /v1/responses or set reasoning_effort to 'none'."
204
- * The suggested `'none'` escape hatch does NOT exist on this family: the same
205
- * probe with `reasoning_effort: 'none'` returns HTTP 400 `unsupported_value`
206
- * ("Supported values are: 'low', 'medium', 'high', and 'xhigh'"). Dropping the
207
- * param entirely (or routing to `/v1/responses`) is therefore the only viable
208
- * path, which is exactly what the two call sites below already do.
206
+ * Whether OpenAI rejects `reasoning_effort` sent alongside function tools on
207
+ * the `/v1/chat/completions` endpoint for `modelId`. The GPT-5 family does:
208
+ * "Function tools with reasoning_effort are not supported for gpt-5.5 in
209
+ * /v1/chat/completions. Please use /v1/responses instead." (live-observed
210
+ * 2026-07-08, when the codegen frontier fallback chain sent a tool-carrying,
211
+ * effort:xhigh orchestrator turn to gpt-5.5 and the whole build failed).
212
+ *
213
+ * GPT-6 does as well. Live-probed 2026-09-10 (chat.completions,
214
+ * `gpt-6-astra`, `reasoning_effort: 'xhigh'` and one function tool): HTTP 400
215
+ * `invalid_request_error`, "Function tools with reasoning_effort are not
216
+ * supported for gpt-6-astra in /v1/chat/completions. To use function tools,
217
+ * use /v1/responses or set reasoning_effort to 'none'." The 2026-09-30 probe
218
+ * found that `gpt-6-sol` and `gpt-6-luna` accept `'none'` there while
219
+ * `gpt-6-astra` rejects it, and that a GPT-6 tool call with no
220
+ * `reasoning_effort` also returns 400, so every GPT-6 tool call goes to
221
+ * `/v1/responses` ({@link openAiRequiresResponsesApi}).
222
+ *
223
+ * {@link shouldRouteToOpenAiResponsesApi} sends a GPT-5 tool call that
224
+ * carries an effort to `/v1/responses`, which keeps both the effort and the
225
+ * tools. A call whose message content Responses cannot carry stays on
226
+ * chat/completions, where the chat builder drops `reasoning_effort` so the
227
+ * call succeeds at the model's default depth. The o-series (o1/o3/o4) accepts
228
+ * `reasoning_effort` with tools on chat/completions, so it stays outside this
229
+ * predicate; widen it if a future o-series model enforces the same rule.
209
230
  *
210
231
  * @param modelId Provider-side model identifier (e.g. `'gpt-5.5'`, `'gpt-6-astra'`).
211
232
  */
@@ -244,27 +265,43 @@ export declare function isResponsesMappableContent(content: ChatMessage['content
244
265
  */
245
266
  export declare function flattenResponsesTextContent(content: ChatMessage['content']): string;
246
267
  /**
247
- * Whether a NON-streaming call must use `/v1/responses` instead of
248
- * `/v1/chat/completions`: a gpt-5/gpt-6 reasoning model carrying function tools
249
- * AND a requested effort — the ONLY combination chat/completions 400s on
250
- * ("Function tools with reasoning_effort are not supported … Please use
251
- * /v1/responses instead") and the only case where the Responses path buys
252
- * anything (preserved reasoning depth). Excludes, per the 2026-07-08 Codex
253
- * review, requests that carry a `responseFormat` (the Responses path maps no
254
- * structured output — those stay on chat/completions where R4 drops effort) or
255
- * message content the input mapper cannot carry (see
256
- * {@link isResponsesMappableContent}). Every excluded case stays on
257
- * chat/completions; R4's effort-drop remains the defense-in-depth floor there.
258
- *
259
- * Content gating is delegated to {@link isResponsesMappableContent} rather
260
- * than tested inline. It previously required EVERY message's content to be a
261
- * plain string, which silently excluded Anthropic-style cache-marked system
262
- * blocks (`systemBlocks` / `SystemContentBlock[]`, which reach the provider as
263
- * an all-text content array). Callers that set `systemBlocks` to fix a cold
264
- * prompt cache therefore lost Responses routing and hard-400ed on
265
- * chat/completions — the exact failure this router exists to prevent. All-text
266
- * arrays now route and are flattened losslessly; true multimodal content is
267
- * still excluded, because the mapper still cannot represent it.
268
+ * Whether the `/v1/responses` builder can carry message `m` without losing
269
+ * content. Text-only content ({@link isResponsesMappableContent}) maps on
270
+ * every role. User and tool messages may also carry image parts: a user turn
271
+ * sends them as `input_image`, and a tool result becomes a
272
+ * `function_call_output` whose output is an `input_text` / `input_image`
273
+ * array (the form OpenAI's function-calling reference gives for it). Any other
274
+ * part, such as audio, a file or an Anthropic `tool_result` block, has no
275
+ * mapping.
276
+ *
277
+ * @param m A request message.
278
+ * @returns `true` when the message maps onto Responses input losslessly.
279
+ */
280
+ export declare function isResponsesMappableMessage(m: ChatMessage): boolean;
281
+ /**
282
+ * Whether a call goes to `/v1/responses` instead of `/v1/chat/completions`.
283
+ * Streamed and non-streamed calls follow this one rule.
284
+ *
285
+ * - Every call {@link openAiRequiresResponsesApi} names: Responses-only
286
+ * models and GPT-6 tool calls.
287
+ * - A GPT-5 or GPT-6 call that carries function tools and an effort, when
288
+ * every message maps ({@link isResponsesMappableMessage}). Chat
289
+ * Completions rejects `reasoning_effort` alongside function tools for
290
+ * these families ("Function tools with reasoning_effort are not supported
291
+ * ... Please use /v1/responses instead"); Responses keeps both, and a
292
+ * `responseFormat` travels as `text.format`.
293
+ *
294
+ * Content gating goes through {@link isResponsesMappableMessage}, which
295
+ * accepts Anthropic-style cache-marked system blocks (`systemBlocks` reach the
296
+ * provider as an all-text content array) and flattens them without loss. A
297
+ * GPT-5 tool call whose content does not map stays on chat/completions, where
298
+ * the chat builder drops the effort (see
299
+ * {@link openAiRejectsReasoningEffortWithTools}).
300
+ *
301
+ * @param modelId Provider-side model identifier.
302
+ * @param messages The request messages.
303
+ * @param options The request's tools, effort and response format.
304
+ * @returns `true` when the call goes to `/v1/responses`.
268
305
  */
269
306
  export declare function shouldRouteToOpenAiResponsesApi(modelId: string, messages: ChatMessage[], options: Pick<ModelCompletionOptions, 'tools' | 'effort' | 'responseFormat'>): boolean;
270
307
  export declare class OpenAIProvider implements IProvider {
@@ -316,6 +353,54 @@ export declare class OpenAIProvider implements IProvider {
316
353
  generateCompletion(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): Promise<ModelCompletionResponse>;
317
354
  /** @inheritdoc */
318
355
  generateCompletionStream(modelId: string, messages: ChatMessage[], options: ModelCompletionOptions): AsyncGenerator<ModelCompletionResponse, void, undefined>;
356
+ /**
357
+ * The terminal chunk a stream yields when the caller's signal aborts it.
358
+ * @private
359
+ */
360
+ private abortedStreamChunk;
361
+ /**
362
+ * Maps a `/v1/chat/completions` SSE stream onto
363
+ * {@link ModelCompletionResponse} chunks, accumulating streamed tool calls
364
+ * by index. A caller abort ends the stream with the abort chunk.
365
+ * @private
366
+ */
367
+ private mapChatStream;
368
+ /**
369
+ * Maps a `/v1/responses` SSE stream onto the {@link ModelCompletionResponse}
370
+ * chunks the chat stream produces.
371
+ *
372
+ * - `response.output_text.delta` yields a text chunk.
373
+ * - A `function_call` item yields a tool-call delta with its id and name
374
+ * (`response.output_item.added`), then its argument fragments
375
+ * (`response.function_call_arguments.delta`). Tool-call indexes are
376
+ * dense in order of appearance, so a reasoning item ahead of the calls
377
+ * leaves no gap.
378
+ * - The item's final form (`response.function_call_arguments.done`,
379
+ * `response.output_item.done`) and the terminal response are
380
+ * authoritative. Text, a call id or name, or an argument suffix that the
381
+ * deltas did not carry goes out as one more delta, exactly once, before
382
+ * the final chunk. A consumer that rebuilds the turn from deltas
383
+ * (StreamingReconstructor) and one that reads the final chunk
384
+ * (streamText, GMI) therefore see the same text and calls, including
385
+ * when a proxy strips the delta events.
386
+ * - `response.completed` and `response.incomplete` yield exactly one final
387
+ * chunk with the finish reason, tool calls and usage.
388
+ * - Before any text or tool call has gone out, `response.failed`, an
389
+ * `error` event, and a body that ends or fails to read before a terminal
390
+ * event throw an {@link OpenAIProviderError}, as a failed HTTP request
391
+ * does: the status of a retryable error code
392
+ * ({@link RESPONSES_RETRYABLE_ERROR_STATUS}) or `NETWORK_ERROR` for the
393
+ * cut-off or failed body, and a failed response's billed usage in
394
+ * `details.usage`. Callers can then fail over and meter the attempt.
395
+ * - After output, those failures and a caller abort each yield one final
396
+ * chunk carrying an error instead, so the partial answer stays with the
397
+ * caller.
398
+ *
399
+ * Reasoning summaries, content-part events and refusals carry nothing this
400
+ * mapping surfaces and are skipped.
401
+ * @private
402
+ */
403
+ private mapResponsesStream;
319
404
  /** @inheritdoc */
320
405
  generateEmbeddings(modelId: string, texts: string[], options?: ProviderEmbeddingOptions): Promise<ProviderEmbeddingResponse>;
321
406
  /** @inheritdoc */
@@ -357,17 +442,31 @@ export declare class OpenAIProvider implements IProvider {
357
442
  */
358
443
  private applyCacheAndTierParams;
359
444
  /**
360
- * Build a `/v1/responses` request body for a gpt-5/gpt-6 reasoning +
361
- * function-tool call (the only case
362
- * {@link shouldRouteToOpenAiResponsesApi} routes here).
363
- * Preserves BOTH `reasoning.effort` and `tools`, which chat/completions
364
- * rejects together. No structured output by construction (the router
365
- * excludes responseFormat). Message content arrives as either a plain
366
- * string or an all-text block array — {@link flattenResponsesTextContent}
367
- * joins the latter, so cache-marked `systemBlocks` survive intact instead of
368
- * collapsing to an empty prompt. True multimodal content never reaches here
369
- * (the router excludes it via {@link isResponsesMappableContent}).
445
+ * Build a `/v1/responses` request body for a call
446
+ * {@link shouldRouteToOpenAiResponsesApi} sends there: a Responses-only
447
+ * model, a GPT-6 tool call, or a GPT-5/GPT-6 tool call that carries an
448
+ * effort.
449
+ *
450
+ * - System, assistant and text-only turns carry flattened text
451
+ * ({@link flattenResponsesTextContent}), so cache-marked `systemBlocks`
452
+ * arrive joined instead of empty. A user turn with images carries
453
+ * `input_text` / `input_image` parts, and a tool result with images
454
+ * becomes a `function_call_output` whose output is that part array.
455
+ * - `tools`, `reasoning` and `text.format` appear only when the call has
456
+ * function tools, an effort the model maps, or an OpenAI-shaped
457
+ * `responseFormat`. `stream: true` marks a streamed call; Responses has
458
+ * no `stream_options.include_usage` and reports usage on the terminal
459
+ * event.
460
+ * - A chat-style `reasoning_effort` in `customModelParams` moves to
461
+ * `reasoning.effort`, because Responses rejects the top-level key.
462
+ *
370
463
  * Live-probed 2026-07-08; block-content path live-probed 2026-09-12.
464
+ *
465
+ * @throws {OpenAIProviderError} `RESPONSES_UNMAPPABLE_CONTENT` when a
466
+ * message carries a part Responses cannot represent (audio, a file, an
467
+ * Anthropic `tool_result` block). Only a call with no Chat Completions
468
+ * route reaches here with such content; the error is not retryable, like
469
+ * the 400 or 404 Chat Completions would return for it.
371
470
  * @private
372
471
  */
373
472
  private buildResponsesPayload;
@@ -391,6 +490,25 @@ export declare class OpenAIProvider implements IProvider {
391
490
  * @private
392
491
  */
393
492
  private mapResponsesToCompletionResponse;
493
+ /**
494
+ * Logs a `/v1/responses` turn that holds output items but no message and
495
+ * no function call: reasoning-only output. It is returned as an empty turn
496
+ * carrying the real finish reason (`length` when max_output_tokens capped
497
+ * it), so the caller can retry with a larger budget. Reasoning tokens come
498
+ * out of the same output budget as the visible answer, so a reasoning model
499
+ * needs a materially larger maxTokens than a non-reasoning one to leave
500
+ * room for a reply.
501
+ * @private
502
+ */
503
+ private warnReasoningOnlyOutput;
504
+ /**
505
+ * Token usage and cost for a `/v1/responses` result. The Responses API
506
+ * spells the counts `input_tokens` / `output_tokens` and the cached detail
507
+ * `input_tokens_details`; they are re-keyed to the chat spelling so both
508
+ * endpoints meter through {@link calculateUsage}.
509
+ * @private
510
+ */
511
+ private mapResponsesUsage;
394
512
  /**
395
513
  * Maps the raw OpenAI API Chat Completion response to the standard ModelCompletionResponse.
396
514
  * @private
@@ -451,12 +569,28 @@ export declare class OpenAIProvider implements IProvider {
451
569
  * @param {string} apiKey - The API key to use.
452
570
  * @param {Record<string, unknown>} [body] - The request body for POST requests.
453
571
  * @param {boolean} [expectStream] - Whether the response is expected to be a stream.
572
+ * @param {number} [requestTimeoutOverride] - Per-call timeout in ms, over the configured default.
573
+ * @param {AbortSignal} [abortSignal] - Caller's signal. It aborts the fetch in flight, and once
574
+ * it has fired no further attempt is sent.
454
575
  * @returns {Promise<T | ReadableStream<Uint8Array>>} The API response or stream.
455
- * @throws {OpenAIProviderError} If the request fails after retries or for non-retryable errors.
576
+ * @throws {OpenAIProviderError} If the request fails after retries or for non-retryable errors;
577
+ * `REQUEST_ABORTED` when the caller's signal ends it.
456
578
  */
457
579
  private makeApiRequest;
458
580
  /**
459
- * Parses an SSE (Server-Sent Events) stream.
581
+ * {@link parseSseStream} for the /v1/responses mapper: a read that fails
582
+ * mid-body (parseSseStream's `STREAM_PARSING_ERROR`) ends the stream and is
583
+ * recorded on `reading.failure` instead of propagating, so the mapper
584
+ * handles it like a body cut off before its terminal event.
585
+ * @private
586
+ */
587
+ private readResponsesSse;
588
+ /**
589
+ * Parses an SSE (Server-Sent Events) stream and yields each `data:` payload.
590
+ *
591
+ * When `abortSignal` fires, the reader is cancelled at once, which settles
592
+ * a read that is waiting on the network, and the generator ends without
593
+ * yielding more; the caller then emits its abort chunk.
460
594
  * @private
461
595
  */
462
596
  private parseSseStream;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenAIProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAIProvider.d.ts","sourceRoot":"","sources":["../../../../../src/core/llm/providers/implementations/OpenAIProvider.ts"],"names":[],"mappings":"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"}