This commit is contained in:
2026-04-11 08:48:42 +05:00
commit 58497365d9
8 changed files with 775 additions and 0 deletions

38
models.py Normal file
View File

@@ -0,0 +1,38 @@
# models.py
from typing import List, Dict, Any, Optional, Literal
from pydantic import BaseModel, Field
from enum import Enum
class TaskStatus(str, Enum):
PENDING = "pending"
CODING = "coding"
REVIEW = "review"
REWORK = "rework"
APPROVED = "approved"
REJECTED = "rejected"
FAILED = "failed"
class ReviewComment(BaseModel):
line: Optional[int] = None
file: Optional[str] = None
severity: Literal["critical", "major", "minor", "suggestion"] = "major"
text: str
class ReviewResult(BaseModel):
status: Literal["approved", "changes_requested", "rejected"]
comments: List[ReviewComment] = Field(default_factory=list)
summary: str
class CodeSolution(BaseModel):
files: Dict[str, str] = Field(default_factory=dict) # filename -> content
description: str
tests: Dict[str, str] = Field(default_factory=dict) # test_filename -> content
class Task(BaseModel):
id: str
requirement: str
status: TaskStatus = TaskStatus.PENDING
iteration: int = 0
solution: Optional[CodeSolution] = None
last_review: Optional[ReviewResult] = None
error_log: List[str] = Field(default_factory=list)