context.dev 2.21.0 → 2.22.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 +24 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +4 -9
  5. data/lib/context_dev/models/batch_cancel_params.rb +2 -2
  6. data/lib/context_dev/models/batch_cancel_response.rb +16 -21
  7. data/lib/context_dev/models/batch_delete_params.rb +2 -2
  8. data/lib/context_dev/models/batch_delete_response.rb +8 -8
  9. data/lib/context_dev/models/batch_get_results_params.rb +2 -2
  10. data/lib/context_dev/models/batch_get_results_response.rb +17 -22
  11. data/lib/context_dev/models/batch_list_response.rb +38 -47
  12. data/lib/context_dev/models/batch_retrieve_params.rb +2 -2
  13. data/lib/context_dev/models/batch_retrieve_response.rb +37 -46
  14. data/lib/context_dev/models/batch_submit_params.rb +80 -109
  15. data/lib/context_dev/models/batch_submit_response.rb +18 -28
  16. data/lib/context_dev/models/brand_retrieve_params.rb +90 -149
  17. data/lib/context_dev/models/brand_retrieve_response.rb +18 -22
  18. data/lib/context_dev/models/brand_search_params.rb +2 -3
  19. data/lib/context_dev/models/brand_search_response.rb +8 -8
  20. data/lib/context_dev/models/crawl_controls.rb +1 -2
  21. data/lib/context_dev/models/feedback_submit_params.rb +2 -2
  22. data/lib/context_dev/models/feedback_submit_response.rb +8 -8
  23. data/lib/context_dev/models/industry_retrieve_naics_params.rb +17 -32
  24. data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -10
  25. data/lib/context_dev/models/industry_retrieve_sic_params.rb +20 -39
  26. data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -10
  27. data/lib/context_dev/models/intake.rb +7 -13
  28. data/lib/context_dev/models/log_list_response.rb +14 -10
  29. data/lib/context_dev/models/log_retrieve_response.rb +15 -41
  30. data/lib/context_dev/models/monitor_create_params.rb +238 -72
  31. data/lib/context_dev/models/monitor_create_response.rb +364 -175
  32. data/lib/context_dev/models/monitor_delete_params.rb +3 -1
  33. data/lib/context_dev/models/monitor_delete_response.rb +44 -1
  34. data/lib/context_dev/models/monitor_get_credit_usage_response.rb +43 -1
  35. data/lib/context_dev/models/monitor_get_limits_response.rb +47 -7
  36. data/lib/context_dev/models/monitor_list_account_changes_response.rb +143 -20
  37. data/lib/context_dev/models/monitor_list_account_runs_response.rb +50 -8
  38. data/lib/context_dev/models/monitor_list_changes_params.rb +2 -1
  39. data/lib/context_dev/models/monitor_list_changes_response.rb +143 -20
  40. data/lib/context_dev/models/monitor_list_params.rb +3 -3
  41. data/lib/context_dev/models/monitor_list_response.rb +304 -106
  42. data/lib/context_dev/models/monitor_list_runs_params.rb +2 -1
  43. data/lib/context_dev/models/monitor_list_runs_response.rb +50 -8
  44. data/lib/context_dev/models/monitor_retrieve_change_params.rb +3 -1
  45. data/lib/context_dev/models/monitor_retrieve_change_response.rb +45 -15
  46. data/lib/context_dev/models/monitor_retrieve_params.rb +3 -1
  47. data/lib/context_dev/models/monitor_retrieve_response.rb +361 -171
  48. data/lib/context_dev/models/monitor_retrieve_run_params.rb +6 -2
  49. data/lib/context_dev/models/monitor_retrieve_run_response.rb +45 -8
  50. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +3 -1
  51. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +364 -172
  52. data/lib/context_dev/models/monitor_run_params.rb +3 -1
  53. data/lib/context_dev/models/monitor_run_response.rb +42 -4
  54. data/lib/context_dev/models/monitor_update_params.rb +239 -71
  55. data/lib/context_dev/models/monitor_update_response.rb +361 -171
  56. data/lib/context_dev/models/news_search_params.rb +10 -6
  57. data/lib/context_dev/models/news_search_response.rb +8 -8
  58. data/lib/context_dev/models/parse_handle_params.rb +9 -20
  59. data/lib/context_dev/models/parse_handle_response.rb +8 -8
  60. data/lib/context_dev/models/person_enrich_params.rb +76 -50
  61. data/lib/context_dev/models/person_enrich_response.rb +8 -8
  62. data/lib/context_dev/models/utility_prefetch_params.rb +15 -29
  63. data/lib/context_dev/models/utility_prefetch_response.rb +10 -10
  64. data/lib/context_dev/models/web_answers_params.rb +28 -47
  65. data/lib/context_dev/models/web_answers_response.rb +9 -8
  66. data/lib/context_dev/models/web_extract_competitors_params.rb +17 -32
  67. data/lib/context_dev/models/web_extract_competitors_response.rb +8 -8
  68. data/lib/context_dev/models/web_extract_styleguide_params.rb +22 -44
  69. data/lib/context_dev/models/web_extract_styleguide_response.rb +34 -44
  70. data/lib/context_dev/models/web_map_urls_params.rb +30 -51
  71. data/lib/context_dev/models/web_map_urls_response.rb +8 -8
  72. data/lib/context_dev/models/web_scrape_params.rb +193 -191
  73. data/lib/context_dev/models/web_scrape_response.rb +219 -95
  74. data/lib/context_dev/models/web_screenshot_params.rb +20 -39
  75. data/lib/context_dev/models/web_screenshot_response.rb +18 -28
  76. data/lib/context_dev/models/web_search_params.rb +76 -65
  77. data/lib/context_dev/models/web_search_response.rb +68 -27
  78. data/lib/context_dev/models/web_web_crawl_md_params.rb +41 -70
  79. data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -15
  80. data/lib/context_dev/models/webhook_delivery.rb +3 -7
  81. data/lib/context_dev/models/webhooks/attempt.rb +3 -3
  82. data/lib/context_dev/models/webhooks/delivery.rb +16 -11
  83. data/lib/context_dev/models/webhooks/delivery_list_attempts_params.rb +2 -6
  84. data/lib/context_dev/models/webhooks/delivery_list_attempts_response.rb +8 -8
  85. data/lib/context_dev/models/webhooks/delivery_list_params.rb +4 -4
  86. data/lib/context_dev/models/webhooks/delivery_list_response.rb +8 -8
  87. data/lib/context_dev/models/webhooks/delivery_retrieve_params.rb +2 -6
  88. data/lib/context_dev/models/webhooks/delivery_retrieve_response.rb +8 -8
  89. data/lib/context_dev/models/webhooks/delivery_retry_params.rb +4 -4
  90. data/lib/context_dev/models/webhooks/delivery_retry_response.rb +8 -8
  91. data/lib/context_dev/models/webhooks/delivery_summary.rb +16 -11
  92. data/lib/context_dev/resources/batch.rb +17 -16
  93. data/lib/context_dev/resources/brand.rb +6 -8
  94. data/lib/context_dev/resources/feedback.rb +4 -5
  95. data/lib/context_dev/resources/industry.rb +9 -11
  96. data/lib/context_dev/resources/logs.rb +4 -5
  97. data/lib/context_dev/resources/monitors.rb +50 -53
  98. data/lib/context_dev/resources/news.rb +4 -8
  99. data/lib/context_dev/resources/parse.rb +4 -5
  100. data/lib/context_dev/resources/people.rb +11 -13
  101. data/lib/context_dev/resources/utility.rb +4 -11
  102. data/lib/context_dev/resources/web.rb +69 -94
  103. data/lib/context_dev/resources/webhooks/deliveries.rb +10 -18
  104. data/lib/context_dev/resources/webhooks.rb +1 -1
  105. data/lib/context_dev/version.rb +1 -1
  106. data/rbi/context_dev/client.rbi +4 -9
  107. data/rbi/context_dev/models/batch_cancel_params.rbi +2 -2
  108. data/rbi/context_dev/models/batch_cancel_response.rbi +17 -21
  109. data/rbi/context_dev/models/batch_delete_params.rbi +2 -2
  110. data/rbi/context_dev/models/batch_delete_response.rbi +9 -9
  111. data/rbi/context_dev/models/batch_get_results_params.rbi +2 -2
  112. data/rbi/context_dev/models/batch_get_results_response.rbi +18 -26
  113. data/rbi/context_dev/models/batch_list_response.rbi +41 -53
  114. data/rbi/context_dev/models/batch_retrieve_params.rbi +2 -2
  115. data/rbi/context_dev/models/batch_retrieve_response.rbi +40 -52
  116. data/rbi/context_dev/models/batch_submit_params.rbi +87 -147
  117. data/rbi/context_dev/models/batch_submit_response.rbi +19 -31
  118. data/rbi/context_dev/models/brand_retrieve_params.rbi +99 -190
  119. data/rbi/context_dev/models/brand_retrieve_response.rbi +19 -25
  120. data/rbi/context_dev/models/brand_search_params.rbi +2 -4
  121. data/rbi/context_dev/models/brand_search_response.rbi +9 -9
  122. data/rbi/context_dev/models/crawl_controls.rbi +1 -2
  123. data/rbi/context_dev/models/feedback_submit_params.rbi +2 -2
  124. data/rbi/context_dev/models/feedback_submit_response.rbi +9 -9
  125. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +19 -42
  126. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +11 -11
  127. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +22 -51
  128. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +11 -11
  129. data/rbi/context_dev/models/intake.rbi +7 -19
  130. data/rbi/context_dev/models/log_list_response.rbi +13 -11
  131. data/rbi/context_dev/models/log_retrieve_response.rbi +13 -76
  132. data/rbi/context_dev/models/monitor_create_params.rbi +418 -78
  133. data/rbi/context_dev/models/monitor_create_response.rbi +654 -287
  134. data/rbi/context_dev/models/monitor_delete_params.rbi +6 -1
  135. data/rbi/context_dev/models/monitor_delete_response.rbi +89 -3
  136. data/rbi/context_dev/models/monitor_get_credit_usage_response.rbi +77 -3
  137. data/rbi/context_dev/models/monitor_get_limits_response.rbi +83 -10
  138. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +236 -24
  139. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +86 -12
  140. data/rbi/context_dev/models/monitor_list_changes_params.rbi +2 -0
  141. data/rbi/context_dev/models/monitor_list_changes_response.rbi +234 -24
  142. data/rbi/context_dev/models/monitor_list_params.rbi +4 -4
  143. data/rbi/context_dev/models/monitor_list_response.rbi +502 -130
  144. data/rbi/context_dev/models/monitor_list_runs_params.rbi +2 -0
  145. data/rbi/context_dev/models/monitor_list_runs_response.rbi +84 -12
  146. data/rbi/context_dev/models/monitor_retrieve_change_params.rbi +6 -1
  147. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +79 -15
  148. data/rbi/context_dev/models/monitor_retrieve_params.rbi +6 -1
  149. data/rbi/context_dev/models/monitor_retrieve_response.rbi +654 -283
  150. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +9 -1
  151. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +77 -9
  152. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +6 -1
  153. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +659 -288
  154. data/rbi/context_dev/models/monitor_run_params.rbi +6 -1
  155. data/rbi/context_dev/models/monitor_run_response.rbi +82 -9
  156. data/rbi/context_dev/models/monitor_update_params.rbi +420 -75
  157. data/rbi/context_dev/models/monitor_update_response.rbi +650 -281
  158. data/rbi/context_dev/models/news_search_params.rbi +10 -2
  159. data/rbi/context_dev/models/news_search_response.rbi +9 -9
  160. data/rbi/context_dev/models/parse_handle_params.rbi +10 -29
  161. data/rbi/context_dev/models/parse_handle_response.rbi +9 -9
  162. data/rbi/context_dev/models/person_enrich_params.rbi +86 -44
  163. data/rbi/context_dev/models/person_enrich_response.rbi +9 -9
  164. data/rbi/context_dev/models/utility_prefetch_params.rbi +15 -27
  165. data/rbi/context_dev/models/utility_prefetch_response.rbi +11 -11
  166. data/rbi/context_dev/models/web_answers_params.rbi +33 -63
  167. data/rbi/context_dev/models/web_answers_response.rbi +11 -9
  168. data/rbi/context_dev/models/web_extract_competitors_params.rbi +19 -42
  169. data/rbi/context_dev/models/web_extract_competitors_response.rbi +9 -9
  170. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +25 -61
  171. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +36 -51
  172. data/rbi/context_dev/models/web_map_urls_params.rbi +33 -68
  173. data/rbi/context_dev/models/web_map_urls_response.rbi +9 -9
  174. data/rbi/context_dev/models/web_scrape_params.rbi +212 -206
  175. data/rbi/context_dev/models/web_scrape_response.rbi +296 -120
  176. data/rbi/context_dev/models/web_screenshot_params.rbi +22 -51
  177. data/rbi/context_dev/models/web_screenshot_response.rbi +20 -35
  178. data/rbi/context_dev/models/web_search_params.rbi +114 -82
  179. data/rbi/context_dev/models/web_search_response.rbi +145 -33
  180. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +45 -95
  181. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +12 -18
  182. data/rbi/context_dev/models/webhook_delivery.rbi +3 -9
  183. data/rbi/context_dev/models/webhooks/attempt.rbi +3 -3
  184. data/rbi/context_dev/models/webhooks/delivery.rbi +14 -11
  185. data/rbi/context_dev/models/webhooks/delivery_list_attempts_params.rbi +2 -4
  186. data/rbi/context_dev/models/webhooks/delivery_list_attempts_response.rbi +9 -9
  187. data/rbi/context_dev/models/webhooks/delivery_list_params.rbi +4 -4
  188. data/rbi/context_dev/models/webhooks/delivery_list_response.rbi +9 -9
  189. data/rbi/context_dev/models/webhooks/delivery_retrieve_params.rbi +2 -4
  190. data/rbi/context_dev/models/webhooks/delivery_retrieve_response.rbi +9 -9
  191. data/rbi/context_dev/models/webhooks/delivery_retry_params.rbi +4 -4
  192. data/rbi/context_dev/models/webhooks/delivery_retry_response.rbi +9 -9
  193. data/rbi/context_dev/models/webhooks/delivery_summary.rbi +14 -11
  194. data/rbi/context_dev/resources/batch.rbi +19 -18
  195. data/rbi/context_dev/resources/brand.rbi +6 -9
  196. data/rbi/context_dev/resources/feedback.rbi +4 -5
  197. data/rbi/context_dev/resources/industry.rbi +11 -27
  198. data/rbi/context_dev/resources/logs.rbi +4 -5
  199. data/rbi/context_dev/resources/monitors.rbi +71 -49
  200. data/rbi/context_dev/resources/news.rbi +4 -8
  201. data/rbi/context_dev/resources/parse.rbi +7 -14
  202. data/rbi/context_dev/resources/people.rbi +15 -13
  203. data/rbi/context_dev/resources/utility.rbi +4 -11
  204. data/rbi/context_dev/resources/web.rbi +89 -190
  205. data/rbi/context_dev/resources/webhooks/deliveries.rbi +10 -12
  206. data/rbi/context_dev/resources/webhooks.rbi +1 -1
  207. data/sig/context_dev/models/log_retrieve_response.rbs +0 -28
  208. data/sig/context_dev/models/monitor_create_params.rbs +113 -0
  209. data/sig/context_dev/models/monitor_create_response.rbs +203 -53
  210. data/sig/context_dev/models/monitor_delete_response.rbs +46 -3
  211. data/sig/context_dev/models/monitor_get_credit_usage_response.rbs +36 -3
  212. data/sig/context_dev/models/monitor_get_limits_response.rbs +36 -3
  213. data/sig/context_dev/models/monitor_list_account_changes_response.rbs +111 -8
  214. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +36 -3
  215. data/sig/context_dev/models/monitor_list_changes_response.rbs +111 -8
  216. data/sig/context_dev/models/monitor_list_response.rbs +149 -3
  217. data/sig/context_dev/models/monitor_list_runs_response.rbs +36 -3
  218. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +33 -0
  219. data/sig/context_dev/models/monitor_retrieve_response.rbs +203 -53
  220. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +33 -0
  221. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +203 -53
  222. data/sig/context_dev/models/monitor_run_response.rbs +48 -3
  223. data/sig/context_dev/models/monitor_update_params.rbs +113 -0
  224. data/sig/context_dev/models/monitor_update_response.rbs +203 -53
  225. data/sig/context_dev/models/web_scrape_response.rbs +204 -27
  226. data/sig/context_dev/models/web_search_params.rbs +25 -0
  227. data/sig/context_dev/models/web_search_response.rbs +48 -0
  228. data/sig/context_dev/resources/web.rbs +1 -0
  229. metadata +2 -2
@@ -26,8 +26,8 @@ module ContextDev
26
26
  end
27
27
  attr_writer :country
28
28
 
29
- # Blocklist — drop results from these domains. Example: ["pinterest.com",
30
- # "reddit.com"].
29
+ # Blocklist — drop results from these domains. Up to 100 domains. Example:
30
+ # ["pinterest.com", "reddit.com"].
31
31
  sig { returns(T.nilable(T::Array[String])) }
32
32
  attr_reader :exclude_domains
33
33
 
@@ -45,8 +45,21 @@ module ContextDev
45
45
  end
46
46
  attr_writer :freshness
47
47
 
48
- # Allowlist — only return results from these domains. Example: ["arxiv.org",
49
- # "github.com"].
48
+ # Passages from each result page that are relevant to the query. Pages are read
49
+ # with the `markdownOptions` settings.
50
+ sig { returns(T.nilable(ContextDev::WebSearchParams::HighlightsOptions)) }
51
+ attr_reader :highlights_options
52
+
53
+ sig do
54
+ params(
55
+ highlights_options:
56
+ ContextDev::WebSearchParams::HighlightsOptions::OrHash
57
+ ).void
58
+ end
59
+ attr_writer :highlights_options
60
+
61
+ # Allowlist — only return results from these domains. Up to 100 domains. Example:
62
+ # ["arxiv.org", "github.com"].
50
63
  sig { returns(T.nilable(T::Array[String])) }
51
64
  attr_reader :include_domains
52
65
 
@@ -71,23 +84,21 @@ module ContextDev
71
84
  sig { params(num_results: Integer).void }
72
85
  attr_writer :num_results
73
86
 
74
- # Expand the query into multiple parallel variants for broader recall.
87
+ # Currently has no effect.
75
88
  sig { returns(T.nilable(T::Boolean)) }
76
89
  attr_reader :query_fanout
77
90
 
78
91
  sig { params(query_fanout: T::Boolean).void }
79
92
  attr_writer :query_fanout
80
93
 
81
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
94
+ # Labels for filtering usage in the dashboard.
82
95
  sig { returns(T.nilable(T::Array[String])) }
83
96
  attr_reader :tags
84
97
 
85
98
  sig { params(tags: T::Array[String]).void }
86
99
  attr_writer :tags
87
100
 
88
- # Optional request deadline and behavior on timeout. For GET requests, use
89
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
90
- # timeoutOpts object.
101
+ # Request deadline and what to return when it passes.
91
102
  sig { returns(T.nilable(ContextDev::WebSearchParams::TimeoutOpts)) }
92
103
  attr_reader :timeout_opts
93
104
 
@@ -98,11 +109,8 @@ module ContextDev
98
109
  end
99
110
  attr_writer :timeout_opts
100
111
 
101
- # Set to enabled to bypass shared caches and omit request and response content
102
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
103
- # omitted. Requires zero data retention to be enabled for your organization
104
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
105
- # Successful ZDR responses include X-Context-ZDR: true.
112
+ # `enabled` turns on zero data retention. Returns 403 `ZDR_NOT_ENABLED` unless
113
+ # your organization has ZDR.
106
114
  sig { returns(T.nilable(ContextDev::WebSearchParams::Zdr::OrSymbol)) }
107
115
  attr_reader :zdr
108
116
 
@@ -115,6 +123,8 @@ module ContextDev
115
123
  country: ContextDev::WebSearchParams::Country::OrSymbol,
116
124
  exclude_domains: T::Array[String],
117
125
  freshness: ContextDev::WebSearchParams::Freshness::OrSymbol,
126
+ highlights_options:
127
+ ContextDev::WebSearchParams::HighlightsOptions::OrHash,
118
128
  include_domains: T::Array[String],
119
129
  markdown_options:
120
130
  ContextDev::WebSearchParams::MarkdownOptions::OrHash,
@@ -133,31 +143,29 @@ module ContextDev
133
143
  # Two-letter ISO 3166-1 alpha-2 country code to localize results to a specific
134
144
  # country (maps to Google's `gl` parameter). Example: "us", "gb", "de".
135
145
  country: nil,
136
- # Blocklist — drop results from these domains. Example: ["pinterest.com",
137
- # "reddit.com"].
146
+ # Blocklist — drop results from these domains. Up to 100 domains. Example:
147
+ # ["pinterest.com", "reddit.com"].
138
148
  exclude_domains: nil,
139
149
  # Restrict results to content published within this window.
140
150
  freshness: nil,
141
- # Allowlist — only return results from these domains. Example: ["arxiv.org",
142
- # "github.com"].
151
+ # Passages from each result page that are relevant to the query. Pages are read
152
+ # with the `markdownOptions` settings.
153
+ highlights_options: nil,
154
+ # Allowlist — only return results from these domains. Up to 100 domains. Example:
155
+ # ["arxiv.org", "github.com"].
143
156
  include_domains: nil,
144
157
  # Inline Markdown scraping for each result. Set `enabled: true` to activate.
145
158
  markdown_options: nil,
146
159
  # Number of results to request and return (10–100). Defaults to 10.
147
160
  num_results: nil,
148
- # Expand the query into multiple parallel variants for broader recall.
161
+ # Currently has no effect.
149
162
  query_fanout: nil,
150
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
163
+ # Labels for filtering usage in the dashboard.
151
164
  tags: nil,
152
- # Optional request deadline and behavior on timeout. For GET requests, use
153
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
154
- # timeoutOpts object.
165
+ # Request deadline and what to return when it passes.
155
166
  timeout_opts: nil,
156
- # Set to enabled to bypass shared caches and omit request and response content
157
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
158
- # omitted. Requires zero data retention to be enabled for your organization
159
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
160
- # Successful ZDR responses include X-Context-ZDR: true.
167
+ # `enabled` turns on zero data retention. Returns 403 `ZDR_NOT_ENABLED` unless
168
+ # your organization has ZDR.
161
169
  zdr: nil,
162
170
  request_options: {}
163
171
  )
@@ -170,6 +178,7 @@ module ContextDev
170
178
  country: ContextDev::WebSearchParams::Country::OrSymbol,
171
179
  exclude_domains: T::Array[String],
172
180
  freshness: ContextDev::WebSearchParams::Freshness::OrSymbol,
181
+ highlights_options: ContextDev::WebSearchParams::HighlightsOptions,
173
182
  include_domains: T::Array[String],
174
183
  markdown_options: ContextDev::WebSearchParams::MarkdownOptions,
175
184
  num_results: Integer,
@@ -480,6 +489,51 @@ module ContextDev
480
489
  end
481
490
  end
482
491
 
492
+ class HighlightsOptions < ContextDev::Internal::Type::BaseModel
493
+ OrHash =
494
+ T.type_alias do
495
+ T.any(
496
+ ContextDev::WebSearchParams::HighlightsOptions,
497
+ ContextDev::Internal::AnyHash
498
+ )
499
+ end
500
+
501
+ # Return relevant passages for each result. Adds 1 credit per 10 results.
502
+ sig { returns(T.nilable(T::Boolean)) }
503
+ attr_reader :enabled
504
+
505
+ sig { params(enabled: T::Boolean).void }
506
+ attr_writer :enabled
507
+
508
+ # Maximum combined length of passages per result.
509
+ sig { returns(T.nilable(Integer)) }
510
+ attr_reader :max_characters
511
+
512
+ sig { params(max_characters: Integer).void }
513
+ attr_writer :max_characters
514
+
515
+ # Passages from each result page that are relevant to the query. Pages are read
516
+ # with the `markdownOptions` settings.
517
+ sig do
518
+ params(enabled: T::Boolean, max_characters: Integer).returns(
519
+ T.attached_class
520
+ )
521
+ end
522
+ def self.new(
523
+ # Return relevant passages for each result. Adds 1 credit per 10 results.
524
+ enabled: nil,
525
+ # Maximum combined length of passages per result.
526
+ max_characters: nil
527
+ )
528
+ end
529
+
530
+ sig do
531
+ override.returns({ enabled: T::Boolean, max_characters: Integer })
532
+ end
533
+ def to_hash
534
+ end
535
+ end
536
+
483
537
  class MarkdownOptions < ContextDev::Internal::Type::BaseModel
484
538
  OrHash =
485
539
  T.type_alias do
@@ -489,7 +543,7 @@ module ContextDev
489
543
  )
490
544
  end
491
545
 
492
- # Scrape each result to Markdown. Off by default to keep search cheap and fast.
546
+ # Scrape each result to Markdown. Adds 1 credit per 10 results.
493
547
  sig { returns(T.nilable(T::Boolean)) }
494
548
  attr_reader :enabled
495
549
 
@@ -517,8 +571,10 @@ module ContextDev
517
571
  sig { params(include_links: T::Boolean).void }
518
572
  attr_writer :include_links
519
573
 
520
- # Cache TTL in ms for scraped Markdown keyed by URL + options. Default 1 day, max
521
- # 30 days. Set to 0 to force a fresh scrape.
574
+ # Maximum cache age in milliseconds for result page content. Defaults to 180 days
575
+ # (15552000000 ms) when Markdown is requested, or 365 days (31536000000 ms) when
576
+ # only highlights are requested. Explicit values override either default. Maximum:
577
+ # 365 days. Set to 0 to force a fresh scrape.
522
578
  sig { returns(T.nilable(Integer)) }
523
579
  attr_reader :max_age_ms
524
580
 
@@ -545,9 +601,7 @@ module ContextDev
545
601
  sig { params(shorten_base64_images: T::Boolean).void }
546
602
  attr_writer :shorten_base64_images
547
603
 
548
- # Optional request deadline and behavior on timeout. For GET requests, use
549
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
550
- # timeoutOpts object.
604
+ # Request deadline and what to return when it passes.
551
605
  sig do
552
606
  returns(
553
607
  T.nilable(ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts)
@@ -595,7 +649,7 @@ module ContextDev
595
649
  ).returns(T.attached_class)
596
650
  end
597
651
  def self.new(
598
- # Scrape each result to Markdown. Off by default to keep search cheap and fast.
652
+ # Scrape each result to Markdown. Adds 1 credit per 10 results.
599
653
  enabled: nil,
600
654
  # Render iframe contents into the Markdown.
601
655
  include_frames: nil,
@@ -603,16 +657,16 @@ module ContextDev
603
657
  include_images: nil,
604
658
  # Keep hyperlinks in the Markdown.
605
659
  include_links: nil,
606
- # Cache TTL in ms for scraped Markdown keyed by URL + options. Default 1 day, max
607
- # 30 days. Set to 0 to force a fresh scrape.
660
+ # Maximum cache age in milliseconds for result page content. Defaults to 180 days
661
+ # (15552000000 ms) when Markdown is requested, or 365 days (31536000000 ms) when
662
+ # only highlights are requested. Explicit values override either default. Maximum:
663
+ # 365 days. Set to 0 to force a fresh scrape.
608
664
  max_age_ms: nil,
609
665
  # PDF handling. Use start/end to bound text extraction and OCR to a page range.
610
666
  pdf: nil,
611
667
  # Truncate inline base64 image payloads to keep responses small.
612
668
  shorten_base64_images: nil,
613
- # Optional request deadline and behavior on timeout. For GET requests, use
614
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
615
- # timeoutOpts object.
669
+ # Request deadline and what to return when it passes.
616
670
  timeout_opts: nil,
617
671
  # Strip nav, header, footer, and sidebar — keep only the primary article content.
618
672
  use_main_content_only: nil,
@@ -710,15 +764,12 @@ module ContextDev
710
764
  )
711
765
  end
712
766
 
713
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
767
+ # Deadline in milliseconds.
714
768
  sig { returns(Integer) }
715
769
  attr_accessor :milliseconds
716
770
 
717
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
718
- # credits. "return-partial" returns usable results collected so far; if none are
719
- # available, the request still fails without charging credits. Partial results are
720
- # not cached as complete results. "return-partial" requires milliseconds of at
721
- # least 5000.
771
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
772
+ # inspect the response’s partial flag. "return-partial" requires at least 5000 ms.
722
773
  sig do
723
774
  returns(
724
775
  T.nilable(
@@ -736,9 +787,7 @@ module ContextDev
736
787
  end
737
788
  attr_writer :behavior
738
789
 
739
- # Optional request deadline and behavior on timeout. For GET requests, use
740
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
741
- # timeoutOpts object.
790
+ # Request deadline and what to return when it passes.
742
791
  sig do
743
792
  params(
744
793
  milliseconds: Integer,
@@ -747,13 +796,10 @@ module ContextDev
747
796
  ).returns(T.attached_class)
748
797
  end
749
798
  def self.new(
750
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
799
+ # Deadline in milliseconds.
751
800
  milliseconds:,
752
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
753
- # credits. "return-partial" returns usable results collected so far; if none are
754
- # available, the request still fails without charging credits. Partial results are
755
- # not cached as complete results. "return-partial" requires milliseconds of at
756
- # least 5000.
801
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
802
+ # inspect the response’s partial flag. "return-partial" requires at least 5000 ms.
757
803
  behavior: nil
758
804
  )
759
805
  end
@@ -770,11 +816,8 @@ module ContextDev
770
816
  def to_hash
771
817
  end
772
818
 
773
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
774
- # credits. "return-partial" returns usable results collected so far; if none are
775
- # available, the request still fails without charging credits. Partial results are
776
- # not cached as complete results. "return-partial" requires milliseconds of at
777
- # least 5000.
819
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
820
+ # inspect the response’s partial flag. "return-partial" requires at least 5000 ms.
778
821
  module Behavior
779
822
  extend ContextDev::Internal::Type::Enum
780
823
 
@@ -820,14 +863,12 @@ module ContextDev
820
863
  )
821
864
  end
822
865
 
823
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
866
+ # Deadline in milliseconds.
824
867
  sig { returns(Integer) }
825
868
  attr_accessor :milliseconds
826
869
 
827
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
828
- # credits. "return-partial" returns usable results collected so far; if none are
829
- # available, the request still fails without charging credits. Partial results are
830
- # not cached as complete results.
870
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
871
+ # inspect the response’s partial flag.
831
872
  sig do
832
873
  returns(
833
874
  T.nilable(
@@ -845,9 +886,7 @@ module ContextDev
845
886
  end
846
887
  attr_writer :behavior
847
888
 
848
- # Optional request deadline and behavior on timeout. For GET requests, use
849
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
850
- # timeoutOpts object.
889
+ # Request deadline and what to return when it passes.
851
890
  sig do
852
891
  params(
853
892
  milliseconds: Integer,
@@ -856,12 +895,10 @@ module ContextDev
856
895
  ).returns(T.attached_class)
857
896
  end
858
897
  def self.new(
859
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
898
+ # Deadline in milliseconds.
860
899
  milliseconds:,
861
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
862
- # credits. "return-partial" returns usable results collected so far; if none are
863
- # available, the request still fails without charging credits. Partial results are
864
- # not cached as complete results.
900
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
901
+ # inspect the response’s partial flag.
865
902
  behavior: nil
866
903
  )
867
904
  end
@@ -878,10 +915,8 @@ module ContextDev
878
915
  def to_hash
879
916
  end
880
917
 
881
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
882
- # credits. "return-partial" returns usable results collected so far; if none are
883
- # available, the request still fails without charging credits. Partial results are
884
- # not cached as complete results.
918
+ # "fail" returns 408 at the deadline. "return-partial" returns available results;
919
+ # inspect the response’s partial flag.
885
920
  module Behavior
886
921
  extend ContextDev::Internal::Type::Enum
887
922
 
@@ -914,11 +949,8 @@ module ContextDev
914
949
  end
915
950
  end
916
951
 
917
- # Set to enabled to bypass shared caches and omit request and response content
918
- # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
919
- # omitted. Requires zero data retention to be enabled for your organization
920
- # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
921
- # Successful ZDR responses include X-Context-ZDR: true.
952
+ # `enabled` turns on zero data retention. Returns 403 `ZDR_NOT_ENABLED` unless
953
+ # your organization has ZDR.
922
954
  module Zdr
923
955
  extend ContextDev::Internal::Type::Enum
924
956
 
@@ -11,9 +11,7 @@ module ContextDev
11
11
  )
12
12
  end
13
13
 
14
- # Cache outcome for this response. Composite responses are hits only when every
15
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
16
- # oldest contributing hit.
14
+ # Whether this response came from cache.
17
15
  sig { returns(ContextDev::Models::WebSearchResponse::CacheMetadata) }
18
16
  attr_reader :cache_metadata
19
17
 
@@ -29,15 +27,15 @@ module ContextDev
29
27
  sig { returns(String) }
30
28
  attr_accessor :query
31
29
 
32
- # Unique id of this API call, also sent in the X-Request-Id response header. Quote
33
- # it when contacting support about a failed request.
30
+ # Unique ID of this request, also in `X-Request-Id`. Include it when contacting
31
+ # support.
34
32
  sig { returns(String) }
35
33
  attr_accessor :request_id
36
34
 
37
35
  sig { returns(T::Array[ContextDev::Models::WebSearchResponse::Result]) }
38
36
  attr_accessor :results
39
37
 
40
- # Credit usage, included whenever a valid API key is provided.
38
+ # Credits this request used and your remaining balance.
41
39
  sig do
42
40
  returns(T.nilable(ContextDev::Models::WebSearchResponse::KeyMetadata))
43
41
  end
@@ -74,17 +72,15 @@ module ContextDev
74
72
  ).returns(T.attached_class)
75
73
  end
76
74
  def self.new(
77
- # Cache outcome for this response. Composite responses are hits only when every
78
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
79
- # oldest contributing hit.
75
+ # Whether this response came from cache.
80
76
  cache_metadata:,
81
77
  # Echo of the original query (useful when fanout was enabled).
82
78
  query:,
83
- # Unique id of this API call, also sent in the X-Request-Id response header. Quote
84
- # it when contacting support about a failed request.
79
+ # Unique ID of this request, also in `X-Request-Id`. Include it when contacting
80
+ # support.
85
81
  request_id:,
86
82
  results:,
87
- # Credit usage, included whenever a valid API key is provided.
83
+ # Credits this request used and your remaining balance.
88
84
  key_metadata: nil,
89
85
  # True when timeoutOpts.behavior=return-partial returned the usable results
90
86
  # collected before the deadline. Partial collections are not cached as complete
@@ -131,9 +127,7 @@ module ContextDev
131
127
  end
132
128
  attr_accessor :status
133
129
 
134
- # Cache outcome for this response. Composite responses are hits only when every
135
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
136
- # oldest contributing hit.
130
+ # Whether this response came from cache.
137
131
  sig do
138
132
  params(
139
133
  age_ms: Integer,
@@ -218,6 +212,20 @@ module ContextDev
218
212
  sig { returns(String) }
219
213
  attr_accessor :description
220
214
 
215
+ # Highlights status and passages for this result.
216
+ sig do
217
+ returns(ContextDev::Models::WebSearchResponse::Result::Highlights)
218
+ end
219
+ attr_reader :highlights
220
+
221
+ sig do
222
+ params(
223
+ highlights:
224
+ ContextDev::Models::WebSearchResponse::Result::Highlights::OrHash
225
+ ).void
226
+ end
227
+ attr_writer :highlights
228
+
221
229
  # Markdown scrape status and content for this result.
222
230
  sig { returns(ContextDev::Models::WebSearchResponse::Result::Markdown) }
223
231
  attr_reader :markdown
@@ -249,6 +257,8 @@ module ContextDev
249
257
  sig do
250
258
  params(
251
259
  description: String,
260
+ highlights:
261
+ ContextDev::Models::WebSearchResponse::Result::Highlights::OrHash,
252
262
  markdown:
253
263
  ContextDev::Models::WebSearchResponse::Result::Markdown::OrHash,
254
264
  relevance:
@@ -261,6 +271,8 @@ module ContextDev
261
271
  # Snippet excerpt from the page. Empty string when the search provider does not
262
272
  # supply a snippet.
263
273
  description:,
274
+ # Highlights status and passages for this result.
275
+ highlights:,
264
276
  # Markdown scrape status and content for this result.
265
277
  markdown:,
266
278
  # Relevance to the original query.
@@ -276,6 +288,8 @@ module ContextDev
276
288
  override.returns(
277
289
  {
278
290
  description: String,
291
+ highlights:
292
+ ContextDev::Models::WebSearchResponse::Result::Highlights,
279
293
  markdown: ContextDev::Models::WebSearchResponse::Result::Markdown,
280
294
  relevance:
281
295
  ContextDev::Models::WebSearchResponse::Result::Relevance::TaggedSymbol,
@@ -287,6 +301,113 @@ module ContextDev
287
301
  def to_hash
288
302
  end
289
303
 
304
+ class Highlights < ContextDev::Internal::Type::BaseModel
305
+ OrHash =
306
+ T.type_alias do
307
+ T.any(
308
+ ContextDev::Models::WebSearchResponse::Result::Highlights,
309
+ ContextDev::Internal::AnyHash
310
+ )
311
+ end
312
+
313
+ # Per-result highlights outcome. Inspect this before reading `highlights`.
314
+ sig do
315
+ returns(
316
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
317
+ )
318
+ end
319
+ attr_accessor :code
320
+
321
+ # Passages relevant to the query, in page order. Null unless
322
+ # highlightsOptions.enabled is true and the page was read.
323
+ sig { returns(T.nilable(T::Array[String])) }
324
+ attr_accessor :highlights
325
+
326
+ # Highlights status and passages for this result.
327
+ sig do
328
+ params(
329
+ code:
330
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::OrSymbol,
331
+ highlights: T.nilable(T::Array[String])
332
+ ).returns(T.attached_class)
333
+ end
334
+ def self.new(
335
+ # Per-result highlights outcome. Inspect this before reading `highlights`.
336
+ code:,
337
+ # Passages relevant to the query, in page order. Null unless
338
+ # highlightsOptions.enabled is true and the page was read.
339
+ highlights:
340
+ )
341
+ end
342
+
343
+ sig do
344
+ override.returns(
345
+ {
346
+ code:
347
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol,
348
+ highlights: T.nilable(T::Array[String])
349
+ }
350
+ )
351
+ end
352
+ def to_hash
353
+ end
354
+
355
+ # Per-result highlights outcome. Inspect this before reading `highlights`.
356
+ module Code
357
+ extend ContextDev::Internal::Type::Enum
358
+
359
+ TaggedSymbol =
360
+ T.type_alias do
361
+ T.all(
362
+ Symbol,
363
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code
364
+ )
365
+ end
366
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
367
+
368
+ SUCCESS =
369
+ T.let(
370
+ :SUCCESS,
371
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
372
+ )
373
+ NOT_REQUESTED =
374
+ T.let(
375
+ :NOT_REQUESTED,
376
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
377
+ )
378
+ TIMEOUT =
379
+ T.let(
380
+ :TIMEOUT,
381
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
382
+ )
383
+ CONTENT_TOO_LARGE =
384
+ T.let(
385
+ :CONTENT_TOO_LARGE,
386
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
387
+ )
388
+ WEBSITE_ACCESS_ERROR =
389
+ T.let(
390
+ :WEBSITE_ACCESS_ERROR,
391
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
392
+ )
393
+ ERROR =
394
+ T.let(
395
+ :ERROR,
396
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
397
+ )
398
+
399
+ sig do
400
+ override.returns(
401
+ T::Array[
402
+ ContextDev::Models::WebSearchResponse::Result::Highlights::Code::TaggedSymbol
403
+ ]
404
+ )
405
+ end
406
+ def self.values
407
+ end
408
+ end
409
+ end
410
+
290
411
  class Markdown < ContextDev::Internal::Type::BaseModel
291
412
  OrHash =
292
413
  T.type_alias do
@@ -309,11 +430,8 @@ module ContextDev
309
430
  sig { returns(T.nilable(String)) }
310
431
  attr_accessor :markdown
311
432
 
312
- # How complete the returned content is. `loaded` means the page finished the waits
313
- # the request asked for. `still-loading` only occurs with
314
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
315
- # reached first, so the content reflects the DOM at that moment and late-rendering
316
- # parts may be missing. Partial results are billed at the base request cost.
433
+ # `loaded`, or `still-loading` when capture ended before the page finished
434
+ # loading.
317
435
  sig do
318
436
  returns(
319
437
  T.nilable(
@@ -347,11 +465,8 @@ module ContextDev
347
465
  # GFM Markdown of the page. Null unless markdownOptions.enabled is true and
348
466
  # scraping succeeded.
349
467
  markdown:,
350
- # How complete the returned content is. `loaded` means the page finished the waits
351
- # the request asked for. `still-loading` only occurs with
352
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
353
- # reached first, so the content reflects the DOM at that moment and late-rendering
354
- # parts may be missing. Partial results are billed at the base request cost.
468
+ # `loaded`, or `still-loading` when capture ended before the page finished
469
+ # loading.
355
470
  final_dom_state: nil
356
471
  )
357
472
  end
@@ -425,11 +540,8 @@ module ContextDev
425
540
  end
426
541
  end
427
542
 
428
- # How complete the returned content is. `loaded` means the page finished the waits
429
- # the request asked for. `still-loading` only occurs with
430
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
431
- # reached first, so the content reflects the DOM at that moment and late-rendering
432
- # parts may be missing. Partial results are billed at the base request cost.
543
+ # `loaded`, or `still-loading` when capture ended before the page finished
544
+ # loading.
433
545
  module FinalDomState
434
546
  extend ContextDev::Internal::Type::Enum
435
547
 
@@ -515,7 +627,7 @@ module ContextDev
515
627
  )
516
628
  end
517
629
 
518
- # Credits used by this request.
630
+ # Credits charged for this request.
519
631
  sig { returns(Integer) }
520
632
  attr_accessor :credits_consumed
521
633
 
@@ -523,14 +635,14 @@ module ContextDev
523
635
  sig { returns(Integer) }
524
636
  attr_accessor :credits_remaining
525
637
 
526
- # Credit usage, included whenever a valid API key is provided.
638
+ # Credits this request used and your remaining balance.
527
639
  sig do
528
640
  params(credits_consumed: Integer, credits_remaining: Integer).returns(
529
641
  T.attached_class
530
642
  )
531
643
  end
532
644
  def self.new(
533
- # Credits used by this request.
645
+ # Credits charged for this request.
534
646
  credits_consumed:,
535
647
  # Credits remaining for your organization.
536
648
  credits_remaining: