Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.25.0"
".": "0.25.1"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -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-937fcfac8cbab692796cd9822b37e48a311e2220a8b103106ded0ee92a0b9484.yml
openapi_spec_hash: 74a0c58b5b8c4e06792d79b685e02a01
config_hash: 666d6bb4b564f0d9d431124b5d1a0665
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

## 0.25.1 (2025-09-22)

Full Changelog: [v0.25.0...v0.25.1](https://github.com/openai/openai-ruby/compare/v0.25.0...v0.25.1)

### Bug Fixes

* **api:** fix mcp tool name ([25ec2ac](https://github.com/openai/openai-ruby/commit/25ec2aca164414f66a7d023c196ee6b1781c7146))


### Chores

* **api:** openapi updates for conversations ([ce76a59](https://github.com/openai/openai-ruby/commit/ce76a591d8c596d9eaeaa14077cec3146ffb1d0c))
* do not install brew dependencies in ./scripts/bootstrap by default ([3afa532](https://github.com/openai/openai-ruby/commit/3afa53231a90968bec2d361363334800463b436d))
* improve example values ([ad9a444](https://github.com/openai/openai-ruby/commit/ad9a4444e8a9af36f31368f19a095c1d4f4200ad))

## 0.25.0 (2025-09-19)

Full Changelog: [v0.24.0...v0.25.0](https://github.com/openai/openai-ruby/compare/v0.24.0...v0.25.0)
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ GIT
PATH
remote: .
specs:
openai (0.25.0)
openai (0.25.1)
connection_pool

GEM
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ To use this gem, install via Bundler by adding the following to your application
<!-- x-release-please-start-version -->

```ruby
gem "openai", "~> 0.25.0"
gem "openai", "~> 0.25.1"
```

<!-- x-release-please-end -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class ConversationCreateParams < OpenAI::Internal::Type::BaseModel
# Some parameter documentations has been truncated, see
# {OpenAI::Models::Conversations::ConversationCreateParams} for more details.
#
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context.
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context. You may add up to 20 items
#
# @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
#
Expand Down
13 changes: 7 additions & 6 deletions lib/openai/models/conversations/conversation_update_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,19 @@ class ConversationUpdateParams < OpenAI::Internal::Type::BaseModel
# @!attribute 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.
#
# @return [Hash{Symbol=>String}]
required :metadata, OpenAI::Internal::Type::HashOf[String]
# Keys are strings with a maximum length of 64 characters. Values are strings with
# a maximum length of 512 characters.
#
# @return [Hash{Symbol=>String}, nil]
required :metadata, OpenAI::Internal::Type::HashOf[String], nil?: true

# @!method initialize(metadata:, request_options: {})
# Some parameter documentations has been truncated, see
# {OpenAI::Models::Conversations::ConversationUpdateParams} for more details.
#
# @param metadata [Hash{Symbol=>String}] Set of 16 key-value pairs that can be attached to an object. This can be
# @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
#
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}]
end
Expand Down
2 changes: 1 addition & 1 deletion lib/openai/models/realtime/conversation_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module ConversationItem
variant :mcp_list_tools, -> { OpenAI::Realtime::RealtimeMcpListTools }

# A Realtime item representing an invocation of a tool on an MCP server.
variant :mcp_tool_call, -> { OpenAI::Realtime::RealtimeMcpToolCall }
variant :mcp_call, -> { OpenAI::Realtime::RealtimeMcpToolCall }

# A Realtime item requesting human approval of a tool invocation.
variant :mcp_approval_request, -> { OpenAI::Realtime::RealtimeMcpApprovalRequest }
Expand Down
10 changes: 5 additions & 5 deletions lib/openai/models/realtime/realtime_mcp_tool_call.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
required :server_label, String

# @!attribute type
# The type of the item. Always `mcp_tool_call`.
# The type of the item. Always `mcp_call`.
#
# @return [Symbol, :mcp_tool_call]
required :type, const: :mcp_tool_call
# @return [Symbol, :mcp_call]
required :type, const: :mcp_call

# @!attribute approval_request_id
# The ID of an associated approval request, if any.
Expand All @@ -52,7 +52,7 @@ class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
# @return [String, nil]
optional :output, String, nil?: true

# @!method initialize(id:, arguments:, name:, server_label:, approval_request_id: nil, error: nil, output: nil, type: :mcp_tool_call)
# @!method initialize(id:, arguments:, name:, server_label:, approval_request_id: nil, error: nil, output: nil, type: :mcp_call)
# A Realtime item representing an invocation of a tool on an MCP server.
#
# @param id [String] The unique ID of the tool call.
Expand All @@ -69,7 +69,7 @@ class RealtimeMcpToolCall < OpenAI::Internal::Type::BaseModel
#
# @param output [String, nil] The output from the tool call.
#
# @param type [Symbol, :mcp_tool_call] The type of the item. Always `mcp_tool_call`.
# @param type [Symbol, :mcp_call] The type of the item. Always `mcp_call`.

# The error from the tool call, if any.
#
Expand Down
10 changes: 5 additions & 5 deletions lib/openai/resources/conversations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class Conversations
#
# @overload create(items: nil, metadata: nil, request_options: {})
#
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context.
# @param items [Array<OpenAI::Models::Responses::EasyInputMessage, OpenAI::Models::Responses::ResponseInputItem::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseInputItem::FunctionCallOutput, OpenAI::Models::Responses::ResponseReasoningItem, OpenAI::Models::Responses::ResponseInputItem::ImageGenerationCall, OpenAI::Models::Responses::ResponseCodeInterpreterToolCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCall, OpenAI::Models::Responses::ResponseInputItem::LocalShellCallOutput, OpenAI::Models::Responses::ResponseInputItem::McpListTools, OpenAI::Models::Responses::ResponseInputItem::McpApprovalRequest, OpenAI::Models::Responses::ResponseInputItem::McpApprovalResponse, OpenAI::Models::Responses::ResponseInputItem::McpCall, OpenAI::Models::Responses::ResponseCustomToolCallOutput, OpenAI::Models::Responses::ResponseCustomToolCall, OpenAI::Models::Responses::ResponseInputItem::ItemReference>, nil] Initial items to include in the conversation context. You may add up to 20 items
#
# @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
#
Expand All @@ -33,7 +33,7 @@ def create(params = {})
)
end

# Get a conversation with the given ID.
# Get a conversation
#
# @overload retrieve(conversation_id, request_options: {})
#
Expand All @@ -56,13 +56,13 @@ def retrieve(conversation_id, params = {})
# Some parameter documentations has been truncated, see
# {OpenAI::Models::Conversations::ConversationUpdateParams} for more details.
#
# Update a conversation's metadata with the given ID.
# Update a conversation
#
# @overload update(conversation_id, metadata:, request_options: {})
#
# @param conversation_id [String] The ID of the conversation to update.
#
# @param metadata [Hash{Symbol=>String}] Set of 16 key-value pairs that can be attached to an object. This can be
# @param metadata [Hash{Symbol=>String}, nil] Set of 16 key-value pairs that can be attached to an object. This can be
#
# @param request_options [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil]
#
Expand All @@ -80,7 +80,7 @@ def update(conversation_id, params)
)
end

# Delete a conversation with the given ID.
# Delete a conversation. Items in the conversation will not be deleted.
#
# @overload delete(conversation_id, request_options: {})
#
Expand Down
2 changes: 1 addition & 1 deletion lib/openai/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module OpenAI
VERSION = "0.25.0"
VERSION = "0.25.1"
end
20 changes: 11 additions & 9 deletions rbi/openai/models/conversations/conversation_update_params.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,26 @@ module OpenAI

# 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.
sig { returns(T::Hash[Symbol, String]) }
# 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.
sig { returns(T.nilable(T::Hash[Symbol, String])) }
attr_accessor :metadata

sig do
params(
metadata: T::Hash[Symbol, String],
metadata: T.nilable(T::Hash[Symbol, String]),
request_options: OpenAI::RequestOptions::OrHash
).returns(T.attached_class)
end
def self.new(
# 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.
metadata:,
request_options: {}
)
Expand All @@ -43,7 +45,7 @@ module OpenAI
sig do
override.returns(
{
metadata: T::Hash[Symbol, String],
metadata: T.nilable(T::Hash[Symbol, String]),
request_options: OpenAI::RequestOptions
}
)
Expand Down
6 changes: 3 additions & 3 deletions rbi/openai/models/realtime/realtime_mcp_tool_call.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ module OpenAI
sig { returns(String) }
attr_accessor :server_label

# The type of the item. Always `mcp_tool_call`.
# The type of the item. Always `mcp_call`.
sig { returns(Symbol) }
attr_accessor :type

Expand Down Expand Up @@ -89,8 +89,8 @@ module OpenAI
error: nil,
# The output from the tool call.
output: nil,
# The type of the item. Always `mcp_tool_call`.
type: :mcp_tool_call
# The type of the item. Always `mcp_call`.
type: :mcp_call
)
end

Expand Down
15 changes: 8 additions & 7 deletions rbi/openai/resources/conversations.rbi
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ module OpenAI
)
end

# Get a conversation with the given ID.
# Get a conversation
sig do
params(
conversation_id: String,
Expand All @@ -70,11 +70,11 @@ module OpenAI
)
end

# Update a conversation's metadata with the given ID.
# Update a conversation
sig do
params(
conversation_id: String,
metadata: T::Hash[Symbol, String],
metadata: T.nilable(T::Hash[Symbol, String]),
request_options: OpenAI::RequestOptions::OrHash
).returns(OpenAI::Conversations::Conversation)
end
Expand All @@ -83,15 +83,16 @@ module OpenAI
conversation_id,
# 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.
metadata:,
request_options: {}
)
end

# Delete a conversation with the given ID.
# Delete a conversation. Items in the conversation will not be deleted.
sig do
params(
conversation_id: String,
Expand Down
14 changes: 11 additions & 3 deletions scripts/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,18 @@ set -e

cd -- "$(dirname -- "$0")/.."

if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ] && [ "$SKIP_BREW" != "1" ]; 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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ module OpenAI
module Models
module Conversations
type conversation_update_params =
{ metadata: ::Hash[Symbol, String] }
{ metadata: OpenAI::Models::metadata? }
& OpenAI::Internal::Type::request_parameters

class ConversationUpdateParams < OpenAI::Internal::Type::BaseModel
extend OpenAI::Internal::Type::RequestParameters::Converter
include OpenAI::Internal::Type::RequestParameters

attr_accessor metadata: ::Hash[Symbol, String]
attr_accessor metadata: OpenAI::Models::metadata?

def initialize: (
metadata: ::Hash[Symbol, String],
metadata: OpenAI::Models::metadata?,
?request_options: OpenAI::request_opts
) -> void

def to_hash: -> {
metadata: ::Hash[Symbol, String],
metadata: OpenAI::Models::metadata?,
request_options: OpenAI::RequestOptions
}
end
Expand Down
8 changes: 4 additions & 4 deletions sig/openai/models/realtime/realtime_mcp_tool_call.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module OpenAI
arguments: String,
name: String,
server_label: String,
type: :mcp_tool_call,
type: :mcp_call,
approval_request_id: String?,
error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
output: String?
Expand All @@ -22,7 +22,7 @@ module OpenAI

attr_accessor server_label: String

attr_accessor type: :mcp_tool_call
attr_accessor type: :mcp_call

attr_accessor approval_request_id: String?

Expand All @@ -38,15 +38,15 @@ module OpenAI
?approval_request_id: String?,
?error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
?output: String?,
?type: :mcp_tool_call
?type: :mcp_call
) -> void

def to_hash: -> {
id: String,
arguments: String,
name: String,
server_label: String,
type: :mcp_tool_call,
type: :mcp_call,
approval_request_id: String?,
error: OpenAI::Models::Realtime::RealtimeMcpToolCall::error?,
output: String?
Expand Down
2 changes: 1 addition & 1 deletion sig/openai/resources/conversations.rbs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ module OpenAI

def update: (
String conversation_id,
metadata: ::Hash[Symbol, String],
metadata: OpenAI::Models::metadata?,
?request_options: OpenAI::request_opts
) -> OpenAI::Conversations::Conversation

Expand Down
Loading