# generated by fastapi-codegen: # filename: ../../postman/schemas/openapi.yaml # timestamp: 2023-08-25T10:36:11+00:00 from __future__ import annotations from datetime import datetime from enum import Enum from typing import List, Optional from pydantic import BaseModel, Field class ArtifactUpload(BaseModel): file: str = Field(..., description="File to upload.", format="binary") relative_path: str = Field( ..., description="Relative path of the artifact in the agent's workspace.", example="python/code", ) class Pagination(BaseModel): total_items: int = Field(..., description="Total number of items.", example=42) total_pages: int = Field(..., description="Total number of pages.", example=97) current_page: int = Field(..., description="Current_page page number.", example=1) page_size: int = Field(..., description="Number of items per page.", example=25) class TaskInput(BaseModel): pass class Artifact(BaseModel): created_at: datetime = Field( ..., description="The creation datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) modified_at: datetime = Field( ..., description="The modification datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) artifact_id: str = Field( ..., description="ID of the artifact.", example="b225e278-8b4c-4f99-a696-8facf19f0e56", ) agent_created: bool = Field( ..., description="Whether the artifact has been created by the agent.", example=False, ) relative_path: str = Field( ..., description="Relative path of the artifact in the agents workspace.", example="/my_folder/my_other_folder/", ) file_name: str = Field( ..., description="Filename of the artifact.", example="main.py", ) class StepInput(BaseModel): pass class StepOutput(BaseModel): pass class TaskRequestBody(BaseModel): input: str = Field( ..., min_length=1, description="Input prompt for the task.", example="Write the words you receive to the file 'output.txt'.", ) additional_input: Optional[TaskInput] = {} class TaskEvalRequestBody(TaskRequestBody): eval_id: str class Task(TaskRequestBody): created_at: datetime = Field( ..., description="The creation datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) modified_at: datetime = Field( ..., description="The modification datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) task_id: str = Field( ..., description="The ID of the task.", example="50da533e-3904-4401-8a07-c49adf88b5eb", ) artifacts: Optional[List[Artifact]] = Field( [], description="A list of artifacts that the task has produced.", example=[ "7a49f31c-f9c6-4346-a22c-e32bc5af4d8e", "ab7b4091-2560-4692-a4fe-d831ea3ca7d6", ], ) class StepRequestBody(BaseModel): name: Optional[str] = Field( None, description="The name of the task step.", example="Write to file" ) input: Optional[str] = Field( None, min_length=1, description="Input prompt for the step.", example="Washington", ) additional_input: Optional[StepInput] = {} class Status(Enum): created = "created" running = "running" completed = "completed" class Step(StepRequestBody): created_at: datetime = Field( ..., description="The creation datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) modified_at: datetime = Field( ..., description="The modification datetime of the task.", example="2023-01-01T00:00:00Z", json_encoders={datetime: lambda v: v.isoformat()}, ) task_id: str = Field( ..., description="The ID of the task this step belongs to.", example="50da533e-3904-4401-8a07-c49adf88b5eb", ) step_id: str = Field( ..., description="The ID of the task step.", example="6bb1801a-fd80-45e8-899a-4dd723cc602e", ) name: Optional[str] = Field( None, description="The name of the task step.", example="Write to file" ) status: Status = Field( ..., description="The status of the task step.", example="created" ) output: Optional[str] = Field( None, description="Output of the task step.", example="I am going to use the write_to_file command and write Washington to a file called output.txt