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; | |