@nodetool-ai/runtime 0.7.0-rc.21 → 0.7.0-rc.22
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import OpenAI from "openai";
|
|
2
2
|
import { OpenAIProvider } from "./openai-provider.js";
|
|
3
|
-
import type { LanguageModel } from "./types.js";
|
|
3
|
+
import type { ASRModel, EmbeddingModel, EncodedAudioResult, ImageModel, ImageToImageParams, ImageToVideoParams, LanguageModel, StreamingAudioChunk, TextToImageParams, TextToVideoParams, TTSModel, VideoModel } from "./types.js";
|
|
4
4
|
interface TogetherProviderOptions {
|
|
5
5
|
client?: OpenAI;
|
|
6
6
|
clientFactory?: (apiKey: string) => OpenAI;
|
|
@@ -15,6 +15,72 @@ export declare class TogetherProvider extends OpenAIProvider {
|
|
|
15
15
|
getContainerEnv(): Record<string, string>;
|
|
16
16
|
hasToolSupport(_model: string): Promise<boolean>;
|
|
17
17
|
getAvailableLanguageModels(): Promise<LanguageModel[]>;
|
|
18
|
+
getAvailableImageModels(): Promise<ImageModel[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Text-to-image generation via Together's `/v1/images/generations` endpoint.
|
|
21
|
+
* Uses Together's native `width` / `height` params rather than OpenAI's
|
|
22
|
+
* combined `size` string so we can pass the full resolution range.
|
|
23
|
+
*/
|
|
24
|
+
textToImage(params: TextToImageParams): Promise<Uint8Array>;
|
|
25
|
+
/**
|
|
26
|
+
* Image-to-image editing via Together's Kontext models.
|
|
27
|
+
* The image is encoded as a base64 data URI and passed as `image_url`.
|
|
28
|
+
* This requires a model that supports the `image_url` parameter
|
|
29
|
+
* (e.g. FLUX.1-kontext-pro, FLUX.1-kontext-max, FLUX.2-pro/dev/flex).
|
|
30
|
+
*/
|
|
31
|
+
imageToImage(image: Uint8Array, params: ImageToImageParams): Promise<Uint8Array>;
|
|
32
|
+
getAvailableTTSModels(): Promise<TTSModel[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Stream TTS audio as raw PCM Int16 samples.
|
|
35
|
+
* Together's `/v1/audio/speech` endpoint uses "wav" / "mp3" / "raw" rather
|
|
36
|
+
* than OpenAI's "pcm" label, so we request "wav" and strip the header.
|
|
37
|
+
*/
|
|
38
|
+
textToSpeech(args: {
|
|
39
|
+
text: string;
|
|
40
|
+
model: string;
|
|
41
|
+
voice?: string;
|
|
42
|
+
speed?: number;
|
|
43
|
+
audioFormat?: string;
|
|
44
|
+
}): AsyncGenerator<StreamingAudioChunk>;
|
|
45
|
+
/**
|
|
46
|
+
* Return fully-encoded TTS audio (mp3, wav, or mulaw).
|
|
47
|
+
* Returns `null` for unsupported formats so the caller falls back to the
|
|
48
|
+
* streaming PCM path.
|
|
49
|
+
*/
|
|
50
|
+
textToSpeechEncoded(args: {
|
|
51
|
+
text: string;
|
|
52
|
+
model: string;
|
|
53
|
+
voice?: string;
|
|
54
|
+
speed?: number;
|
|
55
|
+
audioFormat?: string;
|
|
56
|
+
}): Promise<EncodedAudioResult | null>;
|
|
57
|
+
getAvailableASRModels(): Promise<ASRModel[]>;
|
|
58
|
+
getAvailableEmbeddingModels(): Promise<EmbeddingModel[]>;
|
|
59
|
+
getAvailableVideoModels(): Promise<VideoModel[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Map generic resolution / aspect-ratio hints to concrete pixel dimensions
|
|
62
|
+
* suitable for Together's video API.
|
|
63
|
+
*/
|
|
64
|
+
private resolveVideoDimensions;
|
|
65
|
+
/**
|
|
66
|
+
* Poll Together's video job endpoint until it reaches a terminal state.
|
|
67
|
+
* Returns the final response payload.
|
|
68
|
+
*/
|
|
69
|
+
private pollVideoJob;
|
|
70
|
+
/**
|
|
71
|
+
* Download a completed video from its signed URL and return the raw bytes.
|
|
72
|
+
*/
|
|
73
|
+
private downloadVideo;
|
|
74
|
+
/**
|
|
75
|
+
* Text-to-video generation via Together's asynchronous `/v2/videos` API.
|
|
76
|
+
* Submits the job then polls until completion, returning the raw video bytes.
|
|
77
|
+
*/
|
|
78
|
+
textToVideo(params: TextToVideoParams): Promise<Uint8Array>;
|
|
79
|
+
/**
|
|
80
|
+
* Image-to-video generation via Together's asynchronous `/v2/videos` API.
|
|
81
|
+
* The first frame is supplied as a base64-encoded image in `frame_images`.
|
|
82
|
+
*/
|
|
83
|
+
imageToVideo(image: Uint8Array, params: ImageToVideoParams): Promise<Uint8Array>;
|
|
18
84
|
}
|
|
19
85
|
export {};
|
|
20
86
|
//# sourceMappingURL=together-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"together-provider.d.ts","sourceRoot":"","sources":["../../src/providers/together-provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"together-provider.d.ts","sourceRoot":"","sources":["../../src/providers/together-provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,UAAU,uBAAuB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AA6UD,qBAAa,gBAAiB,SAAQ,cAAc;WAClC,eAAe,IAAI,MAAM,EAAE;IAI3C,OAAO,CAAC,cAAc,CAAe;gBAGnC,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,EACtC,OAAO,GAAE,uBAA4B;IA4B9B,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAInC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMhD,0BAA0B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAqCtD,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI/D;;;;OAIG;IACY,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IA2D1E;;;;;OAKG;IACY,YAAY,CACzB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC;IAmEP,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAI3D;;;;OAIG;IACa,YAAY,CAAC,IAAI,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,cAAc,CAAC,mBAAmB,CAAC;IAoCvC;;;;OAIG;IACY,mBAAmB,CAAC,IAAI,EAAE;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA+CvB,qBAAqB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAU5C,2BAA2B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IASxD,uBAAuB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI/D;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAuC9B;;;OAGG;YACW,YAAY;IA4C1B;;OAEG;YACW,aAAa;IAoB3B;;;OAGG;IACY,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAuD1E;;;OAGG;IACY,YAAY,CACzB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,UAAU,CAAC;CA0DvB"}
|
|
@@ -1,5 +1,314 @@
|
|
|
1
1
|
import OpenAI from "openai";
|
|
2
2
|
import { OpenAIProvider } from "./openai-provider.js";
|
|
3
|
+
// ─── Static model catalogs ────────────────────────────────────────────────────
|
|
4
|
+
// Sources: https://github.com/togethercomputer/skills
|
|
5
|
+
const TOGETHER_IMAGE_MODELS = [
|
|
6
|
+
{
|
|
7
|
+
id: "black-forest-labs/FLUX.1-schnell",
|
|
8
|
+
name: "FLUX.1 Schnell",
|
|
9
|
+
provider: "together",
|
|
10
|
+
supportedTasks: ["text_to_image"]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
id: "black-forest-labs/FLUX.1.1-pro",
|
|
14
|
+
name: "FLUX.1.1 Pro",
|
|
15
|
+
provider: "together",
|
|
16
|
+
supportedTasks: ["text_to_image"]
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "black-forest-labs/FLUX.2-pro",
|
|
20
|
+
name: "FLUX.2 Pro",
|
|
21
|
+
provider: "together",
|
|
22
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: "black-forest-labs/FLUX.2-dev",
|
|
26
|
+
name: "FLUX.2 Dev",
|
|
27
|
+
provider: "together",
|
|
28
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "black-forest-labs/FLUX.2-flex",
|
|
32
|
+
name: "FLUX.2 Flex",
|
|
33
|
+
provider: "together",
|
|
34
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "black-forest-labs/FLUX.1-kontext-pro",
|
|
38
|
+
name: "FLUX.1 Kontext Pro",
|
|
39
|
+
provider: "together",
|
|
40
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "black-forest-labs/FLUX.1-kontext-max",
|
|
44
|
+
name: "FLUX.1 Kontext Max",
|
|
45
|
+
provider: "together",
|
|
46
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "google/imagen-4.0-preview",
|
|
50
|
+
name: "Imagen 4.0 Preview",
|
|
51
|
+
provider: "together",
|
|
52
|
+
supportedTasks: ["text_to_image"]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
id: "google/imagen-4.0-fast",
|
|
56
|
+
name: "Imagen 4.0 Fast",
|
|
57
|
+
provider: "together",
|
|
58
|
+
supportedTasks: ["text_to_image"]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
id: "google/flash-image-2.5",
|
|
62
|
+
name: "Flash Image 2.5",
|
|
63
|
+
provider: "together",
|
|
64
|
+
supportedTasks: ["text_to_image"]
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
id: "google/gemini-3-pro-image",
|
|
68
|
+
name: "Gemini 3 Pro Image",
|
|
69
|
+
provider: "together",
|
|
70
|
+
supportedTasks: ["text_to_image", "image_to_image"]
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: "ideogram/ideogram-3.0",
|
|
74
|
+
name: "Ideogram 3.0",
|
|
75
|
+
provider: "together",
|
|
76
|
+
supportedTasks: ["text_to_image"]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "ByteDance-Seed/Seedream-4.0",
|
|
80
|
+
name: "Seedream 4.0",
|
|
81
|
+
provider: "together",
|
|
82
|
+
supportedTasks: ["text_to_image"]
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "ByteDance-Seed/Seedream-3.0",
|
|
86
|
+
name: "Seedream 3.0",
|
|
87
|
+
provider: "together",
|
|
88
|
+
supportedTasks: ["text_to_image"]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "stabilityai/stable-diffusion-3-medium",
|
|
92
|
+
name: "Stable Diffusion 3 Medium",
|
|
93
|
+
provider: "together",
|
|
94
|
+
supportedTasks: ["text_to_image"]
|
|
95
|
+
}
|
|
96
|
+
];
|
|
97
|
+
const TOGETHER_TTS_MODELS = [
|
|
98
|
+
{
|
|
99
|
+
id: "canopylabs/orpheus-3b-0.1-ft",
|
|
100
|
+
name: "Orpheus 3B",
|
|
101
|
+
provider: "together",
|
|
102
|
+
voices: ["tara", "leah", "jess", "leo", "dan", "mia", "zac", "zoe"]
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "hexgrad/Kokoro-82M",
|
|
106
|
+
name: "Kokoro 82M",
|
|
107
|
+
provider: "together",
|
|
108
|
+
voices: [
|
|
109
|
+
"af_heart",
|
|
110
|
+
"af_alloy",
|
|
111
|
+
"af_aoede",
|
|
112
|
+
"af_bella",
|
|
113
|
+
"af_jessica",
|
|
114
|
+
"af_kore",
|
|
115
|
+
"af_nicole",
|
|
116
|
+
"af_nova",
|
|
117
|
+
"af_river",
|
|
118
|
+
"af_sarah",
|
|
119
|
+
"af_sky",
|
|
120
|
+
"am_adam",
|
|
121
|
+
"am_echo",
|
|
122
|
+
"am_eric",
|
|
123
|
+
"am_fenrir",
|
|
124
|
+
"am_liam",
|
|
125
|
+
"am_michael",
|
|
126
|
+
"am_onyx",
|
|
127
|
+
"am_puck",
|
|
128
|
+
"am_santa",
|
|
129
|
+
"bf_alice",
|
|
130
|
+
"bf_emma",
|
|
131
|
+
"bf_isabella",
|
|
132
|
+
"bf_lily",
|
|
133
|
+
"bm_daniel",
|
|
134
|
+
"bm_fable",
|
|
135
|
+
"bm_george",
|
|
136
|
+
"bm_lewis"
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: "cartesia/sonic",
|
|
141
|
+
name: "Cartesia Sonic",
|
|
142
|
+
provider: "together",
|
|
143
|
+
voices: [
|
|
144
|
+
"friendly sidekick",
|
|
145
|
+
"reading lady",
|
|
146
|
+
"newsman",
|
|
147
|
+
"meditation lady",
|
|
148
|
+
"calm lady",
|
|
149
|
+
"helpful woman",
|
|
150
|
+
"laidback woman",
|
|
151
|
+
"professional woman"
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
];
|
|
155
|
+
const TOGETHER_ASR_MODELS = [
|
|
156
|
+
{
|
|
157
|
+
id: "openai/whisper-large-v3",
|
|
158
|
+
name: "Whisper Large v3",
|
|
159
|
+
provider: "together"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
id: "mistralai/Voxtral-Mini-3B-2507",
|
|
163
|
+
name: "Voxtral Mini 3B",
|
|
164
|
+
provider: "together"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: "nvidia/parakeet-tdt-0.6b-v3",
|
|
168
|
+
name: "Parakeet TDT 0.6B v3",
|
|
169
|
+
provider: "together"
|
|
170
|
+
}
|
|
171
|
+
];
|
|
172
|
+
const TOGETHER_EMBEDDING_MODELS = [
|
|
173
|
+
{
|
|
174
|
+
id: "intfloat/multilingual-e5-large-instruct",
|
|
175
|
+
name: "Multilingual E5 Large",
|
|
176
|
+
provider: "together",
|
|
177
|
+
dimensions: 1024
|
|
178
|
+
}
|
|
179
|
+
];
|
|
180
|
+
const TOGETHER_VIDEO_MODELS = [
|
|
181
|
+
{
|
|
182
|
+
id: "minimax/hailuo-02",
|
|
183
|
+
name: "MiniMax Hailuo 02",
|
|
184
|
+
provider: "together",
|
|
185
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
id: "minimax/video-01-director",
|
|
189
|
+
name: "MiniMax Video 01 Director",
|
|
190
|
+
provider: "together",
|
|
191
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "google/veo-3.0",
|
|
195
|
+
name: "Veo 3.0",
|
|
196
|
+
provider: "together",
|
|
197
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: "google/veo-3.0-audio",
|
|
201
|
+
name: "Veo 3.0 + Audio",
|
|
202
|
+
provider: "together",
|
|
203
|
+
supportedTasks: ["text_to_video"]
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: "google/veo-2.0",
|
|
207
|
+
name: "Veo 2.0",
|
|
208
|
+
provider: "together",
|
|
209
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
id: "openai/sora-2",
|
|
213
|
+
name: "Sora 2",
|
|
214
|
+
provider: "together",
|
|
215
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
id: "openai/sora-2-pro",
|
|
219
|
+
name: "Sora 2 Pro",
|
|
220
|
+
provider: "together",
|
|
221
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: "kwaivgI/kling-2.1-master",
|
|
225
|
+
name: "Kling 2.1 Master",
|
|
226
|
+
provider: "together",
|
|
227
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: "kwaivgI/kling-2.1-standard",
|
|
231
|
+
name: "Kling 2.1 Standard",
|
|
232
|
+
provider: "together",
|
|
233
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
id: "kwaivgI/kling-2.1-pro",
|
|
237
|
+
name: "Kling 2.1 Pro",
|
|
238
|
+
provider: "together",
|
|
239
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: "ByteDance/Seedance-1.0-pro",
|
|
243
|
+
name: "Seedance 1.0 Pro",
|
|
244
|
+
provider: "together",
|
|
245
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: "ByteDance/Seedance-1.0-lite",
|
|
249
|
+
name: "Seedance 1.0 Lite",
|
|
250
|
+
provider: "together",
|
|
251
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
id: "pixverse/pixverse-v5",
|
|
255
|
+
name: "PixVerse v5",
|
|
256
|
+
provider: "together",
|
|
257
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
id: "vidu/vidu-2.0",
|
|
261
|
+
name: "Vidu 2.0",
|
|
262
|
+
provider: "together",
|
|
263
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
id: "vidu/vidu-q1",
|
|
267
|
+
name: "Vidu Q1",
|
|
268
|
+
provider: "together",
|
|
269
|
+
supportedTasks: ["text_to_video", "image_to_video"]
|
|
270
|
+
}
|
|
271
|
+
];
|
|
272
|
+
// ─── WAV header parser ────────────────────────────────────────────────────────
|
|
273
|
+
/**
|
|
274
|
+
* Extract raw PCM Int16 samples and the sample rate from a WAV buffer.
|
|
275
|
+
* Handles non-standard chunk ordering by scanning for the "fmt " and "data"
|
|
276
|
+
* chunks rather than assuming a fixed 44-byte header.
|
|
277
|
+
*/
|
|
278
|
+
function parseWavPCM(bytes) {
|
|
279
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
280
|
+
let sampleRate = 24000; // Together's default sample rate for Orpheus/Kokoro (24 kHz)
|
|
281
|
+
let offset = 12; // Skip "RIFF", file-size, "WAVE"
|
|
282
|
+
while (offset + 8 <= bytes.byteLength) {
|
|
283
|
+
// Chunk IDs are ASCII — read as big-endian uint32 to compare with literals
|
|
284
|
+
const chunkId = view.getUint32(offset, false);
|
|
285
|
+
const chunkSize = view.getUint32(offset + 4, true);
|
|
286
|
+
if (chunkId === 0x666d7420 /* "fmt " */ && offset + 12 <= bytes.byteLength) {
|
|
287
|
+
sampleRate = view.getUint32(offset + 12, true);
|
|
288
|
+
}
|
|
289
|
+
else if (chunkId === 0x64617461 /* "data" */) {
|
|
290
|
+
const dataStart = offset + 8;
|
|
291
|
+
const dataEnd = Math.min(dataStart + chunkSize, bytes.byteLength);
|
|
292
|
+
const pcmBytes = bytes.slice(dataStart, dataEnd);
|
|
293
|
+
return {
|
|
294
|
+
samples: new Int16Array(pcmBytes.buffer, pcmBytes.byteOffset, Math.floor(pcmBytes.byteLength / 2)),
|
|
295
|
+
sampleRate
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
const advance = 8 + chunkSize + (chunkSize % 2 === 0 ? 0 : 1);
|
|
299
|
+
// Guard against malformed chunk sizes that would loop forever
|
|
300
|
+
if (advance > bytes.byteLength - offset)
|
|
301
|
+
break;
|
|
302
|
+
offset += advance;
|
|
303
|
+
}
|
|
304
|
+
// Fallback: assume standard 44-byte PCM header if "data" chunk was not found
|
|
305
|
+
const pcmBytes = bytes.slice(44);
|
|
306
|
+
return {
|
|
307
|
+
samples: new Int16Array(pcmBytes.buffer, pcmBytes.byteOffset, Math.floor(pcmBytes.byteLength / 2)),
|
|
308
|
+
sampleRate
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
// ─── Provider ─────────────────────────────────────────────────────────────────
|
|
3
312
|
export class TogetherProvider extends OpenAIProvider {
|
|
4
313
|
static requiredSecrets() {
|
|
5
314
|
return ["TOGETHER_API_KEY"];
|
|
@@ -29,6 +338,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
29
338
|
async hasToolSupport(_model) {
|
|
30
339
|
return true;
|
|
31
340
|
}
|
|
341
|
+
// ─── Language models ────────────────────────────────────────────────────────
|
|
32
342
|
async getAvailableLanguageModels() {
|
|
33
343
|
const response = await this._togetherFetch("https://api.together.xyz/v1/models", {
|
|
34
344
|
headers: {
|
|
@@ -39,7 +349,7 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
39
349
|
return [];
|
|
40
350
|
}
|
|
41
351
|
const payload = (await response.json());
|
|
42
|
-
const rows = payload.data ?? [];
|
|
352
|
+
const rows = Array.isArray(payload) ? payload : payload.data ?? [];
|
|
43
353
|
return rows
|
|
44
354
|
.filter((row) => typeof row.id === "string" && row.id.length > 0)
|
|
45
355
|
.filter((row) => {
|
|
@@ -52,5 +362,397 @@ export class TogetherProvider extends OpenAIProvider {
|
|
|
52
362
|
provider: "together"
|
|
53
363
|
}));
|
|
54
364
|
}
|
|
365
|
+
// ─── Image models ───────────────────────────────────────────────────────────
|
|
366
|
+
async getAvailableImageModels() {
|
|
367
|
+
return TOGETHER_IMAGE_MODELS;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Text-to-image generation via Together's `/v1/images/generations` endpoint.
|
|
371
|
+
* Uses Together's native `width` / `height` params rather than OpenAI's
|
|
372
|
+
* combined `size` string so we can pass the full resolution range.
|
|
373
|
+
*/
|
|
374
|
+
async textToImage(params) {
|
|
375
|
+
if (!params.prompt) {
|
|
376
|
+
throw new Error("The input prompt cannot be empty.");
|
|
377
|
+
}
|
|
378
|
+
const body = {
|
|
379
|
+
model: params.model.id,
|
|
380
|
+
prompt: params.prompt,
|
|
381
|
+
n: 1,
|
|
382
|
+
response_format: "b64_json"
|
|
383
|
+
};
|
|
384
|
+
if (params.width != null)
|
|
385
|
+
body.width = params.width;
|
|
386
|
+
if (params.height != null)
|
|
387
|
+
body.height = params.height;
|
|
388
|
+
if (params.numInferenceSteps != null)
|
|
389
|
+
body.steps = params.numInferenceSteps;
|
|
390
|
+
if (params.guidanceScale != null)
|
|
391
|
+
body.guidance_scale = params.guidanceScale;
|
|
392
|
+
if (params.seed != null)
|
|
393
|
+
body.seed = params.seed;
|
|
394
|
+
if (params.negativePrompt)
|
|
395
|
+
body.negative_prompt = params.negativePrompt;
|
|
396
|
+
const response = await this._togetherFetch("https://api.together.xyz/v1/images/generations", {
|
|
397
|
+
method: "POST",
|
|
398
|
+
headers: {
|
|
399
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
400
|
+
"Content-Type": "application/json"
|
|
401
|
+
},
|
|
402
|
+
body: JSON.stringify(body)
|
|
403
|
+
});
|
|
404
|
+
if (!response.ok) {
|
|
405
|
+
const errorText = await response.text();
|
|
406
|
+
throw new Error(`Together image generation failed: ${errorText}`);
|
|
407
|
+
}
|
|
408
|
+
const payload = (await response.json());
|
|
409
|
+
const item = payload.data?.[0];
|
|
410
|
+
if (!item) {
|
|
411
|
+
throw new Error("Together image generation returned no data.");
|
|
412
|
+
}
|
|
413
|
+
if (item.b64_json) {
|
|
414
|
+
return Uint8Array.from(Buffer.from(item.b64_json, "base64"));
|
|
415
|
+
}
|
|
416
|
+
if (item.url) {
|
|
417
|
+
const fetchResponse = await this._togetherFetch(item.url);
|
|
418
|
+
if (!fetchResponse.ok) {
|
|
419
|
+
throw new Error(`Image fetch failed: ${fetchResponse.status}`);
|
|
420
|
+
}
|
|
421
|
+
return new Uint8Array(await fetchResponse.arrayBuffer());
|
|
422
|
+
}
|
|
423
|
+
throw new Error("Together image generation returned no image data.");
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Image-to-image editing via Together's Kontext models.
|
|
427
|
+
* The image is encoded as a base64 data URI and passed as `image_url`.
|
|
428
|
+
* This requires a model that supports the `image_url` parameter
|
|
429
|
+
* (e.g. FLUX.1-kontext-pro, FLUX.1-kontext-max, FLUX.2-pro/dev/flex).
|
|
430
|
+
*/
|
|
431
|
+
async imageToImage(image, params) {
|
|
432
|
+
if (!image || image.length === 0) {
|
|
433
|
+
throw new Error("image must not be empty.");
|
|
434
|
+
}
|
|
435
|
+
if (!params.prompt) {
|
|
436
|
+
throw new Error("The input prompt cannot be empty.");
|
|
437
|
+
}
|
|
438
|
+
const base64 = Buffer.from(image).toString("base64");
|
|
439
|
+
const imageUrl = `data:image/jpeg;base64,${base64}`;
|
|
440
|
+
const body = {
|
|
441
|
+
model: params.model.id,
|
|
442
|
+
prompt: params.prompt,
|
|
443
|
+
image_url: imageUrl,
|
|
444
|
+
n: 1,
|
|
445
|
+
response_format: "b64_json"
|
|
446
|
+
};
|
|
447
|
+
if (params.targetWidth != null)
|
|
448
|
+
body.width = params.targetWidth;
|
|
449
|
+
if (params.targetHeight != null)
|
|
450
|
+
body.height = params.targetHeight;
|
|
451
|
+
if (params.numInferenceSteps != null)
|
|
452
|
+
body.steps = params.numInferenceSteps;
|
|
453
|
+
if (params.guidanceScale != null)
|
|
454
|
+
body.guidance_scale = params.guidanceScale;
|
|
455
|
+
if (params.seed != null)
|
|
456
|
+
body.seed = params.seed;
|
|
457
|
+
const response = await this._togetherFetch("https://api.together.xyz/v1/images/generations", {
|
|
458
|
+
method: "POST",
|
|
459
|
+
headers: {
|
|
460
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
461
|
+
"Content-Type": "application/json"
|
|
462
|
+
},
|
|
463
|
+
body: JSON.stringify(body)
|
|
464
|
+
});
|
|
465
|
+
if (!response.ok) {
|
|
466
|
+
const errorText = await response.text();
|
|
467
|
+
throw new Error(`Together image editing failed: ${errorText}`);
|
|
468
|
+
}
|
|
469
|
+
const payload = (await response.json());
|
|
470
|
+
const item = payload.data?.[0];
|
|
471
|
+
if (!item) {
|
|
472
|
+
throw new Error("Together image editing returned no data.");
|
|
473
|
+
}
|
|
474
|
+
if (item.b64_json) {
|
|
475
|
+
return Uint8Array.from(Buffer.from(item.b64_json, "base64"));
|
|
476
|
+
}
|
|
477
|
+
if (item.url) {
|
|
478
|
+
const fetchResponse = await this._togetherFetch(item.url);
|
|
479
|
+
if (!fetchResponse.ok) {
|
|
480
|
+
throw new Error(`Image fetch failed: ${fetchResponse.status}`);
|
|
481
|
+
}
|
|
482
|
+
return new Uint8Array(await fetchResponse.arrayBuffer());
|
|
483
|
+
}
|
|
484
|
+
throw new Error("Together image editing returned no image data.");
|
|
485
|
+
}
|
|
486
|
+
// ─── TTS ────────────────────────────────────────────────────────────────────
|
|
487
|
+
async getAvailableTTSModels() {
|
|
488
|
+
return TOGETHER_TTS_MODELS;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Stream TTS audio as raw PCM Int16 samples.
|
|
492
|
+
* Together's `/v1/audio/speech` endpoint uses "wav" / "mp3" / "raw" rather
|
|
493
|
+
* than OpenAI's "pcm" label, so we request "wav" and strip the header.
|
|
494
|
+
*/
|
|
495
|
+
async *textToSpeech(args) {
|
|
496
|
+
if (!args.text) {
|
|
497
|
+
throw new Error("text must not be empty");
|
|
498
|
+
}
|
|
499
|
+
const voice = args.voice ?? "tara"; // Default to "tara" (Orpheus); Kokoro callers should pass e.g. "af_heart"
|
|
500
|
+
const body = {
|
|
501
|
+
model: args.model,
|
|
502
|
+
input: args.text,
|
|
503
|
+
voice,
|
|
504
|
+
response_format: "wav"
|
|
505
|
+
};
|
|
506
|
+
if (args.speed != null)
|
|
507
|
+
body.speed = args.speed;
|
|
508
|
+
const response = await this._togetherFetch("https://api.together.xyz/v1/audio/speech", {
|
|
509
|
+
method: "POST",
|
|
510
|
+
headers: {
|
|
511
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
512
|
+
"Content-Type": "application/json"
|
|
513
|
+
},
|
|
514
|
+
body: JSON.stringify(body)
|
|
515
|
+
});
|
|
516
|
+
if (!response.ok) {
|
|
517
|
+
const errorText = await response.text();
|
|
518
|
+
throw new Error(`Together TTS failed: ${errorText}`);
|
|
519
|
+
}
|
|
520
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
521
|
+
const { samples, sampleRate } = parseWavPCM(bytes);
|
|
522
|
+
yield { samples, sampleRate };
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* Return fully-encoded TTS audio (mp3, wav, or mulaw).
|
|
526
|
+
* Returns `null` for unsupported formats so the caller falls back to the
|
|
527
|
+
* streaming PCM path.
|
|
528
|
+
*/
|
|
529
|
+
async textToSpeechEncoded(args) {
|
|
530
|
+
if (!args.text) {
|
|
531
|
+
throw new Error("text must not be empty");
|
|
532
|
+
}
|
|
533
|
+
const formatToMime = {
|
|
534
|
+
mp3: "audio/mpeg",
|
|
535
|
+
wav: "audio/wav",
|
|
536
|
+
mulaw: "audio/mulaw"
|
|
537
|
+
};
|
|
538
|
+
const fmt = (args.audioFormat ?? "mp3").toLowerCase();
|
|
539
|
+
if (!(fmt in formatToMime)) {
|
|
540
|
+
return null;
|
|
541
|
+
}
|
|
542
|
+
const voice = args.voice ?? "tara";
|
|
543
|
+
const body = {
|
|
544
|
+
model: args.model,
|
|
545
|
+
input: args.text,
|
|
546
|
+
voice,
|
|
547
|
+
response_format: fmt
|
|
548
|
+
};
|
|
549
|
+
if (args.speed != null)
|
|
550
|
+
body.speed = args.speed;
|
|
551
|
+
const response = await this._togetherFetch("https://api.together.xyz/v1/audio/speech", {
|
|
552
|
+
method: "POST",
|
|
553
|
+
headers: {
|
|
554
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
555
|
+
"Content-Type": "application/json"
|
|
556
|
+
},
|
|
557
|
+
body: JSON.stringify(body)
|
|
558
|
+
});
|
|
559
|
+
if (!response.ok) {
|
|
560
|
+
const errorText = await response.text();
|
|
561
|
+
throw new Error(`Together TTS failed: ${errorText}`);
|
|
562
|
+
}
|
|
563
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
564
|
+
return { data: bytes, mimeType: formatToMime[fmt] };
|
|
565
|
+
}
|
|
566
|
+
// ─── ASR ────────────────────────────────────────────────────────────────────
|
|
567
|
+
async getAvailableASRModels() {
|
|
568
|
+
return TOGETHER_ASR_MODELS;
|
|
569
|
+
}
|
|
570
|
+
// automaticSpeechRecognition() is inherited from OpenAIProvider and works
|
|
571
|
+
// as-is because Together's /v1/audio/transcriptions endpoint is
|
|
572
|
+
// OpenAI-compatible and the caller supplies the Together model ID.
|
|
573
|
+
// ─── Embeddings ─────────────────────────────────────────────────────────────
|
|
574
|
+
async getAvailableEmbeddingModels() {
|
|
575
|
+
return TOGETHER_EMBEDDING_MODELS;
|
|
576
|
+
}
|
|
577
|
+
// generateEmbedding() is inherited from OpenAIProvider and works as-is
|
|
578
|
+
// because Together's /v1/embeddings endpoint is OpenAI-compatible.
|
|
579
|
+
// ─── Video models ───────────────────────────────────────────────────────────
|
|
580
|
+
async getAvailableVideoModels() {
|
|
581
|
+
return TOGETHER_VIDEO_MODELS;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Map generic resolution / aspect-ratio hints to concrete pixel dimensions
|
|
585
|
+
* suitable for Together's video API.
|
|
586
|
+
*/
|
|
587
|
+
resolveVideoDimensions(aspectRatio, resolution) {
|
|
588
|
+
const ar = (aspectRatio ?? "16:9").replace(/\s/g, "");
|
|
589
|
+
const res = (resolution ?? "720p").toLowerCase();
|
|
590
|
+
const presets = {
|
|
591
|
+
"16:9": {
|
|
592
|
+
"480p": [854, 480],
|
|
593
|
+
"720p": [1280, 720],
|
|
594
|
+
"1080p": [1920, 1080]
|
|
595
|
+
},
|
|
596
|
+
"9:16": {
|
|
597
|
+
"480p": [480, 854],
|
|
598
|
+
"720p": [720, 1280],
|
|
599
|
+
"1080p": [1080, 1920]
|
|
600
|
+
},
|
|
601
|
+
"1:1": {
|
|
602
|
+
"480p": [480, 480],
|
|
603
|
+
"720p": [720, 720],
|
|
604
|
+
"1080p": [1080, 1080]
|
|
605
|
+
},
|
|
606
|
+
"4:3": {
|
|
607
|
+
"480p": [640, 480],
|
|
608
|
+
"720p": [960, 720],
|
|
609
|
+
"1080p": [1440, 1080]
|
|
610
|
+
}
|
|
611
|
+
};
|
|
612
|
+
const dims = presets[ar]?.[res];
|
|
613
|
+
if (dims) {
|
|
614
|
+
return { width: dims[0], height: dims[1] };
|
|
615
|
+
}
|
|
616
|
+
// Together's MiniMax default
|
|
617
|
+
return { width: 1366, height: 768 };
|
|
618
|
+
}
|
|
619
|
+
/**
|
|
620
|
+
* Poll Together's video job endpoint until it reaches a terminal state.
|
|
621
|
+
* Returns the final response payload.
|
|
622
|
+
*/
|
|
623
|
+
async pollVideoJob(jobId) {
|
|
624
|
+
const timeoutMs = 10 * 60 * 1000; // 10 minutes
|
|
625
|
+
const intervalMs = 5_000; // 5 seconds
|
|
626
|
+
const start = Date.now();
|
|
627
|
+
while (true) {
|
|
628
|
+
if (Date.now() - start > timeoutMs) {
|
|
629
|
+
throw new Error(`Together video generation timed out after ${timeoutMs / 1000}s for job ${jobId}`);
|
|
630
|
+
}
|
|
631
|
+
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
632
|
+
const statusResponse = await this._togetherFetch(`https://api.together.xyz/v2/videos/${jobId}`, { headers: { Authorization: `Bearer ${this.apiKey}` } });
|
|
633
|
+
if (!statusResponse.ok) {
|
|
634
|
+
const errorText = await statusResponse.text();
|
|
635
|
+
throw new Error(`Together video status check failed: ${errorText}`);
|
|
636
|
+
}
|
|
637
|
+
const status = (await statusResponse.json());
|
|
638
|
+
if (status.status === "completed" ||
|
|
639
|
+
status.status === "failed" ||
|
|
640
|
+
status.status === "cancelled") {
|
|
641
|
+
return status;
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
/**
|
|
646
|
+
* Download a completed video from its signed URL and return the raw bytes.
|
|
647
|
+
*/
|
|
648
|
+
async downloadVideo(status, label) {
|
|
649
|
+
const videoUrl = status.outputs?.video_url;
|
|
650
|
+
if (!videoUrl) {
|
|
651
|
+
const reason = status.error?.message ?? "unknown error";
|
|
652
|
+
throw new Error(`Together ${label} failed: ${reason}`);
|
|
653
|
+
}
|
|
654
|
+
const videoResponse = await this._togetherFetch(videoUrl);
|
|
655
|
+
if (!videoResponse.ok) {
|
|
656
|
+
throw new Error(`Failed to download Together video: ${videoResponse.status}`);
|
|
657
|
+
}
|
|
658
|
+
return new Uint8Array(await videoResponse.arrayBuffer());
|
|
659
|
+
}
|
|
660
|
+
/**
|
|
661
|
+
* Text-to-video generation via Together's asynchronous `/v2/videos` API.
|
|
662
|
+
* Submits the job then polls until completion, returning the raw video bytes.
|
|
663
|
+
*/
|
|
664
|
+
async textToVideo(params) {
|
|
665
|
+
if (!params.prompt) {
|
|
666
|
+
throw new Error("The input prompt cannot be empty.");
|
|
667
|
+
}
|
|
668
|
+
const { width, height } = this.resolveVideoDimensions(params.aspectRatio, params.resolution);
|
|
669
|
+
const body = {
|
|
670
|
+
model: params.model.id,
|
|
671
|
+
prompt: params.prompt,
|
|
672
|
+
width,
|
|
673
|
+
height
|
|
674
|
+
};
|
|
675
|
+
// Together's API expects seconds as a string (e.g. "6"), not a number
|
|
676
|
+
if (params.durationSeconds != null)
|
|
677
|
+
body.seconds = String(params.durationSeconds);
|
|
678
|
+
if (params.numInferenceSteps != null)
|
|
679
|
+
body.steps = params.numInferenceSteps;
|
|
680
|
+
if (params.guidanceScale != null)
|
|
681
|
+
body.guidance_scale = params.guidanceScale;
|
|
682
|
+
if (params.seed != null)
|
|
683
|
+
body.seed = params.seed;
|
|
684
|
+
if (params.negativePrompt)
|
|
685
|
+
body.negative_prompt = params.negativePrompt;
|
|
686
|
+
const createResponse = await this._togetherFetch("https://api.together.xyz/v2/videos", {
|
|
687
|
+
method: "POST",
|
|
688
|
+
headers: {
|
|
689
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
690
|
+
"Content-Type": "application/json"
|
|
691
|
+
},
|
|
692
|
+
body: JSON.stringify(body)
|
|
693
|
+
});
|
|
694
|
+
if (!createResponse.ok) {
|
|
695
|
+
const errorText = await createResponse.text();
|
|
696
|
+
throw new Error(`Together video creation failed: ${errorText}`);
|
|
697
|
+
}
|
|
698
|
+
const job = (await createResponse.json());
|
|
699
|
+
const finalStatus = await this.pollVideoJob(job.id);
|
|
700
|
+
if (finalStatus.status !== "completed") {
|
|
701
|
+
const reason = finalStatus.error?.message ??
|
|
702
|
+
`job ended with status '${finalStatus.status}'`;
|
|
703
|
+
throw new Error(`Together text-to-video failed: ${reason}`);
|
|
704
|
+
}
|
|
705
|
+
return this.downloadVideo(finalStatus, "text-to-video");
|
|
706
|
+
}
|
|
707
|
+
/**
|
|
708
|
+
* Image-to-video generation via Together's asynchronous `/v2/videos` API.
|
|
709
|
+
* The first frame is supplied as a base64-encoded image in `frame_images`.
|
|
710
|
+
*/
|
|
711
|
+
async imageToVideo(image, params) {
|
|
712
|
+
if (!image || image.length === 0) {
|
|
713
|
+
throw new Error("The input image cannot be empty.");
|
|
714
|
+
}
|
|
715
|
+
const { width, height } = this.resolveVideoDimensions(params.aspectRatio, params.resolution);
|
|
716
|
+
const base64 = Buffer.from(image).toString("base64");
|
|
717
|
+
const inputImage = `data:image/jpeg;base64,${base64}`;
|
|
718
|
+
const body = {
|
|
719
|
+
model: params.model.id,
|
|
720
|
+
prompt: params.prompt ?? "",
|
|
721
|
+
width,
|
|
722
|
+
height,
|
|
723
|
+
frame_images: [{ input_image: inputImage, frame: "first" }]
|
|
724
|
+
};
|
|
725
|
+
// Together's API expects seconds as a string (e.g. "6"), not a number
|
|
726
|
+
if (params.durationSeconds != null)
|
|
727
|
+
body.seconds = String(params.durationSeconds);
|
|
728
|
+
if (params.numInferenceSteps != null)
|
|
729
|
+
body.steps = params.numInferenceSteps;
|
|
730
|
+
if (params.guidanceScale != null)
|
|
731
|
+
body.guidance_scale = params.guidanceScale;
|
|
732
|
+
if (params.seed != null)
|
|
733
|
+
body.seed = params.seed;
|
|
734
|
+
if (params.negativePrompt)
|
|
735
|
+
body.negative_prompt = params.negativePrompt;
|
|
736
|
+
const createResponse = await this._togetherFetch("https://api.together.xyz/v2/videos", {
|
|
737
|
+
method: "POST",
|
|
738
|
+
headers: {
|
|
739
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
740
|
+
"Content-Type": "application/json"
|
|
741
|
+
},
|
|
742
|
+
body: JSON.stringify(body)
|
|
743
|
+
});
|
|
744
|
+
if (!createResponse.ok) {
|
|
745
|
+
const errorText = await createResponse.text();
|
|
746
|
+
throw new Error(`Together image-to-video creation failed: ${errorText}`);
|
|
747
|
+
}
|
|
748
|
+
const job = (await createResponse.json());
|
|
749
|
+
const finalStatus = await this.pollVideoJob(job.id);
|
|
750
|
+
if (finalStatus.status !== "completed") {
|
|
751
|
+
const reason = finalStatus.error?.message ??
|
|
752
|
+
`job ended with status '${finalStatus.status}'`;
|
|
753
|
+
throw new Error(`Together image-to-video failed: ${reason}`);
|
|
754
|
+
}
|
|
755
|
+
return this.downloadVideo(finalStatus, "image-to-video");
|
|
756
|
+
}
|
|
55
757
|
}
|
|
56
758
|
//# sourceMappingURL=together-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"together-provider.js","sourceRoot":"","sources":["../../src/providers/together-provider.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAClD,MAAM,CAAU,eAAe;QAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9B,CAAC;IAEO,cAAc,CAAe;IAErC,YACE,OAAsC,EACtC,UAAmC,EAAE;QAErC,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAErE,KAAK,CACH,EAAE,cAAc,EAAE,MAAM,EAAE,EAC1B;YACE,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EACX,OAAO,CAAC,aAAa;gBACrB,CAAC,CAAC,GAAG,EAAE,EAAE,CACP,IAAI,MAAM,CAAC;oBACT,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,6BAA6B;iBACvC,CAAC,CAAC;YACP,OAAO;SACR,CACF,CAAC;QAED,IAA6B,CAAC,QAAQ,GAAG,UAAU,CAAC;QACrD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;IAChC,CAAC;IAEQ,eAAe;QACtB,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IAEQ,KAAK,CAAC,cAAc,CAAC,MAAc;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,0BAA0B;QACvC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CACxC,oCAAoC,EACpC;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;aACvC;SACF,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAErC,CAAC;QACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAChC,OAAO,IAAI;aACR,MAAM,CACL,CAAC,GAAG,EAA+D,EAAE,CACnE,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAClD;aACA,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YACd,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,IAAI,EAAE,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,EAAE;YAChC,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC,CAAC;IACR,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"together-provider.js","sourceRoot":"","sources":["../../src/providers/together-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodetool-ai/runtime",
|
|
3
|
-
"version": "0.7.0-rc.
|
|
3
|
+
"version": "0.7.0-rc.22",
|
|
4
4
|
"description": "Processing context, message queue, and output normalization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@aki-io/aki-io": "^1.0.1",
|
|
16
|
-
"@anthropic-ai/sdk": "^0.
|
|
16
|
+
"@anthropic-ai/sdk": "^0.36.2",
|
|
17
17
|
"@msgpack/msgpack": "^3.1.3",
|
|
18
|
-
"@nodetool-ai/config": "^0.7.0-rc.
|
|
19
|
-
"@nodetool-ai/protocol": "^0.7.0-rc.
|
|
18
|
+
"@nodetool-ai/config": "^0.7.0-rc.22",
|
|
19
|
+
"@nodetool-ai/protocol": "^0.7.0-rc.22",
|
|
20
20
|
"@opentelemetry/api": "^1.9.0",
|
|
21
21
|
"@opentelemetry/exporter-trace-otlp-proto": "^0.203.0",
|
|
22
22
|
"@opentelemetry/resources": "^2.6.0",
|