Files
2026-02-26 17:21:36 -05:00

53 lines
1.3 KiB
Python

"""Pydantic schemas for the AI auto-fix feature."""
from typing import Any, Literal
from pydantic import BaseModel, Field
# ── Requests ──
class ValidationErrorInput(BaseModel):
"""A single validation error to fix."""
node_id: str = Field(..., description="ID of the node with the error")
message: str = Field(..., description="The validation error message")
class AIFixTreeRequest(BaseModel):
"""Request to generate AI fixes for validation errors."""
tree_structure: dict[str, Any] = Field(..., description="Full tree structure")
tree_name: str = Field("", max_length=255, description="Name of the flow")
tree_type: Literal["troubleshooting", "procedural", "maintenance"] = Field(
"troubleshooting", description="Type of flow"
)
validation_errors: list[ValidationErrorInput] = Field(
..., min_length=1, max_length=10, description="Errors to fix"
)
# ── Responses ──
class AIFixProposal(BaseModel):
"""A single proposed fix from the AI."""
target_node_id: str
error_message: str
description: str
original_node: dict[str, Any]
fixed_node: dict[str, Any]
class AIFixTokenUsage(BaseModel):
input: int = 0
output: int = 0
class AIFixTreeResponse(BaseModel):
"""Response with proposed fixes."""
fixes: list[AIFixProposal]
tokens_used: AIFixTokenUsage