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.8.0"
".": "0.9.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 14
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/warp-bnavetta%2Fwarp-api-0c4039c2494856656a7a1a93f76bb7f8c1d3ca7b164e2f97579b59e1a8bdb57c.yml
openapi_spec_hash: 2eb93f6ec9c664399fef84ce3bf8c5a7
config_hash: 25c1059aa958c8c2ad60ef16c318514d
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/warp-bnavetta%2Fwarp-api-39e18bbb8b0af73eca7a880f56afbdecd69e3e5bab82a04c4d6429c32d7e6727.yml
openapi_spec_hash: 7a0de988bb37416d6e80f4a4bbe9d0d0
config_hash: 0884847870200ee9d34bb00ce94aaa8e
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.9.0 (2026-03-03)

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

### Features

* **api:** manual updates ([26fc085](https://github.com/warpdotdev/oz-sdk-python/commit/26fc0852ddd9352fe7564cba64f34203d940ac57))
* **api:** manual updates ([1f89eca](https://github.com/warpdotdev/oz-sdk-python/commit/1f89eca19e244721d77837d5aafbf0e1de20aee7))

## 0.8.0 (2026-03-03)

Full Changelog: [v0.7.0...v0.8.0](https://github.com/warpdotdev/oz-sdk-python/compare/v0.7.0...v0.8.0)
Expand Down
2 changes: 2 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ from oz_agent_sdk.types import (
AmbientAgentConfig,
CloudEnvironmentConfig,
McpServerConfig,
Scope,
UserProfile,
AgentListResponse,
AgentGetArtifactResponse,
Expand Down Expand Up @@ -48,6 +49,7 @@ Types:

```python
from oz_agent_sdk.types.agent import (
ScheduledAgentHistoryItem,
ScheduledAgentItem,
ScheduleListResponse,
ScheduleDeleteResponse,
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.8.0"
version = "0.9.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.8.0" # x-release-please-version
__version__ = "0.9.0" # x-release-please-version
12 changes: 10 additions & 2 deletions src/oz_agent_sdk/resources/agent/runs.py
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,11 @@ def cancel(
"""Cancel an agent run that is currently queued or in progress.

Once cancelled, the
run will transition to a failed state.
run will transition to a cancelled state.

Not all runs can be cancelled. Runs that are in a terminal state (SUCCEEDED,
FAILED, ERROR, BLOCKED, CANCELLED) return 400. Runs in PENDING state return 409
(retry after a moment). Self-hosted, local, and GitHub Action runs return 422.

Args:
extra_headers: Send extra headers
Expand Down Expand Up @@ -402,7 +406,11 @@ async def cancel(
"""Cancel an agent run that is currently queued or in progress.

Once cancelled, the
run will transition to a failed state.
run will transition to a cancelled state.

Not all runs can be cancelled. Runs that are in a terminal state (SUCCEEDED,
FAILED, ERROR, BLOCKED, CANCELLED) return 400. Runs in PENDING state return 409
(retry after a moment). Self-hosted, local, and GitHub Action runs return 422.

Args:
extra_headers: Send extra headers
Expand Down
1 change: 1 addition & 0 deletions src/oz_agent_sdk/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from __future__ import annotations

from .scope import Scope as Scope
from .agent_skill import AgentSkill as AgentSkill
from .user_profile import UserProfile as UserProfile
from .agent_run_params import AgentRunParams as AgentRunParams
Expand Down
1 change: 1 addition & 0 deletions src/oz_agent_sdk/types/agent/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@
from .schedule_list_response import ScheduleListResponse as ScheduleListResponse
from .schedule_update_params import ScheduleUpdateParams as ScheduleUpdateParams
from .schedule_delete_response import ScheduleDeleteResponse as ScheduleDeleteResponse
from .scheduled_agent_history_item import ScheduledAgentHistoryItem as ScheduledAgentHistoryItem
from .session_check_redirect_response import SessionCheckRedirectResponse as SessionCheckRedirectResponse
78 changes: 68 additions & 10 deletions src/oz_agent_sdk/types/agent/run_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
from datetime import datetime
from typing_extensions import Literal

from ..scope import Scope
from ..._models import BaseModel
from .run_state import RunState
from ..user_profile import UserProfile
from .artifact_item import ArtifactItem
from .run_source_type import RunSourceType
from ..ambient_agent_config import AmbientAgentConfig

__all__ = ["RunItem", "AgentSkill", "RequestUsage", "Schedule", "Scope", "StatusMessage"]
__all__ = ["RunItem", "AgentSkill", "RequestUsage", "Schedule", "StatusMessage"]


class AgentSkill(BaseModel):
Expand Down Expand Up @@ -58,19 +59,71 @@ class Schedule(BaseModel):
"""Name of the schedule at the time the run was created"""


class Scope(BaseModel):
"""Ownership scope for a resource (team or personal)"""
class StatusMessage(BaseModel):
"""Status message for a run.

For terminal error states, includes structured
error code and retryability info from the platform error catalog.
"""

type: Literal["User", "Team"]
"""Type of ownership ("User" for personal, "Team" for team-owned)"""
message: str
"""Human-readable status message"""

uid: Optional[str] = None
"""UID of the owning user or team"""
error_code: Optional[
Literal[
"insufficient_credits",
"feature_not_available",
"external_authentication_required",
"not_authorized",
"invalid_request",
"resource_not_found",
"budget_exceeded",
"integration_disabled",
"integration_not_configured",
"operation_not_supported",
"environment_setup_failed",
"content_policy_violation",
"conflict",
"authentication_required",
"resource_unavailable",
"internal_error",
]
] = None
"""
Machine-readable error code identifying the problem type. Used in the `type` URI
of Error responses and in the `error_code` field of RunStatusMessage.

User errors (run transitions to FAILED):

- `insufficient_credits` — Team has no remaining add-on credits
- `feature_not_available` — Required feature not enabled for user's plan
- `external_authentication_required` — User hasn't authorized a required
external service
- `not_authorized` — Principal lacks permission for the requested operation
- `invalid_request` — Request is malformed or contains invalid parameters
- `resource_not_found` — Referenced resource does not exist
- `budget_exceeded` — Spending budget limit has been reached
- `integration_disabled` — Integration is disabled and must be enabled
- `integration_not_configured` — Integration setup is incomplete
- `operation_not_supported` — Requested operation not supported for this
resource/state
- `environment_setup_failed` — Client-side environment setup failed
- `content_policy_violation` — Prompt or setup commands violated content policy
- `conflict` — Request conflicts with the current state of the resource

Warp errors (run transitions to ERROR):

- `authentication_required` — Request lacks valid authentication credentials
- `resource_unavailable` — Transient infrastructure issue (retryable)
- `internal_error` — Unexpected server-side error (retryable)
"""

retryable: Optional[bool] = None
"""Whether the error is transient and the client may retry by submitting a new run.

class StatusMessage(BaseModel):
message: Optional[str] = None
"""Human-readable status message"""
Only present on terminal error states. When false, retrying without addressing
the underlying cause will not succeed.
"""


class RunItem(BaseModel):
Expand Down Expand Up @@ -165,3 +218,8 @@ class RunItem(BaseModel):
"""Timestamp when the agent started working on the run (RFC3339)"""

status_message: Optional[StatusMessage] = None
"""Status message for a run.

For terminal error states, includes structured error code and retryability info
from the platform error catalog.
"""
18 changes: 18 additions & 0 deletions src/oz_agent_sdk/types/agent/scheduled_agent_history_item.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional
from datetime import datetime

from ..._models import BaseModel

__all__ = ["ScheduledAgentHistoryItem"]


class ScheduledAgentHistoryItem(BaseModel):
"""Scheduler-derived history metadata for a scheduled agent"""

last_ran: Optional[datetime] = None
"""Timestamp of the last successful run (RFC3339)"""

next_run: Optional[datetime] = None
"""Timestamp of the next scheduled run (RFC3339)"""
27 changes: 4 additions & 23 deletions src/oz_agent_sdk/types/agent/scheduled_agent_item.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,34 +2,15 @@

from typing import Optional
from datetime import datetime
from typing_extensions import Literal

from ..scope import Scope
from ..._models import BaseModel
from ..user_profile import UserProfile
from ..ambient_agent_config import AmbientAgentConfig
from ..cloud_environment_config import CloudEnvironmentConfig
from .scheduled_agent_history_item import ScheduledAgentHistoryItem

__all__ = ["ScheduledAgentItem", "History", "Scope"]


class History(BaseModel):
"""Scheduler-derived history metadata for a scheduled agent"""

last_ran: Optional[datetime] = None
"""Timestamp of the last successful run (RFC3339)"""

next_run: Optional[datetime] = None
"""Timestamp of the next scheduled run (RFC3339)"""


class Scope(BaseModel):
"""Ownership scope for a resource (team or personal)"""

type: Literal["User", "Team"]
"""Type of ownership ("User" for personal, "Team" for team-owned)"""

uid: Optional[str] = None
"""UID of the owning user or team"""
__all__ = ["ScheduledAgentItem"]


class ScheduledAgentItem(BaseModel):
Expand Down Expand Up @@ -65,7 +46,7 @@ class ScheduledAgentItem(BaseModel):
environment: Optional[CloudEnvironmentConfig] = None
"""Configuration for a cloud environment used by scheduled agents"""

history: Optional[History] = None
history: Optional[ScheduledAgentHistoryItem] = None
"""Scheduler-derived history metadata for a scheduled agent"""

last_spawn_error: Optional[str] = None
Expand Down
18 changes: 18 additions & 0 deletions src/oz_agent_sdk/types/scope.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional
from typing_extensions import Literal

from .._models import BaseModel

__all__ = ["Scope"]


class Scope(BaseModel):
"""Ownership scope for a resource (team or personal)"""

type: Literal["User", "Team"]
"""Type of ownership ("User" for personal, "Team" for team-owned)"""

uid: Optional[str] = None
"""UID of the owning user or team"""