context.dev 2.2.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/README.md +9 -9
- data/lib/context_dev/client.rb +7 -2
- data/lib/context_dev/internal/type/base_model.rb +5 -5
- data/lib/context_dev/models/monitor_create_params.rb +28 -3
- data/lib/context_dev/models/monitor_create_response.rb +96 -4
- data/lib/context_dev/models/monitor_list_account_runs_response.rb +19 -98
- data/lib/context_dev/models/monitor_list_response.rb +100 -4
- data/lib/context_dev/models/monitor_list_runs_response.rb +19 -96
- data/lib/context_dev/models/monitor_retrieve_change_response.rb +10 -10
- data/lib/context_dev/models/monitor_retrieve_response.rb +97 -4
- data/lib/context_dev/models/monitor_update_params.rb +28 -3
- data/lib/context_dev/models/monitor_update_response.rb +96 -4
- data/lib/context_dev/models/parse_handle_params.rb +194 -0
- data/lib/context_dev/models/parse_handle_response.rb +132 -0
- data/lib/context_dev/models/web_web_crawl_md_params.rb +16 -6
- data/lib/context_dev/models/web_web_scrape_html_params.rb +16 -6
- data/lib/context_dev/models/web_web_scrape_md_params.rb +16 -6
- data/lib/context_dev/models/web_web_scrape_md_response.rb +11 -1
- data/lib/context_dev/models/webhook_delivery.rb +109 -0
- data/lib/context_dev/models.rb +4 -0
- data/lib/context_dev/resources/monitors.rb +3 -2
- data/lib/context_dev/resources/parse.rb +59 -0
- data/lib/context_dev/resources/web.rb +19 -4
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +4 -0
- data/rbi/context_dev/client.rbi +6 -2
- data/rbi/context_dev/models/monitor_create_params.rbi +85 -5
- data/rbi/context_dev/models/monitor_create_response.rbi +234 -6
- data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +27 -192
- data/rbi/context_dev/models/monitor_list_response.rbi +235 -5
- data/rbi/context_dev/models/monitor_list_runs_response.rbi +27 -192
- data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +12 -15
- data/rbi/context_dev/models/monitor_retrieve_response.rbi +234 -6
- data/rbi/context_dev/models/monitor_update_params.rbi +85 -5
- data/rbi/context_dev/models/monitor_update_response.rbi +234 -6
- data/rbi/context_dev/models/parse_handle_params.rbi +339 -0
- data/rbi/context_dev/models/parse_handle_response.rbi +377 -0
- data/rbi/context_dev/models/web_web_crawl_md_params.rbi +26 -7
- data/rbi/context_dev/models/web_web_scrape_html_params.rbi +26 -7
- data/rbi/context_dev/models/web_web_scrape_md_params.rbi +26 -7
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +12 -0
- data/rbi/context_dev/models/webhook_delivery.rbi +172 -0
- data/rbi/context_dev/models.rbi +4 -0
- data/rbi/context_dev/resources/monitors.rbi +3 -2
- data/rbi/context_dev/resources/parse.rbi +58 -0
- data/rbi/context_dev/resources/web.rbi +22 -7
- data/sig/context_dev/client.rbs +2 -0
- data/sig/context_dev/models/monitor_create_params.rbs +32 -3
- data/sig/context_dev/models/monitor_create_response.rbs +85 -6
- data/sig/context_dev/models/monitor_list_account_runs_response.rbs +15 -68
- data/sig/context_dev/models/monitor_list_response.rbs +85 -6
- data/sig/context_dev/models/monitor_list_runs_response.rbs +15 -68
- data/sig/context_dev/models/monitor_retrieve_change_response.rbs +8 -10
- data/sig/context_dev/models/monitor_retrieve_response.rbs +85 -6
- data/sig/context_dev/models/monitor_update_params.rbs +32 -3
- data/sig/context_dev/models/monitor_update_response.rbs +85 -6
- data/sig/context_dev/models/parse_handle_params.rbs +244 -0
- data/sig/context_dev/models/parse_handle_response.rbs +159 -0
- data/sig/context_dev/models/web_web_crawl_md_params.rbs +13 -2
- data/sig/context_dev/models/web_web_scrape_html_params.rbs +13 -2
- data/sig/context_dev/models/web_web_scrape_md_params.rbs +13 -2
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +5 -0
- data/sig/context_dev/models/webhook_delivery.rbs +81 -0
- data/sig/context_dev/models.rbs +4 -0
- data/sig/context_dev/resources/parse.rbs +19 -0
- metadata +14 -2
|
@@ -139,23 +139,27 @@ module ContextDev
|
|
|
139
139
|
sig { returns(T.nilable(Time)) }
|
|
140
140
|
attr_accessor :started_at
|
|
141
141
|
|
|
142
|
-
#
|
|
143
|
-
# no webhook was attempted, including
|
|
144
|
-
#
|
|
142
|
+
# All webhook deliveries attempted by this run — one per subscribed event that
|
|
143
|
+
# fired. Omitted when no webhook was attempted, including runs created before
|
|
144
|
+
# event selection was added.
|
|
145
|
+
sig { returns(T.nilable(T::Array[ContextDev::WebhookDelivery])) }
|
|
146
|
+
attr_reader :webhook_deliveries
|
|
147
|
+
|
|
145
148
|
sig do
|
|
146
|
-
|
|
147
|
-
T
|
|
148
|
-
|
|
149
|
-
)
|
|
150
|
-
)
|
|
149
|
+
params(
|
|
150
|
+
webhook_deliveries: T::Array[ContextDev::WebhookDelivery::OrHash]
|
|
151
|
+
).void
|
|
151
152
|
end
|
|
153
|
+
attr_writer :webhook_deliveries
|
|
154
|
+
|
|
155
|
+
# Deprecated: use `webhook_deliveries`, which records every attempt now that a run
|
|
156
|
+
# can deliver multiple events. Omitted when no webhook was attempted, including
|
|
157
|
+
# historical runs created before delivery tracking was added.
|
|
158
|
+
sig { returns(T.nilable(ContextDev::WebhookDelivery)) }
|
|
152
159
|
attr_reader :webhook_delivery
|
|
153
160
|
|
|
154
161
|
sig do
|
|
155
|
-
params(
|
|
156
|
-
webhook_delivery:
|
|
157
|
-
ContextDev::Models::MonitorListRunsResponse::Data::WebhookDelivery::OrHash
|
|
158
|
-
).void
|
|
162
|
+
params(webhook_delivery: ContextDev::WebhookDelivery::OrHash).void
|
|
159
163
|
end
|
|
160
164
|
attr_writer :webhook_delivery
|
|
161
165
|
|
|
@@ -185,8 +189,8 @@ module ContextDev
|
|
|
185
189
|
ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::OrSymbol
|
|
186
190
|
),
|
|
187
191
|
started_at: T.nilable(Time),
|
|
188
|
-
|
|
189
|
-
|
|
192
|
+
webhook_deliveries: T::Array[ContextDev::WebhookDelivery::OrHash],
|
|
193
|
+
webhook_delivery: ContextDev::WebhookDelivery::OrHash
|
|
190
194
|
).returns(T.attached_class)
|
|
191
195
|
end
|
|
192
196
|
def self.new(
|
|
@@ -211,9 +215,13 @@ module ContextDev
|
|
|
211
215
|
# Why a skipped run never executed; null unless status is `skipped`.
|
|
212
216
|
skip_reason: nil,
|
|
213
217
|
started_at: nil,
|
|
214
|
-
#
|
|
215
|
-
# no webhook was attempted, including
|
|
216
|
-
#
|
|
218
|
+
# All webhook deliveries attempted by this run — one per subscribed event that
|
|
219
|
+
# fired. Omitted when no webhook was attempted, including runs created before
|
|
220
|
+
# event selection was added.
|
|
221
|
+
webhook_deliveries: nil,
|
|
222
|
+
# Deprecated: use `webhook_deliveries`, which records every attempt now that a run
|
|
223
|
+
# can deliver multiple events. Omitted when no webhook was attempted, including
|
|
224
|
+
# historical runs created before delivery tracking was added.
|
|
217
225
|
webhook_delivery: nil
|
|
218
226
|
)
|
|
219
227
|
end
|
|
@@ -245,8 +253,8 @@ module ContextDev
|
|
|
245
253
|
ContextDev::Models::MonitorListRunsResponse::Data::SkipReason::TaggedSymbol
|
|
246
254
|
),
|
|
247
255
|
started_at: T.nilable(Time),
|
|
248
|
-
|
|
249
|
-
|
|
256
|
+
webhook_deliveries: T::Array[ContextDev::WebhookDelivery],
|
|
257
|
+
webhook_delivery: ContextDev::WebhookDelivery
|
|
250
258
|
}
|
|
251
259
|
)
|
|
252
260
|
end
|
|
@@ -477,179 +485,6 @@ module ContextDev
|
|
|
477
485
|
def self.values
|
|
478
486
|
end
|
|
479
487
|
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
|
|
653
488
|
end
|
|
654
489
|
end
|
|
655
490
|
end
|
|
@@ -43,6 +43,10 @@ module ContextDev
|
|
|
43
43
|
sig { returns(String) }
|
|
44
44
|
attr_accessor :summary
|
|
45
45
|
|
|
46
|
+
# User-defined tags for grouping and filtering monitors and their changes.
|
|
47
|
+
sig { returns(T::Array[String]) }
|
|
48
|
+
attr_accessor :tags
|
|
49
|
+
|
|
46
50
|
sig do
|
|
47
51
|
returns(
|
|
48
52
|
ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::TaggedSymbol
|
|
@@ -158,18 +162,11 @@ module ContextDev
|
|
|
158
162
|
sig { params(removed_urls: T::Array[String]).void }
|
|
159
163
|
attr_writer :removed_urls
|
|
160
164
|
|
|
161
|
-
# User-defined tags for grouping and filtering monitors and their changes.
|
|
162
|
-
sig { returns(T.nilable(T::Array[String])) }
|
|
163
|
-
attr_reader :tags
|
|
164
|
-
|
|
165
|
-
sig { params(tags: T::Array[String]).void }
|
|
166
|
-
attr_writer :tags
|
|
167
|
-
|
|
168
165
|
# A detected change. `mode` is the constant `web`; `target_type` and
|
|
169
166
|
# `change_detection_type` describe the change, and which optional fields are
|
|
170
167
|
# present depends on them (page: `diff` + excerpts; sitemap:
|
|
171
168
|
# `added_urls`/`removed_urls`; semantic:
|
|
172
|
-
# `
|
|
169
|
+
# `confidence`/`importance`/`evidence`/`matched_urls`).
|
|
173
170
|
sig do
|
|
174
171
|
params(
|
|
175
172
|
id: String,
|
|
@@ -181,6 +178,7 @@ module ContextDev
|
|
|
181
178
|
monitor_id: String,
|
|
182
179
|
run_id: String,
|
|
183
180
|
summary: String,
|
|
181
|
+
tags: T::Array[String],
|
|
184
182
|
target_type:
|
|
185
183
|
ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::OrSymbol,
|
|
186
184
|
title: String,
|
|
@@ -200,8 +198,7 @@ module ContextDev
|
|
|
200
198
|
matched_url_count: Integer,
|
|
201
199
|
matched_urls: T::Array[String],
|
|
202
200
|
removed_url_count: Integer,
|
|
203
|
-
removed_urls: T::Array[String]
|
|
204
|
-
tags: T::Array[String]
|
|
201
|
+
removed_urls: T::Array[String]
|
|
205
202
|
).returns(T.attached_class)
|
|
206
203
|
end
|
|
207
204
|
def self.new(
|
|
@@ -215,6 +212,8 @@ module ContextDev
|
|
|
215
212
|
# The run that detected this change.
|
|
216
213
|
run_id:,
|
|
217
214
|
summary:,
|
|
215
|
+
# User-defined tags for grouping and filtering monitors and their changes.
|
|
216
|
+
tags:,
|
|
218
217
|
target_type:,
|
|
219
218
|
title:,
|
|
220
219
|
url:,
|
|
@@ -233,9 +232,7 @@ module ContextDev
|
|
|
233
232
|
matched_urls: nil,
|
|
234
233
|
removed_url_count: nil,
|
|
235
234
|
# At most 500 URLs are included; the corresponding count field is always exact.
|
|
236
|
-
removed_urls: nil
|
|
237
|
-
# User-defined tags for grouping and filtering monitors and their changes.
|
|
238
|
-
tags: nil
|
|
235
|
+
removed_urls: nil
|
|
239
236
|
)
|
|
240
237
|
end
|
|
241
238
|
|
|
@@ -251,6 +248,7 @@ module ContextDev
|
|
|
251
248
|
monitor_id: String,
|
|
252
249
|
run_id: String,
|
|
253
250
|
summary: String,
|
|
251
|
+
tags: T::Array[String],
|
|
254
252
|
target_type:
|
|
255
253
|
ContextDev::Models::MonitorRetrieveChangeResponse::TargetType::TaggedSymbol,
|
|
256
254
|
title: String,
|
|
@@ -270,8 +268,7 @@ module ContextDev
|
|
|
270
268
|
matched_url_count: Integer,
|
|
271
269
|
matched_urls: T::Array[String],
|
|
272
270
|
removed_url_count: Integer,
|
|
273
|
-
removed_urls: T::Array[String]
|
|
274
|
-
tags: T::Array[String]
|
|
271
|
+
removed_urls: T::Array[String]
|
|
275
272
|
}
|
|
276
273
|
)
|
|
277
274
|
end
|
|
@@ -133,6 +133,26 @@ module ContextDev
|
|
|
133
133
|
end
|
|
134
134
|
attr_writer :webhook
|
|
135
135
|
|
|
136
|
+
# Present while webhook deliveries are failing consecutively; null when deliveries
|
|
137
|
+
# are healthy or no webhook is configured. Cleared on the next successful delivery
|
|
138
|
+
# and when the webhook URL changes.
|
|
139
|
+
sig do
|
|
140
|
+
returns(
|
|
141
|
+
T.nilable(ContextDev::Models::MonitorRetrieveResponse::WebhookFailure)
|
|
142
|
+
)
|
|
143
|
+
end
|
|
144
|
+
attr_reader :webhook_failure
|
|
145
|
+
|
|
146
|
+
sig do
|
|
147
|
+
params(
|
|
148
|
+
webhook_failure:
|
|
149
|
+
T.nilable(
|
|
150
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::OrHash
|
|
151
|
+
)
|
|
152
|
+
).void
|
|
153
|
+
end
|
|
154
|
+
attr_writer :webhook_failure
|
|
155
|
+
|
|
136
156
|
# A web monitor. `mode` is the constant `web`; behavior is described by `target`
|
|
137
157
|
# (page/sitemap/extract) and `change_detection` (exact/semantic).
|
|
138
158
|
sig do
|
|
@@ -175,6 +195,10 @@ module ContextDev
|
|
|
175
195
|
webhook:
|
|
176
196
|
T.nilable(
|
|
177
197
|
ContextDev::Models::MonitorRetrieveResponse::Webhook::OrHash
|
|
198
|
+
),
|
|
199
|
+
webhook_failure:
|
|
200
|
+
T.nilable(
|
|
201
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::OrHash
|
|
178
202
|
)
|
|
179
203
|
).returns(T.attached_class)
|
|
180
204
|
end
|
|
@@ -213,7 +237,11 @@ module ContextDev
|
|
|
213
237
|
next_run_at: nil,
|
|
214
238
|
# User-defined tags for grouping and filtering monitors and their changes.
|
|
215
239
|
tags: nil,
|
|
216
|
-
webhook: nil
|
|
240
|
+
webhook: nil,
|
|
241
|
+
# Present while webhook deliveries are failing consecutively; null when deliveries
|
|
242
|
+
# are healthy or no webhook is configured. Cleared on the next successful delivery
|
|
243
|
+
# and when the webhook URL changes.
|
|
244
|
+
webhook_failure: nil
|
|
217
245
|
)
|
|
218
246
|
end
|
|
219
247
|
|
|
@@ -244,7 +272,11 @@ module ContextDev
|
|
|
244
272
|
next_run_at: T.nilable(Time),
|
|
245
273
|
tags: T::Array[String],
|
|
246
274
|
webhook:
|
|
247
|
-
T.nilable(ContextDev::Models::MonitorRetrieveResponse::Webhook)
|
|
275
|
+
T.nilable(ContextDev::Models::MonitorRetrieveResponse::Webhook),
|
|
276
|
+
webhook_failure:
|
|
277
|
+
T.nilable(
|
|
278
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure
|
|
279
|
+
)
|
|
248
280
|
}
|
|
249
281
|
)
|
|
250
282
|
end
|
|
@@ -1001,10 +1033,35 @@ module ContextDev
|
|
|
1001
1033
|
)
|
|
1002
1034
|
end
|
|
1003
1035
|
|
|
1004
|
-
# Webhook URL
|
|
1036
|
+
# Webhook URL events are delivered to.
|
|
1005
1037
|
sig { returns(String) }
|
|
1006
1038
|
attr_accessor :url
|
|
1007
1039
|
|
|
1040
|
+
# Events delivered to this endpoint. `change.detected` fires only when a run
|
|
1041
|
+
# detects a change; `run.completed` fires on every completed run — including runs
|
|
1042
|
+
# that detected no change — and embeds the change when one was detected. Defaults
|
|
1043
|
+
# to `["change.detected"]` when omitted.
|
|
1044
|
+
sig do
|
|
1045
|
+
returns(
|
|
1046
|
+
T.nilable(
|
|
1047
|
+
T::Array[
|
|
1048
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
|
|
1049
|
+
]
|
|
1050
|
+
)
|
|
1051
|
+
)
|
|
1052
|
+
end
|
|
1053
|
+
attr_reader :events
|
|
1054
|
+
|
|
1055
|
+
sig do
|
|
1056
|
+
params(
|
|
1057
|
+
events:
|
|
1058
|
+
T::Array[
|
|
1059
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::OrSymbol
|
|
1060
|
+
]
|
|
1061
|
+
).void
|
|
1062
|
+
end
|
|
1063
|
+
attr_writer :events
|
|
1064
|
+
|
|
1008
1065
|
# Signing secret used to verify webhook authenticity. Each delivery includes an
|
|
1009
1066
|
# `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
|
|
1010
1067
|
# `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
|
|
@@ -1016,10 +1073,24 @@ module ContextDev
|
|
|
1016
1073
|
sig { params(secret: String).void }
|
|
1017
1074
|
attr_writer :secret
|
|
1018
1075
|
|
|
1019
|
-
sig
|
|
1076
|
+
sig do
|
|
1077
|
+
params(
|
|
1078
|
+
url: String,
|
|
1079
|
+
events:
|
|
1080
|
+
T::Array[
|
|
1081
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::OrSymbol
|
|
1082
|
+
],
|
|
1083
|
+
secret: String
|
|
1084
|
+
).returns(T.attached_class)
|
|
1085
|
+
end
|
|
1020
1086
|
def self.new(
|
|
1021
|
-
# Webhook URL
|
|
1087
|
+
# Webhook URL events are delivered to.
|
|
1022
1088
|
url:,
|
|
1089
|
+
# Events delivered to this endpoint. `change.detected` fires only when a run
|
|
1090
|
+
# detects a change; `run.completed` fires on every completed run — including runs
|
|
1091
|
+
# that detected no change — and embeds the change when one was detected. Defaults
|
|
1092
|
+
# to `["change.detected"]` when omitted.
|
|
1093
|
+
events: nil,
|
|
1023
1094
|
# Signing secret used to verify webhook authenticity. Each delivery includes an
|
|
1024
1095
|
# `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
|
|
1025
1096
|
# `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
|
|
@@ -1029,9 +1100,166 @@ module ContextDev
|
|
|
1029
1100
|
)
|
|
1030
1101
|
end
|
|
1031
1102
|
|
|
1032
|
-
sig
|
|
1103
|
+
sig do
|
|
1104
|
+
override.returns(
|
|
1105
|
+
{
|
|
1106
|
+
url: String,
|
|
1107
|
+
events:
|
|
1108
|
+
T::Array[
|
|
1109
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
|
|
1110
|
+
],
|
|
1111
|
+
secret: String
|
|
1112
|
+
}
|
|
1113
|
+
)
|
|
1114
|
+
end
|
|
1115
|
+
def to_hash
|
|
1116
|
+
end
|
|
1117
|
+
|
|
1118
|
+
module Event
|
|
1119
|
+
extend ContextDev::Internal::Type::Enum
|
|
1120
|
+
|
|
1121
|
+
TaggedSymbol =
|
|
1122
|
+
T.type_alias do
|
|
1123
|
+
T.all(
|
|
1124
|
+
Symbol,
|
|
1125
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event
|
|
1126
|
+
)
|
|
1127
|
+
end
|
|
1128
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1129
|
+
|
|
1130
|
+
CHANGE_DETECTED =
|
|
1131
|
+
T.let(
|
|
1132
|
+
:"change.detected",
|
|
1133
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
|
|
1134
|
+
)
|
|
1135
|
+
RUN_COMPLETED =
|
|
1136
|
+
T.let(
|
|
1137
|
+
:"run.completed",
|
|
1138
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
|
|
1139
|
+
)
|
|
1140
|
+
|
|
1141
|
+
sig do
|
|
1142
|
+
override.returns(
|
|
1143
|
+
T::Array[
|
|
1144
|
+
ContextDev::Models::MonitorRetrieveResponse::Webhook::Event::TaggedSymbol
|
|
1145
|
+
]
|
|
1146
|
+
)
|
|
1147
|
+
end
|
|
1148
|
+
def self.values
|
|
1149
|
+
end
|
|
1150
|
+
end
|
|
1151
|
+
end
|
|
1152
|
+
|
|
1153
|
+
class WebhookFailure < ContextDev::Internal::Type::BaseModel
|
|
1154
|
+
OrHash =
|
|
1155
|
+
T.type_alias do
|
|
1156
|
+
T.any(
|
|
1157
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure,
|
|
1158
|
+
ContextDev::Internal::AnyHash
|
|
1159
|
+
)
|
|
1160
|
+
end
|
|
1161
|
+
|
|
1162
|
+
# Number of consecutive delivery attempts that did not succeed.
|
|
1163
|
+
sig { returns(Integer) }
|
|
1164
|
+
attr_accessor :consecutive_failures
|
|
1165
|
+
|
|
1166
|
+
sig { returns(Time) }
|
|
1167
|
+
attr_accessor :last_failed_at
|
|
1168
|
+
|
|
1169
|
+
# Human-readable description of the most recent failure.
|
|
1170
|
+
sig { returns(String) }
|
|
1171
|
+
attr_accessor :last_message
|
|
1172
|
+
|
|
1173
|
+
# Outcome of the most recent failed delivery. rejected means a non-2xx response;
|
|
1174
|
+
# failed means no HTTP response was received; skipped_unsafe_url means the URL
|
|
1175
|
+
# failed the public-endpoint safety check.
|
|
1176
|
+
sig do
|
|
1177
|
+
returns(
|
|
1178
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1179
|
+
)
|
|
1180
|
+
end
|
|
1181
|
+
attr_accessor :last_status
|
|
1182
|
+
|
|
1183
|
+
# Present while webhook deliveries are failing consecutively; null when deliveries
|
|
1184
|
+
# are healthy or no webhook is configured. Cleared on the next successful delivery
|
|
1185
|
+
# and when the webhook URL changes.
|
|
1186
|
+
sig do
|
|
1187
|
+
params(
|
|
1188
|
+
consecutive_failures: Integer,
|
|
1189
|
+
last_failed_at: Time,
|
|
1190
|
+
last_message: String,
|
|
1191
|
+
last_status:
|
|
1192
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::OrSymbol
|
|
1193
|
+
).returns(T.attached_class)
|
|
1194
|
+
end
|
|
1195
|
+
def self.new(
|
|
1196
|
+
# Number of consecutive delivery attempts that did not succeed.
|
|
1197
|
+
consecutive_failures:,
|
|
1198
|
+
last_failed_at:,
|
|
1199
|
+
# Human-readable description of the most recent failure.
|
|
1200
|
+
last_message:,
|
|
1201
|
+
# Outcome of the most recent failed delivery. rejected means a non-2xx response;
|
|
1202
|
+
# failed means no HTTP response was received; skipped_unsafe_url means the URL
|
|
1203
|
+
# failed the public-endpoint safety check.
|
|
1204
|
+
last_status:
|
|
1205
|
+
)
|
|
1206
|
+
end
|
|
1207
|
+
|
|
1208
|
+
sig do
|
|
1209
|
+
override.returns(
|
|
1210
|
+
{
|
|
1211
|
+
consecutive_failures: Integer,
|
|
1212
|
+
last_failed_at: Time,
|
|
1213
|
+
last_message: String,
|
|
1214
|
+
last_status:
|
|
1215
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1216
|
+
}
|
|
1217
|
+
)
|
|
1218
|
+
end
|
|
1033
1219
|
def to_hash
|
|
1034
1220
|
end
|
|
1221
|
+
|
|
1222
|
+
# Outcome of the most recent failed delivery. rejected means a non-2xx response;
|
|
1223
|
+
# failed means no HTTP response was received; skipped_unsafe_url means the URL
|
|
1224
|
+
# failed the public-endpoint safety check.
|
|
1225
|
+
module LastStatus
|
|
1226
|
+
extend ContextDev::Internal::Type::Enum
|
|
1227
|
+
|
|
1228
|
+
TaggedSymbol =
|
|
1229
|
+
T.type_alias do
|
|
1230
|
+
T.all(
|
|
1231
|
+
Symbol,
|
|
1232
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus
|
|
1233
|
+
)
|
|
1234
|
+
end
|
|
1235
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
1236
|
+
|
|
1237
|
+
REJECTED =
|
|
1238
|
+
T.let(
|
|
1239
|
+
:rejected,
|
|
1240
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1241
|
+
)
|
|
1242
|
+
FAILED =
|
|
1243
|
+
T.let(
|
|
1244
|
+
:failed,
|
|
1245
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1246
|
+
)
|
|
1247
|
+
SKIPPED_UNSAFE_URL =
|
|
1248
|
+
T.let(
|
|
1249
|
+
:skipped_unsafe_url,
|
|
1250
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1251
|
+
)
|
|
1252
|
+
|
|
1253
|
+
sig do
|
|
1254
|
+
override.returns(
|
|
1255
|
+
T::Array[
|
|
1256
|
+
ContextDev::Models::MonitorRetrieveResponse::WebhookFailure::LastStatus::TaggedSymbol
|
|
1257
|
+
]
|
|
1258
|
+
)
|
|
1259
|
+
end
|
|
1260
|
+
def self.values
|
|
1261
|
+
end
|
|
1262
|
+
end
|
|
1035
1263
|
end
|
|
1036
1264
|
end
|
|
1037
1265
|
end
|