From e4c80b95c23e808a11b95bd5b5ff93d5fb086e42 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 18 Mar 2025 20:46:26 +0000 Subject: [PATCH] fix(types): improve responses type names --- .stats.yml | 2 +- lib/openai.rb | 8 +- ...response_computer_tool_call_output_item.rb | 111 +++++ ...se_computer_tool_call_output_screenshot.rb | 47 ++ .../response_function_tool_call_item.rb | 26 + ...response_function_tool_call_output_item.rb | 67 +++ .../models/responses/response_input_item.rb | 46 +- .../responses/response_input_message_item.rb | 92 ++++ lib/openai/models/responses/response_item.rb | 45 ++ .../models/responses/response_item_list.rb | 337 +------------ lib/openai/resources/responses/input_items.rb | 4 +- ...esponse_computer_tool_call_output_item.rbi | 159 +++++++ ...e_computer_tool_call_output_screenshot.rbi | 46 ++ .../response_function_tool_call_item.rbi | 29 ++ ...esponse_function_tool_call_output_item.rbi | 83 ++++ .../models/responses/response_input_item.rbi | 49 +- .../responses/response_input_message_item.rbi | 119 +++++ .../openai/models/responses/response_item.rbi | 27 ++ .../models/responses/response_item_list.rbi | 443 +----------------- .../resources/responses/input_items.rbi | 8 +- ...esponse_computer_tool_call_output_item.rbs | 83 ++++ ...e_computer_tool_call_output_screenshot.rbs | 33 ++ .../response_function_tool_call_item.rbs | 20 + ...esponse_function_tool_call_output_item.rbs | 55 +++ .../models/responses/response_input_item.rbs | 34 +- .../responses/response_input_message_item.rbs | 77 +++ sig/openai/models/responses/response_item.rbs | 19 + .../models/responses/response_item_list.rbs | 248 +--------- .../resources/responses/input_items.rbs | 4 +- .../resources/responses/input_items_test.rb | 30 +- 30 files changed, 1202 insertions(+), 1149 deletions(-) create mode 100644 lib/openai/models/responses/response_computer_tool_call_output_item.rb create mode 100644 lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb create mode 100644 lib/openai/models/responses/response_function_tool_call_item.rb create mode 100644 lib/openai/models/responses/response_function_tool_call_output_item.rb create mode 100644 lib/openai/models/responses/response_input_message_item.rb create mode 100644 lib/openai/models/responses/response_item.rb create mode 100644 rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi create mode 100644 rbi/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rbi create mode 100644 rbi/lib/openai/models/responses/response_function_tool_call_item.rbi create mode 100644 rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi create mode 100644 rbi/lib/openai/models/responses/response_input_message_item.rbi create mode 100644 rbi/lib/openai/models/responses/response_item.rbi create mode 100644 sig/openai/models/responses/response_computer_tool_call_output_item.rbs create mode 100644 sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs create mode 100644 sig/openai/models/responses/response_function_tool_call_item.rbs create mode 100644 sig/openai/models/responses/response_function_tool_call_output_item.rbs create mode 100644 sig/openai/models/responses/response_input_message_item.rbs create mode 100644 sig/openai/models/responses/response_item.rbs diff --git a/.stats.yml b/.stats.yml index 00d7f331..2ffca777 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,2 +1,2 @@ configured_endpoints: 80 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-f763c1a35c8b9b02f1e31b9b2e09e21f98bfe8413e5079c86cbb07da2dd7779b.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-f3bce04386c4fcfd5037e0477fbaa39010003fd1558eb5185fe4a71dd6a05fdd.yml diff --git a/lib/openai.rb b/lib/openai.rb index 77ad926a..a722c1a4 100644 --- a/lib/openai.rb +++ b/lib/openai.rb @@ -36,6 +36,7 @@ require_relative "openai/models/reasoning_effort" require_relative "openai/models/chat/chat_completion_message" require_relative "openai/models/fine_tuning/fine_tuning_job_wandb_integration_object" +require_relative "openai/models/responses/response_function_tool_call" require_relative "openai/models/audio/speech_create_params" require_relative "openai/models/audio/speech_model" require_relative "openai/models/audio/transcription" @@ -259,6 +260,8 @@ require_relative "openai/models/responses/response_code_interpreter_tool_call" require_relative "openai/models/responses/response_completed_event" require_relative "openai/models/responses/response_computer_tool_call" +require_relative "openai/models/responses/response_computer_tool_call_output_item" +require_relative "openai/models/responses/response_computer_tool_call_output_screenshot" require_relative "openai/models/responses/response_content" require_relative "openai/models/responses/response_content_part_added_event" require_relative "openai/models/responses/response_content_part_done_event" @@ -276,7 +279,8 @@ require_relative "openai/models/responses/response_format_text_json_schema_config" require_relative "openai/models/responses/response_function_call_arguments_delta_event" require_relative "openai/models/responses/response_function_call_arguments_done_event" -require_relative "openai/models/responses/response_function_tool_call" +require_relative "openai/models/responses/response_function_tool_call_item" +require_relative "openai/models/responses/response_function_tool_call_output_item" require_relative "openai/models/responses/response_function_web_search" require_relative "openai/models/responses/response_includable" require_relative "openai/models/responses/response_incomplete_event" @@ -288,7 +292,9 @@ require_relative "openai/models/responses/response_input_image" require_relative "openai/models/responses/response_input_item" require_relative "openai/models/responses/response_input_message_content_list" +require_relative "openai/models/responses/response_input_message_item" require_relative "openai/models/responses/response_input_text" +require_relative "openai/models/responses/response_item" require_relative "openai/models/responses/response_item_list" require_relative "openai/models/responses/response_output_audio" require_relative "openai/models/responses/response_output_item" diff --git a/lib/openai/models/responses/response_computer_tool_call_output_item.rb b/lib/openai/models/responses/response_computer_tool_call_output_item.rb new file mode 100644 index 00000000..252be325 --- /dev/null +++ b/lib/openai/models/responses/response_computer_tool_call_output_item.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + class ResponseComputerToolCallOutputItem < OpenAI::BaseModel + # @!attribute id + # The unique ID of the computer call tool output. + # + # @return [String] + required :id, String + + # @!attribute call_id + # The ID of the computer tool call that produced the output. + # + # @return [String] + required :call_id, String + + # @!attribute output + # A computer screenshot image used with the computer use tool. + # + # @return [OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot] + required :output, -> { OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot } + + # @!attribute type + # The type of the computer tool call output. Always `computer_call_output`. + # + # @return [Symbol, :computer_call_output] + required :type, const: :computer_call_output + + # @!attribute [r] acknowledged_safety_checks + # The safety checks reported by the API that have been acknowledged by the + # developer. + # + # @return [Array, nil] + optional :acknowledged_safety_checks, + -> { OpenAI::ArrayOf[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck] } + + # @!parse + # # @return [Array] + # attr_writer :acknowledged_safety_checks + + # @!attribute [r] status + # The status of the message input. One of `in_progress`, `completed`, or + # `incomplete`. Populated when input items are returned via API. + # + # @return [Symbol, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status, nil] + optional :status, enum: -> { OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status } + + # @!parse + # # @return [Symbol, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status] + # attr_writer :status + + # @!parse + # # @param id [String] + # # @param call_id [String] + # # @param output [OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot] + # # @param acknowledged_safety_checks [Array] + # # @param status [Symbol, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status] + # # @param type [Symbol, :computer_call_output] + # # + # def initialize(id:, call_id:, output:, acknowledged_safety_checks: nil, status: nil, type: :computer_call_output, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + + class AcknowledgedSafetyCheck < OpenAI::BaseModel + # @!attribute id + # The ID of the pending safety check. + # + # @return [String] + required :id, String + + # @!attribute code + # The type of the pending safety check. + # + # @return [String] + required :code, String + + # @!attribute message + # Details about the pending safety check. + # + # @return [String] + required :message, String + + # @!parse + # # A pending safety check for the computer call. + # # + # # @param id [String] + # # @param code [String] + # # @param message [String] + # # + # def initialize(id:, code:, message:, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + end + + # @abstract + # + # The status of the message input. One of `in_progress`, `completed`, or + # `incomplete`. Populated when input items are returned via API. + class Status < OpenAI::Enum + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + + finalize! + end + end + end + end +end diff --git a/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb b/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb new file mode 100644 index 00000000..4dc426ff --- /dev/null +++ b/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rb @@ -0,0 +1,47 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + class ResponseComputerToolCallOutputScreenshot < OpenAI::BaseModel + # @!attribute type + # Specifies the event type. For a computer screenshot, this property is always set + # to `computer_screenshot`. + # + # @return [Symbol, :computer_screenshot] + required :type, const: :computer_screenshot + + # @!attribute [r] file_id + # The identifier of an uploaded file that contains the screenshot. + # + # @return [String, nil] + optional :file_id, String + + # @!parse + # # @return [String] + # attr_writer :file_id + + # @!attribute [r] image_url + # The URL of the screenshot image. + # + # @return [String, nil] + optional :image_url, String + + # @!parse + # # @return [String] + # attr_writer :image_url + + # @!parse + # # A computer screenshot image used with the computer use tool. + # # + # # @param file_id [String] + # # @param image_url [String] + # # @param type [Symbol, :computer_screenshot] + # # + # def initialize(file_id: nil, image_url: nil, type: :computer_screenshot, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + end + end + end +end diff --git a/lib/openai/models/responses/response_function_tool_call_item.rb b/lib/openai/models/responses/response_function_tool_call_item.rb new file mode 100644 index 00000000..fa7413ea --- /dev/null +++ b/lib/openai/models/responses/response_function_tool_call_item.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall + # @!attribute id + # The unique ID of the function call tool output. + # + # @return [String] + required :id, String + + # @!parse + # # A tool call to run a function. See the + # # [function calling guide](https://platform.openai.com/docs/guides/function-calling) + # # for more information. + # # + # # @param id [String] + # # + # def initialize(id:, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + end + end + end +end diff --git a/lib/openai/models/responses/response_function_tool_call_output_item.rb b/lib/openai/models/responses/response_function_tool_call_output_item.rb new file mode 100644 index 00000000..503dee7b --- /dev/null +++ b/lib/openai/models/responses/response_function_tool_call_output_item.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + class ResponseFunctionToolCallOutputItem < OpenAI::BaseModel + # @!attribute id + # The unique ID of the function call tool output. + # + # @return [String] + required :id, String + + # @!attribute call_id + # The unique ID of the function tool call generated by the model. + # + # @return [String] + required :call_id, String + + # @!attribute output + # A JSON string of the output of the function tool call. + # + # @return [String] + required :output, String + + # @!attribute type + # The type of the function tool call output. Always `function_call_output`. + # + # @return [Symbol, :function_call_output] + required :type, const: :function_call_output + + # @!attribute [r] status + # The status of the item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + # + # @return [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status, nil] + optional :status, enum: -> { OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status } + + # @!parse + # # @return [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status] + # attr_writer :status + + # @!parse + # # @param id [String] + # # @param call_id [String] + # # @param output [String] + # # @param status [Symbol, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status] + # # @param type [Symbol, :function_call_output] + # # + # def initialize(id:, call_id:, output:, status: nil, type: :function_call_output, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + + # @abstract + # + # The status of the item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + class Status < OpenAI::Enum + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + + finalize! + end + end + end + end +end diff --git a/lib/openai/models/responses/response_input_item.rb b/lib/openai/models/responses/response_input_item.rb index cd5d395b..de2477cf 100644 --- a/lib/openai/models/responses/response_input_item.rb +++ b/lib/openai/models/responses/response_input_item.rb @@ -149,8 +149,8 @@ class ComputerCallOutput < OpenAI::BaseModel # @!attribute output # A computer screenshot image used with the computer use tool. # - # @return [OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output] - required :output, -> { OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output } + # @return [OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot] + required :output, -> { OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot } # @!attribute type # The type of the computer tool call output. Always `computer_call_output`. @@ -195,7 +195,7 @@ class ComputerCallOutput < OpenAI::BaseModel # # The output of a computer tool call. # # # # @param call_id [String] - # # @param output [OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output] + # # @param output [OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot] # # @param id [String] # # @param acknowledged_safety_checks [Array] # # @param status [Symbol, OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Status] @@ -205,46 +205,6 @@ class ComputerCallOutput < OpenAI::BaseModel # def initialize: (Hash | OpenAI::BaseModel) -> void - class Output < OpenAI::BaseModel - # @!attribute type - # Specifies the event type. For a computer screenshot, this property is always set - # to `computer_screenshot`. - # - # @return [Symbol, :computer_screenshot] - required :type, const: :computer_screenshot - - # @!attribute [r] file_id - # The identifier of an uploaded file that contains the screenshot. - # - # @return [String, nil] - optional :file_id, String - - # @!parse - # # @return [String] - # attr_writer :file_id - - # @!attribute [r] image_url - # The URL of the screenshot image. - # - # @return [String, nil] - optional :image_url, String - - # @!parse - # # @return [String] - # attr_writer :image_url - - # @!parse - # # A computer screenshot image used with the computer use tool. - # # - # # @param file_id [String] - # # @param image_url [String] - # # @param type [Symbol, :computer_screenshot] - # # - # def initialize(file_id: nil, image_url: nil, type: :computer_screenshot, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - end - class AcknowledgedSafetyCheck < OpenAI::BaseModel # @!attribute id # The ID of the pending safety check. diff --git a/lib/openai/models/responses/response_input_message_item.rb b/lib/openai/models/responses/response_input_message_item.rb new file mode 100644 index 00000000..2a9dd999 --- /dev/null +++ b/lib/openai/models/responses/response_input_message_item.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + class ResponseInputMessageItem < OpenAI::BaseModel + # @!attribute id + # The unique ID of the message input. + # + # @return [String] + required :id, String + + # @!attribute content + # A list of one or many input items to the model, containing different content + # types. + # + # @return [Array] + required :content, -> { OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseInputContent] } + + # @!attribute role + # The role of the message input. One of `user`, `system`, or `developer`. + # + # @return [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Role] + required :role, enum: -> { OpenAI::Models::Responses::ResponseInputMessageItem::Role } + + # @!attribute [r] status + # The status of item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + # + # @return [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Status, nil] + optional :status, enum: -> { OpenAI::Models::Responses::ResponseInputMessageItem::Status } + + # @!parse + # # @return [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Status] + # attr_writer :status + + # @!attribute [r] type + # The type of the message input. Always set to `message`. + # + # @return [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Type, nil] + optional :type, enum: -> { OpenAI::Models::Responses::ResponseInputMessageItem::Type } + + # @!parse + # # @return [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Type] + # attr_writer :type + + # @!parse + # # @param id [String] + # # @param content [Array] + # # @param role [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Role] + # # @param status [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Status] + # # @param type [Symbol, OpenAI::Models::Responses::ResponseInputMessageItem::Type] + # # + # def initialize(id:, content:, role:, status: nil, type: nil, **) = super + + # def initialize: (Hash | OpenAI::BaseModel) -> void + + # @abstract + # + # The role of the message input. One of `user`, `system`, or `developer`. + class Role < OpenAI::Enum + USER = :user + SYSTEM = :system + DEVELOPER = :developer + + finalize! + end + + # @abstract + # + # The status of item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + class Status < OpenAI::Enum + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + + finalize! + end + + # @abstract + # + # The type of the message input. Always set to `message`. + class Type < OpenAI::Enum + MESSAGE = :message + + finalize! + end + end + end + end +end diff --git a/lib/openai/models/responses/response_item.rb b/lib/openai/models/responses/response_item.rb new file mode 100644 index 00000000..b3f4f86c --- /dev/null +++ b/lib/openai/models/responses/response_item.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +module OpenAI + module Models + module Responses + # @abstract + # + # Content item used to generate a response. + class ResponseItem < OpenAI::Union + discriminator :type + + variant :message, -> { OpenAI::Models::Responses::ResponseInputMessageItem } + + # An output message from the model. + variant :message, -> { OpenAI::Models::Responses::ResponseOutputMessage } + + # The results of a file search tool call. See the + # [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information. + variant :file_search_call, -> { OpenAI::Models::Responses::ResponseFileSearchToolCall } + + # A tool call to a computer use tool. See the + # [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information. + variant :computer_call, -> { OpenAI::Models::Responses::ResponseComputerToolCall } + + variant :computer_call_output, -> { OpenAI::Models::Responses::ResponseComputerToolCallOutputItem } + + # The results of a web search tool call. See the + # [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information. + variant :web_search_call, -> { OpenAI::Models::Responses::ResponseFunctionWebSearch } + + # A tool call to run a function. See the + # [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information. + variant :function_call, -> { OpenAI::Models::Responses::ResponseFunctionToolCallItem } + + variant :function_call_output, -> { OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem } + + # @!parse + # class << self + # # @return [Array(OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem)] + # def variants; end + # end + end + end + end +end diff --git a/lib/openai/models/responses/response_item_list.rb b/lib/openai/models/responses/response_item_list.rb index 7890dc3a..34ca03ad 100644 --- a/lib/openai/models/responses/response_item_list.rb +++ b/lib/openai/models/responses/response_item_list.rb @@ -7,8 +7,8 @@ class ResponseItemList < OpenAI::BaseModel # @!attribute data # A list of items used to generate this response. # - # @return [Array] - required :data, -> { OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseItemList::Data] } + # @return [Array] + required :data, -> { OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseItem] } # @!attribute first_id # The ID of the first item in the list. @@ -37,7 +37,7 @@ class ResponseItemList < OpenAI::BaseModel # @!parse # # A list of Response items. # # - # # @param data [Array] + # # @param data [Array] # # @param first_id [String] # # @param has_more [Boolean] # # @param last_id [String] @@ -46,337 +46,6 @@ class ResponseItemList < OpenAI::BaseModel # def initialize(data:, first_id:, has_more:, last_id:, object: :list, **) = super # def initialize: (Hash | OpenAI::BaseModel) -> void - - # @abstract - # - # Content item used to generate a response. - class Data < OpenAI::Union - discriminator :type - - variant :message, -> { OpenAI::Models::Responses::ResponseItemList::Data::Message } - - # An output message from the model. - variant :message, -> { OpenAI::Models::Responses::ResponseOutputMessage } - - # The results of a file search tool call. See the - # [file search guide](https://platform.openai.com/docs/guides/tools-file-search) for more information. - variant :file_search_call, -> { OpenAI::Models::Responses::ResponseFileSearchToolCall } - - # A tool call to a computer use tool. See the - # [computer use guide](https://platform.openai.com/docs/guides/tools-computer-use) for more information. - variant :computer_call, -> { OpenAI::Models::Responses::ResponseComputerToolCall } - - variant :computer_call_output, - -> { OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput } - - # The results of a web search tool call. See the - # [web search guide](https://platform.openai.com/docs/guides/tools-web-search) for more information. - variant :web_search_call, -> { OpenAI::Models::Responses::ResponseFunctionWebSearch } - - # A tool call to run a function. See the - # [function calling guide](https://platform.openai.com/docs/guides/function-calling) for more information. - variant :function_call, -> { OpenAI::Models::Responses::ResponseFunctionToolCall } - - variant :function_call_output, - -> { OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput } - - class Message < OpenAI::BaseModel - # @!attribute id - # The unique ID of the message input. - # - # @return [String] - required :id, String - - # @!attribute content - # A list of one or many input items to the model, containing different content - # types. - # - # @return [Array] - required :content, -> { OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseInputContent] } - - # @!attribute role - # The role of the message input. One of `user`, `system`, or `developer`. - # - # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Role] - required :role, enum: -> { OpenAI::Models::Responses::ResponseItemList::Data::Message::Role } - - # @!attribute [r] status - # The status of item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - # - # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Status, nil] - optional :status, enum: -> { OpenAI::Models::Responses::ResponseItemList::Data::Message::Status } - - # @!parse - # # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Status] - # attr_writer :status - - # @!attribute [r] type - # The type of the message input. Always set to `message`. - # - # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Type, nil] - optional :type, enum: -> { OpenAI::Models::Responses::ResponseItemList::Data::Message::Type } - - # @!parse - # # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Type] - # attr_writer :type - - # @!parse - # # @param id [String] - # # @param content [Array] - # # @param role [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Role] - # # @param status [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Status] - # # @param type [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::Message::Type] - # # - # def initialize(id:, content:, role:, status: nil, type: nil, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - - # @abstract - # - # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum - USER = :user - SYSTEM = :system - DEVELOPER = :developer - - finalize! - end - - # @abstract - # - # The status of item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - class Status < OpenAI::Enum - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - - finalize! - end - - # @abstract - # - # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum - MESSAGE = :message - - finalize! - end - end - - class ComputerCallOutput < OpenAI::BaseModel - # @!attribute id - # The unique ID of the computer call tool output. - # - # @return [String] - required :id, String - - # @!attribute call_id - # The ID of the computer tool call that produced the output. - # - # @return [String] - required :call_id, String - - # @!attribute output - # A computer screenshot image used with the computer use tool. - # - # @return [OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output] - required :output, -> { OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output } - - # @!attribute type - # The type of the computer tool call output. Always `computer_call_output`. - # - # @return [Symbol, :computer_call_output] - required :type, const: :computer_call_output - - # @!attribute [r] acknowledged_safety_checks - # The safety checks reported by the API that have been acknowledged by the - # developer. - # - # @return [Array, nil] - optional :acknowledged_safety_checks, - -> { OpenAI::ArrayOf[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] } - - # @!parse - # # @return [Array] - # attr_writer :acknowledged_safety_checks - - # @!attribute [r] status - # The status of the message input. One of `in_progress`, `completed`, or - # `incomplete`. Populated when input items are returned via API. - # - # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Status, nil] - optional :status, - enum: -> { OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Status } - - # @!parse - # # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Status] - # attr_writer :status - - # @!parse - # # @param id [String] - # # @param call_id [String] - # # @param output [OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output] - # # @param acknowledged_safety_checks [Array] - # # @param status [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Status] - # # @param type [Symbol, :computer_call_output] - # # - # def initialize(id:, call_id:, output:, acknowledged_safety_checks: nil, status: nil, type: :computer_call_output, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - - class Output < OpenAI::BaseModel - # @!attribute type - # Specifies the event type. For a computer screenshot, this property is always set - # to `computer_screenshot`. - # - # @return [Symbol, :computer_screenshot] - required :type, const: :computer_screenshot - - # @!attribute [r] file_id - # The identifier of an uploaded file that contains the screenshot. - # - # @return [String, nil] - optional :file_id, String - - # @!parse - # # @return [String] - # attr_writer :file_id - - # @!attribute [r] image_url - # The URL of the screenshot image. - # - # @return [String, nil] - optional :image_url, String - - # @!parse - # # @return [String] - # attr_writer :image_url - - # @!parse - # # A computer screenshot image used with the computer use tool. - # # - # # @param file_id [String] - # # @param image_url [String] - # # @param type [Symbol, :computer_screenshot] - # # - # def initialize(file_id: nil, image_url: nil, type: :computer_screenshot, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - end - - class AcknowledgedSafetyCheck < OpenAI::BaseModel - # @!attribute id - # The ID of the pending safety check. - # - # @return [String] - required :id, String - - # @!attribute code - # The type of the pending safety check. - # - # @return [String] - required :code, String - - # @!attribute message - # Details about the pending safety check. - # - # @return [String] - required :message, String - - # @!parse - # # A pending safety check for the computer call. - # # - # # @param id [String] - # # @param code [String] - # # @param message [String] - # # - # def initialize(id:, code:, message:, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - end - - # @abstract - # - # The status of the message input. One of `in_progress`, `completed`, or - # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - - finalize! - end - end - - class FunctionCallOutput < OpenAI::BaseModel - # @!attribute id - # The unique ID of the function call tool output. - # - # @return [String] - required :id, String - - # @!attribute call_id - # The unique ID of the function tool call generated by the model. - # - # @return [String] - required :call_id, String - - # @!attribute output - # A JSON string of the output of the function tool call. - # - # @return [String] - required :output, String - - # @!attribute type - # The type of the function tool call output. Always `function_call_output`. - # - # @return [Symbol, :function_call_output] - required :type, const: :function_call_output - - # @!attribute [r] status - # The status of the item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - # - # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::Status, nil] - optional :status, - enum: -> { OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::Status } - - # @!parse - # # @return [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::Status] - # attr_writer :status - - # @!parse - # # @param id [String] - # # @param call_id [String] - # # @param output [String] - # # @param status [Symbol, OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::Status] - # # @param type [Symbol, :function_call_output] - # # - # def initialize(id:, call_id:, output:, status: nil, type: :function_call_output, **) = super - - # def initialize: (Hash | OpenAI::BaseModel) -> void - - # @abstract - # - # The status of the item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - class Status < OpenAI::Enum - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - - finalize! - end - end - - # @!parse - # class << self - # # @return [Array(OpenAI::Models::Responses::ResponseItemList::Data::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput)] - # def variants; end - # end - end end end diff --git a/lib/openai/resources/responses/input_items.rb b/lib/openai/resources/responses/input_items.rb index 1fe57b71..ff8ff1d0 100644 --- a/lib/openai/resources/responses/input_items.rb +++ b/lib/openai/resources/responses/input_items.rb @@ -24,7 +24,7 @@ class InputItems # # @option params [OpenAI::RequestOptions, Hash{Symbol=>Object}, nil] :request_options # - # @return [OpenAI::CursorPage] + # @return [OpenAI::CursorPage] def list(response_id, params = {}) parsed, options = OpenAI::Models::Responses::InputItemListParams.dump_request(params) @client.request( @@ -32,7 +32,7 @@ def list(response_id, params = {}) path: ["responses/%0s/input_items", response_id], query: parsed, page: OpenAI::CursorPage, - model: OpenAI::Models::Responses::ResponseItemList::Data, + model: OpenAI::Models::Responses::ResponseItem, options: options ) end diff --git a/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi b/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi new file mode 100644 index 00000000..4e5be0f8 --- /dev/null +++ b/rbi/lib/openai/models/responses/response_computer_tool_call_output_item.rbi @@ -0,0 +1,159 @@ +# typed: strong + +module OpenAI + module Models + module Responses + class ResponseComputerToolCallOutputItem < OpenAI::BaseModel + # The unique ID of the computer call tool output. + sig { returns(String) } + def id + end + + sig { params(_: String).returns(String) } + def id=(_) + end + + # The ID of the computer tool call that produced the output. + sig { returns(String) } + def call_id + end + + sig { params(_: String).returns(String) } + def call_id=(_) + end + + # A computer screenshot image used with the computer use tool. + sig { returns(OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) } + def output + end + + sig do + params(_: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) + .returns(OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) + end + def output=(_) + end + + # The type of the computer tool call output. Always `computer_call_output`. + sig { returns(Symbol) } + def type + end + + sig { params(_: Symbol).returns(Symbol) } + def type=(_) + end + + # The safety checks reported by the API that have been acknowledged by the + # developer. + sig do + returns( + T.nilable( + T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck] + ) + ) + end + def acknowledged_safety_checks + end + + sig do + params( + _: T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck] + ) + .returns(T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck]) + end + def acknowledged_safety_checks=(_) + end + + # The status of the message input. One of `in_progress`, `completed`, or + # `incomplete`. Populated when input items are returned via API. + sig { returns(T.nilable(Symbol)) } + def status + end + + sig { params(_: Symbol).returns(Symbol) } + def status=(_) + end + + sig do + params( + id: String, + call_id: String, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, + acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], + status: Symbol, + type: Symbol + ) + .returns(T.attached_class) + end + def self.new(id:, call_id:, output:, acknowledged_safety_checks: nil, status: nil, type: :computer_call_output) + end + + sig do + override + .returns( + { + id: String, + call_id: String, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, + type: Symbol, + acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], + status: Symbol + } + ) + end + def to_hash + end + + class AcknowledgedSafetyCheck < OpenAI::BaseModel + # The ID of the pending safety check. + sig { returns(String) } + def id + end + + sig { params(_: String).returns(String) } + def id=(_) + end + + # The type of the pending safety check. + sig { returns(String) } + def code + end + + sig { params(_: String).returns(String) } + def code=(_) + end + + # Details about the pending safety check. + sig { returns(String) } + def message + end + + sig { params(_: String).returns(String) } + def message=(_) + end + + # A pending safety check for the computer call. + sig { params(id: String, code: String, message: String).returns(T.attached_class) } + def self.new(id:, code:, message:) + end + + sig { override.returns({id: String, code: String, message: String}) } + def to_hash + end + end + + # The status of the message input. One of `in_progress`, `completed`, or + # `incomplete`. Populated when input items are returned via API. + class Status < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rbi b/rbi/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rbi new file mode 100644 index 00000000..7b4d757f --- /dev/null +++ b/rbi/lib/openai/models/responses/response_computer_tool_call_output_screenshot.rbi @@ -0,0 +1,46 @@ +# typed: strong + +module OpenAI + module Models + module Responses + class ResponseComputerToolCallOutputScreenshot < OpenAI::BaseModel + # Specifies the event type. For a computer screenshot, this property is always set + # to `computer_screenshot`. + sig { returns(Symbol) } + def type + end + + sig { params(_: Symbol).returns(Symbol) } + def type=(_) + end + + # The identifier of an uploaded file that contains the screenshot. + sig { returns(T.nilable(String)) } + def file_id + end + + sig { params(_: String).returns(String) } + def file_id=(_) + end + + # The URL of the screenshot image. + sig { returns(T.nilable(String)) } + def image_url + end + + sig { params(_: String).returns(String) } + def image_url=(_) + end + + # A computer screenshot image used with the computer use tool. + sig { params(file_id: String, image_url: String, type: Symbol).returns(T.attached_class) } + def self.new(file_id: nil, image_url: nil, type: :computer_screenshot) + end + + sig { override.returns({type: Symbol, file_id: String, image_url: String}) } + def to_hash + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi b/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi new file mode 100644 index 00000000..6e1a4cce --- /dev/null +++ b/rbi/lib/openai/models/responses/response_function_tool_call_item.rbi @@ -0,0 +1,29 @@ +# typed: strong + +module OpenAI + module Models + module Responses + class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall + # The unique ID of the function call tool output. + sig { returns(String) } + def id + end + + sig { params(_: String).returns(String) } + def id=(_) + end + + # A tool call to run a function. See the + # [function calling guide](https://platform.openai.com/docs/guides/function-calling) + # for more information. + sig { params(id: String).returns(T.attached_class) } + def self.new(id:) + end + + sig { override.returns({id: String}) } + def to_hash + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi b/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi new file mode 100644 index 00000000..89456a9b --- /dev/null +++ b/rbi/lib/openai/models/responses/response_function_tool_call_output_item.rbi @@ -0,0 +1,83 @@ +# typed: strong + +module OpenAI + module Models + module Responses + class ResponseFunctionToolCallOutputItem < OpenAI::BaseModel + # The unique ID of the function call tool output. + sig { returns(String) } + def id + end + + sig { params(_: String).returns(String) } + def id=(_) + end + + # The unique ID of the function tool call generated by the model. + sig { returns(String) } + def call_id + end + + sig { params(_: String).returns(String) } + def call_id=(_) + end + + # A JSON string of the output of the function tool call. + sig { returns(String) } + def output + end + + sig { params(_: String).returns(String) } + def output=(_) + end + + # The type of the function tool call output. Always `function_call_output`. + sig { returns(Symbol) } + def type + end + + sig { params(_: Symbol).returns(Symbol) } + def type=(_) + end + + # The status of the item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + sig { returns(T.nilable(Symbol)) } + def status + end + + sig { params(_: Symbol).returns(Symbol) } + def status=(_) + end + + sig do + params( + id: String, + call_id: String, + output: String, + status: Symbol, + type: Symbol + ).returns(T.attached_class) + end + def self.new(id:, call_id:, output:, status: nil, type: :function_call_output) + end + + sig { override.returns({id: String, call_id: String, output: String, type: Symbol, status: Symbol}) } + def to_hash + end + + # The status of the item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + class Status < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_input_item.rbi b/rbi/lib/openai/models/responses/response_input_item.rbi index fc0ede1f..f3b960b7 100644 --- a/rbi/lib/openai/models/responses/response_input_item.rbi +++ b/rbi/lib/openai/models/responses/response_input_item.rbi @@ -139,13 +139,13 @@ module OpenAI end # A computer screenshot image used with the computer use tool. - sig { returns(OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output) } + sig { returns(OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) } def output end sig do - params(_: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output) - .returns(OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output) + params(_: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) + .returns(OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot) end def output=(_) end @@ -205,7 +205,7 @@ module OpenAI sig do params( call_id: String, - output: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, id: String, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], status: Symbol, @@ -221,7 +221,7 @@ module OpenAI .returns( { call_id: String, - output: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, type: Symbol, id: String, acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], @@ -232,45 +232,6 @@ module OpenAI def to_hash end - class Output < OpenAI::BaseModel - # Specifies the event type. For a computer screenshot, this property is always set - # to `computer_screenshot`. - sig { returns(Symbol) } - def type - end - - sig { params(_: Symbol).returns(Symbol) } - def type=(_) - end - - # The identifier of an uploaded file that contains the screenshot. - sig { returns(T.nilable(String)) } - def file_id - end - - sig { params(_: String).returns(String) } - def file_id=(_) - end - - # The URL of the screenshot image. - sig { returns(T.nilable(String)) } - def image_url - end - - sig { params(_: String).returns(String) } - def image_url=(_) - end - - # A computer screenshot image used with the computer use tool. - sig { params(file_id: String, image_url: String, type: Symbol).returns(T.attached_class) } - def self.new(file_id: nil, image_url: nil, type: :computer_screenshot) - end - - sig { override.returns({type: Symbol, file_id: String, image_url: String}) } - def to_hash - end - end - class AcknowledgedSafetyCheck < OpenAI::BaseModel # The ID of the pending safety check. sig { returns(String) } diff --git a/rbi/lib/openai/models/responses/response_input_message_item.rbi b/rbi/lib/openai/models/responses/response_input_message_item.rbi new file mode 100644 index 00000000..2070f09c --- /dev/null +++ b/rbi/lib/openai/models/responses/response_input_message_item.rbi @@ -0,0 +1,119 @@ +# typed: strong + +module OpenAI + module Models + module Responses + class ResponseInputMessageItem < OpenAI::BaseModel + # The unique ID of the message input. + sig { returns(String) } + def id + end + + sig { params(_: String).returns(String) } + def id=(_) + end + + # A list of one or many input items to the model, containing different content + # types. + sig { returns(OpenAI::Models::Responses::ResponseInputMessageContentList) } + def content + end + + sig do + params(_: OpenAI::Models::Responses::ResponseInputMessageContentList) + .returns(OpenAI::Models::Responses::ResponseInputMessageContentList) + end + def content=(_) + end + + # The role of the message input. One of `user`, `system`, or `developer`. + sig { returns(Symbol) } + def role + end + + sig { params(_: Symbol).returns(Symbol) } + def role=(_) + end + + # The status of item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + sig { returns(T.nilable(Symbol)) } + def status + end + + sig { params(_: Symbol).returns(Symbol) } + def status=(_) + end + + # The type of the message input. Always set to `message`. + sig { returns(T.nilable(Symbol)) } + def type + end + + sig { params(_: Symbol).returns(Symbol) } + def type=(_) + end + + sig do + params( + id: String, + content: OpenAI::Models::Responses::ResponseInputMessageContentList, + role: Symbol, + status: Symbol, + type: Symbol + ) + .returns(T.attached_class) + end + def self.new(id:, content:, role:, status: nil, type: nil) + end + + sig do + override + .returns( + { + id: String, + content: OpenAI::Models::Responses::ResponseInputMessageContentList, + role: Symbol, + status: Symbol, + type: Symbol + } + ) + end + def to_hash + end + + # The role of the message input. One of `user`, `system`, or `developer`. + class Role < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + USER = :user + SYSTEM = :system + DEVELOPER = :developer + end + + # The status of item. One of `in_progress`, `completed`, or `incomplete`. + # Populated when items are returned via API. + class Status < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + IN_PROGRESS = :in_progress + COMPLETED = :completed + INCOMPLETE = :incomplete + end + + # The type of the message input. Always set to `message`. + class Type < OpenAI::Enum + abstract! + + Value = type_template(:out) { {fixed: Symbol} } + + MESSAGE = :message + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_item.rbi b/rbi/lib/openai/models/responses/response_item.rbi new file mode 100644 index 00000000..fac7e7a2 --- /dev/null +++ b/rbi/lib/openai/models/responses/response_item.rbi @@ -0,0 +1,27 @@ +# typed: strong + +module OpenAI + module Models + module Responses + # Content item used to generate a response. + class ResponseItem < OpenAI::Union + abstract! + + Variants = type_template(:out) do + { + fixed: T.any( + OpenAI::Models::Responses::ResponseInputMessageItem, + OpenAI::Models::Responses::ResponseOutputMessage, + OpenAI::Models::Responses::ResponseFileSearchToolCall, + OpenAI::Models::Responses::ResponseComputerToolCall, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, + OpenAI::Models::Responses::ResponseFunctionWebSearch, + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem + ) + } + end + end + end + end +end diff --git a/rbi/lib/openai/models/responses/response_item_list.rbi b/rbi/lib/openai/models/responses/response_item_list.rbi index f6e9982c..983bd5b6 100644 --- a/rbi/lib/openai/models/responses/response_item_list.rbi +++ b/rbi/lib/openai/models/responses/response_item_list.rbi @@ -11,14 +11,14 @@ module OpenAI returns( T::Array[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ] ) @@ -30,28 +30,28 @@ module OpenAI params( _: T::Array[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ] ) .returns( T::Array[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ] ) @@ -100,14 +100,14 @@ module OpenAI params( data: T::Array[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ], first_id: String, @@ -126,14 +126,14 @@ module OpenAI { data: T::Array[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ], first_id: String, @@ -145,409 +145,6 @@ module OpenAI end def to_hash end - - # Content item used to generate a response. - class Data < OpenAI::Union - abstract! - - Variants = type_template(:out) do - { - fixed: T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, - OpenAI::Models::Responses::ResponseOutputMessage, - OpenAI::Models::Responses::ResponseFileSearchToolCall, - OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, - OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput - ) - } - end - - class Message < OpenAI::BaseModel - # The unique ID of the message input. - sig { returns(String) } - def id - end - - sig { params(_: String).returns(String) } - def id=(_) - end - - # A list of one or many input items to the model, containing different content - # types. - sig { returns(OpenAI::Models::Responses::ResponseInputMessageContentList) } - def content - end - - sig do - params(_: OpenAI::Models::Responses::ResponseInputMessageContentList) - .returns(OpenAI::Models::Responses::ResponseInputMessageContentList) - end - def content=(_) - end - - # The role of the message input. One of `user`, `system`, or `developer`. - sig { returns(Symbol) } - def role - end - - sig { params(_: Symbol).returns(Symbol) } - def role=(_) - end - - # The status of item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } - def status - end - - sig { params(_: Symbol).returns(Symbol) } - def status=(_) - end - - # The type of the message input. Always set to `message`. - sig { returns(T.nilable(Symbol)) } - def type - end - - sig { params(_: Symbol).returns(Symbol) } - def type=(_) - end - - sig do - params( - id: String, - content: OpenAI::Models::Responses::ResponseInputMessageContentList, - role: Symbol, - status: Symbol, - type: Symbol - ) - .returns(T.attached_class) - end - def self.new(id:, content:, role:, status: nil, type: nil) - end - - sig do - override - .returns( - { - id: String, - content: OpenAI::Models::Responses::ResponseInputMessageContentList, - role: Symbol, - status: Symbol, - type: Symbol - } - ) - end - def to_hash - end - - # The role of the message input. One of `user`, `system`, or `developer`. - class Role < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - USER = :user - SYSTEM = :system - DEVELOPER = :developer - end - - # The status of item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - end - - # The type of the message input. Always set to `message`. - class Type < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - MESSAGE = :message - end - end - - class ComputerCallOutput < OpenAI::BaseModel - # The unique ID of the computer call tool output. - sig { returns(String) } - def id - end - - sig { params(_: String).returns(String) } - def id=(_) - end - - # The ID of the computer tool call that produced the output. - sig { returns(String) } - def call_id - end - - sig { params(_: String).returns(String) } - def call_id=(_) - end - - # A computer screenshot image used with the computer use tool. - sig { returns(OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output) } - def output - end - - sig do - params(_: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output) - .returns(OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output) - end - def output=(_) - end - - # The type of the computer tool call output. Always `computer_call_output`. - sig { returns(Symbol) } - def type - end - - sig { params(_: Symbol).returns(Symbol) } - def type=(_) - end - - # The safety checks reported by the API that have been acknowledged by the - # developer. - sig do - returns( - T.nilable( - T::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] - ) - ) - end - def acknowledged_safety_checks - end - - sig do - params( - _: T::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] - ) - .returns( - T::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] - ) - end - def acknowledged_safety_checks=(_) - end - - # The status of the message input. One of `in_progress`, `completed`, or - # `incomplete`. Populated when input items are returned via API. - sig { returns(T.nilable(Symbol)) } - def status - end - - sig { params(_: Symbol).returns(Symbol) } - def status=(_) - end - - sig do - params( - id: String, - call_id: String, - output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output, - acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck], - status: Symbol, - type: Symbol - ) - .returns(T.attached_class) - end - def self.new(id:, call_id:, output:, acknowledged_safety_checks: nil, status: nil, type: :computer_call_output) - end - - sig do - override - .returns( - { - id: String, - call_id: String, - output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output, - type: Symbol, - acknowledged_safety_checks: T::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck], - status: Symbol - } - ) - end - def to_hash - end - - class Output < OpenAI::BaseModel - # Specifies the event type. For a computer screenshot, this property is always set - # to `computer_screenshot`. - sig { returns(Symbol) } - def type - end - - sig { params(_: Symbol).returns(Symbol) } - def type=(_) - end - - # The identifier of an uploaded file that contains the screenshot. - sig { returns(T.nilable(String)) } - def file_id - end - - sig { params(_: String).returns(String) } - def file_id=(_) - end - - # The URL of the screenshot image. - sig { returns(T.nilable(String)) } - def image_url - end - - sig { params(_: String).returns(String) } - def image_url=(_) - end - - # A computer screenshot image used with the computer use tool. - sig { params(file_id: String, image_url: String, type: Symbol).returns(T.attached_class) } - def self.new(file_id: nil, image_url: nil, type: :computer_screenshot) - end - - sig { override.returns({type: Symbol, file_id: String, image_url: String}) } - def to_hash - end - end - - class AcknowledgedSafetyCheck < OpenAI::BaseModel - # The ID of the pending safety check. - sig { returns(String) } - def id - end - - sig { params(_: String).returns(String) } - def id=(_) - end - - # The type of the pending safety check. - sig { returns(String) } - def code - end - - sig { params(_: String).returns(String) } - def code=(_) - end - - # Details about the pending safety check. - sig { returns(String) } - def message - end - - sig { params(_: String).returns(String) } - def message=(_) - end - - # A pending safety check for the computer call. - sig { params(id: String, code: String, message: String).returns(T.attached_class) } - def self.new(id:, code:, message:) - end - - sig { override.returns({id: String, code: String, message: String}) } - def to_hash - end - end - - # The status of the message input. One of `in_progress`, `completed`, or - # `incomplete`. Populated when input items are returned via API. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - end - end - - class FunctionCallOutput < OpenAI::BaseModel - # The unique ID of the function call tool output. - sig { returns(String) } - def id - end - - sig { params(_: String).returns(String) } - def id=(_) - end - - # The unique ID of the function tool call generated by the model. - sig { returns(String) } - def call_id - end - - sig { params(_: String).returns(String) } - def call_id=(_) - end - - # A JSON string of the output of the function tool call. - sig { returns(String) } - def output - end - - sig { params(_: String).returns(String) } - def output=(_) - end - - # The type of the function tool call output. Always `function_call_output`. - sig { returns(Symbol) } - def type - end - - sig { params(_: Symbol).returns(Symbol) } - def type=(_) - end - - # The status of the item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - sig { returns(T.nilable(Symbol)) } - def status - end - - sig { params(_: Symbol).returns(Symbol) } - def status=(_) - end - - sig do - params( - id: String, - call_id: String, - output: String, - status: Symbol, - type: Symbol - ).returns(T.attached_class) - end - def self.new(id:, call_id:, output:, status: nil, type: :function_call_output) - end - - sig do - override.returns({id: String, call_id: String, output: String, type: Symbol, status: Symbol}) - end - def to_hash - end - - # The status of the item. One of `in_progress`, `completed`, or `incomplete`. - # Populated when items are returned via API. - class Status < OpenAI::Enum - abstract! - - Value = type_template(:out) { {fixed: Symbol} } - - IN_PROGRESS = :in_progress - COMPLETED = :completed - INCOMPLETE = :incomplete - end - end - end end end end diff --git a/rbi/lib/openai/resources/responses/input_items.rbi b/rbi/lib/openai/resources/responses/input_items.rbi index f6d2e651..44e41eb2 100644 --- a/rbi/lib/openai/resources/responses/input_items.rbi +++ b/rbi/lib/openai/resources/responses/input_items.rbi @@ -17,14 +17,14 @@ module OpenAI .returns( OpenAI::CursorPage[ T.any( - OpenAI::Models::Responses::ResponseItemList::Data::Message, + OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, - OpenAI::Models::Responses::ResponseFunctionToolCall, - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + OpenAI::Models::Responses::ResponseFunctionToolCallItem, + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem ) ] ) diff --git a/sig/openai/models/responses/response_computer_tool_call_output_item.rbs b/sig/openai/models/responses/response_computer_tool_call_output_item.rbs new file mode 100644 index 00000000..90b93e5a --- /dev/null +++ b/sig/openai/models/responses/response_computer_tool_call_output_item.rbs @@ -0,0 +1,83 @@ +module OpenAI + module Models + module Responses + type response_computer_tool_call_output_item = + { + id: String, + call_id: String, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, + type: :computer_call_output, + acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], + status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status + } + + class ResponseComputerToolCallOutputItem < OpenAI::BaseModel + attr_accessor id: String + + attr_accessor call_id: String + + attr_accessor output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot + + attr_accessor type: :computer_call_output + + attr_reader acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck]? + + def acknowledged_safety_checks=: ( + ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck] + ) -> ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck] + + attr_reader status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status? + + def status=: ( + OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status + ) -> OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status + + def initialize: + ( + id: String, + call_id: String, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, + acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck], + status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status, + type: :computer_call_output + ) -> void + | ( + ?OpenAI::Models::Responses::response_computer_tool_call_output_item + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::response_computer_tool_call_output_item + + type acknowledged_safety_check = + { id: String, code: String, message: String } + + class AcknowledgedSafetyCheck < OpenAI::BaseModel + attr_accessor id: String + + attr_accessor code: String + + attr_accessor message: String + + def initialize: + (id: String, code: String, message: String) -> void + | ( + ?OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::acknowledged_safety_check + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::acknowledged_safety_check + end + + type status = :in_progress | :completed | :incomplete + + class Status < OpenAI::Enum + IN_PROGRESS: :in_progress + COMPLETED: :completed + INCOMPLETE: :incomplete + + def self.values: -> ::Array[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::status] + end + end + end + end +end diff --git a/sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs b/sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs new file mode 100644 index 00000000..931b0f8d --- /dev/null +++ b/sig/openai/models/responses/response_computer_tool_call_output_screenshot.rbs @@ -0,0 +1,33 @@ +module OpenAI + module Models + module Responses + type response_computer_tool_call_output_screenshot = + { type: :computer_screenshot, file_id: String, image_url: String } + + class ResponseComputerToolCallOutputScreenshot < OpenAI::BaseModel + attr_accessor type: :computer_screenshot + + attr_reader file_id: String? + + def file_id=: (String) -> String + + attr_reader image_url: String? + + def image_url=: (String) -> String + + def initialize: + ( + file_id: String, + image_url: String, + type: :computer_screenshot + ) -> void + | ( + ?OpenAI::Models::Responses::response_computer_tool_call_output_screenshot + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::response_computer_tool_call_output_screenshot + end + end + end +end diff --git a/sig/openai/models/responses/response_function_tool_call_item.rbs b/sig/openai/models/responses/response_function_tool_call_item.rbs new file mode 100644 index 00000000..48d08581 --- /dev/null +++ b/sig/openai/models/responses/response_function_tool_call_item.rbs @@ -0,0 +1,20 @@ +module OpenAI + module Models + module Responses + type response_function_tool_call_item = { id: String } + + class ResponseFunctionToolCallItem < OpenAI::Models::Responses::ResponseFunctionToolCall + attr_accessor id: String + + def initialize: + (id: String) -> void + | ( + ?OpenAI::Models::Responses::response_function_tool_call_item + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::response_function_tool_call_item + end + end + end +end diff --git a/sig/openai/models/responses/response_function_tool_call_output_item.rbs b/sig/openai/models/responses/response_function_tool_call_output_item.rbs new file mode 100644 index 00000000..2208c1db --- /dev/null +++ b/sig/openai/models/responses/response_function_tool_call_output_item.rbs @@ -0,0 +1,55 @@ +module OpenAI + module Models + module Responses + type response_function_tool_call_output_item = + { + id: String, + call_id: String, + output: String, + type: :function_call_output, + status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status + } + + class ResponseFunctionToolCallOutputItem < OpenAI::BaseModel + attr_accessor id: String + + attr_accessor call_id: String + + attr_accessor output: String + + attr_accessor type: :function_call_output + + attr_reader status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status? + + def status=: ( + OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status + ) -> OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status + + def initialize: + ( + id: String, + call_id: String, + output: String, + status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status, + type: :function_call_output + ) -> void + | ( + ?OpenAI::Models::Responses::response_function_tool_call_output_item + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::response_function_tool_call_output_item + + type status = :in_progress | :completed | :incomplete + + class Status < OpenAI::Enum + IN_PROGRESS: :in_progress + COMPLETED: :completed + INCOMPLETE: :incomplete + + def self.values: -> ::Array[OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::status] + end + end + end + end +end diff --git a/sig/openai/models/responses/response_input_item.rbs b/sig/openai/models/responses/response_input_item.rbs index b60c6d6a..e6a03f3b 100644 --- a/sig/openai/models/responses/response_input_item.rbs +++ b/sig/openai/models/responses/response_input_item.rbs @@ -86,7 +86,7 @@ module OpenAI type computer_call_output = { call_id: String, - output: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, type: :computer_call_output, id: String, acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], @@ -96,7 +96,7 @@ module OpenAI class ComputerCallOutput < OpenAI::BaseModel attr_accessor call_id: String - attr_accessor output: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output + attr_accessor output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot attr_accessor type: :computer_call_output @@ -119,7 +119,7 @@ module OpenAI def initialize: ( call_id: String, - output: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::Output, + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, id: String, acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::AcknowledgedSafetyCheck], status: OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::status, @@ -132,34 +132,6 @@ module OpenAI def to_hash: -> OpenAI::Models::Responses::ResponseInputItem::computer_call_output - type output = - { type: :computer_screenshot, file_id: String, image_url: String } - - class Output < OpenAI::BaseModel - attr_accessor type: :computer_screenshot - - attr_reader file_id: String? - - def file_id=: (String) -> String - - attr_reader image_url: String? - - def image_url=: (String) -> String - - def initialize: - ( - file_id: String, - image_url: String, - type: :computer_screenshot - ) -> void - | ( - ?OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::output - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseInputItem::ComputerCallOutput::output - end - type acknowledged_safety_check = { id: String, code: String, message: String } diff --git a/sig/openai/models/responses/response_input_message_item.rbs b/sig/openai/models/responses/response_input_message_item.rbs new file mode 100644 index 00000000..0b1246b9 --- /dev/null +++ b/sig/openai/models/responses/response_input_message_item.rbs @@ -0,0 +1,77 @@ +module OpenAI + module Models + module Responses + type response_input_message_item = + { + id: String, + content: OpenAI::Models::Responses::response_input_message_content_list, + role: OpenAI::Models::Responses::ResponseInputMessageItem::role, + status: OpenAI::Models::Responses::ResponseInputMessageItem::status, + type: OpenAI::Models::Responses::ResponseInputMessageItem::type_ + } + + class ResponseInputMessageItem < OpenAI::BaseModel + attr_accessor id: String + + attr_accessor content: OpenAI::Models::Responses::response_input_message_content_list + + attr_accessor role: OpenAI::Models::Responses::ResponseInputMessageItem::role + + attr_reader status: OpenAI::Models::Responses::ResponseInputMessageItem::status? + + def status=: ( + OpenAI::Models::Responses::ResponseInputMessageItem::status + ) -> OpenAI::Models::Responses::ResponseInputMessageItem::status + + attr_reader type: OpenAI::Models::Responses::ResponseInputMessageItem::type_? + + def type=: ( + OpenAI::Models::Responses::ResponseInputMessageItem::type_ + ) -> OpenAI::Models::Responses::ResponseInputMessageItem::type_ + + def initialize: + ( + id: String, + content: OpenAI::Models::Responses::response_input_message_content_list, + role: OpenAI::Models::Responses::ResponseInputMessageItem::role, + status: OpenAI::Models::Responses::ResponseInputMessageItem::status, + type: OpenAI::Models::Responses::ResponseInputMessageItem::type_ + ) -> void + | ( + ?OpenAI::Models::Responses::response_input_message_item + | OpenAI::BaseModel data + ) -> void + + def to_hash: -> OpenAI::Models::Responses::response_input_message_item + + type role = :user | :system | :developer + + class Role < OpenAI::Enum + USER: :user + SYSTEM: :system + DEVELOPER: :developer + + def self.values: -> ::Array[OpenAI::Models::Responses::ResponseInputMessageItem::role] + end + + type status = :in_progress | :completed | :incomplete + + class Status < OpenAI::Enum + IN_PROGRESS: :in_progress + COMPLETED: :completed + INCOMPLETE: :incomplete + + def self.values: -> ::Array[OpenAI::Models::Responses::ResponseInputMessageItem::status] + end + + type type_ = :message + + class Type < OpenAI::Enum + MESSAGE: :message + + def self.values: -> ::Array[OpenAI::Models::Responses::ResponseInputMessageItem::type_] + end + end + end + end +end diff --git a/sig/openai/models/responses/response_item.rbs b/sig/openai/models/responses/response_item.rbs new file mode 100644 index 00000000..8fc80907 --- /dev/null +++ b/sig/openai/models/responses/response_item.rbs @@ -0,0 +1,19 @@ +module OpenAI + module Models + module Responses + type response_item = + OpenAI::Models::Responses::ResponseInputMessageItem + | OpenAI::Models::Responses::ResponseOutputMessage + | OpenAI::Models::Responses::ResponseFileSearchToolCall + | OpenAI::Models::Responses::ResponseComputerToolCall + | OpenAI::Models::Responses::ResponseComputerToolCallOutputItem + | OpenAI::Models::Responses::ResponseFunctionWebSearch + | OpenAI::Models::Responses::ResponseFunctionToolCallItem + | OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem + + class ResponseItem < OpenAI::Union + def self.variants: -> [OpenAI::Models::Responses::ResponseInputMessageItem, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseComputerToolCallOutputItem, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCallItem, OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem] + end + end + end +end diff --git a/sig/openai/models/responses/response_item_list.rbs b/sig/openai/models/responses/response_item_list.rbs index a8d0d3fc..05202a31 100644 --- a/sig/openai/models/responses/response_item_list.rbs +++ b/sig/openai/models/responses/response_item_list.rbs @@ -6,7 +6,7 @@ module OpenAI module Responses type response_item_list = { - data: ::Array[OpenAI::Models::Responses::ResponseItemList::data], + data: ::Array[OpenAI::Models::Responses::response_item], first_id: String, has_more: bool, last_id: String, @@ -14,7 +14,7 @@ module OpenAI } class ResponseItemList < OpenAI::BaseModel - attr_accessor data: ::Array[OpenAI::Models::Responses::ResponseItemList::data] + attr_accessor data: ::Array[OpenAI::Models::Responses::response_item] attr_accessor first_id: String @@ -26,7 +26,7 @@ module OpenAI def initialize: ( - data: ::Array[OpenAI::Models::Responses::ResponseItemList::data], + data: ::Array[OpenAI::Models::Responses::response_item], first_id: String, has_more: bool, last_id: String, @@ -38,248 +38,6 @@ module OpenAI ) -> void def to_hash: -> OpenAI::Models::Responses::response_item_list - - type data = - OpenAI::Models::Responses::ResponseItemList::Data::Message - | OpenAI::Models::Responses::ResponseOutputMessage - | OpenAI::Models::Responses::ResponseFileSearchToolCall - | OpenAI::Models::Responses::ResponseComputerToolCall - | OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput - | OpenAI::Models::Responses::ResponseFunctionWebSearch - | OpenAI::Models::Responses::ResponseFunctionToolCall - | OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput - - class Data < OpenAI::Union - type message = - { - id: String, - content: OpenAI::Models::Responses::response_input_message_content_list, - role: OpenAI::Models::Responses::ResponseItemList::Data::Message::role, - status: OpenAI::Models::Responses::ResponseItemList::Data::Message::status, - type: OpenAI::Models::Responses::ResponseItemList::Data::Message::type_ - } - - class Message < OpenAI::BaseModel - attr_accessor id: String - - attr_accessor content: OpenAI::Models::Responses::response_input_message_content_list - - attr_accessor role: OpenAI::Models::Responses::ResponseItemList::Data::Message::role - - attr_reader status: OpenAI::Models::Responses::ResponseItemList::Data::Message::status? - - def status=: ( - OpenAI::Models::Responses::ResponseItemList::Data::Message::status - ) -> OpenAI::Models::Responses::ResponseItemList::Data::Message::status - - attr_reader type: OpenAI::Models::Responses::ResponseItemList::Data::Message::type_? - - def type=: ( - OpenAI::Models::Responses::ResponseItemList::Data::Message::type_ - ) -> OpenAI::Models::Responses::ResponseItemList::Data::Message::type_ - - def initialize: - ( - id: String, - content: OpenAI::Models::Responses::response_input_message_content_list, - role: OpenAI::Models::Responses::ResponseItemList::Data::Message::role, - status: OpenAI::Models::Responses::ResponseItemList::Data::Message::status, - type: OpenAI::Models::Responses::ResponseItemList::Data::Message::type_ - ) -> void - | ( - ?OpenAI::Models::Responses::ResponseItemList::Data::message - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseItemList::Data::message - - type role = :user | :system | :developer - - class Role < OpenAI::Enum - USER: :user - SYSTEM: :system - DEVELOPER: :developer - - def self.values: -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::Message::role] - end - - type status = :in_progress | :completed | :incomplete - - class Status < OpenAI::Enum - IN_PROGRESS: :in_progress - COMPLETED: :completed - INCOMPLETE: :incomplete - - def self.values: -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::Message::status] - end - - type type_ = :message - - class Type < OpenAI::Enum - MESSAGE: :message - - def self.values: -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::Message::type_] - end - end - - type computer_call_output = - { - id: String, - call_id: String, - output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output, - type: :computer_call_output, - acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck], - status: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status - } - - class ComputerCallOutput < OpenAI::BaseModel - attr_accessor id: String - - attr_accessor call_id: String - - attr_accessor output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output - - attr_accessor type: :computer_call_output - - attr_reader acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck]? - - def acknowledged_safety_checks=: ( - ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] - ) -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck] - - attr_reader status: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status? - - def status=: ( - OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status - ) -> OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status - - def initialize: - ( - id: String, - call_id: String, - output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output, - acknowledged_safety_checks: ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck], - status: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status, - type: :computer_call_output - ) -> void - | ( - ?OpenAI::Models::Responses::ResponseItemList::Data::computer_call_output - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseItemList::Data::computer_call_output - - type output = - { type: :computer_screenshot, file_id: String, image_url: String } - - class Output < OpenAI::BaseModel - attr_accessor type: :computer_screenshot - - attr_reader file_id: String? - - def file_id=: (String) -> String - - attr_reader image_url: String? - - def image_url=: (String) -> String - - def initialize: - ( - file_id: String, - image_url: String, - type: :computer_screenshot - ) -> void - | ( - ?OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::output - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::output - end - - type acknowledged_safety_check = - { id: String, code: String, message: String } - - class AcknowledgedSafetyCheck < OpenAI::BaseModel - attr_accessor id: String - - attr_accessor code: String - - attr_accessor message: String - - def initialize: - (id: String, code: String, message: String) -> void - | ( - ?OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::acknowledged_safety_check - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::acknowledged_safety_check - end - - type status = :in_progress | :completed | :incomplete - - class Status < OpenAI::Enum - IN_PROGRESS: :in_progress - COMPLETED: :completed - INCOMPLETE: :incomplete - - def self.values: -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::status] - end - end - - type function_call_output = - { - id: String, - call_id: String, - output: String, - type: :function_call_output, - status: OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status - } - - class FunctionCallOutput < OpenAI::BaseModel - attr_accessor id: String - - attr_accessor call_id: String - - attr_accessor output: String - - attr_accessor type: :function_call_output - - attr_reader status: OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status? - - def status=: ( - OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status - ) -> OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status - - def initialize: - ( - id: String, - call_id: String, - output: String, - status: OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status, - type: :function_call_output - ) -> void - | ( - ?OpenAI::Models::Responses::ResponseItemList::Data::function_call_output - | OpenAI::BaseModel data - ) -> void - - def to_hash: -> OpenAI::Models::Responses::ResponseItemList::Data::function_call_output - - type status = :in_progress | :completed | :incomplete - - class Status < OpenAI::Enum - IN_PROGRESS: :in_progress - COMPLETED: :completed - INCOMPLETE: :incomplete - - def self.values: -> ::Array[OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::status] - end - end - - def self.variants: -> [OpenAI::Models::Responses::ResponseItemList::Data::Message, OpenAI::Models::Responses::ResponseOutputMessage, OpenAI::Models::Responses::ResponseFileSearchToolCall, OpenAI::Models::Responses::ResponseComputerToolCall, OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput, OpenAI::Models::Responses::ResponseFunctionWebSearch, OpenAI::Models::Responses::ResponseFunctionToolCall, OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput] - end end end end diff --git a/sig/openai/resources/responses/input_items.rbs b/sig/openai/resources/responses/input_items.rbs index 34cc6a93..5cc014f8 100644 --- a/sig/openai/resources/responses/input_items.rbs +++ b/sig/openai/resources/responses/input_items.rbs @@ -7,7 +7,7 @@ module OpenAI String response_id, ?OpenAI::Models::Responses::InputItemListParams | ::Hash[Symbol, top] params - ) -> OpenAI::CursorPage[OpenAI::Models::Responses::ResponseItemList::data] + ) -> OpenAI::CursorPage[OpenAI::Models::Responses::response_item] | ( String response_id, after: String, @@ -15,7 +15,7 @@ module OpenAI limit: Integer, order: OpenAI::Models::Responses::InputItemListParams::order, request_options: OpenAI::request_opts - ) -> OpenAI::CursorPage[OpenAI::Models::Responses::ResponseItemList::data] + ) -> OpenAI::CursorPage[OpenAI::Models::Responses::response_item] def initialize: (client: OpenAI::Client) -> void end diff --git a/test/openai/resources/responses/input_items_test.rb b/test/openai/resources/responses/input_items_test.rb index 6886eb62..9ae8f8e4 100644 --- a/test/openai/resources/responses/input_items_test.rb +++ b/test/openai/resources/responses/input_items_test.rb @@ -12,19 +12,19 @@ def test_list row = response.to_enum.first assert_pattern do - row => OpenAI::Models::Responses::ResponseItemList::Data + row => OpenAI::Models::Responses::ResponseItem end assert_pattern do case row - in OpenAI::Models::Responses::ResponseItemList::Data::Message + in OpenAI::Models::Responses::ResponseInputMessageItem in OpenAI::Models::Responses::ResponseOutputMessage in OpenAI::Models::Responses::ResponseFileSearchToolCall in OpenAI::Models::Responses::ResponseComputerToolCall - in OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput + in OpenAI::Models::Responses::ResponseComputerToolCallOutputItem in OpenAI::Models::Responses::ResponseFunctionWebSearch - in OpenAI::Models::Responses::ResponseFunctionToolCall - in OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput + in OpenAI::Models::Responses::ResponseFunctionToolCallItem + in OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem end end @@ -34,8 +34,8 @@ def test_list type: :message, id: String, content: ^(OpenAI::ArrayOf[union: OpenAI::Models::Responses::ResponseInputContent]), - role: OpenAI::Models::Responses::ResponseItemList::Data::Message::Role, - status: OpenAI::Models::Responses::ResponseItemList::Data::Message::Status | nil + role: OpenAI::Models::Responses::ResponseInputMessageItem::Role, + status: OpenAI::Models::Responses::ResponseInputMessageItem::Status | nil } in { type: :message, @@ -63,25 +63,17 @@ def test_list type: :computer_call_output, id: String, call_id: String, - output: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Output, - acknowledged_safety_checks: ^(OpenAI::ArrayOf[OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::AcknowledgedSafetyCheck]) | nil, - status: OpenAI::Models::Responses::ResponseItemList::Data::ComputerCallOutput::Status | nil + output: OpenAI::Models::Responses::ResponseComputerToolCallOutputScreenshot, + acknowledged_safety_checks: ^(OpenAI::ArrayOf[OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::AcknowledgedSafetyCheck]) | nil, + status: OpenAI::Models::Responses::ResponseComputerToolCallOutputItem::Status | nil } in {type: :web_search_call, id: String, status: OpenAI::Models::Responses::ResponseFunctionWebSearch::Status} - in { - type: :function_call, - arguments: String, - call_id: String, - name: String, - id: String | nil, - status: OpenAI::Models::Responses::ResponseFunctionToolCall::Status | nil - } in { type: :function_call_output, id: String, call_id: String, output: String, - status: OpenAI::Models::Responses::ResponseItemList::Data::FunctionCallOutput::Status | nil + status: OpenAI::Models::Responses::ResponseFunctionToolCallOutputItem::Status | nil } end end