openai 0.56.0 → 0.57.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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +1 -1
  4. data/lib/openai/models/conversations/conversation_item.rb +4 -1
  5. data/lib/openai/models/conversations/conversation_item_list.rb +2 -2
  6. data/lib/openai/models/responses/compacted_response.rb +2 -2
  7. data/lib/openai/models/responses/computer_action.rb +45 -5
  8. data/lib/openai/models/responses/response.rb +2 -2
  9. data/lib/openai/models/responses/response_computer_tool_call.rb +45 -5
  10. data/lib/openai/models/responses/response_computer_tool_call_output_item.rb +31 -22
  11. data/lib/openai/models/responses/response_custom_tool_call_item.rb +53 -0
  12. data/lib/openai/models/responses/response_custom_tool_call_output_item.rb +53 -0
  13. data/lib/openai/models/responses/response_function_tool_call_item.rb +31 -1
  14. data/lib/openai/models/responses/response_function_tool_call_output_item.rb +14 -6
  15. data/lib/openai/models/responses/response_input_message_item.rb +8 -20
  16. data/lib/openai/models/responses/response_item.rb +16 -1
  17. data/lib/openai/models/responses/response_item_list.rb +2 -2
  18. data/lib/openai/models/responses/response_output_item.rb +120 -1
  19. data/lib/openai/models/responses/response_output_item_added_event.rb +2 -2
  20. data/lib/openai/models/responses/response_output_item_done_event.rb +2 -2
  21. data/lib/openai/resources/conversations/items.rb +2 -2
  22. data/lib/openai/resources/responses/input_items.rb +1 -1
  23. data/lib/openai/version.rb +1 -1
  24. data/lib/openai.rb +4 -2
  25. data/rbi/openai/models/conversations/conversation_item.rbi +1 -0
  26. data/rbi/openai/models/conversations/conversation_item_list.rbi +1 -0
  27. data/rbi/openai/models/responses/compacted_response.rbi +6 -1
  28. data/rbi/openai/models/responses/computer_action.rbi +71 -11
  29. data/rbi/openai/models/responses/response.rbi +6 -1
  30. data/rbi/openai/models/responses/response_computer_tool_call.rbi +71 -11
  31. data/rbi/openai/models/responses/response_computer_tool_call_output_item.rbi +71 -65
  32. data/rbi/openai/models/responses/response_custom_tool_call_item.rbi +111 -0
  33. data/rbi/openai/models/responses/response_custom_tool_call_output_item.rbi +111 -0
  34. data/rbi/openai/models/responses/response_function_tool_call_item.rbi +81 -3
  35. data/rbi/openai/models/responses/response_function_tool_call_output_item.rbi +19 -18
  36. data/rbi/openai/models/responses/response_input_message_item.rbi +8 -49
  37. data/rbi/openai/models/responses/response_item.rbi +5 -1
  38. data/rbi/openai/models/responses/response_item_list.rbi +5 -1
  39. data/rbi/openai/models/responses/response_output_item.rbi +186 -1
  40. data/rbi/openai/models/responses/response_output_item_added_event.rbi +6 -1
  41. data/rbi/openai/models/responses/response_output_item_done_event.rbi +6 -1
  42. data/sig/openai/models/conversations/conversation_item.rbs +1 -0
  43. data/sig/openai/models/responses/computer_action.rbs +53 -11
  44. data/sig/openai/models/responses/response_computer_tool_call.rbs +53 -11
  45. data/sig/openai/models/responses/response_computer_tool_call_output_item.rbs +23 -19
  46. data/sig/openai/models/responses/response_custom_tool_call_item.rbs +52 -0
  47. data/sig/openai/models/responses/response_custom_tool_call_output_item.rbs +52 -0
  48. data/sig/openai/models/responses/response_function_tool_call_item.rbs +38 -3
  49. data/sig/openai/models/responses/response_function_tool_call_output_item.rbs +10 -7
  50. data/sig/openai/models/responses/response_input_message_item.rbs +7 -21
  51. data/sig/openai/models/responses/response_item.rbs +4 -0
  52. data/sig/openai/models/responses/response_output_item.rbs +86 -0
  53. metadata +8 -2
@@ -13,8 +13,10 @@ module OpenAI
13
13
  OpenAI::Responses::ResponseOutputMessage,
14
14
  OpenAI::Responses::ResponseFileSearchToolCall,
15
15
  OpenAI::Responses::ResponseFunctionToolCall,
16
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem,
16
17
  OpenAI::Responses::ResponseFunctionWebSearch,
17
18
  OpenAI::Responses::ResponseComputerToolCall,
19
+ OpenAI::Responses::ResponseComputerToolCallOutputItem,
18
20
  OpenAI::Responses::ResponseReasoningItem,
19
21
  OpenAI::Responses::ResponseToolSearchCall,
20
22
  OpenAI::Responses::ResponseToolSearchOutputItem,
@@ -22,6 +24,7 @@ module OpenAI
22
24
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall,
23
25
  OpenAI::Responses::ResponseCodeInterpreterToolCall,
24
26
  OpenAI::Responses::ResponseOutputItem::LocalShellCall,
27
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput,
25
28
  OpenAI::Responses::ResponseFunctionShellToolCall,
26
29
  OpenAI::Responses::ResponseFunctionShellToolCallOutput,
27
30
  OpenAI::Responses::ResponseApplyPatchToolCall,
@@ -29,7 +32,9 @@ module OpenAI
29
32
  OpenAI::Responses::ResponseOutputItem::McpCall,
30
33
  OpenAI::Responses::ResponseOutputItem::McpListTools,
31
34
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest,
32
- OpenAI::Responses::ResponseCustomToolCall
35
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse,
36
+ OpenAI::Responses::ResponseCustomToolCall,
37
+ OpenAI::Responses::ResponseCustomToolCallOutputItem
33
38
  )
34
39
  end
35
40
 
@@ -348,6 +353,118 @@ module OpenAI
348
353
  end
349
354
  end
350
355
 
356
+ class LocalShellCallOutput < OpenAI::Internal::Type::BaseModel
357
+ OrHash =
358
+ T.type_alias do
359
+ T.any(
360
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput,
361
+ OpenAI::Internal::AnyHash
362
+ )
363
+ end
364
+
365
+ # The unique ID of the local shell tool call generated by the model.
366
+ sig { returns(String) }
367
+ attr_accessor :id
368
+
369
+ # A JSON string of the output of the local shell tool call.
370
+ sig { returns(String) }
371
+ attr_accessor :output
372
+
373
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
374
+ sig { returns(Symbol) }
375
+ attr_accessor :type
376
+
377
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
378
+ sig do
379
+ returns(
380
+ T.nilable(
381
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
382
+ )
383
+ )
384
+ end
385
+ attr_accessor :status
386
+
387
+ # The output of a local shell tool call.
388
+ sig do
389
+ params(
390
+ id: String,
391
+ output: String,
392
+ status:
393
+ T.nilable(
394
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::OrSymbol
395
+ ),
396
+ type: Symbol
397
+ ).returns(T.attached_class)
398
+ end
399
+ def self.new(
400
+ # The unique ID of the local shell tool call generated by the model.
401
+ id:,
402
+ # A JSON string of the output of the local shell tool call.
403
+ output:,
404
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
405
+ status: nil,
406
+ # The type of the local shell tool call output. Always `local_shell_call_output`.
407
+ type: :local_shell_call_output
408
+ )
409
+ end
410
+
411
+ sig do
412
+ override.returns(
413
+ {
414
+ id: String,
415
+ output: String,
416
+ type: Symbol,
417
+ status:
418
+ T.nilable(
419
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
420
+ )
421
+ }
422
+ )
423
+ end
424
+ def to_hash
425
+ end
426
+
427
+ # The status of the item. One of `in_progress`, `completed`, or `incomplete`.
428
+ module Status
429
+ extend OpenAI::Internal::Type::Enum
430
+
431
+ TaggedSymbol =
432
+ T.type_alias do
433
+ T.all(
434
+ Symbol,
435
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status
436
+ )
437
+ end
438
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
439
+
440
+ IN_PROGRESS =
441
+ T.let(
442
+ :in_progress,
443
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
444
+ )
445
+ COMPLETED =
446
+ T.let(
447
+ :completed,
448
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
449
+ )
450
+ INCOMPLETE =
451
+ T.let(
452
+ :incomplete,
453
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
454
+ )
455
+
456
+ sig do
457
+ override.returns(
458
+ T::Array[
459
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::Status::TaggedSymbol
460
+ ]
461
+ )
462
+ end
463
+ def self.values
464
+ end
465
+ end
466
+ end
467
+
351
468
  class McpCall < OpenAI::Internal::Type::BaseModel
352
469
  OrHash =
353
470
  T.type_alias do
@@ -729,6 +846,74 @@ module OpenAI
729
846
  end
730
847
  end
731
848
 
849
+ class McpApprovalResponse < OpenAI::Internal::Type::BaseModel
850
+ OrHash =
851
+ T.type_alias do
852
+ T.any(
853
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse,
854
+ OpenAI::Internal::AnyHash
855
+ )
856
+ end
857
+
858
+ # The unique ID of the approval response
859
+ sig { returns(String) }
860
+ attr_accessor :id
861
+
862
+ # The ID of the approval request being answered.
863
+ sig { returns(String) }
864
+ attr_accessor :approval_request_id
865
+
866
+ # Whether the request was approved.
867
+ sig { returns(T::Boolean) }
868
+ attr_accessor :approve
869
+
870
+ # The type of the item. Always `mcp_approval_response`.
871
+ sig { returns(Symbol) }
872
+ attr_accessor :type
873
+
874
+ # Optional reason for the decision.
875
+ sig { returns(T.nilable(String)) }
876
+ attr_accessor :reason
877
+
878
+ # A response to an MCP approval request.
879
+ sig do
880
+ params(
881
+ id: String,
882
+ approval_request_id: String,
883
+ approve: T::Boolean,
884
+ reason: T.nilable(String),
885
+ type: Symbol
886
+ ).returns(T.attached_class)
887
+ end
888
+ def self.new(
889
+ # The unique ID of the approval response
890
+ id:,
891
+ # The ID of the approval request being answered.
892
+ approval_request_id:,
893
+ # Whether the request was approved.
894
+ approve:,
895
+ # Optional reason for the decision.
896
+ reason: nil,
897
+ # The type of the item. Always `mcp_approval_response`.
898
+ type: :mcp_approval_response
899
+ )
900
+ end
901
+
902
+ sig do
903
+ override.returns(
904
+ {
905
+ id: String,
906
+ approval_request_id: String,
907
+ approve: T::Boolean,
908
+ type: Symbol,
909
+ reason: T.nilable(String)
910
+ }
911
+ )
912
+ end
913
+ def to_hash
914
+ end
915
+ end
916
+
732
917
  sig do
733
918
  override.returns(
734
919
  T::Array[OpenAI::Responses::ResponseOutputItem::Variants]
@@ -36,8 +36,10 @@ module OpenAI
36
36
  OpenAI::Responses::ResponseOutputMessage::OrHash,
37
37
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
38
38
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
39
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
39
40
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
40
41
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
42
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
41
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
42
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
43
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -45,6 +47,7 @@ module OpenAI
45
47
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
46
48
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
47
49
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
50
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
48
51
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
49
52
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
50
53
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -52,7 +55,9 @@ module OpenAI
52
55
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
53
56
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
54
57
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
55
- OpenAI::Responses::ResponseCustomToolCall::OrHash
58
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
59
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
60
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
56
61
  ),
57
62
  output_index: Integer,
58
63
  sequence_number: Integer,
@@ -36,8 +36,10 @@ module OpenAI
36
36
  OpenAI::Responses::ResponseOutputMessage::OrHash,
37
37
  OpenAI::Responses::ResponseFileSearchToolCall::OrHash,
38
38
  OpenAI::Responses::ResponseFunctionToolCall::OrHash,
39
+ OpenAI::Responses::ResponseFunctionToolCallOutputItem::OrHash,
39
40
  OpenAI::Responses::ResponseFunctionWebSearch::OrHash,
40
41
  OpenAI::Responses::ResponseComputerToolCall::OrHash,
42
+ OpenAI::Responses::ResponseComputerToolCallOutputItem::OrHash,
41
43
  OpenAI::Responses::ResponseReasoningItem::OrHash,
42
44
  OpenAI::Responses::ResponseToolSearchCall::OrHash,
43
45
  OpenAI::Responses::ResponseToolSearchOutputItem::OrHash,
@@ -45,6 +47,7 @@ module OpenAI
45
47
  OpenAI::Responses::ResponseOutputItem::ImageGenerationCall::OrHash,
46
48
  OpenAI::Responses::ResponseCodeInterpreterToolCall::OrHash,
47
49
  OpenAI::Responses::ResponseOutputItem::LocalShellCall::OrHash,
50
+ OpenAI::Responses::ResponseOutputItem::LocalShellCallOutput::OrHash,
48
51
  OpenAI::Responses::ResponseFunctionShellToolCall::OrHash,
49
52
  OpenAI::Responses::ResponseFunctionShellToolCallOutput::OrHash,
50
53
  OpenAI::Responses::ResponseApplyPatchToolCall::OrHash,
@@ -52,7 +55,9 @@ module OpenAI
52
55
  OpenAI::Responses::ResponseOutputItem::McpCall::OrHash,
53
56
  OpenAI::Responses::ResponseOutputItem::McpListTools::OrHash,
54
57
  OpenAI::Responses::ResponseOutputItem::McpApprovalRequest::OrHash,
55
- OpenAI::Responses::ResponseCustomToolCall::OrHash
58
+ OpenAI::Responses::ResponseOutputItem::McpApprovalResponse::OrHash,
59
+ OpenAI::Responses::ResponseCustomToolCall::OrHash,
60
+ OpenAI::Responses::ResponseCustomToolCallOutputItem::OrHash
56
61
  ),
57
62
  output_index: Integer,
58
63
  sequence_number: Integer,
@@ -15,6 +15,7 @@ module OpenAI
15
15
  | OpenAI::Responses::ResponseToolSearchCall
16
16
  | OpenAI::Responses::ResponseToolSearchOutputItem
17
17
  | OpenAI::Responses::ResponseReasoningItem
18
+ | OpenAI::Responses::ResponseCompactionItem
18
19
  | OpenAI::Responses::ResponseCodeInterpreterToolCall
19
20
  | OpenAI::Conversations::ConversationItem::LocalShellCall
20
21
  | OpenAI::Conversations::ConversationItem::LocalShellCallOutput
@@ -20,7 +20,8 @@ module OpenAI
20
20
  button: OpenAI::Models::Responses::ComputerAction::Click::button,
21
21
  type: :click,
22
22
  x: Integer,
23
- y_: Integer
23
+ y_: Integer,
24
+ keys: ::Array[String]?
24
25
  }
25
26
 
26
27
  class Click < OpenAI::Internal::Type::BaseModel
@@ -32,10 +33,13 @@ module OpenAI
32
33
 
33
34
  attr_accessor y_: Integer
34
35
 
36
+ attr_accessor keys: ::Array[String]?
37
+
35
38
  def initialize: (
36
39
  button: OpenAI::Models::Responses::ComputerAction::Click::button,
37
40
  x: Integer,
38
41
  y_: Integer,
42
+ ?keys: ::Array[String]?,
39
43
  ?type: :click
40
44
  ) -> void
41
45
 
@@ -43,7 +47,8 @@ module OpenAI
43
47
  button: OpenAI::Models::Responses::ComputerAction::Click::button,
44
48
  type: :click,
45
49
  x: Integer,
46
- y_: Integer
50
+ y_: Integer,
51
+ keys: ::Array[String]?
47
52
  }
48
53
 
49
54
  type button = :left | :right | :wheel | :back | :forward
@@ -61,9 +66,17 @@ module OpenAI
61
66
  end
62
67
  end
63
68
 
64
- type double_click = { type: :double_click, x: Integer, y_: Integer }
69
+ type double_click =
70
+ {
71
+ keys: ::Array[String]?,
72
+ type: :double_click,
73
+ x: Integer,
74
+ y_: Integer
75
+ }
65
76
 
66
77
  class DoubleClick < OpenAI::Internal::Type::BaseModel
78
+ attr_accessor keys: ::Array[String]?
79
+
67
80
  attr_accessor type: :double_click
68
81
 
69
82
  attr_accessor x: Integer
@@ -71,18 +84,25 @@ module OpenAI
71
84
  attr_accessor y_: Integer
72
85
 
73
86
  def initialize: (
87
+ keys: ::Array[String]?,
74
88
  x: Integer,
75
89
  y_: Integer,
76
90
  ?type: :double_click
77
91
  ) -> void
78
92
 
79
- def to_hash: -> { type: :double_click, x: Integer, y_: Integer }
93
+ def to_hash: -> {
94
+ keys: ::Array[String]?,
95
+ type: :double_click,
96
+ x: Integer,
97
+ y_: Integer
98
+ }
80
99
  end
81
100
 
82
101
  type drag =
83
102
  {
84
103
  path: ::Array[OpenAI::Responses::ComputerAction::Drag::Path],
85
- type: :drag
104
+ type: :drag,
105
+ keys: ::Array[String]?
86
106
  }
87
107
 
88
108
  class Drag < OpenAI::Internal::Type::BaseModel
@@ -90,14 +110,18 @@ module OpenAI
90
110
 
91
111
  attr_accessor type: :drag
92
112
 
113
+ attr_accessor keys: ::Array[String]?
114
+
93
115
  def initialize: (
94
116
  path: ::Array[OpenAI::Responses::ComputerAction::Drag::Path],
117
+ ?keys: ::Array[String]?,
95
118
  ?type: :drag
96
119
  ) -> void
97
120
 
98
121
  def to_hash: -> {
99
122
  path: ::Array[OpenAI::Responses::ComputerAction::Drag::Path],
100
- type: :drag
123
+ type: :drag,
124
+ keys: ::Array[String]?
101
125
  }
102
126
 
103
127
  type path = { x: Integer, y_: Integer }
@@ -125,7 +149,8 @@ module OpenAI
125
149
  def to_hash: -> { keys: ::Array[String], type: :keypress }
126
150
  end
127
151
 
128
- type move = { type: :move, x: Integer, y_: Integer }
152
+ type move =
153
+ { type: :move, x: Integer, y_: Integer, keys: ::Array[String]? }
129
154
 
130
155
  class Move < OpenAI::Internal::Type::BaseModel
131
156
  attr_accessor type: :move
@@ -134,9 +159,21 @@ module OpenAI
134
159
 
135
160
  attr_accessor y_: Integer
136
161
 
137
- def initialize: (x: Integer, y_: Integer, ?type: :move) -> void
162
+ attr_accessor keys: ::Array[String]?
138
163
 
139
- def to_hash: -> { type: :move, x: Integer, y_: Integer }
164
+ def initialize: (
165
+ x: Integer,
166
+ y_: Integer,
167
+ ?keys: ::Array[String]?,
168
+ ?type: :move
169
+ ) -> void
170
+
171
+ def to_hash: -> {
172
+ type: :move,
173
+ x: Integer,
174
+ y_: Integer,
175
+ keys: ::Array[String]?
176
+ }
140
177
  end
141
178
 
142
179
  type screenshot = { type: :screenshot }
@@ -155,7 +192,8 @@ module OpenAI
155
192
  scroll_y: Integer,
156
193
  type: :scroll,
157
194
  x: Integer,
158
- y_: Integer
195
+ y_: Integer,
196
+ keys: ::Array[String]?
159
197
  }
160
198
 
161
199
  class Scroll < OpenAI::Internal::Type::BaseModel
@@ -169,11 +207,14 @@ module OpenAI
169
207
 
170
208
  attr_accessor y_: Integer
171
209
 
210
+ attr_accessor keys: ::Array[String]?
211
+
172
212
  def initialize: (
173
213
  scroll_x: Integer,
174
214
  scroll_y: Integer,
175
215
  x: Integer,
176
216
  y_: Integer,
217
+ ?keys: ::Array[String]?,
177
218
  ?type: :scroll
178
219
  ) -> void
179
220
 
@@ -182,7 +223,8 @@ module OpenAI
182
223
  scroll_y: Integer,
183
224
  type: :scroll,
184
225
  x: Integer,
185
- y_: Integer
226
+ y_: Integer,
227
+ keys: ::Array[String]?
186
228
  }
187
229
  end
188
230
 
@@ -115,7 +115,8 @@ module OpenAI
115
115
  button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::button,
116
116
  type: :click,
117
117
  x: Integer,
118
- y_: Integer
118
+ y_: Integer,
119
+ keys: ::Array[String]?
119
120
  }
120
121
 
121
122
  class Click < OpenAI::Internal::Type::BaseModel
@@ -127,10 +128,13 @@ module OpenAI
127
128
 
128
129
  attr_accessor y_: Integer
129
130
 
131
+ attr_accessor keys: ::Array[String]?
132
+
130
133
  def initialize: (
131
134
  button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::button,
132
135
  x: Integer,
133
136
  y_: Integer,
137
+ ?keys: ::Array[String]?,
134
138
  ?type: :click
135
139
  ) -> void
136
140
 
@@ -138,7 +142,8 @@ module OpenAI
138
142
  button: OpenAI::Models::Responses::ResponseComputerToolCall::Action::Click::button,
139
143
  type: :click,
140
144
  x: Integer,
141
- y_: Integer
145
+ y_: Integer,
146
+ keys: ::Array[String]?
142
147
  }
143
148
 
144
149
  type button = :left | :right | :wheel | :back | :forward
@@ -156,9 +161,17 @@ module OpenAI
156
161
  end
157
162
  end
158
163
 
159
- type double_click = { type: :double_click, x: Integer, y_: Integer }
164
+ type double_click =
165
+ {
166
+ keys: ::Array[String]?,
167
+ type: :double_click,
168
+ x: Integer,
169
+ y_: Integer
170
+ }
160
171
 
161
172
  class DoubleClick < OpenAI::Internal::Type::BaseModel
173
+ attr_accessor keys: ::Array[String]?
174
+
162
175
  attr_accessor type: :double_click
163
176
 
164
177
  attr_accessor x: Integer
@@ -166,18 +179,25 @@ module OpenAI
166
179
  attr_accessor y_: Integer
167
180
 
168
181
  def initialize: (
182
+ keys: ::Array[String]?,
169
183
  x: Integer,
170
184
  y_: Integer,
171
185
  ?type: :double_click
172
186
  ) -> void
173
187
 
174
- def to_hash: -> { type: :double_click, x: Integer, y_: Integer }
188
+ def to_hash: -> {
189
+ keys: ::Array[String]?,
190
+ type: :double_click,
191
+ x: Integer,
192
+ y_: Integer
193
+ }
175
194
  end
176
195
 
177
196
  type drag =
178
197
  {
179
198
  path: ::Array[OpenAI::Responses::ResponseComputerToolCall::Action::Drag::Path],
180
- type: :drag
199
+ type: :drag,
200
+ keys: ::Array[String]?
181
201
  }
182
202
 
183
203
  class Drag < OpenAI::Internal::Type::BaseModel
@@ -185,14 +205,18 @@ module OpenAI
185
205
 
186
206
  attr_accessor type: :drag
187
207
 
208
+ attr_accessor keys: ::Array[String]?
209
+
188
210
  def initialize: (
189
211
  path: ::Array[OpenAI::Responses::ResponseComputerToolCall::Action::Drag::Path],
212
+ ?keys: ::Array[String]?,
190
213
  ?type: :drag
191
214
  ) -> void
192
215
 
193
216
  def to_hash: -> {
194
217
  path: ::Array[OpenAI::Responses::ResponseComputerToolCall::Action::Drag::Path],
195
- type: :drag
218
+ type: :drag,
219
+ keys: ::Array[String]?
196
220
  }
197
221
 
198
222
  type path = { x: Integer, y_: Integer }
@@ -220,7 +244,8 @@ module OpenAI
220
244
  def to_hash: -> { keys: ::Array[String], type: :keypress }
221
245
  end
222
246
 
223
- type move = { type: :move, x: Integer, y_: Integer }
247
+ type move =
248
+ { type: :move, x: Integer, y_: Integer, keys: ::Array[String]? }
224
249
 
225
250
  class Move < OpenAI::Internal::Type::BaseModel
226
251
  attr_accessor type: :move
@@ -229,9 +254,21 @@ module OpenAI
229
254
 
230
255
  attr_accessor y_: Integer
231
256
 
232
- def initialize: (x: Integer, y_: Integer, ?type: :move) -> void
257
+ attr_accessor keys: ::Array[String]?
233
258
 
234
- def to_hash: -> { type: :move, x: Integer, y_: Integer }
259
+ def initialize: (
260
+ x: Integer,
261
+ y_: Integer,
262
+ ?keys: ::Array[String]?,
263
+ ?type: :move
264
+ ) -> void
265
+
266
+ def to_hash: -> {
267
+ type: :move,
268
+ x: Integer,
269
+ y_: Integer,
270
+ keys: ::Array[String]?
271
+ }
235
272
  end
236
273
 
237
274
  type screenshot = { type: :screenshot }
@@ -250,7 +287,8 @@ module OpenAI
250
287
  scroll_y: Integer,
251
288
  type: :scroll,
252
289
  x: Integer,
253
- y_: Integer
290
+ y_: Integer,
291
+ keys: ::Array[String]?
254
292
  }
255
293
 
256
294
  class Scroll < OpenAI::Internal::Type::BaseModel
@@ -264,11 +302,14 @@ module OpenAI
264
302
 
265
303
  attr_accessor y_: Integer
266
304
 
305
+ attr_accessor keys: ::Array[String]?
306
+
267
307
  def initialize: (
268
308
  scroll_x: Integer,
269
309
  scroll_y: Integer,
270
310
  x: Integer,
271
311
  y_: Integer,
312
+ ?keys: ::Array[String]?,
272
313
  ?type: :scroll
273
314
  ) -> void
274
315
 
@@ -277,7 +318,8 @@ module OpenAI
277
318
  scroll_y: Integer,
278
319
  type: :scroll,
279
320
  x: Integer,
280
- y_: Integer
321
+ y_: Integer,
322
+ keys: ::Array[String]?
281
323
  }
282
324
  end
283
325