@llumiverse/drivers 1.0.0-dev.20260202.145450Z → 1.0.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/lib/cjs/adobe/firefly.js +120 -0
- package/lib/cjs/adobe/firefly.js.map +1 -0
- package/lib/cjs/azure/azure_foundry.js +432 -0
- package/lib/cjs/azure/azure_foundry.js.map +1 -0
- package/lib/cjs/bedrock/converse.js +359 -0
- package/lib/cjs/bedrock/converse.js.map +1 -0
- package/lib/cjs/bedrock/index.js +1441 -0
- package/lib/cjs/bedrock/index.js.map +1 -0
- package/lib/cjs/bedrock/nova-image-payload.js +207 -0
- package/lib/cjs/bedrock/nova-image-payload.js.map +1 -0
- package/lib/cjs/bedrock/payloads.js +3 -0
- package/lib/cjs/bedrock/payloads.js.map +1 -0
- package/lib/cjs/bedrock/s3.js +107 -0
- package/lib/cjs/bedrock/s3.js.map +1 -0
- package/lib/cjs/bedrock/twelvelabs.js +87 -0
- package/lib/cjs/bedrock/twelvelabs.js.map +1 -0
- package/lib/cjs/groq/index.js +326 -0
- package/lib/cjs/groq/index.js.map +1 -0
- package/lib/cjs/huggingface_ie.js +201 -0
- package/lib/cjs/huggingface_ie.js.map +1 -0
- package/lib/cjs/index.js +31 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/mistral/index.js +176 -0
- package/lib/cjs/mistral/index.js.map +1 -0
- package/lib/cjs/mistral/types.js +83 -0
- package/lib/cjs/mistral/types.js.map +1 -0
- package/lib/cjs/openai/azure_openai.js +72 -0
- package/lib/cjs/openai/azure_openai.js.map +1 -0
- package/lib/cjs/openai/index.js +1100 -0
- package/lib/cjs/openai/index.js.map +1 -0
- package/lib/cjs/openai/openai.js +21 -0
- package/lib/cjs/openai/openai.js.map +1 -0
- package/lib/cjs/openai/openai_compatible.js +63 -0
- package/lib/cjs/openai/openai_compatible.js.map +1 -0
- package/lib/cjs/openai/openai_format.js +131 -0
- package/lib/cjs/openai/openai_format.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/replicate.js +275 -0
- package/lib/cjs/replicate.js.map +1 -0
- package/lib/cjs/test-driver/TestErrorCompletionStream.js +20 -0
- package/lib/cjs/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js +24 -0
- package/lib/cjs/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/cjs/test-driver/index.js +109 -0
- package/lib/cjs/test-driver/index.js.map +1 -0
- package/lib/cjs/test-driver/utils.js +30 -0
- package/lib/cjs/test-driver/utils.js.map +1 -0
- package/lib/cjs/togetherai/index.js +126 -0
- package/lib/cjs/togetherai/index.js.map +1 -0
- package/lib/cjs/togetherai/interfaces.js +3 -0
- package/lib/cjs/togetherai/interfaces.js.map +1 -0
- package/lib/cjs/vertexai/debug.js +12 -0
- package/lib/cjs/vertexai/debug.js.map +1 -0
- package/lib/cjs/vertexai/embeddings/embeddings-image.js +27 -0
- package/lib/cjs/vertexai/embeddings/embeddings-image.js.map +1 -0
- package/lib/cjs/vertexai/embeddings/embeddings-text.js +23 -0
- package/lib/cjs/vertexai/embeddings/embeddings-text.js.map +1 -0
- package/lib/cjs/vertexai/index.js +635 -0
- package/lib/cjs/vertexai/index.js.map +1 -0
- package/lib/cjs/vertexai/models/claude.js +842 -0
- package/lib/cjs/vertexai/models/claude.js.map +1 -0
- package/lib/cjs/vertexai/models/gemini.js +1110 -0
- package/lib/cjs/vertexai/models/gemini.js.map +1 -0
- package/lib/cjs/vertexai/models/imagen.js +303 -0
- package/lib/cjs/vertexai/models/imagen.js.map +1 -0
- package/lib/cjs/vertexai/models/llama.js +183 -0
- package/lib/cjs/vertexai/models/llama.js.map +1 -0
- package/lib/cjs/vertexai/models.js +35 -0
- package/lib/cjs/vertexai/models.js.map +1 -0
- package/lib/cjs/watsonx/index.js +161 -0
- package/lib/cjs/watsonx/index.js.map +1 -0
- package/lib/cjs/watsonx/interfaces.js +3 -0
- package/lib/cjs/watsonx/interfaces.js.map +1 -0
- package/lib/cjs/xai/index.js +65 -0
- package/lib/cjs/xai/index.js.map +1 -0
- package/lib/esm/adobe/firefly.js +116 -0
- package/lib/esm/adobe/firefly.js.map +1 -0
- package/lib/esm/azure/azure_foundry.js +426 -0
- package/lib/esm/azure/azure_foundry.js.map +1 -0
- package/lib/esm/bedrock/converse.js +352 -0
- package/lib/esm/bedrock/converse.js.map +1 -0
- package/lib/esm/bedrock/index.js +1434 -0
- package/lib/esm/bedrock/index.js.map +1 -0
- package/lib/esm/bedrock/nova-image-payload.js +203 -0
- package/lib/esm/bedrock/nova-image-payload.js.map +1 -0
- package/lib/esm/bedrock/payloads.js +2 -0
- package/lib/esm/bedrock/payloads.js.map +1 -0
- package/lib/esm/bedrock/s3.js +99 -0
- package/lib/esm/bedrock/s3.js.map +1 -0
- package/lib/esm/bedrock/twelvelabs.js +84 -0
- package/lib/esm/bedrock/twelvelabs.js.map +1 -0
- package/lib/esm/groq/index.js +319 -0
- package/lib/esm/groq/index.js.map +1 -0
- package/lib/esm/huggingface_ie.js +197 -0
- package/lib/esm/huggingface_ie.js.map +1 -0
- package/lib/esm/index.js +15 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/mistral/index.js +172 -0
- package/lib/esm/mistral/index.js.map +1 -0
- package/lib/esm/mistral/types.js +80 -0
- package/lib/esm/mistral/types.js.map +1 -0
- package/lib/esm/openai/azure_openai.js +68 -0
- package/lib/esm/openai/azure_openai.js.map +1 -0
- package/lib/esm/openai/index.js +1093 -0
- package/lib/esm/openai/index.js.map +1 -0
- package/lib/esm/openai/openai.js +14 -0
- package/lib/esm/openai/openai.js.map +1 -0
- package/lib/esm/openai/openai_compatible.js +56 -0
- package/lib/esm/openai/openai_compatible.js.map +1 -0
- package/lib/esm/openai/openai_format.js +127 -0
- package/lib/esm/openai/openai_format.js.map +1 -0
- package/lib/esm/replicate.js +268 -0
- package/lib/esm/replicate.js.map +1 -0
- package/lib/esm/test-driver/TestErrorCompletionStream.js +16 -0
- package/lib/esm/test-driver/TestErrorCompletionStream.js.map +1 -0
- package/lib/esm/test-driver/TestValidationErrorCompletionStream.js +20 -0
- package/lib/esm/test-driver/TestValidationErrorCompletionStream.js.map +1 -0
- package/lib/esm/test-driver/index.js +91 -0
- package/lib/esm/test-driver/index.js.map +1 -0
- package/lib/esm/test-driver/utils.js +25 -0
- package/lib/esm/test-driver/utils.js.map +1 -0
- package/lib/esm/togetherai/index.js +122 -0
- package/lib/esm/togetherai/index.js.map +1 -0
- package/lib/esm/togetherai/interfaces.js +2 -0
- package/lib/esm/togetherai/interfaces.js.map +1 -0
- package/lib/esm/vertexai/debug.js +6 -0
- package/lib/esm/vertexai/debug.js.map +1 -0
- package/lib/esm/vertexai/embeddings/embeddings-image.js +24 -0
- package/lib/esm/vertexai/embeddings/embeddings-image.js.map +1 -0
- package/lib/esm/vertexai/embeddings/embeddings-text.js +20 -0
- package/lib/esm/vertexai/embeddings/embeddings-text.js.map +1 -0
- package/lib/esm/vertexai/index.js +630 -0
- package/lib/esm/vertexai/index.js.map +1 -0
- package/lib/esm/vertexai/models/claude.js +833 -0
- package/lib/esm/vertexai/models/claude.js.map +1 -0
- package/lib/esm/vertexai/models/gemini.js +1104 -0
- package/lib/esm/vertexai/models/gemini.js.map +1 -0
- package/lib/esm/vertexai/models/imagen.js +299 -0
- package/lib/esm/vertexai/models/imagen.js.map +1 -0
- package/lib/esm/vertexai/models/llama.js +179 -0
- package/lib/esm/vertexai/models/llama.js.map +1 -0
- package/lib/esm/vertexai/models.js +32 -0
- package/lib/esm/vertexai/models.js.map +1 -0
- package/lib/esm/watsonx/index.js +157 -0
- package/lib/esm/watsonx/index.js.map +1 -0
- package/lib/esm/watsonx/interfaces.js +2 -0
- package/lib/esm/watsonx/interfaces.js.map +1 -0
- package/lib/esm/xai/index.js +58 -0
- package/lib/esm/xai/index.js.map +1 -0
- package/lib/types/adobe/firefly.d.ts +30 -0
- package/lib/types/adobe/firefly.d.ts.map +1 -0
- package/lib/types/azure/azure_foundry.d.ts +52 -0
- package/lib/types/azure/azure_foundry.d.ts.map +1 -0
- package/lib/types/bedrock/converse.d.ts +8 -0
- package/lib/types/bedrock/converse.d.ts.map +1 -0
- package/lib/types/bedrock/index.d.ts +135 -0
- package/lib/types/bedrock/index.d.ts.map +1 -0
- package/lib/types/bedrock/nova-image-payload.d.ts +74 -0
- package/lib/types/bedrock/nova-image-payload.d.ts.map +1 -0
- package/lib/types/bedrock/payloads.d.ts +12 -0
- package/lib/types/bedrock/payloads.d.ts.map +1 -0
- package/lib/types/bedrock/s3.d.ts +23 -0
- package/lib/types/bedrock/s3.d.ts.map +1 -0
- package/lib/types/bedrock/twelvelabs.d.ts +50 -0
- package/lib/types/bedrock/twelvelabs.d.ts.map +1 -0
- package/lib/types/groq/index.d.ts +27 -0
- package/lib/types/groq/index.d.ts.map +1 -0
- package/lib/types/huggingface_ie.d.ts +35 -0
- package/lib/types/huggingface_ie.d.ts.map +1 -0
- package/lib/types/index.d.ts +15 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/mistral/index.d.ts +25 -0
- package/lib/types/mistral/index.d.ts.map +1 -0
- package/lib/types/mistral/types.d.ts +127 -0
- package/lib/types/mistral/types.d.ts.map +1 -0
- package/lib/types/openai/azure_openai.d.ts +25 -0
- package/lib/types/openai/azure_openai.d.ts.map +1 -0
- package/lib/types/openai/index.d.ts +126 -0
- package/lib/types/openai/index.d.ts.map +1 -0
- package/lib/types/openai/openai.d.ts +15 -0
- package/lib/types/openai/openai.d.ts.map +1 -0
- package/lib/types/openai/openai_compatible.d.ts +31 -0
- package/lib/types/openai/openai_compatible.d.ts.map +1 -0
- package/lib/types/openai/openai_format.d.ts +21 -0
- package/lib/types/openai/openai_format.d.ts.map +1 -0
- package/lib/types/replicate.d.ts +48 -0
- package/lib/types/replicate.d.ts.map +1 -0
- package/lib/types/test-driver/TestErrorCompletionStream.d.ts +9 -0
- package/lib/types/test-driver/TestErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts +9 -0
- package/lib/types/test-driver/TestValidationErrorCompletionStream.d.ts.map +1 -0
- package/lib/types/test-driver/index.d.ts +24 -0
- package/lib/types/test-driver/index.d.ts.map +1 -0
- package/lib/types/test-driver/utils.d.ts +5 -0
- package/lib/types/test-driver/utils.d.ts.map +1 -0
- package/lib/types/togetherai/index.d.ts +23 -0
- package/lib/types/togetherai/index.d.ts.map +1 -0
- package/lib/types/togetherai/interfaces.d.ts +96 -0
- package/lib/types/togetherai/interfaces.d.ts.map +1 -0
- package/lib/types/vertexai/debug.d.ts +2 -0
- package/lib/types/vertexai/debug.d.ts.map +1 -0
- package/lib/types/vertexai/embeddings/embeddings-image.d.ts +11 -0
- package/lib/types/vertexai/embeddings/embeddings-image.d.ts.map +1 -0
- package/lib/types/vertexai/embeddings/embeddings-text.d.ts +10 -0
- package/lib/types/vertexai/embeddings/embeddings-text.d.ts.map +1 -0
- package/lib/types/vertexai/index.d.ts +79 -0
- package/lib/types/vertexai/index.d.ts.map +1 -0
- package/lib/types/vertexai/models/claude.d.ts +103 -0
- package/lib/types/vertexai/models/claude.d.ts.map +1 -0
- package/lib/types/vertexai/models/gemini.d.ts +78 -0
- package/lib/types/vertexai/models/gemini.d.ts.map +1 -0
- package/lib/types/vertexai/models/imagen.d.ts +75 -0
- package/lib/types/vertexai/models/imagen.d.ts.map +1 -0
- package/lib/types/vertexai/models/llama.d.ts +20 -0
- package/lib/types/vertexai/models/llama.d.ts.map +1 -0
- package/lib/types/vertexai/models.d.ts +20 -0
- package/lib/types/vertexai/models.d.ts.map +1 -0
- package/lib/types/watsonx/index.d.ts +27 -0
- package/lib/types/watsonx/index.d.ts.map +1 -0
- package/lib/types/watsonx/interfaces.d.ts +65 -0
- package/lib/types/watsonx/interfaces.d.ts.map +1 -0
- package/lib/types/xai/index.d.ts +18 -0
- package/lib/types/xai/index.d.ts.map +1 -0
- package/package.json +18 -18
- package/src/bedrock/converse.ts +85 -10
- package/src/bedrock/error-handling.test.ts +352 -0
- package/src/bedrock/index.ts +293 -16
- package/src/groq/index.ts +9 -4
- package/src/mistral/index.ts +25 -22
- package/src/mistral/types.ts +0 -5
- package/src/openai/error-handling.test.ts +567 -0
- package/src/openai/index.ts +513 -33
- package/src/openai/openai_compatible.ts +7 -0
- package/src/openai/openai_format.ts +1 -1
- package/src/vertexai/index.ts +61 -13
- package/src/vertexai/models/claude-error-handling.test.ts +432 -0
- package/src/vertexai/models/claude.ts +287 -10
- package/src/vertexai/models/gemini-error-handling.test.ts +353 -0
- package/src/vertexai/models/gemini.ts +329 -52
- package/src/vertexai/models.ts +7 -2
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { AbstractDriver } from "@llumiverse/core";
|
|
2
|
+
import { transformSSEStream } from "@llumiverse/core/async";
|
|
3
|
+
import { FetchClient } from "@vertesia/api-fetch-client";
|
|
4
|
+
const API_VERSION = "2024-03-14";
|
|
5
|
+
export class WatsonxDriver extends AbstractDriver {
|
|
6
|
+
static PROVIDER = "watsonx";
|
|
7
|
+
provider = WatsonxDriver.PROVIDER;
|
|
8
|
+
apiKey;
|
|
9
|
+
endpoint_url;
|
|
10
|
+
projectId;
|
|
11
|
+
authToken;
|
|
12
|
+
fetcher;
|
|
13
|
+
fetchClient;
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.apiKey = options.apiKey;
|
|
17
|
+
this.projectId = options.projectId;
|
|
18
|
+
this.endpoint_url = options.endpointUrl;
|
|
19
|
+
this.fetchClient = new FetchClient(this.endpoint_url).withAuthCallback(async () => this.getAuthToken().then(token => `Bearer ${token}`));
|
|
20
|
+
}
|
|
21
|
+
async requestTextCompletion(prompt, options) {
|
|
22
|
+
if (options.model_options?._option_id !== "text-fallback") {
|
|
23
|
+
this.logger.warn({ options: options.model_options }, "Invalid model options");
|
|
24
|
+
}
|
|
25
|
+
options.model_options = options.model_options;
|
|
26
|
+
const payload = {
|
|
27
|
+
model_id: options.model,
|
|
28
|
+
input: prompt + "\n",
|
|
29
|
+
parameters: {
|
|
30
|
+
max_new_tokens: options.model_options?.max_tokens,
|
|
31
|
+
temperature: options.model_options?.temperature,
|
|
32
|
+
top_k: options.model_options?.top_k,
|
|
33
|
+
top_p: options.model_options?.top_p,
|
|
34
|
+
stop_sequences: options.model_options?.stop_sequence,
|
|
35
|
+
},
|
|
36
|
+
project_id: this.projectId,
|
|
37
|
+
};
|
|
38
|
+
const res = await this.fetchClient.post(`/ml/v1/text/generation?version=${API_VERSION}`, { payload });
|
|
39
|
+
const result = res.results[0];
|
|
40
|
+
return {
|
|
41
|
+
result: [{ type: "text", value: result.generated_text }],
|
|
42
|
+
token_usage: {
|
|
43
|
+
prompt: result.input_token_count,
|
|
44
|
+
result: result.generated_token_count,
|
|
45
|
+
total: result.input_token_count + result.generated_token_count,
|
|
46
|
+
},
|
|
47
|
+
finish_reason: watsonFinishReason(result.stop_reason),
|
|
48
|
+
original_response: options.include_original_response ? res : undefined,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
async requestTextCompletionStream(prompt, options) {
|
|
52
|
+
if (options.model_options?._option_id !== "text-fallback") {
|
|
53
|
+
this.logger.warn({ options: options.model_options }, "Invalid model options");
|
|
54
|
+
}
|
|
55
|
+
options.model_options = options.model_options;
|
|
56
|
+
const payload = {
|
|
57
|
+
model_id: options.model,
|
|
58
|
+
input: prompt + "\n",
|
|
59
|
+
parameters: {
|
|
60
|
+
max_new_tokens: options.model_options?.max_tokens,
|
|
61
|
+
temperature: options.model_options?.temperature,
|
|
62
|
+
top_k: options.model_options?.top_k,
|
|
63
|
+
top_p: options.model_options?.top_p,
|
|
64
|
+
stop_sequences: options.model_options?.stop_sequence,
|
|
65
|
+
},
|
|
66
|
+
project_id: this.projectId,
|
|
67
|
+
};
|
|
68
|
+
const stream = await this.fetchClient.post(`/ml/v1/text/generation_stream?version=${API_VERSION}`, {
|
|
69
|
+
payload: payload,
|
|
70
|
+
reader: 'sse'
|
|
71
|
+
});
|
|
72
|
+
return transformSSEStream(stream, (data) => {
|
|
73
|
+
const json = JSON.parse(data);
|
|
74
|
+
return {
|
|
75
|
+
result: json.results[0]?.generated_text ? [{ type: "text", value: json.results[0].generated_text }] : [],
|
|
76
|
+
finish_reason: watsonFinishReason(json.results[0]?.stop_reason),
|
|
77
|
+
token_usage: {
|
|
78
|
+
prompt: json.results[0].input_token_count,
|
|
79
|
+
result: json.results[0].generated_token_count,
|
|
80
|
+
total: json.results[0].input_token_count + json.results[0].generated_token_count,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async listModels() {
|
|
86
|
+
const res = await this.fetchClient.get(`/ml/v1/foundation_model_specs?version=${API_VERSION}`)
|
|
87
|
+
.catch(err => this.logger.warn("Can't list models on Watsonx: " + err));
|
|
88
|
+
const aiModels = res.resources.map((m) => {
|
|
89
|
+
return {
|
|
90
|
+
id: m.model_id,
|
|
91
|
+
name: m.label,
|
|
92
|
+
description: m.short_description,
|
|
93
|
+
provider: this.provider,
|
|
94
|
+
};
|
|
95
|
+
});
|
|
96
|
+
return aiModels;
|
|
97
|
+
}
|
|
98
|
+
async getAuthToken() {
|
|
99
|
+
if (this.authToken) {
|
|
100
|
+
const now = Date.now() / 1000;
|
|
101
|
+
if (now < this.authToken.expiration) {
|
|
102
|
+
return this.authToken.access_token;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.logger.debug("Token expired, refetching");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const authToken = await fetch('https://iam.cloud.ibm.com/identity/token', {
|
|
109
|
+
method: 'POST',
|
|
110
|
+
headers: {
|
|
111
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
112
|
+
},
|
|
113
|
+
body: `grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=${this.apiKey}`,
|
|
114
|
+
}).then(response => response.json());
|
|
115
|
+
this.authToken = authToken;
|
|
116
|
+
return this.authToken.access_token;
|
|
117
|
+
}
|
|
118
|
+
async validateConnection() {
|
|
119
|
+
return this.listModels()
|
|
120
|
+
.then(() => true)
|
|
121
|
+
.catch((err) => {
|
|
122
|
+
this.logger.warn({ error: err }, "Failed to connect to WatsonX");
|
|
123
|
+
return false;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async generateEmbeddings(options) {
|
|
127
|
+
if (options.image) {
|
|
128
|
+
throw new Error("Image embeddings not supported by Watsonx");
|
|
129
|
+
}
|
|
130
|
+
if (!options.text) {
|
|
131
|
+
throw new Error("No text provided");
|
|
132
|
+
}
|
|
133
|
+
const payload = {
|
|
134
|
+
inputs: [options.text],
|
|
135
|
+
model_id: options.model ?? 'ibm/slate-125m-english-rtrvr',
|
|
136
|
+
project_id: this.projectId
|
|
137
|
+
};
|
|
138
|
+
const res = await this.fetchClient.post(`/ml/v1/text/embeddings?version=${API_VERSION}`, { payload });
|
|
139
|
+
return {
|
|
140
|
+
values: res.results[0].embedding,
|
|
141
|
+
model: res.model_id
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
function watsonFinishReason(reason) {
|
|
146
|
+
if (!reason)
|
|
147
|
+
return undefined;
|
|
148
|
+
switch (reason) {
|
|
149
|
+
case 'eos_token': return "stop";
|
|
150
|
+
case 'max_tokens': return "length";
|
|
151
|
+
default: return reason;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/*interface ListModelsParams extends ModelSearchPayload {
|
|
155
|
+
limit?: number;
|
|
156
|
+
}*/
|
|
157
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/watsonx/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/watsonx/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Providers } from "@llumiverse/core";
|
|
2
|
+
import { formatOpenAILikeMultimodalPrompt } from "../openai/openai_format.js";
|
|
3
|
+
import { FetchClient } from "@vertesia/api-fetch-client";
|
|
4
|
+
import OpenAI from "openai";
|
|
5
|
+
import { BaseOpenAIDriver } from "../openai/index.js";
|
|
6
|
+
export class xAIDriver extends BaseOpenAIDriver {
|
|
7
|
+
service;
|
|
8
|
+
provider = Providers.xai;
|
|
9
|
+
xai_service;
|
|
10
|
+
DEFAULT_ENDPOINT = "https://api.x.ai/v1";
|
|
11
|
+
constructor(opts) {
|
|
12
|
+
super(opts);
|
|
13
|
+
if (!opts.apiKey) {
|
|
14
|
+
throw new Error("apiKey is required");
|
|
15
|
+
}
|
|
16
|
+
this.service = new OpenAI({
|
|
17
|
+
apiKey: opts.apiKey,
|
|
18
|
+
baseURL: opts.endpoint ?? this.DEFAULT_ENDPOINT,
|
|
19
|
+
});
|
|
20
|
+
this.xai_service = new FetchClient(opts.endpoint ?? this.DEFAULT_ENDPOINT).withAuthCallback(async () => `Bearer ${opts.apiKey}`);
|
|
21
|
+
//this.formatPrompt = this._formatPrompt; //TODO: fix xai prompt formatting
|
|
22
|
+
}
|
|
23
|
+
async _formatPrompt(segments, opts) {
|
|
24
|
+
const options = {
|
|
25
|
+
multimodal: opts.model.includes("vision"),
|
|
26
|
+
schema: opts.result_schema,
|
|
27
|
+
useToolForFormatting: false,
|
|
28
|
+
};
|
|
29
|
+
const p = await formatOpenAILikeMultimodalPrompt(segments, { ...options, ...opts });
|
|
30
|
+
return p;
|
|
31
|
+
}
|
|
32
|
+
// Note: We intentionally do NOT override extractDataFromResponse here.
|
|
33
|
+
// The base class implementation properly handles tool_calls extraction.
|
|
34
|
+
// xAI's API is OpenAI-compatible and returns tool_calls in the same format.
|
|
35
|
+
async listModels() {
|
|
36
|
+
const [lm, em] = await Promise.all([
|
|
37
|
+
this.xai_service.get("/language-models"),
|
|
38
|
+
this.xai_service.get("/embedding-models")
|
|
39
|
+
]);
|
|
40
|
+
em.models.forEach(m => {
|
|
41
|
+
m.output_modalities.push("vectors");
|
|
42
|
+
});
|
|
43
|
+
const models = [...lm.models, ...em.models].map(model => {
|
|
44
|
+
return {
|
|
45
|
+
id: model.id,
|
|
46
|
+
provider: this.provider,
|
|
47
|
+
name: model.id,
|
|
48
|
+
description: `${model.id} by ${model.owned_by}`,
|
|
49
|
+
is_multimodal: model.input_modalities.length > 1,
|
|
50
|
+
input_modalities: model.input_modalities,
|
|
51
|
+
output_modalities: model.output_modalities,
|
|
52
|
+
tags: [...model.input_modalities.map(m => `i:${m}`), ...model.output_modalities.map(m => `o:${m}`)],
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
return models;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/xai/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, ModelSearchPayload, PromptSegment } from "@llumiverse/core";
|
|
2
|
+
interface FireflySize {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
}
|
|
6
|
+
export interface FireflyDriverOptions extends DriverOptions {
|
|
7
|
+
/**
|
|
8
|
+
* Adobe Firefly API key
|
|
9
|
+
*/
|
|
10
|
+
apiKey: string;
|
|
11
|
+
/**
|
|
12
|
+
* Optional API endpoint override
|
|
13
|
+
*/
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare class FireflyDriver extends AbstractDriver<FireflyDriverOptions> {
|
|
17
|
+
static PROVIDER: string;
|
|
18
|
+
provider: string;
|
|
19
|
+
private readonly endpoint;
|
|
20
|
+
constructor(options: FireflyDriverOptions);
|
|
21
|
+
requestTextCompletion(_prompt: string, _options: ExecutionOptions): Promise<Completion>;
|
|
22
|
+
requestTextCompletionStream(_prompt: string, _options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
|
|
23
|
+
requestImageGeneration(segments: PromptSegment[], options: ExecutionOptions): Promise<Completion>;
|
|
24
|
+
mapSize(size?: string): FireflySize;
|
|
25
|
+
listModels(_params?: ModelSearchPayload): Promise<AIModel[]>;
|
|
26
|
+
validateConnection(): Promise<boolean>;
|
|
27
|
+
generateEmbeddings(_options: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=firefly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firefly.d.ts","sourceRoot":"","sources":["../../../src/adobe/firefly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAsBvM,UAAU,WAAW;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AA+BD,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACvD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,oBAAoB,CAAC;IACnE,MAAM,CAAC,QAAQ,SAAa;IAC5B,QAAQ,SAA0B;IAElC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,EAAE,oBAAoB;IAUnC,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIvF,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAIvH,sBAAsB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuDvG,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAQ7B,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA0B5D,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IActC,kBAAkB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGnF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { TokenCredential } from "@azure/identity";
|
|
2
|
+
import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, Providers } from "@llumiverse/core";
|
|
3
|
+
import { AIProjectClient, ModelDeployment } from '@azure/ai-projects';
|
|
4
|
+
import type OpenAI from "openai";
|
|
5
|
+
import type { ChatRequestMessage } from "@azure-rest/ai-inference";
|
|
6
|
+
type ResponseInputItem = OpenAI.Responses.ResponseInputItem;
|
|
7
|
+
export interface AzureFoundryDriverOptions extends DriverOptions {
|
|
8
|
+
/**
|
|
9
|
+
* The credentials to use to access Azure AI Foundry
|
|
10
|
+
*/
|
|
11
|
+
azureADTokenProvider?: TokenCredential;
|
|
12
|
+
endpoint?: string;
|
|
13
|
+
apiVersion?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface AzureFoundryInferencePrompt {
|
|
16
|
+
messages: ChatRequestMessage[];
|
|
17
|
+
}
|
|
18
|
+
export interface AzureFoundryOpenAIPrompt {
|
|
19
|
+
messages: ResponseInputItem[];
|
|
20
|
+
}
|
|
21
|
+
export type AzureFoundryPrompt = AzureFoundryInferencePrompt | AzureFoundryOpenAIPrompt;
|
|
22
|
+
export declare class AzureFoundryDriver extends AbstractDriver<AzureFoundryDriverOptions, ResponseInputItem[]> {
|
|
23
|
+
service: AIProjectClient;
|
|
24
|
+
readonly provider = Providers.azure_foundry;
|
|
25
|
+
OPENAI_API_VERSION: string;
|
|
26
|
+
INFERENCE_API_VERSION: string;
|
|
27
|
+
constructor(opts: AzureFoundryDriverOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Get default authentication for Azure AI Foundry API
|
|
30
|
+
*/
|
|
31
|
+
getDefaultAIFoundryAuth(): () => Promise<string>;
|
|
32
|
+
isOpenAIDeployment(model: string): Promise<boolean>;
|
|
33
|
+
protected canStream(_options: ExecutionOptions): Promise<boolean>;
|
|
34
|
+
requestTextCompletion(prompt: ResponseInputItem[], options: ExecutionOptions): Promise<Completion>;
|
|
35
|
+
requestTextCompletionStream(prompt: ResponseInputItem[], options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
|
|
36
|
+
private processStreamResponse;
|
|
37
|
+
private extractDataFromResponse;
|
|
38
|
+
private convertFinishReason;
|
|
39
|
+
validateConnection(): Promise<boolean>;
|
|
40
|
+
generateEmbeddings(options: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
41
|
+
generateTextEmbeddings(options: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
42
|
+
generateImageEmbeddings(options: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
43
|
+
listModels(): Promise<AIModel[]>;
|
|
44
|
+
_listModels(filter?: (m: ModelDeployment) => boolean): Promise<AIModel[]>;
|
|
45
|
+
}
|
|
46
|
+
export declare function parseAzureFoundryModelId(compositeId: string): {
|
|
47
|
+
deploymentName: string;
|
|
48
|
+
baseModel: string;
|
|
49
|
+
};
|
|
50
|
+
export declare function isCompositeModelId(modelId: string): boolean;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=azure_foundry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure_foundry.d.ts","sourceRoot":"","sources":["../../../src/azure/azure_foundry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAgD,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7N,OAAO,EAAE,eAAe,EAAmB,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvF,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAGR,kBAAkB,EACrB,MAAM,0BAA0B,CAAC;AAKlC,KAAK,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;AAE5D,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC5D;;OAEG;IACH,oBAAoB,CAAC,EAAE,eAAe,CAAC;IAEvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IACxC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,iBAAiB,EAAE,CAAA;CAChC;AAED,MAAM,MAAM,kBAAkB,GAAG,2BAA2B,GAAG,wBAAwB,CAAA;AAEvF,qBAAa,kBAAmB,SAAQ,cAAc,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,CAAC;IAClG,OAAO,EAAE,eAAe,CAAC;IACzB,QAAQ,CAAC,QAAQ,2BAA2B;IAE5C,kBAAkB,SAAwB;IAC1C,qBAAqB,SAAwB;gBAEjC,IAAI,EAAE,yBAAyB;IAgC3C;;OAEG;IACH,uBAAuB;IAMjB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAezD,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3D,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA0ClG,2BAA2B,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;YA+CzH,qBAAqB;IAwCpC,OAAO,CAAC,uBAAuB;IAsC/B,OAAO,CAAC,mBAAmB;IAWrB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAuBtC,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAczE,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqC7E,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAkC9E,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQhC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,eAAe,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CA6ClF;AAGD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAc3G;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ConverseRequest, Message, SystemContentBlock } from "@aws-sdk/client-bedrock-runtime";
|
|
2
|
+
import { ExecutionOptions, PromptSegment } from "@llumiverse/core";
|
|
3
|
+
export declare function converseConcatMessages(messages: Message[] | undefined): Message[];
|
|
4
|
+
export declare function converseSystemToMessages(system: SystemContentBlock[]): Message;
|
|
5
|
+
export declare function converseRemoveJSONprefill(messages: Message[] | undefined): Message[];
|
|
6
|
+
export declare function converseJSONprefill(messages: Message[] | undefined): Message[];
|
|
7
|
+
export declare function formatConversePrompt(segments: PromptSegment[], options: ExecutionOptions): Promise<ConverseRequest>;
|
|
8
|
+
//# sourceMappingURL=converse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converse.d.ts","sourceRoot":"","sources":["../../../src/bedrock/converse.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,eAAe,EACf,OAAO,EACP,kBAAkB,EAErB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAc,gBAAgB,EAAc,aAAa,EAA8C,MAAM,kBAAkB,CAAC;AAoNvI,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CA0BjF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAK9E;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAQpF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAW9E;AAQD,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkGzH"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { Bedrock, FoundationModelSummary } from "@aws-sdk/client-bedrock";
|
|
2
|
+
import { BedrockRuntime, ConverseRequest, ConverseResponse, ConverseStreamOutput, Message } from "@aws-sdk/client-bedrock-runtime";
|
|
3
|
+
import { AwsCredentialIdentity, Provider } from "@aws-sdk/types";
|
|
4
|
+
import { AbstractDriver, AIModel, Completion, CompletionChunkObject, DataSource, DriverOptions, EmbeddingsOptions, EmbeddingsResult, ExecutionOptions, LlumiverseError, LlumiverseErrorContext, PromptSegment, TrainingJob, TrainingOptions } from "@llumiverse/core";
|
|
5
|
+
import { NovaMessagesPrompt } from "@llumiverse/core/formatters";
|
|
6
|
+
import { TwelvelabsPegasusRequest } from "./twelvelabs.js";
|
|
7
|
+
export interface BedrockModelCapabilities {
|
|
8
|
+
name: string;
|
|
9
|
+
canStream: boolean;
|
|
10
|
+
}
|
|
11
|
+
export interface BedrockDriverOptions extends DriverOptions {
|
|
12
|
+
/**
|
|
13
|
+
* The AWS region
|
|
14
|
+
*/
|
|
15
|
+
region: string;
|
|
16
|
+
/**
|
|
17
|
+
* The bucket name to be used for training.
|
|
18
|
+
* It will be created if does not already exist.
|
|
19
|
+
*/
|
|
20
|
+
training_bucket?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The role ARN to be used for training
|
|
23
|
+
*/
|
|
24
|
+
training_role_arn?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The credentials to use to access AWS
|
|
27
|
+
*/
|
|
28
|
+
credentials?: AwsCredentialIdentity | Provider<AwsCredentialIdentity>;
|
|
29
|
+
}
|
|
30
|
+
export type BedrockPrompt = NovaMessagesPrompt | ConverseRequest | TwelvelabsPegasusRequest;
|
|
31
|
+
export declare class BedrockDriver extends AbstractDriver<BedrockDriverOptions, BedrockPrompt> {
|
|
32
|
+
static PROVIDER: string;
|
|
33
|
+
provider: string;
|
|
34
|
+
private _executor?;
|
|
35
|
+
private _service?;
|
|
36
|
+
private _service_region?;
|
|
37
|
+
constructor(options: BedrockDriverOptions);
|
|
38
|
+
getExecutor(): BedrockRuntime;
|
|
39
|
+
getService(region?: string): Bedrock;
|
|
40
|
+
protected formatPrompt(segments: PromptSegment[], opts: ExecutionOptions): Promise<BedrockPrompt>;
|
|
41
|
+
/**
|
|
42
|
+
* Format AWS Bedrock errors into LlumiverseError with proper status codes and retryability.
|
|
43
|
+
*
|
|
44
|
+
* AWS SDK errors provide:
|
|
45
|
+
* - error.name: The exception type (e.g., "ThrottlingException")
|
|
46
|
+
* - error.$metadata.httpStatusCode: The HTTP status code
|
|
47
|
+
* - error.$metadata.requestId: The AWS request ID for tracking
|
|
48
|
+
* - error.$fault: "client" or "server" indicating error category
|
|
49
|
+
*
|
|
50
|
+
* @param error - The AWS SDK error
|
|
51
|
+
* @param context - Context about where the error occurred
|
|
52
|
+
* @returns A standardized LlumiverseError
|
|
53
|
+
*/
|
|
54
|
+
formatLlumiverseError(error: unknown, context: LlumiverseErrorContext): LlumiverseError;
|
|
55
|
+
/**
|
|
56
|
+
* Determine if a Bedrock error is retryable based on error type and status.
|
|
57
|
+
*
|
|
58
|
+
* Retryable errors:
|
|
59
|
+
* - ThrottlingException: Rate limit exceeded, retry with backoff
|
|
60
|
+
* - ServiceUnavailableException: Service temporarily down
|
|
61
|
+
* - InternalServerException: Server-side error
|
|
62
|
+
* - ServiceQuotaExceededException: Quota exhausted, may recover
|
|
63
|
+
* - 5xx status codes: Server errors
|
|
64
|
+
* - 429, 408 status codes: Rate limit, timeout
|
|
65
|
+
*
|
|
66
|
+
* Non-retryable errors:
|
|
67
|
+
* - ValidationException: Invalid request parameters
|
|
68
|
+
* - AccessDeniedException: Authentication/authorization failure
|
|
69
|
+
* - ResourceNotFoundException: Resource doesn't exist
|
|
70
|
+
* - ConflictException: Resource state conflict
|
|
71
|
+
* - ResourceInUseException: Resource locked by another operation
|
|
72
|
+
* - 4xx status codes (except 429, 408): Client errors
|
|
73
|
+
*
|
|
74
|
+
* @param errorName - The AWS error name (e.g., "ThrottlingException")
|
|
75
|
+
* @param httpStatusCode - The HTTP status code if available
|
|
76
|
+
* @param fault - The fault type ("client" or "server")
|
|
77
|
+
* @returns True if retryable, false if not retryable, undefined if unknown
|
|
78
|
+
*/
|
|
79
|
+
private isBedrockErrorRetryable;
|
|
80
|
+
getExtractedExecution(result: ConverseResponse, _prompt?: BedrockPrompt, options?: ExecutionOptions): CompletionChunkObject;
|
|
81
|
+
getExtractedStream(result: ConverseStreamOutput, _prompt?: BedrockPrompt, options?: ExecutionOptions): CompletionChunkObject;
|
|
82
|
+
extractRegion(modelString: string, defaultRegion: string): string;
|
|
83
|
+
private getCanStream;
|
|
84
|
+
protected canStream(options: ExecutionOptions): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Build conversation context after streaming completion.
|
|
87
|
+
* Reconstructs the assistant message from accumulated results and applies stripping.
|
|
88
|
+
*/
|
|
89
|
+
buildStreamingConversation(prompt: BedrockPrompt, result: unknown[], toolUse: unknown[] | undefined, options: ExecutionOptions): ConverseRequest | undefined;
|
|
90
|
+
requestTextCompletion(prompt: BedrockPrompt, options: ExecutionOptions): Promise<Completion>;
|
|
91
|
+
private requestTwelvelabsPegasusCompletion;
|
|
92
|
+
private requestTwelvelabsPegasusCompletionStream;
|
|
93
|
+
requestTextCompletionStream(prompt: BedrockPrompt, options: ExecutionOptions): Promise<AsyncIterable<CompletionChunkObject>>;
|
|
94
|
+
preparePayload(prompt: ConverseRequest, options: ExecutionOptions): ConverseRequest;
|
|
95
|
+
protected isImageModel(model: string): boolean;
|
|
96
|
+
requestImageGeneration(prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<Completion>;
|
|
97
|
+
startTraining(dataset: DataSource, options: TrainingOptions): Promise<TrainingJob>;
|
|
98
|
+
cancelTraining(jobId: string): Promise<TrainingJob>;
|
|
99
|
+
getTrainingJob(jobId: string): Promise<TrainingJob>;
|
|
100
|
+
validateConnection(): Promise<boolean>;
|
|
101
|
+
listTrainableModels(): Promise<AIModel<string>[]>;
|
|
102
|
+
listModels(): Promise<AIModel[]>;
|
|
103
|
+
_listModels(foundationFilter?: (m: FoundationModelSummary) => boolean): Promise<AIModel[]>;
|
|
104
|
+
generateEmbeddings({ text, image, model }: EmbeddingsOptions): Promise<EmbeddingsResult>;
|
|
105
|
+
private generateTwelvelabsMarengoEmbeddings;
|
|
106
|
+
/**
|
|
107
|
+
* Cleanup AWS SDK clients when the driver is evicted from the cache.
|
|
108
|
+
*/
|
|
109
|
+
destroy(): void;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Checks whether any message contains toolUse or toolResult content blocks.
|
|
113
|
+
*/
|
|
114
|
+
export declare function messagesContainToolBlocks(messages: Message[]): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Converts toolUse and toolResult content blocks to text representations.
|
|
117
|
+
* This preserves the tool call information in the conversation while removing
|
|
118
|
+
* the structured tool blocks that require Bedrock's toolConfig to be set.
|
|
119
|
+
*
|
|
120
|
+
* Used when no tools are provided (e.g. checkpoint summary calls) but the
|
|
121
|
+
* conversation history contains tool interactions from prior turns.
|
|
122
|
+
*/
|
|
123
|
+
export declare function convertToolBlocksToText(messages: Message[]): Message[];
|
|
124
|
+
/**
|
|
125
|
+
* Fix orphaned toolUse blocks in the conversation.
|
|
126
|
+
*
|
|
127
|
+
* When an agent is stopped mid-tool-execution, the assistant message contains toolUse blocks
|
|
128
|
+
* but no corresponding toolResult was added. The AWS Converse API requires that every toolUse
|
|
129
|
+
* must be followed by a toolResult in the next user message.
|
|
130
|
+
*
|
|
131
|
+
* This function detects such cases and injects synthetic toolResult blocks indicating
|
|
132
|
+
* the tools were interrupted, allowing the conversation to continue.
|
|
133
|
+
*/
|
|
134
|
+
export declare function fixOrphanedToolUse(messages: Message[]): Message[];
|
|
135
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bedrock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EAAsC,sBAAsB,EAEtE,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAgB,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAA0B,OAAO,EAAQ,MAAM,iCAAiC,CAAC;AAE/K,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACH,cAAc,EAAE,OAAO,EAIvB,UAAU,EAAE,qBAAqB,EAEjC,UAAU,EAEV,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAClD,gBAAgB,EAKhB,eAAe,EAAE,sBAAsB,EAIvC,aAAa,EAIiC,WAAW,EAAqB,eAAe,EAEhG,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAoB,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKnF,OAAO,EAIH,wBAAwB,EAC3B,MAAM,iBAAiB,CAAC;AAsBzB,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAqB,SAAQ,aAAa;IACvD;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;CACzE;AAqDD,MAAM,MAAM,aAAa,GAAG,kBAAkB,GAAG,eAAe,GAAG,wBAAwB,CAAC;AAE5F,qBAAa,aAAc,SAAQ,cAAc,CAAC,oBAAoB,EAAE,aAAa,CAAC;IAElF,MAAM,CAAC,QAAQ,SAAa;IAE5B,QAAQ,SAA0B;IAElC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,OAAO,EAAE,oBAAoB;IAOzC,WAAW;IAUX,UAAU,CAAC,MAAM,GAAE,MAA4B;cAW/B,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAUvG;;;;;;;;;;;;OAYG;IACI,qBAAqB,CACxB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,sBAAsB,GAChC,eAAe;IAyDlB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,OAAO,CAAC,uBAAuB;IAwC/B,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,qBAAqB;IAqD3H,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,qBAAqB;IA8E5H,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;YAgBnD,YAAY;cA2CV,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBtE;;;OAGG;IACH,0BAA0B,CACtB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,EAAE,OAAO,EAAE,GAAG,SAAS,EAC9B,OAAO,EAAE,gBAAgB,GAC1B,eAAe,GAAG,SAAS;IAgFxB,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;YAgFpF,kCAAkC;YAkClC,wCAAwC;IAuDhD,2BAA2B,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAmClI,cAAc,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB;IAmLjE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIxC,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwClG,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;IAuClF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAYnD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAWnD,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAQtC,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAKjD,UAAU,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAQhC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAmK1F,kBAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YA2ChF,mCAAmC;IA6CjD;;OAEG;IACH,OAAO,IAAI,IAAI;CAIlB;AA0CD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAWtE;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CA2CtE;AAiDD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAoFjE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ExecutionOptions } from "@llumiverse/core";
|
|
2
|
+
import { NovaMessagesPrompt } from "@llumiverse/core/formatters";
|
|
3
|
+
export declare function formatNovaImageGenerationPayload(taskType: string, prompt: NovaMessagesPrompt, options: ExecutionOptions): Promise<NovaTextToImagePayload> | Promise<NovaImageVariationPayload> | Promise<NovaColorGuidedGenerationPayload> | Promise<NovaBackgroundRemovalPayload> | Promise<NovaInpaintingPayload> | Promise<NovaOutpaintingPayload>;
|
|
4
|
+
export interface InvokeModelPayloadBase {
|
|
5
|
+
taskType: NovaImageGenerationTaskType;
|
|
6
|
+
imageGenerationConfig: {
|
|
7
|
+
width?: number;
|
|
8
|
+
height?: number;
|
|
9
|
+
quality?: "standard" | "premium";
|
|
10
|
+
cfgScale?: number;
|
|
11
|
+
seed?: number;
|
|
12
|
+
numberOfImages?: number;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export interface NovaTextToImagePayload extends InvokeModelPayloadBase {
|
|
16
|
+
textToImageParams: {
|
|
17
|
+
conditionImage?: string;
|
|
18
|
+
controlMode?: "CANNY_EDGE" | "SEGMENTATION";
|
|
19
|
+
controlStrength?: number;
|
|
20
|
+
text: string;
|
|
21
|
+
negativeText?: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface NovaImageVariationPayload extends InvokeModelPayloadBase {
|
|
25
|
+
imageVariationParams: {
|
|
26
|
+
images: string[];
|
|
27
|
+
similarityStrength?: number;
|
|
28
|
+
text?: string;
|
|
29
|
+
negativeText?: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export interface NovaColorGuidedGenerationPayload extends InvokeModelPayloadBase {
|
|
33
|
+
colorGuidedGenerationParams: {
|
|
34
|
+
colors: string[];
|
|
35
|
+
text: string;
|
|
36
|
+
referenceImage?: string;
|
|
37
|
+
negativeText?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface NovaInpaintingPayload extends InvokeModelPayloadBase {
|
|
41
|
+
inPaintingParams: {
|
|
42
|
+
image: string;
|
|
43
|
+
maskImage?: string;
|
|
44
|
+
maskPrompt?: string;
|
|
45
|
+
negativeText?: string;
|
|
46
|
+
text?: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export interface NovaOutpaintingPayload extends InvokeModelPayloadBase {
|
|
50
|
+
outPaintingParams: {
|
|
51
|
+
image: string;
|
|
52
|
+
maskImage?: string;
|
|
53
|
+
maskPrompt?: string;
|
|
54
|
+
negativeText?: string;
|
|
55
|
+
text?: string;
|
|
56
|
+
outPaintingMode: "DEFAULT" | "PRECISE";
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface NovaBackgroundRemovalPayload {
|
|
60
|
+
taskType: NovaImageGenerationTaskType.BACKGROUND_REMOVAL;
|
|
61
|
+
backgroundRemovalParams: {
|
|
62
|
+
image: string;
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export declare enum NovaImageGenerationTaskType {
|
|
66
|
+
TEXT_IMAGE = "TEXT_IMAGE",
|
|
67
|
+
TEXT_IMAGE_WITH_IMAGE_CONDITIONING = "TEXT_IMAGE_WITH_IMAGE_CONDITIONING",
|
|
68
|
+
COLOR_GUIDED_GENERATION = "COLOR_GUIDED_GENERATION",
|
|
69
|
+
IMAGE_VARIATION = "IMAGE_VARIATION",
|
|
70
|
+
INPAINTING = "INPAINTING",
|
|
71
|
+
OUTPAINTING = "OUTPAINTING",
|
|
72
|
+
BACKGROUND_REMOVAL = "BACKGROUND_REMOVAL"
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=nova-image-payload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nova-image-payload.d.ts","sourceRoot":"","sources":["../../../src/bedrock/nova-image-payload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAe,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AA8M9E,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,+NAqBvH;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,qBAAqB,EAAE;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;QACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,iBAAiB,EAAE;QACf,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,YAAY,GAAG,cAAc,CAAC;QAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACL;AAGD,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACrE,oBAAoB,EAAE;QAClB,MAAM,EAAE,MAAM,EAAE,CAAA;QAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAA;KACxB,CAAA;CACJ;AAED,MAAM,WAAW,gCAAiC,SAAQ,sBAAsB;IAC5E,2BAA2B,EAAE;QACzB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAA;CACJ;AAED,MAAM,WAAW,qBAAsB,SAAQ,sBAAsB;IACjE,gBAAgB,EAAE;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAA;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IAClE,iBAAiB,EAAE;QACf,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;KAC1C,CAAA;CACJ;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;IACzD,uBAAuB,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;KAChB,CAAA;CACJ;AAED,oBAAY,2BAA2B;IACnC,UAAU,eAAe;IACzB,kCAAkC,uCAAuC;IACzE,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,kBAAkB,uBAAuB;CAC5C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NovaMessagesPrompt } from "@llumiverse/core/formatters";
|
|
2
|
+
export interface NovaPayload extends NovaMessagesPrompt {
|
|
3
|
+
schemaVersion: string;
|
|
4
|
+
inferenceConfig?: {
|
|
5
|
+
max_new_tokens?: number;
|
|
6
|
+
temperature?: number;
|
|
7
|
+
top_p?: number;
|
|
8
|
+
top_k?: number;
|
|
9
|
+
stopSequences?: [string];
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=payloads.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payloads.d.ts","sourceRoot":"","sources":["../../../src/bedrock/payloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,MAAM,WAAW,WAAY,SAAQ,kBAAkB;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,aAAa,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;KAC3B,CAAA;CACJ"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
2
|
+
import { Progress } from "@aws-sdk/lib-storage";
|
|
3
|
+
export declare function doesBucketExist(s3: S3Client, bucketName: string): Promise<boolean>;
|
|
4
|
+
export declare function createBucket(s3: S3Client, bucketName: string): Promise<import("@aws-sdk/client-s3").CreateBucketCommandOutput>;
|
|
5
|
+
export declare function tryCreateBucket(s3: S3Client, bucketName: string): Promise<import("@aws-sdk/client-s3").CreateBucketCommandOutput | undefined>;
|
|
6
|
+
export declare function uploadFile(s3: S3Client, source: ReadableStream, bucketName: string, file: string, onProgress?: (progress: Progress) => void): Promise<import("@aws-sdk/client-s3").CompleteMultipartUploadCommandOutput>;
|
|
7
|
+
/**
|
|
8
|
+
* Create the bucket if not already exists and then upload the file.
|
|
9
|
+
* @param s3
|
|
10
|
+
* @param source
|
|
11
|
+
* @param bucketName
|
|
12
|
+
* @param file
|
|
13
|
+
* @param onProgress
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
export declare function forceUploadFile(s3: S3Client, source: ReadableStream, bucketName: string, file: string, onProgress?: (progress: Progress) => void): Promise<import("@aws-sdk/client-s3").CompleteMultipartUploadCommandOutput>;
|
|
17
|
+
/**
|
|
18
|
+
* Parse an S3 HTTPS URL into an S3 URI format
|
|
19
|
+
* s3Url - The S3 HTTPS URL (e.g., https://bucket.s3.region.amazonaws.com/key)
|
|
20
|
+
* returns The S3 URI (e.g., s3://bucket/key)
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseS3UrlToUri(s3Url: URL): string;
|
|
23
|
+
//# sourceMappingURL=s3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../src/bedrock/s3.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAU,MAAM,sBAAsB,CAAC;AAExD,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAUxF;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mEAI5D;AAGD,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,+EAKrE;AAGD,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,8EAejJ;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,8EAItJ;AAGD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,UAwCzC"}
|