context.dev 2.18.0 → 2.19.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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +0 -4
  5. data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
  6. data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
  7. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
  8. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
  9. data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
  10. data/lib/context_dev/models/web_map_urls_response.rb +123 -0
  11. data/lib/context_dev/models/web_scrape_params.rb +906 -0
  12. data/lib/context_dev/models/web_scrape_response.rb +659 -0
  13. data/lib/context_dev/models/web_screenshot_params.rb +15 -1
  14. data/lib/context_dev/models/web_screenshot_response.rb +3 -3
  15. data/lib/context_dev/models.rb +8 -22
  16. data/lib/context_dev/resources/brand.rb +0 -36
  17. data/lib/context_dev/resources/monitors.rb +47 -0
  18. data/lib/context_dev/resources/web.rb +106 -486
  19. data/lib/context_dev/version.rb +1 -1
  20. data/lib/context_dev.rb +8 -23
  21. data/rbi/context_dev/client.rbi +0 -3
  22. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
  23. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
  24. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
  25. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
  26. data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
  27. data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
  28. data/rbi/context_dev/models/web_scrape_params.rbi +2000 -0
  29. data/rbi/context_dev/models/{web_web_scrape_html_response.rbi → web_scrape_response.rbi} +539 -510
  30. data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
  31. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
  32. data/rbi/context_dev/models.rbi +9 -24
  33. data/rbi/context_dev/resources/brand.rbi +0 -35
  34. data/rbi/context_dev/resources/monitors.rbi +24 -0
  35. data/rbi/context_dev/resources/web.rbi +135 -654
  36. data/sig/context_dev/client.rbs +0 -2
  37. data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
  38. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
  39. data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
  40. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
  41. data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
  42. data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
  43. data/sig/context_dev/models/web_scrape_params.rbs +834 -0
  44. data/sig/context_dev/models/web_scrape_response.rbs +552 -0
  45. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  46. data/sig/context_dev/models.rbs +8 -22
  47. data/sig/context_dev/resources/brand.rbs +0 -9
  48. data/sig/context_dev/resources/monitors.rbs +11 -0
  49. data/sig/context_dev/resources/web.rbs +30 -128
  50. metadata +26 -71
  51. data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
  52. data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
  53. data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
  54. data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
  55. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
  56. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
  57. data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
  58. data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
  59. data/lib/context_dev/models/web_extract_params.rb +0 -419
  60. data/lib/context_dev/models/web_extract_response.rb +0 -287
  61. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
  62. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
  63. data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
  64. data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
  65. data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
  66. data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
  67. data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
  68. data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
  69. data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
  70. data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
  71. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
  72. data/lib/context_dev/resources/ai.rb +0 -71
  73. data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
  74. data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
  75. data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
  76. data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
  77. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
  78. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
  79. data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
  80. data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
  81. data/rbi/context_dev/models/web_extract_params.rbi +0 -781
  82. data/rbi/context_dev/models/web_extract_response.rbi +0 -512
  83. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
  84. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
  85. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
  86. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
  87. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
  88. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
  89. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
  90. data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
  91. data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
  92. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
  93. data/rbi/context_dev/resources/ai.rbi +0 -63
  94. data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
  95. data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
  96. data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
  97. data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
  98. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
  99. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
  100. data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
  101. data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
  102. data/sig/context_dev/models/web_extract_params.rbs +0 -324
  103. data/sig/context_dev/models/web_extract_response.rbs +0 -239
  104. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
  105. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
  106. data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
  107. data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
  108. data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
  109. data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
  110. data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
  111. data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
  112. data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
  113. data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
  114. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
  115. data/sig/context_dev/resources/ai.rbs +0 -21
@@ -1,781 +0,0 @@
1
- # typed: strong
2
-
3
- module ContextDev
4
- module Models
5
- class WebExtractParams < ContextDev::Internal::Type::BaseModel
6
- extend ContextDev::Internal::Type::RequestParameters::Converter
7
- include ContextDev::Internal::Type::RequestParameters
8
-
9
- OrHash =
10
- T.type_alias do
11
- T.any(ContextDev::WebExtractParams, ContextDev::Internal::AnyHash)
12
- end
13
-
14
- # JSON Schema for the returned data object. Image fields such as `image_urls` or
15
- # `product_photos` automatically make page image references available to
16
- # extraction, so product data and photos can be returned in one call. TypeScript
17
- # Zod users can pass a JSON Schema generated from a Zod object; Python users can
18
- # pass the equivalent JSON Schema object.
19
- sig { returns(T::Hash[Symbol, T.anything]) }
20
- attr_accessor :schema
21
-
22
- # The starting website URL to crawl and extract from. Must include http:// or
23
- # https://.
24
- sig { returns(String) }
25
- attr_accessor :url
26
-
27
- # Optional browser actions executed in order on the requested page after it loads,
28
- # before links are discovered or additional pages are crawled. Requires a paid
29
- # plan. When actions are provided and stopAfterMs is omitted, the crawl budget
30
- # defaults to 110000 ms.
31
- sig do
32
- returns(
33
- T.nilable(
34
- T::Array[
35
- T.any(
36
- ContextDev::WebExtractParams::Action::Wait,
37
- ContextDev::WebExtractParams::Action::Perform,
38
- ContextDev::WebExtractParams::Action::Scroll
39
- )
40
- ]
41
- )
42
- )
43
- end
44
- attr_reader :actions
45
-
46
- sig do
47
- params(
48
- actions:
49
- T::Array[
50
- T.any(
51
- ContextDev::WebExtractParams::Action::Wait::OrHash,
52
- ContextDev::WebExtractParams::Action::Perform::OrHash,
53
- ContextDev::WebExtractParams::Action::Scroll::OrHash
54
- )
55
- ]
56
- ).void
57
- end
58
- attr_writer :actions
59
-
60
- # When true, every returned value must be grounded in facts stated on the page;
61
- # fields that cannot be supported by the page are returned as null/empty. When
62
- # false (default), the model may make reasonable inferences and derivations from
63
- # the page content (e.g. ideal customer, competitor analysis, recommendations)
64
- # while keeping verifiable specifics (names, quotes, URLs, dates, metrics)
65
- # faithful to the source.
66
- sig { returns(T.nilable(T::Boolean)) }
67
- attr_reader :fact_check
68
-
69
- sig { params(fact_check: T::Boolean).void }
70
- attr_writer :fact_check
71
-
72
- # When true, follow links on subdomains of the starting URL's domain.
73
- sig { returns(T.nilable(T::Boolean)) }
74
- attr_reader :follow_subdomains
75
-
76
- sig { params(follow_subdomains: T::Boolean).void }
77
- attr_writer :follow_subdomains
78
-
79
- # When true, iframe contents are included in Markdown before extraction.
80
- sig { returns(T.nilable(T::Boolean)) }
81
- attr_reader :include_frames
82
-
83
- sig { params(include_frames: T::Boolean).void }
84
- attr_writer :include_frames
85
-
86
- # Optional extraction guidance, such as which facts to prioritize or how to
87
- # interpret fields in the schema.
88
- sig { returns(T.nilable(String)) }
89
- attr_reader :instructions
90
-
91
- sig { params(instructions: String).void }
92
- attr_writer :instructions
93
-
94
- # Return cached scrape results if a prior scrape for the same parameters is
95
- # younger than this many milliseconds. Defaults to 7 days (604800000 ms).
96
- sig { returns(T.nilable(Integer)) }
97
- attr_reader :max_age_ms
98
-
99
- sig { params(max_age_ms: Integer).void }
100
- attr_writer :max_age_ms
101
-
102
- # Optional maximum link depth from the starting URL (0 = only the starting page).
103
- # If omitted, there is no crawl depth limit.
104
- sig { returns(T.nilable(Integer)) }
105
- attr_reader :max_depth
106
-
107
- sig { params(max_depth: Integer).void }
108
- attr_writer :max_depth
109
-
110
- # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
111
- sig { returns(T.nilable(Integer)) }
112
- attr_reader :max_pages
113
-
114
- sig { params(max_pages: Integer).void }
115
- attr_writer :max_pages
116
-
117
- sig { returns(T.nilable(ContextDev::WebExtractParams::Pdf)) }
118
- attr_reader :pdf
119
-
120
- sig { params(pdf: ContextDev::WebExtractParams::Pdf::OrHash).void }
121
- attr_writer :pdf
122
-
123
- # When true, waits briefly for CSS and transition animations to settle before
124
- # extracting each crawled page. Defaults to false. This adds a bit of latency in
125
- # exchange for more stable output on animated pages.
126
- sig { returns(T.nilable(T::Boolean)) }
127
- attr_reader :settle_animations
128
-
129
- sig { params(settle_animations: T::Boolean).void }
130
- attr_writer :settle_animations
131
-
132
- # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
133
- # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
134
- # provided.
135
- sig { returns(T.nilable(Integer)) }
136
- attr_reader :stop_after_ms
137
-
138
- sig { params(stop_after_ms: Integer).void }
139
- attr_writer :stop_after_ms
140
-
141
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
142
- sig { returns(T.nilable(T::Array[String])) }
143
- attr_reader :tags
144
-
145
- sig { params(tags: T::Array[String]).void }
146
- attr_writer :tags
147
-
148
- # Optional request deadline and behavior on timeout. For GET requests, use
149
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
150
- # timeoutOpts object.
151
- sig { returns(T.nilable(ContextDev::WebExtractParams::TimeoutOpts)) }
152
- attr_reader :timeout_opts
153
-
154
- sig do
155
- params(
156
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash
157
- ).void
158
- end
159
- attr_writer :timeout_opts
160
-
161
- # Optional browser wait time in milliseconds after initial page load for each
162
- # crawled page.
163
- sig { returns(T.nilable(Integer)) }
164
- attr_reader :wait_for_ms
165
-
166
- sig { params(wait_for_ms: Integer).void }
167
- attr_writer :wait_for_ms
168
-
169
- # Set to enabled to bypass shared caches and omit request and response content
170
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
171
- # omitted. Requires zero data retention to be enabled for your organization
172
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
173
- # Successful ZDR responses include X-Context-ZDR: true.
174
- sig { returns(T.nilable(ContextDev::WebExtractParams::Zdr::OrSymbol)) }
175
- attr_reader :zdr
176
-
177
- sig { params(zdr: ContextDev::WebExtractParams::Zdr::OrSymbol).void }
178
- attr_writer :zdr
179
-
180
- sig do
181
- params(
182
- schema: T::Hash[Symbol, T.anything],
183
- url: String,
184
- actions:
185
- T::Array[
186
- T.any(
187
- ContextDev::WebExtractParams::Action::Wait::OrHash,
188
- ContextDev::WebExtractParams::Action::Perform::OrHash,
189
- ContextDev::WebExtractParams::Action::Scroll::OrHash
190
- )
191
- ],
192
- fact_check: T::Boolean,
193
- follow_subdomains: T::Boolean,
194
- include_frames: T::Boolean,
195
- instructions: String,
196
- max_age_ms: Integer,
197
- max_depth: Integer,
198
- max_pages: Integer,
199
- pdf: ContextDev::WebExtractParams::Pdf::OrHash,
200
- settle_animations: T::Boolean,
201
- stop_after_ms: Integer,
202
- tags: T::Array[String],
203
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash,
204
- wait_for_ms: Integer,
205
- zdr: ContextDev::WebExtractParams::Zdr::OrSymbol,
206
- request_options: ContextDev::RequestOptions::OrHash
207
- ).returns(T.attached_class)
208
- end
209
- def self.new(
210
- # JSON Schema for the returned data object. Image fields such as `image_urls` or
211
- # `product_photos` automatically make page image references available to
212
- # extraction, so product data and photos can be returned in one call. TypeScript
213
- # Zod users can pass a JSON Schema generated from a Zod object; Python users can
214
- # pass the equivalent JSON Schema object.
215
- schema:,
216
- # The starting website URL to crawl and extract from. Must include http:// or
217
- # https://.
218
- url:,
219
- # Optional browser actions executed in order on the requested page after it loads,
220
- # before links are discovered or additional pages are crawled. Requires a paid
221
- # plan. When actions are provided and stopAfterMs is omitted, the crawl budget
222
- # defaults to 110000 ms.
223
- actions: nil,
224
- # When true, every returned value must be grounded in facts stated on the page;
225
- # fields that cannot be supported by the page are returned as null/empty. When
226
- # false (default), the model may make reasonable inferences and derivations from
227
- # the page content (e.g. ideal customer, competitor analysis, recommendations)
228
- # while keeping verifiable specifics (names, quotes, URLs, dates, metrics)
229
- # faithful to the source.
230
- fact_check: nil,
231
- # When true, follow links on subdomains of the starting URL's domain.
232
- follow_subdomains: nil,
233
- # When true, iframe contents are included in Markdown before extraction.
234
- include_frames: nil,
235
- # Optional extraction guidance, such as which facts to prioritize or how to
236
- # interpret fields in the schema.
237
- instructions: nil,
238
- # Return cached scrape results if a prior scrape for the same parameters is
239
- # younger than this many milliseconds. Defaults to 7 days (604800000 ms).
240
- max_age_ms: nil,
241
- # Optional maximum link depth from the starting URL (0 = only the starting page).
242
- # If omitted, there is no crawl depth limit.
243
- max_depth: nil,
244
- # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
245
- max_pages: nil,
246
- pdf: nil,
247
- # When true, waits briefly for CSS and transition animations to settle before
248
- # extracting each crawled page. Defaults to false. This adds a bit of latency in
249
- # exchange for more stable output on animated pages.
250
- settle_animations: nil,
251
- # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
252
- # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
253
- # provided.
254
- stop_after_ms: nil,
255
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
256
- tags: nil,
257
- # Optional request deadline and behavior on timeout. For GET requests, use
258
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
259
- # timeoutOpts object.
260
- timeout_opts: nil,
261
- # Optional browser wait time in milliseconds after initial page load for each
262
- # crawled page.
263
- wait_for_ms: nil,
264
- # Set to enabled to bypass shared caches and omit request and response content
265
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
266
- # omitted. Requires zero data retention to be enabled for your organization
267
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
268
- # Successful ZDR responses include X-Context-ZDR: true.
269
- zdr: nil,
270
- request_options: {}
271
- )
272
- end
273
-
274
- sig do
275
- override.returns(
276
- {
277
- schema: T::Hash[Symbol, T.anything],
278
- url: String,
279
- actions:
280
- T::Array[
281
- T.any(
282
- ContextDev::WebExtractParams::Action::Wait,
283
- ContextDev::WebExtractParams::Action::Perform,
284
- ContextDev::WebExtractParams::Action::Scroll
285
- )
286
- ],
287
- fact_check: T::Boolean,
288
- follow_subdomains: T::Boolean,
289
- include_frames: T::Boolean,
290
- instructions: String,
291
- max_age_ms: Integer,
292
- max_depth: Integer,
293
- max_pages: Integer,
294
- pdf: ContextDev::WebExtractParams::Pdf,
295
- settle_animations: T::Boolean,
296
- stop_after_ms: Integer,
297
- tags: T::Array[String],
298
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts,
299
- wait_for_ms: Integer,
300
- zdr: ContextDev::WebExtractParams::Zdr::OrSymbol,
301
- request_options: ContextDev::RequestOptions
302
- }
303
- )
304
- end
305
- def to_hash
306
- end
307
-
308
- # Browser action discriminated by `do`. Each variant exposes only its applicable
309
- # fields.
310
- module Action
311
- extend ContextDev::Internal::Type::Union
312
-
313
- Variants =
314
- T.type_alias do
315
- T.any(
316
- ContextDev::WebExtractParams::Action::Wait,
317
- ContextDev::WebExtractParams::Action::Perform,
318
- ContextDev::WebExtractParams::Action::Scroll
319
- )
320
- end
321
-
322
- class Wait < ContextDev::Internal::Type::BaseModel
323
- OrHash =
324
- T.type_alias do
325
- T.any(
326
- ContextDev::WebExtractParams::Action::Wait,
327
- ContextDev::Internal::AnyHash
328
- )
329
- end
330
-
331
- sig { returns(Symbol) }
332
- attr_accessor :do_
333
-
334
- sig { returns(Integer) }
335
- attr_accessor :time_ms
336
-
337
- # Pause for a fixed number of milliseconds before continuing to the next action.
338
- sig do
339
- params(time_ms: Integer, do_: Symbol).returns(T.attached_class)
340
- end
341
- def self.new(time_ms:, do_: :wait)
342
- end
343
-
344
- sig { override.returns({ do_: Symbol, time_ms: Integer }) }
345
- def to_hash
346
- end
347
- end
348
-
349
- class Perform < ContextDev::Internal::Type::BaseModel
350
- OrHash =
351
- T.type_alias do
352
- T.any(
353
- ContextDev::WebExtractParams::Action::Perform,
354
- ContextDev::Internal::AnyHash
355
- )
356
- end
357
-
358
- sig { returns(String) }
359
- attr_accessor :action
360
-
361
- sig { returns(Symbol) }
362
- attr_accessor :do_
363
-
364
- # Resolve and perform one natural-language browser action.
365
- sig { params(action: String, do_: Symbol).returns(T.attached_class) }
366
- def self.new(action:, do_: :perform)
367
- end
368
-
369
- sig { override.returns({ action: String, do_: Symbol }) }
370
- def to_hash
371
- end
372
- end
373
-
374
- class Scroll < ContextDev::Internal::Type::BaseModel
375
- OrHash =
376
- T.type_alias do
377
- T.any(
378
- ContextDev::WebExtractParams::Action::Scroll,
379
- ContextDev::Internal::AnyHash
380
- )
381
- end
382
-
383
- sig { returns(Symbol) }
384
- attr_accessor :do_
385
-
386
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
387
- # Defaults to viewport.
388
- sig do
389
- returns(
390
- T.nilable(
391
- T.any(
392
- Integer,
393
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
394
- )
395
- )
396
- )
397
- end
398
- attr_reader :amount
399
-
400
- sig do
401
- params(
402
- amount:
403
- T.any(
404
- Integer,
405
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
406
- )
407
- ).void
408
- end
409
- attr_writer :amount
410
-
411
- # CSS selector for the first matching scroll container. Defaults to the page.
412
- sig { returns(T.nilable(String)) }
413
- attr_reader :container
414
-
415
- sig { params(container: String).void }
416
- attr_writer :container
417
-
418
- # Direction to scroll. Defaults to down.
419
- sig do
420
- returns(
421
- T.nilable(
422
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
423
- )
424
- )
425
- end
426
- attr_reader :direction
427
-
428
- sig do
429
- params(
430
- direction:
431
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
432
- ).void
433
- end
434
- attr_writer :direction
435
-
436
- # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
437
- # changing. Defaults to 1.
438
- sig { returns(T.nilable(Integer)) }
439
- attr_reader :max_scrolls
440
-
441
- sig { params(max_scrolls: Integer).void }
442
- attr_writer :max_scrolls
443
-
444
- # Scroll the page or a selected scrollable container, waiting adaptively for
445
- # content and dimensions to settle after each iteration.
446
- sig do
447
- params(
448
- amount:
449
- T.any(
450
- Integer,
451
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
452
- ),
453
- container: String,
454
- direction:
455
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
456
- max_scrolls: Integer,
457
- do_: Symbol
458
- ).returns(T.attached_class)
459
- end
460
- def self.new(
461
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
462
- # Defaults to viewport.
463
- amount: nil,
464
- # CSS selector for the first matching scroll container. Defaults to the page.
465
- container: nil,
466
- # Direction to scroll. Defaults to down.
467
- direction: nil,
468
- # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
469
- # changing. Defaults to 1.
470
- max_scrolls: nil,
471
- do_: :scroll
472
- )
473
- end
474
-
475
- sig do
476
- override.returns(
477
- {
478
- do_: Symbol,
479
- amount:
480
- T.any(
481
- Integer,
482
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
483
- ),
484
- container: String,
485
- direction:
486
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
487
- max_scrolls: Integer
488
- }
489
- )
490
- end
491
- def to_hash
492
- end
493
-
494
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
495
- # Defaults to viewport.
496
- module Amount
497
- extend ContextDev::Internal::Type::Union
498
-
499
- Variants =
500
- T.type_alias do
501
- T.any(
502
- Integer,
503
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
504
- )
505
- end
506
-
507
- sig do
508
- override.returns(
509
- T::Array[
510
- ContextDev::WebExtractParams::Action::Scroll::Amount::Variants
511
- ]
512
- )
513
- end
514
- def self.variants
515
- end
516
-
517
- TaggedSymbol =
518
- T.type_alias do
519
- T.all(
520
- Symbol,
521
- ContextDev::WebExtractParams::Action::Scroll::Amount
522
- )
523
- end
524
- OrSymbol = T.type_alias { T.any(Symbol, String) }
525
-
526
- VIEWPORT =
527
- T.let(
528
- :viewport,
529
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
530
- )
531
- MAX =
532
- T.let(
533
- :max,
534
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
535
- )
536
- end
537
-
538
- # Direction to scroll. Defaults to down.
539
- module Direction
540
- extend ContextDev::Internal::Type::Enum
541
-
542
- TaggedSymbol =
543
- T.type_alias do
544
- T.all(
545
- Symbol,
546
- ContextDev::WebExtractParams::Action::Scroll::Direction
547
- )
548
- end
549
- OrSymbol = T.type_alias { T.any(Symbol, String) }
550
-
551
- UP =
552
- T.let(
553
- :up,
554
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
555
- )
556
- DOWN =
557
- T.let(
558
- :down,
559
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
560
- )
561
- LEFT =
562
- T.let(
563
- :left,
564
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
565
- )
566
- RIGHT =
567
- T.let(
568
- :right,
569
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
570
- )
571
-
572
- sig do
573
- override.returns(
574
- T::Array[
575
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
576
- ]
577
- )
578
- end
579
- def self.values
580
- end
581
- end
582
- end
583
-
584
- sig do
585
- override.returns(
586
- T::Array[ContextDev::WebExtractParams::Action::Variants]
587
- )
588
- end
589
- def self.variants
590
- end
591
- end
592
-
593
- class Pdf < ContextDev::Internal::Type::BaseModel
594
- OrHash =
595
- T.type_alias do
596
- T.any(
597
- ContextDev::WebExtractParams::Pdf,
598
- ContextDev::Internal::AnyHash
599
- )
600
- end
601
-
602
- # Last 1-based PDF page to parse. Must be greater than or equal to start when both
603
- # are provided.
604
- sig { returns(T.nilable(Integer)) }
605
- attr_reader :end_
606
-
607
- sig { params(end_: Integer).void }
608
- attr_writer :end_
609
-
610
- # When true, PDF pages are fetched and parsed. When false, PDF pages are skipped.
611
- sig { returns(T.nilable(T::Boolean)) }
612
- attr_reader :should_parse
613
-
614
- sig { params(should_parse: T::Boolean).void }
615
- attr_writer :should_parse
616
-
617
- # First 1-based PDF page to parse.
618
- sig { returns(T.nilable(Integer)) }
619
- attr_reader :start
620
-
621
- sig { params(start: Integer).void }
622
- attr_writer :start
623
-
624
- sig do
625
- params(
626
- end_: Integer,
627
- should_parse: T::Boolean,
628
- start: Integer
629
- ).returns(T.attached_class)
630
- end
631
- def self.new(
632
- # Last 1-based PDF page to parse. Must be greater than or equal to start when both
633
- # are provided.
634
- end_: nil,
635
- # When true, PDF pages are fetched and parsed. When false, PDF pages are skipped.
636
- should_parse: nil,
637
- # First 1-based PDF page to parse.
638
- start: nil
639
- )
640
- end
641
-
642
- sig do
643
- override.returns(
644
- { end_: Integer, should_parse: T::Boolean, start: Integer }
645
- )
646
- end
647
- def to_hash
648
- end
649
- end
650
-
651
- class TimeoutOpts < ContextDev::Internal::Type::BaseModel
652
- OrHash =
653
- T.type_alias do
654
- T.any(
655
- ContextDev::WebExtractParams::TimeoutOpts,
656
- ContextDev::Internal::AnyHash
657
- )
658
- end
659
-
660
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
661
- sig { returns(Integer) }
662
- attr_accessor :milliseconds
663
-
664
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
665
- # credits. "return-partial" returns usable results collected so far; if none are
666
- # available, the request still fails without charging credits. Partial results are
667
- # not cached as complete results.
668
- sig do
669
- returns(
670
- T.nilable(
671
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
672
- )
673
- )
674
- end
675
- attr_reader :behavior
676
-
677
- sig do
678
- params(
679
- behavior:
680
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
681
- ).void
682
- end
683
- attr_writer :behavior
684
-
685
- # Optional request deadline and behavior on timeout. For GET requests, use
686
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
687
- # timeoutOpts object.
688
- sig do
689
- params(
690
- milliseconds: Integer,
691
- behavior:
692
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
693
- ).returns(T.attached_class)
694
- end
695
- def self.new(
696
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
697
- milliseconds:,
698
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
699
- # credits. "return-partial" returns usable results collected so far; if none are
700
- # available, the request still fails without charging credits. Partial results are
701
- # not cached as complete results.
702
- behavior: nil
703
- )
704
- end
705
-
706
- sig do
707
- override.returns(
708
- {
709
- milliseconds: Integer,
710
- behavior:
711
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
712
- }
713
- )
714
- end
715
- def to_hash
716
- end
717
-
718
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
719
- # credits. "return-partial" returns usable results collected so far; if none are
720
- # available, the request still fails without charging credits. Partial results are
721
- # not cached as complete results.
722
- module Behavior
723
- extend ContextDev::Internal::Type::Enum
724
-
725
- TaggedSymbol =
726
- T.type_alias do
727
- T.all(Symbol, ContextDev::WebExtractParams::TimeoutOpts::Behavior)
728
- end
729
- OrSymbol = T.type_alias { T.any(Symbol, String) }
730
-
731
- FAIL =
732
- T.let(
733
- :fail,
734
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
735
- )
736
- RETURN_PARTIAL =
737
- T.let(
738
- :"return-partial",
739
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
740
- )
741
-
742
- sig do
743
- override.returns(
744
- T::Array[
745
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
746
- ]
747
- )
748
- end
749
- def self.values
750
- end
751
- end
752
- end
753
-
754
- # Set to enabled to bypass shared caches and omit request and response content
755
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
756
- # omitted. Requires zero data retention to be enabled for your organization
757
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
758
- # Successful ZDR responses include X-Context-ZDR: true.
759
- module Zdr
760
- extend ContextDev::Internal::Type::Enum
761
-
762
- TaggedSymbol =
763
- T.type_alias { T.all(Symbol, ContextDev::WebExtractParams::Zdr) }
764
- OrSymbol = T.type_alias { T.any(Symbol, String) }
765
-
766
- ENABLED =
767
- T.let(:enabled, ContextDev::WebExtractParams::Zdr::TaggedSymbol)
768
- DISABLED =
769
- T.let(:disabled, ContextDev::WebExtractParams::Zdr::TaggedSymbol)
770
-
771
- sig do
772
- override.returns(
773
- T::Array[ContextDev::WebExtractParams::Zdr::TaggedSymbol]
774
- )
775
- end
776
- def self.values
777
- end
778
- end
779
- end
780
- end
781
- end