context.dev 2.15.0 → 2.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +2 -2
  4. data/lib/context_dev/client.rb +6 -0
  5. data/lib/context_dev/internal/type/base_model.rb +2 -2
  6. data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
  7. data/lib/context_dev/models/ai_extract_product_response.rb +19 -1
  8. data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
  9. data/lib/context_dev/models/ai_extract_products_response.rb +20 -1
  10. data/lib/context_dev/models/batch_cancel_response.rb +10 -1
  11. data/lib/context_dev/models/batch_delete_response.rb +13 -1
  12. data/lib/context_dev/models/batch_get_results_response.rb +13 -1
  13. data/lib/context_dev/models/batch_list_response.rb +13 -1
  14. data/lib/context_dev/models/batch_retrieve_response.rb +10 -1
  15. data/lib/context_dev/models/batch_submit_response.rb +10 -1
  16. data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
  17. data/lib/context_dev/models/brand_retrieve_response.rb +19 -1
  18. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
  19. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +19 -1
  20. data/lib/context_dev/models/brand_search_response.rb +10 -1
  21. data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
  22. data/lib/context_dev/models/industry_retrieve_naics_response.rb +22 -1
  23. data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
  24. data/lib/context_dev/models/industry_retrieve_sic_response.rb +19 -1
  25. data/lib/context_dev/models/log_list_params.rb +108 -0
  26. data/lib/context_dev/models/log_list_response.rb +174 -0
  27. data/lib/context_dev/models/log_retrieve_params.rb +22 -0
  28. data/lib/context_dev/models/log_retrieve_response.rb +226 -0
  29. data/lib/context_dev/models/monitor_create_params.rb +27 -3
  30. data/lib/context_dev/models/monitor_create_response.rb +30 -5
  31. data/lib/context_dev/models/monitor_list_response.rb +30 -5
  32. data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
  33. data/lib/context_dev/models/monitor_update_params.rb +27 -3
  34. data/lib/context_dev/models/monitor_update_response.rb +30 -5
  35. data/lib/context_dev/models/news_search_response.rb +10 -1
  36. data/lib/context_dev/models/parse_handle_response.rb +13 -1
  37. data/lib/context_dev/models/person_enrich_params.rb +53 -8
  38. data/lib/context_dev/models/person_enrich_response.rb +22 -1
  39. data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
  40. data/lib/context_dev/models/utility_prefetch_response.rb +13 -1
  41. data/lib/context_dev/models/web_answers_params.rb +124 -0
  42. data/lib/context_dev/models/web_answers_response.rb +68 -0
  43. data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
  44. data/lib/context_dev/models/web_extract_competitors_response.rb +22 -1
  45. data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
  46. data/lib/context_dev/models/web_extract_fonts_response.rb +41 -1
  47. data/lib/context_dev/models/web_extract_params.rb +53 -8
  48. data/lib/context_dev/models/web_extract_response.rb +19 -1
  49. data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
  50. data/lib/context_dev/models/web_extract_styleguide_response.rb +41 -1
  51. data/lib/context_dev/models/web_screenshot_params.rb +58 -9
  52. data/lib/context_dev/models/web_screenshot_response.rb +41 -1
  53. data/lib/context_dev/models/web_search_params.rb +112 -16
  54. data/lib/context_dev/models/web_search_response.rb +52 -2
  55. data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
  56. data/lib/context_dev/models/web_web_crawl_md_response.rb +20 -1
  57. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
  58. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
  59. data/lib/context_dev/models/web_web_scrape_html_params.rb +58 -9
  60. data/lib/context_dev/models/web_web_scrape_html_response.rb +41 -1
  61. data/lib/context_dev/models/web_web_scrape_images_params.rb +58 -9
  62. data/lib/context_dev/models/web_web_scrape_images_response.rb +51 -1
  63. data/lib/context_dev/models/web_web_scrape_md_params.rb +58 -9
  64. data/lib/context_dev/models/web_web_scrape_md_response.rb +41 -1
  65. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
  66. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +20 -1
  67. data/lib/context_dev/models/webhooks/delivery_list_attempts_response.rb +13 -1
  68. data/lib/context_dev/models/webhooks/delivery_list_response.rb +13 -1
  69. data/lib/context_dev/models/webhooks/delivery_retrieve_response.rb +13 -1
  70. data/lib/context_dev/models/webhooks/delivery_retry_response.rb +13 -1
  71. data/lib/context_dev/models.rb +8 -0
  72. data/lib/context_dev/resources/ai.rb +2 -2
  73. data/lib/context_dev/resources/brand.rb +3 -3
  74. data/lib/context_dev/resources/industry.rb +6 -6
  75. data/lib/context_dev/resources/logs.rb +83 -0
  76. data/lib/context_dev/resources/people.rb +2 -2
  77. data/lib/context_dev/resources/utility.rb +2 -2
  78. data/lib/context_dev/resources/web.rb +119 -33
  79. data/lib/context_dev/version.rb +1 -1
  80. data/lib/context_dev.rb +9 -0
  81. data/rbi/context_dev/client.rbi +5 -0
  82. data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
  83. data/rbi/context_dev/models/ai_extract_product_response.rbi +23 -0
  84. data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
  85. data/rbi/context_dev/models/ai_extract_products_response.rbi +25 -0
  86. data/rbi/context_dev/models/batch_cancel_response.rbi +10 -0
  87. data/rbi/context_dev/models/batch_delete_response.rbi +10 -0
  88. data/rbi/context_dev/models/batch_get_results_response.rbi +10 -0
  89. data/rbi/context_dev/models/batch_list_response.rbi +10 -0
  90. data/rbi/context_dev/models/batch_retrieve_response.rbi +10 -0
  91. data/rbi/context_dev/models/batch_submit_response.rbi +10 -0
  92. data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
  93. data/rbi/context_dev/models/brand_retrieve_response.rbi +23 -0
  94. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
  95. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +23 -0
  96. data/rbi/context_dev/models/brand_search_response.rbi +10 -0
  97. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
  98. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +23 -0
  99. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
  100. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +23 -0
  101. data/rbi/context_dev/models/log_list_params.rbi +162 -0
  102. data/rbi/context_dev/models/log_list_response.rbi +246 -0
  103. data/rbi/context_dev/models/log_retrieve_params.rbi +40 -0
  104. data/rbi/context_dev/models/log_retrieve_response.rbi +370 -0
  105. data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
  106. data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
  107. data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
  108. data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
  109. data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
  110. data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
  111. data/rbi/context_dev/models/news_search_response.rbi +10 -0
  112. data/rbi/context_dev/models/parse_handle_response.rbi +10 -0
  113. data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
  114. data/rbi/context_dev/models/person_enrich_response.rbi +26 -3
  115. data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
  116. data/rbi/context_dev/models/utility_prefetch_response.rbi +10 -0
  117. data/rbi/context_dev/models/web_answers_params.rbi +234 -0
  118. data/rbi/context_dev/models/web_answers_response.rbi +122 -0
  119. data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
  120. data/rbi/context_dev/models/web_extract_competitors_response.rbi +26 -3
  121. data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
  122. data/rbi/context_dev/models/web_extract_fonts_response.rbi +81 -0
  123. data/rbi/context_dev/models/web_extract_params.rbi +120 -13
  124. data/rbi/context_dev/models/web_extract_response.rbi +26 -3
  125. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
  126. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +81 -0
  127. data/rbi/context_dev/models/web_screenshot_params.rbi +132 -15
  128. data/rbi/context_dev/models/web_screenshot_response.rbi +81 -0
  129. data/rbi/context_dev/models/web_search_params.rbi +253 -26
  130. data/rbi/context_dev/models/web_search_response.rbi +102 -6
  131. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
  132. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +29 -3
  133. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
  134. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
  135. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +134 -15
  136. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +71 -0
  137. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +136 -15
  138. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +99 -3
  139. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +132 -15
  140. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +71 -0
  141. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
  142. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +28 -3
  143. data/rbi/context_dev/models/webhooks/delivery_list_attempts_response.rbi +10 -0
  144. data/rbi/context_dev/models/webhooks/delivery_list_response.rbi +10 -0
  145. data/rbi/context_dev/models/webhooks/delivery_retrieve_response.rbi +10 -0
  146. data/rbi/context_dev/models/webhooks/delivery_retry_response.rbi +10 -0
  147. data/rbi/context_dev/models.rbi +8 -0
  148. data/rbi/context_dev/resources/ai.rbi +5 -5
  149. data/rbi/context_dev/resources/brand.rbi +9 -8
  150. data/rbi/context_dev/resources/industry.rbi +12 -10
  151. data/rbi/context_dev/resources/logs.rbi +76 -0
  152. data/rbi/context_dev/resources/people.rbi +5 -5
  153. data/rbi/context_dev/resources/utility.rbi +5 -5
  154. data/rbi/context_dev/resources/web.rbi +173 -68
  155. data/sig/context_dev/client.rbs +2 -0
  156. data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
  157. data/sig/context_dev/models/ai_extract_product_response.rbs +12 -0
  158. data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
  159. data/sig/context_dev/models/ai_extract_products_response.rbs +12 -0
  160. data/sig/context_dev/models/batch_cancel_response.rbs +5 -0
  161. data/sig/context_dev/models/batch_delete_response.rbs +5 -0
  162. data/sig/context_dev/models/batch_get_results_response.rbs +5 -0
  163. data/sig/context_dev/models/batch_list_response.rbs +5 -0
  164. data/sig/context_dev/models/batch_retrieve_response.rbs +5 -0
  165. data/sig/context_dev/models/batch_submit_response.rbs +5 -0
  166. data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
  167. data/sig/context_dev/models/brand_retrieve_response.rbs +12 -0
  168. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
  169. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +12 -0
  170. data/sig/context_dev/models/brand_search_response.rbs +5 -0
  171. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
  172. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +12 -0
  173. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
  174. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +12 -0
  175. data/sig/context_dev/models/log_list_params.rbs +98 -0
  176. data/sig/context_dev/models/log_list_response.rbs +135 -0
  177. data/sig/context_dev/models/log_retrieve_params.rbs +23 -0
  178. data/sig/context_dev/models/log_retrieve_response.rbs +179 -0
  179. data/sig/context_dev/models/monitor_create_params.rbs +14 -0
  180. data/sig/context_dev/models/monitor_create_response.rbs +14 -0
  181. data/sig/context_dev/models/monitor_list_response.rbs +14 -0
  182. data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
  183. data/sig/context_dev/models/monitor_update_params.rbs +14 -0
  184. data/sig/context_dev/models/monitor_update_response.rbs +14 -0
  185. data/sig/context_dev/models/news_search_response.rbs +5 -0
  186. data/sig/context_dev/models/parse_handle_response.rbs +5 -0
  187. data/sig/context_dev/models/person_enrich_params.rbs +44 -5
  188. data/sig/context_dev/models/person_enrich_response.rbs +15 -3
  189. data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
  190. data/sig/context_dev/models/utility_prefetch_response.rbs +5 -0
  191. data/sig/context_dev/models/web_answers_params.rbs +106 -0
  192. data/sig/context_dev/models/web_answers_response.rbs +60 -0
  193. data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
  194. data/sig/context_dev/models/web_extract_competitors_response.rbs +15 -3
  195. data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
  196. data/sig/context_dev/models/web_extract_fonts_response.rbs +25 -0
  197. data/sig/context_dev/models/web_extract_params.rbs +44 -5
  198. data/sig/context_dev/models/web_extract_response.rbs +15 -3
  199. data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
  200. data/sig/context_dev/models/web_extract_styleguide_response.rbs +25 -0
  201. data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
  202. data/sig/context_dev/models/web_screenshot_response.rbs +25 -0
  203. data/sig/context_dev/models/web_search_params.rbs +88 -10
  204. data/sig/context_dev/models/web_search_response.rbs +38 -6
  205. data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
  206. data/sig/context_dev/models/web_web_crawl_md_response.rbs +15 -3
  207. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
  208. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
  209. data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
  210. data/sig/context_dev/models/web_web_scrape_html_response.rbs +21 -0
  211. data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
  212. data/sig/context_dev/models/web_web_scrape_images_response.rbs +35 -3
  213. data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
  214. data/sig/context_dev/models/web_web_scrape_md_response.rbs +21 -0
  215. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
  216. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +15 -3
  217. data/sig/context_dev/models/webhooks/delivery_list_attempts_response.rbs +5 -0
  218. data/sig/context_dev/models/webhooks/delivery_list_response.rbs +5 -0
  219. data/sig/context_dev/models/webhooks/delivery_retrieve_response.rbs +7 -0
  220. data/sig/context_dev/models/webhooks/delivery_retry_response.rbs +5 -0
  221. data/sig/context_dev/models.rbs +8 -0
  222. data/sig/context_dev/resources/ai.rbs +1 -1
  223. data/sig/context_dev/resources/brand.rbs +1 -1
  224. data/sig/context_dev/resources/industry.rbs +2 -2
  225. data/sig/context_dev/resources/logs.rbs +27 -0
  226. data/sig/context_dev/resources/people.rbs +1 -1
  227. data/sig/context_dev/resources/utility.rbs +1 -1
  228. data/sig/context_dev/resources/web.rbs +30 -11
  229. metadata +29 -2
@@ -0,0 +1,370 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Models
5
+ class LogRetrieveResponse < ContextDev::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ ContextDev::Models::LogRetrieveResponse,
10
+ ContextDev::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(ContextDev::Models::LogRetrieveResponse::Data) }
15
+ attr_reader :data
16
+
17
+ sig do
18
+ params(data: ContextDev::Models::LogRetrieveResponse::Data::OrHash).void
19
+ end
20
+ attr_writer :data
21
+
22
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
23
+ # it when contacting support about a failed request.
24
+ sig { returns(String) }
25
+ attr_accessor :request_id
26
+
27
+ # Credit usage, included whenever a valid API key is provided.
28
+ sig do
29
+ returns(T.nilable(ContextDev::Models::LogRetrieveResponse::KeyMetadata))
30
+ end
31
+ attr_reader :key_metadata
32
+
33
+ sig do
34
+ params(
35
+ key_metadata:
36
+ ContextDev::Models::LogRetrieveResponse::KeyMetadata::OrHash
37
+ ).void
38
+ end
39
+ attr_writer :key_metadata
40
+
41
+ sig do
42
+ params(
43
+ data: ContextDev::Models::LogRetrieveResponse::Data::OrHash,
44
+ request_id: String,
45
+ key_metadata:
46
+ ContextDev::Models::LogRetrieveResponse::KeyMetadata::OrHash
47
+ ).returns(T.attached_class)
48
+ end
49
+ def self.new(
50
+ data:,
51
+ # Unique id of this API call, also sent in the X-Request-Id response header. Quote
52
+ # it when contacting support about a failed request.
53
+ request_id:,
54
+ # Credit usage, included whenever a valid API key is provided.
55
+ key_metadata: nil
56
+ )
57
+ end
58
+
59
+ sig do
60
+ override.returns(
61
+ {
62
+ data: ContextDev::Models::LogRetrieveResponse::Data,
63
+ request_id: String,
64
+ key_metadata: ContextDev::Models::LogRetrieveResponse::KeyMetadata
65
+ }
66
+ )
67
+ end
68
+ def to_hash
69
+ end
70
+
71
+ class Data < ContextDev::Internal::Type::BaseModel
72
+ OrHash =
73
+ T.type_alias do
74
+ T.any(
75
+ ContextDev::Models::LogRetrieveResponse::Data,
76
+ ContextDev::Internal::AnyHash
77
+ )
78
+ end
79
+
80
+ # Credits charged for this request.
81
+ sig { returns(Integer) }
82
+ attr_accessor :credits_used
83
+
84
+ # The `error_code` from the response, or null on success.
85
+ sig { returns(T.nilable(String)) }
86
+ attr_accessor :error_code
87
+
88
+ # What was sent with the request.
89
+ sig { returns(ContextDev::Models::LogRetrieveResponse::Data::Input) }
90
+ attr_reader :input
91
+
92
+ sig do
93
+ params(
94
+ input: ContextDev::Models::LogRetrieveResponse::Data::Input::OrHash
95
+ ).void
96
+ end
97
+ attr_writer :input
98
+
99
+ # ID of the API key that made the request.
100
+ sig { returns(T.nilable(String)) }
101
+ attr_accessor :key_id
102
+
103
+ # Server-side processing time in milliseconds.
104
+ sig { returns(Float) }
105
+ attr_accessor :latency_ms
106
+
107
+ # HTTP method.
108
+ sig { returns(String) }
109
+ attr_accessor :method_
110
+
111
+ # Endpoint path as called.
112
+ sig { returns(String) }
113
+ attr_accessor :path
114
+
115
+ # Request ID of the logged API call.
116
+ sig { returns(String) }
117
+ attr_accessor :request_id
118
+
119
+ # HTTP status code returned.
120
+ sig { returns(Integer) }
121
+ attr_accessor :status_code
122
+
123
+ # Request tags supplied by the caller.
124
+ sig { returns(T::Array[String]) }
125
+ attr_accessor :tags
126
+
127
+ # When the request completed.
128
+ sig { returns(Time) }
129
+ attr_accessor :timestamp
130
+
131
+ # User-Agent header of the request.
132
+ sig { returns(T.nilable(String)) }
133
+ attr_accessor :user_agent
134
+
135
+ # Whether the request was made under zero data retention.
136
+ sig { returns(T::Boolean) }
137
+ attr_accessor :zdr
138
+
139
+ # Credit usage, included whenever a valid API key is provided.
140
+ sig do
141
+ returns(
142
+ T.nilable(
143
+ ContextDev::Models::LogRetrieveResponse::Data::KeyMetadata
144
+ )
145
+ )
146
+ end
147
+ attr_reader :key_metadata
148
+
149
+ sig do
150
+ params(
151
+ key_metadata:
152
+ ContextDev::Models::LogRetrieveResponse::Data::KeyMetadata::OrHash
153
+ ).void
154
+ end
155
+ attr_writer :key_metadata
156
+
157
+ # The retained JSON response with credentials redacted, or null when unavailable.
158
+ sig { returns(T.nilable(T.anything)) }
159
+ attr_reader :response
160
+
161
+ sig { params(response: T.anything).void }
162
+ attr_writer :response
163
+
164
+ sig do
165
+ params(
166
+ credits_used: Integer,
167
+ error_code: T.nilable(String),
168
+ input: ContextDev::Models::LogRetrieveResponse::Data::Input::OrHash,
169
+ key_id: T.nilable(String),
170
+ latency_ms: Float,
171
+ method_: String,
172
+ path: String,
173
+ request_id: String,
174
+ status_code: Integer,
175
+ tags: T::Array[String],
176
+ timestamp: Time,
177
+ user_agent: T.nilable(String),
178
+ zdr: T::Boolean,
179
+ key_metadata:
180
+ ContextDev::Models::LogRetrieveResponse::Data::KeyMetadata::OrHash,
181
+ response: T.anything
182
+ ).returns(T.attached_class)
183
+ end
184
+ def self.new(
185
+ # Credits charged for this request.
186
+ credits_used:,
187
+ # The `error_code` from the response, or null on success.
188
+ error_code:,
189
+ # What was sent with the request.
190
+ input:,
191
+ # ID of the API key that made the request.
192
+ key_id:,
193
+ # Server-side processing time in milliseconds.
194
+ latency_ms:,
195
+ # HTTP method.
196
+ method_:,
197
+ # Endpoint path as called.
198
+ path:,
199
+ # Request ID of the logged API call.
200
+ request_id:,
201
+ # HTTP status code returned.
202
+ status_code:,
203
+ # Request tags supplied by the caller.
204
+ tags:,
205
+ # When the request completed.
206
+ timestamp:,
207
+ # User-Agent header of the request.
208
+ user_agent:,
209
+ # Whether the request was made under zero data retention.
210
+ zdr:,
211
+ # Credit usage, included whenever a valid API key is provided.
212
+ key_metadata: nil,
213
+ # The retained JSON response with credentials redacted, or null when unavailable.
214
+ response: nil
215
+ )
216
+ end
217
+
218
+ sig do
219
+ override.returns(
220
+ {
221
+ credits_used: Integer,
222
+ error_code: T.nilable(String),
223
+ input: ContextDev::Models::LogRetrieveResponse::Data::Input,
224
+ key_id: T.nilable(String),
225
+ latency_ms: Float,
226
+ method_: String,
227
+ path: String,
228
+ request_id: String,
229
+ status_code: Integer,
230
+ tags: T::Array[String],
231
+ timestamp: Time,
232
+ user_agent: T.nilable(String),
233
+ zdr: T::Boolean,
234
+ key_metadata:
235
+ ContextDev::Models::LogRetrieveResponse::Data::KeyMetadata,
236
+ response: T.anything
237
+ }
238
+ )
239
+ end
240
+ def to_hash
241
+ end
242
+
243
+ class Input < ContextDev::Internal::Type::BaseModel
244
+ OrHash =
245
+ T.type_alias do
246
+ T.any(
247
+ ContextDev::Models::LogRetrieveResponse::Data::Input,
248
+ ContextDev::Internal::AnyHash
249
+ )
250
+ end
251
+
252
+ # Query parameters as sent.
253
+ sig { returns(T::Hash[Symbol, T.anything]) }
254
+ attr_accessor :query
255
+
256
+ # Request body with credentials and uploaded content redacted.
257
+ sig { returns(T.nilable(T.anything)) }
258
+ attr_reader :body
259
+
260
+ sig { params(body: T.anything).void }
261
+ attr_writer :body
262
+
263
+ # What was sent with the request.
264
+ sig do
265
+ params(
266
+ query: T::Hash[Symbol, T.anything],
267
+ body: T.anything
268
+ ).returns(T.attached_class)
269
+ end
270
+ def self.new(
271
+ # Query parameters as sent.
272
+ query:,
273
+ # Request body with credentials and uploaded content redacted.
274
+ body: nil
275
+ )
276
+ end
277
+
278
+ sig do
279
+ override.returns(
280
+ { query: T::Hash[Symbol, T.anything], body: T.anything }
281
+ )
282
+ end
283
+ def to_hash
284
+ end
285
+ end
286
+
287
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
288
+ OrHash =
289
+ T.type_alias do
290
+ T.any(
291
+ ContextDev::Models::LogRetrieveResponse::Data::KeyMetadata,
292
+ ContextDev::Internal::AnyHash
293
+ )
294
+ end
295
+
296
+ # Credits used by this request.
297
+ sig { returns(Integer) }
298
+ attr_accessor :credits_consumed
299
+
300
+ # Credits remaining for your organization.
301
+ sig { returns(Integer) }
302
+ attr_accessor :credits_remaining
303
+
304
+ # Credit usage, included whenever a valid API key is provided.
305
+ sig do
306
+ params(
307
+ credits_consumed: Integer,
308
+ credits_remaining: Integer
309
+ ).returns(T.attached_class)
310
+ end
311
+ def self.new(
312
+ # Credits used by this request.
313
+ credits_consumed:,
314
+ # Credits remaining for your organization.
315
+ credits_remaining:
316
+ )
317
+ end
318
+
319
+ sig do
320
+ override.returns(
321
+ { credits_consumed: Integer, credits_remaining: Integer }
322
+ )
323
+ end
324
+ def to_hash
325
+ end
326
+ end
327
+ end
328
+
329
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
330
+ OrHash =
331
+ T.type_alias do
332
+ T.any(
333
+ ContextDev::Models::LogRetrieveResponse::KeyMetadata,
334
+ ContextDev::Internal::AnyHash
335
+ )
336
+ end
337
+
338
+ # Credits used by this request.
339
+ sig { returns(Integer) }
340
+ attr_accessor :credits_consumed
341
+
342
+ # Credits remaining for your organization.
343
+ sig { returns(Integer) }
344
+ attr_accessor :credits_remaining
345
+
346
+ # Credit usage, included whenever a valid API key is provided.
347
+ sig do
348
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
349
+ T.attached_class
350
+ )
351
+ end
352
+ def self.new(
353
+ # Credits used by this request.
354
+ credits_consumed:,
355
+ # Credits remaining for your organization.
356
+ credits_remaining:
357
+ )
358
+ end
359
+
360
+ sig do
361
+ override.returns(
362
+ { credits_consumed: Integer, credits_remaining: Integer }
363
+ )
364
+ end
365
+ def to_hash
366
+ end
367
+ end
368
+ end
369
+ end
370
+ end
@@ -185,6 +185,27 @@ module ContextDev
185
185
  sig { returns(String) }
186
186
  attr_accessor :url
187
187
 
188
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
189
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
190
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
191
+ # creates a new baseline.
192
+ sig { returns(T.nilable(T::Array[String])) }
193
+ attr_reader :exclude_selectors
194
+
195
+ sig { params(exclude_selectors: T::Array[String]).void }
196
+ attr_writer :exclude_selectors
197
+
198
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
199
+ # combined in document order before text extraction, instead of automatic
200
+ # main-content selection. Omit or pass an empty array to use automatic
201
+ # main-content extraction. If the filtered page has no usable text, the run fails
202
+ # without replacing the baseline. Changing these selectors creates a new baseline.
203
+ sig { returns(T.nilable(T::Array[String])) }
204
+ attr_reader :include_selectors
205
+
206
+ sig { params(include_selectors: T::Array[String]).void }
207
+ attr_writer :include_selectors
208
+
188
209
  # Plain-language goal describing which page changes matter. When provided without
189
210
  # change_detection, semantic detection is inferred.
190
211
  sig { returns(T.nilable(String)) }
@@ -205,6 +226,8 @@ module ContextDev
205
226
  sig do
206
227
  params(
207
228
  url: String,
229
+ exclude_selectors: T::Array[String],
230
+ include_selectors: T::Array[String],
208
231
  instructions: String,
209
232
  normalize_whitespace: T::Boolean,
210
233
  type: Symbol
@@ -212,6 +235,17 @@ module ContextDev
212
235
  end
213
236
  def self.new(
214
237
  url:,
238
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
239
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
240
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
241
+ # creates a new baseline.
242
+ exclude_selectors: nil,
243
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
244
+ # combined in document order before text extraction, instead of automatic
245
+ # main-content selection. Omit or pass an empty array to use automatic
246
+ # main-content extraction. If the filtered page has no usable text, the run fails
247
+ # without replacing the baseline. Changing these selectors creates a new baseline.
248
+ include_selectors: nil,
215
249
  # Plain-language goal describing which page changes matter. When provided without
216
250
  # change_detection, semantic detection is inferred.
217
251
  instructions: nil,
@@ -226,6 +260,8 @@ module ContextDev
226
260
  {
227
261
  type: Symbol,
228
262
  url: String,
263
+ exclude_selectors: T::Array[String],
264
+ include_selectors: T::Array[String],
229
265
  instructions: String,
230
266
  normalize_whitespace: T::Boolean
231
267
  }
@@ -665,7 +701,8 @@ module ContextDev
665
701
  )
666
702
  end
667
703
 
668
- # Webhook URL events are delivered to.
704
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
705
+ # automatically formatted as Slack messages.
669
706
  sig { returns(String) }
670
707
  attr_accessor :url
671
708
 
@@ -712,7 +749,8 @@ module ContextDev
712
749
  ).returns(T.attached_class)
713
750
  end
714
751
  def self.new(
715
- # Webhook URL events are delivered to.
752
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
753
+ # automatically formatted as Slack messages.
716
754
  url:,
717
755
  # Events delivered to this endpoint. `change.detected` fires only when a run
718
756
  # detects a change; `run.completed` fires on every completed run — including runs
@@ -603,6 +603,27 @@ module ContextDev
603
603
  sig { returns(String) }
604
604
  attr_accessor :url
605
605
 
606
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
607
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
608
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
609
+ # creates a new baseline.
610
+ sig { returns(T.nilable(T::Array[String])) }
611
+ attr_reader :exclude_selectors
612
+
613
+ sig { params(exclude_selectors: T::Array[String]).void }
614
+ attr_writer :exclude_selectors
615
+
616
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
617
+ # combined in document order before text extraction, instead of automatic
618
+ # main-content selection. Omit or pass an empty array to use automatic
619
+ # main-content extraction. If the filtered page has no usable text, the run fails
620
+ # without replacing the baseline. Changing these selectors creates a new baseline.
621
+ sig { returns(T.nilable(T::Array[String])) }
622
+ attr_reader :include_selectors
623
+
624
+ sig { params(include_selectors: T::Array[String]).void }
625
+ attr_writer :include_selectors
626
+
606
627
  # Plain-language goal describing which page changes matter. When provided without
607
628
  # change_detection, semantic detection is inferred.
608
629
  sig { returns(T.nilable(String)) }
@@ -623,6 +644,8 @@ module ContextDev
623
644
  sig do
624
645
  params(
625
646
  url: String,
647
+ exclude_selectors: T::Array[String],
648
+ include_selectors: T::Array[String],
626
649
  instructions: String,
627
650
  normalize_whitespace: T::Boolean,
628
651
  type: Symbol
@@ -630,6 +653,17 @@ module ContextDev
630
653
  end
631
654
  def self.new(
632
655
  url:,
656
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
657
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
658
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
659
+ # creates a new baseline.
660
+ exclude_selectors: nil,
661
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
662
+ # combined in document order before text extraction, instead of automatic
663
+ # main-content selection. Omit or pass an empty array to use automatic
664
+ # main-content extraction. If the filtered page has no usable text, the run fails
665
+ # without replacing the baseline. Changing these selectors creates a new baseline.
666
+ include_selectors: nil,
633
667
  # Plain-language goal describing which page changes matter. When provided without
634
668
  # change_detection, semantic detection is inferred.
635
669
  instructions: nil,
@@ -644,6 +678,8 @@ module ContextDev
644
678
  {
645
679
  type: Symbol,
646
680
  url: String,
681
+ exclude_selectors: T::Array[String],
682
+ include_selectors: T::Array[String],
647
683
  instructions: String,
648
684
  normalize_whitespace: T::Boolean
649
685
  }
@@ -1058,7 +1094,8 @@ module ContextDev
1058
1094
  )
1059
1095
  end
1060
1096
 
1061
- # Webhook URL events are delivered to.
1097
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1098
+ # automatically formatted as Slack messages.
1062
1099
  sig { returns(String) }
1063
1100
  attr_accessor :url
1064
1101
 
@@ -1094,7 +1131,8 @@ module ContextDev
1094
1131
  sig { params(retry_: ContextDev::RetryConfig::OrHash).void }
1095
1132
  attr_writer :retry_
1096
1133
 
1097
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1134
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1135
+ # has monitors:write permission or full access. Each delivery includes an
1098
1136
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1099
1137
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1100
1138
  # compare and reject stale timestamps to prevent replay. Generated by the API;
@@ -1117,7 +1155,8 @@ module ContextDev
1117
1155
  ).returns(T.attached_class)
1118
1156
  end
1119
1157
  def self.new(
1120
- # Webhook URL events are delivered to.
1158
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1159
+ # automatically formatted as Slack messages.
1121
1160
  url:,
1122
1161
  # Events delivered to this endpoint. `change.detected` fires only when a run
1123
1162
  # detects a change; `run.completed` fires on every completed run — including runs
@@ -1126,7 +1165,8 @@ module ContextDev
1126
1165
  events: nil,
1127
1166
  # Webhook retry settings. Use {} for the default schedule.
1128
1167
  retry_: nil,
1129
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1168
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1169
+ # has monitors:write permission or full access. Each delivery includes an
1130
1170
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1131
1171
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1132
1172
  # compare and reject stale timestamps to prevent replay. Generated by the API;
@@ -655,6 +655,27 @@ module ContextDev
655
655
  sig { returns(String) }
656
656
  attr_accessor :url
657
657
 
658
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
659
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
660
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
661
+ # creates a new baseline.
662
+ sig { returns(T.nilable(T::Array[String])) }
663
+ attr_reader :exclude_selectors
664
+
665
+ sig { params(exclude_selectors: T::Array[String]).void }
666
+ attr_writer :exclude_selectors
667
+
668
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
669
+ # combined in document order before text extraction, instead of automatic
670
+ # main-content selection. Omit or pass an empty array to use automatic
671
+ # main-content extraction. If the filtered page has no usable text, the run fails
672
+ # without replacing the baseline. Changing these selectors creates a new baseline.
673
+ sig { returns(T.nilable(T::Array[String])) }
674
+ attr_reader :include_selectors
675
+
676
+ sig { params(include_selectors: T::Array[String]).void }
677
+ attr_writer :include_selectors
678
+
658
679
  # Plain-language goal describing which page changes matter. When provided without
659
680
  # change_detection, semantic detection is inferred.
660
681
  sig { returns(T.nilable(String)) }
@@ -675,6 +696,8 @@ module ContextDev
675
696
  sig do
676
697
  params(
677
698
  url: String,
699
+ exclude_selectors: T::Array[String],
700
+ include_selectors: T::Array[String],
678
701
  instructions: String,
679
702
  normalize_whitespace: T::Boolean,
680
703
  type: Symbol
@@ -682,6 +705,17 @@ module ContextDev
682
705
  end
683
706
  def self.new(
684
707
  url:,
708
+ # CSS selectors for HTML regions to remove before text extraction. Applied after
709
+ # include_selectors; exclusion takes precedence when an element matches both. Omit
710
+ # or pass an empty array to apply no explicit exclusions. Changing these selectors
711
+ # creates a new baseline.
712
+ exclude_selectors: nil,
713
+ # CSS selectors defining the HTML regions to monitor. Matching subtrees are
714
+ # combined in document order before text extraction, instead of automatic
715
+ # main-content selection. Omit or pass an empty array to use automatic
716
+ # main-content extraction. If the filtered page has no usable text, the run fails
717
+ # without replacing the baseline. Changing these selectors creates a new baseline.
718
+ include_selectors: nil,
685
719
  # Plain-language goal describing which page changes matter. When provided without
686
720
  # change_detection, semantic detection is inferred.
687
721
  instructions: nil,
@@ -696,6 +730,8 @@ module ContextDev
696
730
  {
697
731
  type: Symbol,
698
732
  url: String,
733
+ exclude_selectors: T::Array[String],
734
+ include_selectors: T::Array[String],
699
735
  instructions: String,
700
736
  normalize_whitespace: T::Boolean
701
737
  }
@@ -1116,7 +1152,8 @@ module ContextDev
1116
1152
  )
1117
1153
  end
1118
1154
 
1119
- # Webhook URL events are delivered to.
1155
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1156
+ # automatically formatted as Slack messages.
1120
1157
  sig { returns(String) }
1121
1158
  attr_accessor :url
1122
1159
 
@@ -1152,7 +1189,8 @@ module ContextDev
1152
1189
  sig { params(retry_: ContextDev::RetryConfig::OrHash).void }
1153
1190
  attr_writer :retry_
1154
1191
 
1155
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1192
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1193
+ # has monitors:write permission or full access. Each delivery includes an
1156
1194
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1157
1195
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1158
1196
  # compare and reject stale timestamps to prevent replay. Generated by the API;
@@ -1175,7 +1213,8 @@ module ContextDev
1175
1213
  ).returns(T.attached_class)
1176
1214
  end
1177
1215
  def self.new(
1178
- # Webhook URL events are delivered to.
1216
+ # Webhook URL events are delivered to. Slack incoming webhook URLs are
1217
+ # automatically formatted as Slack messages.
1179
1218
  url:,
1180
1219
  # Events delivered to this endpoint. `change.detected` fires only when a run
1181
1220
  # detects a change; `run.completed` fires on every completed run — including runs
@@ -1184,7 +1223,8 @@ module ContextDev
1184
1223
  events: nil,
1185
1224
  # Webhook retry settings. Use {} for the default schedule.
1186
1225
  retry_: nil,
1187
- # Signing secret used to verify webhook authenticity. Each delivery includes an
1226
+ # Signing secret used to verify webhook authenticity. Omitted unless the API key
1227
+ # has monitors:write permission or full access. Each delivery includes an
1188
1228
  # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
1189
1229
  # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
1190
1230
  # compare and reject stale timestamps to prevent replay. Generated by the API;