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
@@ -27,6 +27,11 @@ module ContextDev
27
27
  end
28
28
  attr_writer :cache_metadata
29
29
 
30
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
31
+ # it when contacting support about a failed request.
32
+ sig { returns(String) }
33
+ attr_accessor :request_id
34
+
30
35
  # Whether the given URL is a product detail page
31
36
  sig { returns(T.nilable(T::Boolean)) }
32
37
  attr_reader :is_product_page
@@ -50,6 +55,14 @@ module ContextDev
50
55
  end
51
56
  attr_writer :key_metadata
52
57
 
58
+ # True when the timeout ended processing and this response contains only usable
59
+ # results completed so far. Unfinished results are omitted.
60
+ sig { returns(T.nilable(T::Boolean)) }
61
+ attr_reader :partial
62
+
63
+ sig { params(partial: T::Boolean).void }
64
+ attr_writer :partial
65
+
53
66
  # The detected ecommerce platform, or null if not a product page
54
67
  sig do
55
68
  returns(
@@ -82,9 +95,11 @@ module ContextDev
82
95
  params(
83
96
  cache_metadata:
84
97
  ContextDev::Models::AIExtractProductResponse::CacheMetadata::OrHash,
98
+ request_id: String,
85
99
  is_product_page: T::Boolean,
86
100
  key_metadata:
87
101
  ContextDev::Models::AIExtractProductResponse::KeyMetadata::OrHash,
102
+ partial: T::Boolean,
88
103
  platform:
89
104
  T.nilable(
90
105
  ContextDev::Models::AIExtractProductResponse::Platform::OrSymbol
@@ -100,10 +115,16 @@ module ContextDev
100
115
  # cache-controlled fetch contributing to the output was a hit; age_ms is the
101
116
  # oldest contributing hit.
102
117
  cache_metadata:,
118
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
119
+ # it when contacting support about a failed request.
120
+ request_id:,
103
121
  # Whether the given URL is a product detail page
104
122
  is_product_page: nil,
105
123
  # Credit usage, included whenever a valid API key is provided.
106
124
  key_metadata: nil,
125
+ # True when the timeout ended processing and this response contains only usable
126
+ # results completed so far. Unfinished results are omitted.
127
+ partial: nil,
107
128
  # The detected ecommerce platform, or null if not a product page
108
129
  platform: nil,
109
130
  # The extracted product data, or null if not a product page
@@ -116,9 +137,11 @@ module ContextDev
116
137
  {
117
138
  cache_metadata:
118
139
  ContextDev::Models::AIExtractProductResponse::CacheMetadata,
140
+ request_id: String,
119
141
  is_product_page: T::Boolean,
120
142
  key_metadata:
121
143
  ContextDev::Models::AIExtractProductResponse::KeyMetadata,
144
+ partial: T::Boolean,
122
145
  platform:
123
146
  T.nilable(
124
147
  ContextDev::Models::AIExtractProductResponse::Platform::TaggedSymbol
@@ -99,14 +99,25 @@ module ContextDev
99
99
  sig { params(tags: T::Array[String]).void }
100
100
  attr_writer :tags
101
101
 
102
- # Optional timeout in milliseconds for the request. If the request takes longer
103
- # than this value, it will be aborted with a 408 status code. Maximum allowed
104
- # value is 300000ms (5 minutes).
105
- sig { returns(T.nilable(Integer)) }
106
- attr_reader :timeout_ms
102
+ # Optional request deadline and behavior on timeout. For GET requests, use
103
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
104
+ # timeoutOpts object.
105
+ sig do
106
+ returns(
107
+ T.nilable(
108
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts
109
+ )
110
+ )
111
+ end
112
+ attr_reader :timeout_opts
107
113
 
108
- sig { params(timeout_ms: Integer).void }
109
- attr_writer :timeout_ms
114
+ sig do
115
+ params(
116
+ timeout_opts:
117
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::OrHash
118
+ ).void
119
+ end
120
+ attr_writer :timeout_opts
110
121
 
111
122
  sig do
112
123
  params(
@@ -114,7 +125,8 @@ module ContextDev
114
125
  max_age_ms: Integer,
115
126
  max_products: Integer,
116
127
  tags: T::Array[String],
117
- timeout_ms: Integer
128
+ timeout_opts:
129
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::OrHash
118
130
  ).returns(T.attached_class)
119
131
  end
120
132
  def self.new(
@@ -128,10 +140,10 @@ module ContextDev
128
140
  max_products: nil,
129
141
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
130
142
  tags: nil,
131
- # Optional timeout in milliseconds for the request. If the request takes longer
132
- # than this value, it will be aborted with a 408 status code. Maximum allowed
133
- # value is 300000ms (5 minutes).
134
- timeout_ms: nil
143
+ # Optional request deadline and behavior on timeout. For GET requests, use
144
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
145
+ # timeoutOpts object.
146
+ timeout_opts: nil
135
147
  )
136
148
  end
137
149
 
@@ -142,12 +154,119 @@ module ContextDev
142
154
  max_age_ms: Integer,
143
155
  max_products: Integer,
144
156
  tags: T::Array[String],
145
- timeout_ms: Integer
157
+ timeout_opts:
158
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts
146
159
  }
147
160
  )
148
161
  end
149
162
  def to_hash
150
163
  end
164
+
165
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
166
+ OrHash =
167
+ T.type_alias do
168
+ T.any(
169
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts,
170
+ ContextDev::Internal::AnyHash
171
+ )
172
+ end
173
+
174
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
175
+ sig { returns(Integer) }
176
+ attr_accessor :milliseconds
177
+
178
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
179
+ # credits. "return-partial" returns usable results collected so far; if none are
180
+ # available, the request still fails without charging credits. Partial results are
181
+ # not cached as complete results.
182
+ sig do
183
+ returns(
184
+ T.nilable(
185
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::OrSymbol
186
+ )
187
+ )
188
+ end
189
+ attr_reader :behavior
190
+
191
+ sig do
192
+ params(
193
+ behavior:
194
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::OrSymbol
195
+ ).void
196
+ end
197
+ attr_writer :behavior
198
+
199
+ # Optional request deadline and behavior on timeout. For GET requests, use
200
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
201
+ # timeoutOpts object.
202
+ sig do
203
+ params(
204
+ milliseconds: Integer,
205
+ behavior:
206
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::OrSymbol
207
+ ).returns(T.attached_class)
208
+ end
209
+ def self.new(
210
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
211
+ milliseconds:,
212
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
213
+ # credits. "return-partial" returns usable results collected so far; if none are
214
+ # available, the request still fails without charging credits. Partial results are
215
+ # not cached as complete results.
216
+ behavior: nil
217
+ )
218
+ end
219
+
220
+ sig do
221
+ override.returns(
222
+ {
223
+ milliseconds: Integer,
224
+ behavior:
225
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::OrSymbol
226
+ }
227
+ )
228
+ end
229
+ def to_hash
230
+ end
231
+
232
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
233
+ # credits. "return-partial" returns usable results collected so far; if none are
234
+ # available, the request still fails without charging credits. Partial results are
235
+ # not cached as complete results.
236
+ module Behavior
237
+ extend ContextDev::Internal::Type::Enum
238
+
239
+ TaggedSymbol =
240
+ T.type_alias do
241
+ T.all(
242
+ Symbol,
243
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior
244
+ )
245
+ end
246
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
247
+
248
+ FAIL =
249
+ T.let(
250
+ :fail,
251
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::TaggedSymbol
252
+ )
253
+ RETURN_PARTIAL =
254
+ T.let(
255
+ :"return-partial",
256
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::TaggedSymbol
257
+ )
258
+
259
+ sig do
260
+ override.returns(
261
+ T::Array[
262
+ ContextDev::AIExtractProductsParams::Body::ByDomain::TimeoutOpts::Behavior::TaggedSymbol
263
+ ]
264
+ )
265
+ end
266
+ def self.values
267
+ end
268
+ end
269
+ end
151
270
  end
152
271
 
153
272
  class ByDirectURL < ContextDev::Internal::Type::BaseModel
@@ -187,14 +306,25 @@ module ContextDev
187
306
  sig { params(tags: T::Array[String]).void }
188
307
  attr_writer :tags
189
308
 
190
- # Optional timeout in milliseconds for the request. If the request takes longer
191
- # than this value, it will be aborted with a 408 status code. Maximum allowed
192
- # value is 300000ms (5 minutes).
193
- sig { returns(T.nilable(Integer)) }
194
- attr_reader :timeout_ms
309
+ # Optional request deadline and behavior on timeout. For GET requests, use
310
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
311
+ # timeoutOpts object.
312
+ sig do
313
+ returns(
314
+ T.nilable(
315
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts
316
+ )
317
+ )
318
+ end
319
+ attr_reader :timeout_opts
195
320
 
196
- sig { params(timeout_ms: Integer).void }
197
- attr_writer :timeout_ms
321
+ sig do
322
+ params(
323
+ timeout_opts:
324
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::OrHash
325
+ ).void
326
+ end
327
+ attr_writer :timeout_opts
198
328
 
199
329
  sig do
200
330
  params(
@@ -202,7 +332,8 @@ module ContextDev
202
332
  max_age_ms: Integer,
203
333
  max_products: Integer,
204
334
  tags: T::Array[String],
205
- timeout_ms: Integer
335
+ timeout_opts:
336
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::OrHash
206
337
  ).returns(T.attached_class)
207
338
  end
208
339
  def self.new(
@@ -217,10 +348,10 @@ module ContextDev
217
348
  max_products: nil,
218
349
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
219
350
  tags: nil,
220
- # Optional timeout in milliseconds for the request. If the request takes longer
221
- # than this value, it will be aborted with a 408 status code. Maximum allowed
222
- # value is 300000ms (5 minutes).
223
- timeout_ms: nil
351
+ # Optional request deadline and behavior on timeout. For GET requests, use
352
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
353
+ # timeoutOpts object.
354
+ timeout_opts: nil
224
355
  )
225
356
  end
226
357
 
@@ -231,12 +362,119 @@ module ContextDev
231
362
  max_age_ms: Integer,
232
363
  max_products: Integer,
233
364
  tags: T::Array[String],
234
- timeout_ms: Integer
365
+ timeout_opts:
366
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts
235
367
  }
236
368
  )
237
369
  end
238
370
  def to_hash
239
371
  end
372
+
373
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
374
+ OrHash =
375
+ T.type_alias do
376
+ T.any(
377
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts,
378
+ ContextDev::Internal::AnyHash
379
+ )
380
+ end
381
+
382
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
383
+ sig { returns(Integer) }
384
+ attr_accessor :milliseconds
385
+
386
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
387
+ # credits. "return-partial" returns usable results collected so far; if none are
388
+ # available, the request still fails without charging credits. Partial results are
389
+ # not cached as complete results.
390
+ sig do
391
+ returns(
392
+ T.nilable(
393
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::OrSymbol
394
+ )
395
+ )
396
+ end
397
+ attr_reader :behavior
398
+
399
+ sig do
400
+ params(
401
+ behavior:
402
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::OrSymbol
403
+ ).void
404
+ end
405
+ attr_writer :behavior
406
+
407
+ # Optional request deadline and behavior on timeout. For GET requests, use
408
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
409
+ # timeoutOpts object.
410
+ sig do
411
+ params(
412
+ milliseconds: Integer,
413
+ behavior:
414
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::OrSymbol
415
+ ).returns(T.attached_class)
416
+ end
417
+ def self.new(
418
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
419
+ milliseconds:,
420
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
421
+ # credits. "return-partial" returns usable results collected so far; if none are
422
+ # available, the request still fails without charging credits. Partial results are
423
+ # not cached as complete results.
424
+ behavior: nil
425
+ )
426
+ end
427
+
428
+ sig do
429
+ override.returns(
430
+ {
431
+ milliseconds: Integer,
432
+ behavior:
433
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::OrSymbol
434
+ }
435
+ )
436
+ end
437
+ def to_hash
438
+ end
439
+
440
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
441
+ # credits. "return-partial" returns usable results collected so far; if none are
442
+ # available, the request still fails without charging credits. Partial results are
443
+ # not cached as complete results.
444
+ module Behavior
445
+ extend ContextDev::Internal::Type::Enum
446
+
447
+ TaggedSymbol =
448
+ T.type_alias do
449
+ T.all(
450
+ Symbol,
451
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior
452
+ )
453
+ end
454
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
455
+
456
+ FAIL =
457
+ T.let(
458
+ :fail,
459
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::TaggedSymbol
460
+ )
461
+ RETURN_PARTIAL =
462
+ T.let(
463
+ :"return-partial",
464
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::TaggedSymbol
465
+ )
466
+
467
+ sig do
468
+ override.returns(
469
+ T::Array[
470
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::TimeoutOpts::Behavior::TaggedSymbol
471
+ ]
472
+ )
473
+ end
474
+ def self.values
475
+ end
476
+ end
477
+ end
240
478
  end
241
479
 
242
480
  sig do
@@ -27,6 +27,11 @@ module ContextDev
27
27
  end
28
28
  attr_writer :cache_metadata
29
29
 
30
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
31
+ # it when contacting support about a failed request.
32
+ sig { returns(String) }
33
+ attr_accessor :request_id
34
+
30
35
  # Credit usage, included whenever a valid API key is provided.
31
36
  sig do
32
37
  returns(
@@ -43,6 +48,15 @@ module ContextDev
43
48
  end
44
49
  attr_writer :key_metadata
45
50
 
51
+ # True when timeoutOpts.behavior=return-partial returned the usable results
52
+ # collected before the deadline. Partial collections are not cached as complete
53
+ # results.
54
+ sig { returns(T.nilable(T::Boolean)) }
55
+ attr_reader :partial
56
+
57
+ sig { params(partial: T::Boolean).void }
58
+ attr_writer :partial
59
+
46
60
  # Array of products extracted from the website
47
61
  sig do
48
62
  returns(
@@ -67,8 +81,10 @@ module ContextDev
67
81
  params(
68
82
  cache_metadata:
69
83
  ContextDev::Models::AIExtractProductsResponse::CacheMetadata::OrHash,
84
+ request_id: String,
70
85
  key_metadata:
71
86
  ContextDev::Models::AIExtractProductsResponse::KeyMetadata::OrHash,
87
+ partial: T::Boolean,
72
88
  products:
73
89
  T::Array[
74
90
  ContextDev::Models::AIExtractProductsResponse::Product::OrHash
@@ -80,8 +96,15 @@ module ContextDev
80
96
  # cache-controlled fetch contributing to the output was a hit; age_ms is the
81
97
  # oldest contributing hit.
82
98
  cache_metadata:,
99
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
100
+ # it when contacting support about a failed request.
101
+ request_id:,
83
102
  # Credit usage, included whenever a valid API key is provided.
84
103
  key_metadata: nil,
104
+ # True when timeoutOpts.behavior=return-partial returned the usable results
105
+ # collected before the deadline. Partial collections are not cached as complete
106
+ # results.
107
+ partial: nil,
85
108
  # Array of products extracted from the website
86
109
  products: nil
87
110
  )
@@ -92,8 +115,10 @@ module ContextDev
92
115
  {
93
116
  cache_metadata:
94
117
  ContextDev::Models::AIExtractProductsResponse::CacheMetadata,
118
+ request_id: String,
95
119
  key_metadata:
96
120
  ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
121
+ partial: T::Boolean,
97
122
  products:
98
123
  T::Array[ContextDev::Models::AIExtractProductsResponse::Product]
99
124
  }
@@ -68,6 +68,11 @@ module ContextDev
68
68
  end
69
69
  attr_writer :progress
70
70
 
71
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
72
+ # it when contacting support about a failed request.
73
+ sig { returns(String) }
74
+ attr_accessor :request_id
75
+
71
76
  # Always `cancelling`. Work already in flight finishes; the batch reaches
72
77
  # `cancelled` shortly after.
73
78
  sig do
@@ -114,6 +119,7 @@ module ContextDev
114
119
  mode: ContextDev::Models::BatchCancelResponse::Mode::OrSymbol,
115
120
  page_errors: T::Array[ContextDev::PageErrorCount::OrHash],
116
121
  progress: ContextDev::Models::BatchCancelResponse::Progress::OrHash,
122
+ request_id: String,
117
123
  status: ContextDev::Models::BatchCancelResponse::Status::OrSymbol,
118
124
  tags: T::Array[String],
119
125
  timing: ContextDev::Models::BatchCancelResponse::Timing::OrHash,
@@ -139,6 +145,9 @@ module ContextDev
139
145
  page_errors:,
140
146
  # How far the batch got before cancellation.
141
147
  progress:,
148
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
149
+ # it when contacting support about a failed request.
150
+ request_id:,
142
151
  # Always `cancelling`. Work already in flight finishes; the batch reaches
143
152
  # `cancelled` shortly after.
144
153
  status:,
@@ -163,6 +172,7 @@ module ContextDev
163
172
  mode: ContextDev::Models::BatchCancelResponse::Mode::TaggedSymbol,
164
173
  page_errors: T::Array[ContextDev::PageErrorCount],
165
174
  progress: ContextDev::Models::BatchCancelResponse::Progress,
175
+ request_id: String,
166
176
  status:
167
177
  ContextDev::Models::BatchCancelResponse::Status::TaggedSymbol,
168
178
  tags: T::Array[String],
@@ -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
  # ID of the deleted batch.
15
20
  sig { returns(T.nilable(String)) }
16
21
  attr_reader :id
@@ -41,6 +46,7 @@ module ContextDev
41
46
 
42
47
  sig do
43
48
  params(
49
+ request_id: String,
44
50
  id: String,
45
51
  deleted: T::Boolean,
46
52
  key_metadata:
@@ -48,6 +54,9 @@ module ContextDev
48
54
  ).returns(T.attached_class)
49
55
  end
50
56
  def self.new(
57
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
58
+ # it when contacting support about a failed request.
59
+ request_id:,
51
60
  # ID of the deleted batch.
52
61
  id: nil,
53
62
  # Always true on success.
@@ -60,6 +69,7 @@ module ContextDev
60
69
  sig do
61
70
  override.returns(
62
71
  {
72
+ request_id: String,
63
73
  id: String,
64
74
  deleted: T::Boolean,
65
75
  key_metadata: ContextDev::Models::BatchDeleteResponse::KeyMetadata
@@ -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
  # Result records on this page.
15
20
  sig do
16
21
  returns(
@@ -65,6 +70,7 @@ module ContextDev
65
70
 
66
71
  sig do
67
72
  params(
73
+ request_id: String,
68
74
  data:
69
75
  T::Array[
70
76
  T.any(
@@ -79,6 +85,9 @@ module ContextDev
79
85
  ).returns(T.attached_class)
80
86
  end
81
87
  def self.new(
88
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
89
+ # it when contacting support about a failed request.
90
+ request_id:,
82
91
  # Result records on this page.
83
92
  data: nil,
84
93
  # Whether another page is available.
@@ -93,6 +102,7 @@ module ContextDev
93
102
  sig do
94
103
  override.returns(
95
104
  {
105
+ request_id: String,
96
106
  data:
97
107
  T::Array[
98
108
  ContextDev::Models::BatchGetResultsResponse::Data::Variants
@@ -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
  # Batches on this page.
15
20
  sig do
16
21
  returns(
@@ -53,6 +58,7 @@ module ContextDev
53
58
 
54
59
  sig do
55
60
  params(
61
+ request_id: String,
56
62
  data: T::Array[ContextDev::Models::BatchListResponse::Data::OrHash],
57
63
  has_more: T::Boolean,
58
64
  key_metadata:
@@ -61,6 +67,9 @@ module ContextDev
61
67
  ).returns(T.attached_class)
62
68
  end
63
69
  def self.new(
70
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
71
+ # it when contacting support about a failed request.
72
+ request_id:,
64
73
  # Batches on this page.
65
74
  data: nil,
66
75
  # Whether another page is available.
@@ -75,6 +84,7 @@ module ContextDev
75
84
  sig do
76
85
  override.returns(
77
86
  {
87
+ request_id: String,
78
88
  data: T::Array[ContextDev::Models::BatchListResponse::Data],
79
89
  has_more: T::Boolean,
80
90
  key_metadata: ContextDev::Models::BatchListResponse::KeyMetadata,
@@ -84,6 +84,11 @@ module ContextDev
84
84
  end
85
85
  attr_writer :progress
86
86
 
87
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
88
+ # it when contacting support about a failed request.
89
+ sig { returns(String) }
90
+ attr_accessor :request_id
91
+
87
92
  # Download links, available once the batch reaches a final status and null before
88
93
  # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
89
94
  sig do
@@ -159,6 +164,7 @@ module ContextDev
159
164
  mode: ContextDev::Models::BatchRetrieveResponse::Mode::OrSymbol,
160
165
  page_errors: T::Array[ContextDev::PageErrorCount::OrHash],
161
166
  progress: ContextDev::Models::BatchRetrieveResponse::Progress::OrHash,
167
+ request_id: String,
162
168
  results:
163
169
  T.nilable(
164
170
  ContextDev::Models::BatchRetrieveResponse::Results::OrHash
@@ -196,6 +202,9 @@ module ContextDev
196
202
  page_errors:,
197
203
  # Pages attempted so far. Use `status` to check completion.
198
204
  progress:,
205
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
206
+ # it when contacting support about a failed request.
207
+ request_id:,
199
208
  # Download links, available once the batch reaches a final status and null before
200
209
  # then. GET /batch/{batch_id}/results serves the same records as paginated JSON.
201
210
  results:,
@@ -226,6 +235,7 @@ module ContextDev
226
235
  mode: ContextDev::Models::BatchRetrieveResponse::Mode::TaggedSymbol,
227
236
  page_errors: T::Array[ContextDev::PageErrorCount],
228
237
  progress: ContextDev::Models::BatchRetrieveResponse::Progress,
238
+ request_id: String,
229
239
  results:
230
240
  T.nilable(ContextDev::Models::BatchRetrieveResponse::Results),
231
241
  status: