diff --git a/.roe-main-release-version b/.roe-main-release-version index 9c92fcf..f749893 100644 --- a/.roe-main-release-version +++ b/.roe-main-release-version @@ -1 +1 @@ -1-1-0 +1-1-1 diff --git a/README.md b/README.md index 1b9b3f4..2b4770d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ A Python SDK for the [Roe](https://www.roe-ai.com/) API. -> **v1.1.15** - SDK operation coverage is synchronized across Python, +> **v1.1.16** - SDK operation coverage is synchronized across Python, > TypeScript, and Go. See `SDK_EXAMPLES.md` for copy-ready examples and > use cases. diff --git a/openapi/openapi.yml b/openapi/openapi.yml index b94ff66..cb20599 100644 --- a/openapi/openapi.yml +++ b/openapi/openapi.yml @@ -630,6 +630,10 @@ paths: description: Number of results to return per page. schema: type: integer + - in: query + name: review_state + schema: + type: string - in: query name: search schema: @@ -5693,6 +5697,10 @@ components: - $ref: '#/components/schemas/AgentJobFeedbackNested' - type: 'null' readOnly: true + review_state: + allOf: + - $ref: '#/components/schemas/ReviewStateEnum' + readOnly: true creator: oneOf: - $ref: '#/components/schemas/UserInfo' @@ -5707,6 +5715,7 @@ components: - feedback_review - id - last_updated_at + - review_state - status_code - status_events - ui_fields @@ -6199,6 +6208,16 @@ components: format: uuid description: Send to only this webhook. Omit to send to every active webhook on the agent. + ReviewStateEnum: + enum: + - unreviewed + - agreed + - disagreed + type: string + description: |- + * `unreviewed` - Unreviewed + * `agreed` - Agreed + * `disagreed` - Disagreed ReviewStatusEnum: enum: - pending @@ -6345,12 +6364,17 @@ components: type: string readOnly: true description: building, succeeded, or failed. + error: + type: string + readOnly: true + description: Why the run failed, when it reported a reason. started_at: type: string format: date-time readOnly: true description: When the run started — the UI shows elapsed time from this. required: + - error - id - sse_endpoint - started_at diff --git a/pyproject.toml b/pyproject.toml index 235cc9d..fdd606b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "roe-ai" -version = "1.1.15" +version = "1.1.16" authors = [ { name = "Roe", email = "founders@roe-ai.com" }, ] diff --git a/src/roe/_generated/api/agents/agents_jobs_list.py b/src/roe/_generated/api/agents/agents_jobs_list.py index 2590152..b2607f1 100644 --- a/src/roe/_generated/api/agents/agents_jobs_list.py +++ b/src/roe/_generated/api/agents/agents_jobs_list.py @@ -33,6 +33,7 @@ def _get_kwargs( ordering: list[AgentsJobsListOrderingItem] | Unset = UNSET, page: int | Unset = UNSET, page_size: int | Unset = UNSET, + review_state: str | Unset = UNSET, search: str | Unset = UNSET, semantic_string: str | Unset = UNSET, status_code: str | Unset = UNSET, @@ -81,6 +82,8 @@ def _get_kwargs( params["page_size"] = page_size + params["review_state"] = review_state + params["search"] = search params["semantic_string"] = semantic_string @@ -169,6 +172,7 @@ def sync_detailed( ordering: list[AgentsJobsListOrderingItem] | Unset = UNSET, page: int | Unset = UNSET, page_size: int | Unset = UNSET, + review_state: str | Unset = UNSET, search: str | Unset = UNSET, semantic_string: str | Unset = UNSET, status_code: str | Unset = UNSET, @@ -193,6 +197,7 @@ def sync_detailed( ordering (list[AgentsJobsListOrderingItem] | Unset): page (int | Unset): page_size (int | Unset): + review_state (str | Unset): search (str | Unset): semantic_string (str | Unset): status_code (str | Unset): @@ -221,6 +226,7 @@ def sync_detailed( ordering=ordering, page=page, page_size=page_size, +review_state=review_state, search=search, semantic_string=semantic_string, status_code=status_code, @@ -250,6 +256,7 @@ def sync( ordering: list[AgentsJobsListOrderingItem] | Unset = UNSET, page: int | Unset = UNSET, page_size: int | Unset = UNSET, + review_state: str | Unset = UNSET, search: str | Unset = UNSET, semantic_string: str | Unset = UNSET, status_code: str | Unset = UNSET, @@ -274,6 +281,7 @@ def sync( ordering (list[AgentsJobsListOrderingItem] | Unset): page (int | Unset): page_size (int | Unset): + review_state (str | Unset): search (str | Unset): semantic_string (str | Unset): status_code (str | Unset): @@ -303,6 +311,7 @@ def sync( ordering=ordering, page=page, page_size=page_size, +review_state=review_state, search=search, semantic_string=semantic_string, status_code=status_code, @@ -326,6 +335,7 @@ async def asyncio_detailed( ordering: list[AgentsJobsListOrderingItem] | Unset = UNSET, page: int | Unset = UNSET, page_size: int | Unset = UNSET, + review_state: str | Unset = UNSET, search: str | Unset = UNSET, semantic_string: str | Unset = UNSET, status_code: str | Unset = UNSET, @@ -350,6 +360,7 @@ async def asyncio_detailed( ordering (list[AgentsJobsListOrderingItem] | Unset): page (int | Unset): page_size (int | Unset): + review_state (str | Unset): search (str | Unset): semantic_string (str | Unset): status_code (str | Unset): @@ -378,6 +389,7 @@ async def asyncio_detailed( ordering=ordering, page=page, page_size=page_size, +review_state=review_state, search=search, semantic_string=semantic_string, status_code=status_code, @@ -407,6 +419,7 @@ async def asyncio( ordering: list[AgentsJobsListOrderingItem] | Unset = UNSET, page: int | Unset = UNSET, page_size: int | Unset = UNSET, + review_state: str | Unset = UNSET, search: str | Unset = UNSET, semantic_string: str | Unset = UNSET, status_code: str | Unset = UNSET, @@ -431,6 +444,7 @@ async def asyncio( ordering (list[AgentsJobsListOrderingItem] | Unset): page (int | Unset): page_size (int | Unset): + review_state (str | Unset): search (str | Unset): semantic_string (str | Unset): status_code (str | Unset): @@ -460,6 +474,7 @@ async def asyncio( ordering=ordering, page=page, page_size=page_size, +review_state=review_state, search=search, semantic_string=semantic_string, status_code=status_code, diff --git a/src/roe/_generated/models/__init__.py b/src/roe/_generated/models/__init__.py index 4e1fa79..b0770af 100644 --- a/src/roe/_generated/models/__init__.py +++ b/src/roe/_generated/models/__init__.py @@ -131,6 +131,7 @@ from .public_skill_set_generation import PublicSkillSetGeneration from .qdrant_cleanup_error_response import QdrantCleanupErrorResponse from .resend_agent_job_webhook_request import ResendAgentJobWebhookRequest +from .review_state_enum import ReviewStateEnum from .review_status_enum import ReviewStatusEnum from .skill_file import SkillFile from .skill_file_request import SkillFileRequest @@ -313,6 +314,7 @@ "PublicSkillSetGeneration", "QdrantCleanupErrorResponse", "ResendAgentJobWebhookRequest", + "ReviewStateEnum", "ReviewStatusEnum", "SkillFile", "SkillFileRequest", diff --git a/src/roe/_generated/models/list_agent_job.py b/src/roe/_generated/models/list_agent_job.py index 44def54..62494c7 100644 --- a/src/roe/_generated/models/list_agent_job.py +++ b/src/roe/_generated/models/list_agent_job.py @@ -8,6 +8,7 @@ from ..types import UNSET, Unset +from ..models.review_state_enum import ReviewStateEnum from ..types import UNSET, Unset from dateutil.parser import isoparse from typing import cast @@ -47,6 +48,9 @@ class ListAgentJob: ui_fields (Any): Denormalized fields from agent output for list/metrics without loading S3 evaluation (AgentJobEvaluation | None): feedback_review (AgentJobFeedbackNested | None): + review_state (ReviewStateEnum): * `unreviewed` - Unreviewed + * `agreed` - Agreed + * `disagreed` - Disagreed creator (None | UserInfo): job_inputs (list[JobInput] | Unset): List of input data provided to the agent job metadata (ListAgentJobMetadata | Unset): Key-value pairs of metadata associated with the job @@ -62,6 +66,7 @@ class ListAgentJob: ui_fields: Any evaluation: AgentJobEvaluation | None feedback_review: AgentJobFeedbackNested | None + review_state: ReviewStateEnum creator: None | UserInfo job_inputs: list[JobInput] | Unset = UNSET metadata: ListAgentJobMetadata | Unset = UNSET @@ -113,6 +118,8 @@ def to_dict(self) -> dict[str, Any]: else: feedback_review = self.feedback_review + review_state = self.review_state.value + creator: dict[str, Any] | None if isinstance(self.creator, UserInfo): creator = self.creator.to_dict() @@ -146,6 +153,7 @@ def to_dict(self) -> dict[str, Any]: "ui_fields": ui_fields, "evaluation": evaluation, "feedback_review": feedback_review, + "review_state": review_state, "creator": creator, }) if job_inputs is not UNSET: @@ -247,6 +255,11 @@ def _parse_feedback_review(data: object) -> AgentJobFeedbackNested | None: feedback_review = _parse_feedback_review(d.pop("feedback_review")) + review_state = ReviewStateEnum(d.pop("review_state")) + + + + def _parse_creator(data: object) -> None | UserInfo: if data is None: return data @@ -298,6 +311,7 @@ def _parse_creator(data: object) -> None | UserInfo: ui_fields=ui_fields, evaluation=evaluation, feedback_review=feedback_review, + review_state=review_state, creator=creator, job_inputs=job_inputs, metadata=metadata, diff --git a/src/roe/_generated/models/review_state_enum.py b/src/roe/_generated/models/review_state_enum.py new file mode 100644 index 0000000..29543f6 --- /dev/null +++ b/src/roe/_generated/models/review_state_enum.py @@ -0,0 +1,9 @@ +from enum import Enum + +class ReviewStateEnum(str, Enum): + AGREED = "agreed" + DISAGREED = "disagreed" + UNREVIEWED = "unreviewed" + + def __str__(self) -> str: + return str(self.value) diff --git a/src/roe/_generated/models/skill_set_generation_run.py b/src/roe/_generated/models/skill_set_generation_run.py index 310e3bc..c43e00c 100644 --- a/src/roe/_generated/models/skill_set_generation_run.py +++ b/src/roe/_generated/models/skill_set_generation_run.py @@ -31,6 +31,7 @@ class SkillSetGenerationRun: sse_endpoint (str): SSE endpoint URL for real-time status updates id (UUID): status (str): building, succeeded, or failed. + error (str): Why the run failed, when it reported a reason. started_at (datetime.datetime): When the run started — the UI shows elapsed time from this. """ @@ -38,6 +39,7 @@ class SkillSetGenerationRun: sse_endpoint: str id: UUID status: str + error: str started_at: datetime.datetime additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -54,6 +56,8 @@ def to_dict(self) -> dict[str, Any]: status = self.status + error = self.error + started_at = self.started_at.isoformat() @@ -64,6 +68,7 @@ def to_dict(self) -> dict[str, Any]: "sse_endpoint": sse_endpoint, "id": id, "status": status, + "error": error, "started_at": started_at, }) @@ -85,6 +90,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: status = d.pop("status") + error = d.pop("error") + started_at = isoparse(d.pop("started_at")) @@ -95,6 +102,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: sse_endpoint=sse_endpoint, id=id, status=status, + error=error, started_at=started_at, ) diff --git a/uv.lock b/uv.lock index ed1387e..f12d7e4 100644 --- a/uv.lock +++ b/uv.lock @@ -454,7 +454,7 @@ wheels = [ [[package]] name = "roe-ai" -version = "1.1.15" +version = "1.1.16" source = { editable = "." } dependencies = [ { name = "attrs" },