context.dev 2.12.0 → 2.14.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +2 -11
  4. data/lib/context_dev/models/ai_extract_product_response.rb +54 -1
  5. data/lib/context_dev/models/ai_extract_products_response.rb +54 -1
  6. data/lib/context_dev/models/batch_get_results_response.rb +56 -1
  7. data/lib/context_dev/models/batch_submit_response.rb +54 -1
  8. data/lib/context_dev/models/brand_retrieve_response.rb +58 -3
  9. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +55 -1
  10. data/lib/context_dev/models/web_extract_fonts_response.rb +54 -1
  11. data/lib/context_dev/models/web_extract_response.rb +54 -1
  12. data/lib/context_dev/models/web_extract_styleguide_response.rb +55 -1
  13. data/lib/context_dev/models/web_screenshot_response.rb +54 -1
  14. data/lib/context_dev/models/web_search_response.rb +54 -1
  15. data/lib/context_dev/models/web_web_crawl_md_response.rb +54 -1
  16. data/lib/context_dev/models/web_web_scrape_html_response.rb +54 -1
  17. data/lib/context_dev/models/web_web_scrape_images_response.rb +55 -1
  18. data/lib/context_dev/models/web_web_scrape_md_response.rb +54 -1
  19. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +10 -1
  20. data/lib/context_dev/resources/web.rb +10 -6
  21. data/lib/context_dev/version.rb +1 -1
  22. data/rbi/context_dev/models/ai_extract_product_response.rbi +119 -0
  23. data/rbi/context_dev/models/ai_extract_products_response.rbi +119 -0
  24. data/rbi/context_dev/models/batch_get_results_response.rbi +121 -0
  25. data/rbi/context_dev/models/batch_submit_response.rbi +117 -0
  26. data/rbi/context_dev/models/brand_retrieve_response.rbi +123 -2
  27. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +121 -0
  28. data/rbi/context_dev/models/web_extract_fonts_response.rbi +119 -0
  29. data/rbi/context_dev/models/web_extract_response.rbi +117 -0
  30. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +119 -0
  31. data/rbi/context_dev/models/web_screenshot_response.rbi +117 -0
  32. data/rbi/context_dev/models/web_search_response.rbi +117 -0
  33. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +117 -0
  34. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +119 -0
  35. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +119 -0
  36. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +117 -0
  37. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +13 -0
  38. data/rbi/context_dev/resources/web.rbi +10 -5
  39. data/sig/context_dev/models/ai_extract_product_response.rbs +39 -0
  40. data/sig/context_dev/models/ai_extract_products_response.rbs +39 -0
  41. data/sig/context_dev/models/batch_get_results_response.rbs +39 -0
  42. data/sig/context_dev/models/batch_submit_response.rbs +39 -0
  43. data/sig/context_dev/models/brand_retrieve_response.rbs +39 -0
  44. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +39 -0
  45. data/sig/context_dev/models/web_extract_fonts_response.rbs +39 -0
  46. data/sig/context_dev/models/web_extract_response.rbs +39 -0
  47. data/sig/context_dev/models/web_extract_styleguide_response.rbs +39 -0
  48. data/sig/context_dev/models/web_screenshot_response.rbs +39 -0
  49. data/sig/context_dev/models/web_search_response.rbs +39 -0
  50. data/sig/context_dev/models/web_web_crawl_md_response.rbs +39 -0
  51. data/sig/context_dev/models/web_web_scrape_html_response.rbs +39 -0
  52. data/sig/context_dev/models/web_web_scrape_images_response.rbs +39 -0
  53. data/sig/context_dev/models/web_web_scrape_md_response.rbs +39 -0
  54. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +7 -0
  55. data/sig/context_dev/resources/web.rbs +1 -0
  56. metadata +2 -2
@@ -11,6 +11,22 @@ 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.
17
+ sig do
18
+ returns(ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata)
19
+ end
20
+ attr_reader :cache_metadata
21
+
22
+ sig do
23
+ params(
24
+ cache_metadata:
25
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :cache_metadata
29
+
14
30
  # The scraped content of the page. For normal pages this is the raw HTML. When the
15
31
  # page is a sitemap or feed served behind an XSL stylesheet (which browsers render
16
32
  # into HTML), this is the underlying XML instead — see the `type` field.
@@ -101,6 +117,8 @@ module ContextDev
101
117
 
102
118
  sig do
103
119
  params(
120
+ cache_metadata:
121
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::OrHash,
104
122
  html: String,
105
123
  metadata:
106
124
  ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash,
@@ -118,6 +136,10 @@ module ContextDev
118
136
  ).returns(T.attached_class)
119
137
  end
120
138
  def self.new(
139
+ # Cache outcome for this response. Composite responses are hits only when every
140
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
141
+ # oldest contributing hit.
142
+ cache_metadata:,
121
143
  # The scraped content of the page. For normal pages this is the raw HTML. When the
122
144
  # page is a sitemap or feed served behind an XSL stylesheet (which browsers render
123
145
  # into HTML), this is the underlying XML instead — see the `type` field.
@@ -147,6 +169,8 @@ module ContextDev
147
169
  sig do
148
170
  override.returns(
149
171
  {
172
+ cache_metadata:
173
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata,
150
174
  html: String,
151
175
  metadata: ContextDev::Models::WebWebScrapeHTMLResponse::Metadata,
152
176
  success:
@@ -167,6 +191,101 @@ module ContextDev
167
191
  def to_hash
168
192
  end
169
193
 
194
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
195
+ OrHash =
196
+ T.type_alias do
197
+ T.any(
198
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata,
199
+ ContextDev::Internal::AnyHash
200
+ )
201
+ end
202
+
203
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
204
+ sig { returns(Integer) }
205
+ attr_accessor :age_ms
206
+
207
+ # Whether the response was served from cache, required fresh work, or honored
208
+ # zero-data-retention cache bypass.
209
+ sig do
210
+ returns(
211
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
212
+ )
213
+ end
214
+ attr_accessor :status
215
+
216
+ # Cache outcome for this response. Composite responses are hits only when every
217
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
218
+ # oldest contributing hit.
219
+ sig do
220
+ params(
221
+ age_ms: Integer,
222
+ status:
223
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::OrSymbol
224
+ ).returns(T.attached_class)
225
+ end
226
+ def self.new(
227
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
228
+ age_ms:,
229
+ # Whether the response was served from cache, required fresh work, or honored
230
+ # zero-data-retention cache bypass.
231
+ status:
232
+ )
233
+ end
234
+
235
+ sig do
236
+ override.returns(
237
+ {
238
+ age_ms: Integer,
239
+ status:
240
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
241
+ }
242
+ )
243
+ end
244
+ def to_hash
245
+ end
246
+
247
+ # Whether the response was served from cache, required fresh work, or honored
248
+ # zero-data-retention cache bypass.
249
+ module Status
250
+ extend ContextDev::Internal::Type::Enum
251
+
252
+ TaggedSymbol =
253
+ T.type_alias do
254
+ T.all(
255
+ Symbol,
256
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status
257
+ )
258
+ end
259
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
260
+
261
+ HIT =
262
+ T.let(
263
+ :hit,
264
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
265
+ )
266
+ MISS =
267
+ T.let(
268
+ :miss,
269
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
270
+ )
271
+ ZDR =
272
+ T.let(
273
+ :zdr,
274
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
275
+ )
276
+
277
+ sig do
278
+ override.returns(
279
+ T::Array[
280
+ ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
281
+ ]
282
+ )
283
+ end
284
+ def self.values
285
+ end
286
+ end
287
+ end
288
+
170
289
  class Metadata < ContextDev::Internal::Type::BaseModel
171
290
  OrHash =
172
291
  T.type_alias do
@@ -11,6 +11,22 @@ 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.
17
+ sig do
18
+ returns(ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata)
19
+ end
20
+ attr_reader :cache_metadata
21
+
22
+ sig do
23
+ params(
24
+ cache_metadata:
25
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::OrHash
26
+ ).void
27
+ end
28
+ attr_writer :cache_metadata
29
+
14
30
  # Images found on the page.
15
31
  sig do
16
32
  returns(T::Array[ContextDev::Models::WebWebScrapeImagesResponse::Image])
@@ -70,6 +86,8 @@ module ContextDev
70
86
 
71
87
  sig do
72
88
  params(
89
+ cache_metadata:
90
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::OrHash,
73
91
  images:
74
92
  T::Array[
75
93
  ContextDev::Models::WebWebScrapeImagesResponse::Image::OrHash
@@ -86,6 +104,10 @@ module ContextDev
86
104
  ).returns(T.attached_class)
87
105
  end
88
106
  def self.new(
107
+ # Cache outcome for this response. Composite responses are hits only when every
108
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
109
+ # oldest contributing hit.
110
+ cache_metadata:,
89
111
  # Images found on the page.
90
112
  images:,
91
113
  # Always true on success.
@@ -103,6 +125,8 @@ module ContextDev
103
125
  sig do
104
126
  override.returns(
105
127
  {
128
+ cache_metadata:
129
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata,
106
130
  images:
107
131
  T::Array[ContextDev::Models::WebWebScrapeImagesResponse::Image],
108
132
  success:
@@ -120,6 +144,101 @@ module ContextDev
120
144
  def to_hash
121
145
  end
122
146
 
147
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
148
+ OrHash =
149
+ T.type_alias do
150
+ T.any(
151
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata,
152
+ ContextDev::Internal::AnyHash
153
+ )
154
+ end
155
+
156
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
157
+ sig { returns(Integer) }
158
+ attr_accessor :age_ms
159
+
160
+ # Whether the response was served from cache, required fresh work, or honored
161
+ # zero-data-retention cache bypass.
162
+ sig do
163
+ returns(
164
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
165
+ )
166
+ end
167
+ attr_accessor :status
168
+
169
+ # Cache outcome for this response. Composite responses are hits only when every
170
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
171
+ # oldest contributing hit.
172
+ sig do
173
+ params(
174
+ age_ms: Integer,
175
+ status:
176
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::OrSymbol
177
+ ).returns(T.attached_class)
178
+ end
179
+ def self.new(
180
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
181
+ age_ms:,
182
+ # Whether the response was served from cache, required fresh work, or honored
183
+ # zero-data-retention cache bypass.
184
+ status:
185
+ )
186
+ end
187
+
188
+ sig do
189
+ override.returns(
190
+ {
191
+ age_ms: Integer,
192
+ status:
193
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
194
+ }
195
+ )
196
+ end
197
+ def to_hash
198
+ end
199
+
200
+ # Whether the response was served from cache, required fresh work, or honored
201
+ # zero-data-retention cache bypass.
202
+ module Status
203
+ extend ContextDev::Internal::Type::Enum
204
+
205
+ TaggedSymbol =
206
+ T.type_alias do
207
+ T.all(
208
+ Symbol,
209
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status
210
+ )
211
+ end
212
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
213
+
214
+ HIT =
215
+ T.let(
216
+ :hit,
217
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
218
+ )
219
+ MISS =
220
+ T.let(
221
+ :miss,
222
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
223
+ )
224
+ ZDR =
225
+ T.let(
226
+ :zdr,
227
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
228
+ )
229
+
230
+ sig do
231
+ override.returns(
232
+ T::Array[
233
+ ContextDev::Models::WebWebScrapeImagesResponse::CacheMetadata::Status::TaggedSymbol
234
+ ]
235
+ )
236
+ end
237
+ def self.values
238
+ end
239
+ end
240
+ end
241
+
123
242
  class Image < ContextDev::Internal::Type::BaseModel
124
243
  OrHash =
125
244
  T.type_alias do
@@ -11,6 +11,20 @@ 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.
17
+ sig { returns(ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata) }
18
+ attr_reader :cache_metadata
19
+
20
+ sig do
21
+ params(
22
+ cache_metadata:
23
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::OrHash
24
+ ).void
25
+ end
26
+ attr_writer :cache_metadata
27
+
14
28
  # UTF-8 byte length of the returned Markdown. Use 0 to identify an empty result
15
29
  # and compare small values against your workload's minimum useful-content
16
30
  # threshold.
@@ -100,6 +114,8 @@ module ContextDev
100
114
 
101
115
  sig do
102
116
  params(
117
+ cache_metadata:
118
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::OrHash,
103
119
  content_length: Integer,
104
120
  markdown: String,
105
121
  metadata:
@@ -118,6 +134,10 @@ module ContextDev
118
134
  ).returns(T.attached_class)
119
135
  end
120
136
  def self.new(
137
+ # Cache outcome for this response. Composite responses are hits only when every
138
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
139
+ # oldest contributing hit.
140
+ cache_metadata:,
121
141
  # UTF-8 byte length of the returned Markdown. Use 0 to identify an empty result
122
142
  # and compare small values against your workload's minimum useful-content
123
143
  # threshold.
@@ -148,6 +168,8 @@ module ContextDev
148
168
  sig do
149
169
  override.returns(
150
170
  {
171
+ cache_metadata:
172
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata,
151
173
  content_length: Integer,
152
174
  markdown: String,
153
175
  metadata: ContextDev::Models::WebWebScrapeMdResponse::Metadata,
@@ -168,6 +190,101 @@ module ContextDev
168
190
  def to_hash
169
191
  end
170
192
 
193
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
194
+ OrHash =
195
+ T.type_alias do
196
+ T.any(
197
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata,
198
+ ContextDev::Internal::AnyHash
199
+ )
200
+ end
201
+
202
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
203
+ sig { returns(Integer) }
204
+ attr_accessor :age_ms
205
+
206
+ # Whether the response was served from cache, required fresh work, or honored
207
+ # zero-data-retention cache bypass.
208
+ sig do
209
+ returns(
210
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
211
+ )
212
+ end
213
+ attr_accessor :status
214
+
215
+ # Cache outcome for this response. Composite responses are hits only when every
216
+ # cache-controlled fetch contributing to the output was a hit; age_ms is the
217
+ # oldest contributing hit.
218
+ sig do
219
+ params(
220
+ age_ms: Integer,
221
+ status:
222
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::OrSymbol
223
+ ).returns(T.attached_class)
224
+ end
225
+ def self.new(
226
+ # Age of the cached data in milliseconds. Zero for miss and zdr responses.
227
+ age_ms:,
228
+ # Whether the response was served from cache, required fresh work, or honored
229
+ # zero-data-retention cache bypass.
230
+ status:
231
+ )
232
+ end
233
+
234
+ sig do
235
+ override.returns(
236
+ {
237
+ age_ms: Integer,
238
+ status:
239
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
240
+ }
241
+ )
242
+ end
243
+ def to_hash
244
+ end
245
+
246
+ # Whether the response was served from cache, required fresh work, or honored
247
+ # zero-data-retention cache bypass.
248
+ module Status
249
+ extend ContextDev::Internal::Type::Enum
250
+
251
+ TaggedSymbol =
252
+ T.type_alias do
253
+ T.all(
254
+ Symbol,
255
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status
256
+ )
257
+ end
258
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
259
+
260
+ HIT =
261
+ T.let(
262
+ :hit,
263
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
264
+ )
265
+ MISS =
266
+ T.let(
267
+ :miss,
268
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
269
+ )
270
+ ZDR =
271
+ T.let(
272
+ :zdr,
273
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
274
+ )
275
+
276
+ sig do
277
+ override.returns(
278
+ T::Array[
279
+ ContextDev::Models::WebWebScrapeMdResponse::CacheMetadata::Status::TaggedSymbol
280
+ ]
281
+ )
282
+ end
283
+ def self.values
284
+ end
285
+ end
286
+ end
287
+
171
288
  class Metadata < ContextDev::Internal::Type::BaseModel
172
289
  OrHash =
173
290
  T.type_alias do
@@ -27,6 +27,14 @@ module ContextDev
27
27
  sig { params(headers: T::Hash[Symbol, String]).void }
28
28
  attr_writer :headers
29
29
 
30
+ # When true, discover and include public pages and sitemaps on subdomains of the
31
+ # requested domain. Defaults to false.
32
+ sig { returns(T.nilable(T::Boolean)) }
33
+ attr_reader :include_subdomains
34
+
35
+ sig { params(include_subdomains: T::Boolean).void }
36
+ attr_writer :include_subdomains
37
+
30
38
  # Maximum number of links to return from the sitemap crawl. Defaults to 10,000.
31
39
  # Minimum is 1, maximum is 100,000.
32
40
  sig { returns(T.nilable(Integer)) }
@@ -96,6 +104,7 @@ module ContextDev
96
104
  params(
97
105
  domain: String,
98
106
  headers: T::Hash[Symbol, String],
107
+ include_subdomains: T::Boolean,
99
108
  max_links: Integer,
100
109
  search: String,
101
110
  sitemap_url: String,
@@ -113,6 +122,9 @@ module ContextDev
113
122
  # deep-object query params such as headers[X-Custom]=value. When provided, caching
114
123
  # is bypassed: the result is neither read from nor written to cache.
115
124
  headers: nil,
125
+ # When true, discover and include public pages and sitemaps on subdomains of the
126
+ # requested domain. Defaults to false.
127
+ include_subdomains: nil,
116
128
  # Maximum number of links to return from the sitemap crawl. Defaults to 10,000.
117
129
  # Minimum is 1, maximum is 100,000.
118
130
  max_links: nil,
@@ -148,6 +160,7 @@ module ContextDev
148
160
  {
149
161
  domain: String,
150
162
  headers: T::Hash[Symbol, String],
163
+ include_subdomains: T::Boolean,
151
164
  max_links: Integer,
152
165
  search: String,
153
166
  sitemap_url: String,
@@ -729,15 +729,17 @@ module ContextDev
729
729
  )
730
730
  end
731
731
 
732
- # Crawl an entire website's sitemap and return all discovered page URLs. Pass
733
- # `search` to have the crawled sitemap filtered down to the pages about a phrase
734
- # (for example `pricing and plans` or `api authentication docs`), most relevant
735
- # first — a searched crawl scans the whole sitemap and costs 2 credits instead
736
- # of 1.
732
+ # Crawl an entire website's sitemap and return all discovered page URLs. Set
733
+ # `includeSubdomains=true` to also discover public pages and sitemaps on child
734
+ # hosts such as `docs.example.com` or `brand.example.com`. Pass `search` to have
735
+ # the discovered URLs filtered down to the pages about a phrase (for example
736
+ # `pricing and plans` or `api authentication docs`), most relevant first — a
737
+ # searched crawl scans the whole sitemap and costs 2 credits instead of 1.
737
738
  sig do
738
739
  params(
739
740
  domain: String,
740
741
  headers: T::Hash[Symbol, String],
742
+ include_subdomains: T::Boolean,
741
743
  max_links: Integer,
742
744
  search: String,
743
745
  sitemap_url: String,
@@ -755,6 +757,9 @@ module ContextDev
755
757
  # deep-object query params such as headers[X-Custom]=value. When provided, caching
756
758
  # is bypassed: the result is neither read from nor written to cache.
757
759
  headers: nil,
760
+ # When true, discover and include public pages and sitemaps on subdomains of the
761
+ # requested domain. Defaults to false.
762
+ include_subdomains: nil,
758
763
  # Maximum number of links to return from the sitemap crawl. Defaults to 10,000.
759
764
  # Minimum is 1, maximum is 100,000.
760
765
  max_links: nil,
@@ -2,6 +2,7 @@ module ContextDev
2
2
  module Models
3
3
  type ai_extract_product_response =
4
4
  {
5
+ cache_metadata: ContextDev::Models::AIExtractProductResponse::CacheMetadata,
5
6
  is_product_page: bool,
6
7
  key_metadata: ContextDev::Models::AIExtractProductResponse::KeyMetadata,
7
8
  platform: ContextDev::Models::AIExtractProductResponse::platform?,
@@ -9,6 +10,8 @@ module ContextDev
9
10
  }
10
11
 
11
12
  class AIExtractProductResponse < ContextDev::Internal::Type::BaseModel
13
+ attr_accessor cache_metadata: ContextDev::Models::AIExtractProductResponse::CacheMetadata
14
+
12
15
  attr_reader is_product_page: bool?
13
16
 
14
17
  def is_product_page=: (bool) -> bool
@@ -24,6 +27,7 @@ module ContextDev
24
27
  attr_accessor product: ContextDev::Models::AIExtractProductResponse::Product?
25
28
 
26
29
  def initialize: (
30
+ cache_metadata: ContextDev::Models::AIExtractProductResponse::CacheMetadata,
27
31
  ?is_product_page: bool,
28
32
  ?key_metadata: ContextDev::Models::AIExtractProductResponse::KeyMetadata,
29
33
  ?platform: ContextDev::Models::AIExtractProductResponse::platform?,
@@ -31,12 +35,47 @@ module ContextDev
31
35
  ) -> void
32
36
 
33
37
  def to_hash: -> {
38
+ cache_metadata: ContextDev::Models::AIExtractProductResponse::CacheMetadata,
34
39
  is_product_page: bool,
35
40
  key_metadata: ContextDev::Models::AIExtractProductResponse::KeyMetadata,
36
41
  platform: ContextDev::Models::AIExtractProductResponse::platform?,
37
42
  product: ContextDev::Models::AIExtractProductResponse::Product?
38
43
  }
39
44
 
45
+ type cache_metadata =
46
+ {
47
+ age_ms: Integer,
48
+ status: ContextDev::Models::AIExtractProductResponse::CacheMetadata::status
49
+ }
50
+
51
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
52
+ attr_accessor age_ms: Integer
53
+
54
+ attr_accessor status: ContextDev::Models::AIExtractProductResponse::CacheMetadata::status
55
+
56
+ def initialize: (
57
+ age_ms: Integer,
58
+ status: ContextDev::Models::AIExtractProductResponse::CacheMetadata::status
59
+ ) -> void
60
+
61
+ def to_hash: -> {
62
+ age_ms: Integer,
63
+ status: ContextDev::Models::AIExtractProductResponse::CacheMetadata::status
64
+ }
65
+
66
+ type status = :hit | :miss | :zdr
67
+
68
+ module Status
69
+ extend ContextDev::Internal::Type::Enum
70
+
71
+ HIT: :hit
72
+ MISS: :miss
73
+ ZDR: :zdr
74
+
75
+ def self?.values: -> ::Array[ContextDev::Models::AIExtractProductResponse::CacheMetadata::status]
76
+ end
77
+ end
78
+
40
79
  type key_metadata =
41
80
  { credits_consumed: Integer, credits_remaining: Integer }
42
81
 
@@ -2,11 +2,14 @@ module ContextDev
2
2
  module Models
3
3
  type ai_extract_products_response =
4
4
  {
5
+ cache_metadata: ContextDev::Models::AIExtractProductsResponse::CacheMetadata,
5
6
  key_metadata: ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
6
7
  products: ::Array[ContextDev::Models::AIExtractProductsResponse::Product]
7
8
  }
8
9
 
9
10
  class AIExtractProductsResponse < ContextDev::Internal::Type::BaseModel
11
+ attr_accessor cache_metadata: ContextDev::Models::AIExtractProductsResponse::CacheMetadata
12
+
10
13
  attr_reader key_metadata: ContextDev::Models::AIExtractProductsResponse::KeyMetadata?
11
14
 
12
15
  def key_metadata=: (
@@ -20,15 +23,51 @@ module ContextDev
20
23
  ) -> ::Array[ContextDev::Models::AIExtractProductsResponse::Product]
21
24
 
22
25
  def initialize: (
26
+ cache_metadata: ContextDev::Models::AIExtractProductsResponse::CacheMetadata,
23
27
  ?key_metadata: ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
24
28
  ?products: ::Array[ContextDev::Models::AIExtractProductsResponse::Product]
25
29
  ) -> void
26
30
 
27
31
  def to_hash: -> {
32
+ cache_metadata: ContextDev::Models::AIExtractProductsResponse::CacheMetadata,
28
33
  key_metadata: ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
29
34
  products: ::Array[ContextDev::Models::AIExtractProductsResponse::Product]
30
35
  }
31
36
 
37
+ type cache_metadata =
38
+ {
39
+ age_ms: Integer,
40
+ status: ContextDev::Models::AIExtractProductsResponse::CacheMetadata::status
41
+ }
42
+
43
+ class CacheMetadata < ContextDev::Internal::Type::BaseModel
44
+ attr_accessor age_ms: Integer
45
+
46
+ attr_accessor status: ContextDev::Models::AIExtractProductsResponse::CacheMetadata::status
47
+
48
+ def initialize: (
49
+ age_ms: Integer,
50
+ status: ContextDev::Models::AIExtractProductsResponse::CacheMetadata::status
51
+ ) -> void
52
+
53
+ def to_hash: -> {
54
+ age_ms: Integer,
55
+ status: ContextDev::Models::AIExtractProductsResponse::CacheMetadata::status
56
+ }
57
+
58
+ type status = :hit | :miss | :zdr
59
+
60
+ module Status
61
+ extend ContextDev::Internal::Type::Enum
62
+
63
+ HIT: :hit
64
+ MISS: :miss
65
+ ZDR: :zdr
66
+
67
+ def self?.values: -> ::Array[ContextDev::Models::AIExtractProductsResponse::CacheMetadata::status]
68
+ end
69
+ end
70
+
32
71
  type key_metadata =
33
72
  { credits_consumed: Integer, credits_remaining: Integer }
34
73