deeprails 0.18.0 → 0.24.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +92 -0
  3. data/README.md +1 -1
  4. data/lib/deeprails/internal/stream.rb +29 -0
  5. data/lib/deeprails/internal/transport/base_client.rb +3 -1
  6. data/lib/deeprails/internal/transport/pooled_net_requester.rb +13 -11
  7. data/lib/deeprails/internal/type/base_stream.rb +83 -0
  8. data/lib/deeprails/internal/util.rb +39 -3
  9. data/lib/deeprails/models/defend_create_workflow_params.rb +14 -1
  10. data/lib/deeprails/models/defend_response.rb +134 -10
  11. data/lib/deeprails/models/defend_retrieve_event_params.rb +7 -1
  12. data/lib/deeprails/models/defend_retrieve_workflow_params.rb +8 -1
  13. data/lib/deeprails/models/defend_submit_and_stream_event_params.rb +92 -0
  14. data/lib/deeprails/models/defend_submit_and_stream_event_response.rb +7 -0
  15. data/lib/deeprails/models/defend_submit_event_params.rb +70 -20
  16. data/lib/deeprails/models/defend_update_response.rb +9 -1
  17. data/lib/deeprails/models/defend_update_workflow_params.rb +138 -5
  18. data/lib/deeprails/models/monitor_create_params.rb +14 -1
  19. data/lib/deeprails/models/monitor_detail_response.rb +60 -17
  20. data/lib/deeprails/models/monitor_event_detail_response.rb +11 -5
  21. data/lib/deeprails/models/monitor_retrieve_event_params.rb +7 -1
  22. data/lib/deeprails/models/monitor_retrieve_params.rb +8 -1
  23. data/lib/deeprails/models/monitor_submit_event_params.rb +70 -20
  24. data/lib/deeprails/models/monitor_update_params.rb +53 -5
  25. data/lib/deeprails/models/workflow_event_detail_response.rb +99 -16
  26. data/lib/deeprails/models/workflow_event_response.rb +9 -1
  27. data/lib/deeprails/models.rb +2 -0
  28. data/lib/deeprails/resources/defend.rb +70 -5
  29. data/lib/deeprails/resources/monitor.rb +16 -7
  30. data/lib/deeprails/version.rb +1 -1
  31. data/lib/deeprails.rb +5 -0
  32. data/manifest.yaml +1 -0
  33. data/rbi/deeprails/internal/stream.rbi +20 -0
  34. data/rbi/deeprails/internal/transport/base_client.rbi +18 -2
  35. data/rbi/deeprails/internal/type/base_stream.rbi +75 -0
  36. data/rbi/deeprails/internal/util.rbi +21 -1
  37. data/rbi/deeprails/models/defend_create_workflow_params.rbi +21 -0
  38. data/rbi/deeprails/models/defend_response.rbi +286 -14
  39. data/rbi/deeprails/models/defend_retrieve_event_params.rbi +10 -2
  40. data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +10 -1
  41. data/rbi/deeprails/models/defend_submit_and_stream_event_params.rbi +155 -0
  42. data/rbi/deeprails/models/defend_submit_and_stream_event_response.rbi +7 -0
  43. data/rbi/deeprails/models/defend_submit_event_params.rbi +134 -31
  44. data/rbi/deeprails/models/defend_update_response.rbi +14 -3
  45. data/rbi/deeprails/models/defend_update_workflow_params.rbi +304 -4
  46. data/rbi/deeprails/models/monitor_create_params.rbi +21 -0
  47. data/rbi/deeprails/models/monitor_detail_response.rbi +122 -28
  48. data/rbi/deeprails/models/monitor_event_detail_response.rbi +20 -8
  49. data/rbi/deeprails/models/monitor_retrieve_event_params.rbi +10 -2
  50. data/rbi/deeprails/models/monitor_retrieve_params.rbi +10 -1
  51. data/rbi/deeprails/models/monitor_submit_event_params.rbi +134 -31
  52. data/rbi/deeprails/models/monitor_update_params.rbi +113 -4
  53. data/rbi/deeprails/models/workflow_event_detail_response.rbi +204 -24
  54. data/rbi/deeprails/models/workflow_event_response.rbi +8 -0
  55. data/rbi/deeprails/models.rbi +3 -0
  56. data/rbi/deeprails/resources/defend.rbi +101 -6
  57. data/rbi/deeprails/resources/monitor.rbi +31 -8
  58. data/sig/deeprails/internal/stream.rbs +9 -0
  59. data/sig/deeprails/internal/type/base_stream.rbs +38 -0
  60. data/sig/deeprails/internal/util.rbs +10 -0
  61. data/sig/deeprails/models/defend_create_workflow_params.rbs +7 -0
  62. data/sig/deeprails/models/defend_response.rbs +114 -8
  63. data/sig/deeprails/models/defend_retrieve_event_params.rbs +6 -1
  64. data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +6 -1
  65. data/sig/deeprails/models/defend_submit_and_stream_event_params.rbs +73 -0
  66. data/sig/deeprails/models/defend_submit_and_stream_event_response.rbs +5 -0
  67. data/sig/deeprails/models/defend_submit_event_params.rbs +53 -13
  68. data/sig/deeprails/models/defend_update_response.rbs +10 -3
  69. data/sig/deeprails/models/defend_update_workflow_params.rbs +108 -1
  70. data/sig/deeprails/models/monitor_create_params.rbs +7 -0
  71. data/sig/deeprails/models/monitor_detail_response.rbs +48 -13
  72. data/sig/deeprails/models/monitor_event_detail_response.rbs +12 -4
  73. data/sig/deeprails/models/monitor_retrieve_event_params.rbs +6 -1
  74. data/sig/deeprails/models/monitor_retrieve_params.rbs +6 -1
  75. data/sig/deeprails/models/monitor_submit_event_params.rbs +53 -13
  76. data/sig/deeprails/models/monitor_update_params.rbs +50 -1
  77. data/sig/deeprails/models/workflow_event_detail_response.rbs +100 -15
  78. data/sig/deeprails/models/workflow_event_response.rbs +5 -0
  79. data/sig/deeprails/models.rbs +2 -0
  80. data/sig/deeprails/resources/defend.rbs +20 -0
  81. data/sig/deeprails/resources/monitor.rbs +4 -0
  82. metadata +28 -2
@@ -11,14 +11,44 @@ module Deeprails
11
11
  T.any(Deeprails::MonitorUpdateParams, Deeprails::Internal::AnyHash)
12
12
  end
13
13
 
14
- # Description of the monitor.
14
+ sig { returns(String) }
15
+ attr_accessor :monitor_id
16
+
17
+ # New description of the monitor.
15
18
  sig { returns(T.nilable(String)) }
16
19
  attr_reader :description
17
20
 
18
21
  sig { params(description: String).void }
19
22
  attr_writer :description
20
23
 
21
- # Name of the monitor.
24
+ # An array of file IDs to search in the monitor's evaluations. Files must be
25
+ # uploaded via the DeepRails API first.
26
+ sig { returns(T.nilable(T::Array[String])) }
27
+ attr_reader :file_search
28
+
29
+ sig { params(file_search: T::Array[String]).void }
30
+ attr_writer :file_search
31
+
32
+ # An array of the new guardrail metrics that model input and output pairs will be
33
+ # evaluated on.
34
+ sig do
35
+ returns(
36
+ T.nilable(
37
+ T::Array[Deeprails::MonitorUpdateParams::GuardrailMetric::OrSymbol]
38
+ )
39
+ )
40
+ end
41
+ attr_reader :guardrail_metrics
42
+
43
+ sig do
44
+ params(
45
+ guardrail_metrics:
46
+ T::Array[Deeprails::MonitorUpdateParams::GuardrailMetric::OrSymbol]
47
+ ).void
48
+ end
49
+ attr_writer :guardrail_metrics
50
+
51
+ # New name of the monitor.
22
52
  sig { returns(T.nilable(String)) }
23
53
  attr_reader :name
24
54
 
@@ -37,22 +67,43 @@ module Deeprails
37
67
  end
38
68
  attr_writer :status
39
69
 
70
+ # Whether to enable web search for this monitor's evaluations.
71
+ sig { returns(T.nilable(T::Boolean)) }
72
+ attr_reader :web_search
73
+
74
+ sig { params(web_search: T::Boolean).void }
75
+ attr_writer :web_search
76
+
40
77
  sig do
41
78
  params(
79
+ monitor_id: String,
42
80
  description: String,
81
+ file_search: T::Array[String],
82
+ guardrail_metrics:
83
+ T::Array[Deeprails::MonitorUpdateParams::GuardrailMetric::OrSymbol],
43
84
  name: String,
44
85
  status: Deeprails::MonitorUpdateParams::Status::OrSymbol,
86
+ web_search: T::Boolean,
45
87
  request_options: Deeprails::RequestOptions::OrHash
46
88
  ).returns(T.attached_class)
47
89
  end
48
90
  def self.new(
49
- # Description of the monitor.
91
+ monitor_id:,
92
+ # New description of the monitor.
50
93
  description: nil,
51
- # Name of the monitor.
94
+ # An array of file IDs to search in the monitor's evaluations. Files must be
95
+ # uploaded via the DeepRails API first.
96
+ file_search: nil,
97
+ # An array of the new guardrail metrics that model input and output pairs will be
98
+ # evaluated on.
99
+ guardrail_metrics: nil,
100
+ # New name of the monitor.
52
101
  name: nil,
53
102
  # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
54
103
  # longer record and evaluate events.
55
104
  status: nil,
105
+ # Whether to enable web search for this monitor's evaluations.
106
+ web_search: nil,
56
107
  request_options: {}
57
108
  )
58
109
  end
@@ -60,9 +111,16 @@ module Deeprails
60
111
  sig do
61
112
  override.returns(
62
113
  {
114
+ monitor_id: String,
63
115
  description: String,
116
+ file_search: T::Array[String],
117
+ guardrail_metrics:
118
+ T::Array[
119
+ Deeprails::MonitorUpdateParams::GuardrailMetric::OrSymbol
120
+ ],
64
121
  name: String,
65
122
  status: Deeprails::MonitorUpdateParams::Status::OrSymbol,
123
+ web_search: T::Boolean,
66
124
  request_options: Deeprails::RequestOptions
67
125
  }
68
126
  )
@@ -70,6 +128,57 @@ module Deeprails
70
128
  def to_hash
71
129
  end
72
130
 
131
+ module GuardrailMetric
132
+ extend Deeprails::Internal::Type::Enum
133
+
134
+ TaggedSymbol =
135
+ T.type_alias do
136
+ T.all(Symbol, Deeprails::MonitorUpdateParams::GuardrailMetric)
137
+ end
138
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
139
+
140
+ CORRECTNESS =
141
+ T.let(
142
+ :correctness,
143
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
144
+ )
145
+ COMPLETENESS =
146
+ T.let(
147
+ :completeness,
148
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
149
+ )
150
+ INSTRUCTION_ADHERENCE =
151
+ T.let(
152
+ :instruction_adherence,
153
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
154
+ )
155
+ CONTEXT_ADHERENCE =
156
+ T.let(
157
+ :context_adherence,
158
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
159
+ )
160
+ GROUND_TRUTH_ADHERENCE =
161
+ T.let(
162
+ :ground_truth_adherence,
163
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
164
+ )
165
+ COMPREHENSIVE_SAFETY =
166
+ T.let(
167
+ :comprehensive_safety,
168
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
169
+ )
170
+
171
+ sig do
172
+ override.returns(
173
+ T::Array[
174
+ Deeprails::MonitorUpdateParams::GuardrailMetric::TaggedSymbol
175
+ ]
176
+ )
177
+ end
178
+ def self.values
179
+ end
180
+ end
181
+
73
182
  # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
74
183
  # longer record and evaluate events.
75
184
  module Status
@@ -11,6 +11,9 @@ module Deeprails
11
11
  )
12
12
  end
13
13
 
14
+ sig { returns(T::Array[String]) }
15
+ attr_accessor :analysis_of_failures
16
+
14
17
  # History of evaluations for the event.
15
18
  sig do
16
19
  returns(
@@ -45,7 +48,12 @@ module Deeprails
45
48
  end
46
49
  attr_accessor :improvement_action
47
50
 
48
- # Status of the improvement tool used to improve the event.
51
+ # Status of the improvement tool used to improve the event. `improvement_required`
52
+ # indicates that the evaluation is complete and the improvement action is needed
53
+ # but is not taking place. `improved` and `improvement_failed` indicate when the
54
+ # improvement action concludes, successfully and unsuccessfully, respectively.
55
+ # `no_improvement_required` means that the first evaluation passed all its
56
+ # metrics!
49
57
  sig do
50
58
  returns(
51
59
  T.nilable(
@@ -55,6 +63,13 @@ module Deeprails
55
63
  end
56
64
  attr_accessor :improvement_tool_status
57
65
 
66
+ sig do
67
+ returns(
68
+ T::Array[Deeprails::WorkflowEventDetailResponse::KeyImprovement]
69
+ )
70
+ end
71
+ attr_accessor :key_improvements
72
+
58
73
  # Status of the event.
59
74
  sig do
60
75
  returns(Deeprails::WorkflowEventDetailResponse::Status::TaggedSymbol)
@@ -98,8 +113,8 @@ module Deeprails
98
113
  end
99
114
  attr_writer :automatic_hallucination_tolerance_levels
100
115
 
101
- # Extended AI capabilities available to the event, if any. Can be `web_search`
102
- # and/or `file_search`.
116
+ # Extended AI capabilities available to the event, if any. Can be `web_search`,
117
+ # `file_search`, and/or `context_awareness`.
103
118
  sig do
104
119
  returns(
105
120
  T.nilable(
@@ -145,8 +160,17 @@ module Deeprails
145
160
  end
146
161
  attr_writer :files
147
162
 
163
+ # The maximum number of improvement attempts to be applied to one event before it
164
+ # is considered failed.
165
+ sig { returns(T.nilable(Integer)) }
166
+ attr_reader :max_improvement_attempts
167
+
168
+ sig { params(max_improvement_attempts: Integer).void }
169
+ attr_writer :max_improvement_attempts
170
+
148
171
  sig do
149
172
  params(
173
+ analysis_of_failures: T::Array[String],
150
174
  evaluation_history:
151
175
  T::Array[
152
176
  Deeprails::WorkflowEventDetailResponse::EvaluationHistory::OrHash
@@ -161,6 +185,10 @@ module Deeprails
161
185
  T.nilable(
162
186
  Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus::OrSymbol
163
187
  ),
188
+ key_improvements:
189
+ T::Array[
190
+ Deeprails::WorkflowEventDetailResponse::KeyImprovement::OrHash
191
+ ],
164
192
  status: Deeprails::WorkflowEventDetailResponse::Status::OrSymbol,
165
193
  threshold_type:
166
194
  Deeprails::WorkflowEventDetailResponse::ThresholdType::OrSymbol,
@@ -175,10 +203,12 @@ module Deeprails
175
203
  Deeprails::WorkflowEventDetailResponse::Capability::OrHash
176
204
  ],
177
205
  custom_hallucination_threshold_values: T::Hash[Symbol, Float],
178
- files: T::Array[Deeprails::WorkflowEventDetailResponse::File::OrHash]
206
+ files: T::Array[Deeprails::WorkflowEventDetailResponse::File::OrHash],
207
+ max_improvement_attempts: Integer
179
208
  ).returns(T.attached_class)
180
209
  end
181
210
  def self.new(
211
+ analysis_of_failures:,
182
212
  # History of evaluations for the event.
183
213
  evaluation_history:,
184
214
  # Evaluation result consisting of average scores and rationales for each of the
@@ -193,8 +223,14 @@ module Deeprails
193
223
  improved_model_output:,
194
224
  # Type of improvement action used to improve the event.
195
225
  improvement_action:,
196
- # Status of the improvement tool used to improve the event.
226
+ # Status of the improvement tool used to improve the event. `improvement_required`
227
+ # indicates that the evaluation is complete and the improvement action is needed
228
+ # but is not taking place. `improved` and `improvement_failed` indicate when the
229
+ # improvement action concludes, successfully and unsuccessfully, respectively.
230
+ # `no_improvement_required` means that the first evaluation passed all its
231
+ # metrics!
197
232
  improvement_tool_status:,
233
+ key_improvements:,
198
234
  # Status of the event.
199
235
  status:,
200
236
  # Type of thresholds used to evaluate the event.
@@ -204,21 +240,25 @@ module Deeprails
204
240
  # Mapping of guardrail metric names to tolerance values. Values are strings
205
241
  # (`low`, `medium`, `high`) representing automatic tolerance levels.
206
242
  automatic_hallucination_tolerance_levels: nil,
207
- # Extended AI capabilities available to the event, if any. Can be `web_search`
208
- # and/or `file_search`.
243
+ # Extended AI capabilities available to the event, if any. Can be `web_search`,
244
+ # `file_search`, and/or `context_awareness`.
209
245
  capabilities: nil,
210
246
  # Mapping of guardrail metric names to threshold values. Values are floating point
211
247
  # numbers (0.0-1.0) representing custom thresholds.
212
248
  custom_hallucination_threshold_values: nil,
213
249
  # List of files available to the event, if any. Will only be present if
214
250
  # `file_search` is enabled.
215
- files: nil
251
+ files: nil,
252
+ # The maximum number of improvement attempts to be applied to one event before it
253
+ # is considered failed.
254
+ max_improvement_attempts: nil
216
255
  )
217
256
  end
218
257
 
219
258
  sig do
220
259
  override.returns(
221
260
  {
261
+ analysis_of_failures: T::Array[String],
222
262
  evaluation_history:
223
263
  T::Array[
224
264
  Deeprails::WorkflowEventDetailResponse::EvaluationHistory
@@ -233,6 +273,8 @@ module Deeprails
233
273
  T.nilable(
234
274
  Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus::TaggedSymbol
235
275
  ),
276
+ key_improvements:
277
+ T::Array[Deeprails::WorkflowEventDetailResponse::KeyImprovement],
236
278
  status:
237
279
  Deeprails::WorkflowEventDetailResponse::Status::TaggedSymbol,
238
280
  threshold_type:
@@ -246,7 +288,8 @@ module Deeprails
246
288
  capabilities:
247
289
  T::Array[Deeprails::WorkflowEventDetailResponse::Capability],
248
290
  custom_hallucination_threshold_values: T::Hash[Symbol, Float],
249
- files: T::Array[Deeprails::WorkflowEventDetailResponse::File]
291
+ files: T::Array[Deeprails::WorkflowEventDetailResponse::File],
292
+ max_improvement_attempts: Integer
250
293
  }
251
294
  )
252
295
  end
@@ -262,6 +305,12 @@ module Deeprails
262
305
  )
263
306
  end
264
307
 
308
+ sig { returns(T.nilable(String)) }
309
+ attr_reader :analysis_of_failures
310
+
311
+ sig { params(analysis_of_failures: String).void }
312
+ attr_writer :analysis_of_failures
313
+
265
314
  sig { returns(T.nilable(String)) }
266
315
  attr_reader :attempt
267
316
 
@@ -304,6 +353,29 @@ module Deeprails
304
353
  sig { params(guardrail_metrics: T::Array[String]).void }
305
354
  attr_writer :guardrail_metrics
306
355
 
356
+ sig do
357
+ returns(
358
+ T.nilable(
359
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
360
+ )
361
+ )
362
+ end
363
+ attr_reader :improvement_tool_status
364
+
365
+ sig do
366
+ params(
367
+ improvement_tool_status:
368
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::OrSymbol
369
+ ).void
370
+ end
371
+ attr_writer :improvement_tool_status
372
+
373
+ sig { returns(T.nilable(T::Array[String])) }
374
+ attr_reader :key_improvements
375
+
376
+ sig { params(key_improvements: T::Array[String]).void }
377
+ attr_writer :key_improvements
378
+
307
379
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
308
380
  attr_reader :model_input
309
381
 
@@ -316,12 +388,6 @@ module Deeprails
316
388
  sig { params(model_output: String).void }
317
389
  attr_writer :model_output
318
390
 
319
- sig { returns(T.nilable(Time)) }
320
- attr_reader :modified_at
321
-
322
- sig { params(modified_at: Time).void }
323
- attr_writer :modified_at
324
-
325
391
  sig { returns(T.nilable(String)) }
326
392
  attr_reader :nametag
327
393
 
@@ -342,6 +408,7 @@ module Deeprails
342
408
 
343
409
  sig do
344
410
  params(
411
+ analysis_of_failures: String,
345
412
  attempt: String,
346
413
  created_at: Time,
347
414
  error_message: String,
@@ -349,15 +416,18 @@ module Deeprails
349
416
  evaluation_status: String,
350
417
  evaluation_total_cost: Float,
351
418
  guardrail_metrics: T::Array[String],
419
+ improvement_tool_status:
420
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::OrSymbol,
421
+ key_improvements: T::Array[String],
352
422
  model_input: T::Hash[Symbol, T.anything],
353
423
  model_output: String,
354
- modified_at: Time,
355
424
  nametag: String,
356
425
  progress: Integer,
357
426
  run_mode: String
358
427
  ).returns(T.attached_class)
359
428
  end
360
429
  def self.new(
430
+ analysis_of_failures: nil,
361
431
  attempt: nil,
362
432
  created_at: nil,
363
433
  error_message: nil,
@@ -365,9 +435,10 @@ module Deeprails
365
435
  evaluation_status: nil,
366
436
  evaluation_total_cost: nil,
367
437
  guardrail_metrics: nil,
438
+ improvement_tool_status: nil,
439
+ key_improvements: nil,
368
440
  model_input: nil,
369
441
  model_output: nil,
370
- modified_at: nil,
371
442
  nametag: nil,
372
443
  progress: nil,
373
444
  run_mode: nil
@@ -377,6 +448,7 @@ module Deeprails
377
448
  sig do
378
449
  override.returns(
379
450
  {
451
+ analysis_of_failures: String,
380
452
  attempt: String,
381
453
  created_at: Time,
382
454
  error_message: String,
@@ -384,9 +456,11 @@ module Deeprails
384
456
  evaluation_status: String,
385
457
  evaluation_total_cost: Float,
386
458
  guardrail_metrics: T::Array[String],
459
+ improvement_tool_status:
460
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol,
461
+ key_improvements: T::Array[String],
387
462
  model_input: T::Hash[Symbol, T.anything],
388
463
  model_output: String,
389
- modified_at: Time,
390
464
  nametag: String,
391
465
  progress: Integer,
392
466
  run_mode: String
@@ -395,6 +469,50 @@ module Deeprails
395
469
  end
396
470
  def to_hash
397
471
  end
472
+
473
+ module ImprovementToolStatus
474
+ extend Deeprails::Internal::Type::Enum
475
+
476
+ TaggedSymbol =
477
+ T.type_alias do
478
+ T.all(
479
+ Symbol,
480
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus
481
+ )
482
+ end
483
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
484
+
485
+ IMPROVED =
486
+ T.let(
487
+ :improved,
488
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
489
+ )
490
+ IMPROVEMENT_FAILED =
491
+ T.let(
492
+ :improvement_failed,
493
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
494
+ )
495
+ NO_IMPROVEMENT_REQUIRED =
496
+ T.let(
497
+ :no_improvement_required,
498
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
499
+ )
500
+ IMPROVEMENT_REQUIRED =
501
+ T.let(
502
+ :improvement_required,
503
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
504
+ )
505
+
506
+ sig do
507
+ override.returns(
508
+ T::Array[
509
+ Deeprails::WorkflowEventDetailResponse::EvaluationHistory::ImprovementToolStatus::TaggedSymbol
510
+ ]
511
+ )
512
+ end
513
+ def self.values
514
+ end
515
+ end
398
516
  end
399
517
 
400
518
  # Type of improvement action used to improve the event.
@@ -437,7 +555,12 @@ module Deeprails
437
555
  end
438
556
  end
439
557
 
440
- # Status of the improvement tool used to improve the event.
558
+ # Status of the improvement tool used to improve the event. `improvement_required`
559
+ # indicates that the evaluation is complete and the improvement action is needed
560
+ # but is not taking place. `improved` and `improvement_failed` indicate when the
561
+ # improvement action concludes, successfully and unsuccessfully, respectively.
562
+ # `no_improvement_required` means that the first evaluation passed all its
563
+ # metrics!
441
564
  module ImprovementToolStatus
442
565
  extend Deeprails::Internal::Type::Enum
443
566
 
@@ -455,9 +578,14 @@ module Deeprails
455
578
  :improved,
456
579
  Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus::TaggedSymbol
457
580
  )
458
- FAILED_ON_MAX_RETRIES =
581
+ IMPROVEMENT_FAILED =
582
+ T.let(
583
+ :improvement_failed,
584
+ Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus::TaggedSymbol
585
+ )
586
+ NO_IMPROVEMENT_REQUIRED =
459
587
  T.let(
460
- :"failed on max retries",
588
+ :no_improvement_required,
461
589
  Deeprails::WorkflowEventDetailResponse::ImprovementToolStatus::TaggedSymbol
462
590
  )
463
591
  IMPROVEMENT_REQUIRED =
@@ -477,6 +605,32 @@ module Deeprails
477
605
  end
478
606
  end
479
607
 
608
+ class KeyImprovement < Deeprails::Internal::Type::BaseModel
609
+ OrHash =
610
+ T.type_alias do
611
+ T.any(
612
+ Deeprails::WorkflowEventDetailResponse::KeyImprovement,
613
+ Deeprails::Internal::AnyHash
614
+ )
615
+ end
616
+
617
+ sig { returns(T.nilable(T::Array[String])) }
618
+ attr_reader :key_improvement
619
+
620
+ sig { params(key_improvement: T::Array[String]).void }
621
+ attr_writer :key_improvement
622
+
623
+ sig do
624
+ params(key_improvement: T::Array[String]).returns(T.attached_class)
625
+ end
626
+ def self.new(key_improvement: nil)
627
+ end
628
+
629
+ sig { override.returns({ key_improvement: T::Array[String] }) }
630
+ def to_hash
631
+ end
632
+ end
633
+
480
634
  # Status of the event.
481
635
  module Status
482
636
  extend Deeprails::Internal::Type::Enum
@@ -631,19 +785,45 @@ module Deeprails
631
785
  sig { params(file_size: Integer).void }
632
786
  attr_writer :file_size
633
787
 
788
+ sig { returns(T.nilable(String)) }
789
+ attr_reader :presigned_url
790
+
791
+ sig { params(presigned_url: String).void }
792
+ attr_writer :presigned_url
793
+
794
+ sig { returns(T.nilable(Time)) }
795
+ attr_reader :presigned_url_expires_at
796
+
797
+ sig { params(presigned_url_expires_at: Time).void }
798
+ attr_writer :presigned_url_expires_at
799
+
634
800
  sig do
635
801
  params(
636
802
  file_id: String,
637
803
  file_name: String,
638
- file_size: Integer
804
+ file_size: Integer,
805
+ presigned_url: String,
806
+ presigned_url_expires_at: Time
639
807
  ).returns(T.attached_class)
640
808
  end
641
- def self.new(file_id: nil, file_name: nil, file_size: nil)
809
+ def self.new(
810
+ file_id: nil,
811
+ file_name: nil,
812
+ file_size: nil,
813
+ presigned_url: nil,
814
+ presigned_url_expires_at: nil
815
+ )
642
816
  end
643
817
 
644
818
  sig do
645
819
  override.returns(
646
- { file_id: String, file_name: String, file_size: Integer }
820
+ {
821
+ file_id: String,
822
+ file_name: String,
823
+ file_size: Integer,
824
+ presigned_url: String,
825
+ presigned_url_expires_at: Time
826
+ }
647
827
  )
648
828
  end
649
829
  def to_hash
@@ -8,6 +8,10 @@ module Deeprails
8
8
  T.any(Deeprails::WorkflowEventResponse, Deeprails::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # The ID of the billing request for the event.
12
+ sig { returns(String) }
13
+ attr_accessor :billing_request_id
14
+
11
15
  # The time the event was created in UTC.
12
16
  sig { returns(Time) }
13
17
  attr_accessor :created_at
@@ -26,6 +30,7 @@ module Deeprails
26
30
 
27
31
  sig do
28
32
  params(
33
+ billing_request_id: String,
29
34
  created_at: Time,
30
35
  event_id: String,
31
36
  status: Deeprails::WorkflowEventResponse::Status::OrSymbol,
@@ -33,6 +38,8 @@ module Deeprails
33
38
  ).returns(T.attached_class)
34
39
  end
35
40
  def self.new(
41
+ # The ID of the billing request for the event.
42
+ billing_request_id:,
36
43
  # The time the event was created in UTC.
37
44
  created_at:,
38
45
  # A unique workflow event ID.
@@ -47,6 +54,7 @@ module Deeprails
47
54
  sig do
48
55
  override.returns(
49
56
  {
57
+ billing_request_id: String,
50
58
  created_at: Time,
51
59
  event_id: String,
52
60
  status: Deeprails::WorkflowEventResponse::Status::TaggedSymbol,
@@ -11,6 +11,9 @@ module Deeprails
11
11
 
12
12
  DefendRetrieveWorkflowParams = Deeprails::Models::DefendRetrieveWorkflowParams
13
13
 
14
+ DefendSubmitAndStreamEventParams =
15
+ Deeprails::Models::DefendSubmitAndStreamEventParams
16
+
14
17
  DefendSubmitEventParams = Deeprails::Models::DefendSubmitEventParams
15
18
 
16
19
  DefendUpdateResponse = Deeprails::Models::DefendUpdateResponse