context.dev 2.15.0 → 2.17.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 (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +2 -2
  4. data/lib/context_dev/client.rb +6 -0
  5. data/lib/context_dev/internal/type/base_model.rb +2 -2
  6. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  7. data/lib/context_dev/models/ai_extract_product_response.rb +19 -1
  8. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  9. data/lib/context_dev/models/ai_extract_products_response.rb +20 -1
  10. data/lib/context_dev/models/batch_cancel_response.rb +10 -1
  11. data/lib/context_dev/models/batch_delete_response.rb +13 -1
  12. data/lib/context_dev/models/batch_get_results_response.rb +13 -1
  13. data/lib/context_dev/models/batch_list_response.rb +13 -1
  14. data/lib/context_dev/models/batch_retrieve_response.rb +10 -1
  15. data/lib/context_dev/models/batch_submit_response.rb +10 -1
  16. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  17. data/lib/context_dev/models/brand_retrieve_response.rb +19 -1
  18. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  19. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +19 -1
  20. data/lib/context_dev/models/brand_search_response.rb +10 -1
  21. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  22. data/lib/context_dev/models/industry_retrieve_naics_response.rb +22 -1
  23. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  24. data/lib/context_dev/models/industry_retrieve_sic_response.rb +19 -1
  25. data/lib/context_dev/models/log_list_params.rb +108 -0
  26. data/lib/context_dev/models/log_list_response.rb +174 -0
  27. data/lib/context_dev/models/log_retrieve_params.rb +22 -0
  28. data/lib/context_dev/models/log_retrieve_response.rb +226 -0
  29. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  30. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  31. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  32. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  33. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  34. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  35. data/lib/context_dev/models/news_search_response.rb +10 -1
  36. data/lib/context_dev/models/parse_handle_response.rb +13 -1
  37. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  38. data/lib/context_dev/models/person_enrich_response.rb +22 -1
  39. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  40. data/lib/context_dev/models/utility_prefetch_response.rb +13 -1
  41. data/lib/context_dev/models/web_answers_params.rb +124 -0
  42. data/lib/context_dev/models/web_answers_response.rb +68 -0
  43. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  44. data/lib/context_dev/models/web_extract_competitors_response.rb +22 -1
  45. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  46. data/lib/context_dev/models/web_extract_fonts_response.rb +41 -1
  47. data/lib/context_dev/models/web_extract_params.rb +53 -8
  48. data/lib/context_dev/models/web_extract_response.rb +19 -1
  49. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  50. data/lib/context_dev/models/web_extract_styleguide_response.rb +41 -1
  51. data/lib/context_dev/models/web_screenshot_params.rb +58 -9
  52. data/lib/context_dev/models/web_screenshot_response.rb +41 -1
  53. data/lib/context_dev/models/web_search_params.rb +112 -16
  54. data/lib/context_dev/models/web_search_response.rb +52 -2
  55. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  56. data/lib/context_dev/models/web_web_crawl_md_response.rb +20 -1
  57. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  58. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  59. data/lib/context_dev/models/web_web_scrape_html_params.rb +58 -9
  60. data/lib/context_dev/models/web_web_scrape_html_response.rb +41 -1
  61. data/lib/context_dev/models/web_web_scrape_images_params.rb +58 -9
  62. data/lib/context_dev/models/web_web_scrape_images_response.rb +51 -1
  63. data/lib/context_dev/models/web_web_scrape_md_params.rb +58 -9
  64. data/lib/context_dev/models/web_web_scrape_md_response.rb +41 -1
  65. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  66. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +20 -1
  67. data/lib/context_dev/models/webhooks/delivery_list_attempts_response.rb +13 -1
  68. data/lib/context_dev/models/webhooks/delivery_list_response.rb +13 -1
  69. data/lib/context_dev/models/webhooks/delivery_retrieve_response.rb +13 -1
  70. data/lib/context_dev/models/webhooks/delivery_retry_response.rb +13 -1
  71. data/lib/context_dev/models.rb +8 -0
  72. data/lib/context_dev/resources/ai.rb +2 -2
  73. data/lib/context_dev/resources/brand.rb +3 -3
  74. data/lib/context_dev/resources/industry.rb +6 -6
  75. data/lib/context_dev/resources/logs.rb +83 -0
  76. data/lib/context_dev/resources/people.rb +2 -2
  77. data/lib/context_dev/resources/utility.rb +2 -2
  78. data/lib/context_dev/resources/web.rb +119 -33
  79. data/lib/context_dev/version.rb +1 -1
  80. data/lib/context_dev.rb +9 -0
  81. data/rbi/context_dev/client.rbi +5 -0
  82. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  83. data/rbi/context_dev/models/ai_extract_product_response.rbi +23 -0
  84. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  85. data/rbi/context_dev/models/ai_extract_products_response.rbi +25 -0
  86. data/rbi/context_dev/models/batch_cancel_response.rbi +10 -0
  87. data/rbi/context_dev/models/batch_delete_response.rbi +10 -0
  88. data/rbi/context_dev/models/batch_get_results_response.rbi +10 -0
  89. data/rbi/context_dev/models/batch_list_response.rbi +10 -0
  90. data/rbi/context_dev/models/batch_retrieve_response.rbi +10 -0
  91. data/rbi/context_dev/models/batch_submit_response.rbi +10 -0
  92. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  93. data/rbi/context_dev/models/brand_retrieve_response.rbi +23 -0
  94. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  95. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +23 -0
  96. data/rbi/context_dev/models/brand_search_response.rbi +10 -0
  97. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  98. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +23 -0
  99. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  100. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +23 -0
  101. data/rbi/context_dev/models/log_list_params.rbi +162 -0
  102. data/rbi/context_dev/models/log_list_response.rbi +246 -0
  103. data/rbi/context_dev/models/log_retrieve_params.rbi +40 -0
  104. data/rbi/context_dev/models/log_retrieve_response.rbi +370 -0
  105. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  106. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  107. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  108. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  109. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  110. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  111. data/rbi/context_dev/models/news_search_response.rbi +10 -0
  112. data/rbi/context_dev/models/parse_handle_response.rbi +10 -0
  113. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  114. data/rbi/context_dev/models/person_enrich_response.rbi +26 -3
  115. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  116. data/rbi/context_dev/models/utility_prefetch_response.rbi +10 -0
  117. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  118. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  119. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  120. data/rbi/context_dev/models/web_extract_competitors_response.rbi +26 -3
  121. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  122. data/rbi/context_dev/models/web_extract_fonts_response.rbi +81 -0
  123. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  124. data/rbi/context_dev/models/web_extract_response.rbi +26 -3
  125. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  126. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +81 -0
  127. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -15
  128. data/rbi/context_dev/models/web_screenshot_response.rbi +81 -0
  129. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  130. data/rbi/context_dev/models/web_search_response.rbi +102 -6
  131. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  132. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +29 -3
  133. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  134. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  135. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +134 -15
  136. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +71 -0
  137. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +136 -15
  138. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +99 -3
  139. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +132 -15
  140. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +71 -0
  141. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  142. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +28 -3
  143. data/rbi/context_dev/models/webhooks/delivery_list_attempts_response.rbi +10 -0
  144. data/rbi/context_dev/models/webhooks/delivery_list_response.rbi +10 -0
  145. data/rbi/context_dev/models/webhooks/delivery_retrieve_response.rbi +10 -0
  146. data/rbi/context_dev/models/webhooks/delivery_retry_response.rbi +10 -0
  147. data/rbi/context_dev/models.rbi +8 -0
  148. data/rbi/context_dev/resources/ai.rbi +5 -5
  149. data/rbi/context_dev/resources/brand.rbi +9 -8
  150. data/rbi/context_dev/resources/industry.rbi +12 -10
  151. data/rbi/context_dev/resources/logs.rbi +76 -0
  152. data/rbi/context_dev/resources/people.rbi +5 -5
  153. data/rbi/context_dev/resources/utility.rbi +5 -5
  154. data/rbi/context_dev/resources/web.rbi +173 -68
  155. data/sig/context_dev/client.rbs +2 -0
  156. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  157. data/sig/context_dev/models/ai_extract_product_response.rbs +12 -0
  158. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  159. data/sig/context_dev/models/ai_extract_products_response.rbs +12 -0
  160. data/sig/context_dev/models/batch_cancel_response.rbs +5 -0
  161. data/sig/context_dev/models/batch_delete_response.rbs +5 -0
  162. data/sig/context_dev/models/batch_get_results_response.rbs +5 -0
  163. data/sig/context_dev/models/batch_list_response.rbs +5 -0
  164. data/sig/context_dev/models/batch_retrieve_response.rbs +5 -0
  165. data/sig/context_dev/models/batch_submit_response.rbs +5 -0
  166. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  167. data/sig/context_dev/models/brand_retrieve_response.rbs +12 -0
  168. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  169. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +12 -0
  170. data/sig/context_dev/models/brand_search_response.rbs +5 -0
  171. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  172. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +12 -0
  173. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  174. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +12 -0
  175. data/sig/context_dev/models/log_list_params.rbs +98 -0
  176. data/sig/context_dev/models/log_list_response.rbs +135 -0
  177. data/sig/context_dev/models/log_retrieve_params.rbs +23 -0
  178. data/sig/context_dev/models/log_retrieve_response.rbs +179 -0
  179. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  180. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  181. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  182. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  183. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  184. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  185. data/sig/context_dev/models/news_search_response.rbs +5 -0
  186. data/sig/context_dev/models/parse_handle_response.rbs +5 -0
  187. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  188. data/sig/context_dev/models/person_enrich_response.rbs +15 -3
  189. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  190. data/sig/context_dev/models/utility_prefetch_response.rbs +5 -0
  191. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  192. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  193. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  194. data/sig/context_dev/models/web_extract_competitors_response.rbs +15 -3
  195. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  196. data/sig/context_dev/models/web_extract_fonts_response.rbs +25 -0
  197. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  198. data/sig/context_dev/models/web_extract_response.rbs +15 -3
  199. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  200. data/sig/context_dev/models/web_extract_styleguide_response.rbs +25 -0
  201. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  202. data/sig/context_dev/models/web_screenshot_response.rbs +25 -0
  203. data/sig/context_dev/models/web_search_params.rbs +88 -10
  204. data/sig/context_dev/models/web_search_response.rbs +38 -6
  205. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  206. data/sig/context_dev/models/web_web_crawl_md_response.rbs +15 -3
  207. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  208. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  209. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  210. data/sig/context_dev/models/web_web_scrape_html_response.rbs +21 -0
  211. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  212. data/sig/context_dev/models/web_web_scrape_images_response.rbs +35 -3
  213. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  214. data/sig/context_dev/models/web_web_scrape_md_response.rbs +21 -0
  215. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  216. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +15 -3
  217. data/sig/context_dev/models/webhooks/delivery_list_attempts_response.rbs +5 -0
  218. data/sig/context_dev/models/webhooks/delivery_list_response.rbs +5 -0
  219. data/sig/context_dev/models/webhooks/delivery_retrieve_response.rbs +7 -0
  220. data/sig/context_dev/models/webhooks/delivery_retry_response.rbs +5 -0
  221. data/sig/context_dev/models.rbs +8 -0
  222. data/sig/context_dev/resources/ai.rbs +1 -1
  223. data/sig/context_dev/resources/brand.rbs +1 -1
  224. data/sig/context_dev/resources/industry.rbs +2 -2
  225. data/sig/context_dev/resources/logs.rbs +27 -0
  226. data/sig/context_dev/resources/people.rbs +1 -1
  227. data/sig/context_dev/resources/utility.rbs +1 -1
  228. data/sig/context_dev/resources/web.rbs +30 -11
  229. metadata +29 -2
@@ -83,17 +83,26 @@ module ContextDev
83
83
  sig { params(tags: T::Array[String]).void }
84
84
  attr_writer :tags
85
85
 
86
- # Optional timeout in milliseconds for the request. If the request takes longer
87
- # than this value, it will be aborted with a 408 status code. Maximum allowed
88
- # value is 300000ms (5 minutes).
89
- sig { returns(T.nilable(Integer)) }
90
- attr_reader :timeout_ms
86
+ # Optional request deadline and behavior on timeout. For GET requests, use
87
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
88
+ # timeoutOpts object.
89
+ sig do
90
+ returns(T.nilable(ContextDev::WebWebScrapeImagesParams::TimeoutOpts))
91
+ end
92
+ attr_reader :timeout_opts
91
93
 
92
- sig { params(timeout_ms: Integer).void }
93
- attr_writer :timeout_ms
94
+ sig do
95
+ params(
96
+ timeout_opts:
97
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::OrHash
98
+ ).void
99
+ end
100
+ attr_writer :timeout_opts
94
101
 
95
102
  # Optional browser wait time in milliseconds after initial page load before
96
- # collecting images. Min: 0. Max: 30000 (30 seconds).
103
+ # collecting images. Min: 0. Max: 30000 (30 seconds). When combined with
104
+ # timeoutOpts, timeoutOpts.milliseconds must be at least waitForMs + 10000 ms; a
105
+ # shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
97
106
  sig { returns(T.nilable(Integer)) }
98
107
  attr_accessor :wait_for_ms
99
108
 
@@ -116,7 +125,8 @@ module ContextDev
116
125
  headers: T::Hash[Symbol, String],
117
126
  max_age_ms: T.nilable(Integer),
118
127
  tags: T::Array[String],
119
- timeout_ms: Integer,
128
+ timeout_opts:
129
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::OrHash,
120
130
  wait_for_ms: T.nilable(Integer),
121
131
  request_options: ContextDev::RequestOptions::OrHash
122
132
  ).returns(T.attached_class)
@@ -146,12 +156,14 @@ module ContextDev
146
156
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
147
157
  # characters.
148
158
  tags: nil,
149
- # Optional timeout in milliseconds for the request. If the request takes longer
150
- # than this value, it will be aborted with a 408 status code. Maximum allowed
151
- # value is 300000ms (5 minutes).
152
- timeout_ms: nil,
159
+ # Optional request deadline and behavior on timeout. For GET requests, use
160
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
161
+ # timeoutOpts object.
162
+ timeout_opts: nil,
153
163
  # Optional browser wait time in milliseconds after initial page load before
154
- # collecting images. Min: 0. Max: 30000 (30 seconds).
164
+ # collecting images. Min: 0. Max: 30000 (30 seconds). When combined with
165
+ # timeoutOpts, timeoutOpts.milliseconds must be at least waitForMs + 10000 ms; a
166
+ # shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
155
167
  wait_for_ms: nil,
156
168
  request_options: {}
157
169
  )
@@ -177,7 +189,7 @@ module ContextDev
177
189
  headers: T::Hash[Symbol, String],
178
190
  max_age_ms: T.nilable(Integer),
179
191
  tags: T::Array[String],
180
- timeout_ms: Integer,
192
+ timeout_opts: ContextDev::WebWebScrapeImagesParams::TimeoutOpts,
181
193
  wait_for_ms: T.nilable(Integer),
182
194
  request_options: ContextDev::RequestOptions
183
195
  }
@@ -545,6 +557,115 @@ module ContextDev
545
557
  def to_hash
546
558
  end
547
559
  end
560
+
561
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
562
+ OrHash =
563
+ T.type_alias do
564
+ T.any(
565
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts,
566
+ ContextDev::Internal::AnyHash
567
+ )
568
+ end
569
+
570
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
571
+ sig { returns(Integer) }
572
+ attr_accessor :milliseconds
573
+
574
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
575
+ # credits. "return-partial" returns usable results collected so far; if none are
576
+ # available, the request still fails without charging credits. Partial results are
577
+ # not cached as complete results. "return-partial" requires milliseconds of at
578
+ # least 15000.
579
+ sig do
580
+ returns(
581
+ T.nilable(
582
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::OrSymbol
583
+ )
584
+ )
585
+ end
586
+ attr_reader :behavior
587
+
588
+ sig do
589
+ params(
590
+ behavior:
591
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::OrSymbol
592
+ ).void
593
+ end
594
+ attr_writer :behavior
595
+
596
+ # Optional request deadline and behavior on timeout. For GET requests, use
597
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
598
+ # timeoutOpts object.
599
+ sig do
600
+ params(
601
+ milliseconds: Integer,
602
+ behavior:
603
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::OrSymbol
604
+ ).returns(T.attached_class)
605
+ end
606
+ def self.new(
607
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
608
+ milliseconds:,
609
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
610
+ # credits. "return-partial" returns usable results collected so far; if none are
611
+ # available, the request still fails without charging credits. Partial results are
612
+ # not cached as complete results. "return-partial" requires milliseconds of at
613
+ # least 15000.
614
+ behavior: nil
615
+ )
616
+ end
617
+
618
+ sig do
619
+ override.returns(
620
+ {
621
+ milliseconds: Integer,
622
+ behavior:
623
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::OrSymbol
624
+ }
625
+ )
626
+ end
627
+ def to_hash
628
+ end
629
+
630
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
631
+ # credits. "return-partial" returns usable results collected so far; if none are
632
+ # available, the request still fails without charging credits. Partial results are
633
+ # not cached as complete results. "return-partial" requires milliseconds of at
634
+ # least 15000.
635
+ module Behavior
636
+ extend ContextDev::Internal::Type::Enum
637
+
638
+ TaggedSymbol =
639
+ T.type_alias do
640
+ T.all(
641
+ Symbol,
642
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior
643
+ )
644
+ end
645
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
646
+
647
+ FAIL =
648
+ T.let(
649
+ :fail,
650
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::TaggedSymbol
651
+ )
652
+ RETURN_PARTIAL =
653
+ T.let(
654
+ :"return-partial",
655
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::TaggedSymbol
656
+ )
657
+
658
+ sig do
659
+ override.returns(
660
+ T::Array[
661
+ ContextDev::WebWebScrapeImagesParams::TimeoutOpts::Behavior::TaggedSymbol
662
+ ]
663
+ )
664
+ end
665
+ def self.values
666
+ end
667
+ end
668
+ end
548
669
  end
549
670
  end
550
671
  end
@@ -33,6 +33,11 @@ module ContextDev
33
33
  end
34
34
  attr_accessor :images
35
35
 
36
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
37
+ # it when contacting support about a failed request.
38
+ sig { returns(String) }
39
+ attr_accessor :request_id
40
+
36
41
  # Always true on success.
37
42
  sig do
38
43
  returns(
@@ -67,6 +72,28 @@ module ContextDev
67
72
  end
68
73
  attr_writer :actions_applied
69
74
 
75
+ # How complete the returned content is. `loaded` means the page finished the waits
76
+ # the request asked for. `still-loading` only occurs with
77
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
78
+ # reached first, so the content reflects the DOM at that moment and late-rendering
79
+ # parts may be missing. Partial results are billed at the base request cost.
80
+ sig do
81
+ returns(
82
+ T.nilable(
83
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::TaggedSymbol
84
+ )
85
+ )
86
+ end
87
+ attr_reader :final_dom_state
88
+
89
+ sig do
90
+ params(
91
+ final_dom_state:
92
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::OrSymbol
93
+ ).void
94
+ end
95
+ attr_writer :final_dom_state
96
+
70
97
  # Credit usage, included whenever a valid API key is provided.
71
98
  sig do
72
99
  returns(
@@ -83,6 +110,15 @@ module ContextDev
83
110
  end
84
111
  attr_writer :key_metadata
85
112
 
113
+ # True when the deadline interrupted rendering or image enrichment. Partial
114
+ # results are billed at the base request cost, without enrichment or actions
115
+ # surcharges.
116
+ sig { returns(T.nilable(T::Boolean)) }
117
+ attr_reader :partial
118
+
119
+ sig { params(partial: T::Boolean).void }
120
+ attr_writer :partial
121
+
86
122
  sig do
87
123
  params(
88
124
  cache_metadata:
@@ -91,6 +127,7 @@ module ContextDev
91
127
  T::Array[
92
128
  ContextDev::Models::WebWebScrapeImagesResponse::Image::OrHash
93
129
  ],
130
+ request_id: String,
94
131
  success:
95
132
  ContextDev::Models::WebWebScrapeImagesResponse::Success::OrBoolean,
96
133
  url: String,
@@ -98,8 +135,11 @@ module ContextDev
98
135
  T::Array[
99
136
  ContextDev::Models::WebWebScrapeImagesResponse::ActionsApplied::OrHash
100
137
  ],
138
+ final_dom_state:
139
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::OrSymbol,
101
140
  key_metadata:
102
- ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata::OrHash
141
+ ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata::OrHash,
142
+ partial: T::Boolean
103
143
  ).returns(T.attached_class)
104
144
  end
105
145
  def self.new(
@@ -109,14 +149,27 @@ module ContextDev
109
149
  cache_metadata:,
110
150
  # Images found on the page.
111
151
  images:,
152
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
153
+ # it when contacting support about a failed request.
154
+ request_id:,
112
155
  # Always true on success.
113
156
  success:,
114
157
  # Page URL that was scraped.
115
158
  url:,
116
159
  # One verified outcome per requested browser action, in request order.
117
160
  actions_applied: nil,
161
+ # How complete the returned content is. `loaded` means the page finished the waits
162
+ # the request asked for. `still-loading` only occurs with
163
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
164
+ # reached first, so the content reflects the DOM at that moment and late-rendering
165
+ # parts may be missing. Partial results are billed at the base request cost.
166
+ final_dom_state: nil,
118
167
  # Credit usage, included whenever a valid API key is provided.
119
- key_metadata: nil
168
+ key_metadata: nil,
169
+ # True when the deadline interrupted rendering or image enrichment. Partial
170
+ # results are billed at the base request cost, without enrichment or actions
171
+ # surcharges.
172
+ partial: nil
120
173
  )
121
174
  end
122
175
 
@@ -127,6 +180,7 @@ module ContextDev
127
180
  ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata,
128
181
  images:
129
182
  T::Array[ContextDev::Models::WebWebScrapeImagesResponse::Image],
183
+ request_id: String,
130
184
  success:
131
185
  ContextDev::Models::WebWebScrapeImagesResponse::Success::TaggedBoolean,
132
186
  url: String,
@@ -134,8 +188,11 @@ module ContextDev
134
188
  T::Array[
135
189
  ContextDev::Models::WebWebScrapeImagesResponse::ActionsApplied
136
190
  ],
191
+ final_dom_state:
192
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::TaggedSymbol,
137
193
  key_metadata:
138
- ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata
194
+ ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata,
195
+ partial: T::Boolean
139
196
  }
140
197
  )
141
198
  end
@@ -770,6 +827,45 @@ module ContextDev
770
827
  end
771
828
  end
772
829
 
830
+ # How complete the returned content is. `loaded` means the page finished the waits
831
+ # the request asked for. `still-loading` only occurs with
832
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
833
+ # reached first, so the content reflects the DOM at that moment and late-rendering
834
+ # parts may be missing. Partial results are billed at the base request cost.
835
+ module FinalDomState
836
+ extend ContextDev::Internal::Type::Enum
837
+
838
+ TaggedSymbol =
839
+ T.type_alias do
840
+ T.all(
841
+ Symbol,
842
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState
843
+ )
844
+ end
845
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
846
+
847
+ LOADED =
848
+ T.let(
849
+ :loaded,
850
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::TaggedSymbol
851
+ )
852
+ STILL_LOADING =
853
+ T.let(
854
+ :"still-loading",
855
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::TaggedSymbol
856
+ )
857
+
858
+ sig do
859
+ override.returns(
860
+ T::Array[
861
+ ContextDev::Models::WebWebScrapeImagesResponse::FinalDomState::TaggedSymbol
862
+ ]
863
+ )
864
+ end
865
+ def self.values
866
+ end
867
+ end
868
+
773
869
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
774
870
  OrHash =
775
871
  T.type_alias do
@@ -137,14 +137,18 @@ module ContextDev
137
137
  sig { params(tags: T::Array[String]).void }
138
138
  attr_writer :tags
139
139
 
140
- # Optional timeout in milliseconds for the request. If the request takes longer
141
- # than this value, it will be aborted with a 408 status code. Maximum allowed
142
- # value is 300000ms (5 minutes).
143
- sig { returns(T.nilable(Integer)) }
144
- attr_reader :timeout_ms
140
+ # Optional request deadline and behavior on timeout. For GET requests, use
141
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
142
+ # timeoutOpts object.
143
+ sig { returns(T.nilable(ContextDev::WebWebScrapeMdParams::TimeoutOpts)) }
144
+ attr_reader :timeout_opts
145
145
 
146
- sig { params(timeout_ms: Integer).void }
147
- attr_writer :timeout_ms
146
+ sig do
147
+ params(
148
+ timeout_opts: ContextDev::WebWebScrapeMdParams::TimeoutOpts::OrHash
149
+ ).void
150
+ end
151
+ attr_writer :timeout_opts
148
152
 
149
153
  # Extract only the main content of the page, excluding headers, footers, sidebars,
150
154
  # and navigation
@@ -155,7 +159,9 @@ module ContextDev
155
159
  attr_writer :use_main_content_only
156
160
 
157
161
  # Optional browser wait time in milliseconds after initial page load before
158
- # converting the page to Markdown. Min: 0. Max: 30000 (30 seconds).
162
+ # converting the page to Markdown. Min: 0. Max: 30000 (30 seconds). When combined
163
+ # with timeoutOpts, timeoutOpts.milliseconds must be at least waitForMs + 10000
164
+ # ms; a shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
159
165
  sig { returns(T.nilable(Integer)) }
160
166
  attr_accessor :wait_for_ms
161
167
 
@@ -197,7 +203,7 @@ module ContextDev
197
203
  settle_animations: T::Boolean,
198
204
  shorten_base64_images: T::Boolean,
199
205
  tags: T::Array[String],
200
- timeout_ms: Integer,
206
+ timeout_opts: ContextDev::WebWebScrapeMdParams::TimeoutOpts::OrHash,
201
207
  use_main_content_only: T::Boolean,
202
208
  wait_for_ms: T.nilable(Integer),
203
209
  zdr: ContextDev::WebWebScrapeMdParams::Zdr::OrSymbol,
@@ -253,15 +259,17 @@ module ContextDev
253
259
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
254
260
  # characters.
255
261
  tags: nil,
256
- # Optional timeout in milliseconds for the request. If the request takes longer
257
- # than this value, it will be aborted with a 408 status code. Maximum allowed
258
- # value is 300000ms (5 minutes).
259
- timeout_ms: nil,
262
+ # Optional request deadline and behavior on timeout. For GET requests, use
263
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
264
+ # timeoutOpts object.
265
+ timeout_opts: nil,
260
266
  # Extract only the main content of the page, excluding headers, footers, sidebars,
261
267
  # and navigation
262
268
  use_main_content_only: nil,
263
269
  # Optional browser wait time in milliseconds after initial page load before
264
- # converting the page to Markdown. Min: 0. Max: 30000 (30 seconds).
270
+ # converting the page to Markdown. Min: 0. Max: 30000 (30 seconds). When combined
271
+ # with timeoutOpts, timeoutOpts.milliseconds must be at least waitForMs + 10000
272
+ # ms; a shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
265
273
  wait_for_ms: nil,
266
274
  # Set to enabled to bypass shared caches and omit request and response content
267
275
  # from retained usage logs. Requires zero data retention to be enabled for your
@@ -299,7 +307,7 @@ module ContextDev
299
307
  settle_animations: T::Boolean,
300
308
  shorten_base64_images: T::Boolean,
301
309
  tags: T::Array[String],
302
- timeout_ms: Integer,
310
+ timeout_opts: ContextDev::WebWebScrapeMdParams::TimeoutOpts,
303
311
  use_main_content_only: T::Boolean,
304
312
  wait_for_ms: T.nilable(Integer),
305
313
  zdr: ContextDev::WebWebScrapeMdParams::Zdr::OrSymbol,
@@ -903,6 +911,115 @@ module ContextDev
903
911
  end
904
912
  end
905
913
 
914
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
915
+ OrHash =
916
+ T.type_alias do
917
+ T.any(
918
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts,
919
+ ContextDev::Internal::AnyHash
920
+ )
921
+ end
922
+
923
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
924
+ sig { returns(Integer) }
925
+ attr_accessor :milliseconds
926
+
927
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
928
+ # credits. "return-partial" returns usable results collected so far; if none are
929
+ # available, the request still fails without charging credits. Partial results are
930
+ # not cached as complete results. "return-partial" requires milliseconds of at
931
+ # least 15000.
932
+ sig do
933
+ returns(
934
+ T.nilable(
935
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::OrSymbol
936
+ )
937
+ )
938
+ end
939
+ attr_reader :behavior
940
+
941
+ sig do
942
+ params(
943
+ behavior:
944
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::OrSymbol
945
+ ).void
946
+ end
947
+ attr_writer :behavior
948
+
949
+ # Optional request deadline and behavior on timeout. For GET requests, use
950
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
951
+ # timeoutOpts object.
952
+ sig do
953
+ params(
954
+ milliseconds: Integer,
955
+ behavior:
956
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::OrSymbol
957
+ ).returns(T.attached_class)
958
+ end
959
+ def self.new(
960
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
961
+ milliseconds:,
962
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
963
+ # credits. "return-partial" returns usable results collected so far; if none are
964
+ # available, the request still fails without charging credits. Partial results are
965
+ # not cached as complete results. "return-partial" requires milliseconds of at
966
+ # least 15000.
967
+ behavior: nil
968
+ )
969
+ end
970
+
971
+ sig do
972
+ override.returns(
973
+ {
974
+ milliseconds: Integer,
975
+ behavior:
976
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::OrSymbol
977
+ }
978
+ )
979
+ end
980
+ def to_hash
981
+ end
982
+
983
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
984
+ # credits. "return-partial" returns usable results collected so far; if none are
985
+ # available, the request still fails without charging credits. Partial results are
986
+ # not cached as complete results. "return-partial" requires milliseconds of at
987
+ # least 15000.
988
+ module Behavior
989
+ extend ContextDev::Internal::Type::Enum
990
+
991
+ TaggedSymbol =
992
+ T.type_alias do
993
+ T.all(
994
+ Symbol,
995
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior
996
+ )
997
+ end
998
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
999
+
1000
+ FAIL =
1001
+ T.let(
1002
+ :fail,
1003
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::TaggedSymbol
1004
+ )
1005
+ RETURN_PARTIAL =
1006
+ T.let(
1007
+ :"return-partial",
1008
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::TaggedSymbol
1009
+ )
1010
+
1011
+ sig do
1012
+ override.returns(
1013
+ T::Array[
1014
+ ContextDev::WebWebScrapeMdParams::TimeoutOpts::Behavior::TaggedSymbol
1015
+ ]
1016
+ )
1017
+ end
1018
+ def self.values
1019
+ end
1020
+ end
1021
+ end
1022
+
906
1023
  # Set to enabled to bypass shared caches and omit request and response content
907
1024
  # from retained usage logs. Requires zero data retention to be enabled for your
908
1025
  # organization (contact support@context.dev), otherwise the request fails with
@@ -31,6 +31,18 @@ module ContextDev
31
31
  sig { returns(Integer) }
32
32
  attr_accessor :content_length
33
33
 
34
+ # How complete the returned content is. `loaded` means the page finished the waits
35
+ # the request asked for. `still-loading` only occurs with
36
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
37
+ # reached first, so the content reflects the DOM at that moment and late-rendering
38
+ # parts may be missing. Partial results are billed at the base request cost.
39
+ sig do
40
+ returns(
41
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::TaggedSymbol
42
+ )
43
+ end
44
+ attr_accessor :final_dom_state
45
+
34
46
  # Page content converted to GitHub Flavored Markdown
35
47
  sig { returns(String) }
36
48
  attr_accessor :markdown
@@ -46,6 +58,11 @@ module ContextDev
46
58
  end
47
59
  attr_writer :metadata
48
60
 
61
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
62
+ # it when contacting support about a failed request.
63
+ sig { returns(String) }
64
+ attr_accessor :request_id
65
+
49
66
  # Indicates success
50
67
  sig do
51
68
  returns(
@@ -116,9 +133,12 @@ module ContextDev
116
133
  cache_metadata:
117
134
  ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::OrHash,
118
135
  content_length: Integer,
136
+ final_dom_state:
137
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::OrSymbol,
119
138
  markdown: String,
120
139
  metadata:
121
140
  ContextDev::Models::WebWebScrapeMdResponse::Metadata::OrHash,
141
+ request_id: String,
122
142
  success:
123
143
  ContextDev::Models::WebWebScrapeMdResponse::Success::OrBoolean,
124
144
  url: String,
@@ -141,10 +161,19 @@ module ContextDev
141
161
  # and compare small values against your workload's minimum useful-content
142
162
  # threshold.
143
163
  content_length:,
164
+ # How complete the returned content is. `loaded` means the page finished the waits
165
+ # the request asked for. `still-loading` only occurs with
166
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
167
+ # reached first, so the content reflects the DOM at that moment and late-rendering
168
+ # parts may be missing. Partial results are billed at the base request cost.
169
+ final_dom_state:,
144
170
  # Page content converted to GitHub Flavored Markdown
145
171
  markdown:,
146
172
  # Metadata extracted from the scraped page HTML.
147
173
  metadata:,
174
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
175
+ # it when contacting support about a failed request.
176
+ request_id:,
148
177
  # Indicates success
149
178
  success:,
150
179
  # The URL that was scraped
@@ -169,8 +198,11 @@ module ContextDev
169
198
  cache_metadata:
170
199
  ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata,
171
200
  content_length: Integer,
201
+ final_dom_state:
202
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::TaggedSymbol,
172
203
  markdown: String,
173
204
  metadata: ContextDev::Models::WebWebScrapeMdResponse::Metadata,
205
+ request_id: String,
174
206
  success:
175
207
  ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean,
176
208
  url: String,
@@ -283,6 +315,45 @@ module ContextDev
283
315
  end
284
316
  end
285
317
 
318
+ # How complete the returned content is. `loaded` means the page finished the waits
319
+ # the request asked for. `still-loading` only occurs with
320
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
321
+ # reached first, so the content reflects the DOM at that moment and late-rendering
322
+ # parts may be missing. Partial results are billed at the base request cost.
323
+ module FinalDomState
324
+ extend ContextDev::Internal::Type::Enum
325
+
326
+ TaggedSymbol =
327
+ T.type_alias do
328
+ T.all(
329
+ Symbol,
330
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState
331
+ )
332
+ end
333
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
334
+
335
+ LOADED =
336
+ T.let(
337
+ :loaded,
338
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::TaggedSymbol
339
+ )
340
+ STILL_LOADING =
341
+ T.let(
342
+ :"still-loading",
343
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::TaggedSymbol
344
+ )
345
+
346
+ sig do
347
+ override.returns(
348
+ T::Array[
349
+ ContextDev::Models::WebWebScrapeMdResponse::FinalDomState::TaggedSymbol
350
+ ]
351
+ )
352
+ end
353
+ def self.values
354
+ end
355
+ end
356
+
286
357
  class Metadata < ContextDev::Internal::Type::BaseModel
287
358
  OrHash =
288
359
  T.type_alias do