[docs]class CreatePR(BaseModel):
    formatted_pr: str = Field(..., description="Follow the required formatting.")
[docs]class CreateFile(BaseModel):
    formatted_file: str = Field(..., description="Follow the required formatting.")
[docs]class ReadFile(BaseModel):
    formatted_filepath: str = Field(
        ...,
        description=(
            "The full file path of the file you would like to read where the "
            "path must NOT start with a slash, e.g. `some_dir/my_file.py`."
        ),
    )
[docs]class UpdateFile(BaseModel):
    formatted_file_update: str = Field(
        ..., description="Strictly follow the provided rules."
    )
[docs]class DeleteFile(BaseModel):
    formatted_filepath: str = Field(
        ...,
        description=(
            "The full file path of the file you would like to delete"
            " where the path must NOT start with a slash, e.g."
            " `some_dir/my_file.py`. Only input a string,"
            " not the param name."
        ),
    )
[docs]class DirectoryPath(BaseModel):
    input: str = Field(
        "",
        description=(
            "The path of the directory, e.g. `some_dir/inner_dir`."
            " Only input a string, do not include the parameter name."
        ),
    )
[docs]class BranchName(BaseModel):
    branch_name: str = Field(
        ..., description="The name of the branch, e.g. `my_branch`."
    )
[docs]class SearchCode(BaseModel):
    search_query: str = Field(
        ...,
        description=(
            "A keyword-focused natural language search"