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
@@ -145,14 +145,18 @@ module ContextDev
145
145
  sig { params(tags: T::Array[String]).void }
146
146
  attr_writer :tags
147
147
 
148
- # Optional timeout in milliseconds for the request. If the request takes longer
149
- # than this value, it will be aborted with a 408 status code. Maximum allowed
150
- # value is 300000ms (5 minutes).
151
- sig { returns(T.nilable(Integer)) }
152
- attr_reader :timeout_ms
148
+ # Optional request deadline and behavior on timeout. For GET requests, use
149
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
150
+ # timeoutOpts object.
151
+ sig { returns(T.nilable(ContextDev::WebExtractParams::TimeoutOpts)) }
152
+ attr_reader :timeout_opts
153
153
 
154
- sig { params(timeout_ms: Integer).void }
155
- attr_writer :timeout_ms
154
+ sig do
155
+ params(
156
+ timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash
157
+ ).void
158
+ end
159
+ attr_writer :timeout_opts
156
160
 
157
161
  # Optional browser wait time in milliseconds after initial page load for each
158
162
  # crawled page.
@@ -185,7 +189,7 @@ module ContextDev
185
189
  settle_animations: T::Boolean,
186
190
  stop_after_ms: Integer,
187
191
  tags: T::Array[String],
188
- timeout_ms: Integer,
192
+ timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash,
189
193
  wait_for_ms: Integer,
190
194
  request_options: ContextDev::RequestOptions::OrHash
191
195
  ).returns(T.attached_class)
@@ -238,10 +242,10 @@ module ContextDev
238
242
  stop_after_ms: nil,
239
243
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
240
244
  tags: nil,
241
- # Optional timeout in milliseconds for the request. If the request takes longer
242
- # than this value, it will be aborted with a 408 status code. Maximum allowed
243
- # value is 300000ms (5 minutes).
244
- timeout_ms: nil,
245
+ # Optional request deadline and behavior on timeout. For GET requests, use
246
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
247
+ # timeoutOpts object.
248
+ timeout_opts: nil,
245
249
  # Optional browser wait time in milliseconds after initial page load for each
246
250
  # crawled page.
247
251
  wait_for_ms: nil,
@@ -273,7 +277,7 @@ module ContextDev
273
277
  settle_animations: T::Boolean,
274
278
  stop_after_ms: Integer,
275
279
  tags: T::Array[String],
276
- timeout_ms: Integer,
280
+ timeout_opts: ContextDev::WebExtractParams::TimeoutOpts,
277
281
  wait_for_ms: Integer,
278
282
  request_options: ContextDev::RequestOptions
279
283
  }
@@ -624,6 +628,109 @@ module ContextDev
624
628
  def to_hash
625
629
  end
626
630
  end
631
+
632
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
633
+ OrHash =
634
+ T.type_alias do
635
+ T.any(
636
+ ContextDev::WebExtractParams::TimeoutOpts,
637
+ ContextDev::Internal::AnyHash
638
+ )
639
+ end
640
+
641
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
642
+ sig { returns(Integer) }
643
+ attr_accessor :milliseconds
644
+
645
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
646
+ # credits. "return-partial" returns usable results collected so far; if none are
647
+ # available, the request still fails without charging credits. Partial results are
648
+ # not cached as complete results.
649
+ sig do
650
+ returns(
651
+ T.nilable(
652
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
653
+ )
654
+ )
655
+ end
656
+ attr_reader :behavior
657
+
658
+ sig do
659
+ params(
660
+ behavior:
661
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
662
+ ).void
663
+ end
664
+ attr_writer :behavior
665
+
666
+ # Optional request deadline and behavior on timeout. For GET requests, use
667
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
668
+ # timeoutOpts object.
669
+ sig do
670
+ params(
671
+ milliseconds: Integer,
672
+ behavior:
673
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
674
+ ).returns(T.attached_class)
675
+ end
676
+ def self.new(
677
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
678
+ milliseconds:,
679
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
680
+ # credits. "return-partial" returns usable results collected so far; if none are
681
+ # available, the request still fails without charging credits. Partial results are
682
+ # not cached as complete results.
683
+ behavior: nil
684
+ )
685
+ end
686
+
687
+ sig do
688
+ override.returns(
689
+ {
690
+ milliseconds: Integer,
691
+ behavior:
692
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
693
+ }
694
+ )
695
+ end
696
+ def to_hash
697
+ end
698
+
699
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
700
+ # credits. "return-partial" returns usable results collected so far; if none are
701
+ # available, the request still fails without charging credits. Partial results are
702
+ # not cached as complete results.
703
+ module Behavior
704
+ extend ContextDev::Internal::Type::Enum
705
+
706
+ TaggedSymbol =
707
+ T.type_alias do
708
+ T.all(Symbol, ContextDev::WebExtractParams::TimeoutOpts::Behavior)
709
+ end
710
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
711
+
712
+ FAIL =
713
+ T.let(
714
+ :fail,
715
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
716
+ )
717
+ RETURN_PARTIAL =
718
+ T.let(
719
+ :"return-partial",
720
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
721
+ )
722
+
723
+ sig do
724
+ override.returns(
725
+ T::Array[
726
+ ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
727
+ ]
728
+ )
729
+ end
730
+ def self.values
731
+ end
732
+ end
733
+ end
627
734
  end
628
735
  end
629
736
  end
@@ -70,6 +70,14 @@ module ContextDev
70
70
  end
71
71
  attr_writer :key_metadata
72
72
 
73
+ # True when the timeout ended processing and this response contains only usable
74
+ # results completed so far. Unfinished results are omitted.
75
+ sig { returns(T.nilable(T::Boolean)) }
76
+ attr_reader :partial
77
+
78
+ sig { params(partial: T::Boolean).void }
79
+ attr_writer :partial
80
+
73
81
  sig do
74
82
  params(
75
83
  cache_metadata:
@@ -81,7 +89,8 @@ module ContextDev
81
89
  url: String,
82
90
  urls_analyzed: T::Array[String],
83
91
  key_metadata:
84
- ContextDev::Models::WebExtractResponse::KeyMetadata::OrHash
92
+ ContextDev::Models::WebExtractResponse::KeyMetadata::OrHash,
93
+ partial: T::Boolean
85
94
  ).returns(T.attached_class)
86
95
  end
87
96
  def self.new(
@@ -102,7 +111,10 @@ module ContextDev
102
111
  # List of URLs whose Markdown was used for extraction
103
112
  urls_analyzed:,
104
113
  # Credit usage, included whenever a valid API key is provided.
105
- key_metadata: nil
114
+ key_metadata: nil,
115
+ # True when the timeout ended processing and this response contains only usable
116
+ # results completed so far. Unfinished results are omitted.
117
+ partial: nil
106
118
  )
107
119
  end
108
120
 
@@ -117,7 +129,8 @@ module ContextDev
117
129
  status: String,
118
130
  url: String,
119
131
  urls_analyzed: T::Array[String],
120
- key_metadata: ContextDev::Models::WebExtractResponse::KeyMetadata
132
+ key_metadata: ContextDev::Models::WebExtractResponse::KeyMetadata,
133
+ partial: T::Boolean
121
134
  }
122
135
  )
123
136
  end
@@ -53,9 +53,9 @@ module ContextDev
53
53
  attr_writer :domain
54
54
 
55
55
  # Maximum age in milliseconds for cached brand data before the API performs a hard
56
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
57
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
58
- # year.
56
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
57
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
58
+ # are clamped to 1 year.
59
59
  sig { returns(T.nilable(Integer)) }
60
60
  attr_accessor :max_age_ms
61
61
 
@@ -67,14 +67,21 @@ module ContextDev
67
67
  sig { params(tags: T::Array[String]).void }
68
68
  attr_writer :tags
69
69
 
70
- # Optional timeout in milliseconds for the request. If the request takes longer
71
- # than this value, it will be aborted with a 408 status code. Maximum allowed
72
- # value is 300000ms (5 minutes).
73
- sig { returns(T.nilable(Integer)) }
74
- attr_reader :timeout_ms
70
+ # Optional request deadline and behavior on timeout. For GET requests, use
71
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
72
+ # timeoutOpts object.
73
+ sig do
74
+ returns(T.nilable(ContextDev::WebExtractStyleguideParams::TimeoutOpts))
75
+ end
76
+ attr_reader :timeout_opts
75
77
 
76
- sig { params(timeout_ms: Integer).void }
77
- attr_writer :timeout_ms
78
+ sig do
79
+ params(
80
+ timeout_opts:
81
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::OrHash
82
+ ).void
83
+ end
84
+ attr_writer :timeout_opts
78
85
 
79
86
  sig do
80
87
  params(
@@ -84,7 +91,8 @@ module ContextDev
84
91
  domain: String,
85
92
  max_age_ms: T.nilable(Integer),
86
93
  tags: T::Array[String],
87
- timeout_ms: Integer,
94
+ timeout_opts:
95
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::OrHash,
88
96
  request_options: ContextDev::RequestOptions::OrHash
89
97
  ).returns(T.attached_class)
90
98
  end
@@ -102,17 +110,17 @@ module ContextDev
102
110
  # 'domain' or 'directUrl', but not both.
103
111
  domain: nil,
104
112
  # Maximum age in milliseconds for cached brand data before the API performs a hard
105
- # refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms)
106
- # are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1
107
- # year.
113
+ # refresh. Defaults to 3 months (7776000000 ms). Set to 0 to always perform a hard
114
+ # refresh. Negative values are clamped to 0; values above 1 year (31536000000 ms)
115
+ # are clamped to 1 year.
108
116
  max_age_ms: nil,
109
117
  # Comma-separated tags for tracking request usage. Up to 20 tags, each 1-50
110
118
  # characters.
111
119
  tags: nil,
112
- # Optional timeout in milliseconds for the request. If the request takes longer
113
- # than this value, it will be aborted with a 408 status code. Maximum allowed
114
- # value is 300000ms (5 minutes).
115
- timeout_ms: nil,
120
+ # Optional request deadline and behavior on timeout. For GET requests, use
121
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
122
+ # timeoutOpts object.
123
+ timeout_opts: nil,
116
124
  request_options: {}
117
125
  )
118
126
  end
@@ -126,7 +134,7 @@ module ContextDev
126
134
  domain: String,
127
135
  max_age_ms: T.nilable(Integer),
128
136
  tags: T::Array[String],
129
- timeout_ms: Integer,
137
+ timeout_opts: ContextDev::WebExtractStyleguideParams::TimeoutOpts,
130
138
  request_options: ContextDev::RequestOptions
131
139
  }
132
140
  )
@@ -166,6 +174,115 @@ module ContextDev
166
174
  def self.values
167
175
  end
168
176
  end
177
+
178
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
179
+ OrHash =
180
+ T.type_alias do
181
+ T.any(
182
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts,
183
+ ContextDev::Internal::AnyHash
184
+ )
185
+ end
186
+
187
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
188
+ sig { returns(Integer) }
189
+ attr_accessor :milliseconds
190
+
191
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
192
+ # credits. "return-partial" returns usable results collected so far; if none are
193
+ # available, the request still fails without charging credits. Partial results are
194
+ # not cached as complete results. "return-partial" requires milliseconds of at
195
+ # least 15000.
196
+ sig do
197
+ returns(
198
+ T.nilable(
199
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
200
+ )
201
+ )
202
+ end
203
+ attr_reader :behavior
204
+
205
+ sig do
206
+ params(
207
+ behavior:
208
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
209
+ ).void
210
+ end
211
+ attr_writer :behavior
212
+
213
+ # Optional request deadline and behavior on timeout. For GET requests, use
214
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
215
+ # timeoutOpts object.
216
+ sig do
217
+ params(
218
+ milliseconds: Integer,
219
+ behavior:
220
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
221
+ ).returns(T.attached_class)
222
+ end
223
+ def self.new(
224
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
225
+ milliseconds:,
226
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
227
+ # credits. "return-partial" returns usable results collected so far; if none are
228
+ # available, the request still fails without charging credits. Partial results are
229
+ # not cached as complete results. "return-partial" requires milliseconds of at
230
+ # least 15000.
231
+ behavior: nil
232
+ )
233
+ end
234
+
235
+ sig do
236
+ override.returns(
237
+ {
238
+ milliseconds: Integer,
239
+ behavior:
240
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::OrSymbol
241
+ }
242
+ )
243
+ end
244
+ def to_hash
245
+ end
246
+
247
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
248
+ # credits. "return-partial" returns usable results collected so far; if none are
249
+ # available, the request still fails without charging credits. Partial results are
250
+ # not cached as complete results. "return-partial" requires milliseconds of at
251
+ # least 15000.
252
+ module Behavior
253
+ extend ContextDev::Internal::Type::Enum
254
+
255
+ TaggedSymbol =
256
+ T.type_alias do
257
+ T.all(
258
+ Symbol,
259
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior
260
+ )
261
+ end
262
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
263
+
264
+ FAIL =
265
+ T.let(
266
+ :fail,
267
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
268
+ )
269
+ RETURN_PARTIAL =
270
+ T.let(
271
+ :"return-partial",
272
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
273
+ )
274
+
275
+ sig do
276
+ override.returns(
277
+ T::Array[
278
+ ContextDev::WebExtractStyleguideParams::TimeoutOpts::Behavior::TaggedSymbol
279
+ ]
280
+ )
281
+ end
282
+ def self.values
283
+ end
284
+ end
285
+ end
169
286
  end
170
287
  end
171
288
  end
@@ -46,6 +46,28 @@ module ContextDev
46
46
  sig { params(domain: String).void }
47
47
  attr_writer :domain
48
48
 
49
+ # How complete the returned content is. `loaded` means the page finished the waits
50
+ # the request asked for. `still-loading` only occurs with
51
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
52
+ # reached first, so the content reflects the DOM at that moment and late-rendering
53
+ # parts may be missing. Partial results are billed at the base request cost.
54
+ sig do
55
+ returns(
56
+ T.nilable(
57
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
58
+ )
59
+ )
60
+ end
61
+ attr_reader :final_dom_state
62
+
63
+ sig do
64
+ params(
65
+ final_dom_state:
66
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::OrSymbol
67
+ ).void
68
+ end
69
+ attr_writer :final_dom_state
70
+
49
71
  # Credit usage, included whenever a valid API key is provided.
50
72
  sig do
51
73
  returns(
@@ -96,6 +118,8 @@ module ContextDev
96
118
  request_id: String,
97
119
  code: Integer,
98
120
  domain: String,
121
+ final_dom_state:
122
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::OrSymbol,
99
123
  key_metadata:
100
124
  ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata::OrHash,
101
125
  status: String,
@@ -115,6 +139,12 @@ module ContextDev
115
139
  code: nil,
116
140
  # The normalized domain that was processed
117
141
  domain: nil,
142
+ # How complete the returned content is. `loaded` means the page finished the waits
143
+ # the request asked for. `still-loading` only occurs with
144
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
145
+ # reached first, so the content reflects the DOM at that moment and late-rendering
146
+ # parts may be missing. Partial results are billed at the base request cost.
147
+ final_dom_state: nil,
118
148
  # Credit usage, included whenever a valid API key is provided.
119
149
  key_metadata: nil,
120
150
  # Status of the response, e.g., 'ok'
@@ -132,6 +162,8 @@ module ContextDev
132
162
  request_id: String,
133
163
  code: Integer,
134
164
  domain: String,
165
+ final_dom_state:
166
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol,
135
167
  key_metadata:
136
168
  ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata,
137
169
  status: String,
@@ -238,6 +270,45 @@ module ContextDev
238
270
  end
239
271
  end
240
272
 
273
+ # How complete the returned content is. `loaded` means the page finished the waits
274
+ # the request asked for. `still-loading` only occurs with
275
+ # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
276
+ # reached first, so the content reflects the DOM at that moment and late-rendering
277
+ # parts may be missing. Partial results are billed at the base request cost.
278
+ module FinalDomState
279
+ extend ContextDev::Internal::Type::Enum
280
+
281
+ TaggedSymbol =
282
+ T.type_alias do
283
+ T.all(
284
+ Symbol,
285
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState
286
+ )
287
+ end
288
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
289
+
290
+ LOADED =
291
+ T.let(
292
+ :loaded,
293
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
294
+ )
295
+ STILL_LOADING =
296
+ T.let(
297
+ :"still-loading",
298
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
299
+ )
300
+
301
+ sig do
302
+ override.returns(
303
+ T::Array[
304
+ ContextDev::Models::WebExtractStyleguideResponse::FinalDomState::TaggedSymbol
305
+ ]
306
+ )
307
+ end
308
+ def self.values
309
+ end
310
+ end
311
+
241
312
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
242
313
  OrHash =
243
314
  T.type_alias do