diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 3e9af1b3..fbd9082d 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.4.0" + ".": "1.5.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 998ed687..6d316e10 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 21 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-5ee7a321f8e01d2678d56277f011f71294c2b8ac4d0cff0bda412362c0d9cf73.yml -openapi_spec_hash: bf5d57e3bddb6975770cf85c267b5035 -config_hash: 682b89b02a20f5d1c13e2c91ecbcf5ce +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev%2Fcontext.dev-5afee68d7308a77a9ef51fb53917080746f96327c6d745fc029363a7d1494c3c.yml +openapi_spec_hash: b2e32bb58d92a00f6ede04c4f7bf1a34 +config_hash: 7d13dca2b2c6f71fc463cb6062efa5ea diff --git a/CHANGELOG.md b/CHANGELOG.md index 84598849..c62d748b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Changelog +## 1.5.0 (2026-04-19) + +Full Changelog: [v1.4.0...v1.5.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v1.4.0...v1.5.0) + +### Features + +* **api:** api update ([30ef99f](https://github.com/context-dot-dev/context-ruby-sdk/commit/30ef99f9a0d61f6528aed16b080f376753b3447a)) +* **api:** api update ([c9851eb](https://github.com/context-dot-dev/context-ruby-sdk/commit/c9851ebc0618d7433ed88f7062902fcec575b229)) +* **api:** api update ([55529f6](https://github.com/context-dot-dev/context-ruby-sdk/commit/55529f63e23cf255645bdb2d0420bf24aaba28b1)) +* **api:** api update ([51320a5](https://github.com/context-dot-dev/context-ruby-sdk/commit/51320a5677298ab231dc417ef3c54d6a75e640ba)) +* **api:** api update ([5a69904](https://github.com/context-dot-dev/context-ruby-sdk/commit/5a69904d89cc873614e8320308eecac9304992d2)) +* **api:** api update ([7d186fa](https://github.com/context-dot-dev/context-ruby-sdk/commit/7d186faf849e20bcd958beb5f46b71f6440b8358)) +* **api:** api update ([2d439b9](https://github.com/context-dot-dev/context-ruby-sdk/commit/2d439b9814f0e3be9efead3d2e70e3e5d7e3a1f0)) +* **api:** api update ([8b33b1e](https://github.com/context-dot-dev/context-ruby-sdk/commit/8b33b1ee26acc8314d9c285ea53e3531ba390a16)) +* **api:** api update ([7b5ddec](https://github.com/context-dot-dev/context-ruby-sdk/commit/7b5ddec0b8e306df34a72ccd39e8d731168a62ea)) +* **api:** api update ([b09024f](https://github.com/context-dot-dev/context-ruby-sdk/commit/b09024fa19c7aecafaf4fe4bd211bfc3738484ed)) +* **api:** api update ([4e74fe3](https://github.com/context-dot-dev/context-ruby-sdk/commit/4e74fe3f395778efb1ca3f1e752f2f71e21a3191)) +* **api:** manual updates ([f451afe](https://github.com/context-dot-dev/context-ruby-sdk/commit/f451afea50625bba49a808a4b193c451c7019571)) +* **api:** manual updates ([11ea49f](https://github.com/context-dot-dev/context-ruby-sdk/commit/11ea49fac95ca680db1f9880b8b8590aa650b00a)) +* **api:** manual updates ([739b99f](https://github.com/context-dot-dev/context-ruby-sdk/commit/739b99fddcd745960b3cf390cc9bff4220941ee8)) +* **api:** manual updates ([d32eb69](https://github.com/context-dot-dev/context-ruby-sdk/commit/d32eb69f2bafb655156587bfb2daa659dcc3b731)) + ## 1.4.0 (2026-04-09) Full Changelog: [v1.3.0...v1.4.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v1.3.0...v1.4.0) diff --git a/Gemfile.lock b/Gemfile.lock index b5778922..e4709ebe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - context.dev (1.4.0) + context.dev (1.5.0) cgi connection_pool diff --git a/README.md b/README.md index bf456143..0eea9ec9 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "context.dev", "~> 1.4.0" +gem "context.dev", "~> 1.5.0" ``` diff --git a/lib/context_dev.rb b/lib/context_dev.rb index 3358e6ee..6d616a84 100644 --- a/lib/context_dev.rb +++ b/lib/context_dev.rb @@ -74,14 +74,14 @@ require_relative "context_dev/models/brand_retrieve_simplified_response" require_relative "context_dev/models/industry_retrieve_naics_params" require_relative "context_dev/models/industry_retrieve_naics_response" -require_relative "context_dev/models/style_extract_fonts_params" -require_relative "context_dev/models/style_extract_fonts_response" -require_relative "context_dev/models/style_extract_styleguide_params" -require_relative "context_dev/models/style_extract_styleguide_response" require_relative "context_dev/models/utility_prefetch_by_email_params" require_relative "context_dev/models/utility_prefetch_by_email_response" require_relative "context_dev/models/utility_prefetch_params" require_relative "context_dev/models/utility_prefetch_response" +require_relative "context_dev/models/web_extract_fonts_params" +require_relative "context_dev/models/web_extract_fonts_response" +require_relative "context_dev/models/web_extract_styleguide_params" +require_relative "context_dev/models/web_extract_styleguide_response" require_relative "context_dev/models/web_screenshot_params" require_relative "context_dev/models/web_screenshot_response" require_relative "context_dev/models/web_web_crawl_md_params" @@ -98,6 +98,5 @@ require_relative "context_dev/resources/ai" require_relative "context_dev/resources/brand" require_relative "context_dev/resources/industry" -require_relative "context_dev/resources/style" require_relative "context_dev/resources/utility" require_relative "context_dev/resources/web" diff --git a/lib/context_dev/client.rb b/lib/context_dev/client.rb index 5015189f..b16831f8 100644 --- a/lib/context_dev/client.rb +++ b/lib/context_dev/client.rb @@ -24,9 +24,6 @@ class Client < ContextDev::Internal::Transport::BaseClient # @return [ContextDev::Resources::AI] attr_reader :ai - # @return [ContextDev::Resources::Style] - attr_reader :style - # @return [ContextDev::Resources::Brand] attr_reader :brand @@ -85,7 +82,6 @@ def initialize( @web = ContextDev::Resources::Web.new(client: self) @ai = ContextDev::Resources::AI.new(client: self) - @style = ContextDev::Resources::Style.new(client: self) @brand = ContextDev::Resources::Brand.new(client: self) @industry = ContextDev::Resources::Industry.new(client: self) @utility = ContextDev::Resources::Utility.new(client: self) diff --git a/lib/context_dev/internal/type/base_model.rb b/lib/context_dev/internal/type/base_model.rb index 179eff15..41f5ee16 100644 --- a/lib/context_dev/internal/type/base_model.rb +++ b/lib/context_dev/internal/type/base_model.rb @@ -438,11 +438,11 @@ def deep_to_h = self.class.recursively_to_h(@data, convert: false) # @return [Hash{Symbol=>Object}] # # @example - # # `web_screenshot_response` is a `ContextDev::Models::WebScreenshotResponse` - # web_screenshot_response => { + # # `web_extract_fonts_response` is a `ContextDev::Models::WebExtractFontsResponse` + # web_extract_fonts_response => { # code: code, # domain: domain, - # screenshot: screenshot + # fonts: fonts # } def deconstruct_keys(keys) (keys || self.class.known_fields.keys) diff --git a/lib/context_dev/models.rb b/lib/context_dev/models.rb index 9be91f2b..9049afe5 100644 --- a/lib/context_dev/models.rb +++ b/lib/context_dev/models.rb @@ -61,14 +61,14 @@ module ContextDev IndustryRetrieveNaicsParams = ContextDev::Models::IndustryRetrieveNaicsParams - StyleExtractFontsParams = ContextDev::Models::StyleExtractFontsParams - - StyleExtractStyleguideParams = ContextDev::Models::StyleExtractStyleguideParams - UtilityPrefetchByEmailParams = ContextDev::Models::UtilityPrefetchByEmailParams UtilityPrefetchParams = ContextDev::Models::UtilityPrefetchParams + WebExtractFontsParams = ContextDev::Models::WebExtractFontsParams + + WebExtractStyleguideParams = ContextDev::Models::WebExtractStyleguideParams + WebScreenshotParams = ContextDev::Models::WebScreenshotParams WebWebCrawlMdParams = ContextDev::Models::WebWebCrawlMdParams diff --git a/lib/context_dev/models/brand_identify_from_transaction_params.rb b/lib/context_dev/models/brand_identify_from_transaction_params.rb index 00564f74..71657bb8 100644 --- a/lib/context_dev/models/brand_identify_from_transaction_params.rb +++ b/lib/context_dev/models/brand_identify_from_transaction_params.rb @@ -35,7 +35,6 @@ class BrandIdentifyFromTransactionParams < ContextDev::Internal::Type::BaseModel # @!attribute high_confidence_only # When set to true, the API will perform an additional verification steps to # ensure the identified brand matches the transaction with high confidence. - # Defaults to false. # # @return [Boolean, nil] optional :high_confidence_only, ContextDev::Internal::Type::Boolean diff --git a/lib/context_dev/models/brand_retrieve_by_name_params.rb b/lib/context_dev/models/brand_retrieve_by_name_params.rb index e4c8b269..d8eb14fa 100644 --- a/lib/context_dev/models/brand_retrieve_by_name_params.rb +++ b/lib/context_dev/models/brand_retrieve_by_name_params.rb @@ -15,8 +15,8 @@ class BrandRetrieveByNameParams < ContextDev::Internal::Type::BaseModel required :name, String # @!attribute country_gl - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. # # @return [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl, nil] optional :country_gl, enum: -> { ContextDev::BrandRetrieveByNameParams::CountryGl } @@ -49,7 +49,7 @@ class BrandRetrieveByNameParams < ContextDev::Internal::Type::BaseModel # # @param name [String] Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporati # - # @param country_gl [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl] Optional country code (GL parameter) to specify the country. This affects the ge + # @param country_gl [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl] Optional country code hint (GL parameter) to specify the country for the company # # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByNameParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data. # @@ -59,8 +59,8 @@ class BrandRetrieveByNameParams < ContextDev::Internal::Type::BaseModel # # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}] - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. module CountryGl extend ContextDev::Internal::Type::Enum diff --git a/lib/context_dev/models/industry_retrieve_naics_params.rb b/lib/context_dev/models/industry_retrieve_naics_params.rb index 4863d92c..3738a90c 100644 --- a/lib/context_dev/models/industry_retrieve_naics_params.rb +++ b/lib/context_dev/models/industry_retrieve_naics_params.rb @@ -8,9 +8,9 @@ class IndustryRetrieveNaicsParams < ContextDev::Internal::Type::BaseModel include ContextDev::Internal::Type::RequestParameters # @!attribute input - # Brand domain or title to retrieve NAICS code for. If a valid domain is provided - # in `input`, it will be used for classification, otherwise, we will search for - # the brand using the provided title. + # Brand domain or title to retrieve NAICS code for. If a valid domain is provided, + # it will be used for classification, otherwise, we will search for the brand + # using the provided title. # # @return [String] required :input, String @@ -40,7 +40,7 @@ class IndustryRetrieveNaicsParams < ContextDev::Internal::Type::BaseModel # Some parameter documentations has been truncated, see # {ContextDev::Models::IndustryRetrieveNaicsParams} for more details. # - # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided + # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided, # # @param max_results [Integer] Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults to 5 # diff --git a/lib/context_dev/models/style_extract_fonts_params.rb b/lib/context_dev/models/web_extract_fonts_params.rb similarity index 54% rename from lib/context_dev/models/style_extract_fonts_params.rb rename to lib/context_dev/models/web_extract_fonts_params.rb index a38e4d4a..7a7a23d9 100644 --- a/lib/context_dev/models/style_extract_fonts_params.rb +++ b/lib/context_dev/models/web_extract_fonts_params.rb @@ -2,17 +2,26 @@ module ContextDev module Models - # @see ContextDev::Resources::Style#extract_fonts - class StyleExtractFontsParams < ContextDev::Internal::Type::BaseModel + # @see ContextDev::Resources::Web#extract_fonts + class WebExtractFontsParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters + # @!attribute direct_url + # A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., + # 'https://example.com/design-system'). When provided, fonts are extracted from + # this exact URL. You must provide either 'domain' or 'directUrl', but not both. + # + # @return [String, nil] + optional :direct_url, String + # @!attribute domain # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. # - # @return [String] - required :domain, String + # @return [String, nil] + optional :domain, String # @!attribute timeout_ms # Optional timeout in milliseconds for the request. If the request takes longer @@ -22,9 +31,11 @@ class StyleExtractFontsParams < ContextDev::Internal::Type::BaseModel # @return [Integer, nil] optional :timeout_ms, Integer - # @!method initialize(domain:, timeout_ms: nil, request_options: {}) + # @!method initialize(direct_url: nil, domain: nil, timeout_ms: nil, request_options: {}) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractFontsParams} for more details. + # {ContextDev::Models::WebExtractFontsParams} for more details. + # + # @param direct_url [String] A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., # # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai # diff --git a/lib/context_dev/models/style_extract_fonts_response.rb b/lib/context_dev/models/web_extract_fonts_response.rb similarity index 88% rename from lib/context_dev/models/style_extract_fonts_response.rb rename to lib/context_dev/models/web_extract_fonts_response.rb index 8c71a3cb..0eb7b990 100644 --- a/lib/context_dev/models/style_extract_fonts_response.rb +++ b/lib/context_dev/models/web_extract_fonts_response.rb @@ -2,8 +2,8 @@ module ContextDev module Models - # @see ContextDev::Resources::Style#extract_fonts - class StyleExtractFontsResponse < ContextDev::Internal::Type::BaseModel + # @see ContextDev::Resources::Web#extract_fonts + class WebExtractFontsResponse < ContextDev::Internal::Type::BaseModel # @!attribute code # HTTP status code, e.g., 200 # @@ -19,9 +19,9 @@ class StyleExtractFontsResponse < ContextDev::Internal::Type::BaseModel # @!attribute fonts # Array of font usage information # - # @return [Array] + # @return [Array] required :fonts, - -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::StyleExtractFontsResponse::Font] } + -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebExtractFontsResponse::Font] } # @!attribute status # Status of the response, e.g., 'ok' @@ -34,7 +34,7 @@ class StyleExtractFontsResponse < ContextDev::Internal::Type::BaseModel # # @param domain [String] The normalized domain that was processed # - # @param fonts [Array] Array of font usage information + # @param fonts [Array] Array of font usage information # # @param status [String] Status of the response, e.g., 'ok' diff --git a/lib/context_dev/models/style_extract_styleguide_params.rb b/lib/context_dev/models/web_extract_styleguide_params.rb similarity index 79% rename from lib/context_dev/models/style_extract_styleguide_params.rb rename to lib/context_dev/models/web_extract_styleguide_params.rb index ec82e7ef..d11adaed 100644 --- a/lib/context_dev/models/style_extract_styleguide_params.rb +++ b/lib/context_dev/models/web_extract_styleguide_params.rb @@ -2,21 +2,24 @@ module ContextDev module Models - # @see ContextDev::Resources::Style#extract_styleguide - class StyleExtractStyleguideParams < ContextDev::Internal::Type::BaseModel + # @see ContextDev::Resources::Web#extract_styleguide + class WebExtractStyleguideParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters # @!attribute direct_url # A specific URL to fetch the styleguide from directly, bypassing domain - # resolution (e.g., 'https://example.com/design-system'). + # resolution (e.g., 'https://example.com/design-system'). When provided, the + # styleguide is extracted from this exact URL. You must provide either 'domain' or + # 'directUrl', but not both. # # @return [String, nil] optional :direct_url, String # @!attribute domain # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. # # @return [String, nil] optional :domain, String @@ -31,7 +34,7 @@ class StyleExtractStyleguideParams < ContextDev::Internal::Type::BaseModel # @!method initialize(direct_url: nil, domain: nil, timeout_ms: nil, request_options: {}) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideParams} for more details. + # {ContextDev::Models::WebExtractStyleguideParams} for more details. # # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio # diff --git a/lib/context_dev/models/style_extract_styleguide_response.rb b/lib/context_dev/models/web_extract_styleguide_response.rb similarity index 74% rename from lib/context_dev/models/style_extract_styleguide_response.rb rename to lib/context_dev/models/web_extract_styleguide_response.rb index 72ef6390..1752746b 100644 --- a/lib/context_dev/models/style_extract_styleguide_response.rb +++ b/lib/context_dev/models/web_extract_styleguide_response.rb @@ -2,8 +2,8 @@ module ContextDev module Models - # @see ContextDev::Resources::Style#extract_styleguide - class StyleExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel + # @see ContextDev::Resources::Web#extract_styleguide + class WebExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel # @!attribute code # HTTP status code # @@ -25,8 +25,8 @@ class StyleExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel # @!attribute styleguide # Comprehensive styleguide data extracted from the website # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide, nil] - optional :styleguide, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide, nil] + optional :styleguide, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide } # @!method initialize(code: nil, domain: nil, status: nil, styleguide: nil) # @param code [Integer] HTTP status code @@ -35,64 +35,79 @@ class StyleExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel # # @param status [String] Status of the response, e.g., 'ok' # - # @param styleguide [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide] Comprehensive styleguide data extracted from the website + # @param styleguide [ContextDev::Models::WebExtractStyleguideResponse::Styleguide] Comprehensive styleguide data extracted from the website - # @see ContextDev::Models::StyleExtractStyleguideResponse#styleguide + # @see ContextDev::Models::WebExtractStyleguideResponse#styleguide class Styleguide < ContextDev::Internal::Type::BaseModel # @!attribute colors # Primary colors used on the website # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors] - required :colors, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors] + required :colors, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors } # @!attribute components # UI component styles # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components] - required :components, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components] + required :components, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components } # @!attribute element_spacing # Spacing system used on the website # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing] required :element_spacing, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing }, + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing }, api_name: :elementSpacing + # @!attribute font_links + # Font assets keyed by family name as it appears in fontFamily/fontFallbacks + # (non-generic names only). Clients match typography.fontFamily / fontWeight or + # button styles to pick a file URL from files. + # + # @return [Hash{Symbol=>ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink}] + required :font_links, + -> { ContextDev::Internal::Type::HashOf[ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink] }, + api_name: :fontLinks + # @!attribute mode # The primary color mode of the website design # - # @return [Symbol, ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode] - required :mode, enum: -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode } + # @return [Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode] + required :mode, enum: -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode } # @!attribute shadows # Shadow styles used on the website # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows] - required :shadows, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows] + required :shadows, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows } # @!attribute typography # Typography styles used on the website # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography] - required :typography, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography] + required :typography, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography } - # @!method initialize(colors:, components:, element_spacing:, mode:, shadows:, typography:) + # @!method initialize(colors:, components:, element_spacing:, font_links:, mode:, shadows:, typography:) + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide} for more details. + # # Comprehensive styleguide data extracted from the website # - # @param colors [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors] Primary colors used on the website + # @param colors [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors] Primary colors used on the website # - # @param components [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components] UI component styles + # @param components [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components] UI component styles # - # @param element_spacing [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing] Spacing system used on the website + # @param element_spacing [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing] Spacing system used on the website # - # @param mode [Symbol, ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode] The primary color mode of the website design + # @param font_links [Hash{Symbol=>ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink}] Font assets keyed by family name as it appears in fontFamily/fontFallbacks (non- # - # @param shadows [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows] Shadow styles used on the website + # @param mode [Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode] The primary color mode of the website design # - # @param typography [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography] Typography styles used on the website + # @param shadows [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows] Shadow styles used on the website + # + # @param typography [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography] Typography styles used on the website - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#colors + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#colors class Colors < ContextDev::Internal::Type::BaseModel # @!attribute accent # Accent color (hex format) @@ -122,56 +137,55 @@ class Colors < ContextDev::Internal::Type::BaseModel # @param text [String] Text color (hex format) end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#components + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#components class Components < ContextDev::Internal::Type::BaseModel # @!attribute button # Button component styles # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button] - required :button, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button] + required :button, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button } # @!attribute card # Card component style # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card, nil] - optional :card, -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card } + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card, nil] + optional :card, -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card } # @!method initialize(button:, card: nil) # UI component styles # - # @param button [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button] Button component styles + # @param button [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button] Button component styles # - # @param card [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card] Card component style + # @param card [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card] Card component style - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components#button + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components#button class Button < ContextDev::Internal::Type::BaseModel # @!attribute link # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, nil] optional :link, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link } # @!attribute primary # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, nil] optional :primary, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary } # @!attribute secondary # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary, nil] optional :secondary, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary } # @!method initialize(link: nil, primary: nil, secondary: nil) # Button component styles # - # @param link [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link] - # @param primary [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary] - # @param secondary [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary] + # @param link [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link] + # @param primary [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary] + # @param secondary [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary] - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button#link + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button#link class Link < ContextDev::Internal::Type::BaseModel # @!attribute background_color # @@ -269,7 +283,7 @@ class Link < ContextDev::Internal::Type::BaseModel # @!method initialize(background_color:, border_color:, border_radius:, border_style:, border_width:, box_shadow:, color:, css:, font_size:, font_weight:, min_height:, min_width:, padding:, text_decoration:, font_fallbacks: nil, font_family: nil, text_decoration_color: nil) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link} + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link} # for more details. # # @param background_color [String] @@ -307,7 +321,7 @@ class Link < ContextDev::Internal::Type::BaseModel # @param text_decoration_color [String] Hex color of the underline when it differs from the text color end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button#primary + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button#primary class Primary < ContextDev::Internal::Type::BaseModel # @!attribute background_color # @@ -405,7 +419,7 @@ class Primary < ContextDev::Internal::Type::BaseModel # @!method initialize(background_color:, border_color:, border_radius:, border_style:, border_width:, box_shadow:, color:, css:, font_size:, font_weight:, min_height:, min_width:, padding:, text_decoration:, font_fallbacks: nil, font_family: nil, text_decoration_color: nil) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary} + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary} # for more details. # # @param background_color [String] @@ -443,7 +457,7 @@ class Primary < ContextDev::Internal::Type::BaseModel # @param text_decoration_color [String] Hex color of the underline when it differs from the text color end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button#secondary + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button#secondary class Secondary < ContextDev::Internal::Type::BaseModel # @!attribute background_color # @@ -541,7 +555,7 @@ class Secondary < ContextDev::Internal::Type::BaseModel # @!method initialize(background_color:, border_color:, border_radius:, border_style:, border_width:, box_shadow:, color:, css:, font_size:, font_weight:, min_height:, min_width:, padding:, text_decoration:, font_fallbacks: nil, font_family: nil, text_decoration_color: nil) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary} + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary} # for more details. # # @param background_color [String] @@ -580,7 +594,7 @@ class Secondary < ContextDev::Internal::Type::BaseModel end end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components#card + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components#card class Card < ContextDev::Internal::Type::BaseModel # @!attribute background_color # @@ -632,7 +646,7 @@ class Card < ContextDev::Internal::Type::BaseModel # @!method initialize(background_color:, border_color:, border_radius:, border_style:, border_width:, box_shadow:, css:, padding:, text_color:) # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card} + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card} # for more details. # # Card component style @@ -657,7 +671,7 @@ class Card < ContextDev::Internal::Type::BaseModel end end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#element_spacing + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#element_spacing class ElementSpacing < ContextDev::Internal::Type::BaseModel # @!attribute lg # @@ -694,9 +708,62 @@ class ElementSpacing < ContextDev::Internal::Type::BaseModel # @param xs [String] end + class FontLink < ContextDev::Internal::Type::BaseModel + # @!attribute files + # Upright font files keyed by weight string (e.g. "400" for regular, "500", + # "700"). Values are absolute URLs. + # + # @return [Hash{Symbol=>String}] + required :files, ContextDev::Internal::Type::HashOf[String] + + # @!attribute type + # + # @return [Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type] + required :type, enum: -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type } + + # @!attribute category + # Google Fonts category when type is google (e.g. sans-serif, serif, monospace, + # display, handwriting). Omitted for custom fonts when unknown. + # + # @return [String, nil] + optional :category, String + + # @!attribute display_name + # Present when type is custom: human-readable name derived from the fontLinks key + # (strip build/hash suffixes, split camelCase / PascalCase, normalize separators). + # Google entries omit this. + # + # @return [String, nil] + optional :display_name, String, api_name: :displayName + + # @!method initialize(files:, type:, category: nil, display_name: nil) + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink} for + # more details. + # + # @param files [Hash{Symbol=>String}] Upright font files keyed by weight string (e.g. "400" for regular, "500", "700") + # + # @param type [Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type] + # + # @param category [String] Google Fonts category when type is google (e.g. sans-serif, serif, monospace, di + # + # @param display_name [String] Present when type is custom: human-readable name derived from the fontLinks key + + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink#type + module Type + extend ContextDev::Internal::Type::Enum + + GOOGLE = :google + CUSTOM = :custom + + # @!method self.values + # @return [Array] + end + end + # The primary color mode of the website design # - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#mode + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#mode module Mode extend ContextDev::Internal::Type::Enum @@ -707,7 +774,7 @@ module Mode # @return [Array] end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#shadows + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#shadows class Shadows < ContextDev::Internal::Type::BaseModel # @!attribute inner # @@ -744,64 +811,64 @@ class Shadows < ContextDev::Internal::Type::BaseModel # @param xl [String] end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide#typography + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide#typography class Typography < ContextDev::Internal::Type::BaseModel # @!attribute headings # Heading styles # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings] required :headings, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings } # @!attribute p_ # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P, nil] optional :p_, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P }, + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P }, api_name: :p # @!method initialize(headings:, p_: nil) # Typography styles used on the website # - # @param headings [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings] Heading styles + # @param headings [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings] Heading styles # - # @param p_ [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P] + # @param p_ [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P] - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography#headings + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography#headings class Headings < ContextDev::Internal::Type::BaseModel # @!attribute h1 # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, nil] optional :h1, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1 } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1 } # @!attribute h2 # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, nil] optional :h2, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2 } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2 } # @!attribute h3 # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, nil] optional :h3, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3 } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3 } # @!attribute h4 # - # @return [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4, nil] + # @return [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4, nil] optional :h4, - -> { ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 } + -> { ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 } # @!method initialize(h1: nil, h2: nil, h3: nil, h4: nil) # Heading styles # - # @param h1 [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1] - # @param h2 [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2] - # @param h3 [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3] - # @param h4 [ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4] + # @param h1 [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1] + # @param h2 [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2] + # @param h3 [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3] + # @param h4 [ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4] - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings#h1 + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings#h1 class H1 < ContextDev::Internal::Type::BaseModel # @!attribute font_fallbacks # Full ordered font list from resolved computed font-family @@ -849,7 +916,7 @@ class H1 < ContextDev::Internal::Type::BaseModel # @param line_height [String] end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings#h2 + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings#h2 class H2 < ContextDev::Internal::Type::BaseModel # @!attribute font_fallbacks # Full ordered font list from resolved computed font-family @@ -897,7 +964,7 @@ class H2 < ContextDev::Internal::Type::BaseModel # @param line_height [String] end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings#h3 + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings#h3 class H3 < ContextDev::Internal::Type::BaseModel # @!attribute font_fallbacks # Full ordered font list from resolved computed font-family @@ -945,7 +1012,7 @@ class H3 < ContextDev::Internal::Type::BaseModel # @param line_height [String] end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings#h4 + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings#h4 class H4 < ContextDev::Internal::Type::BaseModel # @!attribute font_fallbacks # Full ordered font list from resolved computed font-family @@ -994,7 +1061,7 @@ class H4 < ContextDev::Internal::Type::BaseModel end end - # @see ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography#p_ + # @see ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography#p_ class P < ContextDev::Internal::Type::BaseModel # @!attribute font_fallbacks # Full ordered font list from resolved computed font-family diff --git a/lib/context_dev/models/web_screenshot_params.rb b/lib/context_dev/models/web_screenshot_params.rb index c071ea99..ba31f61c 100644 --- a/lib/context_dev/models/web_screenshot_params.rb +++ b/lib/context_dev/models/web_screenshot_params.rb @@ -10,14 +10,15 @@ class WebScreenshotParams < ContextDev::Internal::Type::BaseModel # @!attribute direct_url # A specific URL to screenshot directly, bypassing domain resolution (e.g., # 'https://example.com/pricing'). When provided, the screenshot is taken of this - # exact URL. + # exact URL. You must provide either 'domain' or 'directUrl', but not both. # # @return [String, nil] optional :direct_url, String # @!attribute domain # Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. # # @return [String, nil] optional :domain, String diff --git a/lib/context_dev/models/web_web_scrape_html_params.rb b/lib/context_dev/models/web_web_scrape_html_params.rb index 837e5cbe..de82101e 100644 --- a/lib/context_dev/models/web_web_scrape_html_params.rb +++ b/lib/context_dev/models/web_web_scrape_html_params.rb @@ -13,9 +13,22 @@ class WebWebScrapeHTMLParams < ContextDev::Internal::Type::BaseModel # @return [String] required :url, String - # @!method initialize(url:, request_options: {}) + # @!attribute max_age_ms + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + # + # @return [Integer, nil] + optional :max_age_ms, Integer + + # @!method initialize(url:, max_age_ms: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebWebScrapeHTMLParams} for more details. + # # @param url [String] Full URL to scrape (must include http:// or https:// protocol) # + # @param max_age_ms [Integer] Return a cached result if a prior scrape for the same parameters exists and is y + # # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/context_dev/models/web_web_scrape_md_params.rb b/lib/context_dev/models/web_web_scrape_md_params.rb index c483a3ff..3303725d 100644 --- a/lib/context_dev/models/web_web_scrape_md_params.rb +++ b/lib/context_dev/models/web_web_scrape_md_params.rb @@ -8,7 +8,7 @@ class WebWebScrapeMdParams < ContextDev::Internal::Type::BaseModel include ContextDev::Internal::Type::RequestParameters # @!attribute url - # Full URL to scrape and convert to markdown (must include http:// or https:// + # Full URL to scrape into LLM usable Markdown (must include http:// or https:// # protocol) # # @return [String] @@ -26,6 +26,14 @@ class WebWebScrapeMdParams < ContextDev::Internal::Type::BaseModel # @return [Boolean, nil] optional :include_links, ContextDev::Internal::Type::Boolean + # @!attribute max_age_ms + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + # + # @return [Integer, nil] + optional :max_age_ms, Integer + # @!attribute shorten_base64_images # Shorten base64-encoded image data in the Markdown output # @@ -39,16 +47,18 @@ class WebWebScrapeMdParams < ContextDev::Internal::Type::BaseModel # @return [Boolean, nil] optional :use_main_content_only, ContextDev::Internal::Type::Boolean - # @!method initialize(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, use_main_content_only: nil, request_options: {}) + # @!method initialize(url:, include_images: nil, include_links: nil, max_age_ms: nil, shorten_base64_images: nil, use_main_content_only: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ContextDev::Models::WebWebScrapeMdParams} for more details. # - # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro + # @param url [String] Full URL to scrape into LLM usable Markdown (must include http:// or https:// pr # # @param include_images [Boolean] Include image references in Markdown output # # @param include_links [Boolean] Preserve hyperlinks in Markdown output # + # @param max_age_ms [Integer] Return a cached result if a prior scrape for the same parameters exists and is y + # # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output # # @param use_main_content_only [Boolean] Extract only the main content of the page, excluding headers, footers, sidebars, diff --git a/lib/context_dev/models/web_web_scrape_sitemap_params.rb b/lib/context_dev/models/web_web_scrape_sitemap_params.rb index 0d1c8564..adfd2848 100644 --- a/lib/context_dev/models/web_web_scrape_sitemap_params.rb +++ b/lib/context_dev/models/web_web_scrape_sitemap_params.rb @@ -8,8 +8,7 @@ class WebWebScrapeSitemapParams < ContextDev::Internal::Type::BaseModel include ContextDev::Internal::Type::RequestParameters # @!attribute domain - # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be - # automatically normalized and validated. + # Domain to build a sitemap for # # @return [String] required :domain, String @@ -25,7 +24,7 @@ class WebWebScrapeSitemapParams < ContextDev::Internal::Type::BaseModel # Some parameter documentations has been truncated, see # {ContextDev::Models::WebWebScrapeSitemapParams} for more details. # - # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto + # @param domain [String] Domain to build a sitemap for # # @param max_links [Integer] Maximum number of links to return from the sitemap crawl. Defaults to 10,000. Mi # diff --git a/lib/context_dev/resources/brand.rb b/lib/context_dev/resources/brand.rb index 4a48f900..a1b889f1 100644 --- a/lib/context_dev/resources/brand.rb +++ b/lib/context_dev/resources/brand.rb @@ -83,9 +83,8 @@ def identify_from_transaction(params) # {ContextDev::Models::BrandRetrieveByEmailParams} for more details. # # Retrieve brand information using an email address while detecting disposable and - # free email addresses. This endpoint extracts the domain from the email address - # and returns brand data for that domain. Disposable and free email addresses - # (like gmail.com, yahoo.com) will throw a 422 error. + # free email addresses. Disposable and free email addresses (like gmail.com, + # yahoo.com) will throw a 422 error. # # @overload retrieve_by_email(email:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {}) # @@ -118,8 +117,7 @@ def retrieve_by_email(params) # {ContextDev::Models::BrandRetrieveByIsinParams} for more details. # # Retrieve brand information using an ISIN (International Securities - # Identification Number). This endpoint looks up the company associated with the - # ISIN and returns its brand data. + # Identification Number). # # @overload retrieve_by_isin(isin:, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {}) # @@ -151,14 +149,13 @@ def retrieve_by_isin(params) # Some parameter documentations has been truncated, see # {ContextDev::Models::BrandRetrieveByNameParams} for more details. # - # Retrieve brand information using a company name. This endpoint searches for the - # company by name and returns its brand data. + # Retrieve brand information using a company name. # # @overload retrieve_by_name(name:, country_gl: nil, force_language: nil, max_speed: nil, timeout_ms: nil, request_options: {}) # # @param name [String] Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft Corporati # - # @param country_gl [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl] Optional country code (GL parameter) to specify the country. This affects the ge + # @param country_gl [Symbol, ContextDev::Models::BrandRetrieveByNameParams::CountryGl] Optional country code hint (GL parameter) to specify the country for the company # # @param force_language [Symbol, ContextDev::Models::BrandRetrieveByNameParams::ForceLanguage] Optional parameter to force the language of the retrieved brand data. # @@ -186,8 +183,7 @@ def retrieve_by_name(params) # Some parameter documentations has been truncated, see # {ContextDev::Models::BrandRetrieveByTickerParams} for more details. # - # Retrieve brand information using a stock ticker symbol. This endpoint looks up - # the company associated with the ticker and returns its brand data. + # Retrieve brand information using a stock ticker symbol. # # @overload retrieve_by_ticker(ticker:, force_language: nil, max_speed: nil, ticker_exchange: nil, timeout_ms: nil, request_options: {}) # @@ -222,8 +218,8 @@ def retrieve_by_ticker(params) # {ContextDev::Models::BrandRetrieveSimplifiedParams} for more details. # # Returns a simplified version of brand data containing only essential - # information: domain, title, colors, logos, and backdrops. This endpoint is - # optimized for faster responses and reduced data transfer. + # information: domain, title, colors, logos, and backdrops. Optimized for faster + # responses and reduced data transfer. # # @overload retrieve_simplified(domain:, timeout_ms: nil, request_options: {}) # diff --git a/lib/context_dev/resources/industry.rb b/lib/context_dev/resources/industry.rb index fc0d4171..47f27fa5 100644 --- a/lib/context_dev/resources/industry.rb +++ b/lib/context_dev/resources/industry.rb @@ -6,11 +6,11 @@ class Industry # Some parameter documentations has been truncated, see # {ContextDev::Models::IndustryRetrieveNaicsParams} for more details. # - # Endpoint to classify any brand into a 2022 NAICS code. + # Classify any brand into 2022 NAICS industry codes from its domain or name. # # @overload retrieve_naics(input:, max_results: nil, min_results: nil, timeout_ms: nil, request_options: {}) # - # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided + # @param input [String] Brand domain or title to retrieve NAICS code for. If a valid domain is provided, # # @param max_results [Integer] Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults to 5 # @@ -28,7 +28,7 @@ def retrieve_naics(params) query = ContextDev::Internal::Util.encode_query_params(parsed) @client.request( method: :get, - path: "brand/naics", + path: "web/naics", query: query.transform_keys( max_results: "maxResults", min_results: "minResults", diff --git a/lib/context_dev/resources/style.rb b/lib/context_dev/resources/style.rb deleted file mode 100644 index 364024b9..00000000 --- a/lib/context_dev/resources/style.rb +++ /dev/null @@ -1,76 +0,0 @@ -# frozen_string_literal: true - -module ContextDev - module Resources - class Style - # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractFontsParams} for more details. - # - # Extract font information from a brand's website including font families, usage - # statistics, fallbacks, and element/word counts. - # - # @overload extract_fonts(domain:, timeout_ms: nil, request_options: {}) - # - # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai - # - # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th - # - # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [ContextDev::Models::StyleExtractFontsResponse] - # - # @see ContextDev::Models::StyleExtractFontsParams - def extract_fonts(params) - parsed, options = ContextDev::StyleExtractFontsParams.dump_request(params) - query = ContextDev::Internal::Util.encode_query_params(parsed) - @client.request( - method: :get, - path: "brand/fonts", - query: query.transform_keys(timeout_ms: "timeoutMS"), - model: ContextDev::Models::StyleExtractFontsResponse, - options: options - ) - end - - # Some parameter documentations has been truncated, see - # {ContextDev::Models::StyleExtractStyleguideParams} for more details. - # - # Automatically extract comprehensive design system information from a brand's - # website including colors, typography, spacing, shadows, and UI components. - # Either 'domain' or 'directUrl' must be provided as a query parameter, but not - # both. - # - # @overload extract_styleguide(direct_url: nil, domain: nil, timeout_ms: nil, request_options: {}) - # - # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio - # - # @param domain [String] Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The - # - # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th - # - # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil] - # - # @return [ContextDev::Models::StyleExtractStyleguideResponse] - # - # @see ContextDev::Models::StyleExtractStyleguideParams - def extract_styleguide(params = {}) - parsed, options = ContextDev::StyleExtractStyleguideParams.dump_request(params) - query = ContextDev::Internal::Util.encode_query_params(parsed) - @client.request( - method: :get, - path: "brand/styleguide", - query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"), - model: ContextDev::Models::StyleExtractStyleguideResponse, - options: options - ) - end - - # @api private - # - # @param client [ContextDev::Client] - def initialize(client:) - @client = client - end - end - end -end diff --git a/lib/context_dev/resources/web.rb b/lib/context_dev/resources/web.rb index 80d8e966..77f6610b 100644 --- a/lib/context_dev/resources/web.rb +++ b/lib/context_dev/resources/web.rb @@ -3,14 +3,72 @@ module ContextDev module Resources class Web + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebExtractFontsParams} for more details. + # + # Scrape font information from a website including font families, usage + # statistics, fallbacks, and element/word counts. + # + # @overload extract_fonts(direct_url: nil, domain: nil, timeout_ms: nil, request_options: {}) + # + # @param direct_url [String] A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., + # + # @param domain [String] Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domai + # + # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th + # + # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [ContextDev::Models::WebExtractFontsResponse] + # + # @see ContextDev::Models::WebExtractFontsParams + def extract_fonts(params = {}) + parsed, options = ContextDev::WebExtractFontsParams.dump_request(params) + query = ContextDev::Internal::Util.encode_query_params(parsed) + @client.request( + method: :get, + path: "web/fonts", + query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"), + model: ContextDev::Models::WebExtractFontsResponse, + options: options + ) + end + + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebExtractStyleguideParams} for more details. + # + # Extract a comprehensive design system from a website including colors, + # typography, spacing, shadows, and UI components. + # + # @overload extract_styleguide(direct_url: nil, domain: nil, timeout_ms: nil, request_options: {}) + # + # @param direct_url [String] A specific URL to fetch the styleguide from directly, bypassing domain resolutio + # + # @param domain [String] Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The + # + # @param timeout_ms [Integer] Optional timeout in milliseconds for the request. If the request takes longer th + # + # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil] + # + # @return [ContextDev::Models::WebExtractStyleguideResponse] + # + # @see ContextDev::Models::WebExtractStyleguideParams + def extract_styleguide(params = {}) + parsed, options = ContextDev::WebExtractStyleguideParams.dump_request(params) + query = ContextDev::Internal::Util.encode_query_params(parsed) + @client.request( + method: :get, + path: "web/styleguide", + query: query.transform_keys(direct_url: "directUrl", timeout_ms: "timeoutMS"), + model: ContextDev::Models::WebExtractStyleguideResponse, + options: options + ) + end + # Some parameter documentations has been truncated, see # {ContextDev::Models::WebScreenshotParams} for more details. # - # Capture a screenshot of a website. Supports both viewport (standard browser - # view) and full-page screenshots. Can also screenshot specific page types (login, - # pricing, etc.) by using heuristics to find the appropriate URL. Either 'domain' - # or 'directUrl' must be provided as a query parameter, but not both. Returns a - # URL to the uploaded screenshot image hosted on our CDN. + # Capture a screenshot of a website. # # @overload screenshot(direct_url: nil, domain: nil, full_screenshot: nil, page: nil, prioritize: nil, request_options: {}) # @@ -34,7 +92,7 @@ def screenshot(params = {}) query = ContextDev::Internal::Util.encode_query_params(parsed) @client.request( method: :get, - path: "brand/screenshot", + path: "web/screenshot", query: query.transform_keys(direct_url: "directUrl", full_screenshot: "fullScreenshot"), model: ContextDev::Models::WebScreenshotResponse, options: options @@ -45,8 +103,7 @@ def screenshot(params = {}) # {ContextDev::Models::WebWebCrawlMdParams} for more details. # # Performs a crawl starting from a given URL, extracts page content as Markdown, - # and returns results for all crawled pages. Only follows links within the same - # domain as the starting URL. Costs 1 credit per successful page crawled. + # and returns results for all crawled pages. # # @overload web_crawl_md(url:, follow_subdomains: nil, include_images: nil, include_links: nil, max_depth: nil, max_pages: nil, shorten_base64_images: nil, url_regex: nil, use_main_content_only: nil, request_options: {}) # @@ -84,12 +141,17 @@ def web_crawl_md(params) ) end + # Some parameter documentations has been truncated, see + # {ContextDev::Models::WebWebScrapeHTMLParams} for more details. + # # Scrapes the given URL and returns the raw HTML content of the page. # - # @overload web_scrape_html(url:, request_options: {}) + # @overload web_scrape_html(url:, max_age_ms: nil, request_options: {}) # # @param url [String] Full URL to scrape (must include http:// or https:// protocol) # + # @param max_age_ms [Integer] Return a cached result if a prior scrape for the same parameters exists and is y + # # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [ContextDev::Models::WebWebScrapeHTMLResponse] @@ -101,7 +163,7 @@ def web_scrape_html(params) @client.request( method: :get, path: "web/scrape/html", - query: query, + query: query.transform_keys(max_age_ms: "maxAgeMs"), model: ContextDev::Models::WebWebScrapeHTMLResponse, options: options ) @@ -135,17 +197,18 @@ def web_scrape_images(params) # Some parameter documentations has been truncated, see # {ContextDev::Models::WebWebScrapeMdParams} for more details. # - # Scrapes the given URL, converts the HTML content to Markdown, and returns the - # result. + # Scrapes the given URL into LLM usable Markdown. # - # @overload web_scrape_md(url:, include_images: nil, include_links: nil, shorten_base64_images: nil, use_main_content_only: nil, request_options: {}) + # @overload web_scrape_md(url:, include_images: nil, include_links: nil, max_age_ms: nil, shorten_base64_images: nil, use_main_content_only: nil, request_options: {}) # - # @param url [String] Full URL to scrape and convert to markdown (must include http:// or https:// pro + # @param url [String] Full URL to scrape into LLM usable Markdown (must include http:// or https:// pr # # @param include_images [Boolean] Include image references in Markdown output # # @param include_links [Boolean] Preserve hyperlinks in Markdown output # + # @param max_age_ms [Integer] Return a cached result if a prior scrape for the same parameters exists and is y + # # @param shorten_base64_images [Boolean] Shorten base64-encoded image data in the Markdown output # # @param use_main_content_only [Boolean] Extract only the main content of the page, excluding headers, footers, sidebars, @@ -164,6 +227,7 @@ def web_scrape_md(params) query: query.transform_keys( include_images: "includeImages", include_links: "includeLinks", + max_age_ms: "maxAgeMs", shorten_base64_images: "shortenBase64Images", use_main_content_only: "useMainContentOnly" ), @@ -175,13 +239,11 @@ def web_scrape_md(params) # Some parameter documentations has been truncated, see # {ContextDev::Models::WebWebScrapeSitemapParams} for more details. # - # Crawls the sitemap of the given domain and returns all discovered page URLs. - # Supports sitemap index files (recursive), parallel fetching with concurrency - # control, deduplication, and filters out non-page resources (images, PDFs, etc.). + # Crawl an entire website's sitemap and return all discovered page URLs. # # @overload web_scrape_sitemap(domain:, max_links: nil, request_options: {}) # - # @param domain [String] Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be auto + # @param domain [String] Domain to build a sitemap for # # @param max_links [Integer] Maximum number of links to return from the sitemap crawl. Defaults to 10,000. Mi # diff --git a/lib/context_dev/version.rb b/lib/context_dev/version.rb index 55f99422..687a8828 100644 --- a/lib/context_dev/version.rb +++ b/lib/context_dev/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module ContextDev - VERSION = "1.4.0" + VERSION = "1.5.0" end diff --git a/rbi/context_dev/client.rbi b/rbi/context_dev/client.rbi index e54985c8..f4c93b5a 100644 --- a/rbi/context_dev/client.rbi +++ b/rbi/context_dev/client.rbi @@ -19,9 +19,6 @@ module ContextDev sig { returns(ContextDev::Resources::AI) } attr_reader :ai - sig { returns(ContextDev::Resources::Style) } - attr_reader :style - sig { returns(ContextDev::Resources::Brand) } attr_reader :brand diff --git a/rbi/context_dev/models.rbi b/rbi/context_dev/models.rbi index 3932e7df..43142d69 100644 --- a/rbi/context_dev/models.rbi +++ b/rbi/context_dev/models.rbi @@ -25,16 +25,15 @@ module ContextDev IndustryRetrieveNaicsParams = ContextDev::Models::IndustryRetrieveNaicsParams - StyleExtractFontsParams = ContextDev::Models::StyleExtractFontsParams - - StyleExtractStyleguideParams = - ContextDev::Models::StyleExtractStyleguideParams - UtilityPrefetchByEmailParams = ContextDev::Models::UtilityPrefetchByEmailParams UtilityPrefetchParams = ContextDev::Models::UtilityPrefetchParams + WebExtractFontsParams = ContextDev::Models::WebExtractFontsParams + + WebExtractStyleguideParams = ContextDev::Models::WebExtractStyleguideParams + WebScreenshotParams = ContextDev::Models::WebScreenshotParams WebWebCrawlMdParams = ContextDev::Models::WebWebCrawlMdParams diff --git a/rbi/context_dev/models/brand_identify_from_transaction_params.rbi b/rbi/context_dev/models/brand_identify_from_transaction_params.rbi index b824a650..bb349bf9 100644 --- a/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +++ b/rbi/context_dev/models/brand_identify_from_transaction_params.rbi @@ -64,7 +64,6 @@ module ContextDev # When set to true, the API will perform an additional verification steps to # ensure the identified brand matches the transaction with high confidence. - # Defaults to false. sig { returns(T.nilable(T::Boolean)) } attr_reader :high_confidence_only @@ -132,7 +131,6 @@ module ContextDev force_language: nil, # When set to true, the API will perform an additional verification steps to # ensure the identified brand matches the transaction with high confidence. - # Defaults to false. high_confidence_only: nil, # Optional parameter to optimize the API call for maximum speed. When set to true, # the API will skip time-consuming operations for faster response at the cost of diff --git a/rbi/context_dev/models/brand_retrieve_by_name_params.rbi b/rbi/context_dev/models/brand_retrieve_by_name_params.rbi index 62249d86..078e0859 100644 --- a/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +++ b/rbi/context_dev/models/brand_retrieve_by_name_params.rbi @@ -19,8 +19,8 @@ module ContextDev sig { returns(String) } attr_accessor :name - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. sig do returns( T.nilable(ContextDev::BrandRetrieveByNameParams::CountryGl::OrSymbol) @@ -87,8 +87,8 @@ module ContextDev # Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft # Corporation'). Must be 3-30 characters. name:, - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. country_gl: nil, # Optional parameter to force the language of the retrieved brand data. force_language: nil, @@ -121,8 +121,8 @@ module ContextDev def to_hash end - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. module CountryGl extend ContextDev::Internal::Type::Enum diff --git a/rbi/context_dev/models/industry_retrieve_naics_params.rbi b/rbi/context_dev/models/industry_retrieve_naics_params.rbi index a8590228..eaf0e28f 100644 --- a/rbi/context_dev/models/industry_retrieve_naics_params.rbi +++ b/rbi/context_dev/models/industry_retrieve_naics_params.rbi @@ -14,9 +14,9 @@ module ContextDev ) end - # Brand domain or title to retrieve NAICS code for. If a valid domain is provided - # in `input`, it will be used for classification, otherwise, we will search for - # the brand using the provided title. + # Brand domain or title to retrieve NAICS code for. If a valid domain is provided, + # it will be used for classification, otherwise, we will search for the brand + # using the provided title. sig { returns(String) } attr_accessor :input @@ -54,9 +54,9 @@ module ContextDev ).returns(T.attached_class) end def self.new( - # Brand domain or title to retrieve NAICS code for. If a valid domain is provided - # in `input`, it will be used for classification, otherwise, we will search for - # the brand using the provided title. + # Brand domain or title to retrieve NAICS code for. If a valid domain is provided, + # it will be used for classification, otherwise, we will search for the brand + # using the provided title. input:, # Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults # to 5. diff --git a/rbi/context_dev/models/style_extract_fonts_params.rbi b/rbi/context_dev/models/web_extract_fonts_params.rbi similarity index 56% rename from rbi/context_dev/models/style_extract_fonts_params.rbi rename to rbi/context_dev/models/web_extract_fonts_params.rbi index 22fb658b..7817e2d5 100644 --- a/rbi/context_dev/models/style_extract_fonts_params.rbi +++ b/rbi/context_dev/models/web_extract_fonts_params.rbi @@ -2,22 +2,35 @@ module ContextDev module Models - class StyleExtractFontsParams < ContextDev::Internal::Type::BaseModel + class WebExtractFontsParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters OrHash = T.type_alias do T.any( - ContextDev::StyleExtractFontsParams, + ContextDev::WebExtractFontsParams, ContextDev::Internal::AnyHash ) end + # A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., + # 'https://example.com/design-system'). When provided, fonts are extracted from + # this exact URL. You must provide either 'domain' or 'directUrl', but not both. + sig { returns(T.nilable(String)) } + attr_reader :direct_url + + sig { params(direct_url: String).void } + attr_writer :direct_url + # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. - sig { returns(String) } - attr_accessor :domain + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. + sig { returns(T.nilable(String)) } + attr_reader :domain + + sig { params(domain: String).void } + attr_writer :domain # Optional timeout in milliseconds for the request. If the request takes longer # than this value, it will be aborted with a 408 status code. Maximum allowed @@ -30,15 +43,21 @@ module ContextDev sig do params( + direct_url: String, domain: String, timeout_ms: Integer, request_options: ContextDev::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + # A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., + # 'https://example.com/design-system'). When provided, fonts are extracted from + # this exact URL. You must provide either 'domain' or 'directUrl', but not both. + direct_url: nil, # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. - domain:, + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. + domain: nil, # Optional timeout in milliseconds for the request. If the request takes longer # than this value, it will be aborted with a 408 status code. Maximum allowed # value is 300000ms (5 minutes). @@ -50,6 +69,7 @@ module ContextDev sig do override.returns( { + direct_url: String, domain: String, timeout_ms: Integer, request_options: ContextDev::RequestOptions diff --git a/rbi/context_dev/models/style_extract_fonts_response.rbi b/rbi/context_dev/models/web_extract_fonts_response.rbi similarity index 87% rename from rbi/context_dev/models/style_extract_fonts_response.rbi rename to rbi/context_dev/models/web_extract_fonts_response.rbi index b90b5f22..e14bad9b 100644 --- a/rbi/context_dev/models/style_extract_fonts_response.rbi +++ b/rbi/context_dev/models/web_extract_fonts_response.rbi @@ -2,11 +2,11 @@ module ContextDev module Models - class StyleExtractFontsResponse < ContextDev::Internal::Type::BaseModel + class WebExtractFontsResponse < ContextDev::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractFontsResponse, + ContextDev::Models::WebExtractFontsResponse, ContextDev::Internal::AnyHash ) end @@ -21,7 +21,7 @@ module ContextDev # Array of font usage information sig do - returns(T::Array[ContextDev::Models::StyleExtractFontsResponse::Font]) + returns(T::Array[ContextDev::Models::WebExtractFontsResponse::Font]) end attr_accessor :fonts @@ -34,9 +34,7 @@ module ContextDev code: Integer, domain: String, fonts: - T::Array[ - ContextDev::Models::StyleExtractFontsResponse::Font::OrHash - ], + T::Array[ContextDev::Models::WebExtractFontsResponse::Font::OrHash], status: String ).returns(T.attached_class) end @@ -57,8 +55,7 @@ module ContextDev { code: Integer, domain: String, - fonts: - T::Array[ContextDev::Models::StyleExtractFontsResponse::Font], + fonts: T::Array[ContextDev::Models::WebExtractFontsResponse::Font], status: String } ) @@ -70,7 +67,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractFontsResponse::Font, + ContextDev::Models::WebExtractFontsResponse::Font, ContextDev::Internal::AnyHash ) end diff --git a/rbi/context_dev/models/style_extract_styleguide_params.rbi b/rbi/context_dev/models/web_extract_styleguide_params.rbi similarity index 76% rename from rbi/context_dev/models/style_extract_styleguide_params.rbi rename to rbi/context_dev/models/web_extract_styleguide_params.rbi index 6b43ec8c..d704be66 100644 --- a/rbi/context_dev/models/style_extract_styleguide_params.rbi +++ b/rbi/context_dev/models/web_extract_styleguide_params.rbi @@ -2,20 +2,22 @@ module ContextDev module Models - class StyleExtractStyleguideParams < ContextDev::Internal::Type::BaseModel + class WebExtractStyleguideParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters OrHash = T.type_alias do T.any( - ContextDev::StyleExtractStyleguideParams, + ContextDev::WebExtractStyleguideParams, ContextDev::Internal::AnyHash ) end # A specific URL to fetch the styleguide from directly, bypassing domain - # resolution (e.g., 'https://example.com/design-system'). + # resolution (e.g., 'https://example.com/design-system'). When provided, the + # styleguide is extracted from this exact URL. You must provide either 'domain' or + # 'directUrl', but not both. sig { returns(T.nilable(String)) } attr_reader :direct_url @@ -23,7 +25,8 @@ module ContextDev attr_writer :direct_url # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. sig { returns(T.nilable(String)) } attr_reader :domain @@ -49,10 +52,13 @@ module ContextDev end def self.new( # A specific URL to fetch the styleguide from directly, bypassing domain - # resolution (e.g., 'https://example.com/design-system'). + # resolution (e.g., 'https://example.com/design-system'). When provided, the + # styleguide is extracted from this exact URL. You must provide either 'domain' or + # 'directUrl', but not both. direct_url: nil, # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. domain: nil, # Optional timeout in milliseconds for the request. If the request takes longer # than this value, it will be aborted with a 408 status code. Maximum allowed diff --git a/rbi/context_dev/models/style_extract_styleguide_response.rbi b/rbi/context_dev/models/web_extract_styleguide_response.rbi similarity index 75% rename from rbi/context_dev/models/style_extract_styleguide_response.rbi rename to rbi/context_dev/models/web_extract_styleguide_response.rbi index 3078d93b..1ef1b2f3 100644 --- a/rbi/context_dev/models/style_extract_styleguide_response.rbi +++ b/rbi/context_dev/models/web_extract_styleguide_response.rbi @@ -2,11 +2,11 @@ module ContextDev module Models - class StyleExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel + class WebExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse, + ContextDev::Models::WebExtractStyleguideResponse, ContextDev::Internal::AnyHash ) end @@ -36,7 +36,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + ContextDev::Models::WebExtractStyleguideResponse::Styleguide ) ) end @@ -45,7 +45,7 @@ module ContextDev sig do params( styleguide: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::OrHash ).void end attr_writer :styleguide @@ -56,7 +56,7 @@ module ContextDev domain: String, status: String, styleguide: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::OrHash ).returns(T.attached_class) end def self.new( @@ -78,7 +78,7 @@ module ContextDev domain: String, status: String, styleguide: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + ContextDev::Models::WebExtractStyleguideResponse::Styleguide } ) end @@ -89,7 +89,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide, ContextDev::Internal::AnyHash ) end @@ -97,7 +97,7 @@ module ContextDev # Primary colors used on the website sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors ) end attr_reader :colors @@ -105,7 +105,7 @@ module ContextDev sig do params( colors: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors::OrHash ).void end attr_writer :colors @@ -113,7 +113,7 @@ module ContextDev # UI component styles sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components ) end attr_reader :components @@ -121,7 +121,7 @@ module ContextDev sig do params( components: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::OrHash ).void end attr_writer :components @@ -129,7 +129,7 @@ module ContextDev # Spacing system used on the website sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing ) end attr_reader :element_spacing @@ -137,15 +137,28 @@ module ContextDev sig do params( element_spacing: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing::OrHash ).void end attr_writer :element_spacing + # Font assets keyed by family name as it appears in fontFamily/fontFallbacks + # (non-generic names only). Clients match typography.fontFamily / fontWeight or + # button styles to pick a file URL from files. + sig do + returns( + T::Hash[ + Symbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink + ] + ) + end + attr_accessor :font_links + # The primary color mode of the website design sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol ) end attr_accessor :mode @@ -153,7 +166,7 @@ module ContextDev # Shadow styles used on the website sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows ) end attr_reader :shadows @@ -161,7 +174,7 @@ module ContextDev sig do params( shadows: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows::OrHash ).void end attr_writer :shadows @@ -169,7 +182,7 @@ module ContextDev # Typography styles used on the website sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography ) end attr_reader :typography @@ -177,7 +190,7 @@ module ContextDev sig do params( typography: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::OrHash ).void end attr_writer :typography @@ -186,17 +199,22 @@ module ContextDev sig do params( colors: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors::OrHash, components: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::OrHash, element_spacing: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing::OrHash, + font_links: + T::Hash[ + Symbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::OrHash + ], mode: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::OrSymbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::OrSymbol, shadows: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows::OrHash, typography: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::OrHash ).returns(T.attached_class) end def self.new( @@ -206,6 +224,10 @@ module ContextDev components:, # Spacing system used on the website element_spacing:, + # Font assets keyed by family name as it appears in fontFamily/fontFallbacks + # (non-generic names only). Clients match typography.fontFamily / fontWeight or + # button styles to pick a file URL from files. + font_links:, # The primary color mode of the website design mode:, # Shadow styles used on the website @@ -219,17 +241,22 @@ module ContextDev override.returns( { colors: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors, components: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components, element_spacing: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing, + font_links: + T::Hash[ + Symbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink + ], mode: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol, shadows: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows, typography: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography } ) end @@ -240,7 +267,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors, ContextDev::Internal::AnyHash ) end @@ -286,7 +313,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components, ContextDev::Internal::AnyHash ) end @@ -294,7 +321,7 @@ module ContextDev # Button component styles sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button ) end attr_reader :button @@ -302,7 +329,7 @@ module ContextDev sig do params( button: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::OrHash ).void end attr_writer :button @@ -311,7 +338,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card ) ) end @@ -320,7 +347,7 @@ module ContextDev sig do params( card: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card::OrHash ).void end attr_writer :card @@ -329,9 +356,9 @@ module ContextDev sig do params( button: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::OrHash, card: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card::OrHash ).returns(T.attached_class) end def self.new( @@ -346,9 +373,9 @@ module ContextDev override.returns( { button: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button, card: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card } ) end @@ -359,7 +386,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button, ContextDev::Internal::AnyHash ) end @@ -367,7 +394,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link ) ) end @@ -376,7 +403,7 @@ module ContextDev sig do params( link: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link::OrHash ).void end attr_writer :link @@ -384,7 +411,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary ) ) end @@ -393,7 +420,7 @@ module ContextDev sig do params( primary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary::OrHash ).void end attr_writer :primary @@ -401,7 +428,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary ) ) end @@ -410,7 +437,7 @@ module ContextDev sig do params( secondary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary::OrHash ).void end attr_writer :secondary @@ -419,11 +446,11 @@ module ContextDev sig do params( link: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link::OrHash, primary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary::OrHash, secondary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary::OrHash ).returns(T.attached_class) end def self.new(link: nil, primary: nil, secondary: nil) @@ -433,11 +460,11 @@ module ContextDev override.returns( { link: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, primary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, secondary: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary } ) end @@ -448,7 +475,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, ContextDev::Internal::AnyHash ) end @@ -604,7 +631,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, ContextDev::Internal::AnyHash ) end @@ -760,7 +787,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary, ContextDev::Internal::AnyHash ) end @@ -917,7 +944,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card, ContextDev::Internal::AnyHash ) end @@ -1006,7 +1033,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing, ContextDev::Internal::AnyHash ) end @@ -1048,6 +1075,117 @@ module ContextDev end end + class FontLink < ContextDev::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink, + ContextDev::Internal::AnyHash + ) + end + + # Upright font files keyed by weight string (e.g. "400" for regular, "500", + # "700"). Values are absolute URLs. + sig { returns(T::Hash[Symbol, String]) } + attr_accessor :files + + sig do + returns( + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::TaggedSymbol + ) + end + attr_accessor :type + + # Google Fonts category when type is google (e.g. sans-serif, serif, monospace, + # display, handwriting). Omitted for custom fonts when unknown. + sig { returns(T.nilable(String)) } + attr_reader :category + + sig { params(category: String).void } + attr_writer :category + + # Present when type is custom: human-readable name derived from the fontLinks key + # (strip build/hash suffixes, split camelCase / PascalCase, normalize separators). + # Google entries omit this. + sig { returns(T.nilable(String)) } + attr_reader :display_name + + sig { params(display_name: String).void } + attr_writer :display_name + + sig do + params( + files: T::Hash[Symbol, String], + type: + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::OrSymbol, + category: String, + display_name: String + ).returns(T.attached_class) + end + def self.new( + # Upright font files keyed by weight string (e.g. "400" for regular, "500", + # "700"). Values are absolute URLs. + files:, + type:, + # Google Fonts category when type is google (e.g. sans-serif, serif, monospace, + # display, handwriting). Omitted for custom fonts when unknown. + category: nil, + # Present when type is custom: human-readable name derived from the fontLinks key + # (strip build/hash suffixes, split camelCase / PascalCase, normalize separators). + # Google entries omit this. + display_name: nil + ) + end + + sig do + override.returns( + { + files: T::Hash[Symbol, String], + type: + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::TaggedSymbol, + category: String, + display_name: String + } + ) + end + def to_hash + end + + module Type + extend ContextDev::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + GOOGLE = + T.let( + :google, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::TaggedSymbol + ) + CUSTOM = + T.let( + :custom, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + end + # The primary color mode of the website design module Mode extend ContextDev::Internal::Type::Enum @@ -1056,7 +1194,7 @@ module ContextDev T.type_alias do T.all( Symbol, - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode ) end OrSymbol = T.type_alias { T.any(Symbol, String) } @@ -1064,18 +1202,18 @@ module ContextDev LIGHT = T.let( :light, - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol ) DARK = T.let( :dark, - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol ) sig do override.returns( T::Array[ - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Mode::TaggedSymbol ] ) end @@ -1087,7 +1225,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows, ContextDev::Internal::AnyHash ) end @@ -1133,7 +1271,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography, ContextDev::Internal::AnyHash ) end @@ -1141,7 +1279,7 @@ module ContextDev # Heading styles sig do returns( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings ) end attr_reader :headings @@ -1149,7 +1287,7 @@ module ContextDev sig do params( headings: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::OrHash ).void end attr_writer :headings @@ -1157,7 +1295,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P ) ) end @@ -1166,7 +1304,7 @@ module ContextDev sig do params( p_: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P::OrHash ).void end attr_writer :p_ @@ -1175,9 +1313,9 @@ module ContextDev sig do params( headings: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::OrHash, p_: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P::OrHash ).returns(T.attached_class) end def self.new( @@ -1191,9 +1329,9 @@ module ContextDev override.returns( { headings: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings, p_: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P } ) end @@ -1204,7 +1342,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings, ContextDev::Internal::AnyHash ) end @@ -1212,7 +1350,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1 ) ) end @@ -1221,7 +1359,7 @@ module ContextDev sig do params( h1: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1::OrHash ).void end attr_writer :h1 @@ -1229,7 +1367,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2 ) ) end @@ -1238,7 +1376,7 @@ module ContextDev sig do params( h2: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2::OrHash ).void end attr_writer :h2 @@ -1246,7 +1384,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3 ) ) end @@ -1255,7 +1393,7 @@ module ContextDev sig do params( h3: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3::OrHash ).void end attr_writer :h3 @@ -1263,7 +1401,7 @@ module ContextDev sig do returns( T.nilable( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 ) ) end @@ -1272,7 +1410,7 @@ module ContextDev sig do params( h4: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4::OrHash ).void end attr_writer :h4 @@ -1281,13 +1419,13 @@ module ContextDev sig do params( h1: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1::OrHash, h2: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2::OrHash, h3: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3::OrHash, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3::OrHash, h4: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4::OrHash + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4::OrHash ).returns(T.attached_class) end def self.new(h1: nil, h2: nil, h3: nil, h4: nil) @@ -1297,13 +1435,13 @@ module ContextDev override.returns( { h1: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, h2: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, h3: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, h4: - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 } ) end @@ -1314,7 +1452,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, ContextDev::Internal::AnyHash ) end @@ -1381,7 +1519,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, ContextDev::Internal::AnyHash ) end @@ -1448,7 +1586,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, ContextDev::Internal::AnyHash ) end @@ -1515,7 +1653,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4, ContextDev::Internal::AnyHash ) end @@ -1583,7 +1721,7 @@ module ContextDev OrHash = T.type_alias do T.any( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P, + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P, ContextDev::Internal::AnyHash ) end diff --git a/rbi/context_dev/models/web_screenshot_params.rbi b/rbi/context_dev/models/web_screenshot_params.rbi index c9f11b3a..c0098221 100644 --- a/rbi/context_dev/models/web_screenshot_params.rbi +++ b/rbi/context_dev/models/web_screenshot_params.rbi @@ -13,7 +13,7 @@ module ContextDev # A specific URL to screenshot directly, bypassing domain resolution (e.g., # 'https://example.com/pricing'). When provided, the screenshot is taken of this - # exact URL. + # exact URL. You must provide either 'domain' or 'directUrl', but not both. sig { returns(T.nilable(String)) } attr_reader :direct_url @@ -21,7 +21,8 @@ module ContextDev attr_writer :direct_url # Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. sig { returns(T.nilable(String)) } attr_reader :domain @@ -90,10 +91,11 @@ module ContextDev def self.new( # A specific URL to screenshot directly, bypassing domain resolution (e.g., # 'https://example.com/pricing'). When provided, the screenshot is taken of this - # exact URL. + # exact URL. You must provide either 'domain' or 'directUrl', but not both. direct_url: nil, # Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. domain: nil, # Optional parameter to determine screenshot type. If 'true', takes a full page # screenshot capturing all content. If 'false' or not provided, takes a viewport diff --git a/rbi/context_dev/models/web_web_scrape_html_params.rbi b/rbi/context_dev/models/web_web_scrape_html_params.rbi index 87d62926..781570fd 100644 --- a/rbi/context_dev/models/web_web_scrape_html_params.rbi +++ b/rbi/context_dev/models/web_web_scrape_html_params.rbi @@ -18,22 +18,40 @@ module ContextDev sig { returns(String) } attr_accessor :url + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + sig { returns(T.nilable(Integer)) } + attr_reader :max_age_ms + + sig { params(max_age_ms: Integer).void } + attr_writer :max_age_ms + sig do params( url: String, + max_age_ms: Integer, request_options: ContextDev::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( # Full URL to scrape (must include http:// or https:// protocol) url:, + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + max_age_ms: nil, request_options: {} ) end sig do override.returns( - { url: String, request_options: ContextDev::RequestOptions } + { + url: String, + max_age_ms: Integer, + request_options: ContextDev::RequestOptions + } ) end def to_hash diff --git a/rbi/context_dev/models/web_web_scrape_md_params.rbi b/rbi/context_dev/models/web_web_scrape_md_params.rbi index 7f086479..3439d5c2 100644 --- a/rbi/context_dev/models/web_web_scrape_md_params.rbi +++ b/rbi/context_dev/models/web_web_scrape_md_params.rbi @@ -11,7 +11,7 @@ module ContextDev T.any(ContextDev::WebWebScrapeMdParams, ContextDev::Internal::AnyHash) end - # Full URL to scrape and convert to markdown (must include http:// or https:// + # Full URL to scrape into LLM usable Markdown (must include http:// or https:// # protocol) sig { returns(String) } attr_accessor :url @@ -30,6 +30,15 @@ module ContextDev sig { params(include_links: T::Boolean).void } attr_writer :include_links + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + sig { returns(T.nilable(Integer)) } + attr_reader :max_age_ms + + sig { params(max_age_ms: Integer).void } + attr_writer :max_age_ms + # Shorten base64-encoded image data in the Markdown output sig { returns(T.nilable(T::Boolean)) } attr_reader :shorten_base64_images @@ -50,19 +59,24 @@ module ContextDev url: String, include_images: T::Boolean, include_links: T::Boolean, + max_age_ms: Integer, shorten_base64_images: T::Boolean, use_main_content_only: T::Boolean, request_options: ContextDev::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( - # Full URL to scrape and convert to markdown (must include http:// or https:// + # Full URL to scrape into LLM usable Markdown (must include http:// or https:// # protocol) url:, # Include image references in Markdown output include_images: nil, # Preserve hyperlinks in Markdown output include_links: nil, + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + max_age_ms: nil, # Shorten base64-encoded image data in the Markdown output shorten_base64_images: nil, # Extract only the main content of the page, excluding headers, footers, sidebars, @@ -78,6 +92,7 @@ module ContextDev url: String, include_images: T::Boolean, include_links: T::Boolean, + max_age_ms: Integer, shorten_base64_images: T::Boolean, use_main_content_only: T::Boolean, request_options: ContextDev::RequestOptions diff --git a/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi b/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi index e892cc87..c741628b 100644 --- a/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +++ b/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi @@ -14,8 +14,7 @@ module ContextDev ) end - # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be - # automatically normalized and validated. + # Domain to build a sitemap for sig { returns(String) } attr_accessor :domain @@ -35,8 +34,7 @@ module ContextDev ).returns(T.attached_class) end def self.new( - # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be - # automatically normalized and validated. + # Domain to build a sitemap for domain:, # Maximum number of links to return from the sitemap crawl. Defaults to 10,000. # Minimum is 1, maximum is 100,000. diff --git a/rbi/context_dev/resources/brand.rbi b/rbi/context_dev/resources/brand.rbi index ed28b4e0..7e9f8f49 100644 --- a/rbi/context_dev/resources/brand.rbi +++ b/rbi/context_dev/resources/brand.rbi @@ -63,7 +63,6 @@ module ContextDev force_language: nil, # When set to true, the API will perform an additional verification steps to # ensure the identified brand matches the transaction with high confidence. - # Defaults to false. high_confidence_only: nil, # Optional parameter to optimize the API call for maximum speed. When set to true, # the API will skip time-consuming operations for faster response at the cost of @@ -83,9 +82,8 @@ module ContextDev end # Retrieve brand information using an email address while detecting disposable and - # free email addresses. This endpoint extracts the domain from the email address - # and returns brand data for that domain. Disposable and free email addresses - # (like gmail.com, yahoo.com) will throw a 422 error. + # free email addresses. Disposable and free email addresses (like gmail.com, + # yahoo.com) will throw a 422 error. sig do params( email: String, @@ -116,8 +114,7 @@ module ContextDev end # Retrieve brand information using an ISIN (International Securities - # Identification Number). This endpoint looks up the company associated with the - # ISIN and returns its brand data. + # Identification Number). sig do params( isin: String, @@ -147,8 +144,7 @@ module ContextDev ) end - # Retrieve brand information using a company name. This endpoint searches for the - # company by name and returns its brand data. + # Retrieve brand information using a company name. sig do params( name: String, @@ -165,8 +161,8 @@ module ContextDev # Company name to retrieve brand data for (e.g., 'Apple Inc', 'Microsoft # Corporation'). Must be 3-30 characters. name:, - # Optional country code (GL parameter) to specify the country. This affects the - # geographic location used for search queries. + # Optional country code hint (GL parameter) to specify the country for the company + # name. country_gl: nil, # Optional parameter to force the language of the retrieved brand data. force_language: nil, @@ -182,8 +178,7 @@ module ContextDev ) end - # Retrieve brand information using a stock ticker symbol. This endpoint looks up - # the company associated with the ticker and returns its brand data. + # Retrieve brand information using a stock ticker symbol. sig do params( ticker: String, @@ -217,8 +212,8 @@ module ContextDev end # Returns a simplified version of brand data containing only essential - # information: domain, title, colors, logos, and backdrops. This endpoint is - # optimized for faster responses and reduced data transfer. + # information: domain, title, colors, logos, and backdrops. Optimized for faster + # responses and reduced data transfer. sig do params( domain: String, diff --git a/rbi/context_dev/resources/industry.rbi b/rbi/context_dev/resources/industry.rbi index 563db4dd..97516941 100644 --- a/rbi/context_dev/resources/industry.rbi +++ b/rbi/context_dev/resources/industry.rbi @@ -3,7 +3,7 @@ module ContextDev module Resources class Industry - # Endpoint to classify any brand into a 2022 NAICS code. + # Classify any brand into 2022 NAICS industry codes from its domain or name. sig do params( input: String, @@ -14,9 +14,9 @@ module ContextDev ).returns(ContextDev::Models::IndustryRetrieveNaicsResponse) end def retrieve_naics( - # Brand domain or title to retrieve NAICS code for. If a valid domain is provided - # in `input`, it will be used for classification, otherwise, we will search for - # the brand using the provided title. + # Brand domain or title to retrieve NAICS code for. If a valid domain is provided, + # it will be used for classification, otherwise, we will search for the brand + # using the provided title. input:, # Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults # to 5. diff --git a/rbi/context_dev/resources/style.rbi b/rbi/context_dev/resources/style.rbi deleted file mode 100644 index f819a058..00000000 --- a/rbi/context_dev/resources/style.rbi +++ /dev/null @@ -1,60 +0,0 @@ -# typed: strong - -module ContextDev - module Resources - class Style - # Extract font information from a brand's website including font families, usage - # statistics, fallbacks, and element/word counts. - sig do - params( - domain: String, - timeout_ms: Integer, - request_options: ContextDev::RequestOptions::OrHash - ).returns(ContextDev::Models::StyleExtractFontsResponse) - end - def extract_fonts( - # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. - domain:, - # Optional timeout in milliseconds for the request. If the request takes longer - # than this value, it will be aborted with a 408 status code. Maximum allowed - # value is 300000ms (5 minutes). - timeout_ms: nil, - request_options: {} - ) - end - - # Automatically extract comprehensive design system information from a brand's - # website including colors, typography, spacing, shadows, and UI components. - # Either 'domain' or 'directUrl' must be provided as a query parameter, but not - # both. - sig do - params( - direct_url: String, - domain: String, - timeout_ms: Integer, - request_options: ContextDev::RequestOptions::OrHash - ).returns(ContextDev::Models::StyleExtractStyleguideResponse) - end - def extract_styleguide( - # A specific URL to fetch the styleguide from directly, bypassing domain - # resolution (e.g., 'https://example.com/design-system'). - direct_url: nil, - # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. - domain: nil, - # Optional timeout in milliseconds for the request. If the request takes longer - # than this value, it will be aborted with a 408 status code. Maximum allowed - # value is 300000ms (5 minutes). - timeout_ms: nil, - request_options: {} - ) - end - - # @api private - sig { params(client: ContextDev::Client).returns(T.attached_class) } - def self.new(client:) - end - end - end -end diff --git a/rbi/context_dev/resources/web.rbi b/rbi/context_dev/resources/web.rbi index 80ce6522..96ed71db 100644 --- a/rbi/context_dev/resources/web.rbi +++ b/rbi/context_dev/resources/web.rbi @@ -3,11 +3,62 @@ module ContextDev module Resources class Web - # Capture a screenshot of a website. Supports both viewport (standard browser - # view) and full-page screenshots. Can also screenshot specific page types (login, - # pricing, etc.) by using heuristics to find the appropriate URL. Either 'domain' - # or 'directUrl' must be provided as a query parameter, but not both. Returns a - # URL to the uploaded screenshot image hosted on our CDN. + # Scrape font information from a website including font families, usage + # statistics, fallbacks, and element/word counts. + sig do + params( + direct_url: String, + domain: String, + timeout_ms: Integer, + request_options: ContextDev::RequestOptions::OrHash + ).returns(ContextDev::Models::WebExtractFontsResponse) + end + def extract_fonts( + # A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., + # 'https://example.com/design-system'). When provided, fonts are extracted from + # this exact URL. You must provide either 'domain' or 'directUrl', but not both. + direct_url: nil, + # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. + domain: nil, + # Optional timeout in milliseconds for the request. If the request takes longer + # than this value, it will be aborted with a 408 status code. Maximum allowed + # value is 300000ms (5 minutes). + timeout_ms: nil, + request_options: {} + ) + end + + # Extract a comprehensive design system from a website including colors, + # typography, spacing, shadows, and UI components. + sig do + params( + direct_url: String, + domain: String, + timeout_ms: Integer, + request_options: ContextDev::RequestOptions::OrHash + ).returns(ContextDev::Models::WebExtractStyleguideResponse) + end + def extract_styleguide( + # A specific URL to fetch the styleguide from directly, bypassing domain + # resolution (e.g., 'https://example.com/design-system'). When provided, the + # styleguide is extracted from this exact URL. You must provide either 'domain' or + # 'directUrl', but not both. + direct_url: nil, + # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. + domain: nil, + # Optional timeout in milliseconds for the request. If the request takes longer + # than this value, it will be aborted with a 408 status code. Maximum allowed + # value is 300000ms (5 minutes). + timeout_ms: nil, + request_options: {} + ) + end + + # Capture a screenshot of a website. sig do params( direct_url: String, @@ -22,10 +73,11 @@ module ContextDev def screenshot( # A specific URL to screenshot directly, bypassing domain resolution (e.g., # 'https://example.com/pricing'). When provided, the screenshot is taken of this - # exact URL. + # exact URL. You must provide either 'domain' or 'directUrl', but not both. direct_url: nil, # Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The - # domain will be automatically normalized and validated. + # domain will be automatically normalized and validated. You must provide either + # 'domain' or 'directUrl', but not both. domain: nil, # Optional parameter to determine screenshot type. If 'true', takes a full page # screenshot capturing all content. If 'false' or not provided, takes a viewport @@ -46,8 +98,7 @@ module ContextDev end # Performs a crawl starting from a given URL, extracts page content as Markdown, - # and returns results for all crawled pages. Only follows links within the same - # domain as the starting URL. Costs 1 credit per successful page crawled. + # and returns results for all crawled pages. sig do params( url: String, @@ -92,12 +143,17 @@ module ContextDev sig do params( url: String, + max_age_ms: Integer, request_options: ContextDev::RequestOptions::OrHash ).returns(ContextDev::Models::WebWebScrapeHTMLResponse) end def web_scrape_html( # Full URL to scrape (must include http:// or https:// protocol) url:, + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + max_age_ms: nil, request_options: {} ) end @@ -118,26 +174,30 @@ module ContextDev ) end - # Scrapes the given URL, converts the HTML content to Markdown, and returns the - # result. + # Scrapes the given URL into LLM usable Markdown. sig do params( url: String, include_images: T::Boolean, include_links: T::Boolean, + max_age_ms: Integer, shorten_base64_images: T::Boolean, use_main_content_only: T::Boolean, request_options: ContextDev::RequestOptions::OrHash ).returns(ContextDev::Models::WebWebScrapeMdResponse) end def web_scrape_md( - # Full URL to scrape and convert to markdown (must include http:// or https:// + # Full URL to scrape into LLM usable Markdown (must include http:// or https:// # protocol) url:, # Include image references in Markdown output include_images: nil, # Preserve hyperlinks in Markdown output include_links: nil, + # Return a cached result if a prior scrape for the same parameters exists and is + # younger than this many milliseconds. Defaults to 1 day (86400000 ms) when + # omitted. Max is 30 days (2592000000 ms). Set to 0 to always scrape fresh. + max_age_ms: nil, # Shorten base64-encoded image data in the Markdown output shorten_base64_images: nil, # Extract only the main content of the page, excluding headers, footers, sidebars, @@ -147,9 +207,7 @@ module ContextDev ) end - # Crawls the sitemap of the given domain and returns all discovered page URLs. - # Supports sitemap index files (recursive), parallel fetching with concurrency - # control, deduplication, and filters out non-page resources (images, PDFs, etc.). + # Crawl an entire website's sitemap and return all discovered page URLs. sig do params( domain: String, @@ -158,8 +216,7 @@ module ContextDev ).returns(ContextDev::Models::WebWebScrapeSitemapResponse) end def web_scrape_sitemap( - # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be - # automatically normalized and validated. + # Domain to build a sitemap for domain:, # Maximum number of links to return from the sitemap crawl. Defaults to 10,000. # Minimum is 1, maximum is 100,000. diff --git a/sig/context_dev/client.rbs b/sig/context_dev/client.rbs index 1e3fd4de..dbaa7969 100644 --- a/sig/context_dev/client.rbs +++ b/sig/context_dev/client.rbs @@ -14,8 +14,6 @@ module ContextDev attr_reader ai: ContextDev::Resources::AI - attr_reader style: ContextDev::Resources::Style - attr_reader brand: ContextDev::Resources::Brand attr_reader industry: ContextDev::Resources::Industry diff --git a/sig/context_dev/models.rbs b/sig/context_dev/models.rbs index 537fbf3d..992384f4 100644 --- a/sig/context_dev/models.rbs +++ b/sig/context_dev/models.rbs @@ -21,14 +21,14 @@ module ContextDev class IndustryRetrieveNaicsParams = ContextDev::Models::IndustryRetrieveNaicsParams - class StyleExtractFontsParams = ContextDev::Models::StyleExtractFontsParams - - class StyleExtractStyleguideParams = ContextDev::Models::StyleExtractStyleguideParams - class UtilityPrefetchByEmailParams = ContextDev::Models::UtilityPrefetchByEmailParams class UtilityPrefetchParams = ContextDev::Models::UtilityPrefetchParams + class WebExtractFontsParams = ContextDev::Models::WebExtractFontsParams + + class WebExtractStyleguideParams = ContextDev::Models::WebExtractStyleguideParams + class WebScreenshotParams = ContextDev::Models::WebScreenshotParams class WebWebCrawlMdParams = ContextDev::Models::WebWebCrawlMdParams diff --git a/sig/context_dev/models/style_extract_styleguide_params.rbs b/sig/context_dev/models/web_extract_fonts_params.rbs similarity index 89% rename from sig/context_dev/models/style_extract_styleguide_params.rbs rename to sig/context_dev/models/web_extract_fonts_params.rbs index 10140f24..f16167a2 100644 --- a/sig/context_dev/models/style_extract_styleguide_params.rbs +++ b/sig/context_dev/models/web_extract_fonts_params.rbs @@ -1,10 +1,10 @@ module ContextDev module Models - type style_extract_styleguide_params = + type web_extract_fonts_params = { direct_url: String, domain: String, timeout_ms: Integer } & ContextDev::Internal::Type::request_parameters - class StyleExtractStyleguideParams < ContextDev::Internal::Type::BaseModel + class WebExtractFontsParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters diff --git a/sig/context_dev/models/style_extract_fonts_response.rbs b/sig/context_dev/models/web_extract_fonts_response.rbs similarity index 78% rename from sig/context_dev/models/style_extract_fonts_response.rbs rename to sig/context_dev/models/web_extract_fonts_response.rbs index 1028f587..d62b7905 100644 --- a/sig/context_dev/models/style_extract_fonts_response.rbs +++ b/sig/context_dev/models/web_extract_fonts_response.rbs @@ -1,33 +1,33 @@ module ContextDev module Models - type style_extract_fonts_response = + type web_extract_fonts_response = { code: Integer, domain: String, - fonts: ::Array[ContextDev::Models::StyleExtractFontsResponse::Font], + fonts: ::Array[ContextDev::Models::WebExtractFontsResponse::Font], status: String } - class StyleExtractFontsResponse < ContextDev::Internal::Type::BaseModel + class WebExtractFontsResponse < ContextDev::Internal::Type::BaseModel attr_accessor code: Integer attr_accessor domain: String - attr_accessor fonts: ::Array[ContextDev::Models::StyleExtractFontsResponse::Font] + attr_accessor fonts: ::Array[ContextDev::Models::WebExtractFontsResponse::Font] attr_accessor status: String def initialize: ( code: Integer, domain: String, - fonts: ::Array[ContextDev::Models::StyleExtractFontsResponse::Font], + fonts: ::Array[ContextDev::Models::WebExtractFontsResponse::Font], status: String ) -> void def to_hash: -> { code: Integer, domain: String, - fonts: ::Array[ContextDev::Models::StyleExtractFontsResponse::Font], + fonts: ::Array[ContextDev::Models::WebExtractFontsResponse::Font], status: String } diff --git a/sig/context_dev/models/style_extract_fonts_params.rbs b/sig/context_dev/models/web_extract_styleguide_params.rbs similarity index 58% rename from sig/context_dev/models/style_extract_fonts_params.rbs rename to sig/context_dev/models/web_extract_styleguide_params.rbs index 20ea7962..d8fbc143 100644 --- a/sig/context_dev/models/style_extract_fonts_params.rbs +++ b/sig/context_dev/models/web_extract_styleguide_params.rbs @@ -1,26 +1,34 @@ module ContextDev module Models - type style_extract_fonts_params = - { domain: String, timeout_ms: Integer } + type web_extract_styleguide_params = + { direct_url: String, domain: String, timeout_ms: Integer } & ContextDev::Internal::Type::request_parameters - class StyleExtractFontsParams < ContextDev::Internal::Type::BaseModel + class WebExtractStyleguideParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter include ContextDev::Internal::Type::RequestParameters - attr_accessor domain: String + attr_reader direct_url: String? + + def direct_url=: (String) -> String + + attr_reader domain: String? + + def domain=: (String) -> String attr_reader timeout_ms: Integer? def timeout_ms=: (Integer) -> Integer def initialize: ( - domain: String, + ?direct_url: String, + ?domain: String, ?timeout_ms: Integer, ?request_options: ContextDev::request_opts ) -> void def to_hash: -> { + direct_url: String, domain: String, timeout_ms: Integer, request_options: ContextDev::RequestOptions diff --git a/sig/context_dev/models/style_extract_styleguide_response.rbs b/sig/context_dev/models/web_extract_styleguide_response.rbs similarity index 65% rename from sig/context_dev/models/style_extract_styleguide_response.rbs rename to sig/context_dev/models/web_extract_styleguide_response.rbs index 87b08dd5..c6283013 100644 --- a/sig/context_dev/models/style_extract_styleguide_response.rbs +++ b/sig/context_dev/models/web_extract_styleguide_response.rbs @@ -1,14 +1,14 @@ module ContextDev module Models - type style_extract_styleguide_response = + type web_extract_styleguide_response = { code: Integer, domain: String, status: String, - styleguide: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + styleguide: ContextDev::Models::WebExtractStyleguideResponse::Styleguide } - class StyleExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel + class WebExtractStyleguideResponse < ContextDev::Internal::Type::BaseModel attr_reader code: Integer? def code=: (Integer) -> Integer @@ -21,65 +21,70 @@ module ContextDev def status=: (String) -> String - attr_reader styleguide: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide? + attr_reader styleguide: ContextDev::Models::WebExtractStyleguideResponse::Styleguide? def styleguide=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + ContextDev::Models::WebExtractStyleguideResponse::Styleguide + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide def initialize: ( ?code: Integer, ?domain: String, ?status: String, - ?styleguide: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + ?styleguide: ContextDev::Models::WebExtractStyleguideResponse::Styleguide ) -> void def to_hash: -> { code: Integer, domain: String, status: String, - styleguide: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide + styleguide: ContextDev::Models::WebExtractStyleguideResponse::Styleguide } type styleguide = { - colors: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors, - components: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components, - element_spacing: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing, - mode: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::mode, - shadows: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows, - typography: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + colors: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors, + components: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components, + element_spacing: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing, + font_links: ::Hash[Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink], + mode: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::mode, + shadows: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows, + typography: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography } class Styleguide < ContextDev::Internal::Type::BaseModel - attr_accessor colors: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors + attr_accessor colors: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors - attr_accessor components: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components + attr_accessor components: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components - attr_accessor element_spacing: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing + attr_accessor element_spacing: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing - attr_accessor mode: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::mode + attr_accessor font_links: ::Hash[Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink] - attr_accessor shadows: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows + attr_accessor mode: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::mode - attr_accessor typography: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + attr_accessor shadows: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows + + attr_accessor typography: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography def initialize: ( - colors: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors, - components: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components, - element_spacing: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing, - mode: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::mode, - shadows: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows, - typography: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + colors: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors, + components: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components, + element_spacing: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing, + font_links: ::Hash[Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink], + mode: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::mode, + shadows: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows, + typography: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography ) -> void def to_hash: -> { - colors: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Colors, - components: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components, - element_spacing: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::ElementSpacing, - mode: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::mode, - shadows: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Shadows, - typography: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography + colors: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Colors, + components: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components, + element_spacing: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::ElementSpacing, + font_links: ::Hash[Symbol, ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink], + mode: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::mode, + shadows: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Shadows, + typography: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography } type colors = { accent: String, background: String, text: String } @@ -102,65 +107,65 @@ module ContextDev type components = { - button: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button, - card: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + button: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button, + card: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card } class Components < ContextDev::Internal::Type::BaseModel - attr_accessor button: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button + attr_accessor button: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button - attr_reader card: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card? + attr_reader card: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card? def card=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card def initialize: ( - button: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button, - ?card: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + button: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button, + ?card: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card ) -> void def to_hash: -> { - button: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button, - card: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Card + button: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button, + card: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Card } type button = { - link: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, - primary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, - secondary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + link: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, + primary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, + secondary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary } class Button < ContextDev::Internal::Type::BaseModel - attr_reader link: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link? + attr_reader link: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link? def link=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link - attr_reader primary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary? + attr_reader primary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary? def primary=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary - attr_reader secondary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary? + attr_reader secondary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary? def secondary=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary def initialize: ( - ?link: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, - ?primary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, - ?secondary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + ?link: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, + ?primary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, + ?secondary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary ) -> void def to_hash: -> { - link: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Link, - primary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Primary, - secondary: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Components::Button::Secondary + link: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Link, + primary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Primary, + secondary: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Components::Button::Secondary } type link = @@ -562,6 +567,53 @@ module ContextDev } end + type font_link = + { + files: ::Hash[Symbol, String], + type: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::type_, + category: String, + display_name: String + } + + class FontLink < ContextDev::Internal::Type::BaseModel + attr_accessor files: ::Hash[Symbol, String] + + attr_accessor type: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::type_ + + attr_reader category: String? + + def category=: (String) -> String + + attr_reader display_name: String? + + def display_name=: (String) -> String + + def initialize: ( + files: ::Hash[Symbol, String], + type: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::type_, + ?category: String, + ?display_name: String + ) -> void + + def to_hash: -> { + files: ::Hash[Symbol, String], + type: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::type_, + category: String, + display_name: String + } + + type type_ = :google | :custom + + module Type + extend ContextDev::Internal::Type::Enum + + GOOGLE: :google + CUSTOM: :custom + + def self?.values: -> ::Array[ContextDev::Models::WebExtractStyleguideResponse::Styleguide::FontLink::type_] + end + end + type mode = :light | :dark module Mode @@ -570,7 +622,7 @@ module ContextDev LIGHT: :light DARK: :dark - def self?.values: -> ::Array[ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::mode] + def self?.values: -> ::Array[ContextDev::Models::WebExtractStyleguideResponse::Styleguide::mode] end type shadows = @@ -606,74 +658,74 @@ module ContextDev type typography = { - headings: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings, - p_: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + headings: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings, + p_: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P } class Typography < ContextDev::Internal::Type::BaseModel - attr_accessor headings: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings + attr_accessor headings: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings - attr_reader p_: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P? + attr_reader p_: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P? def p_=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P def initialize: ( - headings: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings, - ?p_: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + headings: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings, + ?p_: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P ) -> void def to_hash: -> { - headings: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings, - p_: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::P + headings: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings, + p_: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::P } type headings = { - :h1 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, - :h2 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, - :h3 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, - :h4 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + :h1 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, + :h2 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, + :h3 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, + :h4 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 } class Headings < ContextDev::Internal::Type::BaseModel - attr_reader h1: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1? + attr_reader h1: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1? def h1=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1 - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1 + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1 - attr_reader h2: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2? + attr_reader h2: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2? def h2=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2 - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2 + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2 - attr_reader h3: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3? + attr_reader h3: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3? def h3=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3 - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3 + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3 - attr_reader h4: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4? + attr_reader h4: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4? def h4=: ( - ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 - ) -> ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + ) -> ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 def initialize: ( - ?h1: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, - ?h2: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, - ?h3: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, - ?h4: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + ?h1: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, + ?h2: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, + ?h3: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, + ?h4: ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 ) -> void def to_hash: -> { - :h1 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H1, - :h2 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H2, - :h3 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H3, - :h4 => ContextDev::Models::StyleExtractStyleguideResponse::Styleguide::Typography::Headings::H4 + :h1 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H1, + :h2 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H2, + :h3 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H3, + :h4 => ContextDev::Models::WebExtractStyleguideResponse::Styleguide::Typography::Headings::H4 } type h1 = diff --git a/sig/context_dev/models/web_web_scrape_html_params.rbs b/sig/context_dev/models/web_web_scrape_html_params.rbs index 343dc814..6140c451 100644 --- a/sig/context_dev/models/web_web_scrape_html_params.rbs +++ b/sig/context_dev/models/web_web_scrape_html_params.rbs @@ -1,7 +1,8 @@ module ContextDev module Models type web_web_scrape_html_params = - { url: String } & ContextDev::Internal::Type::request_parameters + { url: String, max_age_ms: Integer } + & ContextDev::Internal::Type::request_parameters class WebWebScrapeHTMLParams < ContextDev::Internal::Type::BaseModel extend ContextDev::Internal::Type::RequestParameters::Converter @@ -9,13 +10,19 @@ module ContextDev attr_accessor url: String + attr_reader max_age_ms: Integer? + + def max_age_ms=: (Integer) -> Integer + def initialize: ( url: String, + ?max_age_ms: Integer, ?request_options: ContextDev::request_opts ) -> void def to_hash: -> { url: String, + max_age_ms: Integer, request_options: ContextDev::RequestOptions } end diff --git a/sig/context_dev/models/web_web_scrape_md_params.rbs b/sig/context_dev/models/web_web_scrape_md_params.rbs index 1d1c2d41..c9fe083f 100644 --- a/sig/context_dev/models/web_web_scrape_md_params.rbs +++ b/sig/context_dev/models/web_web_scrape_md_params.rbs @@ -5,6 +5,7 @@ module ContextDev url: String, include_images: bool, include_links: bool, + max_age_ms: Integer, :shorten_base64_images => bool, use_main_content_only: bool } @@ -24,6 +25,10 @@ module ContextDev def include_links=: (bool) -> bool + attr_reader max_age_ms: Integer? + + def max_age_ms=: (Integer) -> Integer + attr_reader shorten_base64_images: bool? def shorten_base64_images=: (bool) -> bool @@ -36,6 +41,7 @@ module ContextDev url: String, ?include_images: bool, ?include_links: bool, + ?max_age_ms: Integer, ?shorten_base64_images: bool, ?use_main_content_only: bool, ?request_options: ContextDev::request_opts @@ -45,6 +51,7 @@ module ContextDev url: String, include_images: bool, include_links: bool, + max_age_ms: Integer, :shorten_base64_images => bool, use_main_content_only: bool, request_options: ContextDev::RequestOptions diff --git a/sig/context_dev/resources/style.rbs b/sig/context_dev/resources/style.rbs deleted file mode 100644 index 76529051..00000000 --- a/sig/context_dev/resources/style.rbs +++ /dev/null @@ -1,20 +0,0 @@ -module ContextDev - module Resources - class Style - def extract_fonts: ( - domain: String, - ?timeout_ms: Integer, - ?request_options: ContextDev::request_opts - ) -> ContextDev::Models::StyleExtractFontsResponse - - def extract_styleguide: ( - ?direct_url: String, - ?domain: String, - ?timeout_ms: Integer, - ?request_options: ContextDev::request_opts - ) -> ContextDev::Models::StyleExtractStyleguideResponse - - def initialize: (client: ContextDev::Client) -> void - end - end -end diff --git a/sig/context_dev/resources/web.rbs b/sig/context_dev/resources/web.rbs index 46e42e0d..1854e57d 100644 --- a/sig/context_dev/resources/web.rbs +++ b/sig/context_dev/resources/web.rbs @@ -1,6 +1,20 @@ module ContextDev module Resources class Web + def extract_fonts: ( + ?direct_url: String, + ?domain: String, + ?timeout_ms: Integer, + ?request_options: ContextDev::request_opts + ) -> ContextDev::Models::WebExtractFontsResponse + + def extract_styleguide: ( + ?direct_url: String, + ?domain: String, + ?timeout_ms: Integer, + ?request_options: ContextDev::request_opts + ) -> ContextDev::Models::WebExtractStyleguideResponse + def screenshot: ( ?direct_url: String, ?domain: String, @@ -25,6 +39,7 @@ module ContextDev def web_scrape_html: ( url: String, + ?max_age_ms: Integer, ?request_options: ContextDev::request_opts ) -> ContextDev::Models::WebWebScrapeHTMLResponse @@ -37,6 +52,7 @@ module ContextDev url: String, ?include_images: bool, ?include_links: bool, + ?max_age_ms: Integer, ?shorten_base64_images: bool, ?use_main_content_only: bool, ?request_options: ContextDev::request_opts diff --git a/test/context_dev/resources/style_test.rb b/test/context_dev/resources/style_test.rb deleted file mode 100644 index 3300c4b4..00000000 --- a/test/context_dev/resources/style_test.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require_relative "../test_helper" - -class ContextDev::Test::Resources::StyleTest < ContextDev::Test::ResourceTest - def test_extract_fonts_required_params - skip("Mock server tests are disabled") - - response = @context_dev.style.extract_fonts(domain: "domain") - - assert_pattern do - response => ContextDev::Models::StyleExtractFontsResponse - end - - assert_pattern do - response => { - code: Integer, - domain: String, - fonts: ^(ContextDev::Internal::Type::ArrayOf[ContextDev::Models::StyleExtractFontsResponse::Font]), - status: String - } - end - end - - def test_extract_styleguide - skip("Mock server tests are disabled") - - response = @context_dev.style.extract_styleguide - - assert_pattern do - response => ContextDev::Models::StyleExtractStyleguideResponse - end - - assert_pattern do - response => { - code: Integer | nil, - domain: String | nil, - status: String | nil, - styleguide: ContextDev::Models::StyleExtractStyleguideResponse::Styleguide | nil - } - end - end -end diff --git a/test/context_dev/resources/web_test.rb b/test/context_dev/resources/web_test.rb index 3083da7b..b0d8c39d 100644 --- a/test/context_dev/resources/web_test.rb +++ b/test/context_dev/resources/web_test.rb @@ -3,6 +3,44 @@ require_relative "../test_helper" class ContextDev::Test::Resources::WebTest < ContextDev::Test::ResourceTest + def test_extract_fonts + skip("Mock server tests are disabled") + + response = @context_dev.web.extract_fonts + + assert_pattern do + response => ContextDev::Models::WebExtractFontsResponse + end + + assert_pattern do + response => { + code: Integer, + domain: String, + fonts: ^(ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebExtractFontsResponse::Font]), + status: String + } + end + end + + def test_extract_styleguide + skip("Mock server tests are disabled") + + response = @context_dev.web.extract_styleguide + + assert_pattern do + response => ContextDev::Models::WebExtractStyleguideResponse + end + + assert_pattern do + response => { + code: Integer | nil, + domain: String | nil, + status: String | nil, + styleguide: ContextDev::Models::WebExtractStyleguideResponse::Styleguide | nil + } + end + end + def test_screenshot skip("Mock server tests are disabled")