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
@@ -37,14 +37,18 @@ module ContextDev
37
37
  sig { params(tags: T::Array[String]).void }
38
38
  attr_writer :tags
39
39
 
40
- # Optional timeout in milliseconds for the request. If the request takes longer
41
- # than this value, it will be aborted with a 408 status code. Maximum allowed
42
- # value is 300000ms (5 minutes).
43
- sig { returns(T.nilable(Integer)) }
44
- attr_reader :timeout_ms
40
+ # Optional request deadline and behavior on timeout. For GET requests, use
41
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
42
+ # timeoutOpts object.
43
+ sig { returns(T.nilable(ContextDev::UtilityPrefetchParams::TimeoutOpts)) }
44
+ attr_reader :timeout_opts
45
45
 
46
- sig { params(timeout_ms: Integer).void }
47
- attr_writer :timeout_ms
46
+ sig do
47
+ params(
48
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts::OrHash
49
+ ).void
50
+ end
51
+ attr_writer :timeout_opts
48
52
 
49
53
  sig do
50
54
  params(
@@ -55,7 +59,7 @@ module ContextDev
55
59
  ),
56
60
  type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
57
61
  tags: T::Array[String],
58
- timeout_ms: Integer,
62
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts::OrHash,
59
63
  request_options: ContextDev::RequestOptions::OrHash
60
64
  ).returns(T.attached_class)
61
65
  end
@@ -67,10 +71,10 @@ module ContextDev
67
71
  type:,
68
72
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
69
73
  tags: nil,
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
- timeout_ms: nil,
74
+ # Optional request deadline and behavior on timeout. For GET requests, use
75
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
76
+ # timeoutOpts object.
77
+ timeout_opts: nil,
74
78
  request_options: {}
75
79
  )
76
80
  end
@@ -85,7 +89,7 @@ module ContextDev
85
89
  ),
86
90
  type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
87
91
  tags: T::Array[String],
88
- timeout_ms: Integer,
92
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts,
89
93
  request_options: ContextDev::RequestOptions
90
94
  }
91
95
  )
@@ -197,6 +201,101 @@ module ContextDev
197
201
  def self.values
198
202
  end
199
203
  end
204
+
205
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
206
+ OrHash =
207
+ T.type_alias do
208
+ T.any(
209
+ ContextDev::UtilityPrefetchParams::TimeoutOpts,
210
+ ContextDev::Internal::AnyHash
211
+ )
212
+ end
213
+
214
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
215
+ sig { returns(Integer) }
216
+ attr_accessor :milliseconds
217
+
218
+ # What to do at the deadline. This endpoint supports "fail": return 408
219
+ # REQUEST_TIMEOUT without charging credits.
220
+ sig do
221
+ returns(
222
+ T.nilable(
223
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
224
+ )
225
+ )
226
+ end
227
+ attr_reader :behavior
228
+
229
+ sig do
230
+ params(
231
+ behavior:
232
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
233
+ ).void
234
+ end
235
+ attr_writer :behavior
236
+
237
+ # Optional request deadline and behavior on timeout. For GET requests, use
238
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
239
+ # timeoutOpts object.
240
+ sig do
241
+ params(
242
+ milliseconds: Integer,
243
+ behavior:
244
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
245
+ ).returns(T.attached_class)
246
+ end
247
+ def self.new(
248
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
249
+ milliseconds:,
250
+ # What to do at the deadline. This endpoint supports "fail": return 408
251
+ # REQUEST_TIMEOUT without charging credits.
252
+ behavior: nil
253
+ )
254
+ end
255
+
256
+ sig do
257
+ override.returns(
258
+ {
259
+ milliseconds: Integer,
260
+ behavior:
261
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
262
+ }
263
+ )
264
+ end
265
+ def to_hash
266
+ end
267
+
268
+ # What to do at the deadline. This endpoint supports "fail": return 408
269
+ # REQUEST_TIMEOUT without charging credits.
270
+ module Behavior
271
+ extend ContextDev::Internal::Type::Enum
272
+
273
+ TaggedSymbol =
274
+ T.type_alias do
275
+ T.all(
276
+ Symbol,
277
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior
278
+ )
279
+ end
280
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
281
+
282
+ FAIL =
283
+ T.let(
284
+ :fail,
285
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::TaggedSymbol
286
+ )
287
+
288
+ sig do
289
+ override.returns(
290
+ T::Array[
291
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::TaggedSymbol
292
+ ]
293
+ )
294
+ end
295
+ def self.values
296
+ end
297
+ end
298
+ end
200
299
  end
201
300
  end
202
301
  end
@@ -11,6 +11,11 @@ module ContextDev
11
11
  )
12
12
  end
13
13
 
14
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
15
+ # it when contacting support about a failed request.
16
+ sig { returns(String) }
17
+ attr_accessor :request_id
18
+
14
19
  # The domain that was queued for prefetching
15
20
  sig { returns(T.nilable(String)) }
16
21
  attr_reader :domain
@@ -67,6 +72,7 @@ module ContextDev
67
72
 
68
73
  sig do
69
74
  params(
75
+ request_id: String,
70
76
  domain: String,
71
77
  key_metadata:
72
78
  ContextDev::Models::UtilityPrefetchResponse::KeyMetadata::OrHash,
@@ -76,6 +82,9 @@ module ContextDev
76
82
  ).returns(T.attached_class)
77
83
  end
78
84
  def self.new(
85
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
86
+ # it when contacting support about a failed request.
87
+ request_id:,
79
88
  # The domain that was queued for prefetching
80
89
  domain: nil,
81
90
  # Credit usage, included whenever a valid API key is provided.
@@ -92,6 +101,7 @@ module ContextDev
92
101
  sig do
93
102
  override.returns(
94
103
  {
104
+ request_id: String,
95
105
  domain: String,
96
106
  key_metadata:
97
107
  ContextDev::Models::UtilityPrefetchResponse::KeyMetadata,
@@ -0,0 +1,234 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class WebAnswersParams < ContextDev::Internal::Type::BaseModel
6
+ extend ContextDev::Internal::Type::RequestParameters::Converter
7
+ include ContextDev::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(ContextDev::WebAnswersParams, ContextDev::Internal::AnyHash)
12
+ end
13
+
14
+ # What to research and answer, in plain language. Naming a domain in the task (for
15
+ # example "pricing on context.dev") makes the agent read that site before it
16
+ # searches.
17
+ sig { returns(String) }
18
+ attr_accessor :task
19
+
20
+ # An example object with placeholder values (for example {"pricing_page_url": "",
21
+ # "plans": [{"name": "", "price": 0}]}). Object keys and value types are
22
+ # preserved; unknown values may be null. Empty arrays accept any JSON items.
23
+ # Defaults to {"result": ""}. Maximum 8 levels, 500 values, and 16000 characters.
24
+ sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
25
+ attr_reader :json_format
26
+
27
+ sig { params(json_format: T::Hash[Symbol, T.anything]).void }
28
+ attr_writer :json_format
29
+
30
+ # Research level: fast uses a smaller model and research budget for 10 credits;
31
+ # ultra uses deeper reasoning and research for 100 credits. Defaults to ultra.
32
+ # Only successful requests consume credits.
33
+ sig { returns(T.nilable(ContextDev::WebAnswersParams::Mode::OrSymbol)) }
34
+ attr_reader :mode
35
+
36
+ sig { params(mode: ContextDev::WebAnswersParams::Mode::OrSymbol).void }
37
+ attr_writer :mode
38
+
39
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
40
+ sig { returns(T.nilable(T::Array[String])) }
41
+ attr_reader :tags
42
+
43
+ sig { params(tags: T::Array[String]).void }
44
+ attr_writer :tags
45
+
46
+ # Optional request deadline and behavior on timeout. For GET requests, use
47
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
48
+ # timeoutOpts object.
49
+ sig { returns(T.nilable(ContextDev::WebAnswersParams::TimeoutOpts)) }
50
+ attr_reader :timeout_opts
51
+
52
+ sig do
53
+ params(
54
+ timeout_opts: ContextDev::WebAnswersParams::TimeoutOpts::OrHash
55
+ ).void
56
+ end
57
+ attr_writer :timeout_opts
58
+
59
+ sig do
60
+ params(
61
+ task: String,
62
+ json_format: T::Hash[Symbol, T.anything],
63
+ mode: ContextDev::WebAnswersParams::Mode::OrSymbol,
64
+ tags: T::Array[String],
65
+ timeout_opts: ContextDev::WebAnswersParams::TimeoutOpts::OrHash,
66
+ request_options: ContextDev::RequestOptions::OrHash
67
+ ).returns(T.attached_class)
68
+ end
69
+ def self.new(
70
+ # What to research and answer, in plain language. Naming a domain in the task (for
71
+ # example "pricing on context.dev") makes the agent read that site before it
72
+ # searches.
73
+ task:,
74
+ # An example object with placeholder values (for example {"pricing_page_url": "",
75
+ # "plans": [{"name": "", "price": 0}]}). Object keys and value types are
76
+ # preserved; unknown values may be null. Empty arrays accept any JSON items.
77
+ # Defaults to {"result": ""}. Maximum 8 levels, 500 values, and 16000 characters.
78
+ json_format: nil,
79
+ # Research level: fast uses a smaller model and research budget for 10 credits;
80
+ # ultra uses deeper reasoning and research for 100 credits. Defaults to ultra.
81
+ # Only successful requests consume credits.
82
+ mode: nil,
83
+ # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
84
+ tags: nil,
85
+ # Optional request deadline and behavior on timeout. For GET requests, use
86
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
87
+ # timeoutOpts object.
88
+ timeout_opts: nil,
89
+ request_options: {}
90
+ )
91
+ end
92
+
93
+ sig do
94
+ override.returns(
95
+ {
96
+ task: String,
97
+ json_format: T::Hash[Symbol, T.anything],
98
+ mode: ContextDev::WebAnswersParams::Mode::OrSymbol,
99
+ tags: T::Array[String],
100
+ timeout_opts: ContextDev::WebAnswersParams::TimeoutOpts,
101
+ request_options: ContextDev::RequestOptions
102
+ }
103
+ )
104
+ end
105
+ def to_hash
106
+ end
107
+
108
+ # Research level: fast uses a smaller model and research budget for 10 credits;
109
+ # ultra uses deeper reasoning and research for 100 credits. Defaults to ultra.
110
+ # Only successful requests consume credits.
111
+ module Mode
112
+ extend ContextDev::Internal::Type::Enum
113
+
114
+ TaggedSymbol =
115
+ T.type_alias { T.all(Symbol, ContextDev::WebAnswersParams::Mode) }
116
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
117
+
118
+ FAST = T.let(:fast, ContextDev::WebAnswersParams::Mode::TaggedSymbol)
119
+ ULTRA = T.let(:ultra, ContextDev::WebAnswersParams::Mode::TaggedSymbol)
120
+
121
+ sig do
122
+ override.returns(
123
+ T::Array[ContextDev::WebAnswersParams::Mode::TaggedSymbol]
124
+ )
125
+ end
126
+ def self.values
127
+ end
128
+ end
129
+
130
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
131
+ OrHash =
132
+ T.type_alias do
133
+ T.any(
134
+ ContextDev::WebAnswersParams::TimeoutOpts,
135
+ ContextDev::Internal::AnyHash
136
+ )
137
+ end
138
+
139
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
140
+ sig { returns(Integer) }
141
+ attr_accessor :milliseconds
142
+
143
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
144
+ # credits. "return-partial" returns usable results collected so far; if none are
145
+ # available, the request still fails without charging credits. Partial results are
146
+ # not cached as complete results.
147
+ sig do
148
+ returns(
149
+ T.nilable(
150
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::OrSymbol
151
+ )
152
+ )
153
+ end
154
+ attr_reader :behavior
155
+
156
+ sig do
157
+ params(
158
+ behavior:
159
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::OrSymbol
160
+ ).void
161
+ end
162
+ attr_writer :behavior
163
+
164
+ # Optional request deadline and behavior on timeout. For GET requests, use
165
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
166
+ # timeoutOpts object.
167
+ sig do
168
+ params(
169
+ milliseconds: Integer,
170
+ behavior:
171
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::OrSymbol
172
+ ).returns(T.attached_class)
173
+ end
174
+ def self.new(
175
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
176
+ milliseconds:,
177
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
178
+ # credits. "return-partial" returns usable results collected so far; if none are
179
+ # available, the request still fails without charging credits. Partial results are
180
+ # not cached as complete results.
181
+ behavior: nil
182
+ )
183
+ end
184
+
185
+ sig do
186
+ override.returns(
187
+ {
188
+ milliseconds: Integer,
189
+ behavior:
190
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::OrSymbol
191
+ }
192
+ )
193
+ end
194
+ def to_hash
195
+ end
196
+
197
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
198
+ # credits. "return-partial" returns usable results collected so far; if none are
199
+ # available, the request still fails without charging credits. Partial results are
200
+ # not cached as complete results.
201
+ module Behavior
202
+ extend ContextDev::Internal::Type::Enum
203
+
204
+ TaggedSymbol =
205
+ T.type_alias do
206
+ T.all(Symbol, ContextDev::WebAnswersParams::TimeoutOpts::Behavior)
207
+ end
208
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
209
+
210
+ FAIL =
211
+ T.let(
212
+ :fail,
213
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::TaggedSymbol
214
+ )
215
+ RETURN_PARTIAL =
216
+ T.let(
217
+ :"return-partial",
218
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::TaggedSymbol
219
+ )
220
+
221
+ sig do
222
+ override.returns(
223
+ T::Array[
224
+ ContextDev::WebAnswersParams::TimeoutOpts::Behavior::TaggedSymbol
225
+ ]
226
+ )
227
+ end
228
+ def self.values
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
234
+ end
@@ -0,0 +1,122 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class WebAnswersResponse < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ContextDev::Models::WebAnswersResponse,
10
+ ContextDev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ # The answer, in the shape requested by json_format.
15
+ sig { returns(T::Hash[Symbol, T.anything]) }
16
+ attr_accessor :json_content
17
+
18
+ # URLs that supplied search results or readable page content, in first-seen order.
19
+ # Unreadable pages are excluded.
20
+ sig { returns(T::Array[String]) }
21
+ attr_accessor :sources
22
+
23
+ # Credit usage, included whenever a valid API key is provided.
24
+ sig do
25
+ returns(T.nilable(ContextDev::Models::WebAnswersResponse::KeyMetadata))
26
+ end
27
+ attr_reader :key_metadata
28
+
29
+ sig do
30
+ params(
31
+ key_metadata:
32
+ ContextDev::Models::WebAnswersResponse::KeyMetadata::OrHash
33
+ ).void
34
+ end
35
+ attr_writer :key_metadata
36
+
37
+ # True when the request deadline ended research and the answer uses the evidence
38
+ # collected so far.
39
+ sig { returns(T.nilable(T::Boolean)) }
40
+ attr_reader :partial
41
+
42
+ sig { params(partial: T::Boolean).void }
43
+ attr_writer :partial
44
+
45
+ sig do
46
+ params(
47
+ json_content: T::Hash[Symbol, T.anything],
48
+ sources: T::Array[String],
49
+ key_metadata:
50
+ ContextDev::Models::WebAnswersResponse::KeyMetadata::OrHash,
51
+ partial: T::Boolean
52
+ ).returns(T.attached_class)
53
+ end
54
+ def self.new(
55
+ # The answer, in the shape requested by json_format.
56
+ json_content:,
57
+ # URLs that supplied search results or readable page content, in first-seen order.
58
+ # Unreadable pages are excluded.
59
+ sources:,
60
+ # Credit usage, included whenever a valid API key is provided.
61
+ key_metadata: nil,
62
+ # True when the request deadline ended research and the answer uses the evidence
63
+ # collected so far.
64
+ partial: nil
65
+ )
66
+ end
67
+
68
+ sig do
69
+ override.returns(
70
+ {
71
+ json_content: T::Hash[Symbol, T.anything],
72
+ sources: T::Array[String],
73
+ key_metadata: ContextDev::Models::WebAnswersResponse::KeyMetadata,
74
+ partial: T::Boolean
75
+ }
76
+ )
77
+ end
78
+ def to_hash
79
+ end
80
+
81
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
82
+ OrHash =
83
+ T.type_alias do
84
+ T.any(
85
+ ContextDev::Models::WebAnswersResponse::KeyMetadata,
86
+ ContextDev::Internal::AnyHash
87
+ )
88
+ end
89
+
90
+ # Credits used by this request.
91
+ sig { returns(Integer) }
92
+ attr_accessor :credits_consumed
93
+
94
+ # Credits remaining for your organization.
95
+ sig { returns(Integer) }
96
+ attr_accessor :credits_remaining
97
+
98
+ # Credit usage, included whenever a valid API key is provided.
99
+ sig do
100
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
101
+ T.attached_class
102
+ )
103
+ end
104
+ def self.new(
105
+ # Credits used by this request.
106
+ credits_consumed:,
107
+ # Credits remaining for your organization.
108
+ credits_remaining:
109
+ )
110
+ end
111
+
112
+ sig do
113
+ override.returns(
114
+ { credits_consumed: Integer, credits_remaining: Integer }
115
+ )
116
+ end
117
+ def to_hash
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end