@ai-sdk/openai 4.0.108 → 4.0.110
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.
- package/CHANGELOG.md +54 -0
- package/dist/index.d.ts +79 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +788 -423
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +389 -9
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +629 -380
- package/dist/internal/index.js.map +1 -1
- package/docs/03-openai.mdx +224 -18
- package/package.json +3 -3
- package/src/chat/convert-to-openai-chat-messages.ts +29 -4
- package/src/chat/map-openai-finish-reason.ts +11 -4
- package/src/chat/openai-chat-api.ts +36 -0
- package/src/chat/openai-chat-language-model-options.ts +13 -0
- package/src/chat/openai-chat-language-model.ts +111 -22
- package/src/chat/openai-chat-prompt.ts +4 -0
- package/src/image/openai-image-model-options.ts +48 -0
- package/src/image/openai-image-model.ts +49 -4
- package/src/index.ts +1 -0
- package/src/internal/index.ts +4 -0
- package/src/live/openai-realtime-model-live.ts +21 -2
- package/src/openai-batch.ts +8 -0
- package/src/openai-model-catalog.ts +3 -1
- package/src/openai-tools.ts +4 -3
- package/src/realtime/openai-realtime-event-mapper.ts +172 -11
- package/src/realtime/openai-realtime-model.ts +57 -3
- package/src/responses/map-openai-responses-finish-reason.ts +7 -1
- package/src/responses/openai-responses-api.ts +90 -49
- package/src/responses/openai-responses-language-model.ts +56 -1
- package/src/responses/openai-responses-prepare-tools.ts +18 -1
- package/src/tool/code-interpreter.ts +38 -2
- package/src/tool/mcp.ts +27 -8
- package/src/transcription/openai-transcription-model.ts +43 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
+
## 4.0.110
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- c6efa4b: Refactor Azure model ID logic into a model catalog that declares capabilities and provider options, and generate provider capability documentation from it. Export the OpenAI catalog internally for Azure to reuse. Request behavior is unchanged.
|
|
8
|
+
- f6dbf04: fix(openai): surface Chat Completions refusals as text content
|
|
9
|
+
|
|
10
|
+
The Chat Completions model ignored `message.refusal` (non-streaming) and `delta.refusal` (streaming). When the model refused to answer, `content` was `null`, so the AI SDK returned empty text with a `stop` finish reason and silently dropped the refusal. Refusal text is now emitted as text content in both `generateText` and `streamText` results, and it is emitted in addition to content when the API returns both. A refusal with a `stop` finish reason is now reported as a `content-filter` finish reason, matching the Anthropic provider and the Responses API.
|
|
11
|
+
|
|
12
|
+
- 646a7e3: fix(openai,openai-compatible): surface refusal logprobs and openai-compatible refusals
|
|
13
|
+
|
|
14
|
+
`@ai-sdk/openai`: Chat Completions responses that contain a refusal can return `logprobs.refusal` next to `logprobs.content`. The provider previously read only `logprobs.content`, so `providerMetadata.openai.logprobs` was empty or missing for refusals. Refusal logprobs are now included in emission order (content logprobs followed by refusal logprobs) in both `generateText` and `streamText`.
|
|
15
|
+
|
|
16
|
+
Streaming logprobs are now collected across all chunks in `streamText`: previously only the logprobs of the last streamed chunk were reported. This applies to content logprobs as well, so `providerMetadata.openai.logprobs` now contains the logprobs of every streamed token instead of only the last chunk's tokens. Explicitly empty logprobs (`logprobs: { content: [], refusal: null }`) are reported as an empty array, as before.
|
|
17
|
+
|
|
18
|
+
A refusal that arrives in the same streamed chunk as the `finish_reason` is now taken into account: such a response is reported with a `content-filter` finish reason instead of `stop`.
|
|
19
|
+
|
|
20
|
+
`@ai-sdk/openai-compatible`: Chat Completions responses that carry `message.refusal` (non-streaming) or `delta.refusal` (streaming) were ignored, so providers such as OpenAI served through `createOpenAICompatible` lost the refusal text and reported an empty `stop` response. Refusals are now returned as text content after any content text, and a non-empty refusal with a `stop` finish reason is reported as a `content-filter` finish reason. This also applies when the refusal and the finish reason arrive in the same streamed chunk. Non-string refusals (for example `refusal: false` from servers that use booleans) are ignored instead of failing the response.
|
|
21
|
+
|
|
22
|
+
- 6b97088: fix(openai): handle refusal content parts in the Responses API
|
|
23
|
+
|
|
24
|
+
The Responses API returns a `refusal` content part instead of `output_text` when the model declines a request. The response schema rejected these parts, so non-streaming calls failed with an `APICallError` ("Invalid JSON response"), and streamed `response.refusal.delta` / `response.refusal.done` events were dropped, producing empty text. Refusal content parts and stream events are now parsed: the refusal explanation is surfaced as text and the finish reason is mapped to `content-filter`. When the response also contains a client-side function call, the finish reason stays `tool-calls` so the tools are still executed.
|
|
25
|
+
|
|
26
|
+
## 4.0.109
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- 27528db: Expose `customTool` through `azure.tools` for Azure Responses models, sharing the OpenAI custom tool factory and its raw string input support.
|
|
31
|
+
- 7bb309d: add memoryLimit and networkPolicy properties in codeInterpreter tool
|
|
32
|
+
- 7a90522: Add Secure MCP tunnel support to the OpenAI MCP tool via `tunnelId`. Tunnel targets cannot be combined with `serverUrl` or `connectorId`; existing URL and connector configurations remain compatible.
|
|
33
|
+
- 6549344: feat(openai): support GPT Image 2.6 models with `complexity`, markup-guided edits (`markup`), animated GIF output (`outputFormat: 'gif'`, `frameCount`, `frameDurationMs`), and `safetyIdentifier` for image models
|
|
34
|
+
- 5f9bb8e: feat (provider/openai): forward the `moderation` option to `/images/edits`
|
|
35
|
+
- 934100c: Report the actual OpenAI Chat HTTP endpoint (also used by Azure Chat and Bedrock Mantle Chat) through optional request metadata and model-call end events. Record its host and port on OpenTelemetry chat spans without exposing URL credentials, paths, queries, or fragments. Expose only the sanitized HTTP origin in text and object generation results and step/finish callbacks. Providers that do not report an endpoint leave these attributes unset.
|
|
36
|
+
- 892af4d: feat (provider/openai): implement server-side realtime extensions
|
|
37
|
+
|
|
38
|
+
`OpenAIRealtimeModel` now implements `getServerWebSocketConfig()`, returning the upstream realtime WebSocket URL for `conversation` and `transcription` intents plus header auth derived from the model's configured credentials. Dedicated transcription sessions serialize with `session.type: "transcription"` and the selected realtime model id. Translation is rejected until the normalized realtime codec supports its distinct wire protocol. The event mapper now populates normalized `usage` on `response-done` and `input-transcription-completed` (gross input/output token counts with cached portions reported separately; duration usage for duration-billed transcription).
|
|
39
|
+
|
|
40
|
+
Transcription serialization honors the explicit transcription model and rejects unsupported output settings. Gross token totals and reported modality/cache counts are retained; duration uses `seconds`. OpenAI Live retains its existing connection API and rejects unsupported intents.
|
|
41
|
+
|
|
42
|
+
- 243bf22: Forward per-message `providerOptions.openai.name` on Chat Completions system, developer, user, and assistant messages. Validate names as strings and warn when configured on unsupported tool messages.
|
|
43
|
+
- 5cc6d28: Expose `azure.tools.shell` for local and hosted shell execution through the Azure Responses API.
|
|
44
|
+
- 41465fd: Expose optional transcription word timings separately from segments and accept shared timestampGranularities. Explicit provider timing settings take precedence. OpenAI now sends timestamp_granularities only with verbose_json and warns when a requested timing is unavailable or excluded.
|
|
45
|
+
- Updated dependencies [36802d4]
|
|
46
|
+
- Updated dependencies [e0143b0]
|
|
47
|
+
- Updated dependencies [934100c]
|
|
48
|
+
- Updated dependencies [892af4d]
|
|
49
|
+
- Updated dependencies [89aff56]
|
|
50
|
+
- Updated dependencies [41465fd]
|
|
51
|
+
- Updated dependencies [9754014]
|
|
52
|
+
- Updated dependencies [4bb73b0]
|
|
53
|
+
- Updated dependencies [2e44144]
|
|
54
|
+
- @ai-sdk/provider@4.0.36
|
|
55
|
+
- @ai-sdk/provider-utils@5.0.75
|
|
56
|
+
|
|
3
57
|
## 4.0.108
|
|
4
58
|
|
|
5
59
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FetchFunction, InferSchema, Resolvable, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, WebSocketConstructor } from "@ai-sdk/provider-utils";
|
|
2
|
-
import { EmbeddingModelV4, Experimental_BatchV4, Experimental_DecisionModelV4, Experimental_RealtimeFactoryV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_SpeechTranslationModelV4, Experimental_SpeechTranslationModelV4StreamOptions, FilesV4, ImageModelV4, JSONObject, JSONValue, LanguageModelV4, ProviderV4, SkillsV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
|
|
2
|
+
import { EmbeddingModelV4, Experimental_BatchV4, Experimental_DecisionModelV4, Experimental_RealtimeFactoryV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerConnection, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_RealtimeModelV4SessionIntent, Experimental_SpeechTranslationModelV4, Experimental_SpeechTranslationModelV4StreamOptions, FilesV4, ImageModelV4, JSONObject, JSONValue, LanguageModelV4, ProviderV4, SkillsV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
//#region src/openai-config.d.ts
|
|
5
5
|
type OpenAIHeaders = Record<string, string | undefined>;
|
|
@@ -70,6 +70,10 @@ declare const openaiLanguageModelChatOptions: import("@ai-sdk/provider-utils").L
|
|
|
70
70
|
forceReasoning?: boolean | undefined;
|
|
71
71
|
}>;
|
|
72
72
|
type OpenAILanguageModelChatOptions = InferSchema<typeof openaiLanguageModelChatOptions>;
|
|
73
|
+
declare const openaiChatMessageProviderOptions: import("@ai-sdk/provider-utils").LazySchema<{
|
|
74
|
+
name?: string | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
type OpenAIChatMessageProviderOptions = InferSchema<typeof openaiChatMessageProviderOptions>;
|
|
73
77
|
//#endregion
|
|
74
78
|
//#region src/completion/openai-completion-language-model-options.d.ts
|
|
75
79
|
type OpenAICompletionModelId = 'gpt-3.5-turbo-instruct' | 'gpt-3.5-turbo-instruct-0914' | (string & {});
|
|
@@ -91,22 +95,28 @@ declare const openaiEmbeddingModelOptions: import("@ai-sdk/provider-utils").Lazy
|
|
|
91
95
|
type OpenAIEmbeddingModelOptions = InferSchema<typeof openaiEmbeddingModelOptions>;
|
|
92
96
|
//#endregion
|
|
93
97
|
//#region src/image/openai-image-model-options.d.ts
|
|
94
|
-
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'gpt-image-2.5-flare' | 'gpt-image-2.5-flare-2026-09-08' | 'gpt-image-2.5-sunburst' | 'gpt-image-2.5-sunburst-2026-09-08' | 'chatgpt-image-latest' | (string & {});
|
|
98
|
+
type OpenAIImageModelId = 'dall-e-3' | 'dall-e-2' | 'gpt-image-1' | 'gpt-image-1-mini' | 'gpt-image-1.5' | 'gpt-image-2' | 'gpt-image-2.6-flare' | 'gpt-image-2.6-sunburst' | 'gpt-image-2.5-flare' | 'gpt-image-2.5-flare-2026-09-08' | 'gpt-image-2.5-sunburst' | 'gpt-image-2.5-sunburst-2026-09-08' | 'chatgpt-image-latest' | (string & {});
|
|
95
99
|
declare const openaiImageModelOptions: import("@ai-sdk/provider-utils").LazySchema<{
|
|
96
100
|
quality?: "low" | "medium" | "high" | "xhigh" | "max" | "standard" | "auto" | "hd" | undefined;
|
|
97
101
|
background?: "auto" | "transparent" | "opaque" | undefined;
|
|
98
102
|
outputFormat?: "png" | "jpeg" | "webp" | undefined;
|
|
103
|
+
complexity?: "low" | "medium" | "high" | undefined;
|
|
99
104
|
outputCompression?: number | undefined;
|
|
100
105
|
user?: string | undefined;
|
|
106
|
+
safetyIdentifier?: string | undefined;
|
|
101
107
|
}>;
|
|
102
108
|
type OpenAIImageModelOptions = InferSchema<typeof openaiImageModelOptions>;
|
|
103
109
|
declare const openaiImageModelGenerationOptions: import("@ai-sdk/provider-utils").LazySchema<{
|
|
104
110
|
quality?: "low" | "medium" | "high" | "xhigh" | "max" | "standard" | "auto" | "hd" | undefined;
|
|
105
111
|
background?: "auto" | "transparent" | "opaque" | undefined;
|
|
106
|
-
|
|
112
|
+
complexity?: "low" | "medium" | "high" | undefined;
|
|
107
113
|
outputCompression?: number | undefined;
|
|
108
114
|
user?: string | undefined;
|
|
115
|
+
safetyIdentifier?: string | undefined;
|
|
109
116
|
style?: "vivid" | "natural" | undefined;
|
|
117
|
+
outputFormat?: "png" | "jpeg" | "webp" | "gif" | undefined;
|
|
118
|
+
frameCount?: number | undefined;
|
|
119
|
+
frameDurationMs?: number | undefined;
|
|
110
120
|
moderation?: "low" | "auto" | undefined;
|
|
111
121
|
}>;
|
|
112
122
|
type OpenAIImageModelGenerationOptions = InferSchema<typeof openaiImageModelGenerationOptions>;
|
|
@@ -114,9 +124,13 @@ declare const openaiImageModelEditOptions: import("@ai-sdk/provider-utils").Lazy
|
|
|
114
124
|
quality?: "low" | "medium" | "high" | "xhigh" | "max" | "standard" | "auto" | "hd" | undefined;
|
|
115
125
|
background?: "auto" | "transparent" | "opaque" | undefined;
|
|
116
126
|
outputFormat?: "png" | "jpeg" | "webp" | undefined;
|
|
127
|
+
complexity?: "low" | "medium" | "high" | undefined;
|
|
117
128
|
outputCompression?: number | undefined;
|
|
118
129
|
user?: string | undefined;
|
|
130
|
+
safetyIdentifier?: string | undefined;
|
|
119
131
|
inputFidelity?: "low" | "high" | undefined;
|
|
132
|
+
markup?: string | undefined;
|
|
133
|
+
moderation?: "low" | "auto" | undefined;
|
|
120
134
|
}>;
|
|
121
135
|
type OpenAIImageModelEditOptions = InferSchema<typeof openaiImageModelEditOptions>;
|
|
122
136
|
//#endregion
|
|
@@ -283,6 +297,18 @@ declare const openaiResponsesChunkSchema: import("@ai-sdk/provider-utils").LazyS
|
|
|
283
297
|
logprob: number;
|
|
284
298
|
}[];
|
|
285
299
|
}[] | null | undefined;
|
|
300
|
+
} | {
|
|
301
|
+
type: "response.refusal.delta";
|
|
302
|
+
item_id: string;
|
|
303
|
+
delta: string;
|
|
304
|
+
output_index?: number | null | undefined;
|
|
305
|
+
content_index?: number | null | undefined;
|
|
306
|
+
} | {
|
|
307
|
+
type: "response.refusal.done";
|
|
308
|
+
item_id: string;
|
|
309
|
+
refusal: string;
|
|
310
|
+
output_index?: number | null | undefined;
|
|
311
|
+
content_index?: number | null | undefined;
|
|
286
312
|
} | {
|
|
287
313
|
type: "response.completed" | "response.incomplete";
|
|
288
314
|
response: {
|
|
@@ -1160,6 +1186,18 @@ declare const openaiTools: {
|
|
|
1160
1186
|
codeInterpreter: (args?: {
|
|
1161
1187
|
container?: string | {
|
|
1162
1188
|
fileIds?: string[];
|
|
1189
|
+
memoryLimit?: "1g" | "4g" | "16g" | "64g";
|
|
1190
|
+
networkPolicy?: {
|
|
1191
|
+
type: "disabled";
|
|
1192
|
+
} | {
|
|
1193
|
+
type: "allowlist";
|
|
1194
|
+
allowedDomains: string[];
|
|
1195
|
+
domainSecrets?: Array<{
|
|
1196
|
+
domain: string;
|
|
1197
|
+
name: string;
|
|
1198
|
+
value: string;
|
|
1199
|
+
}>;
|
|
1200
|
+
};
|
|
1163
1201
|
};
|
|
1164
1202
|
}) => import("@ai-sdk/provider-utils").ProviderExecutedTool<{
|
|
1165
1203
|
code?: string | null;
|
|
@@ -1429,16 +1467,17 @@ declare const openaiTools: {
|
|
|
1429
1467
|
}, {}>;
|
|
1430
1468
|
/**
|
|
1431
1469
|
* MCP (Model Context Protocol) allows models to call tools exposed by
|
|
1432
|
-
* remote MCP servers or
|
|
1470
|
+
* remote MCP servers, service connectors, or Secure MCP tunnels.
|
|
1433
1471
|
*
|
|
1434
1472
|
* @param serverLabel - Label to identify the MCP server.
|
|
1435
1473
|
* @param allowedTools - Allowed tool names or filter object.
|
|
1436
|
-
* @param authorization - OAuth access token for the MCP server
|
|
1474
|
+
* @param authorization - OAuth access token for the MCP server or connector (including tunneled servers).
|
|
1437
1475
|
* @param connectorId - Identifier for a service connector.
|
|
1438
1476
|
* @param headers - Optional headers to include in MCP requests.
|
|
1439
|
-
*
|
|
1477
|
+
* @param requireApproval - Approval policy ('always'|'never'|filter object).
|
|
1440
1478
|
* @param serverDescription - Optional description of the server.
|
|
1441
1479
|
* @param serverUrl - URL for the MCP server.
|
|
1480
|
+
* @param tunnelId - Identifier for an OpenAI Secure MCP tunnel.
|
|
1442
1481
|
*/
|
|
1443
1482
|
mcp: (args: {
|
|
1444
1483
|
serverLabel: string;
|
|
@@ -1447,7 +1486,6 @@ declare const openaiTools: {
|
|
|
1447
1486
|
toolNames?: string[];
|
|
1448
1487
|
};
|
|
1449
1488
|
authorization?: string;
|
|
1450
|
-
connectorId?: string;
|
|
1451
1489
|
headers?: Record<string, string>;
|
|
1452
1490
|
requireApproval?: "always" | "never" | {
|
|
1453
1491
|
never?: {
|
|
@@ -1455,8 +1493,15 @@ declare const openaiTools: {
|
|
|
1455
1493
|
};
|
|
1456
1494
|
};
|
|
1457
1495
|
serverDescription?: string;
|
|
1496
|
+
} & ({
|
|
1458
1497
|
serverUrl?: string;
|
|
1459
|
-
|
|
1498
|
+
connectorId?: string;
|
|
1499
|
+
tunnelId?: never;
|
|
1500
|
+
} | {
|
|
1501
|
+
tunnelId: string;
|
|
1502
|
+
serverUrl?: never;
|
|
1503
|
+
connectorId?: never;
|
|
1504
|
+
})) => import("@ai-sdk/provider-utils").ProviderExecutedTool<{}, {
|
|
1460
1505
|
type: "call";
|
|
1461
1506
|
serverLabel: string;
|
|
1462
1507
|
name: string;
|
|
@@ -1554,6 +1599,11 @@ type OpenAIRealtimeModelConfig = {
|
|
|
1554
1599
|
};
|
|
1555
1600
|
declare class OpenAIRealtimeModel implements Experimental_RealtimeModelV4 {
|
|
1556
1601
|
readonly specificationVersion: "v4";
|
|
1602
|
+
readonly capabilities: {
|
|
1603
|
+
readonly conversation: "turn-based";
|
|
1604
|
+
readonly transports: readonly ["websocket"];
|
|
1605
|
+
readonly connections: readonly ["client-secret-websocket", "server-websocket"];
|
|
1606
|
+
};
|
|
1557
1607
|
readonly provider: string;
|
|
1558
1608
|
readonly modelId: string;
|
|
1559
1609
|
private readonly config;
|
|
@@ -1566,9 +1616,16 @@ declare class OpenAIRealtimeModel implements Experimental_RealtimeModelV4 {
|
|
|
1566
1616
|
url: string;
|
|
1567
1617
|
protocols?: string[];
|
|
1568
1618
|
};
|
|
1619
|
+
getServerWebSocketConfig(options?: {
|
|
1620
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1621
|
+
}): Experimental_RealtimeModelV4ServerConnection | PromiseLike<Experimental_RealtimeModelV4ServerConnection>;
|
|
1569
1622
|
parseServerEvent(raw: unknown): Experimental_RealtimeModelV4ServerEvent;
|
|
1570
|
-
serializeClientEvent(event: Experimental_RealtimeModelV4ClientEvent
|
|
1571
|
-
|
|
1623
|
+
serializeClientEvent(event: Experimental_RealtimeModelV4ClientEvent, options?: {
|
|
1624
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1625
|
+
}): unknown;
|
|
1626
|
+
buildSessionConfig(config: Experimental_RealtimeModelV4SessionConfig, options?: {
|
|
1627
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1628
|
+
}): Record<string, unknown>;
|
|
1572
1629
|
}
|
|
1573
1630
|
//#endregion
|
|
1574
1631
|
//#region src/live/openai-realtime-model-live.d.ts
|
|
@@ -1589,7 +1646,9 @@ declare class OpenAIRealtimeModelLive implements Experimental_RealtimeModelV4 {
|
|
|
1589
1646
|
getWebRTCConfig(): {
|
|
1590
1647
|
dataChannelLabel: string;
|
|
1591
1648
|
};
|
|
1592
|
-
getServerWebSocketConfig(
|
|
1649
|
+
getServerWebSocketConfig(options?: {
|
|
1650
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1651
|
+
}): {
|
|
1593
1652
|
url: string;
|
|
1594
1653
|
headers: Record<string, string>;
|
|
1595
1654
|
} | Promise<{
|
|
@@ -1606,8 +1665,13 @@ declare class OpenAIRealtimeModelLive implements Experimental_RealtimeModelV4 {
|
|
|
1606
1665
|
}>;
|
|
1607
1666
|
parseServerEvent(raw: unknown): import("@ai-sdk/provider").Experimental_RealtimeModelV4ServerEvent[];
|
|
1608
1667
|
createServerEventParser(): (raw: unknown) => import("@ai-sdk/provider").Experimental_RealtimeModelV4ServerEvent[];
|
|
1609
|
-
|
|
1610
|
-
|
|
1668
|
+
private assertConversationIntent;
|
|
1669
|
+
serializeClientEvent(event: Experimental_RealtimeModelV4ClientEvent, options?: {
|
|
1670
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1671
|
+
}): unknown;
|
|
1672
|
+
buildSessionConfig(config: Experimental_RealtimeModelV4SessionConfig, options?: {
|
|
1673
|
+
intent?: Experimental_RealtimeModelV4SessionIntent;
|
|
1674
|
+
}): Record<string, unknown>;
|
|
1611
1675
|
}
|
|
1612
1676
|
//#endregion
|
|
1613
1677
|
//#region src/openai-model-catalog.d.ts
|
|
@@ -1633,7 +1697,7 @@ declare const realtimeModelEntries: {
|
|
|
1633
1697
|
readonly realtime: {
|
|
1634
1698
|
readonly conversation: "turn-based";
|
|
1635
1699
|
readonly transports: readonly ["websocket"];
|
|
1636
|
-
readonly connections: readonly ["client-secret-websocket"];
|
|
1700
|
+
readonly connections: readonly ["client-secret-websocket", "server-websocket"];
|
|
1637
1701
|
};
|
|
1638
1702
|
};
|
|
1639
1703
|
readonly requestConfig: {
|
|
@@ -2032,5 +2096,5 @@ declare const openaiDecisionModelOptions: import("@ai-sdk/provider-utils").LazyS
|
|
|
2032
2096
|
}>;
|
|
2033
2097
|
type OpenAIDecisionModelOptions = InferSchema<typeof openaiDecisionModelOptions>;
|
|
2034
2098
|
//#endregion
|
|
2035
|
-
export { type OpenAIRealtimeFactory as Experimental_OpenAIRealtimeFactory, OpenAIRealtimeModel as Experimental_OpenAIRealtimeModel, type OpenAIRealtimeModelConfig as Experimental_OpenAIRealtimeModelConfig, OpenAIRealtimeModelLive as Experimental_OpenAIRealtimeModelLive, type OpenAIRealtimeModelLiveConfig as Experimental_OpenAIRealtimeModelLiveConfig, type OpenAIRealtimeModelLiveId as Experimental_OpenAIRealtimeModelLiveId, type OpenAIRealtimeModelLiveOptions as Experimental_OpenAIRealtimeModelLiveOptions, type OpenAIRealtimeOptions as Experimental_OpenAIRealtimeOptions, OpenAISpeechTranslationModel as Experimental_OpenAISpeechTranslationModel, OpenAISpeechTranslationModel as Experimental_OpenAITranslationModel, type OpenAISpeechTranslationModelId as Experimental_OpenAISpeechTranslationModelId, type OpenAISpeechTranslationModelId as Experimental_OpenAITranslationModelId, type OpenAISpeechTranslationModelOptions as Experimental_OpenAISpeechTranslationModelOptions, type OpenAISpeechTranslationModelOptions as Experimental_OpenAITranslationModelOptions, type OpenAILanguageModelChatOptions as OpenAIChatLanguageModelOptions, type OpenAILanguageModelChatOptions, type OpenAIComputerAction, type OpenAIComputerSafetyCheck, type OpenAIDecisionModelId, type OpenAIDecisionModelOptions, type OpenAIEmbeddingModelOptions, type OpenAIFilesOptions, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelOptions, type OpenAILanguageModelCompletionOptions, type OpenAILanguageModelResponsesOptions, type OpenAILanguageModelResponsesOptions as OpenAIResponsesProviderOptions, type OpenAIProvider, type OpenAIProviderSettings, type OpenAIResponsesSystemMessageOptions, type OpenAIResponsesToolResultOptions, type OpenAISpeechModelOptions, type OpenAIToolOptions, type OpenAITranscriptionModelOptions, type OpenaiResponsesCompactionProviderMetadata, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type OpenaiResponsesToolCallProviderMetadata };
|
|
2099
|
+
export { type OpenAIRealtimeFactory as Experimental_OpenAIRealtimeFactory, OpenAIRealtimeModel as Experimental_OpenAIRealtimeModel, type OpenAIRealtimeModelConfig as Experimental_OpenAIRealtimeModelConfig, OpenAIRealtimeModelLive as Experimental_OpenAIRealtimeModelLive, type OpenAIRealtimeModelLiveConfig as Experimental_OpenAIRealtimeModelLiveConfig, type OpenAIRealtimeModelLiveId as Experimental_OpenAIRealtimeModelLiveId, type OpenAIRealtimeModelLiveOptions as Experimental_OpenAIRealtimeModelLiveOptions, type OpenAIRealtimeOptions as Experimental_OpenAIRealtimeOptions, OpenAISpeechTranslationModel as Experimental_OpenAISpeechTranslationModel, OpenAISpeechTranslationModel as Experimental_OpenAITranslationModel, type OpenAISpeechTranslationModelId as Experimental_OpenAISpeechTranslationModelId, type OpenAISpeechTranslationModelId as Experimental_OpenAITranslationModelId, type OpenAISpeechTranslationModelOptions as Experimental_OpenAISpeechTranslationModelOptions, type OpenAISpeechTranslationModelOptions as Experimental_OpenAITranslationModelOptions, type OpenAILanguageModelChatOptions as OpenAIChatLanguageModelOptions, type OpenAILanguageModelChatOptions, type OpenAIChatMessageProviderOptions, type OpenAIComputerAction, type OpenAIComputerSafetyCheck, type OpenAIDecisionModelId, type OpenAIDecisionModelOptions, type OpenAIEmbeddingModelOptions, type OpenAIFilesOptions, type OpenAIImageModelEditOptions, type OpenAIImageModelGenerationOptions, type OpenAIImageModelOptions, type OpenAILanguageModelCompletionOptions, type OpenAILanguageModelResponsesOptions, type OpenAILanguageModelResponsesOptions as OpenAIResponsesProviderOptions, type OpenAIProvider, type OpenAIProviderSettings, type OpenAIResponsesSystemMessageOptions, type OpenAIResponsesToolResultOptions, type OpenAISpeechModelOptions, type OpenAIToolOptions, type OpenAITranscriptionModelOptions, type OpenaiResponsesCompactionProviderMetadata, type OpenaiResponsesProviderMetadata, type OpenaiResponsesReasoningProviderMetadata, type OpenaiResponsesSourceDocumentProviderMetadata, type OpenaiResponsesTextProviderMetadata, type OpenaiResponsesToolCallProviderMetadata };
|
|
2036
2100
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["_$__tool_apply_patch0.ApplyPatchOperation","_$__tool_custom0.customToolFactory","_$_0.OpenAIComputerAction","_$_0.OpenAIComputerSafetyCheck","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolComparisonFilter","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolCompoundFilter","_$__tool_web_search0.webSearchToolFactory","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","RealtimeModelV4SessionConfig","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4","RealtimeFactoryV4","DecisionModelV4","SpeechTranslationModelV4","BatchV4","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/openai-config.ts","../src/openai-decision-model.ts","../src/chat/openai-chat-language-model-options.ts","../src/completion/openai-completion-language-model-options.ts","../src/embedding/openai-embedding-model-options.ts","../src/image/openai-image-model-options.ts","../src/tool/apply-patch.ts","../src/tool/custom.ts","../src/responses/openai-responses-language-model-options.ts","../src/responses/openai-responses-api.ts","../src/tool/web-search.ts","../src/openai-tools.ts","../src/live/openai-realtime-model-live-options.ts","../src/realtime/openai-realtime-model.ts","../src/live/openai-realtime-model-live.ts","../src/openai-model-catalog.ts","../src/realtime/openai-realtime-factory.ts","../src/speech/openai-speech-model-options.ts","../src/transcription/openai-transcription-model-options.ts","../src/speech-translation/openai-speech-translation-model-options.ts","../src/openai-provider.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech-translation/openai-speech-translation-model.ts","../src/files/openai-files-options.ts","../src/tool/computer.ts","../src/responses/openai-responses-provider-metadata.ts","../src/version.ts","../src/openai-decision-model-options.ts"],"mappings":";;;;KAMK,gBAAgB;KAMT;EACV;;EAEA;EACA;EACA,MAAM;IAAW;IAAiB;;EAClC,UAAU,WAAW;EACrB,QAAQ;EACR,YAAY;EACZ;;;;;;;EAOA;;;;;;;EAOA;;;;;;;;;EASA;;;;KCZU;;;KCxBA;cAuEC,iEAA8B;;;;;;;;;;;;;;;;;;;;;;;KAwJ/B,iCAAiC,mBACpC;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["_$__tool_apply_patch0.ApplyPatchOperation","_$__tool_custom0.customToolFactory","_$_0.OpenAIComputerAction","_$_0.OpenAIComputerSafetyCheck","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolComparisonFilter","_$__responses_openai_responses_api0.OpenAIResponsesFileSearchToolCompoundFilter","_$__tool_web_search0.webSearchToolFactory","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4SessionIntent","RealtimeModelV4ServerConnection","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4SessionConfig","RealtimeModelV4","RealtimeModelV4SessionIntent","RealtimeModelV4SessionConfig","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4","RealtimeFactoryV4","DecisionModelV4","SpeechTranslationModelV4","BatchV4","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/openai-config.ts","../src/openai-decision-model.ts","../src/chat/openai-chat-language-model-options.ts","../src/completion/openai-completion-language-model-options.ts","../src/embedding/openai-embedding-model-options.ts","../src/image/openai-image-model-options.ts","../src/tool/apply-patch.ts","../src/tool/custom.ts","../src/responses/openai-responses-language-model-options.ts","../src/responses/openai-responses-api.ts","../src/tool/web-search.ts","../src/openai-tools.ts","../src/live/openai-realtime-model-live-options.ts","../src/realtime/openai-realtime-model.ts","../src/live/openai-realtime-model-live.ts","../src/openai-model-catalog.ts","../src/realtime/openai-realtime-factory.ts","../src/speech/openai-speech-model-options.ts","../src/transcription/openai-transcription-model-options.ts","../src/speech-translation/openai-speech-translation-model-options.ts","../src/openai-provider.ts","../src/responses/openai-responses-prepare-tools.ts","../src/speech-translation/openai-speech-translation-model.ts","../src/files/openai-files-options.ts","../src/tool/computer.ts","../src/responses/openai-responses-provider-metadata.ts","../src/version.ts","../src/openai-decision-model-options.ts"],"mappings":"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"}
|