aboutsummaryrefslogtreecommitdiff
path: root/autogpts/forge/forge/sdk/model.py
diff options
context:
space:
mode:
Diffstat (limited to 'autogpts/forge/forge/sdk/model.py')
-rw-r--r--autogpts/forge/forge/sdk/model.py180
1 files changed, 180 insertions, 0 deletions
diff --git a/autogpts/forge/forge/sdk/model.py b/autogpts/forge/forge/sdk/model.py
new file mode 100644
index 000000000..6a55b5a24
--- /dev/null
+++ b/autogpts/forge/forge/sdk/model.py
@@ -0,0 +1,180 @@
+# 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 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 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[dict] = None
+
+
+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,
+ description="Input prompt for the step.",
+ example="Washington",
+ )
+ additional_input: Optional[dict] = None
+
+
+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 <write_to_file('output.txt', 'Washington')",
+ )
+ additional_output: Optional[dict] = None
+ artifacts: Optional[List[Artifact]] = Field(
+ [], description="A list of artifacts that the step has produced."
+ )
+ is_last: bool = Field(
+ ..., description="Whether this is the last step in the task.", example=True
+ )
+
+
+class TaskListResponse(BaseModel):
+ tasks: Optional[List[Task]] = None
+ pagination: Optional[Pagination] = None
+
+
+class TaskStepsListResponse(BaseModel):
+ steps: Optional[List[Step]] = None
+ pagination: Optional[Pagination] = None
+
+
+class TaskArtifactsListResponse(BaseModel):
+ artifacts: Optional[List[Artifact]] = None
+ pagination: Optional[Pagination] = None