openai 7.5.0 → 7.6.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 +105 -0
- package/README.md +46 -2
- package/auth/index.d.mts +1 -1
- package/auth/index.d.mts.map +1 -1
- package/auth/index.d.ts +1 -1
- package/auth/index.d.ts.map +1 -1
- package/auth/index.js.map +1 -1
- package/auth/index.mjs.map +1 -1
- package/auth/subject-token-providers.d.mts.map +1 -1
- package/auth/subject-token-providers.d.ts.map +1 -1
- package/auth/subject-token-providers.js +176 -4
- package/auth/subject-token-providers.js.map +1 -1
- package/auth/subject-token-providers.mjs +176 -4
- package/auth/subject-token-providers.mjs.map +1 -1
- package/auth/types.d.mts +17 -0
- package/auth/types.d.mts.map +1 -1
- package/auth/types.d.ts +17 -0
- package/auth/types.d.ts.map +1 -1
- package/auth/workload-identity-auth.d.mts.map +1 -1
- package/auth/workload-identity-auth.d.ts.map +1 -1
- package/auth/workload-identity-auth.js +80 -7
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +80 -7
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/auth/x509-transport.d.mts +5 -0
- package/auth/x509-transport.d.mts.map +1 -0
- package/auth/x509-transport.d.ts +5 -0
- package/auth/x509-transport.d.ts.map +1 -0
- package/auth/x509-transport.js +39 -0
- package/auth/x509-transport.js.map +1 -0
- package/auth/x509-transport.mjs +36 -0
- package/auth/x509-transport.mjs.map +1 -0
- package/azure.d.mts +11 -2
- package/azure.d.mts.map +1 -1
- package/azure.d.ts +11 -2
- package/azure.d.ts.map +1 -1
- package/azure.js +7 -1
- package/azure.js.map +1 -1
- package/azure.mjs +7 -1
- package/azure.mjs.map +1 -1
- package/bedrock.d.mts +6 -2
- package/bedrock.d.mts.map +1 -1
- package/bedrock.d.ts +6 -2
- package/bedrock.d.ts.map +1 -1
- package/bedrock.js +34 -4
- package/bedrock.js.map +1 -1
- package/bedrock.mjs +35 -5
- package/bedrock.mjs.map +1 -1
- package/beta/realtime/internal-base.d.mts +2 -0
- package/beta/realtime/internal-base.d.mts.map +1 -1
- package/beta/realtime/internal-base.d.ts +2 -0
- package/beta/realtime/internal-base.d.ts.map +1 -1
- package/beta/realtime/internal-base.js +15 -0
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +14 -0
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts +11 -5
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts +11 -5
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +106 -31
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +107 -32
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts +0 -2
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts +0 -2
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +24 -5
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +25 -6
- package/beta/realtime/ws.mjs.map +1 -1
- package/client.d.mts +17 -2
- package/client.d.mts.map +1 -1
- package/client.d.ts +17 -2
- package/client.d.ts.map +1 -1
- package/client.js +422 -70
- package/client.js.map +1 -1
- package/client.mjs +423 -71
- package/client.mjs.map +1 -1
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +67 -9
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +68 -10
- package/core/EventEmitter.mjs.map +1 -1
- package/core/streaming.d.mts +1 -0
- package/core/streaming.d.mts.map +1 -1
- package/core/streaming.d.ts +1 -0
- package/core/streaming.d.ts.map +1 -1
- package/core/streaming.js +58 -19
- package/core/streaming.js.map +1 -1
- package/core/streaming.mjs +58 -19
- package/core/streaming.mjs.map +1 -1
- package/helpers/audio.d.mts +5 -5
- package/helpers/audio.d.mts.map +1 -1
- package/helpers/audio.d.ts +5 -5
- package/helpers/audio.d.ts.map +1 -1
- package/helpers/audio.js +93 -22
- package/helpers/audio.js.map +1 -1
- package/helpers/audio.mjs +93 -22
- package/helpers/audio.mjs.map +1 -1
- package/helpers/standard-schema.d.mts.map +1 -1
- package/helpers/standard-schema.d.ts.map +1 -1
- package/helpers/standard-schema.js +34 -14
- package/helpers/standard-schema.js.map +1 -1
- package/helpers/standard-schema.mjs +35 -15
- package/helpers/standard-schema.mjs.map +1 -1
- package/helpers/zod-v3-strict-schema.d.mts +7 -0
- package/helpers/zod-v3-strict-schema.d.mts.map +1 -0
- package/helpers/zod-v3-strict-schema.d.ts +7 -0
- package/helpers/zod-v3-strict-schema.d.ts.map +1 -0
- package/helpers/zod-v3-strict-schema.js +403 -0
- package/helpers/zod-v3-strict-schema.js.map +1 -0
- package/helpers/zod-v3-strict-schema.mjs +399 -0
- package/helpers/zod-v3-strict-schema.mjs.map +1 -0
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +11 -3
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +12 -4
- package/helpers/zod.mjs.map +1 -1
- package/index.d.mts +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/index.mjs.map +1 -1
- package/internal/assistant-stream-delta.d.mts.map +1 -1
- package/internal/assistant-stream-delta.d.ts.map +1 -1
- package/internal/assistant-stream-delta.js +28 -8
- package/internal/assistant-stream-delta.js.map +1 -1
- package/internal/assistant-stream-delta.mjs +28 -8
- package/internal/assistant-stream-delta.mjs.map +1 -1
- package/internal/auth/x509-token-exchange.d.mts +16 -0
- package/internal/auth/x509-token-exchange.d.mts.map +1 -0
- package/internal/auth/x509-token-exchange.d.ts +16 -0
- package/internal/auth/x509-token-exchange.d.ts.map +1 -0
- package/internal/auth/x509-token-exchange.js +246 -0
- package/internal/auth/x509-token-exchange.js.map +1 -0
- package/internal/auth/x509-token-exchange.mjs +243 -0
- package/internal/auth/x509-token-exchange.mjs.map +1 -0
- package/internal/auth/x509-transport-capability.d.mts +37 -0
- package/internal/auth/x509-transport-capability.d.mts.map +1 -0
- package/internal/auth/x509-transport-capability.d.ts +37 -0
- package/internal/auth/x509-transport-capability.d.ts.map +1 -0
- package/internal/auth/x509-transport-capability.js +169 -0
- package/internal/auth/x509-transport-capability.js.map +1 -0
- package/internal/auth/x509-transport-capability.mjs +164 -0
- package/internal/auth/x509-transport-capability.mjs.map +1 -0
- package/internal/auth/x509-transport-registry.d.mts +63 -0
- package/internal/auth/x509-transport-registry.d.mts.map +1 -0
- package/internal/auth/x509-transport-registry.d.ts +63 -0
- package/internal/auth/x509-transport-registry.d.ts.map +1 -0
- package/internal/auth/x509-transport-registry.js +53 -0
- package/internal/auth/x509-transport-registry.js.map +1 -0
- package/internal/auth/x509-transport-registry.mjs +48 -0
- package/internal/auth/x509-transport-registry.mjs.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.mts +21 -0
- package/internal/auth/x509-transport-state-browser.d.mts.map +1 -0
- package/internal/auth/x509-transport-state-browser.d.ts +21 -0
- package/internal/auth/x509-transport-state-browser.d.ts.map +1 -0
- package/internal/auth/x509-transport-state-browser.js +30 -0
- package/internal/auth/x509-transport-state-browser.js.map +1 -0
- package/internal/auth/x509-transport-state-browser.mjs +27 -0
- package/internal/auth/x509-transport-state-browser.mjs.map +1 -0
- package/internal/auth/x509-transport-state.cjs +30 -0
- package/internal/auth/x509-transport-state.cjs.map +1 -0
- package/internal/auth/x509-transport-state.d.cts +21 -0
- package/internal/auth/x509-transport-state.d.cts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.mts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.mts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.d.ts +128 -0
- package/internal/auth/x509-workload-identity-auth.d.ts.map +1 -0
- package/internal/auth/x509-workload-identity-auth.js +767 -0
- package/internal/auth/x509-workload-identity-auth.js.map +1 -0
- package/internal/auth/x509-workload-identity-auth.mjs +757 -0
- package/internal/auth/x509-workload-identity-auth.mjs.map +1 -0
- package/internal/bedrock.d.mts +2 -0
- package/internal/bedrock.d.mts.map +1 -1
- package/internal/bedrock.d.ts +2 -0
- package/internal/bedrock.d.ts.map +1 -1
- package/internal/bedrock.js +169 -5
- package/internal/bedrock.js.map +1 -1
- package/internal/bedrock.mjs +168 -5
- package/internal/bedrock.mjs.map +1 -1
- package/internal/data-residency.d.mts +12 -0
- package/internal/data-residency.d.mts.map +1 -0
- package/internal/data-residency.d.ts +12 -0
- package/internal/data-residency.d.ts.map +1 -0
- package/internal/data-residency.js +34 -0
- package/internal/data-residency.js.map +1 -0
- package/internal/data-residency.mjs +30 -0
- package/internal/data-residency.mjs.map +1 -0
- package/internal/multipart-encoding.d.mts +8 -0
- package/internal/multipart-encoding.d.mts.map +1 -0
- package/internal/multipart-encoding.d.ts +8 -0
- package/internal/multipart-encoding.d.ts.map +1 -0
- package/internal/multipart-encoding.js +51 -0
- package/internal/multipart-encoding.js.map +1 -0
- package/internal/multipart-encoding.mjs +48 -0
- package/internal/multipart-encoding.mjs.map +1 -0
- package/internal/qs/utils.d.mts.map +1 -1
- package/internal/qs/utils.d.ts.map +1 -1
- package/internal/qs/utils.js +307 -10
- package/internal/qs/utils.js.map +1 -1
- package/internal/qs/utils.mjs +307 -10
- package/internal/qs/utils.mjs.map +1 -1
- package/internal/request-options.d.mts +7 -0
- package/internal/request-options.d.mts.map +1 -1
- package/internal/request-options.d.ts +7 -0
- package/internal/request-options.d.ts.map +1 -1
- package/internal/request-options.js +43 -1
- package/internal/request-options.js.map +1 -1
- package/internal/request-options.mjs +42 -1
- package/internal/request-options.mjs.map +1 -1
- package/internal/responses/canonical-output-text.js +3 -3
- package/internal/responses/canonical-output-text.js.map +1 -1
- package/internal/responses/canonical-output-text.mjs +3 -3
- package/internal/responses/canonical-output-text.mjs.map +1 -1
- package/internal/responses/response-accumulator.d.mts +1 -1
- package/internal/responses/response-accumulator.d.mts.map +1 -1
- package/internal/responses/response-accumulator.d.ts +1 -1
- package/internal/responses/response-accumulator.d.ts.map +1 -1
- package/internal/responses/response-accumulator.js +331 -25
- package/internal/responses/response-accumulator.js.map +1 -1
- package/internal/responses/response-accumulator.mjs +331 -25
- package/internal/responses/response-accumulator.mjs.map +1 -1
- package/internal/tslib.js +6 -0
- package/internal/tslib.mjs +6 -1
- package/internal/uploads.d.mts +10 -6
- package/internal/uploads.d.mts.map +1 -1
- package/internal/uploads.d.ts +10 -6
- package/internal/uploads.d.ts.map +1 -1
- package/internal/uploads.js +65 -24
- package/internal/uploads.js.map +1 -1
- package/internal/uploads.mjs +65 -24
- package/internal/uploads.mjs.map +1 -1
- package/internal/utils/env.d.mts.map +1 -1
- package/internal/utils/env.d.ts.map +1 -1
- package/internal/utils/env.js +9 -4
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +9 -4
- package/internal/utils/env.mjs.map +1 -1
- package/internal/ws.d.mts.map +1 -1
- package/internal/ws.d.ts.map +1 -1
- package/internal/ws.js +23 -1
- package/internal/ws.js.map +1 -1
- package/internal/ws.mjs +23 -1
- package/internal/ws.mjs.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
- package/lib/AbstractChatCompletionRunner.js +32 -7
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +34 -9
- package/lib/AbstractChatCompletionRunner.mjs.map +1 -1
- package/lib/AssistantStream.d.mts.map +1 -1
- package/lib/AssistantStream.d.ts.map +1 -1
- package/lib/AssistantStream.js +211 -23
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +211 -23
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionStream.d.mts +1 -1
- package/lib/ChatCompletionStream.d.mts.map +1 -1
- package/lib/ChatCompletionStream.d.ts +1 -1
- package/lib/ChatCompletionStream.d.ts.map +1 -1
- package/lib/ChatCompletionStream.js +1118 -67
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +1119 -68
- package/lib/ChatCompletionStream.mjs.map +1 -1
- package/lib/EventEmitter.d.mts.map +1 -1
- package/lib/EventEmitter.d.ts.map +1 -1
- package/lib/EventEmitter.js +67 -9
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +68 -10
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +4 -0
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +4 -0
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +1096 -11
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +1097 -12
- package/lib/EventStream.mjs.map +1 -1
- package/lib/ResponsesParser.d.mts.map +1 -1
- package/lib/ResponsesParser.d.ts.map +1 -1
- package/lib/ResponsesParser.js +1 -1
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +1 -1
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/Util.d.mts +2 -0
- package/lib/Util.d.mts.map +1 -1
- package/lib/Util.d.ts +2 -0
- package/lib/Util.d.ts.map +1 -1
- package/lib/Util.js +7 -4
- package/lib/Util.js.map +1 -1
- package/lib/Util.mjs +7 -4
- package/lib/Util.mjs.map +1 -1
- package/lib/assistant-run-polling.d.mts +12 -0
- package/lib/assistant-run-polling.d.mts.map +1 -0
- package/lib/assistant-run-polling.d.ts +12 -0
- package/lib/assistant-run-polling.d.ts.map +1 -0
- package/lib/assistant-run-polling.js +17 -0
- package/lib/assistant-run-polling.js.map +1 -0
- package/lib/assistant-run-polling.mjs +14 -0
- package/lib/assistant-run-polling.mjs.map +1 -0
- package/lib/embeddings.d.mts +18 -0
- package/lib/embeddings.d.mts.map +1 -0
- package/lib/embeddings.d.ts +18 -0
- package/lib/embeddings.d.ts.map +1 -0
- package/lib/embeddings.js +50 -0
- package/lib/embeddings.js.map +1 -0
- package/lib/embeddings.mjs +47 -0
- package/lib/embeddings.mjs.map +1 -0
- package/lib/file-processing.d.mts +10 -0
- package/lib/file-processing.d.mts.map +1 -0
- package/lib/file-processing.d.ts +10 -0
- package/lib/file-processing.d.ts.map +1 -0
- package/lib/file-processing.js +30 -0
- package/lib/file-processing.js.map +1 -0
- package/lib/file-processing.mjs +27 -0
- package/lib/file-processing.mjs.map +1 -0
- package/lib/parser.d.mts.map +1 -1
- package/lib/parser.d.ts.map +1 -1
- package/lib/parser.js +16 -4
- package/lib/parser.js.map +1 -1
- package/lib/parser.mjs +16 -4
- package/lib/parser.mjs.map +1 -1
- package/lib/polling.d.mts +20 -0
- package/lib/polling.d.mts.map +1 -0
- package/lib/polling.d.ts +20 -0
- package/lib/polling.d.ts.map +1 -0
- package/lib/polling.js +130 -0
- package/lib/polling.js.map +1 -0
- package/lib/polling.mjs +127 -0
- package/lib/polling.mjs.map +1 -0
- package/lib/responses/ResponseStream.d.mts.map +1 -1
- package/lib/responses/ResponseStream.d.ts.map +1 -1
- package/lib/responses/ResponseStream.js +21 -11
- package/lib/responses/ResponseStream.js.map +1 -1
- package/lib/responses/ResponseStream.mjs +21 -11
- package/lib/responses/ResponseStream.mjs.map +1 -1
- package/lib/vector-store-polling.d.mts +22 -0
- package/lib/vector-store-polling.d.mts.map +1 -0
- package/lib/vector-store-polling.d.ts +22 -0
- package/lib/vector-store-polling.d.ts.map +1 -0
- package/lib/vector-store-polling.js +24 -0
- package/lib/vector-store-polling.js.map +1 -0
- package/lib/vector-store-polling.mjs +20 -0
- package/lib/vector-store-polling.mjs.map +1 -0
- package/lib/vector-store-upload.d.mts +17 -0
- package/lib/vector-store-upload.d.mts.map +1 -0
- package/lib/vector-store-upload.d.ts +17 -0
- package/lib/vector-store-upload.d.ts.map +1 -0
- package/lib/vector-store-upload.js +37 -0
- package/lib/vector-store-upload.js.map +1 -0
- package/lib/vector-store-upload.mjs +34 -0
- package/lib/vector-store-upload.mjs.map +1 -0
- package/lib/webhook-signature.d.mts +15 -0
- package/lib/webhook-signature.d.mts.map +1 -0
- package/lib/webhook-signature.d.ts +15 -0
- package/lib/webhook-signature.d.ts.map +1 -0
- package/lib/webhook-signature.js +125 -0
- package/lib/webhook-signature.js.map +1 -0
- package/lib/webhook-signature.mjs +121 -0
- package/lib/webhook-signature.mjs.map +1 -0
- package/package.json +14 -1
- package/realtime/internal-base.d.mts +2 -0
- package/realtime/internal-base.d.mts.map +1 -1
- package/realtime/internal-base.d.ts +2 -0
- package/realtime/internal-base.d.ts.map +1 -1
- package/realtime/internal-base.js +15 -0
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +14 -0
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts +3 -2
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts +3 -2
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +90 -26
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +91 -27
- package/realtime/websocket.mjs.map +1 -1
- package/realtime/ws.d.mts.map +1 -1
- package/realtime/ws.d.ts.map +1 -1
- package/realtime/ws.js +9 -1
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +10 -2
- package/realtime/ws.mjs.map +1 -1
- package/resources/admin/organization/index.d.mts +2 -2
- package/resources/admin/organization/index.d.mts.map +1 -1
- package/resources/admin/organization/index.d.ts +2 -2
- package/resources/admin/organization/index.d.ts.map +1 -1
- package/resources/admin/organization/index.js.map +1 -1
- package/resources/admin/organization/index.mjs.map +1 -1
- package/resources/admin/organization/organization.d.mts +4 -4
- package/resources/admin/organization/organization.d.mts.map +1 -1
- package/resources/admin/organization/organization.d.ts +4 -4
- package/resources/admin/organization/organization.d.ts.map +1 -1
- package/resources/admin/organization/organization.js.map +1 -1
- package/resources/admin/organization/organization.mjs.map +1 -1
- package/resources/admin/organization/projects/index.d.mts +1 -1
- package/resources/admin/organization/projects/index.d.mts.map +1 -1
- package/resources/admin/organization/projects/index.d.ts +1 -1
- package/resources/admin/organization/projects/index.d.ts.map +1 -1
- package/resources/admin/organization/projects/index.js.map +1 -1
- package/resources/admin/organization/projects/index.mjs.map +1 -1
- package/resources/admin/organization/projects/projects.d.mts +22 -5
- package/resources/admin/organization/projects/projects.d.mts.map +1 -1
- package/resources/admin/organization/projects/projects.d.ts +22 -5
- package/resources/admin/organization/projects/projects.d.ts.map +1 -1
- package/resources/admin/organization/projects/projects.js.map +1 -1
- package/resources/admin/organization/projects/projects.mjs.map +1 -1
- package/resources/admin/organization/usage.d.mts +62 -1
- package/resources/admin/organization/usage.d.mts.map +1 -1
- package/resources/admin/organization/usage.d.ts +62 -1
- package/resources/admin/organization/usage.d.ts.map +1 -1
- package/resources/admin/organization/usage.js.map +1 -1
- package/resources/admin/organization/usage.mjs.map +1 -1
- package/resources/beta/responses/internal-base.d.mts.map +1 -1
- package/resources/beta/responses/internal-base.d.ts.map +1 -1
- package/resources/beta/responses/internal-base.js +2 -0
- package/resources/beta/responses/internal-base.js.map +1 -1
- package/resources/beta/responses/internal-base.mjs +2 -0
- package/resources/beta/responses/internal-base.mjs.map +1 -1
- package/resources/beta/responses/responses.d.mts +9 -12
- package/resources/beta/responses/responses.d.mts.map +1 -1
- package/resources/beta/responses/responses.d.ts +9 -12
- package/resources/beta/responses/responses.d.ts.map +1 -1
- package/resources/beta/responses/responses.js.map +1 -1
- package/resources/beta/responses/responses.mjs.map +1 -1
- package/resources/beta/threads/runs/index.d.mts +1 -1
- package/resources/beta/threads/runs/index.d.mts.map +1 -1
- package/resources/beta/threads/runs/index.d.ts +1 -1
- package/resources/beta/threads/runs/index.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.d.mts.map +1 -1
- package/resources/beta/threads/runs/runs.d.ts.map +1 -1
- package/resources/beta/threads/runs/runs.js +2 -43
- package/resources/beta/threads/runs/runs.js.map +1 -1
- package/resources/beta/threads/runs/runs.mjs +2 -43
- package/resources/beta/threads/runs/runs.mjs.map +1 -1
- package/resources/chat/completions/completions.d.mts +6 -0
- package/resources/chat/completions/completions.d.mts.map +1 -1
- package/resources/chat/completions/completions.d.ts +6 -0
- package/resources/chat/completions/completions.d.ts.map +1 -1
- package/resources/chat/completions/completions.js.map +1 -1
- package/resources/chat/completions/completions.mjs.map +1 -1
- package/resources/embeddings.d.mts.map +1 -1
- package/resources/embeddings.d.ts.map +1 -1
- package/resources/embeddings.js +2 -36
- package/resources/embeddings.js.map +1 -1
- package/resources/embeddings.mjs +2 -36
- package/resources/embeddings.mjs.map +1 -1
- package/resources/files.d.mts.map +1 -1
- package/resources/files.d.ts.map +1 -1
- package/resources/files.js +2 -15
- package/resources/files.js.map +1 -1
- package/resources/files.mjs +2 -15
- package/resources/files.mjs.map +1 -1
- package/resources/images.d.mts +12 -22
- package/resources/images.d.mts.map +1 -1
- package/resources/images.d.ts +12 -22
- package/resources/images.d.ts.map +1 -1
- package/resources/realtime/calls.d.mts +23 -1
- package/resources/realtime/calls.d.mts.map +1 -1
- package/resources/realtime/calls.d.ts +23 -1
- package/resources/realtime/calls.d.ts.map +1 -1
- package/resources/realtime/calls.js +24 -0
- package/resources/realtime/calls.js.map +1 -1
- package/resources/realtime/calls.mjs +24 -0
- package/resources/realtime/calls.mjs.map +1 -1
- package/resources/realtime/index.d.mts +1 -1
- package/resources/realtime/index.d.mts.map +1 -1
- package/resources/realtime/index.d.ts +1 -1
- package/resources/realtime/index.d.ts.map +1 -1
- package/resources/realtime/index.js.map +1 -1
- package/resources/realtime/index.mjs +1 -1
- package/resources/realtime/index.mjs.map +1 -1
- package/resources/realtime/realtime.d.mts +5 -4
- package/resources/realtime/realtime.d.mts.map +1 -1
- package/resources/realtime/realtime.d.ts +5 -4
- package/resources/realtime/realtime.d.ts.map +1 -1
- package/resources/realtime/realtime.js.map +1 -1
- package/resources/realtime/realtime.mjs.map +1 -1
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +2 -0
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +2 -0
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +9 -12
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +9 -12
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/vector-stores/file-batches.d.mts.map +1 -1
- package/resources/vector-stores/file-batches.d.ts.map +1 -1
- package/resources/vector-stores/file-batches.js +4 -61
- package/resources/vector-stores/file-batches.js.map +1 -1
- package/resources/vector-stores/file-batches.mjs +4 -61
- package/resources/vector-stores/file-batches.mjs.map +1 -1
- package/resources/vector-stores/files.d.mts +1 -1
- package/resources/vector-stores/files.d.mts.map +1 -1
- package/resources/vector-stores/files.d.ts +1 -1
- package/resources/vector-stores/files.d.ts.map +1 -1
- package/resources/vector-stores/files.js +2 -35
- package/resources/vector-stores/files.js.map +1 -1
- package/resources/vector-stores/files.mjs +2 -35
- package/resources/vector-stores/files.mjs.map +1 -1
- package/resources/webhooks/webhooks.d.mts.map +1 -1
- package/resources/webhooks/webhooks.d.ts.map +1 -1
- package/resources/webhooks/webhooks.js +5 -43
- package/resources/webhooks/webhooks.js.map +1 -1
- package/resources/webhooks/webhooks.mjs +5 -43
- package/resources/webhooks/webhooks.mjs.map +1 -1
- package/src/auth/index.ts +6 -1
- package/src/auth/subject-token-providers.ts +196 -4
- package/src/auth/types.ts +24 -0
- package/src/auth/workload-identity-auth.ts +104 -7
- package/src/auth/x509-transport.ts +49 -0
- package/src/azure.ts +22 -1
- package/src/bedrock.ts +49 -5
- package/src/beta/realtime/internal-base.ts +15 -0
- package/src/beta/realtime/websocket.ts +148 -40
- package/src/beta/realtime/ws.ts +31 -13
- package/src/client.ts +536 -92
- package/src/core/EventEmitter.ts +91 -7
- package/src/core/streaming.ts +71 -20
- package/src/helpers/audio.ts +93 -22
- package/src/helpers/standard-schema.ts +50 -16
- package/src/helpers/zod-v3-strict-schema.ts +514 -0
- package/src/helpers/zod.ts +17 -4
- package/src/index.ts +1 -1
- package/src/internal/assistant-stream-delta.ts +33 -10
- package/src/internal/auth/x509-token-exchange.ts +310 -0
- package/src/internal/auth/x509-transport-capability.ts +219 -0
- package/src/internal/auth/x509-transport-registry.ts +118 -0
- package/src/internal/auth/x509-transport-state-browser.ts +36 -0
- package/src/internal/auth/x509-transport-state.cts +36 -0
- package/src/internal/auth/x509-workload-identity-auth.ts +958 -0
- package/src/internal/bedrock.ts +182 -5
- package/src/internal/data-residency.ts +44 -0
- package/src/internal/multipart-encoding.ts +53 -0
- package/src/internal/qs/utils.ts +375 -13
- package/src/internal/request-options.ts +52 -1
- package/src/internal/responses/canonical-output-text.ts +3 -3
- package/src/internal/responses/response-accumulator.ts +411 -24
- package/src/internal/uploads.ts +81 -26
- package/src/internal/utils/env.ts +9 -5
- package/src/internal/ws.ts +24 -3
- package/src/lib/AbstractChatCompletionRunner.ts +33 -6
- package/src/lib/AssistantStream.ts +262 -22
- package/src/lib/ChatCompletionStream.ts +1467 -103
- package/src/lib/EventEmitter.ts +91 -7
- package/src/lib/EventStream.ts +1483 -10
- package/src/lib/ResponsesParser.ts +4 -1
- package/src/lib/Util.ts +7 -5
- package/src/lib/assistant-run-polling.ts +27 -0
- package/src/lib/embeddings.ts +65 -0
- package/src/lib/file-processing.ts +36 -0
- package/src/lib/parser.ts +19 -4
- package/src/lib/polling.ts +144 -0
- package/src/lib/responses/ResponseStream.ts +22 -10
- package/src/lib/vector-store-polling.ts +46 -0
- package/src/lib/vector-store-upload.ts +53 -0
- package/src/lib/webhook-signature.ts +164 -0
- package/src/realtime/internal-base.ts +15 -0
- package/src/realtime/websocket.ts +130 -27
- package/src/realtime/ws.ts +15 -2
- package/src/resources/admin/organization/index.ts +2 -0
- package/src/resources/admin/organization/organization.ts +4 -0
- package/src/resources/admin/organization/projects/index.ts +1 -0
- package/src/resources/admin/organization/projects/projects.ts +37 -4
- package/src/resources/admin/organization/usage.ts +83 -0
- package/src/resources/beta/responses/internal-base.ts +2 -0
- package/src/resources/beta/responses/responses.ts +9 -12
- package/src/resources/beta/threads/runs/index.ts +1 -1
- package/src/resources/beta/threads/runs/runs.ts +2 -45
- package/src/resources/chat/completions/completions.ts +7 -0
- package/src/resources/embeddings.ts +2 -42
- package/src/resources/files.ts +2 -19
- package/src/resources/images.ts +12 -22
- package/src/resources/realtime/api.md +1 -0
- package/src/resources/realtime/calls.ts +46 -0
- package/src/resources/realtime/index.ts +7 -1
- package/src/resources/realtime/realtime.ts +5 -3
- package/src/resources/responses/internal-base.ts +2 -0
- package/src/resources/responses/responses.ts +9 -12
- package/src/resources/vector-stores/file-batches.ts +8 -77
- package/src/resources/vector-stores/files.ts +3 -43
- package/src/resources/webhooks/webhooks.ts +5 -61
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -99,19 +99,69 @@ export type RunSubmitToolOutputsParamsStream = Omit<RunSubmitToolOutputsParamsBa
|
|
|
99
99
|
stream?: true;
|
|
100
100
|
};
|
|
101
101
|
|
|
102
|
+
function stabilizeAssistantStreamEvent(event: AssistantStreamEvent): {
|
|
103
|
+
event: AssistantStreamEvent;
|
|
104
|
+
exposedEvent: AssistantStreamEvent;
|
|
105
|
+
} {
|
|
106
|
+
const eventDescriptor = Object.getOwnPropertyDescriptor(event, 'event');
|
|
107
|
+
const dataDescriptor = Object.getOwnPropertyDescriptor(event, 'data');
|
|
108
|
+
const eventType = Reflect.get(event, 'event', event) as AssistantStreamEvent['event'];
|
|
109
|
+
const data = Reflect.get(event, 'data', event) as AssistantStreamEvent['data'];
|
|
110
|
+
let stableData = data;
|
|
111
|
+
if (
|
|
112
|
+
eventType === 'thread.message.created' ||
|
|
113
|
+
eventType === 'thread.message.in_progress' ||
|
|
114
|
+
eventType === 'thread.message.delta' ||
|
|
115
|
+
eventType === 'thread.message.completed' ||
|
|
116
|
+
eventType === 'thread.message.incomplete' ||
|
|
117
|
+
eventType === 'thread.run.step.created' ||
|
|
118
|
+
eventType === 'thread.run.step.in_progress' ||
|
|
119
|
+
eventType === 'thread.run.step.delta' ||
|
|
120
|
+
eventType === 'thread.run.step.completed' ||
|
|
121
|
+
eventType === 'thread.run.step.failed' ||
|
|
122
|
+
eventType === 'thread.run.step.cancelled' ||
|
|
123
|
+
eventType === 'thread.run.step.expired'
|
|
124
|
+
) {
|
|
125
|
+
const messageID = Object.getOwnPropertyDescriptor(data, 'id');
|
|
126
|
+
if (messageID && 'value' in messageID && Reflect.get(data, 'id', data) !== messageID.value) {
|
|
127
|
+
const canonicalID = messageID.value as unknown;
|
|
128
|
+
stableData = new Proxy(data, {
|
|
129
|
+
get(target, property) {
|
|
130
|
+
return property === 'id' ? canonicalID : Reflect.get(target, property, target);
|
|
131
|
+
},
|
|
132
|
+
}) as AssistantStreamEvent['data'];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const stableEvent = Object.freeze({ event: eventType, data: stableData }) as AssistantStreamEvent;
|
|
136
|
+
const ordinaryEvent =
|
|
137
|
+
eventDescriptor !== undefined &&
|
|
138
|
+
'value' in eventDescriptor &&
|
|
139
|
+
eventDescriptor.value === eventType &&
|
|
140
|
+
dataDescriptor !== undefined &&
|
|
141
|
+
'value' in dataDescriptor &&
|
|
142
|
+
dataDescriptor.value === data &&
|
|
143
|
+
stableData === data;
|
|
144
|
+
|
|
145
|
+
return {
|
|
146
|
+
event: stableEvent,
|
|
147
|
+
exposedEvent: ordinaryEvent ? event : ({ event: eventType, data: stableData } as AssistantStreamEvent),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
102
151
|
/** Streams assistant-run events while accumulating messages, run steps, and tool-call snapshots. */
|
|
103
152
|
export class AssistantStream
|
|
104
153
|
extends EventStream<AssistantStreamEvents>
|
|
105
154
|
implements AsyncIterable<AssistantStreamEvent>
|
|
106
155
|
{
|
|
107
|
-
//Track all events in a single list for reference
|
|
108
|
-
#events: AssistantStreamEvent[] = [];
|
|
109
|
-
|
|
110
156
|
//Used to accumulate deltas
|
|
111
157
|
//We are accumulating many types so the value here is not strict
|
|
112
158
|
#runStepSnapshots: Record<string, Runs.RunStep> = Object.create(null);
|
|
159
|
+
#runStepIDOwners = new Map<string, string>();
|
|
160
|
+
#activeRunStepID: string | undefined;
|
|
113
161
|
#messageSnapshots: Record<string, Message> = Object.create(null);
|
|
162
|
+
#messageIDOwners = new Map<string, string>();
|
|
114
163
|
#messageSnapshot: Message | undefined;
|
|
164
|
+
#activeMessageID: string | undefined;
|
|
115
165
|
#finalRun: Run | undefined;
|
|
116
166
|
#currentContentIndex: number | undefined;
|
|
117
167
|
#currentContent: MessageContent | undefined;
|
|
@@ -339,11 +389,49 @@ export class AssistantStream
|
|
|
339
389
|
return;
|
|
340
390
|
}
|
|
341
391
|
|
|
342
|
-
|
|
392
|
+
const { event: stableEvent, exposedEvent } = stabilizeAssistantStreamEvent(event);
|
|
393
|
+
|
|
394
|
+
let messageID: string | undefined;
|
|
395
|
+
let messageData: MessageStreamEvent['data'] | undefined;
|
|
396
|
+
let runStepID: string | undefined;
|
|
397
|
+
let runStepData: RunStepStreamEvent['data'] | undefined;
|
|
398
|
+
switch (stableEvent.event) {
|
|
399
|
+
case 'thread.message.created':
|
|
400
|
+
case 'thread.message.in_progress':
|
|
401
|
+
case 'thread.message.delta':
|
|
402
|
+
case 'thread.message.completed':
|
|
403
|
+
case 'thread.message.incomplete': {
|
|
404
|
+
messageID = this.#validateMessageEvent(stableEvent);
|
|
405
|
+
messageData = stableEvent.data;
|
|
406
|
+
break;
|
|
407
|
+
}
|
|
408
|
+
case 'thread.run.step.created':
|
|
409
|
+
case 'thread.run.step.in_progress':
|
|
410
|
+
case 'thread.run.step.delta':
|
|
411
|
+
case 'thread.run.step.completed':
|
|
412
|
+
case 'thread.run.step.failed':
|
|
413
|
+
case 'thread.run.step.cancelled':
|
|
414
|
+
case 'thread.run.step.expired': {
|
|
415
|
+
runStepID = this.#validateRunStepEvent(stableEvent);
|
|
416
|
+
runStepData = stableEvent.data;
|
|
417
|
+
break;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
this.#currentEvent = exposedEvent;
|
|
343
422
|
|
|
344
|
-
this.#handleEvent(
|
|
423
|
+
this.#handleEvent(exposedEvent);
|
|
424
|
+
if (messageID !== undefined && messageData !== undefined) {
|
|
425
|
+
this.#reserveMessageAlias(messageData, messageID);
|
|
426
|
+
}
|
|
427
|
+
if (runStepID !== undefined && runStepData !== undefined) {
|
|
428
|
+
this.#reserveRunStepAlias(runStepData, runStepID);
|
|
429
|
+
}
|
|
430
|
+
if (runStepID === undefined && this.#activeRunStepID !== undefined && this.#currentRunStepSnapshot) {
|
|
431
|
+
this.#reserveRunStepAlias(this.#currentRunStepSnapshot, this.#activeRunStepID);
|
|
432
|
+
}
|
|
345
433
|
|
|
346
|
-
switch (
|
|
434
|
+
switch (stableEvent.event) {
|
|
347
435
|
case 'thread.created': {
|
|
348
436
|
//No action on this event.
|
|
349
437
|
break;
|
|
@@ -359,7 +447,7 @@ export class AssistantStream
|
|
|
359
447
|
case 'thread.run.cancelling':
|
|
360
448
|
case 'thread.run.cancelled':
|
|
361
449
|
case 'thread.run.expired': {
|
|
362
|
-
this.#handleRun(
|
|
450
|
+
this.#handleRun(stableEvent);
|
|
363
451
|
break;
|
|
364
452
|
}
|
|
365
453
|
|
|
@@ -370,7 +458,19 @@ export class AssistantStream
|
|
|
370
458
|
case 'thread.run.step.failed':
|
|
371
459
|
case 'thread.run.step.cancelled':
|
|
372
460
|
case 'thread.run.step.expired': {
|
|
373
|
-
|
|
461
|
+
if (runStepID === undefined) {
|
|
462
|
+
throw new OpenAIError('Received assistant run-step event without a canonical run-step ID');
|
|
463
|
+
}
|
|
464
|
+
const activeRunStep = this.#runStepSnapshots[runStepID];
|
|
465
|
+
if (activeRunStep) {
|
|
466
|
+
this.#reserveRunStepAlias(activeRunStep, runStepID);
|
|
467
|
+
}
|
|
468
|
+
this.#handleRunStep(stableEvent, runStepID);
|
|
469
|
+
this.#reserveRunStepAlias(stableEvent.data, runStepID);
|
|
470
|
+
const retainedRunStep = this.#runStepSnapshots[runStepID];
|
|
471
|
+
if (retainedRunStep) {
|
|
472
|
+
this.#reserveRunStepAlias(retainedRunStep, runStepID);
|
|
473
|
+
}
|
|
374
474
|
break;
|
|
375
475
|
}
|
|
376
476
|
|
|
@@ -379,7 +479,14 @@ export class AssistantStream
|
|
|
379
479
|
case 'thread.message.delta':
|
|
380
480
|
case 'thread.message.completed':
|
|
381
481
|
case 'thread.message.incomplete': {
|
|
382
|
-
this.#handleMessage(
|
|
482
|
+
this.#handleMessage(stableEvent);
|
|
483
|
+
if (messageID !== undefined) {
|
|
484
|
+
this.#reserveMessageAlias(stableEvent.data, messageID);
|
|
485
|
+
const retainedMessage = this.#messageSnapshots[messageID];
|
|
486
|
+
if (retainedMessage) {
|
|
487
|
+
this.#reserveMessageAlias(retainedMessage, messageID);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
383
490
|
break;
|
|
384
491
|
}
|
|
385
492
|
|
|
@@ -390,7 +497,7 @@ export class AssistantStream
|
|
|
390
497
|
);
|
|
391
498
|
}
|
|
392
499
|
default: {
|
|
393
|
-
assertNever(
|
|
500
|
+
assertNever(stableEvent);
|
|
394
501
|
}
|
|
395
502
|
}
|
|
396
503
|
}
|
|
@@ -407,10 +514,142 @@ export class AssistantStream
|
|
|
407
514
|
return this.#finalRun;
|
|
408
515
|
}
|
|
409
516
|
|
|
517
|
+
#validateRunStepEvent(event: RunStepStreamEvent): string {
|
|
518
|
+
const descriptor = Object.getOwnPropertyDescriptor(event.data, 'id');
|
|
519
|
+
const runStepID = descriptor && 'value' in descriptor ? descriptor.value : undefined;
|
|
520
|
+
|
|
521
|
+
if (typeof runStepID !== 'string' || runStepID.length === 0) {
|
|
522
|
+
throw new OpenAIError('Received assistant run-step event with an invalid run-step ID');
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
if (event.event === 'thread.run.step.created') {
|
|
526
|
+
if (this.#activeRunStepID !== undefined) {
|
|
527
|
+
throw new OpenAIError(
|
|
528
|
+
`Received run-step creation for "${runStepID}" before the active run step "${this.#activeRunStepID}" reached a terminal state`,
|
|
529
|
+
);
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
if (hasOwn(this.#runStepSnapshots, runStepID) || this.#runStepIDOwners.has(runStepID)) {
|
|
533
|
+
throw new OpenAIError(
|
|
534
|
+
`Received run-step creation for run step "${runStepID}", which has already been created`,
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
this.#activeRunStepID = runStepID;
|
|
539
|
+
this.#runStepIDOwners.set(runStepID, runStepID);
|
|
540
|
+
return runStepID;
|
|
541
|
+
}
|
|
542
|
+
|
|
543
|
+
if (this.#activeRunStepID !== undefined) {
|
|
544
|
+
if (runStepID !== this.#activeRunStepID) {
|
|
545
|
+
throw new OpenAIError(
|
|
546
|
+
`Received ${event.event} for run step "${runStepID}", which does not match the active run step "${this.#activeRunStepID}"`,
|
|
547
|
+
);
|
|
548
|
+
}
|
|
549
|
+
return runStepID;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
if (event.event === 'thread.run.step.delta') {
|
|
553
|
+
if (!hasOwn(this.#runStepSnapshots, runStepID)) {
|
|
554
|
+
throw new OpenAIError('Received a RunStepDelta before creation of a snapshot');
|
|
555
|
+
}
|
|
556
|
+
throw new OpenAIError(`Received run-step delta for "${runStepID}" with no active run step`);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
if (hasOwn(this.#runStepSnapshots, runStepID) || this.#runStepIDOwners.has(runStepID)) {
|
|
560
|
+
throw new OpenAIError(
|
|
561
|
+
`Received run-step event for run step "${runStepID}", which has already been created`,
|
|
562
|
+
);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
this.#runStepIDOwners.set(runStepID, runStepID);
|
|
566
|
+
if (event.event === 'thread.run.step.in_progress') {
|
|
567
|
+
this.#activeRunStepID = runStepID;
|
|
568
|
+
}
|
|
569
|
+
return runStepID;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
#reserveRunStepAlias(data: RunStepStreamEvent['data'], canonicalID: string): void {
|
|
573
|
+
const descriptor = Object.getOwnPropertyDescriptor(data, 'id');
|
|
574
|
+
const runStepID = descriptor && 'value' in descriptor ? descriptor.value : undefined;
|
|
575
|
+
if (typeof runStepID !== 'string' || runStepID.length === 0) {
|
|
576
|
+
throw new OpenAIError('Received assistant run-step event with an invalid run-step ID');
|
|
577
|
+
}
|
|
578
|
+
const owner = this.#runStepIDOwners.get(runStepID);
|
|
579
|
+
if (owner !== undefined && owner !== canonicalID) {
|
|
580
|
+
throw new OpenAIError(
|
|
581
|
+
`Received run-step creation for run step "${runStepID}", which has already been created`,
|
|
582
|
+
);
|
|
583
|
+
}
|
|
584
|
+
this.#runStepIDOwners.set(runStepID, canonicalID);
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
#validateMessageEvent(event: MessageStreamEvent): string {
|
|
588
|
+
const descriptor = Object.getOwnPropertyDescriptor(event.data, 'id');
|
|
589
|
+
const messageID = descriptor && 'value' in descriptor ? descriptor.value : undefined;
|
|
590
|
+
|
|
591
|
+
if (typeof messageID !== 'string' || messageID.length === 0) {
|
|
592
|
+
throw new OpenAIError('Received assistant message event with an invalid message ID');
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
if (event.event === 'thread.message.created') {
|
|
596
|
+
if (this.#messageSnapshot) {
|
|
597
|
+
throw new OpenAIError(
|
|
598
|
+
`Received message creation for "${messageID}" before the active message "${this.#activeMessageID}" reached a terminal state`,
|
|
599
|
+
);
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
if (hasOwn(this.#messageSnapshots, messageID) || this.#messageIDOwners.has(messageID)) {
|
|
603
|
+
throw new OpenAIError(
|
|
604
|
+
`Received message creation for message "${messageID}", which has already been created`,
|
|
605
|
+
);
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
this.#activeMessageID = messageID;
|
|
609
|
+
this.#messageIDOwners.set(messageID, messageID);
|
|
610
|
+
return messageID;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
if (!this.#messageSnapshot) {
|
|
614
|
+
if (event.event === 'thread.message.delta') {
|
|
615
|
+
throw new OpenAIError(
|
|
616
|
+
'Received a delta with no existing snapshot (there should be one from message creation)',
|
|
617
|
+
);
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
throw new OpenAIError('Received thread message event with no existing snapshot');
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
if (messageID !== this.#activeMessageID) {
|
|
624
|
+
throw new OpenAIError(
|
|
625
|
+
`Received ${event.event} for message "${messageID}", which does not match the active message "${this.#activeMessageID}"`,
|
|
626
|
+
);
|
|
627
|
+
}
|
|
628
|
+
return messageID;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
#reserveMessageAlias(data: MessageStreamEvent['data'], canonicalID: string): void {
|
|
632
|
+
const descriptor = Object.getOwnPropertyDescriptor(data, 'id');
|
|
633
|
+
const messageID = descriptor && 'value' in descriptor ? descriptor.value : undefined;
|
|
634
|
+
if (typeof messageID !== 'string' || messageID.length === 0) {
|
|
635
|
+
throw new OpenAIError('Received assistant message event with an invalid message ID');
|
|
636
|
+
}
|
|
637
|
+
const owner = this.#messageIDOwners.get(messageID);
|
|
638
|
+
if (owner !== undefined && owner !== canonicalID) {
|
|
639
|
+
throw new OpenAIError(
|
|
640
|
+
`Received message creation for message "${messageID}", which has already been created`,
|
|
641
|
+
);
|
|
642
|
+
}
|
|
643
|
+
this.#messageIDOwners.set(messageID, canonicalID);
|
|
644
|
+
}
|
|
645
|
+
|
|
410
646
|
#handleMessage(this: AssistantStream, event: MessageStreamEvent) {
|
|
411
647
|
const [accumulatedMessage, newContent] = this.#accumulateMessage(event, this.#messageSnapshot);
|
|
412
648
|
this.#messageSnapshot = accumulatedMessage;
|
|
413
|
-
this.#
|
|
649
|
+
if (!this.#activeMessageID) {
|
|
650
|
+
throw new OpenAIError('Received thread message event with no active message ID');
|
|
651
|
+
}
|
|
652
|
+
this.#messageSnapshots[this.#activeMessageID] = accumulatedMessage;
|
|
414
653
|
|
|
415
654
|
for (const content of newContent) {
|
|
416
655
|
const snapshotContent = accumulatedMessage.content[content.index];
|
|
@@ -502,12 +741,13 @@ export class AssistantStream
|
|
|
502
741
|
this.#currentContentIndex = undefined;
|
|
503
742
|
this.#currentContent = undefined;
|
|
504
743
|
this.#messageSnapshot = undefined;
|
|
744
|
+
this.#activeMessageID = undefined;
|
|
505
745
|
}
|
|
506
746
|
}
|
|
507
747
|
}
|
|
508
748
|
|
|
509
|
-
#handleRunStep(this: AssistantStream, event: RunStepStreamEvent) {
|
|
510
|
-
const accumulatedRunStep = this.#accumulateRunStep(event);
|
|
749
|
+
#handleRunStep(this: AssistantStream, event: RunStepStreamEvent, runStepID: string) {
|
|
750
|
+
const accumulatedRunStep = this.#accumulateRunStep(event, runStepID);
|
|
511
751
|
this.#currentRunStepSnapshot = accumulatedRunStep;
|
|
512
752
|
|
|
513
753
|
switch (event.event) {
|
|
@@ -554,6 +794,7 @@ export class AssistantStream
|
|
|
554
794
|
case 'thread.run.step.cancelled':
|
|
555
795
|
case 'thread.run.step.expired': {
|
|
556
796
|
this.#currentRunStepSnapshot = undefined;
|
|
797
|
+
this.#activeRunStepID = undefined;
|
|
557
798
|
const details = event.data.step_details;
|
|
558
799
|
if (details.type === 'tool_calls' && this.#currentToolCall) {
|
|
559
800
|
this.#emitExposed('toolCallDone', this.#currentToolCall as ToolCall);
|
|
@@ -582,19 +823,18 @@ export class AssistantStream
|
|
|
582
823
|
}
|
|
583
824
|
|
|
584
825
|
#handleEvent(this: AssistantStream, event: AssistantStreamEvent) {
|
|
585
|
-
this.#events.push(event);
|
|
586
826
|
this.#emitExposed('event', event);
|
|
587
827
|
}
|
|
588
828
|
|
|
589
|
-
#accumulateRunStep(event: RunStepStreamEvent): Runs.RunStep {
|
|
829
|
+
#accumulateRunStep(event: RunStepStreamEvent, runStepID: string): Runs.RunStep {
|
|
590
830
|
switch (event.event) {
|
|
591
831
|
case 'thread.run.step.created': {
|
|
592
|
-
this.#runStepSnapshots[
|
|
832
|
+
this.#runStepSnapshots[runStepID] = event.data;
|
|
593
833
|
return event.data;
|
|
594
834
|
}
|
|
595
835
|
|
|
596
836
|
case 'thread.run.step.delta': {
|
|
597
|
-
const snapshot = this.#runStepSnapshots[
|
|
837
|
+
const snapshot = this.#runStepSnapshots[runStepID] as Runs.RunStep;
|
|
598
838
|
if (!snapshot) {
|
|
599
839
|
throw new Error('Received a RunStepDelta before creation of a snapshot');
|
|
600
840
|
}
|
|
@@ -603,10 +843,10 @@ export class AssistantStream
|
|
|
603
843
|
|
|
604
844
|
if (data.delta) {
|
|
605
845
|
const accumulated = accumulateAssistantStreamDelta(snapshot, data.delta, true) as Runs.RunStep;
|
|
606
|
-
this.#runStepSnapshots[
|
|
846
|
+
this.#runStepSnapshots[runStepID] = accumulated;
|
|
607
847
|
}
|
|
608
848
|
|
|
609
|
-
return this.#runStepSnapshots[
|
|
849
|
+
return this.#runStepSnapshots[runStepID] as Runs.RunStep;
|
|
610
850
|
}
|
|
611
851
|
|
|
612
852
|
case 'thread.run.step.completed':
|
|
@@ -614,13 +854,13 @@ export class AssistantStream
|
|
|
614
854
|
case 'thread.run.step.cancelled':
|
|
615
855
|
case 'thread.run.step.expired':
|
|
616
856
|
case 'thread.run.step.in_progress': {
|
|
617
|
-
this.#runStepSnapshots[
|
|
857
|
+
this.#runStepSnapshots[runStepID] = event.data;
|
|
618
858
|
break;
|
|
619
859
|
}
|
|
620
860
|
}
|
|
621
861
|
|
|
622
|
-
if (this.#runStepSnapshots[
|
|
623
|
-
return this.#runStepSnapshots[
|
|
862
|
+
if (this.#runStepSnapshots[runStepID]) {
|
|
863
|
+
return this.#runStepSnapshots[runStepID] as Runs.RunStep;
|
|
624
864
|
}
|
|
625
865
|
throw new Error('No snapshot available');
|
|
626
866
|
}
|