openai 7.5.0 → 7.7.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 +117 -0
- package/README.md +46 -2
- package/auth/index.d.mts +1 -1
- package/auth/index.d.mts.map +1 -1
- package/auth/index.d.ts +1 -1
- package/auth/index.d.ts.map +1 -1
- package/auth/index.js.map +1 -1
- package/auth/index.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 +176 -4
- package/auth/subject-token-providers.js.map +1 -1
- package/auth/subject-token-providers.mjs +176 -4
- package/auth/subject-token-providers.mjs.map +1 -1
- package/auth/types.d.mts +17 -0
- package/auth/types.d.mts.map +1 -1
- package/auth/types.d.ts +17 -0
- package/auth/types.d.ts.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 +80 -7
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +80 -7
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/auth/x509-transport.d.mts +5 -0
- package/auth/x509-transport.d.mts.map +1 -0
- package/auth/x509-transport.d.ts +5 -0
- package/auth/x509-transport.d.ts.map +1 -0
- package/auth/x509-transport.js +39 -0
- package/auth/x509-transport.js.map +1 -0
- package/auth/x509-transport.mjs +36 -0
- package/auth/x509-transport.mjs.map +1 -0
- package/azure.d.mts +11 -2
- package/azure.d.mts.map +1 -1
- package/azure.d.ts +11 -2
- package/azure.d.ts.map +1 -1
- package/azure.js +7 -1
- package/azure.js.map +1 -1
- package/azure.mjs +7 -1
- package/azure.mjs.map +1 -1
- package/bedrock.d.mts +6 -2
- package/bedrock.d.mts.map +1 -1
- package/bedrock.d.ts +6 -2
- package/bedrock.d.ts.map +1 -1
- package/bedrock.js +34 -4
- package/bedrock.js.map +1 -1
- package/bedrock.mjs +35 -5
- package/bedrock.mjs.map +1 -1
- package/beta/realtime/internal-base.d.mts +2 -0
- package/beta/realtime/internal-base.d.mts.map +1 -1
- package/beta/realtime/internal-base.d.ts +2 -0
- package/beta/realtime/internal-base.d.ts.map +1 -1
- package/beta/realtime/internal-base.js +15 -0
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +14 -0
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts +11 -5
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts +11 -5
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +106 -31
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +107 -32
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts +0 -2
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts +0 -2
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +24 -5
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +25 -6
- package/beta/realtime/ws.mjs.map +1 -1
- package/client.d.mts +17 -2
- package/client.d.mts.map +1 -1
- package/client.d.ts +17 -2
- package/client.d.ts.map +1 -1
- package/client.js +422 -70
- package/client.js.map +1 -1
- package/client.mjs +423 -71
- 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 +67 -9
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +68 -10
- 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 +216 -26
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +216 -26
- package/core/streaming.mjs.map +1 -1
- package/helpers/audio.d.mts +5 -5
- package/helpers/audio.d.mts.map +1 -1
- package/helpers/audio.d.ts +5 -5
- package/helpers/audio.d.ts.map +1 -1
- package/helpers/audio.js +93 -22
- package/helpers/audio.js.map +1 -1
- package/helpers/audio.mjs +93 -22
- 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 +34 -14
- package/helpers/standard-schema.js.map +1 -1
- package/helpers/standard-schema.mjs +35 -15
- package/helpers/standard-schema.mjs.map +1 -1
- package/helpers/zod-v3-strict-schema.d.mts +7 -0
- package/helpers/zod-v3-strict-schema.d.mts.map +1 -0
- package/helpers/zod-v3-strict-schema.d.ts +7 -0
- package/helpers/zod-v3-strict-schema.d.ts.map +1 -0
- package/helpers/zod-v3-strict-schema.js +403 -0
- package/helpers/zod-v3-strict-schema.js.map +1 -0
- package/helpers/zod-v3-strict-schema.mjs +399 -0
- package/helpers/zod-v3-strict-schema.mjs.map +1 -0
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +11 -3
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +12 -4
- package/helpers/zod.mjs.map +1 -1
- package/index.d.mts +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/index.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 +28 -8
- package/internal/assistant-stream-delta.js.map +1 -1
- package/internal/assistant-stream-delta.mjs +28 -8
- package/internal/assistant-stream-delta.mjs.map +1 -1
- package/internal/auth/x509-token-exchange.d.mts +16 -0
- package/internal/auth/x509-token-exchange.d.mts.map +1 -0
- package/internal/auth/x509-token-exchange.d.ts +16 -0
- package/internal/auth/x509-token-exchange.d.ts.map +1 -0
- package/internal/auth/x509-token-exchange.js +246 -0
- package/internal/auth/x509-token-exchange.js.map +1 -0
- package/internal/auth/x509-token-exchange.mjs +243 -0
- package/internal/auth/x509-token-exchange.mjs.map +1 -0
- package/internal/auth/x509-transport-capability.d.mts +37 -0
- package/internal/auth/x509-transport-capability.d.mts.map +1 -0
- package/internal/auth/x509-transport-capability.d.ts +37 -0
- package/internal/auth/x509-transport-capability.d.ts.map +1 -0
- package/internal/auth/x509-transport-capability.js +169 -0
- package/internal/auth/x509-transport-capability.js.map +1 -0
- package/internal/auth/x509-transport-capability.mjs +164 -0
- package/internal/auth/x509-transport-capability.mjs.map +1 -0
- package/internal/auth/x509-transport-registry.d.mts +63 -0
- package/internal/auth/x509-transport-registry.d.mts.map +1 -0
- package/internal/auth/x509-transport-registry.d.ts +63 -0
- package/internal/auth/x509-transport-registry.d.ts.map +1 -0
- package/internal/auth/x509-transport-registry.js +53 -0
- package/internal/auth/x509-transport-registry.js.map +1 -0
- package/internal/auth/x509-transport-registry.mjs +48 -0
- package/internal/auth/x509-transport-registry.mjs.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.mts +21 -0
- package/internal/auth/x509-transport-state-browser.d.mts.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.ts +21 -0
- package/internal/auth/x509-transport-state-browser.d.ts.map +1 -0
- package/internal/auth/x509-transport-state-browser.js +30 -0
- package/internal/auth/x509-transport-state-browser.js.map +1 -0
- package/internal/auth/x509-transport-state-browser.mjs +27 -0
- package/internal/auth/x509-transport-state-browser.mjs.map +1 -0
- package/internal/auth/x509-transport-state.cjs +30 -0
- package/internal/auth/x509-transport-state.cjs.map +1 -0
- package/internal/auth/x509-transport-state.d.cts +21 -0
- package/internal/auth/x509-transport-state.d.cts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.mts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.ts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.js +767 -0
- package/internal/auth/x509-workload-identity-auth.js.map +1 -0
- package/internal/auth/x509-workload-identity-auth.mjs +757 -0
- package/internal/auth/x509-workload-identity-auth.mjs.map +1 -0
- package/internal/bedrock.d.mts +2 -0
- package/internal/bedrock.d.mts.map +1 -1
- package/internal/bedrock.d.ts +2 -0
- package/internal/bedrock.d.ts.map +1 -1
- package/internal/bedrock.js +169 -5
- package/internal/bedrock.js.map +1 -1
- package/internal/bedrock.mjs +168 -5
- package/internal/bedrock.mjs.map +1 -1
- package/internal/data-residency.d.mts +12 -0
- package/internal/data-residency.d.mts.map +1 -0
- package/internal/data-residency.d.ts +12 -0
- package/internal/data-residency.d.ts.map +1 -0
- package/internal/data-residency.js +34 -0
- package/internal/data-residency.js.map +1 -0
- package/internal/data-residency.mjs +30 -0
- package/internal/data-residency.mjs.map +1 -0
- package/internal/multipart-encoding.d.mts +8 -0
- package/internal/multipart-encoding.d.mts.map +1 -0
- package/internal/multipart-encoding.d.ts +8 -0
- package/internal/multipart-encoding.d.ts.map +1 -0
- package/internal/multipart-encoding.js +51 -0
- package/internal/multipart-encoding.js.map +1 -0
- package/internal/multipart-encoding.mjs +48 -0
- package/internal/multipart-encoding.mjs.map +1 -0
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.js +307 -10
- package/internal/qs/utils.js.map +1 -1
- package/internal/qs/utils.mjs +307 -10
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts +7 -0
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts +7 -0
- package/internal/request-options.d.ts.map +1 -1
- package/internal/request-options.js +43 -1
- package/internal/request-options.js.map +1 -1
- package/internal/request-options.mjs +42 -1
- package/internal/request-options.mjs.map +1 -1
- package/internal/responses/canonical-output-text.js +3 -3
- package/internal/responses/canonical-output-text.js.map +1 -1
- package/internal/responses/canonical-output-text.mjs +3 -3
- package/internal/responses/canonical-output-text.mjs.map +1 -1
- package/internal/responses/response-accumulator.d.mts +1 -1
- package/internal/responses/response-accumulator.d.mts.map +1 -1
- package/internal/responses/response-accumulator.d.ts +1 -1
- package/internal/responses/response-accumulator.d.ts.map +1 -1
- package/internal/responses/response-accumulator.js +331 -25
- package/internal/responses/response-accumulator.js.map +1 -1
- package/internal/responses/response-accumulator.mjs +331 -25
- package/internal/responses/response-accumulator.mjs.map +1 -1
- package/internal/tslib.js +6 -0
- package/internal/tslib.mjs +6 -1
- package/internal/uploads.d.mts +10 -6
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts +10 -6
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.js +65 -24
- package/internal/uploads.js.map +1 -1
- package/internal/uploads.mjs +65 -24
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/env.d.mts.map +1 -1
- package/internal/utils/env.d.ts.map +1 -1
- package/internal/utils/env.js +9 -4
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +9 -4
- package/internal/utils/env.mjs.map +1 -1
- package/internal/ws.d.mts.map +1 -1
- package/internal/ws.d.ts.map +1 -1
- package/internal/ws.js +23 -1
- package/internal/ws.js.map +1 -1
- package/internal/ws.mjs +23 -1
- 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 +32 -7
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +34 -9
- 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 +211 -23
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +211 -23
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionStream.d.mts +1 -1
- package/lib/ChatCompletionStream.d.mts.map +1 -1
- package/lib/ChatCompletionStream.d.ts +1 -1
- package/lib/ChatCompletionStream.d.ts.map +1 -1
- package/lib/ChatCompletionStream.js +1118 -67
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +1119 -68
- 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 +67 -9
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +68 -10
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +4 -0
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +4 -0
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +1096 -11
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +1097 -12
- 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 +1 -1
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +1 -1
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/Util.d.mts +2 -0
- package/lib/Util.d.mts.map +1 -1
- package/lib/Util.d.ts +2 -0
- package/lib/Util.d.ts.map +1 -1
- package/lib/Util.js +7 -4
- package/lib/Util.js.map +1 -1
- package/lib/Util.mjs +7 -4
- package/lib/Util.mjs.map +1 -1
- package/lib/assistant-run-polling.d.mts +12 -0
- package/lib/assistant-run-polling.d.mts.map +1 -0
- package/lib/assistant-run-polling.d.ts +12 -0
- package/lib/assistant-run-polling.d.ts.map +1 -0
- package/lib/assistant-run-polling.js +17 -0
- package/lib/assistant-run-polling.js.map +1 -0
- package/lib/assistant-run-polling.mjs +14 -0
- package/lib/assistant-run-polling.mjs.map +1 -0
- package/lib/embeddings.d.mts +18 -0
- package/lib/embeddings.d.mts.map +1 -0
- package/lib/embeddings.d.ts +18 -0
- package/lib/embeddings.d.ts.map +1 -0
- package/lib/embeddings.js +50 -0
- package/lib/embeddings.js.map +1 -0
- package/lib/embeddings.mjs +47 -0
- package/lib/embeddings.mjs.map +1 -0
- package/lib/file-processing.d.mts +10 -0
- package/lib/file-processing.d.mts.map +1 -0
- package/lib/file-processing.d.ts +10 -0
- package/lib/file-processing.d.ts.map +1 -0
- package/lib/file-processing.js +30 -0
- package/lib/file-processing.js.map +1 -0
- package/lib/file-processing.mjs +27 -0
- package/lib/file-processing.mjs.map +1 -0
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.js +16 -4
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +16 -4
- package/lib/parser.mjs.map +1 -1
- package/lib/polling.d.mts +20 -0
- package/lib/polling.d.mts.map +1 -0
- package/lib/polling.d.ts +20 -0
- package/lib/polling.d.ts.map +1 -0
- package/lib/polling.js +130 -0
- package/lib/polling.js.map +1 -0
- package/lib/polling.mjs +127 -0
- package/lib/polling.mjs.map +1 -0
- package/lib/responses/ResponseStream.d.mts.map +1 -1
- package/lib/responses/ResponseStream.d.ts.map +1 -1
- package/lib/responses/ResponseStream.js +21 -11
- package/lib/responses/ResponseStream.js.map +1 -1
- package/lib/responses/ResponseStream.mjs +21 -11
- package/lib/responses/ResponseStream.mjs.map +1 -1
- package/lib/vector-store-polling.d.mts +22 -0
- package/lib/vector-store-polling.d.mts.map +1 -0
- package/lib/vector-store-polling.d.ts +22 -0
- package/lib/vector-store-polling.d.ts.map +1 -0
- package/lib/vector-store-polling.js +24 -0
- package/lib/vector-store-polling.js.map +1 -0
- package/lib/vector-store-polling.mjs +20 -0
- package/lib/vector-store-polling.mjs.map +1 -0
- package/lib/vector-store-upload.d.mts +17 -0
- package/lib/vector-store-upload.d.mts.map +1 -0
- package/lib/vector-store-upload.d.ts +17 -0
- package/lib/vector-store-upload.d.ts.map +1 -0
- package/lib/vector-store-upload.js +37 -0
- package/lib/vector-store-upload.js.map +1 -0
- package/lib/vector-store-upload.mjs +34 -0
- package/lib/vector-store-upload.mjs.map +1 -0
- package/lib/webhook-signature.d.mts +15 -0
- package/lib/webhook-signature.d.mts.map +1 -0
- package/lib/webhook-signature.d.ts +15 -0
- package/lib/webhook-signature.d.ts.map +1 -0
- package/lib/webhook-signature.js +125 -0
- package/lib/webhook-signature.js.map +1 -0
- package/lib/webhook-signature.mjs +121 -0
- package/lib/webhook-signature.mjs.map +1 -0
- package/package.json +14 -1
- package/realtime/internal-base.d.mts +2 -0
- package/realtime/internal-base.d.mts.map +1 -1
- package/realtime/internal-base.d.ts +2 -0
- package/realtime/internal-base.d.ts.map +1 -1
- package/realtime/internal-base.js +15 -0
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +14 -0
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts +3 -2
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts +3 -2
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +90 -26
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +91 -27
- 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 +9 -1
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +10 -2
- package/realtime/ws.mjs.map +1 -1
- package/resources/admin/organization/index.d.mts +2 -2
- package/resources/admin/organization/index.d.mts.map +1 -1
- package/resources/admin/organization/index.d.ts +2 -2
- package/resources/admin/organization/index.d.ts.map +1 -1
- package/resources/admin/organization/index.js.map +1 -1
- package/resources/admin/organization/index.mjs.map +1 -1
- package/resources/admin/organization/organization.d.mts +4 -4
- package/resources/admin/organization/organization.d.mts.map +1 -1
- package/resources/admin/organization/organization.d.ts +4 -4
- package/resources/admin/organization/organization.d.ts.map +1 -1
- package/resources/admin/organization/organization.js.map +1 -1
- package/resources/admin/organization/organization.mjs.map +1 -1
- package/resources/admin/organization/projects/index.d.mts +1 -1
- package/resources/admin/organization/projects/index.d.mts.map +1 -1
- package/resources/admin/organization/projects/index.d.ts +1 -1
- package/resources/admin/organization/projects/index.d.ts.map +1 -1
- package/resources/admin/organization/projects/index.js.map +1 -1
- package/resources/admin/organization/projects/index.mjs.map +1 -1
- package/resources/admin/organization/projects/projects.d.mts +22 -5
- package/resources/admin/organization/projects/projects.d.mts.map +1 -1
- package/resources/admin/organization/projects/projects.d.ts +22 -5
- package/resources/admin/organization/projects/projects.d.ts.map +1 -1
- package/resources/admin/organization/projects/projects.js.map +1 -1
- package/resources/admin/organization/projects/projects.mjs.map +1 -1
- package/resources/admin/organization/usage.d.mts +62 -1
- package/resources/admin/organization/usage.d.mts.map +1 -1
- package/resources/admin/organization/usage.d.ts +62 -1
- package/resources/admin/organization/usage.d.ts.map +1 -1
- package/resources/admin/organization/usage.js.map +1 -1
- package/resources/admin/organization/usage.mjs.map +1 -1
- package/resources/beta/responses/internal-base.d.mts.map +1 -1
- package/resources/beta/responses/internal-base.d.ts.map +1 -1
- package/resources/beta/responses/internal-base.js +2 -0
- package/resources/beta/responses/internal-base.js.map +1 -1
- package/resources/beta/responses/internal-base.mjs +2 -0
- package/resources/beta/responses/internal-base.mjs.map +1 -1
- package/resources/beta/responses/responses.d.mts +17 -20
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +17 -20
- 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/threads/runs/index.d.mts +1 -1
- package/resources/beta/threads/runs/index.d.mts.map +1 -1
- package/resources/beta/threads/runs/index.d.ts +1 -1
- package/resources/beta/threads/runs/index.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.d.mts.map +1 -1
- package/resources/beta/threads/runs/runs.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.js +2 -43
- package/resources/beta/threads/runs/runs.js.map +1 -1
- package/resources/beta/threads/runs/runs.mjs +2 -43
- package/resources/beta/threads/runs/runs.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +6 -0
- package/resources/chat/completions/completions.d.mts.map +1 -1
- package/resources/chat/completions/completions.d.ts +6 -0
- package/resources/chat/completions/completions.d.ts.map +1 -1
- package/resources/chat/completions/completions.js.map +1 -1
- package/resources/chat/completions/completions.mjs.map +1 -1
- package/resources/embeddings.d.mts.map +1 -1
- package/resources/embeddings.d.ts.map +1 -1
- package/resources/embeddings.js +2 -36
- package/resources/embeddings.js.map +1 -1
- package/resources/embeddings.mjs +2 -36
- package/resources/embeddings.mjs.map +1 -1
- package/resources/files.d.mts.map +1 -1
- package/resources/files.d.ts.map +1 -1
- package/resources/files.js +2 -15
- package/resources/files.js.map +1 -1
- package/resources/files.mjs +2 -15
- package/resources/files.mjs.map +1 -1
- package/resources/images.d.mts +12 -22
- package/resources/images.d.mts.map +1 -1
- package/resources/images.d.ts +12 -22
- package/resources/images.d.ts.map +1 -1
- package/resources/realtime/calls.d.mts +23 -1
- package/resources/realtime/calls.d.mts.map +1 -1
- package/resources/realtime/calls.d.ts +23 -1
- package/resources/realtime/calls.d.ts.map +1 -1
- package/resources/realtime/calls.js +24 -0
- package/resources/realtime/calls.js.map +1 -1
- package/resources/realtime/calls.mjs +24 -0
- package/resources/realtime/calls.mjs.map +1 -1
- package/resources/realtime/index.d.mts +1 -1
- package/resources/realtime/index.d.mts.map +1 -1
- package/resources/realtime/index.d.ts +1 -1
- package/resources/realtime/index.d.ts.map +1 -1
- package/resources/realtime/index.js.map +1 -1
- package/resources/realtime/index.mjs +1 -1
- package/resources/realtime/index.mjs.map +1 -1
- package/resources/realtime/realtime.d.mts +5 -4
- package/resources/realtime/realtime.d.mts.map +1 -1
- package/resources/realtime/realtime.d.ts +5 -4
- package/resources/realtime/realtime.d.ts.map +1 -1
- package/resources/realtime/realtime.js.map +1 -1
- package/resources/realtime/realtime.mjs.map +1 -1
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +2 -0
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +2 -0
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +17 -20
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +17 -20
- 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/vector-stores/file-batches.d.mts.map +1 -1
- package/resources/vector-stores/file-batches.d.ts.map +1 -1
- package/resources/vector-stores/file-batches.js +4 -61
- package/resources/vector-stores/file-batches.js.map +1 -1
- package/resources/vector-stores/file-batches.mjs +4 -61
- package/resources/vector-stores/file-batches.mjs.map +1 -1
- package/resources/vector-stores/files.d.mts +1 -1
- package/resources/vector-stores/files.d.mts.map +1 -1
- package/resources/vector-stores/files.d.ts +1 -1
- package/resources/vector-stores/files.d.ts.map +1 -1
- package/resources/vector-stores/files.js +2 -35
- package/resources/vector-stores/files.js.map +1 -1
- package/resources/vector-stores/files.mjs +2 -35
- package/resources/vector-stores/files.mjs.map +1 -1
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts.map +1 -1
- package/resources/webhooks/webhooks.js +5 -43
- package/resources/webhooks/webhooks.js.map +1 -1
- package/resources/webhooks/webhooks.mjs +5 -43
- package/resources/webhooks/webhooks.mjs.map +1 -1
- package/src/auth/index.ts +6 -1
- package/src/auth/subject-token-providers.ts +196 -4
- package/src/auth/types.ts +24 -0
- package/src/auth/workload-identity-auth.ts +104 -7
- package/src/auth/x509-transport.ts +49 -0
- package/src/azure.ts +22 -1
- package/src/bedrock.ts +49 -5
- package/src/beta/realtime/internal-base.ts +15 -0
- package/src/beta/realtime/websocket.ts +148 -40
- package/src/beta/realtime/ws.ts +31 -13
- package/src/client.ts +536 -92
- package/src/core/EventEmitter.ts +91 -7
- package/src/core/streaming.ts +226 -30
- package/src/helpers/audio.ts +93 -22
- package/src/helpers/standard-schema.ts +50 -16
- package/src/helpers/zod-v3-strict-schema.ts +514 -0
- package/src/helpers/zod.ts +17 -4
- package/src/index.ts +1 -1
- package/src/internal/assistant-stream-delta.ts +33 -10
- package/src/internal/auth/x509-token-exchange.ts +310 -0
- package/src/internal/auth/x509-transport-capability.ts +219 -0
- package/src/internal/auth/x509-transport-registry.ts +118 -0
- package/src/internal/auth/x509-transport-state-browser.ts +36 -0
- package/src/internal/auth/x509-transport-state.cts +36 -0
- package/src/internal/auth/x509-workload-identity-auth.ts +958 -0
- package/src/internal/bedrock.ts +182 -5
- package/src/internal/data-residency.ts +44 -0
- package/src/internal/multipart-encoding.ts +53 -0
- package/src/internal/qs/utils.ts +375 -13
- package/src/internal/request-options.ts +52 -1
- package/src/internal/responses/canonical-output-text.ts +3 -3
- package/src/internal/responses/response-accumulator.ts +411 -24
- package/src/internal/uploads.ts +81 -26
- package/src/internal/utils/env.ts +9 -5
- package/src/internal/ws.ts +24 -3
- package/src/lib/AbstractChatCompletionRunner.ts +33 -6
- package/src/lib/AssistantStream.ts +262 -22
- package/src/lib/ChatCompletionStream.ts +1467 -103
- package/src/lib/EventEmitter.ts +91 -7
- package/src/lib/EventStream.ts +1483 -10
- package/src/lib/ResponsesParser.ts +4 -1
- package/src/lib/Util.ts +7 -5
- package/src/lib/assistant-run-polling.ts +27 -0
- package/src/lib/embeddings.ts +65 -0
- package/src/lib/file-processing.ts +36 -0
- package/src/lib/parser.ts +19 -4
- package/src/lib/polling.ts +144 -0
- package/src/lib/responses/ResponseStream.ts +22 -10
- package/src/lib/vector-store-polling.ts +46 -0
- package/src/lib/vector-store-upload.ts +53 -0
- package/src/lib/webhook-signature.ts +164 -0
- package/src/realtime/internal-base.ts +15 -0
- package/src/realtime/websocket.ts +130 -27
- package/src/realtime/ws.ts +15 -2
- package/src/resources/admin/organization/index.ts +2 -0
- package/src/resources/admin/organization/organization.ts +4 -0
- package/src/resources/admin/organization/projects/index.ts +1 -0
- package/src/resources/admin/organization/projects/projects.ts +37 -4
- package/src/resources/admin/organization/usage.ts +83 -0
- package/src/resources/beta/responses/internal-base.ts +2 -0
- package/src/resources/beta/responses/responses.ts +19 -22
- package/src/resources/beta/threads/runs/index.ts +1 -1
- package/src/resources/beta/threads/runs/runs.ts +2 -45
- package/src/resources/chat/completions/completions.ts +7 -0
- package/src/resources/embeddings.ts +2 -42
- package/src/resources/files.ts +2 -19
- package/src/resources/images.ts +12 -22
- package/src/resources/realtime/api.md +1 -0
- package/src/resources/realtime/calls.ts +46 -0
- package/src/resources/realtime/index.ts +7 -1
- package/src/resources/realtime/realtime.ts +5 -3
- package/src/resources/responses/internal-base.ts +2 -0
- package/src/resources/responses/responses.ts +19 -22
- package/src/resources/vector-stores/file-batches.ts +8 -77
- package/src/resources/vector-stores/files.ts +3 -43
- package/src/resources/webhooks/webhooks.ts +5 -61
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACX,kDAA+C;AAChD,OAAO,EAAE,YAAY,EAAE,kCAA+B;AACtD,OAAO,EAAE,WAAW,EAAE,uBAAoB;AAC1C,OAAO,KAAK,MAAM,uBAAoB;AACtC,OAAO,EAAE,WAAW,EAAE,uBAAoB;
|
|
1
|
+
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACX,kDAA+C;AAChD,OAAO,EAAE,YAAY,EAAE,kCAA+B;AACtD,OAAO,EAAE,WAAW,EAAE,uBAAoB;AAC1C,OAAO,KAAK,MAAM,uBAAoB;AACtC,OAAO,EAAE,WAAW,EAAE,uBAAoB;AAG1C,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAUpE;AAUD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,uEAAuE;IAC9D,IAAI,SAAyB;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,GAAG,SAAS,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;CAMtD;AAED,iGAAiG;AAEjG,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D;;;;;GAKG;AACH,KAAK,cAAc,GAAG,QAAQ,CAC5B;IACE,kFAAkF;IAClF,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAE5C,uEAAuE;IACvE,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7C,GAAG;KAED,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAC5D,KAAK,EAAE,OAAO,CACZ,mBAAmB,EACnB;QACE,yEAAyE;QACzE,IAAI,EAAE,SAAS,CAAC;KACjB,CACF,KACE,OAAO;CACb,CACF,CAAC;AAEF;;;;;;GAMG;AACH,8BAAsB,qBAAsB,SAAQ,YAAY,CAAC,cAAc,CAAC;IAC9E;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAE/C;;;OAGG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACrB,uDAAuD;QACvD,IAAI,EAAE,MAAM,CAAC;QAEb,gDAAgD;QAChD,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;IAER,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAwB1E;AAED,iGAAiG;AACjG,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,WAAW,CAEzF;AAED,uFAAuF;AACvF,MAAM,MAAM,wBAAwB,GAChC;IACE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,yFAAyF;IACzF,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GACD;IACE,yEAAyE;IACzE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,EAC1C,UAAU,EAAE,MAAM,GAAG,wBAAwB,GAC5C,GAAG,CA8BL"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OpenAIRealtimeEmitter = exports.OpenAIRealtimeError = void 0;
|
|
4
|
+
exports.parseRealtimeEvent = parseRealtimeEvent;
|
|
4
5
|
exports.isAzure = isAzure;
|
|
5
6
|
exports.buildRealtimeURL = buildRealtimeURL;
|
|
6
7
|
const EventEmitter_1 = require("../../lib/EventEmitter.js");
|
|
7
8
|
const error_1 = require("../../error.js");
|
|
8
9
|
const index_1 = require("../../index.js");
|
|
10
|
+
const x509_workload_identity_auth_1 = require("../../internal/auth/x509-workload-identity-auth.js");
|
|
11
|
+
/** Parses frame data without exposing malformed payloads through JSON syntax errors. */
|
|
12
|
+
function parseRealtimeEvent(data) {
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(data);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
if (error instanceof SyntaxError) {
|
|
18
|
+
throw new SyntaxError('Could not parse Realtime WebSocket event data as JSON.');
|
|
19
|
+
}
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
9
23
|
function safeErrorValue(value) {
|
|
10
24
|
try {
|
|
11
25
|
return String(value);
|
|
@@ -69,6 +83,7 @@ function isAzure(client) {
|
|
|
69
83
|
* Azure sideband call is requested through the beta helpers.
|
|
70
84
|
*/
|
|
71
85
|
function buildRealtimeURL(client, connection) {
|
|
86
|
+
(0, x509_workload_identity_auth_1.assertX509WebSocketSupported)(client);
|
|
72
87
|
const config = typeof connection === 'string' ? { model: connection } : connection;
|
|
73
88
|
const baseURL = client.baseURL;
|
|
74
89
|
const azure = isAzure(client);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.js","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"internal-base.js","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { EventEmitter } from "../../lib/EventEmitter.mjs";
|
|
2
2
|
import { OpenAIError } from "../../error.mjs";
|
|
3
3
|
import { AzureOpenAI } from "../../index.mjs";
|
|
4
|
+
import { assertX509WebSocketSupported } from "../../internal/auth/x509-workload-identity-auth.mjs";
|
|
5
|
+
/** Parses frame data without exposing malformed payloads through JSON syntax errors. */
|
|
6
|
+
export function parseRealtimeEvent(data) {
|
|
7
|
+
try {
|
|
8
|
+
return JSON.parse(data);
|
|
9
|
+
}
|
|
10
|
+
catch (error) {
|
|
11
|
+
if (error instanceof SyntaxError) {
|
|
12
|
+
throw new SyntaxError('Could not parse Realtime WebSocket event data as JSON.');
|
|
13
|
+
}
|
|
14
|
+
throw error;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
4
17
|
function safeErrorValue(value) {
|
|
5
18
|
try {
|
|
6
19
|
return String(value);
|
|
@@ -62,6 +75,7 @@ export function isAzure(client) {
|
|
|
62
75
|
* Azure sideband call is requested through the beta helpers.
|
|
63
76
|
*/
|
|
64
77
|
export function buildRealtimeURL(client, connection) {
|
|
78
|
+
assertX509WebSocketSupported(client);
|
|
65
79
|
const config = typeof connection === 'string' ? { model: connection } : connection;
|
|
66
80
|
const baseURL = client.baseURL;
|
|
67
81
|
const azure = isAzure(client);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.mjs","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,mCAA+B;AACtD,OAAO,EAAE,WAAW,EAAE,wBAAoB;AAE1C,OAAO,EAAE,WAAW,EAAE,wBAAoB;
|
|
1
|
+
{"version":3,"file":"internal-base.mjs","sourceRoot":"","sources":["../../src/beta/realtime/internal-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,14 @@ type _WebSocket = typeof globalThis extends {
|
|
|
8
8
|
/** Runtime-provided WebSocket constructor used for native Realtime connections. */
|
|
9
9
|
WebSocket: infer ws extends abstract new (...args: any) => any;
|
|
10
10
|
} ? InstanceType<ws> : any;
|
|
11
|
+
/**
|
|
12
|
+
* Connects to the beta Realtime API using the runtime's native `WebSocket` implementation.
|
|
13
|
+
*
|
|
14
|
+
* Browser use is blocked by default to prevent secret API-key exposure. Prefer
|
|
15
|
+
* an ephemeral Realtime credential in browsers and register an SDK `error`
|
|
16
|
+
* listener before using the connection. Use the stable Realtime helper for
|
|
17
|
+
* Azure sideband calls.
|
|
18
|
+
*/
|
|
11
19
|
export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
12
20
|
/** Secure beta Realtime WebSocket URL; Azure authentication query parameters are redacted. */
|
|
13
21
|
url: URL;
|
|
@@ -35,8 +43,6 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
35
43
|
onURL?: (url: URL) => void;
|
|
36
44
|
/** Indicates the token was resolved by the factory just before connecting. @internal */
|
|
37
45
|
__resolvedApiKey?: boolean;
|
|
38
|
-
/** Final URL validated before an asynchronous credential provider ran. @internal */
|
|
39
|
-
__url?: URL;
|
|
40
46
|
}, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
|
|
41
47
|
/**
|
|
42
48
|
* Resolves a client's current API credential before opening a beta Realtime WebSocket.
|
|
@@ -53,9 +59,9 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
53
59
|
/**
|
|
54
60
|
* Opens a native beta Azure OpenAI Realtime session for a model deployment.
|
|
55
61
|
*
|
|
56
|
-
* Azure credentials are
|
|
57
|
-
*
|
|
58
|
-
*
|
|
62
|
+
* Azure credentials are sent in WebSocket handshake headers and never appear
|
|
63
|
+
* in the native socket URL. Browser WebSockets cannot set these headers;
|
|
64
|
+
* use a server-side authentication proxy or the Node.js `ws` transport.
|
|
59
65
|
*
|
|
60
66
|
* @param client Azure OpenAI client that supplies the endpoint and credential.
|
|
61
67
|
* @param options Optional deployment override and browser-safety settings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAoB;AAE/C,OAAO,EAAE,MAAM,EAAE,wBAAoB;AAErC,OAAO,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"websocket.d.mts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAoB;AAE/C,OAAO,EAAE,MAAM,EAAE,wBAAoB;AAErC,OAAO,KAAK,EAAE,mBAAmB,EAAE,mDAA+C;AAClF,OAAO,EAAE,qBAAqB,EAAiD,4BAAwB;AACvG,OAAO,KAAK,EAAE,wBAAwB,EAAE,4BAAwB;AAOhE,4EAA4E;AAC5E,KAAK,UAAU,GAAG,OAAO,UAAU,SAAS;IAC1C,mFAAmF;IACnF,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,GAEG,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AA4HR;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,8FAA8F;IAC9F,GAAG,EAAE,GAAG,CAAC;IAET,oFAAoF;IACpF,MAAM,EAAE,UAAU,CAAC;IAEnB;;;;;;;;;;;OAWG;gBAED,KAAK,EAAE,wBAAwB,GAAG;QAChC,6FAA6F;QAC7F,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAElC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3B,wFAAwF;QACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAgF7C;;;;;;;OAOG;WACU,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE,wBAAwB,GAAG;QAChC,qFAAqF;QACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,GACA,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;;;;;;;OAUG;WACU,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,OAAO,GAAE;QACP,mFAAmF;QACnF,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,2FAA2F;QAC3F,uBAAuB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACL,OAAO,CAAC,uBAAuB,CAAC;IAqBnC;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAQtC;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,uDAAuD;QACvD,IAAI,EAAE,MAAM,CAAC;QAEb,gDAAgD;QAChD,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;CAOT"}
|
|
@@ -8,6 +8,14 @@ type _WebSocket = typeof globalThis extends {
|
|
|
8
8
|
/** Runtime-provided WebSocket constructor used for native Realtime connections. */
|
|
9
9
|
WebSocket: infer ws extends abstract new (...args: any) => any;
|
|
10
10
|
} ? InstanceType<ws> : any;
|
|
11
|
+
/**
|
|
12
|
+
* Connects to the beta Realtime API using the runtime's native `WebSocket` implementation.
|
|
13
|
+
*
|
|
14
|
+
* Browser use is blocked by default to prevent secret API-key exposure. Prefer
|
|
15
|
+
* an ephemeral Realtime credential in browsers and register an SDK `error`
|
|
16
|
+
* listener before using the connection. Use the stable Realtime helper for
|
|
17
|
+
* Azure sideband calls.
|
|
18
|
+
*/
|
|
11
19
|
export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
12
20
|
/** Secure beta Realtime WebSocket URL; Azure authentication query parameters are redacted. */
|
|
13
21
|
url: URL;
|
|
@@ -35,8 +43,6 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
35
43
|
onURL?: (url: URL) => void;
|
|
36
44
|
/** Indicates the token was resolved by the factory just before connecting. @internal */
|
|
37
45
|
__resolvedApiKey?: boolean;
|
|
38
|
-
/** Final URL validated before an asynchronous credential provider ran. @internal */
|
|
39
|
-
__url?: URL;
|
|
40
46
|
}, client?: Pick<OpenAI, 'apiKey' | 'baseURL'>);
|
|
41
47
|
/**
|
|
42
48
|
* Resolves a client's current API credential before opening a beta Realtime WebSocket.
|
|
@@ -53,9 +59,9 @@ export declare class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
53
59
|
/**
|
|
54
60
|
* Opens a native beta Azure OpenAI Realtime session for a model deployment.
|
|
55
61
|
*
|
|
56
|
-
* Azure credentials are
|
|
57
|
-
*
|
|
58
|
-
*
|
|
62
|
+
* Azure credentials are sent in WebSocket handshake headers and never appear
|
|
63
|
+
* in the native socket URL. Browser WebSockets cannot set these headers;
|
|
64
|
+
* use a server-side authentication proxy or the Node.js `ws` transport.
|
|
59
65
|
*
|
|
60
66
|
* @param client Azure OpenAI client that supplies the endpoint and credential.
|
|
61
67
|
* @param options Optional deployment override and browser-safety settings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAoB;AAE/C,OAAO,EAAE,MAAM,EAAE,uBAAoB;AAErC,OAAO,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAoB;AAE/C,OAAO,EAAE,MAAM,EAAE,uBAAoB;AAErC,OAAO,KAAK,EAAE,mBAAmB,EAAE,kDAA+C;AAClF,OAAO,EAAE,qBAAqB,EAAiD,2BAAwB;AACvG,OAAO,KAAK,EAAE,wBAAwB,EAAE,2BAAwB;AAOhE,4EAA4E;AAC5E,KAAK,UAAU,GAAG,OAAO,UAAU,SAAS;IAC1C,mFAAmF;IACnF,SAAS,EAAE,MAAM,EAAE,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;CAChE,GAEG,YAAY,CAAC,EAAE,CAAC,GAChB,GAAG,CAAC;AA4HR;;;;;;;GAOG;AACH,qBAAa,uBAAwB,SAAQ,qBAAqB;IAChE,8FAA8F;IAC9F,GAAG,EAAE,GAAG,CAAC;IAET,oFAAoF;IACpF,MAAM,EAAE,UAAU,CAAC;IAEnB;;;;;;;;;;;OAWG;gBAED,KAAK,EAAE,wBAAwB,GAAG;QAChC,6FAA6F;QAC7F,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAElC;;;WAGG;QACH,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;QAC3B,wFAAwF;QACxF,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,EACD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAgF7C;;;;;;;OAOG;WACU,MAAM,CACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC,EAC1D,KAAK,EAAE,wBAAwB,GAAG;QAChC,qFAAqF;QACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;KACnC,GACA,OAAO,CAAC,uBAAuB,CAAC;IAUnC;;;;;;;;;;OAUG;WACU,KAAK,CAChB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC,EACjG,OAAO,GAAE;QACP,mFAAmF;QACnF,cAAc,CAAC,EAAE,MAAM,CAAC;QAExB,2FAA2F;QAC3F,uBAAuB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACL,OAAO,CAAC,uBAAuB,CAAC;IAqBnC;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAQtC;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE;QACZ,uDAAuD;QACvD,IAAI,EAAE,MAAM,CAAC;QAEb,gDAAgD;QAChD,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;CAOT"}
|
|
@@ -6,16 +6,92 @@ const index_1 = require("../../index.js");
|
|
|
6
6
|
const error_1 = require("../../error.js");
|
|
7
7
|
const internal_base_1 = require("./internal-base.js");
|
|
8
8
|
const detect_platform_1 = require("../../internal/detect-platform.js");
|
|
9
|
-
/**
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
/** Identifies browser pages and workers without blocking trusted server runtimes. */
|
|
10
|
+
function isRunningInBrowserOrBrowserWorker() {
|
|
11
|
+
if ((0, detect_platform_1.isRunningInBrowser)()) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
const scope = globalThis;
|
|
15
|
+
return (typeof scope.WorkerGlobalScope === 'function' &&
|
|
16
|
+
scope instanceof scope.WorkerGlobalScope &&
|
|
17
|
+
typeof scope.WorkerNavigator === 'function' &&
|
|
18
|
+
scope.navigator instanceof scope.WorkerNavigator &&
|
|
19
|
+
typeof scope.navigator?.userAgent === 'string' &&
|
|
20
|
+
scope.navigator.userAgent !== 'Cloudflare-Workers' &&
|
|
21
|
+
scope.process?.versions?.node === undefined &&
|
|
22
|
+
scope.Deno === undefined &&
|
|
23
|
+
scope.Bun === undefined &&
|
|
24
|
+
scope.EdgeRuntime === undefined &&
|
|
25
|
+
scope.WebSocketPair === undefined);
|
|
26
|
+
}
|
|
27
|
+
/** Reports whether the runtime supports request headers in native WebSocket options. */
|
|
28
|
+
function supportsWebSocketRequestHeaders() {
|
|
29
|
+
const scope = globalThis;
|
|
30
|
+
if (isRunningInBrowserOrBrowserWorker() ||
|
|
31
|
+
scope.EdgeRuntime !== undefined ||
|
|
32
|
+
scope.WebSocketPair !== undefined ||
|
|
33
|
+
scope.navigator?.userAgent === 'Cloudflare-Workers') {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (scope.Deno !== undefined) {
|
|
37
|
+
const [major, minor] = (scope.Deno.version?.deno ?? '').split('.').map(Number);
|
|
38
|
+
return major !== undefined && minor !== undefined && (major > 2 || (major === 2 && minor >= 5));
|
|
39
|
+
}
|
|
40
|
+
if (typeof scope.Bun?.version === 'string') {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
return (Object.prototype.toString.call(scope.process) === '[object process]' &&
|
|
44
|
+
typeof scope.process?.versions?.node === 'string');
|
|
45
|
+
}
|
|
46
|
+
/** Removes Azure credentials while preserving the existing public URL redaction contract. */
|
|
47
|
+
function redactAzureCredentials(url, isBearerToken) {
|
|
48
|
+
let hasApiKey = !isBearerToken;
|
|
49
|
+
let hasAuthorization = isBearerToken;
|
|
50
|
+
const parameterNames = [...url.searchParams.keys()];
|
|
51
|
+
for (const name of parameterNames) {
|
|
52
|
+
if (name.toLowerCase() === 'api-key') {
|
|
53
|
+
hasApiKey = true;
|
|
54
|
+
url.searchParams.delete(name);
|
|
55
|
+
}
|
|
56
|
+
else if (name.toLowerCase() === 'authorization') {
|
|
57
|
+
hasAuthorization = true;
|
|
58
|
+
url.searchParams.delete(name);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if (hasApiKey) {
|
|
13
62
|
url.searchParams.set('api-key', '<REDACTED>');
|
|
14
63
|
}
|
|
15
64
|
if (hasAuthorization) {
|
|
16
65
|
url.searchParams.set('Authorization', '<REDACTED>');
|
|
17
66
|
}
|
|
18
67
|
}
|
|
68
|
+
/** Opens an Azure native socket with header authentication and a credential-free URL. */
|
|
69
|
+
function createAzureWebSocket(url, apiKey, isBearerToken, protocols) {
|
|
70
|
+
if (!supportsWebSocketRequestHeaders()) {
|
|
71
|
+
throw new error_1.OpenAIError('Azure OpenAI Realtime credentials require a WebSocket transport that supports request headers; use openai/realtime/ws or a server-side authentication proxy.');
|
|
72
|
+
}
|
|
73
|
+
if (!apiKey) {
|
|
74
|
+
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
75
|
+
}
|
|
76
|
+
redactAzureCredentials(url, isBearerToken);
|
|
77
|
+
const socketURL = new URL(url);
|
|
78
|
+
socketURL.searchParams.delete('api-key');
|
|
79
|
+
socketURL.searchParams.delete('Authorization');
|
|
80
|
+
const headers = isBearerToken ? { Authorization: `Bearer ${apiKey}` } : { 'api-key': apiKey };
|
|
81
|
+
// @ts-ignore
|
|
82
|
+
return new WebSocket(socketURL.toString(), { protocols, headers });
|
|
83
|
+
}
|
|
84
|
+
/** Prevents credentials from being attached outside the configured secure origin. */
|
|
85
|
+
function assertTrustedRealtimeURL(client, url) {
|
|
86
|
+
if (url.protocol !== 'wss:') {
|
|
87
|
+
throw new error_1.OpenAIError('Realtime WebSocket URLs must use the wss: protocol.');
|
|
88
|
+
}
|
|
89
|
+
const configuredURL = new URL(client.baseURL);
|
|
90
|
+
configuredURL.protocol = 'wss:';
|
|
91
|
+
if (url.origin !== configuredURL.origin) {
|
|
92
|
+
throw new error_1.OpenAIError('Realtime WebSocket URL origin must match the configured client origin.');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
19
95
|
/**
|
|
20
96
|
* Connects to the beta Realtime API using the runtime's native `WebSocket` implementation.
|
|
21
97
|
*
|
|
@@ -24,9 +100,6 @@ function redactAzureCredentials(url) {
|
|
|
24
100
|
* listener before using the connection. Use the stable Realtime helper for
|
|
25
101
|
* Azure sideband calls.
|
|
26
102
|
*/
|
|
27
|
-
function resolveRealtimeURL(client, props) {
|
|
28
|
-
return props.__url ?? (0, internal_base_1.buildRealtimeURL)(client, props);
|
|
29
|
-
}
|
|
30
103
|
class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
31
104
|
/**
|
|
32
105
|
* Immediately opens a beta Realtime session or attaches to an existing non-Azure call.
|
|
@@ -46,7 +119,7 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
46
119
|
const dangerouslyAllowBrowser = props.dangerouslyAllowBrowser ??
|
|
47
120
|
client?._options?.dangerouslyAllowBrowser ??
|
|
48
121
|
(client?.apiKey?.startsWith('ek_') ? true : null);
|
|
49
|
-
if (!dangerouslyAllowBrowser && (
|
|
122
|
+
if (!dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {
|
|
50
123
|
throw new error_1.OpenAIError("It looks like you're running in a browser-like environment.\n\nThis is disabled by default, as it risks exposing your secret API credentials to attackers.\n\nYou can avoid this error by creating an ephemeral session token:\nhttps://platform.openai.com/docs/api-reference/realtime-sessions\n");
|
|
51
124
|
}
|
|
52
125
|
client ?? (client = new index_1.OpenAI({ dangerouslyAllowBrowser }));
|
|
@@ -56,19 +129,31 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
56
129
|
'Use the .create() method so that the key is resolved before connecting.',
|
|
57
130
|
].join('\n'));
|
|
58
131
|
}
|
|
59
|
-
this.url =
|
|
132
|
+
this.url = (0, internal_base_1.buildRealtimeURL)(client, props);
|
|
60
133
|
props.onURL?.(this.url);
|
|
134
|
+
assertTrustedRealtimeURL(client, this.url);
|
|
61
135
|
(0, bedrock_1.assertBedrockWebSocketOrigin)(client, this.url);
|
|
62
|
-
|
|
63
|
-
|
|
136
|
+
const azure = (0, internal_base_1.isAzure)(client);
|
|
137
|
+
const protocols = [
|
|
64
138
|
'realtime',
|
|
65
|
-
...(
|
|
139
|
+
...(azure ? [] : [`openai-insecure-api-key.${client.apiKey}`]),
|
|
66
140
|
'openai-beta.realtime-v1',
|
|
67
|
-
]
|
|
141
|
+
];
|
|
142
|
+
this.socket = azure
|
|
143
|
+
? createAzureWebSocket(this.url, client.apiKey, props.__resolvedApiKey === true, protocols)
|
|
144
|
+
: new WebSocket(this.url.toString(), protocols);
|
|
68
145
|
this.socket.addEventListener('message', (websocketEvent) => {
|
|
69
146
|
const event = (() => {
|
|
70
147
|
try {
|
|
71
|
-
|
|
148
|
+
const parsedEvent = (0, internal_base_1.parseRealtimeEvent)(websocketEvent.data.toString());
|
|
149
|
+
if (typeof parsedEvent !== 'object' ||
|
|
150
|
+
parsedEvent === null ||
|
|
151
|
+
Array.isArray(parsedEvent) ||
|
|
152
|
+
!Object.getOwnPropertyDescriptor(parsedEvent, 'type') ||
|
|
153
|
+
typeof parsedEvent.type !== 'string') {
|
|
154
|
+
throw new TypeError('Realtime WebSocket event must be an object with a string type.');
|
|
155
|
+
}
|
|
156
|
+
return parsedEvent;
|
|
72
157
|
}
|
|
73
158
|
catch (err) {
|
|
74
159
|
this._onError(null, 'could not parse websocket event', err);
|
|
@@ -89,9 +174,6 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
89
174
|
this.socket.addEventListener('error', (event) => {
|
|
90
175
|
this._onError(null, event.message, null);
|
|
91
176
|
});
|
|
92
|
-
if ((0, internal_base_1.isAzure)(client)) {
|
|
93
|
-
redactAzureCredentials(this.url);
|
|
94
|
-
}
|
|
95
177
|
}
|
|
96
178
|
/**
|
|
97
179
|
* Resolves a client's current API credential before opening a beta Realtime WebSocket.
|
|
@@ -103,16 +185,19 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
103
185
|
*/
|
|
104
186
|
static async create(client, props) {
|
|
105
187
|
const url = (0, internal_base_1.buildRealtimeURL)(client, props);
|
|
188
|
+
assertTrustedRealtimeURL(client, url);
|
|
106
189
|
(0, bedrock_1.assertBedrockWebSocketOrigin)(client, url);
|
|
107
190
|
const resolvedApiKey = await client._callApiKey();
|
|
108
|
-
|
|
191
|
+
assertTrustedRealtimeURL(client, url);
|
|
192
|
+
(0, bedrock_1.assertBedrockWebSocketOrigin)(client, url);
|
|
193
|
+
return new OpenAIRealtimeWebSocket({ ...props, __resolvedApiKey: resolvedApiKey }, client);
|
|
109
194
|
}
|
|
110
195
|
/**
|
|
111
196
|
* Opens a native beta Azure OpenAI Realtime session for a model deployment.
|
|
112
197
|
*
|
|
113
|
-
* Azure credentials are
|
|
114
|
-
*
|
|
115
|
-
*
|
|
198
|
+
* Azure credentials are sent in WebSocket handshake headers and never appear
|
|
199
|
+
* in the native socket URL. Browser WebSockets cannot set these headers;
|
|
200
|
+
* use a server-side authentication proxy or the Node.js `ws` transport.
|
|
116
201
|
*
|
|
117
202
|
* @param client Azure OpenAI client that supplies the endpoint and credential.
|
|
118
203
|
* @param options Optional deployment override and browser-safety settings.
|
|
@@ -124,15 +209,6 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
124
209
|
if (!apiKey) {
|
|
125
210
|
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
126
211
|
}
|
|
127
|
-
const azureApiKey = apiKey;
|
|
128
|
-
function onURL(url) {
|
|
129
|
-
if (isApiKeyProvider) {
|
|
130
|
-
url.searchParams.set('Authorization', `Bearer ${azureApiKey}`);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
url.searchParams.set('api-key', azureApiKey);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
212
|
const deploymentName = options.deploymentName ?? client.deploymentName;
|
|
137
213
|
if (!deploymentName) {
|
|
138
214
|
throw new Error('No deployment name provided');
|
|
@@ -140,7 +216,6 @@ class OpenAIRealtimeWebSocket extends internal_base_1.OpenAIRealtimeEmitter {
|
|
|
140
216
|
const { dangerouslyAllowBrowser } = options;
|
|
141
217
|
return new OpenAIRealtimeWebSocket({
|
|
142
218
|
model: deploymentName,
|
|
143
|
-
onURL,
|
|
144
219
|
...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
|
|
145
220
|
__resolvedApiKey: isApiKeyProvider,
|
|
146
221
|
}, client);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":";;;AACA,uDAAsE;AACtE,0CAAqC;AACrC,0CAA0C;AAE1C,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/beta/realtime/websocket.ts"],"names":[],"mappings":"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"}
|