context.dev 2.16.0 → 2.17.1

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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  5. data/lib/context_dev/models/ai_extract_product_response.rb +10 -1
  6. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  7. data/lib/context_dev/models/ai_extract_products_response.rb +11 -1
  8. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  9. data/lib/context_dev/models/brand_retrieve_response.rb +71 -62
  10. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  11. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +72 -63
  12. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  13. data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -1
  14. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  15. data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -1
  16. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  17. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  18. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  19. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  20. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  21. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  22. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  23. data/lib/context_dev/models/person_enrich_response.rb +10 -1
  24. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  25. data/lib/context_dev/models/web_answers_params.rb +124 -0
  26. data/lib/context_dev/models/web_answers_response.rb +68 -0
  27. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  28. data/lib/context_dev/models/web_extract_competitors_response.rb +10 -1
  29. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  30. data/lib/context_dev/models/web_extract_fonts_response.rb +32 -1
  31. data/lib/context_dev/models/web_extract_params.rb +53 -8
  32. data/lib/context_dev/models/web_extract_response.rb +10 -1
  33. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  34. data/lib/context_dev/models/web_extract_styleguide_response.rb +32 -1
  35. data/lib/context_dev/models/web_screenshot_params.rb +58 -10
  36. data/lib/context_dev/models/web_screenshot_response.rb +32 -1
  37. data/lib/context_dev/models/web_search_params.rb +112 -16
  38. data/lib/context_dev/models/web_search_response.rb +49 -4
  39. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  40. data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -1
  41. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  42. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  43. data/lib/context_dev/models/web_web_scrape_html_params.rb +57 -10
  44. data/lib/context_dev/models/web_web_scrape_html_response.rb +32 -1
  45. data/lib/context_dev/models/web_web_scrape_images_params.rb +57 -10
  46. data/lib/context_dev/models/web_web_scrape_images_response.rb +42 -1
  47. data/lib/context_dev/models/web_web_scrape_md_params.rb +57 -10
  48. data/lib/context_dev/models/web_web_scrape_md_response.rb +32 -1
  49. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  50. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +11 -1
  51. data/lib/context_dev/models.rb +4 -0
  52. data/lib/context_dev/resources/ai.rb +2 -2
  53. data/lib/context_dev/resources/brand.rb +3 -3
  54. data/lib/context_dev/resources/industry.rb +6 -6
  55. data/lib/context_dev/resources/people.rb +2 -2
  56. data/lib/context_dev/resources/utility.rb +2 -2
  57. data/lib/context_dev/resources/web.rb +119 -33
  58. data/lib/context_dev/version.rb +1 -1
  59. data/lib/context_dev.rb +4 -0
  60. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  61. data/rbi/context_dev/models/ai_extract_product_response.rbi +13 -0
  62. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  63. data/rbi/context_dev/models/ai_extract_products_response.rbi +15 -0
  64. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  65. data/rbi/context_dev/models/brand_retrieve_response.rbi +136 -131
  66. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  67. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +140 -135
  68. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  69. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +13 -0
  70. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  71. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +13 -0
  72. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  73. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  74. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  75. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  76. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  77. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  78. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  79. data/rbi/context_dev/models/person_enrich_response.rbi +16 -3
  80. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  81. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  82. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  83. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  84. data/rbi/context_dev/models/web_extract_competitors_response.rbi +16 -3
  85. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  86. data/rbi/context_dev/models/web_extract_fonts_response.rbi +71 -0
  87. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  88. data/rbi/context_dev/models/web_extract_response.rbi +16 -3
  89. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  90. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +71 -0
  91. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -17
  92. data/rbi/context_dev/models/web_screenshot_response.rbi +71 -0
  93. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  94. data/rbi/context_dev/models/web_search_response.rbi +96 -8
  95. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  96. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +19 -3
  97. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  98. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  99. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +132 -17
  100. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +61 -0
  101. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +134 -17
  102. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +89 -3
  103. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +130 -17
  104. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +61 -0
  105. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  106. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +18 -3
  107. data/rbi/context_dev/models.rbi +4 -0
  108. data/rbi/context_dev/resources/ai.rbi +5 -5
  109. data/rbi/context_dev/resources/brand.rbi +9 -8
  110. data/rbi/context_dev/resources/industry.rbi +12 -10
  111. data/rbi/context_dev/resources/people.rbi +5 -5
  112. data/rbi/context_dev/resources/utility.rbi +5 -5
  113. data/rbi/context_dev/resources/web.rbi +170 -72
  114. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  115. data/sig/context_dev/models/ai_extract_product_response.rbs +7 -0
  116. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  117. data/sig/context_dev/models/ai_extract_products_response.rbs +7 -0
  118. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  119. data/sig/context_dev/models/brand_retrieve_response.rbs +53 -54
  120. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  121. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +53 -54
  122. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  123. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +7 -0
  124. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  125. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +7 -0
  126. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  127. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  128. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  129. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  130. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  131. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  132. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  133. data/sig/context_dev/models/person_enrich_response.rbs +10 -3
  134. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  135. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  136. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  137. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  138. data/sig/context_dev/models/web_extract_competitors_response.rbs +10 -3
  139. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  140. data/sig/context_dev/models/web_extract_fonts_response.rbs +20 -0
  141. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  142. data/sig/context_dev/models/web_extract_response.rbs +10 -3
  143. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  144. data/sig/context_dev/models/web_extract_styleguide_response.rbs +20 -0
  145. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  146. data/sig/context_dev/models/web_screenshot_response.rbs +20 -0
  147. data/sig/context_dev/models/web_search_params.rbs +88 -10
  148. data/sig/context_dev/models/web_search_response.rbs +33 -6
  149. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  150. data/sig/context_dev/models/web_web_crawl_md_response.rbs +10 -3
  151. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  152. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  153. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  154. data/sig/context_dev/models/web_web_scrape_html_response.rbs +16 -0
  155. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  156. data/sig/context_dev/models/web_web_scrape_images_response.rbs +30 -3
  157. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  158. data/sig/context_dev/models/web_web_scrape_md_response.rbs +16 -0
  159. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  160. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +10 -3
  161. data/sig/context_dev/models.rbs +4 -0
  162. data/sig/context_dev/resources/ai.rbs +1 -1
  163. data/sig/context_dev/resources/brand.rbs +1 -1
  164. data/sig/context_dev/resources/industry.rbs +2 -2
  165. data/sig/context_dev/resources/people.rbs +1 -1
  166. data/sig/context_dev/resources/utility.rbs +1 -1
  167. data/sig/context_dev/resources/web.rbs +30 -11
  168. metadata +14 -2
@@ -53,9 +53,9 @@ module ContextDev
53
53
  attr_writer :domain
54
54
 
55
55
  # Maximum age in milliseconds for cached brand data before the API performs a hard
56
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
57
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
58
- # year.
56
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
57
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
58
+ # are clamped to 1 year.
59
59
  sig { returns(T.nilable(Integer)) }
60
60
  attr_accessor :max_age_ms
61
61
 
@@ -67,14 +67,21 @@ module ContextDev
67
67
  sig { params(tags: T::Array[String]).void }
68
68
  attr_writer :tags
69
69
 
70
- # Optional timeout in milliseconds for the request. If the request takes longer
71
- # than this value, it will be aborted with a 408 status code. Maximum allowed
72
- # value is 300000ms (5 minutes).
73
- sig { returns(T.nilable(Integer)) }
74
- attr_reader :timeout_ms
70
+ # Optional request deadline and behavior on timeout. For GET requests, use
71
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
72
+ # timeoutOpts object.
73
+ sig do
74
+ returns(T.nilable(ContextDev::WebExtractStyleguideParams::TimeoutOpts))
75
+ end
76
+ attr_reader :timeout_opts
75
77
 
76
- sig { params(timeout_ms: Integer).void }
77
- attr_writer :timeout_ms
78
+ sig do
79
+ params(
80
+ timeout_opts:
81
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::OrHash
82
+ ).void
83
+ end
84
+ attr_writer :timeout_opts
78
85
 
79
86
  sig do
80
87
  params(
@@ -84,7 +91,8 @@ module ContextDev
84
91
  domain: String,
85
92
  max_age_ms: T.nilable(Integer),
86
93
  tags: T::Array[String],
87
- timeout_ms: Integer,
94
+ timeout_opts:
95
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::OrHash,
88
96
  request_options: ContextDev::RequestOptions::OrHash
89
97
  ).returns(T.attached_class)
90
98
  end
@@ -102,17 +110,17 @@ module ContextDev
102
110
  # 'domain' or 'directUrl', but not both.
103
111
  domain: nil,
104
112
  # Maximum age in milliseconds for cached brand data before the API performs a hard
105
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
106
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
107
- # year.
113
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
114
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
115
+ # are clamped to 1 year.
108
116
  max_age_ms: nil,
109
117
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
110
118
  # characters.
111
119
  tags: nil,
112
- # Optional timeout in milliseconds for the request. If the request takes longer
113
- # than this value, it will be aborted with a 408 status code. Maximum allowed
114
- # value is 300000ms (5 minutes).
115
- timeout_ms: nil,
120
+ # Optional request deadline and behavior on timeout. For GET requests, use
121
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
122
+ # timeoutOpts object.
123
+ timeout_opts: nil,
116
124
  request_options: {}
117
125
  )
118
126
  end
@@ -126,7 +134,7 @@ module ContextDev
126
134
  domain: String,
127
135
  max_age_ms: T.nilable(Integer),
128
136
  tags: T::Array[String],
129
- timeout_ms: Integer,
137
+ timeout_opts: ContextDev::WebExtractStyleguideParams::TimeoutOpts,
130
138
  request_options: ContextDev::RequestOptions
131
139
  }
132
140
  )
@@ -166,6 +174,115 @@ module ContextDev
166
174
  def self.values
167
175
  end
168
176
  end
177
+
178
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
179
+ OrHash =
180
+ T.type_alias do
181
+ T.any(
182
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts,
183
+ ContextDev::Internal::AnyHash
184
+ )
185
+ end
186
+
187
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
188
+ sig { returns(Integer) }
189
+ attr_accessor :milliseconds
190
+
191
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
192
+ # credits. "return-partial" returns usable results collected so far; if none are
193
+ # available, the request still fails without charging credits. Partial results are
194
+ # not cached as complete results. "return-partial" requires milliseconds of at
195
+ # least 15000.
196
+ sig do
197
+ returns(
198
+ T.nilable(
199
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
200
+ )
201
+ )
202
+ end
203
+ attr_reader :behavior
204
+
205
+ sig do
206
+ params(
207
+ behavior:
208
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
209
+ ).void
210
+ end
211
+ attr_writer :behavior
212
+
213
+ # Optional request deadline and behavior on timeout. For GET requests, use
214
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
215
+ # timeoutOpts object.
216
+ sig do
217
+ params(
218
+ milliseconds: Integer,
219
+ behavior:
220
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
221
+ ).returns(T.attached_class)
222
+ end
223
+ def self.new(
224
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
225
+ milliseconds:,
226
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
227
+ # credits. "return-partial" returns usable results collected so far; if none are
228
+ # available, the request still fails without charging credits. Partial results are
229
+ # not cached as complete results. "return-partial" requires milliseconds of at
230
+ # least 15000.
231
+ behavior: nil
232
+ )
233
+ end
234
+
235
+ sig do
236
+ override.returns(
237
+ {
238
+ milliseconds: Integer,
239
+ behavior:
240
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
241
+ }
242
+ )
243
+ end
244
+ def to_hash
245
+ end
246
+
247
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
248
+ # credits. "return-partial" returns usable results collected so far; if none are
249
+ # available, the request still fails without charging credits. Partial results are
250
+ # not cached as complete results. "return-partial" requires milliseconds of at
251
+ # least 15000.
252
+ module Behavior
253
+ extend ContextDev::Internal::Type::Enum
254
+
255
+ TaggedSymbol =
256
+ T.type_alias do
257
+ T.all(
258
+ Symbol,
259
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior
260
+ )
261
+ end
262
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
263
+
264
+ FAIL =
265
+ T.let(
266
+ :fail,
267
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
268
+ )
269
+ RETURN_PARTIAL =
270
+ T.let(
271
+ :"return-partial",
272
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
273
+ )
274
+
275
+ sig do
276
+ override.returns(
277
+ T::Array[
278
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
279
+ ]
280
+ )
281
+ end
282
+ def self.values
283
+ end
284
+ end
285
+ end
169
286
  end
170
287
  end
171
288
  end
@@ -46,6 +46,28 @@ module ContextDev
46
46
  sig { params(domain: String).void }
47
47
  attr_writer :domain
48
48
 
49
+ # How complete the returned content is. `loaded` means the page finished the waits
50
+ # the request asked for. `still-loading` only occurs with
51
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
52
+ # reached first, so the content reflects the DOM at that moment and late-rendering
53
+ # parts may be missing. Partial results are billed at the base request cost.
54
+ sig do
55
+ returns(
56
+ T.nilable(
57
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
58
+ )
59
+ )
60
+ end
61
+ attr_reader :final_dom_state
62
+
63
+ sig do
64
+ params(
65
+ final_dom_state:
66
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::OrSymbol
67
+ ).void
68
+ end
69
+ attr_writer :final_dom_state
70
+
49
71
  # Credit usage, included whenever a valid API key is provided.
50
72
  sig do
51
73
  returns(
@@ -96,6 +118,8 @@ module ContextDev
96
118
  request_id: String,
97
119
  code: Integer,
98
120
  domain: String,
121
+ final_dom_state:
122
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::OrSymbol,
99
123
  key_metadata:
100
124
  ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata::OrHash,
101
125
  status: String,
@@ -115,6 +139,12 @@ module ContextDev
115
139
  code: nil,
116
140
  # The normalized domain that was processed
117
141
  domain: nil,
142
+ # How complete the returned content is. `loaded` means the page finished the waits
143
+ # the request asked for. `still-loading` only occurs with
144
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
145
+ # reached first, so the content reflects the DOM at that moment and late-rendering
146
+ # parts may be missing. Partial results are billed at the base request cost.
147
+ final_dom_state: nil,
118
148
  # Credit usage, included whenever a valid API key is provided.
119
149
  key_metadata: nil,
120
150
  # Status of the response, e.g., 'ok'
@@ -132,6 +162,8 @@ module ContextDev
132
162
  request_id: String,
133
163
  code: Integer,
134
164
  domain: String,
165
+ final_dom_state:
166
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol,
135
167
  key_metadata:
136
168
  ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata,
137
169
  status: String,
@@ -238,6 +270,45 @@ module ContextDev
238
270
  end
239
271
  end
240
272
 
273
+ # How complete the returned content is. `loaded` means the page finished the waits
274
+ # the request asked for. `still-loading` only occurs with
275
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
276
+ # reached first, so the content reflects the DOM at that moment and late-rendering
277
+ # parts may be missing. Partial results are billed at the base request cost.
278
+ module FinalDomState
279
+ extend ContextDev::Internal::Type::Enum
280
+
281
+ TaggedSymbol =
282
+ T.type_alias do
283
+ T.all(
284
+ Symbol,
285
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState
286
+ )
287
+ end
288
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
289
+
290
+ LOADED =
291
+ T.let(
292
+ :loaded,
293
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
294
+ )
295
+ STILL_LOADING =
296
+ T.let(
297
+ :"still-loading",
298
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
299
+ )
300
+
301
+ sig do
302
+ override.returns(
303
+ T::Array[
304
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
305
+ ]
306
+ )
307
+ end
308
+ def self.values
309
+ end
310
+ end
311
+
241
312
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
242
313
  OrHash =
243
314
  T.type_alias do
@@ -131,14 +131,18 @@ module ContextDev
131
131
  sig { params(tags: T::Array[String]).void }
132
132
  attr_writer :tags
133
133
 
134
- # Optional timeout in milliseconds for the request. If the request takes longer
135
- # than this value, it will be aborted with a 408 status code. Maximum allowed
136
- # value is 300000ms (5 minutes).
137
- sig { returns(T.nilable(Integer)) }
138
- attr_reader :timeout_ms
134
+ # Optional request deadline and behavior on timeout. For GET requests, use
135
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
136
+ # timeoutOpts object.
137
+ sig { returns(T.nilable(ContextDev::WebScreenshotParams::TimeoutOpts)) }
138
+ attr_reader :timeout_opts
139
139
 
140
- sig { params(timeout_ms: Integer).void }
141
- attr_writer :timeout_ms
140
+ sig do
141
+ params(
142
+ timeout_opts: ContextDev::WebScreenshotParams::TimeoutOpts::OrHash
143
+ ).void
144
+ end
145
+ attr_writer :timeout_opts
142
146
 
143
147
  # Optional browser viewport dimensions for the screenshot. Defaults to 1920x1080.
144
148
  sig { returns(T.nilable(ContextDev::WebScreenshotParams::Viewport)) }
@@ -151,8 +155,9 @@ module ContextDev
151
155
 
152
156
  # Optional browser wait time in milliseconds after initial page load before taking
153
157
  # the screenshot. Min: 0. Max: 30000 (30 seconds). Defaults to 3000 ms when
154
- # omitted. When combined with timeoutMS, timeoutMS must be at least waitForMs +
155
- # 10000 ms; a shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
158
+ # omitted. When combined with timeoutOpts, timeoutOpts.milliseconds must be at
159
+ # least waitForMs + 10000 ms; a shorter deadline is rejected with 400
160
+ # TIMEOUT_TOO_SHORT_FOR_WAIT.
156
161
  sig { returns(T.nilable(Integer)) }
157
162
  attr_accessor :wait_for_ms
158
163
 
@@ -180,7 +185,7 @@ module ContextDev
180
185
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
181
186
  scroll_offset: T.nilable(Integer),
182
187
  tags: T::Array[String],
183
- timeout_ms: Integer,
188
+ timeout_opts: ContextDev::WebScreenshotParams::TimeoutOpts::OrHash,
184
189
  viewport: ContextDev::WebScreenshotParams::Viewport::OrHash,
185
190
  wait_for_ms: T.nilable(Integer),
186
191
  zdr: ContextDev::WebScreenshotParams::Zdr::OrSymbol,
@@ -236,16 +241,17 @@ module ContextDev
236
241
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
237
242
  # characters.
238
243
  tags: nil,
239
- # Optional timeout in milliseconds for the request. If the request takes longer
240
- # than this value, it will be aborted with a 408 status code. Maximum allowed
241
- # value is 300000ms (5 minutes).
242
- timeout_ms: nil,
244
+ # Optional request deadline and behavior on timeout. For GET requests, use
245
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
246
+ # timeoutOpts object.
247
+ timeout_opts: nil,
243
248
  # Optional browser viewport dimensions for the screenshot. Defaults to 1920x1080.
244
249
  viewport: nil,
245
250
  # Optional browser wait time in milliseconds after initial page load before taking
246
251
  # the screenshot. Min: 0. Max: 30000 (30 seconds). Defaults to 3000 ms when
247
- # omitted. When combined with timeoutMS, timeoutMS must be at least waitForMs +
248
- # 10000 ms; a shorter deadline is rejected with 400 TIMEOUT_TOO_SHORT_FOR_WAIT.
252
+ # omitted. When combined with timeoutOpts, timeoutOpts.milliseconds must be at
253
+ # least waitForMs + 10000 ms; a shorter deadline is rejected with 400
254
+ # TIMEOUT_TOO_SHORT_FOR_WAIT.
249
255
  wait_for_ms: nil,
250
256
  # Set to enabled to bypass shared caches and omit request and response content
251
257
  # from retained usage logs. Requires zero data retention to be enabled for your
@@ -272,7 +278,7 @@ module ContextDev
272
278
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
273
279
  scroll_offset: T.nilable(Integer),
274
280
  tags: T::Array[String],
275
- timeout_ms: Integer,
281
+ timeout_opts: ContextDev::WebScreenshotParams::TimeoutOpts,
276
282
  viewport: ContextDev::WebScreenshotParams::Viewport,
277
283
  wait_for_ms: T.nilable(Integer),
278
284
  zdr: ContextDev::WebScreenshotParams::Zdr::OrSymbol,
@@ -610,6 +616,115 @@ module ContextDev
610
616
  end
611
617
  end
612
618
 
619
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
620
+ OrHash =
621
+ T.type_alias do
622
+ T.any(
623
+ ContextDev::WebScreenshotParams::TimeoutOpts,
624
+ ContextDev::Internal::AnyHash
625
+ )
626
+ end
627
+
628
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
629
+ sig { returns(Integer) }
630
+ attr_accessor :milliseconds
631
+
632
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
633
+ # credits. "return-partial" returns usable results collected so far; if none are
634
+ # available, the request still fails without charging credits. Partial results are
635
+ # not cached as complete results. "return-partial" requires milliseconds of at
636
+ # least 15000.
637
+ sig do
638
+ returns(
639
+ T.nilable(
640
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::OrSymbol
641
+ )
642
+ )
643
+ end
644
+ attr_reader :behavior
645
+
646
+ sig do
647
+ params(
648
+ behavior:
649
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::OrSymbol
650
+ ).void
651
+ end
652
+ attr_writer :behavior
653
+
654
+ # Optional request deadline and behavior on timeout. For GET requests, use
655
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
656
+ # timeoutOpts object.
657
+ sig do
658
+ params(
659
+ milliseconds: Integer,
660
+ behavior:
661
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::OrSymbol
662
+ ).returns(T.attached_class)
663
+ end
664
+ def self.new(
665
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
666
+ milliseconds:,
667
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
668
+ # credits. "return-partial" returns usable results collected so far; if none are
669
+ # available, the request still fails without charging credits. Partial results are
670
+ # not cached as complete results. "return-partial" requires milliseconds of at
671
+ # least 15000.
672
+ behavior: nil
673
+ )
674
+ end
675
+
676
+ sig do
677
+ override.returns(
678
+ {
679
+ milliseconds: Integer,
680
+ behavior:
681
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::OrSymbol
682
+ }
683
+ )
684
+ end
685
+ def to_hash
686
+ end
687
+
688
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
689
+ # credits. "return-partial" returns usable results collected so far; if none are
690
+ # available, the request still fails without charging credits. Partial results are
691
+ # not cached as complete results. "return-partial" requires milliseconds of at
692
+ # least 15000.
693
+ module Behavior
694
+ extend ContextDev::Internal::Type::Enum
695
+
696
+ TaggedSymbol =
697
+ T.type_alias do
698
+ T.all(
699
+ Symbol,
700
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior
701
+ )
702
+ end
703
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
704
+
705
+ FAIL =
706
+ T.let(
707
+ :fail,
708
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::TaggedSymbol
709
+ )
710
+ RETURN_PARTIAL =
711
+ T.let(
712
+ :"return-partial",
713
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::TaggedSymbol
714
+ )
715
+
716
+ sig do
717
+ override.returns(
718
+ T::Array[
719
+ ContextDev::WebScreenshotParams::TimeoutOpts::Behavior::TaggedSymbol
720
+ ]
721
+ )
722
+ end
723
+ def self.values
724
+ end
725
+ end
726
+ end
727
+
613
728
  class Viewport < ContextDev::Internal::Type::BaseModel
614
729
  OrHash =
615
730
  T.type_alias do
@@ -44,6 +44,28 @@ module ContextDev
44
44
  sig { params(domain: String).void }
45
45
  attr_writer :domain
46
46
 
47
+ # How complete the returned content is. `loaded` means the page finished the waits
48
+ # the request asked for. `still-loading` only occurs with
49
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
50
+ # reached first, so the content reflects the DOM at that moment and late-rendering
51
+ # parts may be missing. Partial results are billed at the base request cost.
52
+ sig do
53
+ returns(
54
+ T.nilable(
55
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::TaggedSymbol
56
+ )
57
+ )
58
+ end
59
+ attr_reader :final_dom_state
60
+
61
+ sig do
62
+ params(
63
+ final_dom_state:
64
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::OrSymbol
65
+ ).void
66
+ end
67
+ attr_writer :final_dom_state
68
+
47
69
  # Height in pixels of the returned screenshot image
48
70
  sig { returns(T.nilable(Integer)) }
49
71
  attr_reader :height
@@ -114,6 +136,8 @@ module ContextDev
114
136
  request_id: String,
115
137
  code: Integer,
116
138
  domain: String,
139
+ final_dom_state:
140
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::OrSymbol,
117
141
  height: Integer,
118
142
  key_metadata:
119
143
  ContextDev::Models::WebScreenshotResponse::KeyMetadata::OrHash,
@@ -136,6 +160,12 @@ module ContextDev
136
160
  code: nil,
137
161
  # The normalized domain that was processed
138
162
  domain: nil,
163
+ # How complete the returned content is. `loaded` means the page finished the waits
164
+ # the request asked for. `still-loading` only occurs with
165
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
166
+ # reached first, so the content reflects the DOM at that moment and late-rendering
167
+ # parts may be missing. Partial results are billed at the base request cost.
168
+ final_dom_state: nil,
139
169
  # Height in pixels of the returned screenshot image
140
170
  height: nil,
141
171
  # Credit usage, included whenever a valid API key is provided.
@@ -160,6 +190,8 @@ module ContextDev
160
190
  request_id: String,
161
191
  code: Integer,
162
192
  domain: String,
193
+ final_dom_state:
194
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::TaggedSymbol,
163
195
  height: Integer,
164
196
  key_metadata:
165
197
  ContextDev::Models::WebScreenshotResponse::KeyMetadata,
@@ -269,6 +301,45 @@ module ContextDev
269
301
  end
270
302
  end
271
303
 
304
+ # How complete the returned content is. `loaded` means the page finished the waits
305
+ # the request asked for. `still-loading` only occurs with
306
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
307
+ # reached first, so the content reflects the DOM at that moment and late-rendering
308
+ # parts may be missing. Partial results are billed at the base request cost.
309
+ module FinalDomState
310
+ extend ContextDev::Internal::Type::Enum
311
+
312
+ TaggedSymbol =
313
+ T.type_alias do
314
+ T.all(
315
+ Symbol,
316
+ ContextDev::Models::WebScreenshotResponse::FinalDomState
317
+ )
318
+ end
319
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
320
+
321
+ LOADED =
322
+ T.let(
323
+ :loaded,
324
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::TaggedSymbol
325
+ )
326
+ STILL_LOADING =
327
+ T.let(
328
+ :"still-loading",
329
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::TaggedSymbol
330
+ )
331
+
332
+ sig do
333
+ override.returns(
334
+ T::Array[
335
+ ContextDev::Models::WebScreenshotResponse::FinalDomState::TaggedSymbol
336
+ ]
337
+ )
338
+ end
339
+ def self.values
340
+ end
341
+ end
342
+
272
343
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
273
344
  OrHash =
274
345
  T.type_alias do