context.dev 0.1.0 → 0.2.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 +10 -0
- data/README.md +9 -9
- data/lib/context_dev/client.rb +20 -0
- data/lib/context_dev/internal/type/base_model.rb +4 -4
- data/lib/context_dev/models/{brand_ai_query_params.rb → ai_ai_query_params.rb} +21 -22
- data/lib/context_dev/models/{brand_ai_query_response.rb → ai_ai_query_response.rb} +11 -11
- data/lib/context_dev/models/{brand_ai_product_params.rb → ai_extract_product_params.rb} +3 -3
- data/lib/context_dev/models/{brand_ai_product_response.rb → ai_extract_product_response.rb} +18 -18
- data/lib/context_dev/models/{brand_ai_products_params.rb → ai_extract_products_params.rb} +11 -10
- data/lib/context_dev/models/{brand_ai_products_response.rb → ai_extract_products_response.rb} +13 -13
- data/lib/context_dev/models/brand_identify_from_transaction_params.rb +3 -0
- data/lib/context_dev/models/brand_retrieve_by_email_params.rb +3 -0
- data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +3 -0
- data/lib/context_dev/models/brand_retrieve_by_name_params.rb +3 -0
- data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +3 -0
- data/lib/context_dev/models/brand_retrieve_params.rb +3 -0
- data/lib/context_dev/models/{brand_retrieve_naics_params.rb → industry_retrieve_naics_params.rb} +3 -3
- data/lib/context_dev/models/{brand_retrieve_naics_response.rb → industry_retrieve_naics_response.rb} +9 -9
- data/lib/context_dev/models/{brand_fonts_params.rb → style_extract_fonts_params.rb} +3 -3
- data/lib/context_dev/models/{brand_fonts_response.rb → style_extract_fonts_response.rb} +6 -5
- data/lib/context_dev/models/{brand_styleguide_params.rb → style_extract_styleguide_params.rb} +6 -6
- data/lib/context_dev/models/{brand_styleguide_response.rb → style_extract_styleguide_response.rb} +83 -74
- data/lib/context_dev/models/{brand_prefetch_by_email_params.rb → utility_prefetch_by_email_params.rb} +3 -3
- data/lib/context_dev/models/{brand_prefetch_by_email_response.rb → utility_prefetch_by_email_response.rb} +2 -2
- data/lib/context_dev/models/{brand_prefetch_params.rb → utility_prefetch_params.rb} +3 -3
- data/lib/context_dev/models/{brand_prefetch_response.rb → utility_prefetch_response.rb} +2 -2
- data/lib/context_dev/models/{brand_screenshot_params.rb → web_screenshot_params.rb} +12 -12
- data/lib/context_dev/models/{brand_screenshot_response.rb → web_screenshot_response.rb} +6 -6
- data/lib/context_dev/models/{brand_web_scrape_html_params.rb → web_web_scrape_html_params.rb} +2 -2
- data/lib/context_dev/models/{brand_web_scrape_html_response.rb → web_web_scrape_html_response.rb} +6 -6
- data/lib/context_dev/models/{brand_web_scrape_images_params.rb → web_web_scrape_images_params.rb} +2 -2
- data/lib/context_dev/models/{brand_web_scrape_images_response.rb → web_web_scrape_images_response.rb} +17 -17
- data/lib/context_dev/models/{brand_web_scrape_md_params.rb → web_web_scrape_md_params.rb} +3 -3
- data/lib/context_dev/models/{brand_web_scrape_md_response.rb → web_web_scrape_md_response.rb} +6 -6
- data/lib/context_dev/models/{brand_web_scrape_sitemap_params.rb → web_web_scrape_sitemap_params.rb} +3 -3
- data/lib/context_dev/models/{brand_web_scrape_sitemap_response.rb → web_web_scrape_sitemap_response.rb} +10 -10
- data/lib/context_dev/models.rb +17 -17
- data/lib/context_dev/resources/ai.rb +99 -0
- data/lib/context_dev/resources/brand.rb +0 -397
- data/lib/context_dev/resources/industry.rb +50 -0
- data/lib/context_dev/resources/style.rb +78 -0
- data/lib/context_dev/resources/utility.rb +76 -0
- data/lib/context_dev/resources/web.rb +164 -0
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +31 -26
- data/rbi/context_dev/client.rbi +15 -0
- data/rbi/context_dev/models/{brand_ai_query_params.rbi → ai_ai_query_params.rbi} +46 -46
- data/rbi/context_dev/models/{brand_ai_query_response.rbi → ai_ai_query_response.rbi} +12 -12
- data/rbi/context_dev/models/{brand_ai_product_params.rbi → ai_extract_product_params.rbi} +5 -2
- data/rbi/context_dev/models/{brand_ai_product_response.rbi → ai_extract_product_response.rbi} +40 -35
- data/rbi/context_dev/models/{brand_ai_products_params.rbi → ai_extract_products_params.rbi} +13 -13
- data/rbi/context_dev/models/{brand_ai_products_response.rbi → ai_extract_products_response.rbi} +26 -26
- data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_params.rbi +15 -0
- data/rbi/context_dev/models/{brand_retrieve_naics_params.rbi → industry_retrieve_naics_params.rbi} +2 -2
- data/rbi/context_dev/models/{brand_retrieve_naics_response.rbi → industry_retrieve_naics_response.rbi} +15 -15
- data/rbi/context_dev/models/{brand_fonts_params.rbi → style_extract_fonts_params.rbi} +5 -2
- data/rbi/context_dev/models/{brand_fonts_response.rbi → style_extract_fonts_response.rbi} +12 -6
- data/rbi/context_dev/models/{brand_styleguide_params.rbi → style_extract_styleguide_params.rbi} +15 -10
- data/rbi/context_dev/models/{brand_styleguide_response.rbi → style_extract_styleguide_response.rbi} +98 -95
- data/rbi/context_dev/models/{brand_prefetch_by_email_params.rbi → utility_prefetch_by_email_params.rbi} +2 -2
- data/rbi/context_dev/models/{brand_prefetch_by_email_response.rbi → utility_prefetch_by_email_response.rbi} +2 -2
- data/rbi/context_dev/models/{brand_prefetch_params.rbi → utility_prefetch_params.rbi} +5 -2
- data/rbi/context_dev/models/{brand_prefetch_response.rbi → utility_prefetch_response.rbi} +2 -2
- data/rbi/context_dev/models/{brand_screenshot_params.rbi → web_screenshot_params.rbi} +32 -42
- data/rbi/context_dev/models/{brand_screenshot_response.rbi → web_screenshot_response.rbi} +10 -10
- data/rbi/context_dev/models/{brand_web_scrape_html_params.rbi → web_web_scrape_html_params.rbi} +2 -2
- data/rbi/context_dev/models/{brand_web_scrape_html_response.rbi → web_web_scrape_html_response.rbi} +8 -8
- data/rbi/context_dev/models/{brand_web_scrape_images_params.rbi → web_web_scrape_images_params.rbi} +2 -2
- data/rbi/context_dev/models/{brand_web_scrape_images_response.rbi → web_web_scrape_images_response.rbi} +30 -32
- data/rbi/context_dev/models/{brand_web_scrape_md_params.rbi → web_web_scrape_md_params.rbi} +2 -5
- data/rbi/context_dev/models/{brand_web_scrape_md_response.rbi → web_web_scrape_md_response.rbi} +8 -8
- data/rbi/context_dev/models/{brand_web_scrape_sitemap_params.rbi → web_web_scrape_sitemap_params.rbi} +2 -2
- data/rbi/context_dev/models/{brand_web_scrape_sitemap_response.rbi → web_web_scrape_sitemap_response.rbi} +13 -13
- data/rbi/context_dev/models.rbi +19 -17
- data/rbi/context_dev/resources/ai.rbi +76 -0
- data/rbi/context_dev/resources/brand.rbi +0 -303
- data/rbi/context_dev/resources/industry.rbi +40 -0
- data/rbi/context_dev/resources/style.rbi +67 -0
- data/rbi/context_dev/resources/utility.rbi +60 -0
- data/rbi/context_dev/resources/web.rbi +121 -0
- data/sig/context_dev/client.rbs +10 -0
- data/sig/context_dev/models/{brand_ai_query_params.rbs → ai_ai_query_params.rbs} +31 -31
- data/sig/context_dev/models/{brand_ai_query_response.rbs → ai_ai_query_response.rbs} +15 -15
- data/sig/context_dev/models/{brand_ai_product_params.rbs → ai_extract_product_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_ai_product_response.rbs → ai_extract_product_response.rbs} +21 -21
- data/sig/context_dev/models/{brand_ai_products_params.rbs → ai_extract_products_params.rbs} +9 -9
- data/sig/context_dev/models/{brand_ai_products_response.rbs → ai_extract_products_response.rbs} +18 -18
- data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +6 -0
- data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +6 -0
- data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +6 -0
- data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +6 -0
- data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +6 -0
- data/sig/context_dev/models/brand_retrieve_params.rbs +6 -0
- data/sig/context_dev/models/{brand_retrieve_naics_params.rbs → industry_retrieve_naics_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_retrieve_naics_response.rbs → industry_retrieve_naics_response.rbs} +13 -13
- data/sig/context_dev/models/{brand_fonts_params.rbs → style_extract_fonts_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_fonts_response.rbs → style_extract_fonts_response.rbs} +6 -6
- data/sig/context_dev/models/{brand_styleguide_params.rbs → style_extract_styleguide_params.rbs} +9 -9
- data/sig/context_dev/models/{brand_styleguide_response.rbs → style_extract_styleguide_response.rbs} +111 -111
- data/sig/context_dev/models/{brand_prefetch_by_email_params.rbs → utility_prefetch_by_email_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_prefetch_by_email_response.rbs → utility_prefetch_by_email_response.rbs} +2 -2
- data/sig/context_dev/models/{brand_prefetch_params.rbs → utility_prefetch_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_prefetch_response.rbs → utility_prefetch_response.rbs} +2 -2
- data/sig/context_dev/models/web_screenshot_params.rbs +100 -0
- data/sig/context_dev/models/{brand_screenshot_response.rbs → web_screenshot_response.rbs} +9 -9
- data/sig/context_dev/models/{brand_web_scrape_images_params.rbs → web_web_scrape_html_params.rbs} +2 -2
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +40 -0
- data/sig/context_dev/models/{brand_web_scrape_html_params.rbs → web_web_scrape_images_params.rbs} +2 -2
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +98 -0
- data/sig/context_dev/models/{brand_web_scrape_md_params.rbs → web_web_scrape_md_params.rbs} +2 -2
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +40 -0
- data/sig/context_dev/models/{brand_web_scrape_sitemap_params.rbs → web_web_scrape_sitemap_params.rbs} +2 -2
- data/sig/context_dev/models/{brand_web_scrape_sitemap_response.rbs → web_web_scrape_sitemap_response.rbs} +11 -11
- data/sig/context_dev/models.rbs +17 -17
- data/sig/context_dev/resources/ai.rbs +26 -0
- data/sig/context_dev/resources/brand.rbs +0 -84
- data/sig/context_dev/resources/industry.rbs +15 -0
- data/sig/context_dev/resources/style.rbs +21 -0
- data/sig/context_dev/resources/utility.rbs +19 -0
- data/sig/context_dev/resources/web.rbs +38 -0
- metadata +94 -79
- data/sig/context_dev/models/brand_screenshot_params.rbs +0 -100
- data/sig/context_dev/models/brand_web_scrape_html_response.rbs +0 -40
- data/sig/context_dev/models/brand_web_scrape_images_response.rbs +0 -98
- data/sig/context_dev/models/brand_web_scrape_md_response.rbs +0 -40
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ContextDev
|
|
4
|
+
module Resources
|
|
5
|
+
class Industry
|
|
6
|
+
# Endpoint to classify any brand into a 2022 NAICS code.
|
|
7
|
+
sig do
|
|
8
|
+
params(
|
|
9
|
+
input: String,
|
|
10
|
+
max_results: Integer,
|
|
11
|
+
min_results: Integer,
|
|
12
|
+
timeout_ms: Integer,
|
|
13
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
14
|
+
).returns(ContextDev::Models::IndustryRetrieveNaicsResponse)
|
|
15
|
+
end
|
|
16
|
+
def retrieve_naics(
|
|
17
|
+
# Brand domain or title to retrieve NAICS code for. If a valid domain is provided
|
|
18
|
+
# in `input`, it will be used for classification, otherwise, we will search for
|
|
19
|
+
# the brand using the provided title.
|
|
20
|
+
input:,
|
|
21
|
+
# Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults
|
|
22
|
+
# to 5.
|
|
23
|
+
max_results: nil,
|
|
24
|
+
# Minimum number of NAICS codes to return. Must be at least 1. Defaults to 1.
|
|
25
|
+
min_results: nil,
|
|
26
|
+
# Optional timeout in milliseconds for the request. If the request takes longer
|
|
27
|
+
# than this value, it will be aborted with a 408 status code. Maximum allowed
|
|
28
|
+
# value is 300000ms (5 minutes).
|
|
29
|
+
timeout_ms: nil,
|
|
30
|
+
request_options: {}
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @api private
|
|
35
|
+
sig { params(client: ContextDev::Client).returns(T.attached_class) }
|
|
36
|
+
def self.new(client:)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ContextDev
|
|
4
|
+
module Resources
|
|
5
|
+
class Style
|
|
6
|
+
# Extract font information from a brand's website including font families, usage
|
|
7
|
+
# statistics, fallbacks, and element/word counts.
|
|
8
|
+
sig do
|
|
9
|
+
params(
|
|
10
|
+
domain: String,
|
|
11
|
+
timeout_ms: Integer,
|
|
12
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
13
|
+
).returns(ContextDev::Models::StyleExtractFontsResponse)
|
|
14
|
+
end
|
|
15
|
+
def extract_fonts(
|
|
16
|
+
# Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
|
|
17
|
+
# domain will be automatically normalized and validated.
|
|
18
|
+
domain:,
|
|
19
|
+
# Optional timeout in milliseconds for the request. If the request takes longer
|
|
20
|
+
# than this value, it will be aborted with a 408 status code. Maximum allowed
|
|
21
|
+
# value is 300000ms (5 minutes).
|
|
22
|
+
timeout_ms: nil,
|
|
23
|
+
request_options: {}
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Automatically extract comprehensive design system information from a brand's
|
|
28
|
+
# website including colors, typography, spacing, shadows, and UI components.
|
|
29
|
+
# Either 'domain' or 'directUrl' must be provided as a query parameter, but not
|
|
30
|
+
# both.
|
|
31
|
+
sig do
|
|
32
|
+
params(
|
|
33
|
+
direct_url: String,
|
|
34
|
+
domain: String,
|
|
35
|
+
prioritize:
|
|
36
|
+
ContextDev::StyleExtractStyleguideParams::Prioritize::OrSymbol,
|
|
37
|
+
timeout_ms: Integer,
|
|
38
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
39
|
+
).returns(ContextDev::Models::StyleExtractStyleguideResponse)
|
|
40
|
+
end
|
|
41
|
+
def extract_styleguide(
|
|
42
|
+
# A specific URL to fetch the styleguide from directly, bypassing domain
|
|
43
|
+
# resolution (e.g., 'https://example.com/design-system').
|
|
44
|
+
direct_url: nil,
|
|
45
|
+
# Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The
|
|
46
|
+
# domain will be automatically normalized and validated.
|
|
47
|
+
domain: nil,
|
|
48
|
+
# Optional parameter to prioritize screenshot capture for styleguide extraction.
|
|
49
|
+
# If 'speed', optimizes for faster capture with basic quality. If 'quality',
|
|
50
|
+
# optimizes for higher quality with longer wait times. Defaults to 'quality' if
|
|
51
|
+
# not provided.
|
|
52
|
+
prioritize: nil,
|
|
53
|
+
# Optional timeout in milliseconds for the request. If the request takes longer
|
|
54
|
+
# than this value, it will be aborted with a 408 status code. Maximum allowed
|
|
55
|
+
# value is 300000ms (5 minutes).
|
|
56
|
+
timeout_ms: nil,
|
|
57
|
+
request_options: {}
|
|
58
|
+
)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# @api private
|
|
62
|
+
sig { params(client: ContextDev::Client).returns(T.attached_class) }
|
|
63
|
+
def self.new(client:)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ContextDev
|
|
4
|
+
module Resources
|
|
5
|
+
class Utility
|
|
6
|
+
# Signal that you may fetch brand data for a particular domain soon to improve
|
|
7
|
+
# latency. This endpoint does not charge credits and is available for paid
|
|
8
|
+
# customers to optimize future requests. [You must be on a paid plan to use this
|
|
9
|
+
# endpoint]
|
|
10
|
+
sig do
|
|
11
|
+
params(
|
|
12
|
+
domain: String,
|
|
13
|
+
timeout_ms: Integer,
|
|
14
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
15
|
+
).returns(ContextDev::Models::UtilityPrefetchResponse)
|
|
16
|
+
end
|
|
17
|
+
def prefetch(
|
|
18
|
+
# Domain name to prefetch brand data for
|
|
19
|
+
domain:,
|
|
20
|
+
# Optional timeout in milliseconds for the request. If the request takes longer
|
|
21
|
+
# than this value, it will be aborted with a 408 status code. Maximum allowed
|
|
22
|
+
# value is 300000ms (5 minutes).
|
|
23
|
+
timeout_ms: nil,
|
|
24
|
+
request_options: {}
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Signal that you may fetch brand data for a particular domain soon to improve
|
|
29
|
+
# latency. This endpoint accepts an email address, extracts the domain from it,
|
|
30
|
+
# validates that it's not a disposable or free email provider, and queues the
|
|
31
|
+
# domain for prefetching. This endpoint does not charge credits and is available
|
|
32
|
+
# for paid customers to optimize future requests. [You must be on a paid plan to
|
|
33
|
+
# use this endpoint]
|
|
34
|
+
sig do
|
|
35
|
+
params(
|
|
36
|
+
email: String,
|
|
37
|
+
timeout_ms: Integer,
|
|
38
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
39
|
+
).returns(ContextDev::Models::UtilityPrefetchByEmailResponse)
|
|
40
|
+
end
|
|
41
|
+
def prefetch_by_email(
|
|
42
|
+
# Email address to prefetch brand data for. The domain will be extracted from the
|
|
43
|
+
# email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email
|
|
44
|
+
# addresses are not allowed.
|
|
45
|
+
email:,
|
|
46
|
+
# Optional timeout in milliseconds for the request. If the request takes longer
|
|
47
|
+
# than this value, it will be aborted with a 408 status code. Maximum allowed
|
|
48
|
+
# value is 300000ms (5 minutes).
|
|
49
|
+
timeout_ms: nil,
|
|
50
|
+
request_options: {}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# @api private
|
|
55
|
+
sig { params(client: ContextDev::Client).returns(T.attached_class) }
|
|
56
|
+
def self.new(client:)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ContextDev
|
|
4
|
+
module Resources
|
|
5
|
+
class Web
|
|
6
|
+
# Capture a screenshot of a website. Supports both viewport (standard browser
|
|
7
|
+
# view) and full-page screenshots. Can also screenshot specific page types (login,
|
|
8
|
+
# pricing, etc.) by using heuristics to find the appropriate URL. Returns a URL to
|
|
9
|
+
# the uploaded screenshot image hosted on our CDN.
|
|
10
|
+
sig do
|
|
11
|
+
params(
|
|
12
|
+
domain: String,
|
|
13
|
+
full_screenshot:
|
|
14
|
+
ContextDev::WebScreenshotParams::FullScreenshot::OrSymbol,
|
|
15
|
+
page: ContextDev::WebScreenshotParams::Page::OrSymbol,
|
|
16
|
+
prioritize: ContextDev::WebScreenshotParams::Prioritize::OrSymbol,
|
|
17
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
18
|
+
).returns(ContextDev::Models::WebScreenshotResponse)
|
|
19
|
+
end
|
|
20
|
+
def screenshot(
|
|
21
|
+
# Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The
|
|
22
|
+
# domain will be automatically normalized and validated.
|
|
23
|
+
domain:,
|
|
24
|
+
# Optional parameter to determine screenshot type. If 'true', takes a full page
|
|
25
|
+
# screenshot capturing all content. If 'false' or not provided, takes a viewport
|
|
26
|
+
# screenshot (standard browser view).
|
|
27
|
+
full_screenshot: nil,
|
|
28
|
+
# Optional parameter to specify which page type to screenshot. If provided, the
|
|
29
|
+
# system will scrape the domain's links and use heuristics to find the most
|
|
30
|
+
# appropriate URL for the specified page type (30 supported languages). If not
|
|
31
|
+
# provided, screenshots the main domain landing page.
|
|
32
|
+
page: nil,
|
|
33
|
+
# Optional parameter to prioritize screenshot capture. If 'speed', optimizes for
|
|
34
|
+
# faster capture with basic quality. If 'quality', optimizes for higher quality
|
|
35
|
+
# with longer wait times. Defaults to 'quality' if not provided.
|
|
36
|
+
prioritize: nil,
|
|
37
|
+
request_options: {}
|
|
38
|
+
)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Scrapes the given URL and returns the raw HTML content of the page. Uses
|
|
42
|
+
# automatic proxy escalation to handle blocked sites.
|
|
43
|
+
sig do
|
|
44
|
+
params(
|
|
45
|
+
url: String,
|
|
46
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
47
|
+
).returns(ContextDev::Models::WebWebScrapeHTMLResponse)
|
|
48
|
+
end
|
|
49
|
+
def web_scrape_html(
|
|
50
|
+
# Full URL to scrape (must include http:// or https:// protocol)
|
|
51
|
+
url:,
|
|
52
|
+
request_options: {}
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Scrapes all images from the given URL. Extracts images from img, svg,
|
|
57
|
+
# picture/source, link, and video elements including inline SVGs, base64 data
|
|
58
|
+
# URIs, and standard URLs.
|
|
59
|
+
sig do
|
|
60
|
+
params(
|
|
61
|
+
url: String,
|
|
62
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
63
|
+
).returns(ContextDev::Models::WebWebScrapeImagesResponse)
|
|
64
|
+
end
|
|
65
|
+
def web_scrape_images(
|
|
66
|
+
# Full URL to scrape images from (must include http:// or https:// protocol)
|
|
67
|
+
url:,
|
|
68
|
+
request_options: {}
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
|
|
73
|
+
# (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
|
|
74
|
+
# sites.
|
|
75
|
+
sig do
|
|
76
|
+
params(
|
|
77
|
+
url: String,
|
|
78
|
+
include_images: T::Boolean,
|
|
79
|
+
include_links: T::Boolean,
|
|
80
|
+
shorten_base64_images: T::Boolean,
|
|
81
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
82
|
+
).returns(ContextDev::Models::WebWebScrapeMdResponse)
|
|
83
|
+
end
|
|
84
|
+
def web_scrape_md(
|
|
85
|
+
# Full URL to scrape and convert to markdown (must include http:// or https://
|
|
86
|
+
# protocol)
|
|
87
|
+
url:,
|
|
88
|
+
# Include image references in Markdown output
|
|
89
|
+
include_images: nil,
|
|
90
|
+
# Preserve hyperlinks in Markdown output
|
|
91
|
+
include_links: nil,
|
|
92
|
+
# Shorten base64-encoded image data in the Markdown output
|
|
93
|
+
shorten_base64_images: nil,
|
|
94
|
+
request_options: {}
|
|
95
|
+
)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Crawls the sitemap of the given domain and returns all discovered page URLs.
|
|
99
|
+
# Supports sitemap index files (recursive), parallel fetching with concurrency
|
|
100
|
+
# control, deduplication, and filters out non-page resources (images, PDFs, etc.).
|
|
101
|
+
sig do
|
|
102
|
+
params(
|
|
103
|
+
domain: String,
|
|
104
|
+
request_options: ContextDev::RequestOptions::OrHash
|
|
105
|
+
).returns(ContextDev::Models::WebWebScrapeSitemapResponse)
|
|
106
|
+
end
|
|
107
|
+
def web_scrape_sitemap(
|
|
108
|
+
# Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be
|
|
109
|
+
# automatically normalized and validated.
|
|
110
|
+
domain:,
|
|
111
|
+
request_options: {}
|
|
112
|
+
)
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
# @api private
|
|
116
|
+
sig { params(client: ContextDev::Client).returns(T.attached_class) }
|
|
117
|
+
def self.new(client:)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
data/sig/context_dev/client.rbs
CHANGED
|
@@ -10,8 +10,18 @@ module ContextDev
|
|
|
10
10
|
|
|
11
11
|
attr_reader api_key: String
|
|
12
12
|
|
|
13
|
+
attr_reader web: ContextDev::Resources::Web
|
|
14
|
+
|
|
15
|
+
attr_reader ai: ContextDev::Resources::AI
|
|
16
|
+
|
|
17
|
+
attr_reader style: ContextDev::Resources::Style
|
|
18
|
+
|
|
13
19
|
attr_reader brand: ContextDev::Resources::Brand
|
|
14
20
|
|
|
21
|
+
attr_reader industry: ContextDev::Resources::Industry
|
|
22
|
+
|
|
23
|
+
attr_reader utility: ContextDev::Resources::Utility
|
|
24
|
+
|
|
15
25
|
private def auth_headers: -> ::Hash[String, String]
|
|
16
26
|
|
|
17
27
|
def initialize: (
|
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
module ContextDev
|
|
2
2
|
module Models
|
|
3
|
-
type
|
|
3
|
+
type aiai_query_params =
|
|
4
4
|
{
|
|
5
|
-
data_to_extract: ::Array[ContextDev::
|
|
5
|
+
data_to_extract: ::Array[ContextDev::AIAIQueryParams::DataToExtract],
|
|
6
6
|
domain: String,
|
|
7
|
-
specific_pages: ContextDev::
|
|
7
|
+
specific_pages: ContextDev::AIAIQueryParams::SpecificPages,
|
|
8
8
|
timeout_ms: Integer
|
|
9
9
|
}
|
|
10
10
|
& ContextDev::Internal::Type::request_parameters
|
|
11
11
|
|
|
12
|
-
class
|
|
12
|
+
class AIAIQueryParams < ContextDev::Internal::Type::BaseModel
|
|
13
13
|
extend ContextDev::Internal::Type::RequestParameters::Converter
|
|
14
14
|
include ContextDev::Internal::Type::RequestParameters
|
|
15
15
|
|
|
16
|
-
attr_accessor data_to_extract: ::Array[ContextDev::
|
|
16
|
+
attr_accessor data_to_extract: ::Array[ContextDev::AIAIQueryParams::DataToExtract]
|
|
17
17
|
|
|
18
18
|
attr_accessor domain: String
|
|
19
19
|
|
|
20
|
-
attr_reader specific_pages: ContextDev::
|
|
20
|
+
attr_reader specific_pages: ContextDev::AIAIQueryParams::SpecificPages?
|
|
21
21
|
|
|
22
22
|
def specific_pages=: (
|
|
23
|
-
ContextDev::
|
|
24
|
-
) -> ContextDev::
|
|
23
|
+
ContextDev::AIAIQueryParams::SpecificPages
|
|
24
|
+
) -> ContextDev::AIAIQueryParams::SpecificPages
|
|
25
25
|
|
|
26
26
|
attr_reader timeout_ms: Integer?
|
|
27
27
|
|
|
28
28
|
def timeout_ms=: (Integer) -> Integer
|
|
29
29
|
|
|
30
30
|
def initialize: (
|
|
31
|
-
data_to_extract: ::Array[ContextDev::
|
|
31
|
+
data_to_extract: ::Array[ContextDev::AIAIQueryParams::DataToExtract],
|
|
32
32
|
domain: String,
|
|
33
|
-
?specific_pages: ContextDev::
|
|
33
|
+
?specific_pages: ContextDev::AIAIQueryParams::SpecificPages,
|
|
34
34
|
?timeout_ms: Integer,
|
|
35
35
|
?request_options: ContextDev::request_opts
|
|
36
36
|
) -> void
|
|
37
37
|
|
|
38
38
|
def to_hash: -> {
|
|
39
|
-
data_to_extract: ::Array[ContextDev::
|
|
39
|
+
data_to_extract: ::Array[ContextDev::AIAIQueryParams::DataToExtract],
|
|
40
40
|
domain: String,
|
|
41
|
-
specific_pages: ContextDev::
|
|
41
|
+
specific_pages: ContextDev::AIAIQueryParams::SpecificPages,
|
|
42
42
|
timeout_ms: Integer,
|
|
43
43
|
request_options: ContextDev::RequestOptions
|
|
44
44
|
}
|
|
@@ -48,9 +48,9 @@ module ContextDev
|
|
|
48
48
|
datapoint_description: String,
|
|
49
49
|
datapoint_example: String,
|
|
50
50
|
datapoint_name: String,
|
|
51
|
-
datapoint_type: ContextDev::Models::
|
|
52
|
-
datapoint_list_type: ContextDev::Models::
|
|
53
|
-
datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::
|
|
51
|
+
datapoint_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_type,
|
|
52
|
+
datapoint_list_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type,
|
|
53
|
+
datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
class DataToExtract < ContextDev::Internal::Type::BaseModel
|
|
@@ -60,36 +60,36 @@ module ContextDev
|
|
|
60
60
|
|
|
61
61
|
attr_accessor datapoint_name: String
|
|
62
62
|
|
|
63
|
-
attr_accessor datapoint_type: ContextDev::Models::
|
|
63
|
+
attr_accessor datapoint_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_type
|
|
64
64
|
|
|
65
|
-
attr_reader datapoint_list_type: ContextDev::Models::
|
|
65
|
+
attr_reader datapoint_list_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type?
|
|
66
66
|
|
|
67
67
|
def datapoint_list_type=: (
|
|
68
|
-
ContextDev::Models::
|
|
69
|
-
) -> ContextDev::Models::
|
|
68
|
+
ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type
|
|
69
|
+
) -> ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type
|
|
70
70
|
|
|
71
|
-
attr_reader datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::
|
|
71
|
+
attr_reader datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]?
|
|
72
72
|
|
|
73
73
|
def datapoint_object_schema=: (
|
|
74
|
-
::Hash[Symbol, ContextDev::Models::
|
|
75
|
-
) -> ::Hash[Symbol, ContextDev::Models::
|
|
74
|
+
::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
75
|
+
) -> ::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
76
76
|
|
|
77
77
|
def initialize: (
|
|
78
78
|
datapoint_description: String,
|
|
79
79
|
datapoint_example: String,
|
|
80
80
|
datapoint_name: String,
|
|
81
|
-
datapoint_type: ContextDev::Models::
|
|
82
|
-
?datapoint_list_type: ContextDev::Models::
|
|
83
|
-
?datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::
|
|
81
|
+
datapoint_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_type,
|
|
82
|
+
?datapoint_list_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type,
|
|
83
|
+
?datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
84
84
|
) -> void
|
|
85
85
|
|
|
86
86
|
def to_hash: -> {
|
|
87
87
|
datapoint_description: String,
|
|
88
88
|
datapoint_example: String,
|
|
89
89
|
datapoint_name: String,
|
|
90
|
-
datapoint_type: ContextDev::Models::
|
|
91
|
-
datapoint_list_type: ContextDev::Models::
|
|
92
|
-
datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::
|
|
90
|
+
datapoint_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_type,
|
|
91
|
+
datapoint_list_type: ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type,
|
|
92
|
+
datapoint_object_schema: ::Hash[Symbol, ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
type datapoint_type = :text | :number | :date | :boolean | :list | :url
|
|
@@ -104,7 +104,7 @@ module ContextDev
|
|
|
104
104
|
LIST: :list
|
|
105
105
|
URL: :url
|
|
106
106
|
|
|
107
|
-
def self?.values: -> ::Array[ContextDev::Models::
|
|
107
|
+
def self?.values: -> ::Array[ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_type]
|
|
108
108
|
end
|
|
109
109
|
|
|
110
110
|
type datapoint_list_type =
|
|
@@ -122,7 +122,7 @@ module ContextDev
|
|
|
122
122
|
URL: :url
|
|
123
123
|
OBJECT: :object
|
|
124
124
|
|
|
125
|
-
def self?.values: -> ::Array[ContextDev::Models::
|
|
125
|
+
def self?.values: -> ::Array[ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_list_type]
|
|
126
126
|
end
|
|
127
127
|
|
|
128
128
|
type datapoint_object_schema = :string | :number | :date | :boolean
|
|
@@ -135,7 +135,7 @@ module ContextDev
|
|
|
135
135
|
DATE: :date
|
|
136
136
|
BOOLEAN: :boolean
|
|
137
137
|
|
|
138
|
-
def self?.values: -> ::Array[ContextDev::Models::
|
|
138
|
+
def self?.values: -> ::Array[ContextDev::Models::AIAIQueryParams::DataToExtract::datapoint_object_schema]
|
|
139
139
|
end
|
|
140
140
|
end
|
|
141
141
|
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
module ContextDev
|
|
2
2
|
module Models
|
|
3
|
-
type
|
|
3
|
+
type aiai_query_response =
|
|
4
4
|
{
|
|
5
|
-
data_extracted: ::Array[ContextDev::Models::
|
|
5
|
+
data_extracted: ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted],
|
|
6
6
|
domain: String,
|
|
7
7
|
status: String,
|
|
8
8
|
urls_analyzed: ::Array[String]
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
class
|
|
12
|
-
attr_reader data_extracted: ::Array[ContextDev::Models::
|
|
11
|
+
class AIAIQueryResponse < ContextDev::Internal::Type::BaseModel
|
|
12
|
+
attr_reader data_extracted: ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted]?
|
|
13
13
|
|
|
14
14
|
def data_extracted=: (
|
|
15
|
-
::Array[ContextDev::Models::
|
|
16
|
-
) -> ::Array[ContextDev::Models::
|
|
15
|
+
::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted]
|
|
16
|
+
) -> ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted]
|
|
17
17
|
|
|
18
18
|
attr_reader domain: String?
|
|
19
19
|
|
|
@@ -28,14 +28,14 @@ module ContextDev
|
|
|
28
28
|
def urls_analyzed=: (::Array[String]) -> ::Array[String]
|
|
29
29
|
|
|
30
30
|
def initialize: (
|
|
31
|
-
?data_extracted: ::Array[ContextDev::Models::
|
|
31
|
+
?data_extracted: ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted],
|
|
32
32
|
?domain: String,
|
|
33
33
|
?status: String,
|
|
34
34
|
?urls_analyzed: ::Array[String]
|
|
35
35
|
) -> void
|
|
36
36
|
|
|
37
37
|
def to_hash: -> {
|
|
38
|
-
data_extracted: ::Array[ContextDev::Models::
|
|
38
|
+
data_extracted: ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted],
|
|
39
39
|
domain: String,
|
|
40
40
|
status: String,
|
|
41
41
|
urls_analyzed: ::Array[String]
|
|
@@ -44,7 +44,7 @@ module ContextDev
|
|
|
44
44
|
type data_extracted =
|
|
45
45
|
{
|
|
46
46
|
datapoint_name: String,
|
|
47
|
-
datapoint_value: ContextDev::Models::
|
|
47
|
+
datapoint_value: ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
class DataExtracted < ContextDev::Internal::Type::BaseModel
|
|
@@ -52,20 +52,20 @@ module ContextDev
|
|
|
52
52
|
|
|
53
53
|
def datapoint_name=: (String) -> String
|
|
54
54
|
|
|
55
|
-
attr_reader datapoint_value: ContextDev::Models::
|
|
55
|
+
attr_reader datapoint_value: ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value?
|
|
56
56
|
|
|
57
57
|
def datapoint_value=: (
|
|
58
|
-
ContextDev::Models::
|
|
59
|
-
) -> ContextDev::Models::
|
|
58
|
+
ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value
|
|
59
|
+
) -> ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value
|
|
60
60
|
|
|
61
61
|
def initialize: (
|
|
62
62
|
?datapoint_name: String,
|
|
63
|
-
?datapoint_value: ContextDev::Models::
|
|
63
|
+
?datapoint_value: ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value
|
|
64
64
|
) -> void
|
|
65
65
|
|
|
66
66
|
def to_hash: -> {
|
|
67
67
|
datapoint_name: String,
|
|
68
|
-
datapoint_value: ContextDev::Models::
|
|
68
|
+
datapoint_value: ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
type datapoint_value =
|
|
@@ -79,7 +79,7 @@ module ContextDev
|
|
|
79
79
|
module DatapointValue
|
|
80
80
|
extend ContextDev::Internal::Type::Union
|
|
81
81
|
|
|
82
|
-
def self?.variants: -> ::Array[ContextDev::Models::
|
|
82
|
+
def self?.variants: -> ::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted::datapoint_value]
|
|
83
83
|
|
|
84
84
|
StringArray: ContextDev::Internal::Type::Converter
|
|
85
85
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
module ContextDev
|
|
2
2
|
module Models
|
|
3
|
-
type
|
|
3
|
+
type ai_extract_product_params =
|
|
4
4
|
{ url: String, timeout_ms: Integer }
|
|
5
5
|
& ContextDev::Internal::Type::request_parameters
|
|
6
6
|
|
|
7
|
-
class
|
|
7
|
+
class AIExtractProductParams < ContextDev::Internal::Type::BaseModel
|
|
8
8
|
extend ContextDev::Internal::Type::RequestParameters::Converter
|
|
9
9
|
include ContextDev::Internal::Type::RequestParameters
|
|
10
10
|
|