openai 7.9.0 → 7.12.1
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 +208 -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 +12 -1
- package/client.d.mts.map +1 -1
- package/client.d.ts +12 -1
- package/client.d.ts.map +1 -1
- package/client.js +20 -4
- package/client.js.map +1 -1
- package/client.mjs +20 -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 +28 -4
- package/lib/responses/ResponseInputItems.js.map +1 -1
- package/lib/responses/ResponseInputItems.mjs +28 -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/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/usage.d.mts +1 -1
- package/resources/admin/organization/usage.d.ts +1 -1
- package/resources/batches.d.mts +1 -1
- package/resources/batches.d.ts +1 -1
- package/resources/beta/beta.d.mts +2 -2
- package/resources/beta/beta.d.mts.map +1 -1
- package/resources/beta/beta.d.ts +2 -2
- package/resources/beta/beta.d.ts.map +1 -1
- package/resources/beta/beta.js.map +1 -1
- package/resources/beta/beta.mjs.map +1 -1
- package/resources/beta/index.d.mts +1 -1
- package/resources/beta/index.d.mts.map +1 -1
- package/resources/beta/index.d.ts +1 -1
- package/resources/beta/index.d.ts.map +1 -1
- package/resources/beta/index.js.map +1 -1
- package/resources/beta/index.mjs.map +1 -1
- package/resources/beta/responses/index.d.mts +1 -1
- package/resources/beta/responses/index.d.mts.map +1 -1
- package/resources/beta/responses/index.d.ts +1 -1
- package/resources/beta/responses/index.d.ts.map +1 -1
- package/resources/beta/responses/index.js.map +1 -1
- package/resources/beta/responses/index.mjs.map +1 -1
- package/resources/beta/responses/responses.d.mts +772 -50
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +772 -50
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js +1 -1
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs +1 -1
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +2 -2
- package/resources/chat/completions/completions.d.ts +2 -2
- package/resources/conversations/items.d.mts +10 -1
- package/resources/conversations/items.d.mts.map +1 -1
- package/resources/conversations/items.d.ts +10 -1
- package/resources/conversations/items.d.ts.map +1 -1
- package/resources/evals/evals.d.mts +4 -4
- package/resources/evals/evals.d.ts +4 -4
- package/resources/evals/runs/runs.d.mts +1 -1
- package/resources/evals/runs/runs.d.ts +1 -1
- package/resources/images.d.mts +73 -58
- package/resources/images.d.mts.map +1 -1
- package/resources/images.d.ts +73 -58
- package/resources/images.d.ts.map +1 -1
- package/resources/images.js.map +1 -1
- package/resources/images.mjs.map +1 -1
- package/resources/index.d.mts +1 -0
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +1 -0
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/responses/responses.d.mts +1279 -581
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +1279 -581
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/safety/alerts.d.mts +32 -0
- package/resources/safety/alerts.d.mts.map +1 -0
- package/resources/safety/alerts.d.ts +32 -0
- package/resources/safety/alerts.d.ts.map +1 -0
- package/resources/safety/alerts.js +16 -0
- package/resources/safety/alerts.js.map +1 -0
- package/resources/safety/alerts.mjs +12 -0
- package/resources/safety/alerts.mjs.map +1 -0
- package/resources/safety/index.d.mts +3 -0
- package/resources/safety/index.d.mts.map +1 -0
- package/resources/safety/index.d.ts +3 -0
- package/resources/safety/index.d.ts.map +1 -0
- package/resources/safety/index.js +9 -0
- package/resources/safety/index.js.map +1 -0
- package/resources/safety/index.mjs +4 -0
- package/resources/safety/index.mjs.map +1 -0
- package/resources/safety/safety.d.mts +10 -0
- package/resources/safety/safety.d.mts.map +1 -0
- package/resources/safety/safety.d.ts +10 -0
- package/resources/safety/safety.d.ts.map +1 -0
- package/resources/safety/safety.js +17 -0
- package/resources/safety/safety.js.map +1 -0
- package/resources/safety/safety.mjs +12 -0
- package/resources/safety/safety.mjs.map +1 -0
- package/resources/safety.d.mts +2 -0
- package/resources/safety.d.mts.map +1 -0
- package/resources/safety.d.ts +2 -0
- package/resources/safety.d.ts.map +1 -0
- package/resources/safety.js +6 -0
- package/resources/safety.js.map +1 -0
- package/resources/safety.mjs +3 -0
- package/resources/safety.mjs.map +1 -0
- package/resources/shared.d.mts +29 -1
- package/resources/shared.d.mts.map +1 -1
- package/resources/shared.d.ts +29 -1
- package/resources/shared.d.ts.map +1 -1
- package/resources/videos.d.mts +28 -0
- package/resources/videos.d.mts.map +1 -1
- package/resources/videos.d.ts +28 -0
- package/resources/videos.d.ts.map +1 -1
- package/resources/webhooks/webhooks.d.mts +68 -6
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts +68 -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 +24 -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 +30 -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/projects/service-accounts/api-keys.ts +11 -0
- package/src/resources/admin/organization/usage.ts +1 -1
- package/src/resources/batches.ts +1 -1
- package/src/resources/beta/beta.ts +22 -0
- package/src/resources/beta/index.ts +11 -0
- package/src/resources/beta/responses/index.ts +11 -0
- package/src/resources/beta/responses/responses.ts +944 -39
- package/src/resources/chat/completions/completions.ts +2 -2
- package/src/resources/conversations/items.ts +12 -0
- package/src/resources/evals/evals.ts +4 -4
- package/src/resources/evals/runs/runs.ts +1 -1
- package/src/resources/images.ts +76 -57
- package/src/resources/index.ts +1 -0
- package/src/resources/responses/api.md +11 -0
- package/src/resources/responses/responses.ts +1395 -520
- package/src/resources/safety/alerts.ts +51 -0
- package/src/resources/safety/index.ts +4 -0
- package/src/resources/safety/safety.ts +15 -0
- package/src/resources/safety.ts +3 -0
- package/src/resources/shared.ts +39 -0
- package/src/resources/videos.ts +38 -0
- package/src/resources/webhooks/api.md +2 -0
- package/src/resources/webhooks/webhooks.ts +83 -5
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
|
@@ -411,8 +411,8 @@ export declare namespace LiveCallIncomingWebhookEvent {
|
|
|
411
411
|
*/
|
|
412
412
|
interface Data {
|
|
413
413
|
/**
|
|
414
|
-
* The
|
|
415
|
-
*
|
|
414
|
+
* The `live_...` ID of the pending SIP session. Forward this value unchanged when
|
|
415
|
+
* accepting or rejecting the call through the Live API.
|
|
416
416
|
*/
|
|
417
417
|
session_id: string;
|
|
418
418
|
/**
|
|
@@ -469,8 +469,10 @@ export declare namespace RealtimeCallIncomingWebhookEvent {
|
|
|
469
469
|
*/
|
|
470
470
|
interface Data {
|
|
471
471
|
/**
|
|
472
|
-
* The Transceiver `rtc_...` ID of the pending SIP session. The
|
|
473
|
-
*
|
|
472
|
+
* The Transceiver `rtc_...` ID of the pending SIP session. The paired
|
|
473
|
+
* `live.call.incoming` event derives its `session_id` by replacing the `rtc_`
|
|
474
|
+
* prefix with `live_`. Use the ID returned by the event with the corresponding
|
|
475
|
+
* Realtime or Live API.
|
|
474
476
|
*/
|
|
475
477
|
call_id: string;
|
|
476
478
|
/**
|
|
@@ -638,11 +640,71 @@ export declare namespace ResponseIncompleteWebhookEvent {
|
|
|
638
640
|
id: string;
|
|
639
641
|
}
|
|
640
642
|
}
|
|
643
|
+
/**
|
|
644
|
+
* Sent when an approved safety alert is available for an API project.
|
|
645
|
+
*/
|
|
646
|
+
export interface SafetyAlertCreatedWebhookEvent {
|
|
647
|
+
/**
|
|
648
|
+
* The unique ID of the webhook event.
|
|
649
|
+
*/
|
|
650
|
+
id: string;
|
|
651
|
+
/**
|
|
652
|
+
* The Unix timestamp in seconds when the event was created.
|
|
653
|
+
*/
|
|
654
|
+
created_at: number;
|
|
655
|
+
data: SafetyAlertCreatedWebhookEvent.Data;
|
|
656
|
+
/**
|
|
657
|
+
* Always `event`.
|
|
658
|
+
*/
|
|
659
|
+
object: 'event';
|
|
660
|
+
/**
|
|
661
|
+
* Always `safety.alert.created`.
|
|
662
|
+
*/
|
|
663
|
+
type: 'safety.alert.created';
|
|
664
|
+
}
|
|
665
|
+
export declare namespace SafetyAlertCreatedWebhookEvent {
|
|
666
|
+
interface Data {
|
|
667
|
+
/**
|
|
668
|
+
* The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
|
|
669
|
+
*/
|
|
670
|
+
id: string;
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
/**
|
|
674
|
+
* Sent when an approved safety alert is available for an enterprise workspace.
|
|
675
|
+
*/
|
|
676
|
+
export interface SafetyOrgAlertCreatedWebhookEvent {
|
|
677
|
+
/**
|
|
678
|
+
* The unique ID of the webhook event.
|
|
679
|
+
*/
|
|
680
|
+
id: string;
|
|
681
|
+
/**
|
|
682
|
+
* The Unix timestamp in seconds when the event was created.
|
|
683
|
+
*/
|
|
684
|
+
created_at: number;
|
|
685
|
+
data: SafetyOrgAlertCreatedWebhookEvent.Data;
|
|
686
|
+
/**
|
|
687
|
+
* Always `event`.
|
|
688
|
+
*/
|
|
689
|
+
object: 'event';
|
|
690
|
+
/**
|
|
691
|
+
* Always `safety.org_alert.created`.
|
|
692
|
+
*/
|
|
693
|
+
type: 'safety.org_alert.created';
|
|
694
|
+
}
|
|
695
|
+
export declare namespace SafetyOrgAlertCreatedWebhookEvent {
|
|
696
|
+
interface Data {
|
|
697
|
+
/**
|
|
698
|
+
* The safety alert ID to pass to `GET /v1/safety/alerts/{id}`.
|
|
699
|
+
*/
|
|
700
|
+
id: string;
|
|
701
|
+
}
|
|
702
|
+
}
|
|
641
703
|
/**
|
|
642
704
|
* Sent when a batch API request has been cancelled.
|
|
643
705
|
*/
|
|
644
|
-
export type UnwrapWebhookEvent = BatchCancelledWebhookEvent | BatchCompletedWebhookEvent | BatchExpiredWebhookEvent | BatchFailedWebhookEvent | EvalRunCanceledWebhookEvent | EvalRunFailedWebhookEvent | EvalRunSucceededWebhookEvent | FineTuningJobCancelledWebhookEvent | FineTuningJobFailedWebhookEvent | FineTuningJobSucceededWebhookEvent | LiveCallIncomingWebhookEvent | RealtimeCallIncomingWebhookEvent | ResponseCancelledWebhookEvent | ResponseCompletedWebhookEvent | ResponseFailedWebhookEvent | ResponseIncompleteWebhookEvent;
|
|
706
|
+
export type UnwrapWebhookEvent = BatchCancelledWebhookEvent | BatchCompletedWebhookEvent | BatchExpiredWebhookEvent | BatchFailedWebhookEvent | EvalRunCanceledWebhookEvent | EvalRunFailedWebhookEvent | EvalRunSucceededWebhookEvent | FineTuningJobCancelledWebhookEvent | FineTuningJobFailedWebhookEvent | FineTuningJobSucceededWebhookEvent | LiveCallIncomingWebhookEvent | RealtimeCallIncomingWebhookEvent | ResponseCancelledWebhookEvent | ResponseCompletedWebhookEvent | ResponseFailedWebhookEvent | ResponseIncompleteWebhookEvent | SafetyAlertCreatedWebhookEvent | SafetyOrgAlertCreatedWebhookEvent;
|
|
645
707
|
export declare namespace Webhooks {
|
|
646
|
-
export { type BatchCancelledWebhookEvent as BatchCancelledWebhookEvent, type BatchCompletedWebhookEvent as BatchCompletedWebhookEvent, type BatchExpiredWebhookEvent as BatchExpiredWebhookEvent, type BatchFailedWebhookEvent as BatchFailedWebhookEvent, type EvalRunCanceledWebhookEvent as EvalRunCanceledWebhookEvent, type EvalRunFailedWebhookEvent as EvalRunFailedWebhookEvent, type EvalRunSucceededWebhookEvent as EvalRunSucceededWebhookEvent, type FineTuningJobCancelledWebhookEvent as FineTuningJobCancelledWebhookEvent, type FineTuningJobFailedWebhookEvent as FineTuningJobFailedWebhookEvent, type FineTuningJobSucceededWebhookEvent as FineTuningJobSucceededWebhookEvent, type LiveCallIncomingWebhookEvent as LiveCallIncomingWebhookEvent, type RealtimeCallIncomingWebhookEvent as RealtimeCallIncomingWebhookEvent, type ResponseCancelledWebhookEvent as ResponseCancelledWebhookEvent, type ResponseCompletedWebhookEvent as ResponseCompletedWebhookEvent, type ResponseFailedWebhookEvent as ResponseFailedWebhookEvent, type ResponseIncompleteWebhookEvent as ResponseIncompleteWebhookEvent, type UnwrapWebhookEvent as UnwrapWebhookEvent, };
|
|
708
|
+
export { type BatchCancelledWebhookEvent as BatchCancelledWebhookEvent, type BatchCompletedWebhookEvent as BatchCompletedWebhookEvent, type BatchExpiredWebhookEvent as BatchExpiredWebhookEvent, type BatchFailedWebhookEvent as BatchFailedWebhookEvent, type EvalRunCanceledWebhookEvent as EvalRunCanceledWebhookEvent, type EvalRunFailedWebhookEvent as EvalRunFailedWebhookEvent, type EvalRunSucceededWebhookEvent as EvalRunSucceededWebhookEvent, type FineTuningJobCancelledWebhookEvent as FineTuningJobCancelledWebhookEvent, type FineTuningJobFailedWebhookEvent as FineTuningJobFailedWebhookEvent, type FineTuningJobSucceededWebhookEvent as FineTuningJobSucceededWebhookEvent, type LiveCallIncomingWebhookEvent as LiveCallIncomingWebhookEvent, type RealtimeCallIncomingWebhookEvent as RealtimeCallIncomingWebhookEvent, type ResponseCancelledWebhookEvent as ResponseCancelledWebhookEvent, type ResponseCompletedWebhookEvent as ResponseCompletedWebhookEvent, type ResponseFailedWebhookEvent as ResponseFailedWebhookEvent, type ResponseIncompleteWebhookEvent as ResponseIncompleteWebhookEvent, type SafetyAlertCreatedWebhookEvent as SafetyAlertCreatedWebhookEvent, type SafetyOrgAlertCreatedWebhookEvent as SafetyOrgAlertCreatedWebhookEvent, type UnwrapWebhookEvent as UnwrapWebhookEvent, };
|
|
647
709
|
}
|
|
648
710
|
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks/webhooks.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks/webhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -248,14 +248,15 @@ const _parseJSON = (jsonString: string, allow: number) => {
|
|
|
248
248
|
markPartialJSON('Unterminated number literal');
|
|
249
249
|
}
|
|
250
250
|
|
|
251
|
+
const number = jsonString.substring(start, index);
|
|
251
252
|
try {
|
|
252
|
-
return JSON.parse(
|
|
253
|
+
return JSON.parse(number);
|
|
253
254
|
} catch {
|
|
254
|
-
if (
|
|
255
|
+
if (number === '-' && Allow.NUM & allow) {
|
|
255
256
|
markPartialJSON("Not sure what '-' is");
|
|
256
257
|
}
|
|
257
258
|
try {
|
|
258
|
-
return JSON.parse(
|
|
259
|
+
return JSON.parse(number.substring(0, number.lastIndexOf('e')));
|
|
259
260
|
} catch (e) {
|
|
260
261
|
throwMalformedError(String(e));
|
|
261
262
|
}
|
|
@@ -410,7 +410,7 @@ const processRegExp = (regexOrFunction: RegExp | (() => RegExp), refs: Refs): st
|
|
|
410
410
|
}
|
|
411
411
|
|
|
412
412
|
try {
|
|
413
|
-
|
|
413
|
+
void new RegExp(pattern);
|
|
414
414
|
} catch {
|
|
415
415
|
console.warn(
|
|
416
416
|
`Could not convert regex pattern at ${refs.currentPath.join(
|
|
@@ -16,6 +16,27 @@ export type JsonSchema7TupleType = {
|
|
|
16
16
|
}
|
|
17
17
|
);
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* `items` is positional and `minItems`/`maxItems` come from `def.items.length`, so the
|
|
21
|
+
* array has to carry one entry per declared element. A parser may legitimately return
|
|
22
|
+
* `undefined` -- a wrapper whose inner type produces no schema, for instance -- and
|
|
23
|
+
* dropping that entry shifts every later element onto the wrong index while the length
|
|
24
|
+
* constraints still claim the original arity, so the document accepts and rejects the
|
|
25
|
+
* opposite arrays from the Zod schema it was generated from.
|
|
26
|
+
*
|
|
27
|
+
* An unconstrained `{}` keeps the positions aligned and constrains nothing, which is
|
|
28
|
+
* what the element was already saying.
|
|
29
|
+
*/
|
|
30
|
+
function parseTupleItems(items: ZodTupleItems | [], refs: Refs): JsonSchema7Type[] {
|
|
31
|
+
return items.map(
|
|
32
|
+
(x, i) =>
|
|
33
|
+
parseDef(x._def, {
|
|
34
|
+
...refs,
|
|
35
|
+
currentPath: [...refs.currentPath, 'items', `${i}`],
|
|
36
|
+
}) ?? {},
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
19
40
|
export function parseTupleDef(
|
|
20
41
|
def: ZodTupleDef<ZodTupleItems | [], ZodTypeAny | null>,
|
|
21
42
|
refs: Refs,
|
|
@@ -24,14 +45,7 @@ export function parseTupleDef(
|
|
|
24
45
|
return {
|
|
25
46
|
type: 'array',
|
|
26
47
|
minItems: def.items.length,
|
|
27
|
-
items: def.items
|
|
28
|
-
.map((x, i) =>
|
|
29
|
-
parseDef(x._def, {
|
|
30
|
-
...refs,
|
|
31
|
-
currentPath: [...refs.currentPath, 'items', `${i}`],
|
|
32
|
-
}),
|
|
33
|
-
)
|
|
34
|
-
.filter((x): x is JsonSchema7Type => x !== undefined),
|
|
48
|
+
items: parseTupleItems(def.items, refs),
|
|
35
49
|
additionalItems: parseDef(def.rest._def, {
|
|
36
50
|
...refs,
|
|
37
51
|
currentPath: [...refs.currentPath, 'additionalItems'],
|
|
@@ -42,13 +56,6 @@ export function parseTupleDef(
|
|
|
42
56
|
type: 'array',
|
|
43
57
|
minItems: def.items.length,
|
|
44
58
|
maxItems: def.items.length,
|
|
45
|
-
items: def.items
|
|
46
|
-
.map((x, i) =>
|
|
47
|
-
parseDef(x._def, {
|
|
48
|
-
...refs,
|
|
49
|
-
currentPath: [...refs.currentPath, 'items', `${i}`],
|
|
50
|
-
}),
|
|
51
|
-
)
|
|
52
|
-
.filter((x): x is JsonSchema7Type => x !== undefined),
|
|
59
|
+
items: parseTupleItems(def.items, refs),
|
|
53
60
|
};
|
|
54
61
|
}
|
|
@@ -137,12 +137,17 @@ const zodToJsonSchema = <Target extends Targets = 'jsonSchema7'>(
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
for (const [key, schema] of newDefinitions) {
|
|
140
|
-
definitions
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
140
|
+
Object.defineProperty(definitions, key, {
|
|
141
|
+
value:
|
|
142
|
+
parseDef(
|
|
143
|
+
zodDef(schema),
|
|
144
|
+
{ ...refs, currentPath: [...refs.basePath, refs.definitionPath, key] },
|
|
145
|
+
true,
|
|
146
|
+
) ?? {},
|
|
147
|
+
enumerable: true,
|
|
148
|
+
configurable: true,
|
|
149
|
+
writable: true,
|
|
150
|
+
});
|
|
146
151
|
processedDefinitions.add(key);
|
|
147
152
|
}
|
|
148
153
|
}
|
|
@@ -3,6 +3,7 @@ import type { SubjectTokenProvider } from './types';
|
|
|
3
3
|
import type { Fetch } from '../internal/builtin-types';
|
|
4
4
|
import * as Shims from '../internal/shims';
|
|
5
5
|
import { SubjectTokenProviderError } from '../core/error';
|
|
6
|
+
import { hasOwn, isObj } from '../internal/utils/values';
|
|
6
7
|
|
|
7
8
|
const DEFAULT_RESOURCE = 'https://management.azure.com/';
|
|
8
9
|
const DEFAULT_AZURE_API_VERSION = '2018-02-01';
|
|
@@ -149,6 +150,14 @@ function isMalformedAzureJSONError(error: unknown): boolean {
|
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
|
|
153
|
+
function readAzureAccessToken(data: unknown): string {
|
|
154
|
+
const token = isObj(data) && hasOwn(data, 'access_token') ? data['access_token'] : undefined;
|
|
155
|
+
if (typeof token !== 'string' || token.trim().length === 0) {
|
|
156
|
+
throw new SubjectTokenProviderError("IMDS response missing 'access_token' field", 'azure-imds');
|
|
157
|
+
}
|
|
158
|
+
return token;
|
|
159
|
+
}
|
|
160
|
+
|
|
152
161
|
/** Reads the UTF-8 contents of a Kubernetes service-account token file. */
|
|
153
162
|
type ReadFile = (path: string) => Promise<string>;
|
|
154
163
|
|
|
@@ -316,9 +325,9 @@ export function azureManagedIdentityTokenProvider(
|
|
|
316
325
|
);
|
|
317
326
|
}
|
|
318
327
|
|
|
319
|
-
let data:
|
|
328
|
+
let data: unknown;
|
|
320
329
|
try {
|
|
321
|
-
data =
|
|
330
|
+
data = await response.json();
|
|
322
331
|
} catch (error) {
|
|
323
332
|
if (isMalformedAzureJSONError(error)) {
|
|
324
333
|
throw new SyntaxError('IMDS response contains invalid JSON');
|
|
@@ -326,11 +335,7 @@ export function azureManagedIdentityTokenProvider(
|
|
|
326
335
|
throw error;
|
|
327
336
|
}
|
|
328
337
|
|
|
329
|
-
|
|
330
|
-
throw new SubjectTokenProviderError("IMDS response missing 'access_token' field", 'azure-imds');
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
return data.access_token;
|
|
338
|
+
return readAzureAccessToken(data);
|
|
334
339
|
} catch (error) {
|
|
335
340
|
if (error instanceof SubjectTokenProviderError) {
|
|
336
341
|
throw error;
|
|
@@ -19,13 +19,34 @@ const TOKEN_EXCHANGE_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:token-exchan
|
|
|
19
19
|
// workload-identity path, so short-lived tokens keep a usable cache window.
|
|
20
20
|
const MAX_REFRESH_BUFFER_FRACTION = 0.5;
|
|
21
21
|
|
|
22
|
+
function calculateExpiresAt(expiresIn: unknown, exchangeStartedAt: number): number {
|
|
23
|
+
if (typeof expiresIn !== 'number' || !Number.isFinite(expiresIn) || expiresIn <= 0) {
|
|
24
|
+
throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const now = Date.now();
|
|
28
|
+
const fullLifetimeDeadline = now + expiresIn * 1000;
|
|
29
|
+
if (!Number.isSafeInteger(fullLifetimeDeadline) || fullLifetimeDeadline <= now) {
|
|
30
|
+
throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
|
|
31
|
+
}
|
|
32
|
+
const expiresAt = fullLifetimeDeadline - (performance.now() - exchangeStartedAt);
|
|
33
|
+
if (expiresAt <= now) {
|
|
34
|
+
throw new OpenAIError('Workload identity token expired before its exchange completed.');
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return expiresAt;
|
|
38
|
+
}
|
|
39
|
+
|
|
22
40
|
function calculateRefreshAt(
|
|
23
41
|
expiresAt: number,
|
|
24
|
-
|
|
42
|
+
lifetimeSeconds: number,
|
|
25
43
|
refreshBufferSeconds: number | undefined,
|
|
26
44
|
): number {
|
|
27
45
|
const configuredBufferMs = (refreshBufferSeconds ?? 1200) * 1000;
|
|
28
|
-
const effectiveBufferMs = Math.min(
|
|
46
|
+
const effectiveBufferMs = Math.min(
|
|
47
|
+
configuredBufferMs,
|
|
48
|
+
lifetimeSeconds * 1000 * MAX_REFRESH_BUFFER_FRACTION,
|
|
49
|
+
);
|
|
29
50
|
return expiresAt - effectiveBufferMs;
|
|
30
51
|
}
|
|
31
52
|
|
|
@@ -217,6 +238,8 @@ export class WorkloadIdentityAuth {
|
|
|
217
238
|
body['client_id'] = this.config.clientId;
|
|
218
239
|
}
|
|
219
240
|
|
|
241
|
+
// Exclude provider acquisition and measure delivery time independently of wall-clock changes.
|
|
242
|
+
const exchangeStartedAt = performance.now();
|
|
220
243
|
const response = await this.fetch(this.tokenExchangeUrl, {
|
|
221
244
|
method: 'POST',
|
|
222
245
|
headers: {
|
|
@@ -261,21 +284,13 @@ export class WorkloadIdentityAuth {
|
|
|
261
284
|
}
|
|
262
285
|
|
|
263
286
|
const expiresIn = (tokenResponse as Partial<TokenExchangeResponse>).expires_in ?? 3600;
|
|
264
|
-
|
|
265
|
-
throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
const now = Date.now();
|
|
269
|
-
const expiresAt = now + expiresIn * 1000;
|
|
270
|
-
if (!Number.isSafeInteger(expiresAt) || expiresAt <= now) {
|
|
271
|
-
throw new OpenAIError("Token exchange response has invalid 'expires_in' field");
|
|
272
|
-
}
|
|
287
|
+
const expiresAt = calculateExpiresAt(expiresIn, exchangeStartedAt);
|
|
273
288
|
|
|
274
289
|
if (this.tokenGeneration === generation) {
|
|
275
290
|
this.cachedToken = {
|
|
276
291
|
token: accessToken,
|
|
277
292
|
expiresAt,
|
|
278
|
-
refreshAt: calculateRefreshAt(expiresAt,
|
|
293
|
+
refreshAt: calculateRefreshAt(expiresAt, expiresIn, this.config.refreshBufferSeconds),
|
|
279
294
|
};
|
|
280
295
|
}
|
|
281
296
|
|
package/src/azure.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { NullableHeaders } from './internal/headers';
|
|
|
3
3
|
import { buildHeaders } from './internal/headers';
|
|
4
4
|
import * as Errors from './error';
|
|
5
5
|
import type { FinalRequestOptions } from './internal/request-options';
|
|
6
|
-
import { isObj, readEnv } from './internal/utils';
|
|
6
|
+
import { hasOwn, isObj, readEnv } from './internal/utils';
|
|
7
7
|
import { path } from './internal/utils/path';
|
|
8
8
|
import { OpenAI } from './client';
|
|
9
9
|
import type { ClientOptions } from './client';
|
|
@@ -152,7 +152,23 @@ export class AzureOpenAI extends OpenAI {
|
|
|
152
152
|
|
|
153
153
|
/** Clones this client with Azure options; OpenAI data residency remains unsupported. */
|
|
154
154
|
override withOptions(options: Partial<AzureClientOptions>): this {
|
|
155
|
-
|
|
155
|
+
// `OpenAI.withOptions` rebuilds the clone from `this._options`, which never holds the
|
|
156
|
+
// Azure-only construction options, so they are re-injected here the same way the Bedrock
|
|
157
|
+
// client re-injects its own subclass-only field.
|
|
158
|
+
const azureOptions: Partial<AzureClientOptions> = {
|
|
159
|
+
apiVersion: this.apiVersion,
|
|
160
|
+
deployment: this.deploymentName,
|
|
161
|
+
...options,
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
// The inherited base URL is always carried into the clone, so an `endpoint` override would
|
|
165
|
+
// otherwise collide with it; let the endpoint rebuild the base URL instead. Both tests read
|
|
166
|
+
// own properties, so an option bag that passed neither field keeps the inherited base URL.
|
|
167
|
+
if (hasOwn(options, 'endpoint') && options.endpoint !== undefined && !hasOwn(options, 'baseURL')) {
|
|
168
|
+
azureOptions.baseURL = undefined;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
return super.withOptions(azureOptions);
|
|
156
172
|
}
|
|
157
173
|
|
|
158
174
|
/** Builds an Azure request and inserts its deployment into model-scoped endpoint paths. */
|
|
@@ -178,7 +194,7 @@ export class AzureOpenAI extends OpenAI {
|
|
|
178
194
|
throw new Error('Expected request body to be an object');
|
|
179
195
|
}
|
|
180
196
|
const model = this.deploymentName || options.body['model'] || options.__metadata?.['model'];
|
|
181
|
-
if (model !== undefined && !this.baseURL
|
|
197
|
+
if (model !== undefined && !hasDeploymentPathSegment(this.baseURL)) {
|
|
182
198
|
options.path = path`/deployments/${model}` + options.path;
|
|
183
199
|
}
|
|
184
200
|
}
|
|
@@ -215,6 +231,21 @@ export class AzureOpenAI extends OpenAI {
|
|
|
215
231
|
}
|
|
216
232
|
}
|
|
217
233
|
|
|
234
|
+
/**
|
|
235
|
+
* Reports whether the base URL already routes through a `/deployments` path segment, so the
|
|
236
|
+
* deployment must not be inserted again. A substring test would also match an unrelated segment
|
|
237
|
+
* such as `/deployments-proxy/`, or a host like `deployments.example.com`.
|
|
238
|
+
*/
|
|
239
|
+
function hasDeploymentPathSegment(baseURL: string): boolean {
|
|
240
|
+
try {
|
|
241
|
+
return new URL(baseURL).pathname.split('/').includes('deployments');
|
|
242
|
+
} catch {
|
|
243
|
+
// A base URL that is not an absolute URL has no path segments to read. Report none, the way
|
|
244
|
+
// the previous substring test did, and let joining the request path reject it as it did before.
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
218
249
|
const _deployments_endpoints = new Set([
|
|
219
250
|
'/completions',
|
|
220
251
|
'/chat/completions',
|
|
@@ -186,8 +186,9 @@ export function buildRealtimeURL(
|
|
|
186
186
|
const hasModel = !!config.model;
|
|
187
187
|
const hasCallID = !!config.callID;
|
|
188
188
|
|
|
189
|
-
const
|
|
190
|
-
|
|
189
|
+
const url = new URL(baseURL);
|
|
190
|
+
url.pathname += url.pathname.endsWith('/') ? 'realtime' : '/realtime';
|
|
191
|
+
url.hash = '';
|
|
191
192
|
|
|
192
193
|
if (hasModel === hasCallID) {
|
|
193
194
|
throw new Error('Pass exactly one of `model` or `callID` when opening a Realtime WebSocket.');
|
|
@@ -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';
|
|
@@ -181,15 +182,18 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
181
182
|
onURL?: (url: URL) => void;
|
|
182
183
|
/** Indicates the token was resolved by the factory just before connecting. @internal */
|
|
183
184
|
__resolvedApiKey?: boolean;
|
|
185
|
+
/** Credential captured by an async factory for this connection. @internal */
|
|
186
|
+
__apiKey?: string | null;
|
|
184
187
|
},
|
|
185
188
|
client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
|
|
186
189
|
) {
|
|
187
190
|
super();
|
|
191
|
+
let apiKey = getRealtimeAPIKey(client, props.__apiKey);
|
|
188
192
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
189
193
|
const dangerouslyAllowBrowser =
|
|
190
194
|
props.dangerouslyAllowBrowser ??
|
|
191
195
|
(client as any)?._options?.dangerouslyAllowBrowser ??
|
|
192
|
-
(
|
|
196
|
+
(apiKey?.startsWith('ek_') ? true : null);
|
|
193
197
|
if (!dangerouslyAllowBrowser && isRunningInBrowserOrBrowserWorker()) {
|
|
194
198
|
throw new OpenAIError(
|
|
195
199
|
"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",
|
|
@@ -197,6 +201,9 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
197
201
|
}
|
|
198
202
|
|
|
199
203
|
client ??= new OpenAI({ dangerouslyAllowBrowser });
|
|
204
|
+
if (apiKey === undefined) {
|
|
205
|
+
apiKey = client.apiKey;
|
|
206
|
+
}
|
|
200
207
|
|
|
201
208
|
if (hasProvider && !props?.__resolvedApiKey) {
|
|
202
209
|
throw new Error(
|
|
@@ -215,12 +222,12 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
215
222
|
const azure = isAzure(client);
|
|
216
223
|
const protocols = [
|
|
217
224
|
'realtime',
|
|
218
|
-
...(azure ? [] : [`openai-insecure-api-key.${
|
|
225
|
+
...(azure ? [] : [`openai-insecure-api-key.${apiKey}`]),
|
|
219
226
|
'openai-beta.realtime-v1',
|
|
220
227
|
];
|
|
221
228
|
|
|
222
229
|
this.socket = azure
|
|
223
|
-
? createAzureWebSocket(this.url,
|
|
230
|
+
? createAzureWebSocket(this.url, apiKey, props.__resolvedApiKey === true, protocols)
|
|
224
231
|
: new WebSocket(this.url.toString(), protocols);
|
|
225
232
|
|
|
226
233
|
this.socket.addEventListener('message', (websocketEvent: MessageEvent) => {
|
|
@@ -280,10 +287,13 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
280
287
|
const url = buildRealtimeURL(client, props);
|
|
281
288
|
assertTrustedRealtimeURL(client, url);
|
|
282
289
|
assertBedrockWebSocketOrigin(client, url);
|
|
283
|
-
const resolvedApiKey = await client
|
|
290
|
+
const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
|
|
284
291
|
assertTrustedRealtimeURL(client, url);
|
|
285
292
|
assertBedrockWebSocketOrigin(client, url);
|
|
286
|
-
return new OpenAIRealtimeWebSocket(
|
|
293
|
+
return new OpenAIRealtimeWebSocket(
|
|
294
|
+
{ ...props, __resolvedApiKey: resolvedApiKey, __apiKey: apiKey },
|
|
295
|
+
client,
|
|
296
|
+
);
|
|
287
297
|
}
|
|
288
298
|
|
|
289
299
|
/**
|
|
@@ -307,8 +317,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
307
317
|
dangerouslyAllowBrowser?: boolean;
|
|
308
318
|
} = {},
|
|
309
319
|
): Promise<OpenAIRealtimeWebSocket> {
|
|
310
|
-
const isApiKeyProvider = await client
|
|
311
|
-
const apiKey = client.apiKey;
|
|
320
|
+
const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
|
|
312
321
|
if (!apiKey) {
|
|
313
322
|
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
314
323
|
}
|
|
@@ -322,6 +331,7 @@ export class OpenAIRealtimeWebSocket extends OpenAIRealtimeEmitter {
|
|
|
322
331
|
model: deploymentName,
|
|
323
332
|
...(dangerouslyAllowBrowser === undefined ? {} : { dangerouslyAllowBrowser }),
|
|
324
333
|
__resolvedApiKey: isApiKeyProvider,
|
|
334
|
+
__apiKey: apiKey,
|
|
325
335
|
},
|
|
326
336
|
client,
|
|
327
337
|
);
|
package/src/beta/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';
|
|
@@ -51,11 +52,14 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
51
52
|
|
|
52
53
|
/** Indicates that a function-based credential was resolved by an async factory. @internal */
|
|
53
54
|
__resolvedApiKey?: boolean;
|
|
55
|
+
/** Credential captured by an async factory for this connection. @internal */
|
|
56
|
+
__apiKey?: string | null;
|
|
54
57
|
},
|
|
55
58
|
client?: Pick<OpenAI, 'apiKey' | 'baseURL'>,
|
|
56
59
|
) {
|
|
57
60
|
super();
|
|
58
61
|
client ??= new OpenAI();
|
|
62
|
+
const apiKey = props.__apiKey === undefined ? client.apiKey : props.__apiKey;
|
|
59
63
|
const hasProvider = typeof (client as any)?._options?.apiKey === 'function';
|
|
60
64
|
if (hasProvider && !props.__resolvedApiKey) {
|
|
61
65
|
throw new Error(
|
|
@@ -71,7 +75,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
71
75
|
const headers = {
|
|
72
76
|
'User-Agent': `${client.constructor.name}/JS ${VERSION}`,
|
|
73
77
|
...props.options?.headers,
|
|
74
|
-
...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${
|
|
78
|
+
...(isAzure(client) && !props.__resolvedApiKey ? {} : { Authorization: `Bearer ${apiKey}` }),
|
|
75
79
|
'OpenAI-Beta': 'realtime=v1',
|
|
76
80
|
};
|
|
77
81
|
|
|
@@ -140,10 +144,10 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
140
144
|
const url = buildRealtimeURL(client, props);
|
|
141
145
|
assertTrustedRealtimeURL(client, url);
|
|
142
146
|
assertBedrockWebSocketOrigin(client, url);
|
|
143
|
-
const resolvedApiKey = await client
|
|
147
|
+
const { apiKey, isProvider: resolvedApiKey } = await resolveRealtimeAPIKey(client);
|
|
144
148
|
assertTrustedRealtimeURL(client, url);
|
|
145
149
|
assertBedrockWebSocketOrigin(client, url);
|
|
146
|
-
return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: resolvedApiKey }, client);
|
|
150
|
+
return new OpenAIRealtimeWS({ ...props, __resolvedApiKey: resolvedApiKey, __apiKey: apiKey }, client);
|
|
147
151
|
}
|
|
148
152
|
|
|
149
153
|
/**
|
|
@@ -167,8 +171,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
167
171
|
options?: WS.ClientOptions | undefined;
|
|
168
172
|
} = {},
|
|
169
173
|
): Promise<OpenAIRealtimeWS> {
|
|
170
|
-
const isApiKeyProvider = await client
|
|
171
|
-
const apiKey = client.apiKey;
|
|
174
|
+
const { apiKey, isProvider: isApiKeyProvider } = await resolveRealtimeAPIKey(client);
|
|
172
175
|
if (!apiKey) {
|
|
173
176
|
throw new Error('Azure OpenAI Realtime requires an API key');
|
|
174
177
|
}
|
|
@@ -187,6 +190,7 @@ export class OpenAIRealtimeWS extends OpenAIRealtimeEmitter {
|
|
|
187
190
|
},
|
|
188
191
|
},
|
|
189
192
|
__resolvedApiKey: isApiKeyProvider,
|
|
193
|
+
__apiKey: apiKey,
|
|
190
194
|
},
|
|
191
195
|
client,
|
|
192
196
|
);
|