Skip to content
Open
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.12.0"
".": "0.13.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/warp-bnavetta/warp-api-1fecc5f5d6ee664d804b81bd1aa6eec4d3f170ffa788d214fead4f7e95ab9d4e.yml
openapi_spec_hash: 82990b03bd5a93e45bfc79db56ae7fc0
config_hash: f52e7636f248f25c4ea0b086e7326816
configured_endpoints: 23
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/warp-bnavetta/warp-api-e752e75a35d88b84870729ef94b0c32783172983420cbff1b204ca14375553f7.yml
openapi_spec_hash: 34787afc1e1c84a643431a0f0eb352ae
config_hash: 5a6e285f6e3a958a887b31b972a3f49c
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.13.0 (2026-05-07)

Full Changelog: [v0.12.0...v0.13.0](https://github.com/warpdotdev/oz-sdk-python/compare/v0.12.0...v0.13.0)

### Features

* **api:** api update ([99b2d31](https://github.com/warpdotdev/oz-sdk-python/commit/99b2d31ba1a4c2c3d79fc11c5eb8d611c55613b8))

## 0.12.0 (2026-05-07)

Full Changelog: [v0.11.0...v0.12.0](https://github.com/warpdotdev/oz-sdk-python/compare/v0.11.0...v0.12.0)
Expand Down
1 change: 1 addition & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Methods:
- <code title="put /agent/identities/{uid}">client.agent.agent.<a href="./src/oz_agent_sdk/resources/agent/agent_.py">update</a>(uid, \*\*<a href="src/oz_agent_sdk/types/agent/agent_update_params.py">params</a>) -> <a href="./src/oz_agent_sdk/types/agent/agent_response.py">AgentResponse</a></code>
- <code title="get /agent/identities">client.agent.agent.<a href="./src/oz_agent_sdk/resources/agent/agent_.py">list</a>() -> <a href="./src/oz_agent_sdk/types/agent/list_agent_identities_response.py">ListAgentIdentitiesResponse</a></code>
- <code title="delete /agent/identities/{uid}">client.agent.agent.<a href="./src/oz_agent_sdk/resources/agent/agent_.py">delete</a>(uid) -> None</code>
- <code title="get /agent/identities/{uid}">client.agent.agent.<a href="./src/oz_agent_sdk/resources/agent/agent_.py">get</a>(uid) -> <a href="./src/oz_agent_sdk/types/agent/agent_response.py">AgentResponse</a></code>

## Sessions

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 = "oz-agent-sdk"
version = "0.12.0"
version = "0.13.0"
description = "The official Python library for the oz-api API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/oz_agent_sdk/_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__ = "oz_agent_sdk"
__version__ = "0.12.0" # x-release-please-version
__version__ = "0.13.0" # x-release-please-version
110 changes: 106 additions & 4 deletions src/oz_agent_sdk/resources/agent/agent_.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ def create(
self,
*,
name: str,
base_model: Optional[str] | Omit = omit,
description: Optional[str] | Omit = omit,
secrets: Iterable[agent_create_params.Secret] | Omit = omit,
skills: SequenceNotStr[str] | Omit = omit,
Expand All @@ -68,6 +69,8 @@ def create(
Args:
name: A name for the agent

base_model: Optional base model for runs executed by this agent.

description: Optional description of the agent

secrets: Optional list of secrets associated with the agent. Duplicate names within a
Expand All @@ -94,6 +97,7 @@ def create(
body=maybe_transform(
{
"name": name,
"base_model": base_model,
"description": description,
"secrets": secrets,
"skills": skills,
Expand All @@ -110,6 +114,7 @@ def update(
self,
uid: str,
*,
base_model: Optional[str] | Omit = omit,
description: Optional[str] | Omit = omit,
name: str | Omit = omit,
secrets: Optional[Iterable[agent_update_params.Secret]] | Omit = omit,
Expand All @@ -124,9 +129,12 @@ def update(
"""Update an existing agent.

Args:
description: Replacement description.
base_model: Replacement base model.

Omit or pass `null` to leave unchanged, or pass an empty
string to clear.

Omit or pass `null` to leave unchanged, or use an empty
description: Replacement description. Omit or pass `null` to leave unchanged, or use an empty
value to clear.

name: The new name for the agent
Expand All @@ -151,6 +159,7 @@ def update(
path_template("/agent/identities/{uid}", uid=uid),
body=maybe_transform(
{
"base_model": base_model,
"description": description,
"name": name,
"secrets": secrets,
Expand Down Expand Up @@ -222,6 +231,42 @@ def delete(
cast_to=NoneType,
)

def get(
self,
uid: str,
*,
# 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,
) -> AgentResponse:
"""Retrieve a single agent by its unique identifier.

The response includes an
`available` flag indicating whether the agent is within the team's plan limit
and may be used for runs.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not uid:
raise ValueError(f"Expected a non-empty value for `uid` but received {uid!r}")
return self._get(
path_template("/agent/identities/{uid}", uid=uid),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=AgentResponse,
)


class AsyncAgentResource(AsyncAPIResource):
"""Operations for running and managing cloud agents"""
Expand Down Expand Up @@ -249,6 +294,7 @@ async def create(
self,
*,
name: str,
base_model: Optional[str] | Omit = omit,
description: Optional[str] | Omit = omit,
secrets: Iterable[agent_create_params.Secret] | Omit = omit,
skills: SequenceNotStr[str] | Omit = omit,
Expand All @@ -267,6 +313,8 @@ async def create(
Args:
name: A name for the agent

base_model: Optional base model for runs executed by this agent.

description: Optional description of the agent

secrets: Optional list of secrets associated with the agent. Duplicate names within a
Expand All @@ -293,6 +341,7 @@ async def create(
body=await async_maybe_transform(
{
"name": name,
"base_model": base_model,
"description": description,
"secrets": secrets,
"skills": skills,
Expand All @@ -309,6 +358,7 @@ async def update(
self,
uid: str,
*,
base_model: Optional[str] | Omit = omit,
description: Optional[str] | Omit = omit,
name: str | Omit = omit,
secrets: Optional[Iterable[agent_update_params.Secret]] | Omit = omit,
Expand All @@ -323,9 +373,12 @@ async def update(
"""Update an existing agent.

Args:
description: Replacement description.
base_model: Replacement base model.

Omit or pass `null` to leave unchanged, or pass an empty
string to clear.

Omit or pass `null` to leave unchanged, or use an empty
description: Replacement description. Omit or pass `null` to leave unchanged, or use an empty
value to clear.

name: The new name for the agent
Expand All @@ -350,6 +403,7 @@ async def update(
path_template("/agent/identities/{uid}", uid=uid),
body=await async_maybe_transform(
{
"base_model": base_model,
"description": description,
"name": name,
"secrets": secrets,
Expand Down Expand Up @@ -421,6 +475,42 @@ async def delete(
cast_to=NoneType,
)

async def get(
self,
uid: str,
*,
# 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,
) -> AgentResponse:
"""Retrieve a single agent by its unique identifier.

The response includes an
`available` flag indicating whether the agent is within the team's plan limit
and may be used for runs.

Args:
extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
if not uid:
raise ValueError(f"Expected a non-empty value for `uid` but received {uid!r}")
return await self._get(
path_template("/agent/identities/{uid}", uid=uid),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=AgentResponse,
)


class AgentResourceWithRawResponse:
def __init__(self, agent: AgentResource) -> None:
Expand All @@ -438,6 +528,9 @@ def __init__(self, agent: AgentResource) -> None:
self.delete = to_raw_response_wrapper(
agent.delete,
)
self.get = to_raw_response_wrapper(
agent.get,
)


class AsyncAgentResourceWithRawResponse:
Expand All @@ -456,6 +549,9 @@ def __init__(self, agent: AsyncAgentResource) -> None:
self.delete = async_to_raw_response_wrapper(
agent.delete,
)
self.get = async_to_raw_response_wrapper(
agent.get,
)


class AgentResourceWithStreamingResponse:
Expand All @@ -474,6 +570,9 @@ def __init__(self, agent: AgentResource) -> None:
self.delete = to_streamed_response_wrapper(
agent.delete,
)
self.get = to_streamed_response_wrapper(
agent.get,
)


class AsyncAgentResourceWithStreamingResponse:
Expand All @@ -492,3 +591,6 @@ def __init__(self, agent: AsyncAgentResource) -> None:
self.delete = async_to_streamed_response_wrapper(
agent.delete,
)
self.get = async_to_streamed_response_wrapper(
agent.get,
)
3 changes: 3 additions & 0 deletions src/oz_agent_sdk/types/agent/agent_create_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ class AgentCreateParams(TypedDict, total=False):
name: Required[str]
"""A name for the agent"""

base_model: Optional[str]
"""Optional base model for runs executed by this agent."""

description: Optional[str]
"""Optional description of the agent"""

Expand Down
10 changes: 10 additions & 0 deletions src/oz_agent_sdk/types/agent/agent_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,15 @@ class AgentResponse(BaseModel):
uid: str
"""Unique identifier for the agent"""

base_model: Optional[str] = None
"""Base model for runs executed by this agent.

The precedence order for model resolution is:

1. The model specified on the run itself
2. The agent's base model
3. The team's default model
"""

description: Optional[str] = None
"""Optional description of the agent"""
6 changes: 6 additions & 0 deletions src/oz_agent_sdk/types/agent/agent_update_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,12 @@


class AgentUpdateParams(TypedDict, total=False):
base_model: Optional[str]
"""Replacement base model.

Omit or pass `null` to leave unchanged, or pass an empty string to clear.
"""

description: Optional[str]
"""Replacement description.

Expand Down
3 changes: 3 additions & 0 deletions src/oz_agent_sdk/types/agent/run_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ class RequestUsage(BaseModel):
inference_cost: Optional[float] = None
"""Cost of LLM inference for the run"""

platform_cost: Optional[float] = None
"""Cost of platform usage for the run"""


class Schedule(BaseModel):
"""
Expand Down
3 changes: 0 additions & 3 deletions src/oz_agent_sdk/types/agent/scheduled_agent_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ class ScheduledAgentItem(BaseModel):
agent_config: Optional[AmbientAgentConfig] = None
"""Configuration for a cloud agent run"""

agent_uid: Optional[str] = None
"""UID of the agent that this schedule runs as"""

created_by: Optional[UserProfile] = None

environment: Optional[CloudEnvironmentConfig] = None
Expand Down
Loading
Loading