Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
},
"devDependencies": {
"@eslint/js": "^9.13.0",
"@types/node": "^25.7.0",
"@typescript-eslint/eslint-plugin": "^8.34.1",
"@typescript-eslint/parser": "^8.34.1",
"eslint": "^9.29.0",
Expand Down
2 changes: 2 additions & 0 deletions packages/app/server/src/providers/VertexAIProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import { env } from '../env';
// Constants
export const PROXY_PASSTHROUGH_ONLY_MODEL = 'PROXY_PLACEHOLDER_VERTEX_AI';
const VEO3_MODELS = [
'veo-3.1-fast-generate-preview',
'veo-3.1-generate-preview',
'veo-3.0-fast-generate-preview',
'veo-3.0-generate-preview',
];
Expand Down
2 changes: 1 addition & 1 deletion packages/app/server/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ type TokenAmount = string;
type Url = string;
type Nonce = string;

interface ExactEvmPayloadAuthorization {
export interface ExactEvmPayloadAuthorization {
from: Address;
to: Address;
value: TokenAmount;
Expand Down
16 changes: 16 additions & 0 deletions packages/sdk/ts/src/supported-models/video/vertex-ai.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,32 @@
import type { SupportedVideoModel } from '../types';

export type VertexAIVideoModel =
| 'veo-3.1-fast-generate-preview'
| 'veo-3.1-generate-preview'
| 'veo-3.0-fast-generate-preview'
| 'veo-3.0-generate-preview';
/**
* Vertex AI video models with official pricing information
* Based on: https://cloud.google.com/vertex-ai/generative-ai/pricing
*
* Veo 3.1: $0.40/second with audio, $0.20/second video only
* Veo 3.1 Fast: $0.10/second with audio, $0.08/second video only
* Veo 3: $0.40/second with audio, $0.20/second video only
* Veo 3 Fast: $0.15/second with audio, $0.10/second video only
*/
export const VertexAIVideoModels: SupportedVideoModel[] = [
{
model_id: 'veo-3.1-fast-generate-preview',
cost_per_second_with_audio: 0.1,
cost_per_second_without_audio: 0.08,
provider: 'VertexAI',
},
{
model_id: 'veo-3.1-generate-preview',
cost_per_second_with_audio: 0.4,
cost_per_second_without_audio: 0.2,
provider: 'VertexAI',
},
{
model_id: 'veo-3.0-fast-generate-preview',
cost_per_second_with_audio: 0.15,
Expand Down
3 changes: 2 additions & 1 deletion packages/tests/integration/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,12 @@
},
"devDependencies": {
"@playwright/test": "^1.53.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/jest-dom": "^6.6.4",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/node": "^24.0.3",
"@types/react": "^19.1.8",
"@types/testing-library__jest-dom": "^6.0.0",
"@typescript-eslint/eslint-plugin": "^8.34.1",
"@typescript-eslint/parser": "^8.34.1",
"@vitejs/plugin-react": "^4.5.2",
Expand Down
3 changes: 2 additions & 1 deletion packages/tests/integration/scripts/reset-integration-db.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// @ts-nocheck
import { PrismaClient } from '../../../app/control/src/generated/prisma/index.js';
import { TEST_CONFIG } from '../config/index.js';

Expand All @@ -15,7 +16,7 @@ export async function resetIntegrationDatabase() {
try {
// Clean all data in reverse dependency order
await prisma.refreshToken.deleteMany();
await prisma.llmTransaction.deleteMany();
await prisma.transaction.deleteMany();
await prisma.payment.deleteMany();
await prisma.apiKey.deleteMany();
await prisma.echoApp.deleteMany();
Expand Down
2 changes: 1 addition & 1 deletion packages/tests/integration/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"noEmit": true,
"jsx": "react-jsx",
"types": ["vitest/globals", "@testing-library/jest-dom", "node"],
"typeRoots": ["./types", "./node_modules/@types", "../node_modules/@types"],

"baseUrl": ".",
"paths": {
"@/*": ["./*"],
Expand Down
11 changes: 6 additions & 5 deletions packages/tests/integration/utils/test-data-factory.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { PrismaClient } from '@prisma/client';
// @ts-nocheck
import { PrismaClient } from '../../../app/control/src/generated/prisma/index.js';
import crypto from 'crypto';
import { hashApiKey } from './api-key';

Expand Down Expand Up @@ -142,7 +143,7 @@ export class TestDataFactory {
const inputTokens = options.inputTokens || 100;
const outputTokens = options.outputTokens || 50;

return prisma.llmTransaction.create({
return prisma.transaction.create({
data: {
id: options.id || this.generateUniqueId(),
model: options.model || 'claude-3-5-sonnet-20241022',
Expand Down Expand Up @@ -237,7 +238,7 @@ export class TestDataFactory {
// Cleanup utilities
async cleanupUser(userId: string): Promise<void> {
await prisma.refreshToken.deleteMany({ where: { userId } });
await prisma.llmTransaction.deleteMany({ where: { userId } });
await prisma.transaction.deleteMany({ where: { userId } });
await prisma.payment.deleteMany({ where: { userId } });
await prisma.apiKey.deleteMany({ where: { userId } });
await prisma.echoApp.deleteMany({ where: { userId } });
Expand All @@ -246,7 +247,7 @@ export class TestDataFactory {

async cleanupEchoApp(echoAppId: string): Promise<void> {
await prisma.refreshToken.deleteMany({ where: { echoAppId } });
await prisma.llmTransaction.deleteMany({ where: { echoAppId } });
await prisma.transaction.deleteMany({ where: { echoAppId } });
await prisma.payment.deleteMany({ where: { echoAppId } });
await prisma.apiKey.deleteMany({ where: { echoAppId } });
await prisma.echoApp.delete({ where: { id: echoAppId } });
Expand All @@ -264,7 +265,7 @@ export class TestDataFactory {
},
});

await prisma.llmTransaction.deleteMany({
await prisma.transaction.deleteMany({
where: {
user: {
email: {
Expand Down
Loading