context.dev 2.8.0 → 2.10.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +10 -0
  5. data/lib/context_dev/models/batch_delete_params.rb +22 -0
  6. data/lib/context_dev/models/batch_delete_response.rb +60 -0
  7. data/lib/context_dev/models/batch_get_results_response.rb +46 -4
  8. data/lib/context_dev/models/batch_list_response.rb +13 -4
  9. data/lib/context_dev/models/batch_retrieve_response.rb +13 -4
  10. data/lib/context_dev/models/batch_submit_params.rb +2080 -26
  11. data/lib/context_dev/models/batch_submit_response.rb +125 -531
  12. data/lib/context_dev/models/brand_retrieve_response.rb +50 -1
  13. data/lib/context_dev/models/brand_search_params.rb +41 -3
  14. data/lib/context_dev/models/brand_search_response.rb +3 -2
  15. data/lib/context_dev/models/crawl_controls.rb +21 -15
  16. data/lib/context_dev/models/news_search_params.rb +467 -0
  17. data/lib/context_dev/models/news_search_response.rb +238 -0
  18. data/lib/context_dev/models/parse_handle_params.rb +20 -147
  19. data/lib/context_dev/models/person_enrich_params.rb +176 -0
  20. data/lib/context_dev/models/person_enrich_response.rb +641 -0
  21. data/lib/context_dev/models/utility_prefetch_params.rb +19 -16
  22. data/lib/context_dev/models/utility_prefetch_response.rb +4 -5
  23. data/lib/context_dev/models/web_screenshot_params.rb +3 -30
  24. data/lib/context_dev/models/web_search_response.rb +1 -0
  25. data/lib/context_dev/models/web_web_crawl_md_params.rb +5 -4
  26. data/lib/context_dev/models/web_web_crawl_md_response.rb +30 -1
  27. data/lib/context_dev/models/web_web_scrape_html_params.rb +20 -156
  28. data/lib/context_dev/models/web_web_scrape_html_response.rb +30 -1
  29. data/lib/context_dev/models/web_web_scrape_images_params.rb +12 -124
  30. data/lib/context_dev/models/web_web_scrape_md_params.rb +40 -241
  31. data/lib/context_dev/models/web_web_scrape_md_response.rb +41 -2
  32. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +11 -1
  33. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +3 -2
  34. data/lib/context_dev/models.rb +6 -0
  35. data/lib/context_dev/resources/batch.rb +33 -7
  36. data/lib/context_dev/resources/brand.rb +10 -10
  37. data/lib/context_dev/resources/news.rb +51 -0
  38. data/lib/context_dev/resources/parse.rb +5 -5
  39. data/lib/context_dev/resources/people.rb +56 -0
  40. data/lib/context_dev/resources/utility.rb +7 -6
  41. data/lib/context_dev/resources/web.rb +46 -24
  42. data/lib/context_dev/version.rb +1 -1
  43. data/lib/context_dev.rb +8 -0
  44. data/rbi/context_dev/client.rbi +8 -0
  45. data/rbi/context_dev/models/batch_delete_params.rbi +40 -0
  46. data/rbi/context_dev/models/batch_delete_response.rbi +116 -0
  47. data/rbi/context_dev/models/batch_get_results_response.rbi +85 -3
  48. data/rbi/context_dev/models/batch_list_response.rbi +24 -8
  49. data/rbi/context_dev/models/batch_retrieve_response.rbi +24 -8
  50. data/rbi/context_dev/models/batch_submit_params.rbi +6421 -44
  51. data/rbi/context_dev/models/batch_submit_response.rbi +184 -1151
  52. data/rbi/context_dev/models/brand_retrieve_response.rbi +152 -0
  53. data/rbi/context_dev/models/brand_search_params.rbi +71 -2
  54. data/rbi/context_dev/models/brand_search_response.rbi +4 -2
  55. data/rbi/context_dev/models/crawl_controls.rbi +22 -28
  56. data/rbi/context_dev/models/news_search_params.rbi +1294 -0
  57. data/rbi/context_dev/models/news_search_response.rbi +423 -0
  58. data/rbi/context_dev/models/parse_handle_params.rbi +30 -323
  59. data/rbi/context_dev/models/person_enrich_params.rbi +332 -0
  60. data/rbi/context_dev/models/person_enrich_response.rbi +1295 -0
  61. data/rbi/context_dev/models/utility_prefetch_params.rbi +24 -16
  62. data/rbi/context_dev/models/utility_prefetch_response.rbi +8 -6
  63. data/rbi/context_dev/models/web_screenshot_params.rbi +4 -71
  64. data/rbi/context_dev/models/web_search_response.rbi +5 -0
  65. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +8 -6
  66. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +67 -0
  67. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +30 -363
  68. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +65 -0
  69. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +16 -287
  70. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +57 -558
  71. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +80 -0
  72. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +15 -0
  73. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +4 -2
  74. data/rbi/context_dev/models.rbi +6 -0
  75. data/rbi/context_dev/resources/batch.rbi +32 -10
  76. data/rbi/context_dev/resources/brand.rbi +14 -8
  77. data/rbi/context_dev/resources/news.rbi +46 -0
  78. data/rbi/context_dev/resources/parse.rbi +10 -26
  79. data/rbi/context_dev/resources/people.rbi +47 -0
  80. data/rbi/context_dev/resources/utility.rbi +8 -6
  81. data/rbi/context_dev/resources/web.rbi +49 -66
  82. data/sig/context_dev/client.rbs +4 -0
  83. data/sig/context_dev/models/batch_delete_params.rbs +23 -0
  84. data/sig/context_dev/models/batch_delete_response.rbs +57 -0
  85. data/sig/context_dev/models/batch_get_results_response.rbs +30 -2
  86. data/sig/context_dev/models/batch_list_response.rbs +16 -2
  87. data/sig/context_dev/models/batch_retrieve_response.rbs +16 -2
  88. data/sig/context_dev/models/batch_submit_params.rbs +2666 -15
  89. data/sig/context_dev/models/batch_submit_response.rbs +78 -466
  90. data/sig/context_dev/models/brand_retrieve_response.rbs +62 -0
  91. data/sig/context_dev/models/brand_search_params.rbs +38 -1
  92. data/sig/context_dev/models/crawl_controls.rbs +16 -16
  93. data/sig/context_dev/models/news_search_params.rbs +532 -0
  94. data/sig/context_dev/models/news_search_response.rbs +206 -0
  95. data/sig/context_dev/models/parse_handle_params.rbs +25 -90
  96. data/sig/context_dev/models/person_enrich_params.rbs +199 -0
  97. data/sig/context_dev/models/person_enrich_response.rbs +638 -0
  98. data/sig/context_dev/models/utility_prefetch_params.rbs +2 -1
  99. data/sig/context_dev/models/utility_prefetch_response.rbs +2 -1
  100. data/sig/context_dev/models/web_screenshot_params.rbs +5 -18
  101. data/sig/context_dev/models/web_search_response.rbs +2 -0
  102. data/sig/context_dev/models/web_web_crawl_md_response.rbs +21 -0
  103. data/sig/context_dev/models/web_web_scrape_html_params.rbs +24 -94
  104. data/sig/context_dev/models/web_web_scrape_html_response.rbs +21 -0
  105. data/sig/context_dev/models/web_web_scrape_images_params.rbs +20 -72
  106. data/sig/context_dev/models/web_web_scrape_md_params.rbs +46 -148
  107. data/sig/context_dev/models/web_web_scrape_md_response.rbs +28 -0
  108. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +7 -0
  109. data/sig/context_dev/models.rbs +6 -0
  110. data/sig/context_dev/resources/batch.rbs +8 -2
  111. data/sig/context_dev/resources/brand.rbs +3 -0
  112. data/sig/context_dev/resources/news.rbs +17 -0
  113. data/sig/context_dev/resources/parse.rbs +5 -5
  114. data/sig/context_dev/resources/people.rbs +19 -0
  115. data/sig/context_dev/resources/web.rbs +13 -11
  116. metadata +26 -2
@@ -63,75 +63,33 @@ module ContextDev
63
63
  attr_writer :headers
64
64
 
65
65
  # When true, the contents of iframes are rendered to Markdown.
66
- sig do
67
- returns(
68
- T.nilable(
69
- T.any(
70
- T::Boolean,
71
- ContextDev::WebWebScrapeMdParams::IncludeFrames::OrSymbol
72
- )
73
- )
74
- )
75
- end
66
+ sig { returns(T.nilable(T::Boolean)) }
76
67
  attr_reader :include_frames
77
68
 
78
- sig do
79
- params(
80
- include_frames:
81
- T.any(
82
- T::Boolean,
83
- ContextDev::WebWebScrapeMdParams::IncludeFrames::OrSymbol
84
- )
85
- ).void
86
- end
69
+ sig { params(include_frames: T::Boolean).void }
87
70
  attr_writer :include_frames
88
71
 
72
+ # When true, the response also includes an `html` field with the page HTML the
73
+ # Markdown was converted from — the same body the Scrape HTML endpoint returns for
74
+ # the equivalent request.
75
+ sig { returns(T.nilable(T::Boolean)) }
76
+ attr_reader :include_html
77
+
78
+ sig { params(include_html: T::Boolean).void }
79
+ attr_writer :include_html
80
+
89
81
  # Include image references in Markdown output
90
- sig do
91
- returns(
92
- T.nilable(
93
- T.any(
94
- T::Boolean,
95
- ContextDev::WebWebScrapeMdParams::IncludeImages::OrSymbol
96
- )
97
- )
98
- )
99
- end
82
+ sig { returns(T.nilable(T::Boolean)) }
100
83
  attr_reader :include_images
101
84
 
102
- sig do
103
- params(
104
- include_images:
105
- T.any(
106
- T::Boolean,
107
- ContextDev::WebWebScrapeMdParams::IncludeImages::OrSymbol
108
- )
109
- ).void
110
- end
85
+ sig { params(include_images: T::Boolean).void }
111
86
  attr_writer :include_images
112
87
 
113
88
  # Preserve hyperlinks in Markdown output
114
- sig do
115
- returns(
116
- T.nilable(
117
- T.any(
118
- T::Boolean,
119
- ContextDev::WebWebScrapeMdParams::IncludeLinks::OrSymbol
120
- )
121
- )
122
- )
123
- end
89
+ sig { returns(T.nilable(T::Boolean)) }
124
90
  attr_reader :include_links
125
91
 
126
- sig do
127
- params(
128
- include_links:
129
- T.any(
130
- T::Boolean,
131
- ContextDev::WebWebScrapeMdParams::IncludeLinks::OrSymbol
132
- )
133
- ).void
134
- end
92
+ sig { params(include_links: T::Boolean).void }
135
93
  attr_writer :include_links
136
94
 
137
95
  # CSS selectors. When provided, only matching HTML subtrees (and their
@@ -157,51 +115,17 @@ module ContextDev
157
115
  # When true, waits briefly for CSS and transition animations to settle before
158
116
  # converting to Markdown. Defaults to false. This adds a bit of latency in
159
117
  # exchange for more stable output on animated pages.
160
- sig do
161
- returns(
162
- T.nilable(
163
- T.any(
164
- T::Boolean,
165
- ContextDev::WebWebScrapeMdParams::SettleAnimations::OrSymbol
166
- )
167
- )
168
- )
169
- end
118
+ sig { returns(T.nilable(T::Boolean)) }
170
119
  attr_reader :settle_animations
171
120
 
172
- sig do
173
- params(
174
- settle_animations:
175
- T.any(
176
- T::Boolean,
177
- ContextDev::WebWebScrapeMdParams::SettleAnimations::OrSymbol
178
- )
179
- ).void
180
- end
121
+ sig { params(settle_animations: T::Boolean).void }
181
122
  attr_writer :settle_animations
182
123
 
183
124
  # Shorten base64-encoded image data in the Markdown output
184
- sig do
185
- returns(
186
- T.nilable(
187
- T.any(
188
- T::Boolean,
189
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::OrSymbol
190
- )
191
- )
192
- )
193
- end
125
+ sig { returns(T.nilable(T::Boolean)) }
194
126
  attr_reader :shorten_base64_images
195
127
 
196
- sig do
197
- params(
198
- shorten_base64_images:
199
- T.any(
200
- T::Boolean,
201
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::OrSymbol
202
- )
203
- ).void
204
- end
128
+ sig { params(shorten_base64_images: T::Boolean).void }
205
129
  attr_writer :shorten_base64_images
206
130
 
207
131
  # Optional comma-separated caller-defined tags for tracking this request. Tags are
@@ -224,27 +148,10 @@ module ContextDev
224
148
 
225
149
  # Extract only the main content of the page, excluding headers, footers, sidebars,
226
150
  # and navigation
227
- sig do
228
- returns(
229
- T.nilable(
230
- T.any(
231
- T::Boolean,
232
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::OrSymbol
233
- )
234
- )
235
- )
236
- end
151
+ sig { returns(T.nilable(T::Boolean)) }
237
152
  attr_reader :use_main_content_only
238
153
 
239
- sig do
240
- params(
241
- use_main_content_only:
242
- T.any(
243
- T::Boolean,
244
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::OrSymbol
245
- )
246
- ).void
247
- end
154
+ sig { params(use_main_content_only: T::Boolean).void }
248
155
  attr_writer :use_main_content_only
249
156
 
250
157
  # Optional browser wait time in milliseconds after initial page load before
@@ -279,41 +186,18 @@ module ContextDev
279
186
  country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
280
187
  exclude_selectors: T.nilable(T::Array[String]),
281
188
  headers: T::Hash[Symbol, String],
282
- include_frames:
283
- T.any(
284
- T::Boolean,
285
- ContextDev::WebWebScrapeMdParams::IncludeFrames::OrSymbol
286
- ),
287
- include_images:
288
- T.any(
289
- T::Boolean,
290
- ContextDev::WebWebScrapeMdParams::IncludeImages::OrSymbol
291
- ),
292
- include_links:
293
- T.any(
294
- T::Boolean,
295
- ContextDev::WebWebScrapeMdParams::IncludeLinks::OrSymbol
296
- ),
189
+ include_frames: T::Boolean,
190
+ include_html: T::Boolean,
191
+ include_images: T::Boolean,
192
+ include_links: T::Boolean,
297
193
  include_selectors: T.nilable(T::Array[String]),
298
194
  max_age_ms: T.nilable(Integer),
299
195
  pdf: ContextDev::WebWebScrapeMdParams::Pdf::OrHash,
300
- settle_animations:
301
- T.any(
302
- T::Boolean,
303
- ContextDev::WebWebScrapeMdParams::SettleAnimations::OrSymbol
304
- ),
305
- shorten_base64_images:
306
- T.any(
307
- T::Boolean,
308
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::OrSymbol
309
- ),
196
+ settle_animations: T::Boolean,
197
+ shorten_base64_images: T::Boolean,
310
198
  tags: T::Array[String],
311
199
  timeout_ms: Integer,
312
- use_main_content_only:
313
- T.any(
314
- T::Boolean,
315
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::OrSymbol
316
- ),
200
+ use_main_content_only: T::Boolean,
317
201
  wait_for_ms: T.nilable(Integer),
318
202
  zdr: ContextDev::WebWebScrapeMdParams::Zdr::OrSymbol,
319
203
  request_options: ContextDev::RequestOptions::OrHash
@@ -340,6 +224,10 @@ module ContextDev
340
224
  headers: nil,
341
225
  # When true, the contents of iframes are rendered to Markdown.
342
226
  include_frames: nil,
227
+ # When true, the response also includes an `html` field with the page HTML the
228
+ # Markdown was converted from — the same body the Scrape HTML endpoint returns for
229
+ # the equivalent request.
230
+ include_html: nil,
343
231
  # Include image references in Markdown output
344
232
  include_images: nil,
345
233
  # Preserve hyperlinks in Markdown output
@@ -400,41 +288,18 @@ module ContextDev
400
288
  country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
401
289
  exclude_selectors: T.nilable(T::Array[String]),
402
290
  headers: T::Hash[Symbol, String],
403
- include_frames:
404
- T.any(
405
- T::Boolean,
406
- ContextDev::WebWebScrapeMdParams::IncludeFrames::OrSymbol
407
- ),
408
- include_images:
409
- T.any(
410
- T::Boolean,
411
- ContextDev::WebWebScrapeMdParams::IncludeImages::OrSymbol
412
- ),
413
- include_links:
414
- T.any(
415
- T::Boolean,
416
- ContextDev::WebWebScrapeMdParams::IncludeLinks::OrSymbol
417
- ),
291
+ include_frames: T::Boolean,
292
+ include_html: T::Boolean,
293
+ include_images: T::Boolean,
294
+ include_links: T::Boolean,
418
295
  include_selectors: T.nilable(T::Array[String]),
419
296
  max_age_ms: T.nilable(Integer),
420
297
  pdf: ContextDev::WebWebScrapeMdParams::Pdf,
421
- settle_animations:
422
- T.any(
423
- T::Boolean,
424
- ContextDev::WebWebScrapeMdParams::SettleAnimations::OrSymbol
425
- ),
426
- shorten_base64_images:
427
- T.any(
428
- T::Boolean,
429
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::OrSymbol
430
- ),
298
+ settle_animations: T::Boolean,
299
+ shorten_base64_images: T::Boolean,
431
300
  tags: T::Array[String],
432
301
  timeout_ms: Integer,
433
- use_main_content_only:
434
- T.any(
435
- T::Boolean,
436
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::OrSymbol
437
- ),
302
+ use_main_content_only: T::Boolean,
438
303
  wait_for_ms: T.nilable(Integer),
439
304
  zdr: ContextDev::WebWebScrapeMdParams::Zdr::OrSymbol,
440
305
  request_options: ContextDev::RequestOptions
@@ -743,120 +608,6 @@ module ContextDev
743
608
  end
744
609
  end
745
610
 
746
- # When true, the contents of iframes are rendered to Markdown.
747
- module IncludeFrames
748
- extend ContextDev::Internal::Type::Union
749
-
750
- Variants =
751
- T.type_alias do
752
- T.any(
753
- T::Boolean,
754
- ContextDev::WebWebScrapeMdParams::IncludeFrames::TaggedSymbol
755
- )
756
- end
757
-
758
- sig do
759
- override.returns(
760
- T::Array[ContextDev::WebWebScrapeMdParams::IncludeFrames::Variants]
761
- )
762
- end
763
- def self.variants
764
- end
765
-
766
- TaggedSymbol =
767
- T.type_alias do
768
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::IncludeFrames)
769
- end
770
- OrSymbol = T.type_alias { T.any(Symbol, String) }
771
-
772
- TRUE =
773
- T.let(
774
- :true,
775
- ContextDev::WebWebScrapeMdParams::IncludeFrames::TaggedSymbol
776
- )
777
- FALSE =
778
- T.let(
779
- :false,
780
- ContextDev::WebWebScrapeMdParams::IncludeFrames::TaggedSymbol
781
- )
782
- end
783
-
784
- # Include image references in Markdown output
785
- module IncludeImages
786
- extend ContextDev::Internal::Type::Union
787
-
788
- Variants =
789
- T.type_alias do
790
- T.any(
791
- T::Boolean,
792
- ContextDev::WebWebScrapeMdParams::IncludeImages::TaggedSymbol
793
- )
794
- end
795
-
796
- sig do
797
- override.returns(
798
- T::Array[ContextDev::WebWebScrapeMdParams::IncludeImages::Variants]
799
- )
800
- end
801
- def self.variants
802
- end
803
-
804
- TaggedSymbol =
805
- T.type_alias do
806
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::IncludeImages)
807
- end
808
- OrSymbol = T.type_alias { T.any(Symbol, String) }
809
-
810
- TRUE =
811
- T.let(
812
- :true,
813
- ContextDev::WebWebScrapeMdParams::IncludeImages::TaggedSymbol
814
- )
815
- FALSE =
816
- T.let(
817
- :false,
818
- ContextDev::WebWebScrapeMdParams::IncludeImages::TaggedSymbol
819
- )
820
- end
821
-
822
- # Preserve hyperlinks in Markdown output
823
- module IncludeLinks
824
- extend ContextDev::Internal::Type::Union
825
-
826
- Variants =
827
- T.type_alias do
828
- T.any(
829
- T::Boolean,
830
- ContextDev::WebWebScrapeMdParams::IncludeLinks::TaggedSymbol
831
- )
832
- end
833
-
834
- sig do
835
- override.returns(
836
- T::Array[ContextDev::WebWebScrapeMdParams::IncludeLinks::Variants]
837
- )
838
- end
839
- def self.variants
840
- end
841
-
842
- TaggedSymbol =
843
- T.type_alias do
844
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::IncludeLinks)
845
- end
846
- OrSymbol = T.type_alias { T.any(Symbol, String) }
847
-
848
- TRUE =
849
- T.let(
850
- :true,
851
- ContextDev::WebWebScrapeMdParams::IncludeLinks::TaggedSymbol
852
- )
853
- FALSE =
854
- T.let(
855
- :false,
856
- ContextDev::WebWebScrapeMdParams::IncludeLinks::TaggedSymbol
857
- )
858
- end
859
-
860
611
  class Pdf < ContextDev::Internal::Type::BaseModel
861
612
  OrHash =
862
613
  T.type_alias do
@@ -874,55 +625,22 @@ module ContextDev
874
625
  sig { params(end_: Integer).void }
875
626
  attr_writer :end_
876
627
 
877
- # When true, detect and OCR images embedded in the selected PDF pages, inserting
878
- # recognized text at each image's position in page reading order while preserving
879
- # the PDF text layer. This is separate from automatic scanned-PDF OCR fallback.
880
- sig do
881
- returns(
882
- T.nilable(
883
- T.any(
884
- T::Boolean,
885
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::OrSymbol
886
- )
887
- )
888
- )
889
- end
628
+ # When true, OCR the selected PDF pages that have no usable text layer (scans),
629
+ # replacing each recovered page's text with the OCR result while pages with a real
630
+ # text layer keep it. Billed at 1 credit per page OCR actually recovered, on top
631
+ # of the base request cost. When false, no OCR runs.
632
+ sig { returns(T.nilable(T::Boolean)) }
890
633
  attr_reader :ocr
891
634
 
892
- sig do
893
- params(
894
- ocr:
895
- T.any(
896
- T::Boolean,
897
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::OrSymbol
898
- )
899
- ).void
900
- end
635
+ sig { params(ocr: T::Boolean).void }
901
636
  attr_writer :ocr
902
637
 
903
638
  # When true, PDF URLs are fetched and parsed. When false, PDF URLs are skipped and
904
- # a 400 WEBSITE_ACCESS_ERROR is returned.
905
- sig do
906
- returns(
907
- T.nilable(
908
- T.any(
909
- T::Boolean,
910
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::OrSymbol
911
- )
912
- )
913
- )
914
- end
639
+ # a 400 PDF_SKIPPED is returned.
640
+ sig { returns(T.nilable(T::Boolean)) }
915
641
  attr_reader :should_parse
916
642
 
917
- sig do
918
- params(
919
- should_parse:
920
- T.any(
921
- T::Boolean,
922
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::OrSymbol
923
- )
924
- ).void
925
- end
643
+ sig { params(should_parse: T::Boolean).void }
926
644
  attr_writer :should_parse
927
645
 
928
646
  # First 1-based PDF page to parse. When omitted, parsing starts at the first page.
@@ -937,16 +655,8 @@ module ContextDev
937
655
  sig do
938
656
  params(
939
657
  end_: Integer,
940
- ocr:
941
- T.any(
942
- T::Boolean,
943
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::OrSymbol
944
- ),
945
- should_parse:
946
- T.any(
947
- T::Boolean,
948
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::OrSymbol
949
- ),
658
+ ocr: T::Boolean,
659
+ should_parse: T::Boolean,
950
660
  start: Integer
951
661
  ).returns(T.attached_class)
952
662
  end
@@ -954,12 +664,13 @@ module ContextDev
954
664
  # Last 1-based PDF page to parse. When omitted, parsing ends at the last page.
955
665
  # Must be greater than or equal to start when both are provided.
956
666
  end_: nil,
957
- # When true, detect and OCR images embedded in the selected PDF pages, inserting
958
- # recognized text at each image's position in page reading order while preserving
959
- # the PDF text layer. This is separate from automatic scanned-PDF OCR fallback.
667
+ # When true, OCR the selected PDF pages that have no usable text layer (scans),
668
+ # replacing each recovered page's text with the OCR result while pages with a real
669
+ # text layer keep it. Billed at 1 credit per page OCR actually recovered, on top
670
+ # of the base request cost. When false, no OCR runs.
960
671
  ocr: nil,
961
672
  # When true, PDF URLs are fetched and parsed. When false, PDF URLs are skipped and
962
- # a 400 WEBSITE_ACCESS_ERROR is returned.
673
+ # a 400 PDF_SKIPPED is returned.
963
674
  should_parse: nil,
964
675
  # First 1-based PDF page to parse. When omitted, parsing starts at the first page.
965
676
  start: nil
@@ -970,226 +681,14 @@ module ContextDev
970
681
  override.returns(
971
682
  {
972
683
  end_: Integer,
973
- ocr:
974
- T.any(
975
- T::Boolean,
976
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::OrSymbol
977
- ),
978
- should_parse:
979
- T.any(
980
- T::Boolean,
981
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::OrSymbol
982
- ),
684
+ ocr: T::Boolean,
685
+ should_parse: T::Boolean,
983
686
  start: Integer
984
687
  }
985
688
  )
986
689
  end
987
690
  def to_hash
988
691
  end
989
-
990
- # When true, detect and OCR images embedded in the selected PDF pages, inserting
991
- # recognized text at each image's position in page reading order while preserving
992
- # the PDF text layer. This is separate from automatic scanned-PDF OCR fallback.
993
- module Ocr
994
- extend ContextDev::Internal::Type::Union
995
-
996
- Variants =
997
- T.type_alias do
998
- T.any(
999
- T::Boolean,
1000
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::TaggedSymbol
1001
- )
1002
- end
1003
-
1004
- sig do
1005
- override.returns(
1006
- T::Array[ContextDev::WebWebScrapeMdParams::Pdf::Ocr::Variants]
1007
- )
1008
- end
1009
- def self.variants
1010
- end
1011
-
1012
- TaggedSymbol =
1013
- T.type_alias do
1014
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::Pdf::Ocr)
1015
- end
1016
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1017
-
1018
- TRUE =
1019
- T.let(
1020
- :true,
1021
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::TaggedSymbol
1022
- )
1023
- FALSE =
1024
- T.let(
1025
- :false,
1026
- ContextDev::WebWebScrapeMdParams::Pdf::Ocr::TaggedSymbol
1027
- )
1028
- end
1029
-
1030
- # When true, PDF URLs are fetched and parsed. When false, PDF URLs are skipped and
1031
- # a 400 WEBSITE_ACCESS_ERROR is returned.
1032
- module ShouldParse
1033
- extend ContextDev::Internal::Type::Union
1034
-
1035
- Variants =
1036
- T.type_alias do
1037
- T.any(
1038
- T::Boolean,
1039
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::TaggedSymbol
1040
- )
1041
- end
1042
-
1043
- sig do
1044
- override.returns(
1045
- T::Array[
1046
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::Variants
1047
- ]
1048
- )
1049
- end
1050
- def self.variants
1051
- end
1052
-
1053
- TaggedSymbol =
1054
- T.type_alias do
1055
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse)
1056
- end
1057
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1058
-
1059
- TRUE =
1060
- T.let(
1061
- :true,
1062
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::TaggedSymbol
1063
- )
1064
- FALSE =
1065
- T.let(
1066
- :false,
1067
- ContextDev::WebWebScrapeMdParams::Pdf::ShouldParse::TaggedSymbol
1068
- )
1069
- end
1070
- end
1071
-
1072
- # When true, waits briefly for CSS and transition animations to settle before
1073
- # converting to Markdown. Defaults to false. This adds a bit of latency in
1074
- # exchange for more stable output on animated pages.
1075
- module SettleAnimations
1076
- extend ContextDev::Internal::Type::Union
1077
-
1078
- Variants =
1079
- T.type_alias do
1080
- T.any(
1081
- T::Boolean,
1082
- ContextDev::WebWebScrapeMdParams::SettleAnimations::TaggedSymbol
1083
- )
1084
- end
1085
-
1086
- sig do
1087
- override.returns(
1088
- T::Array[
1089
- ContextDev::WebWebScrapeMdParams::SettleAnimations::Variants
1090
- ]
1091
- )
1092
- end
1093
- def self.variants
1094
- end
1095
-
1096
- TaggedSymbol =
1097
- T.type_alias do
1098
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::SettleAnimations)
1099
- end
1100
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1101
-
1102
- TRUE =
1103
- T.let(
1104
- :true,
1105
- ContextDev::WebWebScrapeMdParams::SettleAnimations::TaggedSymbol
1106
- )
1107
- FALSE =
1108
- T.let(
1109
- :false,
1110
- ContextDev::WebWebScrapeMdParams::SettleAnimations::TaggedSymbol
1111
- )
1112
- end
1113
-
1114
- # Shorten base64-encoded image data in the Markdown output
1115
- module ShortenBase64Images
1116
- extend ContextDev::Internal::Type::Union
1117
-
1118
- Variants =
1119
- T.type_alias do
1120
- T.any(
1121
- T::Boolean,
1122
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::TaggedSymbol
1123
- )
1124
- end
1125
-
1126
- sig do
1127
- override.returns(
1128
- T::Array[
1129
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::Variants
1130
- ]
1131
- )
1132
- end
1133
- def self.variants
1134
- end
1135
-
1136
- TaggedSymbol =
1137
- T.type_alias do
1138
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::ShortenBase64Images)
1139
- end
1140
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1141
-
1142
- TRUE =
1143
- T.let(
1144
- :true,
1145
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::TaggedSymbol
1146
- )
1147
- FALSE =
1148
- T.let(
1149
- :false,
1150
- ContextDev::WebWebScrapeMdParams::ShortenBase64Images::TaggedSymbol
1151
- )
1152
- end
1153
-
1154
- # Extract only the main content of the page, excluding headers, footers, sidebars,
1155
- # and navigation
1156
- module UseMainContentOnly
1157
- extend ContextDev::Internal::Type::Union
1158
-
1159
- Variants =
1160
- T.type_alias do
1161
- T.any(
1162
- T::Boolean,
1163
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::TaggedSymbol
1164
- )
1165
- end
1166
-
1167
- sig do
1168
- override.returns(
1169
- T::Array[
1170
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::Variants
1171
- ]
1172
- )
1173
- end
1174
- def self.variants
1175
- end
1176
-
1177
- TaggedSymbol =
1178
- T.type_alias do
1179
- T.all(Symbol, ContextDev::WebWebScrapeMdParams::UseMainContentOnly)
1180
- end
1181
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1182
-
1183
- TRUE =
1184
- T.let(
1185
- :true,
1186
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::TaggedSymbol
1187
- )
1188
- FALSE =
1189
- T.let(
1190
- :false,
1191
- ContextDev::WebWebScrapeMdParams::UseMainContentOnly::TaggedSymbol
1192
- )
1193
692
  end
1194
693
 
1195
694
  # Set to enabled to bypass shared caches and omit request and response content