openai 0.90.0 → 0.91.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +19 -0
- data/README.md +1 -1
- data/examples/realtime/README.md +8 -0
- data/examples/realtime/browser/README.md +167 -0
- data/examples/realtime/browser/index.html +19 -0
- data/examples/realtime/browser/page.js +21 -0
- data/examples/realtime/browser/peer.js +180 -0
- data/examples/realtime/browser/server.rb +281 -0
- data/examples/responses/websocket_workflows.rb +66 -6
- data/lib/openai/auth/workload_identity.rb +5 -1
- data/lib/openai/auth/workload_identity_auth.rb +2 -2
- data/lib/openai/auth/x509_token_exchange.rb +1 -1
- data/lib/openai/helpers/local_audio/process.rb +1 -1
- data/lib/openai/helpers/responses_websocket/connection.rb +2 -1
- data/lib/openai/helpers/responses_websocket/session.rb +551 -0
- data/lib/openai/helpers/responses_websocket.rb +1 -0
- data/lib/openai/helpers/sorbet.rb +1 -1
- data/lib/openai/helpers/websocket/async_websocket_transport.rb +6 -1
- data/lib/openai/internal/poller.rb +2 -2
- data/lib/openai/internal/transport/base_client.rb +1 -1
- data/lib/openai/internal/util.rb +1 -1
- data/lib/openai/models/beta/agents/session_update_params.rb +108 -1
- data/lib/openai/models/beta/beta_response.rb +9 -3
- data/lib/openai/models/beta/beta_response_compaction_compacting_event.rb +75 -0
- data/lib/openai/models/beta/beta_response_stream_event.rb +4 -1
- data/lib/openai/models/beta/beta_responses_client_event.rb +25 -4
- data/lib/openai/models/beta/beta_responses_server_event.rb +39 -1
- data/lib/openai/models/beta/response_compact_params.rb +9 -3
- data/lib/openai/models/beta/response_create_params.rb +21 -4
- data/lib/openai/models/beta/session_turn_error.rb +3 -0
- data/lib/openai/models/chat_model.rb +3 -1
- data/lib/openai/models/responses/response_compact_params.rb +9 -3
- data/lib/openai/models/responses/response_compaction_compacting_event.rb +49 -0
- data/lib/openai/models/responses/response_create_params.rb +12 -1
- data/lib/openai/models/responses/response_stream_event.rb +4 -1
- data/lib/openai/models/responses/responses_client_event.rb +12 -1
- data/lib/openai/models/responses/responses_server_event.rb +36 -1
- data/lib/openai/models/webhooks/realtime_call_incoming_webhook_event.rb +6 -8
- data/lib/openai/resources/beta/agents/sessions.rb +6 -2
- data/lib/openai/resources/beta/responses.rb +2 -2
- data/lib/openai/resources/responses.rb +2 -2
- data/lib/openai/version.rb +1 -1
- data/lib/openai.rb +2 -0
- data/rbi/openai/helpers/responses_websocket/connection.rbi +5 -0
- data/rbi/openai/helpers/responses_websocket/session.rbi +206 -0
- data/rbi/openai/models/beta/agents/session_update_params.rbi +178 -0
- data/rbi/openai/models/beta/beta_response.rbi +6 -1
- data/rbi/openai/models/beta/beta_response_compaction_compacting_event.rbi +136 -0
- data/rbi/openai/models/beta/beta_response_stream_event.rbi +1 -0
- data/rbi/openai/models/beta/beta_responses_client_event.rbi +27 -4
- data/rbi/openai/models/beta/beta_responses_server_event.rbi +77 -0
- data/rbi/openai/models/beta/response_compact_params.rbi +6 -1
- data/rbi/openai/models/beta/response_create_params.rbi +21 -1
- data/rbi/openai/models/beta/session_turn_error.rbi +6 -0
- data/rbi/openai/models/chat_model.rbi +3 -1
- data/rbi/openai/models/responses/response_compact_params.rbi +6 -1
- data/rbi/openai/models/responses/response_compaction_compacting_event.rbi +78 -0
- data/rbi/openai/models/responses/response_create_params.rbi +15 -0
- data/rbi/openai/models/responses/response_stream_event.rbi +1 -0
- data/rbi/openai/models/responses/responses_client_event.rbi +15 -0
- data/rbi/openai/models/responses/responses_server_event.rbi +71 -0
- data/rbi/openai/models/webhooks/realtime_call_incoming_webhook_event.rbi +6 -8
- data/rbi/openai/resources/beta/agents/sessions.rbi +5 -1
- data/responses-websocket.md +117 -10
- data/sig/openai/helpers/responses_websocket/connection.rbs +5 -0
- data/sig/openai/helpers/responses_websocket/session.rbs +123 -0
- data/sig/openai/models/beta/agents/session_update_params.rbs +99 -0
- data/sig/openai/models/beta/beta_response.rbs +6 -2
- data/sig/openai/models/beta/beta_response_compaction_compacting_event.rbs +58 -0
- data/sig/openai/models/beta/beta_response_stream_event.rbs +1 -0
- data/sig/openai/models/beta/beta_responses_client_event.rbs +13 -2
- data/sig/openai/models/beta/beta_responses_server_event.rbs +35 -0
- data/sig/openai/models/beta/response_compact_params.rbs +6 -2
- data/sig/openai/models/beta/response_create_params.rbs +13 -2
- data/sig/openai/models/beta/session_turn_error.rbs +4 -0
- data/sig/openai/models/chat_model.rbs +6 -2
- data/sig/openai/models/responses/response_compact_params.rbs +6 -2
- data/sig/openai/models/responses/response_compaction_compacting_event.rbs +37 -0
- data/sig/openai/models/responses/response_create_params.rbs +7 -0
- data/sig/openai/models/responses/response_stream_event.rbs +1 -0
- data/sig/openai/models/responses/responses_client_event.rbs +7 -0
- data/sig/openai/models/responses/responses_server_event.rbs +32 -0
- data/sig/openai/resources/beta/agents/sessions.rbs +1 -0
- metadata +16 -2
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
module Responses
|
|
6
|
+
class SessionError < OpenAI::Errors::Error
|
|
7
|
+
sig { returns(NilClass) }
|
|
8
|
+
def cause
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
class BufferError < SessionError
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class StateLostError < SessionError
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class RequestError < SessionError
|
|
19
|
+
sig { returns(Connection::ServerEvent) }
|
|
20
|
+
attr_reader :event
|
|
21
|
+
|
|
22
|
+
# @api private
|
|
23
|
+
sig { params(event: Connection::ServerEvent).returns(T.attached_class) }
|
|
24
|
+
def self.new(event)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class SessionLimits
|
|
29
|
+
sig { returns(Integer) }
|
|
30
|
+
attr_reader :max_lanes, :max_events_per_lane, :max_events, :max_bytes_per_lane, :max_bytes, :max_response_bytes
|
|
31
|
+
|
|
32
|
+
sig do
|
|
33
|
+
params(
|
|
34
|
+
max_lanes: Integer,
|
|
35
|
+
max_events_per_lane: Integer,
|
|
36
|
+
max_events: Integer,
|
|
37
|
+
max_bytes_per_lane: Integer,
|
|
38
|
+
max_bytes: Integer,
|
|
39
|
+
max_response_bytes: Integer
|
|
40
|
+
)
|
|
41
|
+
.returns(T.attached_class)
|
|
42
|
+
end
|
|
43
|
+
def self.new(
|
|
44
|
+
max_lanes:,
|
|
45
|
+
max_events_per_lane:,
|
|
46
|
+
max_events:,
|
|
47
|
+
max_bytes_per_lane:,
|
|
48
|
+
max_bytes:,
|
|
49
|
+
max_response_bytes:
|
|
50
|
+
)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
class SessionLane
|
|
55
|
+
sig { returns(T.nilable(String)) }
|
|
56
|
+
attr_reader :stream_id
|
|
57
|
+
|
|
58
|
+
sig { params(event: Connection::ClientEvent).void }
|
|
59
|
+
def send_event(event)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
sig { returns(Connection::ServerEvent) }
|
|
63
|
+
def receive
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
sig { returns(OpenAI::Responses::Response) }
|
|
67
|
+
def get_final_response
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
sig { void }
|
|
71
|
+
def close
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @api private
|
|
75
|
+
sig {
|
|
76
|
+
params(session: Session, stream_id: T.nilable(String), pending_steers: T::Hash[String, T.untyped]).returns(
|
|
77
|
+
T.attached_class
|
|
78
|
+
)
|
|
79
|
+
}
|
|
80
|
+
def self.new(session, stream_id, pending_steers)
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
# @api private
|
|
84
|
+
sig {
|
|
85
|
+
params(event: Connection::ServerEvent, bytes: Integer, raw_command_sent: T::Boolean).returns(
|
|
86
|
+
T.nilable(T::Boolean)
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
def enqueue(event, bytes, raw_command_sent = false)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# @api private
|
|
93
|
+
sig { params(error: T.nilable(Exception)).void }
|
|
94
|
+
def discard(error = nil)
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @api private
|
|
98
|
+
sig { void }
|
|
99
|
+
def wake
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
class Session
|
|
104
|
+
sig { returns(SessionLimits) }
|
|
105
|
+
attr_reader :limits
|
|
106
|
+
|
|
107
|
+
sig { returns(SessionLane) }
|
|
108
|
+
attr_reader :default
|
|
109
|
+
|
|
110
|
+
sig do
|
|
111
|
+
type_parameters(:Result)
|
|
112
|
+
.params(
|
|
113
|
+
client: OpenAI::Client,
|
|
114
|
+
limits: SessionLimits,
|
|
115
|
+
request_options: T.nilable(OpenAI::RequestOptions::OrHash),
|
|
116
|
+
websocket_base_url: T.nilable(String),
|
|
117
|
+
transport: T.anything,
|
|
118
|
+
transport_options: T::Hash[Symbol, T.anything],
|
|
119
|
+
block: T.proc.params(session: Session).returns(T.type_parameter(:Result))
|
|
120
|
+
)
|
|
121
|
+
.returns(T.type_parameter(:Result))
|
|
122
|
+
end
|
|
123
|
+
def self.open(
|
|
124
|
+
client:,
|
|
125
|
+
limits:,
|
|
126
|
+
request_options: nil,
|
|
127
|
+
websocket_base_url: nil,
|
|
128
|
+
transport: nil,
|
|
129
|
+
transport_options: {},
|
|
130
|
+
&block
|
|
131
|
+
)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
sig { params(stream_id: T.nilable(String)).returns(SessionLane) }
|
|
135
|
+
def lane(stream_id)
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
sig do
|
|
139
|
+
params(
|
|
140
|
+
restore: T.proc.params(session: Session).returns(T.anything),
|
|
141
|
+
client: OpenAI::Client,
|
|
142
|
+
request_options: T.nilable(OpenAI::RequestOptions::OrHash)
|
|
143
|
+
)
|
|
144
|
+
.returns(T.self_type)
|
|
145
|
+
end
|
|
146
|
+
def reconnect(restore:, client: T.unsafe(nil), request_options: nil)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
sig { void }
|
|
150
|
+
def close
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
# @api private
|
|
154
|
+
sig {
|
|
155
|
+
params(
|
|
156
|
+
task: T.untyped,
|
|
157
|
+
client: OpenAI::Client,
|
|
158
|
+
limits: SessionLimits,
|
|
159
|
+
request_options: T.nilable(OpenAI::RequestOptions::OrHash),
|
|
160
|
+
websocket_base_url: T.nilable(String),
|
|
161
|
+
transport: T.anything,
|
|
162
|
+
transport_options: T::Hash[Symbol, T.anything]
|
|
163
|
+
)
|
|
164
|
+
.returns(T.attached_class)
|
|
165
|
+
}
|
|
166
|
+
def self.new(task:, client:, limits:, request_options:, websocket_base_url:, transport:, transport_options:)
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# @api private
|
|
170
|
+
sig { void }
|
|
171
|
+
def start
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# @api private
|
|
175
|
+
sig { params(event: Connection::ClientEvent).returns(OpenAI::Internal::AnyHash) }
|
|
176
|
+
def encode_client_event(event)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# @api private
|
|
180
|
+
sig { params(event: Connection::ClientEvent).void }
|
|
181
|
+
def send_event(event)
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
# @api private
|
|
185
|
+
sig { void }
|
|
186
|
+
def check_reader!
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# @api private
|
|
190
|
+
sig { void }
|
|
191
|
+
def assert_owner!
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# @api private
|
|
195
|
+
sig { params(bytes: Integer).void }
|
|
196
|
+
def consumed(bytes)
|
|
197
|
+
end
|
|
198
|
+
|
|
199
|
+
# @api private
|
|
200
|
+
sig { params(value: SessionLane).void }
|
|
201
|
+
def detach(value)
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
end
|
|
@@ -22,6 +22,13 @@ module OpenAI
|
|
|
22
22
|
sig { returns(String) }
|
|
23
23
|
attr_accessor :session_id
|
|
24
24
|
|
|
25
|
+
# Model settings for subsequent turns. Omitted fields stay unchanged.
|
|
26
|
+
sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent)) }
|
|
27
|
+
attr_reader :agent
|
|
28
|
+
|
|
29
|
+
sig { params(agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash).void }
|
|
30
|
+
attr_writer :agent
|
|
31
|
+
|
|
25
32
|
# Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
|
|
26
33
|
# Up to 16 string key-value pairs, with keys up to 64 and values up to 512
|
|
27
34
|
# characters.
|
|
@@ -33,6 +40,8 @@ module OpenAI
|
|
|
33
40
|
|
|
34
41
|
session_id: String,
|
|
35
42
|
|
|
43
|
+
agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent::OrHash,
|
|
44
|
+
|
|
36
45
|
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
37
46
|
|
|
38
47
|
request_options: OpenAI::RequestOptions::OrHash
|
|
@@ -43,6 +52,9 @@ module OpenAI
|
|
|
43
52
|
|
|
44
53
|
session_id:,
|
|
45
54
|
|
|
55
|
+
# Model settings for subsequent turns. Omitted fields stay unchanged.
|
|
56
|
+
agent: nil,
|
|
57
|
+
|
|
46
58
|
# Replaces all metadata. Omit to leave unchanged, or pass null or {} to clear it.
|
|
47
59
|
# Up to 16 string key-value pairs, with keys up to 64 and values up to 512
|
|
48
60
|
# characters.
|
|
@@ -56,6 +68,7 @@ module OpenAI
|
|
|
56
68
|
override.returns(
|
|
57
69
|
{
|
|
58
70
|
session_id: String,
|
|
71
|
+
agent: OpenAI::Beta::Agents::SessionUpdateParams::Agent,
|
|
59
72
|
metadata: T.nilable(T::Hash[Symbol, String]),
|
|
60
73
|
request_options: OpenAI::RequestOptions
|
|
61
74
|
}
|
|
@@ -64,6 +77,171 @@ module OpenAI
|
|
|
64
77
|
def to_hash
|
|
65
78
|
end
|
|
66
79
|
|
|
80
|
+
class Agent < OpenAI::Internal::Type::BaseModel
|
|
81
|
+
OrHash = T.type_alias do
|
|
82
|
+
T.any(
|
|
83
|
+
OpenAI::Beta::Agents::SessionUpdateParams::Agent,
|
|
84
|
+
OpenAI::Internal::AnyHash
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# The model for subsequent turns. Omit to keep the current model.
|
|
89
|
+
sig { returns(T.nilable(String)) }
|
|
90
|
+
attr_reader :model
|
|
91
|
+
|
|
92
|
+
sig { params(model: String).void }
|
|
93
|
+
attr_writer :model
|
|
94
|
+
|
|
95
|
+
# Reasoning settings to update. Omit to keep the current effort.
|
|
96
|
+
sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning)) }
|
|
97
|
+
attr_reader :reasoning
|
|
98
|
+
|
|
99
|
+
sig { params(reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::OrHash).void }
|
|
100
|
+
attr_writer :reasoning
|
|
101
|
+
|
|
102
|
+
# The service tier used for model requests.
|
|
103
|
+
sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)) }
|
|
104
|
+
attr_accessor :service_tier
|
|
105
|
+
|
|
106
|
+
# Model settings for subsequent turns. Omitted fields stay unchanged.
|
|
107
|
+
sig do
|
|
108
|
+
params(
|
|
109
|
+
|
|
110
|
+
model: String,
|
|
111
|
+
|
|
112
|
+
reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::OrHash,
|
|
113
|
+
|
|
114
|
+
service_tier: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)
|
|
115
|
+
)
|
|
116
|
+
.returns(T.attached_class)
|
|
117
|
+
end
|
|
118
|
+
def self.new(
|
|
119
|
+
|
|
120
|
+
# The model for subsequent turns. Omit to keep the current model.
|
|
121
|
+
model: nil,
|
|
122
|
+
|
|
123
|
+
# Reasoning settings to update. Omit to keep the current effort.
|
|
124
|
+
reasoning: nil,
|
|
125
|
+
|
|
126
|
+
# The service tier used for model requests.
|
|
127
|
+
|
|
128
|
+
service_tier: nil
|
|
129
|
+
)
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
sig do
|
|
133
|
+
override.returns(
|
|
134
|
+
{
|
|
135
|
+
model: String,
|
|
136
|
+
reasoning: OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning,
|
|
137
|
+
service_tier: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::OrSymbol)
|
|
138
|
+
}
|
|
139
|
+
)
|
|
140
|
+
end
|
|
141
|
+
def to_hash
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
class Reasoning < OpenAI::Internal::Type::BaseModel
|
|
145
|
+
OrHash = T.type_alias do
|
|
146
|
+
T.any(
|
|
147
|
+
OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning,
|
|
148
|
+
OpenAI::Internal::AnyHash
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# The amount of reasoning effort the model should use.
|
|
153
|
+
sig { returns(T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)) }
|
|
154
|
+
attr_accessor :effort
|
|
155
|
+
|
|
156
|
+
# Reasoning settings to update. Omit to keep the current effort.
|
|
157
|
+
sig do
|
|
158
|
+
params(
|
|
159
|
+
|
|
160
|
+
effort: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)
|
|
161
|
+
)
|
|
162
|
+
.returns(T.attached_class)
|
|
163
|
+
end
|
|
164
|
+
def self.new(
|
|
165
|
+
|
|
166
|
+
# The amount of reasoning effort the model should use.
|
|
167
|
+
|
|
168
|
+
effort: nil
|
|
169
|
+
)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
sig do
|
|
173
|
+
override.returns(
|
|
174
|
+
{effort: T.nilable(OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::OrSymbol)}
|
|
175
|
+
)
|
|
176
|
+
end
|
|
177
|
+
def to_hash
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
# The amount of reasoning effort the model should use.
|
|
181
|
+
module Effort
|
|
182
|
+
extend OpenAI::Internal::Type::Enum
|
|
183
|
+
|
|
184
|
+
TaggedSymbol = T.type_alias {
|
|
185
|
+
T.all(Symbol, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort)
|
|
186
|
+
}
|
|
187
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
188
|
+
|
|
189
|
+
NONE = T.let(:none, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
|
|
190
|
+
MINIMAL = T.let(
|
|
191
|
+
:minimal,
|
|
192
|
+
OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol
|
|
193
|
+
)
|
|
194
|
+
LOW = T.let(:low, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
|
|
195
|
+
MEDIUM = T.let(
|
|
196
|
+
:medium,
|
|
197
|
+
OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol
|
|
198
|
+
)
|
|
199
|
+
HIGH = T.let(:high, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
|
|
200
|
+
XHIGH = T.let(:xhigh, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
|
|
201
|
+
MAX = T.let(:max, OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol)
|
|
202
|
+
|
|
203
|
+
sig {
|
|
204
|
+
override.returns(
|
|
205
|
+
T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::Reasoning::Effort::TaggedSymbol]
|
|
206
|
+
)
|
|
207
|
+
}
|
|
208
|
+
def self.values
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
# The service tier used for model requests.
|
|
214
|
+
module ServiceTier
|
|
215
|
+
extend OpenAI::Internal::Type::Enum
|
|
216
|
+
|
|
217
|
+
TaggedSymbol = T.type_alias {
|
|
218
|
+
T.all(Symbol, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier)
|
|
219
|
+
}
|
|
220
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
221
|
+
|
|
222
|
+
# Selects the service tier automatically.
|
|
223
|
+
AUTO = T.let(:auto, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
|
|
224
|
+
|
|
225
|
+
# Uses the default service tier.
|
|
226
|
+
DEFAULT = T.let(:default, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
|
|
227
|
+
|
|
228
|
+
# Uses the flex service tier.
|
|
229
|
+
FLEX = T.let(:flex, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
|
|
230
|
+
|
|
231
|
+
# Uses the priority service tier.
|
|
232
|
+
PRIORITY = T.let(:priority, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
|
|
233
|
+
|
|
234
|
+
# Uses the fast service tier.
|
|
235
|
+
FAST = T.let(:fast, OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol)
|
|
236
|
+
|
|
237
|
+
sig {
|
|
238
|
+
override.returns(T::Array[OpenAI::Beta::Agents::SessionUpdateParams::Agent::ServiceTier::TaggedSymbol])
|
|
239
|
+
}
|
|
240
|
+
def self.values
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
end
|
|
244
|
+
|
|
67
245
|
end
|
|
68
246
|
|
|
69
247
|
end
|
|
@@ -882,7 +882,6 @@ module OpenAI
|
|
|
882
882
|
GPT_5_1 = T.let(:"gpt-5.1", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
883
883
|
GPT_5_1_2025_11_13 = T.let(:"gpt-5.1-2025-11-13", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
884
884
|
GPT_5_1_CODEX = T.let(:"gpt-5.1-codex", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
885
|
-
GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
886
885
|
GPT_5_1_CHAT_LATEST = T.let(:"gpt-5.1-chat-latest", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
887
886
|
GPT_5 = T.let(:"gpt-5", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
888
887
|
GPT_5_MINI = T.let(:"gpt-5-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
@@ -913,6 +912,11 @@ module OpenAI
|
|
|
913
912
|
GPT_4O_2024_11_20 = T.let(:"gpt-4o-2024-11-20", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
914
913
|
GPT_4O_2024_08_06 = T.let(:"gpt-4o-2024-08-06", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
915
914
|
GPT_4O_2024_05_13 = T.let(:"gpt-4o-2024-05-13", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
915
|
+
GPT_AUDIO_MINI = T.let(:"gpt-audio-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
916
|
+
GPT_AUDIO_MINI_2025_12_15 = T.let(
|
|
917
|
+
:"gpt-audio-mini-2025-12-15",
|
|
918
|
+
OpenAI::Beta::BetaResponse::Model::TaggedSymbol
|
|
919
|
+
)
|
|
916
920
|
GPT_4O_AUDIO_PREVIEW = T.let(:"gpt-4o-audio-preview", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
917
921
|
GPT_4O_AUDIO_PREVIEW_2024_10_01 = T.let(
|
|
918
922
|
:"gpt-4o-audio-preview-2024-10-01",
|
|
@@ -970,6 +974,7 @@ module OpenAI
|
|
|
970
974
|
GPT_3_5_TURBO_1106 = T.let(:"gpt-3.5-turbo-1106", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
971
975
|
GPT_3_5_TURBO_0125 = T.let(:"gpt-3.5-turbo-0125", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
972
976
|
GPT_3_5_TURBO_16K_0613 = T.let(:"gpt-3.5-turbo-16k-0613", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
977
|
+
GPT_5_1_MINI = T.let(:"gpt-5.1-mini", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
973
978
|
O1_PRO = T.let(:"o1-pro", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
974
979
|
O1_PRO_2025_03_19 = T.let(:"o1-pro-2025-03-19", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
975
980
|
O3_PRO = T.let(:"o3-pro", OpenAI::Beta::BetaResponse::Model::TaggedSymbol)
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module OpenAI
|
|
4
|
+
module Models
|
|
5
|
+
|
|
6
|
+
BetaResponseCompactionCompactingEvent = Beta::BetaResponseCompactionCompactingEvent
|
|
7
|
+
|
|
8
|
+
module Beta
|
|
9
|
+
|
|
10
|
+
class BetaResponseCompactionCompactingEvent < OpenAI::Internal::Type::BaseModel
|
|
11
|
+
|
|
12
|
+
OrHash = T.type_alias do
|
|
13
|
+
T.any(
|
|
14
|
+
OpenAI::Beta::BetaResponseCompactionCompactingEvent,
|
|
15
|
+
OpenAI::Internal::AnyHash
|
|
16
|
+
)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# The ID of the compaction output item.
|
|
20
|
+
sig { returns(String) }
|
|
21
|
+
attr_accessor :item_id
|
|
22
|
+
|
|
23
|
+
# The index of the compaction output item.
|
|
24
|
+
sig { returns(Integer) }
|
|
25
|
+
attr_accessor :output_index
|
|
26
|
+
|
|
27
|
+
# The sequence number of the event that was emitted.
|
|
28
|
+
sig { returns(Integer) }
|
|
29
|
+
attr_accessor :sequence_number
|
|
30
|
+
|
|
31
|
+
# The type of the event, always `response.compaction.compacting`.
|
|
32
|
+
sig { returns(Symbol) }
|
|
33
|
+
attr_accessor :type
|
|
34
|
+
|
|
35
|
+
# The agent that owns this multi-agent streaming event.
|
|
36
|
+
sig { returns(T.nilable(OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent)) }
|
|
37
|
+
attr_reader :agent
|
|
38
|
+
|
|
39
|
+
sig { params(agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent::OrHash).void }
|
|
40
|
+
attr_writer :agent
|
|
41
|
+
|
|
42
|
+
# Emitted when new summary content is sampled for a compaction trigger. Contains
|
|
43
|
+
# no summary content.
|
|
44
|
+
sig do
|
|
45
|
+
params(
|
|
46
|
+
|
|
47
|
+
item_id: String,
|
|
48
|
+
|
|
49
|
+
output_index: Integer,
|
|
50
|
+
|
|
51
|
+
sequence_number: Integer,
|
|
52
|
+
|
|
53
|
+
agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent::OrHash,
|
|
54
|
+
|
|
55
|
+
type: Symbol
|
|
56
|
+
)
|
|
57
|
+
.returns(T.attached_class)
|
|
58
|
+
end
|
|
59
|
+
def self.new(
|
|
60
|
+
|
|
61
|
+
# The ID of the compaction output item.
|
|
62
|
+
item_id:,
|
|
63
|
+
|
|
64
|
+
# The index of the compaction output item.
|
|
65
|
+
output_index:,
|
|
66
|
+
|
|
67
|
+
# The sequence number of the event that was emitted.
|
|
68
|
+
sequence_number:,
|
|
69
|
+
|
|
70
|
+
# The agent that owns this multi-agent streaming event.
|
|
71
|
+
agent: nil,
|
|
72
|
+
|
|
73
|
+
# The type of the event, always `response.compaction.compacting`.
|
|
74
|
+
|
|
75
|
+
type: :"response.compaction.compacting"
|
|
76
|
+
)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
sig do
|
|
80
|
+
override.returns(
|
|
81
|
+
{
|
|
82
|
+
item_id: String,
|
|
83
|
+
output_index: Integer,
|
|
84
|
+
sequence_number: Integer,
|
|
85
|
+
type: Symbol,
|
|
86
|
+
agent: OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
end
|
|
90
|
+
def to_hash
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
class Agent < OpenAI::Internal::Type::BaseModel
|
|
94
|
+
OrHash = T.type_alias do
|
|
95
|
+
T.any(
|
|
96
|
+
OpenAI::Beta::BetaResponseCompactionCompactingEvent::Agent,
|
|
97
|
+
OpenAI::Internal::AnyHash
|
|
98
|
+
)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# The canonical name of the agent that produced this item.
|
|
102
|
+
sig { returns(String) }
|
|
103
|
+
attr_accessor :agent_name
|
|
104
|
+
|
|
105
|
+
# The agent that owns this multi-agent streaming event.
|
|
106
|
+
sig do
|
|
107
|
+
params(
|
|
108
|
+
|
|
109
|
+
agent_name: String
|
|
110
|
+
)
|
|
111
|
+
.returns(T.attached_class)
|
|
112
|
+
end
|
|
113
|
+
def self.new(
|
|
114
|
+
|
|
115
|
+
# The canonical name of the agent that produced this item.
|
|
116
|
+
|
|
117
|
+
agent_name:
|
|
118
|
+
)
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
sig do
|
|
122
|
+
override.returns(
|
|
123
|
+
{agent_name: String}
|
|
124
|
+
)
|
|
125
|
+
end
|
|
126
|
+
def to_hash
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
end
|
|
@@ -22,6 +22,7 @@ module OpenAI
|
|
|
22
22
|
OpenAI::Beta::BetaResponseCodeInterpreterCallCompletedEvent,
|
|
23
23
|
OpenAI::Beta::BetaResponseCodeInterpreterCallInProgressEvent,
|
|
24
24
|
OpenAI::Beta::BetaResponseCodeInterpreterCallInterpretingEvent,
|
|
25
|
+
OpenAI::Beta::BetaResponseCompactionCompactingEvent,
|
|
25
26
|
OpenAI::Beta::BetaResponseCompletedEvent,
|
|
26
27
|
OpenAI::Beta::BetaResponseContentPartAddedEvent,
|
|
27
28
|
OpenAI::Beta::BetaResponseContentPartDoneEvent,
|
|
@@ -1113,10 +1113,6 @@ module OpenAI
|
|
|
1113
1113
|
:"gpt-5.1-codex",
|
|
1114
1114
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1115
1115
|
)
|
|
1116
|
-
GPT_5_1_MINI = T.let(
|
|
1117
|
-
:"gpt-5.1-mini",
|
|
1118
|
-
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1119
|
-
)
|
|
1120
1116
|
GPT_5_1_CHAT_LATEST = T.let(
|
|
1121
1117
|
:"gpt-5.1-chat-latest",
|
|
1122
1118
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
@@ -1213,6 +1209,14 @@ module OpenAI
|
|
|
1213
1209
|
:"gpt-4o-2024-05-13",
|
|
1214
1210
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1215
1211
|
)
|
|
1212
|
+
GPT_AUDIO_MINI = T.let(
|
|
1213
|
+
:"gpt-audio-mini",
|
|
1214
|
+
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1215
|
+
)
|
|
1216
|
+
GPT_AUDIO_MINI_2025_12_15 = T.let(
|
|
1217
|
+
:"gpt-audio-mini-2025-12-15",
|
|
1218
|
+
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1219
|
+
)
|
|
1216
1220
|
GPT_4O_AUDIO_PREVIEW = T.let(
|
|
1217
1221
|
:"gpt-4o-audio-preview",
|
|
1218
1222
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
@@ -1339,6 +1343,10 @@ module OpenAI
|
|
|
1339
1343
|
:"gpt-3.5-turbo-16k-0613",
|
|
1340
1344
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1341
1345
|
)
|
|
1346
|
+
GPT_5_1_MINI = T.let(
|
|
1347
|
+
:"gpt-5.1-mini",
|
|
1348
|
+
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol
|
|
1349
|
+
)
|
|
1342
1350
|
O1_PRO = T.let(:"o1-pro", OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::Model::TaggedSymbol)
|
|
1343
1351
|
O1_PRO_2025_03_19 = T.let(
|
|
1344
1352
|
:"o1-pro-2025-03-19",
|
|
@@ -1781,6 +1789,14 @@ module OpenAI
|
|
|
1781
1789
|
}
|
|
1782
1790
|
attr_writer :mode
|
|
1783
1791
|
|
|
1792
|
+
# Prepares the prompt cache without generating output. Defaults to `false`. When
|
|
1793
|
+
# set to `true`, overrides the `generate` field to `false`.
|
|
1794
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
1795
|
+
attr_reader :prewarm
|
|
1796
|
+
|
|
1797
|
+
sig { params(prewarm: T::Boolean).void }
|
|
1798
|
+
attr_writer :prewarm
|
|
1799
|
+
|
|
1784
1800
|
# The minimum lifetime applied to every implicit and explicit cache breakpoint
|
|
1785
1801
|
# written by the request. Defaults to `30m`, which is currently the only supported
|
|
1786
1802
|
# value. The backend may retain cache entries for longer.
|
|
@@ -1813,6 +1829,8 @@ module OpenAI
|
|
|
1813
1829
|
|
|
1814
1830
|
mode: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol,
|
|
1815
1831
|
|
|
1832
|
+
prewarm: T::Boolean,
|
|
1833
|
+
|
|
1816
1834
|
ttl: OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
|
|
1817
1835
|
)
|
|
1818
1836
|
.returns(T.attached_class)
|
|
@@ -1831,6 +1849,10 @@ module OpenAI
|
|
|
1831
1849
|
# request does not use prompt caching.
|
|
1832
1850
|
mode: nil,
|
|
1833
1851
|
|
|
1852
|
+
# Prepares the prompt cache without generating output. Defaults to `false`. When
|
|
1853
|
+
# set to `true`, overrides the `generate` field to `false`.
|
|
1854
|
+
prewarm: nil,
|
|
1855
|
+
|
|
1834
1856
|
# The minimum lifetime applied to every implicit and explicit cache breakpoint
|
|
1835
1857
|
# written by the request. Defaults to `30m`, which is currently the only supported
|
|
1836
1858
|
# value. The backend may retain cache entries for longer.
|
|
@@ -1846,6 +1868,7 @@ module OpenAI
|
|
|
1846
1868
|
mode: T.nilable(
|
|
1847
1869
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Mode::OrSymbol
|
|
1848
1870
|
),
|
|
1871
|
+
prewarm: T.nilable(T::Boolean),
|
|
1849
1872
|
ttl: T.nilable(
|
|
1850
1873
|
OpenAI::Beta::BetaResponsesClientEvent::ResponseCreate::PromptCacheOptions::Ttl::OrSymbol
|
|
1851
1874
|
)
|