context.dev 2.9.0 → 2.11.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 (80) 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 +5 -0
  5. data/lib/context_dev/models/batch_get_results_response.rb +33 -3
  6. data/lib/context_dev/models/batch_submit_params.rb +44 -316
  7. data/lib/context_dev/models/brand_retrieve_response.rb +29 -1
  8. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +30 -1
  9. data/lib/context_dev/models/brand_search_params.rb +41 -3
  10. data/lib/context_dev/models/news_search_params.rb +467 -0
  11. data/lib/context_dev/models/news_search_response.rb +284 -0
  12. data/lib/context_dev/models/parse_handle_params.rb +15 -144
  13. data/lib/context_dev/models/person_enrich_response.rb +61 -1
  14. data/lib/context_dev/models/utility_prefetch_params.rb +19 -16
  15. data/lib/context_dev/models/utility_prefetch_response.rb +4 -5
  16. data/lib/context_dev/models/web_screenshot_params.rb +16 -31
  17. data/lib/context_dev/models/web_web_crawl_md_response.rb +30 -1
  18. data/lib/context_dev/models/web_web_scrape_html_params.rb +15 -153
  19. data/lib/context_dev/models/web_web_scrape_html_response.rb +30 -1
  20. data/lib/context_dev/models/web_web_scrape_images_params.rb +12 -124
  21. data/lib/context_dev/models/web_web_scrape_md_params.rb +35 -238
  22. data/lib/context_dev/models/web_web_scrape_md_response.rb +41 -2
  23. data/lib/context_dev/models.rb +2 -0
  24. data/lib/context_dev/resources/brand.rb +10 -11
  25. data/lib/context_dev/resources/news.rb +51 -0
  26. data/lib/context_dev/resources/parse.rb +5 -5
  27. data/lib/context_dev/resources/utility.rb +7 -6
  28. data/lib/context_dev/resources/web.rb +30 -24
  29. data/lib/context_dev/version.rb +1 -1
  30. data/lib/context_dev.rb +3 -0
  31. data/rbi/context_dev/client.rbi +4 -0
  32. data/rbi/context_dev/models/batch_get_results_response.rbi +71 -2
  33. data/rbi/context_dev/models/batch_submit_params.rbi +58 -592
  34. data/rbi/context_dev/models/brand_retrieve_response.rbi +80 -3
  35. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +80 -3
  36. data/rbi/context_dev/models/brand_search_params.rbi +71 -2
  37. data/rbi/context_dev/models/news_search_params.rbi +1294 -0
  38. data/rbi/context_dev/models/news_search_response.rbi +489 -0
  39. data/rbi/context_dev/models/parse_handle_params.rbi +20 -316
  40. data/rbi/context_dev/models/person_enrich_response.rbi +87 -0
  41. data/rbi/context_dev/models/utility_prefetch_params.rbi +24 -16
  42. data/rbi/context_dev/models/utility_prefetch_response.rbi +8 -6
  43. data/rbi/context_dev/models/web_screenshot_params.rbi +23 -71
  44. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +67 -0
  45. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +20 -356
  46. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +65 -0
  47. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +16 -287
  48. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +47 -551
  49. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +80 -0
  50. data/rbi/context_dev/models.rbi +2 -0
  51. data/rbi/context_dev/resources/brand.rbi +14 -9
  52. data/rbi/context_dev/resources/news.rbi +46 -0
  53. data/rbi/context_dev/resources/parse.rbi +5 -21
  54. data/rbi/context_dev/resources/utility.rbi +8 -6
  55. data/rbi/context_dev/resources/web.rbi +34 -66
  56. data/sig/context_dev/client.rbs +2 -0
  57. data/sig/context_dev/models/batch_get_results_response.rbs +21 -0
  58. data/sig/context_dev/models/batch_submit_params.rbs +54 -144
  59. data/sig/context_dev/models/brand_retrieve_response.rbs +33 -3
  60. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +33 -3
  61. data/sig/context_dev/models/brand_search_params.rbs +38 -1
  62. data/sig/context_dev/models/news_search_params.rbs +532 -0
  63. data/sig/context_dev/models/news_search_response.rbs +206 -0
  64. data/sig/context_dev/models/parse_handle_params.rbs +25 -90
  65. data/sig/context_dev/models/person_enrich_response.rbs +31 -0
  66. data/sig/context_dev/models/utility_prefetch_params.rbs +2 -1
  67. data/sig/context_dev/models/utility_prefetch_response.rbs +2 -1
  68. data/sig/context_dev/models/web_screenshot_params.rbs +12 -18
  69. data/sig/context_dev/models/web_web_crawl_md_response.rbs +21 -0
  70. data/sig/context_dev/models/web_web_scrape_html_params.rbs +24 -94
  71. data/sig/context_dev/models/web_web_scrape_html_response.rbs +21 -0
  72. data/sig/context_dev/models/web_web_scrape_images_params.rbs +20 -72
  73. data/sig/context_dev/models/web_web_scrape_md_params.rbs +46 -148
  74. data/sig/context_dev/models/web_web_scrape_md_response.rbs +28 -0
  75. data/sig/context_dev/models.rbs +2 -0
  76. data/sig/context_dev/resources/brand.rbs +3 -0
  77. data/sig/context_dev/resources/news.rbs +17 -0
  78. data/sig/context_dev/resources/parse.rbs +5 -5
  79. data/sig/context_dev/resources/web.rbs +13 -11
  80. metadata +11 -2
@@ -49,8 +49,7 @@ module ContextDev
49
49
  sig { params(status: String).void }
50
50
  attr_writer :status
51
51
 
52
- # The type of prefetch that was queued, echoed from the request (currently always
53
- # 'brand')
52
+ # The type of prefetch that was queued, echoed from the request
54
53
  sig do
55
54
  returns(
56
55
  T.nilable(
@@ -87,8 +86,7 @@ module ContextDev
87
86
  message: nil,
88
87
  # Status of the response, e.g., 'ok'
89
88
  status: nil,
90
- # The type of prefetch that was queued, echoed from the request (currently always
91
- # 'brand')
89
+ # The type of prefetch that was queued, echoed from the request
92
90
  type: nil
93
91
  )
94
92
  end
@@ -150,8 +148,7 @@ module ContextDev
150
148
  end
151
149
  end
152
150
 
153
- # The type of prefetch that was queued, echoed from the request (currently always
154
- # 'brand')
151
+ # The type of prefetch that was queued, echoed from the request
155
152
  module Type
156
153
  extend ContextDev::Internal::Type::Enum
157
154
 
@@ -166,6 +163,11 @@ module ContextDev
166
163
  :brand,
167
164
  ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
168
165
  )
166
+ STYLEGUIDE =
167
+ T.let(
168
+ :styleguide,
169
+ ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
170
+ )
169
171
 
170
172
  sig do
171
173
  override.returns(
@@ -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
@@ -78,27 +89,10 @@ module ContextDev
78
89
  # Optional parameter to control cookie/consent popup handling. If 'true', we
79
90
  # dismiss cookie banner before capture. If 'false' or not provided, captures the
80
91
  # page without that step.
81
- sig do
82
- returns(
83
- T.nilable(
84
- T.any(
85
- T::Boolean,
86
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
87
- )
88
- )
89
- )
90
- end
92
+ sig { returns(T.nilable(T::Boolean)) }
91
93
  attr_reader :handle_cookie_popup
92
94
 
93
- sig do
94
- params(
95
- handle_cookie_popup:
96
- T.any(
97
- T::Boolean,
98
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
99
- )
100
- ).void
101
- end
95
+ sig { params(handle_cookie_popup: T::Boolean).void }
102
96
  attr_writer :handle_cookie_popup
103
97
 
104
98
  # Return a cached screenshot if a prior screenshot for the same parameters exists
@@ -174,17 +168,14 @@ module ContextDev
174
168
 
175
169
  sig do
176
170
  params(
171
+ clear_popups: T::Boolean,
177
172
  color_scheme: ContextDev::WebScreenshotParams::ColorScheme::OrSymbol,
178
173
  country: ContextDev::WebScreenshotParams::Country::OrSymbol,
179
174
  direct_url: String,
180
175
  domain: String,
181
176
  full_screenshot:
182
177
  ContextDev::WebScreenshotParams::FullScreenshot::OrSymbol,
183
- handle_cookie_popup:
184
- T.any(
185
- T::Boolean,
186
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
187
- ),
178
+ handle_cookie_popup: T::Boolean,
188
179
  max_age_ms: T.nilable(Integer),
189
180
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
190
181
  scroll_offset: T.nilable(Integer),
@@ -197,6 +188,12 @@ module ContextDev
197
188
  ).returns(T.attached_class)
198
189
  end
199
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,
200
197
  # Optional parameter to choose the site's visual theme in the screenshot. Use
201
198
  # 'light' or 'dark' when the site offers both appearances.
202
199
  color_scheme: nil,
@@ -262,6 +259,7 @@ module ContextDev
262
259
  sig do
263
260
  override.returns(
264
261
  {
262
+ clear_popups: T::Boolean,
265
263
  color_scheme:
266
264
  ContextDev::WebScreenshotParams::ColorScheme::OrSymbol,
267
265
  country: ContextDev::WebScreenshotParams::Country::OrSymbol,
@@ -269,11 +267,7 @@ module ContextDev
269
267
  domain: String,
270
268
  full_screenshot:
271
269
  ContextDev::WebScreenshotParams::FullScreenshot::OrSymbol,
272
- handle_cookie_popup:
273
- T.any(
274
- T::Boolean,
275
- ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol
276
- ),
270
+ handle_cookie_popup: T::Boolean,
277
271
  max_age_ms: T.nilable(Integer),
278
272
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
279
273
  scroll_offset: T.nilable(Integer),
@@ -579,48 +573,6 @@ module ContextDev
579
573
  end
580
574
  end
581
575
 
582
- # Optional parameter to control cookie/consent popup handling. If 'true', we
583
- # dismiss cookie banner before capture. If 'false' or not provided, captures the
584
- # page without that step.
585
- module HandleCookiePopup
586
- extend ContextDev::Internal::Type::Union
587
-
588
- Variants =
589
- T.type_alias do
590
- T.any(
591
- T::Boolean,
592
- ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
593
- )
594
- end
595
-
596
- sig do
597
- override.returns(
598
- T::Array[
599
- ContextDev::WebScreenshotParams::HandleCookiePopup::Variants
600
- ]
601
- )
602
- end
603
- def self.variants
604
- end
605
-
606
- TaggedSymbol =
607
- T.type_alias do
608
- T.all(Symbol, ContextDev::WebScreenshotParams::HandleCookiePopup)
609
- end
610
- OrSymbol = T.type_alias { T.any(Symbol, String) }
611
-
612
- TRUE =
613
- T.let(
614
- :true,
615
- ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
616
- )
617
- FALSE =
618
- T.let(
619
- :false,
620
- ContextDev::WebScreenshotParams::HandleCookiePopup::TaggedSymbol
621
- )
622
- end
623
-
624
576
  # Optional parameter to specify which page type to screenshot. If provided, the
625
577
  # system will scrape the domain's links and use heuristics to find the most
626
578
  # appropriate URL for the specified page type (30 supported languages). If not
@@ -307,6 +307,29 @@ module ContextDev
307
307
  sig { params(favicon: String).void }
308
308
  attr_writer :favicon
309
309
 
310
+ # Page headings (h1–h6) in document order, extracted from the unfiltered document.
311
+ # Capped at the first 500 headings. Omitted when the page has none.
312
+ sig do
313
+ returns(
314
+ T.nilable(
315
+ T::Array[
316
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Heading
317
+ ]
318
+ )
319
+ )
320
+ end
321
+ attr_reader :headings
322
+
323
+ sig do
324
+ params(
325
+ headings:
326
+ T::Array[
327
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Heading::OrHash
328
+ ]
329
+ ).void
330
+ end
331
+ attr_writer :headings
332
+
310
333
  # Primary resolved preview image from Open Graph, Twitter, or image metadata.
311
334
  sig { returns(T.nilable(String)) }
312
335
  attr_reader :image
@@ -433,6 +456,10 @@ module ContextDev
433
456
  canonical_url: String,
434
457
  description: String,
435
458
  favicon: String,
459
+ headings:
460
+ T::Array[
461
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Heading::OrHash
462
+ ],
436
463
  image: String,
437
464
  json_ld: T::Array[T::Hash[Symbol, T.anything]],
438
465
  keywords: T::Array[String],
@@ -481,6 +508,9 @@ module ContextDev
481
508
  description: nil,
482
509
  # Resolved favicon URL, when present.
483
510
  favicon: nil,
511
+ # Page headings (h1–h6) in document order, extracted from the unfiltered document.
512
+ # Capped at the first 500 headings. Omitted when the page has none.
513
+ headings: nil,
484
514
  # Primary resolved preview image from Open Graph, Twitter, or image metadata.
485
515
  image: nil,
486
516
  # JSON-LD structured data blocks parsed from the page.
@@ -527,6 +557,10 @@ module ContextDev
527
557
  canonical_url: String,
528
558
  description: String,
529
559
  favicon: String,
560
+ headings:
561
+ T::Array[
562
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Heading
563
+ ],
530
564
  image: String,
531
565
  json_ld: T::Array[T::Hash[Symbol, T.anything]],
532
566
  keywords: T::Array[String],
@@ -636,6 +670,39 @@ module ContextDev
636
670
  end
637
671
  end
638
672
 
673
+ class Heading < ContextDev::Internal::Type::BaseModel
674
+ OrHash =
675
+ T.type_alias do
676
+ T.any(
677
+ ContextDev::Models::WebWebCrawlMdResponse::Result::Metadata::Heading,
678
+ ContextDev::Internal::AnyHash
679
+ )
680
+ end
681
+
682
+ # Heading level, 1–6 (from h1–h6).
683
+ sig { returns(Integer) }
684
+ attr_accessor :level
685
+
686
+ # Heading text with whitespace collapsed, truncated to 1000 characters.
687
+ sig { returns(String) }
688
+ attr_accessor :text
689
+
690
+ sig do
691
+ params(level: Integer, text: String).returns(T.attached_class)
692
+ end
693
+ def self.new(
694
+ # Heading level, 1–6 (from h1–h6).
695
+ level:,
696
+ # Heading text with whitespace collapsed, truncated to 1000 characters.
697
+ text:
698
+ )
699
+ end
700
+
701
+ sig { override.returns({ level: Integer, text: String }) }
702
+ def to_hash
703
+ end
704
+ end
705
+
639
706
  module OpenGraph
640
707
  extend ContextDev::Internal::Type::Union
641
708