From f15afea1e0ad105ce8d41a87225ae77b2ebd2848 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 19:05:52 +0000 Subject: [PATCH 01/18] ci: pin GitHub Actions to commit SHAs Pin all GitHub Actions referenced in generated workflows (both first-party `actions/*` and third-party) to immutable commit SHAs. Updating pinned actions is now a deliberate codegen-side bump rather than implicit on every workflow run. --- .github/workflows/ci.yml | 14 +++++++------- .github/workflows/publish-pypi.yml | 4 ++-- .github/workflows/release-doctor.yml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7d6fab0..f8e72796 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,10 +22,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/llama-stack-client-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 with: version: '0.10.2' @@ -44,10 +44,10 @@ jobs: id-token: write runs-on: ${{ github.repository == 'stainless-sdks/llama-stack-client-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 with: version: '0.10.2' @@ -62,7 +62,7 @@ jobs: github.repository == 'stainless-sdks/llama-stack-client-python' && !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc - uses: actions/github-script@v8 + uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 with: script: core.setOutput('github_token', await core.getIDToken()); @@ -82,10 +82,10 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/llama-stack-client-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 with: version: '0.10.2' diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 3aa82510..5b9d6f7a 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5.4.2 with: version: '0.9.13' diff --git a/.github/workflows/release-doctor.yml b/.github/workflows/release-doctor.yml index 723b9921..49eacef7 100644 --- a/.github/workflows/release-doctor.yml +++ b/.github/workflows/release-doctor.yml @@ -12,7 +12,7 @@ jobs: if: github.repository == 'ogx-ai/ogx-client-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next') steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Check release environment run: | From ae7c048c9bbcb030fa60a922fbaf3fd344992f1f Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 12 May 2026 21:01:15 +0000 Subject: [PATCH 02/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 3b60db3f..1896c8cb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-0a1c852eda740c79412d2aa642e24f7ed057e69e472885e8fb9463e3d5515b55.yml -openapi_spec_hash: 36c10a2fd3d75032e220697bd5b30b7f +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-da9f4a2a9ea4c9b29d7e2932c20bf40a520d7e877cec498f611026f4da2b3f4c.yml +openapi_spec_hash: 2d16aeb347ee748eb49f85e63737a6ff config_hash: 3d294831d7b8066ba59a8934b980a943 From 1b56f8028b4dd8f5d2b13e8fa8d32ec63654cb9e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 15:41:29 +0000 Subject: [PATCH 03/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 1896c8cb..a15513f7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-da9f4a2a9ea4c9b29d7e2932c20bf40a520d7e877cec498f611026f4da2b3f4c.yml -openapi_spec_hash: 2d16aeb347ee748eb49f85e63737a6ff +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-f979bbe38d35a5e62f055e5b8e7b483b5a3ebfcad3e1ddaa9496419188b9ea21.yml +openapi_spec_hash: 511d270343a6d804726d2fbe8cb21a1e config_hash: 3d294831d7b8066ba59a8934b980a943 From 87ef16cb554b90f9cce1434296fb280ac7018bb1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 16:48:24 +0000 Subject: [PATCH 04/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index a15513f7..468940cb 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-f979bbe38d35a5e62f055e5b8e7b483b5a3ebfcad3e1ddaa9496419188b9ea21.yml -openapi_spec_hash: 511d270343a6d804726d2fbe8cb21a1e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-abc9855d9c9fa99a55758fd03a3bb2e8d3c6c504fa7310c2ce2da67b10e4c456.yml +openapi_spec_hash: 8760889d3a8fc396fa2e191546258839 config_hash: 3d294831d7b8066ba59a8934b980a943 From 361810111d9613b5b8f91a8f7f7d63acdb293a7b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 20 May 2026 15:59:00 +0000 Subject: [PATCH 05/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 468940cb..439432ca 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-abc9855d9c9fa99a55758fd03a3bb2e8d3c6c504fa7310c2ce2da67b10e4c456.yml -openapi_spec_hash: 8760889d3a8fc396fa2e191546258839 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-998ebd3935c1587121c99547484f267eaf2a002446a76c53171ba2d65eca1aec.yml +openapi_spec_hash: 18f3e38a067d66df2f6da3033c31be47 config_hash: 3d294831d7b8066ba59a8934b980a943 From aa50fe9861d4642231fc4ea2d3925220b7bc25ac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 13:28:45 +0000 Subject: [PATCH 06/18] fix(api): fix field-level schema mismatches in Responses models --- .stats.yml | 4 ++-- src/ogx_client/types/response_compact_params.py | 3 +++ src/ogx_client/types/response_create_params.py | 3 +++ src/ogx_client/types/response_list_response.py | 9 ++++++++- src/ogx_client/types/response_object.py | 9 ++++++++- tests/api_resources/test_responses.py | 6 ++++++ 6 files changed, 30 insertions(+), 4 deletions(-) diff --git a/.stats.yml b/.stats.yml index 439432ca..e70bb537 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-998ebd3935c1587121c99547484f267eaf2a002446a76c53171ba2d65eca1aec.yml -openapi_spec_hash: 18f3e38a067d66df2f6da3033c31be47 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-d956e9a3409ef288c46a07874abb6a0aafe350e0490ac02a3d25d795769a29e3.yml +openapi_spec_hash: 01119701169c1cba088e577d4b13e464 config_hash: 3d294831d7b8066ba59a8934b980a943 diff --git a/src/ogx_client/types/response_compact_params.py b/src/ogx_client/types/response_compact_params.py index b6e556b9..7ebb4a27 100644 --- a/src/ogx_client/types/response_compact_params.py +++ b/src/ogx_client/types/response_compact_params.py @@ -628,6 +628,9 @@ class Reasoning(TypedDict, total=False): effort: Optional[Literal["none", "minimal", "low", "medium", "high", "xhigh"]] + generate_summary: Optional[Literal["auto", "concise", "detailed"]] + """Deprecated: use 'summary' instead.""" + summary: Optional[Literal["auto", "concise", "detailed"]] """Summary mode for reasoning output. One of 'auto', 'concise', or 'detailed'.""" diff --git a/src/ogx_client/types/response_create_params.py b/src/ogx_client/types/response_create_params.py index 9b3bb911..c82674c0 100644 --- a/src/ogx_client/types/response_create_params.py +++ b/src/ogx_client/types/response_create_params.py @@ -784,6 +784,9 @@ class Reasoning(TypedDict, total=False): effort: Optional[Literal["none", "minimal", "low", "medium", "high", "xhigh"]] + generate_summary: Optional[Literal["auto", "concise", "detailed"]] + """Deprecated: use 'summary' instead.""" + summary: Optional[Literal["auto", "concise", "detailed"]] """Summary mode for reasoning output. One of 'auto', 'concise', or 'detailed'.""" diff --git a/src/ogx_client/types/response_list_response.py b/src/ogx_client/types/response_list_response.py index f549154f..e01a88d8 100644 --- a/src/ogx_client/types/response_list_response.py +++ b/src/ogx_client/types/response_list_response.py @@ -1057,6 +1057,9 @@ class Reasoning(BaseModel): effort: Optional[Literal["none", "minimal", "low", "medium", "high", "xhigh"]] = None + generate_summary: Optional[Literal["auto", "concise", "detailed"]] = None + """Deprecated: use 'summary' instead.""" + summary: Optional[Literal["auto", "concise", "detailed"]] = None """Summary mode for reasoning output. One of 'auto', 'concise', or 'detailed'.""" @@ -1373,7 +1376,11 @@ class ResponseListResponse(BaseModel): top_p: Optional[float] = None - truncation: Optional[str] = None + truncation: Optional[Literal["auto", "disabled"]] = None + """ + Controls how the service truncates input when it exceeds the model context + window. + """ usage: Optional[Usage] = None """Usage information for OpenAI response.""" diff --git a/src/ogx_client/types/response_object.py b/src/ogx_client/types/response_object.py index c9f1fd69..987a2892 100644 --- a/src/ogx_client/types/response_object.py +++ b/src/ogx_client/types/response_object.py @@ -536,6 +536,9 @@ class Reasoning(BaseModel): effort: Optional[Literal["none", "minimal", "low", "medium", "high", "xhigh"]] = None + generate_summary: Optional[Literal["auto", "concise", "detailed"]] = None + """Deprecated: use 'summary' instead.""" + summary: Optional[Literal["auto", "concise", "detailed"]] = None """Summary mode for reasoning output. One of 'auto', 'concise', or 'detailed'.""" @@ -858,7 +861,11 @@ def output_text(self) -> str: top_p: Optional[float] = None - truncation: Optional[str] = None + truncation: Optional[Literal["auto", "disabled"]] = None + """ + Controls how the service truncates input when it exceeds the model context + window. + """ usage: Optional[Usage] = None """Usage information for OpenAI response.""" diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py index a569aa45..d097478c 100644 --- a/tests/api_resources/test_responses.py +++ b/tests/api_resources/test_responses.py @@ -67,6 +67,7 @@ def test_method_create_with_all_params_overload_1(self, client: OgxClient) -> No prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, service_tier="auto", @@ -169,6 +170,7 @@ def test_method_create_with_all_params_overload_2(self, client: OgxClient) -> No prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, service_tier="auto", @@ -354,6 +356,7 @@ def test_method_compact_with_all_params(self, client: OgxClient) -> None: prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, text={ @@ -449,6 +452,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, service_tier="auto", @@ -551,6 +555,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, service_tier="auto", @@ -736,6 +741,7 @@ async def test_method_compact_with_all_params(self, async_client: AsyncOgxClient prompt_cache_key="prompt_cache_key", reasoning={ "effort": "none", + "generate_summary": "auto", "summary": "auto", }, text={ From 484a474189160cada26c83971c47f3c4487f8363 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 13:31:27 +0000 Subject: [PATCH 07/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index e70bb537..c111fbd4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-d956e9a3409ef288c46a07874abb6a0aafe350e0490ac02a3d25d795769a29e3.yml -openapi_spec_hash: 01119701169c1cba088e577d4b13e464 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-c2be5b9488bee4a029b6b51cf881caaa8adc4cb9d96250998c00c66f007931a3.yml +openapi_spec_hash: 700fb7c9903e63033e8f16fc772bdbe8 config_hash: 3d294831d7b8066ba59a8934b980a943 From 96d1529b8003b26fd016974140f6eb9618037cc8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 15:04:10 +0000 Subject: [PATCH 08/18] fix(api)!: add post-generation schema transforms for Responses API conformance --- .stats.yml | 4 ++-- src/ogx_client/resources/responses/responses.py | 16 ++++++++-------- src/ogx_client/types/response_create_params.py | 2 +- src/ogx_client/types/response_object.py | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.stats.yml b/.stats.yml index c111fbd4..bc5a4d37 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-c2be5b9488bee4a029b6b51cf881caaa8adc4cb9d96250998c00c66f007931a3.yml -openapi_spec_hash: 700fb7c9903e63033e8f16fc772bdbe8 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-4d821c9765611dc1cf6346d5daedf30a1b0aeb4e562b97cb680ac75b6abe0a7f.yml +openapi_spec_hash: fb63889a952c0bf296d37dab50986956 config_hash: 3d294831d7b8066ba59a8934b980a943 diff --git a/src/ogx_client/resources/responses/responses.py b/src/ogx_client/resources/responses/responses.py index 360d03d5..7fcc44ad 100644 --- a/src/ogx_client/resources/responses/responses.py +++ b/src/ogx_client/resources/responses/responses.py @@ -117,7 +117,7 @@ def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -252,7 +252,7 @@ def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -387,7 +387,7 @@ def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -522,7 +522,7 @@ def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -864,7 +864,7 @@ async def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -999,7 +999,7 @@ async def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -1134,7 +1134,7 @@ async def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, @@ -1269,7 +1269,7 @@ async def create( tools: Optional[Iterable[response_create_params.Tool]] | Omit = omit, top_logprobs: Optional[int] | Omit = omit, top_p: Optional[float] | Omit = omit, - truncation: Optional[Literal["auto", "disabled"]] | Omit = omit, + truncation: Literal["auto", "disabled"] | 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, diff --git a/src/ogx_client/types/response_create_params.py b/src/ogx_client/types/response_create_params.py index c82674c0..a2babbef 100644 --- a/src/ogx_client/types/response_create_params.py +++ b/src/ogx_client/types/response_create_params.py @@ -185,7 +185,7 @@ class ResponseCreateParamsBase(TypedDict, total=False): increase focus). """ - truncation: Optional[Literal["auto", "disabled"]] + truncation: Literal["auto", "disabled"] """ Controls how the service truncates input when it exceeds the model context window. diff --git a/src/ogx_client/types/response_object.py b/src/ogx_client/types/response_object.py index 987a2892..c7a4cfae 100644 --- a/src/ogx_client/types/response_object.py +++ b/src/ogx_client/types/response_object.py @@ -824,7 +824,7 @@ def output_text(self) -> str: max_tool_calls: Optional[int] = None - metadata: Optional[Dict[str, str]] = None + metadata: Optional[object] = None object: Optional[Literal["response"]] = None From 2d1ba410cc89479a5a84a0be7a3cf071e76adceb Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 15:03:14 +0000 Subject: [PATCH 09/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index bc5a4d37..da22272f 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-4d821c9765611dc1cf6346d5daedf30a1b0aeb4e562b97cb680ac75b6abe0a7f.yml -openapi_spec_hash: fb63889a952c0bf296d37dab50986956 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-e2e910ff434e04bdc569aeba459844489a2067c76b23cec422950e912779c649.yml +openapi_spec_hash: bd80494de4952f80978f006fb5f46068 config_hash: 3d294831d7b8066ba59a8934b980a943 From 40f71628597b92ed14c6ae3445e09ffb2927da53 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 15:35:12 +0000 Subject: [PATCH 10/18] fix(brave-search): align result slicing with search_context_size count --- .stats.yml | 4 +- src/ogx_client/types/compacted_response.py | 62 ++++++- .../types/conversation_create_params.py | 59 ++++++- .../types/conversations/item_create_params.py | 59 ++++++- .../conversations/item_create_response.py | 62 ++++++- .../types/conversations/item_get_response.py | 60 ++++++- .../types/conversations/item_list_response.py | 60 ++++++- .../types/response_compact_params.py | 103 +++++++++++- .../types/response_create_params.py | 103 +++++++++++- .../types/response_list_response.py | 154 +++++++++++++++++- src/ogx_client/types/response_object.py | 92 ++++++++++- .../types/response_object_stream.py | 136 ++++++++++++++++ .../responses/input_item_list_response.py | 62 ++++++- tests/api_resources/test_responses.py | 60 ++++++- 14 files changed, 1028 insertions(+), 48 deletions(-) diff --git a/.stats.yml b/.stats.yml index da22272f..be3a7f3e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-e2e910ff434e04bdc569aeba459844489a2067c76b23cec422950e912779c649.yml -openapi_spec_hash: bd80494de4952f80978f006fb5f46068 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-e66b68ebb645eccc2ea31bdd14f81362b68775b39cb33fdebcb51db1e54cb48f.yml +openapi_spec_hash: 3c2474f158ac6153a43ce00cf73a3f87 config_hash: 3d294831d7b8066ba59a8934b980a943 diff --git a/src/ogx_client/types/compacted_response.py b/src/ogx_client/types/compacted_response.py index e0e18b5b..866b9a8e 100644 --- a/src/ogx_client/types/compacted_response.py +++ b/src/ogx_client/types/compacted_response.py @@ -24,7 +24,12 @@ "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "OutputOpenAIResponseOutputMessageWebSearchToolCall", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutput", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "OutputOpenAIResponseOutputMessageFileSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCallResult", "OutputOpenAIResponseOutputMessageFunctionToolCall", @@ -278,13 +283,64 @@ class OutputOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource] + ] = None + + type: Optional[Literal["search"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -522,7 +578,7 @@ class OutputOpenAIResponseCompaction(BaseModel): Output: TypeAlias = Union[ OutputOpenAIResponseMessageOutput, - OutputOpenAIResponseOutputMessageWebSearchToolCall, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutput, OutputOpenAIResponseOutputMessageFileSearchToolCall, OutputOpenAIResponseOutputMessageFunctionToolCall, OutputOpenAIResponseOutputMessageMcpCall, diff --git a/src/ogx_client/types/conversation_create_params.py b/src/ogx_client/types/conversation_create_params.py index ac26371e..4bfe9cd6 100644 --- a/src/ogx_client/types/conversation_create_params.py +++ b/src/ogx_client/types/conversation_create_params.py @@ -25,7 +25,12 @@ "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "ItemOpenAIResponseOutputMessageWebSearchToolCall", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInput", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind", "ItemOpenAIResponseOutputMessageFileSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCallResult", "ItemOpenAIResponseOutputMessageFunctionToolCall", @@ -275,13 +280,61 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): type: Literal["message"] -class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource(TypedDict, total=False): + """A source URL returned by a web search action.""" + + url: Required[str] + + type: Literal["url"] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch(TypedDict, total=False): + """Web search action: performs a search query.""" + + query: Required[str] + + queries: Optional[SequenceNotStr[str]] + + sources: Optional[Iterable[ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource]] + + type: Literal["search"] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage(TypedDict, total=False): + """Web search action: opens a specific URL from search results.""" + + type: Literal["open_page"] + + url: Optional[str] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind(TypedDict, total=False): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: Required[str] + + url: Required[str] + + type: Literal["find_in_page"] + + +ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction: TypeAlias = Union[ + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch, + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage, + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind, +] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInput(TypedDict, total=False): """Web search tool call output message for OpenAI responses.""" id: Required[str] status: Required[str] + action: Optional[ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction] + """Web search action: performs a search query.""" + type: Literal["web_search_call"] @@ -518,7 +571,7 @@ class ItemOpenAIResponseCompaction(TypedDict, total=False): Item: TypeAlias = Union[ ItemOpenAIResponseMessageInput, - ItemOpenAIResponseOutputMessageWebSearchToolCall, + ItemOpenAIResponseOutputMessageWebSearchToolCallInput, ItemOpenAIResponseOutputMessageFileSearchToolCall, ItemOpenAIResponseOutputMessageFunctionToolCall, ItemOpenAIResponseInputFunctionToolCallOutput, diff --git a/src/ogx_client/types/conversations/item_create_params.py b/src/ogx_client/types/conversations/item_create_params.py index 83ccd68f..50aedac8 100644 --- a/src/ogx_client/types/conversations/item_create_params.py +++ b/src/ogx_client/types/conversations/item_create_params.py @@ -25,7 +25,12 @@ "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", "ItemOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "ItemOpenAIResponseOutputMessageWebSearchToolCall", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInput", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage", + "ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind", "ItemOpenAIResponseOutputMessageFileSearchToolCall", "ItemOpenAIResponseOutputMessageFileSearchToolCallResult", "ItemOpenAIResponseOutputMessageFunctionToolCall", @@ -275,13 +280,61 @@ class ItemOpenAIResponseMessageInput(TypedDict, total=False): type: Literal["message"] -class ItemOpenAIResponseOutputMessageWebSearchToolCall(TypedDict, total=False): +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource(TypedDict, total=False): + """A source URL returned by a web search action.""" + + url: Required[str] + + type: Literal["url"] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch(TypedDict, total=False): + """Web search action: performs a search query.""" + + query: Required[str] + + queries: Optional[SequenceNotStr[str]] + + sources: Optional[Iterable[ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource]] + + type: Literal["search"] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage(TypedDict, total=False): + """Web search action: opens a specific URL from search results.""" + + type: Literal["open_page"] + + url: Optional[str] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind(TypedDict, total=False): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: Required[str] + + url: Required[str] + + type: Literal["find_in_page"] + + +ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction: TypeAlias = Union[ + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch, + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage, + ItemOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind, +] + + +class ItemOpenAIResponseOutputMessageWebSearchToolCallInput(TypedDict, total=False): """Web search tool call output message for OpenAI responses.""" id: Required[str] status: Required[str] + action: Optional[ItemOpenAIResponseOutputMessageWebSearchToolCallInputAction] + """Web search action: performs a search query.""" + type: Literal["web_search_call"] @@ -518,7 +571,7 @@ class ItemOpenAIResponseCompaction(TypedDict, total=False): Item: TypeAlias = Union[ ItemOpenAIResponseMessageInput, - ItemOpenAIResponseOutputMessageWebSearchToolCall, + ItemOpenAIResponseOutputMessageWebSearchToolCallInput, ItemOpenAIResponseOutputMessageFileSearchToolCall, ItemOpenAIResponseOutputMessageFunctionToolCall, ItemOpenAIResponseInputFunctionToolCallOutput, diff --git a/src/ogx_client/types/conversations/item_create_response.py b/src/ogx_client/types/conversations/item_create_response.py index fee16c55..690ffecf 100644 --- a/src/ogx_client/types/conversations/item_create_response.py +++ b/src/ogx_client/types/conversations/item_create_response.py @@ -24,7 +24,12 @@ "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "DataOpenAIResponseOutputMessageWebSearchToolCall", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutput", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "DataOpenAIResponseOutputMessageFileSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCallResult", "DataOpenAIResponseOutputMessageFunctionToolCall", @@ -275,13 +280,64 @@ class DataOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[List[DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource]] = ( + None + ) + + type: Optional[Literal["search"]] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -520,7 +576,7 @@ class DataOpenAIResponseCompaction(BaseModel): Data: TypeAlias = Annotated[ Union[ DataOpenAIResponseMessageOutput, - DataOpenAIResponseOutputMessageWebSearchToolCall, + DataOpenAIResponseOutputMessageWebSearchToolCallOutput, DataOpenAIResponseOutputMessageFileSearchToolCall, DataOpenAIResponseOutputMessageFunctionToolCall, DataOpenAIResponseInputFunctionToolCallOutput, diff --git a/src/ogx_client/types/conversations/item_get_response.py b/src/ogx_client/types/conversations/item_get_response.py index cdf44082..8b70d78a 100644 --- a/src/ogx_client/types/conversations/item_get_response.py +++ b/src/ogx_client/types/conversations/item_get_response.py @@ -23,7 +23,12 @@ "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "OpenAIResponseOutputMessageWebSearchToolCall", + "OpenAIResponseOutputMessageWebSearchToolCallOutput", + "OpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "OpenAIResponseOutputMessageFileSearchToolCall", "OpenAIResponseOutputMessageFileSearchToolCallResult", "OpenAIResponseOutputMessageFunctionToolCall", @@ -274,13 +279,62 @@ class OpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class OpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[List[OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource]] = None + + type: Optional[Literal["search"]] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class OpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[OpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -519,7 +573,7 @@ class OpenAIResponseCompaction(BaseModel): ItemGetResponse: TypeAlias = Annotated[ Union[ OpenAIResponseMessageOutput, - OpenAIResponseOutputMessageWebSearchToolCall, + OpenAIResponseOutputMessageWebSearchToolCallOutput, OpenAIResponseOutputMessageFileSearchToolCall, OpenAIResponseOutputMessageFunctionToolCall, OpenAIResponseInputFunctionToolCallOutput, diff --git a/src/ogx_client/types/conversations/item_list_response.py b/src/ogx_client/types/conversations/item_list_response.py index ae665ba7..ece60a7b 100644 --- a/src/ogx_client/types/conversations/item_list_response.py +++ b/src/ogx_client/types/conversations/item_list_response.py @@ -23,7 +23,12 @@ "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "OpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "OpenAIResponseOutputMessageWebSearchToolCall", + "OpenAIResponseOutputMessageWebSearchToolCallOutput", + "OpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "OpenAIResponseOutputMessageFileSearchToolCall", "OpenAIResponseOutputMessageFileSearchToolCallResult", "OpenAIResponseOutputMessageFunctionToolCall", @@ -274,13 +279,62 @@ class OpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class OpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[List[OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource]] = None + + type: Optional[Literal["search"]] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + OpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class OpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[OpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -519,7 +573,7 @@ class OpenAIResponseCompaction(BaseModel): ItemListResponse: TypeAlias = Annotated[ Union[ OpenAIResponseMessageOutput, - OpenAIResponseOutputMessageWebSearchToolCall, + OpenAIResponseOutputMessageWebSearchToolCallOutput, OpenAIResponseOutputMessageFileSearchToolCall, OpenAIResponseOutputMessageFunctionToolCall, OpenAIResponseInputFunctionToolCallOutput, diff --git a/src/ogx_client/types/response_compact_params.py b/src/ogx_client/types/response_compact_params.py index 7ebb4a27..83455ea1 100644 --- a/src/ogx_client/types/response_compact_params.py +++ b/src/ogx_client/types/response_compact_params.py @@ -25,7 +25,12 @@ "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCallResult", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFunctionToolCall", @@ -48,6 +53,8 @@ "TextFormat", "Tool", "ToolOpenAIResponseInputToolWebSearch", + "ToolOpenAIResponseInputToolWebSearchFilters", + "ToolOpenAIResponseInputToolWebSearchUserLocation", "ToolOpenAIResponseInputToolFileSearch", "ToolOpenAIResponseInputToolFileSearchRankingOptions", "ToolOpenAIResponseInputToolFunction", @@ -320,7 +327,64 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["message"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource( + TypedDict, total=False +): + """A source URL returned by a web search action.""" + + url: Required[str] + + type: Literal["url"] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch( + TypedDict, total=False +): + """Web search action: performs a search query.""" + + query: Required[str] + + queries: Optional[SequenceNotStr[str]] + + sources: Optional[ + Iterable[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource + ] + ] + + type: Literal["search"] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage( + TypedDict, total=False +): + """Web search action: opens a specific URL from search results.""" + + type: Literal["open_page"] + + url: Optional[str] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind( + TypedDict, total=False +): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: Required[str] + + url: Required[str] + + type: Literal["find_in_page"] + + +InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction: TypeAlias = Union[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind, +] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput( TypedDict, total=False ): """Web search tool call output message for OpenAI responses.""" @@ -329,6 +393,11 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp status: Required[str] + action: Optional[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction + ] + """Web search action: performs a search query.""" + type: Literal["web_search_call"] @@ -607,7 +676,7 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutput: TypeAlias = Union[ InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInput, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFunctionToolCall, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageMcpCall, @@ -658,13 +727,39 @@ class Text(TypedDict, total=False): verbosity: Optional[Literal["low", "medium", "high"]] +class ToolOpenAIResponseInputToolWebSearchFilters(TypedDict, total=False): + """Domain filters for web search results.""" + + allowed_domains: Optional[SequenceNotStr[str]] + + +class ToolOpenAIResponseInputToolWebSearchUserLocation(TypedDict, total=False): + """Approximate user location to refine web search results.""" + + city: Optional[str] + + country: Optional[str] + + region: Optional[str] + + timezone: Optional[str] + + type: Literal["approximate"] + + class ToolOpenAIResponseInputToolWebSearch(TypedDict, total=False): """Web search tool configuration for OpenAI response inputs.""" - search_context_size: Optional[str] + filters: Optional[ToolOpenAIResponseInputToolWebSearchFilters] + """Domain filters for web search results.""" + + search_context_size: Optional[Literal["low", "medium", "high"]] type: Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] + user_location: Optional[ToolOpenAIResponseInputToolWebSearchUserLocation] + """Approximate user location to refine web search results.""" + class ToolOpenAIResponseInputToolFileSearchRankingOptions(TypedDict, total=False): """Options for ranking and filtering search results. diff --git a/src/ogx_client/types/response_create_params.py b/src/ogx_client/types/response_create_params.py index a2babbef..9fd12597 100644 --- a/src/ogx_client/types/response_create_params.py +++ b/src/ogx_client/types/response_create_params.py @@ -25,7 +25,12 @@ "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprob", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextInputLogprobTopLogprob", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInputContentListOpenAIResponseOutputMessageContentOutputTextInputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage", + "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCallResult", "InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFunctionToolCall", @@ -62,6 +67,8 @@ "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", + "ToolOpenAIResponseInputToolWebSearchFilters", + "ToolOpenAIResponseInputToolWebSearchUserLocation", "ToolOpenAIResponseInputToolFileSearch", "ToolOpenAIResponseInputToolFileSearchRankingOptions", "ToolOpenAIResponseInputToolFunction", @@ -415,7 +422,64 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp type: Literal["message"] -class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall( +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource( + TypedDict, total=False +): + """A source URL returned by a web search action.""" + + url: Required[str] + + type: Literal["url"] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch( + TypedDict, total=False +): + """Web search action: performs a search query.""" + + query: Required[str] + + queries: Optional[SequenceNotStr[str]] + + sources: Optional[ + Iterable[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearchSource + ] + ] + + type: Literal["search"] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage( + TypedDict, total=False +): + """Web search action: opens a specific URL from search results.""" + + type: Literal["open_page"] + + url: Optional[str] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind( + TypedDict, total=False +): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: Required[str] + + url: Required[str] + + type: Literal["find_in_page"] + + +InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction: TypeAlias = Union[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionSearch, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionOpenPage, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputActionWebSearchActionFind, +] + + +class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput( TypedDict, total=False ): """Web search tool call output message for OpenAI responses.""" @@ -424,6 +488,11 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp status: Required[str] + action: Optional[ + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInputAction + ] + """Web search action: performs a search query.""" + type: Literal["web_search_call"] @@ -702,7 +771,7 @@ class InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutp InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutput: TypeAlias = Union[ InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseMessageInput, - InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCall, + InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageWebSearchToolCallInput, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFileSearchToolCall, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageFunctionToolCall, InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutputOpenAIResponseOutputMessageMcpCall, @@ -880,13 +949,39 @@ class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(TypedDict, total=False): ] +class ToolOpenAIResponseInputToolWebSearchFilters(TypedDict, total=False): + """Domain filters for web search results.""" + + allowed_domains: Optional[SequenceNotStr[str]] + + +class ToolOpenAIResponseInputToolWebSearchUserLocation(TypedDict, total=False): + """Approximate user location to refine web search results.""" + + city: Optional[str] + + country: Optional[str] + + region: Optional[str] + + timezone: Optional[str] + + type: Literal["approximate"] + + class ToolOpenAIResponseInputToolWebSearch(TypedDict, total=False): """Web search tool configuration for OpenAI response inputs.""" - search_context_size: Optional[str] + filters: Optional[ToolOpenAIResponseInputToolWebSearchFilters] + """Domain filters for web search results.""" + + search_context_size: Optional[Literal["low", "medium", "high"]] type: Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] + user_location: Optional[ToolOpenAIResponseInputToolWebSearchUserLocation] + """Approximate user location to refine web search results.""" + class ToolOpenAIResponseInputToolFileSearchRankingOptions(TypedDict, total=False): """Options for ranking and filtering search results. diff --git a/src/ogx_client/types/response_list_response.py b/src/ogx_client/types/response_list_response.py index e01a88d8..c3a92d77 100644 --- a/src/ogx_client/types/response_list_response.py +++ b/src/ogx_client/types/response_list_response.py @@ -26,7 +26,12 @@ "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "InputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "InputOpenAIResponseOutputMessageWebSearchToolCall", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutput", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "InputOpenAIResponseOutputMessageFileSearchToolCall", "InputOpenAIResponseOutputMessageFileSearchToolCallResult", "InputOpenAIResponseOutputMessageFunctionToolCall", @@ -60,7 +65,12 @@ "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "OutputOpenAIResponseOutputMessageWebSearchToolCall", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutput", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "OutputOpenAIResponseOutputMessageFileSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCallResult", "OutputOpenAIResponseOutputMessageFunctionToolCall", @@ -90,6 +100,8 @@ "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", + "ToolOpenAIResponseInputToolWebSearchFilters", + "ToolOpenAIResponseInputToolWebSearchUserLocation", "ToolOpenAIResponseInputToolFileSearch", "ToolOpenAIResponseInputToolFileSearchRankingOptions", "ToolOpenAIResponseInputToolFunction", @@ -332,13 +344,64 @@ class InputOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class InputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource] + ] = None + + type: Optional[Literal["search"]] = None + + +class InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +InputOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + InputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class InputOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[InputOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -576,7 +639,7 @@ class InputOpenAIResponseCompaction(BaseModel): Input: TypeAlias = Union[ InputOpenAIResponseMessageOutput, - InputOpenAIResponseOutputMessageWebSearchToolCall, + InputOpenAIResponseOutputMessageWebSearchToolCallOutput, InputOpenAIResponseOutputMessageFileSearchToolCall, InputOpenAIResponseOutputMessageFunctionToolCall, InputOpenAIResponseOutputMessageMcpCall, @@ -819,13 +882,64 @@ class OutputOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource] + ] = None + + type: Optional[Literal["search"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -969,7 +1083,7 @@ class OutputOpenAIResponseOutputMessageReasoningItem(BaseModel): Output: TypeAlias = Annotated[ Union[ OutputOpenAIResponseMessageOutput, - OutputOpenAIResponseOutputMessageWebSearchToolCall, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutput, OutputOpenAIResponseOutputMessageFileSearchToolCall, OutputOpenAIResponseOutputMessageFunctionToolCall, OutputOpenAIResponseOutputMessageMcpCall, @@ -1149,15 +1263,41 @@ class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(BaseModel): ] +class ToolOpenAIResponseInputToolWebSearchFilters(BaseModel): + """Domain filters for web search results.""" + + allowed_domains: Optional[List[str]] = None + + +class ToolOpenAIResponseInputToolWebSearchUserLocation(BaseModel): + """Approximate user location to refine web search results.""" + + city: Optional[str] = None + + country: Optional[str] = None + + region: Optional[str] = None + + timezone: Optional[str] = None + + type: Optional[Literal["approximate"]] = None + + class ToolOpenAIResponseInputToolWebSearch(BaseModel): """Web search tool configuration for OpenAI response inputs.""" - search_context_size: Optional[str] = None + filters: Optional[ToolOpenAIResponseInputToolWebSearchFilters] = None + """Domain filters for web search results.""" + + search_context_size: Optional[Literal["low", "medium", "high"]] = None type: Optional[ Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] ] = None + user_location: Optional[ToolOpenAIResponseInputToolWebSearchUserLocation] = None + """Approximate user location to refine web search results.""" + class ToolOpenAIResponseInputToolFileSearchRankingOptions(BaseModel): """Options for ranking and filtering search results. diff --git a/src/ogx_client/types/response_object.py b/src/ogx_client/types/response_object.py index c7a4cfae..08c21b21 100644 --- a/src/ogx_client/types/response_object.py +++ b/src/ogx_client/types/response_object.py @@ -26,7 +26,12 @@ "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "OutputOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "OutputOpenAIResponseOutputMessageWebSearchToolCall", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutput", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "OutputOpenAIResponseOutputMessageFileSearchToolCall", "OutputOpenAIResponseOutputMessageFileSearchToolCallResult", "OutputOpenAIResponseOutputMessageFunctionToolCall", @@ -56,6 +61,8 @@ "ToolChoiceOpenAIResponseInputToolChoiceCustomTool", "Tool", "ToolOpenAIResponseInputToolWebSearch", + "ToolOpenAIResponseInputToolWebSearchFilters", + "ToolOpenAIResponseInputToolWebSearchUserLocation", "ToolOpenAIResponseInputToolFileSearch", "ToolOpenAIResponseInputToolFileSearchRankingOptions", "ToolOpenAIResponseInputToolFunction", @@ -298,13 +305,64 @@ class OutputOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class OutputOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource] + ] = None + + type: Optional[Literal["search"]] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class OutputOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[OutputOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -448,7 +506,7 @@ class OutputOpenAIResponseOutputMessageReasoningItem(BaseModel): Output: TypeAlias = Annotated[ Union[ OutputOpenAIResponseMessageOutput, - OutputOpenAIResponseOutputMessageWebSearchToolCall, + OutputOpenAIResponseOutputMessageWebSearchToolCallOutput, OutputOpenAIResponseOutputMessageFileSearchToolCall, OutputOpenAIResponseOutputMessageFunctionToolCall, OutputOpenAIResponseOutputMessageMcpCall, @@ -628,15 +686,41 @@ class ToolChoiceOpenAIResponseInputToolChoiceCustomTool(BaseModel): ] +class ToolOpenAIResponseInputToolWebSearchFilters(BaseModel): + """Domain filters for web search results.""" + + allowed_domains: Optional[List[str]] = None + + +class ToolOpenAIResponseInputToolWebSearchUserLocation(BaseModel): + """Approximate user location to refine web search results.""" + + city: Optional[str] = None + + country: Optional[str] = None + + region: Optional[str] = None + + timezone: Optional[str] = None + + type: Optional[Literal["approximate"]] = None + + class ToolOpenAIResponseInputToolWebSearch(BaseModel): """Web search tool configuration for OpenAI response inputs.""" - search_context_size: Optional[str] = None + filters: Optional[ToolOpenAIResponseInputToolWebSearchFilters] = None + """Domain filters for web search results.""" + + search_context_size: Optional[Literal["low", "medium", "high"]] = None type: Optional[ Literal["web_search", "web_search_preview", "web_search_preview_2025_03_11", "web_search_2025_08_26"] ] = None + user_location: Optional[ToolOpenAIResponseInputToolWebSearchUserLocation] = None + """Approximate user location to refine web search results.""" + class ToolOpenAIResponseInputToolFileSearchRankingOptions(BaseModel): """Options for ranking and filtering search results. diff --git a/src/ogx_client/types/response_object_stream.py b/src/ogx_client/types/response_object_stream.py index c582f93e..2a4ac3d6 100644 --- a/src/ogx_client/types/response_object_stream.py +++ b/src/ogx_client/types/response_object_stream.py @@ -15,6 +15,11 @@ "OpenAIResponseObjectStreamResponseOutputItemAdded", "OpenAIResponseObjectStreamResponseOutputItemAddedItem", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCall", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallAction", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage", + "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFileSearchToolCall", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFileSearchToolCallResult", "OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageFunctionToolCall", @@ -28,6 +33,11 @@ "OpenAIResponseObjectStreamResponseOutputItemDone", "OpenAIResponseObjectStreamResponseOutputItemDoneItem", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCall", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallAction", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage", + "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFileSearchToolCall", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFileSearchToolCallResult", "OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageFunctionToolCall", @@ -127,6 +137,64 @@ class OpenAIResponseObjectStreamResponseInProgress(BaseModel): type: Optional[Literal["response.in_progress"]] = None +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource( + BaseModel +): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch( + BaseModel +): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource + ] + ] = None + + type: Optional[Literal["search"]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage( + BaseModel +): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind( + BaseModel +): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallAction: TypeAlias = Union[ + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch, + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage, + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind, + None, +] + + class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): """Web search tool call output message for OpenAI responses.""" @@ -134,6 +202,11 @@ class OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputM status: str + action: Optional[ + OpenAIResponseObjectStreamResponseOutputItemAddedItemOpenAIResponseOutputMessageWebSearchToolCallAction + ] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -314,6 +387,64 @@ class OpenAIResponseObjectStreamResponseOutputItemAdded(BaseModel): type: Optional[Literal["response.output_item.added"]] = None +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource( + BaseModel +): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch( + BaseModel +): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[ + List[ + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearchSource + ] + ] = None + + type: Optional[Literal["search"]] = None + + +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage( + BaseModel +): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind( + BaseModel +): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallAction: TypeAlias = Union[ + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionSearch, + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionOpenPage, + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallActionWebSearchActionFind, + None, +] + + class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): """Web search tool call output message for OpenAI responses.""" @@ -321,6 +452,11 @@ class OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMe status: str + action: Optional[ + OpenAIResponseObjectStreamResponseOutputItemDoneItemOpenAIResponseOutputMessageWebSearchToolCallAction + ] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None diff --git a/src/ogx_client/types/responses/input_item_list_response.py b/src/ogx_client/types/responses/input_item_list_response.py index 74ec94a2..836ab8ca 100644 --- a/src/ogx_client/types/responses/input_item_list_response.py +++ b/src/ogx_client/types/responses/input_item_list_response.py @@ -24,7 +24,12 @@ "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprob", "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseOutputMessageContentOutputTextOutputLogprobTopLogprob", "DataOpenAIResponseMessageOutputContentListOpenAIResponseOutputMessageContentOutputTextOutputOpenAIResponseContentPartRefusalOpenAIResponseContentPartRefusal", - "DataOpenAIResponseOutputMessageWebSearchToolCall", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutput", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage", + "DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind", "DataOpenAIResponseOutputMessageFileSearchToolCall", "DataOpenAIResponseOutputMessageFileSearchToolCallResult", "DataOpenAIResponseOutputMessageFunctionToolCall", @@ -275,13 +280,64 @@ class DataOpenAIResponseMessageOutput(BaseModel): type: Optional[Literal["message"]] = None -class DataOpenAIResponseOutputMessageWebSearchToolCall(BaseModel): +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource(BaseModel): + """A source URL returned by a web search action.""" + + url: str + + type: Optional[Literal["url"]] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch(BaseModel): + """Web search action: performs a search query.""" + + query: str + + queries: Optional[List[str]] = None + + sources: Optional[List[DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearchSource]] = ( + None + ) + + type: Optional[Literal["search"]] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage(BaseModel): + """Web search action: opens a specific URL from search results.""" + + type: Optional[Literal["open_page"]] = None + + url: Optional[str] = None + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind(BaseModel): + """Web search action: searches for a pattern within a loaded page.""" + + pattern: str + + url: str + + type: Optional[Literal["find_in_page"]] = None + + +DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction: TypeAlias = Union[ + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionSearch, + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionOpenPage, + DataOpenAIResponseOutputMessageWebSearchToolCallOutputActionWebSearchActionFind, + None, +] + + +class DataOpenAIResponseOutputMessageWebSearchToolCallOutput(BaseModel): """Web search tool call output message for OpenAI responses.""" id: str status: str + action: Optional[DataOpenAIResponseOutputMessageWebSearchToolCallOutputAction] = None + """Web search action: performs a search query.""" + type: Optional[Literal["web_search_call"]] = None @@ -519,7 +575,7 @@ class DataOpenAIResponseCompaction(BaseModel): Data: TypeAlias = Union[ DataOpenAIResponseMessageOutput, - DataOpenAIResponseOutputMessageWebSearchToolCall, + DataOpenAIResponseOutputMessageWebSearchToolCallOutput, DataOpenAIResponseOutputMessageFileSearchToolCall, DataOpenAIResponseOutputMessageFunctionToolCall, DataOpenAIResponseOutputMessageMcpCall, diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py index d097478c..69cae91a 100644 --- a/tests/api_resources/test_responses.py +++ b/tests/api_resources/test_responses.py @@ -88,8 +88,16 @@ def test_method_create_with_all_params_overload_1(self, client: OgxClient) -> No tool_choice="auto", tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], top_logprobs=0, @@ -190,8 +198,16 @@ def test_method_create_with_all_params_overload_2(self, client: OgxClient) -> No tool_choice="auto", tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], top_logprobs=0, @@ -371,8 +387,16 @@ def test_method_compact_with_all_params(self, client: OgxClient) -> None: }, tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], ) @@ -473,8 +497,16 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn tool_choice="auto", tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], top_logprobs=0, @@ -575,8 +607,16 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn tool_choice="auto", tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], top_logprobs=0, @@ -756,8 +796,16 @@ async def test_method_compact_with_all_params(self, async_client: AsyncOgxClient }, tools=[ { - "search_context_size": 'S?oC"high', + "filters": {"allowed_domains": ["string"]}, + "search_context_size": "low", "type": "web_search", + "user_location": { + "city": "city", + "country": "country", + "region": "region", + "timezone": "timezone", + "type": "approximate", + }, } ], ) From 55f1d013e915050c8a86af2ad2e42530094a33ac Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 27 May 2026 17:33:12 +0000 Subject: [PATCH 11/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index be3a7f3e..da884e1a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-e66b68ebb645eccc2ea31bdd14f81362b68775b39cb33fdebcb51db1e54cb48f.yml -openapi_spec_hash: 3c2474f158ac6153a43ce00cf73a3f87 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-bc073a7376205d14e3d7df93afaf53a28645f37f002ab4cce6825f90addf3c46.yml +openapi_spec_hash: eb6aeceb4efffb18e92d2337c9891958 config_hash: 3d294831d7b8066ba59a8934b980a943 From bfe78e2adf774417f5f2a432612be3ffabe2c09a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:46:44 +0000 Subject: [PATCH 12/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index da884e1a..262002ae 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-bc073a7376205d14e3d7df93afaf53a28645f37f002ab4cce6825f90addf3c46.yml -openapi_spec_hash: eb6aeceb4efffb18e92d2337c9891958 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-9efa42764597a51fe41e4de7533252cd7a62b5d34cf74021dd818d5344b90de7.yml +openapi_spec_hash: e964910532c33975390739a9d635fd2b config_hash: 3d294831d7b8066ba59a8934b980a943 From a1b779edaf2456ab82e31af6d79a63325900af27 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 18:23:23 +0000 Subject: [PATCH 13/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 262002ae..35aa786e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-9efa42764597a51fe41e4de7533252cd7a62b5d34cf74021dd818d5344b90de7.yml -openapi_spec_hash: e964910532c33975390739a9d635fd2b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-60cf9dd608a43510762cd6592a59d9ecf1e8b0ee200fc63991bc7d3ee52fbeea.yml +openapi_spec_hash: f176d608964d8a493c05b253b8fc0ff1 config_hash: 3d294831d7b8066ba59a8934b980a943 From e470f354f25f09fc3400a9b66657f3f077dce95b Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 15:37:26 +0000 Subject: [PATCH 14/18] feat(responses): add WebSocket transport and fix OpenResponses conformance gaps --- .stats.yml | 4 +-- .../resources/responses/responses.py | 28 +++++++++++++++++++ .../types/response_create_params.py | 6 ++++ .../types/response_list_response.py | 2 ++ src/ogx_client/types/response_object.py | 2 ++ tests/api_resources/test_responses.py | 4 +++ 6 files changed, 44 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 35aa786e..30ee6741 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-60cf9dd608a43510762cd6592a59d9ecf1e8b0ee200fc63991bc7d3ee52fbeea.yml -openapi_spec_hash: f176d608964d8a493c05b253b8fc0ff1 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-230d8c65160d282b9ebaf3abf9f0006dd544eaebc3720adf4efc71ed76fb1652.yml +openapi_spec_hash: ca64745555f03ddee37122ebed117fd5 config_hash: 3d294831d7b8066ba59a8934b980a943 diff --git a/src/ogx_client/resources/responses/responses.py b/src/ogx_client/resources/responses/responses.py index 7fcc44ad..77b19848 100644 --- a/src/ogx_client/resources/responses/responses.py +++ b/src/ogx_client/resources/responses/responses.py @@ -107,6 +107,7 @@ def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream: Literal[False] | Omit = omit, @@ -169,6 +170,9 @@ def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -243,6 +247,7 @@ def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream_options: Optional[response_create_params.StreamOptions] | Omit = omit, @@ -306,6 +311,9 @@ def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -378,6 +386,7 @@ def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream_options: Optional[response_create_params.StreamOptions] | Omit = omit, @@ -441,6 +450,9 @@ def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -512,6 +524,7 @@ def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream: Literal[False] | Literal[True] | Omit = omit, @@ -552,6 +565,7 @@ def create( "prompt": prompt, "prompt_cache_key": prompt_cache_key, "reasoning": reasoning, + "safety_identifier": safety_identifier, "service_tier": service_tier, "store": store, "stream": stream, @@ -854,6 +868,7 @@ async def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream: Literal[False] | Omit = omit, @@ -916,6 +931,9 @@ async def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -990,6 +1008,7 @@ async def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream_options: Optional[response_create_params.StreamOptions] | Omit = omit, @@ -1053,6 +1072,9 @@ async def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -1125,6 +1147,7 @@ async def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream_options: Optional[response_create_params.StreamOptions] | Omit = omit, @@ -1188,6 +1211,9 @@ async def create( Controls how much reasoning the model performs before generating a response. + safety_identifier: A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + service_tier: The service tier for the request. store: Whether to store the response in the database. @@ -1259,6 +1285,7 @@ async def create( prompt: Optional[response_create_params.Prompt] | Omit = omit, prompt_cache_key: Optional[str] | Omit = omit, reasoning: Optional[response_create_params.Reasoning] | Omit = omit, + safety_identifier: Optional[str] | Omit = omit, service_tier: Optional[Literal["auto", "default", "flex", "priority"]] | Omit = omit, store: bool | Omit = omit, stream: Literal[False] | Literal[True] | Omit = omit, @@ -1299,6 +1326,7 @@ async def create( "prompt": prompt, "prompt_cache_key": prompt_cache_key, "reasoning": reasoning, + "safety_identifier": safety_identifier, "service_tier": service_tier, "store": store, "stream": stream, diff --git a/src/ogx_client/types/response_create_params.py b/src/ogx_client/types/response_create_params.py index 9fd12597..d22e1e91 100644 --- a/src/ogx_client/types/response_create_params.py +++ b/src/ogx_client/types/response_create_params.py @@ -159,6 +159,12 @@ class ResponseCreateParamsBase(TypedDict, total=False): Controls how much reasoning the model performs before generating a response. """ + safety_identifier: Optional[str] + """ + A stable identifier used to associate the request with an end user, for safety + monitoring. Echoed back on the response. + """ + service_tier: Optional[Literal["auto", "default", "flex", "priority"]] """The service tier for the request.""" diff --git a/src/ogx_client/types/response_list_response.py b/src/ogx_client/types/response_list_response.py index c3a92d77..e2d90053 100644 --- a/src/ogx_client/types/response_list_response.py +++ b/src/ogx_client/types/response_list_response.py @@ -1500,6 +1500,8 @@ class ResponseListResponse(BaseModel): Controls how much reasoning the model performs before generating a response. """ + safety_identifier: Optional[str] = None + service_tier: Optional[str] = None temperature: Optional[float] = None diff --git a/src/ogx_client/types/response_object.py b/src/ogx_client/types/response_object.py index 08c21b21..39bf5b95 100644 --- a/src/ogx_client/types/response_object.py +++ b/src/ogx_client/types/response_object.py @@ -929,6 +929,8 @@ def output_text(self) -> str: Controls how much reasoning the model performs before generating a response. """ + safety_identifier: Optional[str] = None + service_tier: Optional[str] = None temperature: Optional[float] = None diff --git a/tests/api_resources/test_responses.py b/tests/api_resources/test_responses.py index 69cae91a..3db18bac 100644 --- a/tests/api_resources/test_responses.py +++ b/tests/api_resources/test_responses.py @@ -70,6 +70,7 @@ def test_method_create_with_all_params_overload_1(self, client: OgxClient) -> No "generate_summary": "auto", "summary": "auto", }, + safety_identifier="safety_identifier", service_tier="auto", store=True, stream=False, @@ -181,6 +182,7 @@ def test_method_create_with_all_params_overload_2(self, client: OgxClient) -> No "generate_summary": "auto", "summary": "auto", }, + safety_identifier="safety_identifier", service_tier="auto", store=True, stream_options={"include_obfuscation": True}, @@ -479,6 +481,7 @@ async def test_method_create_with_all_params_overload_1(self, async_client: Asyn "generate_summary": "auto", "summary": "auto", }, + safety_identifier="safety_identifier", service_tier="auto", store=True, stream=False, @@ -590,6 +593,7 @@ async def test_method_create_with_all_params_overload_2(self, async_client: Asyn "generate_summary": "auto", "summary": "auto", }, + safety_identifier="safety_identifier", service_tier="auto", store=True, stream_options={"include_obfuscation": True}, From 50da333e8b11e5e77ddce3de0a0afa236b63bdf3 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 12:58:56 +0000 Subject: [PATCH 15/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 30ee6741..dc8a65b7 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-230d8c65160d282b9ebaf3abf9f0006dd544eaebc3720adf4efc71ed76fb1652.yml -openapi_spec_hash: ca64745555f03ddee37122ebed117fd5 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-8064e5e396445480320f611bfb094815e7f9b73cde988509426df593d3ade8c9.yml +openapi_spec_hash: 6f8a61e7344e3240e94d3bc802df95bf config_hash: 3d294831d7b8066ba59a8934b980a943 From 28931c4593e69479179de766e9419bd092e603af Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2026 13:00:18 +0000 Subject: [PATCH 16/18] fix(api): eliminate schema mismatches in Responses compact endpoint --- .stats.yml | 4 ++-- src/ogx_client/resources/responses/responses.py | 8 ++++---- src/ogx_client/types/response_compact_params.py | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.stats.yml b/.stats.yml index dc8a65b7..d26e945c 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-8064e5e396445480320f611bfb094815e7f9b73cde988509426df593d3ade8c9.yml -openapi_spec_hash: 6f8a61e7344e3240e94d3bc802df95bf +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-0d819e0dafc747501a61549c9f45d9c2be96bfa26c9cf2f6e1ea49c0007a55c3.yml +openapi_spec_hash: 26e4c8f8c032ec7199cea45aabfb1831 config_hash: 3d294831d7b8066ba59a8934b980a943 diff --git a/src/ogx_client/resources/responses/responses.py b/src/ogx_client/resources/responses/responses.py index 77b19848..93e07a93 100644 --- a/src/ogx_client/resources/responses/responses.py +++ b/src/ogx_client/resources/responses/responses.py @@ -718,7 +718,7 @@ def delete( def compact( self, *, - model: str, + model: Optional[str], input: Union[ str, Iterable[ @@ -746,7 +746,7 @@ def compact( preserving context. This endpoint is in alpha and may change without notice. Args: - model: The model to use for generating the compacted summary. + model: Model identifier. input: Input message(s) to compact. @@ -1479,7 +1479,7 @@ async def delete( async def compact( self, *, - model: str, + model: Optional[str], input: Union[ str, Iterable[ @@ -1507,7 +1507,7 @@ async def compact( preserving context. This endpoint is in alpha and may change without notice. Args: - model: The model to use for generating the compacted summary. + model: Model identifier. input: Input message(s) to compact. diff --git a/src/ogx_client/types/response_compact_params.py b/src/ogx_client/types/response_compact_params.py index 83455ea1..24a5660b 100644 --- a/src/ogx_client/types/response_compact_params.py +++ b/src/ogx_client/types/response_compact_params.py @@ -67,8 +67,8 @@ class ResponseCompactParams(TypedDict, total=False): - model: Required[str] - """The model to use for generating the compacted summary.""" + model: Required[Optional[str]] + """Model identifier.""" input: Union[str, Iterable[InputListOpenAIResponseMessageUnionOpenAIResponseInputFunctionToolCallOutput], None] """Input message(s) to compact.""" From fddf579da04772c481d1272bee8ece24b92c4205 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 03:20:23 +0000 Subject: [PATCH 17/18] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index d26e945c..39047737 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 67 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-0d819e0dafc747501a61549c9f45d9c2be96bfa26c9cf2f6e1ea49c0007a55c3.yml -openapi_spec_hash: 26e4c8f8c032ec7199cea45aabfb1831 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/llamastack/llama-stack-client-7f49892b4f9f8b421343f703c14da6fd5a93bba1baada52c1fe72da0e79fcf8e.yml +openapi_spec_hash: 9c2a6e9e73f135654d42469299b01daa config_hash: 3d294831d7b8066ba59a8934b980a943 From 027b6efc7b9baf998da4b36cfa3d74d743cda9a5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 12:32:54 +0000 Subject: [PATCH 18/18] release: 1.1.0-alpha.3 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 20 ++++++++++++++++++++ pyproject.toml | 2 +- src/ogx_client/_version.py | 2 +- 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index eddc42f5..2ce84129 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.8.0-alpha.2" + ".": "1.1.0-alpha.3" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 438ee8ae..60e2ed0d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ # Changelog +## 1.1.0-alpha.3 (2026-06-11) + +Full Changelog: [v0.8.0-alpha.2...v1.1.0-alpha.3](https://github.com/ogx-ai/ogx-client-python/compare/v0.8.0-alpha.2...v1.1.0-alpha.3) + +### ⚠ BREAKING CHANGES + +* **api:** add post-generation schema transforms for Responses API conformance + +### Features + +* **responses:** add WebSocket transport and fix OpenResponses conformance gaps ([e470f35](https://github.com/ogx-ai/ogx-client-python/commit/e470f354f25f09fc3400a9b66657f3f077dce95b)) + + +### Bug Fixes + +* **api:** add post-generation schema transforms for Responses API conformance ([96d1529](https://github.com/ogx-ai/ogx-client-python/commit/96d1529b8003b26fd016974140f6eb9618037cc8)) +* **api:** eliminate schema mismatches in Responses compact endpoint ([28931c4](https://github.com/ogx-ai/ogx-client-python/commit/28931c4593e69479179de766e9419bd092e603af)) +* **api:** fix field-level schema mismatches in Responses models ([aa50fe9](https://github.com/ogx-ai/ogx-client-python/commit/aa50fe9861d4642231fc4ea2d3925220b7bc25ac)) +* **brave-search:** align result slicing with search_context_size count ([40f7162](https://github.com/ogx-ai/ogx-client-python/commit/40f71628597b92ed14c6ae3445e09ffb2927da53)) + ## 0.8.0-alpha.2 (2026-05-12) Full Changelog: [v0.8.0-alpha.1...v0.8.0-alpha.2](https://github.com/ogx-ai/ogx-client-python/compare/v0.8.0-alpha.1...v0.8.0-alpha.2) diff --git a/pyproject.toml b/pyproject.toml index f43aa290..07518822 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "ogx_client" -version = "0.8.0-alpha.2" +version = "1.1.0-alpha.3" description = "The official Python library for the ogx-client API" dynamic = ["readme"] license = "MIT" diff --git a/src/ogx_client/_version.py b/src/ogx_client/_version.py index df143fc8..d799d22c 100644 --- a/src/ogx_client/_version.py +++ b/src/ogx_client/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "ogx_client" -__version__ = "0.8.0-alpha.2" # x-release-please-version +__version__ = "1.1.0-alpha.3" # x-release-please-version