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
375 changes: 375 additions & 0 deletions openapi.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "hai-agents"
version = "1.0.7"
version = "1.0.8"
description = "Python SDK for H Company's Computer-Use Agents: autonomous agents powered by Holo."
requires-python = ">=3.10"
readme = "README.md"
Expand Down
27 changes: 26 additions & 1 deletion src/hai_agents/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,14 @@
ErrorEvent,
ErrorEventKind,
Feedback,
FileEntry,
FlowEvent,
HttpValidationError,
ImageContent,
ImageContentType,
InitiateUploadResponse,
JsonValue,
ListFilesResponse,
LiveViewUrlData,
LiveViewUrlEvent,
ManagedProxySelection,
Expand All @@ -89,6 +91,7 @@
ProxyPool,
QuotaStatus,
QuotaStatusScope,
ReadFileResponse,
RequestStartData,
RequestStartDispatchedData,
RequestStartDispatchedEvent,
Expand Down Expand Up @@ -145,9 +148,21 @@
WebhookRecordLastDeliveryStatus,
WebhookWithSecret,
WebhookWithSecretLastDeliveryStatus,
WriteFileResponse,
)
from .errors import NotFoundError, UnprocessableEntityError
from . import agents, browser_profiles, environments, quota, schedules, sessions, skills, vaults, webhooks
from . import (
agents,
browser_profiles,
environments,
quota,
schedules,
session_files,
sessions,
skills,
vaults,
webhooks,
)
from ._default_clients import DefaultAioHttpClient, DefaultAsyncHttpxClient
from .agents import (
ListAgentsRequestSortItem,
Expand Down Expand Up @@ -263,6 +278,7 @@
"ErrorEvent": ".types",
"ErrorEventKind": ".types",
"Feedback": ".types",
"FileEntry": ".types",
"FlowEvent": ".types",
"HaiAgentsEnvironment": ".environment",
"HttpValidationError": ".types",
Expand All @@ -272,6 +288,7 @@
"JsonValue": ".types",
"ListAgentsRequestSortItem": ".agents",
"ListEnvironmentsRequestSortItem": ".environments",
"ListFilesResponse": ".types",
"ListScheduleRunsRequestSortItem": ".schedules",
"ListSchedulesRequestSortItem": ".schedules",
"ListSessionEventsRequestSortItem": ".sessions",
Expand Down Expand Up @@ -313,6 +330,7 @@
"ProxyPool": ".types",
"QuotaStatus": ".types",
"QuotaStatusScope": ".types",
"ReadFileResponse": ".types",
"RequestStartData": ".types",
"RequestStartDispatchedData": ".types",
"RequestStartDispatchedEvent": ".types",
Expand Down Expand Up @@ -385,6 +403,7 @@
"WebhookVerificationError": ".webhook_verification",
"WebhookWithSecret": ".types",
"WebhookWithSecretLastDeliveryStatus": ".types",
"WriteFileResponse": ".types",
"agents": ".agents",
"as_tools": ".tools",
"assert_request_under_limit": ".polling",
Expand All @@ -398,6 +417,7 @@
"quota": ".quota",
"run_session": ".polling",
"schedules": ".schedules",
"session_files": ".session_files",
"sessions": ".sessions",
"skills": ".skills",
"stream_session": ".polling",
Expand Down Expand Up @@ -491,6 +511,7 @@ def __dir__():
"ErrorEvent",
"ErrorEventKind",
"Feedback",
"FileEntry",
"FlowEvent",
"HaiAgentsEnvironment",
"HttpValidationError",
Expand All @@ -500,6 +521,7 @@ def __dir__():
"JsonValue",
"ListAgentsRequestSortItem",
"ListEnvironmentsRequestSortItem",
"ListFilesResponse",
"ListScheduleRunsRequestSortItem",
"ListSchedulesRequestSortItem",
"ListSessionEventsRequestSortItem",
Expand Down Expand Up @@ -541,6 +563,7 @@ def __dir__():
"ProxyPool",
"QuotaStatus",
"QuotaStatusScope",
"ReadFileResponse",
"RequestStartData",
"RequestStartDispatchedData",
"RequestStartDispatchedEvent",
Expand Down Expand Up @@ -613,6 +636,7 @@ def __dir__():
"WebhookVerificationError",
"WebhookWithSecret",
"WebhookWithSecretLastDeliveryStatus",
"WriteFileResponse",
"agents",
"as_tools",
"assert_request_under_limit",
Expand All @@ -626,6 +650,7 @@ def __dir__():
"quota",
"run_session",
"schedules",
"session_files",
"sessions",
"skills",
"stream_session",
Expand Down
19 changes: 19 additions & 0 deletions src/hai_agents/base_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from .environments.client import AsyncEnvironmentsClient, EnvironmentsClient
from .quota.client import AsyncQuotaClient, QuotaClient
from .schedules.client import AsyncSchedulesClient, SchedulesClient
from .session_files.client import AsyncSessionFilesClient, SessionFilesClient
from .sessions.client import AsyncSessionsClient, SessionsClient
from .skills.client import AsyncSkillsClient, SkillsClient
from .vaults.client import AsyncVaultsClient, VaultsClient
Expand Down Expand Up @@ -111,6 +112,7 @@ def __init__(
self._schedules: typing.Optional[SchedulesClient] = None
self._browser_profiles: typing.Optional[BrowserProfilesClient] = None
self._vaults: typing.Optional[VaultsClient] = None
self._session_files: typing.Optional[SessionFilesClient] = None
self._quota: typing.Optional[QuotaClient] = None

@property
Expand Down Expand Up @@ -177,6 +179,14 @@ def vaults(self):
self._vaults = VaultsClient(client_wrapper=self._client_wrapper)
return self._vaults

@property
def session_files(self):
if self._session_files is None:
from .session_files.client import SessionFilesClient # noqa: E402

self._session_files = SessionFilesClient(client_wrapper=self._client_wrapper)
return self._session_files

@property
def quota(self):
if self._quota is None:
Expand Down Expand Up @@ -295,6 +305,7 @@ def __init__(
self._schedules: typing.Optional[AsyncSchedulesClient] = None
self._browser_profiles: typing.Optional[AsyncBrowserProfilesClient] = None
self._vaults: typing.Optional[AsyncVaultsClient] = None
self._session_files: typing.Optional[AsyncSessionFilesClient] = None
self._quota: typing.Optional[AsyncQuotaClient] = None

@property
Expand Down Expand Up @@ -361,6 +372,14 @@ def vaults(self):
self._vaults = AsyncVaultsClient(client_wrapper=self._client_wrapper)
return self._vaults

@property
def session_files(self):
if self._session_files is None:
from .session_files.client import AsyncSessionFilesClient # noqa: E402

self._session_files = AsyncSessionFilesClient(client_wrapper=self._client_wrapper)
return self._session_files

@property
def quota(self):
if self._quota is None:
Expand Down
4 changes: 2 additions & 2 deletions src/hai_agents/core/client_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ def get_headers(self) -> typing.Dict[str, str]:
import platform

headers: typing.Dict[str, str] = {
"User-Agent": "hai_agents/1.0.7",
"User-Agent": "hai_agents/1.0.8",
"X-HCompany-Client-Name": "hai_agents",
"X-HCompany-Client-Version": "1.0.7",
"X-HCompany-Client-Version": "1.0.8",
"X-HCompany-Client-Type": "sdk",
"X-HCompany-Language": "Python",
"X-HCompany-Runtime": f"python/{platform.python_version()}",
Expand Down
4 changes: 4 additions & 0 deletions src/hai_agents/session_files/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# This file was auto-generated by Fern from our API Definition.

# isort: skip_file

Loading