chore: update hanzoai SDK and tests

This commit is contained in:
2026-01-21 21:45:43 -08:00
parent 2240bd7cbe
commit 07646380eb
300 changed files with 1315 additions and 1084 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
# Import new modules
from . import mcp, auth, grpo, types, agents, cluster
+11 -11
View File
@@ -414,14 +414,14 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
# Don't set these headers if they were already set or removed by the caller. We check
# `custom_headers`, which can contain `Omit()`, instead of `headers` to account for the removal case.
lower_custom_headers = [header.lower() for header in custom_headers]
if "x-stainless-retry-count" not in lower_custom_headers:
headers["x-stainless-retry-count"] = str(retries_taken)
if "x-stainless-read-timeout" not in lower_custom_headers:
if "x-hanzo-retry-count" not in lower_custom_headers:
headers["x-hanzo-retry-count"] = str(retries_taken)
if "x-hanzo-read-timeout" not in lower_custom_headers:
timeout = self.timeout if isinstance(options.timeout, NotGiven) else options.timeout
if isinstance(timeout, Timeout):
timeout = timeout.read
if timeout is not None:
headers["x-stainless-read-timeout"] = str(timeout)
headers["x-hanzo-read-timeout"] = str(timeout)
return headers
@@ -742,7 +742,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
return False
def _idempotency_key(self) -> str:
return f"stainless-python-retry-{uuid.uuid4()}"
return f"hanzo-python-retry-{uuid.uuid4()}"
class _DefaultHttpxClient(httpx.Client):
@@ -1916,12 +1916,12 @@ def get_platform() -> Platform:
@lru_cache(maxsize=None)
def platform_headers(version: str, *, platform: Platform | None) -> Dict[str, str]:
return {
"X-Stainless-Lang": "python",
"X-Stainless-Package-Version": version,
"X-Stainless-OS": str(platform or get_platform()),
"X-Stainless-Arch": str(get_architecture()),
"X-Stainless-Runtime": get_python_runtime(),
"X-Stainless-Runtime-Version": get_python_version(),
"X-Hanzo-Lang": "python",
"X-Hanzo-Package-Version": version,
"X-Hanzo-OS": str(platform or get_platform()),
"X-Hanzo-Arch": str(get_architecture()),
"X-Hanzo-Runtime": get_python_runtime(),
"X-Hanzo-Runtime-Version": get_python_version(),
}
+3 -3
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -307,7 +307,7 @@ class Hanzo(SyncAPIClient):
def default_headers(self) -> dict[str, str | Omit]:
return {
**super().default_headers,
"X-Stainless-Async": "false",
"X-Hanzo-Async": "false",
**self._custom_headers,
}
@@ -617,7 +617,7 @@ class AsyncHanzo(AsyncAPIClient):
def default_headers(self) -> dict[str, str | Omit]:
return {
**super().default_headers,
"X-Stainless-Async": f"async:{get_async_library()}",
"X-Hanzo-Async": f"async:{get_async_library()}",
**self._custom_headers,
}
+3 -3
View File
@@ -1,9 +1,9 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
import httpx
RAW_RESPONSE_HEADER = "X-Stainless-Raw-Response"
OVERRIDE_CAST_TO_HEADER = "____stainless_override_cast_to"
RAW_RESPONSE_HEADER = "X-Hanzo-Raw-Response"
OVERRIDE_CAST_TO_HEADER = "____hanzo_override_cast_to"
# default timeout is 1 minute
DEFAULT_TIMEOUT = httpx.Timeout(timeout=60, connect=5.0)
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -370,7 +370,7 @@ def get_required_header(headers: HeadersLike, header: str) -> str:
if k.lower() == lower_header and isinstance(v, str):
return v
# to deal with the case where the header looks like Stainless-Event-Id
# to deal with the case where the header looks like Hanzo-Event-Id
intercaps_header = re.sub(
r"([^\w])(\w)",
lambda pat: pat.group(1) + pat.group(2).upper(),
+2 -2
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
__title__ = "hanzoai"
__version__ = "2.0.2" # x-release-please-version
__version__ = "2.1.2" # x-release-please-version
+232
View File
@@ -99,6 +99,110 @@ class HanzoAuth:
return {"api_key": api_key, **user_info}
async def login_with_device_code(
self,
open_browser: bool = True,
poll_interval: float = 5.0,
timeout: float = 300.0,
) -> Dict[str, Any]:
"""Login with Device Code flow (works on remote/headless systems).
This is the recommended auth method for CLI tools. User visits a URL
and enters a code, no local server required.
Args:
open_browser: Whether to automatically open browser (default True)
poll_interval: Seconds between polling attempts (default 5)
timeout: Max seconds to wait for auth (default 300)
Returns:
User information and tokens
"""
import time
async with httpx.AsyncClient() as client:
# Step 1: Request device code
response = await client.post(
f"{self.base_url}/api/device/code",
json={
"client_id": "hanzo-cli",
"scope": "openid profile email",
},
)
response.raise_for_status()
data = response.json()
device_code = data["device_code"]
user_code = data["user_code"]
verification_url = data.get("verification_uri", f"{self.base_url}/device")
verification_url_complete = data.get(
"verification_uri_complete",
f"{verification_url}?user_code={user_code}"
)
expires_in = data.get("expires_in", timeout)
interval = data.get("interval", poll_interval)
# Step 2: Display instructions to user
print(f"\n\033[1;36mTo sign in, visit:\033[0m {verification_url}")
print(f"\033[1;33mEnter code:\033[0m {user_code}\n")
# Optionally open browser
if open_browser:
try:
webbrowser.open(verification_url_complete)
print("\033[2m(Browser opened automatically)\033[0m\n")
except Exception:
pass
# Step 3: Poll for completion
start_time = time.time()
while time.time() - start_time < min(expires_in, timeout):
await asyncio.sleep(interval)
try:
token_response = await client.post(
f"{self.base_url}/api/device/token",
json={
"client_id": "hanzo-cli",
"device_code": device_code,
"grant_type": "urn:ietf:params:oauth:grant-type:device_code",
},
)
if token_response.status_code == 200:
token_data = token_response.json()
self._token = token_data.get("access_token")
# Get user info
user_info = await self.get_user_info()
print("\033[1;32m✓ Authentication successful!\033[0m\n")
return {"token": self._token, **user_info}
elif token_response.status_code == 400:
error_data = token_response.json()
error = error_data.get("error")
if error == "authorization_pending":
# User hasn't completed auth yet, keep polling
continue
elif error == "slow_down":
# Server asking us to slow down
interval += 5
continue
elif error == "expired_token":
raise RuntimeError("Device code expired. Please try again.")
elif error == "access_denied":
raise RuntimeError("Authentication denied by user.")
else:
raise RuntimeError(f"Authentication error: {error}")
except httpx.HTTPStatusError as e:
if e.response.status_code != 400:
raise
raise RuntimeError("Authentication timed out. Please try again.")
async def login_with_sso(self) -> Dict[str, Any]:
"""Login with SSO (browser-based).
@@ -376,3 +480,131 @@ def setup_auth_from_env():
pass
return None
# Agent Runtime Authentication
class AgentAuth:
"""Authentication helper for agent runtime environments.
Provides seamless auth for agents running in:
- Local development
- Remote VMs
- Docker containers (Operative, etc.)
- Kubernetes pods
"""
def __init__(self):
self._hanzo_auth = None
async def ensure_authenticated(
self,
require_interactive: bool = False,
headless: bool = True,
) -> HanzoAuth:
"""Ensure agent is authenticated, prompting if necessary.
Args:
require_interactive: Force device code flow even if token exists
headless: Don't try to open browser (for containers)
Returns:
Authenticated HanzoAuth instance
Raises:
RuntimeError: If authentication fails
"""
# 1. Check environment variables first (highest priority)
if api_key := os.environ.get("HANZO_API_KEY"):
self._hanzo_auth = HanzoAuth(api_key=api_key)
return self._hanzo_auth
if token := os.environ.get("HANZO_AUTH_TOKEN"):
self._hanzo_auth = HanzoAuth()
self._hanzo_auth._token = token
return self._hanzo_auth
# 2. Check saved credentials
config_file = Path.home() / ".hanzo" / "auth.json"
if config_file.exists() and not require_interactive:
try:
self._hanzo_auth = HanzoAuth()
await self._hanzo_auth.load_credentials(config_file)
if await self._hanzo_auth.is_authenticated():
return self._hanzo_auth
except Exception:
pass # Fall through to device code flow
# 3. Device code flow for interactive authentication
self._hanzo_auth = HanzoAuth()
result = await self._hanzo_auth.login_with_device_code(
open_browser=not headless
)
# Save credentials for future use
await self._hanzo_auth.save_credentials(config_file)
return self._hanzo_auth
@property
def token(self) -> Optional[str]:
"""Get current auth token."""
if self._hanzo_auth:
return self._hanzo_auth.api_key or self._hanzo_auth._token
return None
def get_headers(self) -> Dict[str, str]:
"""Get auth headers for API requests."""
if self._hanzo_auth:
return self._hanzo_auth._get_headers()
return {}
async def authenticate_agent(
headless: bool = True,
require_interactive: bool = False,
) -> AgentAuth:
"""Authenticate an agent in any environment.
This is the recommended entry point for agent authentication.
Works in:
- Local CLI (opens browser for device code)
- Remote SSH (displays device code)
- Docker containers (uses HANZO_API_KEY or device code)
- Kubernetes pods (uses service account or device code)
Args:
headless: Don't try to open browser (True for containers)
require_interactive: Force device code even if cached token exists
Returns:
AgentAuth instance with authenticated session
Example:
async def main():
auth = await authenticate_agent()
# Agent is now authenticated
headers = auth.get_headers()
# Use headers for API requests
"""
agent_auth = AgentAuth()
await agent_auth.ensure_authenticated(
require_interactive=require_interactive,
headless=headless,
)
return agent_auth
def sync_authenticate_agent(
headless: bool = True,
require_interactive: bool = False,
) -> AgentAuth:
"""Synchronous wrapper for authenticate_agent.
For use in non-async contexts.
"""
return asyncio.run(
authenticate_agent(
headless=headless,
require_interactive=require_interactive,
)
)
+2 -3
View File
@@ -1,4 +1,3 @@
File generated from our OpenAPI spec by Stainless.
# Hanzo AI SDK
This directory can be used to store custom files to expand the SDK.
It is ignored by Stainless code generation and its content (other than this keep file) won't be touched.
This directory can be used to store custom files to expand the SDK.
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .audio import (
AudioResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .cancel import (
CancelResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .cache import (
CacheResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .chat import (
ChatResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .config import (
ConfigResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .chat import (
ChatResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .files import (
FilesResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .jobs import (
JobsResource,
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .jobs import (
JobsResource,
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .spend import (
SpendResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .images import (
ImagesResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .key import (
KeyResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .info import (
InfoResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .openai import (
OpenAIResource,
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .chat import (
ChatResource,
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .info import (
InfoResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .responses import (
ResponsesResource,
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .team import (
TeamResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from .runs import (
RunsResource,
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from typing import Optional
from typing_extensions import Literal
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,3 +1,3 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from typing import Optional
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from typing import List
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from ..._models import BaseModel
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations
+1 -1
View File
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
# Hanzo AI SDK
from __future__ import annotations

Some files were not shown because too many files have changed in this diff Show More