diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 925bade2..25182722 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 with: - version: '0.8.11' + version: '0.9.13' - name: Install dependencies run: uv sync --all-extras @@ -47,7 +47,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 with: - version: '0.8.11' + version: '0.9.13' - name: Install dependencies run: uv sync --all-extras @@ -81,7 +81,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 with: - version: '0.8.11' + version: '0.9.13' - name: Bootstrap run: ./scripts/bootstrap diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index ae87025b..37916c7b 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -19,7 +19,7 @@ jobs: - name: Install uv uses: astral-sh/setup-uv@v5 with: - version: '0.8.11' + version: '0.9.13' - name: Publish to PyPI run: | diff --git a/.release-please-manifest.json b/.release-please-manifest.json index c204528e..8c8a3092 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.4.0-alpha.13" + ".": "0.4.0-alpha.14" } diff --git a/.stats.yml b/.stats.yml index 4be566fc..437fe8eb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 103 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-73fc7f59a69be032d1b18e2fff3ed7509e175703332723b27aac50e2514ca854.yml -openapi_spec_hash: a22051c017a4822ef689585896659675 -config_hash: 39578cfdeb4a10121f2cb3fa3e4d5e20 +configured_endpoints: 108 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack%2Fllama-stack-client-5b5c7384ecc87cd37cdcfef47628d88ae84c366452114e8891d5d9cf4fde810c.yml +openapi_spec_hash: 9774340e22da2895556cf845f044a69a +config_hash: aa28e451064c13a38ddc44df99ebf52a diff --git a/CHANGELOG.md b/CHANGELOG.md index d2576d59..844b70c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,49 @@ # Changelog +## 0.4.0-alpha.14 (2025-12-22) + +Full Changelog: [v0.4.0-alpha.13...v0.4.0-alpha.14](https://github.com/llamastack/llama-stack-client-python/compare/v0.4.0-alpha.13...v0.4.0-alpha.14) + +### Features + +* Add metadata field to request and response ([a83a98e](https://github.com/llamastack/llama-stack-client-python/commit/a83a98e73429e9c12fc679e429cd350498276f2f)) +* add support for tool_choice to repsponses api ([32c453f](https://github.com/llamastack/llama-stack-client-python/commit/32c453f2c2ba39e65830d36f92b11d7ea6bf98f5)) +* **api:** add readonly connectors API ([05f867b](https://github.com/llamastack/llama-stack-client-python/commit/05f867b82f03b4ece33c52b68a06b5e68c345ccc)) +* **api:** deprecate `toolgroup` and `tool_runtime` apis ([d5cef5a](https://github.com/llamastack/llama-stack-client-python/commit/d5cef5ae52db0f4d4ccffb36d4c69e39182af91b)) +* convert Benchmarks API to use FastAPI router ([c784ae1](https://github.com/llamastack/llama-stack-client-python/commit/c784ae1fd823e70fef91793125fadd44d33ba0ce)) +* convert Datasets API to use FastAPI router ([2f53a3f](https://github.com/llamastack/llama-stack-client-python/commit/2f53a3f60fb7da474e2e8d3839d6c58d6a6d2c89)) +* Implement FastAPI router system ([2ca4485](https://github.com/llamastack/llama-stack-client-python/commit/2ca44854928f4360911439690461fa0cfa2db8f9)) +* Implement include parameter specifically for adding logprobs in the output message ([05a0330](https://github.com/llamastack/llama-stack-client-python/commit/05a0330bb08ca21980d79ffdd66cdd2e3af21d51)) +* introduce /admin API for stack administration and operations ([3279ec9](https://github.com/llamastack/llama-stack-client-python/commit/3279ec9799e21595b7410f0cc784a4b0c854ade5)) +* migrate Inspect API to FastAPI router ([7774bec](https://github.com/llamastack/llama-stack-client-python/commit/7774bec492608a78eedb804fd6ab7997fdabdc60)) +* migrate Providers API to FastAPI router pattern ([f8c84cd](https://github.com/llamastack/llama-stack-client-python/commit/f8c84cd0fb2ba351366c3a68c9836dd8112b09d0)) + + +### Bug Fixes + +* **client:** fix issue with duplicate definitions in Go ([dd94553](https://github.com/llamastack/llama-stack-client-python/commit/dd9455390a84c918ef517a2d1488598c44a9fb40)) +* ensure streams are always closed ([9dc1025](https://github.com/llamastack/llama-stack-client-python/commit/9dc1025c4679f82a9528e859ce2332b9bc8dfb9d)) +* **types:** allow pyright to infer TypedDict types within SequenceNotStr ([93be516](https://github.com/llamastack/llama-stack-client-python/commit/93be5160a0dd1260b728959c29a931b5d7f42fdb)) +* use async_to_httpx_files in patch method ([77df10d](https://github.com/llamastack/llama-stack-client-python/commit/77df10d1c6635984f5f9b48e4479872c88fbb91b)) + + +### Chores + +* add missing docstrings ([18c54f3](https://github.com/llamastack/llama-stack-client-python/commit/18c54f3ca59edc71633a937914762129856a8950)) +* bump required `uv` version ([2a1523b](https://github.com/llamastack/llama-stack-client-python/commit/2a1523b450a8e66ce2e16f20a5b73f821144748a)) +* **deps:** mypy 1.18.1 has a regression, pin to 1.17 ([a900167](https://github.com/llamastack/llama-stack-client-python/commit/a90016741193156e589525c874dff32459be2a6d)) +* **internal:** add `--fix` argument to lint script ([89e14ad](https://github.com/llamastack/llama-stack-client-python/commit/89e14ad88db7e5ac1dc088c6affec85e749ff4e8)) +* **internal:** add missing files argument to base client ([9cae3df](https://github.com/llamastack/llama-stack-client-python/commit/9cae3df5c115b176be5515fb47ed3d2d69cd0bb8)) +* **internal:** avoid using unstable Python versions in tests ([36336dd](https://github.com/llamastack/llama-stack-client-python/commit/36336dd67f3dcaa355b3b4bb99d4e1f6d73b9779)) +* **internal:** version bump ([597c7c6](https://github.com/llamastack/llama-stack-client-python/commit/597c7c6156b28bcb7f3c59d742532c1204dd2647)) +* update lockfile ([de67c1e](https://github.com/llamastack/llama-stack-client-python/commit/de67c1ebd3abbdc111dfbd979e1ecb655cff25e7)) +* update uv.lock ([95cb22a](https://github.com/llamastack/llama-stack-client-python/commit/95cb22ab14711e3c4220dcf9a83bc87ea2436efe)) + + +### Documentation + +* add more examples ([d24dff6](https://github.com/llamastack/llama-stack-client-python/commit/d24dff6000019c0091f13fecf63ac90e02122cae)) + ## 0.4.0-alpha.13 (2025-12-15) Full Changelog: [v0.4.0-alpha.12...v0.4.0-alpha.13](https://github.com/llamastack/llama-stack-client-python/compare/v0.4.0-alpha.12...v0.4.0-alpha.13) diff --git a/README.md b/README.md index 634a892b..455348f8 100644 --- a/README.md +++ b/README.md @@ -127,58 +127,77 @@ async def main() -> None: asyncio.run(main()) ``` -## Streaming responses +## Using types + +Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like: -We provide support for streaming responses using Server Side Events (SSE). +- Serializing back into JSON, `model.to_json()` +- Converting to a dictionary, `model.to_dict()` + +Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`. + +## Pagination + +List methods in the Llama Stack Client API are paginated. + +This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually: ```python from llama_stack_client import LlamaStackClient client = LlamaStackClient() -stream = client.chat.completions.create( - messages=[ - { - "content": "string", - "role": "user", - } - ], - model="model", - stream=True, -) -for completion in stream: - print(completion.id) +all_responses = [] +# Automatically fetches more pages as needed. +for response in client.responses.list(): + # Do something with response here + all_responses.append(response) +print(all_responses) ``` -The async client uses the exact same interface. +Or, asynchronously: ```python +import asyncio from llama_stack_client import AsyncLlamaStackClient client = AsyncLlamaStackClient() -stream = await client.chat.completions.create( - messages=[ - { - "content": "string", - "role": "user", - } - ], - model="model", - stream=True, -) -async for completion in stream: - print(completion.id) + +async def main() -> None: + all_responses = [] + # Iterate through items across all pages, issuing requests as needed. + async for response in client.responses.list(): + all_responses.append(response) + print(all_responses) + + +asyncio.run(main()) ``` -## Using types +Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages: -Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like: +```python +first_page = await client.responses.list() +if first_page.has_next_page(): + print(f"will fetch next page using these details: {first_page.next_page_info()}") + next_page = await first_page.get_next_page() + print(f"number of items we just fetched: {len(next_page.data)}") -- Serializing back into JSON, `model.to_json()` -- Converting to a dictionary, `model.to_dict()` +# Remove `await` for non-async usage. +``` -Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`. +Or just work directly with the returned data: + +```python +first_page = await client.responses.list() + +print(f"next page cursor: {first_page.last_id}") # => "next page cursor: ..." +for response in first_page.data: + print(response.id) + +# Remove `await` for non-async usage. +``` ## Nested params diff --git a/api.md b/api.md index c613cdb8..8af103fe 100644 --- a/api.md +++ b/api.md @@ -2,13 +2,19 @@ ```python from llama_stack_client.types import ( + HealthInfo, InterleavedContent, InterleavedContentItem, + ListProvidersResponse, + ListRoutesResponse, ParamType, + ProviderInfo, + RouteInfo, SafetyViolation, SamplingParams, ScoringResult, SystemMessage, + VersionInfo, ) ``` @@ -145,16 +151,10 @@ Methods: # Inspect -Types: - -```python -from llama_stack_client.types import HealthInfo, ProviderInfo, RouteInfo, VersionInfo -``` - Methods: -- client.inspect.health() -> HealthInfo -- client.inspect.version() -> VersionInfo +- client.inspect.health() -> HealthInfo +- client.inspect.version() -> VersionInfo # Embeddings @@ -312,12 +312,12 @@ Methods: Types: ```python -from llama_stack_client.types import ListProvidersResponse, ProviderListResponse +from llama_stack_client.types import ProviderListResponse ``` Methods: -- client.providers.retrieve(provider_id) -> ProviderInfo +- client.providers.retrieve(provider_id) -> ProviderInfo - client.providers.list() -> ProviderListResponse # Routes @@ -325,7 +325,7 @@ Methods: Types: ```python -from llama_stack_client.types import ListRoutesResponse, RouteListResponse +from llama_stack_client.types import RouteListResponse ``` Methods: @@ -528,6 +528,16 @@ Methods: - client.alpha.eval.jobs.cancel(job_id, \*, benchmark_id) -> None - client.alpha.eval.jobs.status(job_id, \*, benchmark_id) -> Job +## Admin + +Methods: + +- client.alpha.admin.health() -> HealthInfo +- client.alpha.admin.inspect_provider(provider_id) -> ProviderInfo +- client.alpha.admin.list_providers() -> ProviderListResponse +- client.alpha.admin.list_routes(\*\*params) -> RouteListResponse +- client.alpha.admin.version() -> VersionInfo + # Beta ## Datasets diff --git a/pyproject.toml b/pyproject.toml index 8ee53846..a33ff511 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,18 @@ [project] name = "llama_stack_client" -version = "0.4.0-alpha.13" +version = "0.4.0-alpha.14" description = "The official Python library for the llama-stack-client API" dynamic = ["readme"] license = "MIT" authors = [{ name = "Meta Llama", email = "llama-oss@meta.com" }] + dependencies = [ - "httpx>=0.23.0, <1", - "pydantic>=1.9.0, <3", + "httpx>=0.23.0, <1", + "pydantic>=1.9.0, <3", "typing-extensions>=4.7, <5", - "anyio>=3.5.0, <5", - "distro>=1.7.0, <2", - "sniffio", + "anyio>=3.5.0, <5", + "distro>=1.7.0, <2", + "sniffio", "tqdm", "rich", "click", @@ -22,6 +23,7 @@ dependencies = [ "fire", "requests", ] + requires-python = ">= 3.12" classifiers = [ "Typing :: Typed", @@ -46,7 +48,7 @@ aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"] [tool.uv] managed = true -required-version = ">=0.5.0" +required-version = ">=0.9" conflicts = [ [ { group = "pydantic-v1" }, @@ -58,7 +60,7 @@ conflicts = [ # version pins are in uv.lock dev = [ "pyright==1.1.399", - "mypy", + "mypy==1.17", "respx", "pytest>=7.1.1", "pytest-asyncio", diff --git a/requirements-dev.lock b/requirements-dev.lock index 9603ecb4..0efcf0cb 100644 --- a/requirements-dev.lock +++ b/requirements-dev.lock @@ -3,11 +3,11 @@ -e . annotated-types==0.7.0 # via pydantic -anyio==4.11.0 +anyio==4.12.0 # via # httpx # llama-stack-client -black==25.11.0 +black==25.12.0 certifi==2025.11.12 # via # httpcore @@ -33,7 +33,7 @@ distro==1.9.0 # via llama-stack-client execnet==2.1.2 # via pytest-xdist -filelock==3.20.0 +filelock==3.20.1 # via virtualenv fire==0.7.1 # via llama-stack-client @@ -59,7 +59,7 @@ markdown-it-py==4.0.0 # via rich mdurl==0.1.2 # via markdown-it-py -mypy==1.18.2 +mypy==1.17.0 mypy-extensions==1.1.0 # via # black @@ -80,18 +80,18 @@ pathspec==0.12.1 # via # black # mypy -platformdirs==4.5.0 +platformdirs==4.5.1 # via # black # virtualenv pluggy==1.6.0 # via pytest -pre-commit==4.5.0 +pre-commit==4.5.1 prompt-toolkit==3.0.52 # via llama-stack-client pyaml==25.7.0 # via llama-stack-client -pydantic==2.12.4 +pydantic==2.12.5 # via llama-stack-client pydantic-core==2.41.5 # via pydantic @@ -121,13 +121,11 @@ requests==2.32.5 respx==0.22.0 rich==14.2.0 # via llama-stack-client -ruff==0.14.6 +ruff==0.14.7 six==1.17.0 # via python-dateutil sniffio==1.3.1 - # via - # anyio - # llama-stack-client + # via llama-stack-client termcolor==3.2.0 # via # fire @@ -147,9 +145,9 @@ typing-extensions==4.15.0 # typing-inspection typing-inspection==0.4.2 # via pydantic -tzdata==2025.2 +tzdata==2025.3 # via pandas -urllib3==2.5.0 +urllib3==2.6.2 # via requests virtualenv==20.35.4 # via pre-commit diff --git a/scripts/lint b/scripts/lint index f10a5eb7..842b1a48 100755 --- a/scripts/lint +++ b/scripts/lint @@ -4,8 +4,13 @@ set -e cd "$(dirname "$0")/.." -echo "==> Running ruff" -uv run ruff check . +if [ "$1" = "--fix" ]; then + echo "==> Running ruff with --fix" + uv run ruff check . --fix +else + echo "==> Running ruff" + uv run ruff check . +fi # echo "==> Running mypy" # uv run mypy . diff --git a/scripts/test b/scripts/test index 77ecb8f4..c7925a63 100755 --- a/scripts/test +++ b/scripts/test @@ -58,6 +58,11 @@ fi export DEFER_PYDANTIC_BUILD=false +# Note that we need to specify the patch version here so that uv +# won't use unstable (alpha, beta, rc) releases for the tests +PY_VERSION_MIN=">=3.9.0" +PY_VERSION_MAX=">=3.14.0" + function run_tests() { echo "==> Running tests with Pydantic v2" uv run --isolated --all-extras pytest -W ignore::DeprecationWarning "$@" diff --git a/src/llama_stack_client/_base_client.py b/src/llama_stack_client/_base_client.py index f2c5cb77..ddf454c0 100644 --- a/src/llama_stack_client/_base_client.py +++ b/src/llama_stack_client/_base_client.py @@ -1257,9 +1257,12 @@ def patch( *, cast_to: Type[ResponseT], body: Body | None = None, + files: RequestFiles | None = None, options: RequestOptions = {}, ) -> ResponseT: - opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options) + opts = FinalRequestOptions.construct( + method="patch", url=path, json_data=body, files=to_httpx_files(files), **options + ) return self.request(cast_to, opts) def put( @@ -1777,9 +1780,12 @@ async def patch( *, cast_to: Type[ResponseT], body: Body | None = None, + files: RequestFiles | None = None, options: RequestOptions = {}, ) -> ResponseT: - opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options) + opts = FinalRequestOptions.construct( + method="patch", url=path, json_data=body, files=await async_to_httpx_files(files), **options + ) return await self.request(cast_to, opts) async def put( diff --git a/src/llama_stack_client/_streaming.py b/src/llama_stack_client/_streaming.py index e732cb57..a2210688 100644 --- a/src/llama_stack_client/_streaming.py +++ b/src/llama_stack_client/_streaming.py @@ -60,11 +60,12 @@ def __stream__(self) -> Iterator[_T]: process_data = self._client._process_response_data iterator = self._iter_events() - for sse in iterator: - yield process_data(data=sse.json(), cast_to=cast_to, response=response) - - # As we might not fully consume the response stream, we need to close it explicitly - response.close() + try: + for sse in iterator: + yield process_data(data=sse.json(), cast_to=cast_to, response=response) + finally: + # Ensure the response is closed even if the consumer doesn't read all data + response.close() def __enter__(self) -> Self: return self @@ -123,11 +124,12 @@ async def __stream__(self) -> AsyncIterator[_T]: process_data = self._client._process_response_data iterator = self._iter_events() - async for sse in iterator: - yield process_data(data=sse.json(), cast_to=cast_to, response=response) - - # As we might not fully consume the response stream, we need to close it explicitly - await response.aclose() + try: + async for sse in iterator: + yield process_data(data=sse.json(), cast_to=cast_to, response=response) + finally: + # Ensure the response is closed even if the consumer doesn't read all data + await response.aclose() async def __aenter__(self) -> Self: return self diff --git a/src/llama_stack_client/_types.py b/src/llama_stack_client/_types.py index 1059615e..0dddabb8 100644 --- a/src/llama_stack_client/_types.py +++ b/src/llama_stack_client/_types.py @@ -249,6 +249,9 @@ class HttpxSendArgs(TypedDict, total=False): if TYPE_CHECKING: # This works because str.__contains__ does not accept object (either in typeshed or at runtime) # https://github.com/hauntsaninja/useful_types/blob/5e9710f3875107d068e7679fd7fec9cfab0eff3b/useful_types/__init__.py#L285 + # + # Note: index() and count() methods are intentionally omitted to allow pyright to properly + # infer TypedDict types when dict literals are used in lists assigned to SequenceNotStr. class SequenceNotStr(Protocol[_T_co]): @overload def __getitem__(self, index: SupportsIndex, /) -> _T_co: ... @@ -257,8 +260,6 @@ def __getitem__(self, index: slice, /) -> Sequence[_T_co]: ... def __contains__(self, value: object, /) -> bool: ... def __len__(self) -> int: ... def __iter__(self) -> Iterator[_T_co]: ... - def index(self, value: Any, start: int = 0, stop: int = ..., /) -> int: ... - def count(self, value: Any, /) -> int: ... def __reversed__(self) -> Iterator[_T_co]: ... else: # just point this to a normal `Sequence` at runtime to avoid having to special case diff --git a/src/llama_stack_client/_version.py b/src/llama_stack_client/_version.py index 60351ec2..540aa35b 100644 --- a/src/llama_stack_client/_version.py +++ b/src/llama_stack_client/_version.py @@ -7,4 +7,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "llama_stack_client" -__version__ = "0.4.0-alpha.1" +__version__ = "0.4.0-alpha.14" # x-release-please-version diff --git a/src/llama_stack_client/resources/alpha/__init__.py b/src/llama_stack_client/resources/alpha/__init__.py index 8f9653d5..8cdbaa83 100644 --- a/src/llama_stack_client/resources/alpha/__init__.py +++ b/src/llama_stack_client/resources/alpha/__init__.py @@ -14,6 +14,14 @@ EvalResourceWithStreamingResponse, AsyncEvalResourceWithStreamingResponse, ) +from .admin import ( + AdminResource, + AsyncAdminResource, + AdminResourceWithRawResponse, + AsyncAdminResourceWithRawResponse, + AdminResourceWithStreamingResponse, + AsyncAdminResourceWithStreamingResponse, +) from .alpha import ( AlphaResource, AsyncAlphaResource, @@ -72,6 +80,12 @@ "AsyncEvalResourceWithRawResponse", "EvalResourceWithStreamingResponse", "AsyncEvalResourceWithStreamingResponse", + "AdminResource", + "AsyncAdminResource", + "AdminResourceWithRawResponse", + "AsyncAdminResourceWithRawResponse", + "AdminResourceWithStreamingResponse", + "AsyncAdminResourceWithStreamingResponse", "AlphaResource", "AsyncAlphaResource", "AlphaResourceWithRawResponse", diff --git a/src/llama_stack_client/resources/alpha/admin.py b/src/llama_stack_client/resources/alpha/admin.py new file mode 100644 index 00000000..f84fa640 --- /dev/null +++ b/src/llama_stack_client/resources/alpha/admin.py @@ -0,0 +1,437 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +from typing import Type, Optional, cast +from typing_extensions import Literal + +import httpx + +from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given +from ..._utils import maybe_transform, async_maybe_transform +from ..._compat import cached_property +from ..._resource import SyncAPIResource, AsyncAPIResource +from ..._response import ( + to_raw_response_wrapper, + to_streamed_response_wrapper, + async_to_raw_response_wrapper, + async_to_streamed_response_wrapper, +) +from ..._wrappers import DataWrapper +from ...types.alpha import admin_list_routes_params +from ..._base_client import make_request_options +from ...types.shared.health_info import HealthInfo +from ...types.route_list_response import RouteListResponse +from ...types.shared.version_info import VersionInfo +from ...types.shared.provider_info import ProviderInfo +from ...types.provider_list_response import ProviderListResponse + +__all__ = ["AdminResource", "AsyncAdminResource"] + + +class AdminResource(SyncAPIResource): + @cached_property + def with_raw_response(self) -> AdminResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/llamastack/llama-stack-client-python#accessing-raw-response-data-eg-headers + """ + return AdminResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AdminResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/llamastack/llama-stack-client-python#with_streaming_response + """ + return AdminResourceWithStreamingResponse(self) + + def health( + self, + *, + # 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, + ) -> HealthInfo: + """Get the current health status of the service.""" + return self._get( + "/v1alpha/admin/health", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=HealthInfo, + ) + + def inspect_provider( + self, + provider_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, + ) -> ProviderInfo: + """ + Get detailed information about a specific provider. + + Args: + provider_id: The ID of the provider to inspect. + + 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 provider_id: + raise ValueError(f"Expected a non-empty value for `provider_id` but received {provider_id!r}") + return self._get( + f"/v1alpha/admin/providers/{provider_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=ProviderInfo, + ) + + def list_providers( + self, + *, + # 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, + ) -> ProviderListResponse: + """List all available providers with their configuration and health status.""" + return self._get( + "/v1alpha/admin/providers", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=DataWrapper[ProviderListResponse]._unwrapper, + ), + cast_to=cast(Type[ProviderListResponse], DataWrapper[ProviderListResponse]), + ) + + def list_routes( + self, + *, + api_filter: Optional[Literal["v1", "v1alpha", "v1beta", "deprecated"]] | 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, + ) -> RouteListResponse: + """ + List all available API routes with their methods and implementing providers. + + Args: + api_filter: Filter to control which routes are returned. Can be an API level ('v1', + 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or + 'deprecated' to show deprecated routes across all levels. If not specified, + returns all non-deprecated routes. + + 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 + """ + return self._get( + "/v1alpha/admin/inspect/routes", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=maybe_transform({"api_filter": api_filter}, admin_list_routes_params.AdminListRoutesParams), + post_parser=DataWrapper[RouteListResponse]._unwrapper, + ), + cast_to=cast(Type[RouteListResponse], DataWrapper[RouteListResponse]), + ) + + def version( + self, + *, + # 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, + ) -> VersionInfo: + """Get the version of the service.""" + return self._get( + "/v1alpha/admin/version", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=VersionInfo, + ) + + +class AsyncAdminResource(AsyncAPIResource): + @cached_property + def with_raw_response(self) -> AsyncAdminResourceWithRawResponse: + """ + This property can be used as a prefix for any HTTP method call to return + the raw response object instead of the parsed content. + + For more information, see https://www.github.com/llamastack/llama-stack-client-python#accessing-raw-response-data-eg-headers + """ + return AsyncAdminResourceWithRawResponse(self) + + @cached_property + def with_streaming_response(self) -> AsyncAdminResourceWithStreamingResponse: + """ + An alternative to `.with_raw_response` that doesn't eagerly read the response body. + + For more information, see https://www.github.com/llamastack/llama-stack-client-python#with_streaming_response + """ + return AsyncAdminResourceWithStreamingResponse(self) + + async def health( + self, + *, + # 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, + ) -> HealthInfo: + """Get the current health status of the service.""" + return await self._get( + "/v1alpha/admin/health", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=HealthInfo, + ) + + async def inspect_provider( + self, + provider_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, + ) -> ProviderInfo: + """ + Get detailed information about a specific provider. + + Args: + provider_id: The ID of the provider to inspect. + + 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 provider_id: + raise ValueError(f"Expected a non-empty value for `provider_id` but received {provider_id!r}") + return await self._get( + f"/v1alpha/admin/providers/{provider_id}", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=ProviderInfo, + ) + + async def list_providers( + self, + *, + # 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, + ) -> ProviderListResponse: + """List all available providers with their configuration and health status.""" + return await self._get( + "/v1alpha/admin/providers", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + post_parser=DataWrapper[ProviderListResponse]._unwrapper, + ), + cast_to=cast(Type[ProviderListResponse], DataWrapper[ProviderListResponse]), + ) + + async def list_routes( + self, + *, + api_filter: Optional[Literal["v1", "v1alpha", "v1beta", "deprecated"]] | 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, + ) -> RouteListResponse: + """ + List all available API routes with their methods and implementing providers. + + Args: + api_filter: Filter to control which routes are returned. Can be an API level ('v1', + 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or + 'deprecated' to show deprecated routes across all levels. If not specified, + returns all non-deprecated routes. + + 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 + """ + return await self._get( + "/v1alpha/admin/inspect/routes", + options=make_request_options( + extra_headers=extra_headers, + extra_query=extra_query, + extra_body=extra_body, + timeout=timeout, + query=await async_maybe_transform( + {"api_filter": api_filter}, admin_list_routes_params.AdminListRoutesParams + ), + post_parser=DataWrapper[RouteListResponse]._unwrapper, + ), + cast_to=cast(Type[RouteListResponse], DataWrapper[RouteListResponse]), + ) + + async def version( + self, + *, + # 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, + ) -> VersionInfo: + """Get the version of the service.""" + return await self._get( + "/v1alpha/admin/version", + options=make_request_options( + extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout + ), + cast_to=VersionInfo, + ) + + +class AdminResourceWithRawResponse: + def __init__(self, admin: AdminResource) -> None: + self._admin = admin + + self.health = to_raw_response_wrapper( + admin.health, + ) + self.inspect_provider = to_raw_response_wrapper( + admin.inspect_provider, + ) + self.list_providers = to_raw_response_wrapper( + admin.list_providers, + ) + self.list_routes = to_raw_response_wrapper( + admin.list_routes, + ) + self.version = to_raw_response_wrapper( + admin.version, + ) + + +class AsyncAdminResourceWithRawResponse: + def __init__(self, admin: AsyncAdminResource) -> None: + self._admin = admin + + self.health = async_to_raw_response_wrapper( + admin.health, + ) + self.inspect_provider = async_to_raw_response_wrapper( + admin.inspect_provider, + ) + self.list_providers = async_to_raw_response_wrapper( + admin.list_providers, + ) + self.list_routes = async_to_raw_response_wrapper( + admin.list_routes, + ) + self.version = async_to_raw_response_wrapper( + admin.version, + ) + + +class AdminResourceWithStreamingResponse: + def __init__(self, admin: AdminResource) -> None: + self._admin = admin + + self.health = to_streamed_response_wrapper( + admin.health, + ) + self.inspect_provider = to_streamed_response_wrapper( + admin.inspect_provider, + ) + self.list_providers = to_streamed_response_wrapper( + admin.list_providers, + ) + self.list_routes = to_streamed_response_wrapper( + admin.list_routes, + ) + self.version = to_streamed_response_wrapper( + admin.version, + ) + + +class AsyncAdminResourceWithStreamingResponse: + def __init__(self, admin: AsyncAdminResource) -> None: + self._admin = admin + + self.health = async_to_streamed_response_wrapper( + admin.health, + ) + self.inspect_provider = async_to_streamed_response_wrapper( + admin.inspect_provider, + ) + self.list_providers = async_to_streamed_response_wrapper( + admin.list_providers, + ) + self.list_routes = async_to_streamed_response_wrapper( + admin.list_routes, + ) + self.version = async_to_streamed_response_wrapper( + admin.version, + ) diff --git a/src/llama_stack_client/resources/alpha/alpha.py b/src/llama_stack_client/resources/alpha/alpha.py index 52560942..9fc269f5 100644 --- a/src/llama_stack_client/resources/alpha/alpha.py +++ b/src/llama_stack_client/resources/alpha/alpha.py @@ -8,6 +8,14 @@ from __future__ import annotations +from .admin import ( + AdminResource, + AsyncAdminResource, + AdminResourceWithRawResponse, + AsyncAdminResourceWithRawResponse, + AdminResourceWithStreamingResponse, + AsyncAdminResourceWithStreamingResponse, +) from ..._compat import cached_property from .eval.eval import ( EvalResource, @@ -63,6 +71,10 @@ def benchmarks(self) -> BenchmarksResource: def eval(self) -> EvalResource: return EvalResource(self._client) + @cached_property + def admin(self) -> AdminResource: + return AdminResource(self._client) + @cached_property def with_raw_response(self) -> AlphaResourceWithRawResponse: """ @@ -100,6 +112,10 @@ def benchmarks(self) -> AsyncBenchmarksResource: def eval(self) -> AsyncEvalResource: return AsyncEvalResource(self._client) + @cached_property + def admin(self) -> AsyncAdminResource: + return AsyncAdminResource(self._client) + @cached_property def with_raw_response(self) -> AsyncAlphaResourceWithRawResponse: """ @@ -140,6 +156,10 @@ def benchmarks(self) -> BenchmarksResourceWithRawResponse: def eval(self) -> EvalResourceWithRawResponse: return EvalResourceWithRawResponse(self._alpha.eval) + @cached_property + def admin(self) -> AdminResourceWithRawResponse: + return AdminResourceWithRawResponse(self._alpha.admin) + class AsyncAlphaResourceWithRawResponse: def __init__(self, alpha: AsyncAlphaResource) -> None: @@ -161,6 +181,10 @@ def benchmarks(self) -> AsyncBenchmarksResourceWithRawResponse: def eval(self) -> AsyncEvalResourceWithRawResponse: return AsyncEvalResourceWithRawResponse(self._alpha.eval) + @cached_property + def admin(self) -> AsyncAdminResourceWithRawResponse: + return AsyncAdminResourceWithRawResponse(self._alpha.admin) + class AlphaResourceWithStreamingResponse: def __init__(self, alpha: AlphaResource) -> None: @@ -182,6 +206,10 @@ def benchmarks(self) -> BenchmarksResourceWithStreamingResponse: def eval(self) -> EvalResourceWithStreamingResponse: return EvalResourceWithStreamingResponse(self._alpha.eval) + @cached_property + def admin(self) -> AdminResourceWithStreamingResponse: + return AdminResourceWithStreamingResponse(self._alpha.admin) + class AsyncAlphaResourceWithStreamingResponse: def __init__(self, alpha: AsyncAlphaResource) -> None: @@ -202,3 +230,7 @@ def benchmarks(self) -> AsyncBenchmarksResourceWithStreamingResponse: @cached_property def eval(self) -> AsyncEvalResourceWithStreamingResponse: return AsyncEvalResourceWithStreamingResponse(self._alpha.eval) + + @cached_property + def admin(self) -> AsyncAdminResourceWithStreamingResponse: + return AsyncAdminResourceWithStreamingResponse(self._alpha.admin) diff --git a/src/llama_stack_client/resources/alpha/benchmarks.py b/src/llama_stack_client/resources/alpha/benchmarks.py index b737258a..8cfb3a1b 100644 --- a/src/llama_stack_client/resources/alpha/benchmarks.py +++ b/src/llama_stack_client/resources/alpha/benchmarks.py @@ -67,6 +67,8 @@ def retrieve( Get a benchmark by its ID. Args: + benchmark_id: The ID of the benchmark to get. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -129,6 +131,18 @@ def register( Register a benchmark. Args: + benchmark_id: The ID of the benchmark to register. + + dataset_id: The ID of the dataset to use for the benchmark. + + scoring_functions: The scoring functions to use for the benchmark. + + metadata: The metadata to use for the benchmark. + + provider_benchmark_id: The ID of the provider benchmark to use for the benchmark. + + provider_id: The ID of the provider to use for the benchmark. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -173,6 +187,8 @@ def unregister( Unregister a benchmark. Args: + benchmark_id: The ID of the benchmark to unregister. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -228,6 +244,8 @@ async def retrieve( Get a benchmark by its ID. Args: + benchmark_id: The ID of the benchmark to get. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -290,6 +308,18 @@ async def register( Register a benchmark. Args: + benchmark_id: The ID of the benchmark to register. + + dataset_id: The ID of the dataset to use for the benchmark. + + scoring_functions: The scoring functions to use for the benchmark. + + metadata: The metadata to use for the benchmark. + + provider_benchmark_id: The ID of the provider benchmark to use for the benchmark. + + provider_id: The ID of the provider to use for the benchmark. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -334,6 +364,8 @@ async def unregister( Unregister a benchmark. Args: + benchmark_id: The ID of the benchmark to unregister. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/llama_stack_client/resources/batches.py b/src/llama_stack_client/resources/batches.py index 0f0a46ae..288a00f7 100644 --- a/src/llama_stack_client/resources/batches.py +++ b/src/llama_stack_client/resources/batches.py @@ -73,6 +73,16 @@ def create( Create a new batch for processing multiple API requests. Args: + completion_window: The time window within which the batch should be processed. + + endpoint: The endpoint to be used for all requests in the batch. + + input_file_id: The ID of an uploaded file containing requests for the batch. + + idempotency_key: Optional idempotency key. When provided, enables idempotent behavior. + + metadata: Optional metadata for the batch. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -114,6 +124,8 @@ def retrieve( Retrieve information about a specific batch. Args: + batch_id: The ID of the batch to retrieve. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -148,6 +160,10 @@ def list( List all batches for the current user. Args: + after: Optional cursor for pagination. Returns batches after this ID. + + limit: Maximum number of batches to return. Defaults to 20. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -190,6 +206,8 @@ def cancel( Cancel a batch that is in progress. Args: + batch_id: The ID of the batch to cancel. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -248,6 +266,16 @@ async def create( Create a new batch for processing multiple API requests. Args: + completion_window: The time window within which the batch should be processed. + + endpoint: The endpoint to be used for all requests in the batch. + + input_file_id: The ID of an uploaded file containing requests for the batch. + + idempotency_key: Optional idempotency key. When provided, enables idempotent behavior. + + metadata: Optional metadata for the batch. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -289,6 +317,8 @@ async def retrieve( Retrieve information about a specific batch. Args: + batch_id: The ID of the batch to retrieve. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -323,6 +353,10 @@ def list( List all batches for the current user. Args: + after: Optional cursor for pagination. Returns batches after this ID. + + limit: Maximum number of batches to return. Defaults to 20. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -365,6 +399,8 @@ async def cancel( Cancel a batch that is in progress. Args: + batch_id: The ID of the batch to cancel. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/llama_stack_client/resources/beta/datasets.py b/src/llama_stack_client/resources/beta/datasets.py index 439c91f8..d929350f 100644 --- a/src/llama_stack_client/resources/beta/datasets.py +++ b/src/llama_stack_client/resources/beta/datasets.py @@ -70,6 +70,8 @@ def retrieve( Get a dataset by its ID. Args: + dataset_id: The ID of the dataset to get. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -217,14 +219,17 @@ def register( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> DatasetRegisterResponse: - """Register a new dataset. + """ + Register a new dataset. Args: - purpose: Purpose of the dataset. + purpose: The purpose of the dataset. - Each purpose has a required input data schema. + source: The data source of the dataset. - source: A dataset that can be obtained from a URI. + dataset_id: The ID of the dataset. If not provided, an ID will be generated. + + metadata: The metadata for the dataset. extra_headers: Send extra headers @@ -267,6 +272,8 @@ def unregister( Unregister a dataset by its ID. Args: + dataset_id: The ID of the dataset to unregister. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -322,6 +329,8 @@ async def retrieve( Get a dataset by its ID. Args: + dataset_id: The ID of the dataset to get. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -469,14 +478,17 @@ async def register( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> DatasetRegisterResponse: - """Register a new dataset. + """ + Register a new dataset. Args: - purpose: Purpose of the dataset. + purpose: The purpose of the dataset. - Each purpose has a required input data schema. + source: The data source of the dataset. - source: A dataset that can be obtained from a URI. + dataset_id: The ID of the dataset. If not provided, an ID will be generated. + + metadata: The metadata for the dataset. extra_headers: Send extra headers @@ -519,6 +531,8 @@ async def unregister( Unregister a dataset by its ID. Args: + dataset_id: The ID of the dataset to unregister. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/llama_stack_client/resources/inspect.py b/src/llama_stack_client/resources/inspect.py index 73e7c972..d79aef7a 100644 --- a/src/llama_stack_client/resources/inspect.py +++ b/src/llama_stack_client/resources/inspect.py @@ -20,8 +20,8 @@ async_to_streamed_response_wrapper, ) from .._base_client import make_request_options -from ..types.health_info import HealthInfo -from ..types.version_info import VersionInfo +from ..types.shared.health_info import HealthInfo +from ..types.shared.version_info import VersionInfo __all__ = ["InspectResource", "AsyncInspectResource"] @@ -56,11 +56,7 @@ def health( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> HealthInfo: - """ - Get health status. - - Get the current health status of the service. - """ + """Get the current health status of the service.""" return self._get( "/v1/health", options=make_request_options( @@ -79,11 +75,7 @@ def version( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VersionInfo: - """ - Get version. - - Get the version of the service. - """ + """Get the version of the service.""" return self._get( "/v1/version", options=make_request_options( @@ -123,11 +115,7 @@ async def health( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> HealthInfo: - """ - Get health status. - - Get the current health status of the service. - """ + """Get the current health status of the service.""" return await self._get( "/v1/health", options=make_request_options( @@ -146,11 +134,7 @@ async def version( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> VersionInfo: - """ - Get version. - - Get the version of the service. - """ + """Get the version of the service.""" return await self._get( "/v1/version", options=make_request_options( diff --git a/src/llama_stack_client/resources/providers.py b/src/llama_stack_client/resources/providers.py index 0a538c8c..23f6cc1d 100644 --- a/src/llama_stack_client/resources/providers.py +++ b/src/llama_stack_client/resources/providers.py @@ -23,7 +23,7 @@ ) from .._wrappers import DataWrapper from .._base_client import make_request_options -from ..types.provider_info import ProviderInfo +from ..types.shared.provider_info import ProviderInfo from ..types.provider_list_response import ProviderListResponse __all__ = ["ProvidersResource", "AsyncProvidersResource"] @@ -61,11 +61,11 @@ def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ProviderInfo: """ - Get provider. - Get detailed information about a specific provider. Args: + provider_id: The ID of the provider to inspect. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -94,11 +94,7 @@ def list( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ProviderListResponse: - """ - List providers. - - List all available providers. - """ + """List all available providers.""" return self._get( "/v1/providers", options=make_request_options( @@ -144,11 +140,11 @@ async def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ProviderInfo: """ - Get provider. - Get detailed information about a specific provider. Args: + provider_id: The ID of the provider to inspect. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -177,11 +173,7 @@ async def list( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ProviderListResponse: - """ - List providers. - - List all available providers. - """ + """List all available providers.""" return await self._get( "/v1/providers", options=make_request_options( diff --git a/src/llama_stack_client/resources/responses/responses.py b/src/llama_stack_client/resources/responses/responses.py index a008ea0f..f2df1b4f 100644 --- a/src/llama_stack_client/resources/responses/responses.py +++ b/src/llama_stack_client/resources/responses/responses.py @@ -8,13 +8,13 @@ from __future__ import annotations -from typing import Union, Iterable, Optional +from typing import Dict, List, Union, Iterable, Optional from typing_extensions import Literal, overload import httpx from ...types import response_list_params, response_create_params -from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given +from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given from ..._utils import required_args, maybe_transform, async_maybe_transform from ..._compat import cached_property from ..._resource import SyncAPIResource, AsyncAPIResource @@ -79,10 +79,24 @@ def create( ], model: str, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, @@ -90,6 +104,7 @@ def create( stream: Optional[Literal[False]] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -106,6 +121,8 @@ def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -129,16 +146,31 @@ def create( model: str, stream: Literal[True], conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, store: Optional[bool] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -155,6 +187,8 @@ def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -178,16 +212,31 @@ def create( model: str, stream: bool, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, store: Optional[bool] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -204,6 +253,8 @@ def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -226,10 +277,24 @@ def create( ], model: str, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, @@ -237,6 +302,7 @@ def create( stream: Optional[Literal[False]] | Literal[True] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -256,6 +322,7 @@ def create( "instructions": instructions, "max_infer_iters": max_infer_iters, "max_tool_calls": max_tool_calls, + "metadata": metadata, "parallel_tool_calls": parallel_tool_calls, "previous_response_id": previous_response_id, "prompt": prompt, @@ -263,6 +330,7 @@ def create( "stream": stream, "temperature": temperature, "text": text, + "tool_choice": tool_choice, "tools": tools, }, response_create_params.ResponseCreateParamsStreaming @@ -429,10 +497,24 @@ async def create( ], model: str, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, @@ -440,6 +522,7 @@ async def create( stream: Optional[Literal[False]] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -456,6 +539,8 @@ async def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -479,16 +564,31 @@ async def create( model: str, stream: Literal[True], conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, store: Optional[bool] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -505,6 +605,8 @@ async def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -528,16 +630,31 @@ async def create( model: str, stream: bool, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, store: Optional[bool] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -554,6 +671,8 @@ async def create( text: Text response configuration for OpenAI responses. + tool_choice: Constrains the tools available to the model to a pre-defined set. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -576,10 +695,24 @@ async def create( ], model: str, conversation: Optional[str] | Omit = omit, - include: Optional[SequenceNotStr[str]] | Omit = omit, + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] + | Omit = omit, instructions: Optional[str] | Omit = omit, max_infer_iters: Optional[int] | Omit = omit, max_tool_calls: Optional[int] | Omit = omit, + metadata: Optional[Dict[str, str]] | Omit = omit, parallel_tool_calls: Optional[bool] | Omit = omit, previous_response_id: Optional[str] | Omit = omit, prompt: Optional[response_create_params.Prompt] | Omit = omit, @@ -587,6 +720,7 @@ async def create( stream: Optional[Literal[False]] | Literal[True] | Omit = omit, temperature: Optional[float] | Omit = omit, text: Optional[response_create_params.Text] | Omit = omit, + tool_choice: Optional[response_create_params.ToolChoice] | Omit = omit, tools: Optional[Iterable[response_create_params.Tool]] | 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. @@ -606,6 +740,7 @@ async def create( "instructions": instructions, "max_infer_iters": max_infer_iters, "max_tool_calls": max_tool_calls, + "metadata": metadata, "parallel_tool_calls": parallel_tool_calls, "previous_response_id": previous_response_id, "prompt": prompt, @@ -613,6 +748,7 @@ async def create( "stream": stream, "temperature": temperature, "text": text, + "tool_choice": tool_choice, "tools": tools, }, response_create_params.ResponseCreateParamsStreaming diff --git a/src/llama_stack_client/resources/routes.py b/src/llama_stack_client/resources/routes.py index c8e93cfd..7c906f5b 100644 --- a/src/llama_stack_client/resources/routes.py +++ b/src/llama_stack_client/resources/routes.py @@ -63,11 +63,14 @@ def list( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> RouteListResponse: """ - List routes. - List all available API routes with their methods and implementing providers. Args: + api_filter: Optional filter to control which routes are returned. Can be an API level ('v1', + 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or + 'deprecated' to show deprecated routes across all levels. If not specified, + returns all non-deprecated routes. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request @@ -122,11 +125,14 @@ async def list( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> RouteListResponse: """ - List routes. - List all available API routes with their methods and implementing providers. Args: + api_filter: Optional filter to control which routes are returned. Can be an API level ('v1', + 'v1alpha', 'v1beta') to show non-deprecated routes at that level, or + 'deprecated' to show deprecated routes across all levels. If not specified, + returns all non-deprecated routes. + extra_headers: Send extra headers extra_query: Add additional query parameters to the request diff --git a/src/llama_stack_client/resources/tool_runtime.py b/src/llama_stack_client/resources/tool_runtime.py index cd510071..9f78ed23 100644 --- a/src/llama_stack_client/resources/tool_runtime.py +++ b/src/llama_stack_client/resources/tool_runtime.py @@ -8,6 +8,7 @@ from __future__ import annotations +import typing_extensions from typing import Dict, Type, Optional, cast import httpx @@ -51,6 +52,7 @@ def with_streaming_response(self) -> ToolRuntimeResourceWithStreamingResponse: """ return ToolRuntimeResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") def invoke_tool( self, *, @@ -92,6 +94,7 @@ def invoke_tool( cast_to=ToolInvocationResult, ) + @typing_extensions.deprecated("deprecated") def list_tools( self, *, @@ -160,6 +163,7 @@ def with_streaming_response(self) -> AsyncToolRuntimeResourceWithStreamingRespon """ return AsyncToolRuntimeResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") async def invoke_tool( self, *, @@ -201,6 +205,7 @@ async def invoke_tool( cast_to=ToolInvocationResult, ) + @typing_extensions.deprecated("deprecated") async def list_tools( self, *, @@ -253,11 +258,15 @@ class ToolRuntimeResourceWithRawResponse: def __init__(self, tool_runtime: ToolRuntimeResource) -> None: self._tool_runtime = tool_runtime - self.invoke_tool = to_raw_response_wrapper( - tool_runtime.invoke_tool, + self.invoke_tool = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + tool_runtime.invoke_tool, # pyright: ignore[reportDeprecated], + ) ) - self.list_tools = to_raw_response_wrapper( - tool_runtime.list_tools, + self.list_tools = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + tool_runtime.list_tools, # pyright: ignore[reportDeprecated], + ) ) @@ -265,11 +274,15 @@ class AsyncToolRuntimeResourceWithRawResponse: def __init__(self, tool_runtime: AsyncToolRuntimeResource) -> None: self._tool_runtime = tool_runtime - self.invoke_tool = async_to_raw_response_wrapper( - tool_runtime.invoke_tool, + self.invoke_tool = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + tool_runtime.invoke_tool, # pyright: ignore[reportDeprecated], + ) ) - self.list_tools = async_to_raw_response_wrapper( - tool_runtime.list_tools, + self.list_tools = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + tool_runtime.list_tools, # pyright: ignore[reportDeprecated], + ) ) @@ -277,11 +290,15 @@ class ToolRuntimeResourceWithStreamingResponse: def __init__(self, tool_runtime: ToolRuntimeResource) -> None: self._tool_runtime = tool_runtime - self.invoke_tool = to_streamed_response_wrapper( - tool_runtime.invoke_tool, + self.invoke_tool = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + tool_runtime.invoke_tool, # pyright: ignore[reportDeprecated], + ) ) - self.list_tools = to_streamed_response_wrapper( - tool_runtime.list_tools, + self.list_tools = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + tool_runtime.list_tools, # pyright: ignore[reportDeprecated], + ) ) @@ -289,9 +306,13 @@ class AsyncToolRuntimeResourceWithStreamingResponse: def __init__(self, tool_runtime: AsyncToolRuntimeResource) -> None: self._tool_runtime = tool_runtime - self.invoke_tool = async_to_streamed_response_wrapper( - tool_runtime.invoke_tool, + self.invoke_tool = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + tool_runtime.invoke_tool, # pyright: ignore[reportDeprecated], + ) ) - self.list_tools = async_to_streamed_response_wrapper( - tool_runtime.list_tools, + self.list_tools = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + tool_runtime.list_tools, # pyright: ignore[reportDeprecated], + ) ) diff --git a/src/llama_stack_client/resources/toolgroups.py b/src/llama_stack_client/resources/toolgroups.py index 14a7a0bd..1f399cf7 100644 --- a/src/llama_stack_client/resources/toolgroups.py +++ b/src/llama_stack_client/resources/toolgroups.py @@ -52,6 +52,7 @@ def with_streaming_response(self) -> ToolgroupsResourceWithStreamingResponse: """ return ToolgroupsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") def list( self, *, @@ -75,6 +76,7 @@ def list( cast_to=cast(Type[ToolgroupListResponse], DataWrapper[ToolgroupListResponse]), ) + @typing_extensions.deprecated("deprecated") def get( self, toolgroup_id: str, @@ -211,6 +213,7 @@ def with_streaming_response(self) -> AsyncToolgroupsResourceWithStreamingRespons """ return AsyncToolgroupsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") async def list( self, *, @@ -234,6 +237,7 @@ async def list( cast_to=cast(Type[ToolgroupListResponse], DataWrapper[ToolgroupListResponse]), ) + @typing_extensions.deprecated("deprecated") async def get( self, toolgroup_id: str, @@ -354,11 +358,15 @@ class ToolgroupsResourceWithRawResponse: def __init__(self, toolgroups: ToolgroupsResource) -> None: self._toolgroups = toolgroups - self.list = to_raw_response_wrapper( - toolgroups.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + toolgroups.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_raw_response_wrapper( - toolgroups.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + toolgroups.get, # pyright: ignore[reportDeprecated], + ) ) self.register = ( # pyright: ignore[reportDeprecated] to_raw_response_wrapper( @@ -376,11 +384,15 @@ class AsyncToolgroupsResourceWithRawResponse: def __init__(self, toolgroups: AsyncToolgroupsResource) -> None: self._toolgroups = toolgroups - self.list = async_to_raw_response_wrapper( - toolgroups.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + toolgroups.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_raw_response_wrapper( - toolgroups.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + toolgroups.get, # pyright: ignore[reportDeprecated], + ) ) self.register = ( # pyright: ignore[reportDeprecated] async_to_raw_response_wrapper( @@ -398,11 +410,15 @@ class ToolgroupsResourceWithStreamingResponse: def __init__(self, toolgroups: ToolgroupsResource) -> None: self._toolgroups = toolgroups - self.list = to_streamed_response_wrapper( - toolgroups.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + toolgroups.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_streamed_response_wrapper( - toolgroups.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + toolgroups.get, # pyright: ignore[reportDeprecated], + ) ) self.register = ( # pyright: ignore[reportDeprecated] to_streamed_response_wrapper( @@ -420,11 +436,15 @@ class AsyncToolgroupsResourceWithStreamingResponse: def __init__(self, toolgroups: AsyncToolgroupsResource) -> None: self._toolgroups = toolgroups - self.list = async_to_streamed_response_wrapper( - toolgroups.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + toolgroups.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_streamed_response_wrapper( - toolgroups.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + toolgroups.get, # pyright: ignore[reportDeprecated], + ) ) self.register = ( # pyright: ignore[reportDeprecated] async_to_streamed_response_wrapper( diff --git a/src/llama_stack_client/resources/tools.py b/src/llama_stack_client/resources/tools.py index 9da425b7..00a3be6b 100644 --- a/src/llama_stack_client/resources/tools.py +++ b/src/llama_stack_client/resources/tools.py @@ -8,6 +8,7 @@ from __future__ import annotations +import typing_extensions from typing import Type, Optional, cast import httpx @@ -51,6 +52,7 @@ def with_streaming_response(self) -> ToolsResourceWithStreamingResponse: """ return ToolsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") def list( self, *, @@ -87,6 +89,7 @@ def list( cast_to=cast(Type[ToolListResponse], DataWrapper[ToolListResponse]), ) + @typing_extensions.deprecated("deprecated") def get( self, tool_name: str, @@ -141,6 +144,7 @@ def with_streaming_response(self) -> AsyncToolsResourceWithStreamingResponse: """ return AsyncToolsResourceWithStreamingResponse(self) + @typing_extensions.deprecated("deprecated") async def list( self, *, @@ -177,6 +181,7 @@ async def list( cast_to=cast(Type[ToolListResponse], DataWrapper[ToolListResponse]), ) + @typing_extensions.deprecated("deprecated") async def get( self, tool_name: str, @@ -215,11 +220,15 @@ class ToolsResourceWithRawResponse: def __init__(self, tools: ToolsResource) -> None: self._tools = tools - self.list = to_raw_response_wrapper( - tools.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + tools.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_raw_response_wrapper( - tools.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_raw_response_wrapper( + tools.get, # pyright: ignore[reportDeprecated], + ) ) @@ -227,11 +236,15 @@ class AsyncToolsResourceWithRawResponse: def __init__(self, tools: AsyncToolsResource) -> None: self._tools = tools - self.list = async_to_raw_response_wrapper( - tools.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + tools.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_raw_response_wrapper( - tools.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_raw_response_wrapper( + tools.get, # pyright: ignore[reportDeprecated], + ) ) @@ -239,11 +252,15 @@ class ToolsResourceWithStreamingResponse: def __init__(self, tools: ToolsResource) -> None: self._tools = tools - self.list = to_streamed_response_wrapper( - tools.list, + self.list = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + tools.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = to_streamed_response_wrapper( - tools.get, + self.get = ( # pyright: ignore[reportDeprecated] + to_streamed_response_wrapper( + tools.get, # pyright: ignore[reportDeprecated], + ) ) @@ -251,9 +268,13 @@ class AsyncToolsResourceWithStreamingResponse: def __init__(self, tools: AsyncToolsResource) -> None: self._tools = tools - self.list = async_to_streamed_response_wrapper( - tools.list, + self.list = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + tools.list, # pyright: ignore[reportDeprecated], + ) ) - self.get = async_to_streamed_response_wrapper( - tools.get, + self.get = ( # pyright: ignore[reportDeprecated] + async_to_streamed_response_wrapper( + tools.get, # pyright: ignore[reportDeprecated], + ) ) diff --git a/src/llama_stack_client/types/__init__.py b/src/llama_stack_client/types/__init__.py index 8cad8216..e8b23d5e 100644 --- a/src/llama_stack_client/types/__init__.py +++ b/src/llama_stack_client/types/__init__.py @@ -13,22 +13,24 @@ from .prompt import Prompt as Prompt from .shared import ( ParamType as ParamType, + RouteInfo as RouteInfo, + HealthInfo as HealthInfo, + VersionInfo as VersionInfo, + ProviderInfo as ProviderInfo, ScoringResult as ScoringResult, SystemMessage as SystemMessage, SamplingParams as SamplingParams, SafetyViolation as SafetyViolation, InterleavedContent as InterleavedContent, + ListRoutesResponse as ListRoutesResponse, + ListProvidersResponse as ListProvidersResponse, InterleavedContentItem as InterleavedContentItem, ) from .shield import Shield as Shield from .tool_def import ToolDef as ToolDef -from .route_info import RouteInfo as RouteInfo from .scoring_fn import ScoringFn as ScoringFn from .tool_group import ToolGroup as ToolGroup -from .health_info import HealthInfo as HealthInfo from .vector_store import VectorStore as VectorStore -from .version_info import VersionInfo as VersionInfo -from .provider_info import ProviderInfo as ProviderInfo from .create_response import CreateResponse as CreateResponse from .response_object import ResponseObject as ResponseObject from .file_list_params import FileListParams as FileListParams @@ -46,7 +48,6 @@ from .run_shield_response import RunShieldResponse as RunShieldResponse from .delete_file_response import DeleteFileResponse as DeleteFileResponse from .list_models_response import ListModelsResponse as ListModelsResponse -from .list_routes_response import ListRoutesResponse as ListRoutesResponse from .prompt_create_params import PromptCreateParams as PromptCreateParams from .prompt_list_response import PromptListResponse as PromptListResponse from .prompt_update_params import PromptUpdateParams as PromptUpdateParams @@ -71,7 +72,6 @@ from .vector_io_query_params import VectorIoQueryParams as VectorIoQueryParams from .batch_retrieve_response import BatchRetrieveResponse as BatchRetrieveResponse from .embedding_create_params import EmbeddingCreateParams as EmbeddingCreateParams -from .list_providers_response import ListProvidersResponse as ListProvidersResponse from .model_register_response import ModelRegisterResponse as ModelRegisterResponse from .model_retrieve_response import ModelRetrieveResponse as ModelRetrieveResponse from .toolgroup_list_response import ToolgroupListResponse as ToolgroupListResponse diff --git a/src/llama_stack_client/types/alpha/__init__.py b/src/llama_stack_client/types/alpha/__init__.py index 42e0ba8e..f9423b58 100644 --- a/src/llama_stack_client/types/alpha/__init__.py +++ b/src/llama_stack_client/types/alpha/__init__.py @@ -16,6 +16,7 @@ from .benchmark_config_param import BenchmarkConfigParam as BenchmarkConfigParam from .benchmark_list_response import BenchmarkListResponse as BenchmarkListResponse from .inference_rerank_params import InferenceRerankParams as InferenceRerankParams +from .admin_list_routes_params import AdminListRoutesParams as AdminListRoutesParams from .list_benchmarks_response import ListBenchmarksResponse as ListBenchmarksResponse from .benchmark_register_params import BenchmarkRegisterParams as BenchmarkRegisterParams from .eval_evaluate_rows_params import EvalEvaluateRowsParams as EvalEvaluateRowsParams diff --git a/src/llama_stack_client/types/alpha/admin_list_routes_params.py b/src/llama_stack_client/types/alpha/admin_list_routes_params.py new file mode 100644 index 00000000..7dd6b6d4 --- /dev/null +++ b/src/llama_stack_client/types/alpha/admin_list_routes_params.py @@ -0,0 +1,24 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +# 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 Literal, TypedDict + +__all__ = ["AdminListRoutesParams"] + + +class AdminListRoutesParams(TypedDict, total=False): + api_filter: Optional[Literal["v1", "v1alpha", "v1beta", "deprecated"]] + """Filter to control which routes are returned. + + Can be an API level ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at + that level, or 'deprecated' to show deprecated routes across all levels. If not + specified, returns all non-deprecated routes. + """ diff --git a/src/llama_stack_client/types/alpha/benchmark.py b/src/llama_stack_client/types/alpha/benchmark.py index 6bd5e222..ff555036 100644 --- a/src/llama_stack_client/types/alpha/benchmark.py +++ b/src/llama_stack_client/types/alpha/benchmark.py @@ -15,7 +15,10 @@ class Benchmark(BaseModel): + """A benchmark resource for evaluating model performance.""" + dataset_id: str + """Identifier of the dataset to use for the benchmark evaluation.""" identifier: str """Unique identifier for this resource in llama stack""" @@ -24,11 +27,13 @@ class Benchmark(BaseModel): """ID of the provider that owns this resource""" scoring_functions: List[str] + """List of scoring function identifiers to apply during evaluation.""" metadata: Optional[Dict[str, object]] = None - """Metadata for this evaluation task""" + """Metadata for this evaluation task.""" provider_resource_id: Optional[str] = None """Unique identifier for this resource in the provider""" type: Optional[Literal["benchmark"]] = None + """The resource type, always benchmark.""" diff --git a/src/llama_stack_client/types/alpha/benchmark_config_param.py b/src/llama_stack_client/types/alpha/benchmark_config_param.py index 3de48d88..6b6bd3e4 100644 --- a/src/llama_stack_client/types/alpha/benchmark_config_param.py +++ b/src/llama_stack_client/types/alpha/benchmark_config_param.py @@ -26,6 +26,8 @@ class EvalCandidate(TypedDict, total=False): + """A model candidate for evaluation.""" + model: Required[str] sampling_params: Required[SamplingParams] @@ -38,6 +40,8 @@ class EvalCandidate(TypedDict, total=False): class ScoringParamsLlmAsJudgeScoringFnParams(TypedDict, total=False): + """Parameters for LLM-as-judge scoring function configuration.""" + judge_model: Required[str] aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] @@ -52,6 +56,8 @@ class ScoringParamsLlmAsJudgeScoringFnParams(TypedDict, total=False): class ScoringParamsRegexParserScoringFnParams(TypedDict, total=False): + """Parameters for regex parser scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" @@ -62,6 +68,8 @@ class ScoringParamsRegexParserScoringFnParams(TypedDict, total=False): class ScoringParamsBasicScoringFnParams(TypedDict, total=False): + """Parameters for basic scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" @@ -74,6 +82,8 @@ class ScoringParamsBasicScoringFnParams(TypedDict, total=False): class BenchmarkConfigParam(TypedDict, total=False): + """A benchmark configuration for evaluation.""" + eval_candidate: Required[EvalCandidate] """A model candidate for evaluation.""" diff --git a/src/llama_stack_client/types/alpha/benchmark_register_params.py b/src/llama_stack_client/types/alpha/benchmark_register_params.py index 344570d7..b3e09526 100644 --- a/src/llama_stack_client/types/alpha/benchmark_register_params.py +++ b/src/llama_stack_client/types/alpha/benchmark_register_params.py @@ -18,13 +18,19 @@ class BenchmarkRegisterParams(TypedDict, total=False): benchmark_id: Required[str] + """The ID of the benchmark to register.""" dataset_id: Required[str] + """The ID of the dataset to use for the benchmark.""" scoring_functions: Required[SequenceNotStr[str]] + """The scoring functions to use for the benchmark.""" metadata: Optional[Dict[str, object]] + """The metadata to use for the benchmark.""" provider_benchmark_id: Optional[str] + """The ID of the provider benchmark to use for the benchmark.""" provider_id: Optional[str] + """The ID of the provider to use for the benchmark.""" diff --git a/src/llama_stack_client/types/alpha/evaluate_response.py b/src/llama_stack_client/types/alpha/evaluate_response.py index 4e4c453c..b680ee72 100644 --- a/src/llama_stack_client/types/alpha/evaluate_response.py +++ b/src/llama_stack_client/types/alpha/evaluate_response.py @@ -15,6 +15,8 @@ class EvaluateResponse(BaseModel): + """The response from an evaluation.""" + generations: List[Dict[str, object]] scores: Dict[str, ScoringResult] diff --git a/src/llama_stack_client/types/alpha/inference_rerank_params.py b/src/llama_stack_client/types/alpha/inference_rerank_params.py index d668c2b7..b6a12b3b 100644 --- a/src/llama_stack_client/types/alpha/inference_rerank_params.py +++ b/src/llama_stack_client/types/alpha/inference_rerank_params.py @@ -38,18 +38,24 @@ class InferenceRerankParams(TypedDict, total=False): class ItemOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class ItemOpenAIChatCompletionContentPartImageParamImageURL(TypedDict, total=False): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: Required[str] detail: Optional[str] class ItemOpenAIChatCompletionContentPartImageParam(TypedDict, total=False): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: Required[ItemOpenAIChatCompletionContentPartImageParamImageURL] """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -62,18 +68,24 @@ class ItemOpenAIChatCompletionContentPartImageParam(TypedDict, total=False): class QueryOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class QueryOpenAIChatCompletionContentPartImageParamImageURL(TypedDict, total=False): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: Required[str] detail: Optional[str] class QueryOpenAIChatCompletionContentPartImageParam(TypedDict, total=False): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: Required[QueryOpenAIChatCompletionContentPartImageParamImageURL] """Image URL specification for OpenAI-compatible chat completion messages.""" diff --git a/src/llama_stack_client/types/alpha/inference_rerank_response.py b/src/llama_stack_client/types/alpha/inference_rerank_response.py index c1221c2e..a1af8814 100644 --- a/src/llama_stack_client/types/alpha/inference_rerank_response.py +++ b/src/llama_stack_client/types/alpha/inference_rerank_response.py @@ -15,6 +15,8 @@ class InferenceRerankResponseItem(BaseModel): + """A single rerank result from a reranking response.""" + index: int relevance_score: float diff --git a/src/llama_stack_client/types/alpha/job.py b/src/llama_stack_client/types/alpha/job.py index 8aace3cc..6234f1f0 100644 --- a/src/llama_stack_client/types/alpha/job.py +++ b/src/llama_stack_client/types/alpha/job.py @@ -14,6 +14,8 @@ class Job(BaseModel): + """A job execution instance with status tracking.""" + job_id: str status: Literal["completed", "in_progress", "failed", "scheduled", "cancelled"] diff --git a/src/llama_stack_client/types/alpha/list_benchmarks_response.py b/src/llama_stack_client/types/alpha/list_benchmarks_response.py index 8ea3b963..671b1b1d 100644 --- a/src/llama_stack_client/types/alpha/list_benchmarks_response.py +++ b/src/llama_stack_client/types/alpha/list_benchmarks_response.py @@ -13,4 +13,7 @@ class ListBenchmarksResponse(BaseModel): + """Response containing a list of benchmark objects.""" + data: BenchmarkListResponse + """List of benchmark objects.""" diff --git a/src/llama_stack_client/types/alpha/post_training/job_artifacts_response.py b/src/llama_stack_client/types/alpha/post_training/job_artifacts_response.py index 3f6b8296..235ec773 100644 --- a/src/llama_stack_client/types/alpha/post_training/job_artifacts_response.py +++ b/src/llama_stack_client/types/alpha/post_training/job_artifacts_response.py @@ -15,6 +15,8 @@ class CheckpointTrainingMetrics(BaseModel): + """Training metrics captured during post-training jobs.""" + epoch: int perplexity: float @@ -25,6 +27,8 @@ class CheckpointTrainingMetrics(BaseModel): class Checkpoint(BaseModel): + """Checkpoint created during training runs.""" + created_at: datetime epoch: int @@ -40,6 +44,8 @@ class Checkpoint(BaseModel): class JobArtifactsResponse(BaseModel): + """Artifacts of a finetuning job.""" + job_uuid: str checkpoints: Optional[List[Checkpoint]] = None diff --git a/src/llama_stack_client/types/alpha/post_training/job_status_response.py b/src/llama_stack_client/types/alpha/post_training/job_status_response.py index 816a9bf1..dbafbaa4 100644 --- a/src/llama_stack_client/types/alpha/post_training/job_status_response.py +++ b/src/llama_stack_client/types/alpha/post_training/job_status_response.py @@ -16,6 +16,8 @@ class CheckpointTrainingMetrics(BaseModel): + """Training metrics captured during post-training jobs.""" + epoch: int perplexity: float @@ -26,6 +28,8 @@ class CheckpointTrainingMetrics(BaseModel): class Checkpoint(BaseModel): + """Checkpoint created during training runs.""" + created_at: datetime epoch: int @@ -41,6 +45,8 @@ class Checkpoint(BaseModel): class JobStatusResponse(BaseModel): + """Status of a finetuning job.""" + job_uuid: str status: Literal["completed", "in_progress", "failed", "scheduled", "cancelled"] diff --git a/src/llama_stack_client/types/alpha/post_training_preference_optimize_params.py b/src/llama_stack_client/types/alpha/post_training_preference_optimize_params.py index 2fbebaa2..7a9f1837 100644 --- a/src/llama_stack_client/types/alpha/post_training_preference_optimize_params.py +++ b/src/llama_stack_client/types/alpha/post_training_preference_optimize_params.py @@ -38,12 +38,16 @@ class PostTrainingPreferenceOptimizeParams(TypedDict, total=False): class AlgorithmConfig(TypedDict, total=False): + """Configuration for Direct Preference Optimization (DPO) alignment.""" + beta: Required[float] loss_type: Literal["sigmoid", "hinge", "ipo", "kto_pair"] class TrainingConfigDataConfig(TypedDict, total=False): + """Configuration for training data and data loading.""" + batch_size: Required[int] data_format: Required[Literal["instruct", "dialog"]] @@ -61,6 +65,8 @@ class TrainingConfigDataConfig(TypedDict, total=False): class TrainingConfigEfficiencyConfig(TypedDict, total=False): + """Configuration for memory and compute efficiency optimizations.""" + enable_activation_checkpointing: Optional[bool] enable_activation_offloading: Optional[bool] @@ -71,6 +77,8 @@ class TrainingConfigEfficiencyConfig(TypedDict, total=False): class TrainingConfigOptimizerConfig(TypedDict, total=False): + """Configuration parameters for the optimization algorithm.""" + lr: Required[float] num_warmup_steps: Required[int] @@ -82,6 +90,8 @@ class TrainingConfigOptimizerConfig(TypedDict, total=False): class TrainingConfig(TypedDict, total=False): + """Comprehensive configuration for the training process.""" + n_epochs: Required[int] data_config: Optional[TrainingConfigDataConfig] diff --git a/src/llama_stack_client/types/alpha/post_training_supervised_fine_tune_params.py b/src/llama_stack_client/types/alpha/post_training_supervised_fine_tune_params.py index dacc50aa..892676d9 100644 --- a/src/llama_stack_client/types/alpha/post_training_supervised_fine_tune_params.py +++ b/src/llama_stack_client/types/alpha/post_training_supervised_fine_tune_params.py @@ -45,6 +45,8 @@ class PostTrainingSupervisedFineTuneParams(TypedDict, total=False): class TrainingConfigDataConfig(TypedDict, total=False): + """Configuration for training data and data loading.""" + batch_size: Required[int] data_format: Required[Literal["instruct", "dialog"]] @@ -62,6 +64,8 @@ class TrainingConfigDataConfig(TypedDict, total=False): class TrainingConfigEfficiencyConfig(TypedDict, total=False): + """Configuration for memory and compute efficiency optimizations.""" + enable_activation_checkpointing: Optional[bool] enable_activation_offloading: Optional[bool] @@ -72,6 +76,8 @@ class TrainingConfigEfficiencyConfig(TypedDict, total=False): class TrainingConfigOptimizerConfig(TypedDict, total=False): + """Configuration parameters for the optimization algorithm.""" + lr: Required[float] num_warmup_steps: Required[int] @@ -83,6 +89,8 @@ class TrainingConfigOptimizerConfig(TypedDict, total=False): class TrainingConfig(TypedDict, total=False): + """Comprehensive configuration for the training process.""" + n_epochs: Required[int] data_config: Optional[TrainingConfigDataConfig] @@ -104,6 +112,8 @@ class TrainingConfig(TypedDict, total=False): class AlgorithmConfigLoraFinetuningConfig(TypedDict, total=False): + """Configuration for Low-Rank Adaptation (LoRA) fine-tuning.""" + alpha: Required[int] apply_lora_to_mlp: Required[bool] @@ -122,6 +132,8 @@ class AlgorithmConfigLoraFinetuningConfig(TypedDict, total=False): class AlgorithmConfigQatFinetuningConfig(TypedDict, total=False): + """Configuration for Quantization-Aware Training (QAT) fine-tuning.""" + group_size: Required[int] quantizer_name: Required[str] diff --git a/src/llama_stack_client/types/batch_create_params.py b/src/llama_stack_client/types/batch_create_params.py index 64ebc841..1e9d0c06 100644 --- a/src/llama_stack_client/types/batch_create_params.py +++ b/src/llama_stack_client/types/batch_create_params.py @@ -16,11 +16,16 @@ class BatchCreateParams(TypedDict, total=False): completion_window: Required[Literal["24h"]] + """The time window within which the batch should be processed.""" endpoint: Required[str] + """The endpoint to be used for all requests in the batch.""" input_file_id: Required[str] + """The ID of an uploaded file containing requests for the batch.""" idempotency_key: Optional[str] + """Optional idempotency key. When provided, enables idempotent behavior.""" metadata: Optional[Dict[str, str]] + """Optional metadata for the batch.""" diff --git a/src/llama_stack_client/types/batch_list_params.py b/src/llama_stack_client/types/batch_list_params.py index 78b78ff0..e29a12c1 100644 --- a/src/llama_stack_client/types/batch_list_params.py +++ b/src/llama_stack_client/types/batch_list_params.py @@ -16,5 +16,7 @@ class BatchListParams(TypedDict, total=False): after: Optional[str] + """Optional cursor for pagination. Returns batches after this ID.""" limit: int + """Maximum number of batches to return. Defaults to 20.""" diff --git a/src/llama_stack_client/types/beta/dataset_iterrows_response.py b/src/llama_stack_client/types/beta/dataset_iterrows_response.py index 72ae28ed..ea7e1d6d 100644 --- a/src/llama_stack_client/types/beta/dataset_iterrows_response.py +++ b/src/llama_stack_client/types/beta/dataset_iterrows_response.py @@ -14,6 +14,8 @@ class DatasetIterrowsResponse(BaseModel): + """A generic paginated response that follows a simple format.""" + data: List[Dict[str, object]] has_more: bool diff --git a/src/llama_stack_client/types/beta/dataset_list_response.py b/src/llama_stack_client/types/beta/dataset_list_response.py index 13669ca1..56c8a177 100644 --- a/src/llama_stack_client/types/beta/dataset_list_response.py +++ b/src/llama_stack_client/types/beta/dataset_list_response.py @@ -22,15 +22,31 @@ class DatasetListResponseItemSourceUriDataSource(BaseModel): + """A dataset that can be obtained from a URI.""" + uri: str + """The dataset can be obtained from a URI. + + E.g. "https://mywebsite.com/mydata.jsonl", "lsfs://mydata.jsonl", + "data:csv;base64,{base64_content}" + """ type: Optional[Literal["uri"]] = None + """The type of data source.""" class DatasetListResponseItemSourceRowsDataSource(BaseModel): + """A dataset stored in rows.""" + rows: List[Dict[str, object]] + """The dataset is stored in rows. + + E.g. [{"messages": [{"role": "user", "content": "Hello, world!"}, {"role": + "assistant", "content": "Hello, world!"}]}] + """ type: Optional[Literal["rows"]] = None + """The type of data source.""" DatasetListResponseItemSource: TypeAlias = Annotated[ @@ -40,6 +56,8 @@ class DatasetListResponseItemSourceRowsDataSource(BaseModel): class DatasetListResponseItem(BaseModel): + """Dataset resource for storing and accessing training or evaluation data.""" + identifier: str """Unique identifier for this resource in llama stack""" @@ -47,10 +65,10 @@ class DatasetListResponseItem(BaseModel): """ID of the provider that owns this resource""" purpose: Literal["post-training/messages", "eval/question-answer", "eval/messages-answer"] - """Purpose of the dataset. Each purpose has a required input data schema.""" + """Purpose of the dataset indicating its intended use""" source: DatasetListResponseItemSource - """A dataset that can be obtained from a URI.""" + """Data source configuration for the dataset""" metadata: Optional[Dict[str, object]] = None """Any additional metadata for this dataset""" @@ -59,6 +77,7 @@ class DatasetListResponseItem(BaseModel): """Unique identifier for this resource in the provider""" type: Optional[Literal["dataset"]] = None + """Type of resource, always 'dataset' for datasets""" DatasetListResponse: TypeAlias = List[DatasetListResponseItem] diff --git a/src/llama_stack_client/types/beta/dataset_register_params.py b/src/llama_stack_client/types/beta/dataset_register_params.py index 639f260d..8891285d 100644 --- a/src/llama_stack_client/types/beta/dataset_register_params.py +++ b/src/llama_stack_client/types/beta/dataset_register_params.py @@ -16,26 +16,44 @@ class DatasetRegisterParams(TypedDict, total=False): purpose: Required[Literal["post-training/messages", "eval/question-answer", "eval/messages-answer"]] - """Purpose of the dataset. Each purpose has a required input data schema.""" + """The purpose of the dataset.""" source: Required[Source] - """A dataset that can be obtained from a URI.""" + """The data source of the dataset.""" dataset_id: Optional[str] + """The ID of the dataset. If not provided, an ID will be generated.""" metadata: Optional[Dict[str, object]] + """The metadata for the dataset.""" class SourceUriDataSource(TypedDict, total=False): + """A dataset that can be obtained from a URI.""" + uri: Required[str] + """The dataset can be obtained from a URI. + + E.g. "https://mywebsite.com/mydata.jsonl", "lsfs://mydata.jsonl", + "data:csv;base64,{base64_content}" + """ type: Literal["uri"] + """The type of data source.""" class SourceRowsDataSource(TypedDict, total=False): + """A dataset stored in rows.""" + rows: Required[Iterable[Dict[str, object]]] + """The dataset is stored in rows. + + E.g. [{"messages": [{"role": "user", "content": "Hello, world!"}, {"role": + "assistant", "content": "Hello, world!"}]}] + """ type: Literal["rows"] + """The type of data source.""" Source: TypeAlias = Union[SourceUriDataSource, SourceRowsDataSource] diff --git a/src/llama_stack_client/types/beta/dataset_register_response.py b/src/llama_stack_client/types/beta/dataset_register_response.py index 92b64afe..d662f682 100644 --- a/src/llama_stack_client/types/beta/dataset_register_response.py +++ b/src/llama_stack_client/types/beta/dataset_register_response.py @@ -16,21 +16,39 @@ class SourceUriDataSource(BaseModel): + """A dataset that can be obtained from a URI.""" + uri: str + """The dataset can be obtained from a URI. + + E.g. "https://mywebsite.com/mydata.jsonl", "lsfs://mydata.jsonl", + "data:csv;base64,{base64_content}" + """ type: Optional[Literal["uri"]] = None + """The type of data source.""" class SourceRowsDataSource(BaseModel): + """A dataset stored in rows.""" + rows: List[Dict[str, object]] + """The dataset is stored in rows. + + E.g. [{"messages": [{"role": "user", "content": "Hello, world!"}, {"role": + "assistant", "content": "Hello, world!"}]}] + """ type: Optional[Literal["rows"]] = None + """The type of data source.""" Source: TypeAlias = Annotated[Union[SourceUriDataSource, SourceRowsDataSource], PropertyInfo(discriminator="type")] class DatasetRegisterResponse(BaseModel): + """Dataset resource for storing and accessing training or evaluation data.""" + identifier: str """Unique identifier for this resource in llama stack""" @@ -38,10 +56,10 @@ class DatasetRegisterResponse(BaseModel): """ID of the provider that owns this resource""" purpose: Literal["post-training/messages", "eval/question-answer", "eval/messages-answer"] - """Purpose of the dataset. Each purpose has a required input data schema.""" + """Purpose of the dataset indicating its intended use""" source: Source - """A dataset that can be obtained from a URI.""" + """Data source configuration for the dataset""" metadata: Optional[Dict[str, object]] = None """Any additional metadata for this dataset""" @@ -50,3 +68,4 @@ class DatasetRegisterResponse(BaseModel): """Unique identifier for this resource in the provider""" type: Optional[Literal["dataset"]] = None + """Type of resource, always 'dataset' for datasets""" diff --git a/src/llama_stack_client/types/beta/dataset_retrieve_response.py b/src/llama_stack_client/types/beta/dataset_retrieve_response.py index 452042d2..5349e2fb 100644 --- a/src/llama_stack_client/types/beta/dataset_retrieve_response.py +++ b/src/llama_stack_client/types/beta/dataset_retrieve_response.py @@ -16,21 +16,39 @@ class SourceUriDataSource(BaseModel): + """A dataset that can be obtained from a URI.""" + uri: str + """The dataset can be obtained from a URI. + + E.g. "https://mywebsite.com/mydata.jsonl", "lsfs://mydata.jsonl", + "data:csv;base64,{base64_content}" + """ type: Optional[Literal["uri"]] = None + """The type of data source.""" class SourceRowsDataSource(BaseModel): + """A dataset stored in rows.""" + rows: List[Dict[str, object]] + """The dataset is stored in rows. + + E.g. [{"messages": [{"role": "user", "content": "Hello, world!"}, {"role": + "assistant", "content": "Hello, world!"}]}] + """ type: Optional[Literal["rows"]] = None + """The type of data source.""" Source: TypeAlias = Annotated[Union[SourceUriDataSource, SourceRowsDataSource], PropertyInfo(discriminator="type")] class DatasetRetrieveResponse(BaseModel): + """Dataset resource for storing and accessing training or evaluation data.""" + identifier: str """Unique identifier for this resource in llama stack""" @@ -38,10 +56,10 @@ class DatasetRetrieveResponse(BaseModel): """ID of the provider that owns this resource""" purpose: Literal["post-training/messages", "eval/question-answer", "eval/messages-answer"] - """Purpose of the dataset. Each purpose has a required input data schema.""" + """Purpose of the dataset indicating its intended use""" source: Source - """A dataset that can be obtained from a URI.""" + """Data source configuration for the dataset""" metadata: Optional[Dict[str, object]] = None """Any additional metadata for this dataset""" @@ -50,3 +68,4 @@ class DatasetRetrieveResponse(BaseModel): """Unique identifier for this resource in the provider""" type: Optional[Literal["dataset"]] = None + """Type of resource, always 'dataset' for datasets""" diff --git a/src/llama_stack_client/types/beta/list_datasets_response.py b/src/llama_stack_client/types/beta/list_datasets_response.py index a5f09b69..54d79396 100644 --- a/src/llama_stack_client/types/beta/list_datasets_response.py +++ b/src/llama_stack_client/types/beta/list_datasets_response.py @@ -13,4 +13,7 @@ class ListDatasetsResponse(BaseModel): + """Response from listing datasets.""" + data: DatasetListResponse + """List of datasets""" diff --git a/src/llama_stack_client/types/chat/completion_create_params.py b/src/llama_stack_client/types/chat/completion_create_params.py index 21f63f3c..57eb2907 100644 --- a/src/llama_stack_client/types/chat/completion_create_params.py +++ b/src/llama_stack_client/types/chat/completion_create_params.py @@ -93,6 +93,8 @@ class CompletionCreateParamsBase(TypedDict, total=False): class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( TypedDict, total=False ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] @@ -101,6 +103,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( TypedDict, total=False ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: Required[str] detail: Optional[str] @@ -109,6 +113,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( TypedDict, total=False ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: Required[ MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL ] @@ -145,6 +151,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInput(TypedDict, total=False): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Required[ Union[ str, @@ -160,12 +168,16 @@ class MessageOpenAIUserMessageParamInput(TypedDict, total=False): class MessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAISystemMessageParam(TypedDict, total=False): + """A system message providing instructions or context to the model.""" + content: Required[ Union[str, Iterable[MessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] @@ -178,18 +190,24 @@ class MessageOpenAISystemMessageParam(TypedDict, total=False): class MessageOpenAIAssistantMessageParamInputContentListOpenAIChatCompletionContentPartTextParam( TypedDict, total=False ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIAssistantMessageParamInputToolCallFunction(TypedDict, total=False): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] name: Optional[str] class MessageOpenAIAssistantMessageParamInputToolCall(TypedDict, total=False): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] function: Optional[MessageOpenAIAssistantMessageParamInputToolCallFunction] @@ -201,6 +219,10 @@ class MessageOpenAIAssistantMessageParamInputToolCall(TypedDict, total=False): class MessageOpenAIAssistantMessageParamInput(TypedDict, total=False): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, Iterable[MessageOpenAIAssistantMessageParamInputContentListOpenAIChatCompletionContentPartTextParam], None ] @@ -213,12 +235,18 @@ class MessageOpenAIAssistantMessageParamInput(TypedDict, total=False): class MessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIToolMessageParam(TypedDict, total=False): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Required[ Union[str, Iterable[MessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] @@ -229,12 +257,16 @@ class MessageOpenAIToolMessageParam(TypedDict, total=False): class MessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIDeveloperMessageParam(TypedDict, total=False): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Required[ Union[str, Iterable[MessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] @@ -254,10 +286,14 @@ class MessageOpenAIDeveloperMessageParam(TypedDict, total=False): class ResponseFormatOpenAIResponseFormatText(TypedDict, total=False): + """Text response format for OpenAI-compatible chat completion requests.""" + type: Literal["text"] class ResponseFormatOpenAIResponseFormatJsonSchemaJsonSchema(TypedDict, total=False): + """JSON schema specification for OpenAI-compatible structured response format.""" + description: Optional[str] name: str @@ -268,6 +304,8 @@ class ResponseFormatOpenAIResponseFormatJsonSchemaJsonSchema(TypedDict, total=Fa class ResponseFormatOpenAIResponseFormatJsonSchema(TypedDict, total=False): + """JSON schema response format for OpenAI-compatible chat completion requests.""" + json_schema: Required[ResponseFormatOpenAIResponseFormatJsonSchemaJsonSchema] """JSON schema specification for OpenAI-compatible structured response format.""" @@ -275,6 +313,8 @@ class ResponseFormatOpenAIResponseFormatJsonSchema(TypedDict, total=False): class ResponseFormatOpenAIResponseFormatJsonObject(TypedDict, total=False): + """JSON object response format for OpenAI-compatible chat completion requests.""" + type: Literal["json_object"] diff --git a/src/llama_stack_client/types/chat/completion_create_response.py b/src/llama_stack_client/types/chat/completion_create_response.py index 0a56bfb0..c63b4e8f 100644 --- a/src/llama_stack_client/types/chat/completion_create_response.py +++ b/src/llama_stack_client/types/chat/completion_create_response.py @@ -47,6 +47,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( BaseModel ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None @@ -55,6 +57,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( BaseModel ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: str detail: Optional[str] = None @@ -63,6 +67,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( BaseModel ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -98,6 +104,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutput(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ @@ -111,12 +119,16 @@ class ChoiceMessageOpenAIUserMessageParamOutput(BaseModel): class ChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + content: Union[str, List[ChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam]] name: Optional[str] = None @@ -125,18 +137,24 @@ class ChoiceMessageOpenAISystemMessageParam(BaseModel): class ChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class ChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[ChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction] = None @@ -148,6 +166,10 @@ class ChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): class ChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[ChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam], @@ -162,12 +184,18 @@ class ChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): class ChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIToolMessageParam(BaseModel): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Union[str, List[ChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] tool_call_id: str @@ -176,12 +204,16 @@ class ChoiceMessageOpenAIToolMessageParam(BaseModel): class ChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -204,6 +236,14 @@ class ChoiceMessageOpenAIDeveloperMessageParam(BaseModel): class ChoiceLogprobsContentTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -212,16 +252,33 @@ class ChoiceLogprobsContentTopLogprob(BaseModel): class ChoiceLogprobsContent(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsContentTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsContentTopLogprob]] = None + class ChoiceLogprobsRefusalTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -230,22 +287,37 @@ class ChoiceLogprobsRefusalTopLogprob(BaseModel): class ChoiceLogprobsRefusal(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsRefusalTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsRefusalTopLogprob]] = None + class ChoiceLogprobs(BaseModel): + """ + The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + """ + content: Optional[List[ChoiceLogprobsContent]] = None refusal: Optional[List[ChoiceLogprobsRefusal]] = None class Choice(BaseModel): + """A choice from an OpenAI-compatible chat completion response.""" + finish_reason: str index: int @@ -261,14 +333,20 @@ class Choice(BaseModel): class UsageCompletionTokensDetails(BaseModel): + """Token details for output tokens in OpenAI chat completion usage.""" + reasoning_tokens: Optional[int] = None class UsagePromptTokensDetails(BaseModel): + """Token details for prompt tokens in OpenAI chat completion usage.""" + cached_tokens: Optional[int] = None class Usage(BaseModel): + """Usage information for OpenAI chat completion.""" + completion_tokens: int prompt_tokens: int @@ -283,6 +361,8 @@ class Usage(BaseModel): class CompletionCreateResponse(BaseModel): + """Response from an OpenAI-compatible chat completion request.""" + id: str choices: List[Choice] diff --git a/src/llama_stack_client/types/chat/completion_list_response.py b/src/llama_stack_client/types/chat/completion_list_response.py index ba9cd127..c1f46150 100644 --- a/src/llama_stack_client/types/chat/completion_list_response.py +++ b/src/llama_stack_client/types/chat/completion_list_response.py @@ -66,6 +66,8 @@ class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( BaseModel ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None @@ -74,6 +76,8 @@ class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompleti class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( BaseModel ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: str detail: Optional[str] = None @@ -82,6 +86,8 @@ class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompleti class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( BaseModel ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -117,6 +123,8 @@ class DataChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompleti class DataChoiceMessageOpenAIUserMessageParamOutput(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ @@ -130,12 +138,16 @@ class DataChoiceMessageOpenAIUserMessageParamOutput(BaseModel): class DataChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataChoiceMessageOpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + content: Union[ str, List[DataChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -146,18 +158,24 @@ class DataChoiceMessageOpenAISystemMessageParam(BaseModel): class DataChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class DataChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[DataChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction] = None @@ -169,6 +187,10 @@ class DataChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): class DataChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[DataChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam], @@ -183,12 +205,18 @@ class DataChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): class DataChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataChoiceMessageOpenAIToolMessageParam(BaseModel): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[DataChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -199,12 +227,16 @@ class DataChoiceMessageOpenAIToolMessageParam(BaseModel): class DataChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataChoiceMessageOpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[DataChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -227,6 +259,14 @@ class DataChoiceMessageOpenAIDeveloperMessageParam(BaseModel): class DataChoiceLogprobsContentTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -235,16 +275,33 @@ class DataChoiceLogprobsContentTopLogprob(BaseModel): class DataChoiceLogprobsContent(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[DataChoiceLogprobsContentTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[DataChoiceLogprobsContentTopLogprob]] = None + class DataChoiceLogprobsRefusalTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -253,22 +310,37 @@ class DataChoiceLogprobsRefusalTopLogprob(BaseModel): class DataChoiceLogprobsRefusal(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[DataChoiceLogprobsRefusalTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[DataChoiceLogprobsRefusalTopLogprob]] = None + class DataChoiceLogprobs(BaseModel): + """ + The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + """ + content: Optional[List[DataChoiceLogprobsContent]] = None refusal: Optional[List[DataChoiceLogprobsRefusal]] = None class DataChoice(BaseModel): + """A choice from an OpenAI-compatible chat completion response.""" + finish_reason: str index: int @@ -286,6 +358,8 @@ class DataChoice(BaseModel): class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( BaseModel ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None @@ -294,6 +368,8 @@ class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletio class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( BaseModel ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: str detail: Optional[str] = None @@ -302,6 +378,8 @@ class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletio class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( BaseModel ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -337,6 +415,8 @@ class DataInputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletio class DataInputMessageOpenAIUserMessageParamOutput(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ @@ -350,12 +430,16 @@ class DataInputMessageOpenAIUserMessageParamOutput(BaseModel): class DataInputMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataInputMessageOpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + content: Union[ str, List[DataInputMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -366,18 +450,24 @@ class DataInputMessageOpenAISystemMessageParam(BaseModel): class DataInputMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataInputMessageOpenAIAssistantMessageParamOutputToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class DataInputMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[DataInputMessageOpenAIAssistantMessageParamOutputToolCallFunction] = None @@ -389,6 +479,10 @@ class DataInputMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): class DataInputMessageOpenAIAssistantMessageParamOutput(BaseModel): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[DataInputMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam], @@ -403,12 +497,18 @@ class DataInputMessageOpenAIAssistantMessageParamOutput(BaseModel): class DataInputMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataInputMessageOpenAIToolMessageParam(BaseModel): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Union[str, List[DataInputMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] tool_call_id: str @@ -417,12 +517,16 @@ class DataInputMessageOpenAIToolMessageParam(BaseModel): class DataInputMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class DataInputMessageOpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[DataInputMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -445,14 +549,20 @@ class DataInputMessageOpenAIDeveloperMessageParam(BaseModel): class DataUsageCompletionTokensDetails(BaseModel): + """Token details for output tokens in OpenAI chat completion usage.""" + reasoning_tokens: Optional[int] = None class DataUsagePromptTokensDetails(BaseModel): + """Token details for prompt tokens in OpenAI chat completion usage.""" + cached_tokens: Optional[int] = None class DataUsage(BaseModel): + """Usage information for OpenAI chat completion.""" + completion_tokens: int prompt_tokens: int @@ -484,6 +594,8 @@ class Data(BaseModel): class CompletionListResponse(BaseModel): + """Response from listing OpenAI-compatible chat completions.""" + data: List[Data] first_id: str diff --git a/src/llama_stack_client/types/chat/completion_retrieve_response.py b/src/llama_stack_client/types/chat/completion_retrieve_response.py index 92de61bd..f174ddf6 100644 --- a/src/llama_stack_client/types/chat/completion_retrieve_response.py +++ b/src/llama_stack_client/types/chat/completion_retrieve_response.py @@ -65,6 +65,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( BaseModel ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None @@ -73,6 +75,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( BaseModel ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: str detail: Optional[str] = None @@ -81,6 +85,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( BaseModel ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -116,6 +122,8 @@ class ChoiceMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCo class ChoiceMessageOpenAIUserMessageParamOutput(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ @@ -129,12 +137,16 @@ class ChoiceMessageOpenAIUserMessageParamOutput(BaseModel): class ChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + content: Union[str, List[ChoiceMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam]] name: Optional[str] = None @@ -143,18 +155,24 @@ class ChoiceMessageOpenAISystemMessageParam(BaseModel): class ChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class ChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[ChoiceMessageOpenAIAssistantMessageParamOutputToolCallFunction] = None @@ -166,6 +184,10 @@ class ChoiceMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): class ChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[ChoiceMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam], @@ -180,12 +202,18 @@ class ChoiceMessageOpenAIAssistantMessageParamOutput(BaseModel): class ChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIToolMessageParam(BaseModel): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Union[str, List[ChoiceMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] tool_call_id: str @@ -194,12 +222,16 @@ class ChoiceMessageOpenAIToolMessageParam(BaseModel): class ChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class ChoiceMessageOpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ChoiceMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -222,6 +254,14 @@ class ChoiceMessageOpenAIDeveloperMessageParam(BaseModel): class ChoiceLogprobsContentTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -230,16 +270,33 @@ class ChoiceLogprobsContentTopLogprob(BaseModel): class ChoiceLogprobsContent(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsContentTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsContentTopLogprob]] = None + class ChoiceLogprobsRefusalTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -248,22 +305,37 @@ class ChoiceLogprobsRefusalTopLogprob(BaseModel): class ChoiceLogprobsRefusal(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsRefusalTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsRefusalTopLogprob]] = None + class ChoiceLogprobs(BaseModel): + """ + The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + """ + content: Optional[List[ChoiceLogprobsContent]] = None refusal: Optional[List[ChoiceLogprobsRefusal]] = None class Choice(BaseModel): + """A choice from an OpenAI-compatible chat completion response.""" + finish_reason: str index: int @@ -281,6 +353,8 @@ class Choice(BaseModel): class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( BaseModel ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None @@ -289,6 +363,8 @@ class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCon class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( BaseModel ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: str detail: Optional[str] = None @@ -297,6 +373,8 @@ class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCon class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( BaseModel ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL """Image URL specification for OpenAI-compatible chat completion messages.""" @@ -332,6 +410,8 @@ class InputMessageOpenAIUserMessageParamOutputContentListOpenAIChatCompletionCon class InputMessageOpenAIUserMessageParamOutput(BaseModel): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[ @@ -345,12 +425,16 @@ class InputMessageOpenAIUserMessageParamOutput(BaseModel): class InputMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class InputMessageOpenAISystemMessageParam(BaseModel): + """A system message providing instructions or context to the model.""" + content: Union[str, List[InputMessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam]] name: Optional[str] = None @@ -359,18 +443,24 @@ class InputMessageOpenAISystemMessageParam(BaseModel): class InputMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class InputMessageOpenAIAssistantMessageParamOutputToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class InputMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[InputMessageOpenAIAssistantMessageParamOutputToolCallFunction] = None @@ -382,6 +472,10 @@ class InputMessageOpenAIAssistantMessageParamOutputToolCall(BaseModel): class InputMessageOpenAIAssistantMessageParamOutput(BaseModel): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, List[InputMessageOpenAIAssistantMessageParamOutputContentListOpenAIChatCompletionContentPartTextParam], @@ -396,12 +490,18 @@ class InputMessageOpenAIAssistantMessageParamOutput(BaseModel): class InputMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class InputMessageOpenAIToolMessageParam(BaseModel): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Union[str, List[InputMessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] tool_call_id: str @@ -410,12 +510,16 @@ class InputMessageOpenAIToolMessageParam(BaseModel): class InputMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(BaseModel): + """Text content part for OpenAI-compatible chat completion messages.""" + text: str type: Optional[Literal["text"]] = None class InputMessageOpenAIDeveloperMessageParam(BaseModel): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Union[ str, List[InputMessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam] ] @@ -438,14 +542,20 @@ class InputMessageOpenAIDeveloperMessageParam(BaseModel): class UsageCompletionTokensDetails(BaseModel): + """Token details for output tokens in OpenAI chat completion usage.""" + reasoning_tokens: Optional[int] = None class UsagePromptTokensDetails(BaseModel): + """Token details for prompt tokens in OpenAI chat completion usage.""" + cached_tokens: Optional[int] = None class Usage(BaseModel): + """Usage information for OpenAI chat completion.""" + completion_tokens: int prompt_tokens: int diff --git a/src/llama_stack_client/types/chat_completion_chunk.py b/src/llama_stack_client/types/chat_completion_chunk.py index 90c10da2..c22cb749 100644 --- a/src/llama_stack_client/types/chat_completion_chunk.py +++ b/src/llama_stack_client/types/chat_completion_chunk.py @@ -29,12 +29,16 @@ class ChoiceDeltaToolCallFunction(BaseModel): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] = None name: Optional[str] = None class ChoiceDeltaToolCall(BaseModel): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] = None function: Optional[ChoiceDeltaToolCallFunction] = None @@ -46,6 +50,8 @@ class ChoiceDeltaToolCall(BaseModel): class ChoiceDelta(BaseModel): + """A delta from an OpenAI-compatible chat completion streaming response.""" + content: Optional[str] = None reasoning_content: Optional[str] = None @@ -58,6 +64,14 @@ class ChoiceDelta(BaseModel): class ChoiceLogprobsContentTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -66,16 +80,33 @@ class ChoiceLogprobsContentTopLogprob(BaseModel): class ChoiceLogprobsContent(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsContentTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsContentTopLogprob]] = None + class ChoiceLogprobsRefusalTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -84,22 +115,37 @@ class ChoiceLogprobsRefusalTopLogprob(BaseModel): class ChoiceLogprobsRefusal(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsRefusalTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsRefusalTopLogprob]] = None + class ChoiceLogprobs(BaseModel): + """ + The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + """ + content: Optional[List[ChoiceLogprobsContent]] = None refusal: Optional[List[ChoiceLogprobsRefusal]] = None class Choice(BaseModel): + """A chunk choice from an OpenAI-compatible chat completion streaming response.""" + delta: ChoiceDelta """A delta from an OpenAI-compatible chat completion streaming response.""" @@ -115,14 +161,20 @@ class Choice(BaseModel): class UsageCompletionTokensDetails(BaseModel): + """Token details for output tokens in OpenAI chat completion usage.""" + reasoning_tokens: Optional[int] = None class UsagePromptTokensDetails(BaseModel): + """Token details for prompt tokens in OpenAI chat completion usage.""" + cached_tokens: Optional[int] = None class Usage(BaseModel): + """Usage information for OpenAI chat completion.""" + completion_tokens: int prompt_tokens: int @@ -137,6 +189,10 @@ class Usage(BaseModel): class ChatCompletionChunk(BaseModel): + """ + Chunk from a streaming response to an OpenAI-compatible chat completion request. + """ + id: str choices: List[Choice] diff --git a/src/llama_stack_client/types/completion_create_response.py b/src/llama_stack_client/types/completion_create_response.py index 76ee47ba..e19a33d3 100644 --- a/src/llama_stack_client/types/completion_create_response.py +++ b/src/llama_stack_client/types/completion_create_response.py @@ -23,6 +23,14 @@ class ChoiceLogprobsContentTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -31,16 +39,33 @@ class ChoiceLogprobsContentTopLogprob(BaseModel): class ChoiceLogprobsContent(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsContentTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsContentTopLogprob]] = None + class ChoiceLogprobsRefusalTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + token: str logprob: float @@ -49,22 +74,43 @@ class ChoiceLogprobsRefusalTopLogprob(BaseModel): class ChoiceLogprobsRefusal(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + token: str logprob: float - top_logprobs: List[ChoiceLogprobsRefusalTopLogprob] - bytes: Optional[List[int]] = None + top_logprobs: Optional[List[ChoiceLogprobsRefusalTopLogprob]] = None + class ChoiceLogprobs(BaseModel): + """ + The log probabilities for the tokens in the message from an OpenAI-compatible chat completion response. + """ + content: Optional[List[ChoiceLogprobsContent]] = None refusal: Optional[List[ChoiceLogprobsRefusal]] = None class Choice(BaseModel): + """A choice from an OpenAI-compatible completion response. + + :finish_reason: The reason the model stopped generating + :text: The text of the choice + :index: The index of the choice + :logprobs: (Optional) The log probabilities for the tokens in the choice + """ + finish_reason: str index: int @@ -79,6 +125,15 @@ class Choice(BaseModel): class CompletionCreateResponse(BaseModel): + """Response from an OpenAI-compatible completion request. + + :id: The ID of the completion + :choices: List of choices + :created: The Unix timestamp in seconds when the completion was created + :model: The model that was used to generate the completion + :object: The object type, which will be "text_completion" + """ + id: str choices: List[Choice] diff --git a/src/llama_stack_client/types/conversation_create_params.py b/src/llama_stack_client/types/conversation_create_params.py index 5d3da45b..6a6cce63 100644 --- a/src/llama_stack_client/types/conversation_create_params.py +++ b/src/llama_stack_client/types/conversation_create_params.py @@ -21,14 +21,16 @@ "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "ItemOpenAIResponseOutputMessageWebSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -51,6 +53,8 @@ class ConversationCreateParams(TypedDict, total=False): class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( TypedDict, total=False ): + """Text content for input messages in OpenAI response format.""" + text: Required[str] type: Literal["input_text"] @@ -59,6 +63,8 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( TypedDict, total=False ): + """Image content for input messages in OpenAI response format.""" + detail: Literal["low", "high", "auto"] file_id: Optional[str] @@ -71,6 +77,8 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( TypedDict, total=False ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] file_id: Optional[str] @@ -89,9 +97,11 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent ] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation( TypedDict, total=False ): + """File citation annotation for referencing specific files in response content.""" + file_id: Required[str] filename: Required[str] @@ -101,9 +111,11 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["file_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation( TypedDict, total=False ): + """URL citation annotation for referencing external web resources.""" + end_index: Required[int] start_index: Required[int] @@ -115,7 +127,7 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["url_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation( TypedDict, total=False ): container_id: Required[str] @@ -131,7 +143,7 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["container_file_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath( TypedDict, total=False ): file_id: Required[str] @@ -141,41 +153,99 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["file_path"] -ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Union[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, +ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation: TypeAlias = Union[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath, ] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob( + TypedDict, total=False +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob( + TypedDict, total=False +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + top_logprobs: Optional[ + Iterable[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob + ] + ] + + +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput( TypedDict, total=False ): text: Required[str] annotations: Iterable[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation + ] + + logprobs: Optional[ + Iterable[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob + ] ] type: Literal["output_text"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( TypedDict, total=False ): + """Refusal content within a streamed response part.""" + refusal: Required[str] type: Literal["refusal"] -ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Union[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, +ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal: TypeAlias = Union[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ] class ItemOpenAIResponseMessageInput(TypedDict, total=False): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Required[ Union[ str, @@ -183,7 +253,7 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], Iterable[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal ], ] ] @@ -198,6 +268,8 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): + """Web search tool call output message for OpenAI responses.""" + id: Required[str] status: Required[str] @@ -206,6 +278,8 @@ class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageFileSearchToolCallResult(TypedDict, total=False): + """Search results returned by the file search operation.""" + attributes: Required[Dict[str, object]] file_id: Required[str] @@ -218,6 +292,8 @@ class ItemOpenAIResponseOutputMessageFileSearchToolCallResult(TypedDict, total=F class ItemOpenAIResponseOutputMessageFileSearchToolCall(TypedDict, total=False): + """File search tool call output message for OpenAI responses.""" + id: Required[str] queries: Required[SequenceNotStr[str]] @@ -230,6 +306,8 @@ class ItemOpenAIResponseOutputMessageFileSearchToolCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageFunctionToolCall(TypedDict, total=False): + """Function tool call output message for OpenAI responses.""" + arguments: Required[str] call_id: Required[str] @@ -244,6 +322,10 @@ class ItemOpenAIResponseOutputMessageFunctionToolCall(TypedDict, total=False): class ItemOpenAIResponseInputFunctionToolCallOutput(TypedDict, total=False): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: Required[str] output: Required[str] @@ -256,6 +338,8 @@ class ItemOpenAIResponseInputFunctionToolCallOutput(TypedDict, total=False): class ItemOpenAIResponseMcpApprovalRequest(TypedDict, total=False): + """A request for human approval of a tool invocation.""" + id: Required[str] arguments: Required[str] @@ -268,6 +352,8 @@ class ItemOpenAIResponseMcpApprovalRequest(TypedDict, total=False): class ItemOpenAIResponseMcpApprovalResponse(TypedDict, total=False): + """A response to an MCP approval request.""" + approval_request_id: Required[str] approve: Required[bool] @@ -280,6 +366,8 @@ class ItemOpenAIResponseMcpApprovalResponse(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpCall(TypedDict, total=False): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: Required[str] arguments: Required[str] @@ -296,6 +384,8 @@ class ItemOpenAIResponseOutputMessageMcpCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpListToolsTool(TypedDict, total=False): + """Tool definition returned by MCP list tools operation.""" + input_schema: Required[Dict[str, object]] name: Required[str] @@ -304,6 +394,8 @@ class ItemOpenAIResponseOutputMessageMcpListToolsTool(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpListTools(TypedDict, total=False): + """MCP list tools output message containing available tools from an MCP server.""" + id: Required[str] server_label: Required[str] diff --git a/src/llama_stack_client/types/conversation_delete_response.py b/src/llama_stack_client/types/conversation_delete_response.py index abf5b7c0..270ce38b 100644 --- a/src/llama_stack_client/types/conversation_delete_response.py +++ b/src/llama_stack_client/types/conversation_delete_response.py @@ -14,6 +14,8 @@ class ConversationDeleteResponse(BaseModel): + """Response for deleted conversation.""" + id: str """The deleted conversation identifier""" diff --git a/src/llama_stack_client/types/conversation_object.py b/src/llama_stack_client/types/conversation_object.py index 27a55d23..1498ef03 100644 --- a/src/llama_stack_client/types/conversation_object.py +++ b/src/llama_stack_client/types/conversation_object.py @@ -15,6 +15,8 @@ class ConversationObject(BaseModel): + """OpenAI-compatible conversation object.""" + id: str """The unique ID of the conversation.""" diff --git a/src/llama_stack_client/types/conversations/item_create_params.py b/src/llama_stack_client/types/conversations/item_create_params.py index 7d3e9de9..583030b7 100644 --- a/src/llama_stack_client/types/conversations/item_create_params.py +++ b/src/llama_stack_client/types/conversations/item_create_params.py @@ -21,14 +21,16 @@ "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", + "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "ItemOpenAIResponseOutputMessageWebSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -49,6 +51,8 @@ class ItemCreateParams(TypedDict, total=False): class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( TypedDict, total=False ): + """Text content for input messages in OpenAI response format.""" + text: Required[str] type: Literal["input_text"] @@ -57,6 +61,8 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( TypedDict, total=False ): + """Image content for input messages in OpenAI response format.""" + detail: Literal["low", "high", "auto"] file_id: Optional[str] @@ -69,6 +75,8 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( TypedDict, total=False ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] file_id: Optional[str] @@ -87,9 +95,11 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContent ] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation( TypedDict, total=False ): + """File citation annotation for referencing specific files in response content.""" + file_id: Required[str] filename: Required[str] @@ -99,9 +109,11 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["file_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation( TypedDict, total=False ): + """URL citation annotation for referencing external web resources.""" + end_index: Required[int] start_index: Required[int] @@ -113,7 +125,7 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["url_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation( TypedDict, total=False ): container_id: Required[str] @@ -129,7 +141,7 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["container_file_citation"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath( TypedDict, total=False ): file_id: Required[str] @@ -139,41 +151,99 @@ class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageConten type: Literal["file_path"] -ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Union[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, +ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation: TypeAlias = Union[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath, ] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob( + TypedDict, total=False +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob( + TypedDict, total=False +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + top_logprobs: Optional[ + Iterable[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob + ] + ] + + +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput( TypedDict, total=False ): text: Required[str] annotations: Iterable[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation + ] + + logprobs: Optional[ + Iterable[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob + ] ] type: Literal["output_text"] -class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( TypedDict, total=False ): + """Refusal content within a streamed response part.""" + refusal: Required[str] type: Literal["refusal"] -ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Union[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, +ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal: TypeAlias = Union[ + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput, + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ] class ItemOpenAIResponseMessageInput(TypedDict, total=False): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Required[ Union[ str, @@ -181,7 +251,7 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): ItemOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], Iterable[ - ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal ], ] ] @@ -196,6 +266,8 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): + """Web search tool call output message for OpenAI responses.""" + id: Required[str] status: Required[str] @@ -204,6 +276,8 @@ class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageFileSearchToolCallResult(TypedDict, total=False): + """Search results returned by the file search operation.""" + attributes: Required[Dict[str, object]] file_id: Required[str] @@ -216,6 +290,8 @@ class ItemOpenAIResponseOutputMessageFileSearchToolCallResult(TypedDict, total=F class ItemOpenAIResponseOutputMessageFileSearchToolCall(TypedDict, total=False): + """File search tool call output message for OpenAI responses.""" + id: Required[str] queries: Required[SequenceNotStr[str]] @@ -228,6 +304,8 @@ class ItemOpenAIResponseOutputMessageFileSearchToolCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageFunctionToolCall(TypedDict, total=False): + """Function tool call output message for OpenAI responses.""" + arguments: Required[str] call_id: Required[str] @@ -242,6 +320,10 @@ class ItemOpenAIResponseOutputMessageFunctionToolCall(TypedDict, total=False): class ItemOpenAIResponseInputFunctionToolCallOutput(TypedDict, total=False): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: Required[str] output: Required[str] @@ -254,6 +336,8 @@ class ItemOpenAIResponseInputFunctionToolCallOutput(TypedDict, total=False): class ItemOpenAIResponseMcpApprovalRequest(TypedDict, total=False): + """A request for human approval of a tool invocation.""" + id: Required[str] arguments: Required[str] @@ -266,6 +350,8 @@ class ItemOpenAIResponseMcpApprovalRequest(TypedDict, total=False): class ItemOpenAIResponseMcpApprovalResponse(TypedDict, total=False): + """A response to an MCP approval request.""" + approval_request_id: Required[str] approve: Required[bool] @@ -278,6 +364,8 @@ class ItemOpenAIResponseMcpApprovalResponse(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpCall(TypedDict, total=False): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: Required[str] arguments: Required[str] @@ -294,6 +382,8 @@ class ItemOpenAIResponseOutputMessageMcpCall(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpListToolsTool(TypedDict, total=False): + """Tool definition returned by MCP list tools operation.""" + input_schema: Required[Dict[str, object]] name: Required[str] @@ -302,6 +392,8 @@ class ItemOpenAIResponseOutputMessageMcpListToolsTool(TypedDict, total=False): class ItemOpenAIResponseOutputMessageMcpListTools(TypedDict, total=False): + """MCP list tools output message containing available tools from an MCP server.""" + id: Required[str] server_label: Required[str] diff --git a/src/llama_stack_client/types/conversations/item_create_response.py b/src/llama_stack_client/types/conversations/item_create_response.py index 182277b5..9e4fc7f9 100644 --- a/src/llama_stack_client/types/conversations/item_create_response.py +++ b/src/llama_stack_client/types/conversations/item_create_response.py @@ -20,14 +20,16 @@ "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "DataOpenAIResponseOutputMessageWebSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -44,6 +46,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -52,6 +56,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -64,6 +70,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -85,9 +93,11 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten ] -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -97,9 +107,11 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["file_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -111,7 +123,7 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["url_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -127,7 +139,7 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["container_file_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -137,56 +149,114 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["file_path"]] = None -DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class DataOpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -200,6 +270,8 @@ class DataOpenAIResponseMessageOutput(BaseModel): class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -208,6 +280,8 @@ class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class DataOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -220,6 +294,8 @@ class DataOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class DataOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -232,6 +308,8 @@ class DataOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class DataOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -246,6 +324,10 @@ class DataOpenAIResponseOutputMessageFunctionToolCall(BaseModel): class DataOpenAIResponseInputFunctionToolCallOutput(BaseModel): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: str output: str @@ -258,6 +340,8 @@ class DataOpenAIResponseInputFunctionToolCallOutput(BaseModel): class DataOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -270,6 +354,8 @@ class DataOpenAIResponseMcpApprovalRequest(BaseModel): class DataOpenAIResponseMcpApprovalResponse(BaseModel): + """A response to an MCP approval request.""" + approval_request_id: str approve: bool @@ -282,6 +368,8 @@ class DataOpenAIResponseMcpApprovalResponse(BaseModel): class DataOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -298,6 +386,8 @@ class DataOpenAIResponseOutputMessageMcpCall(BaseModel): class DataOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -306,6 +396,8 @@ class DataOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class DataOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -332,6 +424,8 @@ class DataOpenAIResponseOutputMessageMcpListTools(BaseModel): class ItemCreateResponse(BaseModel): + """List of conversation items with pagination.""" + data: List[Data] """List of conversation items""" diff --git a/src/llama_stack_client/types/conversations/item_delete_response.py b/src/llama_stack_client/types/conversations/item_delete_response.py index 2eac4e67..2521ff8a 100644 --- a/src/llama_stack_client/types/conversations/item_delete_response.py +++ b/src/llama_stack_client/types/conversations/item_delete_response.py @@ -14,6 +14,8 @@ class ItemDeleteResponse(BaseModel): + """Response for deleted conversation item.""" + id: str """The deleted item identifier""" diff --git a/src/llama_stack_client/types/conversations/item_get_response.py b/src/llama_stack_client/types/conversations/item_get_response.py index 90d406d2..b3574579 100644 --- a/src/llama_stack_client/types/conversations/item_get_response.py +++ b/src/llama_stack_client/types/conversations/item_get_response.py @@ -25,6 +25,8 @@ "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", + "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob", + "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob", "ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", ] @@ -32,6 +34,8 @@ class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -40,6 +44,8 @@ class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessage class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -52,6 +58,8 @@ class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessage class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -76,6 +84,8 @@ class ContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessage class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -88,6 +98,8 @@ class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseConte class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -136,6 +148,49 @@ class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseConte ] +class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob + ] + ] = None + + class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( BaseModel ): @@ -147,12 +202,20 @@ class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseConte ] ] = None + logprobs: Optional[ + List[ + ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob + ] + ] = None + type: Optional[Literal["output_text"]] = None class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None @@ -168,6 +231,13 @@ class ContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseConte class ItemGetResponse(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ diff --git a/src/llama_stack_client/types/conversations/item_list_response.py b/src/llama_stack_client/types/conversations/item_list_response.py index 59b8a85f..e8cb7812 100644 --- a/src/llama_stack_client/types/conversations/item_list_response.py +++ b/src/llama_stack_client/types/conversations/item_list_response.py @@ -19,14 +19,16 @@ "OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "OpenAIResponseOutputMessageWebSearchToolCall", "OpenAIResponseOutputMessageFileSearchToolCall", "OpenAIResponseOutputMessageFileSearchToolCallResult", @@ -43,6 +45,8 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -51,6 +55,8 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTex class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -63,6 +69,8 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTex class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -84,9 +92,11 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTex ] -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -96,9 +106,11 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOu type: Optional[Literal["file_citation"]] = None -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -110,7 +122,7 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOu type: Optional[Literal["url_citation"]] = None -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -126,7 +138,7 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOu type: Optional[Literal["container_file_citation"]] = None -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -136,56 +148,114 @@ class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOu type: Optional[Literal["file_path"]] = None -OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class OpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ OpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -199,6 +269,8 @@ class OpenAIResponseMessageOutput(BaseModel): class OpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -207,6 +279,8 @@ class OpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class OpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -219,6 +293,8 @@ class OpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class OpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -231,6 +307,8 @@ class OpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class OpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -245,6 +323,10 @@ class OpenAIResponseOutputMessageFunctionToolCall(BaseModel): class OpenAIResponseInputFunctionToolCallOutput(BaseModel): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: str output: str @@ -257,6 +339,8 @@ class OpenAIResponseInputFunctionToolCallOutput(BaseModel): class OpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -269,6 +353,8 @@ class OpenAIResponseMcpApprovalRequest(BaseModel): class OpenAIResponseMcpApprovalResponse(BaseModel): + """A response to an MCP approval request.""" + approval_request_id: str approve: bool @@ -281,6 +367,8 @@ class OpenAIResponseMcpApprovalResponse(BaseModel): class OpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -297,6 +385,8 @@ class OpenAIResponseOutputMessageMcpCall(BaseModel): class OpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -305,6 +395,8 @@ class OpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class OpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str diff --git a/src/llama_stack_client/types/create_embeddings_response.py b/src/llama_stack_client/types/create_embeddings_response.py index c688ffcd..9d57cc39 100644 --- a/src/llama_stack_client/types/create_embeddings_response.py +++ b/src/llama_stack_client/types/create_embeddings_response.py @@ -15,6 +15,8 @@ class Data(BaseModel): + """A single embedding data object from an OpenAI-compatible embeddings response.""" + embedding: Union[List[float], str] index: int @@ -23,12 +25,16 @@ class Data(BaseModel): class Usage(BaseModel): + """Usage information for an OpenAI-compatible embeddings response.""" + prompt_tokens: int total_tokens: int class CreateEmbeddingsResponse(BaseModel): + """Response from an OpenAI-compatible embeddings request.""" + data: List[Data] model: str diff --git a/src/llama_stack_client/types/create_response.py b/src/llama_stack_client/types/create_response.py index fa32d48c..bb87742e 100644 --- a/src/llama_stack_client/types/create_response.py +++ b/src/llama_stack_client/types/create_response.py @@ -14,6 +14,8 @@ class Result(BaseModel): + """A moderation object.""" + flagged: bool categories: Optional[Dict[str, bool]] = None @@ -28,6 +30,8 @@ class Result(BaseModel): class CreateResponse(BaseModel): + """A moderation object.""" + id: str model: str diff --git a/src/llama_stack_client/types/delete_file_response.py b/src/llama_stack_client/types/delete_file_response.py index 674b8031..7fd67597 100644 --- a/src/llama_stack_client/types/delete_file_response.py +++ b/src/llama_stack_client/types/delete_file_response.py @@ -15,6 +15,8 @@ class DeleteFileResponse(BaseModel): + """Response for deleting a file in OpenAI Files API.""" + id: str deleted: bool diff --git a/src/llama_stack_client/types/file.py b/src/llama_stack_client/types/file.py index c3fad6ec..14fe0293 100644 --- a/src/llama_stack_client/types/file.py +++ b/src/llama_stack_client/types/file.py @@ -15,6 +15,8 @@ class File(BaseModel): + """OpenAI File object as defined in the OpenAI Files API.""" + id: str bytes: int diff --git a/src/llama_stack_client/types/file_create_params.py b/src/llama_stack_client/types/file_create_params.py index 54587dd5..006c7832 100644 --- a/src/llama_stack_client/types/file_create_params.py +++ b/src/llama_stack_client/types/file_create_params.py @@ -33,6 +33,13 @@ class FileCreateParams(TypedDict, total=False): class ExpiresAfter(TypedDict, total=False): + """Control expiration of uploaded files. + + Params: + - anchor, must be "created_at" + - seconds, must be int between 3600 and 2592000 (1 hour to 30 days) + """ + anchor: Required[Literal["created_at"]] seconds: Required[int] diff --git a/src/llama_stack_client/types/list_files_response.py b/src/llama_stack_client/types/list_files_response.py index 501a3dd2..94fdc61c 100644 --- a/src/llama_stack_client/types/list_files_response.py +++ b/src/llama_stack_client/types/list_files_response.py @@ -16,6 +16,8 @@ class ListFilesResponse(BaseModel): + """Response for listing files in OpenAI Files API.""" + data: List[File] first_id: str diff --git a/src/llama_stack_client/types/list_prompts_response.py b/src/llama_stack_client/types/list_prompts_response.py index 6e564602..d357a77d 100644 --- a/src/llama_stack_client/types/list_prompts_response.py +++ b/src/llama_stack_client/types/list_prompts_response.py @@ -13,4 +13,6 @@ class ListPromptsResponse(BaseModel): + """Response model to list prompts.""" + data: PromptListResponse diff --git a/src/llama_stack_client/types/list_tool_groups_response.py b/src/llama_stack_client/types/list_tool_groups_response.py index 7dceef99..1484d78d 100644 --- a/src/llama_stack_client/types/list_tool_groups_response.py +++ b/src/llama_stack_client/types/list_tool_groups_response.py @@ -13,4 +13,6 @@ class ListToolGroupsResponse(BaseModel): + """Response containing a list of tool groups.""" + data: ToolgroupListResponse diff --git a/src/llama_stack_client/types/list_vector_stores_response.py b/src/llama_stack_client/types/list_vector_stores_response.py index 471787c6..590321e7 100644 --- a/src/llama_stack_client/types/list_vector_stores_response.py +++ b/src/llama_stack_client/types/list_vector_stores_response.py @@ -15,6 +15,8 @@ class ListVectorStoresResponse(BaseModel): + """Response from listing vector stores.""" + data: List[VectorStore] first_id: Optional[str] = None diff --git a/src/llama_stack_client/types/model.py b/src/llama_stack_client/types/model.py index 178b2b22..89f52172 100644 --- a/src/llama_stack_client/types/model.py +++ b/src/llama_stack_client/types/model.py @@ -15,6 +15,15 @@ class Model(BaseModel): + """A model from OpenAI. + + :id: The ID of the model + :object: The object type, which will be "model" + :created: The Unix timestamp in seconds when the model was created + :owned_by: The owner of the model + :custom_metadata: Llama Stack-specific metadata including model_type, provider info, and additional metadata + """ + id: str created: int diff --git a/src/llama_stack_client/types/model_register_response.py b/src/llama_stack_client/types/model_register_response.py index 13bee478..d5cec998 100644 --- a/src/llama_stack_client/types/model_register_response.py +++ b/src/llama_stack_client/types/model_register_response.py @@ -17,6 +17,8 @@ class ModelRegisterResponse(BaseModel): + """A model resource representing an AI model registered in Llama Stack.""" + identifier: str """Unique identifier for this resource in llama stack""" diff --git a/src/llama_stack_client/types/model_retrieve_response.py b/src/llama_stack_client/types/model_retrieve_response.py index 2aae408f..27a08263 100644 --- a/src/llama_stack_client/types/model_retrieve_response.py +++ b/src/llama_stack_client/types/model_retrieve_response.py @@ -17,6 +17,8 @@ class ModelRetrieveResponse(BaseModel): + """A model resource representing an AI model registered in Llama Stack.""" + identifier: str """Unique identifier for this resource in llama stack""" diff --git a/src/llama_stack_client/types/prompt.py b/src/llama_stack_client/types/prompt.py index 7a151824..b3da67f8 100644 --- a/src/llama_stack_client/types/prompt.py +++ b/src/llama_stack_client/types/prompt.py @@ -14,6 +14,10 @@ class Prompt(BaseModel): + """ + A prompt resource representing a stored OpenAI Compatible prompt template in Llama Stack. + """ + prompt_id: str """Unique identifier in format 'pmpt\\__<48-digit-hash>'""" diff --git a/src/llama_stack_client/types/provider_list_response.py b/src/llama_stack_client/types/provider_list_response.py index 56f36ce5..6f9c1832 100644 --- a/src/llama_stack_client/types/provider_list_response.py +++ b/src/llama_stack_client/types/provider_list_response.py @@ -9,7 +9,7 @@ from typing import List from typing_extensions import TypeAlias -from .provider_info import ProviderInfo +from .shared.provider_info import ProviderInfo __all__ = ["ProviderListResponse"] diff --git a/src/llama_stack_client/types/query_chunks_response.py b/src/llama_stack_client/types/query_chunks_response.py index f676c291..06612009 100644 --- a/src/llama_stack_client/types/query_chunks_response.py +++ b/src/llama_stack_client/types/query_chunks_response.py @@ -30,10 +30,14 @@ class ChunkContentImageContentItemOutputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ChunkContentImageContentItemOutputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ChunkContentImageContentItemOutputImageURL] = None @@ -41,6 +45,8 @@ class ChunkContentImageContentItemOutputImage(BaseModel): class ChunkContentImageContentItemOutput(BaseModel): + """A image content item""" + image: ChunkContentImageContentItemOutputImage """A URL or a base64 encoded string""" @@ -48,16 +54,22 @@ class ChunkContentImageContentItemOutput(BaseModel): class ChunkContentTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None class ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutputImageURL] = None @@ -65,6 +77,8 @@ class ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutpu class ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutput(BaseModel): + """A image content item""" + image: ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutputImage """A URL or a base64 encoded string""" @@ -72,6 +86,8 @@ class ChunkContentListImageContentItemOutputTextContentItemImageContentItemOutpu class ChunkContentListImageContentItemOutputTextContentItemTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None @@ -94,6 +110,13 @@ class ChunkContentListImageContentItemOutputTextContentItemTextContentItem(BaseM class ChunkChunkMetadata(BaseModel): + """ + `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that + will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` + is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. + Use `Chunk.metadata` for metadata that will be used in the context during inference. + """ + chunk_embedding_dimension: Optional[int] = None chunk_embedding_model: Optional[str] = None @@ -118,6 +141,8 @@ class ChunkChunkMetadata(BaseModel): class Chunk(BaseModel): + """A chunk of content that can be inserted into a vector database.""" + chunk_id: str content: ChunkContent @@ -139,6 +164,8 @@ class Chunk(BaseModel): class QueryChunksResponse(BaseModel): + """Response from querying chunks in a vector database.""" + chunks: List[Chunk] scores: List[float] diff --git a/src/llama_stack_client/types/response_create_params.py b/src/llama_stack_client/types/response_create_params.py index b9adbffe..c0f87286 100644 --- a/src/llama_stack_client/types/response_create_params.py +++ b/src/llama_stack_client/types/response_create_params.py @@ -8,7 +8,7 @@ from __future__ import annotations -from typing import Dict, Union, Iterable, Optional +from typing import Dict, List, Union, Iterable, Optional from typing_extensions import Literal, Required, TypeAlias, TypedDict from .._types import SequenceNotStr @@ -21,14 +21,16 @@ "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -46,6 +48,13 @@ "PromptVariablesOpenAIResponseInputMessageContentFile", "Text", "TextFormat", + "ToolChoice", + "ToolChoiceOpenAIResponseInputToolChoiceAllowedTools", + "ToolChoiceOpenAIResponseInputToolChoiceFileSearch", + "ToolChoiceOpenAIResponseInputToolChoiceWebSearch", + "ToolChoiceOpenAIResponseInputToolChoiceFunctionTool", + "ToolChoiceOpenAIResponseInputToolChoiceMcpTool", + "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", "ToolOpenAIResponseInputToolFileSearch", @@ -68,7 +77,19 @@ class ResponseCreateParamsBase(TypedDict, total=False): conversation: Optional[str] - include: Optional[SequenceNotStr[str]] + include: Optional[ + List[ + Literal[ + "web_search_call.action.sources", + "code_interpreter_call.outputs", + "computer_call_output.output.image_url", + "file_search_call.results", + "message.input_image.image_url", + "message.output_text.logprobs", + "reasoning.encrypted_content", + ] + ] + ] instructions: Optional[str] @@ -76,6 +97,8 @@ class ResponseCreateParamsBase(TypedDict, total=False): max_tool_calls: Optional[int] + metadata: Optional[Dict[str, str]] + parallel_tool_calls: Optional[bool] previous_response_id: Optional[str] @@ -90,12 +113,17 @@ class ResponseCreateParamsBase(TypedDict, total=False): text: Optional[Text] """Text response configuration for OpenAI responses.""" + tool_choice: Optional[ToolChoice] + """Constrains the tools available to the model to a pre-defined set.""" + tools: Optional[Iterable[Tool]] class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( TypedDict, total=False ): + """Text content for input messages in OpenAI response format.""" + text: Required[str] type: Literal["input_text"] @@ -104,6 +132,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( TypedDict, total=False ): + """Image content for input messages in OpenAI response format.""" + detail: Literal["low", "high", "auto"] file_id: Optional[str] @@ -116,6 +146,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( TypedDict, total=False ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] file_id: Optional[str] @@ -134,9 +166,11 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp ] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation( TypedDict, total=False ): + """File citation annotation for referencing specific files in response content.""" + file_id: Required[str] filename: Required[str] @@ -146,9 +180,11 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["file_citation"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation( TypedDict, total=False ): + """URL citation annotation for referencing external web resources.""" + end_index: Required[int] start_index: Required[int] @@ -160,7 +196,7 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["url_citation"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation( TypedDict, total=False ): container_id: Required[str] @@ -176,7 +212,7 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["container_file_citation"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath( TypedDict, total=False ): file_id: Required[str] @@ -186,43 +222,101 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["file_path"] -InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Union[ - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, +InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation: TypeAlias = Union[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFileCitation, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationCitation, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationContainerFileCitation, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotationOpenAIResponseAnnotationFilePath, ] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob( + TypedDict, total=False +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob( + TypedDict, total=False +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: Required[str] + + logprob: Required[float] + + bytes: Optional[Iterable[int]] + + top_logprobs: Optional[ + Iterable[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob + ] + ] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput( TypedDict, total=False ): text: Required[str] annotations: Iterable[ - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputAnnotation + ] + + logprobs: Optional[ + Iterable[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob + ] ] type: Literal["output_text"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( TypedDict, total=False ): + """Refusal content within a streamed response part.""" + refusal: Required[str] type: Literal["refusal"] -InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Union[ - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, +InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal: TypeAlias = Union[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInput, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ] class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInput( TypedDict, total=False ): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Required[ Union[ str, @@ -230,7 +324,7 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], Iterable[ - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusal ], ] ] @@ -247,6 +341,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall( TypedDict, total=False ): + """Web search tool call output message for OpenAI responses.""" + id: Required[str] status: Required[str] @@ -257,6 +353,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCallResult( TypedDict, total=False ): + """Search results returned by the file search operation.""" + attributes: Required[Dict[str, object]] file_id: Required[str] @@ -271,6 +369,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall( TypedDict, total=False ): + """File search tool call output message for OpenAI responses.""" + id: Required[str] queries: Required[SequenceNotStr[str]] @@ -289,6 +389,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFunctionToolCall( TypedDict, total=False ): + """Function tool call output message for OpenAI responses.""" + arguments: Required[str] call_id: Required[str] @@ -305,6 +407,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageMcpCall( TypedDict, total=False ): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: Required[str] arguments: Required[str] @@ -323,6 +427,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageMcpListToolsTool( TypedDict, total=False ): + """Tool definition returned by MCP list tools operation.""" + input_schema: Required[Dict[str, object]] name: Required[str] @@ -333,6 +439,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageMcpListTools( TypedDict, total=False ): + """MCP list tools output message containing available tools from an MCP server.""" + id: Required[str] server_label: Required[str] @@ -349,6 +457,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMcpApprovalRequest( TypedDict, total=False ): + """A request for human approval of a tool invocation.""" + id: Required[str] arguments: Required[str] @@ -363,6 +473,10 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseInputFunctionToolCallOutput( TypedDict, total=False ): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: Required[str] output: Required[str] @@ -377,6 +491,8 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMcpApprovalResponse( TypedDict, total=False ): + """A response to an MCP approval request.""" + approval_request_id: Required[str] approve: Required[bool] @@ -403,12 +519,16 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp class PromptVariablesOpenAIResponseInputMessageContentText(TypedDict, total=False): + """Text content for input messages in OpenAI response format.""" + text: Required[str] type: Literal["input_text"] class PromptVariablesOpenAIResponseInputMessageContentImage(TypedDict, total=False): + """Image content for input messages in OpenAI response format.""" + detail: Literal["low", "high", "auto"] file_id: Optional[str] @@ -419,6 +539,8 @@ class PromptVariablesOpenAIResponseInputMessageContentImage(TypedDict, total=Fal class PromptVariablesOpenAIResponseInputMessageContentFile(TypedDict, total=False): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] file_id: Optional[str] @@ -438,6 +560,8 @@ class PromptVariablesOpenAIResponseInputMessageContentFile(TypedDict, total=Fals class Prompt(TypedDict, total=False): + """OpenAI compatible Prompt object that is used in OpenAI responses.""" + id: Required[str] variables: Optional[Dict[str, PromptVariables]] @@ -446,6 +570,8 @@ class Prompt(TypedDict, total=False): class TextFormat(TypedDict, total=False): + """Configuration for Responses API text format.""" + description: Optional[str] name: Optional[str] @@ -458,23 +584,90 @@ class TextFormat(TypedDict, total=False): class Text(TypedDict, total=False): + """Text response configuration for OpenAI responses.""" + format: Optional[TextFormat] """Configuration for Responses API text format.""" +class ToolChoiceOpenAIResponseInputToolChoiceAllowedTools(TypedDict, total=False): + """Constrains the tools available to the model to a pre-defined set.""" + + tools: Required[Iterable[Dict[str, str]]] + + mode: Literal["auto", "required"] + + type: Literal["allowed_tools"] + + +class ToolChoiceOpenAIResponseInputToolChoiceFileSearch(TypedDict, total=False): + """Indicates that the model should use file search to generate a response.""" + + type: Literal["file_search"] + + +class ToolChoiceOpenAIResponseInputToolChoiceWebSearch(TypedDict, total=False): + """Indicates that the model should use web search to generate a response""" + + type: Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] + + +class ToolChoiceOpenAIResponseInputToolChoiceFunctionTool(TypedDict, total=False): + """Forces the model to call a specific function.""" + + name: Required[str] + + type: Literal["function"] + + +class ToolChoiceOpenAIResponseInputToolChoiceMcpTool(TypedDict, total=False): + """Forces the model to call a specific tool on a remote MCP server""" + + server_label: Required[str] + + name: Optional[str] + + type: Literal["mcp"] + + +class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(TypedDict, total=False): + """Forces the model to call a custom tool.""" + + name: Required[str] + + type: Literal["custom"] + + +ToolChoice: TypeAlias = Union[ + Literal["auto", "required", "none"], + ToolChoiceOpenAIResponseInputToolChoiceAllowedTools, + ToolChoiceOpenAIResponseInputToolChoiceFileSearch, + ToolChoiceOpenAIResponseInputToolChoiceWebSearch, + ToolChoiceOpenAIResponseInputToolChoiceFunctionTool, + ToolChoiceOpenAIResponseInputToolChoiceMcpTool, + ToolChoiceOpenAIResponseInputToolChoiceCustomTool, +] + + class ToolOpenAIResponseInputToolWebSearch(TypedDict, total=False): + """Web search tool configuration for OpenAI response inputs.""" + search_context_size: Optional[str] type: Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] class ToolOpenAIResponseInputToolFileSearchRankingOptions(TypedDict, total=False): + """Options for ranking and filtering search results.""" + ranker: Optional[str] score_threshold: Optional[float] class ToolOpenAIResponseInputToolFileSearch(TypedDict, total=False): + """File search tool configuration for OpenAI response inputs.""" + vector_store_ids: Required[SequenceNotStr[str]] filters: Optional[Dict[str, object]] @@ -488,6 +681,8 @@ class ToolOpenAIResponseInputToolFileSearch(TypedDict, total=False): class ToolOpenAIResponseInputToolFunction(TypedDict, total=False): + """Function tool configuration for OpenAI response inputs.""" + name: Required[str] parameters: Required[Optional[Dict[str, object]]] @@ -500,6 +695,8 @@ class ToolOpenAIResponseInputToolFunction(TypedDict, total=False): class ToolOpenAIResponseInputToolMcpAllowedToolsAllowedToolsFilter(TypedDict, total=False): + """Filter configuration for restricting which MCP tools can be used.""" + tool_names: Optional[SequenceNotStr[str]] @@ -509,6 +706,8 @@ class ToolOpenAIResponseInputToolMcpAllowedToolsAllowedToolsFilter(TypedDict, to class ToolOpenAIResponseInputToolMcpRequireApprovalApprovalFilter(TypedDict, total=False): + """Filter configuration for MCP tool approval requirements.""" + always: Optional[SequenceNotStr[str]] never: Optional[SequenceNotStr[str]] @@ -520,6 +719,8 @@ class ToolOpenAIResponseInputToolMcpRequireApprovalApprovalFilter(TypedDict, tot class ToolOpenAIResponseInputToolMcp(TypedDict, total=False): + """Model Context Protocol (MCP) tool configuration for OpenAI response inputs.""" + server_label: Required[str] server_url: Required[str] diff --git a/src/llama_stack_client/types/response_delete_response.py b/src/llama_stack_client/types/response_delete_response.py index 75515977..ca3c55ad 100644 --- a/src/llama_stack_client/types/response_delete_response.py +++ b/src/llama_stack_client/types/response_delete_response.py @@ -15,6 +15,8 @@ class ResponseDeleteResponse(BaseModel): + """Response object confirming deletion of an OpenAI response.""" + id: str deleted: Optional[bool] = None diff --git a/src/llama_stack_client/types/response_list_response.py b/src/llama_stack_client/types/response_list_response.py index 13317264..517badaf 100644 --- a/src/llama_stack_client/types/response_list_response.py +++ b/src/llama_stack_client/types/response_list_response.py @@ -22,14 +22,16 @@ "InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "InputOpenAIResponseOutputMessageWebSearchToolCall", "InputOpenAIResponseOutputMessageFileSearchToolCall", "InputOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -46,14 +48,16 @@ "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "OutputOpenAIResponseOutputMessageWebSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -70,6 +74,13 @@ "PromptVariablesOpenAIResponseInputMessageContentFile", "Text", "TextFormat", + "ToolChoice", + "ToolChoiceOpenAIResponseInputToolChoiceAllowedTools", + "ToolChoiceOpenAIResponseInputToolChoiceFileSearch", + "ToolChoiceOpenAIResponseInputToolChoiceWebSearch", + "ToolChoiceOpenAIResponseInputToolChoiceFunctionTool", + "ToolChoiceOpenAIResponseInputToolChoiceMcpTool", + "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", "ToolOpenAIResponseInputToolFileSearch", @@ -87,6 +98,8 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -95,6 +108,8 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConte class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -107,6 +122,8 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConte class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -128,9 +145,11 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConte ] -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -140,9 +159,11 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCont type: Optional[Literal["file_citation"]] = None -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -154,7 +175,7 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCont type: Optional[Literal["url_citation"]] = None -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -170,7 +191,7 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCont type: Optional[Literal["container_file_citation"]] = None -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -180,56 +201,114 @@ class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCont type: Optional[Literal["file_path"]] = None -InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class InputOpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ InputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -243,6 +322,8 @@ class InputOpenAIResponseMessageOutput(BaseModel): class InputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -251,6 +332,8 @@ class InputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class InputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -263,6 +346,8 @@ class InputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class InputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -275,6 +360,8 @@ class InputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class InputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -289,6 +376,8 @@ class InputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): class InputOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -305,6 +394,8 @@ class InputOpenAIResponseOutputMessageMcpCall(BaseModel): class InputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -313,6 +404,8 @@ class InputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class InputOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -323,6 +416,8 @@ class InputOpenAIResponseOutputMessageMcpListTools(BaseModel): class InputOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -335,6 +430,10 @@ class InputOpenAIResponseMcpApprovalRequest(BaseModel): class InputOpenAIResponseInputFunctionToolCallOutput(BaseModel): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: str output: str @@ -347,6 +446,8 @@ class InputOpenAIResponseInputFunctionToolCallOutput(BaseModel): class InputOpenAIResponseMcpApprovalResponse(BaseModel): + """A response to an MCP approval request.""" + approval_request_id: str approve: bool @@ -375,6 +476,8 @@ class InputOpenAIResponseMcpApprovalResponse(BaseModel): class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -383,6 +486,8 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -395,6 +500,8 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -416,9 +523,11 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont ] -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -428,9 +537,11 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["file_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -442,7 +553,7 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["url_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -458,7 +569,7 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["container_file_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -468,56 +579,114 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["file_path"]] = None -OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class OutputOpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -531,6 +700,8 @@ class OutputOpenAIResponseMessageOutput(BaseModel): class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -539,6 +710,8 @@ class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class OutputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -551,6 +724,8 @@ class OutputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class OutputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -563,6 +738,8 @@ class OutputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class OutputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -577,6 +754,8 @@ class OutputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): class OutputOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -593,6 +772,8 @@ class OutputOpenAIResponseOutputMessageMcpCall(BaseModel): class OutputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -601,6 +782,8 @@ class OutputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -611,6 +794,8 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel): class OutputOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -637,18 +822,24 @@ class OutputOpenAIResponseMcpApprovalRequest(BaseModel): class Error(BaseModel): + """Error details for failed OpenAI response requests.""" + code: str message: str class PromptVariablesOpenAIResponseInputMessageContentText(BaseModel): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None class PromptVariablesOpenAIResponseInputMessageContentImage(BaseModel): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -659,6 +850,8 @@ class PromptVariablesOpenAIResponseInputMessageContentImage(BaseModel): class PromptVariablesOpenAIResponseInputMessageContentFile(BaseModel): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -681,6 +874,8 @@ class PromptVariablesOpenAIResponseInputMessageContentFile(BaseModel): class Prompt(BaseModel): + """OpenAI compatible Prompt object that is used in OpenAI responses.""" + id: str variables: Optional[Dict[str, PromptVariables]] = None @@ -689,6 +884,8 @@ class Prompt(BaseModel): class TextFormat(BaseModel): + """Configuration for Responses API text format.""" + description: Optional[str] = None name: Optional[str] = None @@ -701,11 +898,77 @@ class TextFormat(BaseModel): class Text(BaseModel): + """Text response configuration for OpenAI responses.""" + format: Optional[TextFormat] = None """Configuration for Responses API text format.""" +class ToolChoiceOpenAIResponseInputToolChoiceAllowedTools(BaseModel): + """Constrains the tools available to the model to a pre-defined set.""" + + tools: List[Dict[str, str]] + + mode: Optional[Literal["auto", "required"]] = None + + type: Optional[Literal["allowed_tools"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceFileSearch(BaseModel): + """Indicates that the model should use file search to generate a response.""" + + type: Optional[Literal["file_search"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceWebSearch(BaseModel): + """Indicates that the model should use web search to generate a response""" + + type: Optional[ + Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] + ] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceFunctionTool(BaseModel): + """Forces the model to call a specific function.""" + + name: str + + type: Optional[Literal["function"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceMcpTool(BaseModel): + """Forces the model to call a specific tool on a remote MCP server""" + + server_label: str + + name: Optional[str] = None + + type: Optional[Literal["mcp"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(BaseModel): + """Forces the model to call a custom tool.""" + + name: str + + type: Optional[Literal["custom"]] = None + + +ToolChoice: TypeAlias = Union[ + Literal["auto", "required", "none"], + ToolChoiceOpenAIResponseInputToolChoiceAllowedTools, + ToolChoiceOpenAIResponseInputToolChoiceFileSearch, + ToolChoiceOpenAIResponseInputToolChoiceWebSearch, + ToolChoiceOpenAIResponseInputToolChoiceFunctionTool, + ToolChoiceOpenAIResponseInputToolChoiceMcpTool, + ToolChoiceOpenAIResponseInputToolChoiceCustomTool, + None, +] + + class ToolOpenAIResponseInputToolWebSearch(BaseModel): + """Web search tool configuration for OpenAI response inputs.""" + search_context_size: Optional[str] = None type: Optional[ @@ -714,12 +977,16 @@ class ToolOpenAIResponseInputToolWebSearch(BaseModel): class ToolOpenAIResponseInputToolFileSearchRankingOptions(BaseModel): + """Options for ranking and filtering search results.""" + ranker: Optional[str] = None score_threshold: Optional[float] = None class ToolOpenAIResponseInputToolFileSearch(BaseModel): + """File search tool configuration for OpenAI response inputs.""" + vector_store_ids: List[str] filters: Optional[Dict[str, object]] = None @@ -733,6 +1000,8 @@ class ToolOpenAIResponseInputToolFileSearch(BaseModel): class ToolOpenAIResponseInputToolFunction(BaseModel): + """Function tool configuration for OpenAI response inputs.""" + name: str parameters: Optional[Dict[str, object]] = None @@ -745,6 +1014,8 @@ class ToolOpenAIResponseInputToolFunction(BaseModel): class ToolOpenAIResponseToolMcpAllowedToolsAllowedToolsFilter(BaseModel): + """Filter configuration for restricting which MCP tools can be used.""" + tool_names: Optional[List[str]] = None @@ -754,6 +1025,8 @@ class ToolOpenAIResponseToolMcpAllowedToolsAllowedToolsFilter(BaseModel): class ToolOpenAIResponseToolMcp(BaseModel): + """Model Context Protocol (MCP) tool configuration for OpenAI response object.""" + server_label: str allowed_tools: Optional[ToolOpenAIResponseToolMcpAllowedTools] = None @@ -771,14 +1044,20 @@ class ToolOpenAIResponseToolMcp(BaseModel): class UsageInputTokensDetails(BaseModel): + """Token details for input tokens in OpenAI response usage.""" + cached_tokens: Optional[int] = None class UsageOutputTokensDetails(BaseModel): + """Token details for output tokens in OpenAI response usage.""" + reasoning_tokens: Optional[int] = None class Usage(BaseModel): + """Usage information for OpenAI response.""" + input_tokens: int output_tokens: int @@ -793,6 +1072,8 @@ class Usage(BaseModel): class ResponseListResponse(BaseModel): + """OpenAI response object extended with input context information.""" + id: str created_at: int @@ -812,6 +1093,8 @@ class ResponseListResponse(BaseModel): max_tool_calls: Optional[int] = None + metadata: Optional[Dict[str, str]] = None + object: Optional[Literal["response"]] = None parallel_tool_calls: Optional[bool] = None @@ -826,6 +1109,9 @@ class ResponseListResponse(BaseModel): text: Optional[Text] = None """Text response configuration for OpenAI responses.""" + tool_choice: Optional[ToolChoice] = None + """Constrains the tools available to the model to a pre-defined set.""" + tools: Optional[List[Tool]] = None top_p: Optional[float] = None diff --git a/src/llama_stack_client/types/response_object.py b/src/llama_stack_client/types/response_object.py index 3f189577..41e0e963 100644 --- a/src/llama_stack_client/types/response_object.py +++ b/src/llama_stack_client/types/response_object.py @@ -22,14 +22,16 @@ "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "OutputOpenAIResponseOutputMessageWebSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -46,6 +48,13 @@ "PromptVariablesOpenAIResponseInputMessageContentFile", "Text", "TextFormat", + "ToolChoice", + "ToolChoiceOpenAIResponseInputToolChoiceAllowedTools", + "ToolChoiceOpenAIResponseInputToolChoiceFileSearch", + "ToolChoiceOpenAIResponseInputToolChoiceWebSearch", + "ToolChoiceOpenAIResponseInputToolChoiceFunctionTool", + "ToolChoiceOpenAIResponseInputToolChoiceMcpTool", + "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", "ToolOpenAIResponseInputToolFileSearch", @@ -63,6 +72,8 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -71,6 +82,8 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -83,6 +96,8 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -104,9 +119,11 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageCont ] -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -116,9 +133,11 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["file_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -130,7 +149,7 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["url_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -146,7 +165,7 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["container_file_citation"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -156,56 +175,114 @@ class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageCon type: Optional[Literal["file_path"]] = None -OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class OutputOpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ OutputOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -219,6 +296,8 @@ class OutputOpenAIResponseMessageOutput(BaseModel): class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -227,6 +306,8 @@ class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class OutputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -239,6 +320,8 @@ class OutputOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class OutputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -251,6 +334,8 @@ class OutputOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class OutputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -265,6 +350,8 @@ class OutputOpenAIResponseOutputMessageFunctionToolCall(BaseModel): class OutputOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -281,6 +368,8 @@ class OutputOpenAIResponseOutputMessageMcpCall(BaseModel): class OutputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -289,6 +378,8 @@ class OutputOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -299,6 +390,8 @@ class OutputOpenAIResponseOutputMessageMcpListTools(BaseModel): class OutputOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -325,18 +418,24 @@ class OutputOpenAIResponseMcpApprovalRequest(BaseModel): class Error(BaseModel): + """Error details for failed OpenAI response requests.""" + code: str message: str class PromptVariablesOpenAIResponseInputMessageContentText(BaseModel): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None class PromptVariablesOpenAIResponseInputMessageContentImage(BaseModel): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -347,6 +446,8 @@ class PromptVariablesOpenAIResponseInputMessageContentImage(BaseModel): class PromptVariablesOpenAIResponseInputMessageContentFile(BaseModel): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -369,6 +470,8 @@ class PromptVariablesOpenAIResponseInputMessageContentFile(BaseModel): class Prompt(BaseModel): + """OpenAI compatible Prompt object that is used in OpenAI responses.""" + id: str variables: Optional[Dict[str, PromptVariables]] = None @@ -377,6 +480,8 @@ class Prompt(BaseModel): class TextFormat(BaseModel): + """Configuration for Responses API text format.""" + description: Optional[str] = None name: Optional[str] = None @@ -389,11 +494,77 @@ class TextFormat(BaseModel): class Text(BaseModel): + """Text response configuration for OpenAI responses.""" + format: Optional[TextFormat] = None """Configuration for Responses API text format.""" +class ToolChoiceOpenAIResponseInputToolChoiceAllowedTools(BaseModel): + """Constrains the tools available to the model to a pre-defined set.""" + + tools: List[Dict[str, str]] + + mode: Optional[Literal["auto", "required"]] = None + + type: Optional[Literal["allowed_tools"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceFileSearch(BaseModel): + """Indicates that the model should use file search to generate a response.""" + + type: Optional[Literal["file_search"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceWebSearch(BaseModel): + """Indicates that the model should use web search to generate a response""" + + type: Optional[ + Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] + ] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceFunctionTool(BaseModel): + """Forces the model to call a specific function.""" + + name: str + + type: Optional[Literal["function"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceMcpTool(BaseModel): + """Forces the model to call a specific tool on a remote MCP server""" + + server_label: str + + name: Optional[str] = None + + type: Optional[Literal["mcp"]] = None + + +class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(BaseModel): + """Forces the model to call a custom tool.""" + + name: str + + type: Optional[Literal["custom"]] = None + + +ToolChoice: TypeAlias = Union[ + Literal["auto", "required", "none"], + ToolChoiceOpenAIResponseInputToolChoiceAllowedTools, + ToolChoiceOpenAIResponseInputToolChoiceFileSearch, + ToolChoiceOpenAIResponseInputToolChoiceWebSearch, + ToolChoiceOpenAIResponseInputToolChoiceFunctionTool, + ToolChoiceOpenAIResponseInputToolChoiceMcpTool, + ToolChoiceOpenAIResponseInputToolChoiceCustomTool, + None, +] + + class ToolOpenAIResponseInputToolWebSearch(BaseModel): + """Web search tool configuration for OpenAI response inputs.""" + search_context_size: Optional[str] = None type: Optional[ @@ -402,12 +573,16 @@ class ToolOpenAIResponseInputToolWebSearch(BaseModel): class ToolOpenAIResponseInputToolFileSearchRankingOptions(BaseModel): + """Options for ranking and filtering search results.""" + ranker: Optional[str] = None score_threshold: Optional[float] = None class ToolOpenAIResponseInputToolFileSearch(BaseModel): + """File search tool configuration for OpenAI response inputs.""" + vector_store_ids: List[str] filters: Optional[Dict[str, object]] = None @@ -421,6 +596,8 @@ class ToolOpenAIResponseInputToolFileSearch(BaseModel): class ToolOpenAIResponseInputToolFunction(BaseModel): + """Function tool configuration for OpenAI response inputs.""" + name: str parameters: Optional[Dict[str, object]] = None @@ -433,6 +610,8 @@ class ToolOpenAIResponseInputToolFunction(BaseModel): class ToolOpenAIResponseToolMcpAllowedToolsAllowedToolsFilter(BaseModel): + """Filter configuration for restricting which MCP tools can be used.""" + tool_names: Optional[List[str]] = None @@ -442,6 +621,8 @@ class ToolOpenAIResponseToolMcpAllowedToolsAllowedToolsFilter(BaseModel): class ToolOpenAIResponseToolMcp(BaseModel): + """Model Context Protocol (MCP) tool configuration for OpenAI response object.""" + server_label: str allowed_tools: Optional[ToolOpenAIResponseToolMcpAllowedTools] = None @@ -459,14 +640,20 @@ class ToolOpenAIResponseToolMcp(BaseModel): class UsageInputTokensDetails(BaseModel): + """Token details for input tokens in OpenAI response usage.""" + cached_tokens: Optional[int] = None class UsageOutputTokensDetails(BaseModel): + """Token details for output tokens in OpenAI response usage.""" + reasoning_tokens: Optional[int] = None class Usage(BaseModel): + """Usage information for OpenAI response.""" + input_tokens: int output_tokens: int @@ -508,6 +695,8 @@ def output_text(self) -> str: max_tool_calls: Optional[int] = None + metadata: Optional[Dict[str, str]] = None + object: Optional[Literal["response"]] = None parallel_tool_calls: Optional[bool] = None @@ -522,6 +711,9 @@ def output_text(self) -> str: text: Optional[Text] = None """Text response configuration for OpenAI responses.""" + tool_choice: Optional[ToolChoice] = None + """Constrains the tools available to the model to a pre-defined set.""" + tools: Optional[List[Tool]] = None top_p: Optional[float] = None diff --git a/src/llama_stack_client/types/response_object_stream.py b/src/llama_stack_client/types/response_object_stream.py index 7cda237f..fea7e92d 100644 --- a/src/llama_stack_client/types/response_object_stream.py +++ b/src/llama_stack_client/types/response_object_stream.py @@ -31,6 +31,8 @@ "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCall", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFileSearchToolCall", @@ -54,6 +56,8 @@ "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCall", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFileSearchToolCall", @@ -64,6 +68,8 @@ "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListToolsTool", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpApprovalRequest", "OpenAIResponseObjectStreamResponseOutputTextDelta", + "OpenAIResponseObjectStreamResponseOutputTextDeltaLogprob", + "OpenAIResponseObjectStreamResponseOutputTextDeltaLogprobTopLogprob", "OpenAIResponseObjectStreamResponseOutputTextDone", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta", "OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone", @@ -86,6 +92,8 @@ "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationCitation", "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprob", + "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprobTopLogprob", "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartRefusal", "OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartReasoningText", "OpenAIResponseObjectStreamResponseContentPartDone", @@ -96,6 +104,8 @@ "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationCitation", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationFilePath", + "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprob", + "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprobTopLogprob", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartRefusal", "OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartReasoningText", "OpenAIResponseObjectStreamResponseReasoningTextDelta", @@ -124,6 +134,8 @@ class OpenAIResponseObjectStreamResponseCreated(BaseModel): + """Streaming event indicating a new response has been created.""" + response: ResponseObject """Complete OpenAI response object containing generation results and metadata.""" @@ -131,6 +143,8 @@ class OpenAIResponseObjectStreamResponseCreated(BaseModel): class OpenAIResponseObjectStreamResponseInProgress(BaseModel): + """Streaming event indicating the response remains in progress.""" + response: ResponseObject """Complete OpenAI response object containing generation results and metadata.""" @@ -142,6 +156,8 @@ class OpenAIResponseObjectStreamResponseInProgress(BaseModel): class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -150,6 +166,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -162,6 +180,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -186,6 +206,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -198,6 +220,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -246,6 +270,49 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage ] +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob + ] + ] = None + + class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( BaseModel ): @@ -257,12 +324,20 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage ] ] = None + logprobs: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob + ] + ] = None + type: Optional[Literal["output_text"]] = None class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None @@ -278,6 +353,13 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ @@ -298,6 +380,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMessage class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -308,6 +392,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFileSearchToolCallResult( BaseModel ): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -320,6 +406,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -334,6 +422,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -348,6 +438,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -364,6 +456,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -372,6 +466,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -382,6 +478,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -408,6 +506,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseMcpAppr class OpenAIResponseObjectStreamResponseOutputItemAdded(BaseModel): + """Streaming event for when a new output item is added to the response.""" + item: OpenAIResponseObjectStreamResponseOutputItemAddedItem """ Corresponds to the various Message types in the Responses API. They are all @@ -427,6 +527,8 @@ class OpenAIResponseObjectStreamResponseOutputItemAdded(BaseModel): class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -435,6 +537,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -447,6 +551,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -471,6 +577,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -483,6 +591,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -531,6 +641,49 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC ] +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprobTopLogprob + ] + ] = None + + class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( BaseModel ): @@ -542,12 +695,20 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC ] ] = None + logprobs: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextLogprob + ] + ] = None + type: Optional[Literal["output_text"]] = None class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None @@ -563,6 +724,13 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessageC class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessage(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ @@ -583,6 +751,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMessage( class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -593,6 +763,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFileSearchToolCallResult( BaseModel ): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -605,6 +777,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -619,6 +793,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -633,6 +809,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -649,6 +827,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -657,6 +837,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -667,6 +849,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -693,6 +877,8 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseMcpAppro class OpenAIResponseObjectStreamResponseOutputItemDone(BaseModel): + """Streaming event for when an output item is completed.""" + item: OpenAIResponseObjectStreamResponseOutputItemDoneItem """ Corresponds to the various Message types in the Responses API. They are all @@ -709,7 +895,44 @@ class OpenAIResponseObjectStreamResponseOutputItemDone(BaseModel): type: Optional[Literal["response.output_item.done"]] = None +class OpenAIResponseObjectStreamResponseOutputTextDeltaLogprobTopLogprob(BaseModel): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseObjectStreamResponseOutputTextDeltaLogprob(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[List[OpenAIResponseObjectStreamResponseOutputTextDeltaLogprobTopLogprob]] = None + + class OpenAIResponseObjectStreamResponseOutputTextDelta(BaseModel): + """Streaming event for incremental text content updates.""" + content_index: int delta: str @@ -720,10 +943,14 @@ class OpenAIResponseObjectStreamResponseOutputTextDelta(BaseModel): sequence_number: int + logprobs: Optional[List[OpenAIResponseObjectStreamResponseOutputTextDeltaLogprob]] = None + type: Optional[Literal["response.output_text.delta"]] = None class OpenAIResponseObjectStreamResponseOutputTextDone(BaseModel): + """Streaming event for when text output is completed.""" + content_index: int item_id: str @@ -738,6 +965,8 @@ class OpenAIResponseObjectStreamResponseOutputTextDone(BaseModel): class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta(BaseModel): + """Streaming event for incremental function call argument updates.""" + delta: str item_id: str @@ -750,6 +979,8 @@ class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDelta(BaseModel): class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone(BaseModel): + """Streaming event for when function call arguments are completed.""" + arguments: str item_id: str @@ -762,6 +993,8 @@ class OpenAIResponseObjectStreamResponseFunctionCallArgumentsDone(BaseModel): class OpenAIResponseObjectStreamResponseWebSearchCallInProgress(BaseModel): + """Streaming event for web search calls in progress.""" + item_id: str output_index: int @@ -782,6 +1015,8 @@ class OpenAIResponseObjectStreamResponseWebSearchCallSearching(BaseModel): class OpenAIResponseObjectStreamResponseWebSearchCallCompleted(BaseModel): + """Streaming event for completed web search calls.""" + item_id: str output_index: int @@ -834,6 +1069,8 @@ class OpenAIResponseObjectStreamResponseMcpCallArgumentsDone(BaseModel): class OpenAIResponseObjectStreamResponseMcpCallInProgress(BaseModel): + """Streaming event for MCP calls in progress.""" + item_id: str output_index: int @@ -844,12 +1081,16 @@ class OpenAIResponseObjectStreamResponseMcpCallInProgress(BaseModel): class OpenAIResponseObjectStreamResponseMcpCallFailed(BaseModel): + """Streaming event for failed MCP calls.""" + sequence_number: int type: Optional[Literal["response.mcp_call.failed"]] = None class OpenAIResponseObjectStreamResponseMcpCallCompleted(BaseModel): + """Streaming event for completed MCP calls.""" + sequence_number: int type: Optional[Literal["response.mcp_call.completed"]] = None @@ -858,6 +1099,8 @@ class OpenAIResponseObjectStreamResponseMcpCallCompleted(BaseModel): class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -870,6 +1113,8 @@ class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseConten class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -918,25 +1163,72 @@ class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseConten ] +class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprob(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprobTopLogprob] + ] = None + + class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputText(BaseModel): + """Text content within a streamed response part.""" + text: str annotations: Optional[ List[OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextAnnotation] ] = None - logprobs: Optional[List[Dict[str, object]]] = None + logprobs: Optional[ + List[OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartOutputTextLogprob] + ] = None type: Optional[Literal["output_text"]] = None class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartRefusal(BaseModel): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseContentPartReasoningText(BaseModel): + """Reasoning text emitted as part of a streamed response.""" + text: str type: Optional[Literal["reasoning_text"]] = None @@ -953,6 +1245,8 @@ class OpenAIResponseObjectStreamResponseContentPartAddedPartOpenAIResponseConten class OpenAIResponseObjectStreamResponseContentPartAdded(BaseModel): + """Streaming event for when a new content part is added to a response item.""" + content_index: int item_id: str @@ -972,6 +1266,8 @@ class OpenAIResponseObjectStreamResponseContentPartAdded(BaseModel): class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -984,6 +1280,8 @@ class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContent class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -1032,25 +1330,72 @@ class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContent ] +class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprob(BaseModel): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprobTopLogprob] + ] = None + + class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputText(BaseModel): + """Text content within a streamed response part.""" + text: str annotations: Optional[ List[OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextAnnotation] ] = None - logprobs: Optional[List[Dict[str, object]]] = None + logprobs: Optional[ + List[OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartOutputTextLogprob] + ] = None type: Optional[Literal["output_text"]] = None class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartRefusal(BaseModel): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContentPartReasoningText(BaseModel): + """Reasoning text emitted as part of a streamed response.""" + text: str type: Optional[Literal["reasoning_text"]] = None @@ -1067,6 +1412,8 @@ class OpenAIResponseObjectStreamResponseContentPartDonePartOpenAIResponseContent class OpenAIResponseObjectStreamResponseContentPartDone(BaseModel): + """Streaming event for when a content part is completed.""" + content_index: int item_id: str @@ -1084,6 +1431,8 @@ class OpenAIResponseObjectStreamResponseContentPartDone(BaseModel): class OpenAIResponseObjectStreamResponseReasoningTextDelta(BaseModel): + """Streaming event for incremental reasoning text updates.""" + content_index: int delta: str @@ -1098,6 +1447,8 @@ class OpenAIResponseObjectStreamResponseReasoningTextDelta(BaseModel): class OpenAIResponseObjectStreamResponseReasoningTextDone(BaseModel): + """Streaming event for when reasoning text is completed.""" + content_index: int item_id: str @@ -1112,12 +1463,16 @@ class OpenAIResponseObjectStreamResponseReasoningTextDone(BaseModel): class OpenAIResponseObjectStreamResponseReasoningSummaryPartAddedPart(BaseModel): + """Reasoning summary part in a streamed response.""" + text: str type: Optional[Literal["summary_text"]] = None class OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded(BaseModel): + """Streaming event for when a new reasoning summary part is added.""" + item_id: str output_index: int @@ -1133,12 +1488,16 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryPartAdded(BaseModel): class OpenAIResponseObjectStreamResponseReasoningSummaryPartDonePart(BaseModel): + """Reasoning summary part in a streamed response.""" + text: str type: Optional[Literal["summary_text"]] = None class OpenAIResponseObjectStreamResponseReasoningSummaryPartDone(BaseModel): + """Streaming event for when a reasoning summary part is completed.""" + item_id: str output_index: int @@ -1154,6 +1513,8 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryPartDone(BaseModel): class OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta(BaseModel): + """Streaming event for incremental reasoning summary text updates.""" + delta: str item_id: str @@ -1168,6 +1529,8 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryTextDelta(BaseModel): class OpenAIResponseObjectStreamResponseReasoningSummaryTextDone(BaseModel): + """Streaming event for when reasoning summary text is completed.""" + item_id: str output_index: int @@ -1182,6 +1545,8 @@ class OpenAIResponseObjectStreamResponseReasoningSummaryTextDone(BaseModel): class OpenAIResponseObjectStreamResponseRefusalDelta(BaseModel): + """Streaming event for incremental refusal text updates.""" + content_index: int delta: str @@ -1196,6 +1561,8 @@ class OpenAIResponseObjectStreamResponseRefusalDelta(BaseModel): class OpenAIResponseObjectStreamResponseRefusalDone(BaseModel): + """Streaming event for when refusal text is completed.""" + content_index: int item_id: str @@ -1212,6 +1579,8 @@ class OpenAIResponseObjectStreamResponseRefusalDone(BaseModel): class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -1222,6 +1591,8 @@ class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenA class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenAIResponseAnnotationCitation(BaseModel): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -1269,6 +1640,8 @@ class OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotationOpenA class OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded(BaseModel): + """Streaming event for when an annotation is added to output text.""" + annotation: OpenAIResponseObjectStreamResponseOutputTextAnnotationAddedAnnotation """File citation annotation for referencing specific files in response content.""" @@ -1286,6 +1659,8 @@ class OpenAIResponseObjectStreamResponseOutputTextAnnotationAdded(BaseModel): class OpenAIResponseObjectStreamResponseFileSearchCallInProgress(BaseModel): + """Streaming event for file search calls in progress.""" + item_id: str output_index: int @@ -1296,6 +1671,8 @@ class OpenAIResponseObjectStreamResponseFileSearchCallInProgress(BaseModel): class OpenAIResponseObjectStreamResponseFileSearchCallSearching(BaseModel): + """Streaming event for file search currently searching.""" + item_id: str output_index: int @@ -1306,6 +1683,8 @@ class OpenAIResponseObjectStreamResponseFileSearchCallSearching(BaseModel): class OpenAIResponseObjectStreamResponseFileSearchCallCompleted(BaseModel): + """Streaming event for completed file search calls.""" + item_id: str output_index: int @@ -1316,6 +1695,8 @@ class OpenAIResponseObjectStreamResponseFileSearchCallCompleted(BaseModel): class OpenAIResponseObjectStreamResponseIncomplete(BaseModel): + """Streaming event emitted when a response ends in an incomplete state.""" + response: ResponseObject """Complete OpenAI response object containing generation results and metadata.""" @@ -1325,6 +1706,8 @@ class OpenAIResponseObjectStreamResponseIncomplete(BaseModel): class OpenAIResponseObjectStreamResponseFailed(BaseModel): + """Streaming event emitted when a response fails.""" + response: ResponseObject """Complete OpenAI response object containing generation results and metadata.""" @@ -1334,6 +1717,8 @@ class OpenAIResponseObjectStreamResponseFailed(BaseModel): class OpenAIResponseObjectStreamResponseCompleted(BaseModel): + """Streaming event indicating a response has been completed.""" + response: ResponseObject """Complete OpenAI response object containing generation results and metadata.""" diff --git a/src/llama_stack_client/types/responses/input_item_list_response.py b/src/llama_stack_client/types/responses/input_item_list_response.py index 02addf1b..e0aebd6a 100644 --- a/src/llama_stack_client/types/responses/input_item_list_response.py +++ b/src/llama_stack_client/types/responses/input_item_list_response.py @@ -20,14 +20,16 @@ "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText", "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage", "DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath", - "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", + "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", "DataOpenAIResponseOutputMessageWebSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCallResult", @@ -44,6 +46,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentText( BaseModel ): + """Text content for input messages in OpenAI response format.""" + text: str type: Optional[Literal["input_text"]] = None @@ -52,6 +56,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentImage( BaseModel ): + """Image content for input messages in OpenAI response format.""" + detail: Optional[Literal["low", "high", "auto"]] = None file_id: Optional[str] = None @@ -64,6 +70,8 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFileOpenAIResponseInputMessageContentFile( BaseModel ): + """File content for input messages in OpenAI response format.""" + file_data: Optional[str] = None file_id: Optional[str] = None @@ -85,9 +93,11 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageConten ] -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation( BaseModel ): + """File citation annotation for referencing specific files in response content.""" + file_id: str filename: str @@ -97,9 +107,11 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["file_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation( BaseModel ): + """URL citation annotation for referencing external web resources.""" + end_index: int start_index: int @@ -111,7 +123,7 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["url_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation( BaseModel ): container_id: str @@ -127,7 +139,7 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["container_file_citation"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath( BaseModel ): file_id: str @@ -137,56 +149,114 @@ class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageConte type: Optional[Literal["file_path"]] = None -DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation: TypeAlias = Annotated[ +DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation: TypeAlias = Annotated[ Union[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFileCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationContainerFileCitation, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotationOpenAIResponseAnnotationFilePath, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFileCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationContainerFileCitation, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotationOpenAIResponseAnnotationFilePath, ], PropertyInfo(discriminator="type"), ] -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob( + BaseModel +): + """ + The top log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob( + BaseModel +): + """ + The log probability for a token from an OpenAI-compatible chat completion response. + + :token: The token + :bytes: (Optional) The bytes for the token + :logprob: The log probability of the token + :top_logprobs: The top log probabilities for the token + """ + + token: str + + logprob: float + + bytes: Optional[List[int]] = None + + top_logprobs: Optional[ + List[ + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob + ] + ] = None + + +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput( BaseModel ): text: str annotations: Optional[ List[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextAnnotation + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputAnnotation + ] + ] = None + + logprobs: Optional[ + List[ + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob ] ] = None type: Optional[Literal["output_text"]] = None -class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( +class DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal( BaseModel ): + """Refusal content within a streamed response part.""" + refusal: str type: Optional[Literal["refusal"]] = None -DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ +DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal: TypeAlias = Annotated[ Union[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputText, - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutput, + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal, ], PropertyInfo(discriminator="type"), ] class DataOpenAIResponseMessageOutput(BaseModel): + """ + Corresponds to the various Message types in the Responses API. + They are all under one type because the Responses API gives them all + the same "type" value, and there is no way to tell them apart in certain + scenarios. + """ + content: Union[ str, List[ DataOpenAIResponseMessageOutputContentListOpenAIResponseInputMessageContentTextOpenAIResponseInputMessageContentImageOpenAIResponseInputMessageContentFile ], List[ - DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOpenAIResponseContentPartRefusal + DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusal ], ] @@ -200,6 +270,8 @@ class DataOpenAIResponseMessageOutput(BaseModel): class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): + """Web search tool call output message for OpenAI responses.""" + id: str status: str @@ -208,6 +280,8 @@ class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): class DataOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): + """Search results returned by the file search operation.""" + attributes: Dict[str, object] file_id: str @@ -220,6 +294,8 @@ class DataOpenAIResponseOutputMessageFileSearchToolCallResult(BaseModel): class DataOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): + """File search tool call output message for OpenAI responses.""" + id: str queries: List[str] @@ -232,6 +308,8 @@ class DataOpenAIResponseOutputMessageFileSearchToolCall(BaseModel): class DataOpenAIResponseOutputMessageFunctionToolCall(BaseModel): + """Function tool call output message for OpenAI responses.""" + arguments: str call_id: str @@ -246,6 +324,8 @@ class DataOpenAIResponseOutputMessageFunctionToolCall(BaseModel): class DataOpenAIResponseOutputMessageMcpCall(BaseModel): + """Model Context Protocol (MCP) call output message for OpenAI responses.""" + id: str arguments: str @@ -262,6 +342,8 @@ class DataOpenAIResponseOutputMessageMcpCall(BaseModel): class DataOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): + """Tool definition returned by MCP list tools operation.""" + input_schema: Dict[str, object] name: str @@ -270,6 +352,8 @@ class DataOpenAIResponseOutputMessageMcpListToolsTool(BaseModel): class DataOpenAIResponseOutputMessageMcpListTools(BaseModel): + """MCP list tools output message containing available tools from an MCP server.""" + id: str server_label: str @@ -280,6 +364,8 @@ class DataOpenAIResponseOutputMessageMcpListTools(BaseModel): class DataOpenAIResponseMcpApprovalRequest(BaseModel): + """A request for human approval of a tool invocation.""" + id: str arguments: str @@ -292,6 +378,10 @@ class DataOpenAIResponseMcpApprovalRequest(BaseModel): class DataOpenAIResponseInputFunctionToolCallOutput(BaseModel): + """ + This represents the output of a function call that gets passed back to the model. + """ + call_id: str output: str @@ -304,6 +394,8 @@ class DataOpenAIResponseInputFunctionToolCallOutput(BaseModel): class DataOpenAIResponseMcpApprovalResponse(BaseModel): + """A response to an MCP approval request.""" + approval_request_id: str approve: bool @@ -330,6 +422,8 @@ class DataOpenAIResponseMcpApprovalResponse(BaseModel): class InputItemListResponse(BaseModel): + """List container for OpenAI response input items.""" + data: List[Data] object: Optional[Literal["list"]] = None diff --git a/src/llama_stack_client/types/route_list_params.py b/src/llama_stack_client/types/route_list_params.py index 8517e4a6..2140181d 100644 --- a/src/llama_stack_client/types/route_list_params.py +++ b/src/llama_stack_client/types/route_list_params.py @@ -16,3 +16,9 @@ class RouteListParams(TypedDict, total=False): api_filter: Optional[Literal["v1", "v1alpha", "v1beta", "deprecated"]] + """Optional filter to control which routes are returned. + + Can be an API level ('v1', 'v1alpha', 'v1beta') to show non-deprecated routes at + that level, or 'deprecated' to show deprecated routes across all levels. If not + specified, returns all non-deprecated routes. + """ diff --git a/src/llama_stack_client/types/route_list_response.py b/src/llama_stack_client/types/route_list_response.py index 5eded63b..8241a4ca 100644 --- a/src/llama_stack_client/types/route_list_response.py +++ b/src/llama_stack_client/types/route_list_response.py @@ -9,7 +9,7 @@ from typing import List from typing_extensions import TypeAlias -from .route_info import RouteInfo +from .shared.route_info import RouteInfo __all__ = ["RouteListResponse"] diff --git a/src/llama_stack_client/types/run_shield_response.py b/src/llama_stack_client/types/run_shield_response.py index 5306993a..7e73ab16 100644 --- a/src/llama_stack_client/types/run_shield_response.py +++ b/src/llama_stack_client/types/run_shield_response.py @@ -15,5 +15,7 @@ class RunShieldResponse(BaseModel): + """Response from running a safety shield.""" + violation: Optional[SafetyViolation] = None """Details of a safety violation detected by content moderation.""" diff --git a/src/llama_stack_client/types/safety_run_shield_params.py b/src/llama_stack_client/types/safety_run_shield_params.py index eb0ac7ae..821b9951 100644 --- a/src/llama_stack_client/types/safety_run_shield_params.py +++ b/src/llama_stack_client/types/safety_run_shield_params.py @@ -45,6 +45,8 @@ class SafetyRunShieldParams(TypedDict, total=False): class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartTextParam( TypedDict, total=False ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] @@ -53,6 +55,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL( TypedDict, total=False ): + """Image URL specification for OpenAI-compatible chat completion messages.""" + url: Required[str] detail: Optional[str] @@ -61,6 +65,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParam( TypedDict, total=False ): + """Image content part for OpenAI-compatible chat completion messages.""" + image_url: Required[ MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPartTextParamOpenAIChatCompletionContentPartImageParamOpenAIFileOpenAIChatCompletionContentPartImageParamImageURL ] @@ -97,6 +103,8 @@ class MessageOpenAIUserMessageParamInputContentListOpenAIChatCompletionContentPa class MessageOpenAIUserMessageParamInput(TypedDict, total=False): + """A message from the user in an OpenAI-compatible chat completion request.""" + content: Required[ Union[ str, @@ -112,12 +120,16 @@ class MessageOpenAIUserMessageParamInput(TypedDict, total=False): class MessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAISystemMessageParam(TypedDict, total=False): + """A system message providing instructions or context to the model.""" + content: Required[ Union[str, Iterable[MessageOpenAISystemMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] @@ -130,18 +142,24 @@ class MessageOpenAISystemMessageParam(TypedDict, total=False): class MessageOpenAIAssistantMessageParamInputContentListOpenAIChatCompletionContentPartTextParam( TypedDict, total=False ): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIAssistantMessageParamInputToolCallFunction(TypedDict, total=False): + """Function call details for OpenAI-compatible tool calls.""" + arguments: Optional[str] name: Optional[str] class MessageOpenAIAssistantMessageParamInputToolCall(TypedDict, total=False): + """Tool call specification for OpenAI-compatible chat completion responses.""" + id: Optional[str] function: Optional[MessageOpenAIAssistantMessageParamInputToolCallFunction] @@ -153,6 +171,10 @@ class MessageOpenAIAssistantMessageParamInputToolCall(TypedDict, total=False): class MessageOpenAIAssistantMessageParamInput(TypedDict, total=False): + """ + A message containing the model's (assistant) response in an OpenAI-compatible chat completion request. + """ + content: Union[ str, Iterable[MessageOpenAIAssistantMessageParamInputContentListOpenAIChatCompletionContentPartTextParam], None ] @@ -165,12 +187,18 @@ class MessageOpenAIAssistantMessageParamInput(TypedDict, total=False): class MessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIToolMessageParam(TypedDict, total=False): + """ + A message representing the result of a tool invocation in an OpenAI-compatible chat completion request. + """ + content: Required[ Union[str, Iterable[MessageOpenAIToolMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] @@ -181,12 +209,16 @@ class MessageOpenAIToolMessageParam(TypedDict, total=False): class MessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam(TypedDict, total=False): + """Text content part for OpenAI-compatible chat completion messages.""" + text: Required[str] type: Literal["text"] class MessageOpenAIDeveloperMessageParam(TypedDict, total=False): + """A message from the developer in an OpenAI-compatible chat completion request.""" + content: Required[ Union[str, Iterable[MessageOpenAIDeveloperMessageParamContentListOpenAIChatCompletionContentPartTextParam]] ] diff --git a/src/llama_stack_client/types/scoring_fn.py b/src/llama_stack_client/types/scoring_fn.py index 4e77e331..19998174 100644 --- a/src/llama_stack_client/types/scoring_fn.py +++ b/src/llama_stack_client/types/scoring_fn.py @@ -38,6 +38,8 @@ class ReturnType(BaseModel): class ParamsLlmAsJudgeScoringFnParams(BaseModel): + """Parameters for LLM-as-judge scoring function configuration.""" + judge_model: str aggregation_functions: Optional[ @@ -54,6 +56,8 @@ class ParamsLlmAsJudgeScoringFnParams(BaseModel): class ParamsRegexParserScoringFnParams(BaseModel): + """Parameters for regex parser scoring function configuration.""" + aggregation_functions: Optional[ List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] ] = None @@ -66,6 +70,8 @@ class ParamsRegexParserScoringFnParams(BaseModel): class ParamsBasicScoringFnParams(BaseModel): + """Parameters for basic scoring function configuration.""" + aggregation_functions: Optional[ List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] ] = None @@ -81,6 +87,8 @@ class ParamsBasicScoringFnParams(BaseModel): class ScoringFn(BaseModel): + """A scoring function resource for evaluating model outputs.""" + identifier: str """Unique identifier for this resource in llama stack""" diff --git a/src/llama_stack_client/types/scoring_function_register_params.py b/src/llama_stack_client/types/scoring_function_register_params.py index ca0419cd..fde1ea4a 100644 --- a/src/llama_stack_client/types/scoring_function_register_params.py +++ b/src/llama_stack_client/types/scoring_function_register_params.py @@ -56,6 +56,8 @@ class ReturnType(TypedDict, total=False): class ParamsLlmAsJudgeScoringFnParams(TypedDict, total=False): + """Parameters for LLM-as-judge scoring function configuration.""" + judge_model: Required[str] aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] @@ -70,6 +72,8 @@ class ParamsLlmAsJudgeScoringFnParams(TypedDict, total=False): class ParamsRegexParserScoringFnParams(TypedDict, total=False): + """Parameters for regex parser scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" @@ -80,6 +84,8 @@ class ParamsRegexParserScoringFnParams(TypedDict, total=False): class ParamsBasicScoringFnParams(TypedDict, total=False): + """Parameters for basic scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" diff --git a/src/llama_stack_client/types/scoring_score_batch_params.py b/src/llama_stack_client/types/scoring_score_batch_params.py index b8d258c8..2bf7a4db 100644 --- a/src/llama_stack_client/types/scoring_score_batch_params.py +++ b/src/llama_stack_client/types/scoring_score_batch_params.py @@ -31,6 +31,8 @@ class ScoringScoreBatchParams(TypedDict, total=False): class ScoringFunctionsLlmAsJudgeScoringFnParams(TypedDict, total=False): + """Parameters for LLM-as-judge scoring function configuration.""" + judge_model: Required[str] aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] @@ -45,6 +47,8 @@ class ScoringFunctionsLlmAsJudgeScoringFnParams(TypedDict, total=False): class ScoringFunctionsRegexParserScoringFnParams(TypedDict, total=False): + """Parameters for regex parser scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" @@ -55,6 +59,8 @@ class ScoringFunctionsRegexParserScoringFnParams(TypedDict, total=False): class ScoringFunctionsBasicScoringFnParams(TypedDict, total=False): + """Parameters for basic scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" diff --git a/src/llama_stack_client/types/scoring_score_batch_response.py b/src/llama_stack_client/types/scoring_score_batch_response.py index ea46721b..1e8c05f8 100644 --- a/src/llama_stack_client/types/scoring_score_batch_response.py +++ b/src/llama_stack_client/types/scoring_score_batch_response.py @@ -15,6 +15,8 @@ class ScoringScoreBatchResponse(BaseModel): + """Response from batch scoring operations on datasets.""" + results: Dict[str, ScoringResult] dataset_id: Optional[str] = None diff --git a/src/llama_stack_client/types/scoring_score_params.py b/src/llama_stack_client/types/scoring_score_params.py index 407c8bba..7853f808 100644 --- a/src/llama_stack_client/types/scoring_score_params.py +++ b/src/llama_stack_client/types/scoring_score_params.py @@ -29,6 +29,8 @@ class ScoringScoreParams(TypedDict, total=False): class ScoringFunctionsLlmAsJudgeScoringFnParams(TypedDict, total=False): + """Parameters for LLM-as-judge scoring function configuration.""" + judge_model: Required[str] aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] @@ -43,6 +45,8 @@ class ScoringFunctionsLlmAsJudgeScoringFnParams(TypedDict, total=False): class ScoringFunctionsRegexParserScoringFnParams(TypedDict, total=False): + """Parameters for regex parser scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" @@ -53,6 +57,8 @@ class ScoringFunctionsRegexParserScoringFnParams(TypedDict, total=False): class ScoringFunctionsBasicScoringFnParams(TypedDict, total=False): + """Parameters for basic scoring function configuration.""" + aggregation_functions: List[Literal["average", "weighted_average", "median", "categorical_count", "accuracy"]] """Aggregation functions to apply to the scores of each row""" diff --git a/src/llama_stack_client/types/scoring_score_response.py b/src/llama_stack_client/types/scoring_score_response.py index 27d7e2e1..267e1022 100644 --- a/src/llama_stack_client/types/scoring_score_response.py +++ b/src/llama_stack_client/types/scoring_score_response.py @@ -15,4 +15,6 @@ class ScoringScoreResponse(BaseModel): + """The response from scoring.""" + results: Dict[str, ScoringResult] diff --git a/src/llama_stack_client/types/shared/__init__.py b/src/llama_stack_client/types/shared/__init__.py index fdeee5aa..c8fb8fd0 100644 --- a/src/llama_stack_client/types/shared/__init__.py +++ b/src/llama_stack_client/types/shared/__init__.py @@ -7,9 +7,15 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from .param_type import ParamType as ParamType +from .route_info import RouteInfo as RouteInfo +from .health_info import HealthInfo as HealthInfo +from .version_info import VersionInfo as VersionInfo +from .provider_info import ProviderInfo as ProviderInfo from .scoring_result import ScoringResult as ScoringResult from .system_message import SystemMessage as SystemMessage from .sampling_params import SamplingParams as SamplingParams from .safety_violation import SafetyViolation as SafetyViolation from .interleaved_content import InterleavedContent as InterleavedContent +from .list_routes_response import ListRoutesResponse as ListRoutesResponse +from .list_providers_response import ListProvidersResponse as ListProvidersResponse from .interleaved_content_item import InterleavedContentItem as InterleavedContentItem diff --git a/src/llama_stack_client/types/health_info.py b/src/llama_stack_client/types/shared/health_info.py similarity index 77% rename from src/llama_stack_client/types/health_info.py rename to src/llama_stack_client/types/shared/health_info.py index 3ce69fc0..f541c5ba 100644 --- a/src/llama_stack_client/types/health_info.py +++ b/src/llama_stack_client/types/shared/health_info.py @@ -8,10 +8,13 @@ from typing_extensions import Literal -from .._models import BaseModel +from ..._models import BaseModel __all__ = ["HealthInfo"] class HealthInfo(BaseModel): + """Health status information for the service.""" + status: Literal["OK", "Error", "Not Implemented"] + """The health status of the service""" diff --git a/src/llama_stack_client/types/shared/interleaved_content.py b/src/llama_stack_client/types/shared/interleaved_content.py index f5a6a7ee..7b7e1c26 100644 --- a/src/llama_stack_client/types/shared/interleaved_content.py +++ b/src/llama_stack_client/types/shared/interleaved_content.py @@ -27,10 +27,14 @@ class ImageContentItemImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ImageContentItemImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ImageContentItemImageURL] = None @@ -38,6 +42,8 @@ class ImageContentItemImage(BaseModel): class ImageContentItem(BaseModel): + """A image content item""" + image: ImageContentItemImage """A URL or a base64 encoded string""" @@ -45,16 +51,22 @@ class ImageContentItem(BaseModel): class TextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None class ListImageContentItemTextContentItemImageContentItemImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ListImageContentItemTextContentItemImageContentItemImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ListImageContentItemTextContentItemImageContentItemImageURL] = None @@ -62,6 +74,8 @@ class ListImageContentItemTextContentItemImageContentItemImage(BaseModel): class ListImageContentItemTextContentItemImageContentItem(BaseModel): + """A image content item""" + image: ListImageContentItemTextContentItemImageContentItemImage """A URL or a base64 encoded string""" @@ -69,6 +83,8 @@ class ListImageContentItemTextContentItemImageContentItem(BaseModel): class ListImageContentItemTextContentItemTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None diff --git a/src/llama_stack_client/types/shared/interleaved_content_item.py b/src/llama_stack_client/types/shared/interleaved_content_item.py index a841f5f1..d8f128e6 100644 --- a/src/llama_stack_client/types/shared/interleaved_content_item.py +++ b/src/llama_stack_client/types/shared/interleaved_content_item.py @@ -22,10 +22,14 @@ class ImageContentItemImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ImageContentItemImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ImageContentItemImageURL] = None @@ -33,6 +37,8 @@ class ImageContentItemImage(BaseModel): class ImageContentItem(BaseModel): + """A image content item""" + image: ImageContentItemImage """A URL or a base64 encoded string""" @@ -40,6 +46,8 @@ class ImageContentItem(BaseModel): class TextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None diff --git a/src/llama_stack_client/types/list_providers_response.py b/src/llama_stack_client/types/shared/list_providers_response.py similarity index 66% rename from src/llama_stack_client/types/list_providers_response.py rename to src/llama_stack_client/types/shared/list_providers_response.py index b7b51def..d27e3f9c 100644 --- a/src/llama_stack_client/types/list_providers_response.py +++ b/src/llama_stack_client/types/shared/list_providers_response.py @@ -6,11 +6,14 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from .._models import BaseModel -from .provider_list_response import ProviderListResponse +from ..._models import BaseModel +from ..provider_list_response import ProviderListResponse __all__ = ["ListProvidersResponse"] class ListProvidersResponse(BaseModel): + """Response containing a list of all available providers.""" + data: ProviderListResponse + """List of provider information objects""" diff --git a/src/llama_stack_client/types/list_routes_response.py b/src/llama_stack_client/types/shared/list_routes_response.py similarity index 67% rename from src/llama_stack_client/types/list_routes_response.py rename to src/llama_stack_client/types/shared/list_routes_response.py index dca4db45..7a31d557 100644 --- a/src/llama_stack_client/types/list_routes_response.py +++ b/src/llama_stack_client/types/shared/list_routes_response.py @@ -6,11 +6,14 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from .._models import BaseModel -from .route_list_response import RouteListResponse +from ..._models import BaseModel +from ..route_list_response import RouteListResponse __all__ = ["ListRoutesResponse"] class ListRoutesResponse(BaseModel): + """Response containing a list of all available API routes.""" + data: RouteListResponse + """List of available API routes""" diff --git a/src/llama_stack_client/types/shared/param_type.py b/src/llama_stack_client/types/shared/param_type.py index 8bec2b4d..01613f44 100644 --- a/src/llama_stack_client/types/shared/param_type.py +++ b/src/llama_stack_client/types/shared/param_type.py @@ -27,38 +27,56 @@ class StringType(BaseModel): + """Parameter type for string values.""" + type: Optional[Literal["string"]] = None class NumberType(BaseModel): + """Parameter type for numeric values.""" + type: Optional[Literal["number"]] = None class BooleanType(BaseModel): + """Parameter type for boolean values.""" + type: Optional[Literal["boolean"]] = None class ArrayType(BaseModel): + """Parameter type for array values.""" + type: Optional[Literal["array"]] = None class ObjectType(BaseModel): + """Parameter type for object values.""" + type: Optional[Literal["object"]] = None class JsonType(BaseModel): + """Parameter type for JSON values.""" + type: Optional[Literal["json"]] = None class UnionType(BaseModel): + """Parameter type for union values.""" + type: Optional[Literal["union"]] = None class ChatCompletionInputType(BaseModel): + """Parameter type for chat completion input.""" + type: Optional[Literal["chat_completion_input"]] = None class CompletionInputType(BaseModel): + """Parameter type for completion input.""" + type: Optional[Literal["completion_input"]] = None diff --git a/src/llama_stack_client/types/provider_info.py b/src/llama_stack_client/types/shared/provider_info.py similarity index 56% rename from src/llama_stack_client/types/provider_info.py rename to src/llama_stack_client/types/shared/provider_info.py index ad46c6f9..d6544fcb 100644 --- a/src/llama_stack_client/types/provider_info.py +++ b/src/llama_stack_client/types/shared/provider_info.py @@ -8,18 +8,27 @@ from typing import Dict -from .._models import BaseModel +from ..._models import BaseModel __all__ = ["ProviderInfo"] class ProviderInfo(BaseModel): + """ + Information about a registered provider including its configuration and health status. + """ + api: str + """The API name this provider implements""" config: Dict[str, object] + """Configuration parameters for the provider""" health: Dict[str, object] + """Current health status of the provider""" provider_id: str + """Unique identifier for the provider""" provider_type: str + """The type of provider implementation""" diff --git a/src/llama_stack_client/types/route_info.py b/src/llama_stack_client/types/shared/route_info.py similarity index 61% rename from src/llama_stack_client/types/route_info.py rename to src/llama_stack_client/types/shared/route_info.py index 4ecaa2e5..63d9019b 100644 --- a/src/llama_stack_client/types/route_info.py +++ b/src/llama_stack_client/types/shared/route_info.py @@ -8,14 +8,21 @@ from typing import List -from .._models import BaseModel +from ..._models import BaseModel __all__ = ["RouteInfo"] class RouteInfo(BaseModel): + """ + Information about an API route including its path, method, and implementing providers. + """ + method: str + """The HTTP method for the route""" provider_types: List[str] + """List of provider types implementing this route""" route: str + """The API route path""" diff --git a/src/llama_stack_client/types/shared/safety_violation.py b/src/llama_stack_client/types/shared/safety_violation.py index a8797bf7..36bf2b62 100644 --- a/src/llama_stack_client/types/shared/safety_violation.py +++ b/src/llama_stack_client/types/shared/safety_violation.py @@ -15,6 +15,8 @@ class SafetyViolation(BaseModel): + """Details of a safety violation detected by content moderation.""" + violation_level: Literal["info", "warn", "error"] """Severity level of a safety violation.""" diff --git a/src/llama_stack_client/types/shared/sampling_params.py b/src/llama_stack_client/types/shared/sampling_params.py index fbe697c5..044f1fde 100644 --- a/src/llama_stack_client/types/shared/sampling_params.py +++ b/src/llama_stack_client/types/shared/sampling_params.py @@ -22,10 +22,18 @@ class StrategyGreedySamplingStrategy(BaseModel): + """ + Greedy sampling strategy that selects the highest probability token at each step. + """ + type: Optional[Literal["greedy"]] = None class StrategyTopPSamplingStrategy(BaseModel): + """ + Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. + """ + temperature: Optional[float] = None top_p: Optional[float] = None @@ -34,6 +42,8 @@ class StrategyTopPSamplingStrategy(BaseModel): class StrategyTopKSamplingStrategy(BaseModel): + """Top-k sampling strategy that restricts sampling to the k most likely tokens.""" + top_k: int type: Optional[Literal["top_k"]] = None @@ -46,6 +56,8 @@ class StrategyTopKSamplingStrategy(BaseModel): class SamplingParams(BaseModel): + """Sampling parameters.""" + max_tokens: Optional[int] = None repetition_penalty: Optional[float] = None diff --git a/src/llama_stack_client/types/shared/scoring_result.py b/src/llama_stack_client/types/shared/scoring_result.py index 4343e36c..a3567cd7 100644 --- a/src/llama_stack_client/types/shared/scoring_result.py +++ b/src/llama_stack_client/types/shared/scoring_result.py @@ -14,6 +14,8 @@ class ScoringResult(BaseModel): + """A scoring result for a single row.""" + aggregated_results: Dict[str, object] score_rows: List[Dict[str, object]] diff --git a/src/llama_stack_client/types/shared/system_message.py b/src/llama_stack_client/types/shared/system_message.py index 2d5b8cef..7b2f63b0 100644 --- a/src/llama_stack_client/types/shared/system_message.py +++ b/src/llama_stack_client/types/shared/system_message.py @@ -28,10 +28,14 @@ class ContentImageContentItemInputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ContentImageContentItemInputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ContentImageContentItemInputImageURL] = None @@ -39,6 +43,8 @@ class ContentImageContentItemInputImage(BaseModel): class ContentImageContentItemInput(BaseModel): + """A image content item""" + image: ContentImageContentItemInputImage """A URL or a base64 encoded string""" @@ -46,16 +52,22 @@ class ContentImageContentItemInput(BaseModel): class ContentTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None class ContentListImageContentItemInputTextContentItemImageContentItemInputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ContentListImageContentItemInputTextContentItemImageContentItemInputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ContentListImageContentItemInputTextContentItemImageContentItemInputImageURL] = None @@ -63,6 +75,8 @@ class ContentListImageContentItemInputTextContentItemImageContentItemInputImage( class ContentListImageContentItemInputTextContentItemImageContentItemInput(BaseModel): + """A image content item""" + image: ContentListImageContentItemInputTextContentItemImageContentItemInputImage """A URL or a base64 encoded string""" @@ -70,6 +84,8 @@ class ContentListImageContentItemInputTextContentItemImageContentItemInput(BaseM class ContentListImageContentItemInputTextContentItemTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None @@ -89,6 +105,8 @@ class ContentListImageContentItemInputTextContentItemTextContentItem(BaseModel): class SystemMessage(BaseModel): + """A system message providing instructions or context to the model.""" + content: Content """A image content item""" diff --git a/src/llama_stack_client/types/version_info.py b/src/llama_stack_client/types/shared/version_info.py similarity index 74% rename from src/llama_stack_client/types/version_info.py rename to src/llama_stack_client/types/shared/version_info.py index 36cfcbbd..cbb77039 100644 --- a/src/llama_stack_client/types/version_info.py +++ b/src/llama_stack_client/types/shared/version_info.py @@ -6,10 +6,13 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. -from .._models import BaseModel +from ..._models import BaseModel __all__ = ["VersionInfo"] class VersionInfo(BaseModel): + """Version information for the service.""" + version: str + """The version string of the service""" diff --git a/src/llama_stack_client/types/shared_params/sampling_params.py b/src/llama_stack_client/types/shared_params/sampling_params.py index 206e8a22..79003f3f 100644 --- a/src/llama_stack_client/types/shared_params/sampling_params.py +++ b/src/llama_stack_client/types/shared_params/sampling_params.py @@ -23,10 +23,18 @@ class StrategyGreedySamplingStrategy(TypedDict, total=False): + """ + Greedy sampling strategy that selects the highest probability token at each step. + """ + type: Literal["greedy"] class StrategyTopPSamplingStrategy(TypedDict, total=False): + """ + Top-p (nucleus) sampling strategy that samples from the smallest set of tokens with cumulative probability >= p. + """ + temperature: Required[Optional[float]] top_p: Optional[float] @@ -35,6 +43,8 @@ class StrategyTopPSamplingStrategy(TypedDict, total=False): class StrategyTopKSamplingStrategy(TypedDict, total=False): + """Top-k sampling strategy that restricts sampling to the k most likely tokens.""" + top_k: Required[int] type: Literal["top_k"] @@ -44,6 +54,8 @@ class StrategyTopKSamplingStrategy(TypedDict, total=False): class SamplingParams(TypedDict, total=False): + """Sampling parameters.""" + max_tokens: Optional[int] repetition_penalty: Optional[float] diff --git a/src/llama_stack_client/types/shared_params/system_message.py b/src/llama_stack_client/types/shared_params/system_message.py index d62c334a..d80168dd 100644 --- a/src/llama_stack_client/types/shared_params/system_message.py +++ b/src/llama_stack_client/types/shared_params/system_message.py @@ -27,10 +27,14 @@ class ContentImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class ContentImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[ContentImageContentItemInputImageURL] @@ -38,6 +42,8 @@ class ContentImageContentItemInputImage(TypedDict, total=False): class ContentImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[ContentImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -45,16 +51,22 @@ class ContentImageContentItemInput(TypedDict, total=False): class ContentTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] class ContentListImageContentItemInputTextContentItemImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class ContentListImageContentItemInputTextContentItemImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[ContentListImageContentItemInputTextContentItemImageContentItemInputImageURL] @@ -62,6 +74,8 @@ class ContentListImageContentItemInputTextContentItemImageContentItemInputImage( class ContentListImageContentItemInputTextContentItemImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[ContentListImageContentItemInputTextContentItemImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -69,6 +83,8 @@ class ContentListImageContentItemInputTextContentItemImageContentItemInput(Typed class ContentListImageContentItemInputTextContentItemTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] @@ -85,6 +101,8 @@ class ContentListImageContentItemInputTextContentItemTextContentItem(TypedDict, class SystemMessage(TypedDict, total=False): + """A system message providing instructions or context to the model.""" + content: Required[Content] """A image content item""" diff --git a/src/llama_stack_client/types/shield.py b/src/llama_stack_client/types/shield.py index 1383e737..12a1530b 100644 --- a/src/llama_stack_client/types/shield.py +++ b/src/llama_stack_client/types/shield.py @@ -15,6 +15,8 @@ class Shield(BaseModel): + """A safety shield resource that can be used to check content.""" + identifier: str """Unique identifier for this resource in llama stack""" diff --git a/src/llama_stack_client/types/tool_def.py b/src/llama_stack_client/types/tool_def.py index ff0ede99..1866f3ac 100644 --- a/src/llama_stack_client/types/tool_def.py +++ b/src/llama_stack_client/types/tool_def.py @@ -14,6 +14,8 @@ class ToolDef(BaseModel): + """Tool definition used in runtime contexts.""" + name: str description: Optional[str] = None diff --git a/src/llama_stack_client/types/tool_group.py b/src/llama_stack_client/types/tool_group.py index 83b36cbb..70f1f91c 100644 --- a/src/llama_stack_client/types/tool_group.py +++ b/src/llama_stack_client/types/tool_group.py @@ -15,10 +15,14 @@ class McpEndpoint(BaseModel): + """A URL reference to external content.""" + uri: str class ToolGroup(BaseModel): + """A group of related tools managed together.""" + identifier: str """Unique identifier for this resource in llama stack""" diff --git a/src/llama_stack_client/types/tool_invocation_result.py b/src/llama_stack_client/types/tool_invocation_result.py index 727ca68a..e97f9d7f 100644 --- a/src/llama_stack_client/types/tool_invocation_result.py +++ b/src/llama_stack_client/types/tool_invocation_result.py @@ -28,10 +28,14 @@ class ContentImageContentItemOutputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ContentImageContentItemOutputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ContentImageContentItemOutputImageURL] = None @@ -39,6 +43,8 @@ class ContentImageContentItemOutputImage(BaseModel): class ContentImageContentItemOutput(BaseModel): + """A image content item""" + image: ContentImageContentItemOutputImage """A URL or a base64 encoded string""" @@ -46,16 +52,22 @@ class ContentImageContentItemOutput(BaseModel): class ContentTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None class ContentListImageContentItemOutputTextContentItemImageContentItemOutputImageURL(BaseModel): + """A URL reference to external content.""" + uri: str class ContentListImageContentItemOutputTextContentItemImageContentItemOutputImage(BaseModel): + """A URL or a base64 encoded string""" + data: Optional[str] = None url: Optional[ContentListImageContentItemOutputTextContentItemImageContentItemOutputImageURL] = None @@ -63,6 +75,8 @@ class ContentListImageContentItemOutputTextContentItemImageContentItemOutputImag class ContentListImageContentItemOutputTextContentItemImageContentItemOutput(BaseModel): + """A image content item""" + image: ContentListImageContentItemOutputTextContentItemImageContentItemOutputImage """A URL or a base64 encoded string""" @@ -70,6 +84,8 @@ class ContentListImageContentItemOutputTextContentItemImageContentItemOutput(Bas class ContentListImageContentItemOutputTextContentItemTextContentItem(BaseModel): + """A text content item""" + text: str type: Optional[Literal["text"]] = None @@ -93,6 +109,8 @@ class ContentListImageContentItemOutputTextContentItemTextContentItem(BaseModel) class ToolInvocationResult(BaseModel): + """Result of a tool invocation.""" + content: Optional[Content] = None """A image content item""" diff --git a/src/llama_stack_client/types/tool_runtime_list_tools_params.py b/src/llama_stack_client/types/tool_runtime_list_tools_params.py index 33adce40..d2ee9188 100644 --- a/src/llama_stack_client/types/tool_runtime_list_tools_params.py +++ b/src/llama_stack_client/types/tool_runtime_list_tools_params.py @@ -24,4 +24,6 @@ class ToolRuntimeListToolsParams(TypedDict, total=False): class McpEndpoint(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] diff --git a/src/llama_stack_client/types/toolgroup_register_params.py b/src/llama_stack_client/types/toolgroup_register_params.py index 23205f0c..6754c80f 100644 --- a/src/llama_stack_client/types/toolgroup_register_params.py +++ b/src/llama_stack_client/types/toolgroup_register_params.py @@ -26,4 +26,6 @@ class ToolgroupRegisterParams(TypedDict, total=False): class McpEndpoint(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] diff --git a/src/llama_stack_client/types/vector_io_insert_params.py b/src/llama_stack_client/types/vector_io_insert_params.py index 15ba21e5..7992e95c 100644 --- a/src/llama_stack_client/types/vector_io_insert_params.py +++ b/src/llama_stack_client/types/vector_io_insert_params.py @@ -37,10 +37,14 @@ class VectorIoInsertParams(TypedDict, total=False): class ChunkContentImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class ChunkContentImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[ChunkContentImageContentItemInputImageURL] @@ -48,6 +52,8 @@ class ChunkContentImageContentItemInputImage(TypedDict, total=False): class ChunkContentImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[ChunkContentImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -55,16 +61,22 @@ class ChunkContentImageContentItemInput(TypedDict, total=False): class ChunkContentTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] class ChunkContentListImageContentItemInputTextContentItemImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class ChunkContentListImageContentItemInputTextContentItemImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[ChunkContentListImageContentItemInputTextContentItemImageContentItemInputImageURL] @@ -72,6 +84,8 @@ class ChunkContentListImageContentItemInputTextContentItemImageContentItemInputI class ChunkContentListImageContentItemInputTextContentItemImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[ChunkContentListImageContentItemInputTextContentItemImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -79,6 +93,8 @@ class ChunkContentListImageContentItemInputTextContentItemImageContentItemInput( class ChunkContentListImageContentItemInputTextContentItemTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] @@ -98,6 +114,13 @@ class ChunkContentListImageContentItemInputTextContentItemTextContentItem(TypedD class ChunkChunkMetadata(TypedDict, total=False): + """ + `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that + will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` + is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. + Use `Chunk.metadata` for metadata that will be used in the context during inference. + """ + chunk_embedding_dimension: Optional[int] chunk_embedding_model: Optional[str] @@ -122,6 +145,8 @@ class ChunkChunkMetadata(TypedDict, total=False): class Chunk(TypedDict, total=False): + """A chunk of content that can be inserted into a vector database.""" + chunk_id: Required[str] content: Required[ChunkContent] diff --git a/src/llama_stack_client/types/vector_io_query_params.py b/src/llama_stack_client/types/vector_io_query_params.py index 5427a553..2e1a50a9 100644 --- a/src/llama_stack_client/types/vector_io_query_params.py +++ b/src/llama_stack_client/types/vector_io_query_params.py @@ -36,10 +36,14 @@ class VectorIoQueryParams(TypedDict, total=False): class QueryImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class QueryImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[QueryImageContentItemInputImageURL] @@ -47,6 +51,8 @@ class QueryImageContentItemInputImage(TypedDict, total=False): class QueryImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[QueryImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -54,16 +60,22 @@ class QueryImageContentItemInput(TypedDict, total=False): class QueryTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] class QueryListImageContentItemInputTextContentItemImageContentItemInputImageURL(TypedDict, total=False): + """A URL reference to external content.""" + uri: Required[str] class QueryListImageContentItemInputTextContentItemImageContentItemInputImage(TypedDict, total=False): + """A URL or a base64 encoded string""" + data: Optional[str] url: Optional[QueryListImageContentItemInputTextContentItemImageContentItemInputImageURL] @@ -71,6 +83,8 @@ class QueryListImageContentItemInputTextContentItemImageContentItemInputImage(Ty class QueryListImageContentItemInputTextContentItemImageContentItemInput(TypedDict, total=False): + """A image content item""" + image: Required[QueryListImageContentItemInputTextContentItemImageContentItemInputImage] """A URL or a base64 encoded string""" @@ -78,6 +92,8 @@ class QueryListImageContentItemInputTextContentItemImageContentItemInput(TypedDi class QueryListImageContentItemInputTextContentItemTextContentItem(TypedDict, total=False): + """A text content item""" + text: Required[str] type: Literal["text"] diff --git a/src/llama_stack_client/types/vector_store.py b/src/llama_stack_client/types/vector_store.py index d07fe6e1..18404114 100644 --- a/src/llama_stack_client/types/vector_store.py +++ b/src/llama_stack_client/types/vector_store.py @@ -14,6 +14,8 @@ class FileCounts(BaseModel): + """File processing status counts for a vector store.""" + cancelled: int completed: int @@ -26,6 +28,8 @@ class FileCounts(BaseModel): class VectorStore(BaseModel): + """OpenAI Vector Store object.""" + id: str created_at: int diff --git a/src/llama_stack_client/types/vector_store_create_params.py b/src/llama_stack_client/types/vector_store_create_params.py index d9438385..3303e36f 100644 --- a/src/llama_stack_client/types/vector_store_create_params.py +++ b/src/llama_stack_client/types/vector_store_create_params.py @@ -36,16 +36,22 @@ class VectorStoreCreateParams(TypedDict, total=False): class ChunkingStrategyVectorStoreChunkingStrategyAuto(TypedDict, total=False): + """Automatic chunking strategy for vector store files.""" + type: Literal["auto"] class ChunkingStrategyVectorStoreChunkingStrategyStaticStatic(TypedDict, total=False): + """Configuration for static chunking strategy.""" + chunk_overlap_tokens: int max_chunk_size_tokens: int class ChunkingStrategyVectorStoreChunkingStrategyStatic(TypedDict, total=False): + """Static chunking strategy with configurable parameters.""" + static: Required[ChunkingStrategyVectorStoreChunkingStrategyStaticStatic] """Configuration for static chunking strategy.""" diff --git a/src/llama_stack_client/types/vector_store_delete_response.py b/src/llama_stack_client/types/vector_store_delete_response.py index 09df003f..6c68b2e2 100644 --- a/src/llama_stack_client/types/vector_store_delete_response.py +++ b/src/llama_stack_client/types/vector_store_delete_response.py @@ -14,6 +14,8 @@ class VectorStoreDeleteResponse(BaseModel): + """Response from deleting a vector store.""" + id: str deleted: Optional[bool] = None diff --git a/src/llama_stack_client/types/vector_store_search_params.py b/src/llama_stack_client/types/vector_store_search_params.py index ab4e7e7b..0760ac35 100644 --- a/src/llama_stack_client/types/vector_store_search_params.py +++ b/src/llama_stack_client/types/vector_store_search_params.py @@ -32,6 +32,8 @@ class VectorStoreSearchParams(TypedDict, total=False): class RankingOptions(TypedDict, total=False): + """Options for ranking and filtering search results.""" + ranker: Optional[str] score_threshold: Optional[float] diff --git a/src/llama_stack_client/types/vector_store_search_response.py b/src/llama_stack_client/types/vector_store_search_response.py index 97549ffe..aa10ad1a 100644 --- a/src/llama_stack_client/types/vector_store_search_response.py +++ b/src/llama_stack_client/types/vector_store_search_response.py @@ -15,6 +15,13 @@ class DataContentChunkMetadata(BaseModel): + """ + `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that + will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` + is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. + Use `Chunk.metadata` for metadata that will be used in the context during inference. + """ + chunk_embedding_dimension: Optional[int] = None chunk_embedding_model: Optional[str] = None @@ -39,6 +46,8 @@ class DataContentChunkMetadata(BaseModel): class DataContent(BaseModel): + """Content item from a vector store file or search result.""" + text: str type: Literal["text"] @@ -59,6 +68,8 @@ class DataContent(BaseModel): class Data(BaseModel): + """Response from searching a vector store.""" + content: List[DataContent] file_id: str @@ -71,6 +82,8 @@ class Data(BaseModel): class VectorStoreSearchResponse(BaseModel): + """Paginated response from searching a vector store.""" + data: List[Data] search_query: List[str] diff --git a/src/llama_stack_client/types/vector_stores/file_batch_create_params.py b/src/llama_stack_client/types/vector_stores/file_batch_create_params.py index c350f827..b0eaa921 100644 --- a/src/llama_stack_client/types/vector_stores/file_batch_create_params.py +++ b/src/llama_stack_client/types/vector_stores/file_batch_create_params.py @@ -32,16 +32,22 @@ class FileBatchCreateParams(TypedDict, total=False): class ChunkingStrategyVectorStoreChunkingStrategyAuto(TypedDict, total=False): + """Automatic chunking strategy for vector store files.""" + type: Literal["auto"] class ChunkingStrategyVectorStoreChunkingStrategyStaticStatic(TypedDict, total=False): + """Configuration for static chunking strategy.""" + chunk_overlap_tokens: int max_chunk_size_tokens: int class ChunkingStrategyVectorStoreChunkingStrategyStatic(TypedDict, total=False): + """Static chunking strategy with configurable parameters.""" + static: Required[ChunkingStrategyVectorStoreChunkingStrategyStaticStatic] """Configuration for static chunking strategy.""" diff --git a/src/llama_stack_client/types/vector_stores/file_content_response.py b/src/llama_stack_client/types/vector_stores/file_content_response.py index 70f67aa1..47cce9f6 100644 --- a/src/llama_stack_client/types/vector_stores/file_content_response.py +++ b/src/llama_stack_client/types/vector_stores/file_content_response.py @@ -15,6 +15,13 @@ class DataChunkMetadata(BaseModel): + """ + `ChunkMetadata` is backend metadata for a `Chunk` that is used to store additional information about the chunk that + will not be used in the context during inference, but is required for backend functionality. The `ChunkMetadata` + is set during chunk creation in `MemoryToolRuntimeImpl().insert()`and is not expected to change after. + Use `Chunk.metadata` for metadata that will be used in the context during inference. + """ + chunk_embedding_dimension: Optional[int] = None chunk_embedding_model: Optional[str] = None @@ -39,6 +46,8 @@ class DataChunkMetadata(BaseModel): class Data(BaseModel): + """Content item from a vector store file or search result.""" + text: str type: Literal["text"] @@ -59,6 +68,8 @@ class Data(BaseModel): class FileContentResponse(BaseModel): + """Represents the parsed content of a vector store file.""" + data: List[Data] has_more: Optional[bool] = None diff --git a/src/llama_stack_client/types/vector_stores/file_create_params.py b/src/llama_stack_client/types/vector_stores/file_create_params.py index 7f81f880..00223ea0 100644 --- a/src/llama_stack_client/types/vector_stores/file_create_params.py +++ b/src/llama_stack_client/types/vector_stores/file_create_params.py @@ -30,16 +30,22 @@ class FileCreateParams(TypedDict, total=False): class ChunkingStrategyVectorStoreChunkingStrategyAuto(TypedDict, total=False): + """Automatic chunking strategy for vector store files.""" + type: Literal["auto"] class ChunkingStrategyVectorStoreChunkingStrategyStaticStatic(TypedDict, total=False): + """Configuration for static chunking strategy.""" + chunk_overlap_tokens: int max_chunk_size_tokens: int class ChunkingStrategyVectorStoreChunkingStrategyStatic(TypedDict, total=False): + """Static chunking strategy with configurable parameters.""" + static: Required[ChunkingStrategyVectorStoreChunkingStrategyStaticStatic] """Configuration for static chunking strategy.""" diff --git a/src/llama_stack_client/types/vector_stores/file_delete_response.py b/src/llama_stack_client/types/vector_stores/file_delete_response.py index 96e84afb..7e5ad372 100644 --- a/src/llama_stack_client/types/vector_stores/file_delete_response.py +++ b/src/llama_stack_client/types/vector_stores/file_delete_response.py @@ -14,6 +14,8 @@ class FileDeleteResponse(BaseModel): + """Response from deleting a vector store file.""" + id: str deleted: Optional[bool] = None diff --git a/src/llama_stack_client/types/vector_stores/list_vector_store_files_in_batch_response.py b/src/llama_stack_client/types/vector_stores/list_vector_store_files_in_batch_response.py index fe068361..2b9b8de1 100644 --- a/src/llama_stack_client/types/vector_stores/list_vector_store_files_in_batch_response.py +++ b/src/llama_stack_client/types/vector_stores/list_vector_store_files_in_batch_response.py @@ -15,6 +15,8 @@ class ListVectorStoreFilesInBatchResponse(BaseModel): + """Response from listing files in a vector store file batch.""" + data: List[VectorStoreFile] first_id: Optional[str] = None diff --git a/src/llama_stack_client/types/vector_stores/vector_store_file.py b/src/llama_stack_client/types/vector_stores/vector_store_file.py index bbf5f398..05e7804d 100644 --- a/src/llama_stack_client/types/vector_stores/vector_store_file.py +++ b/src/llama_stack_client/types/vector_stores/vector_store_file.py @@ -23,16 +23,22 @@ class ChunkingStrategyVectorStoreChunkingStrategyAuto(BaseModel): + """Automatic chunking strategy for vector store files.""" + type: Optional[Literal["auto"]] = None class ChunkingStrategyVectorStoreChunkingStrategyStaticStatic(BaseModel): + """Configuration for static chunking strategy.""" + chunk_overlap_tokens: Optional[int] = None max_chunk_size_tokens: Optional[int] = None class ChunkingStrategyVectorStoreChunkingStrategyStatic(BaseModel): + """Static chunking strategy with configurable parameters.""" + static: ChunkingStrategyVectorStoreChunkingStrategyStaticStatic """Configuration for static chunking strategy.""" @@ -46,12 +52,16 @@ class ChunkingStrategyVectorStoreChunkingStrategyStatic(BaseModel): class LastError(BaseModel): + """Error information for failed vector store file processing.""" + code: Literal["server_error", "rate_limit_exceeded"] message: str class VectorStoreFile(BaseModel): + """OpenAI Vector Store File object.""" + id: str chunking_strategy: ChunkingStrategy diff --git a/src/llama_stack_client/types/vector_stores/vector_store_file_batches.py b/src/llama_stack_client/types/vector_stores/vector_store_file_batches.py index ba7ac1c7..b599f629 100644 --- a/src/llama_stack_client/types/vector_stores/vector_store_file_batches.py +++ b/src/llama_stack_client/types/vector_stores/vector_store_file_batches.py @@ -15,6 +15,8 @@ class FileCounts(BaseModel): + """File processing status counts for a vector store.""" + cancelled: int completed: int @@ -27,6 +29,8 @@ class FileCounts(BaseModel): class VectorStoreFileBatches(BaseModel): + """OpenAI Vector Store File Batch object.""" + id: str created_at: int diff --git a/tests/api_resources/alpha/test_admin.py b/tests/api_resources/alpha/test_admin.py new file mode 100644 index 00000000..c43ea2c1 --- /dev/null +++ b/tests/api_resources/alpha/test_admin.py @@ -0,0 +1,321 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the terms described in the LICENSE file in +# the root directory of this source tree. + +# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +from __future__ import annotations + +import os +from typing import Any, cast + +import pytest + +from tests.utils import assert_matches_type +from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient +from llama_stack_client.types import RouteListResponse, ProviderListResponse +from llama_stack_client.types.shared import HealthInfo, VersionInfo, ProviderInfo + +base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") + + +class TestAdmin: + parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"]) + + @parametrize + def test_method_health(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.health() + assert_matches_type(HealthInfo, admin, path=["response"]) + + @parametrize + def test_raw_response_health(self, client: LlamaStackClient) -> None: + response = client.alpha.admin.with_raw_response.health() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = response.parse() + assert_matches_type(HealthInfo, admin, path=["response"]) + + @parametrize + def test_streaming_response_health(self, client: LlamaStackClient) -> None: + with client.alpha.admin.with_streaming_response.health() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = response.parse() + assert_matches_type(HealthInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_inspect_provider(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.inspect_provider( + "provider_id", + ) + assert_matches_type(ProviderInfo, admin, path=["response"]) + + @parametrize + def test_raw_response_inspect_provider(self, client: LlamaStackClient) -> None: + response = client.alpha.admin.with_raw_response.inspect_provider( + "provider_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = response.parse() + assert_matches_type(ProviderInfo, admin, path=["response"]) + + @parametrize + def test_streaming_response_inspect_provider(self, client: LlamaStackClient) -> None: + with client.alpha.admin.with_streaming_response.inspect_provider( + "provider_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = response.parse() + assert_matches_type(ProviderInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_path_params_inspect_provider(self, client: LlamaStackClient) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `provider_id` but received ''"): + client.alpha.admin.with_raw_response.inspect_provider( + "", + ) + + @parametrize + def test_method_list_providers(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.list_providers() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + @parametrize + def test_raw_response_list_providers(self, client: LlamaStackClient) -> None: + response = client.alpha.admin.with_raw_response.list_providers() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = response.parse() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + @parametrize + def test_streaming_response_list_providers(self, client: LlamaStackClient) -> None: + with client.alpha.admin.with_streaming_response.list_providers() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = response.parse() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_list_routes(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.list_routes() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + def test_method_list_routes_with_all_params(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.list_routes( + api_filter="v1", + ) + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + def test_raw_response_list_routes(self, client: LlamaStackClient) -> None: + response = client.alpha.admin.with_raw_response.list_routes() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = response.parse() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + def test_streaming_response_list_routes(self, client: LlamaStackClient) -> None: + with client.alpha.admin.with_streaming_response.list_routes() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = response.parse() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + def test_method_version(self, client: LlamaStackClient) -> None: + admin = client.alpha.admin.version() + assert_matches_type(VersionInfo, admin, path=["response"]) + + @parametrize + def test_raw_response_version(self, client: LlamaStackClient) -> None: + response = client.alpha.admin.with_raw_response.version() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = response.parse() + assert_matches_type(VersionInfo, admin, path=["response"]) + + @parametrize + def test_streaming_response_version(self, client: LlamaStackClient) -> None: + with client.alpha.admin.with_streaming_response.version() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = response.parse() + assert_matches_type(VersionInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + +class TestAsyncAdmin: + parametrize = pytest.mark.parametrize( + "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"] + ) + + @parametrize + async def test_method_health(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.health() + assert_matches_type(HealthInfo, admin, path=["response"]) + + @parametrize + async def test_raw_response_health(self, async_client: AsyncLlamaStackClient) -> None: + response = await async_client.alpha.admin.with_raw_response.health() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = await response.parse() + assert_matches_type(HealthInfo, admin, path=["response"]) + + @parametrize + async def test_streaming_response_health(self, async_client: AsyncLlamaStackClient) -> None: + async with async_client.alpha.admin.with_streaming_response.health() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = await response.parse() + assert_matches_type(HealthInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_inspect_provider(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.inspect_provider( + "provider_id", + ) + assert_matches_type(ProviderInfo, admin, path=["response"]) + + @parametrize + async def test_raw_response_inspect_provider(self, async_client: AsyncLlamaStackClient) -> None: + response = await async_client.alpha.admin.with_raw_response.inspect_provider( + "provider_id", + ) + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = await response.parse() + assert_matches_type(ProviderInfo, admin, path=["response"]) + + @parametrize + async def test_streaming_response_inspect_provider(self, async_client: AsyncLlamaStackClient) -> None: + async with async_client.alpha.admin.with_streaming_response.inspect_provider( + "provider_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = await response.parse() + assert_matches_type(ProviderInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_path_params_inspect_provider(self, async_client: AsyncLlamaStackClient) -> None: + with pytest.raises(ValueError, match=r"Expected a non-empty value for `provider_id` but received ''"): + await async_client.alpha.admin.with_raw_response.inspect_provider( + "", + ) + + @parametrize + async def test_method_list_providers(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.list_providers() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + @parametrize + async def test_raw_response_list_providers(self, async_client: AsyncLlamaStackClient) -> None: + response = await async_client.alpha.admin.with_raw_response.list_providers() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = await response.parse() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + @parametrize + async def test_streaming_response_list_providers(self, async_client: AsyncLlamaStackClient) -> None: + async with async_client.alpha.admin.with_streaming_response.list_providers() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = await response.parse() + assert_matches_type(ProviderListResponse, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_list_routes(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.list_routes() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + async def test_method_list_routes_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.list_routes( + api_filter="v1", + ) + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + async def test_raw_response_list_routes(self, async_client: AsyncLlamaStackClient) -> None: + response = await async_client.alpha.admin.with_raw_response.list_routes() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = await response.parse() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + @parametrize + async def test_streaming_response_list_routes(self, async_client: AsyncLlamaStackClient) -> None: + async with async_client.alpha.admin.with_streaming_response.list_routes() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = await response.parse() + assert_matches_type(RouteListResponse, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True + + @parametrize + async def test_method_version(self, async_client: AsyncLlamaStackClient) -> None: + admin = await async_client.alpha.admin.version() + assert_matches_type(VersionInfo, admin, path=["response"]) + + @parametrize + async def test_raw_response_version(self, async_client: AsyncLlamaStackClient) -> None: + response = await async_client.alpha.admin.with_raw_response.version() + + assert response.is_closed is True + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + admin = await response.parse() + assert_matches_type(VersionInfo, admin, path=["response"]) + + @parametrize + async def test_streaming_response_version(self, async_client: AsyncLlamaStackClient) -> None: + async with async_client.alpha.admin.with_streaming_response.version() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" + + admin = await response.parse() + assert_matches_type(VersionInfo, admin, path=["response"]) + + assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/beta/test_datasets.py b/tests/api_resources/beta/test_datasets.py index b40b34de..6fb845a5 100644 --- a/tests/api_resources/beta/test_datasets.py +++ b/tests/api_resources/beta/test_datasets.py @@ -187,7 +187,10 @@ def test_method_register(self, client: LlamaStackClient) -> None: with pytest.warns(DeprecationWarning): dataset = client.beta.datasets.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) assert_matches_type(DatasetRegisterResponse, dataset, path=["response"]) @@ -212,7 +215,10 @@ def test_raw_response_register(self, client: LlamaStackClient) -> None: with pytest.warns(DeprecationWarning): response = client.beta.datasets.with_raw_response.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) assert response.is_closed is True @@ -225,7 +231,10 @@ def test_streaming_response_register(self, client: LlamaStackClient) -> None: with pytest.warns(DeprecationWarning): with client.beta.datasets.with_streaming_response.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -441,7 +450,10 @@ async def test_method_register(self, async_client: AsyncLlamaStackClient) -> Non with pytest.warns(DeprecationWarning): dataset = await async_client.beta.datasets.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) assert_matches_type(DatasetRegisterResponse, dataset, path=["response"]) @@ -466,7 +478,10 @@ async def test_raw_response_register(self, async_client: AsyncLlamaStackClient) with pytest.warns(DeprecationWarning): response = await async_client.beta.datasets.with_raw_response.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) assert response.is_closed is True @@ -479,7 +494,10 @@ async def test_streaming_response_register(self, async_client: AsyncLlamaStackCl with pytest.warns(DeprecationWarning): async with async_client.beta.datasets.with_streaming_response.register( purpose="post-training/messages", - source={"uri": "uri"}, + source={ + "uri": "uri", + "type": "uri", + }, ) as response: assert not response.is_closed assert response.http_request.headers.get("X-Stainless-Lang") == "python" diff --git a/tests/api_resources/test_inspect.py b/tests/api_resources/test_inspect.py index be117b12..67896956 100644 --- a/tests/api_resources/test_inspect.py +++ b/tests/api_resources/test_inspect.py @@ -15,7 +15,7 @@ from tests.utils import assert_matches_type from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient -from llama_stack_client.types import HealthInfo, VersionInfo +from llama_stack_client.types.shared import HealthInfo, VersionInfo base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") diff --git a/tests/api_resources/test_providers.py b/tests/api_resources/test_providers.py index 2e8da2f5..80301144 100644 --- a/tests/api_resources/test_providers.py +++ b/tests/api_resources/test_providers.py @@ -15,7 +15,8 @@ from tests.utils import assert_matches_type from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient -from llama_stack_client.types import ProviderInfo, ProviderListResponse +from llama_stack_client.types import ProviderListResponse +from llama_stack_client.types.shared import ProviderInfo base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py index 53ad1282..8d030e30 100644 --- a/tests/api_resources/test_responses.py +++ b/tests/api_resources/test_responses.py @@ -42,10 +42,11 @@ def test_method_create_with_all_params_overload_1(self, client: LlamaStackClient input="string", model="model", conversation="conversation", - include=["string"], + include=["web_search_call.action.sources"], instructions="instructions", max_infer_iters=0, max_tool_calls=0, + metadata={"foo": "string"}, parallel_tool_calls=True, previous_response_id="previous_response_id", prompt={ @@ -70,6 +71,7 @@ def test_method_create_with_all_params_overload_1(self, client: LlamaStackClient "type": "text", } }, + tool_choice="auto", tools=[ { "search_context_size": 'S?oC"high', @@ -121,10 +123,11 @@ def test_method_create_with_all_params_overload_2(self, client: LlamaStackClient model="model", stream=True, conversation="conversation", - include=["string"], + include=["web_search_call.action.sources"], instructions="instructions", max_infer_iters=0, max_tool_calls=0, + metadata={"foo": "string"}, parallel_tool_calls=True, previous_response_id="previous_response_id", prompt={ @@ -148,6 +151,7 @@ def test_method_create_with_all_params_overload_2(self, client: LlamaStackClient "type": "text", } }, + tool_choice="auto", tools=[ { "search_context_size": 'S?oC"high', @@ -315,10 +319,11 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn input="string", model="model", conversation="conversation", - include=["string"], + include=["web_search_call.action.sources"], instructions="instructions", max_infer_iters=0, max_tool_calls=0, + metadata={"foo": "string"}, parallel_tool_calls=True, previous_response_id="previous_response_id", prompt={ @@ -343,6 +348,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "type": "text", } }, + tool_choice="auto", tools=[ { "search_context_size": 'S?oC"high', @@ -394,10 +400,11 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn model="model", stream=True, conversation="conversation", - include=["string"], + include=["web_search_call.action.sources"], instructions="instructions", max_infer_iters=0, max_tool_calls=0, + metadata={"foo": "string"}, parallel_tool_calls=True, previous_response_id="previous_response_id", prompt={ @@ -421,6 +428,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "type": "text", } }, + tool_choice="auto", tools=[ { "search_context_size": 'S?oC"high', diff --git a/tests/api_resources/test_tool_runtime.py b/tests/api_resources/test_tool_runtime.py index a30c46e3..0e8be87b 100644 --- a/tests/api_resources/test_tool_runtime.py +++ b/tests/api_resources/test_tool_runtime.py @@ -20,6 +20,8 @@ ToolRuntimeListToolsResponse, ) +# pyright: reportDeprecated=false + base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -28,27 +30,32 @@ class TestToolRuntime: @parametrize def test_method_invoke_tool(self, client: LlamaStackClient) -> None: - tool_runtime = client.tool_runtime.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = client.tool_runtime.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) @parametrize def test_method_invoke_tool_with_all_params(self, client: LlamaStackClient) -> None: - tool_runtime = client.tool_runtime.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - authorization="authorization", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = client.tool_runtime.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + authorization="authorization", + ) + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) @parametrize def test_raw_response_invoke_tool(self, client: LlamaStackClient) -> None: - response = client.tool_runtime.with_raw_response.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) + with pytest.warns(DeprecationWarning): + response = client.tool_runtime.with_raw_response.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -57,35 +64,41 @@ def test_raw_response_invoke_tool(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_invoke_tool(self, client: LlamaStackClient) -> None: - with client.tool_runtime.with_streaming_response.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.tool_runtime.with_streaming_response.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool_runtime = response.parse() - assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) + tool_runtime = response.parse() + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_method_list_tools(self, client: LlamaStackClient) -> None: - tool_runtime = client.tool_runtime.list_tools() + with pytest.warns(DeprecationWarning): + tool_runtime = client.tool_runtime.list_tools() + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) @parametrize def test_method_list_tools_with_all_params(self, client: LlamaStackClient) -> None: - tool_runtime = client.tool_runtime.list_tools( - authorization="authorization", - mcp_endpoint={"uri": "uri"}, - tool_group_id="tool_group_id", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = client.tool_runtime.list_tools( + authorization="authorization", + mcp_endpoint={"uri": "uri"}, + tool_group_id="tool_group_id", + ) + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) @parametrize def test_raw_response_list_tools(self, client: LlamaStackClient) -> None: - response = client.tool_runtime.with_raw_response.list_tools() + with pytest.warns(DeprecationWarning): + response = client.tool_runtime.with_raw_response.list_tools() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -94,12 +107,13 @@ def test_raw_response_list_tools(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_list_tools(self, client: LlamaStackClient) -> None: - with client.tool_runtime.with_streaming_response.list_tools() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.tool_runtime.with_streaming_response.list_tools() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool_runtime = response.parse() - assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) + tool_runtime = response.parse() + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) assert cast(Any, response.is_closed) is True @@ -111,27 +125,32 @@ class TestAsyncToolRuntime: @parametrize async def test_method_invoke_tool(self, async_client: AsyncLlamaStackClient) -> None: - tool_runtime = await async_client.tool_runtime.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = await async_client.tool_runtime.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) @parametrize async def test_method_invoke_tool_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: - tool_runtime = await async_client.tool_runtime.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - authorization="authorization", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = await async_client.tool_runtime.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + authorization="authorization", + ) + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) @parametrize async def test_raw_response_invoke_tool(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.tool_runtime.with_raw_response.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) + with pytest.warns(DeprecationWarning): + response = await async_client.tool_runtime.with_raw_response.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -140,35 +159,41 @@ async def test_raw_response_invoke_tool(self, async_client: AsyncLlamaStackClien @parametrize async def test_streaming_response_invoke_tool(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.tool_runtime.with_streaming_response.invoke_tool( - kwargs={"foo": "bar"}, - tool_name="tool_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.tool_runtime.with_streaming_response.invoke_tool( + kwargs={"foo": "bar"}, + tool_name="tool_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool_runtime = await response.parse() - assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) + tool_runtime = await response.parse() + assert_matches_type(ToolInvocationResult, tool_runtime, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_method_list_tools(self, async_client: AsyncLlamaStackClient) -> None: - tool_runtime = await async_client.tool_runtime.list_tools() + with pytest.warns(DeprecationWarning): + tool_runtime = await async_client.tool_runtime.list_tools() + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) @parametrize async def test_method_list_tools_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: - tool_runtime = await async_client.tool_runtime.list_tools( - authorization="authorization", - mcp_endpoint={"uri": "uri"}, - tool_group_id="tool_group_id", - ) + with pytest.warns(DeprecationWarning): + tool_runtime = await async_client.tool_runtime.list_tools( + authorization="authorization", + mcp_endpoint={"uri": "uri"}, + tool_group_id="tool_group_id", + ) + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) @parametrize async def test_raw_response_list_tools(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.tool_runtime.with_raw_response.list_tools() + with pytest.warns(DeprecationWarning): + response = await async_client.tool_runtime.with_raw_response.list_tools() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -177,11 +202,12 @@ async def test_raw_response_list_tools(self, async_client: AsyncLlamaStackClient @parametrize async def test_streaming_response_list_tools(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.tool_runtime.with_streaming_response.list_tools() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.tool_runtime.with_streaming_response.list_tools() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool_runtime = await response.parse() - assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) + tool_runtime = await response.parse() + assert_matches_type(ToolRuntimeListToolsResponse, tool_runtime, path=["response"]) assert cast(Any, response.is_closed) is True diff --git a/tests/api_resources/test_toolgroups.py b/tests/api_resources/test_toolgroups.py index 3b0ddad9..f5a3eafd 100644 --- a/tests/api_resources/test_toolgroups.py +++ b/tests/api_resources/test_toolgroups.py @@ -27,12 +27,15 @@ class TestToolgroups: @parametrize def test_method_list(self, client: LlamaStackClient) -> None: - toolgroup = client.toolgroups.list() + with pytest.warns(DeprecationWarning): + toolgroup = client.toolgroups.list() + assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) @parametrize def test_raw_response_list(self, client: LlamaStackClient) -> None: - response = client.toolgroups.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = client.toolgroups.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -41,27 +44,31 @@ def test_raw_response_list(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_list(self, client: LlamaStackClient) -> None: - with client.toolgroups.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.toolgroups.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - toolgroup = response.parse() - assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) + toolgroup = response.parse() + assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_method_get(self, client: LlamaStackClient) -> None: - toolgroup = client.toolgroups.get( - "toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + toolgroup = client.toolgroups.get( + "toolgroup_id", + ) + assert_matches_type(ToolGroup, toolgroup, path=["response"]) @parametrize def test_raw_response_get(self, client: LlamaStackClient) -> None: - response = client.toolgroups.with_raw_response.get( - "toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + response = client.toolgroups.with_raw_response.get( + "toolgroup_id", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -70,23 +77,25 @@ def test_raw_response_get(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_get(self, client: LlamaStackClient) -> None: - with client.toolgroups.with_streaming_response.get( - "toolgroup_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.toolgroups.with_streaming_response.get( + "toolgroup_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - toolgroup = response.parse() - assert_matches_type(ToolGroup, toolgroup, path=["response"]) + toolgroup = response.parse() + assert_matches_type(ToolGroup, toolgroup, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_path_params_get(self, client: LlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `toolgroup_id` but received ''"): - client.toolgroups.with_raw_response.get( - "", - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `toolgroup_id` but received ''"): + client.toolgroups.with_raw_response.get( + "", + ) @parametrize def test_method_register(self, client: LlamaStackClient) -> None: @@ -189,12 +198,15 @@ class TestAsyncToolgroups: @parametrize async def test_method_list(self, async_client: AsyncLlamaStackClient) -> None: - toolgroup = await async_client.toolgroups.list() + with pytest.warns(DeprecationWarning): + toolgroup = await async_client.toolgroups.list() + assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) @parametrize async def test_raw_response_list(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.toolgroups.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = await async_client.toolgroups.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -203,27 +215,31 @@ async def test_raw_response_list(self, async_client: AsyncLlamaStackClient) -> N @parametrize async def test_streaming_response_list(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.toolgroups.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.toolgroups.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - toolgroup = await response.parse() - assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) + toolgroup = await response.parse() + assert_matches_type(ToolgroupListResponse, toolgroup, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_method_get(self, async_client: AsyncLlamaStackClient) -> None: - toolgroup = await async_client.toolgroups.get( - "toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + toolgroup = await async_client.toolgroups.get( + "toolgroup_id", + ) + assert_matches_type(ToolGroup, toolgroup, path=["response"]) @parametrize async def test_raw_response_get(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.toolgroups.with_raw_response.get( - "toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + response = await async_client.toolgroups.with_raw_response.get( + "toolgroup_id", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -232,23 +248,25 @@ async def test_raw_response_get(self, async_client: AsyncLlamaStackClient) -> No @parametrize async def test_streaming_response_get(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.toolgroups.with_streaming_response.get( - "toolgroup_id", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.toolgroups.with_streaming_response.get( + "toolgroup_id", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - toolgroup = await response.parse() - assert_matches_type(ToolGroup, toolgroup, path=["response"]) + toolgroup = await response.parse() + assert_matches_type(ToolGroup, toolgroup, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_path_params_get(self, async_client: AsyncLlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `toolgroup_id` but received ''"): - await async_client.toolgroups.with_raw_response.get( - "", - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `toolgroup_id` but received ''"): + await async_client.toolgroups.with_raw_response.get( + "", + ) @parametrize async def test_method_register(self, async_client: AsyncLlamaStackClient) -> None: diff --git a/tests/api_resources/test_tools.py b/tests/api_resources/test_tools.py index 3a8497cf..5a8dfdc2 100644 --- a/tests/api_resources/test_tools.py +++ b/tests/api_resources/test_tools.py @@ -17,6 +17,8 @@ from llama_stack_client import LlamaStackClient, AsyncLlamaStackClient from llama_stack_client.types import ToolDef, ToolListResponse +# pyright: reportDeprecated=false + base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010") @@ -25,19 +27,24 @@ class TestTools: @parametrize def test_method_list(self, client: LlamaStackClient) -> None: - tool = client.tools.list() + with pytest.warns(DeprecationWarning): + tool = client.tools.list() + assert_matches_type(ToolListResponse, tool, path=["response"]) @parametrize def test_method_list_with_all_params(self, client: LlamaStackClient) -> None: - tool = client.tools.list( - toolgroup_id="toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + tool = client.tools.list( + toolgroup_id="toolgroup_id", + ) + assert_matches_type(ToolListResponse, tool, path=["response"]) @parametrize def test_raw_response_list(self, client: LlamaStackClient) -> None: - response = client.tools.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = client.tools.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -46,27 +53,31 @@ def test_raw_response_list(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_list(self, client: LlamaStackClient) -> None: - with client.tools.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.tools.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool = response.parse() - assert_matches_type(ToolListResponse, tool, path=["response"]) + tool = response.parse() + assert_matches_type(ToolListResponse, tool, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_method_get(self, client: LlamaStackClient) -> None: - tool = client.tools.get( - "tool_name", - ) + with pytest.warns(DeprecationWarning): + tool = client.tools.get( + "tool_name", + ) + assert_matches_type(ToolDef, tool, path=["response"]) @parametrize def test_raw_response_get(self, client: LlamaStackClient) -> None: - response = client.tools.with_raw_response.get( - "tool_name", - ) + with pytest.warns(DeprecationWarning): + response = client.tools.with_raw_response.get( + "tool_name", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -75,23 +86,25 @@ def test_raw_response_get(self, client: LlamaStackClient) -> None: @parametrize def test_streaming_response_get(self, client: LlamaStackClient) -> None: - with client.tools.with_streaming_response.get( - "tool_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + with client.tools.with_streaming_response.get( + "tool_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool = response.parse() - assert_matches_type(ToolDef, tool, path=["response"]) + tool = response.parse() + assert_matches_type(ToolDef, tool, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize def test_path_params_get(self, client: LlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `tool_name` but received ''"): - client.tools.with_raw_response.get( - "", - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `tool_name` but received ''"): + client.tools.with_raw_response.get( + "", + ) class TestAsyncTools: @@ -101,19 +114,24 @@ class TestAsyncTools: @parametrize async def test_method_list(self, async_client: AsyncLlamaStackClient) -> None: - tool = await async_client.tools.list() + with pytest.warns(DeprecationWarning): + tool = await async_client.tools.list() + assert_matches_type(ToolListResponse, tool, path=["response"]) @parametrize async def test_method_list_with_all_params(self, async_client: AsyncLlamaStackClient) -> None: - tool = await async_client.tools.list( - toolgroup_id="toolgroup_id", - ) + with pytest.warns(DeprecationWarning): + tool = await async_client.tools.list( + toolgroup_id="toolgroup_id", + ) + assert_matches_type(ToolListResponse, tool, path=["response"]) @parametrize async def test_raw_response_list(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.tools.with_raw_response.list() + with pytest.warns(DeprecationWarning): + response = await async_client.tools.with_raw_response.list() assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -122,27 +140,31 @@ async def test_raw_response_list(self, async_client: AsyncLlamaStackClient) -> N @parametrize async def test_streaming_response_list(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.tools.with_streaming_response.list() as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.tools.with_streaming_response.list() as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool = await response.parse() - assert_matches_type(ToolListResponse, tool, path=["response"]) + tool = await response.parse() + assert_matches_type(ToolListResponse, tool, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_method_get(self, async_client: AsyncLlamaStackClient) -> None: - tool = await async_client.tools.get( - "tool_name", - ) + with pytest.warns(DeprecationWarning): + tool = await async_client.tools.get( + "tool_name", + ) + assert_matches_type(ToolDef, tool, path=["response"]) @parametrize async def test_raw_response_get(self, async_client: AsyncLlamaStackClient) -> None: - response = await async_client.tools.with_raw_response.get( - "tool_name", - ) + with pytest.warns(DeprecationWarning): + response = await async_client.tools.with_raw_response.get( + "tool_name", + ) assert response.is_closed is True assert response.http_request.headers.get("X-Stainless-Lang") == "python" @@ -151,20 +173,22 @@ async def test_raw_response_get(self, async_client: AsyncLlamaStackClient) -> No @parametrize async def test_streaming_response_get(self, async_client: AsyncLlamaStackClient) -> None: - async with async_client.tools.with_streaming_response.get( - "tool_name", - ) as response: - assert not response.is_closed - assert response.http_request.headers.get("X-Stainless-Lang") == "python" + with pytest.warns(DeprecationWarning): + async with async_client.tools.with_streaming_response.get( + "tool_name", + ) as response: + assert not response.is_closed + assert response.http_request.headers.get("X-Stainless-Lang") == "python" - tool = await response.parse() - assert_matches_type(ToolDef, tool, path=["response"]) + tool = await response.parse() + assert_matches_type(ToolDef, tool, path=["response"]) assert cast(Any, response.is_closed) is True @parametrize async def test_path_params_get(self, async_client: AsyncLlamaStackClient) -> None: - with pytest.raises(ValueError, match=r"Expected a non-empty value for `tool_name` but received ''"): - await async_client.tools.with_raw_response.get( - "", - ) + with pytest.warns(DeprecationWarning): + with pytest.raises(ValueError, match=r"Expected a non-empty value for `tool_name` but received ''"): + await async_client.tools.with_raw_response.get( + "", + ) diff --git a/uv.lock b/uv.lock index 847d6c52..5d6855c5 100644 --- a/uv.lock +++ b/uv.lock @@ -130,16 +130,15 @@ wheels = [ [[package]] name = "anyio" -version = "4.11.0" +version = "4.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "idna" }, - { name = "sniffio" }, { name = "typing-extensions", marker = "python_full_version < '3.13' or (extra == 'group-18-llama-stack-client-pydantic-v1' and extra == 'group-18-llama-stack-client-pydantic-v2')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c6/78/7d432127c41b50bccba979505f272c16cbcadcc33645d5fa3a738110ae75/anyio-4.11.0.tar.gz", hash = "sha256:82a8d0b81e318cc5ce71a5f1f8b5c4e63619620b63141ef8c995fa0db95a57c4", size = 219094, upload-time = "2025-09-23T09:19:12.58Z" } +sdist = { url = "https://files.pythonhosted.org/packages/16/ce/8a777047513153587e5434fd752e89334ac33e379aa3497db860eeb60377/anyio-4.12.0.tar.gz", hash = "sha256:73c693b567b0c55130c104d0b43a9baf3aa6a31fc6110116509f27bf75e21ec0", size = 228266, upload-time = "2025-11-28T23:37:38.911Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/15/b3/9b1a8074496371342ec1e796a96f99c82c945a339cd81a8e73de28b4cf9e/anyio-4.11.0-py3-none-any.whl", hash = "sha256:0287e96f4d26d4149305414d4e3bc32f0dcd0862365a4bddea19d7a1ec38c4fc", size = 109097, upload-time = "2025-09-23T09:19:10.601Z" }, + { url = "https://files.pythonhosted.org/packages/7f/9c/36c5c37947ebfb8c7f22e0eb6e4d188ee2d53aa3880f3f2744fb894f0cb1/anyio-4.12.0-py3-none-any.whl", hash = "sha256:dad2376a628f98eeca4881fc56cd06affd18f659b17a747d3ff0307ced94b1bb", size = 113362, upload-time = "2025-11-28T23:36:57.897Z" }, ] [[package]] @@ -153,7 +152,7 @@ wheels = [ [[package]] name = "black" -version = "25.11.0" +version = "25.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -163,21 +162,24 @@ dependencies = [ { name = "platformdirs" }, { name = "pytokens" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8c/ad/33adf4708633d047950ff2dfdea2e215d84ac50ef95aff14a614e4b6e9b2/black-25.11.0.tar.gz", hash = "sha256:9a323ac32f5dc75ce7470501b887250be5005a01602e931a15e45593f70f6e08", size = 655669, upload-time = "2025-11-10T01:53:50.558Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/d9/07b458a3f1c525ac392b5edc6b191ff140b596f9d77092429417a54e249d/black-25.12.0.tar.gz", hash = "sha256:8d3dd9cea14bff7ddc0eb243c811cdb1a011ebb4800a5f0335a01a68654796a7", size = 659264, upload-time = "2025-12-08T01:40:52.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/12/5c35e600b515f35ffd737da7febdb2ab66bb8c24d88560d5e3ef3d28c3fd/black-25.11.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:80e7486ad3535636657aa180ad32a7d67d7c273a80e12f1b4bfa0823d54e8fac", size = 1772831, upload-time = "2025-11-10T02:03:47Z" }, - { url = "https://files.pythonhosted.org/packages/1a/75/b3896bec5a2bb9ed2f989a970ea40e7062f8936f95425879bbe162746fe5/black-25.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6cced12b747c4c76bc09b4db057c319d8545307266f41aaee665540bc0e04e96", size = 1608520, upload-time = "2025-11-10T01:58:46.895Z" }, - { url = "https://files.pythonhosted.org/packages/f3/b5/2bfc18330eddbcfb5aab8d2d720663cd410f51b2ed01375f5be3751595b0/black-25.11.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6cb2d54a39e0ef021d6c5eef442e10fd71fcb491be6413d083a320ee768329dd", size = 1682719, upload-time = "2025-11-10T01:56:55.24Z" }, - { url = "https://files.pythonhosted.org/packages/96/fb/f7dc2793a22cdf74a72114b5ed77fe3349a2e09ef34565857a2f917abdf2/black-25.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae263af2f496940438e5be1a0c1020e13b09154f3af4df0835ea7f9fe7bfa409", size = 1362684, upload-time = "2025-11-10T01:57:07.639Z" }, - { url = "https://files.pythonhosted.org/packages/ad/47/3378d6a2ddefe18553d1115e36aea98f4a90de53b6a3017ed861ba1bd3bc/black-25.11.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0a1d40348b6621cc20d3d7530a5b8d67e9714906dfd7346338249ad9c6cedf2b", size = 1772446, upload-time = "2025-11-10T02:02:16.181Z" }, - { url = "https://files.pythonhosted.org/packages/ba/4b/0f00bfb3d1f7e05e25bfc7c363f54dc523bb6ba502f98f4ad3acf01ab2e4/black-25.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51c65d7d60bb25429ea2bf0731c32b2a2442eb4bd3b2afcb47830f0b13e58bfd", size = 1607983, upload-time = "2025-11-10T02:02:52.502Z" }, - { url = "https://files.pythonhosted.org/packages/99/fe/49b0768f8c9ae57eb74cc10a1f87b4c70453551d8ad498959721cc345cb7/black-25.11.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:936c4dd07669269f40b497440159a221ee435e3fddcf668e0c05244a9be71993", size = 1682481, upload-time = "2025-11-10T01:57:12.35Z" }, - { url = "https://files.pythonhosted.org/packages/55/17/7e10ff1267bfa950cc16f0a411d457cdff79678fbb77a6c73b73a5317904/black-25.11.0-cp313-cp313-win_amd64.whl", hash = "sha256:f42c0ea7f59994490f4dccd64e6b2dd49ac57c7c84f38b8faab50f8759db245c", size = 1363869, upload-time = "2025-11-10T01:58:24.608Z" }, - { url = "https://files.pythonhosted.org/packages/67/c0/cc865ce594d09e4cd4dfca5e11994ebb51604328489f3ca3ae7bb38a7db5/black-25.11.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:35690a383f22dd3e468c85dc4b915217f87667ad9cce781d7b42678ce63c4170", size = 1771358, upload-time = "2025-11-10T02:03:33.331Z" }, - { url = "https://files.pythonhosted.org/packages/37/77/4297114d9e2fd2fc8ab0ab87192643cd49409eb059e2940391e7d2340e57/black-25.11.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dae49ef7369c6caa1a1833fd5efb7c3024bb7e4499bf64833f65ad27791b1545", size = 1612902, upload-time = "2025-11-10T01:59:33.382Z" }, - { url = "https://files.pythonhosted.org/packages/de/63/d45ef97ada84111e330b2b2d45e1dd163e90bd116f00ac55927fb6bf8adb/black-25.11.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bd4a22a0b37401c8e492e994bce79e614f91b14d9ea911f44f36e262195fdda", size = 1680571, upload-time = "2025-11-10T01:57:04.239Z" }, - { url = "https://files.pythonhosted.org/packages/ff/4b/5604710d61cdff613584028b4cb4607e56e148801ed9b38ee7970799dab6/black-25.11.0-cp314-cp314-win_amd64.whl", hash = "sha256:aa211411e94fdf86519996b7f5f05e71ba34835d8f0c0f03c00a26271da02664", size = 1382599, upload-time = "2025-11-10T01:57:57.427Z" }, - { url = "https://files.pythonhosted.org/packages/00/5d/aed32636ed30a6e7f9efd6ad14e2a0b0d687ae7c8c7ec4e4a557174b895c/black-25.11.0-py3-none-any.whl", hash = "sha256:e3f562da087791e96cefcd9dda058380a442ab322a02e222add53736451f604b", size = 204918, upload-time = "2025-11-10T01:53:48.917Z" }, + { url = "https://files.pythonhosted.org/packages/d1/bd/26083f805115db17fda9877b3c7321d08c647df39d0df4c4ca8f8450593e/black-25.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:31f96b7c98c1ddaeb07dc0f56c652e25bdedaac76d5b68a059d998b57c55594a", size = 1924178, upload-time = "2025-12-08T01:49:51.048Z" }, + { url = "https://files.pythonhosted.org/packages/89/6b/ea00d6651561e2bdd9231c4177f4f2ae19cc13a0b0574f47602a7519b6ca/black-25.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:05dd459a19e218078a1f98178c13f861fe6a9a5f88fc969ca4d9b49eb1809783", size = 1742643, upload-time = "2025-12-08T01:49:59.09Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f3/360fa4182e36e9875fabcf3a9717db9d27a8d11870f21cff97725c54f35b/black-25.12.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c1f68c5eff61f226934be6b5b80296cf6939e5d2f0c2f7d543ea08b204bfaf59", size = 1800158, upload-time = "2025-12-08T01:44:27.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/08/2c64830cb6616278067e040acca21d4f79727b23077633953081c9445d61/black-25.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:274f940c147ddab4442d316b27f9e332ca586d39c85ecf59ebdea82cc9ee8892", size = 1426197, upload-time = "2025-12-08T01:45:51.198Z" }, + { url = "https://files.pythonhosted.org/packages/d4/60/a93f55fd9b9816b7432cf6842f0e3000fdd5b7869492a04b9011a133ee37/black-25.12.0-cp312-cp312-win_arm64.whl", hash = "sha256:169506ba91ef21e2e0591563deda7f00030cb466e747c4b09cb0a9dae5db2f43", size = 1237266, upload-time = "2025-12-08T01:45:10.556Z" }, + { url = "https://files.pythonhosted.org/packages/c8/52/c551e36bc95495d2aa1a37d50566267aa47608c81a53f91daa809e03293f/black-25.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a05ddeb656534c3e27a05a29196c962877c83fa5503db89e68857d1161ad08a5", size = 1923809, upload-time = "2025-12-08T01:46:55.126Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f7/aac9b014140ee56d247e707af8db0aae2e9efc28d4a8aba92d0abd7ae9d1/black-25.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9ec77439ef3e34896995503865a85732c94396edcc739f302c5673a2315e1e7f", size = 1742384, upload-time = "2025-12-08T01:49:37.022Z" }, + { url = "https://files.pythonhosted.org/packages/74/98/38aaa018b2ab06a863974c12b14a6266badc192b20603a81b738c47e902e/black-25.12.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e509c858adf63aa61d908061b52e580c40eae0dfa72415fa47ac01b12e29baf", size = 1798761, upload-time = "2025-12-08T01:46:05.386Z" }, + { url = "https://files.pythonhosted.org/packages/16/3a/a8ac542125f61574a3f015b521ca83b47321ed19bb63fe6d7560f348bfe1/black-25.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:252678f07f5bac4ff0d0e9b261fbb029fa530cfa206d0a636a34ab445ef8ca9d", size = 1429180, upload-time = "2025-12-08T01:45:34.903Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2d/bdc466a3db9145e946762d52cd55b1385509d9f9004fec1c97bdc8debbfb/black-25.12.0-cp313-cp313-win_arm64.whl", hash = "sha256:bc5b1c09fe3c931ddd20ee548511c64ebf964ada7e6f0763d443947fd1c603ce", size = 1239350, upload-time = "2025-12-08T01:46:09.458Z" }, + { url = "https://files.pythonhosted.org/packages/35/46/1d8f2542210c502e2ae1060b2e09e47af6a5e5963cb78e22ec1a11170b28/black-25.12.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0a0953b134f9335c2434864a643c842c44fba562155c738a2a37a4d61f00cad5", size = 1917015, upload-time = "2025-12-08T01:53:27.987Z" }, + { url = "https://files.pythonhosted.org/packages/41/37/68accadf977672beb8e2c64e080f568c74159c1aaa6414b4cd2aef2d7906/black-25.12.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2355bbb6c3b76062870942d8cc450d4f8ac71f9c93c40122762c8784df49543f", size = 1741830, upload-time = "2025-12-08T01:54:36.861Z" }, + { url = "https://files.pythonhosted.org/packages/ac/76/03608a9d8f0faad47a3af3a3c8c53af3367f6c0dd2d23a84710456c7ac56/black-25.12.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9678bd991cc793e81d19aeeae57966ee02909877cb65838ccffef24c3ebac08f", size = 1791450, upload-time = "2025-12-08T01:44:52.581Z" }, + { url = "https://files.pythonhosted.org/packages/06/99/b2a4bd7dfaea7964974f947e1c76d6886d65fe5d24f687df2d85406b2609/black-25.12.0-cp314-cp314-win_amd64.whl", hash = "sha256:97596189949a8aad13ad12fcbb4ae89330039b96ad6742e6f6b45e75ad5cfd83", size = 1452042, upload-time = "2025-12-08T01:46:13.188Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7c/d9825de75ae5dd7795d007681b752275ea85a1c5d83269b4b9c754c2aaab/black-25.12.0-cp314-cp314-win_arm64.whl", hash = "sha256:778285d9ea197f34704e3791ea9404cd6d07595745907dd2ce3da7a13627b29b", size = 1267446, upload-time = "2025-12-08T01:46:14.497Z" }, + { url = "https://files.pythonhosted.org/packages/68/11/21331aed19145a952ad28fca2756a1433ee9308079bd03bd898e903a2e53/black-25.12.0-py3-none-any.whl", hash = "sha256:48ceb36c16dbc84062740049eef990bb2ce07598272e673c17d1a7720c71c828", size = 206191, upload-time = "2025-12-08T01:40:50.963Z" }, ] [[package]] @@ -314,11 +316,11 @@ wheels = [ [[package]] name = "filelock" -version = "3.20.0" +version = "3.20.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/46/0028a82567109b5ef6e4d2a1f04a583fb513e6cf9527fcdd09afd817deeb/filelock-3.20.0.tar.gz", hash = "sha256:711e943b4ec6be42e1d4e6690b48dc175c822967466bb31c0c293f34334c13f4", size = 18922, upload-time = "2025-10-08T18:03:50.056Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a7/23/ce7a1126827cedeb958fc043d61745754464eb56c5937c35bbf2b8e26f34/filelock-3.20.1.tar.gz", hash = "sha256:b8360948b351b80f420878d8516519a2204b07aefcdcfd24912a5d33127f188c", size = 19476, upload-time = "2025-12-15T23:54:28.027Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/76/91/7216b27286936c16f5b4d0c530087e4a54eead683e6b0b73dd0c64844af6/filelock-3.20.0-py3-none-any.whl", hash = "sha256:339b4732ffda5cd79b13f4e2711a31b0365ce445d95d243bb996273d072546a2", size = 16054, upload-time = "2025-10-08T18:03:48.35Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7f/a1a97644e39e7316d850784c642093c99df1290a460df4ede27659056834/filelock-3.20.1-py3-none-any.whl", hash = "sha256:15d9e9a67306188a44baa72f569d2bfd803076269365fdea0934385da4dc361a", size = 16666, upload-time = "2025-12-15T23:54:26.874Z" }, ] [[package]] @@ -513,7 +515,7 @@ wheels = [ [[package]] name = "llama-stack-client" -version = "0.4.0a12" +version = "0.4.0a13" source = { editable = "." } dependencies = [ { name = "anyio" }, @@ -525,7 +527,7 @@ dependencies = [ { name = "prompt-toolkit" }, { name = "pyaml" }, { name = "pydantic", version = "1.10.24", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-llama-stack-client-pydantic-v1'" }, - { name = "pydantic", version = "2.12.4", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, + { name = "pydantic", version = "2.12.5", source = { registry = "https://pypi.org/simple" }, marker = "extra == 'group-18-llama-stack-client-pydantic-v2' or extra != 'group-18-llama-stack-client-pydantic-v1'" }, { name = "requests" }, { name = "rich" }, { name = "sniffio" }, @@ -560,7 +562,7 @@ pydantic-v1 = [ { name = "pydantic", version = "1.10.24", source = { registry = "https://pypi.org/simple" } }, ] pydantic-v2 = [ - { name = "pydantic", version = "2.12.4", source = { registry = "https://pypi.org/simple" } }, + { name = "pydantic", version = "2.12.5", source = { registry = "https://pypi.org/simple" } }, ] [package.metadata] @@ -590,7 +592,7 @@ dev = [ { name = "black" }, { name = "dirty-equals", specifier = ">=0.6.0" }, { name = "importlib-metadata", specifier = ">=6.7.0" }, - { name = "mypy" }, + { name = "mypy", specifier = "==1.17" }, { name = "pre-commit" }, { name = "pyright", specifier = "==1.1.399" }, { name = "pytest", specifier = ">=7.1.1" }, @@ -729,34 +731,28 @@ wheels = [ [[package]] name = "mypy" -version = "1.18.2" +version = "1.17.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mypy-extensions" }, { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/77/8f0d0001ffad290cef2f7f216f96c814866248a0b92a722365ed54648e7e/mypy-1.18.2.tar.gz", hash = "sha256:06a398102a5f203d7477b2923dda3634c36727fa5c237d8f859ef90c42a9924b", size = 3448846, upload-time = "2025-09-19T00:11:10.519Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/07/06/dfdd2bc60c66611dd8335f463818514733bc763e4760dee289dcc33df709/mypy-1.18.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:33eca32dd124b29400c31d7cf784e795b050ace0e1f91b8dc035672725617e34", size = 12908273, upload-time = "2025-09-19T00:10:58.321Z" }, - { url = "https://files.pythonhosted.org/packages/81/14/6a9de6d13a122d5608e1a04130724caf9170333ac5a924e10f670687d3eb/mypy-1.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a3c47adf30d65e89b2dcd2fa32f3aeb5e94ca970d2c15fcb25e297871c8e4764", size = 11920910, upload-time = "2025-09-19T00:10:20.043Z" }, - { url = "https://files.pythonhosted.org/packages/5f/a9/b29de53e42f18e8cc547e38daa9dfa132ffdc64f7250e353f5c8cdd44bee/mypy-1.18.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5d6c838e831a062f5f29d11c9057c6009f60cb294fea33a98422688181fe2893", size = 12465585, upload-time = "2025-09-19T00:10:33.005Z" }, - { url = "https://files.pythonhosted.org/packages/77/ae/6c3d2c7c61ff21f2bee938c917616c92ebf852f015fb55917fd6e2811db2/mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01199871b6110a2ce984bde85acd481232d17413868c9807e95c1b0739a58914", size = 13348562, upload-time = "2025-09-19T00:10:11.51Z" }, - { url = "https://files.pythonhosted.org/packages/4d/31/aec68ab3b4aebdf8f36d191b0685d99faa899ab990753ca0fee60fb99511/mypy-1.18.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a2afc0fa0b0e91b4599ddfe0f91e2c26c2b5a5ab263737e998d6817874c5f7c8", size = 13533296, upload-time = "2025-09-19T00:10:06.568Z" }, - { url = "https://files.pythonhosted.org/packages/9f/83/abcb3ad9478fca3ebeb6a5358bb0b22c95ea42b43b7789c7fb1297ca44f4/mypy-1.18.2-cp312-cp312-win_amd64.whl", hash = "sha256:d8068d0afe682c7c4897c0f7ce84ea77f6de953262b12d07038f4d296d547074", size = 9828828, upload-time = "2025-09-19T00:10:28.203Z" }, - { url = "https://files.pythonhosted.org/packages/5f/04/7f462e6fbba87a72bc8097b93f6842499c428a6ff0c81dd46948d175afe8/mypy-1.18.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:07b8b0f580ca6d289e69209ec9d3911b4a26e5abfde32228a288eb79df129fcc", size = 12898728, upload-time = "2025-09-19T00:10:01.33Z" }, - { url = "https://files.pythonhosted.org/packages/99/5b/61ed4efb64f1871b41fd0b82d29a64640f3516078f6c7905b68ab1ad8b13/mypy-1.18.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ed4482847168439651d3feee5833ccedbf6657e964572706a2adb1f7fa4dfe2e", size = 11910758, upload-time = "2025-09-19T00:10:42.607Z" }, - { url = "https://files.pythonhosted.org/packages/3c/46/d297d4b683cc89a6e4108c4250a6a6b717f5fa96e1a30a7944a6da44da35/mypy-1.18.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3ad2afadd1e9fea5cf99a45a822346971ede8685cc581ed9cd4d42eaf940986", size = 12475342, upload-time = "2025-09-19T00:11:00.371Z" }, - { url = "https://files.pythonhosted.org/packages/83/45/4798f4d00df13eae3bfdf726c9244bcb495ab5bd588c0eed93a2f2dd67f3/mypy-1.18.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a431a6f1ef14cf8c144c6b14793a23ec4eae3db28277c358136e79d7d062f62d", size = 13338709, upload-time = "2025-09-19T00:11:03.358Z" }, - { url = "https://files.pythonhosted.org/packages/d7/09/479f7358d9625172521a87a9271ddd2441e1dab16a09708f056e97007207/mypy-1.18.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7ab28cc197f1dd77a67e1c6f35cd1f8e8b73ed2217e4fc005f9e6a504e46e7ba", size = 13529806, upload-time = "2025-09-19T00:10:26.073Z" }, - { url = "https://files.pythonhosted.org/packages/71/cf/ac0f2c7e9d0ea3c75cd99dff7aec1c9df4a1376537cb90e4c882267ee7e9/mypy-1.18.2-cp313-cp313-win_amd64.whl", hash = "sha256:0e2785a84b34a72ba55fb5daf079a1003a34c05b22238da94fcae2bbe46f3544", size = 9833262, upload-time = "2025-09-19T00:10:40.035Z" }, - { url = "https://files.pythonhosted.org/packages/5a/0c/7d5300883da16f0063ae53996358758b2a2df2a09c72a5061fa79a1f5006/mypy-1.18.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:62f0e1e988ad41c2a110edde6c398383a889d95b36b3e60bcf155f5164c4fdce", size = 12893775, upload-time = "2025-09-19T00:10:03.814Z" }, - { url = "https://files.pythonhosted.org/packages/50/df/2cffbf25737bdb236f60c973edf62e3e7b4ee1c25b6878629e88e2cde967/mypy-1.18.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8795a039bab805ff0c1dfdb8cd3344642c2b99b8e439d057aba30850b8d3423d", size = 11936852, upload-time = "2025-09-19T00:10:51.631Z" }, - { url = "https://files.pythonhosted.org/packages/be/50/34059de13dd269227fb4a03be1faee6e2a4b04a2051c82ac0a0b5a773c9a/mypy-1.18.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6ca1e64b24a700ab5ce10133f7ccd956a04715463d30498e64ea8715236f9c9c", size = 12480242, upload-time = "2025-09-19T00:11:07.955Z" }, - { url = "https://files.pythonhosted.org/packages/5b/11/040983fad5132d85914c874a2836252bbc57832065548885b5bb5b0d4359/mypy-1.18.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d924eef3795cc89fecf6bedc6ed32b33ac13e8321344f6ddbf8ee89f706c05cb", size = 13326683, upload-time = "2025-09-19T00:09:55.572Z" }, - { url = "https://files.pythonhosted.org/packages/e9/ba/89b2901dd77414dd7a8c8729985832a5735053be15b744c18e4586e506ef/mypy-1.18.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:20c02215a080e3a2be3aa50506c67242df1c151eaba0dcbc1e4e557922a26075", size = 13514749, upload-time = "2025-09-19T00:10:44.827Z" }, - { url = "https://files.pythonhosted.org/packages/25/bc/cc98767cffd6b2928ba680f3e5bc969c4152bf7c2d83f92f5a504b92b0eb/mypy-1.18.2-cp314-cp314-win_amd64.whl", hash = "sha256:749b5f83198f1ca64345603118a6f01a4e99ad4bf9d103ddc5a3200cc4614adf", size = 9982959, upload-time = "2025-09-19T00:10:37.344Z" }, - { url = "https://files.pythonhosted.org/packages/87/e3/be76d87158ebafa0309946c4a73831974d4d6ab4f4ef40c3b53a385a66fd/mypy-1.18.2-py3-none-any.whl", hash = "sha256:22a1748707dd62b58d2ae53562ffc4d7f8bcc727e8ac7cbc69c053ddc874d47e", size = 2352367, upload-time = "2025-09-19T00:10:15.489Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/1e/e3/034322d5a779685218ed69286c32faa505247f1f096251ef66c8fd203b08/mypy-1.17.0.tar.gz", hash = "sha256:e5d7ccc08ba089c06e2f5629c660388ef1fee708444f1dee0b9203fa031dee03", size = 3352114, upload-time = "2025-07-14T20:34:30.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/e9/e6824ed620bbf51d3bf4d6cbbe4953e83eaf31a448d1b3cfb3620ccb641c/mypy-1.17.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f986f1cab8dbec39ba6e0eaa42d4d3ac6686516a5d3dccd64be095db05ebc6bb", size = 11086395, upload-time = "2025-07-14T20:34:11.452Z" }, + { url = "https://files.pythonhosted.org/packages/ba/51/a4afd1ae279707953be175d303f04a5a7bd7e28dc62463ad29c1c857927e/mypy-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:51e455a54d199dd6e931cd7ea987d061c2afbaf0960f7f66deef47c90d1b304d", size = 10120052, upload-time = "2025-07-14T20:33:09.897Z" }, + { url = "https://files.pythonhosted.org/packages/8a/71/19adfeac926ba8205f1d1466d0d360d07b46486bf64360c54cb5a2bd86a8/mypy-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3204d773bab5ff4ebbd1f8efa11b498027cd57017c003ae970f310e5b96be8d8", size = 11861806, upload-time = "2025-07-14T20:32:16.028Z" }, + { url = "https://files.pythonhosted.org/packages/0b/64/d6120eca3835baf7179e6797a0b61d6c47e0bc2324b1f6819d8428d5b9ba/mypy-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1051df7ec0886fa246a530ae917c473491e9a0ba6938cfd0ec2abc1076495c3e", size = 12744371, upload-time = "2025-07-14T20:33:33.503Z" }, + { url = "https://files.pythonhosted.org/packages/1f/dc/56f53b5255a166f5bd0f137eed960e5065f2744509dfe69474ff0ba772a5/mypy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f773c6d14dcc108a5b141b4456b0871df638eb411a89cd1c0c001fc4a9d08fc8", size = 12914558, upload-time = "2025-07-14T20:33:56.961Z" }, + { url = "https://files.pythonhosted.org/packages/69/ac/070bad311171badc9add2910e7f89271695a25c136de24bbafc7eded56d5/mypy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1619a485fd0e9c959b943c7b519ed26b712de3002d7de43154a489a2d0fd817d", size = 9585447, upload-time = "2025-07-14T20:32:20.594Z" }, + { url = "https://files.pythonhosted.org/packages/be/7b/5f8ab461369b9e62157072156935cec9d272196556bdc7c2ff5f4c7c0f9b/mypy-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c41aa59211e49d717d92b3bb1238c06d387c9325d3122085113c79118bebb06", size = 11070019, upload-time = "2025-07-14T20:32:07.99Z" }, + { url = "https://files.pythonhosted.org/packages/9c/f8/c49c9e5a2ac0badcc54beb24e774d2499748302c9568f7f09e8730e953fa/mypy-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0e69db1fb65b3114f98c753e3930a00514f5b68794ba80590eb02090d54a5d4a", size = 10114457, upload-time = "2025-07-14T20:33:47.285Z" }, + { url = "https://files.pythonhosted.org/packages/89/0c/fb3f9c939ad9beed3e328008b3fb90b20fda2cddc0f7e4c20dbefefc3b33/mypy-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03ba330b76710f83d6ac500053f7727270b6b8553b0423348ffb3af6f2f7b889", size = 11857838, upload-time = "2025-07-14T20:33:14.462Z" }, + { url = "https://files.pythonhosted.org/packages/4c/66/85607ab5137d65e4f54d9797b77d5a038ef34f714929cf8ad30b03f628df/mypy-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:037bc0f0b124ce46bfde955c647f3e395c6174476a968c0f22c95a8d2f589bba", size = 12731358, upload-time = "2025-07-14T20:32:25.579Z" }, + { url = "https://files.pythonhosted.org/packages/73/d0/341dbbfb35ce53d01f8f2969facbb66486cee9804048bf6c01b048127501/mypy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c38876106cb6132259683632b287238858bd58de267d80defb6f418e9ee50658", size = 12917480, upload-time = "2025-07-14T20:34:21.868Z" }, + { url = "https://files.pythonhosted.org/packages/64/63/70c8b7dbfc520089ac48d01367a97e8acd734f65bd07813081f508a8c94c/mypy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d30ba01c0f151998f367506fab31c2ac4527e6a7b2690107c7a7f9e3cb419a9c", size = 9589666, upload-time = "2025-07-14T20:34:16.841Z" }, + { url = "https://files.pythonhosted.org/packages/e3/fc/ee058cc4316f219078464555873e99d170bde1d9569abd833300dbeb484a/mypy-1.17.0-py3-none-any.whl", hash = "sha256:15d9d0018237ab058e5de3d8fce61b6fa72cc59cc78fd91f1b474bce12abf496", size = 2283195, upload-time = "2025-07-14T20:31:54.753Z" }, ] [[package]] @@ -907,11 +903,11 @@ wheels = [ [[package]] name = "platformdirs" -version = "4.5.0" +version = "4.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/61/33/9611380c2bdb1225fdef633e2a9610622310fed35ab11dac9620972ee088/platformdirs-4.5.0.tar.gz", hash = "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", size = 21632, upload-time = "2025-10-08T17:44:48.791Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl", hash = "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3", size = 18651, upload-time = "2025-10-08T17:44:47.223Z" }, + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] [[package]] @@ -925,7 +921,7 @@ wheels = [ [[package]] name = "pre-commit" -version = "4.5.0" +version = "4.5.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cfgv" }, @@ -934,9 +930,9 @@ dependencies = [ { name = "pyyaml" }, { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/9b/6a4ffb4ed980519da959e1cf3122fc6cb41211daa58dbae1c73c0e519a37/pre_commit-4.5.0.tar.gz", hash = "sha256:dc5a065e932b19fc1d4c653c6939068fe54325af8e741e74e88db4d28a4dd66b", size = 198428, upload-time = "2025-11-22T21:02:42.304Z" } +sdist = { url = "https://files.pythonhosted.org/packages/40/f1/6d86a29246dfd2e9b6237f0b5823717f60cad94d47ddc26afa916d21f525/pre_commit-4.5.1.tar.gz", hash = "sha256:eb545fcff725875197837263e977ea257a402056661f09dae08e4b149b030a61", size = 198232, upload-time = "2025-12-16T21:14:33.552Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" }, + { url = "https://files.pythonhosted.org/packages/5d/19/fd3ef348460c80af7bb4669ea7926651d1f95c23ff2df18b9d24bab4f3fa/pre_commit-4.5.1-py2.py3-none-any.whl", hash = "sha256:3b3afd891e97337708c1674210f8eba659b52a38ea5f822ff142d10786221f77", size = 226437, upload-time = "2025-12-16T21:14:32.409Z" }, ] [[package]] @@ -1075,7 +1071,7 @@ wheels = [ [[package]] name = "pydantic" -version = "2.12.4" +version = "2.12.5" source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.14' and extra != 'group-18-llama-stack-client-pydantic-v1' and extra == 'group-18-llama-stack-client-pydantic-v2'", @@ -1088,9 +1084,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/ad/a17bc283d7d81837c061c49e3eaa27a45991759a1b7eae1031921c6bd924/pydantic-2.12.4.tar.gz", hash = "sha256:0f8cb9555000a4b5b617f66bfd2566264c4984b27589d3b845685983e8ea85ac", size = 821038, upload-time = "2025-11-05T10:50:08.59Z" } +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/2f/e68750da9b04856e2a7ec56fc6f034a5a79775e9b9a81882252789873798/pydantic-2.12.4-py3-none-any.whl", hash = "sha256:92d3d202a745d46f9be6df459ac5a064fdaa3c1c4cd8adcfa332ccf3c05f871e", size = 463400, upload-time = "2025-11-05T10:50:06.732Z" }, + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, ] [[package]] @@ -1346,28 +1342,28 @@ wheels = [ [[package]] name = "ruff" -version = "0.14.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/52/f0/62b5a1a723fe183650109407fa56abb433b00aa1c0b9ba555f9c4efec2c6/ruff-0.14.6.tar.gz", hash = "sha256:6f0c742ca6a7783a736b867a263b9a7a80a45ce9bee391eeda296895f1b4e1cc", size = 5669501, upload-time = "2025-11-21T14:26:17.903Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/d2/7dd544116d107fffb24a0064d41a5d2ed1c9d6372d142f9ba108c8e39207/ruff-0.14.6-py3-none-linux_armv6l.whl", hash = "sha256:d724ac2f1c240dbd01a2ae98db5d1d9a5e1d9e96eba999d1c48e30062df578a3", size = 13326119, upload-time = "2025-11-21T14:25:24.2Z" }, - { url = "https://files.pythonhosted.org/packages/36/6a/ad66d0a3315d6327ed6b01f759d83df3c4d5f86c30462121024361137b6a/ruff-0.14.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9f7539ea257aa4d07b7ce87aed580e485c40143f2473ff2f2b75aee003186004", size = 13526007, upload-time = "2025-11-21T14:25:26.906Z" }, - { url = "https://files.pythonhosted.org/packages/a3/9d/dae6db96df28e0a15dea8e986ee393af70fc97fd57669808728080529c37/ruff-0.14.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7f6007e55b90a2a7e93083ba48a9f23c3158c433591c33ee2e99a49b889c6332", size = 12676572, upload-time = "2025-11-21T14:25:29.826Z" }, - { url = "https://files.pythonhosted.org/packages/76/a4/f319e87759949062cfee1b26245048e92e2acce900ad3a909285f9db1859/ruff-0.14.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a8e7b9d73d8728b68f632aa8e824ef041d068d231d8dbc7808532d3629a6bef", size = 13140745, upload-time = "2025-11-21T14:25:32.788Z" }, - { url = "https://files.pythonhosted.org/packages/95/d3/248c1efc71a0a8ed4e8e10b4b2266845d7dfc7a0ab64354afe049eaa1310/ruff-0.14.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d50d45d4553a3ebcbd33e7c5e0fe6ca4aafd9a9122492de357205c2c48f00775", size = 13076486, upload-time = "2025-11-21T14:25:35.601Z" }, - { url = "https://files.pythonhosted.org/packages/a5/19/b68d4563fe50eba4b8c92aa842149bb56dd24d198389c0ed12e7faff4f7d/ruff-0.14.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:118548dd121f8a21bfa8ab2c5b80e5b4aed67ead4b7567790962554f38e598ce", size = 13727563, upload-time = "2025-11-21T14:25:38.514Z" }, - { url = "https://files.pythonhosted.org/packages/47/ac/943169436832d4b0e867235abbdb57ce3a82367b47e0280fa7b4eabb7593/ruff-0.14.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:57256efafbfefcb8748df9d1d766062f62b20150691021f8ab79e2d919f7c11f", size = 15199755, upload-time = "2025-11-21T14:25:41.516Z" }, - { url = "https://files.pythonhosted.org/packages/c9/b9/288bb2399860a36d4bb0541cb66cce3c0f4156aaff009dc8499be0c24bf2/ruff-0.14.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff18134841e5c68f8e5df1999a64429a02d5549036b394fafbe410f886e1989d", size = 14850608, upload-time = "2025-11-21T14:25:44.428Z" }, - { url = "https://files.pythonhosted.org/packages/ee/b1/a0d549dd4364e240f37e7d2907e97ee80587480d98c7799d2d8dc7a2f605/ruff-0.14.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:29c4b7ec1e66a105d5c27bd57fa93203637d66a26d10ca9809dc7fc18ec58440", size = 14118754, upload-time = "2025-11-21T14:25:47.214Z" }, - { url = "https://files.pythonhosted.org/packages/13/ac/9b9fe63716af8bdfddfacd0882bc1586f29985d3b988b3c62ddce2e202c3/ruff-0.14.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:167843a6f78680746d7e226f255d920aeed5e4ad9c03258094a2d49d3028b105", size = 13949214, upload-time = "2025-11-21T14:25:50.002Z" }, - { url = "https://files.pythonhosted.org/packages/12/27/4dad6c6a77fede9560b7df6802b1b697e97e49ceabe1f12baf3ea20862e9/ruff-0.14.6-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:16a33af621c9c523b1ae006b1b99b159bf5ac7e4b1f20b85b2572455018e0821", size = 14106112, upload-time = "2025-11-21T14:25:52.841Z" }, - { url = "https://files.pythonhosted.org/packages/6a/db/23e322d7177873eaedea59a7932ca5084ec5b7e20cb30f341ab594130a71/ruff-0.14.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1432ab6e1ae2dc565a7eea707d3b03a0c234ef401482a6f1621bc1f427c2ff55", size = 13035010, upload-time = "2025-11-21T14:25:55.536Z" }, - { url = "https://files.pythonhosted.org/packages/a8/9c/20e21d4d69dbb35e6a1df7691e02f363423658a20a2afacf2a2c011800dc/ruff-0.14.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:4c55cfbbe7abb61eb914bfd20683d14cdfb38a6d56c6c66efa55ec6570ee4e71", size = 13054082, upload-time = "2025-11-21T14:25:58.625Z" }, - { url = "https://files.pythonhosted.org/packages/66/25/906ee6a0464c3125c8d673c589771a974965c2be1a1e28b5c3b96cb6ef88/ruff-0.14.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:efea3c0f21901a685fff4befda6d61a1bf4cb43de16da87e8226a281d614350b", size = 13303354, upload-time = "2025-11-21T14:26:01.816Z" }, - { url = "https://files.pythonhosted.org/packages/4c/58/60577569e198d56922b7ead07b465f559002b7b11d53f40937e95067ca1c/ruff-0.14.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:344d97172576d75dc6afc0e9243376dbe1668559c72de1864439c4fc95f78185", size = 14054487, upload-time = "2025-11-21T14:26:05.058Z" }, - { url = "https://files.pythonhosted.org/packages/67/0b/8e4e0639e4cc12547f41cb771b0b44ec8225b6b6a93393176d75fe6f7d40/ruff-0.14.6-py3-none-win32.whl", hash = "sha256:00169c0c8b85396516fdd9ce3446c7ca20c2a8f90a77aa945ba6b8f2bfe99e85", size = 13013361, upload-time = "2025-11-21T14:26:08.152Z" }, - { url = "https://files.pythonhosted.org/packages/fb/02/82240553b77fd1341f80ebb3eaae43ba011c7a91b4224a9f317d8e6591af/ruff-0.14.6-py3-none-win_amd64.whl", hash = "sha256:390e6480c5e3659f8a4c8d6a0373027820419ac14fa0d2713bd8e6c3e125b8b9", size = 14432087, upload-time = "2025-11-21T14:26:10.891Z" }, - { url = "https://files.pythonhosted.org/packages/a5/1f/93f9b0fad9470e4c829a5bb678da4012f0c710d09331b860ee555216f4ea/ruff-0.14.6-py3-none-win_arm64.whl", hash = "sha256:d43c81fbeae52cfa8728d8766bbf46ee4298c888072105815b392da70ca836b2", size = 13520930, upload-time = "2025-11-21T14:26:13.951Z" }, +version = "0.14.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/5b/dd7406afa6c95e3d8fa9d652b6d6dd17dd4a6bf63cb477014e8ccd3dcd46/ruff-0.14.7.tar.gz", hash = "sha256:3417deb75d23bd14a722b57b0a1435561db65f0ad97435b4cf9f85ffcef34ae5", size = 5727324, upload-time = "2025-11-28T20:55:10.525Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8c/b1/7ea5647aaf90106f6d102230e5df874613da43d1089864da1553b899ba5e/ruff-0.14.7-py3-none-linux_armv6l.whl", hash = "sha256:b9d5cb5a176c7236892ad7224bc1e63902e4842c460a0b5210701b13e3de4fca", size = 13414475, upload-time = "2025-11-28T20:54:54.569Z" }, + { url = "https://files.pythonhosted.org/packages/af/19/fddb4cd532299db9cdaf0efdc20f5c573ce9952a11cb532d3b859d6d9871/ruff-0.14.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:3f64fe375aefaf36ca7d7250292141e39b4cea8250427482ae779a2aa5d90015", size = 13634613, upload-time = "2025-11-28T20:55:17.54Z" }, + { url = "https://files.pythonhosted.org/packages/40/2b/469a66e821d4f3de0440676ed3e04b8e2a1dc7575cf6fa3ba6d55e3c8557/ruff-0.14.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:93e83bd3a9e1a3bda64cb771c0d47cda0e0d148165013ae2d3554d718632d554", size = 12765458, upload-time = "2025-11-28T20:55:26.128Z" }, + { url = "https://files.pythonhosted.org/packages/f1/05/0b001f734fe550bcfde4ce845948ac620ff908ab7241a39a1b39bb3c5f49/ruff-0.14.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3838948e3facc59a6070795de2ae16e5786861850f78d5914a03f12659e88f94", size = 13236412, upload-time = "2025-11-28T20:55:28.602Z" }, + { url = "https://files.pythonhosted.org/packages/11/36/8ed15d243f011b4e5da75cd56d6131c6766f55334d14ba31cce5461f28aa/ruff-0.14.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:24c8487194d38b6d71cd0fd17a5b6715cda29f59baca1defe1e3a03240f851d1", size = 13182949, upload-time = "2025-11-28T20:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3b/cf/fcb0b5a195455729834f2a6eadfe2e4519d8ca08c74f6d2b564a4f18f553/ruff-0.14.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:79c73db6833f058a4be8ffe4a0913b6d4ad41f6324745179bd2aa09275b01d0b", size = 13816470, upload-time = "2025-11-28T20:55:08.203Z" }, + { url = "https://files.pythonhosted.org/packages/7f/5d/34a4748577ff7a5ed2f2471456740f02e86d1568a18c9faccfc73bd9ca3f/ruff-0.14.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:12eb7014fccff10fc62d15c79d8a6be4d0c2d60fe3f8e4d169a0d2def75f5dad", size = 15289621, upload-time = "2025-11-28T20:55:30.837Z" }, + { url = "https://files.pythonhosted.org/packages/53/53/0a9385f047a858ba133d96f3f8e3c9c66a31cc7c4b445368ef88ebeac209/ruff-0.14.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c623bbdc902de7ff715a93fa3bb377a4e42dd696937bf95669118773dbf0c50", size = 14975817, upload-time = "2025-11-28T20:55:24.107Z" }, + { url = "https://files.pythonhosted.org/packages/a8/d7/2f1c32af54c3b46e7fadbf8006d8b9bcfbea535c316b0bd8813d6fb25e5d/ruff-0.14.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f53accc02ed2d200fa621593cdb3c1ae06aa9b2c3cae70bc96f72f0000ae97a9", size = 14284549, upload-time = "2025-11-28T20:55:06.08Z" }, + { url = "https://files.pythonhosted.org/packages/92/05/434ddd86becd64629c25fb6b4ce7637dd52a45cc4a4415a3008fe61c27b9/ruff-0.14.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:281f0e61a23fcdcffca210591f0f53aafaa15f9025b5b3f9706879aaa8683bc4", size = 14071389, upload-time = "2025-11-28T20:55:35.617Z" }, + { url = "https://files.pythonhosted.org/packages/ff/50/fdf89d4d80f7f9d4f420d26089a79b3bb1538fe44586b148451bc2ba8d9c/ruff-0.14.7-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:dbbaa5e14148965b91cb090236931182ee522a5fac9bc5575bafc5c07b9f9682", size = 14202679, upload-time = "2025-11-28T20:55:01.472Z" }, + { url = "https://files.pythonhosted.org/packages/77/54/87b34988984555425ce967f08a36df0ebd339bb5d9d0e92a47e41151eafc/ruff-0.14.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1464b6e54880c0fe2f2d6eaefb6db15373331414eddf89d6b903767ae2458143", size = 13147677, upload-time = "2025-11-28T20:55:19.933Z" }, + { url = "https://files.pythonhosted.org/packages/67/29/f55e4d44edfe053918a16a3299e758e1c18eef216b7a7092550d7a9ec51c/ruff-0.14.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f217ed871e4621ea6128460df57b19ce0580606c23aeab50f5de425d05226784", size = 13151392, upload-time = "2025-11-28T20:55:21.967Z" }, + { url = "https://files.pythonhosted.org/packages/36/69/47aae6dbd4f1d9b4f7085f4d9dcc84e04561ee7ad067bf52e0f9b02e3209/ruff-0.14.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6be02e849440ed3602d2eb478ff7ff07d53e3758f7948a2a598829660988619e", size = 13412230, upload-time = "2025-11-28T20:55:12.749Z" }, + { url = "https://files.pythonhosted.org/packages/b7/4b/6e96cb6ba297f2ba502a231cd732ed7c3de98b1a896671b932a5eefa3804/ruff-0.14.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:19a0f116ee5e2b468dfe80c41c84e2bbd6b74f7b719bee86c2ecde0a34563bcc", size = 14195397, upload-time = "2025-11-28T20:54:56.896Z" }, + { url = "https://files.pythonhosted.org/packages/69/82/251d5f1aa4dcad30aed491b4657cecd9fb4274214da6960ffec144c260f7/ruff-0.14.7-py3-none-win32.whl", hash = "sha256:e33052c9199b347c8937937163b9b149ef6ab2e4bb37b042e593da2e6f6cccfa", size = 13126751, upload-time = "2025-11-28T20:55:03.47Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b5/d0b7d145963136b564806f6584647af45ab98946660d399ec4da79cae036/ruff-0.14.7-py3-none-win_amd64.whl", hash = "sha256:e17a20ad0d3fad47a326d773a042b924d3ac31c6ca6deb6c72e9e6b5f661a7c6", size = 14531726, upload-time = "2025-11-28T20:54:59.121Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d2/1637f4360ada6a368d3265bf39f2cf737a0aaab15ab520fc005903e883f8/ruff-0.14.7-py3-none-win_arm64.whl", hash = "sha256:be4d653d3bea1b19742fcc6502354e32f65cd61ff2fbdb365803ef2c2aec6228", size = 13609215, upload-time = "2025-11-28T20:55:15.375Z" }, ] [[package]] @@ -1495,20 +1491,20 @@ wheels = [ [[package]] name = "tzdata" -version = "2025.2" +version = "2025.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, ] [[package]] name = "urllib3" -version = "2.5.0" +version = "2.6.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/15/22/9ee70a2574a4f4599c47dd506532914ce044817c7752a79b6a51286319bc/urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760", size = 393185, upload-time = "2025-06-18T14:07:41.644Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc", size = 129795, upload-time = "2025-06-18T14:07:40.39Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" }, ] [[package]]