From a94c035ba2de9a89c3b219964db3dfa96d70a89f Mon Sep 17 00:00:00 2001 From: abonneth <206544678+abonneth@users.noreply.github.com> Date: Wed, 7 Oct 2026 11:52:32 +0000 Subject: [PATCH 1/2] chore(sdk): sync generated SDK (v1.2.1) --- openapi.json | 18 ++++++++++++++++++ pyproject.toml | 2 +- src/hai_agents/agents/client.py | 24 ++++++++++++++++++++++-- src/hai_agents/agents/raw_client.py | 10 ++++++++++ src/hai_agents/client.py | 7 +------ src/hai_agents/core/client_wrapper.py | 4 ++-- uv.lock | 2 +- 7 files changed, 55 insertions(+), 12 deletions(-) diff --git a/openapi.json b/openapi.json index 2d9970c..5fbf664 100644 --- a/openapi.json +++ b/openapi.json @@ -2185,6 +2185,24 @@ }, "description": "Case-insensitive match on agent name or description." }, + { + "name": "reserved", + "in": "query", + "required": false, + "schema": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "description": "``true``: reserved ``h/`` agents only. ``false``: org agents only.", + "title": "Reserved" + }, + "description": "``true``: reserved ``h/`` agents only. ``false``: org agents only." + }, { "name": "page", "in": "query", diff --git a/pyproject.toml b/pyproject.toml index 7bb2e09..9360999 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "hai-agents" -version = "1.2.0" +version = "1.2.1" description = "Python SDK for H Company's Agents API: autonomous agents powered by Holo." requires-python = ">=3.10" readme = "README.md" diff --git a/src/hai_agents/agents/client.py b/src/hai_agents/agents/client.py index d0fc3db..ee31c0b 100644 --- a/src/hai_agents/agents/client.py +++ b/src/hai_agents/agents/client.py @@ -42,6 +42,7 @@ def list_agents( *, agent_name: typing.Optional[str] = None, search: typing.Optional[str] = None, + reserved: typing.Optional[bool] = None, page: typing.Optional[int] = None, size: typing.Optional[int] = None, sort: typing.Optional[typing.Sequence[ListAgentsRequestSortItem]] = None, @@ -58,6 +59,9 @@ def list_agents( search : typing.Optional[str] Case-insensitive match on agent name or description. + reserved : typing.Optional[bool] + ``true``: reserved ``h/`` agents only. ``false``: org agents only. + page : typing.Optional[int] Page number (1-based) @@ -85,7 +89,13 @@ def list_agents( client.agents.list_agents() """ _response = self._raw_client.list_agents( - agent_name=agent_name, search=search, page=page, size=size, sort=sort, request_options=request_options + agent_name=agent_name, + search=search, + reserved=reserved, + page=page, + size=size, + sort=sort, + request_options=request_options, ) return _response.data @@ -429,6 +439,7 @@ async def list_agents( *, agent_name: typing.Optional[str] = None, search: typing.Optional[str] = None, + reserved: typing.Optional[bool] = None, page: typing.Optional[int] = None, size: typing.Optional[int] = None, sort: typing.Optional[typing.Sequence[ListAgentsRequestSortItem]] = None, @@ -445,6 +456,9 @@ async def list_agents( search : typing.Optional[str] Case-insensitive match on agent name or description. + reserved : typing.Optional[bool] + ``true``: reserved ``h/`` agents only. ``false``: org agents only. + page : typing.Optional[int] Page number (1-based) @@ -480,7 +494,13 @@ async def main() -> None: asyncio.run(main()) """ _response = await self._raw_client.list_agents( - agent_name=agent_name, search=search, page=page, size=size, sort=sort, request_options=request_options + agent_name=agent_name, + search=search, + reserved=reserved, + page=page, + size=size, + sort=sort, + request_options=request_options, ) return _response.data diff --git a/src/hai_agents/agents/raw_client.py b/src/hai_agents/agents/raw_client.py index 52910f5..5ed9ac6 100644 --- a/src/hai_agents/agents/raw_client.py +++ b/src/hai_agents/agents/raw_client.py @@ -40,6 +40,7 @@ def list_agents( *, agent_name: typing.Optional[str] = None, search: typing.Optional[str] = None, + reserved: typing.Optional[bool] = None, page: typing.Optional[int] = None, size: typing.Optional[int] = None, sort: typing.Optional[typing.Sequence[ListAgentsRequestSortItem]] = None, @@ -56,6 +57,9 @@ def list_agents( search : typing.Optional[str] Case-insensitive match on agent name or description. + reserved : typing.Optional[bool] + ``true``: reserved ``h/`` agents only. ``false``: org agents only. + page : typing.Optional[int] Page number (1-based) @@ -79,6 +83,7 @@ def list_agents( params={ "agent_name": agent_name, "search": search, + "reserved": reserved, "page": page, "size": size, "sort": sort, @@ -584,6 +589,7 @@ async def list_agents( *, agent_name: typing.Optional[str] = None, search: typing.Optional[str] = None, + reserved: typing.Optional[bool] = None, page: typing.Optional[int] = None, size: typing.Optional[int] = None, sort: typing.Optional[typing.Sequence[ListAgentsRequestSortItem]] = None, @@ -600,6 +606,9 @@ async def list_agents( search : typing.Optional[str] Case-insensitive match on agent name or description. + reserved : typing.Optional[bool] + ``true``: reserved ``h/`` agents only. ``false``: org agents only. + page : typing.Optional[int] Page number (1-based) @@ -623,6 +632,7 @@ async def list_agents( params={ "agent_name": agent_name, "search": search, + "reserved": reserved, "page": page, "size": size, "sort": sort, diff --git a/src/hai_agents/client.py b/src/hai_agents/client.py index c00d0a9..d53c090 100644 --- a/src/hai_agents/client.py +++ b/src/hai_agents/client.py @@ -59,18 +59,13 @@ def _stored_api_key() -> typing.Optional[str]: return None -def default_api_key() -> typing.Optional[str]: - """`HAI_API_KEY`, else the key stored by `hai login`.""" - return os.getenv(API_KEY_VAR) or _stored_api_key() - - def _default_api_key(init: typing.Callable[_P, None]) -> typing.Callable[_P, None]: """Resolve `api_key` as: argument, then `HAI_API_KEY`, then the key stored by `hai login`.""" @functools.wraps(init) def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> None: if kwargs.get("api_key") is None: - api_key = default_api_key() + api_key = os.getenv(API_KEY_VAR) or _stored_api_key() if api_key is None: raise ApiError(body=f"No API key found. Pass api_key, set {API_KEY_VAR}, or run `hai login`.") kwargs["api_key"] = api_key diff --git a/src/hai_agents/core/client_wrapper.py b/src/hai_agents/core/client_wrapper.py index ce5a9bd..f96334c 100644 --- a/src/hai_agents/core/client_wrapper.py +++ b/src/hai_agents/core/client_wrapper.py @@ -29,9 +29,9 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "hai_agents/1.2.0", + "User-Agent": "hai_agents/1.2.1", "X-HCompany-Client-Name": "hai_agents", - "X-HCompany-Client-Version": "1.2.0", + "X-HCompany-Client-Version": "1.2.1", "X-HCompany-Client-Type": "sdk", "X-HCompany-Language": "Python", "X-HCompany-Runtime": f"python/{platform.python_version()}", diff --git a/uv.lock b/uv.lock index 6dd2e6d..dc2cd58 100644 --- a/uv.lock +++ b/uv.lock @@ -541,7 +541,7 @@ wheels = [ [[package]] name = "hai-agents" -version = "1.2.0" +version = "1.2.1" source = { editable = "." } dependencies = [ { name = "httpx" }, From 6d5639c89f7a025811beec819c8321942476b5ee Mon Sep 17 00:00:00 2001 From: abonneth Date: Wed, 7 Oct 2026 18:05:33 +0200 Subject: [PATCH 2/2] Restore default_api_key in client.py Co-authored-by: Cursor --- src/hai_agents/client.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/hai_agents/client.py b/src/hai_agents/client.py index d53c090..c00d0a9 100644 --- a/src/hai_agents/client.py +++ b/src/hai_agents/client.py @@ -59,13 +59,18 @@ def _stored_api_key() -> typing.Optional[str]: return None +def default_api_key() -> typing.Optional[str]: + """`HAI_API_KEY`, else the key stored by `hai login`.""" + return os.getenv(API_KEY_VAR) or _stored_api_key() + + def _default_api_key(init: typing.Callable[_P, None]) -> typing.Callable[_P, None]: """Resolve `api_key` as: argument, then `HAI_API_KEY`, then the key stored by `hai login`.""" @functools.wraps(init) def wrapper(*args: _P.args, **kwargs: _P.kwargs) -> None: if kwargs.get("api_key") is None: - api_key = os.getenv(API_KEY_VAR) or _stored_api_key() + api_key = default_api_key() if api_key is None: raise ApiError(body=f"No API key found. Pass api_key, set {API_KEY_VAR}, or run `hai login`.") kwargs["api_key"] = api_key