@tyvm/knowhow 0.0.105 → 0.0.107
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/CONFIG.md +8 -5
- package/package.json +3 -2
- package/scripts/check-model-pricing.ts +509 -0
- package/scripts/compare-openrouter-coverage.ts +576 -0
- package/src/agents/base/base.ts +169 -5
- package/src/agents/tools/execCommand.ts +4 -0
- package/src/agents/tools/executeScript/definition.ts +1 -1
- package/src/agents/tools/index.ts +0 -1
- package/src/agents/tools/list.ts +3 -43
- package/src/agents/tools/writeFile.ts +1 -1
- package/src/auth/browserLogin.ts +9 -4
- package/src/chat/modules/RemoteSyncModule.ts +3 -0
- package/src/cli.ts +31 -1
- package/src/clients/anthropic.ts +8 -2
- package/src/clients/cerebras.ts +10 -0
- package/src/clients/contextLimits.ts +7 -2
- package/src/clients/copilot.ts +23 -0
- package/src/clients/deepseek.ts +16 -0
- package/src/clients/fireworks.ts +15 -0
- package/src/clients/gemini.ts +59 -4
- package/src/clients/github.ts +16 -0
- package/src/clients/groq.ts +15 -0
- package/src/clients/http.ts +194 -6
- package/src/clients/index.ts +116 -4
- package/src/clients/llama.ts +16 -0
- package/src/clients/mistral.ts +16 -0
- package/src/clients/nvidia.ts +16 -0
- package/src/clients/openai.ts +53 -12
- package/src/clients/openrouter.ts +17 -0
- package/src/clients/pricing/anthropic.ts +105 -78
- package/src/clients/pricing/cerebras.ts +11 -0
- package/src/clients/pricing/copilot.ts +60 -0
- package/src/clients/pricing/deepseek.ts +15 -0
- package/src/clients/pricing/fireworks.ts +32 -0
- package/src/clients/pricing/github.ts +69 -0
- package/src/clients/pricing/google.ts +245 -206
- package/src/clients/pricing/groq.ts +56 -0
- package/src/clients/pricing/index.ts +42 -5
- package/src/clients/pricing/llama.ts +18 -0
- package/src/clients/pricing/mistral.ts +34 -0
- package/src/clients/pricing/models.ts +7 -236
- package/src/clients/pricing/nvidia.ts +102 -0
- package/src/clients/pricing/openai.ts +348 -171
- package/src/clients/pricing/openrouter.ts +36 -0
- package/src/clients/pricing/types.ts +83 -2
- package/src/clients/pricing/xai.ts +121 -65
- package/src/clients/types.ts +28 -1
- package/src/clients/xai.ts +161 -1
- package/src/fileSync.ts +8 -2
- package/src/login.ts +11 -3
- package/src/services/AgentSyncFs.ts +36 -12
- package/src/services/KnowhowClient.ts +11 -0
- package/src/services/LazyToolsService.ts +6 -0
- package/src/services/S3.ts +0 -7
- package/src/services/modules/index.ts +11 -2
- package/src/types.ts +56 -279
- package/src/worker.ts +174 -0
- package/tests/clients/AIClient.test.ts +1 -1
- package/tests/clients/anthropic.test.ts +202 -0
- package/tests/clients/pricing.test.ts +37 -0
- package/tests/manual/clients/completions.json +838 -226
- package/tests/manual/clients/completions.test.ts +46 -31
- package/ts_build/package.json +3 -2
- package/ts_build/src/agents/base/base.d.ts +18 -1
- package/ts_build/src/agents/base/base.js +111 -4
- package/ts_build/src/agents/base/base.js.map +1 -1
- package/ts_build/src/agents/tools/execCommand.js +3 -0
- package/ts_build/src/agents/tools/execCommand.js.map +1 -1
- package/ts_build/src/agents/tools/executeScript/definition.js +1 -1
- package/ts_build/src/agents/tools/executeScript/definition.js.map +1 -1
- package/ts_build/src/agents/tools/index.d.ts +0 -1
- package/ts_build/src/agents/tools/index.js +0 -1
- package/ts_build/src/agents/tools/index.js.map +1 -1
- package/ts_build/src/agents/tools/list.js +3 -38
- package/ts_build/src/agents/tools/list.js.map +1 -1
- package/ts_build/src/agents/tools/visionTool.d.ts +1 -1
- package/ts_build/src/agents/tools/writeFile.js +1 -1
- package/ts_build/src/agents/tools/writeFile.js.map +1 -1
- package/ts_build/src/ai.d.ts +1 -1
- package/ts_build/src/auth/browserLogin.d.ts +2 -1
- package/ts_build/src/auth/browserLogin.js +10 -3
- package/ts_build/src/auth/browserLogin.js.map +1 -1
- package/ts_build/src/chat/modules/RemoteSyncModule.js +1 -0
- package/ts_build/src/chat/modules/RemoteSyncModule.js.map +1 -1
- package/ts_build/src/cli.js +19 -0
- package/ts_build/src/cli.js.map +1 -1
- package/ts_build/src/clients/anthropic.d.ts +1 -82
- package/ts_build/src/clients/anthropic.js +8 -2
- package/ts_build/src/clients/anthropic.js.map +1 -1
- package/ts_build/src/clients/cerebras.d.ts +4 -0
- package/ts_build/src/clients/cerebras.js +14 -0
- package/ts_build/src/clients/cerebras.js.map +1 -0
- package/ts_build/src/clients/contextLimits.js +7 -2
- package/ts_build/src/clients/contextLimits.js.map +1 -1
- package/ts_build/src/clients/copilot.d.ts +4 -0
- package/ts_build/src/clients/copilot.js +15 -0
- package/ts_build/src/clients/copilot.js.map +1 -0
- package/ts_build/src/clients/deepseek.d.ts +4 -0
- package/ts_build/src/clients/deepseek.js +15 -0
- package/ts_build/src/clients/deepseek.js.map +1 -0
- package/ts_build/src/clients/fireworks.d.ts +4 -0
- package/ts_build/src/clients/fireworks.js +15 -0
- package/ts_build/src/clients/fireworks.js.map +1 -0
- package/ts_build/src/clients/gemini.d.ts +1 -0
- package/ts_build/src/clients/gemini.js +38 -2
- package/ts_build/src/clients/gemini.js.map +1 -1
- package/ts_build/src/clients/github.d.ts +4 -0
- package/ts_build/src/clients/github.js +15 -0
- package/ts_build/src/clients/github.js.map +1 -0
- package/ts_build/src/clients/groq.d.ts +4 -0
- package/ts_build/src/clients/groq.js +15 -0
- package/ts_build/src/clients/groq.js.map +1 -0
- package/ts_build/src/clients/http.d.ts +22 -1
- package/ts_build/src/clients/http.js +135 -7
- package/ts_build/src/clients/http.js.map +1 -1
- package/ts_build/src/clients/index.d.ts +14 -0
- package/ts_build/src/clients/index.js +94 -4
- package/ts_build/src/clients/index.js.map +1 -1
- package/ts_build/src/clients/llama.d.ts +4 -0
- package/ts_build/src/clients/llama.js +15 -0
- package/ts_build/src/clients/llama.js.map +1 -0
- package/ts_build/src/clients/mistral.d.ts +4 -0
- package/ts_build/src/clients/mistral.js +15 -0
- package/ts_build/src/clients/mistral.js.map +1 -0
- package/ts_build/src/clients/nvidia.d.ts +4 -0
- package/ts_build/src/clients/nvidia.js +15 -0
- package/ts_build/src/clients/nvidia.js.map +1 -0
- package/ts_build/src/clients/openai.d.ts +4 -206
- package/ts_build/src/clients/openai.js +38 -10
- package/ts_build/src/clients/openai.js.map +1 -1
- package/ts_build/src/clients/openrouter.d.ts +4 -0
- package/ts_build/src/clients/openrouter.js +15 -0
- package/ts_build/src/clients/openrouter.js.map +1 -0
- package/ts_build/src/clients/pricing/anthropic.d.ts +26 -78
- package/ts_build/src/clients/pricing/anthropic.js +75 -78
- package/ts_build/src/clients/pricing/anthropic.js.map +1 -1
- package/ts_build/src/clients/pricing/cerebras.d.ts +4 -0
- package/ts_build/src/clients/pricing/cerebras.js +11 -0
- package/ts_build/src/clients/pricing/cerebras.js.map +1 -0
- package/ts_build/src/clients/pricing/copilot.d.ts +5 -0
- package/ts_build/src/clients/pricing/copilot.js +35 -0
- package/ts_build/src/clients/pricing/copilot.js.map +1 -0
- package/ts_build/src/clients/pricing/deepseek.d.ts +5 -0
- package/ts_build/src/clients/pricing/deepseek.js +10 -0
- package/ts_build/src/clients/pricing/deepseek.js.map +1 -0
- package/ts_build/src/clients/pricing/fireworks.d.ts +5 -0
- package/ts_build/src/clients/pricing/fireworks.js +21 -0
- package/ts_build/src/clients/pricing/fireworks.js.map +1 -0
- package/ts_build/src/clients/pricing/github.d.ts +4 -0
- package/ts_build/src/clients/pricing/github.js +58 -0
- package/ts_build/src/clients/pricing/github.js.map +1 -0
- package/ts_build/src/clients/pricing/google.d.ts +59 -6
- package/ts_build/src/clients/pricing/google.js +214 -167
- package/ts_build/src/clients/pricing/google.js.map +1 -1
- package/ts_build/src/clients/pricing/groq.d.ts +5 -0
- package/ts_build/src/clients/pricing/groq.js +41 -0
- package/ts_build/src/clients/pricing/groq.js.map +1 -0
- package/ts_build/src/clients/pricing/index.d.ts +16 -5
- package/ts_build/src/clients/pricing/index.js +62 -7
- package/ts_build/src/clients/pricing/index.js.map +1 -1
- package/ts_build/src/clients/pricing/llama.d.ts +4 -0
- package/ts_build/src/clients/pricing/llama.js +14 -0
- package/ts_build/src/clients/pricing/llama.js.map +1 -0
- package/ts_build/src/clients/pricing/mistral.d.ts +5 -0
- package/ts_build/src/clients/pricing/mistral.js +23 -0
- package/ts_build/src/clients/pricing/mistral.js.map +1 -0
- package/ts_build/src/clients/pricing/models.d.ts +5 -4
- package/ts_build/src/clients/pricing/models.js +8 -162
- package/ts_build/src/clients/pricing/models.js.map +1 -1
- package/ts_build/src/clients/pricing/nvidia.d.ts +8 -0
- package/ts_build/src/clients/pricing/nvidia.js +96 -0
- package/ts_build/src/clients/pricing/nvidia.js.map +1 -0
- package/ts_build/src/clients/pricing/openai.d.ts +86 -197
- package/ts_build/src/clients/pricing/openai.js +295 -168
- package/ts_build/src/clients/pricing/openai.js.map +1 -1
- package/ts_build/src/clients/pricing/openrouter.d.ts +4 -0
- package/ts_build/src/clients/pricing/openrouter.js +29 -0
- package/ts_build/src/clients/pricing/openrouter.js.map +1 -0
- package/ts_build/src/clients/pricing/types.d.ts +27 -2
- package/ts_build/src/clients/pricing/types.js +46 -0
- package/ts_build/src/clients/pricing/types.js.map +1 -1
- package/ts_build/src/clients/pricing/xai.d.ts +37 -57
- package/ts_build/src/clients/pricing/xai.js +92 -59
- package/ts_build/src/clients/pricing/xai.js.map +1 -1
- package/ts_build/src/clients/types.d.ts +12 -1
- package/ts_build/src/clients/xai.d.ts +2 -62
- package/ts_build/src/clients/xai.js +132 -1
- package/ts_build/src/clients/xai.js.map +1 -1
- package/ts_build/src/fileSync.js +7 -2
- package/ts_build/src/fileSync.js.map +1 -1
- package/ts_build/src/login.js +8 -2
- package/ts_build/src/login.js.map +1 -1
- package/ts_build/src/services/AgentSyncFs.js +1 -0
- package/ts_build/src/services/AgentSyncFs.js.map +1 -1
- package/ts_build/src/services/KnowhowClient.d.ts +1 -0
- package/ts_build/src/services/KnowhowClient.js +7 -0
- package/ts_build/src/services/KnowhowClient.js.map +1 -1
- package/ts_build/src/services/LazyToolsService.d.ts +1 -0
- package/ts_build/src/services/LazyToolsService.js +3 -0
- package/ts_build/src/services/LazyToolsService.js.map +1 -1
- package/ts_build/src/services/S3.js +0 -7
- package/ts_build/src/services/S3.js.map +1 -1
- package/ts_build/src/services/modules/index.js +41 -1
- package/ts_build/src/services/modules/index.js.map +1 -1
- package/ts_build/src/types.d.ts +163 -124
- package/ts_build/src/types.js +33 -213
- package/ts_build/src/types.js.map +1 -1
- package/ts_build/src/worker.d.ts +4 -0
- package/ts_build/src/worker.js +140 -0
- package/ts_build/src/worker.js.map +1 -1
- package/ts_build/tests/clients/AIClient.test.js +1 -1
- package/ts_build/tests/clients/AIClient.test.js.map +1 -1
- package/ts_build/tests/clients/anthropic.test.d.ts +1 -0
- package/ts_build/tests/clients/anthropic.test.js +159 -0
- package/ts_build/tests/clients/anthropic.test.js.map +1 -0
- package/ts_build/tests/clients/pricing.test.js +21 -0
- package/ts_build/tests/clients/pricing.test.js.map +1 -1
- package/ts_build/tests/manual/clients/completions.test.js +27 -24
- package/ts_build/tests/manual/clients/completions.test.js.map +1 -1
|
@@ -121,7 +121,11 @@ export class AgentSyncFs {
|
|
|
121
121
|
/**
|
|
122
122
|
* Update metadata file with current agent state
|
|
123
123
|
*/
|
|
124
|
-
private async updateMetadata(
|
|
124
|
+
private async updateMetadata(
|
|
125
|
+
agent: BaseAgent,
|
|
126
|
+
inProgress: boolean,
|
|
127
|
+
result?: string
|
|
128
|
+
): Promise<void> {
|
|
125
129
|
if (!this.taskPath) return;
|
|
126
130
|
|
|
127
131
|
try {
|
|
@@ -137,7 +141,8 @@ export class AgentSyncFs {
|
|
|
137
141
|
|
|
138
142
|
metadata.threads = agent.getThreads();
|
|
139
143
|
metadata.totalCostUsd = agent.getTotalCostUsd();
|
|
140
|
-
|
|
144
|
+
metadata.tokenUsage = agent.getTokenUsage();
|
|
145
|
+
metadata.agentName = agent.name;
|
|
141
146
|
metadata.inProgress = inProgress;
|
|
142
147
|
metadata.lastUpdate = new Date().toISOString();
|
|
143
148
|
|
|
@@ -147,7 +152,11 @@ export class AgentSyncFs {
|
|
|
147
152
|
await this.writeStatus("completed");
|
|
148
153
|
}
|
|
149
154
|
|
|
150
|
-
await fs.writeFile(
|
|
155
|
+
await fs.writeFile(
|
|
156
|
+
metadataPath,
|
|
157
|
+
JSON.stringify(metadata, null, 2),
|
|
158
|
+
"utf8"
|
|
159
|
+
);
|
|
151
160
|
} catch (error) {
|
|
152
161
|
console.error(`❌ Failed to update metadata:`, error);
|
|
153
162
|
}
|
|
@@ -206,7 +215,9 @@ export class AgentSyncFs {
|
|
|
206
215
|
// Check for new input/messages
|
|
207
216
|
const input = await this.readInput();
|
|
208
217
|
if (input && input !== this.lastInputContent && input.trim() !== "") {
|
|
209
|
-
console.log(
|
|
218
|
+
console.log(
|
|
219
|
+
`📬 New message received via filesystem for task ${this.taskId}`
|
|
220
|
+
);
|
|
210
221
|
this.lastInputContent = input;
|
|
211
222
|
|
|
212
223
|
agent.addPendingUserMessage({
|
|
@@ -234,7 +245,7 @@ export class AgentSyncFs {
|
|
|
234
245
|
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
235
246
|
|
|
236
247
|
const status = await this.readStatus();
|
|
237
|
-
|
|
248
|
+
|
|
238
249
|
if (status === "killed") {
|
|
239
250
|
console.log(`🛑 Agent task ${this.taskId} killed while paused`);
|
|
240
251
|
await agent.kill();
|
|
@@ -314,7 +325,10 @@ export class AgentSyncFs {
|
|
|
314
325
|
console.error(`❌ Error during threadUpdate sync:`, error);
|
|
315
326
|
}
|
|
316
327
|
};
|
|
317
|
-
agent.agentEvents.on(
|
|
328
|
+
agent.agentEvents.on(
|
|
329
|
+
agent.eventTypes.threadUpdate,
|
|
330
|
+
this.threadUpdateHandler
|
|
331
|
+
);
|
|
318
332
|
|
|
319
333
|
// Listen to completion event to finalize task (store reference for cleanup)
|
|
320
334
|
this.doneHandler = (result: string) => {
|
|
@@ -323,7 +337,9 @@ export class AgentSyncFs {
|
|
|
323
337
|
return;
|
|
324
338
|
}
|
|
325
339
|
|
|
326
|
-
console.log(
|
|
340
|
+
console.log(
|
|
341
|
+
`🎯 [AgentSyncFs] Done event received for task: ${this.taskId}`
|
|
342
|
+
);
|
|
327
343
|
|
|
328
344
|
// Store finalization promise so callers can await it (same pattern as AgentSyncKnowhowWeb)
|
|
329
345
|
this.finalizationPromise = (async () => {
|
|
@@ -332,7 +348,9 @@ export class AgentSyncFs {
|
|
|
332
348
|
// This prevents the race where a pending "inProgress: true" metadata write
|
|
333
349
|
// overwrites the finalization write.
|
|
334
350
|
if (this.pendingThreadUpdatePromise) {
|
|
335
|
-
console.log(
|
|
351
|
+
console.log(
|
|
352
|
+
`⏳ [AgentSyncFs] Awaiting pending thread update before finalizing...`
|
|
353
|
+
);
|
|
336
354
|
await this.pendingThreadUpdatePromise.catch(() => {
|
|
337
355
|
// Ignore errors in pending update — we still want to finalize
|
|
338
356
|
});
|
|
@@ -379,7 +397,7 @@ export class AgentSyncFs {
|
|
|
379
397
|
private static async cleanupOldTasks(): Promise<void> {
|
|
380
398
|
try {
|
|
381
399
|
const agentsPath = AgentSyncFs.sharedBasePath;
|
|
382
|
-
|
|
400
|
+
|
|
383
401
|
// Check if directory exists
|
|
384
402
|
try {
|
|
385
403
|
await fs.access(agentsPath);
|
|
@@ -396,7 +414,7 @@ export class AgentSyncFs {
|
|
|
396
414
|
if (!entry.isDirectory()) continue;
|
|
397
415
|
|
|
398
416
|
const taskPath = path.join(agentsPath, entry.name);
|
|
399
|
-
|
|
417
|
+
|
|
400
418
|
try {
|
|
401
419
|
const stats = await fs.stat(taskPath);
|
|
402
420
|
const age = now - stats.mtimeMs;
|
|
@@ -449,11 +467,17 @@ export class AgentSyncFs {
|
|
|
449
467
|
// Remove old event listeners from the agent before resetting
|
|
450
468
|
if (this.agent) {
|
|
451
469
|
if (this.threadUpdateHandler) {
|
|
452
|
-
this.agent.agentEvents.removeListener(
|
|
470
|
+
this.agent.agentEvents.removeListener(
|
|
471
|
+
this.agent.eventTypes.threadUpdate,
|
|
472
|
+
this.threadUpdateHandler
|
|
473
|
+
);
|
|
453
474
|
this.threadUpdateHandler = undefined;
|
|
454
475
|
}
|
|
455
476
|
if (this.doneHandler) {
|
|
456
|
-
this.agent.agentEvents.removeListener(
|
|
477
|
+
this.agent.agentEvents.removeListener(
|
|
478
|
+
this.agent.eventTypes.done,
|
|
479
|
+
this.doneHandler
|
|
480
|
+
);
|
|
457
481
|
this.doneHandler = undefined;
|
|
458
482
|
}
|
|
459
483
|
this.agent = undefined;
|
|
@@ -144,6 +144,17 @@ export class KnowhowSimpleClient {
|
|
|
144
144
|
this.setJwt(jwt);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
+
/**
|
|
148
|
+
* Reload the JWT from disk (useful after login refreshes the token).
|
|
149
|
+
*/
|
|
150
|
+
refreshJwt() {
|
|
151
|
+
const freshJwt = loadKnowhowJwt();
|
|
152
|
+
if (freshJwt) {
|
|
153
|
+
this.setJwt(freshJwt);
|
|
154
|
+
this.jwtValidated = false;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
147
158
|
setJwt(jwt: string) {
|
|
148
159
|
this.jwt = jwt;
|
|
149
160
|
this.headers = {
|
|
@@ -57,6 +57,12 @@ export class LazyToolsService extends ToolsService {
|
|
|
57
57
|
this.updateVisibleTools();
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
// Override addTool (singular) to also route through allTools so that
|
|
61
|
+
// module-registered tools (via ModulesService.addTool) are tracked correctly.
|
|
62
|
+
addTool(tool: Tool) {
|
|
63
|
+
this.addTools([tool]);
|
|
64
|
+
}
|
|
65
|
+
|
|
60
66
|
// Override getTools to return only enabled tools
|
|
61
67
|
getTools() {
|
|
62
68
|
return this.tools; // Returns filtered subset
|
package/src/services/S3.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import * as fs from "fs";
|
|
2
|
-
import * as crypto from "crypto";
|
|
3
2
|
import { createWriteStream, createReadStream } from "fs";
|
|
4
3
|
import { pipeline, Readable } from "stream";
|
|
5
4
|
import * as util from "util";
|
|
@@ -14,17 +13,11 @@ export class S3Service {
|
|
|
14
13
|
try {
|
|
15
14
|
const fileContent = fs.readFileSync(filePath);
|
|
16
15
|
const fileStats = await fs.promises.stat(filePath);
|
|
17
|
-
const sha256Base64 = crypto
|
|
18
|
-
.createHash("sha256")
|
|
19
|
-
.update(fileContent)
|
|
20
|
-
.digest("base64");
|
|
21
16
|
|
|
22
17
|
const response = await fetch(presignedUrl, {
|
|
23
18
|
method: "PUT",
|
|
24
19
|
headers: {
|
|
25
20
|
"Content-Length": String(fileStats.size),
|
|
26
|
-
"x-amz-checksum-sha256": sha256Base64,
|
|
27
|
-
"x-amz-sdk-checksum-algorithm": "SHA256",
|
|
28
21
|
},
|
|
29
22
|
body: fileContent,
|
|
30
23
|
// @ts-ignore
|
|
@@ -2,7 +2,7 @@ import { getConfig, getGlobalConfig } from "../../config";
|
|
|
2
2
|
import { KnowhowModule, ModuleContext } from "./types";
|
|
3
3
|
import { ToolsService } from "../Tools";
|
|
4
4
|
import { services } from "../";
|
|
5
|
-
import
|
|
5
|
+
import * as path from "path";
|
|
6
6
|
|
|
7
7
|
export class ModulesService {
|
|
8
8
|
async loadModulesFromConfig(context?: ModuleContext) {
|
|
@@ -35,8 +35,17 @@ export class ModulesService {
|
|
|
35
35
|
];
|
|
36
36
|
|
|
37
37
|
for (const modulePath of allModulePaths) {
|
|
38
|
-
|
|
38
|
+
// Resolve relative paths relative to process.cwd() so that paths like
|
|
39
|
+
// "../../packages/knowhow-module-load-webpage" in knowhow.json work
|
|
40
|
+
// regardless of where the compiled output lives.
|
|
41
|
+
const resolvedPath = modulePath.startsWith(".")
|
|
42
|
+
? path.resolve(process.cwd(), modulePath)
|
|
43
|
+
: modulePath;
|
|
44
|
+
const rawModule = require(resolvedPath);
|
|
45
|
+
const importedModule = (rawModule.default || rawModule) as KnowhowModule;
|
|
46
|
+
console.log(`🔌 Loading module: ${modulePath} (resolved: ${resolvedPath})`);
|
|
39
47
|
await importedModule.init({ config, cwd: process.cwd(), context });
|
|
48
|
+
console.log(`✅ Module initialized: ${modulePath} (tools: ${importedModule.tools.length}, agents: ${importedModule.agents.length}, plugins: ${importedModule.plugins.length}, clients: ${importedModule.clients.length})`);
|
|
40
49
|
|
|
41
50
|
for (const agent of importedModule.agents) {
|
|
42
51
|
agentService.registerAgent(agent);
|
package/src/types.ts
CHANGED
|
@@ -4,7 +4,6 @@ import { WebSocket } from "ws";
|
|
|
4
4
|
export type Hashes = {
|
|
5
5
|
[file: string]: {
|
|
6
6
|
[promptHash: string]: string;
|
|
7
|
-
|
|
8
7
|
promptHash: string;
|
|
9
8
|
fileHash: string;
|
|
10
9
|
};
|
|
@@ -38,37 +37,25 @@ export type Config = {
|
|
|
38
37
|
openaiBaseUrl?: string;
|
|
39
38
|
promptsDir: string;
|
|
40
39
|
lintCommands?: { [fileExtension: string]: string };
|
|
41
|
-
|
|
40
|
+
orgId?: string;
|
|
42
41
|
syncRemote?: boolean;
|
|
43
|
-
|
|
44
42
|
micCommand?: string;
|
|
45
43
|
defaultMic?: string;
|
|
46
|
-
|
|
47
44
|
sources: GenerationSource[];
|
|
48
45
|
embedSources: EmbedSource[];
|
|
49
46
|
embeddingModel: string;
|
|
50
|
-
|
|
51
47
|
skills?: string[];
|
|
52
|
-
|
|
53
48
|
plugins: { enabled: string[]; disabled: string[] };
|
|
54
|
-
|
|
55
49
|
chat?: {
|
|
56
|
-
/** Path to a custom root chat module (npm package or local file) */
|
|
57
50
|
rootModule?: string;
|
|
58
|
-
/** Path to a custom renderer (npm package or local file, can be .ts) */
|
|
59
51
|
renderer?: string;
|
|
60
|
-
/** Additional chat modules to load (npm packages or local files, can be .ts) */
|
|
61
52
|
modules?: string[];
|
|
62
53
|
};
|
|
63
|
-
|
|
64
54
|
modules: string[];
|
|
65
|
-
|
|
66
55
|
pluginPackages?: Record<string, string>;
|
|
67
|
-
|
|
68
56
|
agents: Assistant[];
|
|
69
57
|
mcps: McpConfig[];
|
|
70
58
|
modelProviders: ModelProvider[];
|
|
71
|
-
|
|
72
59
|
ycmd?: {
|
|
73
60
|
enabled?: boolean;
|
|
74
61
|
installPath?: string;
|
|
@@ -76,13 +63,11 @@ export type Config = {
|
|
|
76
63
|
logLevel?: "debug" | "info" | "warning" | "error";
|
|
77
64
|
completionTimeout?: number;
|
|
78
65
|
};
|
|
79
|
-
|
|
80
66
|
files?: {
|
|
81
|
-
remotePath: string;
|
|
82
|
-
localPath: string;
|
|
83
|
-
direction?: "download" | "upload" | "sync";
|
|
67
|
+
remotePath: string;
|
|
68
|
+
localPath: string;
|
|
69
|
+
direction?: "download" | "upload" | "sync";
|
|
84
70
|
}[];
|
|
85
|
-
|
|
86
71
|
worker?: {
|
|
87
72
|
allowedTools?: string[];
|
|
88
73
|
workerId?: string;
|
|
@@ -92,24 +77,20 @@ export type Config = {
|
|
|
92
77
|
auth?: {
|
|
93
78
|
required?: boolean;
|
|
94
79
|
passkey?: {
|
|
95
|
-
publicKey?: string;
|
|
96
|
-
credentialId?: string;
|
|
97
|
-
algorithm?: string;
|
|
80
|
+
publicKey?: string;
|
|
81
|
+
credentialId?: string;
|
|
82
|
+
algorithm?: string;
|
|
98
83
|
};
|
|
99
84
|
sessionDurationHours?: number;
|
|
100
85
|
};
|
|
101
|
-
commandAuth?: {
|
|
102
|
-
[toolName: string]: "always" | "session" | "never";
|
|
103
|
-
};
|
|
86
|
+
commandAuth?: { [toolName: string]: "always" | "session" | "never" };
|
|
104
87
|
tunnel?: {
|
|
105
88
|
enabled?: boolean;
|
|
106
89
|
allowedPorts?: number[];
|
|
107
90
|
maxConcurrentStreams?: number;
|
|
108
|
-
portMapping?: {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
localHost?: string; // Default: "127.0.0.1", can be "host.docker.internal" for Docker
|
|
112
|
-
enableUrlRewriting?: boolean; // Enable URL rewriting for localhost URLs (default: true)
|
|
91
|
+
portMapping?: { [containerPort: number]: number };
|
|
92
|
+
localHost?: string;
|
|
93
|
+
enableUrlRewriting?: boolean;
|
|
113
94
|
};
|
|
114
95
|
};
|
|
115
96
|
};
|
|
@@ -124,7 +105,7 @@ export type Assistant = {
|
|
|
124
105
|
|
|
125
106
|
export type McpConfig = {
|
|
126
107
|
name: string;
|
|
127
|
-
autoConnect?: boolean;
|
|
108
|
+
autoConnect?: boolean;
|
|
128
109
|
command?: string;
|
|
129
110
|
url?: string;
|
|
130
111
|
args?: string[];
|
|
@@ -140,6 +121,10 @@ export type ModelProvider = {
|
|
|
140
121
|
envKey?: string;
|
|
141
122
|
headers?: { [key: string]: string };
|
|
142
123
|
jwtFile?: string;
|
|
124
|
+
timeout?: number;
|
|
125
|
+
extra_body?: Record<string, any>;
|
|
126
|
+
/** Optional pricing map (model id → per-million-token prices) passed to HttpClient.setPrices() */
|
|
127
|
+
pricing?: Record<string, { input?: number; output?: number; cached_input?: number; cache_hit?: number }>;
|
|
143
128
|
};
|
|
144
129
|
|
|
145
130
|
export type AssistantConfig = {
|
|
@@ -153,17 +138,13 @@ export interface Embeddable<T = any> {
|
|
|
153
138
|
metadata: T;
|
|
154
139
|
}
|
|
155
140
|
|
|
156
|
-
export type MinimalEmbedding<T = any> = Pick<
|
|
157
|
-
Embeddable<T>,
|
|
158
|
-
"id" | "text" | "metadata"
|
|
159
|
-
>;
|
|
141
|
+
export type MinimalEmbedding<T = any> = Pick<Embeddable<T>, "id" | "text" | "metadata">;
|
|
160
142
|
|
|
161
143
|
export interface EmbeddingBase<T = any> extends Embeddable<T> {
|
|
162
144
|
similarity?: number;
|
|
163
145
|
}
|
|
164
146
|
|
|
165
147
|
export type GptQuestionEmbedding = any & EmbeddingBase;
|
|
166
|
-
|
|
167
148
|
export type DatasourceType = "file" | "url" | "text";
|
|
168
149
|
|
|
169
150
|
export interface IDatasource {
|
|
@@ -186,150 +167,55 @@ export type ChatInteraction = {
|
|
|
186
167
|
taskId: string;
|
|
187
168
|
};
|
|
188
169
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
Grok4_1_Fast_Reasoning: "grok-4-1-fast-reasoning",
|
|
208
|
-
Grok4_1_Fast_NonReasoning: "grok-4-1-fast-non-reasoning",
|
|
209
|
-
GrokCodeFast: "grok-code-fast-1",
|
|
210
|
-
Grok4: "grok-4-0709",
|
|
211
|
-
Grok3Beta: "grok-3-beta",
|
|
212
|
-
Grok3MiniBeta: "grok-3-mini-beta",
|
|
213
|
-
Grok3FastBeta: "grok-3-fast-beta",
|
|
214
|
-
Grok3MiniFastBeta: "grok-3-mini-fast-beta",
|
|
215
|
-
Grok21212: "grok-2-1212",
|
|
216
|
-
Grok2Vision1212: "grok-2-vision-1212",
|
|
217
|
-
GrokImagineImage: "grok-imagine-image",
|
|
218
|
-
GrokImagineVideo: "grok-imagine-video",
|
|
219
|
-
},
|
|
220
|
-
openai: {
|
|
221
|
-
GPT_54: "gpt-5.4",
|
|
222
|
-
GPT_54_Mini: "gpt-5.4-mini",
|
|
223
|
-
GPT_54_Nano: "gpt-5.4-nano",
|
|
224
|
-
GPT_54_Pro: "gpt-5.4-pro",
|
|
225
|
-
GPT_53_Chat: "gpt-5.3-chat-latest",
|
|
226
|
-
GPT_53_Codex: "gpt-5.3-codex",
|
|
227
|
-
GPT_5_2: "gpt-5.2",
|
|
228
|
-
GPT_5_1: "gpt-5.1",
|
|
229
|
-
GPT_5: "gpt-5",
|
|
230
|
-
GPT_5_Mini: "gpt-5-mini",
|
|
231
|
-
GPT_5_Nano: "gpt-5-nano",
|
|
232
|
-
GPT_41: "gpt-4.1-2025-04-14",
|
|
233
|
-
GPT_41_Mini: "gpt-4.1-mini-2025-04-14",
|
|
234
|
-
GPT_41_Nano: "gpt-4.1-nano-2025-04-14",
|
|
235
|
-
GPT_45: "gpt-4.5-preview-2025-02-27",
|
|
236
|
-
GPT_4o: "gpt-4o-2024-08-06",
|
|
237
|
-
GPT_4o_Audio: "gpt-4o-audio-preview-2024-12-17",
|
|
238
|
-
GPT_4o_Realtime: "gpt-4o-realtime-preview-2024-12-17",
|
|
239
|
-
GPT_4o_Mini: "gpt-4o-mini-2024-07-18",
|
|
240
|
-
GPT_4o_Mini_Audio: "gpt-4o-mini-audio-preview-2024-12-17",
|
|
241
|
-
GPT_4o_Mini_Realtime: "gpt-4o-mini-realtime-preview-2024-12-17",
|
|
242
|
-
o1: "o1-2024-12-17",
|
|
243
|
-
o1_Pro: "o1-pro-2025-03-19",
|
|
244
|
-
o3: "o3-2025-04-16",
|
|
245
|
-
o3_Pro: "o3-pro-2025-01-31",
|
|
246
|
-
o4_Mini: "o4-mini-2025-04-16",
|
|
247
|
-
o3_Mini: "o3-mini-2025-01-31",
|
|
248
|
-
o1_Mini: "o1-mini-2024-09-12",
|
|
249
|
-
GPT_4o_Mini_Search: "gpt-4o-mini-search-preview-2025-03-11",
|
|
250
|
-
GPT_4o_Search: "gpt-4o-search-preview-2025-03-11",
|
|
170
|
+
// ─── Model IDs ────────────────────────────────────────────────────────────────
|
|
171
|
+
// Each provider's pricing file is the single source of truth.
|
|
172
|
+
|
|
173
|
+
import { AnthropicModels, AnthropicTextModels } from "./clients/pricing/anthropic";
|
|
174
|
+
import {
|
|
175
|
+
OpenAiModels, OpenAiEmbeddingModels,
|
|
176
|
+
OpenAiReasoningModels, OpenAiChatModels, OpenAiEmbeddingModelsList,
|
|
177
|
+
OpenAiResponsesOnlyModels, OpenAiImageModels, OpenAiVideoModels,
|
|
178
|
+
OpenAiTTSModels, OpenAiTranscriptionModels, OpenAiRealtimeModels,
|
|
179
|
+
} from "./clients/pricing/openai";
|
|
180
|
+
import {
|
|
181
|
+
GoogleModels, GoogleEmbeddingModels,
|
|
182
|
+
GoogleTextModels, GoogleImageModels, GoogleVideoModels,
|
|
183
|
+
GoogleTTSModels, GoogleEmbeddingModelsList, GoogleThinkingLevelModels, GoogleThinkingBudgetModels,
|
|
184
|
+
} from "./clients/pricing/google";
|
|
185
|
+
import {
|
|
186
|
+
XaiModels, XaiTextModels, XaiImageModels, XaiVideoModels, XaiResponsesOnlyModels, XaiReasoningModels,
|
|
187
|
+
} from "./clients/pricing/xai";
|
|
251
188
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
GPT_Image_1_Mini: "gpt-image-1-mini",
|
|
258
|
-
TTS_1: "tts-1",
|
|
259
|
-
Whisper_1: "whisper-1",
|
|
260
|
-
DALL_E_3: "dall-e-3",
|
|
261
|
-
DALL_E_2: "dall-e-2",
|
|
262
|
-
Sora: "sora",
|
|
263
|
-
Sora_2: "sora-2",
|
|
264
|
-
Sora_2_Pro: "sora-2-pro",
|
|
265
|
-
// Computer_Use: "computer-use-preview-2025-03-11",
|
|
266
|
-
// Codex_Mini: "codex-mini-latest",
|
|
267
|
-
},
|
|
268
|
-
google: {
|
|
269
|
-
// Gemini 3.x
|
|
270
|
-
Gemini_31_Pro_Preview: "gemini-3.1-pro-preview",
|
|
271
|
-
Gemini_31_Flash_Image_Preview: "gemini-3.1-flash-image-preview",
|
|
272
|
-
Gemini_31_Flash_Lite_Preview: "gemini-3.1-flash-lite-preview",
|
|
273
|
-
Gemini_31_Flash_Live_Preview: "gemini-3.1-flash-live-preview",
|
|
274
|
-
Gemini_3_Flash_Preview: "gemini-3-flash-preview",
|
|
275
|
-
Gemini_3_Pro_Image_Preview: "gemini-3-pro-image-preview",
|
|
276
|
-
// Gemini 2.5
|
|
277
|
-
Gemini_25_Pro: "gemini-2.5-pro",
|
|
278
|
-
Gemini_25_Flash: "gemini-2.5-flash",
|
|
279
|
-
Gemini_25_Flash_Lite: "gemini-2.5-flash-lite",
|
|
280
|
-
Gemini_25_Flash_Preview: "gemini-2.5-flash-preview-05-20",
|
|
281
|
-
Gemini_25_Pro_Preview: "gemini-2.5-pro-preview-05-06",
|
|
282
|
-
Gemini_25_Flash_Image: "gemini-2.5-flash-image",
|
|
283
|
-
Gemini_25_Flash_Live: "gemini-2.5-flash-live-preview",
|
|
284
|
-
Gemini_25_Flash_Native_Audio:
|
|
285
|
-
"gemini-2.5-flash-native-audio-preview-12-2025",
|
|
286
|
-
Gemini_25_Pro_TTS: "gemini-2.5-pro-preview-tts",
|
|
287
|
-
// Gemini 2.0 (deprecated)
|
|
288
|
-
Gemini_20_Flash: "gemini-2.0-flash",
|
|
289
|
-
Gemini_20_Flash_Preview_Image_Generation:
|
|
290
|
-
"gemini-2.0-flash-exp-image-generation",
|
|
291
|
-
// Gemini 1.5 (legacy)
|
|
292
|
-
Gemini_15_Flash: "gemini-1.5-flash",
|
|
293
|
-
Gemini_15_Flash_8B: "gemini-1.5-flash-8b",
|
|
294
|
-
Gemini_15_Pro: "gemini-1.5-pro",
|
|
295
|
-
// Media generation
|
|
296
|
-
Imagen_3: "imagen-4.0-generate-001",
|
|
297
|
-
Imagen_4_Fast: "imagen-4.0-fast-generate-001",
|
|
298
|
-
Imagen_4_Ultra: "imagen-4.0-ultra-generate-001",
|
|
299
|
-
Veo_2: "veo-2.0-generate-001",
|
|
300
|
-
Veo_3: "veo-3.0-generate-001",
|
|
301
|
-
Veo_3_Fast: "veo-3.0-fast-generate-001",
|
|
302
|
-
Veo_3_1: "veo-3.1-generate-preview",
|
|
303
|
-
Veo_3_1_Fast: "veo-3.1-fast-generate-preview",
|
|
304
|
-
// Audio / Live
|
|
305
|
-
Gemini_20_Flash_Live: "gemini-2.0-flash-live-001",
|
|
306
|
-
Gemini_25_Flash_TTS: "gemini-2.5-flash-preview-tts",
|
|
307
|
-
Gemini_20_Flash_TTS: "gemini-2.0-flash-preview-tts",
|
|
308
|
-
},
|
|
189
|
+
export const Models = {
|
|
190
|
+
anthropic: AnthropicModels,
|
|
191
|
+
xai: XaiModels,
|
|
192
|
+
openai: OpenAiModels,
|
|
193
|
+
google: GoogleModels,
|
|
309
194
|
};
|
|
310
195
|
|
|
311
196
|
export const EmbeddingModels = {
|
|
312
|
-
openai:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
197
|
+
openai: OpenAiEmbeddingModels,
|
|
198
|
+
google: GoogleEmbeddingModels,
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
// Re-export modality arrays for consumers
|
|
202
|
+
export {
|
|
203
|
+
OpenAiReasoningModels, OpenAiChatModels, OpenAiEmbeddingModelsList,
|
|
204
|
+
OpenAiResponsesOnlyModels, OpenAiImageModels, OpenAiVideoModels,
|
|
205
|
+
OpenAiTTSModels, OpenAiTranscriptionModels, OpenAiRealtimeModels,
|
|
206
|
+
GoogleTextModels as GoogleReasoningModels,
|
|
207
|
+
GoogleImageModels, GoogleVideoModels, GoogleTTSModels, GoogleEmbeddingModelsList,
|
|
208
|
+
GoogleThinkingLevelModels, GoogleThinkingBudgetModels,
|
|
209
|
+
AnthropicTextModels,
|
|
210
|
+
XaiTextModels, XaiImageModels, XaiVideoModels, XaiResponsesOnlyModels, XaiReasoningModels,
|
|
321
211
|
};
|
|
322
212
|
|
|
323
|
-
export function getEnabledPlugins(
|
|
324
|
-
plugins: Config["plugins"] | undefined
|
|
325
|
-
): string[] {
|
|
213
|
+
export function getEnabledPlugins(plugins: Config["plugins"] | undefined): string[] {
|
|
326
214
|
if (!plugins) return [];
|
|
327
215
|
return plugins.enabled ?? [];
|
|
328
216
|
}
|
|
329
217
|
|
|
330
|
-
export function getDisabledPlugins(
|
|
331
|
-
plugins: Config["plugins"] | undefined
|
|
332
|
-
): string[] {
|
|
218
|
+
export function getDisabledPlugins(plugins: Config["plugins"] | undefined): string[] {
|
|
333
219
|
if (!plugins) return [];
|
|
334
220
|
return plugins.disabled ?? [];
|
|
335
221
|
}
|
|
@@ -338,112 +224,3 @@ export const Providers = Object.keys(Models).reduce((obj, key) => {
|
|
|
338
224
|
obj[key] = key;
|
|
339
225
|
return obj;
|
|
340
226
|
}, {}) as { [key in keyof typeof Models]: keyof typeof Models };
|
|
341
|
-
|
|
342
|
-
export const OpenAiReasoningModels = [
|
|
343
|
-
Models.openai.o1,
|
|
344
|
-
Models.openai.o1_Mini,
|
|
345
|
-
Models.openai.o3_Mini,
|
|
346
|
-
Models.openai.o3,
|
|
347
|
-
Models.openai.o3_Pro,
|
|
348
|
-
Models.openai.o4_Mini,
|
|
349
|
-
Models.openai.GPT_54,
|
|
350
|
-
Models.openai.GPT_54_Mini,
|
|
351
|
-
Models.openai.GPT_54_Nano,
|
|
352
|
-
Models.openai.GPT_54_Pro,
|
|
353
|
-
Models.openai.GPT_53_Chat,
|
|
354
|
-
Models.openai.GPT_53_Codex,
|
|
355
|
-
Models.openai.GPT_5,
|
|
356
|
-
Models.openai.GPT_5_Mini,
|
|
357
|
-
Models.openai.GPT_5_Nano,
|
|
358
|
-
Models.openai.GPT_5_1,
|
|
359
|
-
Models.openai.GPT_5_2,
|
|
360
|
-
];
|
|
361
|
-
|
|
362
|
-
export const OpenAiEmbeddingModels = [
|
|
363
|
-
EmbeddingModels.openai.EmbeddingAda2,
|
|
364
|
-
EmbeddingModels.openai.EmbeddingLarge3,
|
|
365
|
-
EmbeddingModels.openai.EmbeddingSmall3,
|
|
366
|
-
];
|
|
367
|
-
|
|
368
|
-
// Models that ONLY support the Responses API (not Chat Completions)
|
|
369
|
-
export const OpenAiResponsesOnlyModels = [
|
|
370
|
-
Models.openai.GPT_53_Codex,
|
|
371
|
-
Models.openai.GPT_54,
|
|
372
|
-
Models.openai.GPT_54_Mini,
|
|
373
|
-
Models.openai.GPT_54_Nano,
|
|
374
|
-
Models.openai.GPT_54_Pro,
|
|
375
|
-
];
|
|
376
|
-
|
|
377
|
-
export const GoogleReasoningModels = [
|
|
378
|
-
Models.google.Gemini_31_Pro_Preview,
|
|
379
|
-
Models.google.Gemini_31_Flash_Lite_Preview,
|
|
380
|
-
Models.google.Gemini_3_Flash_Preview,
|
|
381
|
-
Models.google.Gemini_25_Pro,
|
|
382
|
-
Models.google.Gemini_25_Flash,
|
|
383
|
-
Models.google.Gemini_25_Flash_Lite,
|
|
384
|
-
Models.google.Gemini_25_Flash_Preview,
|
|
385
|
-
Models.google.Gemini_25_Pro_Preview,
|
|
386
|
-
Models.google.Gemini_20_Flash,
|
|
387
|
-
Models.google.Gemini_15_Flash,
|
|
388
|
-
Models.google.Gemini_15_Flash_8B,
|
|
389
|
-
Models.google.Gemini_15_Pro,
|
|
390
|
-
];
|
|
391
|
-
|
|
392
|
-
export const GoogleImageModels = [
|
|
393
|
-
Models.google.Gemini_31_Flash_Image_Preview,
|
|
394
|
-
Models.google.Gemini_3_Pro_Image_Preview,
|
|
395
|
-
Models.google.Gemini_25_Flash_Image,
|
|
396
|
-
Models.google.Gemini_20_Flash_Preview_Image_Generation,
|
|
397
|
-
Models.google.Imagen_3,
|
|
398
|
-
Models.google.Imagen_4_Fast,
|
|
399
|
-
Models.google.Imagen_4_Ultra,
|
|
400
|
-
];
|
|
401
|
-
|
|
402
|
-
export const OpenAiImageModels = [
|
|
403
|
-
Models.openai.DALL_E_3,
|
|
404
|
-
Models.openai.DALL_E_2,
|
|
405
|
-
Models.openai.GPT_Image_15,
|
|
406
|
-
Models.openai.GPT_Image_1_Mini,
|
|
407
|
-
];
|
|
408
|
-
|
|
409
|
-
export const OpenAiVideoModels = [
|
|
410
|
-
Models.openai.Sora,
|
|
411
|
-
Models.openai.Sora_2,
|
|
412
|
-
Models.openai.Sora_2_Pro,
|
|
413
|
-
];
|
|
414
|
-
|
|
415
|
-
export const OpenAiTTSModels = [Models.openai.TTS_1];
|
|
416
|
-
|
|
417
|
-
export const XaiImageModels = [Models.xai.GrokImagineImage];
|
|
418
|
-
export const OpenAiTranscriptionModels = [
|
|
419
|
-
Models.openai.Whisper_1,
|
|
420
|
-
Models.openai.GPT_4o_Transcribe,
|
|
421
|
-
Models.openai.GPT_4o_Mini_Transcribe,
|
|
422
|
-
];
|
|
423
|
-
|
|
424
|
-
export const OpenAiRealtimeModels = [
|
|
425
|
-
Models.openai.GPT_4o_Realtime,
|
|
426
|
-
Models.openai.GPT_4o_Mini_Realtime,
|
|
427
|
-
Models.openai.GPT_Realtime_15,
|
|
428
|
-
Models.openai.GPT_Realtime_Mini,
|
|
429
|
-
];
|
|
430
|
-
export const XaiVideoModels = [Models.xai.GrokImagineVideo];
|
|
431
|
-
|
|
432
|
-
export const GoogleTTSModels = [
|
|
433
|
-
Models.google.Gemini_25_Flash_TTS,
|
|
434
|
-
Models.google.Gemini_25_Pro_TTS,
|
|
435
|
-
Models.google.Gemini_20_Flash_TTS,
|
|
436
|
-
];
|
|
437
|
-
|
|
438
|
-
export const GoogleVideoModels = [
|
|
439
|
-
Models.google.Veo_2,
|
|
440
|
-
Models.google.Veo_3,
|
|
441
|
-
Models.google.Veo_3_Fast,
|
|
442
|
-
Models.google.Veo_3_1,
|
|
443
|
-
Models.google.Veo_3_1_Fast,
|
|
444
|
-
];
|
|
445
|
-
|
|
446
|
-
export const GoogleEmbeddingModels = [
|
|
447
|
-
EmbeddingModels.google.Gemini_Embedding,
|
|
448
|
-
EmbeddingModels.google.Gemini_Embedding_001,
|
|
449
|
-
];
|