openai 7.16.0 → 7.17.0
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 +28 -0
- package/_vendor/zod-to-json-schema/Options.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/Options.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/Options.js +2 -0
- package/_vendor/zod-to-json-schema/Options.js.map +1 -1
- package/_vendor/zod-to-json-schema/Options.mjs +2 -0
- package/_vendor/zod-to-json-schema/Options.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.js +1 -0
- package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.mjs +1 -0
- package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/bigint.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/bigint.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/bigint.js +2 -0
- package/_vendor/zod-to-json-schema/parsers/bigint.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/bigint.mjs +2 -0
- package/_vendor/zod-to-json-schema/parsers/bigint.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/literal.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/literal.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/literal.js +1 -0
- package/_vendor/zod-to-json-schema/parsers/literal.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/literal.mjs +1 -0
- package/_vendor/zod-to-json-schema/parsers/literal.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/null.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/null.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/null.js +1 -0
- package/_vendor/zod-to-json-schema/parsers/null.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/null.mjs +1 -0
- package/_vendor/zod-to-json-schema/parsers/null.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.js +4 -0
- package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.mjs +4 -0
- package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/number.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/number.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/number.js +2 -0
- package/_vendor/zod-to-json-schema/parsers/number.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/number.mjs +2 -0
- package/_vendor/zod-to-json-schema/parsers/number.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.js +6 -7
- package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.mjs +6 -7
- package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/record.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/record.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/record.js +2 -0
- package/_vendor/zod-to-json-schema/parsers/record.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/record.mjs +2 -0
- package/_vendor/zod-to-json-schema/parsers/record.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.js +1 -0
- package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -0
- package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/union.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/union.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/union.js +3 -0
- package/_vendor/zod-to-json-schema/parsers/union.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/union.mjs +3 -0
- package/_vendor/zod-to-json-schema/parsers/union.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/util.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/util.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/util.js +1 -0
- package/_vendor/zod-to-json-schema/util.js.map +1 -1
- package/_vendor/zod-to-json-schema/util.mjs +1 -0
- package/_vendor/zod-to-json-schema/util.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/zodToJsonSchema.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/zodToJsonSchema.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/zodToJsonSchema.js +2 -0
- package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
- package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +2 -0
- package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs.map +1 -1
- package/auth/subject-token-providers.d.mts.map +1 -1
- package/auth/subject-token-providers.d.ts.map +1 -1
- package/auth/subject-token-providers.js +6 -1
- package/auth/subject-token-providers.js.map +1 -1
- package/auth/subject-token-providers.mjs +6 -1
- package/auth/subject-token-providers.mjs.map +1 -1
- package/auth/workload-identity-auth.d.mts.map +1 -1
- package/auth/workload-identity-auth.d.ts.map +1 -1
- package/auth/workload-identity-auth.js +9 -0
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +9 -0
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/auth/x509-transport.d.mts.map +1 -1
- package/auth/x509-transport.d.ts.map +1 -1
- package/auth/x509-transport.js +11 -0
- package/auth/x509-transport.js.map +1 -1
- package/auth/x509-transport.mjs +11 -0
- package/auth/x509-transport.mjs.map +1 -1
- package/azure.d.mts.map +1 -1
- package/azure.d.ts.map +1 -1
- package/azure.js +3 -0
- package/azure.js.map +1 -1
- package/azure.mjs +3 -0
- package/azure.mjs.map +1 -1
- package/bedrock.d.mts.map +1 -1
- package/bedrock.d.ts.map +1 -1
- package/bedrock.js +5 -0
- package/bedrock.js.map +1 -1
- package/bedrock.mjs +5 -0
- package/bedrock.mjs.map +1 -1
- package/beta/realtime/internal-base.d.mts.map +1 -1
- package/beta/realtime/internal-base.d.ts.map +1 -1
- package/beta/realtime/internal-base.js +1 -0
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +1 -0
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +9 -1
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +9 -1
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +3 -0
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +3 -0
- package/beta/realtime/ws.mjs.map +1 -1
- package/client.d.mts +1 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts +1 -0
- package/client.d.ts.map +1 -1
- package/client.js +27 -6
- package/client.js.map +1 -1
- package/client.mjs +27 -6
- package/client.mjs.map +1 -1
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +15 -0
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +15 -0
- package/core/EventEmitter.mjs.map +1 -1
- package/core/streaming.d.mts +1 -0
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts +1 -0
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +28 -1
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +28 -1
- package/core/streaming.mjs.map +1 -1
- package/helpers/audio.d.mts.map +1 -1
- package/helpers/audio.d.ts.map +1 -1
- package/helpers/audio.js +2 -0
- package/helpers/audio.js.map +1 -1
- package/helpers/audio.mjs +2 -0
- package/helpers/audio.mjs.map +1 -1
- package/helpers/standard-schema.d.mts.map +1 -1
- package/helpers/standard-schema.d.ts.map +1 -1
- package/helpers/standard-schema.js +28 -18
- package/helpers/standard-schema.js.map +1 -1
- package/helpers/standard-schema.mjs +28 -18
- package/helpers/standard-schema.mjs.map +1 -1
- package/helpers/zod-v3-strict-schema.d.mts.map +1 -1
- package/helpers/zod-v3-strict-schema.d.ts.map +1 -1
- package/helpers/zod-v3-strict-schema.js +5 -0
- package/helpers/zod-v3-strict-schema.js.map +1 -1
- package/helpers/zod-v3-strict-schema.mjs +5 -0
- package/helpers/zod-v3-strict-schema.mjs.map +1 -1
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +16 -1
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +17 -2
- package/helpers/zod.mjs.map +1 -1
- package/internal/assistant-stream-delta.d.mts.map +1 -1
- package/internal/assistant-stream-delta.d.ts.map +1 -1
- package/internal/assistant-stream-delta.js +8 -1
- package/internal/assistant-stream-delta.js.map +1 -1
- package/internal/assistant-stream-delta.mjs +8 -1
- package/internal/assistant-stream-delta.mjs.map +1 -1
- package/internal/auth/x509-credential-options.d.mts.map +1 -1
- package/internal/auth/x509-credential-options.d.ts.map +1 -1
- package/internal/auth/x509-credential-options.js +3 -0
- package/internal/auth/x509-credential-options.js.map +1 -1
- package/internal/auth/x509-credential-options.mjs +3 -0
- package/internal/auth/x509-credential-options.mjs.map +1 -1
- package/internal/auth/x509-token-exchange.d.mts.map +1 -1
- package/internal/auth/x509-token-exchange.d.ts.map +1 -1
- package/internal/auth/x509-token-exchange.js +2 -0
- package/internal/auth/x509-token-exchange.js.map +1 -1
- package/internal/auth/x509-token-exchange.mjs +2 -0
- package/internal/auth/x509-token-exchange.mjs.map +1 -1
- package/internal/auth/x509-transport-capability.d.mts.map +1 -1
- package/internal/auth/x509-transport-capability.d.ts.map +1 -1
- package/internal/auth/x509-transport-capability.js +1 -0
- package/internal/auth/x509-transport-capability.js.map +1 -1
- package/internal/auth/x509-transport-capability.mjs +1 -0
- package/internal/auth/x509-transport-capability.mjs.map +1 -1
- package/internal/auth/x509-transport-state.mjs +1 -0
- package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -1
- package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -1
- package/internal/auth/x509-workload-identity-auth.js +11 -0
- package/internal/auth/x509-workload-identity-auth.js.map +1 -1
- package/internal/auth/x509-workload-identity-auth.mjs +11 -0
- package/internal/auth/x509-workload-identity-auth.mjs.map +1 -1
- package/internal/bedrock.d.mts.map +1 -1
- package/internal/bedrock.d.ts.map +1 -1
- package/internal/bedrock.js +17 -1
- package/internal/bedrock.js.map +1 -1
- package/internal/bedrock.mjs +17 -1
- package/internal/bedrock.mjs.map +1 -1
- package/internal/decoders/line.d.mts.map +1 -1
- package/internal/decoders/line.d.ts.map +1 -1
- package/internal/decoders/line.js +1 -0
- package/internal/decoders/line.js.map +1 -1
- package/internal/decoders/line.mjs +1 -0
- package/internal/decoders/line.mjs.map +1 -1
- package/internal/parse.d.mts +1 -0
- package/internal/parse.d.mts.map +1 -1
- package/internal/parse.d.ts +1 -0
- package/internal/parse.d.ts.map +1 -1
- package/internal/parse.js.map +1 -1
- package/internal/parse.mjs.map +1 -1
- package/internal/provider.d.mts.map +1 -1
- package/internal/provider.d.ts.map +1 -1
- package/internal/provider.js +3 -0
- package/internal/provider.js.map +1 -1
- package/internal/provider.mjs +3 -0
- package/internal/provider.mjs.map +1 -1
- package/internal/qs/stringify.d.mts.map +1 -1
- package/internal/qs/stringify.d.ts.map +1 -1
- package/internal/qs/stringify.js +3 -0
- package/internal/qs/stringify.js.map +1 -1
- package/internal/qs/stringify.mjs +3 -0
- package/internal/qs/stringify.mjs.map +1 -1
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.js +15 -3
- package/internal/qs/utils.js.map +1 -1
- package/internal/qs/utils.mjs +15 -3
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/responses/response-accumulator.d.mts.map +1 -1
- package/internal/responses/response-accumulator.d.ts.map +1 -1
- package/internal/responses/response-accumulator.js +20 -4
- package/internal/responses/response-accumulator.js.map +1 -1
- package/internal/responses/response-accumulator.mjs +20 -4
- package/internal/responses/response-accumulator.mjs.map +1 -1
- package/internal/to-file.js.map +1 -1
- package/internal/to-file.mjs.map +1 -1
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.js +10 -0
- package/internal/uploads.js.map +1 -1
- package/internal/uploads.mjs +10 -0
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/abort.d.mts.map +1 -1
- package/internal/utils/abort.d.ts.map +1 -1
- package/internal/utils/abort.js +9 -2
- package/internal/utils/abort.js.map +1 -1
- package/internal/utils/abort.mjs +9 -2
- package/internal/utils/abort.mjs.map +1 -1
- package/internal/utils/bytes.d.mts.map +1 -1
- package/internal/utils/bytes.d.ts.map +1 -1
- package/internal/utils/bytes.js +2 -0
- package/internal/utils/bytes.js.map +1 -1
- package/internal/utils/bytes.mjs +2 -0
- package/internal/utils/bytes.mjs.map +1 -1
- package/internal/utils/path.d.mts.map +1 -1
- package/internal/utils/path.d.ts.map +1 -1
- package/internal/utils/path.js +2 -0
- package/internal/utils/path.js.map +1 -1
- package/internal/utils/path.mjs +2 -0
- package/internal/utils/path.mjs.map +1 -1
- package/internal/utils/sleep.d.mts +1 -1
- package/internal/utils/sleep.d.mts.map +1 -1
- package/internal/utils/sleep.d.ts +1 -1
- package/internal/utils/sleep.d.ts.map +1 -1
- package/internal/utils/sleep.js +51 -1
- package/internal/utils/sleep.js.map +1 -1
- package/internal/utils/sleep.mjs +51 -1
- package/internal/utils/sleep.mjs.map +1 -1
- package/internal/ws-adapter-browser.d.mts.map +1 -1
- package/internal/ws-adapter-browser.d.ts.map +1 -1
- package/internal/ws-adapter-browser.js +2 -0
- package/internal/ws-adapter-browser.js.map +1 -1
- package/internal/ws-adapter-browser.mjs +2 -0
- package/internal/ws-adapter-browser.mjs.map +1 -1
- package/internal/ws.d.mts +9 -0
- package/internal/ws.d.mts.map +1 -1
- package/internal/ws.d.ts +9 -0
- package/internal/ws.d.ts.map +1 -1
- package/internal/ws.js +36 -4
- package/internal/ws.js.map +1 -1
- package/internal/ws.mjs +35 -4
- package/internal/ws.mjs.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
- package/lib/AbstractChatCompletionRunner.js +41 -16
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +42 -17
- package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
- package/lib/AssistantStream.d.mts.map +1 -1
- package/lib/AssistantStream.d.ts.map +1 -1
- package/lib/AssistantStream.js +19 -5
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +20 -6
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionRunner.d.mts.map +1 -1
- package/lib/ChatCompletionRunner.d.ts.map +1 -1
- package/lib/ChatCompletionRunner.js +1 -0
- package/lib/ChatCompletionRunner.js.map +1 -1
- package/lib/ChatCompletionRunner.mjs +1 -0
- package/lib/ChatCompletionRunner.mjs.map +1 -1
- package/lib/ChatCompletionStream.d.mts +6 -1
- package/lib/ChatCompletionStream.d.mts.map +1 -1
- package/lib/ChatCompletionStream.d.ts +6 -1
- package/lib/ChatCompletionStream.d.ts.map +1 -1
- package/lib/ChatCompletionStream.js +63 -7
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +64 -8
- package/lib/ChatCompletionStream.mjs.map +1 -1
- package/lib/EventEmitter.d.mts.map +1 -1
- package/lib/EventEmitter.d.ts.map +1 -1
- package/lib/EventEmitter.js +15 -0
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +15 -0
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +2 -0
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +2 -0
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +111 -14
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +111 -14
- package/lib/EventStream.mjs.map +1 -1
- package/lib/ResponsesParser.d.mts.map +1 -1
- package/lib/ResponsesParser.d.ts.map +1 -1
- package/lib/ResponsesParser.js +4 -0
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +4 -0
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/RunnableFunction.d.mts.map +1 -1
- package/lib/RunnableFunction.d.ts.map +1 -1
- package/lib/RunnableFunction.js.map +1 -1
- package/lib/RunnableFunction.mjs.map +1 -1
- package/lib/agents/agent-session-stream.d.mts.map +1 -1
- package/lib/agents/agent-session-stream.d.ts.map +1 -1
- package/lib/agents/agent-session-stream.js +5 -2
- package/lib/agents/agent-session-stream.js.map +1 -1
- package/lib/agents/agent-session-stream.mjs +5 -2
- package/lib/agents/agent-session-stream.mjs.map +1 -1
- package/lib/embeddings.d.mts.map +1 -1
- package/lib/embeddings.d.ts.map +1 -1
- package/lib/embeddings.js +2 -0
- package/lib/embeddings.js.map +1 -1
- package/lib/embeddings.mjs +2 -0
- package/lib/embeddings.mjs.map +1 -1
- package/lib/live/transcript-grouper.d.mts.map +1 -1
- package/lib/live/transcript-grouper.d.ts.map +1 -1
- package/lib/live/transcript-grouper.js +8 -2
- package/lib/live/transcript-grouper.js.map +1 -1
- package/lib/live/transcript-grouper.mjs +8 -2
- package/lib/live/transcript-grouper.mjs.map +1 -1
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.js +13 -0
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +13 -0
- package/lib/parser.mjs.map +1 -1
- package/lib/responses/ResponseInputItems.d.mts.map +1 -1
- package/lib/responses/ResponseInputItems.d.ts.map +1 -1
- package/lib/responses/ResponseInputItems.js +11 -0
- package/lib/responses/ResponseInputItems.js.map +1 -1
- package/lib/responses/ResponseInputItems.mjs +11 -0
- package/lib/responses/ResponseInputItems.mjs.map +1 -1
- package/lib/responses/ResponseStream.d.mts.map +1 -1
- package/lib/responses/ResponseStream.d.ts.map +1 -1
- package/lib/responses/ResponseStream.js +7 -3
- package/lib/responses/ResponseStream.js.map +1 -1
- package/lib/responses/ResponseStream.mjs +8 -4
- package/lib/responses/ResponseStream.mjs.map +1 -1
- package/lib/transform.d.mts.map +1 -1
- package/lib/transform.d.ts.map +1 -1
- package/lib/transform.js +69 -33
- package/lib/transform.js.map +1 -1
- package/lib/transform.mjs +69 -33
- package/lib/transform.mjs.map +1 -1
- package/lib/webrtc/connection.d.mts.map +1 -1
- package/lib/webrtc/connection.d.ts.map +1 -1
- package/lib/webrtc/connection.js +6 -1
- package/lib/webrtc/connection.js.map +1 -1
- package/lib/webrtc/connection.mjs +6 -1
- package/lib/webrtc/connection.mjs.map +1 -1
- package/lib/webrtc/data-channel.d.mts.map +1 -1
- package/lib/webrtc/data-channel.d.ts.map +1 -1
- package/lib/webrtc/data-channel.js +9 -1
- package/lib/webrtc/data-channel.js.map +1 -1
- package/lib/webrtc/data-channel.mjs +9 -1
- package/lib/webrtc/data-channel.mjs.map +1 -1
- package/lib/webrtc/subscriptions.d.mts.map +1 -1
- package/lib/webrtc/subscriptions.d.ts.map +1 -1
- package/lib/webrtc/subscriptions.js +2 -0
- package/lib/webrtc/subscriptions.js.map +1 -1
- package/lib/webrtc/subscriptions.mjs +2 -0
- package/lib/webrtc/subscriptions.mjs.map +1 -1
- package/lib/webrtc/types.d.mts.map +1 -1
- package/lib/webrtc/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/providers/bedrock/aws.d.mts.map +1 -1
- package/providers/bedrock/aws.d.ts.map +1 -1
- package/providers/bedrock/aws.js +4 -0
- package/providers/bedrock/aws.js.map +1 -1
- package/providers/bedrock/aws.mjs +4 -0
- package/providers/bedrock/aws.mjs.map +1 -1
- package/realtime/internal-base.d.mts.map +1 -1
- package/realtime/internal-base.d.ts.map +1 -1
- package/realtime/internal-base.js +1 -0
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +1 -0
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +9 -1
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +9 -1
- package/realtime/websocket.mjs.map +1 -1
- package/realtime/ws.d.mts.map +1 -1
- package/realtime/ws.d.ts.map +1 -1
- package/realtime/ws.js +3 -0
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +3 -0
- package/realtime/ws.mjs.map +1 -1
- package/resources/beta/agents/agents.d.mts +2 -1
- package/resources/beta/agents/agents.d.mts.map +1 -1
- package/resources/beta/agents/agents.d.ts +2 -1
- package/resources/beta/agents/agents.d.ts.map +1 -1
- package/resources/beta/agents/agents.js.map +1 -1
- package/resources/beta/agents/agents.mjs.map +1 -1
- package/resources/beta/beta.d.mts +2 -2
- package/resources/beta/beta.d.mts.map +1 -1
- package/resources/beta/beta.d.ts +2 -2
- package/resources/beta/beta.d.ts.map +1 -1
- package/resources/beta/beta.js.map +1 -1
- package/resources/beta/beta.mjs.map +1 -1
- package/resources/beta/index.d.mts +1 -1
- package/resources/beta/index.d.mts.map +1 -1
- package/resources/beta/index.d.ts +1 -1
- package/resources/beta/index.d.ts.map +1 -1
- package/resources/beta/index.js.map +1 -1
- package/resources/beta/index.mjs.map +1 -1
- package/resources/beta/responses/index.d.mts +1 -1
- package/resources/beta/responses/index.d.mts.map +1 -1
- package/resources/beta/responses/index.d.ts +1 -1
- package/resources/beta/responses/index.d.ts.map +1 -1
- package/resources/beta/responses/index.js.map +1 -1
- package/resources/beta/responses/index.mjs.map +1 -1
- package/resources/beta/responses/internal-base.d.mts +3 -0
- package/resources/beta/responses/internal-base.d.mts.map +1 -1
- package/resources/beta/responses/internal-base.d.ts +3 -0
- package/resources/beta/responses/internal-base.d.ts.map +1 -1
- package/resources/beta/responses/internal-base.js +21 -12
- package/resources/beta/responses/internal-base.js.map +1 -1
- package/resources/beta/responses/internal-base.mjs +21 -12
- package/resources/beta/responses/internal-base.mjs.map +1 -1
- package/resources/beta/responses/responses.d.mts +51 -3
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +51 -3
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/beta/responses/ws-base.d.mts +5 -1
- package/resources/beta/responses/ws-base.d.mts.map +1 -1
- package/resources/beta/responses/ws-base.d.ts +5 -1
- package/resources/beta/responses/ws-base.d.ts.map +1 -1
- package/resources/beta/responses/ws-base.js +2 -4
- package/resources/beta/responses/ws-base.js.map +1 -1
- package/resources/beta/responses/ws-base.mjs +2 -4
- package/resources/beta/responses/ws-base.mjs.map +1 -1
- package/resources/beta/responses/ws.d.mts +2 -0
- package/resources/beta/responses/ws.d.mts.map +1 -1
- package/resources/beta/responses/ws.d.ts +2 -0
- package/resources/beta/responses/ws.d.ts.map +1 -1
- package/resources/beta/responses/ws.js +12 -3
- package/resources/beta/responses/ws.js.map +1 -1
- package/resources/beta/responses/ws.mjs +12 -3
- package/resources/beta/responses/ws.mjs.map +1 -1
- package/resources/live/forks/internal-base.d.mts +3 -0
- package/resources/live/forks/internal-base.d.mts.map +1 -1
- package/resources/live/forks/internal-base.d.ts +3 -0
- package/resources/live/forks/internal-base.d.ts.map +1 -1
- package/resources/live/forks/internal-base.js +21 -5
- package/resources/live/forks/internal-base.js.map +1 -1
- package/resources/live/forks/internal-base.mjs +21 -5
- package/resources/live/forks/internal-base.mjs.map +1 -1
- package/resources/live/internal-base.d.mts +3 -0
- package/resources/live/internal-base.d.mts.map +1 -1
- package/resources/live/internal-base.d.ts +3 -0
- package/resources/live/internal-base.d.ts.map +1 -1
- package/resources/live/internal-base.js +21 -5
- package/resources/live/internal-base.js.map +1 -1
- package/resources/live/internal-base.mjs +21 -5
- package/resources/live/internal-base.mjs.map +1 -1
- package/resources/live/sideband/internal-base.d.mts +3 -0
- package/resources/live/sideband/internal-base.d.mts.map +1 -1
- package/resources/live/sideband/internal-base.d.ts +3 -0
- package/resources/live/sideband/internal-base.d.ts.map +1 -1
- package/resources/live/sideband/internal-base.js +21 -5
- package/resources/live/sideband/internal-base.js.map +1 -1
- package/resources/live/sideband/internal-base.mjs +21 -5
- package/resources/live/sideband/internal-base.mjs.map +1 -1
- package/resources/responses/internal-base.d.mts +3 -0
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts +3 -0
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +21 -12
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +21 -12
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +36 -3
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +36 -3
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/responses/ws-base.d.mts +5 -1
- package/resources/responses/ws-base.d.mts.map +1 -1
- package/resources/responses/ws-base.d.ts +5 -1
- package/resources/responses/ws-base.d.ts.map +1 -1
- package/resources/responses/ws-base.js +2 -4
- package/resources/responses/ws-base.js.map +1 -1
- package/resources/responses/ws-base.mjs +2 -4
- package/resources/responses/ws-base.mjs.map +1 -1
- package/resources/responses/ws.d.mts +2 -0
- package/resources/responses/ws.d.mts.map +1 -1
- package/resources/responses/ws.d.ts +2 -0
- package/resources/responses/ws.d.ts.map +1 -1
- package/resources/responses/ws.js +12 -3
- package/resources/responses/ws.js.map +1 -1
- package/resources/responses/ws.mjs +12 -3
- package/resources/responses/ws.mjs.map +1 -1
- package/src/_vendor/zod-to-json-schema/Options.ts +2 -0
- package/src/_vendor/zod-to-json-schema/parseDef.ts +1 -0
- package/src/_vendor/zod-to-json-schema/parsers/bigint.ts +2 -0
- package/src/_vendor/zod-to-json-schema/parsers/literal.ts +1 -0
- package/src/_vendor/zod-to-json-schema/parsers/null.ts +1 -0
- package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +4 -0
- package/src/_vendor/zod-to-json-schema/parsers/number.ts +2 -0
- package/src/_vendor/zod-to-json-schema/parsers/optional.ts +6 -7
- package/src/_vendor/zod-to-json-schema/parsers/record.ts +2 -0
- package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -0
- package/src/_vendor/zod-to-json-schema/parsers/union.ts +3 -0
- package/src/_vendor/zod-to-json-schema/util.ts +1 -0
- package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +3 -1
- package/src/auth/subject-token-providers.ts +6 -1
- package/src/auth/workload-identity-auth.ts +10 -1
- package/src/auth/x509-transport.ts +13 -2
- package/src/azure.ts +3 -0
- package/src/bedrock.ts +5 -0
- package/src/beta/realtime/internal-base.ts +2 -0
- package/src/beta/realtime/websocket.ts +11 -1
- package/src/beta/realtime/ws.ts +3 -0
- package/src/client.ts +35 -3
- package/src/core/EventEmitter.ts +15 -0
- package/src/core/streaming.ts +30 -2
- package/src/helpers/audio.ts +2 -0
- package/src/helpers/standard-schema.ts +31 -19
- package/src/helpers/zod-v3-strict-schema.ts +8 -2
- package/src/helpers/zod.ts +32 -13
- package/src/internal/assistant-stream-delta.ts +7 -1
- package/src/internal/auth/x509-credential-options.ts +3 -0
- package/src/internal/auth/x509-token-exchange.ts +10 -1
- package/src/internal/auth/x509-transport-capability.ts +2 -1
- package/src/internal/auth/x509-workload-identity-auth.ts +13 -8
- package/src/internal/bedrock.ts +15 -0
- package/src/internal/decoders/line.ts +1 -0
- package/src/internal/parse.ts +1 -0
- package/src/internal/provider.ts +3 -0
- package/src/internal/qs/stringify.ts +3 -0
- package/src/internal/qs/utils.ts +14 -3
- package/src/internal/responses/response-accumulator.ts +34 -4
- package/src/internal/to-file.ts +1 -1
- package/src/internal/uploads.ts +11 -1
- package/src/internal/utils/abort.ts +7 -2
- package/src/internal/utils/bytes.ts +2 -0
- package/src/internal/utils/path.ts +2 -0
- package/src/internal/utils/sleep.ts +52 -1
- package/src/internal/ws-adapter-browser.ts +2 -0
- package/src/internal/ws.ts +44 -4
- package/src/lib/AbstractChatCompletionRunner.ts +40 -17
- package/src/lib/AssistantStream.ts +31 -20
- package/src/lib/ChatCompletionRunner.ts +1 -0
- package/src/lib/ChatCompletionStream.ts +81 -14
- package/src/lib/EventEmitter.ts +15 -0
- package/src/lib/EventStream.ts +93 -3
- package/src/lib/ResponsesParser.ts +5 -0
- package/src/lib/RunnableFunction.ts +4 -1
- package/src/lib/agents/agent-session-stream.ts +5 -3
- package/src/lib/embeddings.ts +3 -1
- package/src/lib/live/transcript-grouper.ts +4 -0
- package/src/lib/parser.ts +16 -2
- package/src/lib/responses/ResponseInputItems.ts +11 -0
- package/src/lib/responses/ResponseStream.ts +6 -3
- package/src/lib/transform.ts +70 -35
- package/src/lib/webrtc/connection.ts +5 -1
- package/src/lib/webrtc/data-channel.ts +7 -0
- package/src/lib/webrtc/subscriptions.ts +3 -0
- package/src/lib/webrtc/types.ts +1 -0
- package/src/providers/bedrock/aws.ts +5 -1
- package/src/realtime/internal-base.ts +2 -0
- package/src/realtime/websocket.ts +11 -1
- package/src/realtime/ws.ts +3 -0
- package/src/resources/beta/agents/agents.ts +2 -0
- package/src/resources/beta/beta.ts +2 -0
- package/src/resources/beta/index.ts +1 -0
- package/src/resources/beta/responses/index.ts +1 -0
- package/src/resources/beta/responses/internal-base.ts +24 -11
- package/src/resources/beta/responses/responses.ts +58 -0
- package/src/resources/beta/responses/ws-base.ts +7 -5
- package/src/resources/beta/responses/ws.ts +21 -6
- package/src/resources/live/forks/internal-base.ts +24 -5
- package/src/resources/live/internal-base.ts +24 -5
- package/src/resources/live/sideband/internal-base.ts +24 -5
- package/src/resources/responses/api.md +1 -0
- package/src/resources/responses/internal-base.ts +24 -11
- package/src/resources/responses/responses.ts +41 -0
- package/src/resources/responses/ws-base.ts +7 -5
- package/src/resources/responses/ws.ts +21 -6
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_audioDoneChoiceIndexes, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_hasAutoParseableTool, _ChatCompletionStream_partialJSONParseBudget, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_validateStructuredSnapshots, _ChatCompletionStream_endRequest, _ChatCompletionStream_accumulateChatCompletion;
|
|
1
|
+
var _ChatCompletionStream_instances, _ChatCompletionStream_params, _ChatCompletionStream_rejectsUnfinishedTurns, _ChatCompletionStream_audioDoneChoiceIndexes, _ChatCompletionStream_choiceEventStates, _ChatCompletionStream_currentChatCompletionSnapshot, _ChatCompletionStream_hasAutoParseableTool, _ChatCompletionStream_partialJSONParseBudget, _ChatCompletionStream_beginRequest, _ChatCompletionStream_getChoiceEventState, _ChatCompletionStream_addChunk, _ChatCompletionStream_emitToolCallDoneEvent, _ChatCompletionStream_emitContentDoneEvents, _ChatCompletionStream_validateStructuredSnapshots, _ChatCompletionStream_endRequest, _ChatCompletionStream_accumulateChatCompletion;
|
|
2
2
|
import { __classPrivateFieldGet, __classPrivateFieldSet } from "../internal/tslib.mjs";
|
|
3
3
|
import { MalformedJSON, partialParse } from "../_vendor/partial-json-parser/parser.mjs";
|
|
4
|
-
import { APIError,
|
|
4
|
+
import { APIError, ContentFilterFinishReasonError, LengthFinishReasonError, OpenAIError } from "../error.mjs";
|
|
5
5
|
import { observeJSONRequestBody } from "../internal/request-options.mjs";
|
|
6
6
|
import { uuid4 } from "../internal/utils/uuid.mjs";
|
|
7
7
|
import { hasOwn } from "../internal/utils/values.mjs";
|
|
8
8
|
import { hasAutoParseableInput, isAutoParsableTool, isChatCompletionFunctionTool, isParseableResponseFormat, maybeParseChatCompletion, parseResponseFormatContent, shouldParseToolCall, } from "../lib/parser.mjs";
|
|
9
9
|
import { Stream } from "../streaming.mjs";
|
|
10
10
|
import { AbstractChatCompletionRunner } from "./AbstractChatCompletionRunner.mjs";
|
|
11
|
+
// oxlint-disable-next-line anti-slop/no-unknown-returns -- Partial JSON may have any shape; callers validate or parse it against their response schema.
|
|
11
12
|
function parseStructuredStreamingJSON(content) {
|
|
12
13
|
try {
|
|
13
14
|
return partialParse(content);
|
|
@@ -27,6 +28,7 @@ export function makeChatCompletionReadableStreamMessageChunk(chunk, message, too
|
|
|
27
28
|
const payload = {
|
|
28
29
|
type: 'message',
|
|
29
30
|
message,
|
|
31
|
+
// Spread creates an own data property without invoking inherited setters or changing the object prototype.
|
|
30
32
|
...(toolCallIds ? { tool_call_ids: toolCallIds } : {}),
|
|
31
33
|
};
|
|
32
34
|
return {
|
|
@@ -47,6 +49,7 @@ function getChatCompletionReadableStreamMessage(item) {
|
|
|
47
49
|
if ('type' in item) {
|
|
48
50
|
return item;
|
|
49
51
|
}
|
|
52
|
+
// SAFETY: This decoder reads the SDK's tagged readable-stream envelope; JSON parsing restores its serialized message fields for the stream accumulator.
|
|
50
53
|
return JSON.parse(item.object.slice(CHAT_COMPLETION_READABLE_STREAM_MESSAGE_PREFIX.length));
|
|
51
54
|
}
|
|
52
55
|
// The Chat Completions schema limits n to 128. Replayed streams do not retain
|
|
@@ -174,11 +177,13 @@ function reservePartialJSONParse(state, budget) {
|
|
|
174
177
|
function captureStructuredJSONSnapshot(snapshot, property) {
|
|
175
178
|
const descriptor = Object.getOwnPropertyDescriptor(snapshot, property);
|
|
176
179
|
if (!descriptor) {
|
|
180
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
177
181
|
let prototype = Object.getPrototypeOf(snapshot);
|
|
178
182
|
for (let depth = 0; prototype !== null; depth += 1) {
|
|
179
183
|
if (depth >= MAX_PARTIAL_JSON_DEPTH || Object.getOwnPropertyDescriptor(prototype, property)) {
|
|
180
184
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
181
185
|
}
|
|
186
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
182
187
|
prototype = Object.getPrototypeOf(prototype);
|
|
183
188
|
}
|
|
184
189
|
return undefined;
|
|
@@ -187,6 +192,7 @@ function captureStructuredJSONSnapshot(snapshot, property) {
|
|
|
187
192
|
(typeof descriptor.value !== 'string' && descriptor.value !== null && descriptor.value !== undefined)) {
|
|
188
193
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
189
194
|
}
|
|
195
|
+
// SAFETY: The own data descriptor was explicitly checked to contain only a string, null, or undefined.
|
|
190
196
|
return descriptor.value;
|
|
191
197
|
}
|
|
192
198
|
function captureStructuredMessageSnapshot(choice) {
|
|
@@ -197,16 +203,19 @@ function captureStructuredMessageSnapshot(choice) {
|
|
|
197
203
|
descriptor.value === null) {
|
|
198
204
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
199
205
|
}
|
|
206
|
+
// SAFETY: The choice contract supplies a message; the own data descriptor check prevents getters from changing which object is captured.
|
|
200
207
|
return descriptor.value;
|
|
201
208
|
}
|
|
202
209
|
function captureSnapshotArray(snapshot, property, maximum, kind) {
|
|
203
210
|
const descriptor = Object.getOwnPropertyDescriptor(snapshot, property);
|
|
204
211
|
if (!descriptor) {
|
|
212
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
205
213
|
let prototype = Object.getPrototypeOf(snapshot);
|
|
206
214
|
for (let depth = 0; prototype !== null; depth += 1) {
|
|
207
215
|
if (depth >= MAX_PARTIAL_JSON_DEPTH || Object.getOwnPropertyDescriptor(prototype, property)) {
|
|
208
216
|
throw new OpenAIError(`Chat completion stream contains an unsafe snapshot ${kind} collection`);
|
|
209
217
|
}
|
|
218
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
210
219
|
prototype = Object.getPrototypeOf(prototype);
|
|
211
220
|
}
|
|
212
221
|
return undefined;
|
|
@@ -218,6 +227,7 @@ function captureSnapshotArray(snapshot, property, maximum, kind) {
|
|
|
218
227
|
if (!length || !('value' in length) || !Number.isSafeInteger(length.value) || length.value > maximum) {
|
|
219
228
|
throw new OpenAIError(`Chat completion stream exceeded its snapshot ${kind} limit`);
|
|
220
229
|
}
|
|
230
|
+
// SAFETY: The captured data property is an array with a checked bounded length; Item comes from the owning snapshot collection's contract.
|
|
221
231
|
return descriptor.value;
|
|
222
232
|
}
|
|
223
233
|
function captureSnapshotArrayItem(array, index) {
|
|
@@ -228,6 +238,7 @@ function captureSnapshotArrayItem(array, index) {
|
|
|
228
238
|
if (!('value' in descriptor)) {
|
|
229
239
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
230
240
|
}
|
|
241
|
+
// SAFETY: The descriptor is a data property of the typed Item array, so its value retains that array's element contract.
|
|
231
242
|
return descriptor.value;
|
|
232
243
|
}
|
|
233
244
|
function mapCapturedSnapshotArray(array, maximum, kind, map) {
|
|
@@ -246,6 +257,7 @@ function mapCapturedSnapshotArray(array, maximum, kind, map) {
|
|
|
246
257
|
if (!('value' in item)) {
|
|
247
258
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
248
259
|
}
|
|
260
|
+
// SAFETY: The descriptor is a data property of the typed Item array, so its value retains that array's element contract.
|
|
249
261
|
mapped[index] = map(item.value, index);
|
|
250
262
|
}
|
|
251
263
|
return mapped;
|
|
@@ -280,6 +292,7 @@ function assertBoundToolCallIdentity(toolCall, identity) {
|
|
|
280
292
|
throw new OpenAIError('Chat completion stream contains a changed tool call identity');
|
|
281
293
|
}
|
|
282
294
|
}
|
|
295
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- This assignment primitive copies own properties from heterogeneous snapshot and delta objects.
|
|
283
296
|
function assignOwnProperties(target, source) {
|
|
284
297
|
if (Object.prototype.propertyIsEnumerable.call(source, '__proto__') && !hasOwn(target, '__proto__')) {
|
|
285
298
|
Object.defineProperty(target, '__proto__', {
|
|
@@ -299,12 +312,14 @@ function cloneParserConfigObject(value, stableFields = []) {
|
|
|
299
312
|
continue;
|
|
300
313
|
}
|
|
301
314
|
descriptors[field] = {
|
|
315
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Generic config cloning must resolve inherited/accessor keys outside the declared config shape.
|
|
302
316
|
value: descriptor && 'value' in descriptor ? descriptor.value : Reflect.get(value, field, value),
|
|
303
317
|
enumerable: descriptor?.enumerable ?? false,
|
|
304
318
|
configurable: descriptor?.configurable ?? true,
|
|
305
319
|
writable: descriptor && 'writable' in descriptor ? descriptor.writable : false,
|
|
306
320
|
};
|
|
307
321
|
}
|
|
322
|
+
// SAFETY: The clone preserves the original prototype and descriptors, replacing only the parser metadata captured from that same value.
|
|
308
323
|
return Object.create(Object.getPrototypeOf(value), descriptors);
|
|
309
324
|
}
|
|
310
325
|
function snapshotChatCompletionParserParams(params) {
|
|
@@ -322,6 +337,7 @@ function snapshotChatCompletionParserParams(params) {
|
|
|
322
337
|
stableTools.length = index + 1;
|
|
323
338
|
continue;
|
|
324
339
|
}
|
|
340
|
+
// SAFETY: This own data descriptor comes from the request's typed tools array; the following code captures its parser metadata.
|
|
325
341
|
const tool = item.value;
|
|
326
342
|
const stableTool = cloneParserConfigObject(tool, [
|
|
327
343
|
'type',
|
|
@@ -340,6 +356,7 @@ function snapshotChatCompletionParserParams(params) {
|
|
|
340
356
|
value: cloneParserConfigObject(stableTool.function, ['name', 'strict']),
|
|
341
357
|
};
|
|
342
358
|
}
|
|
359
|
+
// SAFETY: The cloned tool retains the original prototype and descriptors while substituting its captured parser configuration.
|
|
343
360
|
stableTools[index] = Object.create(Object.getPrototypeOf(tool), descriptors);
|
|
344
361
|
}
|
|
345
362
|
snapshot.tools = stableTools;
|
|
@@ -370,6 +387,7 @@ function canonicalSerializedParserSchema(value, budget) {
|
|
|
370
387
|
budget.bytes += bytes;
|
|
371
388
|
return true;
|
|
372
389
|
};
|
|
390
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
373
391
|
const visit = (current, depth) => {
|
|
374
392
|
if (depth > MAX_SERIALIZED_PARSER_SCHEMA_DEPTH || budget.nodes >= MAX_SERIALIZED_PARSER_SCHEMA_NODES) {
|
|
375
393
|
return UNSAFE_SERIALIZED_PARSER_VALUE;
|
|
@@ -397,6 +415,7 @@ function canonicalSerializedParserSchema(value, budget) {
|
|
|
397
415
|
return UNSAFE_SERIALIZED_PARSER_VALUE;
|
|
398
416
|
}
|
|
399
417
|
const array = Array.isArray(current);
|
|
418
|
+
// SAFETY: Object.getPrototypeOf returns an object or null; the following traversal checks inherited properties without assuming a specific prototype type.
|
|
400
419
|
const prototype = Object.getPrototypeOf(current);
|
|
401
420
|
if ((array && prototype !== Array.prototype) ||
|
|
402
421
|
(!array && prototype !== null && prototype !== Object.prototype)) {
|
|
@@ -508,7 +527,11 @@ function canonicalSerializedParserSchema(value, budget) {
|
|
|
508
527
|
return undefined;
|
|
509
528
|
}
|
|
510
529
|
}
|
|
511
|
-
function rememberSerializedParserSchema(signatures,
|
|
530
|
+
function rememberSerializedParserSchema(signatures,
|
|
531
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- Parser owners are tracked by identity before their metadata descriptors are validated.
|
|
532
|
+
source,
|
|
533
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- Serialized schema holders may be arbitrary objects with hostile accessors or prototypes.
|
|
534
|
+
holder, key) {
|
|
512
535
|
const parser = Object.getOwnPropertyDescriptor(source, '$parseRaw');
|
|
513
536
|
const schema = Object.getOwnPropertyDescriptor(holder, key);
|
|
514
537
|
if (!parser ||
|
|
@@ -523,7 +546,11 @@ function rememberSerializedParserSchema(signatures, source, holder, key) {
|
|
|
523
546
|
signatures.set(source, normalized);
|
|
524
547
|
}
|
|
525
548
|
}
|
|
526
|
-
function hasMatchingSerializedParserSchema(signatures,
|
|
549
|
+
function hasMatchingSerializedParserSchema(signatures,
|
|
550
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- Parser signatures belong to the original object identity, independent of its fields.
|
|
551
|
+
source,
|
|
552
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- The schema holder is inspected through own descriptors before its contents are trusted.
|
|
553
|
+
holder, key, value) {
|
|
527
554
|
const expected = source && signatures.get(source);
|
|
528
555
|
const descriptor = Object.getOwnPropertyDescriptor(holder, key);
|
|
529
556
|
return (expected !== undefined &&
|
|
@@ -554,6 +581,7 @@ function shadowSerializedParserMetadata(descriptors, source, fields) {
|
|
|
554
581
|
}
|
|
555
582
|
}
|
|
556
583
|
function snapshotSerializedParserTool(serialized) {
|
|
584
|
+
// SAFETY: The fallback is a serialization scaffold: the code below installs the captured wire fields before the tool is returned.
|
|
557
585
|
const source = serialized.source ??
|
|
558
586
|
{
|
|
559
587
|
type: serialized.type,
|
|
@@ -566,9 +594,11 @@ function snapshotSerializedParserTool(serialized) {
|
|
|
566
594
|
descriptors.function = serializedParserDescriptor(descriptors.function, undefined);
|
|
567
595
|
}
|
|
568
596
|
shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw', '$callback']);
|
|
597
|
+
// SAFETY: The descriptors reconstruct the tool's captured serialized fields and shadow parser metadata while retaining its original prototype.
|
|
569
598
|
return Object.create(Object.getPrototypeOf(source), descriptors);
|
|
570
599
|
}
|
|
571
600
|
const descriptor = descriptors.function;
|
|
601
|
+
// SAFETY: The preceding guard proves this data descriptor contains a non-null object; no more specific type is assumed.
|
|
572
602
|
const original = descriptor && 'value' in descriptor && typeof descriptor.value === 'object' && descriptor.value !== null
|
|
573
603
|
? descriptor.value
|
|
574
604
|
: {};
|
|
@@ -579,17 +609,21 @@ function snapshotSerializedParserTool(serialized) {
|
|
|
579
609
|
if (!serialized.function.schemaMatches) {
|
|
580
610
|
shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw', '$callback']);
|
|
581
611
|
}
|
|
612
|
+
// SAFETY: The descriptors reconstruct the tool's captured serialized fields and shadow parser metadata while retaining its original prototype.
|
|
582
613
|
return Object.create(Object.getPrototypeOf(source), descriptors);
|
|
583
614
|
}
|
|
584
615
|
function snapshotSerializedResponseFormat(serialized) {
|
|
616
|
+
// SAFETY: The fallback seeds only the discriminator; the captured response-format fields are installed below before returning it.
|
|
585
617
|
const source = serialized.source ?? { type: serialized.type };
|
|
586
618
|
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
587
619
|
descriptors.type = serializedParserDescriptor(descriptors.type, serialized.type);
|
|
588
620
|
if (serialized.type !== 'json_schema' || !serialized.source || !serialized.schemaMatches) {
|
|
589
621
|
shadowSerializedParserMetadata(descriptors, source, ['$brand', '$parseRaw']);
|
|
590
622
|
}
|
|
623
|
+
// SAFETY: The descriptors restore the captured response-format fields and parser metadata on the original prototype.
|
|
591
624
|
return Object.create(Object.getPrototypeOf(source), descriptors);
|
|
592
625
|
}
|
|
626
|
+
// oxlint-disable-next-line anti-slop/no-object-parameters -- The serialization visitor accepts arbitrary object and array holders, inspecting own descriptors only.
|
|
593
627
|
function ownSerializedParserObject(holder, key) {
|
|
594
628
|
const descriptor = Object.getOwnPropertyDescriptor(holder, key);
|
|
595
629
|
if (!descriptor || !('value' in descriptor)) {
|
|
@@ -655,6 +689,8 @@ function observeSerializedChatCompletionParserParams(body, initial, update) {
|
|
|
655
689
|
if (Array.isArray(value)) {
|
|
656
690
|
tools = new Proxy(value, {
|
|
657
691
|
get(target, property) {
|
|
692
|
+
// SAFETY: Proxy property values may be arbitrary; unknown preserves that uncertainty before the property-specific checks below.
|
|
693
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys with the original target as accessor receiver.
|
|
658
694
|
const actual = Reflect.get(target, property, target);
|
|
659
695
|
if (typeof property === 'string') {
|
|
660
696
|
const index = Number(property);
|
|
@@ -766,6 +802,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
766
802
|
super();
|
|
767
803
|
_ChatCompletionStream_instances.add(this);
|
|
768
804
|
_ChatCompletionStream_params.set(this, void 0);
|
|
805
|
+
_ChatCompletionStream_rejectsUnfinishedTurns.set(this, false);
|
|
769
806
|
_ChatCompletionStream_audioDoneChoiceIndexes.set(this, void 0);
|
|
770
807
|
_ChatCompletionStream_choiceEventStates.set(this, void 0);
|
|
771
808
|
_ChatCompletionStream_currentChatCompletionSnapshot.set(this, void 0);
|
|
@@ -784,6 +821,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
784
821
|
if (!descriptor || !('value' in descriptor)) {
|
|
785
822
|
continue;
|
|
786
823
|
}
|
|
824
|
+
// SAFETY: The descriptor is read from the typed request tools array and checked as an own data property before accessing the tool.
|
|
787
825
|
const tool = descriptor.value;
|
|
788
826
|
if (isChatCompletionFunctionTool(tool) &&
|
|
789
827
|
(isAutoParsableTool(tool) || tool.function.strict === true)) {
|
|
@@ -812,10 +850,16 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
812
850
|
}
|
|
813
851
|
/** Starts a streaming chat completion request and returns its event-driven helper. */
|
|
814
852
|
static createChatCompletion(client, params, options) {
|
|
853
|
+
// SAFETY: The runner forces stream: true when sending this request; the same parameters retain the caller's parsing configuration.
|
|
815
854
|
const runner = new ChatCompletionStream(params);
|
|
816
855
|
runner._run(() => runner._runChatCompletion(client, { ...params, stream: true }, { ...options, __metadata: { ...options?.__metadata, helperMethod: 'stream' } }));
|
|
817
856
|
return runner;
|
|
818
857
|
}
|
|
858
|
+
/** Rejects unfinished turns before tool callbacks while preserving ordinary stream and replay behavior. */
|
|
859
|
+
_runTools(client, params, runner, options) {
|
|
860
|
+
__classPrivateFieldSet(this, _ChatCompletionStream_rejectsUnfinishedTurns, true, "f");
|
|
861
|
+
return super._runTools(client, params, runner, options);
|
|
862
|
+
}
|
|
819
863
|
async _createChatCompletion(client, params, options) {
|
|
820
864
|
this._listenForAbort(options?.signal);
|
|
821
865
|
const requestParams = { ...params, stream: true };
|
|
@@ -842,7 +886,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
842
886
|
__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_addChunk).call(this, chunk);
|
|
843
887
|
}
|
|
844
888
|
if (stream.controller.signal?.aborted) {
|
|
845
|
-
throw
|
|
889
|
+
throw this._userAbortError();
|
|
846
890
|
}
|
|
847
891
|
return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_endRequest).call(this));
|
|
848
892
|
}
|
|
@@ -883,7 +927,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
883
927
|
}
|
|
884
928
|
}
|
|
885
929
|
if (stream.controller.signal?.aborted) {
|
|
886
|
-
throw
|
|
930
|
+
throw this._userAbortError();
|
|
887
931
|
}
|
|
888
932
|
if (__classPrivateFieldGet(this, _ChatCompletionStream_currentChatCompletionSnapshot, "f")) {
|
|
889
933
|
return this._addChatCompletion(__classPrivateFieldGet(this, _ChatCompletionStream_instances, "m", _ChatCompletionStream_endRequest).call(this));
|
|
@@ -895,7 +939,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
895
939
|
throw new OpenAIError(`request ended without sending any chunks`);
|
|
896
940
|
}
|
|
897
941
|
/** Iterates over raw API chunks; stopping iteration early aborts the underlying request. */
|
|
898
|
-
[(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_audioDoneChoiceIndexes = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_hasAutoParseableTool = new WeakMap(), _ChatCompletionStream_partialJSONParseBudget = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {
|
|
942
|
+
[(_ChatCompletionStream_params = new WeakMap(), _ChatCompletionStream_rejectsUnfinishedTurns = new WeakMap(), _ChatCompletionStream_audioDoneChoiceIndexes = new WeakMap(), _ChatCompletionStream_choiceEventStates = new WeakMap(), _ChatCompletionStream_currentChatCompletionSnapshot = new WeakMap(), _ChatCompletionStream_hasAutoParseableTool = new WeakMap(), _ChatCompletionStream_partialJSONParseBudget = new WeakMap(), _ChatCompletionStream_instances = new WeakSet(), _ChatCompletionStream_beginRequest = function _ChatCompletionStream_beginRequest() {
|
|
899
943
|
if (this.ended) {
|
|
900
944
|
return;
|
|
901
945
|
}
|
|
@@ -1039,7 +1083,9 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
1039
1083
|
throw new Error('tool call snapshot missing `type`');
|
|
1040
1084
|
}
|
|
1041
1085
|
if (toolCallSnapshot.type === 'function') {
|
|
1086
|
+
// SAFETY: The find predicate verifies the function-tool discriminator before matching its name; the cast carries that refinement through find.
|
|
1042
1087
|
const inputTool = __classPrivateFieldGet(this, _ChatCompletionStream_params, "f")?.tools?.find((tool) => isChatCompletionFunctionTool(tool) && tool.function.name === toolCallSnapshot.function.name); // TS doesn't narrow based on isChatCompletionTool
|
|
1088
|
+
// oxlint-disable-next-line anti-slop/no-known-value-widening -- The initial null is replaced with an arbitrary tool-parser result after snapshot validation.
|
|
1043
1089
|
let parsedArguments = null;
|
|
1044
1090
|
const parseable = isAutoParsableTool(inputTool) || inputTool?.function.strict === true;
|
|
1045
1091
|
let argumentsSnapshot;
|
|
@@ -1191,6 +1237,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
1191
1237
|
if (!descriptor || !('value' in descriptor)) {
|
|
1192
1238
|
throw new OpenAIError('Chat completion stream contains an unsafe structured JSON snapshot');
|
|
1193
1239
|
}
|
|
1240
|
+
// SAFETY: The tool-call function is captured through an own data descriptor; its fields are subsequently checked by the structured snapshot reader.
|
|
1194
1241
|
const fn = descriptor.value;
|
|
1195
1242
|
const argumentsSnapshot = captureStructuredJSONSnapshot(fn, 'arguments');
|
|
1196
1243
|
if (typeof argumentsSnapshot !== 'string') {
|
|
@@ -1284,7 +1331,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
1284
1331
|
}
|
|
1285
1332
|
if (finish_reason) {
|
|
1286
1333
|
choice.finish_reason = finish_reason;
|
|
1287
|
-
if (__classPrivateFieldGet(this, _ChatCompletionStream_params, "f") && hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, "f"))) {
|
|
1334
|
+
if (__classPrivateFieldGet(this, _ChatCompletionStream_params, "f") && (__classPrivateFieldGet(this, _ChatCompletionStream_rejectsUnfinishedTurns, "f") || hasAutoParseableInput(__classPrivateFieldGet(this, _ChatCompletionStream_params, "f")))) {
|
|
1288
1335
|
if (finish_reason === 'length') {
|
|
1289
1336
|
throw new LengthFinishReasonError();
|
|
1290
1337
|
}
|
|
@@ -1299,6 +1346,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
1299
1346
|
continue;
|
|
1300
1347
|
} // Shouldn't happen; just in case.
|
|
1301
1348
|
__classPrivateFieldGet(this, _ChatCompletionStream_audioDoneChoiceIndexes, "f").delete(index);
|
|
1349
|
+
// SAFETY: Streaming audio fields arrive incrementally even though the generated delta type omits them; each present field is merged below.
|
|
1302
1350
|
const { audio, content, refusal, function_call, role, ...capturedDeltaFields } = delta;
|
|
1303
1351
|
const { tool_calls: capturedToolCallDelta, ...rest } = capturedDeltaFields;
|
|
1304
1352
|
const tool_calls = hasOwn(capturedDeltaFields, 'tool_calls') ? capturedToolCallDelta : delta.tool_calls;
|
|
@@ -1378,6 +1426,7 @@ export class ChatCompletionStream extends AbstractChatCompletionRunner {
|
|
|
1378
1426
|
// Tool calls are built up across chunks, so while the stream is in progress the
|
|
1379
1427
|
// entries are only partially filled in; they match `ChatCompletionSnapshot.Choice.Message.ToolCall`
|
|
1380
1428
|
// once every delta for them has been accumulated.
|
|
1429
|
+
// SAFETY: This SDK-owned collection holds partial tool calls during accumulation; finalization checks required fields before exposing completed calls.
|
|
1381
1430
|
const toolCallSnapshots = ((_e = choice.message).tool_calls ?? (_e.tool_calls = []));
|
|
1382
1431
|
for (const toolCallDelta of tool_calls) {
|
|
1383
1432
|
const { index, id, type, function: fn, custom, ...rest } = toolCallDelta;
|
|
@@ -1503,6 +1552,7 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1503
1552
|
}
|
|
1504
1553
|
const stableChoice = new Proxy(choice, {
|
|
1505
1554
|
get(target, property, receiver) {
|
|
1555
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.
|
|
1506
1556
|
return property === 'message' ? validated.message : Reflect.get(target, property, receiver);
|
|
1507
1557
|
},
|
|
1508
1558
|
});
|
|
@@ -1518,6 +1568,7 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1518
1568
|
if (property === 'tool_calls') {
|
|
1519
1569
|
return validated.toolCallCollection;
|
|
1520
1570
|
}
|
|
1571
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.
|
|
1521
1572
|
return Reflect.get(target, property, receiver);
|
|
1522
1573
|
},
|
|
1523
1574
|
});
|
|
@@ -1528,7 +1579,9 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1528
1579
|
if (!finishReason) {
|
|
1529
1580
|
throw new OpenAIError(`missing finish_reason for choice ${index}`);
|
|
1530
1581
|
}
|
|
1582
|
+
// SAFETY: The completed API response contract supplies the audio fields; this preserves the existing pass-through behavior at finalization.
|
|
1531
1583
|
const audioResponse = audio ? { audio: audio } : {};
|
|
1584
|
+
// SAFETY: The API completion contract uses assistant role; retaining the wire role preserves existing behavior without adding runtime rejection.
|
|
1532
1585
|
const role = message.role; // this is what we expect; in theory it could be different which would make our types a slight lie but would be fine.
|
|
1533
1586
|
if (!role) {
|
|
1534
1587
|
throw new OpenAIError(`missing role for choice ${index}`);
|
|
@@ -1591,6 +1644,7 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1591
1644
|
if (property === 'name') {
|
|
1592
1645
|
return captured.name;
|
|
1593
1646
|
}
|
|
1647
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.
|
|
1594
1648
|
return Reflect.get(target, property, receiver);
|
|
1595
1649
|
},
|
|
1596
1650
|
});
|
|
@@ -1603,6 +1657,7 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1603
1657
|
if (property === 'function') {
|
|
1604
1658
|
return stableFunction;
|
|
1605
1659
|
}
|
|
1660
|
+
// oxlint-disable-next-line anti-slop/no-reflect-get -- Proxy forwarding must preserve arbitrary keys and the original accessor receiver.
|
|
1606
1661
|
return Reflect.get(target, property, receiver);
|
|
1607
1662
|
},
|
|
1608
1663
|
})
|
|
@@ -1652,6 +1707,7 @@ function finalizeChatCompletion(snapshot, params, audioDoneChoiceIndexes, valida
|
|
|
1652
1707
|
created,
|
|
1653
1708
|
model,
|
|
1654
1709
|
object: 'chat.completion',
|
|
1710
|
+
// Spread creates an own data property without invoking inherited setters or changing the object prototype.
|
|
1655
1711
|
...(system_fingerprint ? { system_fingerprint } : {}),
|
|
1656
1712
|
};
|
|
1657
1713
|
return maybeParseChatCompletion(completion, params);
|