deeprails 0.11.0 → 0.12.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 (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +26 -40
  4. data/lib/deeprails/internal/transport/base_client.rb +7 -1
  5. data/lib/deeprails/internal/transport/pooled_net_requester.rb +6 -2
  6. data/lib/deeprails/internal/type/base_model.rb +5 -5
  7. data/lib/deeprails/models/defend_create_response.rb +51 -0
  8. data/lib/deeprails/models/defend_create_workflow_params.rb +19 -19
  9. data/lib/deeprails/models/defend_response.rb +278 -38
  10. data/lib/deeprails/models/defend_retrieve_workflow_params.rb +13 -1
  11. data/lib/deeprails/models/defend_update_response.rb +51 -0
  12. data/lib/deeprails/models/file_response.rb +6 -22
  13. data/lib/deeprails/models/file_upload_params.rb +3 -3
  14. data/lib/deeprails/models/monitor_create_response.rb +51 -0
  15. data/lib/deeprails/models/monitor_detail_response.rb +69 -70
  16. data/lib/deeprails/models/monitor_event_detail_response.rb +182 -0
  17. data/lib/deeprails/models/monitor_event_response.rb +1 -9
  18. data/lib/deeprails/models/monitor_retrieve_params.rb +6 -2
  19. data/lib/deeprails/models/monitor_update_params.rb +11 -11
  20. data/lib/deeprails/models/monitor_update_response.rb +51 -0
  21. data/lib/deeprails/models/workflow_event_detail_response.rb +314 -0
  22. data/lib/deeprails/models/workflow_event_response.rb +29 -30
  23. data/lib/deeprails/models.rb +12 -2
  24. data/lib/deeprails/resources/defend.rb +20 -13
  25. data/lib/deeprails/resources/files.rb +1 -1
  26. data/lib/deeprails/resources/monitor.rb +11 -8
  27. data/lib/deeprails/version.rb +1 -1
  28. data/lib/deeprails.rb +7 -1
  29. data/manifest.yaml +1 -0
  30. data/rbi/deeprails/internal/transport/base_client.rbi +5 -0
  31. data/rbi/deeprails/internal/transport/pooled_net_requester.rbi +6 -2
  32. data/rbi/deeprails/internal/type/base_model.rbi +8 -4
  33. data/rbi/deeprails/models/defend_create_response.rbi +83 -0
  34. data/rbi/deeprails/models/defend_create_workflow_params.rbi +33 -27
  35. data/rbi/deeprails/models/defend_response.rbi +555 -72
  36. data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +23 -5
  37. data/rbi/deeprails/models/defend_update_response.rbi +83 -0
  38. data/rbi/deeprails/models/file_response.rbi +11 -39
  39. data/rbi/deeprails/models/file_upload_params.rbi +3 -6
  40. data/rbi/deeprails/models/monitor_create_response.rbi +83 -0
  41. data/rbi/deeprails/models/monitor_detail_response.rbi +144 -104
  42. data/rbi/deeprails/models/monitor_event_detail_response.rbi +383 -0
  43. data/rbi/deeprails/models/monitor_event_response.rbi +4 -18
  44. data/rbi/deeprails/models/monitor_retrieve_params.rbi +4 -2
  45. data/rbi/deeprails/models/monitor_update_params.rbi +21 -38
  46. data/rbi/deeprails/models/monitor_update_response.rbi +83 -0
  47. data/rbi/deeprails/models/workflow_event_detail_response.rbi +685 -0
  48. data/rbi/deeprails/models/workflow_event_response.rbi +49 -42
  49. data/rbi/deeprails/models.rbi +12 -2
  50. data/rbi/deeprails/resources/defend.rbi +17 -12
  51. data/rbi/deeprails/resources/files.rbi +1 -1
  52. data/rbi/deeprails/resources/monitor.rbi +8 -8
  53. data/sig/deeprails/internal/transport/base_client.rbs +2 -0
  54. data/sig/deeprails/internal/transport/pooled_net_requester.rbs +4 -1
  55. data/sig/deeprails/models/defend_create_response.rbs +41 -0
  56. data/sig/deeprails/models/defend_create_workflow_params.rbs +7 -7
  57. data/sig/deeprails/models/defend_response.rbs +297 -28
  58. data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +13 -3
  59. data/sig/deeprails/models/defend_update_response.rbs +41 -0
  60. data/sig/deeprails/models/file_response.rbs +5 -27
  61. data/sig/deeprails/models/file_upload_params.rbs +4 -5
  62. data/sig/deeprails/models/monitor_create_response.rbs +41 -0
  63. data/sig/deeprails/models/monitor_detail_response.rbs +72 -61
  64. data/sig/deeprails/models/monitor_event_detail_response.rbs +181 -0
  65. data/sig/deeprails/models/monitor_event_response.rbs +2 -15
  66. data/sig/deeprails/models/monitor_update_params.rbs +13 -13
  67. data/sig/deeprails/models/monitor_update_response.rbs +41 -0
  68. data/sig/deeprails/models/workflow_event_detail_response.rbs +315 -0
  69. data/sig/deeprails/models/workflow_event_response.rbs +24 -24
  70. data/sig/deeprails/models.rbs +12 -2
  71. data/sig/deeprails/resources/defend.rbs +5 -4
  72. data/sig/deeprails/resources/files.rbs +1 -1
  73. data/sig/deeprails/resources/monitor.rbs +3 -3
  74. metadata +20 -5
  75. data/lib/deeprails/models/monitor_response.rb +0 -83
  76. data/rbi/deeprails/models/monitor_response.rbi +0 -142
  77. data/sig/deeprails/models/monitor_response.rbs +0 -73
@@ -12,16 +12,30 @@ module Deeprails
12
12
  sig { returns(String) }
13
13
  attr_accessor :monitor_id
14
14
 
15
+ # Name of this monitor.
16
+ sig { returns(String) }
17
+ attr_accessor :name
18
+
15
19
  # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
16
20
  # longer record and evaluate events.
21
+ sig { returns(Deeprails::MonitorDetailResponse::Status::TaggedSymbol) }
22
+ attr_accessor :status
23
+
24
+ # An array of capabilities associated with this monitor.
17
25
  sig do
18
- returns(Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol)
26
+ returns(
27
+ T.nilable(T::Array[Deeprails::MonitorDetailResponse::Capability])
28
+ )
19
29
  end
20
- attr_accessor :monitor_status
30
+ attr_reader :capabilities
21
31
 
22
- # Name of this monitor.
23
- sig { returns(String) }
24
- attr_accessor :name
32
+ sig do
33
+ params(
34
+ capabilities:
35
+ T::Array[Deeprails::MonitorDetailResponse::Capability::OrHash]
36
+ ).void
37
+ end
38
+ attr_writer :capabilities
25
39
 
26
40
  # The time the monitor was created in UTC.
27
41
  sig { returns(T.nilable(Time)) }
@@ -54,6 +68,19 @@ module Deeprails
54
68
  end
55
69
  attr_writer :evaluations
56
70
 
71
+ # An array of files associated with this monitor.
72
+ sig do
73
+ returns(T.nilable(T::Array[Deeprails::MonitorDetailResponse::File]))
74
+ end
75
+ attr_reader :files
76
+
77
+ sig do
78
+ params(
79
+ files: T::Array[Deeprails::MonitorDetailResponse::File::OrHash]
80
+ ).void
81
+ end
82
+ attr_writer :files
83
+
57
84
  # Contains five fields used for stats of this monitor: total evaluations,
58
85
  # completed evaluations, failed evaluations, queued evaluations, and in progress
59
86
  # evaluations.
@@ -72,36 +99,32 @@ module Deeprails
72
99
  sig { params(updated_at: Time).void }
73
100
  attr_writer :updated_at
74
101
 
75
- # User ID of the user who created the monitor.
76
- sig { returns(T.nilable(String)) }
77
- attr_reader :user_id
78
-
79
- sig { params(user_id: String).void }
80
- attr_writer :user_id
81
-
82
102
  sig do
83
103
  params(
84
104
  monitor_id: String,
85
- monitor_status:
86
- Deeprails::MonitorDetailResponse::MonitorStatus::OrSymbol,
87
105
  name: String,
106
+ status: Deeprails::MonitorDetailResponse::Status::OrSymbol,
107
+ capabilities:
108
+ T::Array[Deeprails::MonitorDetailResponse::Capability::OrHash],
88
109
  created_at: Time,
89
110
  description: String,
90
111
  evaluations:
91
112
  T::Array[Deeprails::MonitorDetailResponse::Evaluation::OrHash],
113
+ files: T::Array[Deeprails::MonitorDetailResponse::File::OrHash],
92
114
  stats: Deeprails::MonitorDetailResponse::Stats::OrHash,
93
- updated_at: Time,
94
- user_id: String
115
+ updated_at: Time
95
116
  ).returns(T.attached_class)
96
117
  end
97
118
  def self.new(
98
119
  # A unique monitor ID.
99
120
  monitor_id:,
100
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
101
- # longer record and evaluate events.
102
- monitor_status:,
103
121
  # Name of this monitor.
104
122
  name:,
123
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
124
+ # longer record and evaluate events.
125
+ status:,
126
+ # An array of capabilities associated with this monitor.
127
+ capabilities: nil,
105
128
  # The time the monitor was created in UTC.
106
129
  created_at: nil,
107
130
  # Description of this monitor.
@@ -109,14 +132,14 @@ module Deeprails
109
132
  # An array of all evaluations performed by this monitor. Each one corresponds to a
110
133
  # separate monitor event.
111
134
  evaluations: nil,
135
+ # An array of files associated with this monitor.
136
+ files: nil,
112
137
  # Contains five fields used for stats of this monitor: total evaluations,
113
138
  # completed evaluations, failed evaluations, queued evaluations, and in progress
114
139
  # evaluations.
115
140
  stats: nil,
116
141
  # The most recent time the monitor was modified in UTC.
117
- updated_at: nil,
118
- # User ID of the user who created the monitor.
119
- user_id: nil
142
+ updated_at: nil
120
143
  )
121
144
  end
122
145
 
@@ -124,15 +147,16 @@ module Deeprails
124
147
  override.returns(
125
148
  {
126
149
  monitor_id: String,
127
- monitor_status:
128
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol,
129
150
  name: String,
151
+ status: Deeprails::MonitorDetailResponse::Status::TaggedSymbol,
152
+ capabilities:
153
+ T::Array[Deeprails::MonitorDetailResponse::Capability],
130
154
  created_at: Time,
131
155
  description: String,
132
156
  evaluations: T::Array[Deeprails::MonitorDetailResponse::Evaluation],
157
+ files: T::Array[Deeprails::MonitorDetailResponse::File],
133
158
  stats: Deeprails::MonitorDetailResponse::Stats,
134
- updated_at: Time,
135
- user_id: String
159
+ updated_at: Time
136
160
  }
137
161
  )
138
162
  end
@@ -141,37 +165,60 @@ module Deeprails
141
165
 
142
166
  # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
143
167
  # longer record and evaluate events.
144
- module MonitorStatus
168
+ module Status
145
169
  extend Deeprails::Internal::Type::Enum
146
170
 
147
171
  TaggedSymbol =
148
172
  T.type_alias do
149
- T.all(Symbol, Deeprails::MonitorDetailResponse::MonitorStatus)
173
+ T.all(Symbol, Deeprails::MonitorDetailResponse::Status)
150
174
  end
151
175
  OrSymbol = T.type_alias { T.any(Symbol, String) }
152
176
 
153
177
  ACTIVE =
154
- T.let(
155
- :active,
156
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
157
- )
178
+ T.let(:active, Deeprails::MonitorDetailResponse::Status::TaggedSymbol)
158
179
  INACTIVE =
159
180
  T.let(
160
181
  :inactive,
161
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
182
+ Deeprails::MonitorDetailResponse::Status::TaggedSymbol
162
183
  )
163
184
 
164
185
  sig do
165
186
  override.returns(
166
- T::Array[
167
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
168
- ]
187
+ T::Array[Deeprails::MonitorDetailResponse::Status::TaggedSymbol]
169
188
  )
170
189
  end
171
190
  def self.values
172
191
  end
173
192
  end
174
193
 
194
+ class Capability < Deeprails::Internal::Type::BaseModel
195
+ OrHash =
196
+ T.type_alias do
197
+ T.any(
198
+ Deeprails::MonitorDetailResponse::Capability,
199
+ Deeprails::Internal::AnyHash
200
+ )
201
+ end
202
+
203
+ # The type of capability.
204
+ sig { returns(T.nilable(String)) }
205
+ attr_reader :capability
206
+
207
+ sig { params(capability: String).void }
208
+ attr_writer :capability
209
+
210
+ sig { params(capability: String).returns(T.attached_class) }
211
+ def self.new(
212
+ # The type of capability.
213
+ capability: nil
214
+ )
215
+ end
216
+
217
+ sig { override.returns({ capability: String }) }
218
+ def to_hash
219
+ end
220
+ end
221
+
175
222
  class Evaluation < Deeprails::Internal::Type::BaseModel
176
223
  OrHash =
177
224
  T.type_alias do
@@ -181,10 +228,6 @@ module Deeprails
181
228
  )
182
229
  end
183
230
 
184
- # A unique evaluation ID.
185
- sig { returns(String) }
186
- attr_accessor :eval_id
187
-
188
231
  # Status of the evaluation.
189
232
  sig do
190
233
  returns(
@@ -229,27 +272,13 @@ module Deeprails
229
272
  sig { params(created_at: Time).void }
230
273
  attr_writer :created_at
231
274
 
232
- # The time the evaluation completed in UTC.
233
- sig { returns(T.nilable(Time)) }
234
- attr_reader :end_timestamp
235
-
236
- sig { params(end_timestamp: Time).void }
237
- attr_writer :end_timestamp
238
-
239
- # Description of the error causing the evaluation to fail, if any.
275
+ # Error message if the evaluation failed.
240
276
  sig { returns(T.nilable(String)) }
241
277
  attr_reader :error_message
242
278
 
243
279
  sig { params(error_message: String).void }
244
280
  attr_writer :error_message
245
281
 
246
- # The time the error causing the evaluation to fail was recorded.
247
- sig { returns(T.nilable(Time)) }
248
- attr_reader :error_timestamp
249
-
250
- sig { params(error_timestamp: Time).void }
251
- attr_writer :error_timestamp
252
-
253
282
  # Evaluation result consisting of average scores and rationales for each of the
254
283
  # evaluated guardrail metrics.
255
284
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
@@ -288,20 +317,6 @@ module Deeprails
288
317
  end
289
318
  attr_writer :guardrail_metrics
290
319
 
291
- # Model ID used to generate the output, like `gpt-4o` or `o3`.
292
- sig { returns(T.nilable(String)) }
293
- attr_reader :model_used
294
-
295
- sig { params(model_used: String).void }
296
- attr_writer :model_used
297
-
298
- # The most recent time the evaluation was modified in UTC.
299
- sig { returns(T.nilable(Time)) }
300
- attr_reader :modified_at
301
-
302
- sig { params(modified_at: Time).void }
303
- attr_writer :modified_at
304
-
305
320
  # An optional, user-defined tag for the evaluation.
306
321
  sig { returns(T.nilable(String)) }
307
322
  attr_reader :nametag
@@ -317,16 +332,8 @@ module Deeprails
317
332
  sig { params(progress: Integer).void }
318
333
  attr_writer :progress
319
334
 
320
- # The time the evaluation started in UTC.
321
- sig { returns(T.nilable(Time)) }
322
- attr_reader :start_timestamp
323
-
324
- sig { params(start_timestamp: Time).void }
325
- attr_writer :start_timestamp
326
-
327
335
  sig do
328
336
  params(
329
- eval_id: String,
330
337
  evaluation_status:
331
338
  Deeprails::MonitorDetailResponse::Evaluation::EvaluationStatus::OrSymbol,
332
339
  model_input:
@@ -335,25 +342,18 @@ module Deeprails
335
342
  run_mode:
336
343
  Deeprails::MonitorDetailResponse::Evaluation::RunMode::OrSymbol,
337
344
  created_at: Time,
338
- end_timestamp: Time,
339
345
  error_message: String,
340
- error_timestamp: Time,
341
346
  evaluation_result: T::Hash[Symbol, T.anything],
342
347
  evaluation_total_cost: Float,
343
348
  guardrail_metrics:
344
349
  T::Array[
345
350
  Deeprails::MonitorDetailResponse::Evaluation::GuardrailMetric::OrSymbol
346
351
  ],
347
- model_used: String,
348
- modified_at: Time,
349
352
  nametag: String,
350
- progress: Integer,
351
- start_timestamp: Time
353
+ progress: Integer
352
354
  ).returns(T.attached_class)
353
355
  end
354
356
  def self.new(
355
- # A unique evaluation ID.
356
- eval_id:,
357
357
  # Status of the evaluation.
358
358
  evaluation_status:,
359
359
  # A dictionary of inputs sent to the LLM to generate output. The dictionary must
@@ -367,12 +367,8 @@ module Deeprails
367
367
  run_mode:,
368
368
  # The time the evaluation was created in UTC.
369
369
  created_at: nil,
370
- # The time the evaluation completed in UTC.
371
- end_timestamp: nil,
372
- # Description of the error causing the evaluation to fail, if any.
370
+ # Error message if the evaluation failed.
373
371
  error_message: nil,
374
- # The time the error causing the evaluation to fail was recorded.
375
- error_timestamp: nil,
376
372
  # Evaluation result consisting of average scores and rationales for each of the
377
373
  # evaluated guardrail metrics.
378
374
  evaluation_result: nil,
@@ -381,24 +377,17 @@ module Deeprails
381
377
  # An array of guardrail metrics that the model input and output pair will be
382
378
  # evaluated on.
383
379
  guardrail_metrics: nil,
384
- # Model ID used to generate the output, like `gpt-4o` or `o3`.
385
- model_used: nil,
386
- # The most recent time the evaluation was modified in UTC.
387
- modified_at: nil,
388
380
  # An optional, user-defined tag for the evaluation.
389
381
  nametag: nil,
390
382
  # Evaluation progress. Values range between 0 and 100; 100 corresponds to a
391
383
  # completed `evaluation_status`.
392
- progress: nil,
393
- # The time the evaluation started in UTC.
394
- start_timestamp: nil
384
+ progress: nil
395
385
  )
396
386
  end
397
387
 
398
388
  sig do
399
389
  override.returns(
400
390
  {
401
- eval_id: String,
402
391
  evaluation_status:
403
392
  Deeprails::MonitorDetailResponse::Evaluation::EvaluationStatus::TaggedSymbol,
404
393
  model_input:
@@ -407,20 +396,15 @@ module Deeprails
407
396
  run_mode:
408
397
  Deeprails::MonitorDetailResponse::Evaluation::RunMode::TaggedSymbol,
409
398
  created_at: Time,
410
- end_timestamp: Time,
411
399
  error_message: String,
412
- error_timestamp: Time,
413
400
  evaluation_result: T::Hash[Symbol, T.anything],
414
401
  evaluation_total_cost: Float,
415
402
  guardrail_metrics:
416
403
  T::Array[
417
404
  Deeprails::MonitorDetailResponse::Evaluation::GuardrailMetric::TaggedSymbol
418
405
  ],
419
- model_used: String,
420
- modified_at: Time,
421
406
  nametag: String,
422
- progress: Integer,
423
- start_timestamp: Time
407
+ progress: Integer
424
408
  }
425
409
  )
426
410
  end
@@ -641,6 +625,62 @@ module Deeprails
641
625
  end
642
626
  end
643
627
 
628
+ class File < Deeprails::Internal::Type::BaseModel
629
+ OrHash =
630
+ T.type_alias do
631
+ T.any(
632
+ Deeprails::MonitorDetailResponse::File,
633
+ Deeprails::Internal::AnyHash
634
+ )
635
+ end
636
+
637
+ # The ID of the file.
638
+ sig { returns(T.nilable(String)) }
639
+ attr_reader :file_id
640
+
641
+ sig { params(file_id: String).void }
642
+ attr_writer :file_id
643
+
644
+ # The name of the file.
645
+ sig { returns(T.nilable(String)) }
646
+ attr_reader :file_name
647
+
648
+ sig { params(file_name: String).void }
649
+ attr_writer :file_name
650
+
651
+ # The size of the file in bytes.
652
+ sig { returns(T.nilable(Integer)) }
653
+ attr_reader :file_size
654
+
655
+ sig { params(file_size: Integer).void }
656
+ attr_writer :file_size
657
+
658
+ sig do
659
+ params(
660
+ file_id: String,
661
+ file_name: String,
662
+ file_size: Integer
663
+ ).returns(T.attached_class)
664
+ end
665
+ def self.new(
666
+ # The ID of the file.
667
+ file_id: nil,
668
+ # The name of the file.
669
+ file_name: nil,
670
+ # The size of the file in bytes.
671
+ file_size: nil
672
+ )
673
+ end
674
+
675
+ sig do
676
+ override.returns(
677
+ { file_id: String, file_name: String, file_size: Integer }
678
+ )
679
+ end
680
+ def to_hash
681
+ end
682
+ end
683
+
644
684
  class Stats < Deeprails::Internal::Type::BaseModel
645
685
  OrHash =
646
686
  T.type_alias do