Spaces:
Sleeping
Sleeping
import { PrismaClient } from '@prisma/client'; | |
declare global { | |
var prisma: PrismaClient | undefined; | |
namespace PrismaJson { | |
// you can use classes, interfaces, types, etc. | |
interface StructuredError { | |
name: string; | |
value: string; | |
traceback_raw: string[]; | |
} | |
type StructuredResult = { | |
logs: { | |
stderr: string[]; | |
stdout: string[]; | |
}; | |
results: Array<{ | |
png?: string; | |
mp4?: string; | |
text: string; | |
is_main_result: boolean; | |
}>; | |
error?: StructuredError; | |
}; | |
interface PlanAndToolsBody { | |
type: 'plans' | 'tools'; | |
status: 'started' | 'completed'; | |
payload?: Array<Record<string, string>>; | |
} | |
interface CodeBody { | |
type: 'code'; | |
status: 'completed' | 'failed' | 'started' | 'running'; | |
payload?: { | |
code: string; | |
test: string; | |
result?: StructuredResult | string; | |
}; | |
} | |
interface FinalCodeBody { | |
type: 'final_code'; | |
status: 'completed' | 'failed'; | |
payload: { | |
code: string; | |
test: string; | |
result: StructuredResult | string; | |
}; | |
} | |
interface FinalErrorBody { | |
type: 'final_error'; | |
status: 'failed'; | |
payload: StructuredError; | |
} | |
type FinalResultBody = FinalCodeBody | FinalErrorBody; | |
type MessageBody = | |
| PlanAndToolsBody | |
| CodeBody | |
| FinalErrorBody | |
| FinalCodeBody; | |
type AgentResponseBodies = Array< | |
PlanAndToolsBody | CodeBody | FinalErrorBody | |
>; | |
} | |
} | |
const db = globalThis.prisma || new PrismaClient(); | |
if (process.env.NODE_ENV != 'production') globalThis.prisma = db; | |
export default db; | |