@nodetool-ai/runtime 0.7.0-rc.11 → 0.7.0-rc.13
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/dist/providers/base-provider.d.ts +6 -0
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +3 -0
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/claude-agent-provider.d.ts +6 -0
- package/dist/providers/claude-agent-provider.d.ts.map +1 -1
- package/dist/providers/claude-agent-provider.js +7 -1
- package/dist/providers/claude-agent-provider.js.map +1 -1
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +25 -0
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/kie-provider.d.ts +26 -6
- package/dist/providers/kie-provider.d.ts.map +1 -1
- package/dist/providers/kie-provider.js +359 -14
- package/dist/providers/kie-provider.js.map +1 -1
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +29 -30
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.js +1 -1
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/package.json +5 -4
|
@@ -1,14 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Kie.ai Provider — wraps the Kie.ai API to expose image, video, and
|
|
3
|
-
* generation through the standard BaseProvider interface.
|
|
2
|
+
* Kie.ai Provider — wraps the Kie.ai API to expose image, video, audio, and
|
|
3
|
+
* chat generation through the standard BaseProvider interface.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
5
|
+
* Media model lists are loaded from the kie-manifest.json shipped by
|
|
6
|
+
* @nodetool-ai/kie-nodes. Chat models use Kie.ai's model-specific chat
|
|
7
|
+
* endpoints and reuse the existing OpenAI/Anthropic provider implementations
|
|
8
|
+
* where their APIs are wire-compatible.
|
|
6
9
|
*/
|
|
10
|
+
import Anthropic from "@anthropic-ai/sdk";
|
|
11
|
+
import OpenAI from "openai";
|
|
7
12
|
import { BaseProvider } from "./base-provider.js";
|
|
8
13
|
import { createLogger } from "@nodetool-ai/config";
|
|
9
14
|
import { loadVideoModels, loadImageModels } from "./manifest-models.js";
|
|
15
|
+
import { OpenAIProvider } from "./openai-provider.js";
|
|
16
|
+
import { AnthropicProvider } from "./anthropic-provider.js";
|
|
10
17
|
const log = createLogger("nodetool.runtime.providers.kie");
|
|
11
18
|
const KIE_API_BASE = "https://api.kie.ai";
|
|
19
|
+
const KIE_CHAT_MODELS = [
|
|
20
|
+
{
|
|
21
|
+
id: "gpt-5-5",
|
|
22
|
+
name: "GPT 5.5",
|
|
23
|
+
api: "responses",
|
|
24
|
+
basePath: "/codex/v1"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "claude-opus-4-6",
|
|
28
|
+
name: "Claude Opus 4.6",
|
|
29
|
+
api: "anthropic",
|
|
30
|
+
basePath: "/claude"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
id: "claude-sonnet-4-6",
|
|
34
|
+
name: "Claude Sonnet 4.6",
|
|
35
|
+
api: "anthropic",
|
|
36
|
+
basePath: "/claude"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
id: "claude-haiku-4-5",
|
|
40
|
+
name: "Claude Haiku 4.5",
|
|
41
|
+
api: "anthropic",
|
|
42
|
+
basePath: "/claude"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "gemini-3.1-pro",
|
|
46
|
+
name: "Gemini 3.1 Pro",
|
|
47
|
+
api: "openai",
|
|
48
|
+
basePath: "/gemini-3.1-pro/v1"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
id: "gemini-3-flash",
|
|
52
|
+
name: "Gemini 3 Flash",
|
|
53
|
+
api: "openai",
|
|
54
|
+
basePath: "/gemini-3-flash/v1"
|
|
55
|
+
}
|
|
56
|
+
];
|
|
57
|
+
function chatModel(model) {
|
|
58
|
+
return KIE_CHAT_MODELS.find((m) => m.id === model);
|
|
59
|
+
}
|
|
12
60
|
function headers(apiKey) {
|
|
13
61
|
return {
|
|
14
62
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -39,7 +87,7 @@ async function pollUntilDone(apiKey, taskId, pollInterval = 4000, maxAttempts =
|
|
|
39
87
|
const state = data.data?.state;
|
|
40
88
|
if (state === "success")
|
|
41
89
|
return;
|
|
42
|
-
if (state === "failed") {
|
|
90
|
+
if (state === "failed" || state === "fail") {
|
|
43
91
|
const msg = data.data?.failMsg || "Unknown error";
|
|
44
92
|
throw new Error(`Kie task failed: ${msg}`);
|
|
45
93
|
}
|
|
@@ -67,19 +115,316 @@ async function downloadResultBytes(apiKey, taskId) {
|
|
|
67
115
|
}
|
|
68
116
|
return new Uint8Array(await dlRes.arrayBuffer());
|
|
69
117
|
}
|
|
118
|
+
function isRecord(value) {
|
|
119
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
120
|
+
}
|
|
121
|
+
function stringifyContent(value) {
|
|
122
|
+
if (typeof value === "string")
|
|
123
|
+
return value;
|
|
124
|
+
if (value == null)
|
|
125
|
+
return "";
|
|
126
|
+
return JSON.stringify(value);
|
|
127
|
+
}
|
|
128
|
+
function dataUri(mimeType, data) {
|
|
129
|
+
if (typeof data === "string" && data.startsWith("data:"))
|
|
130
|
+
return data;
|
|
131
|
+
const base64 = typeof data === "string" ? data : Buffer.from(data).toString("base64");
|
|
132
|
+
return `data:${mimeType};base64,${base64}`;
|
|
133
|
+
}
|
|
70
134
|
const KIE_MANIFEST_PKG = "@nodetool-ai/kie-nodes";
|
|
71
135
|
const KIE_MANIFEST_PATH = "kie-manifest.json";
|
|
72
136
|
export class KieProvider extends BaseProvider {
|
|
73
137
|
apiKey;
|
|
138
|
+
static requiredSecrets() {
|
|
139
|
+
return ["KIE_API_KEY"];
|
|
140
|
+
}
|
|
74
141
|
constructor(secrets = {}) {
|
|
75
142
|
super("kie");
|
|
76
143
|
this.apiKey = secrets["KIE_API_KEY"] ?? "";
|
|
77
144
|
}
|
|
78
|
-
|
|
79
|
-
|
|
145
|
+
getContainerEnv() {
|
|
146
|
+
return { KIE_API_KEY: this.apiKey };
|
|
147
|
+
}
|
|
148
|
+
requireApiKey() {
|
|
149
|
+
if (!this.apiKey || !this.apiKey.trim()) {
|
|
150
|
+
throw new Error("KIE_API_KEY is not configured");
|
|
151
|
+
}
|
|
152
|
+
return this.apiKey;
|
|
153
|
+
}
|
|
154
|
+
makeOpenAIProvider(basePath) {
|
|
155
|
+
const provider = new OpenAIProvider({ OPENAI_API_KEY: this.requireApiKey() }, {
|
|
156
|
+
clientFactory: (apiKey) => new OpenAI({
|
|
157
|
+
apiKey,
|
|
158
|
+
baseURL: `${KIE_API_BASE}${basePath}`
|
|
159
|
+
})
|
|
160
|
+
});
|
|
161
|
+
provider.provider = "kie";
|
|
162
|
+
return provider;
|
|
163
|
+
}
|
|
164
|
+
makeAnthropicProvider(basePath) {
|
|
165
|
+
const provider = new AnthropicProvider({ ANTHROPIC_API_KEY: this.requireApiKey() }, {
|
|
166
|
+
clientFactory: (apiKey) => new Anthropic({
|
|
167
|
+
authToken: apiKey,
|
|
168
|
+
baseURL: `${KIE_API_BASE}${basePath}`
|
|
169
|
+
})
|
|
170
|
+
});
|
|
171
|
+
provider.provider = "kie";
|
|
172
|
+
return provider;
|
|
173
|
+
}
|
|
174
|
+
makeResponsesClient(basePath) {
|
|
175
|
+
return new OpenAI({
|
|
176
|
+
apiKey: this.requireApiKey(),
|
|
177
|
+
baseURL: `${KIE_API_BASE}${basePath}`
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
async getAvailableLanguageModels() {
|
|
181
|
+
return KIE_CHAT_MODELS.map((model) => ({
|
|
182
|
+
id: model.id,
|
|
183
|
+
name: model.name,
|
|
184
|
+
provider: "kie"
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
async hasToolSupport(model) {
|
|
188
|
+
return chatModel(model) !== undefined;
|
|
189
|
+
}
|
|
190
|
+
async generateMessage(args) {
|
|
191
|
+
const model = chatModel(args.model);
|
|
192
|
+
if (!model) {
|
|
193
|
+
throw new Error(`Kie does not support chat model: ${args.model}`);
|
|
194
|
+
}
|
|
195
|
+
if (model.api === "openai") {
|
|
196
|
+
return this.makeOpenAIProvider(model.basePath).generateMessage(args);
|
|
197
|
+
}
|
|
198
|
+
if (model.api === "anthropic") {
|
|
199
|
+
return this.makeAnthropicProvider(model.basePath).generateMessage(args);
|
|
200
|
+
}
|
|
201
|
+
return this.generateResponseMessage(args, model.basePath);
|
|
202
|
+
}
|
|
203
|
+
async *generateMessages(args) {
|
|
204
|
+
const model = chatModel(args.model);
|
|
205
|
+
if (!model) {
|
|
206
|
+
throw new Error(`Kie does not support chat model: ${args.model}`);
|
|
207
|
+
}
|
|
208
|
+
if (model.api === "openai") {
|
|
209
|
+
yield* this.makeOpenAIProvider(model.basePath).generateMessages(args);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
if (model.api === "anthropic") {
|
|
213
|
+
yield* this.makeAnthropicProvider(model.basePath).generateMessages(args);
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
yield* this.generateResponseMessages(args, model.basePath);
|
|
217
|
+
}
|
|
218
|
+
async responseInputContent(content) {
|
|
219
|
+
if (content.type === "text") {
|
|
220
|
+
return { type: "input_text", text: content.text };
|
|
221
|
+
}
|
|
222
|
+
if (content.type === "image_url") {
|
|
223
|
+
const image = content.image;
|
|
224
|
+
if (image.uri) {
|
|
225
|
+
const resolved = await this.resolveUri(image.uri);
|
|
226
|
+
return { type: "input_image", image_url: resolved };
|
|
227
|
+
}
|
|
228
|
+
if (image.data) {
|
|
229
|
+
return {
|
|
230
|
+
type: "input_image",
|
|
231
|
+
image_url: dataUri(image.mimeType ?? "image/jpeg", image.data)
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return null;
|
|
236
|
+
}
|
|
237
|
+
async messagesToResponsesInput(messages) {
|
|
238
|
+
const input = [];
|
|
239
|
+
for (const message of messages) {
|
|
240
|
+
if (message.role === "tool") {
|
|
241
|
+
input.push({
|
|
242
|
+
type: "function_call_output",
|
|
243
|
+
call_id: message.toolCallId ?? "",
|
|
244
|
+
output: stringifyContent(message.content)
|
|
245
|
+
});
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
if (message.role === "assistant") {
|
|
249
|
+
const text = stringifyContent(message.content);
|
|
250
|
+
if (text) {
|
|
251
|
+
input.push({
|
|
252
|
+
type: "message",
|
|
253
|
+
role: "assistant",
|
|
254
|
+
content: [{ type: "output_text", text }]
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
for (const toolCall of message.toolCalls ?? []) {
|
|
258
|
+
input.push({
|
|
259
|
+
type: "function_call",
|
|
260
|
+
id: toolCall.id,
|
|
261
|
+
call_id: toolCall.id,
|
|
262
|
+
name: toolCall.name,
|
|
263
|
+
arguments: JSON.stringify(toolCall.args ?? {})
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
const content = [];
|
|
269
|
+
if (typeof message.content === "string") {
|
|
270
|
+
content.push({ type: "input_text", text: message.content });
|
|
271
|
+
}
|
|
272
|
+
else if (Array.isArray(message.content)) {
|
|
273
|
+
for (const part of message.content) {
|
|
274
|
+
const converted = await this.responseInputContent(part);
|
|
275
|
+
if (converted)
|
|
276
|
+
content.push(converted);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
if (content.length === 0)
|
|
280
|
+
continue;
|
|
281
|
+
input.push({ role: message.role, content });
|
|
282
|
+
}
|
|
283
|
+
return input;
|
|
284
|
+
}
|
|
285
|
+
responseTools(tools = []) {
|
|
286
|
+
return tools.map((tool) => ({
|
|
287
|
+
type: "function",
|
|
288
|
+
name: tool.name,
|
|
289
|
+
description: tool.description ?? "",
|
|
290
|
+
parameters: tool.inputSchema ?? { type: "object", properties: {} }
|
|
291
|
+
}));
|
|
292
|
+
}
|
|
293
|
+
responseToolChoice(toolChoice) {
|
|
294
|
+
if (!toolChoice)
|
|
295
|
+
return undefined;
|
|
296
|
+
if (toolChoice === "any")
|
|
297
|
+
return "auto";
|
|
298
|
+
return { type: "function", name: toolChoice };
|
|
80
299
|
}
|
|
81
|
-
async
|
|
82
|
-
|
|
300
|
+
async generateResponseMessage(args, basePath) {
|
|
301
|
+
const client = this.makeResponsesClient(basePath);
|
|
302
|
+
const request = {
|
|
303
|
+
model: args.model,
|
|
304
|
+
input: await this.messagesToResponsesInput(args.messages),
|
|
305
|
+
stream: false
|
|
306
|
+
};
|
|
307
|
+
if (args.maxTokens != null)
|
|
308
|
+
request.max_output_tokens = args.maxTokens;
|
|
309
|
+
if (args.temperature != null)
|
|
310
|
+
request.temperature = args.temperature;
|
|
311
|
+
if (args.topP != null)
|
|
312
|
+
request.top_p = args.topP;
|
|
313
|
+
const tools = this.responseTools(args.tools);
|
|
314
|
+
if (tools.length > 0) {
|
|
315
|
+
request.tools = tools;
|
|
316
|
+
request.tool_choice = this.responseToolChoice(args.toolChoice) ?? "auto";
|
|
317
|
+
}
|
|
318
|
+
const response = (await client.responses.create.call(client.responses, request, {
|
|
319
|
+
signal: args.signal
|
|
320
|
+
}));
|
|
321
|
+
this.trackResponseUsage(args.model, response);
|
|
322
|
+
const outputText = typeof response.output_text === "string"
|
|
323
|
+
? response.output_text
|
|
324
|
+
: this.extractResponsesText(response.output);
|
|
325
|
+
const toolCalls = this.extractResponsesToolCalls(response.output);
|
|
326
|
+
return {
|
|
327
|
+
role: "assistant",
|
|
328
|
+
content: outputText || null,
|
|
329
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
async *generateResponseMessages(args, basePath) {
|
|
333
|
+
const client = this.makeResponsesClient(basePath);
|
|
334
|
+
const request = {
|
|
335
|
+
model: args.model,
|
|
336
|
+
input: await this.messagesToResponsesInput(args.messages),
|
|
337
|
+
stream: true
|
|
338
|
+
};
|
|
339
|
+
if (args.maxTokens != null)
|
|
340
|
+
request.max_output_tokens = args.maxTokens;
|
|
341
|
+
if (args.temperature != null)
|
|
342
|
+
request.temperature = args.temperature;
|
|
343
|
+
if (args.topP != null)
|
|
344
|
+
request.top_p = args.topP;
|
|
345
|
+
const tools = this.responseTools(args.tools);
|
|
346
|
+
if (tools.length > 0) {
|
|
347
|
+
request.tools = tools;
|
|
348
|
+
request.tool_choice = this.responseToolChoice(args.toolChoice) ?? "auto";
|
|
349
|
+
}
|
|
350
|
+
const stream = (await client.responses.create.call(client.responses, request, { signal: args.signal }));
|
|
351
|
+
const pendingArgs = new Map();
|
|
352
|
+
for await (const event of stream) {
|
|
353
|
+
const type = event.type;
|
|
354
|
+
if (type === "response.output_text.delta") {
|
|
355
|
+
const chunk = {
|
|
356
|
+
type: "chunk",
|
|
357
|
+
content: String(event.delta ?? ""),
|
|
358
|
+
done: false
|
|
359
|
+
};
|
|
360
|
+
yield chunk;
|
|
361
|
+
continue;
|
|
362
|
+
}
|
|
363
|
+
if (type === "response.function_call_arguments.delta") {
|
|
364
|
+
const itemId = String(event.item_id ?? "");
|
|
365
|
+
pendingArgs.set(itemId, (pendingArgs.get(itemId) ?? "") + String(event.delta ?? ""));
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (type === "response.function_call_arguments.done") {
|
|
369
|
+
const itemId = String(event.item_id ?? "");
|
|
370
|
+
const argsText = String(event.arguments ?? pendingArgs.get(itemId) ?? "{}");
|
|
371
|
+
pendingArgs.delete(itemId);
|
|
372
|
+
yield this.buildToolCall(itemId, String(event.name ?? ""), argsText);
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
if (type === "response.completed") {
|
|
376
|
+
const response = event.response;
|
|
377
|
+
if (isRecord(response))
|
|
378
|
+
this.trackResponseUsage(args.model, response);
|
|
379
|
+
const chunk = { type: "chunk", content: "", done: true };
|
|
380
|
+
yield chunk;
|
|
381
|
+
continue;
|
|
382
|
+
}
|
|
383
|
+
if (type === "response.failed" || type === "response.error") {
|
|
384
|
+
throw new Error(`Kie responses stream failed: ${JSON.stringify(event)}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
extractResponsesText(output) {
|
|
389
|
+
if (!Array.isArray(output))
|
|
390
|
+
return "";
|
|
391
|
+
const parts = [];
|
|
392
|
+
for (const item of output) {
|
|
393
|
+
if (!isRecord(item) || item.type !== "message" || !Array.isArray(item.content)) {
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
for (const content of item.content) {
|
|
397
|
+
if (isRecord(content) && content.type === "output_text") {
|
|
398
|
+
parts.push(String(content.text ?? ""));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return parts.join("");
|
|
403
|
+
}
|
|
404
|
+
extractResponsesToolCalls(output) {
|
|
405
|
+
if (!Array.isArray(output))
|
|
406
|
+
return [];
|
|
407
|
+
const toolCalls = [];
|
|
408
|
+
for (const item of output) {
|
|
409
|
+
if (!isRecord(item) || item.type !== "function_call")
|
|
410
|
+
continue;
|
|
411
|
+
toolCalls.push(this.buildToolCall(String(item.call_id ?? item.id ?? ""), String(item.name ?? ""), item.arguments));
|
|
412
|
+
}
|
|
413
|
+
return toolCalls;
|
|
414
|
+
}
|
|
415
|
+
trackResponseUsage(model, response) {
|
|
416
|
+
const usage = response.usage;
|
|
417
|
+
if (!isRecord(usage))
|
|
418
|
+
return;
|
|
419
|
+
const inputTokens = Number(usage.input_tokens ?? 0);
|
|
420
|
+
const outputTokens = Number(usage.output_tokens ?? 0);
|
|
421
|
+
const details = usage.input_tokens_details;
|
|
422
|
+
const cachedTokens = isRecord(details) ? Number(details.cached_tokens ?? 0) : 0;
|
|
423
|
+
this.trackUsage(model, {
|
|
424
|
+
inputTokens: Number.isFinite(inputTokens) ? inputTokens : 0,
|
|
425
|
+
outputTokens: Number.isFinite(outputTokens) ? outputTokens : 0,
|
|
426
|
+
cachedTokens: Number.isFinite(cachedTokens) ? cachedTokens : 0
|
|
427
|
+
});
|
|
83
428
|
}
|
|
84
429
|
async getAvailableVideoModels() {
|
|
85
430
|
return loadVideoModels(KIE_MANIFEST_PKG, KIE_MANIFEST_PATH, "kie");
|
|
@@ -98,9 +443,9 @@ export class KieProvider extends BaseProvider {
|
|
|
98
443
|
}
|
|
99
444
|
const modelId = params.model.id;
|
|
100
445
|
log.debug("Kie textToVideo", { model: modelId });
|
|
101
|
-
const taskId = await submitTask(this.
|
|
102
|
-
await pollUntilDone(this.
|
|
103
|
-
return downloadResultBytes(this.
|
|
446
|
+
const taskId = await submitTask(this.requireApiKey(), modelId, input);
|
|
447
|
+
await pollUntilDone(this.requireApiKey(), taskId);
|
|
448
|
+
return downloadResultBytes(this.requireApiKey(), taskId);
|
|
104
449
|
}
|
|
105
450
|
async textToImage(params) {
|
|
106
451
|
const input = { prompt: params.prompt };
|
|
@@ -110,9 +455,9 @@ export class KieProvider extends BaseProvider {
|
|
|
110
455
|
input.height = params.height;
|
|
111
456
|
const modelId = params.model.id;
|
|
112
457
|
log.debug("Kie textToImage", { model: modelId });
|
|
113
|
-
const taskId = await submitTask(this.
|
|
114
|
-
await pollUntilDone(this.
|
|
115
|
-
return downloadResultBytes(this.
|
|
458
|
+
const taskId = await submitTask(this.requireApiKey(), modelId, input);
|
|
459
|
+
await pollUntilDone(this.requireApiKey(), taskId);
|
|
460
|
+
return downloadResultBytes(this.requireApiKey(), taskId);
|
|
116
461
|
}
|
|
117
462
|
}
|
|
118
463
|
//# sourceMappingURL=kie-provider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kie-provider.js","sourceRoot":"","sources":["../../src/providers/kie-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"kie-provider.js","sourceRoot":"","sources":["../../src/providers/kie-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/providers/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../src/providers/openai-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import OpenAI from "openai";
|
|
1
|
+
import OpenAI, { toFile } from "openai";
|
|
2
|
+
import sharp from "sharp";
|
|
2
3
|
import { createLogger } from "@nodetool-ai/config";
|
|
3
4
|
import { BaseProvider } from "./base-provider.js";
|
|
4
5
|
const log = createLogger("nodetool.runtime.providers.openai");
|
|
@@ -614,7 +615,9 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
614
615
|
}
|
|
615
616
|
const responseMessage = choice.message;
|
|
616
617
|
const toolCalls = Array.isArray(responseMessage.tool_calls)
|
|
617
|
-
? responseMessage.tool_calls
|
|
618
|
+
? responseMessage.tool_calls
|
|
619
|
+
.filter((tc) => tc.type === "function")
|
|
620
|
+
.map((tc) => this.buildToolCall(tc.id, tc.function.name, tc.function.arguments))
|
|
618
621
|
: undefined;
|
|
619
622
|
return {
|
|
620
623
|
role: "assistant",
|
|
@@ -638,7 +641,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
638
641
|
request.size = size;
|
|
639
642
|
if (params.quality)
|
|
640
643
|
request.quality = params.quality;
|
|
641
|
-
const response = await this.getClient().images.generate(request);
|
|
644
|
+
const response = (await this.getClient().images.generate(request));
|
|
642
645
|
const item = response.data?.[0];
|
|
643
646
|
if (!item) {
|
|
644
647
|
throw new Error("OpenAI image generation returned no image data.");
|
|
@@ -667,7 +670,9 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
667
670
|
: params.prompt;
|
|
668
671
|
const request = {
|
|
669
672
|
model: params.model.id,
|
|
670
|
-
image:
|
|
673
|
+
image: await toFile(Buffer.from(image), "image.png", {
|
|
674
|
+
type: "image/png"
|
|
675
|
+
}),
|
|
671
676
|
prompt
|
|
672
677
|
};
|
|
673
678
|
const size = this.resolveImageSize(params.targetWidth ?? undefined, params.targetHeight ?? undefined);
|
|
@@ -675,7 +680,7 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
675
680
|
request.size = size;
|
|
676
681
|
if (params.quality)
|
|
677
682
|
request.quality = params.quality;
|
|
678
|
-
const response = await this.getClient().images.edit(request);
|
|
683
|
+
const response = (await this.getClient().images.edit(request));
|
|
679
684
|
const item = response.data?.[0];
|
|
680
685
|
if (!item) {
|
|
681
686
|
throw new Error("OpenAI image editing returned no image data.");
|
|
@@ -837,36 +842,37 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
837
842
|
throw new Error("Video generation timed out");
|
|
838
843
|
}
|
|
839
844
|
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
840
|
-
latest = await this.getClient().videos.retrieve(
|
|
841
|
-
video_id: video.id
|
|
842
|
-
});
|
|
845
|
+
latest = await this.getClient().videos.retrieve(video.id);
|
|
843
846
|
}
|
|
844
847
|
if (latest.status !== "completed") {
|
|
845
848
|
throw new Error(String(latest.error ??
|
|
846
849
|
`Video generation ended with status '${latest.status}'`));
|
|
847
850
|
}
|
|
848
|
-
const
|
|
849
|
-
|
|
850
|
-
options: {
|
|
851
|
-
params: { variant: "video" }
|
|
852
|
-
}
|
|
853
|
-
});
|
|
854
|
-
return asUint8Array(bytes);
|
|
851
|
+
const contentResponse = await this.getClient().videos.downloadContent(video.id, { variant: "video" });
|
|
852
|
+
return new Uint8Array(await contentResponse.arrayBuffer());
|
|
855
853
|
}
|
|
856
854
|
async imageToVideo(image, params) {
|
|
857
855
|
if (!image || image.length === 0) {
|
|
858
856
|
throw new Error("The input image cannot be empty.");
|
|
859
857
|
}
|
|
860
858
|
const [width, height] = OpenAIProvider.extractImageDimensions(image);
|
|
861
|
-
const
|
|
859
|
+
const requestedSize = OpenAIProvider.resolveVideoSize(params.aspectRatio, params.resolution);
|
|
860
|
+
const size = requestedSize ?? OpenAIProvider.snapToValidVideoDimensions(width, height);
|
|
862
861
|
const seconds = OpenAIProvider.secondsFromParams(params) ?? 4;
|
|
863
|
-
const [
|
|
864
|
-
const
|
|
862
|
+
const [targetW, targetH] = size.split("x").map(Number);
|
|
863
|
+
const resized = width === targetW && height === targetH
|
|
864
|
+
? image
|
|
865
|
+
: new Uint8Array(await sharp(image)
|
|
866
|
+
.resize(targetW, targetH, { fit: "cover", position: "centre" })
|
|
867
|
+
.png()
|
|
868
|
+
.toBuffer());
|
|
865
869
|
const video = await this.getClient().videos.create({
|
|
866
870
|
model: params.model.id,
|
|
867
871
|
prompt: params.prompt ?? "",
|
|
868
|
-
input_reference:
|
|
869
|
-
|
|
872
|
+
input_reference: await toFile(Buffer.from(resized), "input_image.png", {
|
|
873
|
+
type: "image/png"
|
|
874
|
+
}),
|
|
875
|
+
size: size,
|
|
870
876
|
seconds: String(seconds)
|
|
871
877
|
});
|
|
872
878
|
if (!video?.id) {
|
|
@@ -881,21 +887,14 @@ export class OpenAIProvider extends BaseProvider {
|
|
|
881
887
|
throw new Error("Image-to-video generation timed out");
|
|
882
888
|
}
|
|
883
889
|
await new Promise((resolve) => setTimeout(resolve, intervalMs));
|
|
884
|
-
latest = await this.getClient().videos.retrieve(
|
|
885
|
-
video_id: video.id
|
|
886
|
-
});
|
|
890
|
+
latest = await this.getClient().videos.retrieve(video.id);
|
|
887
891
|
}
|
|
888
892
|
if (latest.status !== "completed") {
|
|
889
893
|
throw new Error(String(latest.error ??
|
|
890
894
|
`Image-to-video generation ended with status '${latest.status}'`));
|
|
891
895
|
}
|
|
892
|
-
const
|
|
893
|
-
|
|
894
|
-
options: {
|
|
895
|
-
params: { variant: "video" }
|
|
896
|
-
}
|
|
897
|
-
});
|
|
898
|
-
return asUint8Array(bytes);
|
|
896
|
+
const contentResponse = await this.getClient().videos.downloadContent(video.id, { variant: "video" });
|
|
897
|
+
return new Uint8Array(await contentResponse.arrayBuffer());
|
|
899
898
|
}
|
|
900
899
|
async generateEmbedding(args) {
|
|
901
900
|
const input = Array.isArray(args.text) ? args.text : [args.text];
|