context.dev 2.1.0 → 2.2.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.
@@ -139,6 +139,26 @@ module ContextDev
139
139
  sig { returns(T.nilable(Time)) }
140
140
  attr_accessor :started_at
141
141
 
142
+ # The webhook delivery attempted for a change detected by this run. Omitted when
143
+ # no webhook was attempted, including historical runs created before delivery
144
+ # tracking was added.
145
+ sig do
146
+ returns(
147
+ T.nilable(
148
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
149
+ )
150
+ )
151
+ end
152
+ attr_reader :webhook_delivery
153
+
154
+ sig do
155
+ params(
156
+ webhook_delivery:
157
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::OrHash
158
+ ).void
159
+ end
160
+ attr_writer :webhook_delivery
161
+
142
162
  sig do
143
163
  params(
144
164
  id: String,
@@ -164,7 +184,9 @@ module ContextDev
164
184
  T.nilable(
165
185
  ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::OrSymbol
166
186
  ),
167
- started_at: T.nilable(Time)
187
+ started_at: T.nilable(Time),
188
+ webhook_delivery:
189
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::OrHash
168
190
  ).returns(T.attached_class)
169
191
  end
170
192
  def self.new(
@@ -188,7 +210,11 @@ module ContextDev
188
210
  error: nil,
189
211
  # Why a skipped run never executed; null unless status is `skipped`.
190
212
  skip_reason: nil,
191
- started_at: nil
213
+ started_at: nil,
214
+ # The webhook delivery attempted for a change detected by this run. Omitted when
215
+ # no webhook was attempted, including historical runs created before delivery
216
+ # tracking was added.
217
+ webhook_delivery: nil
192
218
  )
193
219
  end
194
220
 
@@ -218,7 +244,9 @@ module ContextDev
218
244
  T.nilable(
219
245
  ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::TaggedSymbol
220
246
  ),
221
- started_at: T.nilable(Time)
247
+ started_at: T.nilable(Time),
248
+ webhook_delivery:
249
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
222
250
  }
223
251
  )
224
252
  end
@@ -449,6 +477,179 @@ module ContextDev
449
477
  def self.values
450
478
  end
451
479
  end
480
+
481
+ class WebhookDelivery < ContextDev::Internal::Type::BaseModel
482
+ OrHash =
483
+ T.type_alias do
484
+ T.any(
485
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery,
486
+ ContextDev::Internal::AnyHash
487
+ )
488
+ end
489
+
490
+ sig { returns(Time) }
491
+ attr_accessor :attempted_at
492
+
493
+ sig do
494
+ returns(
495
+ T.nilable(
496
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error
497
+ )
498
+ )
499
+ end
500
+ attr_reader :error
501
+
502
+ sig do
503
+ params(
504
+ error:
505
+ T.nilable(
506
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error::OrHash
507
+ )
508
+ ).void
509
+ end
510
+ attr_writer :error
511
+
512
+ # Identifier sent in the X-Context-Id header.
513
+ sig { returns(String) }
514
+ attr_accessor :event_id
515
+
516
+ # The endpoint's final HTTP response status, or null when no response was
517
+ # received.
518
+ sig { returns(T.nilable(Integer)) }
519
+ attr_accessor :http_status
520
+
521
+ # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
522
+ # response; failed means no HTTP response was received; skipped_unsafe_url means
523
+ # the URL failed the public-endpoint safety check.
524
+ sig do
525
+ returns(
526
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
527
+ )
528
+ end
529
+ attr_accessor :status
530
+
531
+ # The webhook delivery attempted for a change detected by this run. Omitted when
532
+ # no webhook was attempted, including historical runs created before delivery
533
+ # tracking was added.
534
+ sig do
535
+ params(
536
+ attempted_at: Time,
537
+ error:
538
+ T.nilable(
539
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error::OrHash
540
+ ),
541
+ event_id: String,
542
+ http_status: T.nilable(Integer),
543
+ status:
544
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::OrSymbol
545
+ ).returns(T.attached_class)
546
+ end
547
+ def self.new(
548
+ attempted_at:,
549
+ error:,
550
+ # Identifier sent in the X-Context-Id header.
551
+ event_id:,
552
+ # The endpoint's final HTTP response status, or null when no response was
553
+ # received.
554
+ http_status:,
555
+ # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
556
+ # response; failed means no HTTP response was received; skipped_unsafe_url means
557
+ # the URL failed the public-endpoint safety check.
558
+ status:
559
+ )
560
+ end
561
+
562
+ sig do
563
+ override.returns(
564
+ {
565
+ attempted_at: Time,
566
+ error:
567
+ T.nilable(
568
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error
569
+ ),
570
+ event_id: String,
571
+ http_status: T.nilable(Integer),
572
+ status:
573
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
574
+ }
575
+ )
576
+ end
577
+ def to_hash
578
+ end
579
+
580
+ class Error < ContextDev::Internal::Type::BaseModel
581
+ OrHash =
582
+ T.type_alias do
583
+ T.any(
584
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error,
585
+ ContextDev::Internal::AnyHash
586
+ )
587
+ end
588
+
589
+ sig { returns(String) }
590
+ attr_accessor :code
591
+
592
+ sig { returns(String) }
593
+ attr_accessor :message
594
+
595
+ sig do
596
+ params(code: String, message: String).returns(T.attached_class)
597
+ end
598
+ def self.new(code:, message:)
599
+ end
600
+
601
+ sig { override.returns({ code: String, message: String }) }
602
+ def to_hash
603
+ end
604
+ end
605
+
606
+ # Delivery outcome. delivered means any 2xx response; rejected means a non-2xx
607
+ # response; failed means no HTTP response was received; skipped_unsafe_url means
608
+ # the URL failed the public-endpoint safety check.
609
+ module Status
610
+ extend ContextDev::Internal::Type::Enum
611
+
612
+ TaggedSymbol =
613
+ T.type_alias do
614
+ T.all(
615
+ Symbol,
616
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status
617
+ )
618
+ end
619
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
620
+
621
+ DELIVERED =
622
+ T.let(
623
+ :delivered,
624
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
625
+ )
626
+ REJECTED =
627
+ T.let(
628
+ :rejected,
629
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
630
+ )
631
+ FAILED =
632
+ T.let(
633
+ :failed,
634
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
635
+ )
636
+ SKIPPED_UNSAFE_URL =
637
+ T.let(
638
+ :skipped_unsafe_url,
639
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
640
+ )
641
+
642
+ sig do
643
+ override.returns(
644
+ T::Array[
645
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Status::TaggedSymbol
646
+ ]
647
+ )
648
+ end
649
+ def self.values
650
+ end
651
+ end
652
+ end
452
653
  end
453
654
  end
454
655
  end
@@ -304,9 +304,9 @@ module ContextDev
304
304
  sig { params(confidence_threshold: Float).void }
305
305
  attr_writer :confidence_threshold
306
306
 
307
- # Detect meaning-level changes to the extracted data, ignoring cosmetic or
308
- # paraphrase-only differences. What is watched is determined by the extract
309
- # target's `schema` and `instructions`.
307
+ # Detect meaning-level changes to tracked page content, ignoring cosmetic or
308
+ # paraphrase-only differences. Which changes are meaningful is judged against the
309
+ # extract target's `instructions` (and `schema`, when provided).
310
310
  sig do
311
311
  params(confidence_threshold: Float, type: Symbol).returns(
312
312
  T.attached_class
@@ -716,9 +716,14 @@ module ContextDev
716
716
  sig { params(max_pages: Integer).void }
717
717
  attr_writer :max_pages
718
718
 
719
- # JSON Schema describing the data you care about. It guides which pages are
720
- # selected for tracking and gives the change judge context on what matters. If
721
- # omitted, a default summary + key-points schema is used.
719
+ # JSON Schema describing the data you care about. It is used three ways: it guides
720
+ # which pages are selected for tracking, it gives the change judge extra context
721
+ # on which changes matter (alongside `instructions`), and it defines the shape of
722
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
723
+ # about once a day). It is not a response format for changes: change events and
724
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
725
+ # data in this schema's shape. If omitted, a default summary + key-points schema
726
+ # is used.
722
727
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
723
728
  attr_reader :schema
724
729
 
@@ -728,8 +733,8 @@ module ContextDev
728
733
  # Watch the monitor-relevant pages of a site for meaningful changes. A crawl
729
734
  # guided by `schema`/`instructions` selects up to `max_pages` relevant pages to
730
735
  # track; each run re-checks exactly those pages, and confirmed content changes are
731
- # judged against the monitor's instructions. The tracked page set is refreshed by
732
- # a periodic re-discovery crawl.
736
+ # judged for relevance against the monitor's `instructions` (and `schema`, when
737
+ # provided). The tracked page set is refreshed by a periodic re-discovery crawl.
733
738
  sig do
734
739
  params(
735
740
  instructions: String,
@@ -752,9 +757,14 @@ module ContextDev
752
757
  max_depth: nil,
753
758
  # Maximum number of pages to track.
754
759
  max_pages: nil,
755
- # JSON Schema describing the data you care about. It guides which pages are
756
- # selected for tracking and gives the change judge context on what matters. If
757
- # omitted, a default summary + key-points schema is used.
760
+ # JSON Schema describing the data you care about. It is used three ways: it guides
761
+ # which pages are selected for tracking, it gives the change judge extra context
762
+ # on which changes matter (alongside `instructions`), and it defines the shape of
763
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
764
+ # about once a day). It is not a response format for changes: change events and
765
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
766
+ # data in this schema's shape. If omitted, a default summary + key-points schema
767
+ # is used.
758
768
  schema: nil,
759
769
  type: :extract
760
770
  )
@@ -231,9 +231,9 @@ module ContextDev
231
231
  sig { params(confidence_threshold: Float).void }
232
232
  attr_writer :confidence_threshold
233
233
 
234
- # Detect meaning-level changes to the extracted data, ignoring cosmetic or
235
- # paraphrase-only differences. What is watched is determined by the extract
236
- # target's `schema` and `instructions`.
234
+ # Detect meaning-level changes to tracked page content, ignoring cosmetic or
235
+ # paraphrase-only differences. Which changes are meaningful is judged against the
236
+ # extract target's `instructions` (and `schema`, when provided).
237
237
  sig do
238
238
  params(confidence_threshold: Float, type: Symbol).returns(
239
239
  T.attached_class
@@ -581,9 +581,14 @@ module ContextDev
581
581
  sig { params(max_pages: Integer).void }
582
582
  attr_writer :max_pages
583
583
 
584
- # JSON Schema describing the data you care about. It guides which pages are
585
- # selected for tracking and gives the change judge context on what matters. If
586
- # omitted, a default summary + key-points schema is used.
584
+ # JSON Schema describing the data you care about. It is used three ways: it guides
585
+ # which pages are selected for tracking, it gives the change judge extra context
586
+ # on which changes matter (alongside `instructions`), and it defines the shape of
587
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
588
+ # about once a day). It is not a response format for changes: change events and
589
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
590
+ # data in this schema's shape. If omitted, a default summary + key-points schema
591
+ # is used.
587
592
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
588
593
  attr_reader :schema
589
594
 
@@ -593,8 +598,8 @@ module ContextDev
593
598
  # Watch the monitor-relevant pages of a site for meaningful changes. A crawl
594
599
  # guided by `schema`/`instructions` selects up to `max_pages` relevant pages to
595
600
  # track; each run re-checks exactly those pages, and confirmed content changes are
596
- # judged against the monitor's instructions. The tracked page set is refreshed by
597
- # a periodic re-discovery crawl.
601
+ # judged for relevance against the monitor's `instructions` (and `schema`, when
602
+ # provided). The tracked page set is refreshed by a periodic re-discovery crawl.
598
603
  sig do
599
604
  params(
600
605
  instructions: String,
@@ -617,9 +622,14 @@ module ContextDev
617
622
  max_depth: nil,
618
623
  # Maximum number of pages to track.
619
624
  max_pages: nil,
620
- # JSON Schema describing the data you care about. It guides which pages are
621
- # selected for tracking and gives the change judge context on what matters. If
622
- # omitted, a default summary + key-points schema is used.
625
+ # JSON Schema describing the data you care about. It is used three ways: it guides
626
+ # which pages are selected for tracking, it gives the change judge extra context
627
+ # on which changes matter (alongside `instructions`), and it defines the shape of
628
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
629
+ # about once a day). It is not a response format for changes: change events and
630
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
631
+ # data in this schema's shape. If omitted, a default summary + key-points schema
632
+ # is used.
623
633
  schema: nil,
624
634
  type: :extract
625
635
  )
@@ -296,9 +296,9 @@ module ContextDev
296
296
  sig { params(confidence_threshold: Float).void }
297
297
  attr_writer :confidence_threshold
298
298
 
299
- # Detect meaning-level changes to the extracted data, ignoring cosmetic or
300
- # paraphrase-only differences. What is watched is determined by the extract
301
- # target's `schema` and `instructions`.
299
+ # Detect meaning-level changes to tracked page content, ignoring cosmetic or
300
+ # paraphrase-only differences. Which changes are meaningful is judged against the
301
+ # extract target's `instructions` (and `schema`, when provided).
302
302
  sig do
303
303
  params(confidence_threshold: Float, type: Symbol).returns(
304
304
  T.attached_class
@@ -708,9 +708,14 @@ module ContextDev
708
708
  sig { params(max_pages: Integer).void }
709
709
  attr_writer :max_pages
710
710
 
711
- # JSON Schema describing the data you care about. It guides which pages are
712
- # selected for tracking and gives the change judge context on what matters. If
713
- # omitted, a default summary + key-points schema is used.
711
+ # JSON Schema describing the data you care about. It is used three ways: it guides
712
+ # which pages are selected for tracking, it gives the change judge extra context
713
+ # on which changes matter (alongside `instructions`), and it defines the shape of
714
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
715
+ # about once a day). It is not a response format for changes: change events and
716
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
717
+ # data in this schema's shape. If omitted, a default summary + key-points schema
718
+ # is used.
714
719
  sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
715
720
  attr_reader :schema
716
721
 
@@ -720,8 +725,8 @@ module ContextDev
720
725
  # Watch the monitor-relevant pages of a site for meaningful changes. A crawl
721
726
  # guided by `schema`/`instructions` selects up to `max_pages` relevant pages to
722
727
  # track; each run re-checks exactly those pages, and confirmed content changes are
723
- # judged against the monitor's instructions. The tracked page set is refreshed by
724
- # a periodic re-discovery crawl.
728
+ # judged for relevance against the monitor's `instructions` (and `schema`, when
729
+ # provided). The tracked page set is refreshed by a periodic re-discovery crawl.
725
730
  sig do
726
731
  params(
727
732
  instructions: String,
@@ -744,9 +749,14 @@ module ContextDev
744
749
  max_depth: nil,
745
750
  # Maximum number of pages to track.
746
751
  max_pages: nil,
747
- # JSON Schema describing the data you care about. It guides which pages are
748
- # selected for tracking and gives the change judge context on what matters. If
749
- # omitted, a default summary + key-points schema is used.
752
+ # JSON Schema describing the data you care about. It is used three ways: it guides
753
+ # which pages are selected for tracking, it gives the change judge extra context
754
+ # on which changes matter (alongside `instructions`), and it defines the shape of
755
+ # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
756
+ # about once a day). It is not a response format for changes: change events and
757
+ # webhook payloads always contain diffs, summaries, and evidence excerpts — never
758
+ # data in this schema's shape. If omitted, a default summary + key-points schema
759
+ # is used.
750
760
  schema: nil,
751
761
  type: :extract
752
762
  )
@@ -41,7 +41,8 @@ module ContextDev
41
41
  completed_at: Time?,
42
42
  error: ContextDev::Models::MonitorListAccountRunsResponse::Data::Error?,
43
43
  skip_reason: ContextDev::Models::MonitorListAccountRunsResponse::Data::skip_reason?,
44
- started_at: Time?
44
+ started_at: Time?,
45
+ webhook_delivery: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery
45
46
  }
46
47
 
47
48
  class Data < ContextDev::Internal::Type::BaseModel
@@ -73,6 +74,12 @@ module ContextDev
73
74
 
74
75
  attr_accessor started_at: Time?
75
76
 
77
+ attr_reader webhook_delivery: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery?
78
+
79
+ def webhook_delivery=: (
80
+ ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery
81
+ ) -> ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery
82
+
76
83
  def initialize: (
77
84
  id: String,
78
85
  baseline_created: bool,
@@ -87,7 +94,8 @@ module ContextDev
87
94
  ?completed_at: Time?,
88
95
  ?error: ContextDev::Models::MonitorListAccountRunsResponse::Data::Error?,
89
96
  ?skip_reason: ContextDev::Models::MonitorListAccountRunsResponse::Data::skip_reason?,
90
- ?started_at: Time?
97
+ ?started_at: Time?,
98
+ ?webhook_delivery: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery
91
99
  ) -> void
92
100
 
93
101
  def to_hash: -> {
@@ -104,7 +112,8 @@ module ContextDev
104
112
  completed_at: Time?,
105
113
  error: ContextDev::Models::MonitorListAccountRunsResponse::Data::Error?,
106
114
  skip_reason: ContextDev::Models::MonitorListAccountRunsResponse::Data::skip_reason?,
107
- started_at: Time?
115
+ started_at: Time?,
116
+ webhook_delivery: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery
108
117
  }
109
118
 
110
119
  type change_detection_type = :exact | :semantic
@@ -178,6 +187,68 @@ module ContextDev
178
187
 
179
188
  def self?.values: -> ::Array[ContextDev::Models::MonitorListAccountRunsResponse::Data::skip_reason]
180
189
  end
190
+
191
+ type webhook_delivery =
192
+ {
193
+ attempted_at: Time,
194
+ error: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error?,
195
+ event_id: String,
196
+ http_status: Integer?,
197
+ status: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::status
198
+ }
199
+
200
+ class WebhookDelivery < ContextDev::Internal::Type::BaseModel
201
+ attr_accessor attempted_at: Time
202
+
203
+ attr_accessor error: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error?
204
+
205
+ attr_accessor event_id: String
206
+
207
+ attr_accessor http_status: Integer?
208
+
209
+ attr_accessor status: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::status
210
+
211
+ def initialize: (
212
+ attempted_at: Time,
213
+ error: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error?,
214
+ event_id: String,
215
+ http_status: Integer?,
216
+ status: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::status
217
+ ) -> void
218
+
219
+ def to_hash: -> {
220
+ attempted_at: Time,
221
+ error: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::Error?,
222
+ event_id: String,
223
+ http_status: Integer?,
224
+ status: ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::status
225
+ }
226
+
227
+ type error = { code: String, message: String }
228
+
229
+ class Error < ContextDev::Internal::Type::BaseModel
230
+ attr_accessor code: String
231
+
232
+ attr_accessor message: String
233
+
234
+ def initialize: (code: String, message: String) -> void
235
+
236
+ def to_hash: -> { code: String, message: String }
237
+ end
238
+
239
+ type status = :delivered | :rejected | :failed | :skipped_unsafe_url
240
+
241
+ module Status
242
+ extend ContextDev::Internal::Type::Enum
243
+
244
+ DELIVERED: :delivered
245
+ REJECTED: :rejected
246
+ FAILED: :failed
247
+ SKIPPED_UNSAFE_URL: :skipped_unsafe_url
248
+
249
+ def self?.values: -> ::Array[ContextDev::Models::MonitorListAccountRunsResponse::Data::WebhookDelivery::status]
250
+ end
251
+ end
181
252
  end
182
253
  end
183
254
  end
@@ -41,7 +41,8 @@ module ContextDev
41
41
  completed_at: Time?,
42
42
  error: ContextDev::Models::MonitorListRunsResponse::Data::Error?,
43
43
  skip_reason: ContextDev::Models::MonitorListRunsResponse::Data::skip_reason?,
44
- started_at: Time?
44
+ started_at: Time?,
45
+ webhook_delivery: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
45
46
  }
46
47
 
47
48
  class Data < ContextDev::Internal::Type::BaseModel
@@ -73,6 +74,12 @@ module ContextDev
73
74
 
74
75
  attr_accessor started_at: Time?
75
76
 
77
+ attr_reader webhook_delivery: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery?
78
+
79
+ def webhook_delivery=: (
80
+ ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
81
+ ) -> ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
82
+
76
83
  def initialize: (
77
84
  id: String,
78
85
  baseline_created: bool,
@@ -87,7 +94,8 @@ module ContextDev
87
94
  ?completed_at: Time?,
88
95
  ?error: ContextDev::Models::MonitorListRunsResponse::Data::Error?,
89
96
  ?skip_reason: ContextDev::Models::MonitorListRunsResponse::Data::skip_reason?,
90
- ?started_at: Time?
97
+ ?started_at: Time?,
98
+ ?webhook_delivery: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
91
99
  ) -> void
92
100
 
93
101
  def to_hash: -> {
@@ -104,7 +112,8 @@ module ContextDev
104
112
  completed_at: Time?,
105
113
  error: ContextDev::Models::MonitorListRunsResponse::Data::Error?,
106
114
  skip_reason: ContextDev::Models::MonitorListRunsResponse::Data::skip_reason?,
107
- started_at: Time?
115
+ started_at: Time?,
116
+ webhook_delivery: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery
108
117
  }
109
118
 
110
119
  type change_detection_type = :exact | :semantic
@@ -178,6 +187,68 @@ module ContextDev
178
187
 
179
188
  def self?.values: -> ::Array[ContextDev::Models::MonitorListRunsResponse::Data::skip_reason]
180
189
  end
190
+
191
+ type webhook_delivery =
192
+ {
193
+ attempted_at: Time,
194
+ error: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error?,
195
+ event_id: String,
196
+ http_status: Integer?,
197
+ status: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::status
198
+ }
199
+
200
+ class WebhookDelivery < ContextDev::Internal::Type::BaseModel
201
+ attr_accessor attempted_at: Time
202
+
203
+ attr_accessor error: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error?
204
+
205
+ attr_accessor event_id: String
206
+
207
+ attr_accessor http_status: Integer?
208
+
209
+ attr_accessor status: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::status
210
+
211
+ def initialize: (
212
+ attempted_at: Time,
213
+ error: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error?,
214
+ event_id: String,
215
+ http_status: Integer?,
216
+ status: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::status
217
+ ) -> void
218
+
219
+ def to_hash: -> {
220
+ attempted_at: Time,
221
+ error: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::Error?,
222
+ event_id: String,
223
+ http_status: Integer?,
224
+ status: ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::status
225
+ }
226
+
227
+ type error = { code: String, message: String }
228
+
229
+ class Error < ContextDev::Internal::Type::BaseModel
230
+ attr_accessor code: String
231
+
232
+ attr_accessor message: String
233
+
234
+ def initialize: (code: String, message: String) -> void
235
+
236
+ def to_hash: -> { code: String, message: String }
237
+ end
238
+
239
+ type status = :delivered | :rejected | :failed | :skipped_unsafe_url
240
+
241
+ module Status
242
+ extend ContextDev::Internal::Type::Enum
243
+
244
+ DELIVERED: :delivered
245
+ REJECTED: :rejected
246
+ FAILED: :failed
247
+ SKIPPED_UNSAFE_URL: :skipped_unsafe_url
248
+
249
+ def self?.values: -> ::Array[ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::status]
250
+ end
251
+ end
181
252
  end
182
253
  end
183
254
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: context.dev
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Context Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-09 00:00:00.000000000 Z
11
+ date: 2026-07-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi