Description
Not all data structures use Pydantic models, leading to potential runtime errors and inconsistent validation.
Current Issues
- Some functions accept raw dicts
- Inconsistent validation
- No automatic schema generation
- Runtime type errors possible
Proposed Changes
1. Identify All Data Structures
Audit code for:
- Function parameters accepting
dict
- Return values that are
dict
- Configuration structures
- API request/response models
2. Create Missing Models
# Before
def process_config(config: dict) -> dict:
return {"processed": True, "items": config.get("items", [])}
# After
class ConfigInput(BaseModel):
items: List[str] = []
timeout: int = 30
class ConfigOutput(BaseModel):
processed: bool
items: List[str]
def process_config(config: ConfigInput) -> ConfigOutput:
return ConfigOutput(processed=True, items=config.items)
3. Add Validators
class AgentConfig(BaseModel):
name: str
endpoint: str
max_iterations: int = 20
@field_validator('endpoint')
@classmethod
def validate_endpoint(cls, v: str) -> str:
if not v.startswith(('http://', 'https://')):
raise ValueError('Endpoint must be HTTP(S) URL')
return v
@field_validator('max_iterations')
@classmethod
def validate_iterations(cls, v: int) -> int:
if v < 1 or v > 100:
raise ValueError('max_iterations must be between 1 and 100')
return v
Acceptance Criteria
Files to Review
- All files in
src/core/
- All files in
src/infrastructure/
src/core/workflows/models.py
Priority: 🟡 Medium
Effort: 4-5 hours
Difficulty: Medium
Description
Not all data structures use Pydantic models, leading to potential runtime errors and inconsistent validation.
Current Issues
Proposed Changes
1. Identify All Data Structures
Audit code for:
dictdict2. Create Missing Models
3. Add Validators
Acceptance Criteria
Files to Review
src/core/src/infrastructure/src/core/workflows/models.pyPriority: 🟡 Medium
Effort: 4-5 hours
Difficulty: Medium