16 lines
431 B
Python
16 lines
431 B
Python
from typing import Literal
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from contracts.base import _StrictModel
|
|
|
|
|
|
class FileSelection(_StrictModel):
|
|
path: str = Field(...)
|
|
role: Literal["primary", "context", "test"] = Field(...)
|
|
reason: str = Field(...)
|
|
confidence: float = Field(ge=0.0, le=1.0)
|
|
|
|
class FileSelectionOutput(_StrictModel):
|
|
selections: list[FileSelection] = Field(...)
|
|
notes: list[str] = Field(...) |