context.dev 2.16.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 (168) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -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 +10 -1
  10. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  11. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +10 -1
  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 +43 -2
  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 +13 -0
  66. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  67. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +13 -0
  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 +92 -6
  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 +7 -0
  120. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  121. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +7 -0
  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
@@ -51,6 +51,15 @@ module ContextDev
51
51
  end
52
52
  attr_writer :key_metadata
53
53
 
54
+ # True when timeoutOpts.behavior=return-partial returned the usable results
55
+ # collected before the deadline. Partial collections are not cached as complete
56
+ # results.
57
+ sig { returns(T.nilable(T::Boolean)) }
58
+ attr_reader :partial
59
+
60
+ sig { params(partial: T::Boolean).void }
61
+ attr_writer :partial
62
+
54
63
  sig do
55
64
  params(
56
65
  cache_metadata:
@@ -60,7 +69,8 @@ module ContextDev
60
69
  results:
61
70
  T::Array[ContextDev::Models::WebSearchResponse::Result::OrHash],
62
71
  key_metadata:
63
- ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash
72
+ ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash,
73
+ partial: T::Boolean
64
74
  ).returns(T.attached_class)
65
75
  end
66
76
  def self.new(
@@ -75,7 +85,11 @@ module ContextDev
75
85
  request_id:,
76
86
  results:,
77
87
  # Credit usage, included whenever a valid API key is provided.
78
- key_metadata: nil
88
+ key_metadata: nil,
89
+ # True when timeoutOpts.behavior=return-partial returned the usable results
90
+ # collected before the deadline. Partial collections are not cached as complete
91
+ # results.
92
+ partial: nil
79
93
  )
80
94
  end
81
95
 
@@ -87,7 +101,8 @@ module ContextDev
87
101
  query: String,
88
102
  request_id: String,
89
103
  results: T::Array[ContextDev::Models::WebSearchResponse::Result],
90
- key_metadata: ContextDev::Models::WebSearchResponse::KeyMetadata
104
+ key_metadata: ContextDev::Models::WebSearchResponse::KeyMetadata,
105
+ partial: T::Boolean
91
106
  }
92
107
  )
93
108
  end
@@ -292,12 +307,36 @@ module ContextDev
292
307
  sig { returns(T.nilable(String)) }
293
308
  attr_accessor :markdown
294
309
 
310
+ # How complete the returned content is. `loaded` means the page finished the waits
311
+ # the request asked for. `still-loading` only occurs with
312
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
313
+ # reached first, so the content reflects the DOM at that moment and late-rendering
314
+ # parts may be missing. Partial results are billed at the base request cost.
315
+ sig do
316
+ returns(
317
+ T.nilable(
318
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
319
+ )
320
+ )
321
+ end
322
+ attr_reader :final_dom_state
323
+
324
+ sig do
325
+ params(
326
+ final_dom_state:
327
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::OrSymbol
328
+ ).void
329
+ end
330
+ attr_writer :final_dom_state
331
+
295
332
  # Markdown scrape status and content for this result.
296
333
  sig do
297
334
  params(
298
335
  code:
299
336
  ContextDev::Models::WebSearchResponse::Result::Markdown::Code::OrSymbol,
300
- markdown: T.nilable(String)
337
+ markdown: T.nilable(String),
338
+ final_dom_state:
339
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::OrSymbol
301
340
  ).returns(T.attached_class)
302
341
  end
303
342
  def self.new(
@@ -305,7 +344,13 @@ module ContextDev
305
344
  code:,
306
345
  # GFM Markdown of the page. Null unless markdownOptions.enabled is true and
307
346
  # scraping succeeded.
308
- markdown:
347
+ markdown:,
348
+ # How complete the returned content is. `loaded` means the page finished the waits
349
+ # the request asked for. `still-loading` only occurs with
350
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
351
+ # reached first, so the content reflects the DOM at that moment and late-rendering
352
+ # parts may be missing. Partial results are billed at the base request cost.
353
+ final_dom_state: nil
309
354
  )
310
355
  end
311
356
 
@@ -314,7 +359,9 @@ module ContextDev
314
359
  {
315
360
  code:
316
361
  ContextDev::Models::WebSearchResponse::Result::Markdown::Code::TaggedSymbol,
317
- markdown: T.nilable(String)
362
+ markdown: T.nilable(String),
363
+ final_dom_state:
364
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
318
365
  }
319
366
  )
320
367
  end
@@ -375,6 +422,45 @@ module ContextDev
375
422
  def self.values
376
423
  end
377
424
  end
425
+
426
+ # How complete the returned content is. `loaded` means the page finished the waits
427
+ # the request asked for. `still-loading` only occurs with
428
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
429
+ # reached first, so the content reflects the DOM at that moment and late-rendering
430
+ # parts may be missing. Partial results are billed at the base request cost.
431
+ module FinalDomState
432
+ extend ContextDev::Internal::Type::Enum
433
+
434
+ TaggedSymbol =
435
+ T.type_alias do
436
+ T.all(
437
+ Symbol,
438
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState
439
+ )
440
+ end
441
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
442
+
443
+ LOADED =
444
+ T.let(
445
+ :loaded,
446
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
447
+ )
448
+ STILL_LOADING =
449
+ T.let(
450
+ :"still-loading",
451
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
452
+ )
453
+
454
+ sig do
455
+ override.returns(
456
+ T::Array[
457
+ ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
458
+ ]
459
+ )
460
+ end
461
+ def self.values
462
+ end
463
+ end
378
464
  end
379
465
 
380
466
  # Relevance to the original query.
@@ -141,14 +141,18 @@ module ContextDev
141
141
  sig { params(tags: T::Array[String]).void }
142
142
  attr_writer :tags
143
143
 
144
- # Optional timeout in milliseconds for the request. If the request takes longer
145
- # than this value, it will be aborted with a 408 status code. Maximum allowed
146
- # value is 300000ms (5 minutes).
147
- sig { returns(T.nilable(Integer)) }
148
- attr_reader :timeout_ms
144
+ # Optional request deadline and behavior on timeout. For GET requests, use
145
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
146
+ # timeoutOpts object.
147
+ sig { returns(T.nilable(ContextDev::WebWebCrawlMdParams::TimeoutOpts)) }
148
+ attr_reader :timeout_opts
149
149
 
150
- sig { params(timeout_ms: Integer).void }
151
- attr_writer :timeout_ms
150
+ sig do
151
+ params(
152
+ timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts::OrHash
153
+ ).void
154
+ end
155
+ attr_writer :timeout_opts
152
156
 
153
157
  # Regex pattern. Only URLs matching this pattern will be followed and scraped. An
154
158
  # automatic prefix scope in the form ^<starting URL> follows a redirect of the
@@ -203,7 +207,7 @@ module ContextDev
203
207
  shorten_base64_images: T::Boolean,
204
208
  stop_after_ms: Integer,
205
209
  tags: T::Array[String],
206
- timeout_ms: Integer,
210
+ timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts::OrHash,
207
211
  url_regex: String,
208
212
  use_main_content_only: T::Boolean,
209
213
  wait_for_ms: Integer,
@@ -261,10 +265,10 @@ module ContextDev
261
265
  stop_after_ms: nil,
262
266
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
263
267
  tags: nil,
264
- # Optional timeout in milliseconds for the request. If the request takes longer
265
- # than this value, it will be aborted with a 408 status code. Maximum allowed
266
- # value is 300000ms (5 minutes).
267
- timeout_ms: nil,
268
+ # Optional request deadline and behavior on timeout. For GET requests, use
269
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
270
+ # timeoutOpts object.
271
+ timeout_opts: nil,
268
272
  # Regex pattern. Only URLs matching this pattern will be followed and scraped. An
269
273
  # automatic prefix scope in the form ^<starting URL> follows a redirect of the
270
274
  # starting page.
@@ -303,7 +307,7 @@ module ContextDev
303
307
  shorten_base64_images: T::Boolean,
304
308
  stop_after_ms: Integer,
305
309
  tags: T::Array[String],
306
- timeout_ms: Integer,
310
+ timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts,
307
311
  url_regex: String,
308
312
  use_main_content_only: T::Boolean,
309
313
  wait_for_ms: Integer,
@@ -623,6 +627,112 @@ module ContextDev
623
627
  end
624
628
  end
625
629
 
630
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
631
+ OrHash =
632
+ T.type_alias do
633
+ T.any(
634
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts,
635
+ ContextDev::Internal::AnyHash
636
+ )
637
+ end
638
+
639
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
640
+ sig { returns(Integer) }
641
+ attr_accessor :milliseconds
642
+
643
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
644
+ # credits. "return-partial" returns usable results collected so far; if none are
645
+ # available, the request still fails without charging credits. Partial results are
646
+ # not cached as complete results.
647
+ sig do
648
+ returns(
649
+ T.nilable(
650
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
651
+ )
652
+ )
653
+ end
654
+ attr_reader :behavior
655
+
656
+ sig do
657
+ params(
658
+ behavior:
659
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
660
+ ).void
661
+ end
662
+ attr_writer :behavior
663
+
664
+ # Optional request deadline and behavior on timeout. For GET requests, use
665
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
666
+ # timeoutOpts object.
667
+ sig do
668
+ params(
669
+ milliseconds: Integer,
670
+ behavior:
671
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
672
+ ).returns(T.attached_class)
673
+ end
674
+ def self.new(
675
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
676
+ milliseconds:,
677
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
678
+ # credits. "return-partial" returns usable results collected so far; if none are
679
+ # available, the request still fails without charging credits. Partial results are
680
+ # not cached as complete results.
681
+ behavior: nil
682
+ )
683
+ end
684
+
685
+ sig do
686
+ override.returns(
687
+ {
688
+ milliseconds: Integer,
689
+ behavior:
690
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
691
+ }
692
+ )
693
+ end
694
+ def to_hash
695
+ end
696
+
697
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
698
+ # credits. "return-partial" returns usable results collected so far; if none are
699
+ # available, the request still fails without charging credits. Partial results are
700
+ # not cached as complete results.
701
+ module Behavior
702
+ extend ContextDev::Internal::Type::Enum
703
+
704
+ TaggedSymbol =
705
+ T.type_alias do
706
+ T.all(
707
+ Symbol,
708
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior
709
+ )
710
+ end
711
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
712
+
713
+ FAIL =
714
+ T.let(
715
+ :fail,
716
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
717
+ )
718
+ RETURN_PARTIAL =
719
+ T.let(
720
+ :"return-partial",
721
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
722
+ )
723
+
724
+ sig do
725
+ override.returns(
726
+ T::Array[
727
+ ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
728
+ ]
729
+ )
730
+ end
731
+ def self.values
732
+ end
733
+ end
734
+ end
735
+
626
736
  # Set to enabled to bypass shared caches and omit request and response content
627
737
  # from retained usage logs. Requires zero data retention to be enabled for your
628
738
  # organization (contact support@context.dev), otherwise the request fails with
@@ -61,6 +61,15 @@ module ContextDev
61
61
  end
62
62
  attr_writer :key_metadata
63
63
 
64
+ # True when timeoutOpts.behavior=return-partial returned the usable results
65
+ # collected before the deadline. Partial collections are not cached as complete
66
+ # results.
67
+ sig { returns(T.nilable(T::Boolean)) }
68
+ attr_reader :partial
69
+
70
+ sig { params(partial: T::Boolean).void }
71
+ attr_writer :partial
72
+
64
73
  sig do
65
74
  params(
66
75
  cache_metadata:
@@ -70,7 +79,8 @@ module ContextDev
70
79
  results:
71
80
  T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result::OrHash],
72
81
  key_metadata:
73
- ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata::OrHash
82
+ ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata::OrHash,
83
+ partial: T::Boolean
74
84
  ).returns(T.attached_class)
75
85
  end
76
86
  def self.new(
@@ -84,7 +94,11 @@ module ContextDev
84
94
  request_id:,
85
95
  results:,
86
96
  # Credit usage, included whenever a valid API key is provided.
87
- key_metadata: nil
97
+ key_metadata: nil,
98
+ # True when timeoutOpts.behavior=return-partial returned the usable results
99
+ # collected before the deadline. Partial collections are not cached as complete
100
+ # results.
101
+ partial: nil
88
102
  )
89
103
  end
90
104
 
@@ -97,7 +111,9 @@ module ContextDev
97
111
  request_id: String,
98
112
  results:
99
113
  T::Array[ContextDev::Models::WebWebCrawlMdResponse::Result],
100
- key_metadata: ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata
114
+ key_metadata:
115
+ ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata,
116
+ partial: T::Boolean
101
117
  }
102
118
  )
103
119
  end