context.dev 2.5.0 → 2.7.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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +4 -0
  5. data/lib/context_dev/models/batch_cancel_params.rb +22 -0
  6. data/lib/context_dev/models/batch_cancel_response.rb +241 -0
  7. data/lib/context_dev/models/batch_get_results_params.rb +42 -0
  8. data/lib/context_dev/models/batch_get_results_response.rb +463 -0
  9. data/lib/context_dev/models/batch_list_params.rb +94 -0
  10. data/lib/context_dev/models/batch_list_response.rb +379 -0
  11. data/lib/context_dev/models/batch_retrieve_params.rb +22 -0
  12. data/lib/context_dev/models/batch_retrieve_response.rb +373 -0
  13. data/lib/context_dev/models/batch_submit_params.rb +56 -0
  14. data/lib/context_dev/models/batch_submit_response.rb +614 -0
  15. data/lib/context_dev/models/crawl_controls.rb +126 -0
  16. data/lib/context_dev/models/failure.rb +27 -0
  17. data/lib/context_dev/models/intake.rb +62 -0
  18. data/lib/context_dev/models/monitor_create_params.rb +141 -127
  19. data/lib/context_dev/models/monitor_create_response.rb +34 -10
  20. data/lib/context_dev/models/monitor_list_response.rb +21 -7
  21. data/lib/context_dev/models/monitor_retrieve_response.rb +21 -7
  22. data/lib/context_dev/models/monitor_update_params.rb +21 -7
  23. data/lib/context_dev/models/monitor_update_response.rb +21 -7
  24. data/lib/context_dev/models/page_error_count.rb +26 -0
  25. data/lib/context_dev/models/web_screenshot_params.rb +5 -7
  26. data/lib/context_dev/models/web_web_crawl_md_params.rb +5 -7
  27. data/lib/context_dev/models/web_web_scrape_html_params.rb +5 -7
  28. data/lib/context_dev/models/web_web_scrape_html_response.rb +93 -1
  29. data/lib/context_dev/models/web_web_scrape_md_params.rb +5 -7
  30. data/lib/context_dev/models/web_web_scrape_md_response.rb +93 -1
  31. data/lib/context_dev/models.rb +18 -0
  32. data/lib/context_dev/resources/batch.rb +152 -0
  33. data/lib/context_dev/resources/monitors.rb +5 -5
  34. data/lib/context_dev/resources/web.rb +4 -4
  35. data/lib/context_dev/version.rb +1 -1
  36. data/lib/context_dev.rb +15 -0
  37. data/rbi/context_dev/client.rbi +3 -0
  38. data/rbi/context_dev/models/batch_cancel_params.rbi +40 -0
  39. data/rbi/context_dev/models/batch_cancel_response.rbi +424 -0
  40. data/rbi/context_dev/models/batch_get_results_params.rbi +70 -0
  41. data/rbi/context_dev/models/batch_get_results_response.rbi +848 -0
  42. data/rbi/context_dev/models/batch_list_params.rbi +166 -0
  43. data/rbi/context_dev/models/batch_list_response.rbi +713 -0
  44. data/rbi/context_dev/models/batch_retrieve_params.rbi +40 -0
  45. data/rbi/context_dev/models/batch_retrieve_response.rbi +672 -0
  46. data/rbi/context_dev/models/batch_submit_params.rbi +105 -0
  47. data/rbi/context_dev/models/batch_submit_response.rbi +1330 -0
  48. data/rbi/context_dev/models/crawl_controls.rbi +252 -0
  49. data/rbi/context_dev/models/failure.rbi +35 -0
  50. data/rbi/context_dev/models/intake.rbi +88 -0
  51. data/rbi/context_dev/models/monitor_create_params.rbi +274 -242
  52. data/rbi/context_dev/models/monitor_create_response.rbi +38 -7
  53. data/rbi/context_dev/models/monitor_list_response.rbi +24 -5
  54. data/rbi/context_dev/models/monitor_retrieve_response.rbi +24 -5
  55. data/rbi/context_dev/models/monitor_update_params.rbi +24 -5
  56. data/rbi/context_dev/models/monitor_update_response.rbi +24 -5
  57. data/rbi/context_dev/models/page_error_count.rbi +34 -0
  58. data/rbi/context_dev/models/web_screenshot_params.rbi +6 -9
  59. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +6 -9
  60. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +6 -9
  61. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +182 -0
  62. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +6 -9
  63. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +180 -0
  64. data/rbi/context_dev/models.rbi +18 -0
  65. data/rbi/context_dev/resources/batch.rbi +117 -0
  66. data/rbi/context_dev/resources/monitors.rbi +12 -12
  67. data/rbi/context_dev/resources/web.rbi +8 -12
  68. data/sig/context_dev/client.rbs +2 -0
  69. data/sig/context_dev/models/batch_cancel_params.rbs +23 -0
  70. data/sig/context_dev/models/batch_cancel_response.rbs +174 -0
  71. data/sig/context_dev/models/batch_get_results_params.rbs +36 -0
  72. data/sig/context_dev/models/batch_get_results_response.rbs +399 -0
  73. data/sig/context_dev/models/batch_list_params.rbs +94 -0
  74. data/sig/context_dev/models/batch_list_response.rbs +283 -0
  75. data/sig/context_dev/models/batch_retrieve_params.rbs +23 -0
  76. data/sig/context_dev/models/batch_retrieve_response.rbs +262 -0
  77. data/sig/context_dev/models/batch_submit_params.rbs +52 -0
  78. data/sig/context_dev/models/batch_submit_response.rbs +542 -0
  79. data/sig/context_dev/models/crawl_controls.rbs +114 -0
  80. data/sig/context_dev/models/failure.rbs +15 -0
  81. data/sig/context_dev/models/intake.rbs +40 -0
  82. data/sig/context_dev/models/monitor_create_params.rbs +117 -97
  83. data/sig/context_dev/models/monitor_create_response.rbs +18 -1
  84. data/sig/context_dev/models/monitor_list_response.rbs +13 -1
  85. data/sig/context_dev/models/monitor_retrieve_response.rbs +13 -1
  86. data/sig/context_dev/models/monitor_update_params.rbs +13 -1
  87. data/sig/context_dev/models/monitor_update_response.rbs +13 -1
  88. data/sig/context_dev/models/page_error_count.rbs +15 -0
  89. data/sig/context_dev/models/web_web_scrape_html_response.rbs +85 -0
  90. data/sig/context_dev/models/web_web_scrape_md_response.rbs +85 -0
  91. data/sig/context_dev/models.rbs +18 -0
  92. data/sig/context_dev/resources/batch.rbs +41 -0
  93. data/sig/context_dev/resources/monitors.rbs +2 -2
  94. metadata +47 -2
@@ -0,0 +1,252 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class CrawlControls < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(ContextDev::CrawlControls, ContextDev::Internal::AnyHash)
9
+ end
10
+
11
+ # Whether links to subdomains were followed. Always false for a sitemap crawl.
12
+ sig { returns(T::Boolean) }
13
+ attr_accessor :follow_subdomains
14
+
15
+ # Link depth limit. Always 0 for a sitemap crawl, which never follows links off
16
+ # its URLs; null when a `start_url` crawl set no limit.
17
+ sig { returns(T.nilable(Integer)) }
18
+ attr_accessor :max_depth
19
+
20
+ # The `maxUrls` submitted with the crawl. A sitemap crawl scrapes only the URLs
21
+ # its sitemap actually lists, up to this many, so `input.reserved` is often lower.
22
+ sig { returns(Integer) }
23
+ attr_accessor :max_pages
24
+
25
+ # Where the crawl started.
26
+ sig { returns(ContextDev::CrawlControls::Source::Variants) }
27
+ attr_accessor :source
28
+
29
+ # RE2 pattern URLs had to match to be crawled. Null when the crawl set none.
30
+ sig { returns(T.nilable(String)) }
31
+ attr_accessor :url_pattern
32
+
33
+ # The crawl controls as submitted, so the limits requested can be compared against
34
+ # what the crawl reached.
35
+ sig do
36
+ params(
37
+ follow_subdomains: T::Boolean,
38
+ max_depth: T.nilable(Integer),
39
+ max_pages: Integer,
40
+ source:
41
+ T.any(
42
+ ContextDev::CrawlControls::Source::UnionMember0::OrHash,
43
+ ContextDev::CrawlControls::Source::UnionMember1::OrHash
44
+ ),
45
+ url_pattern: T.nilable(String)
46
+ ).returns(T.attached_class)
47
+ end
48
+ def self.new(
49
+ # Whether links to subdomains were followed. Always false for a sitemap crawl.
50
+ follow_subdomains:,
51
+ # Link depth limit. Always 0 for a sitemap crawl, which never follows links off
52
+ # its URLs; null when a `start_url` crawl set no limit.
53
+ max_depth:,
54
+ # The `maxUrls` submitted with the crawl. A sitemap crawl scrapes only the URLs
55
+ # its sitemap actually lists, up to this many, so `input.reserved` is often lower.
56
+ max_pages:,
57
+ # Where the crawl started.
58
+ source:,
59
+ # RE2 pattern URLs had to match to be crawled. Null when the crawl set none.
60
+ url_pattern:
61
+ )
62
+ end
63
+
64
+ sig do
65
+ override.returns(
66
+ {
67
+ follow_subdomains: T::Boolean,
68
+ max_depth: T.nilable(Integer),
69
+ max_pages: Integer,
70
+ source: ContextDev::CrawlControls::Source::Variants,
71
+ url_pattern: T.nilable(String)
72
+ }
73
+ )
74
+ end
75
+ def to_hash
76
+ end
77
+
78
+ # Where the crawl started.
79
+ module Source
80
+ extend ContextDev::Internal::Type::Union
81
+
82
+ Variants =
83
+ T.type_alias do
84
+ T.any(
85
+ ContextDev::CrawlControls::Source::UnionMember0,
86
+ ContextDev::CrawlControls::Source::UnionMember1
87
+ )
88
+ end
89
+
90
+ class UnionMember0 < ContextDev::Internal::Type::BaseModel
91
+ OrHash =
92
+ T.type_alias do
93
+ T.any(
94
+ ContextDev::CrawlControls::Source::UnionMember0,
95
+ ContextDev::Internal::AnyHash
96
+ )
97
+ end
98
+
99
+ sig do
100
+ returns(
101
+ ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
102
+ )
103
+ end
104
+ attr_accessor :type
105
+
106
+ # Page the crawl started from.
107
+ sig { returns(String) }
108
+ attr_accessor :url
109
+
110
+ sig do
111
+ params(
112
+ type:
113
+ ContextDev::CrawlControls::Source::UnionMember0::Type::OrSymbol,
114
+ url: String
115
+ ).returns(T.attached_class)
116
+ end
117
+ def self.new(
118
+ type:,
119
+ # Page the crawl started from.
120
+ url:
121
+ )
122
+ end
123
+
124
+ sig do
125
+ override.returns(
126
+ {
127
+ type:
128
+ ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol,
129
+ url: String
130
+ }
131
+ )
132
+ end
133
+ def to_hash
134
+ end
135
+
136
+ module Type
137
+ extend ContextDev::Internal::Type::Enum
138
+
139
+ TaggedSymbol =
140
+ T.type_alias do
141
+ T.all(
142
+ Symbol,
143
+ ContextDev::CrawlControls::Source::UnionMember0::Type
144
+ )
145
+ end
146
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
147
+
148
+ START_URL =
149
+ T.let(
150
+ :start_url,
151
+ ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
152
+ )
153
+
154
+ sig do
155
+ override.returns(
156
+ T::Array[
157
+ ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
158
+ ]
159
+ )
160
+ end
161
+ def self.values
162
+ end
163
+ end
164
+ end
165
+
166
+ class UnionMember1 < ContextDev::Internal::Type::BaseModel
167
+ OrHash =
168
+ T.type_alias do
169
+ T.any(
170
+ ContextDev::CrawlControls::Source::UnionMember1,
171
+ ContextDev::Internal::AnyHash
172
+ )
173
+ end
174
+
175
+ # Domain whose sitemap supplied the pages.
176
+ sig { returns(String) }
177
+ attr_accessor :domain
178
+
179
+ sig do
180
+ returns(
181
+ ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
182
+ )
183
+ end
184
+ attr_accessor :type
185
+
186
+ sig do
187
+ params(
188
+ domain: String,
189
+ type:
190
+ ContextDev::CrawlControls::Source::UnionMember1::Type::OrSymbol
191
+ ).returns(T.attached_class)
192
+ end
193
+ def self.new(
194
+ # Domain whose sitemap supplied the pages.
195
+ domain:,
196
+ type:
197
+ )
198
+ end
199
+
200
+ sig do
201
+ override.returns(
202
+ {
203
+ domain: String,
204
+ type:
205
+ ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
206
+ }
207
+ )
208
+ end
209
+ def to_hash
210
+ end
211
+
212
+ module Type
213
+ extend ContextDev::Internal::Type::Enum
214
+
215
+ TaggedSymbol =
216
+ T.type_alias do
217
+ T.all(
218
+ Symbol,
219
+ ContextDev::CrawlControls::Source::UnionMember1::Type
220
+ )
221
+ end
222
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
223
+
224
+ SITEMAP =
225
+ T.let(
226
+ :sitemap,
227
+ ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
228
+ )
229
+
230
+ sig do
231
+ override.returns(
232
+ T::Array[
233
+ ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
234
+ ]
235
+ )
236
+ end
237
+ def self.values
238
+ end
239
+ end
240
+ end
241
+
242
+ sig do
243
+ override.returns(
244
+ T::Array[ContextDev::CrawlControls::Source::Variants]
245
+ )
246
+ end
247
+ def self.variants
248
+ end
249
+ end
250
+ end
251
+ end
252
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class Failure < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(ContextDev::Failure, ContextDev::Internal::AnyHash)
9
+ end
10
+
11
+ # Why the batch itself stopped.
12
+ sig { returns(String) }
13
+ attr_accessor :code
14
+
15
+ # Human-readable explanation.
16
+ sig { returns(String) }
17
+ attr_accessor :message
18
+
19
+ # A failure of the batch as a whole, distinct from the per-page failures in
20
+ # `page_errors`.
21
+ sig { params(code: String, message: String).returns(T.attached_class) }
22
+ def self.new(
23
+ # Why the batch itself stopped.
24
+ code:,
25
+ # Human-readable explanation.
26
+ message:
27
+ )
28
+ end
29
+
30
+ sig { override.returns({ code: String, message: String }) }
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,88 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class Intake < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(ContextDev::Intake, ContextDev::Internal::AnyHash)
9
+ end
10
+
11
+ # URLs dropped before reserving because another entry resolved to the same page.
12
+ # Non-zero for sitemap crawls too, whose sitemaps routinely list a page more than
13
+ # once.
14
+ sig { returns(Integer) }
15
+ attr_accessor :duplicates
16
+
17
+ # URLs from your list rejected as unusable; the same ones are itemised in
18
+ # `invalid_urls` at submission. Null for a crawl — a crawl that resolves no usable
19
+ # page is rejected outright with a 400 rather than accepted with an empty list.
20
+ sig { returns(T.nilable(Integer)) }
21
+ attr_accessor :invalid
22
+
23
+ # Pages credits were reserved for. Everything else — progress, the refund, the
24
+ # completion percentage — is measured against this.
25
+ sig { returns(Integer) }
26
+ attr_accessor :reserved
27
+
28
+ # Whether `reserved` is an upper bound the batch may finish under. True only for a
29
+ # crawl that follows links, whose reachable page count is unknowable until it
30
+ # runs. False for a scrape and for a sitemap crawl, where `reserved` is an exact
31
+ # page count.
32
+ sig { returns(T::Boolean) }
33
+ attr_accessor :reserved_is_ceiling
34
+
35
+ # URLs in the list you sent, before validation and de-duplication. Null for a
36
+ # crawl, which is given a source rather than a list.
37
+ sig { returns(T.nilable(Integer)) }
38
+ attr_accessor :submitted
39
+
40
+ # What submission took in, and what it charged for.
41
+ sig do
42
+ params(
43
+ duplicates: Integer,
44
+ invalid: T.nilable(Integer),
45
+ reserved: Integer,
46
+ reserved_is_ceiling: T::Boolean,
47
+ submitted: T.nilable(Integer)
48
+ ).returns(T.attached_class)
49
+ end
50
+ def self.new(
51
+ # URLs dropped before reserving because another entry resolved to the same page.
52
+ # Non-zero for sitemap crawls too, whose sitemaps routinely list a page more than
53
+ # once.
54
+ duplicates:,
55
+ # URLs from your list rejected as unusable; the same ones are itemised in
56
+ # `invalid_urls` at submission. Null for a crawl — a crawl that resolves no usable
57
+ # page is rejected outright with a 400 rather than accepted with an empty list.
58
+ invalid:,
59
+ # Pages credits were reserved for. Everything else — progress, the refund, the
60
+ # completion percentage — is measured against this.
61
+ reserved:,
62
+ # Whether `reserved` is an upper bound the batch may finish under. True only for a
63
+ # crawl that follows links, whose reachable page count is unknowable until it
64
+ # runs. False for a scrape and for a sitemap crawl, where `reserved` is an exact
65
+ # page count.
66
+ reserved_is_ceiling:,
67
+ # URLs in the list you sent, before validation and de-duplication. Null for a
68
+ # crawl, which is given a source rather than a list.
69
+ submitted:
70
+ )
71
+ end
72
+
73
+ sig do
74
+ override.returns(
75
+ {
76
+ duplicates: Integer,
77
+ invalid: T.nilable(Integer),
78
+ reserved: Integer,
79
+ reserved_is_ceiling: T::Boolean,
80
+ submitted: T.nilable(Integer)
81
+ }
82
+ )
83
+ end
84
+ def to_hash
85
+ end
86
+ end
87
+ end
88
+ end