Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.4.28"
".": "0.5.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -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
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
6 changes: 3 additions & 3 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,16 +43,16 @@ Methods:
Types:

```python
from agentex.types import Task, TaskListResponse
from agentex.types import Task, TaskRetrieveResponse, TaskListResponse, TaskRetrieveByNameResponse
```

Methods:

- <code title="get /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve</a>(task_id) -> <a href="./src/agentex/types/task.py">Task</a></code>
- <code title="get /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve</a>(task_id, \*\*<a href="src/agentex/types/task_retrieve_params.py">params</a>) -> <a href="./src/agentex/types/task_retrieve_response.py">TaskRetrieveResponse</a></code>
- <code title="get /tasks">client.tasks.<a href="./src/agentex/resources/tasks.py">list</a>(\*\*<a href="src/agentex/types/task_list_params.py">params</a>) -> <a href="./src/agentex/types/task_list_response.py">TaskListResponse</a></code>
- <code title="delete /tasks/{task_id}">client.tasks.<a href="./src/agentex/resources/tasks.py">delete</a>(task_id) -> <a href="./src/agentex/types/shared/delete_response.py">DeleteResponse</a></code>
- <code title="delete /tasks/name/{task_name}">client.tasks.<a href="./src/agentex/resources/tasks.py">delete_by_name</a>(task_name) -> <a href="./src/agentex/types/shared/delete_response.py">DeleteResponse</a></code>
- <code title="get /tasks/name/{task_name}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve_by_name</a>(task_name) -> <a href="./src/agentex/types/task.py">Task</a></code>
- <code title="get /tasks/name/{task_name}">client.tasks.<a href="./src/agentex/resources/tasks.py">retrieve_by_name</a>(task_name, \*\*<a href="src/agentex/types/task_retrieve_by_name_params.py">params</a>) -> <a href="./src/agentex/types/task_retrieve_by_name_response.py">TaskRetrieveByNameResponse</a></code>
- <code title="get /tasks/{task_id}/stream">client.tasks.<a href="./src/agentex/resources/tasks.py">stream_events</a>(task_id) -> object</code>
- <code title="get /tasks/name/{task_name}/stream">client.tasks.<a href="./src/agentex/resources/tasks.py">stream_events_by_name</a>(task_name) -> object</code>

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion src/agentex/_version.py
Original file line number Diff line number Diff line change
@@ -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
4 changes: 3 additions & 1 deletion src/agentex/lib/adk/_modules/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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:
Expand Down
4 changes: 3 additions & 1 deletion src/agentex/lib/core/services/adk/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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__)

Expand All @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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__)

Expand All @@ -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,
Expand Down
62 changes: 47 additions & 15 deletions src/agentex/resources/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"]

Expand Down Expand Up @@ -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.

Expand All @@ -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(
Expand All @@ -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,
Expand Down Expand Up @@ -118,6 +126,7 @@ def list(
"agent_name": agent_name,
"limit": limit,
"page_number": page_number,
"relationships": relationships,
},
task_list_params.TaskListParams,
),
Expand Down Expand Up @@ -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.

Expand All @@ -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(
Expand Down Expand Up @@ -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.

Expand All @@ -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(
Expand All @@ -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,
Expand Down Expand Up @@ -387,6 +411,7 @@ async def list(
"agent_name": agent_name,
"limit": limit,
"page_number": page_number,
"relationships": relationships,
},
task_list_params.TaskListParams,
),
Expand Down Expand Up @@ -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.

Expand All @@ -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(
Expand Down
4 changes: 4 additions & 0 deletions src/agentex/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,17 +45,21 @@
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
from .message_update_params import MessageUpdateParams as MessageUpdateParams
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
from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNameParams
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
6 changes: 4 additions & 2 deletions src/agentex/types/task_list_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]

Expand All @@ -16,3 +16,5 @@ class TaskListParams(TypedDict, total=False):
limit: int

page_number: int

relationships: List[Literal["agents"]]
33 changes: 28 additions & 5 deletions src/agentex/types/task_list_response.py
Original file line number Diff line number Diff line change
@@ -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]
12 changes: 12 additions & 0 deletions src/agentex/types/task_retrieve_by_name_params.py
Original file line number Diff line number Diff line change
@@ -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"]]
Loading