Turborepo monorepo with npm workspaces: - apps/web: Next.js 14 frontend with Tailwind v4, SSE progress, doc viewer - apps/worker: BullMQ job processor (clone → parse → LLM generate) - packages/shared: TypeScript types - packages/parser: Babel-based AST parser (JS/TS) + regex (Python) - packages/llm: OpenAI/Anthropic provider abstraction + prompt pipeline - packages/diagrams: Mermaid architecture & dependency graph generators - packages/database: Prisma schema (PostgreSQL) - Docker multi-stage build (web + worker targets) All packages compile successfully with tsc and next build.
51 lines
1003 B
Plaintext
51 lines
1003 B
Plaintext
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
}
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
}
|
|
|
|
model Generation {
|
|
id String @id @default(cuid())
|
|
repoUrl String
|
|
repoName String
|
|
commitHash String
|
|
status Status @default(QUEUED)
|
|
progress Int @default(0)
|
|
result Json?
|
|
error String?
|
|
costUsd Float?
|
|
duration Int?
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
userId String?
|
|
user User? @relation(fields: [userId], references: [id])
|
|
viewCount Int @default(0)
|
|
|
|
@@unique([repoUrl, commitHash])
|
|
@@index([repoUrl])
|
|
@@index([status])
|
|
}
|
|
|
|
model User {
|
|
id String @id @default(cuid())
|
|
githubId String @unique
|
|
login String
|
|
email String?
|
|
avatarUrl String?
|
|
createdAt DateTime @default(now())
|
|
generations Generation[]
|
|
}
|
|
|
|
enum Status {
|
|
QUEUED
|
|
CLONING
|
|
PARSING
|
|
GENERATING
|
|
RENDERING
|
|
COMPLETED
|
|
FAILED
|
|
}
|