deeprails 0.11.0 → 0.13.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -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 +294 -54
  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 +103 -104
  16. data/lib/deeprails/models/monitor_event_detail_response.rb +183 -0
  17. data/lib/deeprails/models/monitor_event_response.rb +1 -9
  18. data/lib/deeprails/models/monitor_retrieve_event_params.rb +20 -0
  19. data/lib/deeprails/models/monitor_retrieve_params.rb +6 -2
  20. data/lib/deeprails/models/monitor_update_params.rb +11 -11
  21. data/lib/deeprails/models/monitor_update_response.rb +51 -0
  22. data/lib/deeprails/models/workflow_event_detail_response.rb +314 -0
  23. data/lib/deeprails/models/workflow_event_response.rb +29 -30
  24. data/lib/deeprails/models.rb +13 -1
  25. data/lib/deeprails/resources/defend.rb +20 -13
  26. data/lib/deeprails/resources/files.rb +1 -1
  27. data/lib/deeprails/resources/monitor.rb +38 -8
  28. data/lib/deeprails/version.rb +1 -1
  29. data/lib/deeprails.rb +8 -1
  30. data/manifest.yaml +1 -0
  31. data/rbi/deeprails/internal/transport/base_client.rbi +5 -0
  32. data/rbi/deeprails/internal/transport/pooled_net_requester.rbi +6 -2
  33. data/rbi/deeprails/internal/type/base_model.rbi +8 -4
  34. data/rbi/deeprails/models/defend_create_response.rbi +83 -0
  35. data/rbi/deeprails/models/defend_create_workflow_params.rbi +33 -27
  36. data/rbi/deeprails/models/defend_response.rbi +528 -109
  37. data/rbi/deeprails/models/defend_retrieve_workflow_params.rbi +23 -5
  38. data/rbi/deeprails/models/defend_update_response.rbi +83 -0
  39. data/rbi/deeprails/models/file_response.rbi +11 -39
  40. data/rbi/deeprails/models/file_upload_params.rbi +3 -6
  41. data/rbi/deeprails/models/monitor_create_response.rbi +83 -0
  42. data/rbi/deeprails/models/monitor_detail_response.rbi +168 -167
  43. data/rbi/deeprails/models/monitor_event_detail_response.rbi +386 -0
  44. data/rbi/deeprails/models/monitor_event_response.rbi +4 -18
  45. data/rbi/deeprails/models/monitor_retrieve_event_params.rbi +38 -0
  46. data/rbi/deeprails/models/monitor_retrieve_params.rbi +4 -2
  47. data/rbi/deeprails/models/monitor_update_params.rbi +21 -38
  48. data/rbi/deeprails/models/monitor_update_response.rbi +83 -0
  49. data/rbi/deeprails/models/workflow_event_detail_response.rbi +657 -0
  50. data/rbi/deeprails/models/workflow_event_response.rbi +49 -42
  51. data/rbi/deeprails/models.rbi +13 -1
  52. data/rbi/deeprails/resources/defend.rbi +17 -12
  53. data/rbi/deeprails/resources/files.rbi +1 -1
  54. data/rbi/deeprails/resources/monitor.rbi +25 -8
  55. data/sig/deeprails/internal/transport/base_client.rbs +2 -0
  56. data/sig/deeprails/internal/transport/pooled_net_requester.rbs +4 -1
  57. data/sig/deeprails/models/defend_create_response.rbs +41 -0
  58. data/sig/deeprails/models/defend_create_workflow_params.rbs +7 -7
  59. data/sig/deeprails/models/defend_response.rbs +282 -47
  60. data/sig/deeprails/models/defend_retrieve_workflow_params.rbs +13 -3
  61. data/sig/deeprails/models/defend_update_response.rbs +41 -0
  62. data/sig/deeprails/models/file_response.rbs +5 -27
  63. data/sig/deeprails/models/file_upload_params.rbs +4 -5
  64. data/sig/deeprails/models/monitor_create_response.rbs +41 -0
  65. data/sig/deeprails/models/monitor_detail_response.rbs +80 -89
  66. data/sig/deeprails/models/monitor_event_detail_response.rbs +181 -0
  67. data/sig/deeprails/models/monitor_event_response.rbs +2 -15
  68. data/sig/deeprails/models/monitor_retrieve_event_params.rbs +23 -0
  69. data/sig/deeprails/models/monitor_update_params.rbs +13 -13
  70. data/sig/deeprails/models/monitor_update_response.rbs +41 -0
  71. data/sig/deeprails/models/workflow_event_detail_response.rbs +303 -0
  72. data/sig/deeprails/models/workflow_event_response.rbs +24 -24
  73. data/sig/deeprails/models.rbs +13 -1
  74. data/sig/deeprails/resources/defend.rbs +5 -4
  75. data/sig/deeprails/resources/files.rbs +1 -1
  76. data/sig/deeprails/resources/monitor.rbs +9 -3
  77. metadata +23 -5
  78. data/lib/deeprails/models/monitor_response.rb +0 -83
  79. data/rbi/deeprails/models/monitor_response.rbi +0 -142
  80. data/sig/deeprails/models/monitor_response.rbs +0 -73
@@ -8,56 +8,35 @@ module Deeprails
8
8
  T.any(Deeprails::MonitorDetailResponse, Deeprails::Internal::AnyHash)
9
9
  end
10
10
 
11
+ # An array of capabilities associated with this monitor.
12
+ sig { returns(T::Array[Deeprails::MonitorDetailResponse::Capability]) }
13
+ attr_accessor :capabilities
14
+
15
+ # The time the monitor was created in UTC.
16
+ sig { returns(Time) }
17
+ attr_accessor :created_at
18
+
19
+ # An array of all evaluations performed by this monitor. Each one corresponds to a
20
+ # separate monitor event.
21
+ sig { returns(T::Array[Deeprails::MonitorDetailResponse::Evaluation]) }
22
+ attr_accessor :evaluations
23
+
24
+ # An array of files associated with this monitor.
25
+ sig { returns(T::Array[Deeprails::MonitorDetailResponse::File]) }
26
+ attr_accessor :files
27
+
11
28
  # A unique monitor ID.
12
29
  sig { returns(String) }
13
30
  attr_accessor :monitor_id
14
31
 
15
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
16
- # longer record and evaluate events.
17
- sig do
18
- returns(Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol)
19
- end
20
- attr_accessor :monitor_status
21
-
22
32
  # Name of this monitor.
23
33
  sig { returns(String) }
24
34
  attr_accessor :name
25
35
 
26
- # The time the monitor was created in UTC.
27
- sig { returns(T.nilable(Time)) }
28
- attr_reader :created_at
29
-
30
- sig { params(created_at: Time).void }
31
- attr_writer :created_at
32
-
33
- # Description of this monitor.
34
- sig { returns(T.nilable(String)) }
35
- attr_reader :description
36
-
37
- sig { params(description: String).void }
38
- attr_writer :description
39
-
40
- # An array of all evaluations performed by this monitor. Each one corresponds to a
41
- # separate monitor event.
42
- sig do
43
- returns(
44
- T.nilable(T::Array[Deeprails::MonitorDetailResponse::Evaluation])
45
- )
46
- end
47
- attr_reader :evaluations
48
-
49
- sig do
50
- params(
51
- evaluations:
52
- T::Array[Deeprails::MonitorDetailResponse::Evaluation::OrHash]
53
- ).void
54
- end
55
- attr_writer :evaluations
56
-
57
36
  # Contains five fields used for stats of this monitor: total evaluations,
58
37
  # completed evaluations, failed evaluations, queued evaluations, and in progress
59
38
  # evaluations.
60
- sig { returns(T.nilable(Deeprails::MonitorDetailResponse::Stats)) }
39
+ sig { returns(Deeprails::MonitorDetailResponse::Stats) }
61
40
  attr_reader :stats
62
41
 
63
42
  sig do
@@ -65,110 +44,111 @@ module Deeprails
65
44
  end
66
45
  attr_writer :stats
67
46
 
68
- # The most recent time the monitor was modified in UTC.
69
- sig { returns(T.nilable(Time)) }
70
- attr_reader :updated_at
47
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
48
+ # longer record and evaluate events.
49
+ sig { returns(Deeprails::MonitorDetailResponse::Status::TaggedSymbol) }
50
+ attr_accessor :status
71
51
 
72
- sig { params(updated_at: Time).void }
73
- attr_writer :updated_at
52
+ # The most recent time the monitor was modified in UTC.
53
+ sig { returns(Time) }
54
+ attr_accessor :updated_at
74
55
 
75
- # User ID of the user who created the monitor.
56
+ # Description of this monitor.
76
57
  sig { returns(T.nilable(String)) }
77
- attr_reader :user_id
58
+ attr_reader :description
78
59
 
79
- sig { params(user_id: String).void }
80
- attr_writer :user_id
60
+ sig { params(description: String).void }
61
+ attr_writer :description
81
62
 
82
63
  sig do
83
64
  params(
84
- monitor_id: String,
85
- monitor_status:
86
- Deeprails::MonitorDetailResponse::MonitorStatus::OrSymbol,
87
- name: String,
65
+ capabilities:
66
+ T::Array[Deeprails::MonitorDetailResponse::Capability::OrHash],
88
67
  created_at: Time,
89
- description: String,
90
68
  evaluations:
91
69
  T::Array[Deeprails::MonitorDetailResponse::Evaluation::OrHash],
70
+ files: T::Array[Deeprails::MonitorDetailResponse::File::OrHash],
71
+ monitor_id: String,
72
+ name: String,
92
73
  stats: Deeprails::MonitorDetailResponse::Stats::OrHash,
74
+ status: Deeprails::MonitorDetailResponse::Status::OrSymbol,
93
75
  updated_at: Time,
94
- user_id: String
76
+ description: String
95
77
  ).returns(T.attached_class)
96
78
  end
97
79
  def self.new(
80
+ # An array of capabilities associated with this monitor.
81
+ capabilities:,
82
+ # The time the monitor was created in UTC.
83
+ created_at:,
84
+ # An array of all evaluations performed by this monitor. Each one corresponds to a
85
+ # separate monitor event.
86
+ evaluations:,
87
+ # An array of files associated with this monitor.
88
+ files:,
98
89
  # A unique monitor ID.
99
90
  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
91
  # Name of this monitor.
104
92
  name:,
105
- # The time the monitor was created in UTC.
106
- created_at: nil,
107
- # Description of this monitor.
108
- description: nil,
109
- # An array of all evaluations performed by this monitor. Each one corresponds to a
110
- # separate monitor event.
111
- evaluations: nil,
112
93
  # Contains five fields used for stats of this monitor: total evaluations,
113
94
  # completed evaluations, failed evaluations, queued evaluations, and in progress
114
95
  # evaluations.
115
- stats: nil,
96
+ stats:,
97
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
98
+ # longer record and evaluate events.
99
+ status:,
116
100
  # 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
101
+ updated_at:,
102
+ # Description of this monitor.
103
+ description: nil
120
104
  )
121
105
  end
122
106
 
123
107
  sig do
124
108
  override.returns(
125
109
  {
126
- monitor_id: String,
127
- monitor_status:
128
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol,
129
- name: String,
110
+ capabilities:
111
+ T::Array[Deeprails::MonitorDetailResponse::Capability],
130
112
  created_at: Time,
131
- description: String,
132
113
  evaluations: T::Array[Deeprails::MonitorDetailResponse::Evaluation],
114
+ files: T::Array[Deeprails::MonitorDetailResponse::File],
115
+ monitor_id: String,
116
+ name: String,
133
117
  stats: Deeprails::MonitorDetailResponse::Stats,
118
+ status: Deeprails::MonitorDetailResponse::Status::TaggedSymbol,
134
119
  updated_at: Time,
135
- user_id: String
120
+ description: String
136
121
  }
137
122
  )
138
123
  end
139
124
  def to_hash
140
125
  end
141
126
 
142
- # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
143
- # longer record and evaluate events.
144
- module MonitorStatus
145
- extend Deeprails::Internal::Type::Enum
146
-
147
- TaggedSymbol =
127
+ class Capability < Deeprails::Internal::Type::BaseModel
128
+ OrHash =
148
129
  T.type_alias do
149
- T.all(Symbol, Deeprails::MonitorDetailResponse::MonitorStatus)
130
+ T.any(
131
+ Deeprails::MonitorDetailResponse::Capability,
132
+ Deeprails::Internal::AnyHash
133
+ )
150
134
  end
151
- OrSymbol = T.type_alias { T.any(Symbol, String) }
152
135
 
153
- ACTIVE =
154
- T.let(
155
- :active,
156
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
157
- )
158
- INACTIVE =
159
- T.let(
160
- :inactive,
161
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
162
- )
136
+ # The type of capability.
137
+ sig { returns(T.nilable(String)) }
138
+ attr_reader :capability
163
139
 
164
- sig do
165
- override.returns(
166
- T::Array[
167
- Deeprails::MonitorDetailResponse::MonitorStatus::TaggedSymbol
168
- ]
169
- )
140
+ sig { params(capability: String).void }
141
+ attr_writer :capability
142
+
143
+ sig { params(capability: String).returns(T.attached_class) }
144
+ def self.new(
145
+ # The type of capability.
146
+ capability: nil
147
+ )
170
148
  end
171
- def self.values
149
+
150
+ sig { override.returns({ capability: String }) }
151
+ def to_hash
172
152
  end
173
153
  end
174
154
 
@@ -181,10 +161,6 @@ module Deeprails
181
161
  )
182
162
  end
183
163
 
184
- # A unique evaluation ID.
185
- sig { returns(String) }
186
- attr_accessor :eval_id
187
-
188
164
  # Status of the evaluation.
189
165
  sig do
190
166
  returns(
@@ -229,27 +205,13 @@ module Deeprails
229
205
  sig { params(created_at: Time).void }
230
206
  attr_writer :created_at
231
207
 
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.
208
+ # Error message if the evaluation failed.
240
209
  sig { returns(T.nilable(String)) }
241
210
  attr_reader :error_message
242
211
 
243
212
  sig { params(error_message: String).void }
244
213
  attr_writer :error_message
245
214
 
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
215
  # Evaluation result consisting of average scores and rationales for each of the
254
216
  # evaluated guardrail metrics.
255
217
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
@@ -288,20 +250,6 @@ module Deeprails
288
250
  end
289
251
  attr_writer :guardrail_metrics
290
252
 
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
253
  # An optional, user-defined tag for the evaluation.
306
254
  sig { returns(T.nilable(String)) }
307
255
  attr_reader :nametag
@@ -317,16 +265,8 @@ module Deeprails
317
265
  sig { params(progress: Integer).void }
318
266
  attr_writer :progress
319
267
 
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
268
  sig do
328
269
  params(
329
- eval_id: String,
330
270
  evaluation_status:
331
271
  Deeprails::MonitorDetailResponse::Evaluation::EvaluationStatus::OrSymbol,
332
272
  model_input:
@@ -335,25 +275,18 @@ module Deeprails
335
275
  run_mode:
336
276
  Deeprails::MonitorDetailResponse::Evaluation::RunMode::OrSymbol,
337
277
  created_at: Time,
338
- end_timestamp: Time,
339
278
  error_message: String,
340
- error_timestamp: Time,
341
279
  evaluation_result: T::Hash[Symbol, T.anything],
342
280
  evaluation_total_cost: Float,
343
281
  guardrail_metrics:
344
282
  T::Array[
345
283
  Deeprails::MonitorDetailResponse::Evaluation::GuardrailMetric::OrSymbol
346
284
  ],
347
- model_used: String,
348
- modified_at: Time,
349
285
  nametag: String,
350
- progress: Integer,
351
- start_timestamp: Time
286
+ progress: Integer
352
287
  ).returns(T.attached_class)
353
288
  end
354
289
  def self.new(
355
- # A unique evaluation ID.
356
- eval_id:,
357
290
  # Status of the evaluation.
358
291
  evaluation_status:,
359
292
  # A dictionary of inputs sent to the LLM to generate output. The dictionary must
@@ -367,12 +300,8 @@ module Deeprails
367
300
  run_mode:,
368
301
  # The time the evaluation was created in UTC.
369
302
  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.
303
+ # Error message if the evaluation failed.
373
304
  error_message: nil,
374
- # The time the error causing the evaluation to fail was recorded.
375
- error_timestamp: nil,
376
305
  # Evaluation result consisting of average scores and rationales for each of the
377
306
  # evaluated guardrail metrics.
378
307
  evaluation_result: nil,
@@ -381,24 +310,17 @@ module Deeprails
381
310
  # An array of guardrail metrics that the model input and output pair will be
382
311
  # evaluated on.
383
312
  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
313
  # An optional, user-defined tag for the evaluation.
389
314
  nametag: nil,
390
315
  # Evaluation progress. Values range between 0 and 100; 100 corresponds to a
391
316
  # completed `evaluation_status`.
392
- progress: nil,
393
- # The time the evaluation started in UTC.
394
- start_timestamp: nil
317
+ progress: nil
395
318
  )
396
319
  end
397
320
 
398
321
  sig do
399
322
  override.returns(
400
323
  {
401
- eval_id: String,
402
324
  evaluation_status:
403
325
  Deeprails::MonitorDetailResponse::Evaluation::EvaluationStatus::TaggedSymbol,
404
326
  model_input:
@@ -407,20 +329,15 @@ module Deeprails
407
329
  run_mode:
408
330
  Deeprails::MonitorDetailResponse::Evaluation::RunMode::TaggedSymbol,
409
331
  created_at: Time,
410
- end_timestamp: Time,
411
332
  error_message: String,
412
- error_timestamp: Time,
413
333
  evaluation_result: T::Hash[Symbol, T.anything],
414
334
  evaluation_total_cost: Float,
415
335
  guardrail_metrics:
416
336
  T::Array[
417
337
  Deeprails::MonitorDetailResponse::Evaluation::GuardrailMetric::TaggedSymbol
418
338
  ],
419
- model_used: String,
420
- modified_at: Time,
421
339
  nametag: String,
422
- progress: Integer,
423
- start_timestamp: Time
340
+ progress: Integer
424
341
  }
425
342
  )
426
343
  end
@@ -641,6 +558,62 @@ module Deeprails
641
558
  end
642
559
  end
643
560
 
561
+ class File < Deeprails::Internal::Type::BaseModel
562
+ OrHash =
563
+ T.type_alias do
564
+ T.any(
565
+ Deeprails::MonitorDetailResponse::File,
566
+ Deeprails::Internal::AnyHash
567
+ )
568
+ end
569
+
570
+ # The ID of the file.
571
+ sig { returns(T.nilable(String)) }
572
+ attr_reader :file_id
573
+
574
+ sig { params(file_id: String).void }
575
+ attr_writer :file_id
576
+
577
+ # The name of the file.
578
+ sig { returns(T.nilable(String)) }
579
+ attr_reader :file_name
580
+
581
+ sig { params(file_name: String).void }
582
+ attr_writer :file_name
583
+
584
+ # The size of the file in bytes.
585
+ sig { returns(T.nilable(Integer)) }
586
+ attr_reader :file_size
587
+
588
+ sig { params(file_size: Integer).void }
589
+ attr_writer :file_size
590
+
591
+ sig do
592
+ params(
593
+ file_id: String,
594
+ file_name: String,
595
+ file_size: Integer
596
+ ).returns(T.attached_class)
597
+ end
598
+ def self.new(
599
+ # The ID of the file.
600
+ file_id: nil,
601
+ # The name of the file.
602
+ file_name: nil,
603
+ # The size of the file in bytes.
604
+ file_size: nil
605
+ )
606
+ end
607
+
608
+ sig do
609
+ override.returns(
610
+ { file_id: String, file_name: String, file_size: Integer }
611
+ )
612
+ end
613
+ def to_hash
614
+ end
615
+ end
616
+
644
617
  class Stats < Deeprails::Internal::Type::BaseModel
645
618
  OrHash =
646
619
  T.type_alias do
@@ -725,6 +698,34 @@ module Deeprails
725
698
  def to_hash
726
699
  end
727
700
  end
701
+
702
+ # Status of the monitor. Can be `active` or `inactive`. Inactive monitors no
703
+ # longer record and evaluate events.
704
+ module Status
705
+ extend Deeprails::Internal::Type::Enum
706
+
707
+ TaggedSymbol =
708
+ T.type_alias do
709
+ T.all(Symbol, Deeprails::MonitorDetailResponse::Status)
710
+ end
711
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
712
+
713
+ ACTIVE =
714
+ T.let(:active, Deeprails::MonitorDetailResponse::Status::TaggedSymbol)
715
+ INACTIVE =
716
+ T.let(
717
+ :inactive,
718
+ Deeprails::MonitorDetailResponse::Status::TaggedSymbol
719
+ )
720
+
721
+ sig do
722
+ override.returns(
723
+ T::Array[Deeprails::MonitorDetailResponse::Status::TaggedSymbol]
724
+ )
725
+ end
726
+ def self.values
727
+ end
728
+ end
728
729
  end
729
730
  end
730
731
  end