From 95112dd25a3bf8a49bd1080bfddefd403e64cfcb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 16:24:28 +0000 Subject: [PATCH 001/215] chore(internal): bump dependencies --- requirements-dev.lock | 282 ++++++++++++++++++++++++++---------------- requirements.lock | 261 ++++++++++++++++++++++++-------------- 2 files changed, 346 insertions(+), 197 deletions(-) diff --git a/requirements-dev.lock b/requirements-dev.lock index 1078b30de..240c3f622 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -12,16 +12,20 @@ -e file:. aiohappyeyeballs==2.6.1 # via aiohttp -aiohttp==3.13.2 +aiohttp==3.13.3 # via agentex-sdk # via httpx-aiohttp # via litellm -aiosignal==1.3.2 +aiosignal==1.4.0 # via aiohttp annotated-types==0.7.0 # via pydantic -anyio==4.10.0 +anthropic==0.86.0 # via agentex-sdk +anyio==4.12.1 + # via agentex-sdk + # via anthropic + # via claude-agent-sdk # via httpx # via mcp # via openai @@ -32,108 +36,126 @@ anyio==4.10.0 # via watchfiles appnope==0.1.4 # via ipykernel -argcomplete==3.1.2 +argcomplete==3.6.3 # via nox -asttokens==3.0.0 +asttokens==3.0.1 # via stack-data -attrs==25.3.0 +attrs==25.4.0 # via aiohttp # via jsonschema + # via nox # via referencing bytecode==0.17.0 # via ddtrace -cachetools==5.5.2 - # via google-auth -certifi==2023.7.22 +certifi==2026.1.4 # via httpcore # via httpx # via kubernetes # via requests -charset-normalizer==3.4.3 +cffi==2.0.0 + # via cryptography +charset-normalizer==3.4.6 # via requests -click==8.2.1 +claude-agent-sdk==0.1.52 + # via agentex-sdk +click==8.3.1 # via litellm # via typer # via uvicorn -cloudpickle==3.1.1 +cloudpickle==3.1.2 # via agentex-sdk colorama==0.4.6 # via griffe -colorlog==6.7.0 +colorlog==6.10.1 # via nox comm==0.2.3 # via ipykernel +cryptography==46.0.6 + # via google-auth + # via pyjwt datadog==0.52.1 # via agentex-sdk -ddtrace==3.15.0 +ddtrace==4.6.4 # via agentex-sdk -debugpy==1.8.16 +debugpy==1.8.20 # via ipykernel decorator==5.2.1 # via ipython -dirty-equals==0.6.0 -distlib==0.3.7 +dependency-groups==1.3.1 + # via nox +dirty-equals==0.11 +distlib==0.4.0 # via virtualenv distro==1.9.0 # via agentex-sdk + # via anthropic # via openai # via scale-gp # via scale-gp-beta +docstring-parser==0.17.0 + # via anthropic envier==0.6.1 # via ddtrace -execnet==2.1.1 +execnet==2.1.2 # via pytest-xdist -executing==2.2.0 +executing==2.2.1 # via stack-data fastapi==0.115.14 # via agentex-sdk -filelock==3.12.4 +fastuuid==0.14.0 + # via litellm +filelock==3.25.2 # via huggingface-hub # via virtualenv frozenlist==1.8.0 # via aiohttp # via aiosignal -fsspec==2025.7.0 +fsspec==2026.3.0 # via huggingface-hub -google-auth==2.40.3 +google-auth==2.49.1 # via kubernetes -griffe==1.12.0 +griffe==1.15.0 # via openai-agents h11==0.16.0 # via httpcore # via uvicorn -hf-xet==1.1.7 +hf-xet==1.4.2 # via huggingface-hub httpcore==1.0.9 # via httpx httpx==0.27.2 # via agentex-sdk + # via anthropic # via httpx-aiohttp + # via huggingface-hub + # via langsmith # via litellm # via mcp # via openai # via respx # via scale-gp # via scale-gp-beta -httpx-aiohttp==0.1.9 +httpx-aiohttp==0.1.12 # via agentex-sdk -httpx-sse==0.4.1 +httpx-sse==0.4.3 # via mcp -huggingface-hub==0.34.4 +huggingface-hub==1.8.0 # via tokenizers -idna==3.4 +humanize==4.13.0 + # via nox +idna==3.11 # via anyio # via httpx # via requests # via yarl -importlib-metadata==7.0.0 +importlib-metadata==8.7.1 # via litellm # via opentelemetry-api -iniconfig==2.0.0 +iniconfig==2.1.0 # via pytest -ipykernel==6.30.1 +ipykernel==7.2.0 # via agentex-sdk -ipython==9.4.0 +ipython==9.12.0 # via ipykernel ipython-pygments-lexers==1.1.1 # via ipython @@ -142,36 +164,48 @@ jedi==0.19.2 jinja2==3.1.6 # via agentex-sdk # via litellm -jiter==0.10.0 +jiter==0.13.0 + # via anthropic # via openai json-log-formatter==1.1.1 # via agentex-sdk +jsonpatch==1.33 + # via langchain-core +jsonpointer==3.1.1 + # via jsonpatch jsonref==1.1.0 # via agentex-sdk -jsonschema==4.25.0 +jsonschema==4.26.0 # via agentex-sdk # via litellm # via mcp -jsonschema-specifications==2025.4.1 +jsonschema-specifications==2025.9.1 # via jsonschema -jupyter-client==8.6.3 +jupyter-client==8.8.0 # via ipykernel -jupyter-core==5.8.1 +jupyter-core==5.9.1 # via ipykernel # via jupyter-client kubernetes==28.1.0 # via agentex-sdk -litellm==1.75.5.post1 +langchain-core==1.2.23 + # via langgraph-checkpoint +langgraph-checkpoint==4.0.1 + # via agentex-sdk +langsmith==0.7.22 + # via langchain-core +litellm==1.82.6 # via agentex-sdk markdown-it-py==3.0.0 # via rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via jinja2 -matplotlib-inline==0.1.7 +matplotlib-inline==0.2.1 # via ipykernel # via ipython -mcp==1.12.4 +mcp==1.26.0 # via agentex-sdk + # via claude-agent-sdk # via openai-agents mdurl==0.1.2 # via markdown-it-py @@ -183,61 +217,78 @@ mypy-extensions==1.1.0 # via mypy nest-asyncio==1.6.0 # via ipykernel -nexus-rpc==1.1.0 +nexus-rpc==1.4.0 # via temporalio -nodeenv==1.8.0 +nodeenv==1.10.0 # via pyright -nox==2023.4.22 +nox==2025.11.12 oauthlib==3.3.1 # via kubernetes # via requests-oauthlib -openai==2.7.1 +openai==2.30.0 # via agentex-sdk # via litellm # via openai-agents openai-agents==0.4.2 # via agentex-sdk -opentelemetry-api==1.37.0 +opentelemetry-api==1.40.0 + # via agentex-sdk # via ddtrace -packaging==23.2 + # via opentelemetry-sdk + # via opentelemetry-semantic-conventions +opentelemetry-sdk==1.40.0 + # via agentex-sdk +opentelemetry-semantic-conventions==0.61b0 + # via opentelemetry-sdk +orjson==3.11.7 + # via langsmith +ormsgpack==1.12.2 + # via langgraph-checkpoint +packaging==25.0 + # via dependency-groups # via huggingface-hub # via ipykernel + # via langchain-core + # via langsmith # via nox # via pytest -pathspec==0.12.1 - # via mypy -parso==0.8.4 +parso==0.8.6 # via jedi +pathspec==1.0.3 + # via mypy pexpect==4.9.0 # via ipython -platformdirs==3.11.0 +platformdirs==4.4.0 # via jupyter-core # via virtualenv pluggy==1.6.0 # via pytest -prompt-toolkit==3.0.51 +prompt-toolkit==3.0.52 # via ipython # via questionary -propcache==0.3.1 +propcache==0.4.1 # via aiohttp # via yarl -protobuf==5.29.5 - # via ddtrace +protobuf==6.33.6 # via temporalio -psutil==7.0.0 +psutil==7.2.2 # via ipykernel ptyprocess==0.7.0 # via pexpect pure-eval==0.2.3 # via stack-data -pyasn1==0.6.1 +pyasn1==0.6.3 # via pyasn1-modules - # via rsa pyasn1-modules==0.4.2 # via google-auth -pydantic==2.11.9 +pycparser==3.0 + # via cffi +pydantic==2.12.5 # via agentex-sdk + # via anthropic # via fastapi + # via langchain-core + # via langsmith # via litellm # via mcp # via openai @@ -246,112 +297,115 @@ pydantic==2.11.9 # via python-on-whales # via scale-gp # via scale-gp-beta -pydantic-core==2.33.2 +pydantic-core==2.41.5 # via pydantic -pydantic-settings==2.10.1 +pydantic-settings==2.13.1 # via mcp -pygments==2.18.0 +pygments==2.19.2 # via ipython # via ipython-pygments-lexers # via pytest # via rich -pyjwt==2.10.1 +pyjwt==2.12.1 + # via mcp # via redis pyright==1.1.399 -pytest==8.4.1 +pytest==8.4.2 # via agentex-sdk # via pytest-asyncio # via pytest-xdist -pytest-asyncio==1.1.0 +pytest-asyncio==1.2.0 # via agentex-sdk -pytest-xdist==3.7.0 -python-dateutil==2.8.2 +pytest-xdist==3.8.0 +python-dateutil==2.9.0.post0 # via jupyter-client # via kubernetes # via time-machine -python-dotenv==1.1.1 +python-dotenv==1.2.2 # via litellm # via mcp # via pydantic-settings -python-multipart==0.0.20 +python-multipart==0.0.22 # via mcp python-on-whales==0.73.0 # via agentex-sdk -pytz==2023.3.post1 - # via dirty-equals -pyyaml==6.0.2 +pyyaml==6.0.3 # via agentex-sdk # via huggingface-hub # via kubernetes -pyzmq==27.0.1 + # via langchain-core +pyzmq==27.1.0 # via ipykernel # via jupyter-client -questionary==2.1.0 +questionary==2.1.1 # via agentex-sdk redis==5.3.1 # via agentex-sdk -referencing==0.36.2 +referencing==0.37.0 # via jsonschema # via jsonschema-specifications -regex==2025.7.34 +regex==2026.3.32 # via tiktoken -requests==2.32.4 +requests==2.33.1 # via datadog - # via huggingface-hub # via kubernetes + # via langsmith # via openai-agents # via python-on-whales # via requests-oauthlib + # via requests-toolbelt # via tiktoken requests-oauthlib==2.0.0 # via kubernetes +requests-toolbelt==1.0.0 + # via langsmith respx==0.22.0 rich==13.9.4 # via agentex-sdk # via typer -rpds-py==0.27.0 +rpds-py==0.30.0 # via jsonschema # via referencing -rsa==4.9.1 - # via google-auth -ruff==0.9.4 +ruff==0.14.13 # via agentex-sdk -scale-gp==0.1.0a59 +scale-gp==0.1.0a61 # via agentex-sdk -scale-gp-beta==0.1.0a20 +scale-gp-beta==0.1.0a51 # via agentex-sdk -setuptools==68.2.2 - # via nodeenv shellingham==1.5.4 # via typer -six==1.16.0 +six==1.17.0 # via kubernetes # via python-dateutil sniffio==1.3.1 # via agentex-sdk - # via anyio + # via anthropic # via httpx # via openai # via scale-gp # via scale-gp-beta -sse-starlette==3.0.2 +sse-starlette==3.0.3 # via mcp stack-data==0.6.3 # via ipython starlette==0.46.2 # via fastapi # via mcp -temporalio==1.18.2 +temporalio==1.24.0 # via agentex-sdk -tiktoken==0.11.0 +tenacity==9.1.4 + # via langchain-core +termcolor==3.3.0 + # via yaspin +tiktoken==0.12.0 # via litellm -time-machine==2.9.0 -tokenizers==0.21.4 +time-machine==2.19.0 +tokenizers==0.22.2 # via litellm -tornado==6.5.2 +tornado==6.5.5 # via ipykernel # via jupyter-client -tqdm==4.67.1 +tqdm==4.67.3 # via huggingface-hub # via openai # via python-on-whales @@ -361,30 +415,37 @@ traitlets==5.14.3 # via jupyter-client # via jupyter-core # via matplotlib-inline -typer==0.16.0 +typer==0.16.1 # via agentex-sdk + # via huggingface-hub # via mcp # via python-on-whales -types-protobuf==6.30.2.20250809 +types-protobuf==6.32.1.20260221 # via temporalio types-requests==2.31.0.6 # via openai-agents types-urllib3==1.26.25.14 # via types-requests -typing-extensions==4.12.2 +typing-extensions==4.15.0 # via agentex-sdk # via aiosignal + # via anthropic # via anyio # via fastapi # via huggingface-hub + # via langchain-core + # via mcp # via mypy # via nexus-rpc # via openai # via openai-agents # via opentelemetry-api + # via opentelemetry-sdk + # via opentelemetry-semantic-conventions # via pydantic # via pydantic-core # via pyright + # via pytest-asyncio # via python-on-whales # via referencing # via scale-gp @@ -392,31 +453,40 @@ typing-extensions==4.12.2 # via temporalio # via typer # via typing-inspection - # via virtualenv typing-inspection==0.4.2 + # via mcp # via pydantic # via pydantic-settings -tzdata==2025.2 +tzdata==2025.3 # via agentex-sdk tzlocal==5.3.1 # via agentex-sdk urllib3==1.26.20 # via kubernetes # via requests -uvicorn==0.35.0 +uuid-utils==0.14.1 + # via langchain-core + # via langsmith +uvicorn==0.42.0 # via agentex-sdk # via mcp -virtualenv==20.24.5 +virtualenv==20.36.1 # via nox watchfiles==0.24.0 # via agentex-sdk -wcwidth==0.2.13 +wcwidth==0.6.0 # via prompt-toolkit -websocket-client==1.8.0 +websocket-client==1.9.0 # via kubernetes -wrapt==1.17.3 +wrapt==2.1.2 # via ddtrace -yarl==1.20.0 +xxhash==3.6.0 + # via langsmith +yarl==1.22.0 # via aiohttp +yaspin==3.4.0 + # via agentex-sdk zipp==3.23.0 # via importlib-metadata +zstandard==0.25.0 + # via langsmith diff --git a/requirements.lock b/requirements.lock index 79519671e..87cbd10f2 100644 --- a/requirements.lock +++ b/requirements.lock @@ -12,16 +12,20 @@ -e file:. aiohappyeyeballs==2.6.1 # via aiohttp -aiohttp==3.13.2 +aiohttp==3.13.3 # via agentex-sdk # via httpx-aiohttp # via litellm -aiosignal==1.3.2 +aiosignal==1.4.0 # via aiohttp annotated-types==0.7.0 # via pydantic -anyio==4.10.0 +anthropic==0.86.0 # via agentex-sdk +anyio==4.12.1 + # via agentex-sdk + # via anthropic + # via claude-agent-sdk # via httpx # via mcp # via openai @@ -32,97 +36,110 @@ anyio==4.10.0 # via watchfiles appnope==0.1.4 # via ipykernel -asttokens==3.0.0 +asttokens==3.0.1 # via stack-data -attrs==25.3.0 +attrs==25.4.0 # via aiohttp # via jsonschema # via referencing bytecode==0.17.0 # via ddtrace -cachetools==5.5.2 - # via google-auth -certifi==2023.7.22 +certifi==2026.1.4 # via httpcore # via httpx # via kubernetes # via requests -charset-normalizer==3.4.3 +cffi==2.0.0 + # via cryptography +charset-normalizer==3.4.6 # via requests -click==8.2.1 +claude-agent-sdk==0.1.52 + # via agentex-sdk +click==8.3.1 # via litellm # via typer # via uvicorn -cloudpickle==3.1.1 +cloudpickle==3.1.2 # via agentex-sdk colorama==0.4.6 # via griffe comm==0.2.3 # via ipykernel +cryptography==46.0.6 + # via google-auth + # via pyjwt datadog==0.52.1 # via agentex-sdk -ddtrace==3.15.0 +ddtrace==4.6.4 # via agentex-sdk -debugpy==1.8.16 +debugpy==1.8.20 # via ipykernel decorator==5.2.1 # via ipython -distro==1.8.0 +distro==1.9.0 # via agentex-sdk + # via anthropic # via openai # via scale-gp # via scale-gp-beta +docstring-parser==0.17.0 + # via anthropic envier==0.6.1 # via ddtrace -executing==2.2.0 +executing==2.2.1 # via stack-data fastapi==0.115.14 # via agentex-sdk -filelock==3.19.1 +fastuuid==0.14.0 + # via litellm +filelock==3.25.2 # via huggingface-hub -frozenlist==1.6.2 +frozenlist==1.8.0 # via aiohttp # via aiosignal -fsspec==2025.7.0 +fsspec==2026.3.0 # via huggingface-hub -google-auth==2.40.3 +google-auth==2.49.1 # via kubernetes -griffe==1.12.0 +griffe==1.15.0 # via openai-agents h11==0.16.0 # via httpcore # via uvicorn -hf-xet==1.1.7 +hf-xet==1.4.2 # via huggingface-hub httpcore==1.0.9 # via httpx httpx==0.27.2 # via agentex-sdk + # via anthropic # via httpx-aiohttp + # via huggingface-hub + # via langsmith # via litellm # via mcp # via openai # via scale-gp # via scale-gp-beta -httpx-aiohttp==0.1.9 +httpx-aiohttp==0.1.12 # via agentex-sdk -httpx-sse==0.4.1 +httpx-sse==0.4.3 # via mcp -huggingface-hub==0.34.4 +huggingface-hub==1.8.0 # via tokenizers -idna==3.4 +idna==3.11 # via anyio # via httpx # via requests # via yarl -importlib-metadata==8.7.0 +importlib-metadata==8.7.1 # via litellm # via opentelemetry-api -iniconfig==2.1.0 +iniconfig==2.3.0 # via pytest -ipykernel==6.30.1 +ipykernel==7.2.0 # via agentex-sdk -ipython==9.4.0 +ipython==9.12.0 # via ipykernel ipython-pygments-lexers==1.1.1 # via ipython @@ -131,187 +148,231 @@ jedi==0.19.2 jinja2==3.1.6 # via agentex-sdk # via litellm -jiter==0.10.0 +jiter==0.13.0 + # via anthropic # via openai json-log-formatter==1.1.1 # via agentex-sdk +jsonpatch==1.33 + # via langchain-core +jsonpointer==3.1.1 + # via jsonpatch jsonref==1.1.0 # via agentex-sdk -jsonschema==4.25.0 +jsonschema==4.26.0 # via agentex-sdk # via litellm # via mcp -jsonschema-specifications==2025.4.1 +jsonschema-specifications==2025.9.1 # via jsonschema -jupyter-client==8.6.3 +jupyter-client==8.8.0 # via ipykernel -jupyter-core==5.8.1 +jupyter-core==5.9.1 # via ipykernel # via jupyter-client kubernetes==28.1.0 # via agentex-sdk -litellm==1.75.5.post1 +langchain-core==1.2.23 + # via langgraph-checkpoint +langgraph-checkpoint==4.0.1 + # via agentex-sdk +langsmith==0.7.22 + # via langchain-core +litellm==1.82.6 # via agentex-sdk markdown-it-py==4.0.0 # via rich -markupsafe==3.0.2 +markupsafe==3.0.3 # via jinja2 -matplotlib-inline==0.1.7 +matplotlib-inline==0.2.1 # via ipykernel # via ipython -mcp==1.12.4 +mcp==1.26.0 # via agentex-sdk + # via claude-agent-sdk # via openai-agents mdurl==0.1.2 # via markdown-it-py -multidict==6.4.4 +multidict==6.7.0 # via aiohttp # via yarl nest-asyncio==1.6.0 # via ipykernel -nexus-rpc==1.1.0 +nexus-rpc==1.4.0 # via temporalio oauthlib==3.3.1 # via kubernetes # via requests-oauthlib -openai==2.7.1 +openai==2.30.0 # via agentex-sdk # via litellm # via openai-agents openai-agents==0.4.2 # via agentex-sdk -opentelemetry-api==1.37.0 +opentelemetry-api==1.40.0 + # via agentex-sdk # via ddtrace -packaging==25.0 + # via opentelemetry-sdk + # via opentelemetry-semantic-conventions +opentelemetry-sdk==1.40.0 + # via agentex-sdk +opentelemetry-semantic-conventions==0.61b0 + # via opentelemetry-sdk +orjson==3.11.7 + # via langsmith +ormsgpack==1.12.2 + # via langgraph-checkpoint +packaging==26.0 # via huggingface-hub # via ipykernel + # via langchain-core + # via langsmith # via pytest -parso==0.8.4 +parso==0.8.6 # via jedi pexpect==4.9.0 # via ipython -platformdirs==4.3.8 +platformdirs==4.9.4 # via jupyter-core pluggy==1.6.0 # via pytest -prompt-toolkit==3.0.51 +prompt-toolkit==3.0.52 # via ipython # via questionary -propcache==0.3.1 +propcache==0.4.1 # via aiohttp # via yarl -pydantic==2.12.5 - # via agentex-sdk -pydantic-core==2.41.5 -protobuf==5.29.5 - # via ddtrace +protobuf==6.33.6 # via temporalio -psutil==7.0.0 +psutil==7.2.2 # via ipykernel ptyprocess==0.7.0 # via pexpect pure-eval==0.2.3 # via stack-data -pyasn1==0.6.1 +pyasn1==0.6.3 # via pyasn1-modules - # via rsa pyasn1-modules==0.4.2 # via google-auth +pycparser==3.0 + # via cffi +pydantic==2.12.5 + # via agentex-sdk + # via anthropic + # via fastapi + # via langchain-core + # via langsmith + # via litellm + # via mcp + # via openai + # via openai-agents + # via pydantic-settings + # via python-on-whales + # via scale-gp + # via scale-gp-beta +pydantic-core==2.41.5 # via pydantic -pydantic-settings==2.10.1 +pydantic-settings==2.13.1 # via mcp -pygments==2.19.2 +pygments==2.20.0 # via ipython # via ipython-pygments-lexers # via pytest # via rich -pyjwt==2.10.1 +pyjwt==2.12.1 + # via mcp # via redis -pytest==8.4.1 +pytest==9.0.2 # via agentex-sdk # via pytest-asyncio -pytest-asyncio==1.1.0 +pytest-asyncio==1.3.0 # via agentex-sdk python-dateutil==2.9.0.post0 # via jupyter-client # via kubernetes -python-dotenv==1.1.1 +python-dotenv==1.2.2 # via litellm # via mcp # via pydantic-settings -python-multipart==0.0.20 +python-multipart==0.0.22 # via mcp python-on-whales==0.73.0 # via agentex-sdk -pyyaml==6.0.2 +pyyaml==6.0.3 # via agentex-sdk # via huggingface-hub # via kubernetes -pyzmq==27.0.1 + # via langchain-core +pyzmq==27.1.0 # via ipykernel # via jupyter-client -questionary==2.1.0 +questionary==2.1.1 # via agentex-sdk redis==5.3.1 # via agentex-sdk -referencing==0.36.2 +referencing==0.37.0 # via jsonschema # via jsonschema-specifications -regex==2025.7.34 +regex==2026.3.32 # via tiktoken -requests==2.32.4 +requests==2.33.1 # via datadog - # via huggingface-hub # via kubernetes + # via langsmith # via openai-agents # via python-on-whales # via requests-oauthlib + # via requests-toolbelt # via tiktoken requests-oauthlib==2.0.0 # via kubernetes +requests-toolbelt==1.0.0 + # via langsmith rich==13.9.4 # via agentex-sdk # via typer -rpds-py==0.27.0 +rpds-py==0.30.0 # via jsonschema # via referencing -rsa==4.9.1 - # via google-auth -ruff==0.12.9 +ruff==0.15.8 # via agentex-sdk -scale-gp==0.1.0a59 +scale-gp==0.1.0a61 # via agentex-sdk -scale-gp-beta==0.1.0a20 +scale-gp-beta==0.1.0a51 # via agentex-sdk shellingham==1.5.4 # via typer six==1.17.0 # via kubernetes # via python-dateutil -sniffio==1.3.0 +sniffio==1.3.1 # via agentex-sdk -typing-extensions==4.15.0 + # via anthropic # via httpx # via openai # via scale-gp # via scale-gp-beta -sse-starlette==3.0.2 +sse-starlette==3.0.3 # via mcp stack-data==0.6.3 # via ipython starlette==0.46.2 # via fastapi # via mcp -temporalio==1.18.2 +temporalio==1.24.0 # via agentex-sdk -tiktoken==0.11.0 +tenacity==9.1.4 + # via langchain-core +termcolor==3.3.0 + # via yaspin +tiktoken==0.12.0 # via litellm -tokenizers==0.21.4 +tokenizers==0.22.2 # via litellm -tornado==6.5.2 +tornado==6.5.5 # via ipykernel # via jupyter-client -tqdm==4.67.1 +tqdm==4.67.3 # via huggingface-hub # via openai # via python-on-whales @@ -321,27 +382,35 @@ traitlets==5.14.3 # via jupyter-client # via jupyter-core # via matplotlib-inline -typer==0.16.0 +typer==0.16.1 # via agentex-sdk + # via huggingface-hub # via mcp # via python-on-whales -types-protobuf==6.30.2.20250809 +types-protobuf==6.32.1.20260221 # via temporalio types-requests==2.31.0.6 # via openai-agents types-urllib3==1.26.25.14 # via types-requests +typing-extensions==4.15.0 # via agentex-sdk # via aiosignal + # via anthropic # via anyio # via fastapi # via huggingface-hub + # via langchain-core + # via mcp # via nexus-rpc # via openai # via openai-agents # via opentelemetry-api + # via opentelemetry-sdk + # via opentelemetry-semantic-conventions # via pydantic # via pydantic-core + # via pytest-asyncio # via python-on-whales # via referencing # via scale-gp @@ -350,27 +419,37 @@ types-urllib3==1.26.25.14 # via typer # via typing-inspection typing-inspection==0.4.2 + # via mcp # via pydantic # via pydantic-settings -tzdata==2025.2 +tzdata==2025.3 # via agentex-sdk tzlocal==5.3.1 # via agentex-sdk urllib3==1.26.20 # via kubernetes # via requests -uvicorn==0.35.0 +uuid-utils==0.14.1 + # via langchain-core + # via langsmith +uvicorn==0.42.0 # via agentex-sdk # via mcp watchfiles==0.24.0 # via agentex-sdk -wcwidth==0.2.13 +wcwidth==0.6.0 # via prompt-toolkit -websocket-client==1.8.0 +websocket-client==1.9.0 # via kubernetes -wrapt==1.17.3 +wrapt==2.1.2 # via ddtrace -yarl==1.20.0 +xxhash==3.6.0 + # via langsmith +yarl==1.22.0 # via aiohttp +yaspin==3.4.0 + # via agentex-sdk zipp==3.23.0 # via importlib-metadata +zstandard==0.25.0 + # via langsmith From eae8de0cba93e7859ef89e51994c5bfe3f23c49d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:27:05 +0000 Subject: [PATCH 002/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 343c53d6c07a130317c49c198d96f40417cf08ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Feb 2026 19:27:02 +0000 Subject: [PATCH 003/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 09a3cd3c2a16b8ab0c41ec08ddb2daf899bd4490 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Feb 2026 20:27:16 +0000 Subject: [PATCH 004/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 5fa92d71b41e7d214349aa8a4f9d83e1908d9345 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:27:03 +0000 Subject: [PATCH 005/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From a5b341213de3b1e4dad3fbfe470fc5ad584fae70 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 00:32:08 +0000 Subject: [PATCH 006/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From b48cbbe70ea2a4794a792096e1d862c8e76eb6b4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 06:27:01 +0000 Subject: [PATCH 007/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From fc1463294f117f2cd8877bc3ac5cd4a97b3b6749 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 07:27:02 +0000 Subject: [PATCH 008/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9eed28588aa490b62677daff658f072ca455410d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 08:27:10 +0000 Subject: [PATCH 009/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 4a3f406ec96b44bd05b672cf49f639d1a7e6bb60 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 09:26:57 +0000 Subject: [PATCH 010/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 64e4f629c8349d5425ce57433612f51a07e4423b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 11:26:56 +0000 Subject: [PATCH 011/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From beb3f45940386328e82c14ae4e85ca841b6181ff Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 13:26:54 +0000 Subject: [PATCH 012/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From cb99db1857e373c3dc47d4f5ff6861d06b0ddce4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 14:26:29 +0000 Subject: [PATCH 013/215] chore(internal): fix lint error on Python 3.14 --- src/agentex/_utils/_compat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/agentex/_utils/_compat.py b/src/agentex/_utils/_compat.py index dd703233c..2c70b299c 100644 --- a/src/agentex/_utils/_compat.py +++ b/src/agentex/_utils/_compat.py @@ -26,7 +26,7 @@ def is_union(tp: Optional[Type[Any]]) -> bool: else: import types - return tp is Union or tp is types.UnionType + return tp is Union or tp is types.UnionType # type: ignore[comparison-overlap] def is_typeddict(tp: Type[Any]) -> bool: From 86ccaa9bd095b3bc91212fa10a6e2f8da5af0e2a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 16:27:07 +0000 Subject: [PATCH 014/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From a91677f003ab0fb2cc0fbef7b98d7be9b4755fe5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 17:34:55 +0000 Subject: [PATCH 015/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From a61b3b932f092eef40a83ed71740a38aa8a5fd95 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 18:28:33 +0000 Subject: [PATCH 016/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From b250e8062bf73d11672186237b01c8da3132d086 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 20:27:15 +0000 Subject: [PATCH 017/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 38fb141fa557f5e89fe22273ce9ec6d7b05f434d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 11 Feb 2026 22:26:59 +0000 Subject: [PATCH 018/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From ca8e74347006d7fb0cbc2b8a16c6e4b7969ba078 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 02:27:07 +0000 Subject: [PATCH 019/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9f8c5fab70ed9d17c3452b7c5044271155794cdb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 04:27:07 +0000 Subject: [PATCH 020/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0f4132ece8f32dd3a90815d292ec8a1bc1b16db1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 05:27:00 +0000 Subject: [PATCH 021/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From d3715722318e633ec1532cca9246a701cc8d15e2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 08:26:59 +0000 Subject: [PATCH 022/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 03896c11ecbaa8005bf71a7462dff0d383a69669 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 10:27:00 +0000 Subject: [PATCH 023/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 890e91ecaa336e1500b5462b0ed65d17eecf36ef Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 11:27:19 +0000 Subject: [PATCH 024/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From b864d244cbeaefe055909709f8ffc949a6fd7d8c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 13:26:56 +0000 Subject: [PATCH 025/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 74e20b481739dbec7839b63ca6b32b3444349da2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 14:26:56 +0000 Subject: [PATCH 026/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From cf04361389ad84f5bd1ce1e25f5bc5d3d318a6d4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 16:26:56 +0000 Subject: [PATCH 027/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From e67fa69c072f462ea86ecd67b888afa5f97cc7cc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 16:57:47 +0000 Subject: [PATCH 028/215] chore: format all `api.md` files --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 13bededf5..0650ce0c7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -110,7 +110,7 @@ format = { chain = [ # run formatting again to fix any inconsistencies when imports are stripped "format:ruff", ]} -"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md" +"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'" "format:ruff" = "ruff format" "lint" = { chain = [ From 4750697b087d59c7323da025a873838ff9f48ad5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 19:27:04 +0000 Subject: [PATCH 029/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From b1fd61a5ae69b6428eed6a35b86de6f81ad1fc18 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 20:27:14 +0000 Subject: [PATCH 030/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 3827eb9909cb4ffc70ee61d742f7b6ac2f7055fd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 00:27:04 +0000 Subject: [PATCH 031/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From c7e1c542448bb1420213d084077690c6d5725e5a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 01:27:09 +0000 Subject: [PATCH 032/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 2fd7ce3541f1731a4038955508cc69daebba63c7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 03:27:00 +0000 Subject: [PATCH 033/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7102e0562d25ee6a84cd9a884dadcf5ab0c8e6e3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 07:27:14 +0000 Subject: [PATCH 034/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7a5ae60ad6c6940a5012f0e1f7fa2f96338c1445 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 10:27:08 +0000 Subject: [PATCH 035/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9ba386a8f80a2dc79e9f0b24852b0b90ae36a8e6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 11:27:11 +0000 Subject: [PATCH 036/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 98ec0833c01b411a6624d0397b1d734b7681be57 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 12:27:00 +0000 Subject: [PATCH 037/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From d5fd69e94e646382b01a6029329a35d16dec5ba8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 13:27:00 +0000 Subject: [PATCH 038/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 4c9477e1f012a3d15166c93034199c6180729248 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 15:26:59 +0000 Subject: [PATCH 039/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 4d0862fcc8eedb3a8652c5453837cd206e3dfa97 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 17:27:01 +0000 Subject: [PATCH 040/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 173d1b88e34abef494a6026a3c061e29327b513d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:27:13 +0000 Subject: [PATCH 041/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 60e5402c4502957aee7848ab3cdcbfb41503a8ae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 22:27:52 +0000 Subject: [PATCH 042/215] chore(internal): version bump From 495341c62830b411b388e1142fbf8645755cfb5c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 13 Feb 2026 23:27:08 +0000 Subject: [PATCH 043/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 097cb3788a286f5b90ae17160a7c8e136ffcf2b4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 00:27:02 +0000 Subject: [PATCH 044/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From f363b24e35f0e07d7f2ffa97bc2fdbf065a3e31b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 03:27:06 +0000 Subject: [PATCH 045/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From e17eef813b65d2367234f0cfb3855e95412aa70d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 04:26:59 +0000 Subject: [PATCH 046/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7dc48f7c22fd35d2c1f4234e09f6b6501aae2ff7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 08:27:08 +0000 Subject: [PATCH 047/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From cf75ae41b95cc81366e1cca6b41ec21ee9e6ddc9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 10:27:11 +0000 Subject: [PATCH 048/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 68dcb92f243d94e8bd6ad084fa9be09734f0d55a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 12:27:02 +0000 Subject: [PATCH 049/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 349cd35919e5e850383ada9bd65cae0f30aab18b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 13:27:05 +0000 Subject: [PATCH 050/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From b88ede12b3045d61ca1912557ba74a18b32d53cf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 14:27:10 +0000 Subject: [PATCH 051/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From e7e79f41b6d074d672b80260477a73b7e9fb2ab6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 19:27:10 +0000 Subject: [PATCH 052/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 8521c660c7347982b1728e45659df92785ba7c86 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 22:27:10 +0000 Subject: [PATCH 053/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 19e52a2d434655b627a69e61589fc55347f659b7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 14 Feb 2026 23:27:09 +0000 Subject: [PATCH 054/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From b51f8c6852c87210042ae2c6fc66fe6984ed2dbd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 07:27:11 +0000 Subject: [PATCH 055/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 038d48161ca8bd321fe86adec064048dd4a0beda Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 10:26:59 +0000 Subject: [PATCH 056/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 5312bea927dbb3b2a7a4b28cc1b1ae6f8df50048 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 12:27:13 +0000 Subject: [PATCH 057/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 28105acfe0c2713341d51155d451a1af9301331e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 15:27:13 +0000 Subject: [PATCH 058/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 1e9763b636af3bbca133f1a2c4d0d66505b3d719 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 16:27:12 +0000 Subject: [PATCH 059/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 69734dfbf170c8120261c8497b27090b8a845f90 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 21:27:14 +0000 Subject: [PATCH 060/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 517fe626945a3df1c12568d3f87a88ec9bf02588 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 22:27:08 +0000 Subject: [PATCH 061/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 216ddee00bb9c646bf3931459c12080ad78925a8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 15 Feb 2026 23:27:14 +0000 Subject: [PATCH 062/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From df1d739c0d78ec8074c97c39cf1463434f7bd9c3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 00:27:08 +0000 Subject: [PATCH 063/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From bc84a4c02109af1fb2463602284be20dd5e38293 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 01:27:14 +0000 Subject: [PATCH 064/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From d8ac68170ab8e45b03b996176cd374591be98298 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 03:27:12 +0000 Subject: [PATCH 065/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0927887f12a7a2b2852186fbf5109becf2c34a09 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 05:27:13 +0000 Subject: [PATCH 066/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 01332aa30bfe190b3588de98f692ac86c78ca71b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 06:27:12 +0000 Subject: [PATCH 067/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0125481b9072bffa2feef64c6f78e00b2bc9bfdf Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 07:27:15 +0000 Subject: [PATCH 068/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 33ea5e74755e5bd4dcfaae1650f15bbc9c679098 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 08:27:08 +0000 Subject: [PATCH 069/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From bfa2f9818a7f4425f6ffa78891e1eafe36cea319 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 09:27:14 +0000 Subject: [PATCH 070/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 078006849d1e388957b9f2a481efa767ec53959d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 11:27:08 +0000 Subject: [PATCH 071/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From b3d224edd994190374b062a9863f7e271dc0067e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 12:27:03 +0000 Subject: [PATCH 072/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0d6740954b584567bb64b01bd690a79c2444b3c9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 13:27:04 +0000 Subject: [PATCH 073/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 3813abb5de902031339dece83caa86933fc0ecd8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:27:04 +0000 Subject: [PATCH 074/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7d39e24285ff5eed3c884d194e17ee9f2c71e170 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 15:27:11 +0000 Subject: [PATCH 075/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 5cc2dbf2fa9f064840d77c580a1f37b5c452709a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 18:27:15 +0000 Subject: [PATCH 076/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 2e2917e2adaad09cd3ab6addd2230892cc20429c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 19:27:15 +0000 Subject: [PATCH 077/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From ccceb5acefa12dff8ee07b8d0efaf654725f6866 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:27:12 +0000 Subject: [PATCH 078/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7f230a47b3cf0523fea03ba38776b5e87d9ac994 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:27:08 +0000 Subject: [PATCH 079/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 5aa5c1fa68247c824881e6a35a664467aed1fd99 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 22:27:17 +0000 Subject: [PATCH 080/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 567bedddeac360e2dfadc135787f32f483a8d171 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 00:27:10 +0000 Subject: [PATCH 081/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From bf2f413a9786350f75c908578ceb32e18dc3213f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 02:27:16 +0000 Subject: [PATCH 082/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 82574e7ec30d07540d81b82b383ece63d68cd061 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 04:27:15 +0000 Subject: [PATCH 083/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From bbf82b918b30af4030bc362d7759f96d23ff7ba1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 06:27:06 +0000 Subject: [PATCH 084/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 1e576e5602db0906491bd574a6b9d93ac06a8420 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 07:27:17 +0000 Subject: [PATCH 085/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From eb1f7129330e17fdba384bc029f7874b2c169d9c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 08:27:17 +0000 Subject: [PATCH 086/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From cdba500c1e3c6ea96ca999b83ddc71ad85614fa9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 09:27:15 +0000 Subject: [PATCH 087/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 4e1cd7720b91400aeec636cbcbfd180c83c3fca1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 10:27:06 +0000 Subject: [PATCH 088/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From dd740b254187ce1526efaf3a4a4c162fd7815778 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 12:27:09 +0000 Subject: [PATCH 089/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 5f239efaf8806c701c70b945e9a44d90c6c76cc7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 13:27:15 +0000 Subject: [PATCH 090/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From f2023a422e98300dfa98f9b8061ba073be509da2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 16:27:09 +0000 Subject: [PATCH 091/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 4b28574aee7badabd02144af5a6e33e6216a940e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 17:27:10 +0000 Subject: [PATCH 092/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From 55d22aa88f1bb85560b377cbfdd5746c4a77d348 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 18:27:23 +0000 Subject: [PATCH 093/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..64d6fa8d6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml +openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 config_hash: 32eb65911c08ac84d117cecdf2759869 From 814dc3cf7a04b8796b1dc1e45ef6d5c3e93db16d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 19:27:11 +0000 Subject: [PATCH 094/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 64d6fa8d6..b62e4e62b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-0afa5288ce6572ef15c5c314d65071a29cba29a94cd0d16712009a0d81e352a3.yml -openapi_spec_hash: 4255339b0be5f0fb4f26161d6caaaa02 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml +openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 config_hash: 32eb65911c08ac84d117cecdf2759869 From dabc3341aa7fba66152e0cc57945f8c002346860 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 20:27:15 +0000 Subject: [PATCH 095/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index b62e4e62b..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-c9b5ca9e03141b62fa981944af1c880cd4562f0b697ed5f110c0e0e754f455ba.yml -openapi_spec_hash: 9ed347fceac28248d2a0acb49c4eb356 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From dcd83ceaf959aeebc067887579e450c66418f4f2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:27:11 +0000 Subject: [PATCH 096/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 806eb3e0b1333f3208782e1950cd2d64f6963506 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:27:15 +0000 Subject: [PATCH 097/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From f61e99d30340a9797ef2b3a4eba0f9520527bb34 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 01:27:08 +0000 Subject: [PATCH 098/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From b6b825e9114c270d9a3e7ef08f6637401e5a09ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 05:27:18 +0000 Subject: [PATCH 099/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From d90e0c33525902f943edd80267893ed5eaa9169c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 07:27:09 +0000 Subject: [PATCH 100/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From ca6a75f7f05f96d17f7dfcf1bed6b4ae48e6a3f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 13:27:19 +0000 Subject: [PATCH 101/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 1132255a0cd7aec1daed38e4110cd6bac53f930a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 18:00:16 +0000 Subject: [PATCH 102/215] chore(internal): version bump --- .release-please-manifest.json | 2 +- src/agentex/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 871c1ad9e..1b1f6a809 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.9.5" + ".": "0.9.4" } diff --git a/src/agentex/_version.py b/src/agentex/_version.py index 3c4a3a3a0..e5258b2ac 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.9.5" # x-release-please-version +__version__ = "0.9.4" # x-release-please-version From 366129d8d0157c9371695df0467472791caba3dd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 19:27:19 +0000 Subject: [PATCH 103/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 85927608c529bd164a6db91f544fe0da050b87d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 21:27:07 +0000 Subject: [PATCH 104/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 71f7d62f3bb01dc9651c0f850a327337d478cea8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 22:27:41 +0000 Subject: [PATCH 105/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 05610585c95cbf26b7ac1d9f15c00e3b68a66094 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 23:27:15 +0000 Subject: [PATCH 106/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From a7993a02acf4057fd83e2edd85bda258bd458db9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 02:27:13 +0000 Subject: [PATCH 107/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From c5458e1fe2280af42ad04a0aa62bdadeacf46636 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 03:27:11 +0000 Subject: [PATCH 108/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 2300f03c2d093bb256d131297c763bb00af7373e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 04:27:09 +0000 Subject: [PATCH 109/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From f6b4e7baef857404aee733598943f4abe29ad7f3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 06:27:24 +0000 Subject: [PATCH 110/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From d9202da1cb36296674f5c6362f7a0c4d5eea39a6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 07:27:15 +0000 Subject: [PATCH 111/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From d63107c40b540e455cd9e45ed75943acf23928de Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 12:27:13 +0000 Subject: [PATCH 112/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From e4a503bdb280f61319b1f107f55123bd55ab20cb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 15:27:12 +0000 Subject: [PATCH 113/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 3a5ae0f0451610ae56284307d4c2bee1ac2964c1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:04:46 +0000 Subject: [PATCH 114/215] chore(internal): remove mock server code --- scripts/mock | 41 ----------------------------------------- scripts/test | 46 ---------------------------------------------- 2 files changed, 87 deletions(-) delete mode 100755 scripts/mock diff --git a/scripts/mock b/scripts/mock deleted file mode 100755 index 0b28f6ea2..000000000 --- a/scripts/mock +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env bash - -set -e - -cd "$(dirname "$0")/.." - -if [[ -n "$1" && "$1" != '--'* ]]; then - URL="$1" - shift -else - URL="$(grep 'openapi_spec_url' .stats.yml | cut -d' ' -f2)" -fi - -# Check if the URL is empty -if [ -z "$URL" ]; then - echo "Error: No OpenAPI spec path/url provided or found in .stats.yml" - exit 1 -fi - -echo "==> Starting mock server with URL ${URL}" - -# Run prism mock on the given spec -if [ "$1" == "--daemon" ]; then - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - - # Wait for server to come online - echo -n "Waiting for server" - while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do - echo -n "." - sleep 0.1 - done - - if grep -q "✖ fatal" ".prism.log"; then - cat .prism.log - exit 1 - fi - - echo -else - npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" -fi diff --git a/scripts/test b/scripts/test index 2c69d995f..d84605d82 100755 --- a/scripts/test +++ b/scripts/test @@ -4,53 +4,7 @@ set -e cd "$(dirname "$0")/.." -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[0;33m' -NC='\033[0m' # No Color -function prism_is_running() { - curl --silent "http://localhost:4010" >/dev/null 2>&1 -} - -kill_server_on_port() { - pids=$(lsof -t -i tcp:"$1" || echo "") - if [ "$pids" != "" ]; then - kill "$pids" - echo "Stopped $pids." - fi -} - -function is_overriding_api_base_url() { - [ -n "$TEST_API_BASE_URL" ] -} - -if ! is_overriding_api_base_url && ! prism_is_running ; then - # When we exit this script, make sure to kill the background mock server process - trap 'kill_server_on_port 4010' EXIT - - # Start the dev server - ./scripts/mock --daemon -fi - -if is_overriding_api_base_url ; then - echo -e "${GREEN}✔ Running tests against ${TEST_API_BASE_URL}${NC}" - echo -elif ! prism_is_running ; then - echo -e "${RED}ERROR:${NC} The test suite will not run without a mock Prism server" - echo -e "running against your OpenAPI spec." - echo - echo -e "To run the server, pass in the path or url of your OpenAPI" - echo -e "spec to the prism command:" - echo - echo -e " \$ ${YELLOW}npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock path/to/your.openapi.yml${NC}" - echo - - exit 1 -else - echo -e "${GREEN}✔ Mock prism server is running with your OpenAPI spec${NC}" - echo -fi export DEFER_PYDANTIC_BUILD=false From 7443a1824c0f1984fc8df0e69bf139b5222d635b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:27:08 +0000 Subject: [PATCH 115/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 8c5c6d38214b13f645f6fbd75efbbb8116458589 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 16:35:11 +0000 Subject: [PATCH 116/215] chore: update mock server docs --- CONTRIBUTING.md | 7 -- tests/api_resources/messages/test_batch.py | 24 ++--- tests/api_resources/test_agents.py | 120 ++++++++++----------- tests/api_resources/test_events.py | 32 +++--- tests/api_resources/test_messages.py | 84 +++++++-------- tests/api_resources/test_spans.py | 68 ++++++------ tests/api_resources/test_states.py | 76 ++++++------- tests/api_resources/test_tasks.py | 120 ++++++++++----------- tests/api_resources/test_tracker.py | 52 ++++----- 9 files changed, 288 insertions(+), 295 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d0efe0472..867cd143b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -85,13 +85,6 @@ $ pip install ./path-to-wheel-file.whl ## Running tests -Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. - -```sh -# you will need npm installed -$ npx prism mock path/to/your/openapi.yml -``` - ```sh $ ./scripts/test ``` diff --git a/tests/api_resources/messages/test_batch.py b/tests/api_resources/messages/test_batch.py index da404855f..5b7e981bf 100644 --- a/tests/api_resources/messages/test_batch.py +++ b/tests/api_resources/messages/test_batch.py @@ -18,7 +18,7 @@ class TestBatch: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create(self, client: Agentex) -> None: batch = client.messages.batch.create( @@ -33,7 +33,7 @@ def test_method_create(self, client: Agentex) -> None: ) assert_matches_type(BatchCreateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_create(self, client: Agentex) -> None: response = client.messages.batch.with_raw_response.create( @@ -52,7 +52,7 @@ def test_raw_response_create(self, client: Agentex) -> None: batch = response.parse() assert_matches_type(BatchCreateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_create(self, client: Agentex) -> None: with client.messages.batch.with_streaming_response.create( @@ -73,7 +73,7 @@ def test_streaming_response_create(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update(self, client: Agentex) -> None: batch = client.messages.batch.update( @@ -88,7 +88,7 @@ def test_method_update(self, client: Agentex) -> None: ) assert_matches_type(BatchUpdateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_update(self, client: Agentex) -> None: response = client.messages.batch.with_raw_response.update( @@ -107,7 +107,7 @@ def test_raw_response_update(self, client: Agentex) -> None: batch = response.parse() assert_matches_type(BatchUpdateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_update(self, client: Agentex) -> None: with client.messages.batch.with_streaming_response.update( @@ -134,7 +134,7 @@ class TestAsyncBatch: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create(self, async_client: AsyncAgentex) -> None: batch = await async_client.messages.batch.create( @@ -149,7 +149,7 @@ async def test_method_create(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(BatchCreateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.batch.with_raw_response.create( @@ -168,7 +168,7 @@ async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: batch = await response.parse() assert_matches_type(BatchCreateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_create(self, async_client: AsyncAgentex) -> None: async with async_client.messages.batch.with_streaming_response.create( @@ -189,7 +189,7 @@ async def test_streaming_response_create(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update(self, async_client: AsyncAgentex) -> None: batch = await async_client.messages.batch.update( @@ -204,7 +204,7 @@ async def test_method_update(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(BatchUpdateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.batch.with_raw_response.update( @@ -223,7 +223,7 @@ async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: batch = await response.parse() assert_matches_type(BatchUpdateResponse, batch, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_update(self, async_client: AsyncAgentex) -> None: async with async_client.messages.batch.with_streaming_response.update( diff --git a/tests/api_resources/test_agents.py b/tests/api_resources/test_agents.py index 2b078045b..859dee815 100644 --- a/tests/api_resources/test_agents.py +++ b/tests/api_resources/test_agents.py @@ -23,7 +23,7 @@ class TestAgents: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: agent = client.agents.retrieve( @@ -31,7 +31,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.agents.with_raw_response.retrieve( @@ -43,7 +43,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.agents.with_streaming_response.retrieve( @@ -57,7 +57,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -65,13 +65,13 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: agent = client.agents.list() assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: agent = client.agents.list( @@ -83,7 +83,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.agents.with_raw_response.list() @@ -93,7 +93,7 @@ def test_raw_response_list(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.agents.with_streaming_response.list() as response: @@ -105,7 +105,7 @@ def test_streaming_response_list(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete(self, client: Agentex) -> None: agent = client.agents.delete( @@ -113,7 +113,7 @@ def test_method_delete(self, client: Agentex) -> None: ) assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_delete(self, client: Agentex) -> None: response = client.agents.with_raw_response.delete( @@ -125,7 +125,7 @@ def test_raw_response_delete(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_delete(self, client: Agentex) -> None: with client.agents.with_streaming_response.delete( @@ -139,7 +139,7 @@ def test_streaming_response_delete(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_delete(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -147,7 +147,7 @@ def test_path_params_delete(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete_by_name(self, client: Agentex) -> None: agent = client.agents.delete_by_name( @@ -155,7 +155,7 @@ def test_method_delete_by_name(self, client: Agentex) -> None: ) assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_delete_by_name(self, client: Agentex) -> None: response = client.agents.with_raw_response.delete_by_name( @@ -167,7 +167,7 @@ def test_raw_response_delete_by_name(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_delete_by_name(self, client: Agentex) -> None: with client.agents.with_streaming_response.delete_by_name( @@ -181,7 +181,7 @@ def test_streaming_response_delete_by_name(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_delete_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): @@ -189,7 +189,7 @@ def test_path_params_delete_by_name(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve_by_name(self, client: Agentex) -> None: agent = client.agents.retrieve_by_name( @@ -197,7 +197,7 @@ def test_method_retrieve_by_name(self, client: Agentex) -> None: ) assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: response = client.agents.with_raw_response.retrieve_by_name( @@ -209,7 +209,7 @@ def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: with client.agents.with_streaming_response.retrieve_by_name( @@ -223,7 +223,7 @@ def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): @@ -231,7 +231,7 @@ def test_path_params_retrieve_by_name(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_rpc(self, client: Agentex) -> None: agent = client.agents.rpc( @@ -241,7 +241,7 @@ def test_method_rpc(self, client: Agentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_rpc_with_all_params(self, client: Agentex) -> None: agent = client.agents.rpc( @@ -256,7 +256,7 @@ def test_method_rpc_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_rpc(self, client: Agentex) -> None: response = client.agents.with_raw_response.rpc( @@ -270,7 +270,7 @@ def test_raw_response_rpc(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_rpc(self, client: Agentex) -> None: with client.agents.with_streaming_response.rpc( @@ -286,7 +286,7 @@ def test_streaming_response_rpc(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_rpc(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -296,7 +296,7 @@ def test_path_params_rpc(self, client: Agentex) -> None: params={}, ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_rpc_by_name(self, client: Agentex) -> None: agent = client.agents.rpc_by_name( @@ -306,7 +306,7 @@ def test_method_rpc_by_name(self, client: Agentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_rpc_by_name_with_all_params(self, client: Agentex) -> None: agent = client.agents.rpc_by_name( @@ -321,7 +321,7 @@ def test_method_rpc_by_name_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_rpc_by_name(self, client: Agentex) -> None: response = client.agents.with_raw_response.rpc_by_name( @@ -335,7 +335,7 @@ def test_raw_response_rpc_by_name(self, client: Agentex) -> None: agent = response.parse() assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_rpc_by_name(self, client: Agentex) -> None: with client.agents.with_streaming_response.rpc_by_name( @@ -351,7 +351,7 @@ def test_streaming_response_rpc_by_name(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_rpc_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): @@ -367,7 +367,7 @@ class TestAsyncAgents: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.retrieve( @@ -375,7 +375,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.retrieve( @@ -387,7 +387,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: agent = await response.parse() assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.retrieve( @@ -401,7 +401,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -409,13 +409,13 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.list() assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.list( @@ -427,7 +427,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.list() @@ -437,7 +437,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: agent = await response.parse() assert_matches_type(AgentListResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.list() as response: @@ -449,7 +449,7 @@ async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_delete(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.delete( @@ -457,7 +457,7 @@ async def test_method_delete(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.delete( @@ -469,7 +469,7 @@ async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: agent = await response.parse() assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.delete( @@ -483,7 +483,7 @@ async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -491,7 +491,7 @@ async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.delete_by_name( @@ -499,7 +499,7 @@ async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.delete_by_name( @@ -511,7 +511,7 @@ async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> agent = await response.parse() assert_matches_type(DeleteResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.delete_by_name( @@ -525,7 +525,7 @@ async def test_streaming_response_delete_by_name(self, async_client: AsyncAgente assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): @@ -533,7 +533,7 @@ async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> N "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.retrieve_by_name( @@ -541,7 +541,7 @@ async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None ) assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.retrieve_by_name( @@ -553,7 +553,7 @@ async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) - agent = await response.parse() assert_matches_type(Agent, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.retrieve_by_name( @@ -567,7 +567,7 @@ async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgen assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): @@ -575,7 +575,7 @@ async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_rpc(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.rpc( @@ -585,7 +585,7 @@ async def test_method_rpc(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_rpc_with_all_params(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.rpc( @@ -600,7 +600,7 @@ async def test_method_rpc_with_all_params(self, async_client: AsyncAgentex) -> N ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_rpc(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.rpc( @@ -614,7 +614,7 @@ async def test_raw_response_rpc(self, async_client: AsyncAgentex) -> None: agent = await response.parse() assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_rpc(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.rpc( @@ -630,7 +630,7 @@ async def test_streaming_response_rpc(self, async_client: AsyncAgentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_rpc(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_id` but received ''"): @@ -640,7 +640,7 @@ async def test_path_params_rpc(self, async_client: AsyncAgentex) -> None: params={}, ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_rpc_by_name(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.rpc_by_name( @@ -650,7 +650,7 @@ async def test_method_rpc_by_name(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_rpc_by_name_with_all_params(self, async_client: AsyncAgentex) -> None: agent = await async_client.agents.rpc_by_name( @@ -665,7 +665,7 @@ async def test_method_rpc_by_name_with_all_params(self, async_client: AsyncAgent ) assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_rpc_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.agents.with_raw_response.rpc_by_name( @@ -679,7 +679,7 @@ async def test_raw_response_rpc_by_name(self, async_client: AsyncAgentex) -> Non agent = await response.parse() assert_matches_type(AgentRpcResponse, agent, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_rpc_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.agents.with_streaming_response.rpc_by_name( @@ -695,7 +695,7 @@ async def test_streaming_response_rpc_by_name(self, async_client: AsyncAgentex) assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_rpc_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `agent_name` but received ''"): diff --git a/tests/api_resources/test_events.py b/tests/api_resources/test_events.py index ccf5f7bfb..7a0805b52 100644 --- a/tests/api_resources/test_events.py +++ b/tests/api_resources/test_events.py @@ -18,7 +18,7 @@ class TestEvents: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: event = client.events.retrieve( @@ -26,7 +26,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(Event, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.events.with_raw_response.retrieve( @@ -38,7 +38,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: event = response.parse() assert_matches_type(Event, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.events.with_streaming_response.retrieve( @@ -52,7 +52,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `event_id` but received ''"): @@ -60,7 +60,7 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: event = client.events.list( @@ -69,7 +69,7 @@ def test_method_list(self, client: Agentex) -> None: ) assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: event = client.events.list( @@ -80,7 +80,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.events.with_raw_response.list( @@ -93,7 +93,7 @@ def test_raw_response_list(self, client: Agentex) -> None: event = response.parse() assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.events.with_streaming_response.list( @@ -114,7 +114,7 @@ class TestAsyncEvents: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: event = await async_client.events.retrieve( @@ -122,7 +122,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(Event, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.events.with_raw_response.retrieve( @@ -134,7 +134,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: event = await response.parse() assert_matches_type(Event, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.events.with_streaming_response.retrieve( @@ -148,7 +148,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `event_id` but received ''"): @@ -156,7 +156,7 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: event = await async_client.events.list( @@ -165,7 +165,7 @@ async def test_method_list(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: event = await async_client.events.list( @@ -176,7 +176,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.events.with_raw_response.list( @@ -189,7 +189,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: event = await response.parse() assert_matches_type(EventListResponse, event, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.events.with_streaming_response.list( diff --git a/tests/api_resources/test_messages.py b/tests/api_resources/test_messages.py index 4b9cfc31b..2aeeffe95 100644 --- a/tests/api_resources/test_messages.py +++ b/tests/api_resources/test_messages.py @@ -22,7 +22,7 @@ class TestMessages: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create(self, client: Agentex) -> None: message = client.messages.create( @@ -35,7 +35,7 @@ def test_method_create(self, client: Agentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create_with_all_params(self, client: Agentex) -> None: message = client.messages.create( @@ -59,7 +59,7 @@ def test_method_create_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_create(self, client: Agentex) -> None: response = client.messages.with_raw_response.create( @@ -76,7 +76,7 @@ def test_raw_response_create(self, client: Agentex) -> None: message = response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_create(self, client: Agentex) -> None: with client.messages.with_streaming_response.create( @@ -95,7 +95,7 @@ def test_streaming_response_create(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: message = client.messages.retrieve( @@ -103,7 +103,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.messages.with_raw_response.retrieve( @@ -115,7 +115,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: message = response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.messages.with_streaming_response.retrieve( @@ -129,7 +129,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"): @@ -137,7 +137,7 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update(self, client: Agentex) -> None: message = client.messages.update( @@ -151,7 +151,7 @@ def test_method_update(self, client: Agentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update_with_all_params(self, client: Agentex) -> None: message = client.messages.update( @@ -176,7 +176,7 @@ def test_method_update_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_update(self, client: Agentex) -> None: response = client.messages.with_raw_response.update( @@ -194,7 +194,7 @@ def test_raw_response_update(self, client: Agentex) -> None: message = response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_update(self, client: Agentex) -> None: with client.messages.with_streaming_response.update( @@ -214,7 +214,7 @@ def test_streaming_response_update(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_update(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"): @@ -228,7 +228,7 @@ def test_path_params_update(self, client: Agentex) -> None: task_id="task_id", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: message = client.messages.list( @@ -236,7 +236,7 @@ def test_method_list(self, client: Agentex) -> None: ) assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: message = client.messages.list( @@ -249,7 +249,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.messages.with_raw_response.list( @@ -261,7 +261,7 @@ def test_raw_response_list(self, client: Agentex) -> None: message = response.parse() assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.messages.with_streaming_response.list( @@ -275,7 +275,7 @@ def test_streaming_response_list(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_paginated(self, client: Agentex) -> None: message = client.messages.list_paginated( @@ -283,7 +283,7 @@ def test_method_list_paginated(self, client: Agentex) -> None: ) assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_paginated_with_all_params(self, client: Agentex) -> None: message = client.messages.list_paginated( @@ -295,7 +295,7 @@ def test_method_list_paginated_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list_paginated(self, client: Agentex) -> None: response = client.messages.with_raw_response.list_paginated( @@ -307,7 +307,7 @@ def test_raw_response_list_paginated(self, client: Agentex) -> None: message = response.parse() assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list_paginated(self, client: Agentex) -> None: with client.messages.with_streaming_response.list_paginated( @@ -327,7 +327,7 @@ class TestAsyncMessages: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.create( @@ -340,7 +340,7 @@ async def test_method_create(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create_with_all_params(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.create( @@ -364,7 +364,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncAgentex) - ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.with_raw_response.create( @@ -381,7 +381,7 @@ async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: message = await response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_create(self, async_client: AsyncAgentex) -> None: async with async_client.messages.with_streaming_response.create( @@ -400,7 +400,7 @@ async def test_streaming_response_create(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.retrieve( @@ -408,7 +408,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.with_raw_response.retrieve( @@ -420,7 +420,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: message = await response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.messages.with_streaming_response.retrieve( @@ -434,7 +434,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"): @@ -442,7 +442,7 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.update( @@ -456,7 +456,7 @@ async def test_method_update(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update_with_all_params(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.update( @@ -481,7 +481,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncAgentex) - ) assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.with_raw_response.update( @@ -499,7 +499,7 @@ async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: message = await response.parse() assert_matches_type(TaskMessage, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_update(self, async_client: AsyncAgentex) -> None: async with async_client.messages.with_streaming_response.update( @@ -519,7 +519,7 @@ async def test_streaming_response_update(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_update(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `message_id` but received ''"): @@ -533,7 +533,7 @@ async def test_path_params_update(self, async_client: AsyncAgentex) -> None: task_id="task_id", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.list( @@ -541,7 +541,7 @@ async def test_method_list(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.list( @@ -554,7 +554,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.with_raw_response.list( @@ -566,7 +566,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: message = await response.parse() assert_matches_type(MessageListResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.messages.with_streaming_response.list( @@ -580,7 +580,7 @@ async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_paginated(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.list_paginated( @@ -588,7 +588,7 @@ async def test_method_list_paginated(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_paginated_with_all_params(self, async_client: AsyncAgentex) -> None: message = await async_client.messages.list_paginated( @@ -600,7 +600,7 @@ async def test_method_list_paginated_with_all_params(self, async_client: AsyncAg ) assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list_paginated(self, async_client: AsyncAgentex) -> None: response = await async_client.messages.with_raw_response.list_paginated( @@ -612,7 +612,7 @@ async def test_raw_response_list_paginated(self, async_client: AsyncAgentex) -> message = await response.parse() assert_matches_type(MessageListPaginatedResponse, message, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list_paginated(self, async_client: AsyncAgentex) -> None: async with async_client.messages.with_streaming_response.list_paginated( diff --git a/tests/api_resources/test_spans.py b/tests/api_resources/test_spans.py index dd4162ba0..948760a67 100644 --- a/tests/api_resources/test_spans.py +++ b/tests/api_resources/test_spans.py @@ -19,7 +19,7 @@ class TestSpans: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create(self, client: Agentex) -> None: span = client.spans.create( @@ -29,7 +29,7 @@ def test_method_create(self, client: Agentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create_with_all_params(self, client: Agentex) -> None: span = client.spans.create( @@ -45,7 +45,7 @@ def test_method_create_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_create(self, client: Agentex) -> None: response = client.spans.with_raw_response.create( @@ -59,7 +59,7 @@ def test_raw_response_create(self, client: Agentex) -> None: span = response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_create(self, client: Agentex) -> None: with client.spans.with_streaming_response.create( @@ -75,7 +75,7 @@ def test_streaming_response_create(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: span = client.spans.retrieve( @@ -83,7 +83,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.spans.with_raw_response.retrieve( @@ -95,7 +95,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: span = response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.spans.with_streaming_response.retrieve( @@ -109,7 +109,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `span_id` but received ''"): @@ -117,7 +117,7 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update(self, client: Agentex) -> None: span = client.spans.update( @@ -125,7 +125,7 @@ def test_method_update(self, client: Agentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update_with_all_params(self, client: Agentex) -> None: span = client.spans.update( @@ -141,7 +141,7 @@ def test_method_update_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_update(self, client: Agentex) -> None: response = client.spans.with_raw_response.update( @@ -153,7 +153,7 @@ def test_raw_response_update(self, client: Agentex) -> None: span = response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_update(self, client: Agentex) -> None: with client.spans.with_streaming_response.update( @@ -167,7 +167,7 @@ def test_streaming_response_update(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_update(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `span_id` but received ''"): @@ -175,13 +175,13 @@ def test_path_params_update(self, client: Agentex) -> None: span_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: span = client.spans.list() assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: span = client.spans.list( @@ -193,7 +193,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.spans.with_raw_response.list() @@ -203,7 +203,7 @@ def test_raw_response_list(self, client: Agentex) -> None: span = response.parse() assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.spans.with_streaming_response.list() as response: @@ -221,7 +221,7 @@ class TestAsyncSpans: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.create( @@ -231,7 +231,7 @@ async def test_method_create(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create_with_all_params(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.create( @@ -247,7 +247,7 @@ async def test_method_create_with_all_params(self, async_client: AsyncAgentex) - ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: response = await async_client.spans.with_raw_response.create( @@ -261,7 +261,7 @@ async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: span = await response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_create(self, async_client: AsyncAgentex) -> None: async with async_client.spans.with_streaming_response.create( @@ -277,7 +277,7 @@ async def test_streaming_response_create(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.retrieve( @@ -285,7 +285,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.spans.with_raw_response.retrieve( @@ -297,7 +297,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: span = await response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.spans.with_streaming_response.retrieve( @@ -311,7 +311,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `span_id` but received ''"): @@ -319,7 +319,7 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.update( @@ -327,7 +327,7 @@ async def test_method_update(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update_with_all_params(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.update( @@ -343,7 +343,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncAgentex) - ) assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: response = await async_client.spans.with_raw_response.update( @@ -355,7 +355,7 @@ async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: span = await response.parse() assert_matches_type(Span, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_update(self, async_client: AsyncAgentex) -> None: async with async_client.spans.with_streaming_response.update( @@ -369,7 +369,7 @@ async def test_streaming_response_update(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_update(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `span_id` but received ''"): @@ -377,13 +377,13 @@ async def test_path_params_update(self, async_client: AsyncAgentex) -> None: span_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.list() assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: span = await async_client.spans.list( @@ -395,7 +395,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.spans.with_raw_response.list() @@ -405,7 +405,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: span = await response.parse() assert_matches_type(SpanListResponse, span, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.spans.with_streaming_response.list() as response: diff --git a/tests/api_resources/test_states.py b/tests/api_resources/test_states.py index 0b3193420..2e5e91a0c 100644 --- a/tests/api_resources/test_states.py +++ b/tests/api_resources/test_states.py @@ -18,7 +18,7 @@ class TestStates: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_create(self, client: Agentex) -> None: state = client.states.create( @@ -28,7 +28,7 @@ def test_method_create(self, client: Agentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_create(self, client: Agentex) -> None: response = client.states.with_raw_response.create( @@ -42,7 +42,7 @@ def test_raw_response_create(self, client: Agentex) -> None: state = response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_create(self, client: Agentex) -> None: with client.states.with_streaming_response.create( @@ -58,7 +58,7 @@ def test_streaming_response_create(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: state = client.states.retrieve( @@ -66,7 +66,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.states.with_raw_response.retrieve( @@ -78,7 +78,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: state = response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.states.with_streaming_response.retrieve( @@ -92,7 +92,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): @@ -100,7 +100,7 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update(self, client: Agentex) -> None: state = client.states.update( @@ -111,7 +111,7 @@ def test_method_update(self, client: Agentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_update(self, client: Agentex) -> None: response = client.states.with_raw_response.update( @@ -126,7 +126,7 @@ def test_raw_response_update(self, client: Agentex) -> None: state = response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_update(self, client: Agentex) -> None: with client.states.with_streaming_response.update( @@ -143,7 +143,7 @@ def test_streaming_response_update(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_update(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): @@ -154,13 +154,13 @@ def test_path_params_update(self, client: Agentex) -> None: task_id="task_id", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: state = client.states.list() assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: state = client.states.list( @@ -173,7 +173,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.states.with_raw_response.list() @@ -183,7 +183,7 @@ def test_raw_response_list(self, client: Agentex) -> None: state = response.parse() assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.states.with_streaming_response.list() as response: @@ -195,7 +195,7 @@ def test_streaming_response_list(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete(self, client: Agentex) -> None: state = client.states.delete( @@ -203,7 +203,7 @@ def test_method_delete(self, client: Agentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_delete(self, client: Agentex) -> None: response = client.states.with_raw_response.delete( @@ -215,7 +215,7 @@ def test_raw_response_delete(self, client: Agentex) -> None: state = response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_delete(self, client: Agentex) -> None: with client.states.with_streaming_response.delete( @@ -229,7 +229,7 @@ def test_streaming_response_delete(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_delete(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): @@ -243,7 +243,7 @@ class TestAsyncStates: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_create(self, async_client: AsyncAgentex) -> None: state = await async_client.states.create( @@ -253,7 +253,7 @@ async def test_method_create(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: response = await async_client.states.with_raw_response.create( @@ -267,7 +267,7 @@ async def test_raw_response_create(self, async_client: AsyncAgentex) -> None: state = await response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_create(self, async_client: AsyncAgentex) -> None: async with async_client.states.with_streaming_response.create( @@ -283,7 +283,7 @@ async def test_streaming_response_create(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: state = await async_client.states.retrieve( @@ -291,7 +291,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.states.with_raw_response.retrieve( @@ -303,7 +303,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: state = await response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.states.with_streaming_response.retrieve( @@ -317,7 +317,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): @@ -325,7 +325,7 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update(self, async_client: AsyncAgentex) -> None: state = await async_client.states.update( @@ -336,7 +336,7 @@ async def test_method_update(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: response = await async_client.states.with_raw_response.update( @@ -351,7 +351,7 @@ async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: state = await response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_update(self, async_client: AsyncAgentex) -> None: async with async_client.states.with_streaming_response.update( @@ -368,7 +368,7 @@ async def test_streaming_response_update(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_update(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): @@ -379,13 +379,13 @@ async def test_path_params_update(self, async_client: AsyncAgentex) -> None: task_id="task_id", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: state = await async_client.states.list() assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: state = await async_client.states.list( @@ -398,7 +398,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.states.with_raw_response.list() @@ -408,7 +408,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: state = await response.parse() assert_matches_type(StateListResponse, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.states.with_streaming_response.list() as response: @@ -420,7 +420,7 @@ async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_delete(self, async_client: AsyncAgentex) -> None: state = await async_client.states.delete( @@ -428,7 +428,7 @@ async def test_method_delete(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: response = await async_client.states.with_raw_response.delete( @@ -440,7 +440,7 @@ async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: state = await response.parse() assert_matches_type(State, state, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: async with async_client.states.with_streaming_response.delete( @@ -454,7 +454,7 @@ async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `state_id` but received ''"): diff --git a/tests/api_resources/test_tasks.py b/tests/api_resources/test_tasks.py index ce240badc..294116ad5 100644 --- a/tests/api_resources/test_tasks.py +++ b/tests/api_resources/test_tasks.py @@ -23,7 +23,7 @@ class TestTasks: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: task = client.tasks.retrieve( @@ -31,7 +31,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve_with_all_params(self, client: Agentex) -> None: task = client.tasks.retrieve( @@ -40,7 +40,7 @@ def test_method_retrieve_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.tasks.with_raw_response.retrieve( @@ -52,7 +52,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: task = response.parse() assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.tasks.with_streaming_response.retrieve( @@ -66,7 +66,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -74,13 +74,13 @@ def test_path_params_retrieve(self, client: Agentex) -> None: task_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: task = client.tasks.list() assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: task = client.tasks.list( @@ -94,7 +94,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.tasks.with_raw_response.list() @@ -104,7 +104,7 @@ def test_raw_response_list(self, client: Agentex) -> None: task = response.parse() assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.tasks.with_streaming_response.list() as response: @@ -116,7 +116,7 @@ def test_streaming_response_list(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete(self, client: Agentex) -> None: task = client.tasks.delete( @@ -124,7 +124,7 @@ def test_method_delete(self, client: Agentex) -> None: ) assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_delete(self, client: Agentex) -> None: response = client.tasks.with_raw_response.delete( @@ -136,7 +136,7 @@ def test_raw_response_delete(self, client: Agentex) -> None: task = response.parse() assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_delete(self, client: Agentex) -> None: with client.tasks.with_streaming_response.delete( @@ -150,7 +150,7 @@ def test_streaming_response_delete(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_delete(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -158,7 +158,7 @@ def test_path_params_delete(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete_by_name(self, client: Agentex) -> None: task = client.tasks.delete_by_name( @@ -166,7 +166,7 @@ def test_method_delete_by_name(self, client: Agentex) -> None: ) assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_delete_by_name(self, client: Agentex) -> None: response = client.tasks.with_raw_response.delete_by_name( @@ -178,7 +178,7 @@ def test_raw_response_delete_by_name(self, client: Agentex) -> None: task = response.parse() assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_delete_by_name(self, client: Agentex) -> None: with client.tasks.with_streaming_response.delete_by_name( @@ -192,7 +192,7 @@ def test_streaming_response_delete_by_name(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_delete_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): @@ -200,7 +200,7 @@ def test_path_params_delete_by_name(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve_by_name(self, client: Agentex) -> None: task = client.tasks.retrieve_by_name( @@ -208,7 +208,7 @@ def test_method_retrieve_by_name(self, client: Agentex) -> None: ) assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve_by_name_with_all_params(self, client: Agentex) -> None: task = client.tasks.retrieve_by_name( @@ -217,7 +217,7 @@ def test_method_retrieve_by_name_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: response = client.tasks.with_raw_response.retrieve_by_name( @@ -229,7 +229,7 @@ def test_raw_response_retrieve_by_name(self, client: Agentex) -> None: task = response.parse() assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: with client.tasks.with_streaming_response.retrieve_by_name( @@ -243,7 +243,7 @@ def test_streaming_response_retrieve_by_name(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): @@ -251,7 +251,7 @@ def test_path_params_retrieve_by_name(self, client: Agentex) -> None: task_name="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_stream_events(self, client: Agentex) -> None: task_stream = client.tasks.stream_events( @@ -259,7 +259,7 @@ def test_method_stream_events(self, client: Agentex) -> None: ) task_stream.response.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_stream_events(self, client: Agentex) -> None: response = client.tasks.with_raw_response.stream_events( @@ -270,7 +270,7 @@ def test_raw_response_stream_events(self, client: Agentex) -> None: stream = response.parse() stream.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_stream_events(self, client: Agentex) -> None: with client.tasks.with_streaming_response.stream_events( @@ -284,7 +284,7 @@ def test_streaming_response_stream_events(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_stream_events(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -292,7 +292,7 @@ def test_path_params_stream_events(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_stream_events_by_name(self, client: Agentex) -> None: task_stream = client.tasks.stream_events_by_name( @@ -300,7 +300,7 @@ def test_method_stream_events_by_name(self, client: Agentex) -> None: ) task_stream.response.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_stream_events_by_name(self, client: Agentex) -> None: response = client.tasks.with_raw_response.stream_events_by_name( @@ -311,7 +311,7 @@ def test_raw_response_stream_events_by_name(self, client: Agentex) -> None: stream = response.parse() stream.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_stream_events_by_name(self, client: Agentex) -> None: with client.tasks.with_streaming_response.stream_events_by_name( @@ -325,7 +325,7 @@ def test_streaming_response_stream_events_by_name(self, client: Agentex) -> None assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_stream_events_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): @@ -339,7 +339,7 @@ class TestAsyncTasks: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve( @@ -347,7 +347,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve_with_all_params(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve( @@ -356,7 +356,7 @@ async def test_method_retrieve_with_all_params(self, async_client: AsyncAgentex) ) assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.retrieve( @@ -368,7 +368,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: task = await response.parse() assert_matches_type(TaskRetrieveResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.retrieve( @@ -382,7 +382,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -390,13 +390,13 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: task_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.list() assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.list( @@ -410,7 +410,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.list() @@ -420,7 +420,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: task = await response.parse() assert_matches_type(TaskListResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.list() as response: @@ -432,7 +432,7 @@ async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_delete(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.delete( @@ -440,7 +440,7 @@ async def test_method_delete(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.delete( @@ -452,7 +452,7 @@ async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: task = await response.parse() assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.delete( @@ -466,7 +466,7 @@ async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -474,7 +474,7 @@ async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.delete_by_name( @@ -482,7 +482,7 @@ async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.delete_by_name( @@ -494,7 +494,7 @@ async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> task = await response.parse() assert_matches_type(DeleteResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.delete_by_name( @@ -508,7 +508,7 @@ async def test_streaming_response_delete_by_name(self, async_client: AsyncAgente assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): @@ -516,7 +516,7 @@ async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> N "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve_by_name( @@ -524,7 +524,7 @@ async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None ) assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve_by_name_with_all_params(self, async_client: AsyncAgentex) -> None: task = await async_client.tasks.retrieve_by_name( @@ -533,7 +533,7 @@ async def test_method_retrieve_by_name_with_all_params(self, async_client: Async ) assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.retrieve_by_name( @@ -545,7 +545,7 @@ async def test_raw_response_retrieve_by_name(self, async_client: AsyncAgentex) - task = await response.parse() assert_matches_type(TaskRetrieveByNameResponse, task, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.retrieve_by_name( @@ -559,7 +559,7 @@ async def test_streaming_response_retrieve_by_name(self, async_client: AsyncAgen assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): @@ -567,7 +567,7 @@ async def test_path_params_retrieve_by_name(self, async_client: AsyncAgentex) -> task_name="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_stream_events(self, async_client: AsyncAgentex) -> None: task_stream = await async_client.tasks.stream_events( @@ -575,7 +575,7 @@ async def test_method_stream_events(self, async_client: AsyncAgentex) -> None: ) await task_stream.response.aclose() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_stream_events(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.stream_events( @@ -586,7 +586,7 @@ async def test_raw_response_stream_events(self, async_client: AsyncAgentex) -> N stream = await response.parse() await stream.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_stream_events(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.stream_events( @@ -600,7 +600,7 @@ async def test_streaming_response_stream_events(self, async_client: AsyncAgentex assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_stream_events(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): @@ -608,7 +608,7 @@ async def test_path_params_stream_events(self, async_client: AsyncAgentex) -> No "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_stream_events_by_name(self, async_client: AsyncAgentex) -> None: task_stream = await async_client.tasks.stream_events_by_name( @@ -616,7 +616,7 @@ async def test_method_stream_events_by_name(self, async_client: AsyncAgentex) -> ) await task_stream.response.aclose() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_stream_events_by_name(self, async_client: AsyncAgentex) -> None: response = await async_client.tasks.with_raw_response.stream_events_by_name( @@ -627,7 +627,7 @@ async def test_raw_response_stream_events_by_name(self, async_client: AsyncAgent stream = await response.parse() await stream.close() - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_stream_events_by_name(self, async_client: AsyncAgentex) -> None: async with async_client.tasks.with_streaming_response.stream_events_by_name( @@ -641,7 +641,7 @@ async def test_streaming_response_stream_events_by_name(self, async_client: Asyn assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_stream_events_by_name(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): diff --git a/tests/api_resources/test_tracker.py b/tests/api_resources/test_tracker.py index ae4a3a918..d56f4b6db 100644 --- a/tests/api_resources/test_tracker.py +++ b/tests/api_resources/test_tracker.py @@ -18,7 +18,7 @@ class TestTracker: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: tracker = client.tracker.retrieve( @@ -26,7 +26,7 @@ def test_method_retrieve(self, client: Agentex) -> None: ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.tracker.with_raw_response.retrieve( @@ -38,7 +38,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: tracker = response.parse() assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.tracker.with_streaming_response.retrieve( @@ -52,7 +52,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `tracker_id` but received ''"): @@ -60,7 +60,7 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update(self, client: Agentex) -> None: tracker = client.tracker.update( @@ -68,7 +68,7 @@ def test_method_update(self, client: Agentex) -> None: ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_update_with_all_params(self, client: Agentex) -> None: tracker = client.tracker.update( @@ -79,7 +79,7 @@ def test_method_update_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_update(self, client: Agentex) -> None: response = client.tracker.with_raw_response.update( @@ -91,7 +91,7 @@ def test_raw_response_update(self, client: Agentex) -> None: tracker = response.parse() assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_update(self, client: Agentex) -> None: with client.tracker.with_streaming_response.update( @@ -105,7 +105,7 @@ def test_streaming_response_update(self, client: Agentex) -> None: assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_update(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `tracker_id` but received ''"): @@ -113,13 +113,13 @@ def test_path_params_update(self, client: Agentex) -> None: tracker_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: tracker = client.tracker.list() assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: tracker = client.tracker.list( @@ -132,7 +132,7 @@ def test_method_list_with_all_params(self, client: Agentex) -> None: ) assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.tracker.with_raw_response.list() @@ -142,7 +142,7 @@ def test_raw_response_list(self, client: Agentex) -> None: tracker = response.parse() assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.tracker.with_streaming_response.list() as response: @@ -160,7 +160,7 @@ class TestAsyncTracker: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: tracker = await async_client.tracker.retrieve( @@ -168,7 +168,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.tracker.with_raw_response.retrieve( @@ -180,7 +180,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: tracker = await response.parse() assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.tracker.with_streaming_response.retrieve( @@ -194,7 +194,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `tracker_id` but received ''"): @@ -202,7 +202,7 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update(self, async_client: AsyncAgentex) -> None: tracker = await async_client.tracker.update( @@ -210,7 +210,7 @@ async def test_method_update(self, async_client: AsyncAgentex) -> None: ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_update_with_all_params(self, async_client: AsyncAgentex) -> None: tracker = await async_client.tracker.update( @@ -221,7 +221,7 @@ async def test_method_update_with_all_params(self, async_client: AsyncAgentex) - ) assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: response = await async_client.tracker.with_raw_response.update( @@ -233,7 +233,7 @@ async def test_raw_response_update(self, async_client: AsyncAgentex) -> None: tracker = await response.parse() assert_matches_type(AgentTaskTracker, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_update(self, async_client: AsyncAgentex) -> None: async with async_client.tracker.with_streaming_response.update( @@ -247,7 +247,7 @@ async def test_streaming_response_update(self, async_client: AsyncAgentex) -> No assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_update(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `tracker_id` but received ''"): @@ -255,13 +255,13 @@ async def test_path_params_update(self, async_client: AsyncAgentex) -> None: tracker_id="", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: tracker = await async_client.tracker.list() assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: tracker = await async_client.tracker.list( @@ -274,7 +274,7 @@ async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> ) assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.tracker.with_raw_response.list() @@ -284,7 +284,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: tracker = await response.parse() assert_matches_type(TrackerListResponse, tracker, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.tracker.with_streaming_response.list() as response: From b74eb0ef3c1cd6114b50cfc1a33738e02561b5f8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 17:27:14 +0000 Subject: [PATCH 117/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 3f88357caf270e0b7d94ed845f8e6c52679eca76 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 19:27:36 +0000 Subject: [PATCH 118/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 941681c3a092361d1d75b0b70b9b81972e49d919 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Feb 2026 21:27:08 +0000 Subject: [PATCH 119/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 2f2c907f129464c1427004548aa06c23240e4dcb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 01:27:13 +0000 Subject: [PATCH 120/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 0a97ac059d306844da89246123202181271cf387 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 05:27:10 +0000 Subject: [PATCH 121/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 892914e196c4779ccc6f026797c6d51d6e5e4cbb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 08:27:18 +0000 Subject: [PATCH 122/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 42a6e42f1aea0f9a8c2e05939f879772a555acc7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 09:27:10 +0000 Subject: [PATCH 123/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From b27165ab1b077fdfbebdb9273b976f4880c960b5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:27:19 +0000 Subject: [PATCH 124/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 2e102af73aaa724d54dc65b700669c7d18d49f4f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:27:12 +0000 Subject: [PATCH 125/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From af5eab558356111ea1566cf742737f8ec3d2a5dd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 13:27:17 +0000 Subject: [PATCH 126/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 7a305473dd5594a9fcb56f1e9cd6b4074f440a68 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 15:27:16 +0000 Subject: [PATCH 127/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From afda642b80c7a7828e01d66ce26e530307758074 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 16:27:25 +0000 Subject: [PATCH 128/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From d40746d447dce7fce2a21f3cc7be915dbc920d38 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 18:27:21 +0000 Subject: [PATCH 129/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0d4dcce5bc881cb993ff33dd753430e9c016cbc4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 23:27:10 +0000 Subject: [PATCH 130/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 06fde86e304866972c1f80cd350f9a7c1b7419d8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 01:27:15 +0000 Subject: [PATCH 131/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 1ea950e780b4d54696be8b978ae845792d522f61 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 04:27:10 +0000 Subject: [PATCH 132/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 3c39972b19a445a63821cf2888a3405fc9f8fbc2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 05:27:20 +0000 Subject: [PATCH 133/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From dce8408a1ca669dbb21c1d1d8329f1106cd23d2b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 06:27:22 +0000 Subject: [PATCH 134/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From e6c4dd278f6323ca3f646f812c681f1145cc94d6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 08:27:49 +0000 Subject: [PATCH 135/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From ff1e3b5237878b4021099685a5597a8aafdaf353 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 09:27:19 +0000 Subject: [PATCH 136/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From dec90fd4a4e43f12849e9aa880ad8802d1519355 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 13:27:20 +0000 Subject: [PATCH 137/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From f1f119c41ff96014d61dc510efc48b953e604f45 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 16:27:18 +0000 Subject: [PATCH 138/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From fc78c40fc6520c6e08652b5d38cc5dce855eb19e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 18:27:10 +0000 Subject: [PATCH 139/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7d866492282855f5e9ba17a5a4de67626fe23037 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 19:27:21 +0000 Subject: [PATCH 140/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 1f3df0652870a30de719ae6a03779f6baceb57eb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 20:27:20 +0000 Subject: [PATCH 141/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From adc7854c579eb30354c2802005271131094b57c3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 21 Feb 2026 23:27:10 +0000 Subject: [PATCH 142/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 6e968c82f87a1d578589feb57ab8423a51ae96d8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 00:27:18 +0000 Subject: [PATCH 143/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From eb84544662c8ac08df521e8aac5b8f1cfb4ce299 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 01:27:08 +0000 Subject: [PATCH 144/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 414662fd7197a22facb5edcadd99b7c62a9f33c7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 03:27:22 +0000 Subject: [PATCH 145/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From a6a3fddc8739fafc063f91f6508a2673859ce266 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 04:27:09 +0000 Subject: [PATCH 146/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From d85187b69fcef75f42db496ac0e156f419215870 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 06:27:20 +0000 Subject: [PATCH 147/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From ebd4f97599dff3003c186b2152f779a0f4027666 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 07:27:08 +0000 Subject: [PATCH 148/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 6dfcd80fc4610a45b4690f258495b6dc04d19940 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 08:27:24 +0000 Subject: [PATCH 149/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 496dbef525748a021dc1f8be00e218bac641b25b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 10:27:08 +0000 Subject: [PATCH 150/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 7e86c1fc9f5dd94412d85c36cc1f919c3a7f3738 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 12:27:25 +0000 Subject: [PATCH 151/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From bba9286d42576467d88eafb024e2cf35730b8bb2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 16:27:09 +0000 Subject: [PATCH 152/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From ca62df05d9fae9761e65a1ef25020aef0f73d496 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 19:27:10 +0000 Subject: [PATCH 153/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 250cb3c6ff07a56b34a9e87396319ef926e207aa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 22 Feb 2026 20:27:25 +0000 Subject: [PATCH 154/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From afcbd05ecefb80fd8282c42801bbfe675419d8ed Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 01:27:17 +0000 Subject: [PATCH 155/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From b24bcde275d08df7408a523a6e543d0d8d990715 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 03:27:14 +0000 Subject: [PATCH 156/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 7dc86ca2773a17927ec707eb90255688b2da6c41 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 04:27:23 +0000 Subject: [PATCH 157/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From b788da0d1b9fb6100dffb4a99b761ddcb7f0160e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 13:30:45 +0000 Subject: [PATCH 158/215] chore(internal): add request options to SSE classes --- src/agentex/_response.py | 3 +++ src/agentex/_streaming.py | 11 ++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/agentex/_response.py b/src/agentex/_response.py index be9bfbc37..d8e2464e0 100644 --- a/src/agentex/_response.py +++ b/src/agentex/_response.py @@ -152,6 +152,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: ), response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) @@ -162,6 +163,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: cast_to=extract_stream_chunk_type(self._stream_cls), response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) @@ -175,6 +177,7 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T: cast_to=cast_to, response=self.http_response, client=cast(Any, self._client), + options=self._options, ), ) diff --git a/src/agentex/_streaming.py b/src/agentex/_streaming.py index bfe61d2ab..96585bde7 100644 --- a/src/agentex/_streaming.py +++ b/src/agentex/_streaming.py @@ -4,7 +4,7 @@ import json import inspect from types import TracebackType -from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, AsyncIterator, cast +from typing import TYPE_CHECKING, Any, Generic, TypeVar, Iterator, Optional, AsyncIterator, cast from typing_extensions import Self, Protocol, TypeGuard, override, get_origin, runtime_checkable import httpx @@ -13,6 +13,7 @@ if TYPE_CHECKING: from ._client import Agentex, AsyncAgentex + from ._models import FinalRequestOptions _T = TypeVar("_T") @@ -22,7 +23,7 @@ class Stream(Generic[_T]): """Provides the core interface to iterate over a synchronous stream response.""" response: httpx.Response - + _options: Optional[FinalRequestOptions] = None _decoder: SSEBytesDecoder def __init__( @@ -31,10 +32,12 @@ def __init__( cast_to: type[_T], response: httpx.Response, client: Agentex, + options: Optional[FinalRequestOptions] = None, ) -> None: self.response = response self._cast_to = cast_to self._client = client + self._options = options self._decoder = client._make_sse_decoder() self._iterator = self.__stream__() @@ -85,7 +88,7 @@ class AsyncStream(Generic[_T]): """Provides the core interface to iterate over an asynchronous stream response.""" response: httpx.Response - + _options: Optional[FinalRequestOptions] = None _decoder: SSEDecoder | SSEBytesDecoder def __init__( @@ -94,10 +97,12 @@ def __init__( cast_to: type[_T], response: httpx.Response, client: AsyncAgentex, + options: Optional[FinalRequestOptions] = None, ) -> None: self.response = response self._cast_to = cast_to self._client = client + self._options = options self._decoder = client._make_sse_decoder() self._iterator = self.__stream__() From 5f0940bfe6800633443bbd741e55b22a9b50955d Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 17:27:08 +0000 Subject: [PATCH 159/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From f8aecaf65bf0c8770ac18fe4edae8d8fb0f3ef69 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 18:27:11 +0000 Subject: [PATCH 160/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7b439228765871f09ba2fa6c0750ce3410786fb6 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 19:27:26 +0000 Subject: [PATCH 161/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 7bfaa75be00bf8f11030f42a3dc6fdcd980c5823 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 20:28:02 +0000 Subject: [PATCH 162/215] chore(internal): make `test_proxy_environment_variables` more resilient --- tests/test_client.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test_client.py b/tests/test_client.py index 6e709e654..054738134 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -955,6 +955,8 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") + # Delete in case our environment has this set + monkeypatch.delenv("HTTP_PROXY", raising=False) client = DefaultHttpxClient() @@ -1912,6 +1914,8 @@ async def test_main() -> None: async def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") + # Delete in case our environment has this set + monkeypatch.delenv("HTTP_PROXY", raising=False) client = DefaultAsyncHttpxClient() From 3a6838bdf0f1aa49447df39e653c30265ffb76bd Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:27:07 +0000 Subject: [PATCH 163/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 8a5e7f2c89af788af48478d696a971b6cda7838e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 22:27:12 +0000 Subject: [PATCH 164/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 93fe4d78561b170d1b0a58ee1f0f0135ad81a8eb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 01:34:39 +0000 Subject: [PATCH 165/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 97c60f3e7f708796f77d4bc71510fc46e3c15d01 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 02:27:11 +0000 Subject: [PATCH 166/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 74fba1e1634c5d6d3a1b54f6a29a5a7aae44d634 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 03:27:27 +0000 Subject: [PATCH 167/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 63d7ead11ff9d607b4be438238c2e54e44b10690 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 06:27:20 +0000 Subject: [PATCH 168/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 594dc79a5d5f105bc12b389c19ac7bfafdb01d3e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 07:28:34 +0000 Subject: [PATCH 169/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 0933707bf8f3337e646175b66851d6e75f09fb46 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 13:27:15 +0000 Subject: [PATCH 170/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From a6d596a05b75e46e7863257aeebf964c86675a35 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 14:36:36 +0000 Subject: [PATCH 171/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9fb05423986f0cd354cf79c641ddd89e43ccd99e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 16:27:16 +0000 Subject: [PATCH 172/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From fd1a06e212cf1a314ac7c61e4d51879401e120f9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 17:47:35 +0000 Subject: [PATCH 173/215] chore(internal): make `test_proxy_environment_variables` more resilient to env --- tests/test_client.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/test_client.py b/tests/test_client.py index 054738134..c13db7d12 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -955,8 +955,14 @@ def retry_handler(_request: httpx.Request) -> httpx.Response: def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") - # Delete in case our environment has this set + # Delete in case our environment has any proxy env vars set monkeypatch.delenv("HTTP_PROXY", raising=False) + monkeypatch.delenv("ALL_PROXY", raising=False) + monkeypatch.delenv("NO_PROXY", raising=False) + monkeypatch.delenv("http_proxy", raising=False) + monkeypatch.delenv("https_proxy", raising=False) + monkeypatch.delenv("all_proxy", raising=False) + monkeypatch.delenv("no_proxy", raising=False) client = DefaultHttpxClient() @@ -1914,8 +1920,14 @@ async def test_main() -> None: async def test_proxy_environment_variables(self, monkeypatch: pytest.MonkeyPatch) -> None: # Test that the proxy environment variables are set correctly monkeypatch.setenv("HTTPS_PROXY", "https://example.org") - # Delete in case our environment has this set + # Delete in case our environment has any proxy env vars set monkeypatch.delenv("HTTP_PROXY", raising=False) + monkeypatch.delenv("ALL_PROXY", raising=False) + monkeypatch.delenv("NO_PROXY", raising=False) + monkeypatch.delenv("http_proxy", raising=False) + monkeypatch.delenv("https_proxy", raising=False) + monkeypatch.delenv("all_proxy", raising=False) + monkeypatch.delenv("no_proxy", raising=False) client = DefaultAsyncHttpxClient() From cc06dde608119ed5f29d03fdc380021d49270966 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 18:27:26 +0000 Subject: [PATCH 174/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From e476f511966964e21dd9bde03bd358127ca6c6b0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 19:27:17 +0000 Subject: [PATCH 175/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From b045396863eb30074098faa96d936b16c58d1ae8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 20:27:24 +0000 Subject: [PATCH 176/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 49d3ceefe0fb411b45e968fb14f3873ef219ff01 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Feb 2026 22:27:10 +0000 Subject: [PATCH 177/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 041cfbd66ffb7aa19ad1199700d559bd1f560937 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 00:27:27 +0000 Subject: [PATCH 178/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 789d624ca84ec88cbf7f10b55e3a77947393d9ec Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 02:27:12 +0000 Subject: [PATCH 179/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From f9e846f257c7ef1cc79ee467c3e6d006ed161bd4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 06:27:12 +0000 Subject: [PATCH 180/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 7ce467f96ac26c382c7620827ed4ebdbb12ce1ca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 10:27:17 +0000 Subject: [PATCH 181/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 4c1388e5601f38d47c32fe4401e59085a2a44273 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 11:27:23 +0000 Subject: [PATCH 182/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 8bba68bf73f50a2ee4777b57e48abc5a8c3a0f64 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 12:27:19 +0000 Subject: [PATCH 183/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From e5f995d24b0ec54e85cba54351878622ec07e110 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 13:27:19 +0000 Subject: [PATCH 184/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 763f842634c58b3710c73d6ab5b2f449428410f7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 14:27:17 +0000 Subject: [PATCH 185/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 4ffc69a433eaafb610fbf7314737926ddff3d586 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 18:27:17 +0000 Subject: [PATCH 186/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 960956d5b0134dbb0860952b37c71e67942a6c03 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 25 Feb 2026 23:27:13 +0000 Subject: [PATCH 187/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 9cac5acec39ebcdc65f9686801e420ad080bce7e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 01:27:26 +0000 Subject: [PATCH 188/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9398f8bb72c4ee6660c026a539919ba5b4bfcf0b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 05:27:20 +0000 Subject: [PATCH 189/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 19785d3858878e4218c6e8ffa1891ad913dd9ebe Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 06:27:53 +0000 Subject: [PATCH 190/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 09b2a1b3e9142ae036bdeda30af0f83ba600cf68 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 07:27:18 +0000 Subject: [PATCH 191/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 8ba5858ea3d1ebe19c5547094ca0361545fb7566 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 09:27:28 +0000 Subject: [PATCH 192/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 10ffba447e59064586037b6d2982db59ac60239e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 11:27:19 +0000 Subject: [PATCH 193/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 0f3303193057a7ef3a59054b38c477a7ce8db6d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 12:27:26 +0000 Subject: [PATCH 194/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From ab1bca62b398f406809e022168336e9915417fc0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 14:27:13 +0000 Subject: [PATCH 195/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From ec6abb06cd25e1039fb94d691bba1a9496c62cda Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:27:28 +0000 Subject: [PATCH 196/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 9e6534aadf95c06dfc3bb597fdbb0db4dc8cf204 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 16:27:12 +0000 Subject: [PATCH 197/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 26532c4d280445863e7cac5f41abb49408f3a889 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 19:35:21 +0000 Subject: [PATCH 198/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..3e0712121 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml +openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 config_hash: 32eb65911c08ac84d117cecdf2759869 From 8c2f3f30b2cd2cb4b2526b5464ec9723ef5f18d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 20:27:15 +0000 Subject: [PATCH 199/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3e0712121..0574052df 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5915a9830ddc25c4846c7af38ec19a1879c604d70762f86cd7d91fbaffdf61ae.yml -openapi_spec_hash: 197130cabd7611ef7b1cbc66749a8f21 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml +openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a config_hash: 32eb65911c08ac84d117cecdf2759869 From 45e76227d8b0d5d1c2f398e9945b71eb5953e791 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 12:53:23 +0000 Subject: [PATCH 200/215] chore(ci): skip uploading artifacts on stainless-internal branches --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7cf293aab..06bc28284 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,14 +61,18 @@ jobs: run: rye build - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/agentex-sdk-python' + if: |- + github.repository == 'stainless-sdks/agentex-sdk-python' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Upload tarball - if: github.repository == 'stainless-sdks/agentex-sdk-python' + if: |- + github.repository == 'stainless-sdks/agentex-sdk-python' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} From 235636b424dd4595f1510a87e6b79f3b2e103c97 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 17:33:03 +0000 Subject: [PATCH 201/215] fix(pydantic): do not pass `by_alias` unless set --- src/agentex/_compat.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/agentex/_compat.py b/src/agentex/_compat.py index 786ff42ad..e6690a4f2 100644 --- a/src/agentex/_compat.py +++ b/src/agentex/_compat.py @@ -2,7 +2,7 @@ from typing import TYPE_CHECKING, Any, Union, Generic, TypeVar, Callable, cast, overload from datetime import date, datetime -from typing_extensions import Self, Literal +from typing_extensions import Self, Literal, TypedDict import pydantic from pydantic.fields import FieldInfo @@ -131,6 +131,10 @@ def model_json(model: pydantic.BaseModel, *, indent: int | None = None) -> str: return model.model_dump_json(indent=indent) +class _ModelDumpKwargs(TypedDict, total=False): + by_alias: bool + + def model_dump( model: pydantic.BaseModel, *, @@ -142,6 +146,9 @@ def model_dump( by_alias: bool | None = None, ) -> dict[str, Any]: if (not PYDANTIC_V1) or hasattr(model, "model_dump"): + kwargs: _ModelDumpKwargs = {} + if by_alias is not None: + kwargs["by_alias"] = by_alias return model.model_dump( mode=mode, exclude=exclude, @@ -149,7 +156,7 @@ def model_dump( exclude_defaults=exclude_defaults, # warnings are not supported in Pydantic v1 warnings=True if PYDANTIC_V1 else warnings, - by_alias=by_alias, + **kwargs, ) return cast( "dict[str, Any]", From fd76bc994dca633c4966967c132323985eafa642 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 19:02:01 +0000 Subject: [PATCH 202/215] fix(deps): bump minimum typing-extensions version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0650ce0c7..2a3a68707 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ authors = [ dependencies = [ "httpx>=0.27.2,<0.28", "pydantic>=2.0.0, <3", - "typing-extensions>=4.10, <5", + "typing-extensions>=4.14, <5", "anyio>=3.5.0, <5", "distro>=1.7.0, <2", "sniffio", From 2e74af08e3e2dd4179550e9dd1cf22881195ac91 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 20:45:14 +0000 Subject: [PATCH 203/215] chore(internal): tweak CI branches --- .github/workflows/ci.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06bc28284..05748f4ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,12 +1,14 @@ name: CI on: push: - branches-ignore: - - 'generated' - - 'codegen/**' - - 'integrated/**' - - 'stl-preview-head/**' - - 'stl-preview-base/**' + branches: + - '**' + - '!integrated/**' + - '!stl-preview-head/**' + - '!stl-preview-base/**' + - '!generated' + - '!codegen/**' + - 'codegen/stl/**' pull_request: branches-ignore: - 'stl-preview-head/**' From e6472bea7d34a72d070079441b359bef25e87830 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 19 Mar 2026 15:37:30 +0000 Subject: [PATCH 204/215] fix: sanitize endpoint path params --- src/agentex/_utils/__init__.py | 1 + src/agentex/_utils/_path.py | 127 +++++++++++++++++++++ src/agentex/resources/agents.py | 26 ++--- src/agentex/resources/events.py | 6 +- src/agentex/resources/messages/messages.py | 10 +- src/agentex/resources/spans.py | 10 +- src/agentex/resources/states.py | 14 +-- src/agentex/resources/tasks.py | 26 ++--- src/agentex/resources/tracker.py | 10 +- tests/test_utils/test_path.py | 89 +++++++++++++++ 10 files changed, 268 insertions(+), 51 deletions(-) create mode 100644 src/agentex/_utils/_path.py create mode 100644 tests/test_utils/test_path.py diff --git a/src/agentex/_utils/__init__.py b/src/agentex/_utils/__init__.py index dc64e29a1..10cb66d2d 100644 --- a/src/agentex/_utils/__init__.py +++ b/src/agentex/_utils/__init__.py @@ -1,3 +1,4 @@ +from ._path import path_template as path_template from ._sync import asyncify as asyncify from ._proxy import LazyProxy as LazyProxy from ._utils import ( diff --git a/src/agentex/_utils/_path.py b/src/agentex/_utils/_path.py new file mode 100644 index 000000000..4d6e1e4cb --- /dev/null +++ b/src/agentex/_utils/_path.py @@ -0,0 +1,127 @@ +from __future__ import annotations + +import re +from typing import ( + Any, + Mapping, + Callable, +) +from urllib.parse import quote + +# Matches '.' or '..' where each dot is either literal or percent-encoded (%2e / %2E). +_DOT_SEGMENT_RE = re.compile(r"^(?:\.|%2[eE]){1,2}$") + +_PLACEHOLDER_RE = re.compile(r"\{(\w+)\}") + + +def _quote_path_segment_part(value: str) -> str: + """Percent-encode `value` for use in a URI path segment. + + Considers characters not in `pchar` set from RFC 3986 §3.3 to be unsafe. + https://datatracker.ietf.org/doc/html/rfc3986#section-3.3 + """ + # quote() already treats unreserved characters (letters, digits, and -._~) + # as safe, so we only need to add sub-delims, ':', and '@'. + # Notably, unlike the default `safe` for quote(), / is unsafe and must be quoted. + return quote(value, safe="!$&'()*+,;=:@") + + +def _quote_query_part(value: str) -> str: + """Percent-encode `value` for use in a URI query string. + + Considers &, = and characters not in `query` set from RFC 3986 §3.4 to be unsafe. + https://datatracker.ietf.org/doc/html/rfc3986#section-3.4 + """ + return quote(value, safe="!$'()*+,;:@/?") + + +def _quote_fragment_part(value: str) -> str: + """Percent-encode `value` for use in a URI fragment. + + Considers characters not in `fragment` set from RFC 3986 §3.5 to be unsafe. + https://datatracker.ietf.org/doc/html/rfc3986#section-3.5 + """ + return quote(value, safe="!$&'()*+,;=:@/?") + + +def _interpolate( + template: str, + values: Mapping[str, Any], + quoter: Callable[[str], str], +) -> str: + """Replace {name} placeholders in `template`, quoting each value with `quoter`. + + Placeholder names are looked up in `values`. + + Raises: + KeyError: If a placeholder is not found in `values`. + """ + # re.split with a capturing group returns alternating + # [text, name, text, name, ..., text] elements. + parts = _PLACEHOLDER_RE.split(template) + + for i in range(1, len(parts), 2): + name = parts[i] + if name not in values: + raise KeyError(f"a value for placeholder {{{name}}} was not provided") + val = values[name] + if val is None: + parts[i] = "null" + elif isinstance(val, bool): + parts[i] = "true" if val else "false" + else: + parts[i] = quoter(str(values[name])) + + return "".join(parts) + + +def path_template(template: str, /, **kwargs: Any) -> str: + """Interpolate {name} placeholders in `template` from keyword arguments. + + Args: + template: The template string containing {name} placeholders. + **kwargs: Keyword arguments to interpolate into the template. + + Returns: + The template with placeholders interpolated and percent-encoded. + + Safe characters for percent-encoding are dependent on the URI component. + Placeholders in path and fragment portions are percent-encoded where the `segment` + and `fragment` sets from RFC 3986 respectively are considered safe. + Placeholders in the query portion are percent-encoded where the `query` set from + RFC 3986 §3.3 is considered safe except for = and & characters. + + Raises: + KeyError: If a placeholder is not found in `kwargs`. + ValueError: If resulting path contains /./ or /../ segments (including percent-encoded dot-segments). + """ + # Split the template into path, query, and fragment portions. + fragment_template: str | None = None + query_template: str | None = None + + rest = template + if "#" in rest: + rest, fragment_template = rest.split("#", 1) + if "?" in rest: + rest, query_template = rest.split("?", 1) + path_template = rest + + # Interpolate each portion with the appropriate quoting rules. + path_result = _interpolate(path_template, kwargs, _quote_path_segment_part) + + # Reject dot-segments (. and ..) in the final assembled path. The check + # runs after interpolation so that adjacent placeholders or a mix of static + # text and placeholders that together form a dot-segment are caught. + # Also reject percent-encoded dot-segments to protect against incorrectly + # implemented normalization in servers/proxies. + for segment in path_result.split("/"): + if _DOT_SEGMENT_RE.match(segment): + raise ValueError(f"Constructed path {path_result!r} contains dot-segment {segment!r} which is not allowed") + + result = path_result + if query_template is not None: + result += "?" + _interpolate(query_template, kwargs, _quote_query_part) + if fragment_template is not None: + result += "#" + _interpolate(fragment_template, kwargs, _quote_fragment_part) + + return result diff --git a/src/agentex/resources/agents.py b/src/agentex/resources/agents.py index ae6821e76..e6da458b9 100644 --- a/src/agentex/resources/agents.py +++ b/src/agentex/resources/agents.py @@ -11,7 +11,7 @@ from ..types import agent_rpc_params, agent_list_params, agent_rpc_by_name_params from .._types import NOT_GIVEN, Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -82,7 +82,7 @@ def retrieve( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return self._get( - f"/agents/{agent_id}", + path_template("/agents/{agent_id}", agent_id=agent_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -173,7 +173,7 @@ def delete( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return self._delete( - f"/agents/{agent_id}", + path_template("/agents/{agent_id}", agent_id=agent_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -206,7 +206,7 @@ def delete_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return self._delete( - f"/agents/name/{agent_name}", + path_template("/agents/name/{agent_name}", agent_name=agent_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -239,7 +239,7 @@ def retrieve_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return self._get( - f"/agents/name/{agent_name}", + path_template("/agents/name/{agent_name}", agent_name=agent_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -278,7 +278,7 @@ def rpc( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return self._post( - f"/agents/{agent_id}/rpc", + path_template("/agents/{agent_id}/rpc", agent_id=agent_id), body=maybe_transform( { "method": method, @@ -326,7 +326,7 @@ def rpc_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return self._post( - f"/agents/name/{agent_name}/rpc", + path_template("/agents/name/{agent_name}/rpc", agent_name=agent_name), body=maybe_transform( { "method": method, @@ -650,7 +650,7 @@ async def retrieve( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return await self._get( - f"/agents/{agent_id}", + path_template("/agents/{agent_id}", agent_id=agent_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -741,7 +741,7 @@ async def delete( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return await self._delete( - f"/agents/{agent_id}", + path_template("/agents/{agent_id}", agent_id=agent_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -774,7 +774,7 @@ async def delete_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return await self._delete( - f"/agents/name/{agent_name}", + path_template("/agents/name/{agent_name}", agent_name=agent_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -807,7 +807,7 @@ async def retrieve_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return await self._get( - f"/agents/name/{agent_name}", + path_template("/agents/name/{agent_name}", agent_name=agent_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -846,7 +846,7 @@ async def rpc( if not agent_id: raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}") return await self._post( - f"/agents/{agent_id}/rpc", + path_template("/agents/{agent_id}/rpc", agent_id=agent_id), body=await async_maybe_transform( { "method": method, @@ -894,7 +894,7 @@ async def rpc_by_name( if not agent_name: raise ValueError(f"Expected a non-empty value for `agent_name` but received {agent_name!r}") return await self._post( - f"/agents/name/{agent_name}/rpc", + path_template("/agents/name/{agent_name}/rpc", agent_name=agent_name), body=await async_maybe_transform( { "method": method, diff --git a/src/agentex/resources/events.py b/src/agentex/resources/events.py index 64ac63268..b0111abb4 100644 --- a/src/agentex/resources/events.py +++ b/src/agentex/resources/events.py @@ -8,7 +8,7 @@ from ..types import event_list_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -70,7 +70,7 @@ def retrieve( if not event_id: raise ValueError(f"Expected a non-empty value for `event_id` but received {event_id!r}") return self._get( - f"/events/{event_id}", + path_template("/events/{event_id}", event_id=event_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -181,7 +181,7 @@ async def retrieve( if not event_id: raise ValueError(f"Expected a non-empty value for `event_id` but received {event_id!r}") return await self._get( - f"/events/{event_id}", + path_template("/events/{event_id}", event_id=event_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/agentex/resources/messages/messages.py b/src/agentex/resources/messages/messages.py index c047c9c23..667ef41ca 100644 --- a/src/agentex/resources/messages/messages.py +++ b/src/agentex/resources/messages/messages.py @@ -22,7 +22,7 @@ message_list_paginated_params, ) from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from ..._utils import maybe_transform, async_maybe_transform +from ..._utils import path_template, maybe_transform, async_maybe_transform from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource from ..._response import ( @@ -131,7 +131,7 @@ def retrieve( if not message_id: raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}") return self._get( - f"/messages/{message_id}", + path_template("/messages/{message_id}", message_id=message_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -167,7 +167,7 @@ def update( if not message_id: raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}") return self._put( - f"/messages/{message_id}", + path_template("/messages/{message_id}", message_id=message_id), body=maybe_transform( { "content": content, @@ -1395,7 +1395,7 @@ async def retrieve( if not message_id: raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}") return await self._get( - f"/messages/{message_id}", + path_template("/messages/{message_id}", message_id=message_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -1431,7 +1431,7 @@ async def update( if not message_id: raise ValueError(f"Expected a non-empty value for `message_id` but received {message_id!r}") return await self._put( - f"/messages/{message_id}", + path_template("/messages/{message_id}", message_id=message_id), body=await async_maybe_transform( { "content": content, diff --git a/src/agentex/resources/spans.py b/src/agentex/resources/spans.py index 589c2ac6b..f8d97e0de 100644 --- a/src/agentex/resources/spans.py +++ b/src/agentex/resources/spans.py @@ -9,7 +9,7 @@ from ..types import span_list_params, span_create_params, span_update_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -142,7 +142,7 @@ def retrieve( if not span_id: raise ValueError(f"Expected a non-empty value for `span_id` but received {span_id!r}") return self._get( - f"/spans/{span_id}", + path_template("/spans/{span_id}", span_id=span_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -199,7 +199,7 @@ def update( if not span_id: raise ValueError(f"Expected a non-empty value for `span_id` but received {span_id!r}") return self._patch( - f"/spans/{span_id}", + path_template("/spans/{span_id}", span_id=span_id), body=maybe_transform( { "data": data, @@ -385,7 +385,7 @@ async def retrieve( if not span_id: raise ValueError(f"Expected a non-empty value for `span_id` but received {span_id!r}") return await self._get( - f"/spans/{span_id}", + path_template("/spans/{span_id}", span_id=span_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -442,7 +442,7 @@ async def update( if not span_id: raise ValueError(f"Expected a non-empty value for `span_id` but received {span_id!r}") return await self._patch( - f"/spans/{span_id}", + path_template("/spans/{span_id}", span_id=span_id), body=await async_maybe_transform( { "data": data, diff --git a/src/agentex/resources/states.py b/src/agentex/resources/states.py index a8f3d0854..d8cfa1ad8 100644 --- a/src/agentex/resources/states.py +++ b/src/agentex/resources/states.py @@ -8,7 +8,7 @@ from ..types import state_list_params, state_create_params, state_update_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -111,7 +111,7 @@ def retrieve( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return self._get( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -147,7 +147,7 @@ def update( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return self._put( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), body=maybe_transform( { "agent_id": agent_id, @@ -250,7 +250,7 @@ def delete( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return self._delete( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -345,7 +345,7 @@ async def retrieve( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return await self._get( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -381,7 +381,7 @@ async def update( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return await self._put( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), body=await async_maybe_transform( { "agent_id": agent_id, @@ -484,7 +484,7 @@ async def delete( if not state_id: raise ValueError(f"Expected a non-empty value for `state_id` but received {state_id!r}") return await self._delete( - f"/states/{state_id}", + path_template("/states/{state_id}", state_id=state_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/agentex/resources/tasks.py b/src/agentex/resources/tasks.py index 1bf41b7b5..7986924a3 100644 --- a/src/agentex/resources/tasks.py +++ b/src/agentex/resources/tasks.py @@ -9,7 +9,7 @@ from ..types import task_list_params, task_retrieve_params, task_retrieve_by_name_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -75,7 +75,7 @@ def retrieve( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._get( - f"/tasks/{task_id}", + path_template("/tasks/{task_id}", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -164,7 +164,7 @@ def delete( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._delete( - f"/tasks/{task_id}", + path_template("/tasks/{task_id}", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -197,7 +197,7 @@ def delete_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return self._delete( - f"/tasks/name/{task_name}", + path_template("/tasks/name/{task_name}", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -231,7 +231,7 @@ def retrieve_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return self._get( - f"/tasks/name/{task_name}", + path_template("/tasks/name/{task_name}", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -270,7 +270,7 @@ def stream_events( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return self._get( - f"/tasks/{task_id}/stream", + path_template("/tasks/{task_id}/stream", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -305,7 +305,7 @@ def stream_events_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return self._get( - f"/tasks/name/{task_name}/stream", + path_template("/tasks/name/{task_name}/stream", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -362,7 +362,7 @@ async def retrieve( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._get( - f"/tasks/{task_id}", + path_template("/tasks/{task_id}", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -453,7 +453,7 @@ async def delete( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._delete( - f"/tasks/{task_id}", + path_template("/tasks/{task_id}", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -486,7 +486,7 @@ async def delete_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return await self._delete( - f"/tasks/name/{task_name}", + path_template("/tasks/name/{task_name}", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -520,7 +520,7 @@ async def retrieve_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return await self._get( - f"/tasks/name/{task_name}", + path_template("/tasks/name/{task_name}", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, @@ -559,7 +559,7 @@ async def stream_events( if not task_id: raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") return await self._get( - f"/tasks/{task_id}/stream", + path_template("/tasks/{task_id}/stream", task_id=task_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -594,7 +594,7 @@ async def stream_events_by_name( if not task_name: raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") return await self._get( - f"/tasks/name/{task_name}/stream", + path_template("/tasks/name/{task_name}/stream", task_name=task_name), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), diff --git a/src/agentex/resources/tracker.py b/src/agentex/resources/tracker.py index 15906b3f0..14de3fc49 100644 --- a/src/agentex/resources/tracker.py +++ b/src/agentex/resources/tracker.py @@ -8,7 +8,7 @@ from ..types import tracker_list_params, tracker_update_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -70,7 +70,7 @@ def retrieve( if not tracker_id: raise ValueError(f"Expected a non-empty value for `tracker_id` but received {tracker_id!r}") return self._get( - f"/tracker/{tracker_id}", + path_template("/tracker/{tracker_id}", tracker_id=tracker_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -112,7 +112,7 @@ def update( if not tracker_id: raise ValueError(f"Expected a non-empty value for `tracker_id` but received {tracker_id!r}") return self._put( - f"/tracker/{tracker_id}", + path_template("/tracker/{tracker_id}", tracker_id=tracker_id), body=maybe_transform( { "last_processed_event_id": last_processed_event_id, @@ -236,7 +236,7 @@ async def retrieve( if not tracker_id: raise ValueError(f"Expected a non-empty value for `tracker_id` but received {tracker_id!r}") return await self._get( - f"/tracker/{tracker_id}", + path_template("/tracker/{tracker_id}", tracker_id=tracker_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), @@ -278,7 +278,7 @@ async def update( if not tracker_id: raise ValueError(f"Expected a non-empty value for `tracker_id` but received {tracker_id!r}") return await self._put( - f"/tracker/{tracker_id}", + path_template("/tracker/{tracker_id}", tracker_id=tracker_id), body=await async_maybe_transform( { "last_processed_event_id": last_processed_event_id, diff --git a/tests/test_utils/test_path.py b/tests/test_utils/test_path.py new file mode 100644 index 000000000..fdc41f1f8 --- /dev/null +++ b/tests/test_utils/test_path.py @@ -0,0 +1,89 @@ +from __future__ import annotations + +from typing import Any + +import pytest + +from agentex._utils._path import path_template + + +@pytest.mark.parametrize( + "template, kwargs, expected", + [ + ("/v1/{id}", dict(id="abc"), "/v1/abc"), + ("/v1/{a}/{b}", dict(a="x", b="y"), "/v1/x/y"), + ("/v1/{a}{b}/path/{c}?val={d}#{e}", dict(a="x", b="y", c="z", d="u", e="v"), "/v1/xy/path/z?val=u#v"), + ("/{w}/{w}", dict(w="echo"), "/echo/echo"), + ("/v1/static", {}, "/v1/static"), + ("", {}, ""), + ("/v1/?q={n}&count=10", dict(n=42), "/v1/?q=42&count=10"), + ("/v1/{v}", dict(v=None), "/v1/null"), + ("/v1/{v}", dict(v=True), "/v1/true"), + ("/v1/{v}", dict(v=False), "/v1/false"), + ("/v1/{v}", dict(v=".hidden"), "/v1/.hidden"), # dot prefix ok + ("/v1/{v}", dict(v="file.txt"), "/v1/file.txt"), # dot in middle ok + ("/v1/{v}", dict(v="..."), "/v1/..."), # triple dot ok + ("/v1/{a}{b}", dict(a=".", b="txt"), "/v1/.txt"), # dot var combining with adjacent to be ok + ("/items?q={v}#{f}", dict(v=".", f=".."), "/items?q=.#.."), # dots in query/fragment are fine + ( + "/v1/{a}?query={b}", + dict(a="../../other/endpoint", b="a&bad=true"), + "/v1/..%2F..%2Fother%2Fendpoint?query=a%26bad%3Dtrue", + ), + ("/v1/{val}", dict(val="a/b/c"), "/v1/a%2Fb%2Fc"), + ("/v1/{val}", dict(val="a/b/c?query=value"), "/v1/a%2Fb%2Fc%3Fquery=value"), + ("/v1/{val}", dict(val="a/b/c?query=value&bad=true"), "/v1/a%2Fb%2Fc%3Fquery=value&bad=true"), + ("/v1/{val}", dict(val="%20"), "/v1/%2520"), # escapes escape sequences in input + # Query: slash and ? are safe, # is not + ("/items?q={v}", dict(v="a/b"), "/items?q=a/b"), + ("/items?q={v}", dict(v="a?b"), "/items?q=a?b"), + ("/items?q={v}", dict(v="a#b"), "/items?q=a%23b"), + ("/items?q={v}", dict(v="a b"), "/items?q=a%20b"), + # Fragment: slash and ? are safe + ("/docs#{v}", dict(v="a/b"), "/docs#a/b"), + ("/docs#{v}", dict(v="a?b"), "/docs#a?b"), + # Path: slash, ? and # are all encoded + ("/v1/{v}", dict(v="a/b"), "/v1/a%2Fb"), + ("/v1/{v}", dict(v="a?b"), "/v1/a%3Fb"), + ("/v1/{v}", dict(v="a#b"), "/v1/a%23b"), + # same var encoded differently by component + ( + "/v1/{v}?q={v}#{v}", + dict(v="a/b?c#d"), + "/v1/a%2Fb%3Fc%23d?q=a/b?c%23d#a/b?c%23d", + ), + ("/v1/{val}", dict(val="x?admin=true"), "/v1/x%3Fadmin=true"), # query injection + ("/v1/{val}", dict(val="x#admin"), "/v1/x%23admin"), # fragment injection + ], +) +def test_interpolation(template: str, kwargs: dict[str, Any], expected: str) -> None: + assert path_template(template, **kwargs) == expected + + +def test_missing_kwarg_raises_key_error() -> None: + with pytest.raises(KeyError, match="org_id"): + path_template("/v1/{org_id}") + + +@pytest.mark.parametrize( + "template, kwargs", + [ + ("{a}/path", dict(a=".")), + ("{a}/path", dict(a="..")), + ("/v1/{a}", dict(a=".")), + ("/v1/{a}", dict(a="..")), + ("/v1/{a}/path", dict(a=".")), + ("/v1/{a}/path", dict(a="..")), + ("/v1/{a}{b}", dict(a=".", b=".")), # adjacent vars → ".." + ("/v1/{a}.", dict(a=".")), # var + static → ".." + ("/v1/{a}{b}", dict(a="", b=".")), # empty + dot → "." + ("/v1/%2e/{x}", dict(x="ok")), # encoded dot in static text + ("/v1/%2e./{x}", dict(x="ok")), # mixed encoded ".." in static + ("/v1/.%2E/{x}", dict(x="ok")), # mixed encoded ".." in static + ("/v1/{v}?q=1", dict(v="..")), + ("/v1/{v}#frag", dict(v="..")), + ], +) +def test_dot_segment_rejected(template: str, kwargs: dict[str, Any]) -> None: + with pytest.raises(ValueError, match="dot-segment"): + path_template(template, **kwargs) From aba7c4f8264fdad515a4926884f855c2d87aa910 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2026 12:38:24 +0000 Subject: [PATCH 205/215] chore(internal): update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6398505af..8d1280062 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .prism.log +.stdy.log _dev __pycache__ From f4d5053766e5864338229218f2402d60f431d1fa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 15:14:24 +0000 Subject: [PATCH 206/215] chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 05748f4ee..d6cc9ffb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 10 name: lint runs-on: ${{ github.repository == 'stainless-sdks/agentex-sdk-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@v6 @@ -38,7 +38,7 @@ jobs: run: ./scripts/lint build: - if: github.event_name == 'push' || github.event.pull_request.head.repo.fork + if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') timeout-minutes: 10 name: build permissions: From 1ef69ed5415d3112055a8040eccfb6eca452e532 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2026 17:16:14 +0000 Subject: [PATCH 207/215] chore(internal): version bump --- .release-please-manifest.json | 2 +- src/agentex/_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 1b1f6a809..871c1ad9e 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.9.4" + ".": "0.9.5" } diff --git a/src/agentex/_version.py b/src/agentex/_version.py index e5258b2ac..3c4a3a3a0 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.9.4" # x-release-please-version +__version__ = "0.9.5" # x-release-please-version From 3bf3db1f692b44ceb5f4ea39cb8c4fd0f81c01ee Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 19:26:05 +0000 Subject: [PATCH 208/215] feat(internal): implement indices array format for query and form serialization --- src/agentex/_qs.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/agentex/_qs.py b/src/agentex/_qs.py index ada6fd3f7..de8c99bc6 100644 --- a/src/agentex/_qs.py +++ b/src/agentex/_qs.py @@ -101,7 +101,10 @@ def _stringify_item( items.extend(self._stringify_item(key, item, opts)) return items elif array_format == "indices": - raise NotImplementedError("The array indices format is not supported yet") + items = [] + for i, item in enumerate(value): + items.extend(self._stringify_item(f"{key}[{i}]", item, opts)) + return items elif array_format == "brackets": items = [] key = key + "[]" From 543c83be9972e0df66824bbe63b4b5033b84f4fa Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 15:59:29 +0000 Subject: [PATCH 209/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 0574052df..64c0896e7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 35 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-eb0d3153f7c381a7e5e5fb4dae1dc629c739df0315aaf8c2e848106bdf5d5dec.yml -openapi_spec_hash: 95ab0275ef41904bf89f080edf7e2d9a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml +openapi_spec_hash: 8ec711692f3ed7cd34a7a3b9d3e33f7c config_hash: 32eb65911c08ac84d117cecdf2759869 From d699e245d6c8f28034370ea6a654e11a3b78dc20 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:12:29 +0000 Subject: [PATCH 210/215] feat(api): add task state update methods --- .stats.yml | 4 +- api.md | 24 +- src/agentex/resources/deployment_history.py | 24 +- src/agentex/resources/tasks.py | 679 +++++++++++- src/agentex/types/__init__.py | 14 +- src/agentex/types/agent_rpc_by_name_params.py | 62 +- src/agentex/types/agent_rpc_params.py | 62 +- .../types/cancel_task_request_param.py | 16 + .../types/create_task_request_param.py | 16 + .../types/deployment_history_list_params.py | 4 + .../types/deployment_history_list_response.py | 36 +- .../deployment_history_retrieve_response.py | 35 + src/agentex/types/send_event_request_param.py | 21 + .../types/send_message_request_param.py | 27 + src/agentex/types/task_cancel_params.py | 12 + src/agentex/types/task_complete_params.py | 12 + src/agentex/types/task_fail_params.py | 12 + .../types/task_query_workflow_response.py | 8 + src/agentex/types/task_terminate_params.py | 12 + src/agentex/types/task_timeout_params.py | 12 + src/agentex/types/task_update_by_id_params.py | 12 + .../types/task_update_by_name_params.py | 12 + .../api_resources/test_deployment_history.py | 56 +- tests/api_resources/test_tasks.py | 974 ++++++++++++++++-- 24 files changed, 1915 insertions(+), 231 deletions(-) create mode 100644 src/agentex/types/cancel_task_request_param.py create mode 100644 src/agentex/types/create_task_request_param.py create mode 100644 src/agentex/types/deployment_history_retrieve_response.py create mode 100644 src/agentex/types/send_event_request_param.py create mode 100644 src/agentex/types/send_message_request_param.py create mode 100644 src/agentex/types/task_cancel_params.py create mode 100644 src/agentex/types/task_complete_params.py create mode 100644 src/agentex/types/task_fail_params.py create mode 100644 src/agentex/types/task_query_workflow_response.py create mode 100644 src/agentex/types/task_terminate_params.py create mode 100644 src/agentex/types/task_timeout_params.py create mode 100644 src/agentex/types/task_update_by_id_params.py create mode 100644 src/agentex/types/task_update_by_name_params.py diff --git a/.stats.yml b/.stats.yml index 64c0896e7..7c0aaa9ed 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 35 +configured_endpoints: 45 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml openapi_spec_hash: 8ec711692f3ed7cd34a7a3b9d3e33f7c -config_hash: 32eb65911c08ac84d117cecdf2759869 +config_hash: d65d8b7a05f302e164ef9ba7fe72b277 diff --git a/api.md b/api.md index f70f9b194..99034e8a4 100644 --- a/api.md +++ b/api.md @@ -15,9 +15,13 @@ from agentex.types import ( AgentRpcRequest, AgentRpcResponse, AgentRpcResult, + CancelTaskRequest, + CreateTaskRequest, DataDelta, ReasoningContentDelta, ReasoningSummaryDelta, + SendEventRequest, + SendMessageRequest, TaskMessageContent, TaskMessageDelta, TaskMessageUpdate, @@ -43,7 +47,13 @@ Methods: Types: ```python -from agentex.types import Task, TaskRetrieveResponse, TaskListResponse, TaskRetrieveByNameResponse +from agentex.types import ( + Task, + TaskRetrieveResponse, + TaskListResponse, + TaskQueryWorkflowResponse, + TaskRetrieveByNameResponse, +) ``` Methods: @@ -51,10 +61,18 @@ Methods: - client.tasks.retrieve(task_id, \*\*params) -> TaskRetrieveResponse - client.tasks.list(\*\*params) -> TaskListResponse - client.tasks.delete(task_id) -> DeleteResponse +- client.tasks.cancel(task_id, \*\*params) -> Task +- client.tasks.complete(task_id, \*\*params) -> Task - client.tasks.delete_by_name(task_name) -> DeleteResponse +- client.tasks.fail(task_id, \*\*params) -> Task +- client.tasks.query_workflow(query_name, \*, task_id) -> TaskQueryWorkflowResponse - client.tasks.retrieve_by_name(task_name, \*\*params) -> TaskRetrieveByNameResponse - client.tasks.stream_events(task_id) -> object - client.tasks.stream_events_by_name(task_name) -> object +- client.tasks.terminate(task_id, \*\*params) -> Task +- client.tasks.timeout(task_id, \*\*params) -> Task +- client.tasks.update_by_id(task_id, \*\*params) -> Task +- client.tasks.update_by_name(task_name, \*\*params) -> Task # Messages @@ -160,10 +178,10 @@ Methods: Types: ```python -from agentex.types import DeploymentHistory, DeploymentHistoryListResponse +from agentex.types import DeploymentHistoryRetrieveResponse, DeploymentHistoryListResponse ``` Methods: -- client.deployment_history.retrieve(deployment_id) -> DeploymentHistory +- client.deployment_history.retrieve(deployment_id) -> DeploymentHistoryRetrieveResponse - client.deployment_history.list(\*\*params) -> DeploymentHistoryListResponse diff --git a/src/agentex/resources/deployment_history.py b/src/agentex/resources/deployment_history.py index 4f3638cfa..f8a643b85 100644 --- a/src/agentex/resources/deployment_history.py +++ b/src/agentex/resources/deployment_history.py @@ -8,7 +8,7 @@ from ..types import deployment_history_list_params from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given -from .._utils import maybe_transform, async_maybe_transform +from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource from .._response import ( @@ -18,8 +18,8 @@ async_to_streamed_response_wrapper, ) from .._base_client import make_request_options -from ..types.deployment_history import DeploymentHistory from ..types.deployment_history_list_response import DeploymentHistoryListResponse +from ..types.deployment_history_retrieve_response import DeploymentHistoryRetrieveResponse __all__ = ["DeploymentHistoryResource", "AsyncDeploymentHistoryResource"] @@ -54,7 +54,7 @@ def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> DeploymentHistory: + ) -> DeploymentHistoryRetrieveResponse: """ Get a deployment record by its unique ID. @@ -70,11 +70,11 @@ def retrieve( if not deployment_id: raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}") return self._get( - f"/deployment-history/{deployment_id}", + path_template("/deployment-history/{deployment_id}", deployment_id=deployment_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=DeploymentHistory, + cast_to=DeploymentHistoryRetrieveResponse, ) def list( @@ -83,6 +83,8 @@ def list( agent_id: Optional[str] | Omit = omit, agent_name: Optional[str] | Omit = omit, limit: int | Omit = omit, + order_by: Optional[str] | Omit = omit, + order_direction: str | Omit = omit, page_number: int | Omit = omit, # 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. @@ -115,6 +117,8 @@ def list( "agent_id": agent_id, "agent_name": agent_name, "limit": limit, + "order_by": order_by, + "order_direction": order_direction, "page_number": page_number, }, deployment_history_list_params.DeploymentHistoryListParams, @@ -154,7 +158,7 @@ async def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> DeploymentHistory: + ) -> DeploymentHistoryRetrieveResponse: """ Get a deployment record by its unique ID. @@ -170,11 +174,11 @@ async def retrieve( if not deployment_id: raise ValueError(f"Expected a non-empty value for `deployment_id` but received {deployment_id!r}") return await self._get( - f"/deployment-history/{deployment_id}", + path_template("/deployment-history/{deployment_id}", deployment_id=deployment_id), options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=DeploymentHistory, + cast_to=DeploymentHistoryRetrieveResponse, ) async def list( @@ -183,6 +187,8 @@ async def list( agent_id: Optional[str] | Omit = omit, agent_name: Optional[str] | Omit = omit, limit: int | Omit = omit, + order_by: Optional[str] | Omit = omit, + order_direction: str | Omit = omit, page_number: int | Omit = omit, # 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. @@ -215,6 +221,8 @@ async def list( "agent_id": agent_id, "agent_name": agent_name, "limit": limit, + "order_by": order_by, + "order_direction": order_direction, "page_number": page_number, }, deployment_history_list_params.DeploymentHistoryListParams, diff --git a/src/agentex/resources/tasks.py b/src/agentex/resources/tasks.py index 7986924a3..d1e33f3a5 100644 --- a/src/agentex/resources/tasks.py +++ b/src/agentex/resources/tasks.py @@ -2,12 +2,23 @@ from __future__ import annotations -from typing import List, Optional +from typing import Dict, List, Optional from typing_extensions import Literal import httpx -from ..types import task_list_params, task_retrieve_params, task_retrieve_by_name_params +from ..types import ( + task_fail_params, + task_list_params, + task_cancel_params, + task_timeout_params, + task_complete_params, + task_retrieve_params, + task_terminate_params, + task_update_by_id_params, + task_update_by_name_params, + task_retrieve_by_name_params, +) from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given from .._utils import path_template, maybe_transform, async_maybe_transform from .._compat import cached_property @@ -19,10 +30,12 @@ async_to_streamed_response_wrapper, ) from .._streaming import Stream, AsyncStream +from ..types.task import Task from .._base_client import make_request_options from ..types.task_list_response import TaskListResponse from ..types.shared.delete_response import DeleteResponse from ..types.task_retrieve_response import TaskRetrieveResponse +from ..types.task_query_workflow_response import TaskQueryWorkflowResponse from ..types.task_retrieve_by_name_response import TaskRetrieveByNameResponse __all__ = ["TasksResource", "AsyncTasksResource"] @@ -171,6 +184,76 @@ def delete( cast_to=DeleteResponse, ) + def cancel( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as canceled. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._post( + path_template("/tasks/{task_id}/cancel", task_id=task_id), + body=maybe_transform({"reason": reason}, task_cancel_params.TaskCancelParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def complete( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as completed. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._post( + path_template("/tasks/{task_id}/complete", task_id=task_id), + body=maybe_transform({"reason": reason}, task_complete_params.TaskCompleteParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + def delete_by_name( self, task_name: str, @@ -204,6 +287,77 @@ def delete_by_name( cast_to=DeleteResponse, ) + def fail( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as failed. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._post( + path_template("/tasks/{task_id}/fail", task_id=task_id), + body=maybe_transform({"reason": reason}, task_fail_params.TaskFailParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def query_workflow( + self, + query_name: str, + *, + task_id: 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, + ) -> TaskQueryWorkflowResponse: + """ + Query a Temporal workflow associated with a task for its current state. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + if not query_name: + raise ValueError(f"Expected a non-empty value for `query_name` but received {query_name!r}") + return self._get( + path_template("/tasks/{task_id}/query/{query_name}", task_id=task_id, query_name=query_name), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskQueryWorkflowResponse, + ) + def retrieve_by_name( self, task_name: str, @@ -314,6 +468,146 @@ def stream_events_by_name( stream_cls=Stream[object], ) + def terminate( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as terminated. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._post( + path_template("/tasks/{task_id}/terminate", task_id=task_id), + body=maybe_transform({"reason": reason}, task_terminate_params.TaskTerminateParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def timeout( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as timed out. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._post( + path_template("/tasks/{task_id}/timeout", task_id=task_id), + body=maybe_transform({"reason": reason}, task_timeout_params.TaskTimeoutParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def update_by_id( + self, + task_id: str, + *, + task_metadata: Optional[Dict[str, object]] | Omit = omit, + # 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, + ) -> Task: + """ + Update mutable fields for a task by its unique ID. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return self._put( + path_template("/tasks/{task_id}", task_id=task_id), + body=maybe_transform({"task_metadata": task_metadata}, task_update_by_id_params.TaskUpdateByIDParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + def update_by_name( + self, + task_name: str, + *, + task_metadata: Optional[Dict[str, object]] | Omit = omit, + # 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, + ) -> Task: + """ + Update mutable fields for a task by its unique Name. + + 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 task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return self._put( + path_template("/tasks/name/{task_name}", task_name=task_name), + body=maybe_transform({"task_metadata": task_metadata}, task_update_by_name_params.TaskUpdateByNameParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + class AsyncTasksResource(AsyncAPIResource): @cached_property @@ -460,6 +754,76 @@ async def delete( cast_to=DeleteResponse, ) + async def cancel( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as canceled. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._post( + path_template("/tasks/{task_id}/cancel", task_id=task_id), + body=await async_maybe_transform({"reason": reason}, task_cancel_params.TaskCancelParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def complete( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as completed. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._post( + path_template("/tasks/{task_id}/complete", task_id=task_id), + body=await async_maybe_transform({"reason": reason}, task_complete_params.TaskCompleteParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + async def delete_by_name( self, task_name: str, @@ -493,6 +857,77 @@ async def delete_by_name( cast_to=DeleteResponse, ) + async def fail( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as failed. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._post( + path_template("/tasks/{task_id}/fail", task_id=task_id), + body=await async_maybe_transform({"reason": reason}, task_fail_params.TaskFailParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def query_workflow( + self, + query_name: str, + *, + task_id: 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, + ) -> TaskQueryWorkflowResponse: + """ + Query a Temporal workflow associated with a task for its current state. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + if not query_name: + raise ValueError(f"Expected a non-empty value for `query_name` but received {query_name!r}") + return await self._get( + path_template("/tasks/{task_id}/query/{query_name}", task_id=task_id, query_name=query_name), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=TaskQueryWorkflowResponse, + ) + async def retrieve_by_name( self, task_name: str, @@ -603,6 +1038,150 @@ async def stream_events_by_name( stream_cls=AsyncStream[object], ) + async def terminate( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as terminated. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._post( + path_template("/tasks/{task_id}/terminate", task_id=task_id), + body=await async_maybe_transform({"reason": reason}, task_terminate_params.TaskTerminateParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def timeout( + self, + task_id: str, + *, + reason: Optional[str] | Omit = omit, + # 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, + ) -> Task: + """ + Mark a running task as timed out. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._post( + path_template("/tasks/{task_id}/timeout", task_id=task_id), + body=await async_maybe_transform({"reason": reason}, task_timeout_params.TaskTimeoutParams), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def update_by_id( + self, + task_id: str, + *, + task_metadata: Optional[Dict[str, object]] | Omit = omit, + # 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, + ) -> Task: + """ + Update mutable fields for a task by its unique ID. + + 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 task_id: + raise ValueError(f"Expected a non-empty value for `task_id` but received {task_id!r}") + return await self._put( + path_template("/tasks/{task_id}", task_id=task_id), + body=await async_maybe_transform( + {"task_metadata": task_metadata}, task_update_by_id_params.TaskUpdateByIDParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + + async def update_by_name( + self, + task_name: str, + *, + task_metadata: Optional[Dict[str, object]] | Omit = omit, + # 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, + ) -> Task: + """ + Update mutable fields for a task by its unique Name. + + 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 task_name: + raise ValueError(f"Expected a non-empty value for `task_name` but received {task_name!r}") + return await self._put( + path_template("/tasks/name/{task_name}", task_name=task_name), + body=await async_maybe_transform( + {"task_metadata": task_metadata}, task_update_by_name_params.TaskUpdateByNameParams + ), + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=Task, + ) + class TasksResourceWithRawResponse: def __init__(self, tasks: TasksResource) -> None: @@ -617,9 +1196,21 @@ def __init__(self, tasks: TasksResource) -> None: self.delete = to_raw_response_wrapper( tasks.delete, ) + self.cancel = to_raw_response_wrapper( + tasks.cancel, + ) + self.complete = to_raw_response_wrapper( + tasks.complete, + ) self.delete_by_name = to_raw_response_wrapper( tasks.delete_by_name, ) + self.fail = to_raw_response_wrapper( + tasks.fail, + ) + self.query_workflow = to_raw_response_wrapper( + tasks.query_workflow, + ) self.retrieve_by_name = to_raw_response_wrapper( tasks.retrieve_by_name, ) @@ -629,6 +1220,18 @@ def __init__(self, tasks: TasksResource) -> None: self.stream_events_by_name = to_raw_response_wrapper( tasks.stream_events_by_name, ) + self.terminate = to_raw_response_wrapper( + tasks.terminate, + ) + self.timeout = to_raw_response_wrapper( + tasks.timeout, + ) + self.update_by_id = to_raw_response_wrapper( + tasks.update_by_id, + ) + self.update_by_name = to_raw_response_wrapper( + tasks.update_by_name, + ) class AsyncTasksResourceWithRawResponse: @@ -644,9 +1247,21 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.delete = async_to_raw_response_wrapper( tasks.delete, ) + self.cancel = async_to_raw_response_wrapper( + tasks.cancel, + ) + self.complete = async_to_raw_response_wrapper( + tasks.complete, + ) self.delete_by_name = async_to_raw_response_wrapper( tasks.delete_by_name, ) + self.fail = async_to_raw_response_wrapper( + tasks.fail, + ) + self.query_workflow = async_to_raw_response_wrapper( + tasks.query_workflow, + ) self.retrieve_by_name = async_to_raw_response_wrapper( tasks.retrieve_by_name, ) @@ -656,6 +1271,18 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.stream_events_by_name = async_to_raw_response_wrapper( tasks.stream_events_by_name, ) + self.terminate = async_to_raw_response_wrapper( + tasks.terminate, + ) + self.timeout = async_to_raw_response_wrapper( + tasks.timeout, + ) + self.update_by_id = async_to_raw_response_wrapper( + tasks.update_by_id, + ) + self.update_by_name = async_to_raw_response_wrapper( + tasks.update_by_name, + ) class TasksResourceWithStreamingResponse: @@ -671,9 +1298,21 @@ def __init__(self, tasks: TasksResource) -> None: self.delete = to_streamed_response_wrapper( tasks.delete, ) + self.cancel = to_streamed_response_wrapper( + tasks.cancel, + ) + self.complete = to_streamed_response_wrapper( + tasks.complete, + ) self.delete_by_name = to_streamed_response_wrapper( tasks.delete_by_name, ) + self.fail = to_streamed_response_wrapper( + tasks.fail, + ) + self.query_workflow = to_streamed_response_wrapper( + tasks.query_workflow, + ) self.retrieve_by_name = to_streamed_response_wrapper( tasks.retrieve_by_name, ) @@ -683,6 +1322,18 @@ def __init__(self, tasks: TasksResource) -> None: self.stream_events_by_name = to_streamed_response_wrapper( tasks.stream_events_by_name, ) + self.terminate = to_streamed_response_wrapper( + tasks.terminate, + ) + self.timeout = to_streamed_response_wrapper( + tasks.timeout, + ) + self.update_by_id = to_streamed_response_wrapper( + tasks.update_by_id, + ) + self.update_by_name = to_streamed_response_wrapper( + tasks.update_by_name, + ) class AsyncTasksResourceWithStreamingResponse: @@ -698,9 +1349,21 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.delete = async_to_streamed_response_wrapper( tasks.delete, ) + self.cancel = async_to_streamed_response_wrapper( + tasks.cancel, + ) + self.complete = async_to_streamed_response_wrapper( + tasks.complete, + ) self.delete_by_name = async_to_streamed_response_wrapper( tasks.delete_by_name, ) + self.fail = async_to_streamed_response_wrapper( + tasks.fail, + ) + self.query_workflow = async_to_streamed_response_wrapper( + tasks.query_workflow, + ) self.retrieve_by_name = async_to_streamed_response_wrapper( tasks.retrieve_by_name, ) @@ -710,3 +1373,15 @@ def __init__(self, tasks: AsyncTasksResource) -> None: self.stream_events_by_name = async_to_streamed_response_wrapper( tasks.stream_events_by_name, ) + self.terminate = async_to_streamed_response_wrapper( + tasks.terminate, + ) + self.timeout = async_to_streamed_response_wrapper( + tasks.timeout, + ) + self.update_by_id = async_to_streamed_response_wrapper( + tasks.update_by_id, + ) + self.update_by_name = async_to_streamed_response_wrapper( + tasks.update_by_name, + ) diff --git a/src/agentex/types/__init__.py b/src/agentex/types/__init__.py index 140acd92f..7604bc366 100644 --- a/src/agentex/types/__init__.py +++ b/src/agentex/types/__init__.py @@ -20,6 +20,7 @@ from .agent_rpc_params import AgentRpcParams as AgentRpcParams from .agent_rpc_result import AgentRpcResult as AgentRpcResult from .span_list_params import SpanListParams as SpanListParams +from .task_fail_params import TaskFailParams as TaskFailParams from .task_list_params import TaskListParams as TaskListParams from .agent_list_params import AgentListParams as AgentListParams from .event_list_params import EventListParams as EventListParams @@ -28,10 +29,10 @@ from .agent_rpc_response import AgentRpcResponse as AgentRpcResponse from .agent_task_tracker import AgentTaskTracker as AgentTaskTracker from .data_content_param import DataContentParam as DataContentParam -from .deployment_history import DeploymentHistory as DeploymentHistory from .span_create_params import SpanCreateParams as SpanCreateParams from .span_list_response import SpanListResponse as SpanListResponse from .span_update_params import SpanUpdateParams as SpanUpdateParams +from .task_cancel_params import TaskCancelParams as TaskCancelParams from .task_list_response import TaskListResponse as TaskListResponse from .task_message_delta import TaskMessageDelta as TaskMessageDelta from .text_content_param import TextContentParam as TextContentParam @@ -43,14 +44,17 @@ from .state_list_response import StateListResponse as StateListResponse from .state_update_params import StateUpdateParams as StateUpdateParams from .task_message_update import TaskMessageUpdate as TaskMessageUpdate +from .task_timeout_params import TaskTimeoutParams as TaskTimeoutParams from .tool_response_delta import ToolResponseDelta as ToolResponseDelta from .tracker_list_params import TrackerListParams as TrackerListParams +from .task_complete_params import TaskCompleteParams as TaskCompleteParams from .task_message_content import TaskMessageContent as TaskMessageContent from .task_retrieve_params import TaskRetrieveParams as TaskRetrieveParams from .tool_request_content import ToolRequestContent as ToolRequestContent from .message_create_params import MessageCreateParams as MessageCreateParams from .message_list_response import MessageListResponse as MessageListResponse from .message_update_params import MessageUpdateParams as MessageUpdateParams +from .task_terminate_params import TaskTerminateParams as TaskTerminateParams from .tool_response_content import ToolResponseContent as ToolResponseContent from .tracker_list_response import TrackerListResponse as TrackerListResponse from .tracker_update_params import TrackerUpdateParams as TrackerUpdateParams @@ -59,12 +63,20 @@ from .reasoning_content_param import ReasoningContentParam as ReasoningContentParam from .reasoning_summary_delta import ReasoningSummaryDelta as ReasoningSummaryDelta from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNameParams +from .send_event_request_param import SendEventRequestParam as SendEventRequestParam +from .task_update_by_id_params import TaskUpdateByIDParams as TaskUpdateByIDParams +from .cancel_task_request_param import CancelTaskRequestParam as CancelTaskRequestParam +from .create_task_request_param import CreateTaskRequestParam as CreateTaskRequestParam +from .send_message_request_param import SendMessageRequestParam as SendMessageRequestParam from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam +from .task_update_by_name_params import TaskUpdateByNameParams as TaskUpdateByNameParams from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam from .tool_response_content_param import ToolResponseContentParam as ToolResponseContentParam +from .task_query_workflow_response import TaskQueryWorkflowResponse as TaskQueryWorkflowResponse from .task_retrieve_by_name_params import TaskRetrieveByNameParams as TaskRetrieveByNameParams from .message_list_paginated_params import MessageListPaginatedParams as MessageListPaginatedParams from .deployment_history_list_params import DeploymentHistoryListParams as DeploymentHistoryListParams from .task_retrieve_by_name_response import TaskRetrieveByNameResponse as TaskRetrieveByNameResponse from .message_list_paginated_response import MessageListPaginatedResponse as MessageListPaginatedResponse from .deployment_history_list_response import DeploymentHistoryListResponse as DeploymentHistoryListResponse +from .deployment_history_retrieve_response import DeploymentHistoryRetrieveResponse as DeploymentHistoryRetrieveResponse diff --git a/src/agentex/types/agent_rpc_by_name_params.py b/src/agentex/types/agent_rpc_by_name_params.py index ec0f638ea..352bfa597 100644 --- a/src/agentex/types/agent_rpc_by_name_params.py +++ b/src/agentex/types/agent_rpc_by_name_params.py @@ -2,19 +2,15 @@ from __future__ import annotations -from typing import Dict, Union, Optional +from typing import Union from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .task_message_content_param import TaskMessageContentParam +from .send_event_request_param import SendEventRequestParam +from .cancel_task_request_param import CancelTaskRequestParam +from .create_task_request_param import CreateTaskRequestParam +from .send_message_request_param import SendMessageRequestParam -__all__ = [ - "AgentRpcByNameParams", - "Params", - "ParamsCreateTaskRequest", - "ParamsCancelTaskRequest", - "ParamsSendMessageRequest", - "ParamsSendEventRequest", -] +__all__ = ["AgentRpcByNameParams", "Params"] class AgentRpcByNameParams(TypedDict, total=False): @@ -28,50 +24,6 @@ class AgentRpcByNameParams(TypedDict, total=False): jsonrpc: Literal["2.0"] -class ParamsCreateTaskRequest(TypedDict, total=False): - name: Optional[str] - """The name of the task to create""" - - params: Optional[Dict[str, object]] - """The parameters for the task""" - - -class ParamsCancelTaskRequest(TypedDict, total=False): - task_id: Optional[str] - """The ID of the task to cancel. Either this or task_name must be provided.""" - - task_name: Optional[str] - """The name of the task to cancel. Either this or task_id must be provided.""" - - -class ParamsSendMessageRequest(TypedDict, total=False): - content: Required[TaskMessageContentParam] - """The message that was sent to the agent""" - - stream: bool - """Whether to stream the response message back to the client""" - - task_id: Optional[str] - """The ID of the task that the message was sent to""" - - task_name: Optional[str] - """The name of the task that the message was sent to""" - - task_params: Optional[Dict[str, object]] - """The parameters for the task (only used when creating new tasks)""" - - -class ParamsSendEventRequest(TypedDict, total=False): - content: Optional[TaskMessageContentParam] - """The content to send to the event""" - - task_id: Optional[str] - """The ID of the task that the event was sent to""" - - task_name: Optional[str] - """The name of the task that the event was sent to""" - - Params: TypeAlias = Union[ - ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest + CreateTaskRequestParam, CancelTaskRequestParam, SendMessageRequestParam, SendEventRequestParam ] diff --git a/src/agentex/types/agent_rpc_params.py b/src/agentex/types/agent_rpc_params.py index fa101e796..52944ec0b 100644 --- a/src/agentex/types/agent_rpc_params.py +++ b/src/agentex/types/agent_rpc_params.py @@ -2,19 +2,15 @@ from __future__ import annotations -from typing import Dict, Union, Optional +from typing import Union from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .task_message_content_param import TaskMessageContentParam +from .send_event_request_param import SendEventRequestParam +from .cancel_task_request_param import CancelTaskRequestParam +from .create_task_request_param import CreateTaskRequestParam +from .send_message_request_param import SendMessageRequestParam -__all__ = [ - "AgentRpcParams", - "Params", - "ParamsCreateTaskRequest", - "ParamsCancelTaskRequest", - "ParamsSendMessageRequest", - "ParamsSendEventRequest", -] +__all__ = ["AgentRpcParams", "Params"] class AgentRpcParams(TypedDict, total=False): @@ -28,50 +24,6 @@ class AgentRpcParams(TypedDict, total=False): jsonrpc: Literal["2.0"] -class ParamsCreateTaskRequest(TypedDict, total=False): - name: Optional[str] - """The name of the task to create""" - - params: Optional[Dict[str, object]] - """The parameters for the task""" - - -class ParamsCancelTaskRequest(TypedDict, total=False): - task_id: Optional[str] - """The ID of the task to cancel. Either this or task_name must be provided.""" - - task_name: Optional[str] - """The name of the task to cancel. Either this or task_id must be provided.""" - - -class ParamsSendMessageRequest(TypedDict, total=False): - content: Required[TaskMessageContentParam] - """The message that was sent to the agent""" - - stream: bool - """Whether to stream the response message back to the client""" - - task_id: Optional[str] - """The ID of the task that the message was sent to""" - - task_name: Optional[str] - """The name of the task that the message was sent to""" - - task_params: Optional[Dict[str, object]] - """The parameters for the task (only used when creating new tasks)""" - - -class ParamsSendEventRequest(TypedDict, total=False): - content: Optional[TaskMessageContentParam] - """The content to send to the event""" - - task_id: Optional[str] - """The ID of the task that the event was sent to""" - - task_name: Optional[str] - """The name of the task that the event was sent to""" - - Params: TypeAlias = Union[ - ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest + CreateTaskRequestParam, CancelTaskRequestParam, SendMessageRequestParam, SendEventRequestParam ] diff --git a/src/agentex/types/cancel_task_request_param.py b/src/agentex/types/cancel_task_request_param.py new file mode 100644 index 000000000..727800599 --- /dev/null +++ b/src/agentex/types/cancel_task_request_param.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["CancelTaskRequestParam"] + + +class CancelTaskRequestParam(TypedDict, total=False): + task_id: Optional[str] + """The ID of the task to cancel. Either this or task_name must be provided.""" + + task_name: Optional[str] + """The name of the task to cancel. Either this or task_id must be provided.""" diff --git a/src/agentex/types/create_task_request_param.py b/src/agentex/types/create_task_request_param.py new file mode 100644 index 000000000..9f6bc5f20 --- /dev/null +++ b/src/agentex/types/create_task_request_param.py @@ -0,0 +1,16 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, Optional +from typing_extensions import TypedDict + +__all__ = ["CreateTaskRequestParam"] + + +class CreateTaskRequestParam(TypedDict, total=False): + name: Optional[str] + """The name of the task to create""" + + params: Optional[Dict[str, object]] + """The parameters for the task""" diff --git a/src/agentex/types/deployment_history_list_params.py b/src/agentex/types/deployment_history_list_params.py index b26b2462d..d77ed5d17 100644 --- a/src/agentex/types/deployment_history_list_params.py +++ b/src/agentex/types/deployment_history_list_params.py @@ -15,4 +15,8 @@ class DeploymentHistoryListParams(TypedDict, total=False): limit: int + order_by: Optional[str] + + order_direction: str + page_number: int diff --git a/src/agentex/types/deployment_history_list_response.py b/src/agentex/types/deployment_history_list_response.py index c71a8f037..4511593b4 100644 --- a/src/agentex/types/deployment_history_list_response.py +++ b/src/agentex/types/deployment_history_list_response.py @@ -1,10 +1,40 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List +from datetime import datetime from typing_extensions import TypeAlias -from .deployment_history import DeploymentHistory +from .._models import BaseModel -__all__ = ["DeploymentHistoryListResponse"] +__all__ = ["DeploymentHistoryListResponse", "DeploymentHistoryListResponseItem"] -DeploymentHistoryListResponse: TypeAlias = List[DeploymentHistory] + +class DeploymentHistoryListResponseItem(BaseModel): + """API schema for deployment history.""" + + id: str + """The unique identifier of the deployment record""" + + agent_id: str + """The ID of the agent this deployment belongs to""" + + author_email: str + """Email of the commit author""" + + author_name: str + """Name of the commit author""" + + branch_name: str + """Name of the branch""" + + build_timestamp: datetime + """When the build was created""" + + commit_hash: str + """Git commit hash for this deployment""" + + deployment_timestamp: datetime + """When this deployment was first seen in the system""" + + +DeploymentHistoryListResponse: TypeAlias = List[DeploymentHistoryListResponseItem] diff --git a/src/agentex/types/deployment_history_retrieve_response.py b/src/agentex/types/deployment_history_retrieve_response.py new file mode 100644 index 000000000..a4539565f --- /dev/null +++ b/src/agentex/types/deployment_history_retrieve_response.py @@ -0,0 +1,35 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from datetime import datetime + +from .._models import BaseModel + +__all__ = ["DeploymentHistoryRetrieveResponse"] + + +class DeploymentHistoryRetrieveResponse(BaseModel): + """API schema for deployment history.""" + + id: str + """The unique identifier of the deployment record""" + + agent_id: str + """The ID of the agent this deployment belongs to""" + + author_email: str + """Email of the commit author""" + + author_name: str + """Name of the commit author""" + + branch_name: str + """Name of the branch""" + + build_timestamp: datetime + """When the build was created""" + + commit_hash: str + """Git commit hash for this deployment""" + + deployment_timestamp: datetime + """When this deployment was first seen in the system""" diff --git a/src/agentex/types/send_event_request_param.py b/src/agentex/types/send_event_request_param.py new file mode 100644 index 000000000..49f00eac2 --- /dev/null +++ b/src/agentex/types/send_event_request_param.py @@ -0,0 +1,21 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +from .task_message_content_param import TaskMessageContentParam + +__all__ = ["SendEventRequestParam"] + + +class SendEventRequestParam(TypedDict, total=False): + content: Optional[TaskMessageContentParam] + """The content to send to the event""" + + task_id: Optional[str] + """The ID of the task that the event was sent to""" + + task_name: Optional[str] + """The name of the task that the event was sent to""" diff --git a/src/agentex/types/send_message_request_param.py b/src/agentex/types/send_message_request_param.py new file mode 100644 index 000000000..0f02912ef --- /dev/null +++ b/src/agentex/types/send_message_request_param.py @@ -0,0 +1,27 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, Optional +from typing_extensions import Required, TypedDict + +from .task_message_content_param import TaskMessageContentParam + +__all__ = ["SendMessageRequestParam"] + + +class SendMessageRequestParam(TypedDict, total=False): + content: Required[TaskMessageContentParam] + """The message that was sent to the agent""" + + stream: bool + """Whether to stream the response message back to the client""" + + task_id: Optional[str] + """The ID of the task that the message was sent to""" + + task_name: Optional[str] + """The name of the task that the message was sent to""" + + task_params: Optional[Dict[str, object]] + """The parameters for the task (only used when creating new tasks)""" diff --git a/src/agentex/types/task_cancel_params.py b/src/agentex/types/task_cancel_params.py new file mode 100644 index 000000000..c76e97aa9 --- /dev/null +++ b/src/agentex/types/task_cancel_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["TaskCancelParams"] + + +class TaskCancelParams(TypedDict, total=False): + reason: Optional[str] diff --git a/src/agentex/types/task_complete_params.py b/src/agentex/types/task_complete_params.py new file mode 100644 index 000000000..7e523041a --- /dev/null +++ b/src/agentex/types/task_complete_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["TaskCompleteParams"] + + +class TaskCompleteParams(TypedDict, total=False): + reason: Optional[str] diff --git a/src/agentex/types/task_fail_params.py b/src/agentex/types/task_fail_params.py new file mode 100644 index 000000000..ba32ad5fd --- /dev/null +++ b/src/agentex/types/task_fail_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["TaskFailParams"] + + +class TaskFailParams(TypedDict, total=False): + reason: Optional[str] diff --git a/src/agentex/types/task_query_workflow_response.py b/src/agentex/types/task_query_workflow_response.py new file mode 100644 index 000000000..3f8ae2c69 --- /dev/null +++ b/src/agentex/types/task_query_workflow_response.py @@ -0,0 +1,8 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from typing import Dict +from typing_extensions import TypeAlias + +__all__ = ["TaskQueryWorkflowResponse"] + +TaskQueryWorkflowResponse: TypeAlias = Dict[str, object] diff --git a/src/agentex/types/task_terminate_params.py b/src/agentex/types/task_terminate_params.py new file mode 100644 index 000000000..869e3d45c --- /dev/null +++ b/src/agentex/types/task_terminate_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["TaskTerminateParams"] + + +class TaskTerminateParams(TypedDict, total=False): + reason: Optional[str] diff --git a/src/agentex/types/task_timeout_params.py b/src/agentex/types/task_timeout_params.py new file mode 100644 index 000000000..03d5fa75c --- /dev/null +++ b/src/agentex/types/task_timeout_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Optional +from typing_extensions import TypedDict + +__all__ = ["TaskTimeoutParams"] + + +class TaskTimeoutParams(TypedDict, total=False): + reason: Optional[str] diff --git a/src/agentex/types/task_update_by_id_params.py b/src/agentex/types/task_update_by_id_params.py new file mode 100644 index 000000000..8b0f04f11 --- /dev/null +++ b/src/agentex/types/task_update_by_id_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, Optional +from typing_extensions import TypedDict + +__all__ = ["TaskUpdateByIDParams"] + + +class TaskUpdateByIDParams(TypedDict, total=False): + task_metadata: Optional[Dict[str, object]] diff --git a/src/agentex/types/task_update_by_name_params.py b/src/agentex/types/task_update_by_name_params.py new file mode 100644 index 000000000..07d48df9b --- /dev/null +++ b/src/agentex/types/task_update_by_name_params.py @@ -0,0 +1,12 @@ +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Dict, Optional +from typing_extensions import TypedDict + +__all__ = ["TaskUpdateByNameParams"] + + +class TaskUpdateByNameParams(TypedDict, total=False): + task_metadata: Optional[Dict[str, object]] diff --git a/tests/api_resources/test_deployment_history.py b/tests/api_resources/test_deployment_history.py index 89012bf9f..49ce089f1 100644 --- a/tests/api_resources/test_deployment_history.py +++ b/tests/api_resources/test_deployment_history.py @@ -8,9 +8,11 @@ import pytest from agentex import Agentex, AsyncAgentex -from agentex.types import DeploymentHistory, DeploymentHistoryListResponse - -from ..utils import assert_matches_type +from tests.utils import assert_matches_type +from agentex.types import ( + DeploymentHistoryListResponse, + DeploymentHistoryRetrieveResponse, +) base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -18,15 +20,15 @@ class TestDeploymentHistory: parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve(self, client: Agentex) -> None: deployment_history = client.deployment_history.retrieve( "deployment_id", ) - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_retrieve(self, client: Agentex) -> None: response = client.deployment_history.with_raw_response.retrieve( @@ -36,9 +38,9 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = response.parse() - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_retrieve(self, client: Agentex) -> None: with client.deployment_history.with_streaming_response.retrieve( @@ -48,11 +50,11 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = response.parse() - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_path_params_retrieve(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_id` but received ''"): @@ -60,24 +62,26 @@ def test_path_params_retrieve(self, client: Agentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list(self, client: Agentex) -> None: deployment_history = client.deployment_history.list() assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_list_with_all_params(self, client: Agentex) -> None: deployment_history = client.deployment_history.list( agent_id="agent_id", agent_name="agent_name", limit=0, + order_by="order_by", + order_direction="order_direction", page_number=0, ) assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_raw_response_list(self, client: Agentex) -> None: response = client.deployment_history.with_raw_response.list() @@ -87,7 +91,7 @@ def test_raw_response_list(self, client: Agentex) -> None: deployment_history = response.parse() assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_streaming_response_list(self, client: Agentex) -> None: with client.deployment_history.with_streaming_response.list() as response: @@ -105,15 +109,15 @@ class TestAsyncDeploymentHistory: "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: deployment_history = await async_client.deployment_history.retrieve( "deployment_id", ) - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: response = await async_client.deployment_history.with_raw_response.retrieve( @@ -123,9 +127,9 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = await response.parse() - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: async with async_client.deployment_history.with_streaming_response.retrieve( @@ -135,11 +139,11 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = await response.parse() - assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) assert cast(Any, response.is_closed) is True - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `deployment_id` but received ''"): @@ -147,24 +151,26 @@ async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: "", ) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list(self, async_client: AsyncAgentex) -> None: deployment_history = await async_client.deployment_history.list() assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: deployment_history = await async_client.deployment_history.list( agent_id="agent_id", agent_name="agent_name", limit=0, + order_by="order_by", + order_direction="order_direction", page_number=0, ) assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: response = await async_client.deployment_history.with_raw_response.list() @@ -174,7 +180,7 @@ async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: deployment_history = await response.parse() assert_matches_type(DeploymentHistoryListResponse, deployment_history, path=["response"]) - @pytest.mark.skip(reason="Prism tests are disabled") + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: async with async_client.deployment_history.with_streaming_response.list() as response: diff --git a/tests/api_resources/test_tasks.py b/tests/api_resources/test_tasks.py index 294116ad5..0f1dd591d 100644 --- a/tests/api_resources/test_tasks.py +++ b/tests/api_resources/test_tasks.py @@ -9,8 +9,10 @@ from agentex import Agentex, AsyncAgentex from agentex.types import ( + Task, TaskListResponse, TaskRetrieveResponse, + TaskQueryWorkflowResponse, TaskRetrieveByNameResponse, ) from agentex.types.shared import DeleteResponse @@ -158,6 +160,108 @@ def test_path_params_delete(self, client: Agentex) -> None: "", ) + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_cancel(self, client: Agentex) -> None: + task = client.tasks.cancel( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_cancel_with_all_params(self, client: Agentex) -> None: + task = client.tasks.cancel( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_cancel(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.cancel( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_cancel(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.cancel( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_path_params_cancel(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + client.tasks.with_raw_response.cancel( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_complete(self, client: Agentex) -> None: + task = client.tasks.complete( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_complete_with_all_params(self, client: Agentex) -> None: + task = client.tasks.complete( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_complete(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.complete( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_complete(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.complete( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_path_params_complete(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + client.tasks.with_raw_response.complete( + task_id="", + ) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_delete_by_name(self, client: Agentex) -> None: @@ -200,6 +304,109 @@ def test_path_params_delete_by_name(self, client: Agentex) -> None: "", ) + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_fail(self, client: Agentex) -> None: + task = client.tasks.fail( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_fail_with_all_params(self, client: Agentex) -> None: + task = client.tasks.fail( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_fail(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.fail( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_fail(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.fail( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_path_params_fail(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + client.tasks.with_raw_response.fail( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_query_workflow(self, client: Agentex) -> None: + task = client.tasks.query_workflow( + query_name="query_name", + task_id="task_id", + ) + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_query_workflow(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.query_workflow( + query_name="query_name", + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = response.parse() + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_streaming_response_query_workflow(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.query_workflow( + query_name="query_name", + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = response.parse() + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_path_params_query_workflow(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + client.tasks.with_raw_response.query_workflow( + query_name="query_name", + task_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `query_name` but received ''"): + client.tasks.with_raw_response.query_workflow( + query_name="", + task_id="task_id", + ) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize def test_method_retrieve_by_name(self, client: Agentex) -> None: @@ -333,189 +540,598 @@ def test_path_params_stream_events_by_name(self, client: Agentex) -> None: "", ) - -class TestAsyncTasks: - parametrize = pytest.mark.parametrize( - "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] - ) - @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.retrieve( + def test_method_terminate(self, client: Agentex) -> None: + task = client.tasks.terminate( task_id="task_id", ) - assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_retrieve_with_all_params(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.retrieve( + def test_method_terminate_with_all_params(self, client: Agentex) -> None: + task = client.tasks.terminate( task_id="task_id", - relationships=["agents"], + reason="reason", ) - assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.with_raw_response.retrieve( + def test_raw_response_terminate(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.terminate( task_id="task_id", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.with_streaming_response.retrieve( + def test_streaming_response_terminate(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.terminate( task_id="task_id", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: + def test_path_params_terminate(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): - await async_client.tasks.with_raw_response.retrieve( + client.tasks.with_raw_response.terminate( task_id="", ) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_list(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.list() - assert_matches_type(TaskListResponse, task, path=["response"]) + def test_method_timeout(self, client: Agentex) -> None: + task = client.tasks.timeout( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.list( - agent_id="agent_id", - agent_name="agent_name", - limit=0, - order_by="order_by", - order_direction="order_direction", - page_number=0, - relationships=["agents"], + def test_method_timeout_with_all_params(self, client: Agentex) -> None: + task = client.tasks.timeout( + task_id="task_id", + reason="reason", ) - assert_matches_type(TaskListResponse, task, path=["response"]) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.with_raw_response.list() + def test_raw_response_timeout(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.timeout( + task_id="task_id", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(TaskListResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.with_streaming_response.list() as response: + def test_streaming_response_timeout(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.timeout( + task_id="task_id", + ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(TaskListResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_delete(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.delete( - "task_id", + def test_path_params_timeout(self, client: Agentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + client.tasks.with_raw_response.timeout( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_method_update_by_id(self, client: Agentex) -> None: + task = client.tasks.update_by_id( + task_id="task_id", ) - assert_matches_type(DeleteResponse, task, path=["response"]) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.with_raw_response.delete( - "task_id", + def test_method_update_by_id_with_all_params(self, client: Agentex) -> None: + task = client.tasks.update_by_id( + task_id="task_id", + task_metadata={"foo": "bar"}, + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_update_by_id(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.update_by_id( + task_id="task_id", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(DeleteResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.with_streaming_response.delete( - "task_id", + def test_streaming_response_update_by_id(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.update_by_id( + task_id="task_id", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(DeleteResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: + def test_path_params_update_by_id(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): - await async_client.tasks.with_raw_response.delete( - "", + client.tasks.with_raw_response.update_by_id( + task_id="", ) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: - task = await async_client.tasks.delete_by_name( - "task_name", + def test_method_update_by_name(self, client: Agentex) -> None: + task = client.tasks.update_by_name( + task_name="task_name", ) - assert_matches_type(DeleteResponse, task, path=["response"]) + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: - response = await async_client.tasks.with_raw_response.delete_by_name( - "task_name", + def test_method_update_by_name_with_all_params(self, client: Agentex) -> None: + task = client.tasks.update_by_name( + task_name="task_name", + task_metadata={"foo": "bar"}, + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + def test_raw_response_update_by_name(self, client: Agentex) -> None: + response = client.tasks.with_raw_response.update_by_name( + task_name="task_name", ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(DeleteResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: - async with async_client.tasks.with_streaming_response.delete_by_name( - "task_name", + def test_streaming_response_update_by_name(self, client: Agentex) -> None: + with client.tasks.with_streaming_response.update_by_name( + task_name="task_name", ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" - task = await response.parse() - assert_matches_type(DeleteResponse, task, path=["response"]) + task = response.parse() + assert_matches_type(Task, task, path=["response"]) assert cast(Any, response.is_closed) is True @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize - async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: + def test_path_params_update_by_name(self, client: Agentex) -> None: with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): - await async_client.tasks.with_raw_response.delete_by_name( + client.tasks.with_raw_response.update_by_name( + task_name="", + ) + + +class TestAsyncTasks: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.retrieve( + task_id="task_id", + ) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_retrieve_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.retrieve( + task_id="task_id", + relationships=["agents"], + ) + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.retrieve( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.retrieve( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(TaskRetrieveResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_retrieve(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.retrieve( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_list(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.list() + assert_matches_type(TaskListResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_list_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.list( + agent_id="agent_id", + agent_name="agent_name", + limit=0, + order_by="order_by", + order_direction="order_direction", + page_number=0, + relationships=["agents"], + ) + assert_matches_type(TaskListResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_list(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.list() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(TaskListResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_list(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(TaskListResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_delete(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.delete( + "task_id", + ) + assert_matches_type(DeleteResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_delete(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.delete( + "task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(DeleteResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_delete(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.delete( + "task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(DeleteResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_delete(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.delete( + "", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_cancel(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.cancel( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_cancel_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.cancel( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_cancel(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.cancel( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_cancel(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.cancel( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_cancel(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.cancel( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_complete(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.complete( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_complete_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.complete( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_complete(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.complete( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_complete(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.complete( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_complete(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.complete( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_delete_by_name(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.delete_by_name( + "task_name", + ) + assert_matches_type(DeleteResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.delete_by_name( + "task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(DeleteResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_delete_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.delete_by_name( + "task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(DeleteResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_delete_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + await async_client.tasks.with_raw_response.delete_by_name( "", ) + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_fail(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.fail( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_fail_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.fail( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_fail(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.fail( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_fail(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.fail( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_fail(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.fail( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_query_workflow(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.query_workflow( + query_name="query_name", + task_id="task_id", + ) + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_query_workflow(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.query_workflow( + query_name="query_name", + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_query_workflow(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.query_workflow( + query_name="query_name", + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(TaskQueryWorkflowResponse, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_query_workflow(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.query_workflow( + query_name="query_name", + task_id="", + ) + + with pytest.raises(ValueError, match=r"Expected a non-empty value for `query_name` but received ''"): + await async_client.tasks.with_raw_response.query_workflow( + query_name="", + task_id="task_id", + ) + @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize async def test_method_retrieve_by_name(self, async_client: AsyncAgentex) -> None: @@ -648,3 +1264,207 @@ async def test_path_params_stream_events_by_name(self, async_client: AsyncAgente await async_client.tasks.with_raw_response.stream_events_by_name( "", ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_terminate(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.terminate( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_terminate_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.terminate( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_terminate(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.terminate( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_terminate(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.terminate( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_terminate(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.terminate( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_timeout(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.timeout( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_timeout_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.timeout( + task_id="task_id", + reason="reason", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_timeout(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.timeout( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_timeout(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.timeout( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_timeout(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.timeout( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_update_by_id(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.update_by_id( + task_id="task_id", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_update_by_id_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.update_by_id( + task_id="task_id", + task_metadata={"foo": "bar"}, + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_update_by_id(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.update_by_id( + task_id="task_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_update_by_id(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.update_by_id( + task_id="task_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_update_by_id(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_id` but received ''"): + await async_client.tasks.with_raw_response.update_by_id( + task_id="", + ) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_update_by_name(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.update_by_name( + task_name="task_name", + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_method_update_by_name_with_all_params(self, async_client: AsyncAgentex) -> None: + task = await async_client.tasks.update_by_name( + task_name="task_name", + task_metadata={"foo": "bar"}, + ) + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_raw_response_update_by_name(self, async_client: AsyncAgentex) -> None: + response = await async_client.tasks.with_raw_response.update_by_name( + task_name="task_name", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_streaming_response_update_by_name(self, async_client: AsyncAgentex) -> None: + async with async_client.tasks.with_streaming_response.update_by_name( + task_name="task_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + task = await response.parse() + assert_matches_type(Task, task, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @pytest.mark.skip(reason="Mock server tests are disabled") + @parametrize + async def test_path_params_update_by_name(self, async_client: AsyncAgentex) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `task_name` but received ''"): + await async_client.tasks.with_raw_response.update_by_name( + task_name="", + ) From 3ec2a1e9987cd69fbcfeee8a8a6449b6825a1d49 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 17:51:34 +0000 Subject: [PATCH 211/215] feat(api): keep backwards compatible models --- .stats.yml | 2 +- api.md | 4 -- src/agentex/types/__init__.py | 4 -- src/agentex/types/agent_rpc_by_name_params.py | 62 ++++++++++++++++--- src/agentex/types/agent_rpc_params.py | 62 ++++++++++++++++--- .../types/cancel_task_request_param.py | 16 ----- .../types/create_task_request_param.py | 16 ----- src/agentex/types/send_event_request_param.py | 21 ------- .../types/send_message_request_param.py | 27 -------- 9 files changed, 111 insertions(+), 103 deletions(-) delete mode 100644 src/agentex/types/cancel_task_request_param.py delete mode 100644 src/agentex/types/create_task_request_param.py delete mode 100644 src/agentex/types/send_event_request_param.py delete mode 100644 src/agentex/types/send_message_request_param.py diff --git a/.stats.yml b/.stats.yml index 7c0aaa9ed..8b769ff6f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 45 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml openapi_spec_hash: 8ec711692f3ed7cd34a7a3b9d3e33f7c -config_hash: d65d8b7a05f302e164ef9ba7fe72b277 +config_hash: 5bd184c2e406dcf4485d6df328642824 diff --git a/api.md b/api.md index 99034e8a4..ddcd14c26 100644 --- a/api.md +++ b/api.md @@ -15,13 +15,9 @@ from agentex.types import ( AgentRpcRequest, AgentRpcResponse, AgentRpcResult, - CancelTaskRequest, - CreateTaskRequest, DataDelta, ReasoningContentDelta, ReasoningSummaryDelta, - SendEventRequest, - SendMessageRequest, TaskMessageContent, TaskMessageDelta, TaskMessageUpdate, diff --git a/src/agentex/types/__init__.py b/src/agentex/types/__init__.py index 7604bc366..27f34c67a 100644 --- a/src/agentex/types/__init__.py +++ b/src/agentex/types/__init__.py @@ -63,11 +63,7 @@ from .reasoning_content_param import ReasoningContentParam as ReasoningContentParam from .reasoning_summary_delta import ReasoningSummaryDelta as ReasoningSummaryDelta from .agent_rpc_by_name_params import AgentRpcByNameParams as AgentRpcByNameParams -from .send_event_request_param import SendEventRequestParam as SendEventRequestParam from .task_update_by_id_params import TaskUpdateByIDParams as TaskUpdateByIDParams -from .cancel_task_request_param import CancelTaskRequestParam as CancelTaskRequestParam -from .create_task_request_param import CreateTaskRequestParam as CreateTaskRequestParam -from .send_message_request_param import SendMessageRequestParam as SendMessageRequestParam from .task_message_content_param import TaskMessageContentParam as TaskMessageContentParam from .task_update_by_name_params import TaskUpdateByNameParams as TaskUpdateByNameParams from .tool_request_content_param import ToolRequestContentParam as ToolRequestContentParam diff --git a/src/agentex/types/agent_rpc_by_name_params.py b/src/agentex/types/agent_rpc_by_name_params.py index 352bfa597..ec0f638ea 100644 --- a/src/agentex/types/agent_rpc_by_name_params.py +++ b/src/agentex/types/agent_rpc_by_name_params.py @@ -2,15 +2,19 @@ from __future__ import annotations -from typing import Union +from typing import Dict, Union, Optional from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .send_event_request_param import SendEventRequestParam -from .cancel_task_request_param import CancelTaskRequestParam -from .create_task_request_param import CreateTaskRequestParam -from .send_message_request_param import SendMessageRequestParam +from .task_message_content_param import TaskMessageContentParam -__all__ = ["AgentRpcByNameParams", "Params"] +__all__ = [ + "AgentRpcByNameParams", + "Params", + "ParamsCreateTaskRequest", + "ParamsCancelTaskRequest", + "ParamsSendMessageRequest", + "ParamsSendEventRequest", +] class AgentRpcByNameParams(TypedDict, total=False): @@ -24,6 +28,50 @@ class AgentRpcByNameParams(TypedDict, total=False): jsonrpc: Literal["2.0"] +class ParamsCreateTaskRequest(TypedDict, total=False): + name: Optional[str] + """The name of the task to create""" + + params: Optional[Dict[str, object]] + """The parameters for the task""" + + +class ParamsCancelTaskRequest(TypedDict, total=False): + task_id: Optional[str] + """The ID of the task to cancel. Either this or task_name must be provided.""" + + task_name: Optional[str] + """The name of the task to cancel. Either this or task_id must be provided.""" + + +class ParamsSendMessageRequest(TypedDict, total=False): + content: Required[TaskMessageContentParam] + """The message that was sent to the agent""" + + stream: bool + """Whether to stream the response message back to the client""" + + task_id: Optional[str] + """The ID of the task that the message was sent to""" + + task_name: Optional[str] + """The name of the task that the message was sent to""" + + task_params: Optional[Dict[str, object]] + """The parameters for the task (only used when creating new tasks)""" + + +class ParamsSendEventRequest(TypedDict, total=False): + content: Optional[TaskMessageContentParam] + """The content to send to the event""" + + task_id: Optional[str] + """The ID of the task that the event was sent to""" + + task_name: Optional[str] + """The name of the task that the event was sent to""" + + Params: TypeAlias = Union[ - CreateTaskRequestParam, CancelTaskRequestParam, SendMessageRequestParam, SendEventRequestParam + ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest ] diff --git a/src/agentex/types/agent_rpc_params.py b/src/agentex/types/agent_rpc_params.py index 52944ec0b..fa101e796 100644 --- a/src/agentex/types/agent_rpc_params.py +++ b/src/agentex/types/agent_rpc_params.py @@ -2,15 +2,19 @@ from __future__ import annotations -from typing import Union +from typing import Dict, Union, Optional from typing_extensions import Literal, Required, TypeAlias, TypedDict -from .send_event_request_param import SendEventRequestParam -from .cancel_task_request_param import CancelTaskRequestParam -from .create_task_request_param import CreateTaskRequestParam -from .send_message_request_param import SendMessageRequestParam +from .task_message_content_param import TaskMessageContentParam -__all__ = ["AgentRpcParams", "Params"] +__all__ = [ + "AgentRpcParams", + "Params", + "ParamsCreateTaskRequest", + "ParamsCancelTaskRequest", + "ParamsSendMessageRequest", + "ParamsSendEventRequest", +] class AgentRpcParams(TypedDict, total=False): @@ -24,6 +28,50 @@ class AgentRpcParams(TypedDict, total=False): jsonrpc: Literal["2.0"] +class ParamsCreateTaskRequest(TypedDict, total=False): + name: Optional[str] + """The name of the task to create""" + + params: Optional[Dict[str, object]] + """The parameters for the task""" + + +class ParamsCancelTaskRequest(TypedDict, total=False): + task_id: Optional[str] + """The ID of the task to cancel. Either this or task_name must be provided.""" + + task_name: Optional[str] + """The name of the task to cancel. Either this or task_id must be provided.""" + + +class ParamsSendMessageRequest(TypedDict, total=False): + content: Required[TaskMessageContentParam] + """The message that was sent to the agent""" + + stream: bool + """Whether to stream the response message back to the client""" + + task_id: Optional[str] + """The ID of the task that the message was sent to""" + + task_name: Optional[str] + """The name of the task that the message was sent to""" + + task_params: Optional[Dict[str, object]] + """The parameters for the task (only used when creating new tasks)""" + + +class ParamsSendEventRequest(TypedDict, total=False): + content: Optional[TaskMessageContentParam] + """The content to send to the event""" + + task_id: Optional[str] + """The ID of the task that the event was sent to""" + + task_name: Optional[str] + """The name of the task that the event was sent to""" + + Params: TypeAlias = Union[ - CreateTaskRequestParam, CancelTaskRequestParam, SendMessageRequestParam, SendEventRequestParam + ParamsCreateTaskRequest, ParamsCancelTaskRequest, ParamsSendMessageRequest, ParamsSendEventRequest ] diff --git a/src/agentex/types/cancel_task_request_param.py b/src/agentex/types/cancel_task_request_param.py deleted file mode 100644 index 727800599..000000000 --- a/src/agentex/types/cancel_task_request_param.py +++ /dev/null @@ -1,16 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Optional -from typing_extensions import TypedDict - -__all__ = ["CancelTaskRequestParam"] - - -class CancelTaskRequestParam(TypedDict, total=False): - task_id: Optional[str] - """The ID of the task to cancel. Either this or task_name must be provided.""" - - task_name: Optional[str] - """The name of the task to cancel. Either this or task_id must be provided.""" diff --git a/src/agentex/types/create_task_request_param.py b/src/agentex/types/create_task_request_param.py deleted file mode 100644 index 9f6bc5f20..000000000 --- a/src/agentex/types/create_task_request_param.py +++ /dev/null @@ -1,16 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Dict, Optional -from typing_extensions import TypedDict - -__all__ = ["CreateTaskRequestParam"] - - -class CreateTaskRequestParam(TypedDict, total=False): - name: Optional[str] - """The name of the task to create""" - - params: Optional[Dict[str, object]] - """The parameters for the task""" diff --git a/src/agentex/types/send_event_request_param.py b/src/agentex/types/send_event_request_param.py deleted file mode 100644 index 49f00eac2..000000000 --- a/src/agentex/types/send_event_request_param.py +++ /dev/null @@ -1,21 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Optional -from typing_extensions import TypedDict - -from .task_message_content_param import TaskMessageContentParam - -__all__ = ["SendEventRequestParam"] - - -class SendEventRequestParam(TypedDict, total=False): - content: Optional[TaskMessageContentParam] - """The content to send to the event""" - - task_id: Optional[str] - """The ID of the task that the event was sent to""" - - task_name: Optional[str] - """The name of the task that the event was sent to""" diff --git a/src/agentex/types/send_message_request_param.py b/src/agentex/types/send_message_request_param.py deleted file mode 100644 index 0f02912ef..000000000 --- a/src/agentex/types/send_message_request_param.py +++ /dev/null @@ -1,27 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from __future__ import annotations - -from typing import Dict, Optional -from typing_extensions import Required, TypedDict - -from .task_message_content_param import TaskMessageContentParam - -__all__ = ["SendMessageRequestParam"] - - -class SendMessageRequestParam(TypedDict, total=False): - content: Required[TaskMessageContentParam] - """The message that was sent to the agent""" - - stream: bool - """Whether to stream the response message back to the client""" - - task_id: Optional[str] - """The ID of the task that the message was sent to""" - - task_name: Optional[str] - """The name of the task that the message was sent to""" - - task_params: Optional[Dict[str, object]] - """The parameters for the task (only used when creating new tasks)""" From 9a9a333677b1c1e5814becc205ee9f4fd4d3e33e Mon Sep 17 00:00:00 2001 From: Declan Brady Date: Mon, 30 Mar 2026 13:55:41 -0400 Subject: [PATCH 212/215] (chore) fix deployment_history test --- tests/api_resources/test_deployment_history.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/api_resources/test_deployment_history.py b/tests/api_resources/test_deployment_history.py index 49ce089f1..c85be60d6 100644 --- a/tests/api_resources/test_deployment_history.py +++ b/tests/api_resources/test_deployment_history.py @@ -8,12 +8,13 @@ import pytest from agentex import Agentex, AsyncAgentex -from tests.utils import assert_matches_type from agentex.types import ( DeploymentHistoryListResponse, DeploymentHistoryRetrieveResponse, ) +from ..utils import assert_matches_type + base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") From 4c63d9c340e56d7f602f77f2f1fb33b005577402 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 18:24:03 +0000 Subject: [PATCH 213/215] feat(api): use DeploymentHistory instead of DeploymentHistoryRetrieveResponse --- .stats.yml | 2 +- api.md | 4 +-- src/agentex/resources/deployment_history.py | 10 +++--- src/agentex/types/__init__.py | 2 +- src/agentex/types/deployment_history.py | 2 ++ .../types/deployment_history_list_response.py | 36 ++----------------- .../deployment_history_retrieve_response.py | 35 ------------------ .../api_resources/test_deployment_history.py | 17 ++++----- 8 files changed, 21 insertions(+), 87 deletions(-) delete mode 100644 src/agentex/types/deployment_history_retrieve_response.py diff --git a/.stats.yml b/.stats.yml index 8b769ff6f..3a7c990c0 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 45 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml openapi_spec_hash: 8ec711692f3ed7cd34a7a3b9d3e33f7c -config_hash: 5bd184c2e406dcf4485d6df328642824 +config_hash: fb079ef7936611b032568661b8165f19 diff --git a/api.md b/api.md index ddcd14c26..3b091ec88 100644 --- a/api.md +++ b/api.md @@ -174,10 +174,10 @@ Methods: Types: ```python -from agentex.types import DeploymentHistoryRetrieveResponse, DeploymentHistoryListResponse +from agentex.types import DeploymentHistory, DeploymentHistoryListResponse ``` Methods: -- client.deployment_history.retrieve(deployment_id) -> DeploymentHistoryRetrieveResponse +- client.deployment_history.retrieve(deployment_id) -> DeploymentHistory - client.deployment_history.list(\*\*params) -> DeploymentHistoryListResponse diff --git a/src/agentex/resources/deployment_history.py b/src/agentex/resources/deployment_history.py index f8a643b85..9149ffff8 100644 --- a/src/agentex/resources/deployment_history.py +++ b/src/agentex/resources/deployment_history.py @@ -18,8 +18,8 @@ async_to_streamed_response_wrapper, ) from .._base_client import make_request_options +from ..types.deployment_history import DeploymentHistory from ..types.deployment_history_list_response import DeploymentHistoryListResponse -from ..types.deployment_history_retrieve_response import DeploymentHistoryRetrieveResponse __all__ = ["DeploymentHistoryResource", "AsyncDeploymentHistoryResource"] @@ -54,7 +54,7 @@ def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> DeploymentHistoryRetrieveResponse: + ) -> DeploymentHistory: """ Get a deployment record by its unique ID. @@ -74,7 +74,7 @@ def retrieve( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=DeploymentHistoryRetrieveResponse, + cast_to=DeploymentHistory, ) def list( @@ -158,7 +158,7 @@ async def retrieve( extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, - ) -> DeploymentHistoryRetrieveResponse: + ) -> DeploymentHistory: """ Get a deployment record by its unique ID. @@ -178,7 +178,7 @@ async def retrieve( options=make_request_options( extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout ), - cast_to=DeploymentHistoryRetrieveResponse, + cast_to=DeploymentHistory, ) async def list( diff --git a/src/agentex/types/__init__.py b/src/agentex/types/__init__.py index 27f34c67a..5125c00b0 100644 --- a/src/agentex/types/__init__.py +++ b/src/agentex/types/__init__.py @@ -29,6 +29,7 @@ from .agent_rpc_response import AgentRpcResponse as AgentRpcResponse from .agent_task_tracker import AgentTaskTracker as AgentTaskTracker from .data_content_param import DataContentParam as DataContentParam +from .deployment_history import DeploymentHistory as DeploymentHistory from .span_create_params import SpanCreateParams as SpanCreateParams from .span_list_response import SpanListResponse as SpanListResponse from .span_update_params import SpanUpdateParams as SpanUpdateParams @@ -75,4 +76,3 @@ from .task_retrieve_by_name_response import TaskRetrieveByNameResponse as TaskRetrieveByNameResponse from .message_list_paginated_response import MessageListPaginatedResponse as MessageListPaginatedResponse from .deployment_history_list_response import DeploymentHistoryListResponse as DeploymentHistoryListResponse -from .deployment_history_retrieve_response import DeploymentHistoryRetrieveResponse as DeploymentHistoryRetrieveResponse diff --git a/src/agentex/types/deployment_history.py b/src/agentex/types/deployment_history.py index f9e3ce518..63a25e8e2 100644 --- a/src/agentex/types/deployment_history.py +++ b/src/agentex/types/deployment_history.py @@ -8,6 +8,8 @@ class DeploymentHistory(BaseModel): + """API schema for deployment history.""" + id: str """The unique identifier of the deployment record""" diff --git a/src/agentex/types/deployment_history_list_response.py b/src/agentex/types/deployment_history_list_response.py index 4511593b4..c71a8f037 100644 --- a/src/agentex/types/deployment_history_list_response.py +++ b/src/agentex/types/deployment_history_list_response.py @@ -1,40 +1,10 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import List -from datetime import datetime from typing_extensions import TypeAlias -from .._models import BaseModel +from .deployment_history import DeploymentHistory -__all__ = ["DeploymentHistoryListResponse", "DeploymentHistoryListResponseItem"] +__all__ = ["DeploymentHistoryListResponse"] - -class DeploymentHistoryListResponseItem(BaseModel): - """API schema for deployment history.""" - - id: str - """The unique identifier of the deployment record""" - - agent_id: str - """The ID of the agent this deployment belongs to""" - - author_email: str - """Email of the commit author""" - - author_name: str - """Name of the commit author""" - - branch_name: str - """Name of the branch""" - - build_timestamp: datetime - """When the build was created""" - - commit_hash: str - """Git commit hash for this deployment""" - - deployment_timestamp: datetime - """When this deployment was first seen in the system""" - - -DeploymentHistoryListResponse: TypeAlias = List[DeploymentHistoryListResponseItem] +DeploymentHistoryListResponse: TypeAlias = List[DeploymentHistory] diff --git a/src/agentex/types/deployment_history_retrieve_response.py b/src/agentex/types/deployment_history_retrieve_response.py deleted file mode 100644 index a4539565f..000000000 --- a/src/agentex/types/deployment_history_retrieve_response.py +++ /dev/null @@ -1,35 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from datetime import datetime - -from .._models import BaseModel - -__all__ = ["DeploymentHistoryRetrieveResponse"] - - -class DeploymentHistoryRetrieveResponse(BaseModel): - """API schema for deployment history.""" - - id: str - """The unique identifier of the deployment record""" - - agent_id: str - """The ID of the agent this deployment belongs to""" - - author_email: str - """Email of the commit author""" - - author_name: str - """Name of the commit author""" - - branch_name: str - """Name of the branch""" - - build_timestamp: datetime - """When the build was created""" - - commit_hash: str - """Git commit hash for this deployment""" - - deployment_timestamp: datetime - """When this deployment was first seen in the system""" diff --git a/tests/api_resources/test_deployment_history.py b/tests/api_resources/test_deployment_history.py index c85be60d6..1b98042b7 100644 --- a/tests/api_resources/test_deployment_history.py +++ b/tests/api_resources/test_deployment_history.py @@ -8,10 +8,7 @@ import pytest from agentex import Agentex, AsyncAgentex -from agentex.types import ( - DeploymentHistoryListResponse, - DeploymentHistoryRetrieveResponse, -) +from agentex.types import DeploymentHistory, DeploymentHistoryListResponse from ..utils import assert_matches_type @@ -27,7 +24,7 @@ def test_method_retrieve(self, client: Agentex) -> None: deployment_history = client.deployment_history.retrieve( "deployment_id", ) - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -39,7 +36,7 @@ def test_raw_response_retrieve(self, client: Agentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = response.parse() - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -51,7 +48,7 @@ def test_streaming_response_retrieve(self, client: Agentex) -> None: assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = response.parse() - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) assert cast(Any, response.is_closed) is True @@ -116,7 +113,7 @@ async def test_method_retrieve(self, async_client: AsyncAgentex) -> None: deployment_history = await async_client.deployment_history.retrieve( "deployment_id", ) - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -128,7 +125,7 @@ async def test_raw_response_retrieve(self, async_client: AsyncAgentex) -> None: assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = await response.parse() - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) @pytest.mark.skip(reason="Mock server tests are disabled") @parametrize @@ -140,7 +137,7 @@ async def test_streaming_response_retrieve(self, async_client: AsyncAgentex) -> assert response.http_request.headers.get("X-Stainless-Lang") == "python" deployment_history = await response.parse() - assert_matches_type(DeploymentHistoryRetrieveResponse, deployment_history, path=["response"]) + assert_matches_type(DeploymentHistory, deployment_history, path=["response"]) assert cast(Any, response.is_closed) is True From 47948ec76936565fdc443766bb19cbec71e4669b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 18:17:09 +0000 Subject: [PATCH 214/215] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3a7c990c0..8ebd3262a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 45 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-5fa3cb3c867281c804913c7c3e6d2143b5606d4924d42119f4b2b246f33e3db3.yml -openapi_spec_hash: 8ec711692f3ed7cd34a7a3b9d3e33f7c +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/sgp%2Fagentex-sdk-484a34db630cbb844d4496b9eada50771ded02db3f8ef71ec5316ce14d5470e4.yml +openapi_spec_hash: aba2cc1906c8b07dc66f3b290d6d176f config_hash: fb079ef7936611b032568661b8165f19 From 2c6ff7e1bfc58c9e35a17fb5f783e668bfbe3d03 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 18:25:26 +0000 Subject: [PATCH 215/215] release: 0.9.6 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- src/agentex/_version.py | 2 +- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 871c1ad9e..bfa837fbf 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.9.5" + ".": "0.9.6" } diff --git a/CHANGELOG.md b/CHANGELOG.md index bf3556280..27f0a0c1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## 0.9.6 (2026-03-30) + +Full Changelog: [v0.9.5...v0.9.6](https://github.com/scaleapi/scale-agentex-python/compare/v0.9.5...v0.9.6) + +### Features + +* **api:** add task state update methods ([d699e24](https://github.com/scaleapi/scale-agentex-python/commit/d699e245d6c8f28034370ea6a654e11a3b78dc20)) +* **api:** keep backwards compatible models ([3ec2a1e](https://github.com/scaleapi/scale-agentex-python/commit/3ec2a1e9987cd69fbcfeee8a8a6449b6825a1d49)) +* **api:** use DeploymentHistory instead of DeploymentHistoryRetrieveResponse ([4c63d9c](https://github.com/scaleapi/scale-agentex-python/commit/4c63d9c340e56d7f602f77f2f1fb33b005577402)) +* **internal:** implement indices array format for query and form serialization ([3bf3db1](https://github.com/scaleapi/scale-agentex-python/commit/3bf3db1f692b44ceb5f4ea39cb8c4fd0f81c01ee)) + + +### Bug Fixes + +* **deps:** bump minimum typing-extensions version ([fd76bc9](https://github.com/scaleapi/scale-agentex-python/commit/fd76bc994dca633c4966967c132323985eafa642)) +* **pydantic:** do not pass `by_alias` unless set ([235636b](https://github.com/scaleapi/scale-agentex-python/commit/235636b424dd4595f1510a87e6b79f3b2e103c97)) +* sanitize endpoint path params ([e6472be](https://github.com/scaleapi/scale-agentex-python/commit/e6472bea7d34a72d070079441b359bef25e87830)) + + +### Chores + +* **ci:** skip lint on metadata-only changes ([f4d5053](https://github.com/scaleapi/scale-agentex-python/commit/f4d5053766e5864338229218f2402d60f431d1fa)) +* **ci:** skip uploading artifacts on stainless-internal branches ([45e7622](https://github.com/scaleapi/scale-agentex-python/commit/45e76227d8b0d5d1c2f398e9945b71eb5953e791)) +* format all `api.md` files ([e67fa69](https://github.com/scaleapi/scale-agentex-python/commit/e67fa69c072f462ea86ecd67b888afa5f97cc7cc)) +* **internal:** add request options to SSE classes ([b788da0](https://github.com/scaleapi/scale-agentex-python/commit/b788da0d1b9fb6100dffb4a99b761ddcb7f0160e)) +* **internal:** bump dependencies ([95112dd](https://github.com/scaleapi/scale-agentex-python/commit/95112dd25a3bf8a49bd1080bfddefd403e64cfcb)) +* **internal:** fix lint error on Python 3.14 ([cb99db1](https://github.com/scaleapi/scale-agentex-python/commit/cb99db1857e373c3dc47d4f5ff6861d06b0ddce4)) +* **internal:** make `test_proxy_environment_variables` more resilient ([7bfaa75](https://github.com/scaleapi/scale-agentex-python/commit/7bfaa75be00bf8f11030f42a3dc6fdcd980c5823)) +* **internal:** make `test_proxy_environment_variables` more resilient to env ([fd1a06e](https://github.com/scaleapi/scale-agentex-python/commit/fd1a06e212cf1a314ac7c61e4d51879401e120f9)) +* **internal:** remove mock server code ([3a5ae0f](https://github.com/scaleapi/scale-agentex-python/commit/3a5ae0f0451610ae56284307d4c2bee1ac2964c1)) +* **internal:** tweak CI branches ([2e74af0](https://github.com/scaleapi/scale-agentex-python/commit/2e74af08e3e2dd4179550e9dd1cf22881195ac91)) +* **internal:** update gitignore ([aba7c4f](https://github.com/scaleapi/scale-agentex-python/commit/aba7c4f8264fdad515a4926884f855c2d87aa910)) +* **internal:** version bump ([1ef69ed](https://github.com/scaleapi/scale-agentex-python/commit/1ef69ed5415d3112055a8040eccfb6eca452e532)) +* **internal:** version bump ([1132255](https://github.com/scaleapi/scale-agentex-python/commit/1132255a0cd7aec1daed38e4110cd6bac53f930a)) +* **internal:** version bump ([60e5402](https://github.com/scaleapi/scale-agentex-python/commit/60e5402c4502957aee7848ab3cdcbfb41503a8ae)) +* update mock server docs ([8c5c6d3](https://github.com/scaleapi/scale-agentex-python/commit/8c5c6d38214b13f645f6fbd75efbbb8116458589)) + ## 0.9.5 (2026-03-24) Full Changelog: [v0.9.4...v0.9.5](https://github.com/scaleapi/scale-agentex-python/compare/v0.9.4...v0.9.5) diff --git a/pyproject.toml b/pyproject.toml index 2a3a68707..e0cde6550 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "agentex-sdk" -version = "0.9.5" +version = "0.9.6" description = "The official Python library for the agentex API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/agentex/_version.py b/src/agentex/_version.py index 3c4a3a3a0..f3bb1cd71 100644 --- a/src/agentex/_version.py +++ b/src/agentex/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "agentex" -__version__ = "0.9.5" # x-release-please-version +__version__ = "0.9.6" # x-release-please-version