context.dev 1.31.0 → 1.34.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +30 -0
- data/README.md +1 -1
- data/lib/context_dev/internal/transport/base_client.rb +4 -1
- data/lib/context_dev/models/ai_ai_query_response.rb +36 -1
- data/lib/context_dev/models/ai_extract_product_response.rb +36 -1
- data/lib/context_dev/models/ai_extract_products_response.rb +36 -1
- data/lib/context_dev/models/brand_identify_from_transaction_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_email_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_name_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_response.rb +36 -1
- data/lib/context_dev/models/brand_retrieve_simplified_response.rb +36 -1
- data/lib/context_dev/models/industry_retrieve_naics_response.rb +36 -1
- data/lib/context_dev/models/industry_retrieve_sic_response.rb +33 -1
- data/lib/context_dev/models/utility_prefetch_by_email_response.rb +36 -1
- data/lib/context_dev/models/utility_prefetch_response.rb +36 -1
- data/lib/context_dev/models/web_extract_competitors_response.rb +36 -1
- data/lib/context_dev/models/web_extract_fonts_response.rb +33 -1
- data/lib/context_dev/models/web_extract_params.rb +18 -1
- data/lib/context_dev/models/web_extract_response.rb +36 -1
- data/lib/context_dev/models/web_extract_styleguide_response.rb +36 -1
- data/lib/context_dev/models/web_screenshot_response.rb +36 -1
- data/lib/context_dev/models/web_search_response.rb +36 -1
- data/lib/context_dev/models/web_web_crawl_md_response.rb +275 -6
- data/lib/context_dev/models/web_web_scrape_html_response.rb +290 -1
- data/lib/context_dev/models/web_web_scrape_images_response.rb +36 -1
- data/lib/context_dev/models/web_web_scrape_md_response.rb +291 -1
- data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +36 -1
- data/lib/context_dev/resources/web.rb +5 -1
- data/lib/context_dev/version.rb +1 -1
- data/rbi/context_dev/models/ai_ai_query_response.rbi +62 -0
- data/rbi/context_dev/models/ai_extract_product_response.rbi +65 -0
- data/rbi/context_dev/models/ai_extract_products_response.rbi +65 -0
- data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +67 -0
- data/rbi/context_dev/models/brand_retrieve_response.rbi +65 -0
- data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +67 -0
- data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +67 -0
- data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +67 -0
- data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +79 -4
- data/rbi/context_dev/models/utility_prefetch_response.rbi +77 -4
- data/rbi/context_dev/models/web_extract_competitors_response.rbi +70 -3
- data/rbi/context_dev/models/web_extract_fonts_response.rbi +68 -3
- data/rbi/context_dev/models/web_extract_params.rbi +24 -0
- data/rbi/context_dev/models/web_extract_response.rbi +65 -3
- data/rbi/context_dev/models/web_extract_styleguide_response.rbi +67 -0
- data/rbi/context_dev/models/web_screenshot_response.rbi +65 -0
- data/rbi/context_dev/models/web_search_response.rbi +65 -3
- data/rbi/context_dev/models/web_web_crawl_md_response.rbi +497 -10
- data/rbi/context_dev/models/web_web_scrape_html_response.rbi +553 -3
- data/rbi/context_dev/models/web_web_scrape_images_response.rbi +68 -3
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +542 -3
- data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +70 -3
- data/rbi/context_dev/resources/web.rbi +7 -0
- data/sig/context_dev/models/ai_ai_query_response.rbs +28 -0
- data/sig/context_dev/models/ai_extract_product_response.rbs +28 -0
- data/sig/context_dev/models/ai_extract_products_response.rbs +28 -0
- data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_response.rbs +28 -0
- data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +28 -0
- data/sig/context_dev/models/industry_retrieve_naics_response.rbs +28 -0
- data/sig/context_dev/models/industry_retrieve_sic_response.rbs +28 -0
- data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +38 -2
- data/sig/context_dev/models/utility_prefetch_response.rbs +38 -2
- data/sig/context_dev/models/web_extract_competitors_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_fonts_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_params.rbs +14 -0
- data/sig/context_dev/models/web_extract_response.rbs +31 -3
- data/sig/context_dev/models/web_extract_styleguide_response.rbs +28 -0
- data/sig/context_dev/models/web_screenshot_response.rbs +28 -0
- data/sig/context_dev/models/web_search_response.rbs +31 -3
- data/sig/context_dev/models/web_web_crawl_md_response.rbs +229 -6
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +263 -4
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +31 -3
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +250 -3
- data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +31 -3
- data/sig/context_dev/resources/web.rbs +2 -0
- metadata +2 -2
|
@@ -15,6 +15,17 @@ module ContextDev
|
|
|
15
15
|
sig { returns(String) }
|
|
16
16
|
attr_accessor :markdown
|
|
17
17
|
|
|
18
|
+
# Metadata extracted from the scraped page HTML.
|
|
19
|
+
sig { returns(ContextDev::Models::WebWebScrapeMdResponse::Metadata) }
|
|
20
|
+
attr_reader :metadata
|
|
21
|
+
|
|
22
|
+
sig do
|
|
23
|
+
params(
|
|
24
|
+
metadata: ContextDev::Models::WebWebScrapeMdResponse::Metadata::OrHash
|
|
25
|
+
).void
|
|
26
|
+
end
|
|
27
|
+
attr_writer :metadata
|
|
28
|
+
|
|
18
29
|
# Indicates success
|
|
19
30
|
sig do
|
|
20
31
|
returns(
|
|
@@ -27,21 +38,47 @@ module ContextDev
|
|
|
27
38
|
sig { returns(String) }
|
|
28
39
|
attr_accessor :url
|
|
29
40
|
|
|
41
|
+
# Metadata about the API key used for the request. Included in every response
|
|
42
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
43
|
+
sig do
|
|
44
|
+
returns(
|
|
45
|
+
T.nilable(ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata)
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
attr_reader :key_metadata
|
|
49
|
+
|
|
50
|
+
sig do
|
|
51
|
+
params(
|
|
52
|
+
key_metadata:
|
|
53
|
+
ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata::OrHash
|
|
54
|
+
).void
|
|
55
|
+
end
|
|
56
|
+
attr_writer :key_metadata
|
|
57
|
+
|
|
30
58
|
sig do
|
|
31
59
|
params(
|
|
32
60
|
markdown: String,
|
|
61
|
+
metadata:
|
|
62
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OrHash,
|
|
33
63
|
success:
|
|
34
64
|
ContextDev::Models::WebWebScrapeMdResponse::Success::OrBoolean,
|
|
35
|
-
url: String
|
|
65
|
+
url: String,
|
|
66
|
+
key_metadata:
|
|
67
|
+
ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata::OrHash
|
|
36
68
|
).returns(T.attached_class)
|
|
37
69
|
end
|
|
38
70
|
def self.new(
|
|
39
71
|
# Page content converted to GitHub Flavored Markdown
|
|
40
72
|
markdown:,
|
|
73
|
+
# Metadata extracted from the scraped page HTML.
|
|
74
|
+
metadata:,
|
|
41
75
|
# Indicates success
|
|
42
76
|
success:,
|
|
43
77
|
# The URL that was scraped
|
|
44
|
-
url
|
|
78
|
+
url:,
|
|
79
|
+
# Metadata about the API key used for the request. Included in every response
|
|
80
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
81
|
+
key_metadata: nil
|
|
45
82
|
)
|
|
46
83
|
end
|
|
47
84
|
|
|
@@ -49,15 +86,476 @@ module ContextDev
|
|
|
49
86
|
override.returns(
|
|
50
87
|
{
|
|
51
88
|
markdown: String,
|
|
89
|
+
metadata: ContextDev::Models::WebWebScrapeMdResponse::Metadata,
|
|
52
90
|
success:
|
|
53
91
|
ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean,
|
|
54
|
-
url: String
|
|
92
|
+
url: String,
|
|
93
|
+
key_metadata:
|
|
94
|
+
ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata
|
|
55
95
|
}
|
|
56
96
|
)
|
|
57
97
|
end
|
|
58
98
|
def to_hash
|
|
59
99
|
end
|
|
60
100
|
|
|
101
|
+
class Metadata < ContextDev::Internal::Type::BaseModel
|
|
102
|
+
OrHash =
|
|
103
|
+
T.type_alias do
|
|
104
|
+
T.any(
|
|
105
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata,
|
|
106
|
+
ContextDev::Internal::AnyHash
|
|
107
|
+
)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Final URL scraped after redirects or scraper fallback, when known. Falls back to
|
|
111
|
+
# sourceUrl when unavailable.
|
|
112
|
+
sig { returns(String) }
|
|
113
|
+
attr_accessor :final_url
|
|
114
|
+
|
|
115
|
+
# Original URL requested by the caller.
|
|
116
|
+
sig { returns(String) }
|
|
117
|
+
attr_accessor :source_url
|
|
118
|
+
|
|
119
|
+
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
120
|
+
sig do
|
|
121
|
+
returns(
|
|
122
|
+
T.nilable(
|
|
123
|
+
T::Hash[
|
|
124
|
+
Symbol,
|
|
125
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::AdditionalMeta::Variants
|
|
126
|
+
]
|
|
127
|
+
)
|
|
128
|
+
)
|
|
129
|
+
end
|
|
130
|
+
attr_reader :additional_meta
|
|
131
|
+
|
|
132
|
+
sig do
|
|
133
|
+
params(
|
|
134
|
+
additional_meta:
|
|
135
|
+
T::Hash[
|
|
136
|
+
Symbol,
|
|
137
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::AdditionalMeta::Variants
|
|
138
|
+
]
|
|
139
|
+
).void
|
|
140
|
+
end
|
|
141
|
+
attr_writer :additional_meta
|
|
142
|
+
|
|
143
|
+
# Resolved alternate links from link rel=alternate tags.
|
|
144
|
+
sig do
|
|
145
|
+
returns(
|
|
146
|
+
T.nilable(
|
|
147
|
+
T::Array[
|
|
148
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Alternate
|
|
149
|
+
]
|
|
150
|
+
)
|
|
151
|
+
)
|
|
152
|
+
end
|
|
153
|
+
attr_reader :alternates
|
|
154
|
+
|
|
155
|
+
sig do
|
|
156
|
+
params(
|
|
157
|
+
alternates:
|
|
158
|
+
T::Array[
|
|
159
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Alternate::OrHash
|
|
160
|
+
]
|
|
161
|
+
).void
|
|
162
|
+
end
|
|
163
|
+
attr_writer :alternates
|
|
164
|
+
|
|
165
|
+
# Author metadata, when present.
|
|
166
|
+
sig { returns(T.nilable(String)) }
|
|
167
|
+
attr_reader :author
|
|
168
|
+
|
|
169
|
+
sig { params(author: String).void }
|
|
170
|
+
attr_writer :author
|
|
171
|
+
|
|
172
|
+
# Resolved canonical URL, when present.
|
|
173
|
+
sig { returns(T.nilable(String)) }
|
|
174
|
+
attr_reader :canonical_url
|
|
175
|
+
|
|
176
|
+
sig { params(canonical_url: String).void }
|
|
177
|
+
attr_writer :canonical_url
|
|
178
|
+
|
|
179
|
+
# Best description extracted from standard, Open Graph, or Twitter metadata.
|
|
180
|
+
sig { returns(T.nilable(String)) }
|
|
181
|
+
attr_reader :description
|
|
182
|
+
|
|
183
|
+
sig { params(description: String).void }
|
|
184
|
+
attr_writer :description
|
|
185
|
+
|
|
186
|
+
# Resolved favicon URL, when present.
|
|
187
|
+
sig { returns(T.nilable(String)) }
|
|
188
|
+
attr_reader :favicon
|
|
189
|
+
|
|
190
|
+
sig { params(favicon: String).void }
|
|
191
|
+
attr_writer :favicon
|
|
192
|
+
|
|
193
|
+
# Primary resolved preview image from Open Graph, Twitter, or image metadata.
|
|
194
|
+
sig { returns(T.nilable(String)) }
|
|
195
|
+
attr_reader :image
|
|
196
|
+
|
|
197
|
+
sig { params(image: String).void }
|
|
198
|
+
attr_writer :image
|
|
199
|
+
|
|
200
|
+
# JSON-LD structured data blocks parsed from the page.
|
|
201
|
+
sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
|
|
202
|
+
attr_reader :json_ld
|
|
203
|
+
|
|
204
|
+
sig { params(json_ld: T::Array[T::Hash[Symbol, T.anything]]).void }
|
|
205
|
+
attr_writer :json_ld
|
|
206
|
+
|
|
207
|
+
# Keywords extracted from the page's keywords meta tag.
|
|
208
|
+
sig { returns(T.nilable(T::Array[String])) }
|
|
209
|
+
attr_reader :keywords
|
|
210
|
+
|
|
211
|
+
sig { params(keywords: T::Array[String]).void }
|
|
212
|
+
attr_writer :keywords
|
|
213
|
+
|
|
214
|
+
# Language extracted from html lang or language meta tags.
|
|
215
|
+
sig { returns(T.nilable(String)) }
|
|
216
|
+
attr_reader :language
|
|
217
|
+
|
|
218
|
+
sig { params(language: String).void }
|
|
219
|
+
attr_writer :language
|
|
220
|
+
|
|
221
|
+
# Modified timestamp/date from page metadata, when present.
|
|
222
|
+
sig { returns(T.nilable(String)) }
|
|
223
|
+
attr_reader :modified_time
|
|
224
|
+
|
|
225
|
+
sig { params(modified_time: String).void }
|
|
226
|
+
attr_writer :modified_time
|
|
227
|
+
|
|
228
|
+
# Open Graph metadata with the og: prefix removed and keys camel-cased.
|
|
229
|
+
sig do
|
|
230
|
+
returns(
|
|
231
|
+
T.nilable(
|
|
232
|
+
T::Hash[
|
|
233
|
+
Symbol,
|
|
234
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OpenGraph::Variants
|
|
235
|
+
]
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
end
|
|
239
|
+
attr_reader :open_graph
|
|
240
|
+
|
|
241
|
+
sig do
|
|
242
|
+
params(
|
|
243
|
+
open_graph:
|
|
244
|
+
T::Hash[
|
|
245
|
+
Symbol,
|
|
246
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OpenGraph::Variants
|
|
247
|
+
]
|
|
248
|
+
).void
|
|
249
|
+
end
|
|
250
|
+
attr_writer :open_graph
|
|
251
|
+
|
|
252
|
+
# Published timestamp/date from page metadata, when present.
|
|
253
|
+
sig { returns(T.nilable(String)) }
|
|
254
|
+
attr_reader :published_time
|
|
255
|
+
|
|
256
|
+
sig { params(published_time: String).void }
|
|
257
|
+
attr_writer :published_time
|
|
258
|
+
|
|
259
|
+
# Robots meta directive, when present.
|
|
260
|
+
sig { returns(T.nilable(String)) }
|
|
261
|
+
attr_reader :robots
|
|
262
|
+
|
|
263
|
+
sig { params(robots: String).void }
|
|
264
|
+
attr_writer :robots
|
|
265
|
+
|
|
266
|
+
# Site or application name from page metadata.
|
|
267
|
+
sig { returns(T.nilable(String)) }
|
|
268
|
+
attr_reader :site_name
|
|
269
|
+
|
|
270
|
+
sig { params(site_name: String).void }
|
|
271
|
+
attr_writer :site_name
|
|
272
|
+
|
|
273
|
+
# Best title extracted from the page.
|
|
274
|
+
sig { returns(T.nilable(String)) }
|
|
275
|
+
attr_reader :title
|
|
276
|
+
|
|
277
|
+
sig { params(title: String).void }
|
|
278
|
+
attr_writer :title
|
|
279
|
+
|
|
280
|
+
# Twitter card metadata with the twitter: prefix removed and keys camel-cased.
|
|
281
|
+
sig do
|
|
282
|
+
returns(
|
|
283
|
+
T.nilable(
|
|
284
|
+
T::Hash[
|
|
285
|
+
Symbol,
|
|
286
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Twitter::Variants
|
|
287
|
+
]
|
|
288
|
+
)
|
|
289
|
+
)
|
|
290
|
+
end
|
|
291
|
+
attr_reader :twitter
|
|
292
|
+
|
|
293
|
+
sig do
|
|
294
|
+
params(
|
|
295
|
+
twitter:
|
|
296
|
+
T::Hash[
|
|
297
|
+
Symbol,
|
|
298
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Twitter::Variants
|
|
299
|
+
]
|
|
300
|
+
).void
|
|
301
|
+
end
|
|
302
|
+
attr_writer :twitter
|
|
303
|
+
|
|
304
|
+
# Metadata extracted from the scraped page HTML.
|
|
305
|
+
sig do
|
|
306
|
+
params(
|
|
307
|
+
final_url: String,
|
|
308
|
+
source_url: String,
|
|
309
|
+
additional_meta:
|
|
310
|
+
T::Hash[
|
|
311
|
+
Symbol,
|
|
312
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::AdditionalMeta::Variants
|
|
313
|
+
],
|
|
314
|
+
alternates:
|
|
315
|
+
T::Array[
|
|
316
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Alternate::OrHash
|
|
317
|
+
],
|
|
318
|
+
author: String,
|
|
319
|
+
canonical_url: String,
|
|
320
|
+
description: String,
|
|
321
|
+
favicon: String,
|
|
322
|
+
image: String,
|
|
323
|
+
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
324
|
+
keywords: T::Array[String],
|
|
325
|
+
language: String,
|
|
326
|
+
modified_time: String,
|
|
327
|
+
open_graph:
|
|
328
|
+
T::Hash[
|
|
329
|
+
Symbol,
|
|
330
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OpenGraph::Variants
|
|
331
|
+
],
|
|
332
|
+
published_time: String,
|
|
333
|
+
robots: String,
|
|
334
|
+
site_name: String,
|
|
335
|
+
title: String,
|
|
336
|
+
twitter:
|
|
337
|
+
T::Hash[
|
|
338
|
+
Symbol,
|
|
339
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Twitter::Variants
|
|
340
|
+
]
|
|
341
|
+
).returns(T.attached_class)
|
|
342
|
+
end
|
|
343
|
+
def self.new(
|
|
344
|
+
# Final URL scraped after redirects or scraper fallback, when known. Falls back to
|
|
345
|
+
# sourceUrl when unavailable.
|
|
346
|
+
final_url:,
|
|
347
|
+
# Original URL requested by the caller.
|
|
348
|
+
source_url:,
|
|
349
|
+
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
350
|
+
additional_meta: nil,
|
|
351
|
+
# Resolved alternate links from link rel=alternate tags.
|
|
352
|
+
alternates: nil,
|
|
353
|
+
# Author metadata, when present.
|
|
354
|
+
author: nil,
|
|
355
|
+
# Resolved canonical URL, when present.
|
|
356
|
+
canonical_url: nil,
|
|
357
|
+
# Best description extracted from standard, Open Graph, or Twitter metadata.
|
|
358
|
+
description: nil,
|
|
359
|
+
# Resolved favicon URL, when present.
|
|
360
|
+
favicon: nil,
|
|
361
|
+
# Primary resolved preview image from Open Graph, Twitter, or image metadata.
|
|
362
|
+
image: nil,
|
|
363
|
+
# JSON-LD structured data blocks parsed from the page.
|
|
364
|
+
json_ld: nil,
|
|
365
|
+
# Keywords extracted from the page's keywords meta tag.
|
|
366
|
+
keywords: nil,
|
|
367
|
+
# Language extracted from html lang or language meta tags.
|
|
368
|
+
language: nil,
|
|
369
|
+
# Modified timestamp/date from page metadata, when present.
|
|
370
|
+
modified_time: nil,
|
|
371
|
+
# Open Graph metadata with the og: prefix removed and keys camel-cased.
|
|
372
|
+
open_graph: nil,
|
|
373
|
+
# Published timestamp/date from page metadata, when present.
|
|
374
|
+
published_time: nil,
|
|
375
|
+
# Robots meta directive, when present.
|
|
376
|
+
robots: nil,
|
|
377
|
+
# Site or application name from page metadata.
|
|
378
|
+
site_name: nil,
|
|
379
|
+
# Best title extracted from the page.
|
|
380
|
+
title: nil,
|
|
381
|
+
# Twitter card metadata with the twitter: prefix removed and keys camel-cased.
|
|
382
|
+
twitter: nil
|
|
383
|
+
)
|
|
384
|
+
end
|
|
385
|
+
|
|
386
|
+
sig do
|
|
387
|
+
override.returns(
|
|
388
|
+
{
|
|
389
|
+
final_url: String,
|
|
390
|
+
source_url: String,
|
|
391
|
+
additional_meta:
|
|
392
|
+
T::Hash[
|
|
393
|
+
Symbol,
|
|
394
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::AdditionalMeta::Variants
|
|
395
|
+
],
|
|
396
|
+
alternates:
|
|
397
|
+
T::Array[
|
|
398
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Alternate
|
|
399
|
+
],
|
|
400
|
+
author: String,
|
|
401
|
+
canonical_url: String,
|
|
402
|
+
description: String,
|
|
403
|
+
favicon: String,
|
|
404
|
+
image: String,
|
|
405
|
+
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
406
|
+
keywords: T::Array[String],
|
|
407
|
+
language: String,
|
|
408
|
+
modified_time: String,
|
|
409
|
+
open_graph:
|
|
410
|
+
T::Hash[
|
|
411
|
+
Symbol,
|
|
412
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OpenGraph::Variants
|
|
413
|
+
],
|
|
414
|
+
published_time: String,
|
|
415
|
+
robots: String,
|
|
416
|
+
site_name: String,
|
|
417
|
+
title: String,
|
|
418
|
+
twitter:
|
|
419
|
+
T::Hash[
|
|
420
|
+
Symbol,
|
|
421
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Twitter::Variants
|
|
422
|
+
]
|
|
423
|
+
}
|
|
424
|
+
)
|
|
425
|
+
end
|
|
426
|
+
def to_hash
|
|
427
|
+
end
|
|
428
|
+
|
|
429
|
+
module AdditionalMeta
|
|
430
|
+
extend ContextDev::Internal::Type::Union
|
|
431
|
+
|
|
432
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
433
|
+
|
|
434
|
+
sig do
|
|
435
|
+
override.returns(
|
|
436
|
+
T::Array[
|
|
437
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::AdditionalMeta::Variants
|
|
438
|
+
]
|
|
439
|
+
)
|
|
440
|
+
end
|
|
441
|
+
def self.variants
|
|
442
|
+
end
|
|
443
|
+
|
|
444
|
+
StringArray =
|
|
445
|
+
T.let(
|
|
446
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
447
|
+
ContextDev::Internal::Type::Converter
|
|
448
|
+
)
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
class Alternate < ContextDev::Internal::Type::BaseModel
|
|
452
|
+
OrHash =
|
|
453
|
+
T.type_alias do
|
|
454
|
+
T.any(
|
|
455
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Alternate,
|
|
456
|
+
ContextDev::Internal::AnyHash
|
|
457
|
+
)
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
# Resolved alternate URL.
|
|
461
|
+
sig { returns(String) }
|
|
462
|
+
attr_accessor :href
|
|
463
|
+
|
|
464
|
+
# Language or locale for the alternate URL, when present.
|
|
465
|
+
sig { returns(T.nilable(String)) }
|
|
466
|
+
attr_reader :hreflang
|
|
467
|
+
|
|
468
|
+
sig { params(hreflang: String).void }
|
|
469
|
+
attr_writer :hreflang
|
|
470
|
+
|
|
471
|
+
# Alternate resource title, when present.
|
|
472
|
+
sig { returns(T.nilable(String)) }
|
|
473
|
+
attr_reader :title
|
|
474
|
+
|
|
475
|
+
sig { params(title: String).void }
|
|
476
|
+
attr_writer :title
|
|
477
|
+
|
|
478
|
+
# Alternate resource MIME type, when present.
|
|
479
|
+
sig { returns(T.nilable(String)) }
|
|
480
|
+
attr_reader :type
|
|
481
|
+
|
|
482
|
+
sig { params(type: String).void }
|
|
483
|
+
attr_writer :type
|
|
484
|
+
|
|
485
|
+
sig do
|
|
486
|
+
params(
|
|
487
|
+
href: String,
|
|
488
|
+
hreflang: String,
|
|
489
|
+
title: String,
|
|
490
|
+
type: String
|
|
491
|
+
).returns(T.attached_class)
|
|
492
|
+
end
|
|
493
|
+
def self.new(
|
|
494
|
+
# Resolved alternate URL.
|
|
495
|
+
href:,
|
|
496
|
+
# Language or locale for the alternate URL, when present.
|
|
497
|
+
hreflang: nil,
|
|
498
|
+
# Alternate resource title, when present.
|
|
499
|
+
title: nil,
|
|
500
|
+
# Alternate resource MIME type, when present.
|
|
501
|
+
type: nil
|
|
502
|
+
)
|
|
503
|
+
end
|
|
504
|
+
|
|
505
|
+
sig do
|
|
506
|
+
override.returns(
|
|
507
|
+
{ href: String, hreflang: String, title: String, type: String }
|
|
508
|
+
)
|
|
509
|
+
end
|
|
510
|
+
def to_hash
|
|
511
|
+
end
|
|
512
|
+
end
|
|
513
|
+
|
|
514
|
+
module OpenGraph
|
|
515
|
+
extend ContextDev::Internal::Type::Union
|
|
516
|
+
|
|
517
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
518
|
+
|
|
519
|
+
sig do
|
|
520
|
+
override.returns(
|
|
521
|
+
T::Array[
|
|
522
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::OpenGraph::Variants
|
|
523
|
+
]
|
|
524
|
+
)
|
|
525
|
+
end
|
|
526
|
+
def self.variants
|
|
527
|
+
end
|
|
528
|
+
|
|
529
|
+
StringArray =
|
|
530
|
+
T.let(
|
|
531
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
532
|
+
ContextDev::Internal::Type::Converter
|
|
533
|
+
)
|
|
534
|
+
end
|
|
535
|
+
|
|
536
|
+
module Twitter
|
|
537
|
+
extend ContextDev::Internal::Type::Union
|
|
538
|
+
|
|
539
|
+
Variants = T.type_alias { T.any(String, T::Array[String]) }
|
|
540
|
+
|
|
541
|
+
sig do
|
|
542
|
+
override.returns(
|
|
543
|
+
T::Array[
|
|
544
|
+
ContextDev::Models::WebWebScrapeMdResponse::Metadata::Twitter::Variants
|
|
545
|
+
]
|
|
546
|
+
)
|
|
547
|
+
end
|
|
548
|
+
def self.variants
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
StringArray =
|
|
552
|
+
T.let(
|
|
553
|
+
ContextDev::Internal::Type::ArrayOf[String],
|
|
554
|
+
ContextDev::Internal::Type::Converter
|
|
555
|
+
)
|
|
556
|
+
end
|
|
557
|
+
end
|
|
558
|
+
|
|
61
559
|
# Indicates success
|
|
62
560
|
module Success
|
|
63
561
|
extend ContextDev::Internal::Type::Enum
|
|
@@ -87,6 +585,47 @@ module ContextDev
|
|
|
87
585
|
def self.values
|
|
88
586
|
end
|
|
89
587
|
end
|
|
588
|
+
|
|
589
|
+
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
590
|
+
OrHash =
|
|
591
|
+
T.type_alias do
|
|
592
|
+
T.any(
|
|
593
|
+
ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata,
|
|
594
|
+
ContextDev::Internal::AnyHash
|
|
595
|
+
)
|
|
596
|
+
end
|
|
597
|
+
|
|
598
|
+
# The number of credits consumed by this request.
|
|
599
|
+
sig { returns(Integer) }
|
|
600
|
+
attr_accessor :credits_consumed
|
|
601
|
+
|
|
602
|
+
# The number of credits remaining for your organization after this request.
|
|
603
|
+
sig { returns(Integer) }
|
|
604
|
+
attr_accessor :credits_remaining
|
|
605
|
+
|
|
606
|
+
# Metadata about the API key used for the request. Included in every response
|
|
607
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
608
|
+
sig do
|
|
609
|
+
params(credits_consumed: Integer, credits_remaining: Integer).returns(
|
|
610
|
+
T.attached_class
|
|
611
|
+
)
|
|
612
|
+
end
|
|
613
|
+
def self.new(
|
|
614
|
+
# The number of credits consumed by this request.
|
|
615
|
+
credits_consumed:,
|
|
616
|
+
# The number of credits remaining for your organization after this request.
|
|
617
|
+
credits_remaining:
|
|
618
|
+
)
|
|
619
|
+
end
|
|
620
|
+
|
|
621
|
+
sig do
|
|
622
|
+
override.returns(
|
|
623
|
+
{ credits_consumed: Integer, credits_remaining: Integer }
|
|
624
|
+
)
|
|
625
|
+
end
|
|
626
|
+
def to_hash
|
|
627
|
+
end
|
|
628
|
+
end
|
|
90
629
|
end
|
|
91
630
|
end
|
|
92
631
|
end
|
|
@@ -38,13 +38,34 @@ module ContextDev
|
|
|
38
38
|
sig { returns(T::Array[String]) }
|
|
39
39
|
attr_accessor :urls
|
|
40
40
|
|
|
41
|
+
# Metadata about the API key used for the request. Included in every response
|
|
42
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
43
|
+
sig do
|
|
44
|
+
returns(
|
|
45
|
+
T.nilable(
|
|
46
|
+
ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata
|
|
47
|
+
)
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
attr_reader :key_metadata
|
|
51
|
+
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
key_metadata:
|
|
55
|
+
ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata::OrHash
|
|
56
|
+
).void
|
|
57
|
+
end
|
|
58
|
+
attr_writer :key_metadata
|
|
59
|
+
|
|
41
60
|
sig do
|
|
42
61
|
params(
|
|
43
62
|
domain: String,
|
|
44
63
|
meta: ContextDev::Models::WebWebScrapeSitemapResponse::Meta::OrHash,
|
|
45
64
|
success:
|
|
46
65
|
ContextDev::Models::WebWebScrapeSitemapResponse::Success::OrBoolean,
|
|
47
|
-
urls: T::Array[String]
|
|
66
|
+
urls: T::Array[String],
|
|
67
|
+
key_metadata:
|
|
68
|
+
ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata::OrHash
|
|
48
69
|
).returns(T.attached_class)
|
|
49
70
|
end
|
|
50
71
|
def self.new(
|
|
@@ -55,7 +76,10 @@ module ContextDev
|
|
|
55
76
|
# Indicates success
|
|
56
77
|
success:,
|
|
57
78
|
# Array of discovered page URLs from the sitemap (max 500)
|
|
58
|
-
urls
|
|
79
|
+
urls:,
|
|
80
|
+
# Metadata about the API key used for the request. Included in every response
|
|
81
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
82
|
+
key_metadata: nil
|
|
59
83
|
)
|
|
60
84
|
end
|
|
61
85
|
|
|
@@ -66,7 +90,9 @@ module ContextDev
|
|
|
66
90
|
meta: ContextDev::Models::WebWebScrapeSitemapResponse::Meta,
|
|
67
91
|
success:
|
|
68
92
|
ContextDev::Models::WebWebScrapeSitemapResponse::Success::TaggedBoolean,
|
|
69
|
-
urls: T::Array[String]
|
|
93
|
+
urls: T::Array[String],
|
|
94
|
+
key_metadata:
|
|
95
|
+
ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata
|
|
70
96
|
}
|
|
71
97
|
)
|
|
72
98
|
end
|
|
@@ -162,6 +188,47 @@ module ContextDev
|
|
|
162
188
|
def self.values
|
|
163
189
|
end
|
|
164
190
|
end
|
|
191
|
+
|
|
192
|
+
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
193
|
+
OrHash =
|
|
194
|
+
T.type_alias do
|
|
195
|
+
T.any(
|
|
196
|
+
ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata,
|
|
197
|
+
ContextDev::Internal::AnyHash
|
|
198
|
+
)
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# The number of credits consumed by this request.
|
|
202
|
+
sig { returns(Integer) }
|
|
203
|
+
attr_accessor :credits_consumed
|
|
204
|
+
|
|
205
|
+
# The number of credits remaining for your organization after this request.
|
|
206
|
+
sig { returns(Integer) }
|
|
207
|
+
attr_accessor :credits_remaining
|
|
208
|
+
|
|
209
|
+
# Metadata about the API key used for the request. Included in every response
|
|
210
|
+
# whenever a valid API key is provided, even when the response status is not 200.
|
|
211
|
+
sig do
|
|
212
|
+
params(credits_consumed: Integer, credits_remaining: Integer).returns(
|
|
213
|
+
T.attached_class
|
|
214
|
+
)
|
|
215
|
+
end
|
|
216
|
+
def self.new(
|
|
217
|
+
# The number of credits consumed by this request.
|
|
218
|
+
credits_consumed:,
|
|
219
|
+
# The number of credits remaining for your organization after this request.
|
|
220
|
+
credits_remaining:
|
|
221
|
+
)
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
sig do
|
|
225
|
+
override.returns(
|
|
226
|
+
{ credits_consumed: Integer, credits_remaining: Integer }
|
|
227
|
+
)
|
|
228
|
+
end
|
|
229
|
+
def to_hash
|
|
230
|
+
end
|
|
231
|
+
end
|
|
165
232
|
end
|
|
166
233
|
end
|
|
167
234
|
end
|
|
@@ -14,6 +14,8 @@ module ContextDev
|
|
|
14
14
|
include_frames: T::Boolean,
|
|
15
15
|
instructions: String,
|
|
16
16
|
max_age_ms: Integer,
|
|
17
|
+
max_depth: Integer,
|
|
18
|
+
max_pages: Integer,
|
|
17
19
|
pdf: ContextDev::WebExtractParams::Pdf::OrHash,
|
|
18
20
|
stop_after_ms: Integer,
|
|
19
21
|
timeout_ms: Integer,
|
|
@@ -46,6 +48,11 @@ module ContextDev
|
|
|
46
48
|
# Return cached scrape results if a prior scrape for the same parameters is
|
|
47
49
|
# younger than this many milliseconds. Defaults to 7 days (604800000 ms).
|
|
48
50
|
max_age_ms: nil,
|
|
51
|
+
# Optional maximum link depth from the starting URL (0 = only the starting page).
|
|
52
|
+
# If omitted, there is no crawl depth limit.
|
|
53
|
+
max_depth: nil,
|
|
54
|
+
# Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
|
|
55
|
+
max_pages: nil,
|
|
49
56
|
pdf: nil,
|
|
50
57
|
# Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
|
|
51
58
|
# (110s). Default: 80000 (80s).
|