openai 0.64.0 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/admin/organization/audit_log_list_params.rb +6 -0
  5. data/lib/openai/models/admin/organization/audit_log_list_response.rb +231 -1
  6. data/lib/openai/models/chat/chat_completion.rb +341 -3
  7. data/lib/openai/models/chat/chat_completion_chunk.rb +341 -1
  8. data/lib/openai/models/chat/completion_create_params.rb +42 -1
  9. data/lib/openai/models/conversations/conversation_create_params.rb +2 -2
  10. data/lib/openai/models/conversations/conversation_item.rb +57 -1
  11. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  12. data/lib/openai/models/conversations/item_create_params.rb +2 -2
  13. data/lib/openai/models/responses/compacted_response.rb +2 -2
  14. data/lib/openai/models/responses/input_token_count_params.rb +41 -4
  15. data/lib/openai/models/responses/response.rb +296 -6
  16. data/lib/openai/models/responses/response_compact_params.rb +3 -3
  17. data/lib/openai/models/responses/response_create_params.rb +45 -4
  18. data/lib/openai/models/responses/response_function_web_search.rb +11 -9
  19. data/lib/openai/models/responses/response_input_item.rb +38 -1
  20. data/lib/openai/models/responses/response_item.rb +57 -1
  21. data/lib/openai/models/responses/response_item_list.rb +2 -2
  22. data/lib/openai/models/responses/response_output_item.rb +57 -1
  23. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  24. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  25. data/lib/openai/models/responses/responses_client_event.rb +46 -4
  26. data/lib/openai/resources/chat/completions.rb +6 -2
  27. data/lib/openai/resources/conversations/items.rb +3 -3
  28. data/lib/openai/resources/conversations.rb +1 -1
  29. data/lib/openai/resources/responses/input_items.rb +1 -1
  30. data/lib/openai/resources/responses/input_tokens.rb +4 -2
  31. data/lib/openai/resources/responses.rb +9 -5
  32. data/lib/openai/version.rb +1 -1
  33. data/rbi/openai/models/admin/organization/audit_log_list_params.rbi +30 -0
  34. data/rbi/openai/models/admin/organization/audit_log_list_response.rbi +489 -3
  35. data/rbi/openai/models/chat/chat_completion.rbi +620 -3
  36. data/rbi/openai/models/chat/chat_completion_chunk.rbi +621 -0
  37. data/rbi/openai/models/chat/completion_create_params.rbi +76 -0
  38. data/rbi/openai/models/conversations/conversation_create_params.rbi +3 -0
  39. data/rbi/openai/models/conversations/conversation_item.rbi +150 -0
  40. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  41. data/rbi/openai/models/conversations/item_create_params.rbi +3 -0
  42. data/rbi/openai/models/responses/compacted_response.rbi +1 -0
  43. data/rbi/openai/models/responses/input_token_count_params.rbi +85 -0
  44. data/rbi/openai/models/responses/response.rbi +510 -0
  45. data/rbi/openai/models/responses/response_create_params.rbi +78 -0
  46. data/rbi/openai/models/responses/response_function_web_search.rbi +11 -8
  47. data/rbi/openai/models/responses/response_input_item.rbi +120 -0
  48. data/rbi/openai/models/responses/response_item.rbi +150 -0
  49. data/rbi/openai/models/responses/response_item_list.rbi +1 -0
  50. data/rbi/openai/models/responses/response_output_item.rbi +150 -0
  51. data/rbi/openai/models/responses/response_output_item_added_event.rbi +1 -0
  52. data/rbi/openai/models/responses/response_output_item_done_event.rbi +1 -0
  53. data/rbi/openai/models/responses/responses_client_event.rbi +78 -0
  54. data/rbi/openai/resources/chat/completions.rbi +28 -0
  55. data/rbi/openai/resources/conversations/items.rbi +1 -0
  56. data/rbi/openai/resources/conversations.rbi +1 -0
  57. data/rbi/openai/resources/responses/input_tokens.rbi +9 -0
  58. data/rbi/openai/resources/responses.rbi +28 -0
  59. data/sig/openai/models/admin/organization/audit_log_list_params.rbs +12 -0
  60. data/sig/openai/models/admin/organization/audit_log_list_response.rbs +216 -3
  61. data/sig/openai/models/chat/chat_completion.rbs +243 -0
  62. data/sig/openai/models/chat/chat_completion_chunk.rbs +243 -0
  63. data/sig/openai/models/chat/completion_create_params.rbs +15 -0
  64. data/sig/openai/models/conversations/conversation_item.rbs +58 -0
  65. data/sig/openai/models/responses/input_token_count_params.rbs +20 -0
  66. data/sig/openai/models/responses/response.rbs +189 -0
  67. data/sig/openai/models/responses/response_create_params.rbs +15 -0
  68. data/sig/openai/models/responses/response_function_web_search.rbs +7 -5
  69. data/sig/openai/models/responses/response_input_item.rbs +33 -0
  70. data/sig/openai/models/responses/response_item.rbs +58 -0
  71. data/sig/openai/models/responses/response_output_item.rbs +58 -0
  72. data/sig/openai/models/responses/responses_client_event.rbs +15 -0
  73. data/sig/openai/resources/chat/completions.rbs +2 -0
  74. data/sig/openai/resources/responses/input_tokens.rbs +1 -0
  75. data/sig/openai/resources/responses.rbs +2 -0
  76. metadata +2 -2
@@ -113,10 +113,6 @@ module OpenAI
113
113
  )
114
114
  end
115
115
 
116
- # [DEPRECATED] The search query.
117
- sig { returns(String) }
118
- attr_accessor :query
119
-
120
116
  # The action type.
121
117
  sig { returns(Symbol) }
122
118
  attr_accessor :type
@@ -128,6 +124,13 @@ module OpenAI
128
124
  sig { params(queries: T::Array[String]).void }
129
125
  attr_writer :queries
130
126
 
127
+ # The search query.
128
+ sig { returns(T.nilable(String)) }
129
+ attr_reader :query
130
+
131
+ sig { params(query: String).void }
132
+ attr_writer :query
133
+
131
134
  # The sources used in the search.
132
135
  sig do
133
136
  returns(
@@ -153,8 +156,8 @@ module OpenAI
153
156
  # Action type "search" - Performs a web search query.
154
157
  sig do
155
158
  params(
156
- query: String,
157
159
  queries: T::Array[String],
160
+ query: String,
158
161
  sources:
159
162
  T::Array[
160
163
  OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source::OrHash
@@ -163,10 +166,10 @@ module OpenAI
163
166
  ).returns(T.attached_class)
164
167
  end
165
168
  def self.new(
166
- # [DEPRECATED] The search query.
167
- query:,
168
169
  # The search queries.
169
170
  queries: nil,
171
+ # The search query.
172
+ query: nil,
170
173
  # The sources used in the search.
171
174
  sources: nil,
172
175
  # The action type.
@@ -177,9 +180,9 @@ module OpenAI
177
180
  sig do
178
181
  override.returns(
179
182
  {
180
- query: String,
181
183
  type: Symbol,
182
184
  queries: T::Array[String],
185
+ query: String,
183
186
  sources:
184
187
  T::Array[
185
188
  OpenAI::Responses::ResponseFunctionWebSearch::Action::Search::Source
@@ -25,6 +25,7 @@ module OpenAI
25
25
  OpenAI::Responses::ResponseInputItem::FunctionCallOutput,
26
26
  OpenAI::Responses::ResponseInputItem::ToolSearchCall,
27
27
  OpenAI::Responses::ResponseToolSearchOutputItemParam,
28
+ OpenAI::Responses::ResponseInputItem::AdditionalTools,
28
29
  OpenAI::Responses::ResponseReasoningItem,
29
30
  OpenAI::Responses::ResponseCompactionItemParam,
30
31
  OpenAI::Responses::ResponseInputItem::ImageGenerationCall,
@@ -834,6 +835,125 @@ module OpenAI
834
835
  end
835
836
  end
836
837
 
838
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
839
+ OrHash =
840
+ T.type_alias do
841
+ T.any(
842
+ OpenAI::Responses::ResponseInputItem::AdditionalTools,
843
+ OpenAI::Internal::AnyHash
844
+ )
845
+ end
846
+
847
+ # The role that provided the additional tools. Only `developer` is supported.
848
+ sig { returns(Symbol) }
849
+ attr_accessor :role
850
+
851
+ # A list of additional tools made available at this item.
852
+ sig do
853
+ returns(
854
+ T::Array[
855
+ T.any(
856
+ OpenAI::Responses::FunctionTool,
857
+ OpenAI::Responses::FileSearchTool,
858
+ OpenAI::Responses::ComputerTool,
859
+ OpenAI::Responses::ComputerUsePreviewTool,
860
+ OpenAI::Responses::Tool::Mcp,
861
+ OpenAI::Responses::Tool::CodeInterpreter,
862
+ OpenAI::Responses::Tool::ImageGeneration,
863
+ OpenAI::Responses::Tool::LocalShell,
864
+ OpenAI::Responses::FunctionShellTool,
865
+ OpenAI::Responses::CustomTool,
866
+ OpenAI::Responses::NamespaceTool,
867
+ OpenAI::Responses::ToolSearchTool,
868
+ OpenAI::Responses::ApplyPatchTool,
869
+ OpenAI::Responses::WebSearchTool,
870
+ OpenAI::Responses::WebSearchPreviewTool
871
+ )
872
+ ]
873
+ )
874
+ end
875
+ attr_accessor :tools
876
+
877
+ # The item type. Always `additional_tools`.
878
+ sig { returns(Symbol) }
879
+ attr_accessor :type
880
+
881
+ # The unique ID of this additional tools item.
882
+ sig { returns(T.nilable(String)) }
883
+ attr_accessor :id
884
+
885
+ sig do
886
+ params(
887
+ tools:
888
+ T::Array[
889
+ T.any(
890
+ OpenAI::Responses::FunctionTool::OrHash,
891
+ OpenAI::Responses::FileSearchTool::OrHash,
892
+ OpenAI::Responses::ComputerTool::OrHash,
893
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
894
+ OpenAI::Responses::Tool::Mcp::OrHash,
895
+ OpenAI::Responses::Tool::CodeInterpreter::OrHash,
896
+ OpenAI::Responses::Tool::ImageGeneration::OrHash,
897
+ OpenAI::Responses::Tool::LocalShell::OrHash,
898
+ OpenAI::Responses::FunctionShellTool::OrHash,
899
+ OpenAI::Responses::CustomTool::OrHash,
900
+ OpenAI::Responses::NamespaceTool::OrHash,
901
+ OpenAI::Responses::ToolSearchTool::OrHash,
902
+ OpenAI::Responses::ApplyPatchTool::OrHash,
903
+ OpenAI::Responses::WebSearchTool::OrHash,
904
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
905
+ )
906
+ ],
907
+ id: T.nilable(String),
908
+ role: Symbol,
909
+ type: Symbol
910
+ ).returns(T.attached_class)
911
+ end
912
+ def self.new(
913
+ # A list of additional tools made available at this item.
914
+ tools:,
915
+ # The unique ID of this additional tools item.
916
+ id: nil,
917
+ # The role that provided the additional tools. Only `developer` is supported.
918
+ role: :developer,
919
+ # The item type. Always `additional_tools`.
920
+ type: :additional_tools
921
+ )
922
+ end
923
+
924
+ sig do
925
+ override.returns(
926
+ {
927
+ role: Symbol,
928
+ tools:
929
+ T::Array[
930
+ T.any(
931
+ OpenAI::Responses::FunctionTool,
932
+ OpenAI::Responses::FileSearchTool,
933
+ OpenAI::Responses::ComputerTool,
934
+ OpenAI::Responses::ComputerUsePreviewTool,
935
+ OpenAI::Responses::Tool::Mcp,
936
+ OpenAI::Responses::Tool::CodeInterpreter,
937
+ OpenAI::Responses::Tool::ImageGeneration,
938
+ OpenAI::Responses::Tool::LocalShell,
939
+ OpenAI::Responses::FunctionShellTool,
940
+ OpenAI::Responses::CustomTool,
941
+ OpenAI::Responses::NamespaceTool,
942
+ OpenAI::Responses::ToolSearchTool,
943
+ OpenAI::Responses::ApplyPatchTool,
944
+ OpenAI::Responses::WebSearchTool,
945
+ OpenAI::Responses::WebSearchPreviewTool
946
+ )
947
+ ],
948
+ type: Symbol,
949
+ id: T.nilable(String)
950
+ }
951
+ )
952
+ end
953
+ def to_hash
954
+ end
955
+ end
956
+
837
957
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
838
958
  OrHash =
839
959
  T.type_alias do
@@ -20,6 +20,7 @@ module OpenAI
20
20
  OpenAI::Responses::ResponseFunctionToolCallOutputItem,
21
21
  OpenAI::Responses::ResponseToolSearchCall,
22
22
  OpenAI::Responses::ResponseToolSearchOutputItem,
23
+ OpenAI::Responses::ResponseItem::AdditionalTools,
23
24
  OpenAI::Responses::ResponseReasoningItem,
24
25
  OpenAI::Responses::ResponseCompactionItem,
25
26
  OpenAI::Responses::ResponseItem::ImageGenerationCall,
@@ -39,6 +40,155 @@ module OpenAI
39
40
  )
40
41
  end
41
42
 
43
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
44
+ OrHash =
45
+ T.type_alias do
46
+ T.any(
47
+ OpenAI::Responses::ResponseItem::AdditionalTools,
48
+ OpenAI::Internal::AnyHash
49
+ )
50
+ end
51
+
52
+ # The unique ID of the additional tools item.
53
+ sig { returns(String) }
54
+ attr_accessor :id
55
+
56
+ # The role that provided the additional tools.
57
+ sig do
58
+ returns(
59
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
60
+ )
61
+ end
62
+ attr_accessor :role
63
+
64
+ # The additional tool definitions made available at this item.
65
+ sig { returns(T::Array[OpenAI::Responses::Tool::Variants]) }
66
+ attr_accessor :tools
67
+
68
+ # The type of the item. Always `additional_tools`.
69
+ sig { returns(Symbol) }
70
+ attr_accessor :type
71
+
72
+ sig do
73
+ params(
74
+ id: String,
75
+ role:
76
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::OrSymbol,
77
+ tools:
78
+ T::Array[
79
+ T.any(
80
+ OpenAI::Responses::FunctionTool::OrHash,
81
+ OpenAI::Responses::FileSearchTool::OrHash,
82
+ OpenAI::Responses::ComputerTool::OrHash,
83
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
84
+ OpenAI::Responses::Tool::Mcp::OrHash,
85
+ OpenAI::Responses::Tool::CodeInterpreter::OrHash,
86
+ OpenAI::Responses::Tool::ImageGeneration::OrHash,
87
+ OpenAI::Responses::Tool::LocalShell::OrHash,
88
+ OpenAI::Responses::FunctionShellTool::OrHash,
89
+ OpenAI::Responses::CustomTool::OrHash,
90
+ OpenAI::Responses::NamespaceTool::OrHash,
91
+ OpenAI::Responses::ToolSearchTool::OrHash,
92
+ OpenAI::Responses::ApplyPatchTool::OrHash,
93
+ OpenAI::Responses::WebSearchTool::OrHash,
94
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
95
+ )
96
+ ],
97
+ type: Symbol
98
+ ).returns(T.attached_class)
99
+ end
100
+ def self.new(
101
+ # The unique ID of the additional tools item.
102
+ id:,
103
+ # The role that provided the additional tools.
104
+ role:,
105
+ # The additional tool definitions made available at this item.
106
+ tools:,
107
+ # The type of the item. Always `additional_tools`.
108
+ type: :additional_tools
109
+ )
110
+ end
111
+
112
+ sig do
113
+ override.returns(
114
+ {
115
+ id: String,
116
+ role:
117
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol,
118
+ tools: T::Array[OpenAI::Responses::Tool::Variants],
119
+ type: Symbol
120
+ }
121
+ )
122
+ end
123
+ def to_hash
124
+ end
125
+
126
+ # The role that provided the additional tools.
127
+ module Role
128
+ extend OpenAI::Internal::Type::Enum
129
+
130
+ TaggedSymbol =
131
+ T.type_alias do
132
+ T.all(
133
+ Symbol,
134
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role
135
+ )
136
+ end
137
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
138
+
139
+ UNKNOWN =
140
+ T.let(
141
+ :unknown,
142
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
143
+ )
144
+ USER =
145
+ T.let(
146
+ :user,
147
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
148
+ )
149
+ ASSISTANT =
150
+ T.let(
151
+ :assistant,
152
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
153
+ )
154
+ SYSTEM =
155
+ T.let(
156
+ :system,
157
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
158
+ )
159
+ CRITIC =
160
+ T.let(
161
+ :critic,
162
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
163
+ )
164
+ DISCRIMINATOR =
165
+ T.let(
166
+ :discriminator,
167
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
168
+ )
169
+ DEVELOPER =
170
+ T.let(
171
+ :developer,
172
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
173
+ )
174
+ TOOL =
175
+ T.let(
176
+ :tool,
177
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
178
+ )
179
+
180
+ sig do
181
+ override.returns(
182
+ T::Array[
183
+ OpenAI::Responses::ResponseItem::AdditionalTools::Role::TaggedSymbol
184
+ ]
185
+ )
186
+ end
187
+ def self.values
188
+ end
189
+ end
190
+ end
191
+
42
192
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
43
193
  OrHash =
44
194
  T.type_alias do
@@ -50,6 +50,7 @@ module OpenAI
50
50
  OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
51
51
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
52
52
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
53
+ OpenAI::Responses::ResponseItem::AdditionalTools::OrHash,
53
54
  OpenAI::Responses::ResponseReasoningItem::OrHash,
54
55
  OpenAI::Responses::ResponseCompactionItem::OrHash,
55
56
  OpenAI::Responses::ResponseItem::ImageGenerationCall::OrHash,
@@ -20,6 +20,7 @@ module OpenAI
20
20
  OpenAI::Responses::ResponseReasoningItem,
21
21
  OpenAI::Responses::ResponseToolSearchCall,
22
22
  OpenAI::Responses::ResponseToolSearchOutputItem,
23
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools,
23
24
  OpenAI::Responses::ResponseCompactionItem,
24
25
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall,
25
26
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
@@ -38,6 +39,155 @@ module OpenAI
38
39
  )
39
40
  end
40
41
 
42
+ class AdditionalTools < OpenAI::Internal::Type::BaseModel
43
+ OrHash =
44
+ T.type_alias do
45
+ T.any(
46
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools,
47
+ OpenAI::Internal::AnyHash
48
+ )
49
+ end
50
+
51
+ # The unique ID of the additional tools item.
52
+ sig { returns(String) }
53
+ attr_accessor :id
54
+
55
+ # The role that provided the additional tools.
56
+ sig do
57
+ returns(
58
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
59
+ )
60
+ end
61
+ attr_accessor :role
62
+
63
+ # The additional tool definitions made available at this item.
64
+ sig { returns(T::Array[OpenAI::Responses::Tool::Variants]) }
65
+ attr_accessor :tools
66
+
67
+ # The type of the item. Always `additional_tools`.
68
+ sig { returns(Symbol) }
69
+ attr_accessor :type
70
+
71
+ sig do
72
+ params(
73
+ id: String,
74
+ role:
75
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::OrSymbol,
76
+ tools:
77
+ T::Array[
78
+ T.any(
79
+ OpenAI::Responses::FunctionTool::OrHash,
80
+ OpenAI::Responses::FileSearchTool::OrHash,
81
+ OpenAI::Responses::ComputerTool::OrHash,
82
+ OpenAI::Responses::ComputerUsePreviewTool::OrHash,
83
+ OpenAI::Responses::Tool::Mcp::OrHash,
84
+ OpenAI::Responses::Tool::CodeInterpreter::OrHash,
85
+ OpenAI::Responses::Tool::ImageGeneration::OrHash,
86
+ OpenAI::Responses::Tool::LocalShell::OrHash,
87
+ OpenAI::Responses::FunctionShellTool::OrHash,
88
+ OpenAI::Responses::CustomTool::OrHash,
89
+ OpenAI::Responses::NamespaceTool::OrHash,
90
+ OpenAI::Responses::ToolSearchTool::OrHash,
91
+ OpenAI::Responses::ApplyPatchTool::OrHash,
92
+ OpenAI::Responses::WebSearchTool::OrHash,
93
+ OpenAI::Responses::WebSearchPreviewTool::OrHash
94
+ )
95
+ ],
96
+ type: Symbol
97
+ ).returns(T.attached_class)
98
+ end
99
+ def self.new(
100
+ # The unique ID of the additional tools item.
101
+ id:,
102
+ # The role that provided the additional tools.
103
+ role:,
104
+ # The additional tool definitions made available at this item.
105
+ tools:,
106
+ # The type of the item. Always `additional_tools`.
107
+ type: :additional_tools
108
+ )
109
+ end
110
+
111
+ sig do
112
+ override.returns(
113
+ {
114
+ id: String,
115
+ role:
116
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol,
117
+ tools: T::Array[OpenAI::Responses::Tool::Variants],
118
+ type: Symbol
119
+ }
120
+ )
121
+ end
122
+ def to_hash
123
+ end
124
+
125
+ # The role that provided the additional tools.
126
+ module Role
127
+ extend OpenAI::Internal::Type::Enum
128
+
129
+ TaggedSymbol =
130
+ T.type_alias do
131
+ T.all(
132
+ Symbol,
133
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role
134
+ )
135
+ end
136
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
137
+
138
+ UNKNOWN =
139
+ T.let(
140
+ :unknown,
141
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
142
+ )
143
+ USER =
144
+ T.let(
145
+ :user,
146
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
147
+ )
148
+ ASSISTANT =
149
+ T.let(
150
+ :assistant,
151
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
152
+ )
153
+ SYSTEM =
154
+ T.let(
155
+ :system,
156
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
157
+ )
158
+ CRITIC =
159
+ T.let(
160
+ :critic,
161
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
162
+ )
163
+ DISCRIMINATOR =
164
+ T.let(
165
+ :discriminator,
166
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
167
+ )
168
+ DEVELOPER =
169
+ T.let(
170
+ :developer,
171
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
172
+ )
173
+ TOOL =
174
+ T.let(
175
+ :tool,
176
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
177
+ )
178
+
179
+ sig do
180
+ override.returns(
181
+ T::Array[
182
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::Role::TaggedSymbol
183
+ ]
184
+ )
185
+ end
186
+ def self.values
187
+ end
188
+ end
189
+ end
190
+
41
191
  class ImageGenerationCall < OpenAI::Internal::Type::BaseModel
42
192
  OrHash =
43
193
  T.type_alias do
@@ -43,6 +43,7 @@ module OpenAI
43
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
44
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
45
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
46
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::OrHash,
46
47
  OpenAI::Responses::ResponseCompactionItem::OrHash,
47
48
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
48
49
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
@@ -43,6 +43,7 @@ module OpenAI
43
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
44
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
45
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
46
+ OpenAI::Responses::ResponseOutputItem::AdditionalTools::OrHash,
46
47
  OpenAI::Responses::ResponseCompactionItem::OrHash,
47
48
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
48
49
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
@@ -154,6 +154,24 @@ module OpenAI
154
154
  end
155
155
  attr_writer :model
156
156
 
157
+ # Configuration for running moderation on the input and output of this response.
158
+ sig do
159
+ returns(
160
+ T.nilable(OpenAI::Responses::ResponsesClientEvent::Moderation)
161
+ )
162
+ end
163
+ attr_reader :moderation
164
+
165
+ sig do
166
+ params(
167
+ moderation:
168
+ T.nilable(
169
+ OpenAI::Responses::ResponsesClientEvent::Moderation::OrHash
170
+ )
171
+ ).void
172
+ end
173
+ attr_writer :moderation
174
+
157
175
  # Whether to allow the model to run tool calls in parallel.
158
176
  sig { returns(T.nilable(T::Boolean)) }
159
177
  attr_accessor :parallel_tool_calls
@@ -190,6 +208,14 @@ module OpenAI
190
208
  # prompt caching, which keeps cached prefixes active for longer, up to a maximum
191
209
  # of 24 hours.
192
210
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
211
+ # For `gpt-5.5`, `gpt-5.5-pro`, and future models, only `24h` is supported.
212
+ #
213
+ # For older models that support both `in_memory` and `24h`, the default depends on
214
+ # your organization's data retention policy:
215
+ #
216
+ # - Organizations without ZDR enabled default to `24h`.
217
+ # - Organizations with ZDR enabled default to `in_memory` when
218
+ # `prompt_cache_retention` is not specified.
193
219
  sig do
194
220
  returns(
195
221
  T.nilable(
@@ -477,6 +503,10 @@ module OpenAI
477
503
  OpenAI::ChatModel::OrSymbol,
478
504
  OpenAI::ResponsesModel::ResponsesOnlyModel::OrSymbol
479
505
  ),
506
+ moderation:
507
+ T.nilable(
508
+ OpenAI::Responses::ResponsesClientEvent::Moderation::OrHash
509
+ ),
480
510
  parallel_tool_calls: T.nilable(T::Boolean),
481
511
  previous_response_id: T.nilable(String),
482
512
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt::OrHash),
@@ -608,6 +638,8 @@ module OpenAI
608
638
  # [model guide](https://platform.openai.com/docs/models) to browse and compare
609
639
  # available models.
610
640
  model: nil,
641
+ # Configuration for running moderation on the input and output of this response.
642
+ moderation: nil,
611
643
  # Whether to allow the model to run tool calls in parallel.
612
644
  parallel_tool_calls: nil,
613
645
  # The unique ID of the previous response to the model. Use this to create
@@ -626,6 +658,14 @@ module OpenAI
626
658
  # prompt caching, which keeps cached prefixes active for longer, up to a maximum
627
659
  # of 24 hours.
628
660
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
661
+ # For `gpt-5.5`, `gpt-5.5-pro`, and future models, only `24h` is supported.
662
+ #
663
+ # For older models that support both `in_memory` and `24h`, the default depends on
664
+ # your organization's data retention policy:
665
+ #
666
+ # - Organizations without ZDR enabled default to `24h`.
667
+ # - Organizations with ZDR enabled default to `in_memory` when
668
+ # `prompt_cache_retention` is not specified.
629
669
  prompt_cache_retention: nil,
630
670
  # **gpt-5 and o-series models only**
631
671
  #
@@ -761,6 +801,8 @@ module OpenAI
761
801
  OpenAI::ChatModel::OrSymbol,
762
802
  OpenAI::ResponsesModel::ResponsesOnlyModel::OrSymbol
763
803
  ),
804
+ moderation:
805
+ T.nilable(OpenAI::Responses::ResponsesClientEvent::Moderation),
764
806
  parallel_tool_calls: T.nilable(T::Boolean),
765
807
  previous_response_id: T.nilable(String),
766
808
  prompt: T.nilable(OpenAI::Responses::ResponsePrompt),
@@ -918,10 +960,46 @@ module OpenAI
918
960
  end
919
961
  end
920
962
 
963
+ class Moderation < OpenAI::Internal::Type::BaseModel
964
+ OrHash =
965
+ T.type_alias do
966
+ T.any(
967
+ OpenAI::Responses::ResponsesClientEvent::Moderation,
968
+ OpenAI::Internal::AnyHash
969
+ )
970
+ end
971
+
972
+ # The moderation model to use for moderated completions, e.g.
973
+ # 'omni-moderation-latest'.
974
+ sig { returns(String) }
975
+ attr_accessor :model
976
+
977
+ # Configuration for running moderation on the input and output of this response.
978
+ sig { params(model: String).returns(T.attached_class) }
979
+ def self.new(
980
+ # The moderation model to use for moderated completions, e.g.
981
+ # 'omni-moderation-latest'.
982
+ model:
983
+ )
984
+ end
985
+
986
+ sig { override.returns({ model: String }) }
987
+ def to_hash
988
+ end
989
+ end
990
+
921
991
  # The retention policy for the prompt cache. Set to `24h` to enable extended
922
992
  # prompt caching, which keeps cached prefixes active for longer, up to a maximum
923
993
  # of 24 hours.
924
994
  # [Learn more](https://platform.openai.com/docs/guides/prompt-caching#prompt-cache-retention).
995
+ # For `gpt-5.5`, `gpt-5.5-pro`, and future models, only `24h` is supported.
996
+ #
997
+ # For older models that support both `in_memory` and `24h`, the default depends on
998
+ # your organization's data retention policy:
999
+ #
1000
+ # - Organizations without ZDR enabled default to `24h`.
1001
+ # - Organizations with ZDR enabled default to `in_memory` when
1002
+ # `prompt_cache_retention` is not specified.
925
1003
  module PromptCacheRetention
926
1004
  extend OpenAI::Internal::Type::Enum
927
1005