hsmm's picture
Initial commit for HF Space
35bdde1
from __future__ import annotations
from enum import Enum
from typing import Any, Literal
from pydantic import BaseModel, Field
class TaskStatus(str, Enum):
running = "running"
success = "success"
failed = "failed"
needs_human = "needs_human"
class Citation(BaseModel):
url: str
title: str | None = None
class Screenshot(BaseModel):
url: str
ts: str
class TaskResultPayload(BaseModel):
answer_text: str
citations: list[Citation] = Field(default_factory=list)
screenshots: list[Screenshot] = Field(default_factory=list)
raw_html_url: str | None = None
log_url: str | None = None
class RunnerTaskResult(BaseModel):
task_id: str
status: TaskStatus
reason: str | None = None
handoff_url: str | None = None
result: TaskResultPayload | None = None
class TaskCreate(BaseModel):
task_id: str
site: str
question_id: str
question_text: str
profile_id: str
locale: str | None = None
class TaskCreateRequest(BaseModel):
run_id: str
tasks: list[TaskCreate]
class TaskCreateResponse(BaseModel):
accepted: list[dict[str, str]]
rejected: list[dict[str, str]]
class ResumeRequest(BaseModel):
resume_token: str
class ResumeResponse(BaseModel):
ok: Literal[True] = True