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
package/src/lib/EventEmitter.ts
CHANGED
|
@@ -14,6 +14,20 @@ export type EventParameters<Events, EventType extends keyof Events> = Record<
|
|
|
14
14
|
EventListener<Events, EventType> extends (...args: infer P) => any ? P : never
|
|
15
15
|
>[EventType];
|
|
16
16
|
|
|
17
|
+
/** Result of awaiting an event: no value, one unwrapped value, or its argument tuple. */
|
|
18
|
+
export type EmittedEventResult<Args extends unknown[]> = [Args] extends [[infer Param]]
|
|
19
|
+
? Param
|
|
20
|
+
: [Args] extends [[]]
|
|
21
|
+
? void
|
|
22
|
+
: [Args] extends [[unknown?]]
|
|
23
|
+
? Args[0]
|
|
24
|
+
: [Args] extends [[unknown, unknown, ...unknown[]]]
|
|
25
|
+
? Args
|
|
26
|
+
:
|
|
27
|
+
| Args
|
|
28
|
+
| ([] extends Args ? undefined : never)
|
|
29
|
+
| (Args extends [...infer Prefix, infer Last] ? ([] extends Prefix ? Last : never) : Args[0]);
|
|
30
|
+
|
|
17
31
|
/** A lightweight event emitter with type-safe listeners and promise-based event waiting. */
|
|
18
32
|
export class EventEmitter<EventTypes extends Record<string, (...args: any) => any>> {
|
|
19
33
|
#listeners: {
|
|
@@ -145,13 +159,7 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
|
|
|
145
159
|
*/
|
|
146
160
|
emitted<Event extends keyof EventTypes>(
|
|
147
161
|
event: Event,
|
|
148
|
-
): Promise<
|
|
149
|
-
EventParameters<EventTypes, Event> extends [infer Param]
|
|
150
|
-
? Param
|
|
151
|
-
: EventParameters<EventTypes, Event> extends []
|
|
152
|
-
? void
|
|
153
|
-
: EventParameters<EventTypes, Event>
|
|
154
|
-
> {
|
|
162
|
+
): Promise<EmittedEventResult<EventParameters<EventTypes, Event>>> {
|
|
155
163
|
return new Promise((resolve, reject) => {
|
|
156
164
|
const onError = (error: unknown) => {
|
|
157
165
|
this.off(event, onEvent as any);
|
|
@@ -191,7 +199,8 @@ export class EventEmitter<EventTypes extends Record<string, (...args: any) => an
|
|
|
191
199
|
for (const registration of listeners as any) {
|
|
192
200
|
if (!registration.removed) {
|
|
193
201
|
try {
|
|
194
|
-
|
|
202
|
+
const { listener } = registration;
|
|
203
|
+
listener(...(args as any));
|
|
195
204
|
} catch (error) {
|
|
196
205
|
if (!listenerThrew) {
|
|
197
206
|
listenerThrew = true;
|
package/src/lib/EventStream.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
SubjectTokenProviderError,
|
|
19
19
|
UnprocessableEntityError,
|
|
20
20
|
} from '../error';
|
|
21
|
+
import type { EmittedEventResult } from './EventEmitter';
|
|
21
22
|
|
|
22
23
|
const MAX_BUFFERED_ITERATOR_EVENTS = 4096;
|
|
23
24
|
const MAX_BUFFERED_ITERATOR_BYTES = 8 * 1024 * 1024;
|
|
@@ -1359,6 +1360,10 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1359
1360
|
#errored = false;
|
|
1360
1361
|
#aborted = false;
|
|
1361
1362
|
#catchingPromiseCreated = false;
|
|
1363
|
+
// Terminal failure recorded during settlement, before `end` is emitted, so
|
|
1364
|
+
// iterators can surface it even when a throwing user listener prevented
|
|
1365
|
+
// their internal failure listeners from running.
|
|
1366
|
+
#terminalFailure: { kind: 'error' | 'abort'; error: OpenAIError } | undefined;
|
|
1362
1367
|
|
|
1363
1368
|
/** Creates an unstarted stream with independent connection and completion lifecycle promises. */
|
|
1364
1369
|
constructor() {
|
|
@@ -1447,6 +1452,9 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1447
1452
|
this.controller.abort();
|
|
1448
1453
|
return;
|
|
1449
1454
|
}
|
|
1455
|
+
if (this.#abortListeners.some((registration) => registration.signal === signal)) {
|
|
1456
|
+
return;
|
|
1457
|
+
}
|
|
1450
1458
|
|
|
1451
1459
|
const listener = () => this.controller.abort();
|
|
1452
1460
|
signal.addEventListener('abort', listener, { once: true });
|
|
@@ -1577,13 +1585,7 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1577
1585
|
*/
|
|
1578
1586
|
emitted<Event extends keyof EventTypes>(
|
|
1579
1587
|
event: Event,
|
|
1580
|
-
): Promise<
|
|
1581
|
-
EventParameters<EventTypes, Event> extends [infer Param]
|
|
1582
|
-
? Param
|
|
1583
|
-
: EventParameters<EventTypes, Event> extends []
|
|
1584
|
-
? void
|
|
1585
|
-
: EventParameters<EventTypes, Event>
|
|
1586
|
-
> {
|
|
1588
|
+
): Promise<EmittedEventResult<EventParameters<EventTypes, Event>>> {
|
|
1587
1589
|
return new Promise((resolve, reject) => {
|
|
1588
1590
|
this.#catchingPromiseCreated = true;
|
|
1589
1591
|
const onError = (error: OpenAIError) => {
|
|
@@ -1790,8 +1792,24 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1790
1792
|
rejectReader();
|
|
1791
1793
|
}
|
|
1792
1794
|
};
|
|
1795
|
+
// A throwing user listener registered before this iterator stops dispatch
|
|
1796
|
+
// before onFailure runs; adopt the failure the stream recorded during
|
|
1797
|
+
// settlement so terminal errors are never converted into clean completion.
|
|
1798
|
+
const adoptTerminalFailure = () => {
|
|
1799
|
+
if (failure) {
|
|
1800
|
+
return;
|
|
1801
|
+
}
|
|
1802
|
+
const terminal = this.#terminalFailure;
|
|
1803
|
+
if (!terminal) {
|
|
1804
|
+
return;
|
|
1805
|
+
}
|
|
1806
|
+
if (terminal.kind === 'error' ? rejectOnError : rejectOnAbort) {
|
|
1807
|
+
failure = terminal.error;
|
|
1808
|
+
}
|
|
1809
|
+
};
|
|
1793
1810
|
const onEnd = () => {
|
|
1794
1811
|
ended = true;
|
|
1812
|
+
adoptTerminalFailure();
|
|
1795
1813
|
cleanup();
|
|
1796
1814
|
if (!pushQueue.length) {
|
|
1797
1815
|
rejectReader();
|
|
@@ -1826,6 +1844,9 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1826
1844
|
return Promise.resolve({ value, done: false });
|
|
1827
1845
|
}
|
|
1828
1846
|
|
|
1847
|
+
if (ended || this.ended) {
|
|
1848
|
+
adoptTerminalFailure();
|
|
1849
|
+
}
|
|
1829
1850
|
if (failure && !failureDelivered) {
|
|
1830
1851
|
failureDelivered = true;
|
|
1831
1852
|
return Promise.reject(failure);
|
|
@@ -1841,6 +1862,9 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1841
1862
|
},
|
|
1842
1863
|
return: () => {
|
|
1843
1864
|
ended = true;
|
|
1865
|
+
// The consumer walked away; terminal failures recorded later must not
|
|
1866
|
+
// resurface through this iterator.
|
|
1867
|
+
failureDelivered = true;
|
|
1844
1868
|
while (bufferedEventSizes.length) {
|
|
1845
1869
|
deactivateBufferedEvent(bufferedEventSizes.dequeue()!);
|
|
1846
1870
|
}
|
|
@@ -1896,6 +1920,43 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1896
1920
|
return Boolean(this.#listeners[event]?.some((listener) => !listener.removed));
|
|
1897
1921
|
}
|
|
1898
1922
|
|
|
1923
|
+
#settleTerminalEvent<Event extends keyof EventTypes>(
|
|
1924
|
+
event: Event,
|
|
1925
|
+
args: EventParameters<EventTypes, Event>,
|
|
1926
|
+
hasListeners: boolean,
|
|
1927
|
+
): void {
|
|
1928
|
+
if (event === 'abort') {
|
|
1929
|
+
const error = args[0] as APIUserAbortError;
|
|
1930
|
+
this.#terminalFailure ??= { kind: 'abort', error };
|
|
1931
|
+
if (!this.#catchingPromiseCreated && !hasListeners) {
|
|
1932
|
+
Promise.reject(error);
|
|
1933
|
+
}
|
|
1934
|
+
this.#rejectConnectedPromise(error);
|
|
1935
|
+
this.#rejectEndPromise(error);
|
|
1936
|
+
this._emit('end');
|
|
1937
|
+
return;
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1940
|
+
if (event === 'error') {
|
|
1941
|
+
// NOTE: _emit('error', error) should only be called from #handleError().
|
|
1942
|
+
|
|
1943
|
+
const error = args[0] as OpenAIError;
|
|
1944
|
+
this.#terminalFailure ??= { kind: 'error', error };
|
|
1945
|
+
if (!this.#catchingPromiseCreated && !hasListeners) {
|
|
1946
|
+
// Trigger an unhandled rejection if the user hasn't registered any error handlers.
|
|
1947
|
+
// If you are seeing stack traces here, make sure to handle errors via either:
|
|
1948
|
+
// - runner.on('error', () => ...)
|
|
1949
|
+
// - await runner.done()
|
|
1950
|
+
// - await runner.finalChatCompletion()
|
|
1951
|
+
// - etc.
|
|
1952
|
+
Promise.reject(error);
|
|
1953
|
+
}
|
|
1954
|
+
this.#rejectConnectedPromise(error);
|
|
1955
|
+
this.#rejectEndPromise(error);
|
|
1956
|
+
this._emit('end');
|
|
1957
|
+
}
|
|
1958
|
+
}
|
|
1959
|
+
|
|
1899
1960
|
/** Dispatches a connection, failure, cancellation, or completion lifecycle event. */
|
|
1900
1961
|
_emit<Event extends keyof BaseEvents>(event: Event, ...args: EventParameters<BaseEvents, Event>): void;
|
|
1901
1962
|
/** Dispatches a typed stream event to all listeners registered for that event. */
|
|
@@ -1918,61 +1979,53 @@ export class EventStream<EventTypes extends BaseEvents> {
|
|
|
1918
1979
|
}
|
|
1919
1980
|
|
|
1920
1981
|
const listeners: EventListeners<EventTypes, Event> | undefined = this.#listeners[event];
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
this.#listenerDispatchDepth += 1;
|
|
1929
|
-
try {
|
|
1930
|
-
for (const registration of listeners as any) {
|
|
1931
|
-
if (!registration.removed) {
|
|
1932
|
-
registration.listener(...(args as any));
|
|
1982
|
+
let dispatchError: unknown;
|
|
1983
|
+
let dispatchThrew = false;
|
|
1984
|
+
try {
|
|
1985
|
+
if (listeners) {
|
|
1986
|
+
this.#listeners[event] = listeners.filter((listener) => {
|
|
1987
|
+
if (listener.once) {
|
|
1988
|
+
listener.detached = true;
|
|
1933
1989
|
}
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
this.#listenerDispatchDepth
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1990
|
+
return !listener.once && !listener.removed;
|
|
1991
|
+
}) as any;
|
|
1992
|
+
this.#listenerDispatchDepth += 1;
|
|
1993
|
+
try {
|
|
1994
|
+
for (const registration of listeners as any) {
|
|
1995
|
+
if (!registration.removed) {
|
|
1996
|
+
const { listener } = registration;
|
|
1997
|
+
listener(...(args as any));
|
|
1998
|
+
}
|
|
1999
|
+
}
|
|
2000
|
+
} finally {
|
|
2001
|
+
this.#listenerDispatchDepth -= 1;
|
|
2002
|
+
if (this.#listenerDispatchDepth === 0) {
|
|
2003
|
+
this.#cleanupEmittedListeners();
|
|
2004
|
+
for (const check of this.#pendingBufferedEventChecks) {
|
|
2005
|
+
this.#pendingBufferedEventChecks.delete(check);
|
|
2006
|
+
if (!this.#ended) {
|
|
2007
|
+
check();
|
|
2008
|
+
}
|
|
1943
2009
|
}
|
|
1944
2010
|
}
|
|
1945
2011
|
}
|
|
1946
2012
|
}
|
|
2013
|
+
} catch (error) {
|
|
2014
|
+
dispatchError = error;
|
|
2015
|
+
dispatchThrew = true;
|
|
1947
2016
|
}
|
|
1948
2017
|
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
2018
|
+
try {
|
|
2019
|
+
this.#settleTerminalEvent(event, args, Boolean(listeners?.length));
|
|
2020
|
+
} catch (error) {
|
|
2021
|
+
if (!dispatchThrew) {
|
|
2022
|
+
dispatchError = error;
|
|
2023
|
+
dispatchThrew = true;
|
|
1953
2024
|
}
|
|
1954
|
-
this.#rejectConnectedPromise(error);
|
|
1955
|
-
this.#rejectEndPromise(error);
|
|
1956
|
-
this._emit('end');
|
|
1957
|
-
return;
|
|
1958
2025
|
}
|
|
1959
2026
|
|
|
1960
|
-
if (
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
const error = args[0] as OpenAIError;
|
|
1964
|
-
if (!this.#catchingPromiseCreated && !listeners?.length) {
|
|
1965
|
-
// Trigger an unhandled rejection if the user hasn't registered any error handlers.
|
|
1966
|
-
// If you are seeing stack traces here, make sure to handle errors via either:
|
|
1967
|
-
// - runner.on('error', () => ...)
|
|
1968
|
-
// - await runner.done()
|
|
1969
|
-
// - await runner.finalChatCompletion()
|
|
1970
|
-
// - etc.
|
|
1971
|
-
Promise.reject(error);
|
|
1972
|
-
}
|
|
1973
|
-
this.#rejectConnectedPromise(error);
|
|
1974
|
-
this.#rejectEndPromise(error);
|
|
1975
|
-
this._emit('end');
|
|
2027
|
+
if (dispatchThrew) {
|
|
2028
|
+
throw dispatchError;
|
|
1976
2029
|
}
|
|
1977
2030
|
}
|
|
1978
2031
|
|
|
@@ -2,6 +2,7 @@ import { OpenAIError } from '../error';
|
|
|
2
2
|
import type { ChatCompletionTool } from '../resources/chat/completions';
|
|
3
3
|
import type {
|
|
4
4
|
FunctionTool,
|
|
5
|
+
NamespaceTool,
|
|
5
6
|
ParsedContent,
|
|
6
7
|
ParsedResponse,
|
|
7
8
|
ParsedResponseFunctionToolCall,
|
|
@@ -97,7 +98,8 @@ export function maybeParseResponse<
|
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
/**
|
|
100
|
-
* Parses completed response text and strict function-tool arguments
|
|
101
|
+
* Parses completed response text and strict function-tool arguments, matching
|
|
102
|
+
* namespaced functions by both namespace and name.
|
|
101
103
|
*
|
|
102
104
|
* Incomplete or nonterminal responses keep their parsed values as `null`, and
|
|
103
105
|
* `output_parsed` returns the first successfully parsed output-text item.
|
|
@@ -177,7 +179,13 @@ export function hasAutoParseableInput(params: ResponseCreateParamsWithTools): bo
|
|
|
177
179
|
return (
|
|
178
180
|
Array.isArray(params.tools) &&
|
|
179
181
|
params.tools.some(
|
|
180
|
-
(tool) =>
|
|
182
|
+
(tool) =>
|
|
183
|
+
isAutoParsableTool(tool) ||
|
|
184
|
+
(tool.type === 'function' && tool.strict === true) ||
|
|
185
|
+
(tool.type === 'namespace' &&
|
|
186
|
+
tool.tools.some(
|
|
187
|
+
(nested) => nested.type === 'function' && (isAutoParsableTool(nested) || nested.strict === true),
|
|
188
|
+
)),
|
|
181
189
|
)
|
|
182
190
|
);
|
|
183
191
|
}
|
|
@@ -220,9 +228,9 @@ export function makeParseableResponseTool<OptionsT extends ToolOptions>(
|
|
|
220
228
|
/** Converts the raw JSON argument string into the function's typed argument value. */
|
|
221
229
|
parser: (content: string) => OptionsT['arguments'];
|
|
222
230
|
/** Optional callback available to helpers that execute the parsed function. */
|
|
223
|
-
callback: ((args:
|
|
231
|
+
callback: ((args: OptionsT['arguments']) => any) | undefined;
|
|
224
232
|
},
|
|
225
|
-
): AutoParseableResponseTool<OptionsT
|
|
233
|
+
): AutoParseableResponseTool<OptionsT> {
|
|
226
234
|
const obj = { ...tool };
|
|
227
235
|
|
|
228
236
|
Object.defineProperties(obj, {
|
|
@@ -240,7 +248,7 @@ export function makeParseableResponseTool<OptionsT extends ToolOptions>(
|
|
|
240
248
|
},
|
|
241
249
|
});
|
|
242
250
|
|
|
243
|
-
return obj as AutoParseableResponseTool<OptionsT
|
|
251
|
+
return obj as AutoParseableResponseTool<OptionsT>;
|
|
244
252
|
}
|
|
245
253
|
|
|
246
254
|
/** Returns whether a Responses API tool carries the SDK's argument-parser marker. */
|
|
@@ -248,17 +256,30 @@ export function isAutoParsableTool(tool: any): tool is AutoParseableResponseTool
|
|
|
248
256
|
return tool?.['$brand'] === 'auto-parseable-tool';
|
|
249
257
|
}
|
|
250
258
|
|
|
251
|
-
function getInputToolByName(
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
259
|
+
function getInputToolByName(
|
|
260
|
+
input_tools: Tool[],
|
|
261
|
+
name: string,
|
|
262
|
+
namespace?: string,
|
|
263
|
+
): FunctionTool | NamespaceTool.Function | undefined {
|
|
264
|
+
for (const tool of input_tools) {
|
|
265
|
+
if (namespace == null) {
|
|
266
|
+
if (tool.type === 'function' && tool.name === name) {
|
|
267
|
+
return tool;
|
|
268
|
+
}
|
|
269
|
+
} else if (tool.type === 'namespace' && tool.name === namespace) {
|
|
270
|
+
return tool.tools.find(
|
|
271
|
+
(nested): nested is NamespaceTool.Function => nested.type === 'function' && nested.name === name,
|
|
272
|
+
);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return undefined;
|
|
255
276
|
}
|
|
256
277
|
|
|
257
278
|
function parseToolCall<Params extends ResponseCreateParamsBase>(
|
|
258
279
|
params: Params,
|
|
259
280
|
toolCall: ResponseFunctionToolCall,
|
|
260
281
|
): ParsedResponseFunctionToolCall {
|
|
261
|
-
const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);
|
|
282
|
+
const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);
|
|
262
283
|
|
|
263
284
|
let parsedArguments: unknown = null;
|
|
264
285
|
if (isAutoParsableTool(inputTool)) {
|
|
@@ -276,7 +297,7 @@ function parseToolCall<Params extends ResponseCreateParamsBase>(
|
|
|
276
297
|
};
|
|
277
298
|
}
|
|
278
299
|
|
|
279
|
-
/**
|
|
300
|
+
/** Matches a response function call to a strict or auto-parseable tool by namespace and name. */
|
|
280
301
|
export function shouldParseToolCall(
|
|
281
302
|
params: ResponseCreateParamsNonStreaming | null | undefined,
|
|
282
303
|
toolCall: ResponseFunctionToolCall,
|
|
@@ -285,7 +306,7 @@ export function shouldParseToolCall(
|
|
|
285
306
|
return false;
|
|
286
307
|
}
|
|
287
308
|
|
|
288
|
-
const inputTool = getInputToolByName(params.tools ?? [], toolCall.name);
|
|
309
|
+
const inputTool = getInputToolByName(params.tools ?? [], toolCall.name, toolCall.namespace);
|
|
289
310
|
return isAutoParsableTool(inputTool) || inputTool?.strict || false;
|
|
290
311
|
}
|
|
291
312
|
|
|
@@ -140,7 +140,7 @@ export type RunnableFunctions<FunctionsArgs extends BaseFunctionsArgs, ToolConte
|
|
|
140
140
|
] extends [FunctionsArgs]
|
|
141
141
|
? readonly RunnableFunction<any, ToolContext>[]
|
|
142
142
|
: {
|
|
143
|
-
[Index in keyof FunctionsArgs]: Index extends
|
|
143
|
+
[Index in keyof FunctionsArgs]: FunctionsArgs[Index] extends object | string
|
|
144
144
|
? RunnableFunction<FunctionsArgs[Index], ToolContext>
|
|
145
145
|
: FunctionsArgs[Index];
|
|
146
146
|
};
|
|
@@ -151,7 +151,7 @@ export type RunnableTools<FunctionsArgs extends BaseFunctionsArgs, ToolContext =
|
|
|
151
151
|
]
|
|
152
152
|
? readonly RunnableToolFunction<any, ToolContext>[]
|
|
153
153
|
: {
|
|
154
|
-
[Index in keyof FunctionsArgs]: Index extends
|
|
154
|
+
[Index in keyof FunctionsArgs]: FunctionsArgs[Index] extends object | string
|
|
155
155
|
? RunnableToolFunction<FunctionsArgs[Index], ToolContext>
|
|
156
156
|
: FunctionsArgs[Index];
|
|
157
157
|
};
|
package/src/lib/embeddings.ts
CHANGED
|
@@ -28,34 +28,40 @@ export function createEmbedding(
|
|
|
28
28
|
loggerFor(client).debug('embeddings/user defined encoding_format:', body.encoding_format);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
encoding_format: encodingFormat,
|
|
35
|
-
},
|
|
31
|
+
const optimizedBody = { ...body, encoding_format: encodingFormat };
|
|
32
|
+
const requestOptions: RequestOptions = {
|
|
33
|
+
body: optimizedBody,
|
|
36
34
|
...options,
|
|
37
35
|
__security: { bearerAuth: true },
|
|
38
|
-
}
|
|
36
|
+
};
|
|
37
|
+
const response: APIPromise<CreateEmbeddingResponse> = client.post('/embeddings', requestOptions);
|
|
39
38
|
|
|
40
39
|
// Explicit encodings return the original response promise unchanged.
|
|
41
40
|
if (hasUserProvidedEncodingFormat) {
|
|
42
41
|
return response;
|
|
43
42
|
}
|
|
44
43
|
|
|
45
|
-
//
|
|
46
|
-
//
|
|
44
|
+
// Preserve numeric output for default requests, including body overrides that
|
|
45
|
+
// change the encoding used on the wire.
|
|
47
46
|
loggerFor(client).debug('embeddings/decoding base64 embeddings from base64');
|
|
48
47
|
|
|
49
48
|
return response._thenUnwrap((data) => {
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
const embeddings = data?.data;
|
|
50
|
+
if (embeddings !== undefined) {
|
|
51
|
+
if (!Array.isArray(embeddings)) {
|
|
52
|
+
throw new TypeError('Expected embeddings response data to be an array');
|
|
53
|
+
}
|
|
52
54
|
const { length } = embeddings;
|
|
53
55
|
// Preserve the original iteration length and skip sparse-array holes.
|
|
54
56
|
for (let index = 0; index < length; index += 1) {
|
|
55
57
|
if (index in embeddings) {
|
|
56
58
|
const embeddingBase64Obj = embeddings[index] as Embedding;
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
+
const { embedding } = embeddingBase64Obj;
|
|
60
|
+
// Request hooks and serialization can also select float embeddings.
|
|
61
|
+
if (Array.isArray(embedding)) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
embeddingBase64Obj.embedding = toFloat32Array(embedding as unknown as string);
|
|
59
65
|
}
|
|
60
66
|
}
|
|
61
67
|
}
|
|
@@ -3,8 +3,9 @@ import { sleep } from '../internal/utils/sleep';
|
|
|
3
3
|
import type { FileObject, Files } from '../resources/files';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Waits for file processing through the resource's retrieve method.
|
|
7
|
-
*
|
|
6
|
+
* Waits for file processing through the resource's retrieve method. Elapsed time
|
|
7
|
+
* uses a monotonic clock so system clock changes do not affect the timeout,
|
|
8
|
+
* which is checked after each subsequent retrieval, preserving the existing behavior
|
|
8
9
|
* for an initially terminal file and for a terminal response received too late.
|
|
9
10
|
*
|
|
10
11
|
* @internal
|
|
@@ -16,7 +17,7 @@ export async function waitForFileProcessing(
|
|
|
16
17
|
maxWait: number,
|
|
17
18
|
): Promise<FileObject> {
|
|
18
19
|
const terminalStates = new Set(['processed', 'error', 'deleted']);
|
|
19
|
-
const start =
|
|
20
|
+
const start = performance.now();
|
|
20
21
|
let file = await resource.retrieve(id);
|
|
21
22
|
|
|
22
23
|
while (!file.status || !terminalStates.has(file.status)) {
|
|
@@ -25,7 +26,7 @@ export async function waitForFileProcessing(
|
|
|
25
26
|
|
|
26
27
|
// oxlint-disable-next-line no-await-in-loop -- The timeout and next iteration depend on this response.
|
|
27
28
|
file = await resource.retrieve(id);
|
|
28
|
-
if (
|
|
29
|
+
if (performance.now() - start > maxWait) {
|
|
29
30
|
throw new APIConnectionTimeoutError({
|
|
30
31
|
message: `Giving up on waiting for file ${id} to finish processing after ${maxWait} milliseconds.`,
|
|
31
32
|
});
|
package/src/lib/parser.ts
CHANGED
|
@@ -214,19 +214,43 @@ export type AutoParseableTool<
|
|
|
214
214
|
$parseRaw(args: string): OptionsT['arguments'];
|
|
215
215
|
};
|
|
216
216
|
|
|
217
|
-
/**
|
|
217
|
+
/** Parser and optional callback supplied when creating a custom chat function tool. */
|
|
218
|
+
type ToolParserOptions<OptionsT extends ToolOptions> = {
|
|
219
|
+
/** Converts the raw JSON argument string into the tool's typed argument value. */
|
|
220
|
+
parser: (content: string) => OptionsT['arguments'];
|
|
221
|
+
/** Optional callback invoked by a chat completion tool runner. */
|
|
222
|
+
callback: ((args: OptionsT['arguments']) => any) | undefined;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
/** Creates a runnable function tool with a guaranteed execution callback. */
|
|
226
|
+
export function makeParseableTool<OptionsT extends ToolOptions>(
|
|
227
|
+
tool: ChatCompletionFunctionTool,
|
|
228
|
+
options: ToolParserOptions<OptionsT> & {
|
|
229
|
+
/** Callback invoked with the parsed tool arguments. */
|
|
230
|
+
callback: (args: OptionsT['arguments']) => any;
|
|
231
|
+
},
|
|
232
|
+
): AutoParseableTool<OptionsT, true>;
|
|
233
|
+
|
|
234
|
+
/** Creates a parse-only function tool without an execution callback. */
|
|
218
235
|
export function makeParseableTool<OptionsT extends ToolOptions>(
|
|
219
236
|
tool: ChatCompletionFunctionTool,
|
|
220
|
-
{
|
|
221
|
-
|
|
222
|
-
callback
|
|
223
|
-
}: {
|
|
224
|
-
/** Converts the raw JSON argument string into the tool's typed argument value. */
|
|
225
|
-
parser: (content: string) => OptionsT['arguments'];
|
|
226
|
-
/** Optional callback invoked by a chat completion tool runner. */
|
|
227
|
-
callback: ((args: any) => any) | undefined;
|
|
237
|
+
options: ToolParserOptions<OptionsT> & {
|
|
238
|
+
/** No execution callback is attached to this tool. */
|
|
239
|
+
callback: undefined;
|
|
228
240
|
},
|
|
229
|
-
): AutoParseableTool<OptionsT
|
|
241
|
+
): AutoParseableTool<OptionsT, false>;
|
|
242
|
+
|
|
243
|
+
/** Creates a function tool whose execution callback may be unavailable. */
|
|
244
|
+
export function makeParseableTool<OptionsT extends ToolOptions>(
|
|
245
|
+
tool: ChatCompletionFunctionTool,
|
|
246
|
+
options: ToolParserOptions<OptionsT>,
|
|
247
|
+
): AutoParseableTool<OptionsT, boolean>;
|
|
248
|
+
|
|
249
|
+
/** Copies a function tool and attaches non-enumerable parsing and callback metadata. */
|
|
250
|
+
export function makeParseableTool<OptionsT extends ToolOptions>(
|
|
251
|
+
tool: ChatCompletionFunctionTool,
|
|
252
|
+
{ parser, callback }: ToolParserOptions<OptionsT>,
|
|
253
|
+
): AutoParseableTool<OptionsT, boolean> {
|
|
230
254
|
const obj = { ...tool };
|
|
231
255
|
|
|
232
256
|
Object.defineProperties(obj, {
|
|
@@ -244,7 +268,7 @@ export function makeParseableTool<OptionsT extends ToolOptions>(
|
|
|
244
268
|
},
|
|
245
269
|
});
|
|
246
270
|
|
|
247
|
-
return obj as AutoParseableTool<OptionsT
|
|
271
|
+
return obj as AutoParseableTool<OptionsT, boolean>;
|
|
248
272
|
}
|
|
249
273
|
|
|
250
274
|
/** Returns whether a Chat Completions tool carries the SDK's argument-parser marker. */
|
package/src/lib/polling.ts
CHANGED
|
@@ -92,8 +92,8 @@ function sleepUntilAborted(milliseconds: number, signal: AbortSignal): Promise<v
|
|
|
92
92
|
|
|
93
93
|
/**
|
|
94
94
|
* Repeatedly retrieves a lifecycle resource using the existing polling-helper
|
|
95
|
-
* headers. Intermediate states wait for the explicit interval
|
|
96
|
-
* or five-second default; terminal states return the same parsed object.
|
|
95
|
+
* headers. Intermediate states wait for the explicit interval (including zero),
|
|
96
|
+
* the server interval, or five-second default; terminal states return the same parsed object.
|
|
97
97
|
* The caller's signal interrupts intermediate waits, unknown states retry
|
|
98
98
|
* immediately, and retrieval errors propagate unchanged.
|
|
99
99
|
*
|
|
@@ -120,9 +120,10 @@ export async function pollWithResponse<T extends { status: string }>(
|
|
|
120
120
|
|
|
121
121
|
if (intermediateStatuses.includes(status)) {
|
|
122
122
|
let sleepInterval = 5000;
|
|
123
|
+
const pollIntervalMs = options?.pollIntervalMs;
|
|
123
124
|
|
|
124
|
-
if (
|
|
125
|
-
sleepInterval =
|
|
125
|
+
if (pollIntervalMs || pollIntervalMs === 0) {
|
|
126
|
+
sleepInterval = pollIntervalMs;
|
|
126
127
|
} else {
|
|
127
128
|
const headerInterval = response.headers.get('openai-poll-after-ms');
|
|
128
129
|
if (headerInterval) {
|
|
@@ -1,40 +1,7 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
ResponseAudioDeltaEvent,
|
|
3
|
-
ResponseAudioDoneEvent,
|
|
4
|
-
ResponseAudioTranscriptDeltaEvent,
|
|
5
|
-
ResponseAudioTranscriptDoneEvent,
|
|
6
|
-
ResponseCodeInterpreterCallCodeDeltaEvent,
|
|
7
|
-
ResponseCodeInterpreterCallCodeDoneEvent,
|
|
8
|
-
ResponseCodeInterpreterCallCompletedEvent,
|
|
9
|
-
ResponseCodeInterpreterCallInProgressEvent,
|
|
10
|
-
ResponseCodeInterpreterCallInterpretingEvent,
|
|
11
|
-
ResponseCompletedEvent,
|
|
12
|
-
ResponseContentPartAddedEvent,
|
|
13
|
-
ResponseContentPartDoneEvent,
|
|
14
|
-
ResponseCreatedEvent,
|
|
15
|
-
ResponseErrorEvent,
|
|
16
|
-
ResponseFailedEvent,
|
|
17
|
-
ResponseFileSearchCallCompletedEvent,
|
|
18
|
-
ResponseFileSearchCallInProgressEvent,
|
|
19
|
-
ResponseFileSearchCallSearchingEvent,
|
|
20
2
|
ResponseFunctionCallArgumentsDeltaEvent as RawResponseFunctionCallArgumentsDeltaEvent,
|
|
21
|
-
|
|
22
|
-
ResponseInProgressEvent,
|
|
23
|
-
ResponseOutputItemAddedEvent,
|
|
24
|
-
ResponseOutputItemDoneEvent,
|
|
25
|
-
ResponseRefusalDeltaEvent,
|
|
26
|
-
ResponseRefusalDoneEvent,
|
|
27
|
-
ResponseShellCallCommandAddedEvent,
|
|
28
|
-
ResponseShellCallCommandDeltaEvent,
|
|
29
|
-
ResponseShellCallCommandDoneEvent,
|
|
30
|
-
ResponseShellCallOutputContentDeltaEvent,
|
|
31
|
-
ResponseShellCallOutputContentDoneEvent,
|
|
3
|
+
ResponseStreamEvent,
|
|
32
4
|
ResponseTextDeltaEvent as RawResponseTextDeltaEvent,
|
|
33
|
-
ResponseTextDoneEvent,
|
|
34
|
-
ResponseIncompleteEvent,
|
|
35
|
-
ResponseWebSearchCallCompletedEvent,
|
|
36
|
-
ResponseWebSearchCallInProgressEvent,
|
|
37
|
-
ResponseWebSearchCallSearchingEvent,
|
|
38
5
|
} from '../../resources/responses/responses';
|
|
39
6
|
|
|
40
7
|
/** A function-argument delta enhanced with the argument JSON accumulated so far. */
|
|
@@ -51,39 +18,6 @@ export type ResponseTextDeltaEvent = RawResponseTextDeltaEvent & {
|
|
|
51
18
|
|
|
52
19
|
/** A Responses API event, with accumulated snapshots attached to text and argument deltas. */
|
|
53
20
|
export type ParsedResponseStreamEvent =
|
|
54
|
-
|
|
|
55
|
-
| ResponseAudioDoneEvent
|
|
56
|
-
| ResponseAudioTranscriptDeltaEvent
|
|
57
|
-
| ResponseAudioTranscriptDoneEvent
|
|
58
|
-
| ResponseCodeInterpreterCallCodeDeltaEvent
|
|
59
|
-
| ResponseCodeInterpreterCallCodeDoneEvent
|
|
60
|
-
| ResponseCodeInterpreterCallCompletedEvent
|
|
61
|
-
| ResponseCodeInterpreterCallInProgressEvent
|
|
62
|
-
| ResponseCodeInterpreterCallInterpretingEvent
|
|
63
|
-
| ResponseCompletedEvent
|
|
64
|
-
| ResponseContentPartAddedEvent
|
|
65
|
-
| ResponseContentPartDoneEvent
|
|
66
|
-
| ResponseCreatedEvent
|
|
67
|
-
| ResponseErrorEvent
|
|
68
|
-
| ResponseFileSearchCallCompletedEvent
|
|
69
|
-
| ResponseFileSearchCallInProgressEvent
|
|
70
|
-
| ResponseFileSearchCallSearchingEvent
|
|
21
|
+
| Exclude<ResponseStreamEvent, RawResponseFunctionCallArgumentsDeltaEvent | RawResponseTextDeltaEvent>
|
|
71
22
|
| ResponseFunctionCallArgumentsDeltaEvent
|
|
72
|
-
|
|
|
73
|
-
| ResponseInProgressEvent
|
|
74
|
-
| ResponseFailedEvent
|
|
75
|
-
| ResponseIncompleteEvent
|
|
76
|
-
| ResponseOutputItemAddedEvent
|
|
77
|
-
| ResponseOutputItemDoneEvent
|
|
78
|
-
| ResponseRefusalDeltaEvent
|
|
79
|
-
| ResponseRefusalDoneEvent
|
|
80
|
-
| ResponseShellCallCommandAddedEvent
|
|
81
|
-
| ResponseShellCallCommandDeltaEvent
|
|
82
|
-
| ResponseShellCallCommandDoneEvent
|
|
83
|
-
| ResponseShellCallOutputContentDeltaEvent
|
|
84
|
-
| ResponseShellCallOutputContentDoneEvent
|
|
85
|
-
| ResponseTextDeltaEvent
|
|
86
|
-
| ResponseTextDoneEvent
|
|
87
|
-
| ResponseWebSearchCallCompletedEvent
|
|
88
|
-
| ResponseWebSearchCallInProgressEvent
|
|
89
|
-
| ResponseWebSearchCallSearchingEvent;
|
|
23
|
+
| ResponseTextDeltaEvent;
|