diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 13136000..2aca35ae 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.4.28" + ".": "0.5.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index b1572bf4..e50822b4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 34 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-6dbb005f57f2e54c00322ee75bae1e595160adf1f4eff3b5a8ac38cdeb48fbd6.yml -openapi_spec_hash: 8d36892345fa74be42d2fb10b1d19ab6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-2b422fbf02ff3b77795fb8c71cbe784de3a3add48560655ba4fe7f3fcc509995.yml +openapi_spec_hash: bca5c04d823694c87417dae188480291 config_hash: 6481ea6b42040f435dedcb00a98f35f8 diff --git a/CHANGELOG.md b/CHANGELOG.md index bc78d8a0..f1bd0e1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.5.0 (2025-10-28) + +Full Changelog: [v0.4.28...v0.5.0](https://github.com/scaleapi/agentex-python/compare/v0.4.28...v0.5.0) + +### Features + +* **api:** api update ([129fae6](https://github.com/scaleapi/agentex-python/commit/129fae69844e655b5dd02b6f67c44d15f5dbfa93)) + ## 0.4.28 (2025-10-28) Full Changelog: [v0.4.27...v0.4.28](https://github.com/scaleapi/agentex-python/compare/v0.4.27...v0.4.28) diff --git a/api.md b/api.md index 4e3e6f83..2b397d0c 100644 --- a/api.md +++ b/api.md @@ -43,16 +43,16 @@ Methods: Types: ```python -from agentex.types import Task, TaskListResponse +from agentex.types import Task, TaskRetrieveResponse, TaskListResponse, TaskRetrieveByNameResponse ``` Methods: -- client.tasks.retrieve(task_id) -> Task +- client.tasks.retrieve(task_id, \*\*params) -> TaskRetrieveResponse - client.tasks.list(\*\*params) -> TaskListResponse - client.tasks.delete(task_id) -> DeleteResponse - client.tasks.delete_by_name(task_name) -> DeleteResponse -- client.tasks.retrieve_by_name(task_name) -> Task +- client.tasks.retrieve_by_name(task_name, \*\*params) -> TaskRetrieveByNameResponse - client.tasks.stream_events(task_id) -> object - client.tasks.stream_events_by_name(task_name) -> object diff --git a/pyproject.toml b/pyproject.toml index 3922bb67..e04e755b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "agentex-sdk" -version = "0.4.28" +version = "0.5.0" description = "The official Python library for the agentex API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/agentex/_version.py b/src/agentex/_version.py index b6dbf0d4..6d776a78 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.4.28" # x-release-please-version +__version__ = "0.5.0" # x-release-please-version diff --git a/src/agentex/lib/adk/_modules/tasks.py b/src/agentex/lib/adk/_modules/tasks.py index 10c6405d..522f7daf 100644 --- a/src/agentex/lib/adk/_modules/tasks.py +++ b/src/agentex/lib/adk/_modules/tasks.py @@ -16,6 +16,8 @@ ) from agentex.lib.core.tracing.tracer import AsyncTracer from agentex.types.task import Task +from agentex.types.task_retrieve_response import TaskRetrieveResponse +from agentex.types.task_retrieve_by_name_response import TaskRetrieveByNameResponse from agentex.lib.utils.logging import make_logger from agentex.lib.utils.temporal import in_temporal_workflow @@ -53,7 +55,7 @@ async def get( start_to_close_timeout: timedelta = timedelta(seconds=5), heartbeat_timeout: timedelta = timedelta(seconds=5), retry_policy: RetryPolicy = DEFAULT_RETRY_POLICY, - ) -> Task: + ) -> TaskRetrieveResponse | TaskRetrieveByNameResponse: """ Get a task by ID or name. Args: diff --git a/src/agentex/lib/core/services/adk/tasks.py b/src/agentex/lib/core/services/adk/tasks.py index 0d85aa57..3f87f46f 100644 --- a/src/agentex/lib/core/services/adk/tasks.py +++ b/src/agentex/lib/core/services/adk/tasks.py @@ -6,6 +6,8 @@ from agentex.lib.utils.logging import make_logger from agentex.lib.utils.temporal import heartbeat_if_in_workflow from agentex.lib.core.tracing.tracer import AsyncTracer +from agentex.types.task_retrieve_response import TaskRetrieveResponse +from agentex.types.task_retrieve_by_name_response import TaskRetrieveByNameResponse logger = make_logger(__name__) @@ -25,7 +27,7 @@ async def get_task( task_name: str | None = None, trace_id: str | None = None, parent_span_id: str | None = None, - ) -> Task: + ) -> TaskRetrieveResponse | TaskRetrieveByNameResponse: trace = self._tracer.trace(trace_id) async with trace.span( parent_id=parent_span_id, diff --git a/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py b/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py index f1b508c3..f3f59f8c 100644 --- a/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py +++ b/src/agentex/lib/core/temporal/activities/adk/tasks_activities.py @@ -8,6 +8,8 @@ from agentex.lib.types.tracing import BaseModelWithTraceParams from agentex.lib.utils.logging import make_logger from agentex.lib.core.services.adk.tasks import TasksService +from agentex.types.task_retrieve_response import TaskRetrieveResponse +from agentex.types.task_retrieve_by_name_response import TaskRetrieveByNameResponse logger = make_logger(__name__) @@ -32,7 +34,7 @@ def __init__(self, tasks_service: TasksService): self._tasks_service = tasks_service @activity.defn(name=TasksActivityName.GET_TASK) - async def get_task(self, params: GetTaskParams) -> Task | None: + async def get_task(self, params: GetTaskParams) -> TaskRetrieveResponse | TaskRetrieveByNameResponse: return await self._tasks_service.get_task( task_id=params.task_id, task_name=params.task_name, diff --git a/src/agentex/resources/tasks.py b/src/agentex/resources/tasks.py index 5d0547cd..33a4648d 100644 --- a/src/agentex/resources/tasks.py +++ b/src/agentex/resources/tasks.py @@ -2,11 +2,12 @@ from __future__ import annotations -from typing import Optional +from typing import List, Optional +from typing_extensions import Literal import httpx -from ..types import task_list_params +from ..types import task_list_params, task_retrieve_params, task_retrieve_by_name_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given from .._utils import maybe_transform, async_maybe_transform from .._compat import cached_property @@ -18,10 +19,11 @@ async_to_streamed_response_wrapper, ) from .._streaming import Stream, AsyncStream -from ..types.task import Task from .._base_client import make_request_options from ..types.task_list_response import TaskListResponse from ..types.shared.delete_response import DeleteResponse +from ..types.task_retrieve_response import TaskRetrieveResponse +from ..types.task_retrieve_by_name_response import TaskRetrieveByNameResponse __all__ = ["TasksResource", "AsyncTasksResource"] @@ -50,13 +52,14 @@ def retrieve( self, task_id: str, *, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> Task: + ) -> TaskRetrieveResponse: """ Get a task by its unique ID. @@ -74,9 +77,13 @@ def retrieve( return self._get( f"/tasks/{task_id}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform({"relationships": relationships}, task_retrieve_params.TaskRetrieveParams), ), - cast_to=Task, + cast_to=TaskRetrieveResponse, ) def list( @@ -86,6 +93,7 @@ def list( agent_name: Optional[str] | Omit = omit, limit: int | Omit = omit, page_number: int | Omit = omit, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -118,6 +126,7 @@ def list( "agent_name": agent_name, "limit": limit, "page_number": page_number, + "relationships": relationships, }, task_list_params.TaskListParams, ), @@ -195,13 +204,14 @@ def retrieve_by_name( self, task_name: str, *, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> Task: + ) -> TaskRetrieveByNameResponse: """ Get a task by its unique name. @@ -219,9 +229,15 @@ def retrieve_by_name( return self._get( f"/tasks/name/{task_name}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform( + {"relationships": relationships}, task_retrieve_by_name_params.TaskRetrieveByNameParams + ), ), - cast_to=Task, + cast_to=TaskRetrieveByNameResponse, ) def stream_events( @@ -319,13 +335,14 @@ async def retrieve( self, task_id: str, *, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> Task: + ) -> TaskRetrieveResponse: """ Get a task by its unique ID. @@ -343,9 +360,15 @@ async def retrieve( return await self._get( f"/tasks/{task_id}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"relationships": relationships}, task_retrieve_params.TaskRetrieveParams + ), ), - cast_to=Task, + cast_to=TaskRetrieveResponse, ) async def list( @@ -355,6 +378,7 @@ async def list( agent_name: Optional[str] | Omit = omit, limit: int | Omit = omit, page_number: int | Omit = omit, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, @@ -387,6 +411,7 @@ async def list( "agent_name": agent_name, "limit": limit, "page_number": page_number, + "relationships": relationships, }, task_list_params.TaskListParams, ), @@ -464,13 +489,14 @@ async def retrieve_by_name( self, task_name: str, *, + relationships: List[Literal["agents"]] | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> Task: + ) -> TaskRetrieveByNameResponse: """ Get a task by its unique name. @@ -488,9 +514,15 @@ async def retrieve_by_name( return await self._get( f"/tasks/name/{task_name}", options=make_request_options( - extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"relationships": relationships}, task_retrieve_by_name_params.TaskRetrieveByNameParams + ), ), - cast_to=Task, + cast_to=TaskRetrieveByNameResponse, ) async def stream_events( diff --git a/src/agentex/types/__init__.py b/src/agentex/types/__init__.py index 0445dfad..47e148bb 100644 --- a/src/agentex/types/__init__.py +++ b/src/agentex/types/__init__.py @@ -45,6 +45,7 @@ from .tool_response_delta import ToolResponseDelta as ToolResponseDelta from .tracker_list_params import TrackerListParams as TrackerListParams from .task_message_content import TaskMessageContent as TaskMessageContent +from .task_retrieve_params import TaskRetrieveParams as TaskRetrieveParams from .tool_request_content import ToolRequestContent as ToolRequestContent from .message_create_params import MessageCreateParams as MessageCreateParams from .message_list_response import MessageListResponse as MessageListResponse @@ -52,6 +53,7 @@ from .tool_response_content import ToolResponseContent as ToolResponseContent from .tracker_list_response import TrackerListResponse as TrackerListResponse from .tracker_update_params import TrackerUpdateParams as TrackerUpdateParams +from .task_retrieve_response import TaskRetrieveResponse as TaskRetrieveResponse from .reasoning_content_delta import ReasoningContentDelta as ReasoningContentDelta from .reasoning_content_param import ReasoningContentParam as ReasoningContentParam from .reasoning_summary_delta import ReasoningSummaryDelta as ReasoningSummaryDelta @@ -59,3 +61,5 @@ from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam from .tool_response_content_param import ToolResponseContentParam as ToolResponseContentParam +from .task_retrieve_by_name_params import TaskRetrieveByNameParams as TaskRetrieveByNameParams +from .task_retrieve_by_name_response import TaskRetrieveByNameResponse as TaskRetrieveByNameResponse diff --git a/src/agentex/types/task_list_params.py b/src/agentex/types/task_list_params.py index 94be17f9..6c417eb0 100644 --- a/src/agentex/types/task_list_params.py +++ b/src/agentex/types/task_list_params.py @@ -2,8 +2,8 @@ from __future__ import annotations -from typing import Optional -from typing_extensions import TypedDict +from typing import List, Optional +from typing_extensions import Literal, TypedDict __all__ = ["TaskListParams"] @@ -16,3 +16,5 @@ class TaskListParams(TypedDict, total=False): limit: int page_number: int + + relationships: List[Literal["agents"]] diff --git a/src/agentex/types/task_list_response.py b/src/agentex/types/task_list_response.py index c9607e60..745c9fbe 100644 --- a/src/agentex/types/task_list_response.py +++ b/src/agentex/types/task_list_response.py @@ -1,10 +1,33 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from typing import List -from typing_extensions import TypeAlias +from typing import Dict, List, Optional +from datetime import datetime +from typing_extensions import Literal, TypeAlias -from .task import Task +from .agent import Agent +from .._models import BaseModel -__all__ = ["TaskListResponse"] +__all__ = ["TaskListResponse", "TaskListResponseItem"] -TaskListResponse: TypeAlias = List[Task] + +class TaskListResponseItem(BaseModel): + id: str + + agents: Optional[List[Agent]] = None + + created_at: Optional[datetime] = None + + name: Optional[str] = None + + params: Optional[Dict[str, object]] = None + + status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", "RUNNING", "TERMINATED", "TIMED_OUT", "DELETED"]] = None + + status_reason: Optional[str] = None + + task_metadata: Optional[Dict[str, object]] = None + + updated_at: Optional[datetime] = None + + +TaskListResponse: TypeAlias = List[TaskListResponseItem] diff --git a/src/agentex/types/task_retrieve_by_name_params.py b/src/agentex/types/task_retrieve_by_name_params.py new file mode 100644 index 00000000..98d03982 --- /dev/null +++ b/src/agentex/types/task_retrieve_by_name_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List +from typing_extensions import Literal, TypedDict + +__all__ = ["TaskRetrieveByNameParams"] + + +class TaskRetrieveByNameParams(TypedDict, total=False): + relationships: List[Literal["agents"]] diff --git a/src/agentex/types/task_retrieve_by_name_response.py b/src/agentex/types/task_retrieve_by_name_response.py new file mode 100644 index 00000000..4d8ae95d --- /dev/null +++ b/src/agentex/types/task_retrieve_by_name_response.py @@ -0,0 +1,30 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime +from typing_extensions import Literal + +from .agent import Agent +from .._models import BaseModel + +__all__ = ["TaskRetrieveByNameResponse"] + + +class TaskRetrieveByNameResponse(BaseModel): + id: str + + agents: Optional[List[Agent]] = None + + created_at: Optional[datetime] = None + + name: Optional[str] = None + + params: Optional[Dict[str, object]] = None + + status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", "RUNNING", "TERMINATED", "TIMED_OUT", "DELETED"]] = None + + status_reason: Optional[str] = None + + task_metadata: Optional[Dict[str, object]] = None + + updated_at: Optional[datetime] = None diff --git a/src/agentex/types/task_retrieve_params.py b/src/agentex/types/task_retrieve_params.py new file mode 100644 index 00000000..61748a1b --- /dev/null +++ b/src/agentex/types/task_retrieve_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import List +from typing_extensions import Literal, TypedDict + +__all__ = ["TaskRetrieveParams"] + + +class TaskRetrieveParams(TypedDict, total=False): + relationships: List[Literal["agents"]] diff --git a/src/agentex/types/task_retrieve_response.py b/src/agentex/types/task_retrieve_response.py new file mode 100644 index 00000000..f824b368 --- /dev/null +++ b/src/agentex/types/task_retrieve_response.py @@ -0,0 +1,30 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict, List, Optional +from datetime import datetime +from typing_extensions import Literal + +from .agent import Agent +from .._models import BaseModel + +__all__ = ["TaskRetrieveResponse"] + + +class TaskRetrieveResponse(BaseModel): + id: str + + agents: Optional[List[Agent]] = None + + created_at: Optional[datetime] = None + + name: Optional[str] = None + + params: Optional[Dict[str, object]] = None + + status: Optional[Literal["CANCELED", "COMPLETED", "FAILED", "RUNNING", "TERMINATED", "TIMED_OUT", "DELETED"]] = None + + status_reason: Optional[str] = None + + task_metadata: Optional[Dict[str, object]] = None + + updated_at: Optional[datetime] = None diff --git a/tests/api_resources/test_tasks.py b/tests/api_resources/test_tasks.py index 565ebb03..4f02757f 100644 --- a/tests/api_resources/test_tasks.py +++ b/tests/api_resources/test_tasks.py @@ -8,7 +8,11 @@ import pytest from agentex import Agentex, AsyncAgentex -from agentex.types import Task, TaskListResponse +from agentex.types import ( + TaskListResponse, + TaskRetrieveResponse, + TaskRetrieveByNameResponse, +) from agentex.types.shared import DeleteResponse from ..utils import assert_matches_type @@ -23,33 +27,42 @@ class TestTasks: @parametrize def test_method_retrieve(self, client: Agentex) -> None: task = client.tasks.retrieve( - "task_id", + task_id="task_id", ) - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Prism tests are disabled") + @parametrize + def test_method_retrieve_with_all_params(self, client: Agentex) -> None: + task = client.tasks.retrieve( + task_id="task_id", + relationships=["agents"], + ) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.tasks.with_raw_response.retrieve( - "task_id", + task_id="task_id", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.tasks.with_streaming_response.retrieve( - "task_id", + task_id="task_id", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) assert cast(Any, response.is_closed) is True @@ -58,7 +71,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): client.tasks.with_raw_response.retrieve( - "", + task_id="", ) @pytest.mark.skip(reason="Prism tests are disabled") @@ -75,6 +88,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: agent_name="agent_name", limit=0, page_number=0, + relationships=["agents"], ) assert_matches_type(TaskListResponse, task, path=["response"]) @@ -188,33 +202,42 @@ def test_path_params_delete_by_name(self, client: Agentex) -> None: @parametrize def test_method_retrieve_by_name(self, client: Agentex) -> None: task = client.tasks.retrieve_by_name( - "task_name", + task_name="task_name", ) - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Prism tests are disabled") + @parametrize + def test_method_retrieve_by_name_with_all_params(self, client: Agentex) -> None: + task = client.tasks.retrieve_by_name( + task_name="task_name", + relationships=["agents"], + ) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: response = client.tasks.with_raw_response.retrieve_by_name( - "task_name", + task_name="task_name", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: with client.tasks.with_streaming_response.retrieve_by_name( - "task_name", + task_name="task_name", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) assert cast(Any, response.is_closed) is True @@ -223,7 +246,7 @@ def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: def test_path_params_retrieve_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): client.tasks.with_raw_response.retrieve_by_name( - "", + task_name="", ) @pytest.mark.skip(reason="Prism tests are disabled") @@ -318,33 +341,42 @@ class TestAsyncTasks: @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve( - "task_id", + task_id="task_id", ) - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Prism tests are disabled") + @parametrize + async def test_method_retrieve_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.retrieve( + task_id="task_id", + relationships=["agents"], + ) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.retrieve( - "task_id", + task_id="task_id", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = await response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.retrieve( - "task_id", + task_id="task_id", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = await response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) assert cast(Any, response.is_closed) is True @@ -353,7 +385,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): await async_client.tasks.with_raw_response.retrieve( - "", + task_id="", ) @pytest.mark.skip(reason="Prism tests are disabled") @@ -370,6 +402,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> agent_name="agent_name", limit=0, page_number=0, + relationships=["agents"], ) assert_matches_type(TaskListResponse, task, path=["response"]) @@ -483,33 +516,42 @@ async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> N @parametrize async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve_by_name( - "task_name", + task_name="task_name", ) - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Prism tests are disabled") + @parametrize + async def test_method_retrieve_by_name_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.retrieve_by_name( + task_name="task_name", + relationships=["agents"], + ) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.retrieve_by_name( - "task_name", + task_name="task_name", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = await response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) @pytest.mark.skip(reason="Prism tests are disabled") @parametrize async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.retrieve_by_name( - "task_name", + task_name="task_name", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" task = await response.parse() - assert_matches_type(Task, task, path=["response"]) + assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) assert cast(Any, response.is_closed) is True @@ -518,7 +560,7 @@ async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgen async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): await async_client.tasks.with_raw_response.retrieve_by_name( - "", + task_name="", ) @pytest.mark.skip(reason="Prism tests are disabled")