From 6764b00bcb8aeab41e73d2fcaf6c7a18ea9f7909 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 19 Sep 2025 17:41:05 +0000 Subject: [PATCH 1/5] chore: do not install brew dependencies in ./scripts/bootstrap by default --- scripts/bootstrap | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/bootstrap b/scripts/bootstrap index 9910ec05fc..953993addb 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -4,10 +4,18 @@ set -e cd "$(dirname "$0")/.." -if ! command -v rye >/dev/null 2>&1 && [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then +if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ] && [ -t 0 ]; then brew bundle check >/dev/null 2>&1 || { - echo "==> Installing Homebrew dependencies…" - brew bundle + echo -n "==> Install Homebrew dependencies? (y/N): " + read -r response + case "$response" in + [yY][eE][sS]|[yY]) + brew bundle + ;; + *) + ;; + esac + echo } fi From fd1c673fa8d5581b38c69c37aa4fd1fd251259a2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 21 Sep 2025 05:33:13 +0000 Subject: [PATCH 2/5] fix(api): fix mcp tool name --- .stats.yml | 4 ++-- src/openai/types/realtime/realtime_mcp_tool_call.py | 4 ++-- src/openai/types/realtime/realtime_mcp_tool_call_param.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.stats.yml b/.stats.yml index c961e232cf..66c059ae58 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 118 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-ea23db36b0899cc715f56d0098956069b2d92880f448adff3a4ac1bb53cb2cec.yml -openapi_spec_hash: 36f76ea31297c9593bcfae453f6255cc +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-65d42621b731238ad4e59a35a705fc0608b17f53a14d047e66ce480c793da26b.yml +openapi_spec_hash: d7ca86b2507600cbd5ed197cf31263c2 config_hash: 666d6bb4b564f0d9d431124b5d1a0665 diff --git a/src/openai/types/realtime/realtime_mcp_tool_call.py b/src/openai/types/realtime/realtime_mcp_tool_call.py index 533175e55b..019aee25c0 100644 --- a/src/openai/types/realtime/realtime_mcp_tool_call.py +++ b/src/openai/types/realtime/realtime_mcp_tool_call.py @@ -30,8 +30,8 @@ class RealtimeMcpToolCall(BaseModel): server_label: str """The label of the MCP server running the tool.""" - type: Literal["mcp_tool_call"] - """The type of the item. Always `mcp_tool_call`.""" + type: Literal["mcp_call"] + """The type of the item. Always `mcp_call`.""" approval_request_id: Optional[str] = None """The ID of an associated approval request, if any.""" diff --git a/src/openai/types/realtime/realtime_mcp_tool_call_param.py b/src/openai/types/realtime/realtime_mcp_tool_call_param.py index afdc9d1d17..0ba16d3dc1 100644 --- a/src/openai/types/realtime/realtime_mcp_tool_call_param.py +++ b/src/openai/types/realtime/realtime_mcp_tool_call_param.py @@ -27,8 +27,8 @@ class RealtimeMcpToolCallParam(TypedDict, total=False): server_label: Required[str] """The label of the MCP server running the tool.""" - type: Required[Literal["mcp_tool_call"]] - """The type of the item. Always `mcp_tool_call`.""" + type: Required[Literal["mcp_call"]] + """The type of the item. Always `mcp_call`.""" approval_request_id: Optional[str] """The ID of an associated approval request, if any.""" From 20b58e164f9f28b9fc562968263fa3eacc6f5c7c Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 19:25:50 +0000 Subject: [PATCH 3/5] chore: improve example values --- tests/api_resources/conversations/test_items.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/api_resources/conversations/test_items.py b/tests/api_resources/conversations/test_items.py index c308160543..0df88dc199 100644 --- a/tests/api_resources/conversations/test_items.py +++ b/tests/api_resources/conversations/test_items.py @@ -30,6 +30,7 @@ def test_method_create(self, client: OpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) @@ -58,6 +59,7 @@ def test_raw_response_create(self, client: OpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) @@ -75,6 +77,7 @@ def test_streaming_response_create(self, client: OpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) as response: @@ -95,6 +98,7 @@ def test_path_params_create(self, client: OpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) @@ -267,6 +271,7 @@ async def test_method_create(self, async_client: AsyncOpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) @@ -295,6 +300,7 @@ async def test_raw_response_create(self, async_client: AsyncOpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) @@ -312,6 +318,7 @@ async def test_streaming_response_create(self, async_client: AsyncOpenAI) -> Non { "content": "string", "role": "user", + "type": "message", } ], ) as response: @@ -332,6 +339,7 @@ async def test_path_params_create(self, async_client: AsyncOpenAI) -> None: { "content": "string", "role": "user", + "type": "message", } ], ) From 3224f6f9b4221b954a8f63de66bcaab389164ee5 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 23:20:40 +0000 Subject: [PATCH 4/5] chore(api): openapi updates for conversations --- .stats.yml | 4 +- .../resources/conversations/conversations.py | 38 ++++++++++--------- .../conversation_create_params.py | 6 +-- .../conversation_update_params.py | 13 ++++--- 4 files changed, 34 insertions(+), 27 deletions(-) diff --git a/.stats.yml b/.stats.yml index 66c059ae58..062111e2c4 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 118 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-65d42621b731238ad4e59a35a705fc0608b17f53a14d047e66ce480c793da26b.yml -openapi_spec_hash: d7ca86b2507600cbd5ed197cf31263c2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-937fcfac8cbab692796cd9822b37e48a311e2220a8b103106ded0ee92a0b9484.yml +openapi_spec_hash: 74a0c58b5b8c4e06792d79b685e02a01 config_hash: 666d6bb4b564f0d9d431124b5d1a0665 diff --git a/src/openai/resources/conversations/conversations.py b/src/openai/resources/conversations/conversations.py index 4b942eb014..da037a4e22 100644 --- a/src/openai/resources/conversations/conversations.py +++ b/src/openai/resources/conversations/conversations.py @@ -2,7 +2,7 @@ from __future__ import annotations -from typing import Dict, Iterable, Optional +from typing import Iterable, Optional import httpx @@ -115,7 +115,7 @@ def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Conversation: """ - Get a conversation with the given ID. + Get a conversation Args: extra_headers: Send extra headers @@ -140,7 +140,7 @@ def update( self, conversation_id: str, *, - metadata: Dict[str, str], + metadata: Optional[Metadata], # 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, @@ -149,14 +149,15 @@ def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Conversation: """ - Update a conversation's metadata with the given ID. + Update a conversation Args: metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and - querying for objects via API or the dashboard. Keys are strings with a maximum - length of 64 characters. Values are strings with a maximum length of 512 - characters. + querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings with + a maximum length of 512 characters. extra_headers: Send extra headers @@ -188,8 +189,9 @@ def delete( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ConversationDeletedResource: - """ - Delete a conversation with the given ID. + """Delete a conversation. + + Items in the conversation will not be deleted. Args: extra_headers: Send extra headers @@ -296,7 +298,7 @@ async def retrieve( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Conversation: """ - Get a conversation with the given ID. + Get a conversation Args: extra_headers: Send extra headers @@ -321,7 +323,7 @@ async def update( self, conversation_id: str, *, - metadata: Dict[str, str], + metadata: Optional[Metadata], # 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, @@ -330,14 +332,15 @@ async def update( timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> Conversation: """ - Update a conversation's metadata with the given ID. + Update a conversation Args: metadata: Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and - querying for objects via API or the dashboard. Keys are strings with a maximum - length of 64 characters. Values are strings with a maximum length of 512 - characters. + querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings with + a maximum length of 512 characters. extra_headers: Send extra headers @@ -371,8 +374,9 @@ async def delete( extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = not_given, ) -> ConversationDeletedResource: - """ - Delete a conversation with the given ID. + """Delete a conversation. + + Items in the conversation will not be deleted. Args: extra_headers: Send extra headers diff --git a/src/openai/types/conversations/conversation_create_params.py b/src/openai/types/conversations/conversation_create_params.py index 0d84f503bd..5f38d2aca7 100644 --- a/src/openai/types/conversations/conversation_create_params.py +++ b/src/openai/types/conversations/conversation_create_params.py @@ -13,9 +13,9 @@ class ConversationCreateParams(TypedDict, total=False): items: Optional[Iterable[ResponseInputItemParam]] - """ - Initial items to include in the conversation context. You may add up to 20 items - at a time. + """Initial items to include in the conversation context. + + You may add up to 20 items at a time. """ metadata: Optional[Metadata] diff --git a/src/openai/types/conversations/conversation_update_params.py b/src/openai/types/conversations/conversation_update_params.py index f2aa42d833..1f0dd09e50 100644 --- a/src/openai/types/conversations/conversation_update_params.py +++ b/src/openai/types/conversations/conversation_update_params.py @@ -2,18 +2,21 @@ from __future__ import annotations -from typing import Dict +from typing import Optional from typing_extensions import Required, TypedDict +from ..shared_params.metadata import Metadata + __all__ = ["ConversationUpdateParams"] class ConversationUpdateParams(TypedDict, total=False): - metadata: Required[Dict[str, str]] + metadata: Required[Optional[Metadata]] """Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a - structured format, and querying for objects via API or the dashboard. Keys are - strings with a maximum length of 64 characters. Values are strings with a - maximum length of 512 characters. + structured format, and querying for objects via API or the dashboard. + + Keys are strings with a maximum length of 64 characters. Values are strings with + a maximum length of 512 characters. """ From bfdea527897705cff6aa34896d04ff07877f1e33 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 22 Sep 2025 23:21:08 +0000 Subject: [PATCH 5/5] release: 1.108.2 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/openai/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 118bf88182..e66e9ab9f4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.108.1" + ".": "1.108.2" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 897ba0d1bc..34d2e24899 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 1.108.2 (2025-09-22) + +Full Changelog: [v1.108.1...v1.108.2](https://github.com/openai/openai-python/compare/v1.108.1...v1.108.2) + +### Bug Fixes + +* **api:** fix mcp tool name ([fd1c673](https://github.com/openai/openai-python/commit/fd1c673fa8d5581b38c69c37aa4fd1fd251259a2)) + + +### Chores + +* **api:** openapi updates for conversations ([3224f6f](https://github.com/openai/openai-python/commit/3224f6f9b4221b954a8f63de66bcaab389164ee5)) +* do not install brew dependencies in ./scripts/bootstrap by default ([6764b00](https://github.com/openai/openai-python/commit/6764b00bcb8aeab41e73d2fcaf6c7a18ea9f7909)) +* improve example values ([20b58e1](https://github.com/openai/openai-python/commit/20b58e164f9f28b9fc562968263fa3eacc6f5c7c)) + ## 1.108.1 (2025-09-19) Full Changelog: [v1.108.0...v1.108.1](https://github.com/openai/openai-python/compare/v1.108.0...v1.108.1) diff --git a/pyproject.toml b/pyproject.toml index 5adf4a2a8c..01d7c4e4a2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openai" -version = "1.108.1" +version = "1.108.2" description = "The official Python library for the openai API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/openai/_version.py b/src/openai/_version.py index 8ba4e8e168..a266f4ecdb 100644 --- a/src/openai/_version.py +++ b/src/openai/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "openai" -__version__ = "1.108.1" # x-release-please-version +__version__ = "1.108.2" # x-release-please-version