context.dev 2.16.0 → 2.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  5. data/lib/context_dev/models/ai_extract_product_response.rb +10 -1
  6. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  7. data/lib/context_dev/models/ai_extract_products_response.rb +11 -1
  8. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  9. data/lib/context_dev/models/brand_retrieve_response.rb +71 -62
  10. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  11. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +72 -63
  12. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  13. data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -1
  14. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  15. data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -1
  16. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  17. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  18. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  19. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  20. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  21. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  22. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  23. data/lib/context_dev/models/person_enrich_response.rb +10 -1
  24. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  25. data/lib/context_dev/models/web_answers_params.rb +124 -0
  26. data/lib/context_dev/models/web_answers_response.rb +68 -0
  27. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  28. data/lib/context_dev/models/web_extract_competitors_response.rb +10 -1
  29. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  30. data/lib/context_dev/models/web_extract_fonts_response.rb +32 -1
  31. data/lib/context_dev/models/web_extract_params.rb +53 -8
  32. data/lib/context_dev/models/web_extract_response.rb +10 -1
  33. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  34. data/lib/context_dev/models/web_extract_styleguide_response.rb +32 -1
  35. data/lib/context_dev/models/web_screenshot_params.rb +58 -10
  36. data/lib/context_dev/models/web_screenshot_response.rb +32 -1
  37. data/lib/context_dev/models/web_search_params.rb +112 -16
  38. data/lib/context_dev/models/web_search_response.rb +49 -4
  39. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  40. data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -1
  41. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  42. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  43. data/lib/context_dev/models/web_web_scrape_html_params.rb +57 -10
  44. data/lib/context_dev/models/web_web_scrape_html_response.rb +32 -1
  45. data/lib/context_dev/models/web_web_scrape_images_params.rb +57 -10
  46. data/lib/context_dev/models/web_web_scrape_images_response.rb +42 -1
  47. data/lib/context_dev/models/web_web_scrape_md_params.rb +57 -10
  48. data/lib/context_dev/models/web_web_scrape_md_response.rb +32 -1
  49. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  50. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +11 -1
  51. data/lib/context_dev/models.rb +4 -0
  52. data/lib/context_dev/resources/ai.rb +2 -2
  53. data/lib/context_dev/resources/brand.rb +3 -3
  54. data/lib/context_dev/resources/industry.rb +6 -6
  55. data/lib/context_dev/resources/people.rb +2 -2
  56. data/lib/context_dev/resources/utility.rb +2 -2
  57. data/lib/context_dev/resources/web.rb +119 -33
  58. data/lib/context_dev/version.rb +1 -1
  59. data/lib/context_dev.rb +4 -0
  60. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  61. data/rbi/context_dev/models/ai_extract_product_response.rbi +13 -0
  62. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  63. data/rbi/context_dev/models/ai_extract_products_response.rbi +15 -0
  64. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  65. data/rbi/context_dev/models/brand_retrieve_response.rbi +136 -131
  66. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  67. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +140 -135
  68. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  69. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +13 -0
  70. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  71. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +13 -0
  72. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  73. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  74. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  75. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  76. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  77. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  78. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  79. data/rbi/context_dev/models/person_enrich_response.rbi +16 -3
  80. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  81. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  82. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  83. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  84. data/rbi/context_dev/models/web_extract_competitors_response.rbi +16 -3
  85. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  86. data/rbi/context_dev/models/web_extract_fonts_response.rbi +71 -0
  87. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  88. data/rbi/context_dev/models/web_extract_response.rbi +16 -3
  89. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  90. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +71 -0
  91. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -17
  92. data/rbi/context_dev/models/web_screenshot_response.rbi +71 -0
  93. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  94. data/rbi/context_dev/models/web_search_response.rbi +96 -8
  95. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  96. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +19 -3
  97. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  98. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  99. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +132 -17
  100. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +61 -0
  101. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +134 -17
  102. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +89 -3
  103. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +130 -17
  104. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +61 -0
  105. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  106. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +18 -3
  107. data/rbi/context_dev/models.rbi +4 -0
  108. data/rbi/context_dev/resources/ai.rbi +5 -5
  109. data/rbi/context_dev/resources/brand.rbi +9 -8
  110. data/rbi/context_dev/resources/industry.rbi +12 -10
  111. data/rbi/context_dev/resources/people.rbi +5 -5
  112. data/rbi/context_dev/resources/utility.rbi +5 -5
  113. data/rbi/context_dev/resources/web.rbi +170 -72
  114. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  115. data/sig/context_dev/models/ai_extract_product_response.rbs +7 -0
  116. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  117. data/sig/context_dev/models/ai_extract_products_response.rbs +7 -0
  118. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  119. data/sig/context_dev/models/brand_retrieve_response.rbs +53 -54
  120. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  121. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +53 -54
  122. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  123. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +7 -0
  124. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  125. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +7 -0
  126. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  127. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  128. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  129. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  130. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  131. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  132. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  133. data/sig/context_dev/models/person_enrich_response.rbs +10 -3
  134. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  135. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  136. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  137. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  138. data/sig/context_dev/models/web_extract_competitors_response.rbs +10 -3
  139. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  140. data/sig/context_dev/models/web_extract_fonts_response.rbs +20 -0
  141. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  142. data/sig/context_dev/models/web_extract_response.rbs +10 -3
  143. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  144. data/sig/context_dev/models/web_extract_styleguide_response.rbs +20 -0
  145. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  146. data/sig/context_dev/models/web_screenshot_response.rbs +20 -0
  147. data/sig/context_dev/models/web_search_params.rbs +88 -10
  148. data/sig/context_dev/models/web_search_response.rbs +33 -6
  149. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  150. data/sig/context_dev/models/web_web_crawl_md_response.rbs +10 -3
  151. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  152. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  153. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  154. data/sig/context_dev/models/web_web_scrape_html_response.rbs +16 -0
  155. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  156. data/sig/context_dev/models/web_web_scrape_images_response.rbs +30 -3
  157. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  158. data/sig/context_dev/models/web_web_scrape_md_response.rbs +16 -0
  159. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  160. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +10 -3
  161. data/sig/context_dev/models.rbs +4 -0
  162. data/sig/context_dev/resources/ai.rbs +1 -1
  163. data/sig/context_dev/resources/brand.rbs +1 -1
  164. data/sig/context_dev/resources/industry.rbs +2 -2
  165. data/sig/context_dev/resources/people.rbs +1 -1
  166. data/sig/context_dev/resources/utility.rbs +1 -1
  167. data/sig/context_dev/resources/web.rbs +30 -11
  168. metadata +14 -2
@@ -432,6 +432,27 @@ module ContextDev
432
432
  sig { returns(String) }
433
433
  attr_accessor :url
434
434
 
435
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
436
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
437
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
438
+ # creates a new baseline.
439
+ sig { returns(T.nilable(T::Array[String])) }
440
+ attr_reader :exclude_selectors
441
+
442
+ sig { params(exclude_selectors: T::Array[String]).void }
443
+ attr_writer :exclude_selectors
444
+
445
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
446
+ # combined in document order before text extraction, instead of automatic
447
+ # main-content selection. Omit or pass an empty array to use automatic
448
+ # main-content extraction. If the filtered page has no usable text, the run fails
449
+ # without replacing the baseline. Changing these selectors creates a new baseline.
450
+ sig { returns(T.nilable(T::Array[String])) }
451
+ attr_reader :include_selectors
452
+
453
+ sig { params(include_selectors: T::Array[String]).void }
454
+ attr_writer :include_selectors
455
+
435
456
  # Plain-language goal describing which page changes matter. When provided without
436
457
  # change_detection, semantic detection is inferred.
437
458
  sig { returns(T.nilable(String)) }
@@ -452,6 +473,8 @@ module ContextDev
452
473
  sig do
453
474
  params(
454
475
  url: String,
476
+ exclude_selectors: T::Array[String],
477
+ include_selectors: T::Array[String],
455
478
  instructions: String,
456
479
  normalize_whitespace: T::Boolean,
457
480
  type: Symbol
@@ -459,6 +482,17 @@ module ContextDev
459
482
  end
460
483
  def self.new(
461
484
  url:,
485
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
486
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
487
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
488
+ # creates a new baseline.
489
+ exclude_selectors: nil,
490
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
491
+ # combined in document order before text extraction, instead of automatic
492
+ # main-content selection. Omit or pass an empty array to use automatic
493
+ # main-content extraction. If the filtered page has no usable text, the run fails
494
+ # without replacing the baseline. Changing these selectors creates a new baseline.
495
+ include_selectors: nil,
462
496
  # Plain-language goal describing which page changes matter. When provided without
463
497
  # change_detection, semantic detection is inferred.
464
498
  instructions: nil,
@@ -473,6 +507,8 @@ module ContextDev
473
507
  {
474
508
  type: Symbol,
475
509
  url: String,
510
+ exclude_selectors: T::Array[String],
511
+ include_selectors: T::Array[String],
476
512
  instructions: String,
477
513
  normalize_whitespace: T::Boolean
478
514
  }
@@ -691,7 +727,8 @@ module ContextDev
691
727
  )
692
728
  end
693
729
 
694
- # Webhook URL events are delivered to.
730
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
731
+ # automatically formatted as Slack messages.
695
732
  sig { returns(String) }
696
733
  attr_accessor :url
697
734
 
@@ -739,7 +776,8 @@ module ContextDev
739
776
  ).returns(T.attached_class)
740
777
  end
741
778
  def self.new(
742
- # Webhook URL events are delivered to.
779
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
780
+ # automatically formatted as Slack messages.
743
781
  url:,
744
782
  # Events delivered to this endpoint. `change.detected` fires only when a run
745
783
  # detects a change; `run.completed` fires on every completed run — including runs
@@ -591,6 +591,27 @@ module ContextDev
591
591
  sig { returns(String) }
592
592
  attr_accessor :url
593
593
 
594
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
595
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
596
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
597
+ # creates a new baseline.
598
+ sig { returns(T.nilable(T::Array[String])) }
599
+ attr_reader :exclude_selectors
600
+
601
+ sig { params(exclude_selectors: T::Array[String]).void }
602
+ attr_writer :exclude_selectors
603
+
604
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
605
+ # combined in document order before text extraction, instead of automatic
606
+ # main-content selection. Omit or pass an empty array to use automatic
607
+ # main-content extraction. If the filtered page has no usable text, the run fails
608
+ # without replacing the baseline. Changing these selectors creates a new baseline.
609
+ sig { returns(T.nilable(T::Array[String])) }
610
+ attr_reader :include_selectors
611
+
612
+ sig { params(include_selectors: T::Array[String]).void }
613
+ attr_writer :include_selectors
614
+
594
615
  # Plain-language goal describing which page changes matter. When provided without
595
616
  # change_detection, semantic detection is inferred.
596
617
  sig { returns(T.nilable(String)) }
@@ -611,6 +632,8 @@ module ContextDev
611
632
  sig do
612
633
  params(
613
634
  url: String,
635
+ exclude_selectors: T::Array[String],
636
+ include_selectors: T::Array[String],
614
637
  instructions: String,
615
638
  normalize_whitespace: T::Boolean,
616
639
  type: Symbol
@@ -618,6 +641,17 @@ module ContextDev
618
641
  end
619
642
  def self.new(
620
643
  url:,
644
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
645
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
646
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
647
+ # creates a new baseline.
648
+ exclude_selectors: nil,
649
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
650
+ # combined in document order before text extraction, instead of automatic
651
+ # main-content selection. Omit or pass an empty array to use automatic
652
+ # main-content extraction. If the filtered page has no usable text, the run fails
653
+ # without replacing the baseline. Changing these selectors creates a new baseline.
654
+ include_selectors: nil,
621
655
  # Plain-language goal describing which page changes matter. When provided without
622
656
  # change_detection, semantic detection is inferred.
623
657
  instructions: nil,
@@ -632,6 +666,8 @@ module ContextDev
632
666
  {
633
667
  type: Symbol,
634
668
  url: String,
669
+ exclude_selectors: T::Array[String],
670
+ include_selectors: T::Array[String],
635
671
  instructions: String,
636
672
  normalize_whitespace: T::Boolean
637
673
  }
@@ -1046,7 +1082,8 @@ module ContextDev
1046
1082
  )
1047
1083
  end
1048
1084
 
1049
- # Webhook URL events are delivered to.
1085
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1086
+ # automatically formatted as Slack messages.
1050
1087
  sig { returns(String) }
1051
1088
  attr_accessor :url
1052
1089
 
@@ -1082,7 +1119,8 @@ module ContextDev
1082
1119
  sig { params(retry_: ContextDev::RetryConfig::OrHash).void }
1083
1120
  attr_writer :retry_
1084
1121
 
1085
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1122
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1123
+ # has monitors:write permission or full access. Each delivery includes an
1086
1124
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1087
1125
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1088
1126
  # compare and reject stale timestamps to prevent replay. Generated by the API;
@@ -1105,7 +1143,8 @@ module ContextDev
1105
1143
  ).returns(T.attached_class)
1106
1144
  end
1107
1145
  def self.new(
1108
- # Webhook URL events are delivered to.
1146
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1147
+ # automatically formatted as Slack messages.
1109
1148
  url:,
1110
1149
  # Events delivered to this endpoint. `change.detected` fires only when a run
1111
1150
  # detects a change; `run.completed` fires on every completed run — including runs
@@ -1114,7 +1153,8 @@ module ContextDev
1114
1153
  events: nil,
1115
1154
  # Webhook retry settings. Use {} for the default schedule.
1116
1155
  retry_: nil,
1117
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1156
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1157
+ # has monitors:write permission or full access. Each delivery includes an
1118
1158
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1119
1159
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1120
1160
  # compare and reject stale timestamps to prevent replay. Generated by the API;
@@ -64,14 +64,18 @@ module ContextDev
64
64
  sig { params(tags: T::Array[String]).void }
65
65
  attr_writer :tags
66
66
 
67
- # Optional timeout in milliseconds for the request. If the request takes longer
68
- # than this value, it will be aborted with a 408 status code. Maximum allowed
69
- # value is 300000ms (5 minutes).
70
- sig { returns(T.nilable(Integer)) }
71
- attr_reader :timeout_ms
67
+ # Optional request deadline and behavior on timeout. For GET requests, use
68
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
69
+ # timeoutOpts object.
70
+ sig { returns(T.nilable(ContextDev::PersonEnrichParams::TimeoutOpts)) }
71
+ attr_reader :timeout_opts
72
72
 
73
- sig { params(timeout_ms: Integer).void }
74
- attr_writer :timeout_ms
73
+ sig do
74
+ params(
75
+ timeout_opts: ContextDev::PersonEnrichParams::TimeoutOpts::OrHash
76
+ ).void
77
+ end
78
+ attr_writer :timeout_opts
75
79
 
76
80
  sig do
77
81
  params(
@@ -83,7 +87,7 @@ module ContextDev
83
87
  name: ContextDev::PersonEnrichParams::Name::OrHash,
84
88
  social_urls: T::Array[String],
85
89
  tags: T::Array[String],
86
- timeout_ms: Integer,
90
+ timeout_opts: ContextDev::PersonEnrichParams::TimeoutOpts::OrHash,
87
91
  request_options: ContextDev::RequestOptions::OrHash
88
92
  ).returns(T.attached_class)
89
93
  end
@@ -96,10 +100,10 @@ module ContextDev
96
100
  social_urls: nil,
97
101
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
98
102
  tags: nil,
99
- # Optional timeout in milliseconds for the request. If the request takes longer
100
- # than this value, it will be aborted with a 408 status code. Maximum allowed
101
- # value is 300000ms (5 minutes).
102
- timeout_ms: nil,
103
+ # Optional request deadline and behavior on timeout. For GET requests, use
104
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
105
+ # timeoutOpts object.
106
+ timeout_opts: nil,
103
107
  request_options: {}
104
108
  )
105
109
  end
@@ -114,7 +118,7 @@ module ContextDev
114
118
  name: ContextDev::PersonEnrichParams::Name,
115
119
  social_urls: T::Array[String],
116
120
  tags: T::Array[String],
117
- timeout_ms: Integer,
121
+ timeout_opts: ContextDev::PersonEnrichParams::TimeoutOpts,
118
122
  request_options: ContextDev::RequestOptions
119
123
  }
120
124
  )
@@ -327,6 +331,112 @@ module ContextDev
327
331
  def to_hash
328
332
  end
329
333
  end
334
+
335
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
336
+ OrHash =
337
+ T.type_alias do
338
+ T.any(
339
+ ContextDev::PersonEnrichParams::TimeoutOpts,
340
+ ContextDev::Internal::AnyHash
341
+ )
342
+ end
343
+
344
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
345
+ sig { returns(Integer) }
346
+ attr_accessor :milliseconds
347
+
348
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
349
+ # credits. "return-partial" returns usable results collected so far; if none are
350
+ # available, the request still fails without charging credits. Partial results are
351
+ # not cached as complete results.
352
+ sig do
353
+ returns(
354
+ T.nilable(
355
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::OrSymbol
356
+ )
357
+ )
358
+ end
359
+ attr_reader :behavior
360
+
361
+ sig do
362
+ params(
363
+ behavior:
364
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::OrSymbol
365
+ ).void
366
+ end
367
+ attr_writer :behavior
368
+
369
+ # Optional request deadline and behavior on timeout. For GET requests, use
370
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
371
+ # timeoutOpts object.
372
+ sig do
373
+ params(
374
+ milliseconds: Integer,
375
+ behavior:
376
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::OrSymbol
377
+ ).returns(T.attached_class)
378
+ end
379
+ def self.new(
380
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
381
+ milliseconds:,
382
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
383
+ # credits. "return-partial" returns usable results collected so far; if none are
384
+ # available, the request still fails without charging credits. Partial results are
385
+ # not cached as complete results.
386
+ behavior: nil
387
+ )
388
+ end
389
+
390
+ sig do
391
+ override.returns(
392
+ {
393
+ milliseconds: Integer,
394
+ behavior:
395
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::OrSymbol
396
+ }
397
+ )
398
+ end
399
+ def to_hash
400
+ end
401
+
402
+ # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
403
+ # credits. "return-partial" returns usable results collected so far; if none are
404
+ # available, the request still fails without charging credits. Partial results are
405
+ # not cached as complete results.
406
+ module Behavior
407
+ extend ContextDev::Internal::Type::Enum
408
+
409
+ TaggedSymbol =
410
+ T.type_alias do
411
+ T.all(
412
+ Symbol,
413
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior
414
+ )
415
+ end
416
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
417
+
418
+ FAIL =
419
+ T.let(
420
+ :fail,
421
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::TaggedSymbol
422
+ )
423
+ RETURN_PARTIAL =
424
+ T.let(
425
+ :"return-partial",
426
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::TaggedSymbol
427
+ )
428
+
429
+ sig do
430
+ override.returns(
431
+ T::Array[
432
+ ContextDev::PersonEnrichParams::TimeoutOpts::Behavior::TaggedSymbol
433
+ ]
434
+ )
435
+ end
436
+ def self.values
437
+ end
438
+ end
439
+ end
330
440
  end
331
441
  end
332
442
  end
@@ -36,6 +36,14 @@ module ContextDev
36
36
  end
37
37
  attr_writer :key_metadata
38
38
 
39
+ # True when the timeout ended processing and this response contains the usable
40
+ # data completed so far. Unfinished fields are omitted.
41
+ sig { returns(T.nilable(T::Boolean)) }
42
+ attr_reader :partial
43
+
44
+ sig { params(partial: T::Boolean).void }
45
+ attr_writer :partial
46
+
39
47
  sig do
40
48
  params(
41
49
  match:
@@ -45,7 +53,8 @@ module ContextDev
45
53
  ),
46
54
  request_id: String,
47
55
  key_metadata:
48
- ContextDev::Models::PersonEnrichResponse::KeyMetadata::OrHash
56
+ ContextDev::Models::PersonEnrichResponse::KeyMetadata::OrHash,
57
+ partial: T::Boolean
49
58
  ).returns(T.attached_class)
50
59
  end
51
60
  def self.new(
@@ -55,7 +64,10 @@ module ContextDev
55
64
  # it when contacting support about a failed request.
56
65
  request_id:,
57
66
  # Credit usage, included whenever a valid API key is provided.
58
- key_metadata: nil
67
+ key_metadata: nil,
68
+ # True when the timeout ended processing and this response contains the usable
69
+ # data completed so far. Unfinished fields are omitted.
70
+ partial: nil
59
71
  )
60
72
  end
61
73
 
@@ -64,7 +76,8 @@ module ContextDev
64
76
  {
65
77
  match: ContextDev::Models::PersonEnrichResponse::Match::Variants,
66
78
  request_id: String,
67
- key_metadata: ContextDev::Models::PersonEnrichResponse::KeyMetadata
79
+ key_metadata: ContextDev::Models::PersonEnrichResponse::KeyMetadata,
80
+ partial: T::Boolean
68
81
  }
69
82
  )
70
83
  end
@@ -37,14 +37,18 @@ module ContextDev
37
37
  sig { params(tags: T::Array[String]).void }
38
38
  attr_writer :tags
39
39
 
40
- # Optional timeout in milliseconds for the request. If the request takes longer
41
- # than this value, it will be aborted with a 408 status code. Maximum allowed
42
- # value is 300000ms (5 minutes).
43
- sig { returns(T.nilable(Integer)) }
44
- attr_reader :timeout_ms
40
+ # Optional request deadline and behavior on timeout. For GET requests, use
41
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
42
+ # timeoutOpts object.
43
+ sig { returns(T.nilable(ContextDev::UtilityPrefetchParams::TimeoutOpts)) }
44
+ attr_reader :timeout_opts
45
45
 
46
- sig { params(timeout_ms: Integer).void }
47
- attr_writer :timeout_ms
46
+ sig do
47
+ params(
48
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts::OrHash
49
+ ).void
50
+ end
51
+ attr_writer :timeout_opts
48
52
 
49
53
  sig do
50
54
  params(
@@ -55,7 +59,7 @@ module ContextDev
55
59
  ),
56
60
  type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
57
61
  tags: T::Array[String],
58
- timeout_ms: Integer,
62
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts::OrHash,
59
63
  request_options: ContextDev::RequestOptions::OrHash
60
64
  ).returns(T.attached_class)
61
65
  end
@@ -67,10 +71,10 @@ module ContextDev
67
71
  type:,
68
72
  # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
69
73
  tags: nil,
70
- # Optional timeout in milliseconds for the request. If the request takes longer
71
- # than this value, it will be aborted with a 408 status code. Maximum allowed
72
- # value is 300000ms (5 minutes).
73
- timeout_ms: nil,
74
+ # Optional request deadline and behavior on timeout. For GET requests, use
75
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
76
+ # timeoutOpts object.
77
+ timeout_opts: nil,
74
78
  request_options: {}
75
79
  )
76
80
  end
@@ -85,7 +89,7 @@ module ContextDev
85
89
  ),
86
90
  type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
87
91
  tags: T::Array[String],
88
- timeout_ms: Integer,
92
+ timeout_opts: ContextDev::UtilityPrefetchParams::TimeoutOpts,
89
93
  request_options: ContextDev::RequestOptions
90
94
  }
91
95
  )
@@ -197,6 +201,101 @@ module ContextDev
197
201
  def self.values
198
202
  end
199
203
  end
204
+
205
+ class TimeoutOpts < ContextDev::Internal::Type::BaseModel
206
+ OrHash =
207
+ T.type_alias do
208
+ T.any(
209
+ ContextDev::UtilityPrefetchParams::TimeoutOpts,
210
+ ContextDev::Internal::AnyHash
211
+ )
212
+ end
213
+
214
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
215
+ sig { returns(Integer) }
216
+ attr_accessor :milliseconds
217
+
218
+ # What to do at the deadline. This endpoint supports "fail": return 408
219
+ # REQUEST_TIMEOUT without charging credits.
220
+ sig do
221
+ returns(
222
+ T.nilable(
223
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
224
+ )
225
+ )
226
+ end
227
+ attr_reader :behavior
228
+
229
+ sig do
230
+ params(
231
+ behavior:
232
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
233
+ ).void
234
+ end
235
+ attr_writer :behavior
236
+
237
+ # Optional request deadline and behavior on timeout. For GET requests, use
238
+ # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
239
+ # timeoutOpts object.
240
+ sig do
241
+ params(
242
+ milliseconds: Integer,
243
+ behavior:
244
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
245
+ ).returns(T.attached_class)
246
+ end
247
+ def self.new(
248
+ # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
249
+ milliseconds:,
250
+ # What to do at the deadline. This endpoint supports "fail": return 408
251
+ # REQUEST_TIMEOUT without charging credits.
252
+ behavior: nil
253
+ )
254
+ end
255
+
256
+ sig do
257
+ override.returns(
258
+ {
259
+ milliseconds: Integer,
260
+ behavior:
261
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::OrSymbol
262
+ }
263
+ )
264
+ end
265
+ def to_hash
266
+ end
267
+
268
+ # What to do at the deadline. This endpoint supports "fail": return 408
269
+ # REQUEST_TIMEOUT without charging credits.
270
+ module Behavior
271
+ extend ContextDev::Internal::Type::Enum
272
+
273
+ TaggedSymbol =
274
+ T.type_alias do
275
+ T.all(
276
+ Symbol,
277
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior
278
+ )
279
+ end
280
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
281
+
282
+ FAIL =
283
+ T.let(
284
+ :fail,
285
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::TaggedSymbol
286
+ )
287
+
288
+ sig do
289
+ override.returns(
290
+ T::Array[
291
+ ContextDev::UtilityPrefetchParams::TimeoutOpts::Behavior::TaggedSymbol
292
+ ]
293
+ )
294
+ end
295
+ def self.values
296
+ end
297
+ end
298
+ end
200
299
  end
201
300
  end
202
301
  end