context.dev 2.4.0 → 2.6.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 +29 -0
- data/README.md +1 -1
- data/lib/context_dev/client.rb +4 -0
- data/lib/context_dev/models/ai_extract_product_params.rb +9 -1
- data/lib/context_dev/models/ai_extract_products_params.rb +18 -2
- data/lib/context_dev/models/batch_cancel_params.rb +22 -0
- data/lib/context_dev/models/batch_cancel_response.rb +354 -0
- data/lib/context_dev/models/batch_get_results_params.rb +42 -0
- data/lib/context_dev/models/batch_get_results_response.rb +463 -0
- data/lib/context_dev/models/batch_list_params.rb +94 -0
- data/lib/context_dev/models/batch_list_response.rb +388 -0
- data/lib/context_dev/models/batch_retrieve_params.rb +22 -0
- data/lib/context_dev/models/batch_retrieve_response.rb +390 -0
- data/lib/context_dev/models/batch_submit_params.rb +56 -0
- data/lib/context_dev/models/batch_submit_response.rb +614 -0
- data/lib/context_dev/models/brand_retrieve_params.rb +109 -22
- data/lib/context_dev/models/brand_retrieve_response.rb +4 -6
- data/lib/context_dev/models/brand_retrieve_simplified_params.rb +32 -3
- data/lib/context_dev/models/error.rb +26 -0
- data/lib/context_dev/models/error_count.rb +26 -0
- data/lib/context_dev/models/industry_retrieve_naics_params.rb +11 -1
- data/lib/context_dev/models/industry_retrieve_sic_params.rb +11 -1
- data/lib/context_dev/models/monitor_create_params.rb +147 -132
- data/lib/context_dev/models/monitor_create_response.rb +40 -15
- data/lib/context_dev/models/monitor_get_credit_usage_params.rb +30 -0
- data/lib/context_dev/models/monitor_get_credit_usage_response.rb +59 -0
- data/lib/context_dev/models/monitor_get_limits_params.rb +14 -0
- data/lib/context_dev/models/monitor_get_limits_response.rb +52 -0
- data/lib/context_dev/models/monitor_list_account_changes_params.rb +16 -7
- data/lib/context_dev/models/monitor_list_account_changes_response.rb +2 -1
- data/lib/context_dev/models/monitor_list_account_runs_params.rb +7 -10
- data/lib/context_dev/models/monitor_list_changes_params.rb +8 -4
- data/lib/context_dev/models/monitor_list_changes_response.rb +2 -1
- data/lib/context_dev/models/monitor_list_params.rb +18 -19
- data/lib/context_dev/models/monitor_list_response.rb +27 -12
- data/lib/context_dev/models/monitor_list_runs_params.rb +7 -10
- data/lib/context_dev/models/monitor_retrieve_change_response.rb +2 -1
- data/lib/context_dev/models/monitor_retrieve_response.rb +27 -12
- data/lib/context_dev/models/monitor_update_params.rb +27 -12
- data/lib/context_dev/models/monitor_update_response.rb +27 -12
- data/lib/context_dev/models/parse_handle_params.rb +199 -33
- data/lib/context_dev/models/utility_prefetch_params.rb +9 -1
- data/lib/context_dev/models/web_extract_competitors_params.rb +11 -1
- data/lib/context_dev/models/web_extract_fonts_params.rb +14 -4
- data/lib/context_dev/models/web_extract_params.rb +19 -1
- data/lib/context_dev/models/web_extract_styleguide_params.rb +14 -4
- data/lib/context_dev/models/web_screenshot_params.rb +69 -18
- data/lib/context_dev/models/web_screenshot_response.rb +3 -2
- data/lib/context_dev/models/web_search_params.rb +9 -1
- data/lib/context_dev/models/web_web_crawl_md_params.rb +34 -1
- data/lib/context_dev/models/web_web_scrape_html_params.rb +268 -29
- data/lib/context_dev/models/web_web_scrape_html_response.rb +93 -1
- data/lib/context_dev/models/web_web_scrape_images_params.rb +208 -19
- data/lib/context_dev/models/web_web_scrape_md_params.rb +352 -38
- data/lib/context_dev/models/web_web_scrape_md_response.rb +93 -1
- data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +45 -1
- data/lib/context_dev/models.rb +18 -0
- data/lib/context_dev/resources/ai.rb +3 -1
- data/lib/context_dev/resources/batch.rb +155 -0
- data/lib/context_dev/resources/brand.rb +6 -2
- data/lib/context_dev/resources/industry.rb +6 -2
- data/lib/context_dev/resources/monitors.rb +75 -37
- data/lib/context_dev/resources/parse.rb +15 -11
- data/lib/context_dev/resources/utility.rb +3 -1
- data/lib/context_dev/resources/web.rb +104 -55
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +17 -0
- data/rbi/context_dev/client.rbi +3 -0
- data/rbi/context_dev/models/ai_extract_product_params.rbi +11 -0
- data/rbi/context_dev/models/ai_extract_products_params.rbi +22 -0
- data/rbi/context_dev/models/batch_cancel_params.rbi +40 -0
- data/rbi/context_dev/models/batch_cancel_response.rbi +642 -0
- data/rbi/context_dev/models/batch_get_results_params.rbi +70 -0
- data/rbi/context_dev/models/batch_get_results_response.rbi +848 -0
- data/rbi/context_dev/models/batch_list_params.rbi +166 -0
- data/rbi/context_dev/models/batch_list_response.rbi +738 -0
- data/rbi/context_dev/models/batch_retrieve_params.rbi +40 -0
- data/rbi/context_dev/models/batch_retrieve_response.rbi +707 -0
- data/rbi/context_dev/models/batch_submit_params.rbi +105 -0
- data/rbi/context_dev/models/batch_submit_response.rbi +1330 -0
- data/rbi/context_dev/models/brand_retrieve_params.rbi +175 -64
- data/rbi/context_dev/models/brand_retrieve_response.rbi +8 -11
- data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +68 -5
- data/rbi/context_dev/models/error.rbi +32 -0
- data/rbi/context_dev/models/error_count.rbi +34 -0
- data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +15 -0
- data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +15 -0
- data/rbi/context_dev/models/monitor_create_params.rbi +280 -246
- data/rbi/context_dev/models/monitor_create_response.rbi +44 -11
- data/rbi/context_dev/models/monitor_get_credit_usage_params.rbi +60 -0
- data/rbi/context_dev/models/monitor_get_credit_usage_response.rbi +111 -0
- data/rbi/context_dev/models/monitor_get_limits_params.rbi +30 -0
- data/rbi/context_dev/models/monitor_get_limits_response.rbi +105 -0
- data/rbi/context_dev/models/monitor_list_account_changes_params.rbi +16 -0
- data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +2 -0
- data/rbi/context_dev/models/monitor_list_account_runs_params.rbi +7 -6
- data/rbi/context_dev/models/monitor_list_changes_params.rbi +8 -0
- data/rbi/context_dev/models/monitor_list_changes_response.rbi +2 -0
- data/rbi/context_dev/models/monitor_list_params.rbi +23 -31
- data/rbi/context_dev/models/monitor_list_response.rbi +30 -9
- data/rbi/context_dev/models/monitor_list_runs_params.rbi +7 -6
- data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +2 -0
- data/rbi/context_dev/models/monitor_retrieve_response.rbi +30 -9
- data/rbi/context_dev/models/monitor_update_params.rbi +30 -9
- data/rbi/context_dev/models/monitor_update_response.rbi +30 -9
- data/rbi/context_dev/models/parse_handle_params.rbi +400 -46
- data/rbi/context_dev/models/utility_prefetch_params.rbi +11 -0
- data/rbi/context_dev/models/web_extract_competitors_params.rbi +15 -0
- data/rbi/context_dev/models/web_extract_fonts_params.rbi +19 -7
- data/rbi/context_dev/models/web_extract_params.rbi +26 -0
- data/rbi/context_dev/models/web_extract_styleguide_params.rbi +19 -7
- data/rbi/context_dev/models/web_screenshot_params.rbi +108 -37
- data/rbi/context_dev/models/web_screenshot_response.rbi +4 -2
- data/rbi/context_dev/models/web_search_params.rbi +11 -0
- data/rbi/context_dev/models/web_web_crawl_md_params.rbi +53 -0
- data/rbi/context_dev/models/web_web_scrape_html_params.rbi +554 -49
- data/rbi/context_dev/models/web_web_scrape_html_response.rbi +182 -0
- data/rbi/context_dev/models/web_web_scrape_images_params.rbi +426 -30
- data/rbi/context_dev/models/web_web_scrape_md_params.rbi +742 -61
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +180 -0
- data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +82 -0
- data/rbi/context_dev/models.rbi +18 -0
- data/rbi/context_dev/resources/ai.rbi +3 -0
- data/rbi/context_dev/resources/batch.rbi +120 -0
- data/rbi/context_dev/resources/brand.rbi +9 -1
- data/rbi/context_dev/resources/industry.rbi +10 -0
- data/rbi/context_dev/resources/monitors.rbi +67 -23
- data/rbi/context_dev/resources/parse.rbi +46 -19
- data/rbi/context_dev/resources/utility.rbi +3 -0
- data/rbi/context_dev/resources/web.rbi +224 -48
- data/sig/context_dev/client.rbs +2 -0
- data/sig/context_dev/models/ai_extract_product_params.rbs +12 -1
- data/sig/context_dev/models/ai_extract_products_params.rbs +14 -0
- data/sig/context_dev/models/batch_cancel_params.rbs +23 -0
- data/sig/context_dev/models/batch_cancel_response.rbs +266 -0
- data/sig/context_dev/models/batch_get_results_params.rbs +36 -0
- data/sig/context_dev/models/batch_get_results_response.rbs +399 -0
- data/sig/context_dev/models/batch_list_params.rbs +94 -0
- data/sig/context_dev/models/batch_list_response.rbs +304 -0
- data/sig/context_dev/models/batch_retrieve_params.rbs +23 -0
- data/sig/context_dev/models/batch_retrieve_response.rbs +290 -0
- data/sig/context_dev/models/batch_submit_params.rbs +52 -0
- data/sig/context_dev/models/batch_submit_response.rbs +542 -0
- data/sig/context_dev/models/brand_retrieve_params.rbs +97 -51
- data/sig/context_dev/models/brand_retrieve_response.rbs +2 -2
- data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +34 -5
- data/sig/context_dev/models/error.rbs +15 -0
- data/sig/context_dev/models/error_count.rbs +15 -0
- data/sig/context_dev/models/industry_retrieve_naics_params.rbs +7 -0
- data/sig/context_dev/models/industry_retrieve_sic_params.rbs +7 -0
- data/sig/context_dev/models/monitor_create_params.rbs +117 -97
- data/sig/context_dev/models/monitor_create_response.rbs +18 -1
- data/sig/context_dev/models/monitor_get_credit_usage_params.rbs +32 -0
- data/sig/context_dev/models/monitor_get_credit_usage_response.rbs +52 -0
- data/sig/context_dev/models/monitor_get_limits_params.rbs +15 -0
- data/sig/context_dev/models/monitor_get_limits_response.rbs +43 -0
- data/sig/context_dev/models/monitor_list_params.rbs +8 -14
- data/sig/context_dev/models/monitor_list_response.rbs +13 -1
- data/sig/context_dev/models/monitor_retrieve_response.rbs +13 -1
- data/sig/context_dev/models/monitor_update_params.rbs +13 -1
- data/sig/context_dev/models/monitor_update_response.rbs +13 -1
- data/sig/context_dev/models/parse_handle_params.rbs +124 -25
- data/sig/context_dev/models/utility_prefetch_params.rbs +7 -0
- data/sig/context_dev/models/web_extract_competitors_params.rbs +12 -1
- data/sig/context_dev/models/web_extract_fonts_params.rbs +10 -5
- data/sig/context_dev/models/web_extract_params.rbs +14 -0
- data/sig/context_dev/models/web_extract_styleguide_params.rbs +10 -5
- data/sig/context_dev/models/web_screenshot_params.rbs +41 -20
- data/sig/context_dev/models/web_search_params.rbs +7 -0
- data/sig/context_dev/models/web_web_crawl_md_params.rbs +28 -1
- data/sig/context_dev/models/web_web_scrape_html_params.rbs +175 -47
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +85 -0
- data/sig/context_dev/models/web_web_scrape_images_params.rbs +128 -38
- data/sig/context_dev/models/web_web_scrape_md_params.rbs +229 -62
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +85 -0
- data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +35 -1
- data/sig/context_dev/models.rbs +18 -0
- data/sig/context_dev/resources/ai.rbs +1 -0
- data/sig/context_dev/resources/batch.rbs +41 -0
- data/sig/context_dev/resources/brand.rbs +3 -1
- data/sig/context_dev/resources/industry.rbs +2 -0
- data/sig/context_dev/resources/monitors.rbs +14 -4
- data/sig/context_dev/resources/parse.rbs +8 -5
- data/sig/context_dev/resources/utility.rbs +1 -0
- data/sig/context_dev/resources/web.rbs +47 -26
- metadata +53 -2
|
@@ -11,31 +11,9 @@ module ContextDev
|
|
|
11
11
|
T.any(ContextDev::MonitorCreateParams, ContextDev::Internal::AnyHash)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
-
# Discriminated union describing how changes are detected.
|
|
15
|
-
sig do
|
|
16
|
-
returns(
|
|
17
|
-
T.any(
|
|
18
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
19
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
20
|
-
)
|
|
21
|
-
)
|
|
22
|
-
end
|
|
23
|
-
attr_accessor :change_detection
|
|
24
|
-
|
|
25
14
|
sig { returns(String) }
|
|
26
15
|
attr_accessor :name
|
|
27
16
|
|
|
28
|
-
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
29
|
-
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
30
|
-
# between 10 minutes and 1 year.
|
|
31
|
-
sig { returns(ContextDev::MonitorCreateParams::Schedule) }
|
|
32
|
-
attr_reader :schedule
|
|
33
|
-
|
|
34
|
-
sig do
|
|
35
|
-
params(schedule: ContextDev::MonitorCreateParams::Schedule::OrHash).void
|
|
36
|
-
end
|
|
37
|
-
attr_writer :schedule
|
|
38
|
-
|
|
39
17
|
# Discriminated union describing what the monitor watches.
|
|
40
18
|
sig do
|
|
41
19
|
returns(
|
|
@@ -48,6 +26,30 @@ module ContextDev
|
|
|
48
26
|
end
|
|
49
27
|
attr_accessor :target
|
|
50
28
|
|
|
29
|
+
# Discriminated union describing how changes are detected.
|
|
30
|
+
sig do
|
|
31
|
+
returns(
|
|
32
|
+
T.nilable(
|
|
33
|
+
T.any(
|
|
34
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
35
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
36
|
+
)
|
|
37
|
+
)
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
attr_reader :change_detection
|
|
41
|
+
|
|
42
|
+
sig do
|
|
43
|
+
params(
|
|
44
|
+
change_detection:
|
|
45
|
+
T.any(
|
|
46
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact::OrHash,
|
|
47
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic::OrHash
|
|
48
|
+
)
|
|
49
|
+
).void
|
|
50
|
+
end
|
|
51
|
+
attr_writer :change_detection
|
|
52
|
+
|
|
51
53
|
# Top-level monitor category. Always `web` today; the concrete behavior is
|
|
52
54
|
# described by `target` and `change_detection`.
|
|
53
55
|
sig do
|
|
@@ -58,7 +60,19 @@ module ContextDev
|
|
|
58
60
|
sig { params(mode: ContextDev::MonitorCreateParams::Mode::OrSymbol).void }
|
|
59
61
|
attr_writer :mode
|
|
60
62
|
|
|
63
|
+
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
64
|
+
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
65
|
+
# between 10 minutes and 1 year.
|
|
66
|
+
sig { returns(T.nilable(ContextDev::MonitorCreateParams::Schedule)) }
|
|
67
|
+
attr_reader :schedule
|
|
68
|
+
|
|
69
|
+
sig do
|
|
70
|
+
params(schedule: ContextDev::MonitorCreateParams::Schedule::OrHash).void
|
|
71
|
+
end
|
|
72
|
+
attr_writer :schedule
|
|
73
|
+
|
|
61
74
|
# User-defined tags for grouping and filtering monitors and their changes.
|
|
75
|
+
# Duplicates are removed.
|
|
62
76
|
sig { returns(T.nilable(T::Array[String])) }
|
|
63
77
|
attr_reader :tags
|
|
64
78
|
|
|
@@ -77,39 +91,40 @@ module ContextDev
|
|
|
77
91
|
|
|
78
92
|
sig do
|
|
79
93
|
params(
|
|
80
|
-
change_detection:
|
|
81
|
-
T.any(
|
|
82
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Exact::OrHash,
|
|
83
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Semantic::OrHash
|
|
84
|
-
),
|
|
85
94
|
name: String,
|
|
86
|
-
schedule: ContextDev::MonitorCreateParams::Schedule::OrHash,
|
|
87
95
|
target:
|
|
88
96
|
T.any(
|
|
89
97
|
ContextDev::MonitorCreateParams::Target::Page::OrHash,
|
|
90
98
|
ContextDev::MonitorCreateParams::Target::Sitemap::OrHash,
|
|
91
99
|
ContextDev::MonitorCreateParams::Target::Extract::OrHash
|
|
92
100
|
),
|
|
101
|
+
change_detection:
|
|
102
|
+
T.any(
|
|
103
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact::OrHash,
|
|
104
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic::OrHash
|
|
105
|
+
),
|
|
93
106
|
mode: ContextDev::MonitorCreateParams::Mode::OrSymbol,
|
|
107
|
+
schedule: ContextDev::MonitorCreateParams::Schedule::OrHash,
|
|
94
108
|
tags: T::Array[String],
|
|
95
109
|
webhook: T.nilable(ContextDev::MonitorCreateParams::Webhook::OrHash),
|
|
96
110
|
request_options: ContextDev::RequestOptions::OrHash
|
|
97
111
|
).returns(T.attached_class)
|
|
98
112
|
end
|
|
99
113
|
def self.new(
|
|
100
|
-
# Discriminated union describing how changes are detected.
|
|
101
|
-
change_detection:,
|
|
102
114
|
name:,
|
|
103
|
-
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
104
|
-
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
105
|
-
# between 10 minutes and 1 year.
|
|
106
|
-
schedule:,
|
|
107
115
|
# Discriminated union describing what the monitor watches.
|
|
108
116
|
target:,
|
|
117
|
+
# Discriminated union describing how changes are detected.
|
|
118
|
+
change_detection: nil,
|
|
109
119
|
# Top-level monitor category. Always `web` today; the concrete behavior is
|
|
110
120
|
# described by `target` and `change_detection`.
|
|
111
121
|
mode: nil,
|
|
122
|
+
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
123
|
+
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
124
|
+
# between 10 minutes and 1 year.
|
|
125
|
+
schedule: nil,
|
|
112
126
|
# User-defined tags for grouping and filtering monitors and their changes.
|
|
127
|
+
# Duplicates are removed.
|
|
113
128
|
tags: nil,
|
|
114
129
|
webhook: nil,
|
|
115
130
|
request_options: {}
|
|
@@ -119,20 +134,20 @@ module ContextDev
|
|
|
119
134
|
sig do
|
|
120
135
|
override.returns(
|
|
121
136
|
{
|
|
122
|
-
change_detection:
|
|
123
|
-
T.any(
|
|
124
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
125
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
126
|
-
),
|
|
127
137
|
name: String,
|
|
128
|
-
schedule: ContextDev::MonitorCreateParams::Schedule,
|
|
129
138
|
target:
|
|
130
139
|
T.any(
|
|
131
140
|
ContextDev::MonitorCreateParams::Target::Page,
|
|
132
141
|
ContextDev::MonitorCreateParams::Target::Sitemap,
|
|
133
142
|
ContextDev::MonitorCreateParams::Target::Extract
|
|
134
143
|
),
|
|
144
|
+
change_detection:
|
|
145
|
+
T.any(
|
|
146
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
147
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
148
|
+
),
|
|
135
149
|
mode: ContextDev::MonitorCreateParams::Mode::OrSymbol,
|
|
150
|
+
schedule: ContextDev::MonitorCreateParams::Schedule,
|
|
136
151
|
tags: T::Array[String],
|
|
137
152
|
webhook: T.nilable(ContextDev::MonitorCreateParams::Webhook),
|
|
138
153
|
request_options: ContextDev::RequestOptions
|
|
@@ -142,206 +157,6 @@ module ContextDev
|
|
|
142
157
|
def to_hash
|
|
143
158
|
end
|
|
144
159
|
|
|
145
|
-
# Discriminated union describing how changes are detected.
|
|
146
|
-
module ChangeDetection
|
|
147
|
-
extend ContextDev::Internal::Type::Union
|
|
148
|
-
|
|
149
|
-
Variants =
|
|
150
|
-
T.type_alias do
|
|
151
|
-
T.any(
|
|
152
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
153
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
154
|
-
)
|
|
155
|
-
end
|
|
156
|
-
|
|
157
|
-
class Exact < ContextDev::Internal::Type::BaseModel
|
|
158
|
-
OrHash =
|
|
159
|
-
T.type_alias do
|
|
160
|
-
T.any(
|
|
161
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
162
|
-
ContextDev::Internal::AnyHash
|
|
163
|
-
)
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
sig { returns(Symbol) }
|
|
167
|
-
attr_accessor :type
|
|
168
|
-
|
|
169
|
-
# Detect exact changes. For page targets, this means visible text diffs. For
|
|
170
|
-
# sitemap targets, this means URL additions and removals.
|
|
171
|
-
sig { params(type: Symbol).returns(T.attached_class) }
|
|
172
|
-
def self.new(type: :exact)
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
sig { override.returns({ type: Symbol }) }
|
|
176
|
-
def to_hash
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
class Semantic < ContextDev::Internal::Type::BaseModel
|
|
181
|
-
OrHash =
|
|
182
|
-
T.type_alias do
|
|
183
|
-
T.any(
|
|
184
|
-
ContextDev::MonitorCreateParams::ChangeDetection::Semantic,
|
|
185
|
-
ContextDev::Internal::AnyHash
|
|
186
|
-
)
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
sig { returns(Symbol) }
|
|
190
|
-
attr_accessor :type
|
|
191
|
-
|
|
192
|
-
sig { returns(T.nilable(Float)) }
|
|
193
|
-
attr_reader :confidence_threshold
|
|
194
|
-
|
|
195
|
-
sig { params(confidence_threshold: Float).void }
|
|
196
|
-
attr_writer :confidence_threshold
|
|
197
|
-
|
|
198
|
-
# Detect meaning-level changes to tracked page content, ignoring cosmetic or
|
|
199
|
-
# paraphrase-only differences. Which changes are meaningful is judged against the
|
|
200
|
-
# extract target's `instructions` (and `schema`, when provided).
|
|
201
|
-
sig do
|
|
202
|
-
params(confidence_threshold: Float, type: Symbol).returns(
|
|
203
|
-
T.attached_class
|
|
204
|
-
)
|
|
205
|
-
end
|
|
206
|
-
def self.new(confidence_threshold: nil, type: :semantic)
|
|
207
|
-
end
|
|
208
|
-
|
|
209
|
-
sig do
|
|
210
|
-
override.returns({ type: Symbol, confidence_threshold: Float })
|
|
211
|
-
end
|
|
212
|
-
def to_hash
|
|
213
|
-
end
|
|
214
|
-
end
|
|
215
|
-
|
|
216
|
-
sig do
|
|
217
|
-
override.returns(
|
|
218
|
-
T::Array[ContextDev::MonitorCreateParams::ChangeDetection::Variants]
|
|
219
|
-
)
|
|
220
|
-
end
|
|
221
|
-
def self.variants
|
|
222
|
-
end
|
|
223
|
-
end
|
|
224
|
-
|
|
225
|
-
class Schedule < ContextDev::Internal::Type::BaseModel
|
|
226
|
-
OrHash =
|
|
227
|
-
T.type_alias do
|
|
228
|
-
T.any(
|
|
229
|
-
ContextDev::MonitorCreateParams::Schedule,
|
|
230
|
-
ContextDev::Internal::AnyHash
|
|
231
|
-
)
|
|
232
|
-
end
|
|
233
|
-
|
|
234
|
-
# Number of units between runs. The resulting interval (frequency × unit) must be
|
|
235
|
-
# at least 10 minutes and at most 1 year (e.g. minimum 10 when unit is minutes;
|
|
236
|
-
# maximum 365 when unit is days).
|
|
237
|
-
sig { returns(Integer) }
|
|
238
|
-
attr_accessor :frequency
|
|
239
|
-
|
|
240
|
-
sig do
|
|
241
|
-
returns(ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol)
|
|
242
|
-
end
|
|
243
|
-
attr_accessor :type
|
|
244
|
-
|
|
245
|
-
sig do
|
|
246
|
-
returns(ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol)
|
|
247
|
-
end
|
|
248
|
-
attr_accessor :unit
|
|
249
|
-
|
|
250
|
-
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
251
|
-
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
252
|
-
# between 10 minutes and 1 year.
|
|
253
|
-
sig do
|
|
254
|
-
params(
|
|
255
|
-
frequency: Integer,
|
|
256
|
-
type: ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol,
|
|
257
|
-
unit: ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol
|
|
258
|
-
).returns(T.attached_class)
|
|
259
|
-
end
|
|
260
|
-
def self.new(
|
|
261
|
-
# Number of units between runs. The resulting interval (frequency × unit) must be
|
|
262
|
-
# at least 10 minutes and at most 1 year (e.g. minimum 10 when unit is minutes;
|
|
263
|
-
# maximum 365 when unit is days).
|
|
264
|
-
frequency:,
|
|
265
|
-
type:,
|
|
266
|
-
unit:
|
|
267
|
-
)
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
sig do
|
|
271
|
-
override.returns(
|
|
272
|
-
{
|
|
273
|
-
frequency: Integer,
|
|
274
|
-
type: ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol,
|
|
275
|
-
unit: ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol
|
|
276
|
-
}
|
|
277
|
-
)
|
|
278
|
-
end
|
|
279
|
-
def to_hash
|
|
280
|
-
end
|
|
281
|
-
|
|
282
|
-
module Type
|
|
283
|
-
extend ContextDev::Internal::Type::Enum
|
|
284
|
-
|
|
285
|
-
TaggedSymbol =
|
|
286
|
-
T.type_alias do
|
|
287
|
-
T.all(Symbol, ContextDev::MonitorCreateParams::Schedule::Type)
|
|
288
|
-
end
|
|
289
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
290
|
-
|
|
291
|
-
INTERVAL =
|
|
292
|
-
T.let(
|
|
293
|
-
:interval,
|
|
294
|
-
ContextDev::MonitorCreateParams::Schedule::Type::TaggedSymbol
|
|
295
|
-
)
|
|
296
|
-
|
|
297
|
-
sig do
|
|
298
|
-
override.returns(
|
|
299
|
-
T::Array[
|
|
300
|
-
ContextDev::MonitorCreateParams::Schedule::Type::TaggedSymbol
|
|
301
|
-
]
|
|
302
|
-
)
|
|
303
|
-
end
|
|
304
|
-
def self.values
|
|
305
|
-
end
|
|
306
|
-
end
|
|
307
|
-
|
|
308
|
-
module Unit
|
|
309
|
-
extend ContextDev::Internal::Type::Enum
|
|
310
|
-
|
|
311
|
-
TaggedSymbol =
|
|
312
|
-
T.type_alias do
|
|
313
|
-
T.all(Symbol, ContextDev::MonitorCreateParams::Schedule::Unit)
|
|
314
|
-
end
|
|
315
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
316
|
-
|
|
317
|
-
MINUTES =
|
|
318
|
-
T.let(
|
|
319
|
-
:minutes,
|
|
320
|
-
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
321
|
-
)
|
|
322
|
-
HOURS =
|
|
323
|
-
T.let(
|
|
324
|
-
:hours,
|
|
325
|
-
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
326
|
-
)
|
|
327
|
-
DAYS =
|
|
328
|
-
T.let(
|
|
329
|
-
:days,
|
|
330
|
-
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
331
|
-
)
|
|
332
|
-
|
|
333
|
-
sig do
|
|
334
|
-
override.returns(
|
|
335
|
-
T::Array[
|
|
336
|
-
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
337
|
-
]
|
|
338
|
-
)
|
|
339
|
-
end
|
|
340
|
-
def self.values
|
|
341
|
-
end
|
|
342
|
-
end
|
|
343
|
-
end
|
|
344
|
-
|
|
345
160
|
# Discriminated union describing what the monitor watches.
|
|
346
161
|
module Target
|
|
347
162
|
extend ContextDev::Internal::Type::Union
|
|
@@ -370,6 +185,14 @@ module ContextDev
|
|
|
370
185
|
sig { returns(String) }
|
|
371
186
|
attr_accessor :url
|
|
372
187
|
|
|
188
|
+
# Plain-language goal describing which page changes matter. When provided without
|
|
189
|
+
# change_detection, semantic detection is inferred.
|
|
190
|
+
sig { returns(T.nilable(String)) }
|
|
191
|
+
attr_reader :instructions
|
|
192
|
+
|
|
193
|
+
sig { params(instructions: String).void }
|
|
194
|
+
attr_writer :instructions
|
|
195
|
+
|
|
373
196
|
# Normalize whitespace before comparing or analyzing text.
|
|
374
197
|
sig { returns(T.nilable(T::Boolean)) }
|
|
375
198
|
attr_reader :normalize_whitespace
|
|
@@ -377,16 +200,21 @@ module ContextDev
|
|
|
377
200
|
sig { params(normalize_whitespace: T::Boolean).void }
|
|
378
201
|
attr_writer :normalize_whitespace
|
|
379
202
|
|
|
380
|
-
# Watch a single web page.
|
|
203
|
+
# Watch a single web page. Exact detection reports visible-text diffs; semantic
|
|
204
|
+
# detection judges confirmed stable diffs against `instructions`.
|
|
381
205
|
sig do
|
|
382
206
|
params(
|
|
383
207
|
url: String,
|
|
208
|
+
instructions: String,
|
|
384
209
|
normalize_whitespace: T::Boolean,
|
|
385
210
|
type: Symbol
|
|
386
211
|
).returns(T.attached_class)
|
|
387
212
|
end
|
|
388
213
|
def self.new(
|
|
389
214
|
url:,
|
|
215
|
+
# Plain-language goal describing which page changes matter. When provided without
|
|
216
|
+
# change_detection, semantic detection is inferred.
|
|
217
|
+
instructions: nil,
|
|
390
218
|
# Normalize whitespace before comparing or analyzing text.
|
|
391
219
|
normalize_whitespace: nil,
|
|
392
220
|
type: :page
|
|
@@ -395,7 +223,12 @@ module ContextDev
|
|
|
395
223
|
|
|
396
224
|
sig do
|
|
397
225
|
override.returns(
|
|
398
|
-
{
|
|
226
|
+
{
|
|
227
|
+
type: Symbol,
|
|
228
|
+
url: String,
|
|
229
|
+
instructions: String,
|
|
230
|
+
normalize_whitespace: T::Boolean
|
|
231
|
+
}
|
|
399
232
|
)
|
|
400
233
|
end
|
|
401
234
|
def to_hash
|
|
@@ -418,14 +251,14 @@ module ContextDev
|
|
|
418
251
|
sig { returns(String) }
|
|
419
252
|
attr_accessor :url
|
|
420
253
|
|
|
421
|
-
# URL path patterns to exclude.
|
|
254
|
+
# URL path patterns to exclude (max 50).
|
|
422
255
|
sig { returns(T.nilable(T::Array[String])) }
|
|
423
256
|
attr_reader :exclude
|
|
424
257
|
|
|
425
258
|
sig { params(exclude: T::Array[String]).void }
|
|
426
259
|
attr_writer :exclude
|
|
427
260
|
|
|
428
|
-
# URL path patterns to include.
|
|
261
|
+
# URL path patterns to include (max 50).
|
|
429
262
|
sig { returns(T.nilable(T::Array[String])) }
|
|
430
263
|
attr_reader :include
|
|
431
264
|
|
|
@@ -456,9 +289,9 @@ module ContextDev
|
|
|
456
289
|
def self.new(
|
|
457
290
|
# Sitemap URL to monitor.
|
|
458
291
|
url:,
|
|
459
|
-
# URL path patterns to exclude.
|
|
292
|
+
# URL path patterns to exclude (max 50).
|
|
460
293
|
exclude: nil,
|
|
461
|
-
# URL path patterns to include.
|
|
294
|
+
# URL path patterns to include (max 50).
|
|
462
295
|
include: nil,
|
|
463
296
|
# Maximum number of sitemap URLs to track (capped at 10,000).
|
|
464
297
|
max_urls: nil,
|
|
@@ -602,6 +435,87 @@ module ContextDev
|
|
|
602
435
|
end
|
|
603
436
|
end
|
|
604
437
|
|
|
438
|
+
# Discriminated union describing how changes are detected.
|
|
439
|
+
module ChangeDetection
|
|
440
|
+
extend ContextDev::Internal::Type::Union
|
|
441
|
+
|
|
442
|
+
Variants =
|
|
443
|
+
T.type_alias do
|
|
444
|
+
T.any(
|
|
445
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
446
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic
|
|
447
|
+
)
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
class Exact < ContextDev::Internal::Type::BaseModel
|
|
451
|
+
OrHash =
|
|
452
|
+
T.type_alias do
|
|
453
|
+
T.any(
|
|
454
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Exact,
|
|
455
|
+
ContextDev::Internal::AnyHash
|
|
456
|
+
)
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
sig { returns(Symbol) }
|
|
460
|
+
attr_accessor :type
|
|
461
|
+
|
|
462
|
+
# Detect exact changes. For page targets, this means visible text diffs. For
|
|
463
|
+
# sitemap targets, this means URL additions and removals.
|
|
464
|
+
sig { params(type: Symbol).returns(T.attached_class) }
|
|
465
|
+
def self.new(type: :exact)
|
|
466
|
+
end
|
|
467
|
+
|
|
468
|
+
sig { override.returns({ type: Symbol }) }
|
|
469
|
+
def to_hash
|
|
470
|
+
end
|
|
471
|
+
end
|
|
472
|
+
|
|
473
|
+
class Semantic < ContextDev::Internal::Type::BaseModel
|
|
474
|
+
OrHash =
|
|
475
|
+
T.type_alias do
|
|
476
|
+
T.any(
|
|
477
|
+
ContextDev::MonitorCreateParams::ChangeDetection::Semantic,
|
|
478
|
+
ContextDev::Internal::AnyHash
|
|
479
|
+
)
|
|
480
|
+
end
|
|
481
|
+
|
|
482
|
+
sig { returns(Symbol) }
|
|
483
|
+
attr_accessor :type
|
|
484
|
+
|
|
485
|
+
sig { returns(T.nilable(Float)) }
|
|
486
|
+
attr_reader :confidence_threshold
|
|
487
|
+
|
|
488
|
+
sig { params(confidence_threshold: Float).void }
|
|
489
|
+
attr_writer :confidence_threshold
|
|
490
|
+
|
|
491
|
+
# Detect meaning-level changes to page content, ignoring cosmetic or
|
|
492
|
+
# instruction-irrelevant differences. Which changes are meaningful is judged
|
|
493
|
+
# against the page or extract target's `instructions` (and an extract target's
|
|
494
|
+
# `schema`, when provided).
|
|
495
|
+
sig do
|
|
496
|
+
params(confidence_threshold: Float, type: Symbol).returns(
|
|
497
|
+
T.attached_class
|
|
498
|
+
)
|
|
499
|
+
end
|
|
500
|
+
def self.new(confidence_threshold: nil, type: :semantic)
|
|
501
|
+
end
|
|
502
|
+
|
|
503
|
+
sig do
|
|
504
|
+
override.returns({ type: Symbol, confidence_threshold: Float })
|
|
505
|
+
end
|
|
506
|
+
def to_hash
|
|
507
|
+
end
|
|
508
|
+
end
|
|
509
|
+
|
|
510
|
+
sig do
|
|
511
|
+
override.returns(
|
|
512
|
+
T::Array[ContextDev::MonitorCreateParams::ChangeDetection::Variants]
|
|
513
|
+
)
|
|
514
|
+
end
|
|
515
|
+
def self.variants
|
|
516
|
+
end
|
|
517
|
+
end
|
|
518
|
+
|
|
605
519
|
# Top-level monitor category. Always `web` today; the concrete behavior is
|
|
606
520
|
# described by `target` and `change_detection`.
|
|
607
521
|
module Mode
|
|
@@ -622,6 +536,126 @@ module ContextDev
|
|
|
622
536
|
end
|
|
623
537
|
end
|
|
624
538
|
|
|
539
|
+
class Schedule < ContextDev::Internal::Type::BaseModel
|
|
540
|
+
OrHash =
|
|
541
|
+
T.type_alias do
|
|
542
|
+
T.any(
|
|
543
|
+
ContextDev::MonitorCreateParams::Schedule,
|
|
544
|
+
ContextDev::Internal::AnyHash
|
|
545
|
+
)
|
|
546
|
+
end
|
|
547
|
+
|
|
548
|
+
# Number of units between runs. The resulting interval (frequency × unit) must be
|
|
549
|
+
# at least 10 minutes and at most 1 year (e.g. minimum 10 when unit is minutes;
|
|
550
|
+
# maximum 365 when unit is days).
|
|
551
|
+
sig { returns(Integer) }
|
|
552
|
+
attr_accessor :frequency
|
|
553
|
+
|
|
554
|
+
sig do
|
|
555
|
+
returns(ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol)
|
|
556
|
+
end
|
|
557
|
+
attr_accessor :type
|
|
558
|
+
|
|
559
|
+
sig do
|
|
560
|
+
returns(ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol)
|
|
561
|
+
end
|
|
562
|
+
attr_accessor :unit
|
|
563
|
+
|
|
564
|
+
# Run the monitor on a fixed interval defined by a frequency and a unit, e.g.
|
|
565
|
+
# every 6 hours or every 2 days. The total interval (frequency × unit) must be
|
|
566
|
+
# between 10 minutes and 1 year.
|
|
567
|
+
sig do
|
|
568
|
+
params(
|
|
569
|
+
frequency: Integer,
|
|
570
|
+
type: ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol,
|
|
571
|
+
unit: ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol
|
|
572
|
+
).returns(T.attached_class)
|
|
573
|
+
end
|
|
574
|
+
def self.new(
|
|
575
|
+
# Number of units between runs. The resulting interval (frequency × unit) must be
|
|
576
|
+
# at least 10 minutes and at most 1 year (e.g. minimum 10 when unit is minutes;
|
|
577
|
+
# maximum 365 when unit is days).
|
|
578
|
+
frequency:,
|
|
579
|
+
type:,
|
|
580
|
+
unit:
|
|
581
|
+
)
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
sig do
|
|
585
|
+
override.returns(
|
|
586
|
+
{
|
|
587
|
+
frequency: Integer,
|
|
588
|
+
type: ContextDev::MonitorCreateParams::Schedule::Type::OrSymbol,
|
|
589
|
+
unit: ContextDev::MonitorCreateParams::Schedule::Unit::OrSymbol
|
|
590
|
+
}
|
|
591
|
+
)
|
|
592
|
+
end
|
|
593
|
+
def to_hash
|
|
594
|
+
end
|
|
595
|
+
|
|
596
|
+
module Type
|
|
597
|
+
extend ContextDev::Internal::Type::Enum
|
|
598
|
+
|
|
599
|
+
TaggedSymbol =
|
|
600
|
+
T.type_alias do
|
|
601
|
+
T.all(Symbol, ContextDev::MonitorCreateParams::Schedule::Type)
|
|
602
|
+
end
|
|
603
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
604
|
+
|
|
605
|
+
INTERVAL =
|
|
606
|
+
T.let(
|
|
607
|
+
:interval,
|
|
608
|
+
ContextDev::MonitorCreateParams::Schedule::Type::TaggedSymbol
|
|
609
|
+
)
|
|
610
|
+
|
|
611
|
+
sig do
|
|
612
|
+
override.returns(
|
|
613
|
+
T::Array[
|
|
614
|
+
ContextDev::MonitorCreateParams::Schedule::Type::TaggedSymbol
|
|
615
|
+
]
|
|
616
|
+
)
|
|
617
|
+
end
|
|
618
|
+
def self.values
|
|
619
|
+
end
|
|
620
|
+
end
|
|
621
|
+
|
|
622
|
+
module Unit
|
|
623
|
+
extend ContextDev::Internal::Type::Enum
|
|
624
|
+
|
|
625
|
+
TaggedSymbol =
|
|
626
|
+
T.type_alias do
|
|
627
|
+
T.all(Symbol, ContextDev::MonitorCreateParams::Schedule::Unit)
|
|
628
|
+
end
|
|
629
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
630
|
+
|
|
631
|
+
MINUTES =
|
|
632
|
+
T.let(
|
|
633
|
+
:minutes,
|
|
634
|
+
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
635
|
+
)
|
|
636
|
+
HOURS =
|
|
637
|
+
T.let(
|
|
638
|
+
:hours,
|
|
639
|
+
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
640
|
+
)
|
|
641
|
+
DAYS =
|
|
642
|
+
T.let(
|
|
643
|
+
:days,
|
|
644
|
+
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
645
|
+
)
|
|
646
|
+
|
|
647
|
+
sig do
|
|
648
|
+
override.returns(
|
|
649
|
+
T::Array[
|
|
650
|
+
ContextDev::MonitorCreateParams::Schedule::Unit::TaggedSymbol
|
|
651
|
+
]
|
|
652
|
+
)
|
|
653
|
+
end
|
|
654
|
+
def self.values
|
|
655
|
+
end
|
|
656
|
+
end
|
|
657
|
+
end
|
|
658
|
+
|
|
625
659
|
class Webhook < ContextDev::Internal::Type::BaseModel
|
|
626
660
|
OrHash =
|
|
627
661
|
T.type_alias do
|