openai 6.44.0 → 6.45.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 +48 -0
- package/README.md +85 -102
- package/_vendor/zod-to-json-schema/parseDef.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.js +41 -15
- package/_vendor/zod-to-json-schema/parseDef.js.map +1 -1
- package/_vendor/zod-to-json-schema/parseDef.mjs +41 -15
- package/_vendor/zod-to-json-schema/parseDef.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/branded.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/branded.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/branded.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/catch.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/catch.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/catch.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/default.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/default.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/default.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/nullable.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/nullable.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/nullable.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.js +3 -3
- package/_vendor/zod-to-json-schema/parsers/optional.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/optional.mjs +3 -3
- package/_vendor/zod-to-json-schema/parsers/optional.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.js +3 -3
- package/_vendor/zod-to-json-schema/parsers/pipeline.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/pipeline.mjs +3 -3
- package/_vendor/zod-to-json-schema/parsers/pipeline.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/promise.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/promise.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/promise.mjs.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.d.mts +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.d.mts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.d.ts +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.d.ts.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.js +2 -2
- package/_vendor/zod-to-json-schema/parsers/readonly.js.map +1 -1
- package/_vendor/zod-to-json-schema/parsers/readonly.mjs +2 -2
- package/_vendor/zod-to-json-schema/parsers/readonly.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 +12 -4
- package/auth/workload-identity-auth.js.map +1 -1
- package/auth/workload-identity-auth.mjs +13 -5
- package/auth/workload-identity-auth.mjs.map +1 -1
- package/azure.d.mts +3 -1
- package/azure.d.mts.map +1 -1
- package/azure.d.ts +3 -1
- package/azure.d.ts.map +1 -1
- package/azure.js.map +1 -1
- package/azure.mjs.map +1 -1
- package/beta/realtime/internal-base.d.mts +14 -1
- package/beta/realtime/internal-base.d.mts.map +1 -1
- package/beta/realtime/internal-base.d.ts +14 -1
- package/beta/realtime/internal-base.d.ts.map +1 -1
- package/beta/realtime/internal-base.js +21 -5
- package/beta/realtime/internal-base.js.map +1 -1
- package/beta/realtime/internal-base.mjs +21 -5
- package/beta/realtime/internal-base.mjs.map +1 -1
- package/beta/realtime/websocket.d.mts +3 -5
- package/beta/realtime/websocket.d.mts.map +1 -1
- package/beta/realtime/websocket.d.ts +3 -5
- package/beta/realtime/websocket.d.ts.map +1 -1
- package/beta/realtime/websocket.js +2 -3
- package/beta/realtime/websocket.js.map +1 -1
- package/beta/realtime/websocket.mjs +3 -4
- package/beta/realtime/websocket.mjs.map +1 -1
- package/beta/realtime/ws.d.mts +3 -5
- package/beta/realtime/ws.d.mts.map +1 -1
- package/beta/realtime/ws.d.ts +3 -5
- package/beta/realtime/ws.d.ts.map +1 -1
- package/beta/realtime/ws.js +2 -3
- package/beta/realtime/ws.js.map +1 -1
- package/beta/realtime/ws.mjs +3 -4
- 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 +56 -9
- package/client.js.map +1 -1
- package/client.mjs +56 -9
- package/client.mjs.map +1 -1
- package/helpers/zod.d.mts.map +1 -1
- package/helpers/zod.d.ts.map +1 -1
- package/helpers/zod.js +12 -0
- package/helpers/zod.js.map +1 -1
- package/helpers/zod.mjs +12 -0
- package/helpers/zod.mjs.map +1 -1
- package/internal/bedrock.d.mts +34 -0
- package/internal/bedrock.d.mts.map +1 -0
- package/internal/bedrock.d.ts +34 -0
- package/internal/bedrock.d.ts.map +1 -0
- package/internal/bedrock.js +107 -0
- package/internal/bedrock.js.map +1 -0
- package/internal/bedrock.mjs +99 -0
- package/internal/bedrock.mjs.map +1 -0
- package/internal/provider.d.mts +23 -0
- package/internal/provider.d.mts.map +1 -0
- package/internal/provider.d.ts +23 -0
- package/internal/provider.d.ts.map +1 -0
- package/internal/provider.js +36 -0
- package/internal/provider.js.map +1 -0
- package/internal/provider.mjs +32 -0
- package/internal/provider.mjs.map +1 -0
- package/internal/utils/log.d.mts.map +1 -1
- package/internal/utils/log.d.ts.map +1 -1
- package/internal/utils/log.js +1 -0
- package/internal/utils/log.js.map +1 -1
- package/internal/utils/log.mjs +1 -0
- package/internal/utils/log.mjs.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.mts +15 -4
- package/lib/AbstractChatCompletionRunner.d.mts.map +1 -1
- package/lib/AbstractChatCompletionRunner.d.ts +15 -4
- package/lib/AbstractChatCompletionRunner.d.ts.map +1 -1
- package/lib/AbstractChatCompletionRunner.js +63 -40
- package/lib/AbstractChatCompletionRunner.js.map +1 -1
- package/lib/AbstractChatCompletionRunner.mjs +63 -40
- 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 +4 -24
- package/lib/AssistantStream.js.map +1 -1
- package/lib/AssistantStream.mjs +4 -24
- package/lib/AssistantStream.mjs.map +1 -1
- package/lib/ChatCompletionRunner.js +1 -1
- package/lib/ChatCompletionRunner.js.map +1 -1
- package/lib/ChatCompletionRunner.mjs +1 -1
- 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 +4 -13
- package/lib/ChatCompletionStream.js.map +1 -1
- package/lib/ChatCompletionStream.mjs +4 -13
- package/lib/ChatCompletionStream.mjs.map +1 -1
- package/lib/ChatCompletionStreamingRunner.js +1 -1
- package/lib/ChatCompletionStreamingRunner.js.map +1 -1
- package/lib/ChatCompletionStreamingRunner.mjs +1 -1
- package/lib/ChatCompletionStreamingRunner.mjs.map +1 -1
- package/lib/EventEmitter.d.mts.map +1 -1
- package/lib/EventEmitter.d.ts.map +1 -1
- package/lib/EventEmitter.js +12 -2
- package/lib/EventEmitter.js.map +1 -1
- package/lib/EventEmitter.mjs +12 -2
- package/lib/EventEmitter.mjs.map +1 -1
- package/lib/EventStream.d.mts +1 -0
- package/lib/EventStream.d.mts.map +1 -1
- package/lib/EventStream.d.ts +1 -0
- package/lib/EventStream.d.ts.map +1 -1
- package/lib/EventStream.js +19 -2
- package/lib/EventStream.js.map +1 -1
- package/lib/EventStream.mjs +19 -2
- 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 +12 -4
- package/lib/ResponsesParser.js.map +1 -1
- package/lib/ResponsesParser.mjs +12 -4
- package/lib/ResponsesParser.mjs.map +1 -1
- package/lib/responses/ResponseAccumulator.d.mts +10 -0
- package/lib/responses/ResponseAccumulator.d.mts.map +1 -0
- package/lib/responses/ResponseAccumulator.d.ts +10 -0
- package/lib/responses/ResponseAccumulator.d.ts.map +1 -0
- package/lib/responses/ResponseAccumulator.js +402 -0
- package/lib/responses/ResponseAccumulator.js.map +1 -0
- package/lib/responses/ResponseAccumulator.mjs +399 -0
- package/lib/responses/ResponseAccumulator.mjs.map +1 -0
- package/lib/responses/ResponseInputItems.d.mts +19 -0
- package/lib/responses/ResponseInputItems.d.mts.map +1 -0
- package/lib/responses/ResponseInputItems.d.ts +19 -0
- package/lib/responses/ResponseInputItems.d.ts.map +1 -0
- package/lib/responses/ResponseInputItems.js +102 -0
- package/lib/responses/ResponseInputItems.js.map +1 -0
- package/lib/responses/ResponseInputItems.mjs +98 -0
- package/lib/responses/ResponseInputItems.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 +5 -90
- package/lib/responses/ResponseStream.js.map +1 -1
- package/lib/responses/ResponseStream.mjs +5 -90
- package/lib/responses/ResponseStream.mjs.map +1 -1
- package/package.json +24 -1
- package/providers/bedrock/aws.d.mts +24 -0
- package/providers/bedrock/aws.d.mts.map +1 -0
- package/providers/bedrock/aws.d.ts +24 -0
- package/providers/bedrock/aws.d.ts.map +1 -0
- package/providers/bedrock/aws.js +170 -0
- package/providers/bedrock/aws.js.map +1 -0
- package/providers/bedrock/aws.mjs +166 -0
- package/providers/bedrock/aws.mjs.map +1 -0
- package/providers/bedrock.d.mts +7 -0
- package/providers/bedrock.d.mts.map +1 -0
- package/providers/bedrock.d.ts +7 -0
- package/providers/bedrock.d.ts.map +1 -0
- package/providers/bedrock.js +26 -0
- package/providers/bedrock.js.map +1 -0
- package/providers/bedrock.mjs +22 -0
- package/providers/bedrock.mjs.map +1 -0
- package/realtime/internal-base.d.mts +28 -1
- package/realtime/internal-base.d.mts.map +1 -1
- package/realtime/internal-base.d.ts +28 -1
- package/realtime/internal-base.d.ts.map +1 -1
- package/realtime/internal-base.js +50 -7
- package/realtime/internal-base.js.map +1 -1
- package/realtime/internal-base.mjs +49 -7
- package/realtime/internal-base.mjs.map +1 -1
- package/realtime/websocket.d.mts +4 -7
- package/realtime/websocket.d.mts.map +1 -1
- package/realtime/websocket.d.ts +4 -7
- package/realtime/websocket.d.ts.map +1 -1
- package/realtime/websocket.js +4 -8
- package/realtime/websocket.js.map +1 -1
- package/realtime/websocket.mjs +5 -9
- package/realtime/websocket.mjs.map +1 -1
- package/realtime/ws.d.mts +4 -7
- package/realtime/ws.d.mts.map +1 -1
- package/realtime/ws.d.ts +4 -7
- package/realtime/ws.d.ts.map +1 -1
- package/realtime/ws.js +4 -8
- package/realtime/ws.js.map +1 -1
- package/realtime/ws.mjs +5 -9
- package/realtime/ws.mjs.map +1 -1
- package/src/_vendor/zod-to-json-schema/parseDef.ts +44 -16
- package/src/_vendor/zod-to-json-schema/parsers/branded.ts +2 -2
- package/src/_vendor/zod-to-json-schema/parsers/catch.ts +2 -2
- package/src/_vendor/zod-to-json-schema/parsers/default.ts +6 -2
- package/src/_vendor/zod-to-json-schema/parsers/nullable.ts +13 -5
- package/src/_vendor/zod-to-json-schema/parsers/optional.ts +14 -6
- package/src/_vendor/zod-to-json-schema/parsers/pipeline.ts +3 -2
- package/src/_vendor/zod-to-json-schema/parsers/promise.ts +6 -2
- package/src/_vendor/zod-to-json-schema/parsers/readonly.ts +2 -2
- package/src/auth/workload-identity-auth.ts +16 -5
- package/src/azure.ts +4 -1
- package/src/beta/realtime/internal-base.ts +43 -5
- package/src/beta/realtime/websocket.ts +10 -7
- package/src/beta/realtime/ws.ts +10 -7
- package/src/client.ts +80 -18
- package/src/helpers/zod.ts +16 -0
- package/src/internal/bedrock.ts +153 -0
- package/src/internal/provider.ts +60 -0
- package/src/internal/utils/log.ts +1 -0
- package/src/lib/AbstractChatCompletionRunner.ts +96 -45
- package/src/lib/AssistantStream.ts +4 -20
- package/src/lib/ChatCompletionRunner.ts +1 -1
- package/src/lib/ChatCompletionStream.ts +4 -11
- package/src/lib/ChatCompletionStreamingRunner.ts +1 -1
- package/src/lib/EventEmitter.ts +11 -2
- package/src/lib/EventStream.ts +20 -0
- package/src/lib/ResponsesParser.ts +18 -4
- package/src/lib/responses/ResponseAccumulator.ts +412 -0
- package/src/lib/responses/ResponseInputItems.ts +127 -0
- package/src/lib/responses/ResponseStream.ts +4 -93
- package/src/providers/bedrock/aws.ts +255 -0
- package/src/providers/bedrock.ts +33 -0
- package/src/realtime/internal-base.ts +90 -7
- package/src/realtime/websocket.ts +15 -13
- package/src/realtime/ws.ts +15 -13
- 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
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bedrock = bedrock;
|
|
4
|
+
const tslib_1 = require("../../internal/tslib.js");
|
|
5
|
+
const credential_provider_node_1 = require("@aws-sdk/credential-provider-node");
|
|
6
|
+
const hash_node_1 = require("@smithy/hash-node");
|
|
7
|
+
const signature_v4_1 = require("@smithy/signature-v4");
|
|
8
|
+
const Errors = tslib_1.__importStar(require("../../error.js"));
|
|
9
|
+
const bedrock_1 = require("../../internal/bedrock.js");
|
|
10
|
+
const provider_1 = require("../../internal/provider.js");
|
|
11
|
+
const BEDROCK_SERVICE = 'bedrock-mantle';
|
|
12
|
+
function validateStaticCredentials(options) {
|
|
13
|
+
const hasAccessKey = options.accessKeyId !== undefined;
|
|
14
|
+
const hasSecretKey = options.secretAccessKey !== undefined;
|
|
15
|
+
if (hasAccessKey !== hasSecretKey || (options.sessionToken !== undefined && !hasAccessKey)) {
|
|
16
|
+
throw new Errors.OpenAIError('The `accessKeyId` and `secretAccessKey` options must be provided together. A `sessionToken` may only be used with both.');
|
|
17
|
+
}
|
|
18
|
+
if (!hasAccessKey)
|
|
19
|
+
return undefined;
|
|
20
|
+
if (typeof options.accessKeyId !== 'string' ||
|
|
21
|
+
!options.accessKeyId.trim() ||
|
|
22
|
+
typeof options.secretAccessKey !== 'string' ||
|
|
23
|
+
!options.secretAccessKey.trim()) {
|
|
24
|
+
throw new Errors.OpenAIError('Static AWS credentials require non-empty `accessKeyId` and `secretAccessKey` values.');
|
|
25
|
+
}
|
|
26
|
+
if (options.sessionToken !== undefined &&
|
|
27
|
+
(typeof options.sessionToken !== 'string' || !options.sessionToken.trim())) {
|
|
28
|
+
throw new Errors.OpenAIError('A static AWS `sessionToken` must not be empty when provided.');
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
accessKeyId: options.accessKeyId,
|
|
32
|
+
secretAccessKey: options.secretAccessKey,
|
|
33
|
+
...(options.sessionToken ? { sessionToken: options.sessionToken } : {}),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function requestTarget(parsedURL) {
|
|
37
|
+
const query = {};
|
|
38
|
+
for (const [name, value] of parsedURL.searchParams) {
|
|
39
|
+
const existing = query[name];
|
|
40
|
+
query[name] =
|
|
41
|
+
existing === undefined ? value
|
|
42
|
+
: typeof existing === 'string' ? [existing, value]
|
|
43
|
+
: [...existing, value];
|
|
44
|
+
}
|
|
45
|
+
return { path: parsedURL.pathname, query };
|
|
46
|
+
}
|
|
47
|
+
function signableBody(body) {
|
|
48
|
+
if (body === undefined || body === null)
|
|
49
|
+
return undefined;
|
|
50
|
+
if (typeof body === 'string' || body instanceof ArrayBuffer || ArrayBuffer.isView(body))
|
|
51
|
+
return body;
|
|
52
|
+
throw new Errors.OpenAIError("The SDK's Bedrock SigV4 mode requires a replayable request body. Buffer the body before sending or use bearer authentication.");
|
|
53
|
+
}
|
|
54
|
+
function validateCredentialIdentity(identity) {
|
|
55
|
+
if (typeof identity?.accessKeyId !== 'string' ||
|
|
56
|
+
!identity.accessKeyId.trim() ||
|
|
57
|
+
typeof identity.secretAccessKey !== 'string' ||
|
|
58
|
+
!identity.secretAccessKey.trim() ||
|
|
59
|
+
(identity.sessionToken !== undefined &&
|
|
60
|
+
(typeof identity.sessionToken !== 'string' || !identity.sessionToken.trim()))) {
|
|
61
|
+
throw new Errors.OpenAIError('Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.');
|
|
62
|
+
}
|
|
63
|
+
return identity;
|
|
64
|
+
}
|
|
65
|
+
class BedrockSigV4Auth {
|
|
66
|
+
constructor(options) {
|
|
67
|
+
this.options = options;
|
|
68
|
+
}
|
|
69
|
+
credentialsProvider() {
|
|
70
|
+
if (this.resolvedCredentialsProvider)
|
|
71
|
+
return this.resolvedCredentialsProvider;
|
|
72
|
+
if (this.options.staticCredentials) {
|
|
73
|
+
const credentials = this.options.staticCredentials;
|
|
74
|
+
return (this.resolvedCredentialsProvider = async () => credentials);
|
|
75
|
+
}
|
|
76
|
+
if (this.options.credentialProvider) {
|
|
77
|
+
const provider = this.options.credentialProvider;
|
|
78
|
+
return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
|
|
79
|
+
}
|
|
80
|
+
const provider = (0, credential_provider_node_1.defaultProvider)(this.options.profile ? { profile: this.options.profile } : {});
|
|
81
|
+
return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
|
|
82
|
+
}
|
|
83
|
+
signatureV4() {
|
|
84
|
+
return (this.signer ?? (this.signer = new signature_v4_1.SignatureV4({
|
|
85
|
+
credentials: this.credentialsProvider(),
|
|
86
|
+
region: this.options.region,
|
|
87
|
+
service: BEDROCK_SERVICE,
|
|
88
|
+
sha256: hash_node_1.Hash.bind(null, 'sha256'),
|
|
89
|
+
})));
|
|
90
|
+
}
|
|
91
|
+
async prepareRequest(request, { url }) {
|
|
92
|
+
if (Object.prototype.toString.call(globalThis.process) !== '[object process]') {
|
|
93
|
+
throw new Errors.OpenAIError('Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.');
|
|
94
|
+
}
|
|
95
|
+
const parsedURL = new URL(url);
|
|
96
|
+
const canonicalRegion = /^bedrock-mantle\.([a-z0-9-]+)\.api\.aws$/i.exec(parsedURL.hostname)?.[1];
|
|
97
|
+
if (canonicalRegion && canonicalRegion !== this.options.region) {
|
|
98
|
+
throw new Errors.OpenAIError(`The Bedrock endpoint region \`${canonicalRegion}\` does not match the SigV4 region \`${this.options.region}\`.`);
|
|
99
|
+
}
|
|
100
|
+
const headers = new Headers(request.headers);
|
|
101
|
+
(0, bedrock_1.assertProviderOwnsAuthorization)(headers);
|
|
102
|
+
headers.delete('x-amz-date');
|
|
103
|
+
headers.delete('x-amz-security-token');
|
|
104
|
+
headers.delete('x-amz-content-sha256');
|
|
105
|
+
headers.set('host', parsedURL.host);
|
|
106
|
+
const method = (request.method ?? 'GET').toUpperCase();
|
|
107
|
+
const body = signableBody(request.body);
|
|
108
|
+
let signed;
|
|
109
|
+
try {
|
|
110
|
+
signed = await this.signatureV4().sign({
|
|
111
|
+
protocol: parsedURL.protocol,
|
|
112
|
+
hostname: parsedURL.hostname,
|
|
113
|
+
...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
|
|
114
|
+
method,
|
|
115
|
+
...requestTarget(parsedURL),
|
|
116
|
+
headers: Object.fromEntries(headers.entries()),
|
|
117
|
+
...(body !== undefined ? { body } : {}),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (cause) {
|
|
121
|
+
const message = this.options.usesDefaultChain ?
|
|
122
|
+
'Could not find credentials for Bedrock. Pass AWS credentials to `bedrock(...)` or configure the default AWS credential chain.'
|
|
123
|
+
: 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.';
|
|
124
|
+
throw (0, bedrock_1.errorWithCause)(message, cause);
|
|
125
|
+
}
|
|
126
|
+
request.method = method;
|
|
127
|
+
request.redirect = 'manual';
|
|
128
|
+
request.headers = new Headers(signed.headers);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer or AWS authentication. */
|
|
132
|
+
function bedrock(options = {}) {
|
|
133
|
+
const staticCredentials = validateStaticCredentials(options);
|
|
134
|
+
const profile = (0, bedrock_1.normalizeOptionalString)(options.profile);
|
|
135
|
+
if (options.profile !== undefined && !profile) {
|
|
136
|
+
throw new Errors.OpenAIError('The Bedrock AWS `profile` must not be empty.');
|
|
137
|
+
}
|
|
138
|
+
const awsModes = [!!staticCredentials, !!profile, !!options.credentialProvider].filter(Boolean).length;
|
|
139
|
+
if (awsModes > 1) {
|
|
140
|
+
throw new Errors.OpenAIError('Bedrock authentication is ambiguous. Configure exactly one explicit AWS mode: static credentials, profile, or credential provider.');
|
|
141
|
+
}
|
|
142
|
+
const explicitAwsAuth = awsModes === 1;
|
|
143
|
+
const bearerAuth = (0, bedrock_1.resolveBedrockBearerAuth)(options, { allowEnvironment: !explicitAwsAuth });
|
|
144
|
+
if (bearerAuth.explicit && explicitAwsAuth) {
|
|
145
|
+
throw new Errors.OpenAIError('Bearer and AWS credential authentication are mutually exclusive. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.');
|
|
146
|
+
}
|
|
147
|
+
const { region, baseURL } = (0, bedrock_1.resolveBedrockEndpoint)(options);
|
|
148
|
+
if (!bearerAuth.factory && !region) {
|
|
149
|
+
throw new Errors.OpenAIError('Bedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or `AWS_DEFAULT_REGION`.');
|
|
150
|
+
}
|
|
151
|
+
const credentialProvider = options.credentialProvider;
|
|
152
|
+
return (0, provider_1.createProvider)({
|
|
153
|
+
configure() {
|
|
154
|
+
const auth = bearerAuth.factory?.() ??
|
|
155
|
+
new BedrockSigV4Auth({
|
|
156
|
+
region: region,
|
|
157
|
+
staticCredentials,
|
|
158
|
+
profile,
|
|
159
|
+
credentialProvider,
|
|
160
|
+
usesDefaultChain: !explicitAwsAuth,
|
|
161
|
+
});
|
|
162
|
+
return {
|
|
163
|
+
name: 'bedrock',
|
|
164
|
+
baseURL,
|
|
165
|
+
prepareRequest: auth.prepareRequest.bind(auth),
|
|
166
|
+
};
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=aws.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.js","sourceRoot":"","sources":["../../src/providers/bedrock/aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { defaultProvider } from '@aws-sdk/credential-provider-node';
|
|
2
|
+
import { Hash } from '@smithy/hash-node';
|
|
3
|
+
import { SignatureV4 } from '@smithy/signature-v4';
|
|
4
|
+
import * as Errors from "../../error.mjs";
|
|
5
|
+
import { assertProviderOwnsAuthorization, errorWithCause, normalizeOptionalString, resolveBedrockBearerAuth, resolveBedrockEndpoint, } from "../../internal/bedrock.mjs";
|
|
6
|
+
import { createProvider } from "../../internal/provider.mjs";
|
|
7
|
+
const BEDROCK_SERVICE = 'bedrock-mantle';
|
|
8
|
+
function validateStaticCredentials(options) {
|
|
9
|
+
const hasAccessKey = options.accessKeyId !== undefined;
|
|
10
|
+
const hasSecretKey = options.secretAccessKey !== undefined;
|
|
11
|
+
if (hasAccessKey !== hasSecretKey || (options.sessionToken !== undefined && !hasAccessKey)) {
|
|
12
|
+
throw new Errors.OpenAIError('The `accessKeyId` and `secretAccessKey` options must be provided together. A `sessionToken` may only be used with both.');
|
|
13
|
+
}
|
|
14
|
+
if (!hasAccessKey)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (typeof options.accessKeyId !== 'string' ||
|
|
17
|
+
!options.accessKeyId.trim() ||
|
|
18
|
+
typeof options.secretAccessKey !== 'string' ||
|
|
19
|
+
!options.secretAccessKey.trim()) {
|
|
20
|
+
throw new Errors.OpenAIError('Static AWS credentials require non-empty `accessKeyId` and `secretAccessKey` values.');
|
|
21
|
+
}
|
|
22
|
+
if (options.sessionToken !== undefined &&
|
|
23
|
+
(typeof options.sessionToken !== 'string' || !options.sessionToken.trim())) {
|
|
24
|
+
throw new Errors.OpenAIError('A static AWS `sessionToken` must not be empty when provided.');
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
accessKeyId: options.accessKeyId,
|
|
28
|
+
secretAccessKey: options.secretAccessKey,
|
|
29
|
+
...(options.sessionToken ? { sessionToken: options.sessionToken } : {}),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function requestTarget(parsedURL) {
|
|
33
|
+
const query = {};
|
|
34
|
+
for (const [name, value] of parsedURL.searchParams) {
|
|
35
|
+
const existing = query[name];
|
|
36
|
+
query[name] =
|
|
37
|
+
existing === undefined ? value
|
|
38
|
+
: typeof existing === 'string' ? [existing, value]
|
|
39
|
+
: [...existing, value];
|
|
40
|
+
}
|
|
41
|
+
return { path: parsedURL.pathname, query };
|
|
42
|
+
}
|
|
43
|
+
function signableBody(body) {
|
|
44
|
+
if (body === undefined || body === null)
|
|
45
|
+
return undefined;
|
|
46
|
+
if (typeof body === 'string' || body instanceof ArrayBuffer || ArrayBuffer.isView(body))
|
|
47
|
+
return body;
|
|
48
|
+
throw new Errors.OpenAIError("The SDK's Bedrock SigV4 mode requires a replayable request body. Buffer the body before sending or use bearer authentication.");
|
|
49
|
+
}
|
|
50
|
+
function validateCredentialIdentity(identity) {
|
|
51
|
+
if (typeof identity?.accessKeyId !== 'string' ||
|
|
52
|
+
!identity.accessKeyId.trim() ||
|
|
53
|
+
typeof identity.secretAccessKey !== 'string' ||
|
|
54
|
+
!identity.secretAccessKey.trim() ||
|
|
55
|
+
(identity.sessionToken !== undefined &&
|
|
56
|
+
(typeof identity.sessionToken !== 'string' || !identity.sessionToken.trim()))) {
|
|
57
|
+
throw new Errors.OpenAIError('Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.');
|
|
58
|
+
}
|
|
59
|
+
return identity;
|
|
60
|
+
}
|
|
61
|
+
class BedrockSigV4Auth {
|
|
62
|
+
constructor(options) {
|
|
63
|
+
this.options = options;
|
|
64
|
+
}
|
|
65
|
+
credentialsProvider() {
|
|
66
|
+
if (this.resolvedCredentialsProvider)
|
|
67
|
+
return this.resolvedCredentialsProvider;
|
|
68
|
+
if (this.options.staticCredentials) {
|
|
69
|
+
const credentials = this.options.staticCredentials;
|
|
70
|
+
return (this.resolvedCredentialsProvider = async () => credentials);
|
|
71
|
+
}
|
|
72
|
+
if (this.options.credentialProvider) {
|
|
73
|
+
const provider = this.options.credentialProvider;
|
|
74
|
+
return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
|
|
75
|
+
}
|
|
76
|
+
const provider = defaultProvider(this.options.profile ? { profile: this.options.profile } : {});
|
|
77
|
+
return (this.resolvedCredentialsProvider = async () => validateCredentialIdentity(await provider()));
|
|
78
|
+
}
|
|
79
|
+
signatureV4() {
|
|
80
|
+
return (this.signer ?? (this.signer = new SignatureV4({
|
|
81
|
+
credentials: this.credentialsProvider(),
|
|
82
|
+
region: this.options.region,
|
|
83
|
+
service: BEDROCK_SERVICE,
|
|
84
|
+
sha256: Hash.bind(null, 'sha256'),
|
|
85
|
+
})));
|
|
86
|
+
}
|
|
87
|
+
async prepareRequest(request, { url }) {
|
|
88
|
+
if (Object.prototype.toString.call(globalThis.process) !== '[object process]') {
|
|
89
|
+
throw new Errors.OpenAIError('Bedrock AWS credential authentication is only supported in Node.js and compatible server runtimes. Use bearer authentication in this runtime.');
|
|
90
|
+
}
|
|
91
|
+
const parsedURL = new URL(url);
|
|
92
|
+
const canonicalRegion = /^bedrock-mantle\.([a-z0-9-]+)\.api\.aws$/i.exec(parsedURL.hostname)?.[1];
|
|
93
|
+
if (canonicalRegion && canonicalRegion !== this.options.region) {
|
|
94
|
+
throw new Errors.OpenAIError(`The Bedrock endpoint region \`${canonicalRegion}\` does not match the SigV4 region \`${this.options.region}\`.`);
|
|
95
|
+
}
|
|
96
|
+
const headers = new Headers(request.headers);
|
|
97
|
+
assertProviderOwnsAuthorization(headers);
|
|
98
|
+
headers.delete('x-amz-date');
|
|
99
|
+
headers.delete('x-amz-security-token');
|
|
100
|
+
headers.delete('x-amz-content-sha256');
|
|
101
|
+
headers.set('host', parsedURL.host);
|
|
102
|
+
const method = (request.method ?? 'GET').toUpperCase();
|
|
103
|
+
const body = signableBody(request.body);
|
|
104
|
+
let signed;
|
|
105
|
+
try {
|
|
106
|
+
signed = await this.signatureV4().sign({
|
|
107
|
+
protocol: parsedURL.protocol,
|
|
108
|
+
hostname: parsedURL.hostname,
|
|
109
|
+
...(parsedURL.port ? { port: Number(parsedURL.port) } : {}),
|
|
110
|
+
method,
|
|
111
|
+
...requestTarget(parsedURL),
|
|
112
|
+
headers: Object.fromEntries(headers.entries()),
|
|
113
|
+
...(body !== undefined ? { body } : {}),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
catch (cause) {
|
|
117
|
+
const message = this.options.usesDefaultChain ?
|
|
118
|
+
'Could not find credentials for Bedrock. Pass AWS credentials to `bedrock(...)` or configure the default AWS credential chain.'
|
|
119
|
+
: 'Failed to resolve AWS credentials for Bedrock. Verify your AWS profile, environment variables, or runtime identity configuration and try again.';
|
|
120
|
+
throw errorWithCause(message, cause);
|
|
121
|
+
}
|
|
122
|
+
request.method = method;
|
|
123
|
+
request.redirect = 'manual';
|
|
124
|
+
request.headers = new Headers(signed.headers);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer or AWS authentication. */
|
|
128
|
+
export function bedrock(options = {}) {
|
|
129
|
+
const staticCredentials = validateStaticCredentials(options);
|
|
130
|
+
const profile = normalizeOptionalString(options.profile);
|
|
131
|
+
if (options.profile !== undefined && !profile) {
|
|
132
|
+
throw new Errors.OpenAIError('The Bedrock AWS `profile` must not be empty.');
|
|
133
|
+
}
|
|
134
|
+
const awsModes = [!!staticCredentials, !!profile, !!options.credentialProvider].filter(Boolean).length;
|
|
135
|
+
if (awsModes > 1) {
|
|
136
|
+
throw new Errors.OpenAIError('Bedrock authentication is ambiguous. Configure exactly one explicit AWS mode: static credentials, profile, or credential provider.');
|
|
137
|
+
}
|
|
138
|
+
const explicitAwsAuth = awsModes === 1;
|
|
139
|
+
const bearerAuth = resolveBedrockBearerAuth(options, { allowEnvironment: !explicitAwsAuth });
|
|
140
|
+
if (bearerAuth.explicit && explicitAwsAuth) {
|
|
141
|
+
throw new Errors.OpenAIError('Bearer and AWS credential authentication are mutually exclusive. Configure exactly one explicit mode: bearer credential, static AWS credentials, profile, or credential provider.');
|
|
142
|
+
}
|
|
143
|
+
const { region, baseURL } = resolveBedrockEndpoint(options);
|
|
144
|
+
if (!bearerAuth.factory && !region) {
|
|
145
|
+
throw new Errors.OpenAIError('Bedrock requires an AWS region. Pass `region` to `bedrock(...)`, or set `AWS_REGION` or `AWS_DEFAULT_REGION`.');
|
|
146
|
+
}
|
|
147
|
+
const credentialProvider = options.credentialProvider;
|
|
148
|
+
return createProvider({
|
|
149
|
+
configure() {
|
|
150
|
+
const auth = bearerAuth.factory?.() ??
|
|
151
|
+
new BedrockSigV4Auth({
|
|
152
|
+
region: region,
|
|
153
|
+
staticCredentials,
|
|
154
|
+
profile,
|
|
155
|
+
credentialProvider,
|
|
156
|
+
usesDefaultChain: !explicitAwsAuth,
|
|
157
|
+
});
|
|
158
|
+
return {
|
|
159
|
+
name: 'bedrock',
|
|
160
|
+
baseURL,
|
|
161
|
+
prepareRequest: auth.prepareRequest.bind(auth),
|
|
162
|
+
};
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=aws.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws.mjs","sourceRoot":"","sources":["../../src/providers/bedrock/aws.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Provider } from "../internal/provider.mjs";
|
|
2
|
+
import { type BedrockBearerOptions, type BedrockEndpointOptions } from "../internal/bedrock.mjs";
|
|
3
|
+
export interface BedrockProviderOptions extends BedrockEndpointOptions, BedrockBearerOptions {
|
|
4
|
+
}
|
|
5
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer authentication. */
|
|
6
|
+
export declare function bedrock(options?: BedrockProviderOptions): Provider;
|
|
7
|
+
//# sourceMappingURL=bedrock.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.d.mts","sourceRoot":"","sources":["../src/providers/bedrock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iCAA6B;AAErD,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,gCAA4B;AAE7B,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB,EAAE,oBAAoB;CAAG;AAE/F,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,OAAO,GAAE,sBAA2B,GAAG,QAAQ,CAmBtE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Provider } from "../internal/provider.js";
|
|
2
|
+
import { type BedrockBearerOptions, type BedrockEndpointOptions } from "../internal/bedrock.js";
|
|
3
|
+
export interface BedrockProviderOptions extends BedrockEndpointOptions, BedrockBearerOptions {
|
|
4
|
+
}
|
|
5
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer authentication. */
|
|
6
|
+
export declare function bedrock(options?: BedrockProviderOptions): Provider;
|
|
7
|
+
//# sourceMappingURL=bedrock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.d.ts","sourceRoot":"","sources":["../src/providers/bedrock.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,gCAA6B;AAErD,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC5B,+BAA4B;AAE7B,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB,EAAE,oBAAoB;CAAG;AAE/F,2FAA2F;AAC3F,wBAAgB,OAAO,CAAC,OAAO,GAAE,sBAA2B,GAAG,QAAQ,CAmBtE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bedrock = bedrock;
|
|
4
|
+
const tslib_1 = require("../internal/tslib.js");
|
|
5
|
+
const Errors = tslib_1.__importStar(require("../error.js"));
|
|
6
|
+
const provider_1 = require("../internal/provider.js");
|
|
7
|
+
const bedrock_1 = require("../internal/bedrock.js");
|
|
8
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer authentication. */
|
|
9
|
+
function bedrock(options = {}) {
|
|
10
|
+
const { baseURL } = (0, bedrock_1.resolveBedrockEndpoint)(options);
|
|
11
|
+
const { factory } = (0, bedrock_1.resolveBedrockBearerAuth)(options);
|
|
12
|
+
if (!factory) {
|
|
13
|
+
throw new Errors.OpenAIError('Bedrock bearer authentication requires an `apiKey`, `tokenProvider`, or `AWS_BEARER_TOKEN_BEDROCK`. For AWS credential authentication, import `bedrock` from `openai/providers/bedrock/aws`.');
|
|
14
|
+
}
|
|
15
|
+
return (0, provider_1.createProvider)({
|
|
16
|
+
configure() {
|
|
17
|
+
const auth = factory();
|
|
18
|
+
return {
|
|
19
|
+
name: 'bedrock',
|
|
20
|
+
baseURL,
|
|
21
|
+
prepareRequest: auth.prepareRequest.bind(auth),
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=bedrock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.js","sourceRoot":"","sources":["../src/providers/bedrock.ts"],"names":[],"mappings":";;AAaA,0BAmBC;;AAhCD,4DAAmC;AAEnC,sDAAsD;AACtD,oDAK6B;AAI7B,2FAA2F;AAC3F,SAAgB,OAAO,CAAC,UAAkC,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,gCAAsB,EAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,kCAAwB,EAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,MAAM,CAAC,WAAW,CAC1B,8LAA8L,CAC/L,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,yBAAc,EAAC;QACpB,SAAS;YACP,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/C,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as Errors from "../error.mjs";
|
|
2
|
+
import { createProvider } from "../internal/provider.mjs";
|
|
3
|
+
import { resolveBedrockBearerAuth, resolveBedrockEndpoint, } from "../internal/bedrock.mjs";
|
|
4
|
+
/** Configure the standard OpenAI client for Amazon Bedrock using bearer authentication. */
|
|
5
|
+
export function bedrock(options = {}) {
|
|
6
|
+
const { baseURL } = resolveBedrockEndpoint(options);
|
|
7
|
+
const { factory } = resolveBedrockBearerAuth(options);
|
|
8
|
+
if (!factory) {
|
|
9
|
+
throw new Errors.OpenAIError('Bedrock bearer authentication requires an `apiKey`, `tokenProvider`, or `AWS_BEARER_TOKEN_BEDROCK`. For AWS credential authentication, import `bedrock` from `openai/providers/bedrock/aws`.');
|
|
10
|
+
}
|
|
11
|
+
return createProvider({
|
|
12
|
+
configure() {
|
|
13
|
+
const auth = factory();
|
|
14
|
+
return {
|
|
15
|
+
name: 'bedrock',
|
|
16
|
+
baseURL,
|
|
17
|
+
prepareRequest: auth.prepareRequest.bind(auth),
|
|
18
|
+
};
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=bedrock.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bedrock.mjs","sourceRoot":"","sources":["../src/providers/bedrock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,qBAAiB;AAEnC,OAAO,EAAE,cAAc,EAAE,iCAA6B;AACtD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GAGvB,gCAA4B;AAI7B,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,UAAkC,EAAE;IAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,MAAM,CAAC,WAAW,CAC1B,8LAA8L,CAC/L,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,SAAS;YACP,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;YACvB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,cAAc,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/C,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -40,6 +40,33 @@ export declare abstract class OpenAIRealtimeEmitter extends EventEmitter<Realtim
|
|
|
40
40
|
protected _onError(event: RealtimeErrorEvent, message?: string | undefined): void;
|
|
41
41
|
}
|
|
42
42
|
export declare function isAzure(client: Pick<OpenAI, 'apiKey' | 'baseURL'>): client is AzureOpenAI;
|
|
43
|
-
export
|
|
43
|
+
export type RealtimeConnectionConfig = {
|
|
44
|
+
/**
|
|
45
|
+
* Start a new Realtime session using the given model.
|
|
46
|
+
*/
|
|
47
|
+
model: string;
|
|
48
|
+
callID?: undefined;
|
|
49
|
+
} | {
|
|
50
|
+
model?: undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Attach to an in-progress Realtime call over a sideband control connection.
|
|
53
|
+
*/
|
|
54
|
+
callID: string;
|
|
55
|
+
};
|
|
56
|
+
export type AzureRealtimeConnectionConfig = {
|
|
57
|
+
/**
|
|
58
|
+
* Override the deployment configured on the Azure client.
|
|
59
|
+
*/
|
|
60
|
+
deploymentName?: string;
|
|
61
|
+
callID?: undefined;
|
|
62
|
+
} | {
|
|
63
|
+
deploymentName?: undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Attach to an in-progress Azure Realtime call over a sideband control connection.
|
|
66
|
+
*/
|
|
67
|
+
callID: string;
|
|
68
|
+
};
|
|
69
|
+
export declare function buildRealtimeURL(client: Pick<OpenAI, 'apiKey' | 'baseURL'>, connection: string | RealtimeConnectionConfig): URL;
|
|
70
|
+
export declare function getAzureRealtimeConnection(client: Pick<AzureOpenAI, 'deploymentName'>, connection: AzureRealtimeConnectionConfig): RealtimeConnectionConfig;
|
|
44
71
|
export {};
|
|
45
72
|
//# sourceMappingURL=internal-base.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.d.mts","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACd,2CAAuC;AACxC,OAAO,EAAE,YAAY,EAAE,gCAA4B;AACnD,OAAO,EAAE,WAAW,EAAE,qBAAiB;AACvC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAiB;AAE/C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAM9D;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D,KAAK,cAAc,GAAG,QAAQ,CAC5B;IACE,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7C,GAAG;KACD,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAC5D,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,KACrD,OAAO;CACb,CACF,CAAC;AAEF,8BAAsB,qBAAsB,SAAQ,YAAY,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAE/C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAE9D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAyBlF;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,WAAW,CAEzF;AAED,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"internal-base.d.mts","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACd,2CAAuC;AACxC,OAAO,EAAE,YAAY,EAAE,gCAA4B;AACnD,OAAO,EAAE,WAAW,EAAE,qBAAiB;AACvC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,qBAAiB;AAE/C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAM9D;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D,KAAK,cAAc,GAAG,QAAQ,CAC5B;IACE,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7C,GAAG;KACD,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAC5D,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,KACrD,OAAO;CACb,CACF,CAAC;AAEF,8BAAsB,qBAAsB,SAAQ,YAAY,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAE/C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAE9D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAyBlF;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,WAAW,CAEzF;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GACD;IACE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,6BAA6B,GACrC;IACE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GACD;IACE,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,EAC1C,UAAU,EAAE,MAAM,GAAG,wBAAwB,GAC5C,GAAG,CA0CL;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC3C,UAAU,EAAE,6BAA6B,GACxC,wBAAwB,CAa1B"}
|
|
@@ -40,6 +40,33 @@ export declare abstract class OpenAIRealtimeEmitter extends EventEmitter<Realtim
|
|
|
40
40
|
protected _onError(event: RealtimeErrorEvent, message?: string | undefined): void;
|
|
41
41
|
}
|
|
42
42
|
export declare function isAzure(client: Pick<OpenAI, 'apiKey' | 'baseURL'>): client is AzureOpenAI;
|
|
43
|
-
export
|
|
43
|
+
export type RealtimeConnectionConfig = {
|
|
44
|
+
/**
|
|
45
|
+
* Start a new Realtime session using the given model.
|
|
46
|
+
*/
|
|
47
|
+
model: string;
|
|
48
|
+
callID?: undefined;
|
|
49
|
+
} | {
|
|
50
|
+
model?: undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Attach to an in-progress Realtime call over a sideband control connection.
|
|
53
|
+
*/
|
|
54
|
+
callID: string;
|
|
55
|
+
};
|
|
56
|
+
export type AzureRealtimeConnectionConfig = {
|
|
57
|
+
/**
|
|
58
|
+
* Override the deployment configured on the Azure client.
|
|
59
|
+
*/
|
|
60
|
+
deploymentName?: string;
|
|
61
|
+
callID?: undefined;
|
|
62
|
+
} | {
|
|
63
|
+
deploymentName?: undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Attach to an in-progress Azure Realtime call over a sideband control connection.
|
|
66
|
+
*/
|
|
67
|
+
callID: string;
|
|
68
|
+
};
|
|
69
|
+
export declare function buildRealtimeURL(client: Pick<OpenAI, 'apiKey' | 'baseURL'>, connection: string | RealtimeConnectionConfig): URL;
|
|
70
|
+
export declare function getAzureRealtimeConnection(client: Pick<AzureOpenAI, 'deploymentName'>, connection: AzureRealtimeConnectionConfig): RealtimeConnectionConfig;
|
|
44
71
|
export {};
|
|
45
72
|
//# sourceMappingURL=internal-base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACd,0CAAuC;AACxC,OAAO,EAAE,YAAY,EAAE,+BAA4B;AACnD,OAAO,EAAE,WAAW,EAAE,oBAAiB;AACvC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,oBAAiB;AAE/C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAM9D;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D,KAAK,cAAc,GAAG,QAAQ,CAC5B;IACE,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7C,GAAG;KACD,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAC5D,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,KACrD,OAAO;CACb,CACF,CAAC;AAEF,8BAAsB,qBAAsB,SAAQ,YAAY,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAE/C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAE9D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAyBlF;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,WAAW,CAEzF;AAED,wBAAgB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"internal-base.d.ts","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,aAAa,EACd,0CAAuC;AACxC,OAAO,EAAE,YAAY,EAAE,+BAA4B;AACnD,OAAO,EAAE,WAAW,EAAE,oBAAiB;AACvC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,oBAAiB;AAE/C,qBAAa,mBAAoB,SAAQ,WAAW;IAClD;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;gBAElB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,IAAI;CAM9D;AAED,KAAK,QAAQ,CAAC,CAAC,IAAI;KAAG,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;CAAE,GAAG,EAAE,CAAC;AAE7D,KAAK,cAAc,GAAG,QAAQ,CAC5B;IACE,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC5C,KAAK,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC7C,GAAG;KACD,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GAAG,CAC5D,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC,KACrD,OAAO;CACb,CACF,CAAC;AAEF,8BAAsB,qBAAsB,SAAQ,YAAY,CAAC,cAAc,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAE/C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAE9D,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAClE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;CAyBlF;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,MAAM,IAAI,WAAW,CAEzF;AAED,MAAM,MAAM,wBAAwB,GAChC;IACE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GACD;IACE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,MAAM,MAAM,6BAA6B,GACrC;IACE;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB,GACD;IACE,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEN,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC,EAC1C,UAAU,EAAE,MAAM,GAAG,wBAAwB,GAC5C,GAAG,CA0CL;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAC3C,UAAU,EAAE,6BAA6B,GACxC,wBAAwB,CAa1B"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OpenAIRealtimeEmitter = exports.OpenAIRealtimeError = void 0;
|
|
4
4
|
exports.isAzure = isAzure;
|
|
5
5
|
exports.buildRealtimeURL = buildRealtimeURL;
|
|
6
|
+
exports.getAzureRealtimeConnection = getAzureRealtimeConnection;
|
|
6
7
|
const EventEmitter_1 = require("../lib/EventEmitter.js");
|
|
7
8
|
const error_1 = require("../error.js");
|
|
8
9
|
const index_1 = require("../index.js");
|
|
@@ -38,18 +39,60 @@ exports.OpenAIRealtimeEmitter = OpenAIRealtimeEmitter;
|
|
|
38
39
|
function isAzure(client) {
|
|
39
40
|
return client instanceof index_1.AzureOpenAI;
|
|
40
41
|
}
|
|
41
|
-
function buildRealtimeURL(client,
|
|
42
|
-
const
|
|
42
|
+
function buildRealtimeURL(client, connection) {
|
|
43
|
+
const config = typeof connection === 'string' ? { model: connection } : connection;
|
|
43
44
|
const baseURL = client.baseURL;
|
|
44
|
-
const
|
|
45
|
+
const azure = isAzure(client);
|
|
46
|
+
const hasModel = !!config.model;
|
|
47
|
+
const hasCallID = !!config.callID;
|
|
48
|
+
if (hasModel === hasCallID) {
|
|
49
|
+
throw new Error('Pass exactly one of `model` or `callID` when opening a Realtime WebSocket.');
|
|
50
|
+
}
|
|
51
|
+
let url;
|
|
52
|
+
if (azure && hasCallID) {
|
|
53
|
+
url = new URL(baseURL);
|
|
54
|
+
const basePath = url.pathname.replace(/\/+/g, '/').replace(/\/+$/, '');
|
|
55
|
+
const versionedPath = basePath.endsWith('/v1') ? basePath : `${basePath}/v1`;
|
|
56
|
+
url.pathname = `${versionedPath}/realtime`;
|
|
57
|
+
url.search = '';
|
|
58
|
+
url.hash = '';
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
const path = '/realtime';
|
|
62
|
+
url = new URL(baseURL + (baseURL.endsWith('/') ? path.slice(1) : path));
|
|
63
|
+
}
|
|
45
64
|
url.protocol = 'wss';
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
65
|
+
// Sideband control connections attach to an existing call via `call_id`.
|
|
66
|
+
if (azure) {
|
|
67
|
+
if (hasCallID) {
|
|
68
|
+
url.searchParams.set('call_id', config.callID);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
url.searchParams.set('api-version', client.apiVersion);
|
|
72
|
+
url.searchParams.set('deployment', config.model);
|
|
73
|
+
}
|
|
49
74
|
}
|
|
50
75
|
else {
|
|
51
|
-
|
|
76
|
+
if (hasCallID) {
|
|
77
|
+
url.searchParams.set('call_id', config.callID);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
url.searchParams.set('model', config.model);
|
|
81
|
+
}
|
|
52
82
|
}
|
|
53
83
|
return url;
|
|
54
84
|
}
|
|
85
|
+
function getAzureRealtimeConnection(client, connection) {
|
|
86
|
+
if (connection.callID !== undefined) {
|
|
87
|
+
if (connection.deploymentName !== undefined) {
|
|
88
|
+
throw new Error('Pass either `deploymentName` or `callID`, but not both.');
|
|
89
|
+
}
|
|
90
|
+
return { callID: connection.callID };
|
|
91
|
+
}
|
|
92
|
+
const model = connection.deploymentName ?? client.deploymentName;
|
|
93
|
+
if (!model) {
|
|
94
|
+
throw new Error('No deployment name provided');
|
|
95
|
+
}
|
|
96
|
+
return { model };
|
|
97
|
+
}
|
|
55
98
|
//# sourceMappingURL=internal-base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal-base.js","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":";;;AAiFA,0BAEC;AAED,
|
|
1
|
+
{"version":3,"file":"internal-base.js","sourceRoot":"","sources":["../src/realtime/internal-base.ts"],"names":[],"mappings":"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"}
|