context.dev 2.10.0 → 2.12.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_response.rb +48 -1
  5. data/lib/context_dev/models/ai_extract_products_response.rb +48 -1
  6. data/lib/context_dev/models/brand_retrieve_response.rb +29 -1
  7. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +30 -1
  8. data/lib/context_dev/models/news_search_params.rb +1 -0
  9. data/lib/context_dev/models/news_search_response.rb +68 -22
  10. data/lib/context_dev/models/web_extract_params.rb +169 -6
  11. data/lib/context_dev/models/web_extract_response.rb +85 -1
  12. data/lib/context_dev/models/web_screenshot_params.rb +13 -1
  13. data/lib/context_dev/models/web_web_crawl_md_params.rb +7 -5
  14. data/lib/context_dev/models/web_web_scrape_html_params.rb +99 -3
  15. data/lib/context_dev/models/web_web_scrape_images_params.rb +99 -3
  16. data/lib/context_dev/models/web_web_scrape_images_response.rb +85 -1
  17. data/lib/context_dev/models/web_web_scrape_md_params.rb +99 -3
  18. data/lib/context_dev/resources/web.rb +13 -8
  19. data/lib/context_dev/version.rb +1 -1
  20. data/rbi/context_dev/models/ai_extract_product_response.rbi +99 -0
  21. data/rbi/context_dev/models/ai_extract_products_response.rbi +99 -0
  22. data/rbi/context_dev/models/brand_retrieve_response.rbi +80 -3
  23. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +80 -3
  24. data/rbi/context_dev/models/news_search_params.rbi +5 -0
  25. data/rbi/context_dev/models/news_search_response.rbi +70 -4
  26. data/rbi/context_dev/models/web_extract_params.rbi +353 -8
  27. data/rbi/context_dev/models/web_extract_response.rbi +172 -3
  28. data/rbi/context_dev/models/web_screenshot_params.rbi +19 -0
  29. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +10 -6
  30. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +218 -4
  31. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +218 -4
  32. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +169 -0
  33. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +218 -4
  34. data/rbi/context_dev/resources/web.rbi +38 -10
  35. data/sig/context_dev/models/ai_extract_product_response.rbs +40 -0
  36. data/sig/context_dev/models/ai_extract_products_response.rbs +40 -0
  37. data/sig/context_dev/models/brand_retrieve_response.rbs +33 -3
  38. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +33 -3
  39. data/sig/context_dev/models/news_search_params.rbs +2 -0
  40. data/sig/context_dev/models/web_extract_params.rbs +117 -0
  41. data/sig/context_dev/models/web_extract_response.rbs +81 -3
  42. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  43. data/sig/context_dev/models/web_web_scrape_html_params.rbs +74 -0
  44. data/sig/context_dev/models/web_web_scrape_images_params.rbs +74 -0
  45. data/sig/context_dev/models/web_web_scrape_images_response.rbs +78 -0
  46. data/sig/context_dev/models/web_web_scrape_md_params.rbs +74 -0
  47. data/sig/context_dev/resources/web.rbs +2 -0
  48. metadata +2 -2
@@ -11,9 +11,11 @@ module ContextDev
11
11
  T.any(ContextDev::WebExtractParams, ContextDev::Internal::AnyHash)
12
12
  end
13
13
 
14
- # JSON Schema for the returned data object. TypeScript Zod users can pass a JSON
15
- # Schema generated from a Zod object; Python users can pass the equivalent JSON
16
- # Schema object.
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.
17
19
  sig { returns(T::Hash[Symbol, T.anything]) }
18
20
  attr_accessor :schema
19
21
 
@@ -22,6 +24,39 @@ module ContextDev
22
24
  sig { returns(String) }
23
25
  attr_accessor :url
24
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
+
25
60
  # When true, every returned value must be grounded in facts stated on the page;
26
61
  # fields that cannot be supported by the page are returned as null/empty. When
27
62
  # false (default), the model may make reasonable inferences and derivations from
@@ -95,7 +130,8 @@ module ContextDev
95
130
  attr_writer :settle_animations
96
131
 
97
132
  # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
98
- # (110s). Default: 80000 (80s).
133
+ # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
134
+ # provided.
99
135
  sig { returns(T.nilable(Integer)) }
100
136
  attr_reader :stop_after_ms
101
137
 
@@ -130,6 +166,14 @@ module ContextDev
130
166
  params(
131
167
  schema: T::Hash[Symbol, T.anything],
132
168
  url: String,
169
+ actions:
170
+ T::Array[
171
+ T.any(
172
+ ContextDev::WebExtractParams::Action::Wait::OrHash,
173
+ ContextDev::WebExtractParams::Action::Perform::OrHash,
174
+ ContextDev::WebExtractParams::Action::Scroll::OrHash
175
+ )
176
+ ],
133
177
  fact_check: T::Boolean,
134
178
  follow_subdomains: T::Boolean,
135
179
  include_frames: T::Boolean,
@@ -147,13 +191,20 @@ module ContextDev
147
191
  ).returns(T.attached_class)
148
192
  end
149
193
  def self.new(
150
- # JSON Schema for the returned data object. TypeScript Zod users can pass a JSON
151
- # Schema generated from a Zod object; Python users can pass the equivalent JSON
152
- # Schema object.
194
+ # JSON Schema for the returned data object. Image fields such as `image_urls` or
195
+ # `product_photos` automatically make page image references available to
196
+ # extraction, so product data and photos can be returned in one call. TypeScript
197
+ # Zod users can pass a JSON Schema generated from a Zod object; Python users can
198
+ # pass the equivalent JSON Schema object.
153
199
  schema:,
154
200
  # The starting website URL to crawl and extract from. Must include http:// or
155
201
  # https://.
156
202
  url:,
203
+ # Optional browser actions executed in order on the requested page after it loads,
204
+ # before links are discovered or additional pages are crawled. Requires a paid
205
+ # plan. When actions are provided and stopAfterMs is omitted, the crawl budget
206
+ # defaults to 110000 ms.
207
+ actions: nil,
157
208
  # When true, every returned value must be grounded in facts stated on the page;
158
209
  # fields that cannot be supported by the page are returned as null/empty. When
159
210
  # false (default), the model may make reasonable inferences and derivations from
@@ -182,7 +233,8 @@ module ContextDev
182
233
  # exchange for more stable output on animated pages.
183
234
  settle_animations: nil,
184
235
  # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
185
- # (110s). Default: 80000 (80s).
236
+ # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
237
+ # provided.
186
238
  stop_after_ms: nil,
187
239
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
188
240
  tags: nil,
@@ -202,6 +254,14 @@ module ContextDev
202
254
  {
203
255
  schema: T::Hash[Symbol, T.anything],
204
256
  url: String,
257
+ actions:
258
+ T::Array[
259
+ T.any(
260
+ ContextDev::WebExtractParams::Action::Wait,
261
+ ContextDev::WebExtractParams::Action::Perform,
262
+ ContextDev::WebExtractParams::Action::Scroll
263
+ )
264
+ ],
205
265
  fact_check: T::Boolean,
206
266
  follow_subdomains: T::Boolean,
207
267
  include_frames: T::Boolean,
@@ -222,6 +282,291 @@ module ContextDev
222
282
  def to_hash
223
283
  end
224
284
 
285
+ # Browser action discriminated by `do`. Each variant exposes only its applicable
286
+ # fields.
287
+ module Action
288
+ extend ContextDev::Internal::Type::Union
289
+
290
+ Variants =
291
+ T.type_alias do
292
+ T.any(
293
+ ContextDev::WebExtractParams::Action::Wait,
294
+ ContextDev::WebExtractParams::Action::Perform,
295
+ ContextDev::WebExtractParams::Action::Scroll
296
+ )
297
+ end
298
+
299
+ class Wait < ContextDev::Internal::Type::BaseModel
300
+ OrHash =
301
+ T.type_alias do
302
+ T.any(
303
+ ContextDev::WebExtractParams::Action::Wait,
304
+ ContextDev::Internal::AnyHash
305
+ )
306
+ end
307
+
308
+ sig { returns(Symbol) }
309
+ attr_accessor :do_
310
+
311
+ sig { returns(Integer) }
312
+ attr_accessor :time_ms
313
+
314
+ # Pause for a fixed number of milliseconds before continuing to the next action.
315
+ sig do
316
+ params(time_ms: Integer, do_: Symbol).returns(T.attached_class)
317
+ end
318
+ def self.new(time_ms:, do_: :wait)
319
+ end
320
+
321
+ sig { override.returns({ do_: Symbol, time_ms: Integer }) }
322
+ def to_hash
323
+ end
324
+ end
325
+
326
+ class Perform < ContextDev::Internal::Type::BaseModel
327
+ OrHash =
328
+ T.type_alias do
329
+ T.any(
330
+ ContextDev::WebExtractParams::Action::Perform,
331
+ ContextDev::Internal::AnyHash
332
+ )
333
+ end
334
+
335
+ sig { returns(String) }
336
+ attr_accessor :action
337
+
338
+ sig { returns(Symbol) }
339
+ attr_accessor :do_
340
+
341
+ # Resolve and perform one natural-language browser action.
342
+ sig { params(action: String, do_: Symbol).returns(T.attached_class) }
343
+ def self.new(action:, do_: :perform)
344
+ end
345
+
346
+ sig { override.returns({ action: String, do_: Symbol }) }
347
+ def to_hash
348
+ end
349
+ end
350
+
351
+ class Scroll < ContextDev::Internal::Type::BaseModel
352
+ OrHash =
353
+ T.type_alias do
354
+ T.any(
355
+ ContextDev::WebExtractParams::Action::Scroll,
356
+ ContextDev::Internal::AnyHash
357
+ )
358
+ end
359
+
360
+ sig { returns(Symbol) }
361
+ attr_accessor :do_
362
+
363
+ # Pixels per scroll, one visible viewport, or the current scroll boundary.
364
+ # Defaults to viewport.
365
+ sig do
366
+ returns(
367
+ T.nilable(
368
+ T.any(
369
+ Integer,
370
+ ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
371
+ )
372
+ )
373
+ )
374
+ end
375
+ attr_reader :amount
376
+
377
+ sig do
378
+ params(
379
+ amount:
380
+ T.any(
381
+ Integer,
382
+ ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
383
+ )
384
+ ).void
385
+ end
386
+ attr_writer :amount
387
+
388
+ # CSS selector for the first matching scroll container. Defaults to the page.
389
+ sig { returns(T.nilable(String)) }
390
+ attr_reader :container
391
+
392
+ sig { params(container: String).void }
393
+ attr_writer :container
394
+
395
+ # Direction to scroll. Defaults to down.
396
+ sig do
397
+ returns(
398
+ T.nilable(
399
+ ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
400
+ )
401
+ )
402
+ end
403
+ attr_reader :direction
404
+
405
+ sig do
406
+ params(
407
+ direction:
408
+ ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
409
+ ).void
410
+ end
411
+ attr_writer :direction
412
+
413
+ # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
414
+ # changing. Defaults to 1.
415
+ sig { returns(T.nilable(Integer)) }
416
+ attr_reader :max_scrolls
417
+
418
+ sig { params(max_scrolls: Integer).void }
419
+ attr_writer :max_scrolls
420
+
421
+ # Scroll the page or a selected scrollable container, waiting adaptively for
422
+ # content and dimensions to settle after each iteration.
423
+ sig do
424
+ params(
425
+ amount:
426
+ T.any(
427
+ Integer,
428
+ ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
429
+ ),
430
+ container: String,
431
+ direction:
432
+ ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
433
+ max_scrolls: Integer,
434
+ do_: Symbol
435
+ ).returns(T.attached_class)
436
+ end
437
+ def self.new(
438
+ # Pixels per scroll, one visible viewport, or the current scroll boundary.
439
+ # Defaults to viewport.
440
+ amount: nil,
441
+ # CSS selector for the first matching scroll container. Defaults to the page.
442
+ container: nil,
443
+ # Direction to scroll. Defaults to down.
444
+ direction: nil,
445
+ # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
446
+ # changing. Defaults to 1.
447
+ max_scrolls: nil,
448
+ do_: :scroll
449
+ )
450
+ end
451
+
452
+ sig do
453
+ override.returns(
454
+ {
455
+ do_: Symbol,
456
+ amount:
457
+ T.any(
458
+ Integer,
459
+ ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
460
+ ),
461
+ container: String,
462
+ direction:
463
+ ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
464
+ max_scrolls: Integer
465
+ }
466
+ )
467
+ end
468
+ def to_hash
469
+ end
470
+
471
+ # Pixels per scroll, one visible viewport, or the current scroll boundary.
472
+ # Defaults to viewport.
473
+ module Amount
474
+ extend ContextDev::Internal::Type::Union
475
+
476
+ Variants =
477
+ T.type_alias do
478
+ T.any(
479
+ Integer,
480
+ ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
481
+ )
482
+ end
483
+
484
+ sig do
485
+ override.returns(
486
+ T::Array[
487
+ ContextDev::WebExtractParams::Action::Scroll::Amount::Variants
488
+ ]
489
+ )
490
+ end
491
+ def self.variants
492
+ end
493
+
494
+ TaggedSymbol =
495
+ T.type_alias do
496
+ T.all(
497
+ Symbol,
498
+ ContextDev::WebExtractParams::Action::Scroll::Amount
499
+ )
500
+ end
501
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
502
+
503
+ VIEWPORT =
504
+ T.let(
505
+ :viewport,
506
+ ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
507
+ )
508
+ MAX =
509
+ T.let(
510
+ :max,
511
+ ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
512
+ )
513
+ end
514
+
515
+ # Direction to scroll. Defaults to down.
516
+ module Direction
517
+ extend ContextDev::Internal::Type::Enum
518
+
519
+ TaggedSymbol =
520
+ T.type_alias do
521
+ T.all(
522
+ Symbol,
523
+ ContextDev::WebExtractParams::Action::Scroll::Direction
524
+ )
525
+ end
526
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
527
+
528
+ UP =
529
+ T.let(
530
+ :up,
531
+ ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
532
+ )
533
+ DOWN =
534
+ T.let(
535
+ :down,
536
+ ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
537
+ )
538
+ LEFT =
539
+ T.let(
540
+ :left,
541
+ ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
542
+ )
543
+ RIGHT =
544
+ T.let(
545
+ :right,
546
+ ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
547
+ )
548
+
549
+ sig do
550
+ override.returns(
551
+ T::Array[
552
+ ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
553
+ ]
554
+ )
555
+ end
556
+ def self.values
557
+ end
558
+ end
559
+ end
560
+
561
+ sig do
562
+ override.returns(
563
+ T::Array[ContextDev::WebExtractParams::Action::Variants]
564
+ )
565
+ end
566
+ def self.variants
567
+ end
568
+ end
569
+
225
570
  class Pdf < ContextDev::Internal::Type::BaseModel
226
571
  OrHash =
227
572
  T.type_alias do
@@ -123,6 +123,28 @@ module ContextDev
123
123
  sig { returns(Integer) }
124
124
  attr_accessor :num_urls
125
125
 
126
+ # One verified outcome per requested browser action, in request order.
127
+ sig do
128
+ returns(
129
+ T.nilable(
130
+ T::Array[
131
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied
132
+ ]
133
+ )
134
+ )
135
+ end
136
+ attr_reader :actions_applied
137
+
138
+ sig do
139
+ params(
140
+ actions_applied:
141
+ T::Array[
142
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::OrHash
143
+ ]
144
+ ).void
145
+ end
146
+ attr_writer :actions_applied
147
+
126
148
  sig do
127
149
  params(
128
150
  max_crawl_depth: Integer,
@@ -130,7 +152,11 @@ module ContextDev
130
152
  num_failed: Integer,
131
153
  num_skipped: Integer,
132
154
  num_succeeded: Integer,
133
- num_urls: Integer
155
+ num_urls: Integer,
156
+ actions_applied:
157
+ T::Array[
158
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::OrHash
159
+ ]
134
160
  ).returns(T.attached_class)
135
161
  end
136
162
  def self.new(
@@ -141,7 +167,9 @@ module ContextDev
141
167
  num_failed:,
142
168
  num_skipped:,
143
169
  num_succeeded:,
144
- num_urls:
170
+ num_urls:,
171
+ # One verified outcome per requested browser action, in request order.
172
+ actions_applied: nil
145
173
  )
146
174
  end
147
175
 
@@ -153,12 +181,153 @@ module ContextDev
153
181
  num_failed: Integer,
154
182
  num_skipped: Integer,
155
183
  num_succeeded: Integer,
156
- num_urls: Integer
184
+ num_urls: Integer,
185
+ actions_applied:
186
+ T::Array[
187
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied
188
+ ]
157
189
  }
158
190
  )
159
191
  end
160
192
  def to_hash
161
193
  end
194
+
195
+ class ActionsApplied < ContextDev::Internal::Type::BaseModel
196
+ OrHash =
197
+ T.type_alias do
198
+ T.any(
199
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied,
200
+ ContextDev::Internal::AnyHash
201
+ )
202
+ end
203
+
204
+ sig { returns(String) }
205
+ attr_accessor :instruction
206
+
207
+ # Applied means the requested page state was visibly verified. Failed means it was
208
+ # not verified. Skipped means it was not attempted.
209
+ sig do
210
+ returns(
211
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol
212
+ )
213
+ end
214
+ attr_accessor :status
215
+
216
+ # Visible page evidence used to verify an applied action.
217
+ sig { returns(T.nilable(String)) }
218
+ attr_reader :completion_evidence
219
+
220
+ sig { params(completion_evidence: String).void }
221
+ attr_writer :completion_evidence
222
+
223
+ sig { returns(T.nilable(Float)) }
224
+ attr_reader :duration_ms
225
+
226
+ sig { params(duration_ms: Float).void }
227
+ attr_writer :duration_ms
228
+
229
+ sig { returns(T.nilable(String)) }
230
+ attr_reader :error
231
+
232
+ sig { params(error: String).void }
233
+ attr_writer :error
234
+
235
+ sig { returns(T.nilable(String)) }
236
+ attr_reader :method_
237
+
238
+ sig { params(method_: String).void }
239
+ attr_writer :method_
240
+
241
+ sig { returns(T.nilable(String)) }
242
+ attr_reader :target_description
243
+
244
+ sig { params(target_description: String).void }
245
+ attr_writer :target_description
246
+
247
+ sig do
248
+ params(
249
+ instruction: String,
250
+ status:
251
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::OrSymbol,
252
+ completion_evidence: String,
253
+ duration_ms: Float,
254
+ error: String,
255
+ method_: String,
256
+ target_description: String
257
+ ).returns(T.attached_class)
258
+ end
259
+ def self.new(
260
+ instruction:,
261
+ # Applied means the requested page state was visibly verified. Failed means it was
262
+ # not verified. Skipped means it was not attempted.
263
+ status:,
264
+ # Visible page evidence used to verify an applied action.
265
+ completion_evidence: nil,
266
+ duration_ms: nil,
267
+ error: nil,
268
+ method_: nil,
269
+ target_description: nil
270
+ )
271
+ end
272
+
273
+ sig do
274
+ override.returns(
275
+ {
276
+ instruction: String,
277
+ status:
278
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol,
279
+ completion_evidence: String,
280
+ duration_ms: Float,
281
+ error: String,
282
+ method_: String,
283
+ target_description: String
284
+ }
285
+ )
286
+ end
287
+ def to_hash
288
+ end
289
+
290
+ # Applied means the requested page state was visibly verified. Failed means it was
291
+ # not verified. Skipped means it was not attempted.
292
+ module Status
293
+ extend ContextDev::Internal::Type::Enum
294
+
295
+ TaggedSymbol =
296
+ T.type_alias do
297
+ T.all(
298
+ Symbol,
299
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status
300
+ )
301
+ end
302
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
303
+
304
+ APPLIED =
305
+ T.let(
306
+ :applied,
307
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol
308
+ )
309
+ FAILED =
310
+ T.let(
311
+ :failed,
312
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol
313
+ )
314
+ SKIPPED =
315
+ T.let(
316
+ :skipped,
317
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol
318
+ )
319
+
320
+ sig do
321
+ override.returns(
322
+ T::Array[
323
+ ContextDev::Models::WebExtractResponse::Metadata::ActionsApplied::Status::TaggedSymbol
324
+ ]
325
+ )
326
+ end
327
+ def self.values
328
+ end
329
+ end
330
+ end
162
331
  end
163
332
 
164
333
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
@@ -11,6 +11,17 @@ module ContextDev
11
11
  T.any(ContextDev::WebScreenshotParams, ContextDev::Internal::AnyHash)
12
12
  end
13
13
 
14
+ # Optional parameter for comprehensive popup cleanup. If 'true', the browser
15
+ # dismisses detected cookie/consent UI and clears other detected obstructive
16
+ # popups and overlays before capture. If 'false' or not provided, this parameter
17
+ # requests no cleanup; handleCookiePopup can still request cookie/consent handling
18
+ # independently.
19
+ sig { returns(T.nilable(T::Boolean)) }
20
+ attr_reader :clear_popups
21
+
22
+ sig { params(clear_popups: T::Boolean).void }
23
+ attr_writer :clear_popups
24
+
14
25
  # Optional parameter to choose the site's visual theme in the screenshot. Use
15
26
  # 'light' or 'dark' when the site offers both appearances.
16
27
  sig do
@@ -157,6 +168,7 @@ module ContextDev
157
168
 
158
169
  sig do
159
170
  params(
171
+ clear_popups: T::Boolean,
160
172
  color_scheme: ContextDev::WebScreenshotParams::ColorScheme::OrSymbol,
161
173
  country: ContextDev::WebScreenshotParams::Country::OrSymbol,
162
174
  direct_url: String,
@@ -176,6 +188,12 @@ module ContextDev
176
188
  ).returns(T.attached_class)
177
189
  end
178
190
  def self.new(
191
+ # Optional parameter for comprehensive popup cleanup. If 'true', the browser
192
+ # dismisses detected cookie/consent UI and clears other detected obstructive
193
+ # popups and overlays before capture. If 'false' or not provided, this parameter
194
+ # requests no cleanup; handleCookiePopup can still request cookie/consent handling
195
+ # independently.
196
+ clear_popups: nil,
179
197
  # Optional parameter to choose the site's visual theme in the screenshot. Use
180
198
  # 'light' or 'dark' when the site offers both appearances.
181
199
  color_scheme: nil,
@@ -241,6 +259,7 @@ module ContextDev
241
259
  sig do
242
260
  override.returns(
243
261
  {
262
+ clear_popups: T::Boolean,
244
263
  color_scheme:
245
264
  ContextDev::WebScreenshotParams::ColorScheme::OrSymbol,
246
265
  country: ContextDev::WebScreenshotParams::Country::OrSymbol,