"""Bounded inputs for durable computation control.""" from typing import Literal from uuid import UUID from pydantic import Field from app.mcp.models import StrictInput, PageInput, Id CalculationStatus = Literal["queued", "running", "cancel_requested", "succeeded", "failed", "cancelled", "interrupted", "timed_out"] class CalculationJobInput(StrictInput): job_id: UUID class CalculationResultInput(CalculationJobInput): data_path: list[Id] = Field(default_factory=list, max_length=8) limit: int = Field(default=20, ge=1, le=500) offset: int = Field(default=0, ge=0, le=1000000) class CalculationJobsInput(PageInput): status: CalculationStatus | None = None