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
|
@@ -96,11 +96,12 @@ function validateStaticCredentials(options: BedrockProviderOptions): AwsCredenti
|
|
|
96
96
|
return {
|
|
97
97
|
accessKeyId: options.accessKeyId,
|
|
98
98
|
secretAccessKey: options.secretAccessKey,
|
|
99
|
+
// Spread creates an own data property without invoking inherited setters or changing the object prototype.
|
|
99
100
|
...(options.sessionToken ? { sessionToken: options.sessionToken } : {}),
|
|
100
101
|
};
|
|
101
102
|
}
|
|
102
103
|
|
|
103
|
-
function requestTarget(parsedURL: URL)
|
|
104
|
+
function requestTarget(parsedURL: URL) {
|
|
104
105
|
const query: Record<string, string | string[]> = Object.create(null);
|
|
105
106
|
for (const [name, value] of parsedURL.searchParams) {
|
|
106
107
|
if (name === '__proto__') {
|
|
@@ -195,6 +196,7 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
|
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
async prepareRequest(request: FinalizedRequestInit, context: ProviderRequestContext): Promise<void> {
|
|
199
|
+
// SAFETY: process is optional outside Node; the native process tag is checked before using Node-specific signing and credential behavior.
|
|
198
200
|
if (Object.prototype.toString.call((globalThis as any).process) !== '[object process]') {
|
|
199
201
|
throw new Errors.OpenAIError(
|
|
200
202
|
'Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.',
|
|
@@ -230,10 +232,12 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
|
|
|
230
232
|
this.signatureV4().sign({
|
|
231
233
|
protocol: parsedURL.protocol,
|
|
232
234
|
hostname: parsedURL.hostname,
|
|
235
|
+
// Spread creates an own data property without invoking inherited setters or changing the object prototype.
|
|
233
236
|
...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
|
|
234
237
|
method,
|
|
235
238
|
...target,
|
|
236
239
|
headers: Object.fromEntries(headers.entries()),
|
|
240
|
+
// Spread creates an own data property without invoking inherited setters or changing the object prototype.
|
|
237
241
|
...(body === undefined ? {} : { body }),
|
|
238
242
|
}),
|
|
239
243
|
failureMessage: this.options.usesDefaultChain
|
|
@@ -13,6 +13,7 @@ import { assertX509WebSocketSupported } from '../internal/auth/x509-workload-ide
|
|
|
13
13
|
/** Parses frame data without exposing malformed payloads through JSON syntax errors. */
|
|
14
14
|
export function parseRealtimeEvent(data: string): RealtimeServerEvent {
|
|
15
15
|
try {
|
|
16
|
+
// SAFETY: RealtimeServerEvent is the API wire contract; JSON syntax is checked here while future event types remain accepted at runtime.
|
|
16
17
|
return JSON.parse(data) as RealtimeServerEvent;
|
|
17
18
|
} catch (error) {
|
|
18
19
|
if (error instanceof SyntaxError) {
|
|
@@ -87,6 +88,7 @@ type RealtimeEvents = Simplify<
|
|
|
87
88
|
type: EventType;
|
|
88
89
|
}
|
|
89
90
|
>,
|
|
91
|
+
// oxlint-disable-next-line anti-slop/no-unknown-returns -- Preserve the published event-callback contract, which accepts and ignores arbitrary return values.
|
|
90
92
|
) => unknown;
|
|
91
93
|
}
|
|
92
94
|
>;
|
|
@@ -43,6 +43,7 @@ function isRunningInBrowserOrBrowserWorker(): boolean {
|
|
|
43
43
|
return true;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// SAFETY: RuntimeScope describes optional host capabilities; the following predicates verify their presence and value before use.
|
|
46
47
|
const scope = globalThis as RuntimeScope;
|
|
47
48
|
return (
|
|
48
49
|
typeof scope.WorkerGlobalScope === 'function' &&
|
|
@@ -61,6 +62,7 @@ function isRunningInBrowserOrBrowserWorker(): boolean {
|
|
|
61
62
|
|
|
62
63
|
/** Reports whether the runtime supports request headers in native WebSocket options. */
|
|
63
64
|
function supportsWebSocketRequestHeaders(): boolean {
|
|
65
|
+
// SAFETY: RuntimeScope describes optional host capabilities; the following predicates verify their presence and value before use.
|
|
64
66
|
const scope = globalThis as RuntimeScope;
|
|
65
67
|
if (
|
|
66
68
|
isRunningInBrowserOrBrowserWorker() ||
|
|
@@ -183,7 +185,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
183
185
|
) {
|
|
184
186
|
super();
|
|
185
187
|
let apiKey = getRealtimeAPIKey(client, props.__apiKey);
|
|
188
|
+
// SAFETY: The supplied OpenAI client owns _options; these compatibility reads preserve its provider and browser-consent settings.
|
|
186
189
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
190
|
+
// SAFETY: The supplied OpenAI client owns _options; these compatibility reads preserve its provider and browser-consent settings.
|
|
187
191
|
const dangerouslyAllowBrowser =
|
|
188
192
|
props.dangerouslyAllowBrowser ??
|
|
189
193
|
(client as any)?._options?.dangerouslyAllowBrowser ??
|
|
@@ -257,7 +261,12 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
257
261
|
});
|
|
258
262
|
|
|
259
263
|
this.socket.addEventListener('error', (event: any) => {
|
|
260
|
-
|
|
264
|
+
// Native ErrorEvents can carry an empty message while `error` still holds the failure.
|
|
265
|
+
const cause = event.error ?? null;
|
|
266
|
+
const message = [event.message, cause?.message].find(
|
|
267
|
+
(value) => typeof value === 'string' && value !== '',
|
|
268
|
+
);
|
|
269
|
+
this._onError(null, message ?? 'unknown error', cause);
|
|
261
270
|
});
|
|
262
271
|
}
|
|
263
272
|
|
|
@@ -317,6 +326,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
317
326
|
return new OpenAIRealtimeWebSocket(
|
|
318
327
|
{
|
|
319
328
|
...connection,
|
|
329
|
+
// Preserve explicit browser consent as an own data property without invoking an inherited setter.
|
|
320
330
|
...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
|
|
321
331
|
__resolvedApiKey: isApiKeyProvider,
|
|
322
332
|
__apiKey: apiKey,
|
package/src/realtime/ws.ts
CHANGED
|
@@ -55,6 +55,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
55
55
|
super();
|
|
56
56
|
client ??= new OpenAI();
|
|
57
57
|
const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
|
|
58
|
+
// SAFETY: The supplied OpenAI client owns _options; this read detects its existing API-key provider without changing its public surface.
|
|
58
59
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
59
60
|
if (hasProvider && !props.__resolvedApiKey) {
|
|
60
61
|
throw new Error(
|
|
@@ -69,6 +70,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
69
70
|
const headers = {
|
|
70
71
|
'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
|
|
71
72
|
...props.options?.headers,
|
|
73
|
+
// A credential must be an own data property without invoking an inherited setter.
|
|
72
74
|
...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
|
|
73
75
|
};
|
|
74
76
|
|
|
@@ -178,6 +180,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
178
180
|
...props.options,
|
|
179
181
|
headers: {
|
|
180
182
|
...props.options?.headers,
|
|
183
|
+
// A credential must be an own data property without invoking an inherited setter.
|
|
181
184
|
...(isApiKeyProvider ? {} : { 'api-key': apiKey }),
|
|
182
185
|
},
|
|
183
186
|
},
|
|
@@ -4048,6 +4048,7 @@ export interface SessionTurnError {
|
|
|
4048
4048
|
* - `session_budget_exceeded` - The session has reached its usage budget.
|
|
4049
4049
|
* - `usage_limit_exceeded` - The organization has reached a usage, plan, or
|
|
4050
4050
|
* billing limit.
|
|
4051
|
+
* - `credit_balance_exhausted` - The organization has no API credits remaining.
|
|
4051
4052
|
* - `rate_limit_exceeded` - The request exceeds the available rate limit.
|
|
4052
4053
|
* - `server_overloaded` - The model service is temporarily overloaded.
|
|
4053
4054
|
* - `cyber_policy` - The request was rejected by a safety policy.
|
|
@@ -4070,6 +4071,7 @@ export interface SessionTurnError {
|
|
|
4070
4071
|
| 'context_length_exceeded'
|
|
4071
4072
|
| 'session_budget_exceeded'
|
|
4072
4073
|
| 'usage_limit_exceeded'
|
|
4074
|
+
| 'credit_balance_exhausted'
|
|
4073
4075
|
| 'rate_limit_exceeded'
|
|
4074
4076
|
| 'server_overloaded'
|
|
4075
4077
|
| 'cyber_policy'
|
|
@@ -217,6 +217,7 @@ import {
|
|
|
217
217
|
BetaResponseCodeInterpreterCallInProgressEvent,
|
|
218
218
|
BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
219
219
|
BetaResponseCodeInterpreterToolCall,
|
|
220
|
+
BetaResponseCompactionCompactingEvent,
|
|
220
221
|
BetaResponseCompactionItem,
|
|
221
222
|
BetaResponseCompactionItemParam,
|
|
222
223
|
BetaResponseCompletedEvent,
|
|
@@ -588,6 +589,7 @@ export declare namespace Beta {
|
|
|
588
589
|
type BetaResponseCodeInterpreterCallInProgressEvent as BetaResponseCodeInterpreterCallInProgressEvent,
|
|
589
590
|
type BetaResponseCodeInterpreterCallInterpretingEvent as BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
590
591
|
type BetaResponseCodeInterpreterToolCall as BetaResponseCodeInterpreterToolCall,
|
|
592
|
+
type BetaResponseCompactionCompactingEvent as BetaResponseCompactionCompactingEvent,
|
|
591
593
|
type BetaResponseCompactionItem as BetaResponseCompactionItem,
|
|
592
594
|
type BetaResponseCompactionItemParam as BetaResponseCompactionItemParam,
|
|
593
595
|
type BetaResponseCompletedEvent as BetaResponseCompletedEvent,
|
|
@@ -165,6 +165,7 @@ export {
|
|
|
165
165
|
type BetaResponseCodeInterpreterCallInProgressEvent,
|
|
166
166
|
type BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
167
167
|
type BetaResponseCodeInterpreterToolCall,
|
|
168
|
+
type BetaResponseCompactionCompactingEvent,
|
|
168
169
|
type BetaResponseCompactionItem,
|
|
169
170
|
type BetaResponseCompactionItemParam,
|
|
170
171
|
type BetaResponseCompletedEvent,
|
|
@@ -40,6 +40,7 @@ export {
|
|
|
40
40
|
type BetaResponseCodeInterpreterCallInProgressEvent,
|
|
41
41
|
type BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
42
42
|
type BetaResponseCodeInterpreterToolCall,
|
|
43
|
+
type BetaResponseCompactionCompactingEvent,
|
|
43
44
|
type BetaResponseCompactionItem,
|
|
44
45
|
type BetaResponseCompactionItemParam,
|
|
45
46
|
type BetaResponseCompletedEvent,
|
|
@@ -27,13 +27,21 @@ type WebSocketErrorEvent = Extract<ResponsesAPI.BetaResponsesServerEvent, { type
|
|
|
27
27
|
export class WebSocketError extends OpenAIError {
|
|
28
28
|
/**
|
|
29
29
|
* The error data that the API sent back in an error event.
|
|
30
|
+
*
|
|
31
|
+
* This property is non-enumerable to avoid exposing the event through
|
|
32
|
+
* JSON serialization, object spread, or Object.assign.
|
|
30
33
|
*/
|
|
31
34
|
error?: WebSocketErrorEvent | undefined;
|
|
32
35
|
|
|
33
36
|
constructor(message: string, event: WebSocketErrorEvent | null) {
|
|
34
37
|
super(message);
|
|
35
38
|
|
|
36
|
-
this
|
|
39
|
+
Object.defineProperty(this, 'error', {
|
|
40
|
+
value: event ?? undefined,
|
|
41
|
+
writable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: false,
|
|
44
|
+
});
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
|
|
@@ -77,13 +85,8 @@ export abstract class ResponsesEmitter extends EventEmitter<WebSocketEvents> {
|
|
|
77
85
|
protected _onError(event: null, message: string, cause: any): void;
|
|
78
86
|
protected _onError(event: WebSocketErrorEvent, message?: string | undefined): void;
|
|
79
87
|
protected _onError(event: WebSocketErrorEvent | null, message?: string | undefined, cause?: any): void {
|
|
80
|
-
const
|
|
81
|
-
message =
|
|
82
|
-
try {
|
|
83
|
-
message = String(message);
|
|
84
|
-
} catch {
|
|
85
|
-
message = '[unserializable error value]';
|
|
86
|
-
}
|
|
88
|
+
const safeMessage = safeWebSocketErrorMessage(event, message);
|
|
89
|
+
message = safeMessage ?? 'unknown error';
|
|
87
90
|
|
|
88
91
|
if (!this._hasListener('error')) {
|
|
89
92
|
const error = new WebSocketError(
|
|
@@ -114,10 +117,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
|
|
|
114
117
|
return url;
|
|
115
118
|
}
|
|
116
119
|
|
|
117
|
-
function
|
|
120
|
+
function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
|
|
121
|
+
if (typeof message === 'string') return message;
|
|
122
|
+
if (typeof event !== 'object' || event === null) return undefined;
|
|
123
|
+
|
|
118
124
|
try {
|
|
119
|
-
|
|
125
|
+
const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
|
|
126
|
+
const nestedMessage =
|
|
127
|
+
typeof error === 'object' && error !== null
|
|
128
|
+
? Object.getOwnPropertyDescriptor(error, 'message')?.value
|
|
129
|
+
: undefined;
|
|
130
|
+
const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
|
|
131
|
+
const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
|
|
132
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
120
133
|
} catch {
|
|
121
|
-
return
|
|
134
|
+
return undefined;
|
|
122
135
|
}
|
|
123
136
|
}
|
|
@@ -2443,6 +2443,49 @@ export namespace BetaResponseCodeInterpreterToolCall {
|
|
|
2443
2443
|
}
|
|
2444
2444
|
}
|
|
2445
2445
|
|
|
2446
|
+
/**
|
|
2447
|
+
* Emitted when new summary content is sampled for a compaction trigger. Contains
|
|
2448
|
+
* no summary content.
|
|
2449
|
+
*/
|
|
2450
|
+
export interface BetaResponseCompactionCompactingEvent {
|
|
2451
|
+
/**
|
|
2452
|
+
* The ID of the compaction output item.
|
|
2453
|
+
*/
|
|
2454
|
+
item_id: string;
|
|
2455
|
+
|
|
2456
|
+
/**
|
|
2457
|
+
* The index of the compaction output item.
|
|
2458
|
+
*/
|
|
2459
|
+
output_index: number;
|
|
2460
|
+
|
|
2461
|
+
/**
|
|
2462
|
+
* The sequence number of the event that was emitted.
|
|
2463
|
+
*/
|
|
2464
|
+
sequence_number: number;
|
|
2465
|
+
|
|
2466
|
+
/**
|
|
2467
|
+
* The type of the event, always `response.compaction.compacting`.
|
|
2468
|
+
*/
|
|
2469
|
+
type: 'response.compaction.compacting';
|
|
2470
|
+
|
|
2471
|
+
/**
|
|
2472
|
+
* The agent that owns this multi-agent streaming event.
|
|
2473
|
+
*/
|
|
2474
|
+
agent?: BetaResponseCompactionCompactingEvent.Agent;
|
|
2475
|
+
}
|
|
2476
|
+
|
|
2477
|
+
export namespace BetaResponseCompactionCompactingEvent {
|
|
2478
|
+
/**
|
|
2479
|
+
* The agent that owns this multi-agent streaming event.
|
|
2480
|
+
*/
|
|
2481
|
+
export interface Agent {
|
|
2482
|
+
/**
|
|
2483
|
+
* The canonical name of the agent that produced this item.
|
|
2484
|
+
*/
|
|
2485
|
+
agent_name: string;
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2488
|
+
|
|
2446
2489
|
/**
|
|
2447
2490
|
* A compaction item generated by the
|
|
2448
2491
|
* [`v1/responses/compact` API](https://developers.openai.com/api/reference/resources/responses/methods/compact).
|
|
@@ -10942,6 +10985,7 @@ export type BetaResponseStreamEvent =
|
|
|
10942
10985
|
| BetaResponseCodeInterpreterCallCompletedEvent
|
|
10943
10986
|
| BetaResponseCodeInterpreterCallInProgressEvent
|
|
10944
10987
|
| BetaResponseCodeInterpreterCallInterpretingEvent
|
|
10988
|
+
| BetaResponseCompactionCompactingEvent
|
|
10945
10989
|
| BetaResponseCompletedEvent
|
|
10946
10990
|
| BetaResponseContentPartAddedEvent
|
|
10947
10991
|
| BetaResponseContentPartDoneEvent
|
|
@@ -12231,6 +12275,7 @@ export type BetaResponsesServerEvent =
|
|
|
12231
12275
|
| BetaResponsesServerEvent.BetaResponseCodeInterpreterCallWsCompleted
|
|
12232
12276
|
| BetaResponsesServerEvent.BetaResponseCodeInterpreterCallInWsProgress
|
|
12233
12277
|
| BetaResponsesServerEvent.BetaResponseCodeInterpreterCallWsInterpreting
|
|
12278
|
+
| BetaResponsesServerEvent.BetaResponseCompactionWsCompacting
|
|
12234
12279
|
| BetaResponsesServerEvent.BetaResponseWsCompleted
|
|
12235
12280
|
| BetaResponsesServerEvent.BetaResponseContentPartWsAdded
|
|
12236
12281
|
| BetaResponsesServerEvent.BetaResponseContentPartWsDone
|
|
@@ -12387,6 +12432,18 @@ export namespace BetaResponsesServerEvent {
|
|
|
12387
12432
|
stream_id?: string;
|
|
12388
12433
|
}
|
|
12389
12434
|
|
|
12435
|
+
/**
|
|
12436
|
+
* Emitted when new summary content is sampled for a compaction trigger. Contains
|
|
12437
|
+
* no summary content.
|
|
12438
|
+
*/
|
|
12439
|
+
export interface BetaResponseCompactionWsCompacting extends BetaResponseCompactionCompactingEvent {
|
|
12440
|
+
/**
|
|
12441
|
+
* The WebSocket lane that emitted this event. This field is present when the
|
|
12442
|
+
* originating `response.create` event supplied a `stream_id`.
|
|
12443
|
+
*/
|
|
12444
|
+
stream_id?: string;
|
|
12445
|
+
}
|
|
12446
|
+
|
|
12390
12447
|
/**
|
|
12391
12448
|
* Emitted when the model response is complete.
|
|
12392
12449
|
*/
|
|
@@ -14820,6 +14877,7 @@ export declare namespace Responses {
|
|
|
14820
14877
|
type BetaResponseCodeInterpreterCallInProgressEvent as BetaResponseCodeInterpreterCallInProgressEvent,
|
|
14821
14878
|
type BetaResponseCodeInterpreterCallInterpretingEvent as BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
14822
14879
|
type BetaResponseCodeInterpreterToolCall as BetaResponseCodeInterpreterToolCall,
|
|
14880
|
+
type BetaResponseCompactionCompactingEvent as BetaResponseCompactionCompactingEvent,
|
|
14823
14881
|
type BetaResponseCompactionItem as BetaResponseCompactionItem,
|
|
14824
14882
|
type BetaResponseCompactionItemParam as BetaResponseCompactionItemParam,
|
|
14825
14883
|
type BetaResponseCompletedEvent as BetaResponseCompletedEvent,
|
|
@@ -103,7 +103,11 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
|
|
|
103
103
|
this.socket = this._connect();
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Creates a platform-specific WebSocket for the given URL and captured client auth headers.
|
|
108
|
+
* The transport must supply or validate its final credentials before connecting;
|
|
109
|
+
* these headers may be empty when authentication is managed by the transport.
|
|
110
|
+
*/
|
|
107
111
|
protected abstract _createSocket(url: URL, authHeaders: Record<string, string>): TSocket;
|
|
108
112
|
|
|
109
113
|
send(event: ResponsesAPI.BetaResponsesClientEvent) {
|
|
@@ -696,9 +700,7 @@ export abstract class ResponsesWSBase<TSocket extends WebSocketLike> extends Res
|
|
|
696
700
|
}
|
|
697
701
|
|
|
698
702
|
protected _authHeaders(): Record<string, string> {
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
}
|
|
702
|
-
return {};
|
|
703
|
+
const apiKey = this._client.apiKey;
|
|
704
|
+
return typeof apiKey === 'string' && apiKey ? { Authorization: `Bearer ${apiKey}` } : {};
|
|
703
705
|
}
|
|
704
706
|
}
|
|
@@ -5,12 +5,17 @@ import { NodeWebSocket } from '../../../internal/ws-adapter-node';
|
|
|
5
5
|
import { ResponsesWSBase, type ResponsesWSBaseOptions } from './ws-base';
|
|
6
6
|
import { OpenAI } from '../../../client';
|
|
7
7
|
import { VERSION } from '../../../version';
|
|
8
|
+
import { OpenAIError } from '../../../core/error';
|
|
9
|
+
import { snapshotWebSocketCredentials } from '../../../internal/ws';
|
|
8
10
|
|
|
9
11
|
export type { WebSocketStreamOptions } from '../../../internal/ws';
|
|
10
12
|
|
|
11
13
|
export type { ResponsesWSReconnectOptions } from './ws-base';
|
|
12
14
|
|
|
13
|
-
export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {
|
|
15
|
+
export interface ResponsesWSClientOptions extends WS.ClientOptions, ResponsesWSBaseOptions {
|
|
16
|
+
/** Basic authentication forwarded by the Node `ws` transport. */
|
|
17
|
+
auth?: string;
|
|
18
|
+
}
|
|
14
19
|
|
|
15
20
|
export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
|
|
16
21
|
private _wsOptions: WS.ClientOptions | null | undefined;
|
|
@@ -21,7 +26,6 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
|
|
|
21
26
|
'ResponsesWS from "openai/resources/beta/responses/ws" requires the "ws" package but it could not be loaded.',
|
|
22
27
|
);
|
|
23
28
|
}
|
|
24
|
-
|
|
25
29
|
const { reconnect, maxQueueSize, ...wsOptions } = options ?? {};
|
|
26
30
|
super(client, { reconnect, maxQueueSize });
|
|
27
31
|
this._wsOptions = wsOptions;
|
|
@@ -29,16 +33,27 @@ export class ResponsesWS extends ResponsesWSBase<NodeWebSocket> {
|
|
|
29
33
|
}
|
|
30
34
|
|
|
31
35
|
protected _createSocket(url: URL, authHeaders: Record<string, string>): NodeWebSocket {
|
|
32
|
-
const
|
|
36
|
+
const capturedAuthHeaders = { ...authHeaders };
|
|
37
|
+
const socketOptions: ResponsesWSClientOptions = {
|
|
33
38
|
...this._wsOptions,
|
|
34
39
|
headers: {
|
|
35
40
|
'User-Agent': `${this._client.constructor.name}/JS ${VERSION}`,
|
|
36
|
-
|
|
37
|
-
...authHeaders,
|
|
41
|
+
...capturedAuthHeaders,
|
|
38
42
|
...this._wsOptions?.headers,
|
|
39
43
|
},
|
|
40
44
|
followRedirects: false,
|
|
41
|
-
}
|
|
45
|
+
};
|
|
46
|
+
if (
|
|
47
|
+
this._client._hasApiKeyProvider() &&
|
|
48
|
+
!capturedAuthHeaders['Authorization'] &&
|
|
49
|
+
!snapshotWebSocketCredentials(socketOptions)
|
|
50
|
+
) {
|
|
51
|
+
throw new OpenAIError(
|
|
52
|
+
'Cannot open a Responses WebSocket with an unresolved function-based apiKey. Resolve it before constructing the WebSocket or provide explicit WebSocket credentials.',
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const ws = new WS.WebSocket(url, socketOptions);
|
|
42
57
|
return new NodeWebSocket(ws);
|
|
43
58
|
}
|
|
44
59
|
}
|
|
@@ -22,13 +22,21 @@ export type ForksStreamMessage =
|
|
|
22
22
|
export class WebSocketError extends OpenAIError {
|
|
23
23
|
/**
|
|
24
24
|
* The error data that the API sent back in an error event.
|
|
25
|
+
*
|
|
26
|
+
* This property is non-enumerable to avoid exposing the event through
|
|
27
|
+
* JSON serialization, object spread, or Object.assign.
|
|
25
28
|
*/
|
|
26
29
|
error?: LiveAPI.ErrorEvent | undefined;
|
|
27
30
|
|
|
28
31
|
constructor(message: string, event: LiveAPI.ErrorEvent | null) {
|
|
29
32
|
super(message);
|
|
30
33
|
|
|
31
|
-
this
|
|
34
|
+
Object.defineProperty(this, 'error', {
|
|
35
|
+
value: event ?? undefined,
|
|
36
|
+
writable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
enumerable: false,
|
|
39
|
+
});
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
|
|
@@ -68,7 +76,8 @@ export abstract class ForksEmitter extends EventEmitter<WebSocketEvents> {
|
|
|
68
76
|
protected _onError(event: null, message: string, cause: any): void;
|
|
69
77
|
protected _onError(event: LiveAPI.ErrorEvent, message?: string | undefined): void;
|
|
70
78
|
protected _onError(event: LiveAPI.ErrorEvent | null, message?: string | undefined, cause?: any): void {
|
|
71
|
-
|
|
79
|
+
const safeMessage = safeWebSocketErrorMessage(event, message);
|
|
80
|
+
message = safeMessage ?? 'unknown error';
|
|
72
81
|
|
|
73
82
|
if (!this._hasListener('error')) {
|
|
74
83
|
const error = new WebSocketError(
|
|
@@ -98,10 +107,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
|
|
|
98
107
|
return url;
|
|
99
108
|
}
|
|
100
109
|
|
|
101
|
-
function
|
|
110
|
+
function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
|
|
111
|
+
if (typeof message === 'string') return message;
|
|
112
|
+
if (typeof event !== 'object' || event === null) return undefined;
|
|
113
|
+
|
|
102
114
|
try {
|
|
103
|
-
|
|
115
|
+
const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
|
|
116
|
+
const nestedMessage =
|
|
117
|
+
typeof error === 'object' && error !== null
|
|
118
|
+
? Object.getOwnPropertyDescriptor(error, 'message')?.value
|
|
119
|
+
: undefined;
|
|
120
|
+
const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
|
|
121
|
+
const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
|
|
122
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
104
123
|
} catch {
|
|
105
|
-
return
|
|
124
|
+
return undefined;
|
|
106
125
|
}
|
|
107
126
|
}
|
|
@@ -19,13 +19,21 @@ export type LiveStreamMessage =
|
|
|
19
19
|
export class WebSocketError extends OpenAIError {
|
|
20
20
|
/**
|
|
21
21
|
* The error data that the API sent back in an error event.
|
|
22
|
+
*
|
|
23
|
+
* This property is non-enumerable to avoid exposing the event through
|
|
24
|
+
* JSON serialization, object spread, or Object.assign.
|
|
22
25
|
*/
|
|
23
26
|
error?: LiveAPI.ErrorEvent | undefined;
|
|
24
27
|
|
|
25
28
|
constructor(message: string, event: LiveAPI.ErrorEvent | null) {
|
|
26
29
|
super(message);
|
|
27
30
|
|
|
28
|
-
this
|
|
31
|
+
Object.defineProperty(this, 'error', {
|
|
32
|
+
value: event ?? undefined,
|
|
33
|
+
writable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
enumerable: false,
|
|
36
|
+
});
|
|
29
37
|
}
|
|
30
38
|
}
|
|
31
39
|
|
|
@@ -65,7 +73,8 @@ export abstract class LiveEmitter extends EventEmitter<WebSocketEvents> {
|
|
|
65
73
|
protected _onError(event: null, message: string, cause: any): void;
|
|
66
74
|
protected _onError(event: LiveAPI.ErrorEvent, message?: string | undefined): void;
|
|
67
75
|
protected _onError(event: LiveAPI.ErrorEvent | null, message?: string | undefined, cause?: any): void {
|
|
68
|
-
|
|
76
|
+
const safeMessage = safeWebSocketErrorMessage(event, message);
|
|
77
|
+
message = safeMessage ?? 'unknown error';
|
|
69
78
|
|
|
70
79
|
if (!this._hasListener('error')) {
|
|
71
80
|
const error = new WebSocketError(
|
|
@@ -95,10 +104,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
|
|
|
95
104
|
return url;
|
|
96
105
|
}
|
|
97
106
|
|
|
98
|
-
function
|
|
107
|
+
function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
|
|
108
|
+
if (typeof message === 'string') return message;
|
|
109
|
+
if (typeof event !== 'object' || event === null) return undefined;
|
|
110
|
+
|
|
99
111
|
try {
|
|
100
|
-
|
|
112
|
+
const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
|
|
113
|
+
const nestedMessage =
|
|
114
|
+
typeof error === 'object' && error !== null
|
|
115
|
+
? Object.getOwnPropertyDescriptor(error, 'message')?.value
|
|
116
|
+
: undefined;
|
|
117
|
+
const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
|
|
118
|
+
const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
|
|
119
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
101
120
|
} catch {
|
|
102
|
-
return
|
|
121
|
+
return undefined;
|
|
103
122
|
}
|
|
104
123
|
}
|
|
@@ -22,13 +22,21 @@ export type SidebandStreamMessage =
|
|
|
22
22
|
export class WebSocketError extends OpenAIError {
|
|
23
23
|
/**
|
|
24
24
|
* The error data that the API sent back in an error event.
|
|
25
|
+
*
|
|
26
|
+
* This property is non-enumerable to avoid exposing the event through
|
|
27
|
+
* JSON serialization, object spread, or Object.assign.
|
|
25
28
|
*/
|
|
26
29
|
error?: LiveAPI.ErrorEvent | undefined;
|
|
27
30
|
|
|
28
31
|
constructor(message: string, event: LiveAPI.ErrorEvent | null) {
|
|
29
32
|
super(message);
|
|
30
33
|
|
|
31
|
-
this
|
|
34
|
+
Object.defineProperty(this, 'error', {
|
|
35
|
+
value: event ?? undefined,
|
|
36
|
+
writable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
enumerable: false,
|
|
39
|
+
});
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
|
|
@@ -68,7 +76,8 @@ export abstract class SidebandEmitter extends EventEmitter<WebSocketEvents> {
|
|
|
68
76
|
protected _onError(event: null, message: string, cause: any): void;
|
|
69
77
|
protected _onError(event: LiveAPI.ErrorEvent, message?: string | undefined): void;
|
|
70
78
|
protected _onError(event: LiveAPI.ErrorEvent | null, message?: string | undefined, cause?: any): void {
|
|
71
|
-
|
|
79
|
+
const safeMessage = safeWebSocketErrorMessage(event, message);
|
|
80
|
+
message = safeMessage ?? 'unknown error';
|
|
72
81
|
|
|
73
82
|
if (!this._hasListener('error')) {
|
|
74
83
|
const error = new WebSocketError(
|
|
@@ -98,10 +107,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
|
|
|
98
107
|
return url;
|
|
99
108
|
}
|
|
100
109
|
|
|
101
|
-
function
|
|
110
|
+
function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
|
|
111
|
+
if (typeof message === 'string') return message;
|
|
112
|
+
if (typeof event !== 'object' || event === null) return undefined;
|
|
113
|
+
|
|
102
114
|
try {
|
|
103
|
-
|
|
115
|
+
const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
|
|
116
|
+
const nestedMessage =
|
|
117
|
+
typeof error === 'object' && error !== null
|
|
118
|
+
? Object.getOwnPropertyDescriptor(error, 'message')?.value
|
|
119
|
+
: undefined;
|
|
120
|
+
const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
|
|
121
|
+
const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
|
|
122
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
104
123
|
} catch {
|
|
105
|
-
return
|
|
124
|
+
return undefined;
|
|
106
125
|
}
|
|
107
126
|
}
|
|
@@ -38,6 +38,7 @@ Types:
|
|
|
38
38
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCodeInterpreterCallInProgressEvent</a></code>
|
|
39
39
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCodeInterpreterCallInterpretingEvent</a></code>
|
|
40
40
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCodeInterpreterToolCall</a></code>
|
|
41
|
+
- <code><a href="./src/resources/responses/responses.ts">ResponseCompactionCompactingEvent</a></code>
|
|
41
42
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCompactionItem</a></code>
|
|
42
43
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCompactionItemParam</a></code>
|
|
43
44
|
- <code><a href="./src/resources/responses/responses.ts">ResponseCompletedEvent</a></code>
|
|
@@ -27,13 +27,21 @@ type WebSocketErrorEvent = Extract<ResponsesAPI.ResponsesServerEvent, { type: 'e
|
|
|
27
27
|
export class WebSocketError extends OpenAIError {
|
|
28
28
|
/**
|
|
29
29
|
* The error data that the API sent back in an error event.
|
|
30
|
+
*
|
|
31
|
+
* This property is non-enumerable to avoid exposing the event through
|
|
32
|
+
* JSON serialization, object spread, or Object.assign.
|
|
30
33
|
*/
|
|
31
34
|
error?: WebSocketErrorEvent | undefined;
|
|
32
35
|
|
|
33
36
|
constructor(message: string, event: WebSocketErrorEvent | null) {
|
|
34
37
|
super(message);
|
|
35
38
|
|
|
36
|
-
this
|
|
39
|
+
Object.defineProperty(this, 'error', {
|
|
40
|
+
value: event ?? undefined,
|
|
41
|
+
writable: true,
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: false,
|
|
44
|
+
});
|
|
37
45
|
}
|
|
38
46
|
}
|
|
39
47
|
|
|
@@ -73,13 +81,8 @@ export abstract class ResponsesEmitter extends EventEmitter<WebSocketEvents> {
|
|
|
73
81
|
protected _onError(event: null, message: string, cause: any): void;
|
|
74
82
|
protected _onError(event: WebSocketErrorEvent, message?: string | undefined): void;
|
|
75
83
|
protected _onError(event: WebSocketErrorEvent | null, message?: string | undefined, cause?: any): void {
|
|
76
|
-
const
|
|
77
|
-
message =
|
|
78
|
-
try {
|
|
79
|
-
message = String(message);
|
|
80
|
-
} catch {
|
|
81
|
-
message = '[unserializable error value]';
|
|
82
|
-
}
|
|
84
|
+
const safeMessage = safeWebSocketErrorMessage(event, message);
|
|
85
|
+
message = safeMessage ?? 'unknown error';
|
|
83
86
|
|
|
84
87
|
if (!this._hasListener('error')) {
|
|
85
88
|
const error = new WebSocketError(
|
|
@@ -110,10 +113,20 @@ export function buildURL(client: OpenAI, parameters: Record<string, unknown>): U
|
|
|
110
113
|
return url;
|
|
111
114
|
}
|
|
112
115
|
|
|
113
|
-
function
|
|
116
|
+
function safeWebSocketErrorMessage(event: unknown, message: unknown): string | undefined {
|
|
117
|
+
if (typeof message === 'string') return message;
|
|
118
|
+
if (typeof event !== 'object' || event === null) return undefined;
|
|
119
|
+
|
|
114
120
|
try {
|
|
115
|
-
|
|
121
|
+
const error = Object.getOwnPropertyDescriptor(event, 'error')?.value;
|
|
122
|
+
const nestedMessage =
|
|
123
|
+
typeof error === 'object' && error !== null
|
|
124
|
+
? Object.getOwnPropertyDescriptor(error, 'message')?.value
|
|
125
|
+
: undefined;
|
|
126
|
+
const eventMessage = Object.getOwnPropertyDescriptor(event, 'message')?.value;
|
|
127
|
+
const candidate = typeof nestedMessage === 'string' ? nestedMessage : eventMessage;
|
|
128
|
+
return typeof candidate === 'string' ? candidate : undefined;
|
|
116
129
|
} catch {
|
|
117
|
-
return
|
|
130
|
+
return undefined;
|
|
118
131
|
}
|
|
119
132
|
}
|