openai 7.10.0 → 7.13.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 +203 -0
- package/README.md +7 -5
- package/_vendor/partial-json-parser/parser.d.mts.map +1 -1
- package/_vendor/partial-json-parser/parser.d.ts.map +1 -1
- package/_vendor/partial-json-parser/parser.js +4 -3
- package/_vendor/partial-json-parser/parser.js.map +1 -1
- package/_vendor/partial-json-parser/parser.mjs +4 -3
- package/_vendor/partial-json-parser/parser.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.js +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.mjs +1 -1
- package/_vendor/zod-to-json-schema/parsers/string.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/tuple.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/tuple.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/tuple.js +19 -12
- package/_vendor/zod-to-json-schema/parsers/tuple.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/tuple.mjs +19 -12
- package/_vendor/zod-to-json-schema/parsers/tuple.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 +6 -2
- package/_vendor/zod-to-json-schema/zodToJsonSchema.js.map +1 -1
- package/_vendor/zod-to-json-schema/zodToJsonSchema.mjs +6 -2
- 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 +10 -5
- package/auth/subject-token-providers.js.map +1 -1
- package/auth/subject-token-providers.mjs +10 -5
- 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 +21 -11
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +21 -11
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/azure.d.mts.map +1 -1
- package/azure.d.ts.map +1 -1
- package/azure.js +31 -2
- package/azure.js.map +1 -1
- package/azure.mjs +32 -3
- package/azure.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 +3 -2
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +3 -2
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts +2 -0
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts +2 -0
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +12 -7
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +12 -7
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts +2 -0
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts +2 -0
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +7 -5
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +7 -5
- package/beta/realtime/ws.mjs.map +1 -1
- package/client.d.mts +9 -1
- package/client.d.mts.map +1 -1
- package/client.d.ts +9 -1
- package/client.d.ts.map +1 -1
- package/client.js +17 -4
- package/client.js.map +1 -1
- package/client.mjs +17 -4
- package/client.mjs.map +1 -1
- package/core/EventEmitter.d.mts +2 -1
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts +2 -1
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +2 -1
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +2 -1
- package/core/EventEmitter.mjs.map +1 -1
- package/core/pagination.js +1 -1
- package/core/pagination.js.map +1 -1
- package/core/pagination.mjs +1 -1
- package/core/pagination.mjs.map +1 -1
- package/core/streaming.d.mts +8 -0
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts +8 -0
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +68 -15
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +68 -15
- package/core/streaming.mjs.map +1 -1
- package/helpers/audio.d.mts +1 -1
- package/helpers/audio.d.mts.map +1 -1
- package/helpers/audio.d.ts +1 -1
- package/helpers/audio.d.ts.map +1 -1
- package/helpers/audio.js +25 -5
- package/helpers/audio.js.map +1 -1
- package/helpers/audio.mjs +25 -5
- package/helpers/audio.mjs.map +1 -1
- package/helpers/zod.d.mts +28 -15
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts +28 -15
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +30 -23
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +30 -23
- package/helpers/zod.mjs.map +1 -1
- package/index.js +4 -5
- package/internal/bedrock.d.mts +11 -0
- package/internal/bedrock.d.mts.map +1 -1
- package/internal/bedrock.d.ts +11 -0
- package/internal/bedrock.d.ts.map +1 -1
- package/internal/bedrock.js +71 -55
- package/internal/bedrock.js.map +1 -1
- package/internal/bedrock.mjs +70 -55
- package/internal/bedrock.mjs.map +1 -1
- package/internal/detect-platform.js +2 -2
- package/internal/detect-platform.js.map +1 -1
- package/internal/detect-platform.mjs +2 -2
- package/internal/detect-platform.mjs.map +1 -1
- package/internal/errors.d.mts.map +1 -1
- package/internal/errors.d.ts.map +1 -1
- package/internal/errors.js +3 -2
- package/internal/errors.js.map +1 -1
- package/internal/errors.mjs +3 -2
- package/internal/errors.mjs.map +1 -1
- package/internal/headers.d.mts.map +1 -1
- package/internal/headers.d.ts.map +1 -1
- package/internal/headers.js +4 -5
- package/internal/headers.js.map +1 -1
- package/internal/headers.mjs +4 -5
- package/internal/headers.mjs.map +1 -1
- package/internal/parse.js +1 -1
- package/internal/parse.js.map +1 -1
- package/internal/parse.mjs +1 -1
- package/internal/parse.mjs.map +1 -1
- package/internal/realtime-credentials.d.mts +15 -0
- package/internal/realtime-credentials.d.mts.map +1 -0
- package/internal/realtime-credentials.d.ts +15 -0
- package/internal/realtime-credentials.d.ts.map +1 -0
- package/internal/realtime-credentials.js +23 -0
- package/internal/realtime-credentials.js.map +1 -0
- package/internal/realtime-credentials.mjs +19 -0
- package/internal/realtime-credentials.mjs.map +1 -0
- 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 +2 -1
- package/internal/responses/response-accumulator.js.map +1 -1
- package/internal/responses/response-accumulator.mjs +2 -1
- package/internal/responses/response-accumulator.mjs.map +1 -1
- package/internal/to-file.d.mts +2 -1
- package/internal/to-file.d.mts.map +1 -1
- package/internal/to-file.d.ts +2 -1
- package/internal/to-file.d.ts.map +1 -1
- package/internal/to-file.js +5 -4
- package/internal/to-file.js.map +1 -1
- package/internal/to-file.mjs +6 -5
- package/internal/to-file.mjs.map +1 -1
- package/internal/types.d.mts +3 -3
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +3 -3
- package/internal/types.d.ts.map +1 -1
- package/internal/uploads.d.mts +2 -0
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts +2 -0
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.js +12 -1
- package/internal/uploads.js.map +1 -1
- package/internal/uploads.mjs +11 -1
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/base64.d.mts.map +1 -1
- package/internal/utils/base64.d.ts.map +1 -1
- package/internal/utils/base64.js +3 -0
- package/internal/utils/base64.js.map +1 -1
- package/internal/utils/base64.mjs +3 -0
- package/internal/utils/base64.mjs.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
- package/lib/AbstractChatCompletionRunner.js +31 -9
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +31 -9
- package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
- package/lib/AssistantStream.d.mts +4 -1
- package/lib/AssistantStream.d.mts.map +1 -1
- package/lib/AssistantStream.d.ts +4 -1
- package/lib/AssistantStream.d.ts.map +1 -1
- package/lib/AssistantStream.js +23 -8
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +24 -9
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionRunner.d.mts +6 -3
- package/lib/ChatCompletionRunner.d.mts.map +1 -1
- package/lib/ChatCompletionRunner.d.ts +6 -3
- package/lib/ChatCompletionRunner.d.ts.map +1 -1
- package/lib/ChatCompletionRunner.js +7 -4
- package/lib/ChatCompletionRunner.js.map +1 -1
- package/lib/ChatCompletionRunner.mjs +7 -4
- package/lib/ChatCompletionRunner.mjs.map +1 -1
- package/lib/ChatCompletionStream.d.mts.map +1 -1
- package/lib/ChatCompletionStream.d.ts.map +1 -1
- package/lib/ChatCompletionStream.js +6 -0
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +7 -1
- package/lib/ChatCompletionStream.mjs.map +1 -1
- package/lib/ChatCompletionStreamingRunner.d.mts.map +1 -1
- package/lib/ChatCompletionStreamingRunner.d.ts.map +1 -1
- package/lib/ChatCompletionStreamingRunner.js +1 -0
- package/lib/ChatCompletionStreamingRunner.js.map +1 -1
- package/lib/ChatCompletionStreamingRunner.mjs +1 -0
- package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
- package/lib/EventEmitter.d.mts +3 -1
- package/lib/EventEmitter.d.mts.map +1 -1
- package/lib/EventEmitter.d.ts +3 -1
- package/lib/EventEmitter.d.ts.map +1 -1
- package/lib/EventEmitter.js +2 -1
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +2 -1
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +2 -1
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +2 -1
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +99 -46
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +99 -46
- package/lib/EventStream.mjs.map +1 -1
- package/lib/ResponsesParser.d.mts +5 -4
- package/lib/ResponsesParser.d.mts.map +1 -1
- package/lib/ResponsesParser.d.ts +5 -4
- package/lib/ResponsesParser.d.ts.map +1 -1
- package/lib/ResponsesParser.js +21 -7
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +21 -7
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/RunnableFunction.d.mts +2 -2
- package/lib/RunnableFunction.d.mts.map +1 -1
- package/lib/RunnableFunction.d.ts +2 -2
- package/lib/RunnableFunction.d.ts.map +1 -1
- package/lib/embeddings.d.mts.map +1 -1
- package/lib/embeddings.d.ts.map +1 -1
- package/lib/embeddings.js +18 -12
- package/lib/embeddings.js.map +1 -1
- package/lib/embeddings.mjs +18 -12
- package/lib/embeddings.mjs.map +1 -1
- package/lib/file-processing.d.mts +3 -2
- package/lib/file-processing.d.mts.map +1 -1
- package/lib/file-processing.d.ts +3 -2
- package/lib/file-processing.d.ts.map +1 -1
- package/lib/file-processing.js +5 -4
- package/lib/file-processing.js.map +1 -1
- package/lib/file-processing.mjs +5 -4
- package/lib/file-processing.mjs.map +1 -1
- package/lib/parser.d.mts +16 -4
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts +16 -4
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.js +1 -1
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +1 -1
- package/lib/parser.mjs.map +1 -1
- package/lib/polling.d.mts +2 -2
- package/lib/polling.d.mts.map +1 -1
- package/lib/polling.d.ts +2 -2
- package/lib/polling.d.ts.map +1 -1
- package/lib/polling.js +5 -4
- package/lib/polling.js.map +1 -1
- package/lib/polling.mjs +5 -4
- package/lib/polling.mjs.map +1 -1
- package/lib/responses/EventTypes.d.mts +2 -2
- package/lib/responses/EventTypes.d.mts.map +1 -1
- package/lib/responses/EventTypes.d.ts +2 -2
- package/lib/responses/EventTypes.d.ts.map +1 -1
- package/lib/responses/ResponseInputItems.d.mts +3 -2
- package/lib/responses/ResponseInputItems.d.mts.map +1 -1
- package/lib/responses/ResponseInputItems.d.ts +3 -2
- package/lib/responses/ResponseInputItems.d.ts.map +1 -1
- package/lib/responses/ResponseInputItems.js +27 -4
- package/lib/responses/ResponseInputItems.js.map +1 -1
- package/lib/responses/ResponseInputItems.mjs +27 -4
- package/lib/responses/ResponseInputItems.mjs.map +1 -1
- package/lib/transform.d.mts.map +1 -1
- package/lib/transform.d.ts.map +1 -1
- package/lib/transform.js +1 -0
- package/lib/transform.js.map +1 -1
- package/lib/transform.mjs +1 -0
- package/lib/transform.mjs.map +1 -1
- package/lib/vector-store-polling.d.mts +2 -2
- package/lib/vector-store-polling.d.ts +2 -2
- package/lib/vector-store-polling.js +3 -3
- package/lib/vector-store-polling.js.map +1 -1
- package/lib/vector-store-polling.mjs +3 -3
- package/lib/vector-store-polling.mjs.map +1 -1
- package/lib/vector-store-upload.d.mts +2 -1
- package/lib/vector-store-upload.d.mts.map +1 -1
- package/lib/vector-store-upload.d.ts +2 -1
- package/lib/vector-store-upload.d.ts.map +1 -1
- package/lib/vector-store-upload.js +5 -1
- package/lib/vector-store-upload.js.map +1 -1
- package/lib/vector-store-upload.mjs +5 -1
- package/lib/vector-store-upload.mjs.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 +14 -16
- package/providers/bedrock/aws.js.map +1 -1
- package/providers/bedrock/aws.mjs +15 -17
- 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 +3 -5
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +3 -5
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts +2 -0
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts +2 -0
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +12 -6
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +12 -6
- package/realtime/websocket.mjs.map +1 -1
- package/realtime/ws.d.mts +2 -0
- package/realtime/ws.d.mts.map +1 -1
- package/realtime/ws.d.ts +2 -0
- package/realtime/ws.d.ts.map +1 -1
- package/realtime/ws.js +7 -4
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +7 -4
- package/realtime/ws.mjs.map +1 -1
- package/resources/admin/organization/audit-logs.d.mts +1 -1
- package/resources/admin/organization/audit-logs.d.ts +1 -1
- package/resources/admin/organization/projects/api-keys.d.mts +5 -0
- package/resources/admin/organization/projects/api-keys.d.mts.map +1 -1
- package/resources/admin/organization/projects/api-keys.d.ts +5 -0
- package/resources/admin/organization/projects/api-keys.d.ts.map +1 -1
- package/resources/admin/organization/projects/projects.d.mts +2 -2
- package/resources/admin/organization/projects/projects.d.ts +2 -2
- package/resources/admin/organization/projects/service-accounts/api-keys.d.mts +9 -0
- package/resources/admin/organization/projects/service-accounts/api-keys.d.mts.map +1 -1
- package/resources/admin/organization/projects/service-accounts/api-keys.d.ts +9 -0
- package/resources/admin/organization/projects/service-accounts/api-keys.d.ts.map +1 -1
- package/resources/admin/organization/projects/service-accounts/service-accounts.d.mts +13 -0
- package/resources/admin/organization/projects/service-accounts/service-accounts.d.mts.map +1 -1
- package/resources/admin/organization/projects/service-accounts/service-accounts.d.ts +13 -0
- package/resources/admin/organization/projects/service-accounts/service-accounts.d.ts.map +1 -1
- package/resources/admin/organization/projects/service-accounts/service-accounts.js.map +1 -1
- package/resources/admin/organization/projects/service-accounts/service-accounts.mjs.map +1 -1
- package/resources/audio/speech.d.mts +3 -2
- package/resources/audio/speech.d.mts.map +1 -1
- package/resources/audio/speech.d.ts +3 -2
- package/resources/audio/speech.d.ts.map +1 -1
- package/resources/audio/transcriptions.d.mts +10 -10
- package/resources/audio/transcriptions.d.ts +10 -10
- package/resources/audio/translations.d.mts +1 -1
- package/resources/audio/translations.d.ts +1 -1
- package/resources/batches.d.mts +6 -5
- package/resources/batches.d.mts.map +1 -1
- package/resources/batches.d.ts +6 -5
- package/resources/batches.d.ts.map +1 -1
- package/resources/beta/assistants.d.mts +143 -147
- package/resources/beta/assistants.d.mts.map +1 -1
- package/resources/beta/assistants.d.ts +143 -147
- package/resources/beta/assistants.d.ts.map +1 -1
- package/resources/beta/responses/input-tokens.d.mts +11 -11
- package/resources/beta/responses/input-tokens.d.ts +11 -11
- package/resources/beta/responses/responses.d.mts +284 -194
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +284 -194
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js +3 -3
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs +3 -3
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/beta/threads/messages.d.mts +29 -23
- package/resources/beta/threads/messages.d.mts.map +1 -1
- package/resources/beta/threads/messages.d.ts +29 -23
- package/resources/beta/threads/messages.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.d.mts +39 -35
- package/resources/beta/threads/runs/runs.d.mts.map +1 -1
- package/resources/beta/threads/runs/runs.d.ts +39 -35
- package/resources/beta/threads/runs/runs.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.js.map +1 -1
- package/resources/beta/threads/runs/runs.mjs.map +1 -1
- package/resources/beta/threads/runs/steps.d.mts +14 -15
- package/resources/beta/threads/runs/steps.d.mts.map +1 -1
- package/resources/beta/threads/runs/steps.d.ts +14 -15
- package/resources/beta/threads/runs/steps.d.ts.map +1 -1
- package/resources/beta/threads/threads.d.mts +53 -50
- package/resources/beta/threads/threads.d.mts.map +1 -1
- package/resources/beta/threads/threads.d.ts +53 -50
- package/resources/beta/threads/threads.d.ts.map +1 -1
- package/resources/beta/threads/threads.js.map +1 -1
- package/resources/beta/threads/threads.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +89 -81
- package/resources/chat/completions/completions.d.mts.map +1 -1
- package/resources/chat/completions/completions.d.ts +89 -81
- 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/completions.d.mts +15 -14
- package/resources/completions.d.mts.map +1 -1
- package/resources/completions.d.ts +15 -14
- package/resources/completions.d.ts.map +1 -1
- package/resources/content-provenance-checks.d.mts +1 -1
- package/resources/content-provenance-checks.d.ts +1 -1
- package/resources/content-provenance-checks.js +1 -1
- package/resources/content-provenance-checks.mjs +1 -1
- package/resources/conversations/items.d.mts +12 -3
- package/resources/conversations/items.d.mts.map +1 -1
- package/resources/conversations/items.d.ts +12 -3
- package/resources/conversations/items.d.ts.map +1 -1
- package/resources/embeddings.d.mts +6 -6
- package/resources/embeddings.d.ts +6 -6
- package/resources/evals/evals.d.mts +1 -1
- package/resources/evals/evals.d.ts +1 -1
- package/resources/evals/evals.js +1 -1
- package/resources/evals/evals.mjs +1 -1
- package/resources/evals/runs/runs.d.mts +62 -57
- package/resources/evals/runs/runs.d.mts.map +1 -1
- package/resources/evals/runs/runs.d.ts +62 -57
- package/resources/evals/runs/runs.d.ts.map +1 -1
- package/resources/evals/runs/runs.js.map +1 -1
- package/resources/evals/runs/runs.mjs.map +1 -1
- package/resources/files.d.mts +5 -5
- package/resources/files.d.ts +5 -5
- package/resources/files.js +5 -5
- package/resources/files.mjs +5 -5
- package/resources/fine-tuning/alpha/graders.d.mts +5 -4
- package/resources/fine-tuning/alpha/graders.d.mts.map +1 -1
- package/resources/fine-tuning/alpha/graders.d.ts +5 -4
- package/resources/fine-tuning/alpha/graders.d.ts.map +1 -1
- package/resources/fine-tuning/checkpoints/permissions.d.mts +8 -4
- package/resources/fine-tuning/checkpoints/permissions.d.mts.map +1 -1
- package/resources/fine-tuning/checkpoints/permissions.d.ts +8 -4
- package/resources/fine-tuning/checkpoints/permissions.d.ts.map +1 -1
- package/resources/fine-tuning/checkpoints/permissions.js +8 -4
- package/resources/fine-tuning/checkpoints/permissions.js.map +1 -1
- package/resources/fine-tuning/checkpoints/permissions.mjs +8 -4
- package/resources/fine-tuning/checkpoints/permissions.mjs.map +1 -1
- package/resources/fine-tuning/jobs/jobs.d.mts +13 -12
- package/resources/fine-tuning/jobs/jobs.d.mts.map +1 -1
- package/resources/fine-tuning/jobs/jobs.d.ts +13 -12
- package/resources/fine-tuning/jobs/jobs.d.ts.map +1 -1
- package/resources/fine-tuning/jobs/jobs.js +2 -2
- package/resources/fine-tuning/jobs/jobs.js.map +1 -1
- package/resources/fine-tuning/jobs/jobs.mjs +2 -2
- package/resources/fine-tuning/jobs/jobs.mjs.map +1 -1
- package/resources/graders/grader-models.d.mts +1 -1
- package/resources/graders/grader-models.d.ts +1 -1
- package/resources/images.d.mts +83 -68
- package/resources/images.d.mts.map +1 -1
- package/resources/images.d.ts +83 -68
- package/resources/images.d.ts.map +1 -1
- package/resources/images.js.map +1 -1
- package/resources/images.mjs.map +1 -1
- package/resources/moderations.d.mts +5 -4
- package/resources/moderations.d.mts.map +1 -1
- package/resources/moderations.d.ts +5 -4
- package/resources/moderations.d.ts.map +1 -1
- package/resources/moderations.js +2 -1
- package/resources/moderations.js.map +1 -1
- package/resources/moderations.mjs +2 -1
- package/resources/moderations.mjs.map +1 -1
- package/resources/realtime/calls.d.mts +1 -1
- package/resources/realtime/calls.d.ts +1 -1
- package/resources/realtime/client-secrets.d.mts +4 -4
- package/resources/realtime/client-secrets.d.ts +4 -4
- package/resources/realtime/client-secrets.js +1 -1
- package/resources/realtime/client-secrets.mjs +1 -1
- package/resources/realtime/realtime.d.mts +16 -16
- package/resources/realtime/realtime.d.ts +16 -16
- package/resources/responses/input-tokens.d.mts +9 -9
- package/resources/responses/input-tokens.d.ts +9 -9
- package/resources/responses/responses.d.mts +278 -187
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +278 -187
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js +3 -3
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs +3 -3
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/shared.d.mts +12 -12
- package/resources/shared.d.ts +12 -12
- package/resources/uploads/parts.d.mts +5 -4
- package/resources/uploads/parts.d.mts.map +1 -1
- package/resources/uploads/parts.d.ts +5 -4
- package/resources/uploads/parts.d.ts.map +1 -1
- package/resources/uploads/parts.js +5 -4
- package/resources/uploads/parts.js.map +1 -1
- package/resources/uploads/parts.mjs +5 -4
- package/resources/uploads/parts.mjs.map +1 -1
- package/resources/uploads/uploads.d.mts +11 -11
- package/resources/uploads/uploads.d.ts +11 -11
- package/resources/uploads/uploads.js +9 -9
- package/resources/uploads/uploads.mjs +9 -9
- package/resources/vector-stores/file-batches.d.mts +11 -11
- package/resources/vector-stores/file-batches.d.ts +11 -11
- package/resources/vector-stores/files.d.mts +8 -8
- package/resources/vector-stores/files.d.ts +8 -8
- package/resources/vector-stores/files.js +3 -3
- package/resources/vector-stores/files.mjs +3 -3
- package/resources/vector-stores/vector-stores.d.mts +3 -3
- package/resources/vector-stores/vector-stores.d.ts +3 -3
- package/resources/webhooks/webhooks.d.mts +12 -6
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts +12 -6
- package/resources/webhooks/webhooks.d.ts.map +1 -1
- package/src/_vendor/partial-json-parser/parser.ts +4 -3
- package/src/_vendor/zod-to-json-schema/parsers/string.ts +1 -1
- package/src/_vendor/zod-to-json-schema/parsers/tuple.ts +23 -16
- package/src/_vendor/zod-to-json-schema/zodToJsonSchema.ts +11 -6
- package/src/auth/subject-token-providers.ts +12 -7
- package/src/auth/workload-identity-auth.ts +27 -12
- package/src/azure.ts +34 -3
- package/src/beta/realtime/internal-base.ts +3 -2
- package/src/beta/realtime/websocket.ts +17 -7
- package/src/beta/realtime/ws.ts +9 -5
- package/src/client.ts +19 -4
- package/src/core/EventEmitter.ts +5 -8
- package/src/core/pagination.ts +1 -1
- package/src/core/streaming.ts +69 -13
- package/src/helpers/audio.ts +27 -6
- package/src/helpers/zod.ts +78 -29
- package/src/internal/bedrock.ts +84 -58
- package/src/internal/detect-platform.ts +2 -2
- package/src/internal/errors.ts +3 -2
- package/src/internal/headers.ts +7 -5
- package/src/internal/parse.ts +1 -1
- package/src/internal/realtime-credentials.ts +27 -0
- package/src/internal/responses/response-accumulator.ts +1 -0
- package/src/internal/to-file.ts +6 -5
- package/src/internal/uploads.ts +12 -1
- package/src/internal/utils/base64.ts +3 -0
- package/src/lib/AbstractChatCompletionRunner.ts +31 -6
- package/src/lib/AssistantStream.ts +25 -11
- package/src/lib/ChatCompletionRunner.ts +8 -4
- package/src/lib/ChatCompletionStream.ts +8 -0
- package/src/lib/ChatCompletionStreamingRunner.ts +1 -0
- package/src/lib/EventEmitter.ts +17 -8
- package/src/lib/EventStream.ts +105 -52
- package/src/lib/ResponsesParser.ts +33 -12
- package/src/lib/RunnableFunction.ts +2 -2
- package/src/lib/embeddings.ts +18 -12
- package/src/lib/file-processing.ts +5 -4
- package/src/lib/parser.ts +35 -11
- package/src/lib/polling.ts +5 -4
- package/src/lib/responses/EventTypes.ts +3 -69
- package/src/lib/responses/ResponseInputItems.ts +29 -4
- package/src/lib/transform.ts +1 -0
- package/src/lib/vector-store-polling.ts +3 -3
- package/src/lib/vector-store-upload.ts +5 -1
- package/src/providers/bedrock/aws.ts +23 -24
- package/src/realtime/internal-base.ts +3 -5
- package/src/realtime/websocket.ts +14 -6
- package/src/realtime/ws.ts +9 -4
- package/src/resources/admin/organization/audit-logs.ts +1 -1
- package/src/resources/admin/organization/projects/api-keys.ts +6 -0
- package/src/resources/admin/organization/projects/projects.ts +2 -2
- package/src/resources/admin/organization/projects/service-accounts/api-keys.ts +11 -0
- package/src/resources/admin/organization/projects/service-accounts/service-accounts.ts +15 -0
- package/src/resources/audio/speech.ts +3 -2
- package/src/resources/audio/transcriptions.ts +10 -10
- package/src/resources/audio/translations.ts +1 -1
- package/src/resources/batches.ts +6 -5
- package/src/resources/beta/assistants.ts +143 -147
- package/src/resources/beta/responses/input-tokens.ts +11 -11
- package/src/resources/beta/responses/responses.ts +315 -192
- package/src/resources/beta/threads/messages.ts +29 -23
- package/src/resources/beta/threads/runs/runs.ts +39 -35
- package/src/resources/beta/threads/runs/steps.ts +14 -15
- package/src/resources/beta/threads/threads.ts +53 -50
- package/src/resources/chat/completions/completions.ts +89 -81
- package/src/resources/completions.ts +15 -14
- package/src/resources/content-provenance-checks.ts +1 -1
- package/src/resources/conversations/items.ts +14 -3
- package/src/resources/embeddings.ts +6 -6
- package/src/resources/evals/evals.ts +1 -1
- package/src/resources/evals/runs/runs.ts +62 -57
- package/src/resources/files.ts +5 -5
- package/src/resources/fine-tuning/alpha/graders.ts +5 -4
- package/src/resources/fine-tuning/checkpoints/permissions.ts +8 -4
- package/src/resources/fine-tuning/jobs/jobs.ts +13 -12
- package/src/resources/graders/grader-models.ts +1 -1
- package/src/resources/images.ts +86 -67
- package/src/resources/moderations.ts +5 -4
- package/src/resources/realtime/calls.ts +1 -1
- package/src/resources/realtime/client-secrets.ts +4 -4
- package/src/resources/realtime/realtime.ts +16 -16
- package/src/resources/responses/input-tokens.ts +9 -9
- package/src/resources/responses/responses.ts +309 -185
- package/src/resources/shared.ts +12 -12
- package/src/resources/uploads/parts.ts +5 -4
- package/src/resources/uploads/uploads.ts +11 -11
- package/src/resources/vector-stores/file-batches.ts +11 -11
- package/src/resources/vector-stores/files.ts +8 -8
- package/src/resources/vector-stores/vector-stores.ts +3 -3
- package/src/resources/webhooks/webhooks.ts +12 -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
|
@@ -15,7 +15,8 @@ type ResponseAdditionalToolsInputItem = Extract<ResponseInputItem, { type: 'addi
|
|
|
15
15
|
/**
|
|
16
16
|
* Normalizes a mixed array of stored response history items into clean
|
|
17
17
|
* `ResponseInputItem`s that can be sent back to `responses.create()`. Known items
|
|
18
|
-
* that cannot be replayed without changing their meaning are omitted.
|
|
18
|
+
* that cannot be replayed without changing their meaning are omitted. SDK-only
|
|
19
|
+
* parsed values are removed without changing the stored items.
|
|
19
20
|
*
|
|
20
21
|
* @throws {TypeError} If an item type is not supported by the installed SDK.
|
|
21
22
|
*/
|
|
@@ -33,12 +34,38 @@ export function toResponseInputItems(items: Iterable<ResponseInputItemLike>): Re
|
|
|
33
34
|
/**
|
|
34
35
|
* Normalizes a stored response history item into a clean `ResponseInputItem`, or
|
|
35
36
|
* returns `null` when a known item cannot be replayed without changing its
|
|
36
|
-
* meaning.
|
|
37
|
+
* meaning. SDK-only parsed values are removed without changing the stored item.
|
|
37
38
|
*
|
|
38
39
|
* @throws {TypeError} If the item type is not supported by the installed SDK.
|
|
39
40
|
*/
|
|
40
41
|
export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputItem | null {
|
|
41
42
|
switch (item.type) {
|
|
43
|
+
case 'message': {
|
|
44
|
+
if (item.role !== 'assistant' || !('id' in item) || !Array.isArray(item.content)) {
|
|
45
|
+
return stripCreatedBy(item);
|
|
46
|
+
}
|
|
47
|
+
const content = item.content.map((part) => {
|
|
48
|
+
if ((part.type === 'output_text' || part.type === 'refusal') && 'parsed' in part) {
|
|
49
|
+
const { parsed: _parsed, ...inputPart } = part;
|
|
50
|
+
return inputPart;
|
|
51
|
+
}
|
|
52
|
+
return part;
|
|
53
|
+
});
|
|
54
|
+
if (content.every((part, index) => part === item.content[index])) {
|
|
55
|
+
return stripCreatedBy(item);
|
|
56
|
+
}
|
|
57
|
+
return { ...stripCreatedBy(item), content };
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
case 'function_call': {
|
|
61
|
+
const inputItem = stripCreatedBy(item);
|
|
62
|
+
if (!('parsed_arguments' in inputItem)) {
|
|
63
|
+
return inputItem;
|
|
64
|
+
}
|
|
65
|
+
const { parsed_arguments: _parsedArguments, ...withoutParsedArguments } = inputItem;
|
|
66
|
+
return withoutParsedArguments;
|
|
67
|
+
}
|
|
68
|
+
|
|
42
69
|
case 'additional_tools': {
|
|
43
70
|
if (item.role !== 'developer') {
|
|
44
71
|
return null;
|
|
@@ -87,7 +114,6 @@ export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputI
|
|
|
87
114
|
case 'configuration_update':
|
|
88
115
|
case 'custom_tool_call':
|
|
89
116
|
case 'file_search_call':
|
|
90
|
-
case 'function_call':
|
|
91
117
|
case 'function_call_output':
|
|
92
118
|
case 'image_generation_call':
|
|
93
119
|
case 'item_reference':
|
|
@@ -97,7 +123,6 @@ export function toResponseInputItem(item: ResponseInputItemLike): ResponseInputI
|
|
|
97
123
|
case 'mcp_approval_response':
|
|
98
124
|
case 'mcp_call':
|
|
99
125
|
case 'mcp_list_tools':
|
|
100
|
-
case 'message':
|
|
101
126
|
case 'program':
|
|
102
127
|
case 'program_output':
|
|
103
128
|
case 'reasoning':
|
package/src/lib/transform.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { pollWithResponse } from './polling';
|
|
|
6
6
|
type PollOptions = RequestOptions & { pollIntervalMs?: number };
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* Polls an attached file through the resource's retrieve method
|
|
10
|
-
*
|
|
9
|
+
* Polls an attached file through the resource's retrieve method until it completes,
|
|
10
|
+
* fails, or is cancelled. Retrieval errors are propagated unchanged.
|
|
11
11
|
*
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
@@ -20,7 +20,7 @@ export function pollVectorStoreFile(
|
|
|
20
20
|
return pollWithResponse(
|
|
21
21
|
(headers) => resource.retrieve(fileID, { vector_store_id: vectorStoreID }, { ...options, headers }),
|
|
22
22
|
['in_progress'],
|
|
23
|
-
['failed', 'completed'],
|
|
23
|
+
['failed', 'cancelled', 'completed'],
|
|
24
24
|
options,
|
|
25
25
|
);
|
|
26
26
|
}
|
|
@@ -8,7 +8,8 @@ type UploadOptions = RequestOptions & { pollIntervalMs?: number; maxConcurrency?
|
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Uploads files with a shared iterator, then creates and polls the batch. Every
|
|
11
|
-
* worker settles before upload failures are propagated.
|
|
11
|
+
* worker settles before upload failures are propagated. Zero concurrency is
|
|
12
|
+
* rejected before any upload or batch-creation request.
|
|
12
13
|
*
|
|
13
14
|
* @internal
|
|
14
15
|
*/
|
|
@@ -28,6 +29,9 @@ export async function uploadAndPollVectorStoreFileBatch(
|
|
|
28
29
|
|
|
29
30
|
const configuredConcurrency = options?.maxConcurrency ?? 5;
|
|
30
31
|
const concurrencyLimit = Math.min(configuredConcurrency, files.length);
|
|
32
|
+
if (concurrencyLimit === 0) {
|
|
33
|
+
throw new RangeError('maxConcurrency must be greater than 0');
|
|
34
|
+
}
|
|
31
35
|
const fileIterator = files.values();
|
|
32
36
|
const allFileIds = [...fileIds];
|
|
33
37
|
|
|
@@ -7,9 +7,9 @@ import type { BodyInit } from '../../internal/builtin-types';
|
|
|
7
7
|
import {
|
|
8
8
|
assertBedrockRequestOrigin,
|
|
9
9
|
assertProviderOwnsAuthorization,
|
|
10
|
-
errorWithCause,
|
|
11
10
|
normalizeOptionalString,
|
|
12
11
|
parseBedrockEndpointHostname,
|
|
12
|
+
prepareBedrockAuth,
|
|
13
13
|
resolveBedrockBearerAuth,
|
|
14
14
|
resolveBedrockEndpoint,
|
|
15
15
|
} from '../../internal/bedrock';
|
|
@@ -115,7 +115,7 @@ function requestTarget(parsedURL: URL): { path: string; query: Record<string, st
|
|
|
115
115
|
} else if (typeof existing === 'string') {
|
|
116
116
|
query[name] = [existing, value];
|
|
117
117
|
} else {
|
|
118
|
-
|
|
118
|
+
existing.push(value);
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
return { path: parsedURL.pathname, query };
|
|
@@ -194,14 +194,14 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
|
|
|
194
194
|
}));
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
async prepareRequest(request: FinalizedRequestInit,
|
|
197
|
+
async prepareRequest(request: FinalizedRequestInit, context: ProviderRequestContext): Promise<void> {
|
|
198
198
|
if (Object.prototype.toString.call((globalThis as any).process) !== '[object process]') {
|
|
199
199
|
throw new Errors.OpenAIError(
|
|
200
200
|
'Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.',
|
|
201
201
|
);
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
-
const parsedURL = new URL(url);
|
|
204
|
+
const parsedURL = new URL(context.url);
|
|
205
205
|
const canonicalEndpoint = parseBedrockEndpointHostname(parsedURL.hostname);
|
|
206
206
|
if (canonicalEndpoint && canonicalEndpoint.endpoint !== this.options.endpoint) {
|
|
207
207
|
throw new Errors.OpenAIError(
|
|
@@ -225,27 +225,26 @@ class BedrockSigV4Auth implements BedrockRequestAuth {
|
|
|
225
225
|
const body = signableBody(request.body);
|
|
226
226
|
const target = requestTarget(parsedURL);
|
|
227
227
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
const message = this.options.usesDefaultChain
|
|
228
|
+
await prepareBedrockAuth(request, context, {
|
|
229
|
+
resolve: () =>
|
|
230
|
+
this.signatureV4().sign({
|
|
231
|
+
protocol: parsedURL.protocol,
|
|
232
|
+
hostname: parsedURL.hostname,
|
|
233
|
+
...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
|
|
234
|
+
method,
|
|
235
|
+
...target,
|
|
236
|
+
headers: Object.fromEntries(headers.entries()),
|
|
237
|
+
...(body === undefined ? {} : { body }),
|
|
238
|
+
}),
|
|
239
|
+
failureMessage: this.options.usesDefaultChain
|
|
241
240
|
? 'Could not find credentials for Bedrock. Pass AWS credentials to `bedrock(...)` or configure the default AWS credential chain.'
|
|
242
|
-
: 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.'
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
241
|
+
: 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.',
|
|
242
|
+
apply: (signed) => {
|
|
243
|
+
request.method = method;
|
|
244
|
+
request.redirect = 'manual';
|
|
245
|
+
request.headers = new Headers(signed.headers);
|
|
246
|
+
},
|
|
247
|
+
});
|
|
249
248
|
}
|
|
250
249
|
}
|
|
251
250
|
|
|
@@ -281,19 +281,17 @@ export function buildRealtimeURL(
|
|
|
281
281
|
return url;
|
|
282
282
|
}
|
|
283
283
|
|
|
284
|
-
|
|
284
|
+
const url = new URL(baseURL);
|
|
285
285
|
if (azure) {
|
|
286
|
-
url = new URL(baseURL);
|
|
287
286
|
const basePath = url.pathname.replace(/\/+/g, '/').replace(/\/+$/, '');
|
|
288
287
|
const versionedPath = basePath.endsWith('/v1') ? basePath : `${basePath}/v1`;
|
|
289
288
|
url.pathname = `${versionedPath}/realtime`;
|
|
290
289
|
url.search = '';
|
|
291
|
-
url.hash = '';
|
|
292
290
|
} else {
|
|
293
|
-
|
|
294
|
-
url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
|
|
291
|
+
url.pathname += url.pathname.endsWith('/') ? 'realtime' : '/realtime';
|
|
295
292
|
}
|
|
296
293
|
|
|
294
|
+
url.hash = '';
|
|
297
295
|
url.protocol = 'wss';
|
|
298
296
|
// Sideband control connections attach to an existing call via `call_id`.
|
|
299
297
|
if (hasCallID) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getRealtimeAPIKey, resolveRealtimeAPIKey } from '../internal/realtime-credentials';
|
|
1
2
|
import type { AzureOpenAI } from '../index';
|
|
2
3
|
import { assertBedrockWebSocketOrigin } from '../internal/bedrock';
|
|
3
4
|
import { OpenAI } from '../index';
|
|
@@ -175,15 +176,18 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
175
176
|
onURL?: (url: URL) => void;
|
|
176
177
|
/** Indicates the token was resolved by the factory just before connecting. @internal */
|
|
177
178
|
__resolvedApiKey?: boolean;
|
|
179
|
+
/** Credential captured by an async factory for this connection. @internal */
|
|
180
|
+
__apiKey?: string | null;
|
|
178
181
|
},
|
|
179
182
|
client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
|
|
180
183
|
) {
|
|
181
184
|
super();
|
|
185
|
+
let apiKey = getRealtimeAPIKey(client, props.__apiKey);
|
|
182
186
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
183
187
|
const dangerouslyAllowBrowser =
|
|
184
188
|
props.dangerouslyAllowBrowser ??
|
|
185
189
|
(client as any)?._options?.dangerouslyAllowBrowser ??
|
|
186
|
-
(
|
|
190
|
+
(apiKey?.startsWith('ek_') ? true : null);
|
|
187
191
|
if (!dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {
|
|
188
192
|
throw new OpenAIError(
|
|
189
193
|
"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",
|
|
@@ -191,6 +195,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
191
195
|
}
|
|
192
196
|
|
|
193
197
|
client ??= new OpenAI({ dangerouslyAllowBrowser });
|
|
198
|
+
if (apiKey === undefined) {
|
|
199
|
+
apiKey = client.apiKey;
|
|
200
|
+
}
|
|
194
201
|
|
|
195
202
|
if (hasProvider && !props?.__resolvedApiKey) {
|
|
196
203
|
throw new Error(
|
|
@@ -209,10 +216,10 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
209
216
|
assertBedrockWebSocketOrigin(client, this.url);
|
|
210
217
|
|
|
211
218
|
const azure = isAzure(client);
|
|
212
|
-
const protocols = ['realtime', ...(azure ? [] : [`openai-insecure-api-key.${
|
|
219
|
+
const protocols = ['realtime', ...(azure ? [] : [`openai-insecure-api-key.${apiKey}`])];
|
|
213
220
|
|
|
214
221
|
this.socket = azure
|
|
215
|
-
? createAzureWebSocket(this.url,
|
|
222
|
+
? createAzureWebSocket(this.url, apiKey, props.__resolvedApiKey === true, protocols)
|
|
216
223
|
: new WebSocket(this.url.toString(), protocols);
|
|
217
224
|
|
|
218
225
|
this.socket.addEventListener('message', (websocketEvent: MessageEvent) => {
|
|
@@ -269,7 +276,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
269
276
|
dangerouslyAllowBrowser?: boolean;
|
|
270
277
|
},
|
|
271
278
|
): Promise<OpenAIRealtimeWebSocket> {
|
|
272
|
-
const resolvedApiKey = await client
|
|
279
|
+
const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
|
|
273
280
|
const url = buildRealtimeURL(client, props);
|
|
274
281
|
assertBedrockWebSocketOrigin(client, url);
|
|
275
282
|
return new OpenAIRealtimeWebSocket(
|
|
@@ -277,6 +284,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
277
284
|
...props,
|
|
278
285
|
buildRealtimeURL: () => url,
|
|
279
286
|
__resolvedApiKey: resolvedApiKey,
|
|
287
|
+
__apiKey: apiKey,
|
|
280
288
|
},
|
|
281
289
|
client,
|
|
282
290
|
);
|
|
@@ -301,8 +309,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
301
309
|
} = {},
|
|
302
310
|
): Promise<OpenAIRealtimeWebSocket> {
|
|
303
311
|
const connection = getAzureRealtimeConnection(client, options);
|
|
304
|
-
const isApiKeyProvider = await client
|
|
305
|
-
const apiKey = client.apiKey;
|
|
312
|
+
const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
|
|
306
313
|
if (!apiKey) {
|
|
307
314
|
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
308
315
|
}
|
|
@@ -312,6 +319,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
312
319
|
...connection,
|
|
313
320
|
...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
|
|
314
321
|
__resolvedApiKey: isApiKeyProvider,
|
|
322
|
+
__apiKey: apiKey,
|
|
315
323
|
},
|
|
316
324
|
client,
|
|
317
325
|
);
|
package/src/realtime/ws.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { resolveRealtimeAPIKey } from '../internal/realtime-credentials';
|
|
1
2
|
import * as WS from 'ws';
|
|
2
3
|
import { assertBedrockWebSocketOrigin } from '../internal/bedrock';
|
|
3
4
|
import { protectWebSocketOptionsFromCredentialRedirects } from '../internal/ws';
|
|
@@ -46,11 +47,14 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
46
47
|
|
|
47
48
|
/** Indicates that a function-based credential was resolved by an async factory. @internal */
|
|
48
49
|
__resolvedApiKey?: boolean;
|
|
50
|
+
/** Credential captured by an async factory for this connection. @internal */
|
|
51
|
+
__apiKey?: string | null;
|
|
49
52
|
},
|
|
50
53
|
client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
|
|
51
54
|
) {
|
|
52
55
|
super();
|
|
53
56
|
client ??= new OpenAI();
|
|
57
|
+
const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
|
|
54
58
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
55
59
|
if (hasProvider && !props.__resolvedApiKey) {
|
|
56
60
|
throw new Error(
|
|
@@ -65,7 +69,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
65
69
|
const headers = {
|
|
66
70
|
'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
|
|
67
71
|
...props.options?.headers,
|
|
68
|
-
...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${
|
|
72
|
+
...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
|
|
69
73
|
};
|
|
70
74
|
|
|
71
75
|
this.socket = new WS.WebSocket(
|
|
@@ -130,7 +134,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
130
134
|
options?: WS.ClientOptions | undefined;
|
|
131
135
|
},
|
|
132
136
|
): Promise<OpenAIRealtimeWS> {
|
|
133
|
-
const resolvedApiKey = await client
|
|
137
|
+
const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
|
|
134
138
|
const url = buildRealtimeURL(client, props);
|
|
135
139
|
assertBedrockWebSocketOrigin(client, url);
|
|
136
140
|
return new OpenAIRealtimeWS(
|
|
@@ -138,6 +142,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
138
142
|
...props,
|
|
139
143
|
buildRealtimeURL: () => url,
|
|
140
144
|
__resolvedApiKey: resolvedApiKey,
|
|
145
|
+
__apiKey: apiKey,
|
|
141
146
|
},
|
|
142
147
|
client,
|
|
143
148
|
);
|
|
@@ -162,8 +167,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
162
167
|
} = {},
|
|
163
168
|
): Promise<OpenAIRealtimeWS> {
|
|
164
169
|
const connection = getAzureRealtimeConnection(client, props);
|
|
165
|
-
const isApiKeyProvider = await client
|
|
166
|
-
const apiKey = client.apiKey;
|
|
170
|
+
const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
|
|
167
171
|
if (!apiKey) {
|
|
168
172
|
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
169
173
|
}
|
|
@@ -178,6 +182,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
178
182
|
},
|
|
179
183
|
},
|
|
180
184
|
__resolvedApiKey: isApiKeyProvider,
|
|
185
|
+
__apiKey: apiKey,
|
|
181
186
|
},
|
|
182
187
|
client,
|
|
183
188
|
);
|
|
@@ -1860,7 +1860,7 @@ export interface AuditLogListParams extends ConversationCursorPageParams {
|
|
|
1860
1860
|
/**
|
|
1861
1861
|
* Return only events with a `type` in one of these values. For example,
|
|
1862
1862
|
* `project.created`. For all options, see the documentation for the
|
|
1863
|
-
* [audit log object](https://
|
|
1863
|
+
* [audit log object](https://developers.openai.com/api/reference/resources/admin/subresources/organization/subresources/audit_logs).
|
|
1864
1864
|
*/
|
|
1865
1865
|
event_types?: Array<
|
|
1866
1866
|
| 'api_key.created'
|
|
@@ -130,6 +130,12 @@ export interface ProjectAPIKey {
|
|
|
130
130
|
* The redacted value of the API key
|
|
131
131
|
*/
|
|
132
132
|
redacted_value: string;
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* The Unix timestamp (in seconds) when the API key expires, or null if it does not
|
|
136
|
+
* expire.
|
|
137
|
+
*/
|
|
138
|
+
expires_at?: number | null;
|
|
133
139
|
}
|
|
134
140
|
|
|
135
141
|
export namespace ProjectAPIKey {
|
|
@@ -313,7 +313,7 @@ export interface ProjectCreateParams {
|
|
|
313
313
|
* @deprecated Create the project with the specified data residency region. Your
|
|
314
314
|
* organization must have access to Data residency functionality in order to use.
|
|
315
315
|
* See
|
|
316
|
-
* [data residency controls](https://
|
|
316
|
+
* [data residency controls](https://developers.openai.com/api/docs/guides/your-data#data-residency-controls)
|
|
317
317
|
* to review the functionality and limitations of setting this field. Deprecated:
|
|
318
318
|
* use `residency` instead. Do not provide both `geography` and `residency`.
|
|
319
319
|
*/
|
|
@@ -323,7 +323,7 @@ export interface ProjectCreateParams {
|
|
|
323
323
|
* Create the project with the specified residency configuration. Your organization
|
|
324
324
|
* must have access to the requested residency configuration in order to use it.
|
|
325
325
|
* See
|
|
326
|
-
* [data residency controls](https://
|
|
326
|
+
* [data residency controls](https://developers.openai.com/api/docs/guides/your-data#data-residency-controls)
|
|
327
327
|
* to review the functionality and limitations of setting this field.
|
|
328
328
|
*/
|
|
329
329
|
residency?: ProjectResidency | null;
|
|
@@ -56,6 +56,12 @@ export interface APIKeyCreateResponse {
|
|
|
56
56
|
* The unredacted API key value.
|
|
57
57
|
*/
|
|
58
58
|
value: string;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* The Unix timestamp (in seconds) when the API key expires, or null if it does not
|
|
62
|
+
* expire.
|
|
63
|
+
*/
|
|
64
|
+
expires_at?: number | null;
|
|
59
65
|
}
|
|
60
66
|
|
|
61
67
|
export interface APIKeyCreateParams {
|
|
@@ -64,6 +70,11 @@ export interface APIKeyCreateParams {
|
|
|
64
70
|
*/
|
|
65
71
|
project_id: string;
|
|
66
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Body param: Number of seconds until the API key expires.
|
|
75
|
+
*/
|
|
76
|
+
expires_in_seconds?: number | null;
|
|
77
|
+
|
|
67
78
|
/**
|
|
68
79
|
* Body param: API key name.
|
|
69
80
|
*/
|
|
@@ -205,6 +205,12 @@ export namespace ServiceAccountCreateResponse {
|
|
|
205
205
|
object: 'organization.project.service_account.api_key';
|
|
206
206
|
|
|
207
207
|
value: string;
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* The Unix timestamp (in seconds) when the API key expires, or null if it does not
|
|
211
|
+
* expire.
|
|
212
|
+
*/
|
|
213
|
+
expires_at?: number | null;
|
|
208
214
|
}
|
|
209
215
|
}
|
|
210
216
|
|
|
@@ -226,6 +232,15 @@ export interface ServiceAccountCreateParams {
|
|
|
226
232
|
* Create the service account without default roles or an API key.
|
|
227
233
|
*/
|
|
228
234
|
create_service_account_only?: boolean | null;
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Number of seconds until the initial API key expires. If omitted or null, the key
|
|
238
|
+
* does not expire unless the effective organization or project policy requires an
|
|
239
|
+
* expiration. When a policy sets a maximum lifetime, this value must be provided
|
|
240
|
+
* and must not exceed that limit. A non-null value cannot be used when
|
|
241
|
+
* `create_service_account_only` is true.
|
|
242
|
+
*/
|
|
243
|
+
expires_in_seconds?: number | null;
|
|
229
244
|
}
|
|
230
245
|
|
|
231
246
|
export interface ServiceAccountRetrieveParams {
|
|
@@ -46,7 +46,8 @@ export interface SpeechCreateParams {
|
|
|
46
46
|
input: string;
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
|
-
* One of the available
|
|
49
|
+
* One of the available
|
|
50
|
+
* [TTS models](https://developers.openai.com/api/docs/guides/text-to-speech):
|
|
50
51
|
* `tts-1`, `tts-1-hd`, `gpt-4o-mini-tts`, or `gpt-4o-mini-tts-2025-12-15`.
|
|
51
52
|
*/
|
|
52
53
|
model: (string & {}) | SpeechModel;
|
|
@@ -57,7 +58,7 @@ export interface SpeechCreateParams {
|
|
|
57
58
|
* `shimmer`, `verse`, `marin`, and `cedar`. You may also provide a custom voice
|
|
58
59
|
* object with an `id`, for example `{ "id": "voice_1234" }`. Previews of the
|
|
59
60
|
* voices are available in the
|
|
60
|
-
* [Text to speech guide](https://
|
|
61
|
+
* [Text to speech guide](https://developers.openai.com/api/docs/guides/text-to-speech#voice-options).
|
|
61
62
|
*/
|
|
62
63
|
voice:
|
|
63
64
|
| string
|
|
@@ -381,7 +381,7 @@ export interface TranscriptionSegment {
|
|
|
381
381
|
/**
|
|
382
382
|
* Emitted when a diarized transcription returns a completed segment with speaker
|
|
383
383
|
* information. Only emitted when you
|
|
384
|
-
* [create a transcription](https://
|
|
384
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
385
385
|
* with `stream` set to `true` and `response_format` set to `diarized_json`.
|
|
386
386
|
*/
|
|
387
387
|
export type TranscriptionStreamEvent =
|
|
@@ -392,7 +392,7 @@ export type TranscriptionStreamEvent =
|
|
|
392
392
|
/**
|
|
393
393
|
* Emitted when there is an additional text delta. This is also the first event
|
|
394
394
|
* emitted when the transcription starts. Only emitted when you
|
|
395
|
-
* [create a transcription](https://
|
|
395
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
396
396
|
* with the `Stream` parameter set to `true`.
|
|
397
397
|
*/
|
|
398
398
|
export interface TranscriptionTextDeltaEvent {
|
|
@@ -408,7 +408,7 @@ export interface TranscriptionTextDeltaEvent {
|
|
|
408
408
|
|
|
409
409
|
/**
|
|
410
410
|
* The log probabilities of the delta. Only included if you
|
|
411
|
-
* [create a transcription](https://
|
|
411
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
412
412
|
* with the `include[]` parameter set to `logprobs`.
|
|
413
413
|
*/
|
|
414
414
|
logprobs?: Array<TranscriptionTextDeltaEvent.Logprob>;
|
|
@@ -442,7 +442,7 @@ export namespace TranscriptionTextDeltaEvent {
|
|
|
442
442
|
/**
|
|
443
443
|
* Emitted when the transcription is complete. Contains the complete transcription
|
|
444
444
|
* text. Only emitted when you
|
|
445
|
-
* [create a transcription](https://
|
|
445
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
446
446
|
* with the `Stream` parameter set to `true`.
|
|
447
447
|
*/
|
|
448
448
|
export interface TranscriptionTextDoneEvent {
|
|
@@ -465,7 +465,7 @@ export interface TranscriptionTextDoneEvent {
|
|
|
465
465
|
/**
|
|
466
466
|
* The log probabilities of the individual tokens in the transcription. Only
|
|
467
467
|
* included if you
|
|
468
|
-
* [create a transcription](https://
|
|
468
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
469
469
|
* with the `include[]` parameter set to `logprobs`.
|
|
470
470
|
*/
|
|
471
471
|
logprobs?: Array<TranscriptionTextDoneEvent.Logprob>;
|
|
@@ -545,7 +545,7 @@ export namespace TranscriptionTextDoneEvent {
|
|
|
545
545
|
/**
|
|
546
546
|
* Emitted when a diarized transcription returns a completed segment with speaker
|
|
547
547
|
* information. Only emitted when you
|
|
548
|
-
* [create a transcription](https://
|
|
548
|
+
* [create a transcription](https://developers.openai.com/api/reference/resources/audio/subresources/transcriptions/methods/create)
|
|
549
549
|
* with `stream` set to `true` and `response_format` set to `diarized_json`.
|
|
550
550
|
*/
|
|
551
551
|
export interface TranscriptionTextSegmentEvent {
|
|
@@ -738,7 +738,7 @@ export interface TranscriptionCreateParamsBase<
|
|
|
738
738
|
/**
|
|
739
739
|
* An optional text to guide the model's style or continue a previous audio
|
|
740
740
|
* segment. The
|
|
741
|
-
* [prompt](https://
|
|
741
|
+
* [prompt](https://developers.openai.com/api/docs/guides/speech-to-text#prompting)
|
|
742
742
|
* should match the audio language. This field is not supported when using
|
|
743
743
|
* `gpt-4o-transcribe-diarize`.
|
|
744
744
|
*/
|
|
@@ -758,7 +758,7 @@ export interface TranscriptionCreateParamsBase<
|
|
|
758
758
|
* generated using
|
|
759
759
|
* [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
|
|
760
760
|
* See the
|
|
761
|
-
* [Streaming section of the Speech-to-Text guide](https://
|
|
761
|
+
* [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
|
|
762
762
|
* for more information.
|
|
763
763
|
*
|
|
764
764
|
* Note: Streaming is not supported for the `whisper-1` model and will be ignored.
|
|
@@ -824,7 +824,7 @@ export interface TranscriptionCreateParamsNonStreaming<
|
|
|
824
824
|
* generated using
|
|
825
825
|
* [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
|
|
826
826
|
* See the
|
|
827
|
-
* [Streaming section of the Speech-to-Text guide](https://
|
|
827
|
+
* [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
|
|
828
828
|
* for more information.
|
|
829
829
|
*
|
|
830
830
|
* Note: Streaming is not supported for the `whisper-1` model and will be ignored.
|
|
@@ -838,7 +838,7 @@ export interface TranscriptionCreateParamsStreaming extends TranscriptionCreateP
|
|
|
838
838
|
* generated using
|
|
839
839
|
* [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format).
|
|
840
840
|
* See the
|
|
841
|
-
* [Streaming section of the Speech-to-Text guide](https://
|
|
841
|
+
* [Streaming section of the Speech-to-Text guide](https://developers.openai.com/api/docs/guides/speech-to-text?lang=curl#streaming)
|
|
842
842
|
* for more information.
|
|
843
843
|
*
|
|
844
844
|
* Note: Streaming is not supported for the `whisper-1` model and will be ignored.
|
|
@@ -95,7 +95,7 @@ export interface TranslationCreateParams<
|
|
|
95
95
|
/**
|
|
96
96
|
* An optional text to guide the model's style or continue a previous audio
|
|
97
97
|
* segment. The
|
|
98
|
-
* [prompt](https://
|
|
98
|
+
* [prompt](https://developers.openai.com/api/docs/guides/speech-to-text#prompting)
|
|
99
99
|
* should be in English.
|
|
100
100
|
*/
|
|
101
101
|
prompt?: string;
|
package/src/resources/batches.ts
CHANGED
|
@@ -157,8 +157,8 @@ export interface Batch {
|
|
|
157
157
|
* Model ID used to process the batch, like `gpt-6-astra`. OpenAI offers a wide
|
|
158
158
|
* range of models with different capabilities, performance characteristics, and
|
|
159
159
|
* price points. Refer to the
|
|
160
|
-
* [model guide](https://
|
|
161
|
-
* available models.
|
|
160
|
+
* [model guide](https://developers.openai.com/api/docs/models) to browse and
|
|
161
|
+
* compare available models.
|
|
162
162
|
*/
|
|
163
163
|
model?: string;
|
|
164
164
|
|
|
@@ -272,7 +272,7 @@ export namespace BatchUsage {
|
|
|
272
272
|
export interface InputTokensDetails {
|
|
273
273
|
/**
|
|
274
274
|
* The number of tokens that were retrieved from the cache.
|
|
275
|
-
* [More on prompt caching](https://
|
|
275
|
+
* [More on prompt caching](https://developers.openai.com/api/docs/guides/prompt-caching).
|
|
276
276
|
*/
|
|
277
277
|
cached_tokens: number;
|
|
278
278
|
}
|
|
@@ -316,11 +316,12 @@ export interface BatchCreateParams {
|
|
|
316
316
|
/**
|
|
317
317
|
* The ID of an uploaded file that contains requests for the new batch.
|
|
318
318
|
*
|
|
319
|
-
* See
|
|
319
|
+
* See
|
|
320
|
+
* [upload file](https://developers.openai.com/api/reference/resources/files/methods/create)
|
|
320
321
|
* for how to upload a file.
|
|
321
322
|
*
|
|
322
323
|
* Your input file must be formatted as a
|
|
323
|
-
* [JSONL file](https://
|
|
324
|
+
* [JSONL file](https://developers.openai.com/api/docs/guides/batch#1-prepare-your-batch-file),
|
|
324
325
|
* and must be uploaded with the purpose `batch`. The file can contain up to 50,000
|
|
325
326
|
* requests, and can be up to 200 MB in size.
|
|
326
327
|
*/
|