context.dev 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +9 -9
  4. data/lib/context_dev/client.rb +20 -0
  5. data/lib/context_dev/internal/type/base_model.rb +4 -4
  6. data/lib/context_dev/models/{brand_ai_query_params.rb → ai_ai_query_params.rb} +21 -22
  7. data/lib/context_dev/models/{brand_ai_query_response.rb → ai_ai_query_response.rb} +11 -11
  8. data/lib/context_dev/models/{brand_ai_product_params.rb → ai_extract_product_params.rb} +3 -3
  9. data/lib/context_dev/models/{brand_ai_product_response.rb → ai_extract_product_response.rb} +18 -18
  10. data/lib/context_dev/models/{brand_ai_products_params.rb → ai_extract_products_params.rb} +11 -10
  11. data/lib/context_dev/models/{brand_ai_products_response.rb → ai_extract_products_response.rb} +13 -13
  12. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +3 -0
  13. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +3 -0
  14. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +3 -0
  15. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +3 -0
  16. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +3 -0
  17. data/lib/context_dev/models/brand_retrieve_params.rb +3 -0
  18. data/lib/context_dev/models/{brand_retrieve_naics_params.rb → industry_retrieve_naics_params.rb} +3 -3
  19. data/lib/context_dev/models/{brand_retrieve_naics_response.rb → industry_retrieve_naics_response.rb} +9 -9
  20. data/lib/context_dev/models/{brand_fonts_params.rb → style_extract_fonts_params.rb} +3 -3
  21. data/lib/context_dev/models/{brand_fonts_response.rb → style_extract_fonts_response.rb} +6 -5
  22. data/lib/context_dev/models/{brand_styleguide_params.rb → style_extract_styleguide_params.rb} +6 -6
  23. data/lib/context_dev/models/{brand_styleguide_response.rb → style_extract_styleguide_response.rb} +83 -74
  24. data/lib/context_dev/models/{brand_prefetch_by_email_params.rb → utility_prefetch_by_email_params.rb} +3 -3
  25. data/lib/context_dev/models/{brand_prefetch_by_email_response.rb → utility_prefetch_by_email_response.rb} +2 -2
  26. data/lib/context_dev/models/{brand_prefetch_params.rb → utility_prefetch_params.rb} +3 -3
  27. data/lib/context_dev/models/{brand_prefetch_response.rb → utility_prefetch_response.rb} +2 -2
  28. data/lib/context_dev/models/{brand_screenshot_params.rb → web_screenshot_params.rb} +12 -12
  29. data/lib/context_dev/models/{brand_screenshot_response.rb → web_screenshot_response.rb} +6 -6
  30. data/lib/context_dev/models/{brand_web_scrape_html_params.rb → web_web_scrape_html_params.rb} +2 -2
  31. data/lib/context_dev/models/{brand_web_scrape_html_response.rb → web_web_scrape_html_response.rb} +6 -6
  32. data/lib/context_dev/models/{brand_web_scrape_images_params.rb → web_web_scrape_images_params.rb} +2 -2
  33. data/lib/context_dev/models/{brand_web_scrape_images_response.rb → web_web_scrape_images_response.rb} +17 -17
  34. data/lib/context_dev/models/{brand_web_scrape_md_params.rb → web_web_scrape_md_params.rb} +3 -3
  35. data/lib/context_dev/models/{brand_web_scrape_md_response.rb → web_web_scrape_md_response.rb} +6 -6
  36. data/lib/context_dev/models/{brand_web_scrape_sitemap_params.rb → web_web_scrape_sitemap_params.rb} +3 -3
  37. data/lib/context_dev/models/{brand_web_scrape_sitemap_response.rb → web_web_scrape_sitemap_response.rb} +10 -10
  38. data/lib/context_dev/models.rb +17 -17
  39. data/lib/context_dev/resources/ai.rb +99 -0
  40. data/lib/context_dev/resources/brand.rb +0 -397
  41. data/lib/context_dev/resources/industry.rb +50 -0
  42. data/lib/context_dev/resources/style.rb +78 -0
  43. data/lib/context_dev/resources/utility.rb +76 -0
  44. data/lib/context_dev/resources/web.rb +164 -0
  45. data/lib/context_dev/version.rb +1 -1
  46. data/lib/context_dev.rb +31 -26
  47. data/rbi/context_dev/client.rbi +15 -0
  48. data/rbi/context_dev/models/{brand_ai_query_params.rbi → ai_ai_query_params.rbi} +46 -46
  49. data/rbi/context_dev/models/{brand_ai_query_response.rbi → ai_ai_query_response.rbi} +12 -12
  50. data/rbi/context_dev/models/{brand_ai_product_params.rbi → ai_extract_product_params.rbi} +5 -2
  51. data/rbi/context_dev/models/{brand_ai_product_response.rbi → ai_extract_product_response.rbi} +40 -35
  52. data/rbi/context_dev/models/{brand_ai_products_params.rbi → ai_extract_products_params.rbi} +13 -13
  53. data/rbi/context_dev/models/{brand_ai_products_response.rbi → ai_extract_products_response.rbi} +26 -26
  54. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +15 -0
  55. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +15 -0
  56. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +15 -0
  57. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +15 -0
  58. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +15 -0
  59. data/rbi/context_dev/models/brand_retrieve_params.rbi +15 -0
  60. data/rbi/context_dev/models/{brand_retrieve_naics_params.rbi → industry_retrieve_naics_params.rbi} +2 -2
  61. data/rbi/context_dev/models/{brand_retrieve_naics_response.rbi → industry_retrieve_naics_response.rbi} +15 -15
  62. data/rbi/context_dev/models/{brand_fonts_params.rbi → style_extract_fonts_params.rbi} +5 -2
  63. data/rbi/context_dev/models/{brand_fonts_response.rbi → style_extract_fonts_response.rbi} +12 -6
  64. data/rbi/context_dev/models/{brand_styleguide_params.rbi → style_extract_styleguide_params.rbi} +15 -10
  65. data/rbi/context_dev/models/{brand_styleguide_response.rbi → style_extract_styleguide_response.rbi} +98 -95
  66. data/rbi/context_dev/models/{brand_prefetch_by_email_params.rbi → utility_prefetch_by_email_params.rbi} +2 -2
  67. data/rbi/context_dev/models/{brand_prefetch_by_email_response.rbi → utility_prefetch_by_email_response.rbi} +2 -2
  68. data/rbi/context_dev/models/{brand_prefetch_params.rbi → utility_prefetch_params.rbi} +5 -2
  69. data/rbi/context_dev/models/{brand_prefetch_response.rbi → utility_prefetch_response.rbi} +2 -2
  70. data/rbi/context_dev/models/{brand_screenshot_params.rbi → web_screenshot_params.rbi} +32 -42
  71. data/rbi/context_dev/models/{brand_screenshot_response.rbi → web_screenshot_response.rbi} +10 -10
  72. data/rbi/context_dev/models/{brand_web_scrape_html_params.rbi → web_web_scrape_html_params.rbi} +2 -2
  73. data/rbi/context_dev/models/{brand_web_scrape_html_response.rbi → web_web_scrape_html_response.rbi} +8 -8
  74. data/rbi/context_dev/models/{brand_web_scrape_images_params.rbi → web_web_scrape_images_params.rbi} +2 -2
  75. data/rbi/context_dev/models/{brand_web_scrape_images_response.rbi → web_web_scrape_images_response.rbi} +30 -32
  76. data/rbi/context_dev/models/{brand_web_scrape_md_params.rbi → web_web_scrape_md_params.rbi} +2 -5
  77. data/rbi/context_dev/models/{brand_web_scrape_md_response.rbi → web_web_scrape_md_response.rbi} +8 -8
  78. data/rbi/context_dev/models/{brand_web_scrape_sitemap_params.rbi → web_web_scrape_sitemap_params.rbi} +2 -2
  79. data/rbi/context_dev/models/{brand_web_scrape_sitemap_response.rbi → web_web_scrape_sitemap_response.rbi} +13 -13
  80. data/rbi/context_dev/models.rbi +19 -17
  81. data/rbi/context_dev/resources/ai.rbi +76 -0
  82. data/rbi/context_dev/resources/brand.rbi +0 -303
  83. data/rbi/context_dev/resources/industry.rbi +40 -0
  84. data/rbi/context_dev/resources/style.rbi +67 -0
  85. data/rbi/context_dev/resources/utility.rbi +60 -0
  86. data/rbi/context_dev/resources/web.rbi +121 -0
  87. data/sig/context_dev/client.rbs +10 -0
  88. data/sig/context_dev/models/{brand_ai_query_params.rbs → ai_ai_query_params.rbs} +31 -31
  89. data/sig/context_dev/models/{brand_ai_query_response.rbs → ai_ai_query_response.rbs} +15 -15
  90. data/sig/context_dev/models/{brand_ai_product_params.rbs → ai_extract_product_params.rbs} +2 -2
  91. data/sig/context_dev/models/{brand_ai_product_response.rbs → ai_extract_product_response.rbs} +21 -21
  92. data/sig/context_dev/models/{brand_ai_products_params.rbs → ai_extract_products_params.rbs} +9 -9
  93. data/sig/context_dev/models/{brand_ai_products_response.rbs → ai_extract_products_response.rbs} +18 -18
  94. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +6 -0
  95. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +6 -0
  96. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +6 -0
  97. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +6 -0
  98. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +6 -0
  99. data/sig/context_dev/models/brand_retrieve_params.rbs +6 -0
  100. data/sig/context_dev/models/{brand_retrieve_naics_params.rbs → industry_retrieve_naics_params.rbs} +2 -2
  101. data/sig/context_dev/models/{brand_retrieve_naics_response.rbs → industry_retrieve_naics_response.rbs} +13 -13
  102. data/sig/context_dev/models/{brand_fonts_params.rbs → style_extract_fonts_params.rbs} +2 -2
  103. data/sig/context_dev/models/{brand_fonts_response.rbs → style_extract_fonts_response.rbs} +6 -6
  104. data/sig/context_dev/models/{brand_styleguide_params.rbs → style_extract_styleguide_params.rbs} +9 -9
  105. data/sig/context_dev/models/{brand_styleguide_response.rbs → style_extract_styleguide_response.rbs} +111 -111
  106. data/sig/context_dev/models/{brand_prefetch_by_email_params.rbs → utility_prefetch_by_email_params.rbs} +2 -2
  107. data/sig/context_dev/models/{brand_prefetch_by_email_response.rbs → utility_prefetch_by_email_response.rbs} +2 -2
  108. data/sig/context_dev/models/{brand_prefetch_params.rbs → utility_prefetch_params.rbs} +2 -2
  109. data/sig/context_dev/models/{brand_prefetch_response.rbs → utility_prefetch_response.rbs} +2 -2
  110. data/sig/context_dev/models/web_screenshot_params.rbs +100 -0
  111. data/sig/context_dev/models/{brand_screenshot_response.rbs → web_screenshot_response.rbs} +9 -9
  112. data/sig/context_dev/models/{brand_web_scrape_images_params.rbs → web_web_scrape_html_params.rbs} +2 -2
  113. data/sig/context_dev/models/web_web_scrape_html_response.rbs +40 -0
  114. data/sig/context_dev/models/{brand_web_scrape_html_params.rbs → web_web_scrape_images_params.rbs} +2 -2
  115. data/sig/context_dev/models/web_web_scrape_images_response.rbs +98 -0
  116. data/sig/context_dev/models/{brand_web_scrape_md_params.rbs → web_web_scrape_md_params.rbs} +2 -2
  117. data/sig/context_dev/models/web_web_scrape_md_response.rbs +40 -0
  118. data/sig/context_dev/models/{brand_web_scrape_sitemap_params.rbs → web_web_scrape_sitemap_params.rbs} +2 -2
  119. data/sig/context_dev/models/{brand_web_scrape_sitemap_response.rbs → web_web_scrape_sitemap_response.rbs} +11 -11
  120. data/sig/context_dev/models.rbs +17 -17
  121. data/sig/context_dev/resources/ai.rbs +26 -0
  122. data/sig/context_dev/resources/brand.rbs +0 -84
  123. data/sig/context_dev/resources/industry.rbs +15 -0
  124. data/sig/context_dev/resources/style.rbs +21 -0
  125. data/sig/context_dev/resources/utility.rbs +19 -0
  126. data/sig/context_dev/resources/web.rbs +38 -0
  127. metadata +94 -79
  128. data/sig/context_dev/models/brand_screenshot_params.rbs +0 -100
  129. data/sig/context_dev/models/brand_web_scrape_html_response.rbs +0 -40
  130. data/sig/context_dev/models/brand_web_scrape_images_response.rbs +0 -98
  131. data/sig/context_dev/models/brand_web_scrape_md_response.rbs +0 -40
@@ -2,16 +2,13 @@
2
2
 
3
3
  module ContextDev
4
4
  module Models
5
- class BrandWebScrapeMdParams < ContextDev::Internal::Type::BaseModel
5
+ class WebWebScrapeMdParams < ContextDev::Internal::Type::BaseModel
6
6
  extend ContextDev::Internal::Type::RequestParameters::Converter
7
7
  include ContextDev::Internal::Type::RequestParameters
8
8
 
9
9
  OrHash =
10
10
  T.type_alias do
11
- T.any(
12
- ContextDev::BrandWebScrapeMdParams,
13
- ContextDev::Internal::AnyHash
14
- )
11
+ T.any(ContextDev::WebWebScrapeMdParams, ContextDev::Internal::AnyHash)
15
12
  end
16
13
 
17
14
  # Full URL to scrape and convert to markdown (must include http:// or https://
@@ -2,11 +2,11 @@
2
2
 
3
3
  module ContextDev
4
4
  module Models
5
- class BrandWebScrapeMdResponse < ContextDev::Internal::Type::BaseModel
5
+ class WebWebScrapeMdResponse < ContextDev::Internal::Type::BaseModel
6
6
  OrHash =
7
7
  T.type_alias do
8
8
  T.any(
9
- ContextDev::Models::BrandWebScrapeMdResponse,
9
+ ContextDev::Models::WebWebScrapeMdResponse,
10
10
  ContextDev::Internal::AnyHash
11
11
  )
12
12
  end
@@ -18,7 +18,7 @@ module ContextDev
18
18
  # Indicates success
19
19
  sig do
20
20
  returns(
21
- ContextDev::Models::BrandWebScrapeMdResponse::Success::TaggedBoolean
21
+ ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean
22
22
  )
23
23
  end
24
24
  attr_accessor :success
@@ -31,7 +31,7 @@ module ContextDev
31
31
  params(
32
32
  markdown: String,
33
33
  success:
34
- ContextDev::Models::BrandWebScrapeMdResponse::Success::OrBoolean,
34
+ ContextDev::Models::WebWebScrapeMdResponse::Success::OrBoolean,
35
35
  url: String
36
36
  ).returns(T.attached_class)
37
37
  end
@@ -50,7 +50,7 @@ module ContextDev
50
50
  {
51
51
  markdown: String,
52
52
  success:
53
- ContextDev::Models::BrandWebScrapeMdResponse::Success::TaggedBoolean,
53
+ ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean,
54
54
  url: String
55
55
  }
56
56
  )
@@ -66,7 +66,7 @@ module ContextDev
66
66
  T.type_alias do
67
67
  T.all(
68
68
  T::Boolean,
69
- ContextDev::Models::BrandWebScrapeMdResponse::Success
69
+ ContextDev::Models::WebWebScrapeMdResponse::Success
70
70
  )
71
71
  end
72
72
  OrBoolean = T.type_alias { T::Boolean }
@@ -74,13 +74,13 @@ module ContextDev
74
74
  TRUE =
75
75
  T.let(
76
76
  true,
77
- ContextDev::Models::BrandWebScrapeMdResponse::Success::TaggedBoolean
77
+ ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean
78
78
  )
79
79
 
80
80
  sig do
81
81
  override.returns(
82
82
  T::Array[
83
- ContextDev::Models::BrandWebScrapeMdResponse::Success::TaggedBoolean
83
+ ContextDev::Models::WebWebScrapeMdResponse::Success::TaggedBoolean
84
84
  ]
85
85
  )
86
86
  end
@@ -2,14 +2,14 @@
2
2
 
3
3
  module ContextDev
4
4
  module Models
5
- class BrandWebScrapeSitemapParams < ContextDev::Internal::Type::BaseModel
5
+ class WebWebScrapeSitemapParams < ContextDev::Internal::Type::BaseModel
6
6
  extend ContextDev::Internal::Type::RequestParameters::Converter
7
7
  include ContextDev::Internal::Type::RequestParameters
8
8
 
9
9
  OrHash =
10
10
  T.type_alias do
11
11
  T.any(
12
- ContextDev::BrandWebScrapeSitemapParams,
12
+ ContextDev::WebWebScrapeSitemapParams,
13
13
  ContextDev::Internal::AnyHash
14
14
  )
15
15
  end
@@ -2,11 +2,11 @@
2
2
 
3
3
  module ContextDev
4
4
  module Models
5
- class BrandWebScrapeSitemapResponse < ContextDev::Internal::Type::BaseModel
5
+ class WebWebScrapeSitemapResponse < ContextDev::Internal::Type::BaseModel
6
6
  OrHash =
7
7
  T.type_alias do
8
8
  T.any(
9
- ContextDev::Models::BrandWebScrapeSitemapResponse,
9
+ ContextDev::Models::WebWebScrapeSitemapResponse,
10
10
  ContextDev::Internal::AnyHash
11
11
  )
12
12
  end
@@ -16,12 +16,12 @@ module ContextDev
16
16
  attr_accessor :domain
17
17
 
18
18
  # Metadata about the sitemap crawl operation
19
- sig { returns(ContextDev::Models::BrandWebScrapeSitemapResponse::Meta) }
19
+ sig { returns(ContextDev::Models::WebWebScrapeSitemapResponse::Meta) }
20
20
  attr_reader :meta
21
21
 
22
22
  sig do
23
23
  params(
24
- meta: ContextDev::Models::BrandWebScrapeSitemapResponse::Meta::OrHash
24
+ meta: ContextDev::Models::WebWebScrapeSitemapResponse::Meta::OrHash
25
25
  ).void
26
26
  end
27
27
  attr_writer :meta
@@ -29,7 +29,7 @@ module ContextDev
29
29
  # Indicates success
30
30
  sig do
31
31
  returns(
32
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success::TaggedBoolean
32
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success::TaggedBoolean
33
33
  )
34
34
  end
35
35
  attr_accessor :success
@@ -41,9 +41,9 @@ module ContextDev
41
41
  sig do
42
42
  params(
43
43
  domain: String,
44
- meta: ContextDev::Models::BrandWebScrapeSitemapResponse::Meta::OrHash,
44
+ meta: ContextDev::Models::WebWebScrapeSitemapResponse::Meta::OrHash,
45
45
  success:
46
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success::OrBoolean,
46
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success::OrBoolean,
47
47
  urls: T::Array[String]
48
48
  ).returns(T.attached_class)
49
49
  end
@@ -63,9 +63,9 @@ module ContextDev
63
63
  override.returns(
64
64
  {
65
65
  domain: String,
66
- meta: ContextDev::Models::BrandWebScrapeSitemapResponse::Meta,
66
+ meta: ContextDev::Models::WebWebScrapeSitemapResponse::Meta,
67
67
  success:
68
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success::TaggedBoolean,
68
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success::TaggedBoolean,
69
69
  urls: T::Array[String]
70
70
  }
71
71
  )
@@ -77,7 +77,7 @@ module ContextDev
77
77
  OrHash =
78
78
  T.type_alias do
79
79
  T.any(
80
- ContextDev::Models::BrandWebScrapeSitemapResponse::Meta,
80
+ ContextDev::Models::WebWebScrapeSitemapResponse::Meta,
81
81
  ContextDev::Internal::AnyHash
82
82
  )
83
83
  end
@@ -141,7 +141,7 @@ module ContextDev
141
141
  T.type_alias do
142
142
  T.all(
143
143
  T::Boolean,
144
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success
144
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success
145
145
  )
146
146
  end
147
147
  OrBoolean = T.type_alias { T::Boolean }
@@ -149,13 +149,13 @@ module ContextDev
149
149
  TRUE =
150
150
  T.let(
151
151
  true,
152
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success::TaggedBoolean
152
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success::TaggedBoolean
153
153
  )
154
154
 
155
155
  sig do
156
156
  override.returns(
157
157
  T::Array[
158
- ContextDev::Models::BrandWebScrapeSitemapResponse::Success::TaggedBoolean
158
+ ContextDev::Models::WebWebScrapeSitemapResponse::Success::TaggedBoolean
159
159
  ]
160
160
  )
161
161
  end
@@ -1,21 +1,15 @@
1
1
  # typed: strong
2
2
 
3
3
  module ContextDev
4
- BrandAIProductParams = ContextDev::Models::BrandAIProductParams
4
+ AIAIQueryParams = ContextDev::Models::AIAIQueryParams
5
5
 
6
- BrandAIProductsParams = ContextDev::Models::BrandAIProductsParams
6
+ AIExtractProductParams = ContextDev::Models::AIExtractProductParams
7
7
 
8
- BrandAIQueryParams = ContextDev::Models::BrandAIQueryParams
9
-
10
- BrandFontsParams = ContextDev::Models::BrandFontsParams
8
+ AIExtractProductsParams = ContextDev::Models::AIExtractProductsParams
11
9
 
12
10
  BrandIdentifyFromTransactionParams =
13
11
  ContextDev::Models::BrandIdentifyFromTransactionParams
14
12
 
15
- BrandPrefetchByEmailParams = ContextDev::Models::BrandPrefetchByEmailParams
16
-
17
- BrandPrefetchParams = ContextDev::Models::BrandPrefetchParams
18
-
19
13
  BrandRetrieveByEmailParams = ContextDev::Models::BrandRetrieveByEmailParams
20
14
 
21
15
  BrandRetrieveByIsinParams = ContextDev::Models::BrandRetrieveByIsinParams
@@ -24,22 +18,30 @@ module ContextDev
24
18
 
25
19
  BrandRetrieveByTickerParams = ContextDev::Models::BrandRetrieveByTickerParams
26
20
 
27
- BrandRetrieveNaicsParams = ContextDev::Models::BrandRetrieveNaicsParams
28
-
29
21
  BrandRetrieveParams = ContextDev::Models::BrandRetrieveParams
30
22
 
31
23
  BrandRetrieveSimplifiedParams =
32
24
  ContextDev::Models::BrandRetrieveSimplifiedParams
33
25
 
34
- BrandScreenshotParams = ContextDev::Models::BrandScreenshotParams
26
+ IndustryRetrieveNaicsParams = ContextDev::Models::IndustryRetrieveNaicsParams
27
+
28
+ StyleExtractFontsParams = ContextDev::Models::StyleExtractFontsParams
29
+
30
+ StyleExtractStyleguideParams =
31
+ ContextDev::Models::StyleExtractStyleguideParams
32
+
33
+ UtilityPrefetchByEmailParams =
34
+ ContextDev::Models::UtilityPrefetchByEmailParams
35
+
36
+ UtilityPrefetchParams = ContextDev::Models::UtilityPrefetchParams
35
37
 
36
- BrandStyleguideParams = ContextDev::Models::BrandStyleguideParams
38
+ WebScreenshotParams = ContextDev::Models::WebScreenshotParams
37
39
 
38
- BrandWebScrapeHTMLParams = ContextDev::Models::BrandWebScrapeHTMLParams
40
+ WebWebScrapeHTMLParams = ContextDev::Models::WebWebScrapeHTMLParams
39
41
 
40
- BrandWebScrapeImagesParams = ContextDev::Models::BrandWebScrapeImagesParams
42
+ WebWebScrapeImagesParams = ContextDev::Models::WebWebScrapeImagesParams
41
43
 
42
- BrandWebScrapeMdParams = ContextDev::Models::BrandWebScrapeMdParams
44
+ WebWebScrapeMdParams = ContextDev::Models::WebWebScrapeMdParams
43
45
 
44
- BrandWebScrapeSitemapParams = ContextDev::Models::BrandWebScrapeSitemapParams
46
+ WebWebScrapeSitemapParams = ContextDev::Models::WebWebScrapeSitemapParams
45
47
  end
@@ -0,0 +1,76 @@
1
+ # typed: strong
2
+
3
+ module ContextDev
4
+ module Resources
5
+ class AI
6
+ # Use AI to extract specific data points from a brand's website. The AI will crawl
7
+ # the website and extract the requested information based on the provided data
8
+ # points.
9
+ sig do
10
+ params(
11
+ data_to_extract:
12
+ T::Array[ContextDev::AIAIQueryParams::DataToExtract::OrHash],
13
+ domain: String,
14
+ specific_pages: ContextDev::AIAIQueryParams::SpecificPages::OrHash,
15
+ timeout_ms: Integer,
16
+ request_options: ContextDev::RequestOptions::OrHash
17
+ ).returns(ContextDev::Models::AIAIQueryResponse)
18
+ end
19
+ def ai_query(
20
+ # Array of data points to extract from the website
21
+ data_to_extract:,
22
+ # The domain name to analyze
23
+ domain:,
24
+ # Optional object specifying which pages to analyze
25
+ specific_pages: nil,
26
+ # Optional timeout in milliseconds for the request. If the request takes longer
27
+ # than this value, it will be aborted with a 408 status code. Maximum allowed
28
+ # value is 300000ms (5 minutes).
29
+ timeout_ms: nil,
30
+ request_options: {}
31
+ )
32
+ end
33
+
34
+ # Beta feature: Given a single URL, determines if it is a product detail page,
35
+ # classifies the platform/product type, and extracts the product information.
36
+ # Supports Amazon, TikTok Shop, Etsy, and generic ecommerce sites.
37
+ sig do
38
+ params(
39
+ url: String,
40
+ timeout_ms: Integer,
41
+ request_options: ContextDev::RequestOptions::OrHash
42
+ ).returns(ContextDev::Models::AIExtractProductResponse)
43
+ end
44
+ def extract_product(
45
+ # The product page URL to extract product data from.
46
+ url:,
47
+ # Optional timeout in milliseconds for the request. Maximum allowed value is
48
+ # 300000ms (5 minutes).
49
+ timeout_ms: nil,
50
+ request_options: {}
51
+ )
52
+ end
53
+
54
+ # Beta feature: Extract product information from a brand's website. Brand.dev will
55
+ # analyze the website and return a list of products with details such as name,
56
+ # description, image, pricing, features, and more.
57
+ sig do
58
+ params(
59
+ body:
60
+ T.any(
61
+ ContextDev::AIExtractProductsParams::Body::ByDomain::OrHash,
62
+ ContextDev::AIExtractProductsParams::Body::ByDirectURL::OrHash
63
+ ),
64
+ request_options: ContextDev::RequestOptions::OrHash
65
+ ).returns(ContextDev::Models::AIExtractProductsResponse)
66
+ end
67
+ def extract_products(body:, request_options: {})
68
+ end
69
+
70
+ # @api private
71
+ sig { params(client: ContextDev::Client).returns(T.attached_class) }
72
+ def self.new(client:)
73
+ end
74
+ end
75
+ end
76
+ end
@@ -34,91 +34,6 @@ module ContextDev
34
34
  )
35
35
  end
36
36
 
37
- # Beta feature: Given a single URL, determines if it is a product detail page,
38
- # classifies the platform/product type, and extracts the product information.
39
- # Supports Amazon, TikTok Shop, Etsy, and generic ecommerce sites.
40
- sig do
41
- params(
42
- url: String,
43
- timeout_ms: Integer,
44
- request_options: ContextDev::RequestOptions::OrHash
45
- ).returns(ContextDev::Models::BrandAIProductResponse)
46
- end
47
- def ai_product(
48
- # The product page URL to extract product data from.
49
- url:,
50
- # Optional timeout in milliseconds for the request. Maximum allowed value is
51
- # 300000ms (5 minutes).
52
- timeout_ms: nil,
53
- request_options: {}
54
- )
55
- end
56
-
57
- # Beta feature: Extract product information from a brand's website. Brand.dev will
58
- # analyze the website and return a list of products with details such as name,
59
- # description, image, pricing, features, and more.
60
- sig do
61
- params(
62
- body:
63
- T.any(
64
- ContextDev::BrandAIProductsParams::Body::ByDomain::OrHash,
65
- ContextDev::BrandAIProductsParams::Body::ByDirectURL::OrHash
66
- ),
67
- request_options: ContextDev::RequestOptions::OrHash
68
- ).returns(ContextDev::Models::BrandAIProductsResponse)
69
- end
70
- def ai_products(body:, request_options: {})
71
- end
72
-
73
- # Use AI to extract specific data points from a brand's website. The AI will crawl
74
- # the website and extract the requested information based on the provided data
75
- # points.
76
- sig do
77
- params(
78
- data_to_extract:
79
- T::Array[ContextDev::BrandAIQueryParams::DataToExtract::OrHash],
80
- domain: String,
81
- specific_pages: ContextDev::BrandAIQueryParams::SpecificPages::OrHash,
82
- timeout_ms: Integer,
83
- request_options: ContextDev::RequestOptions::OrHash
84
- ).returns(ContextDev::Models::BrandAIQueryResponse)
85
- end
86
- def ai_query(
87
- # Array of data points to extract from the website
88
- data_to_extract:,
89
- # The domain name to analyze
90
- domain:,
91
- # Optional object specifying which pages to analyze
92
- specific_pages: nil,
93
- # Optional timeout in milliseconds for the request. If the request takes longer
94
- # than this value, it will be aborted with a 408 status code. Maximum allowed
95
- # value is 300000ms (5 minutes).
96
- timeout_ms: nil,
97
- request_options: {}
98
- )
99
- end
100
-
101
- # Extract font information from a brand's website including font families, usage
102
- # statistics, fallbacks, and element/word counts.
103
- sig do
104
- params(
105
- domain: String,
106
- timeout_ms: Integer,
107
- request_options: ContextDev::RequestOptions::OrHash
108
- ).returns(ContextDev::Models::BrandFontsResponse)
109
- end
110
- def fonts(
111
- # Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The
112
- # domain will be automatically normalized and validated.
113
- domain:,
114
- # Optional timeout in milliseconds for the request. If the request takes longer
115
- # than this value, it will be aborted with a 408 status code. Maximum allowed
116
- # value is 300000ms (5 minutes).
117
- timeout_ms: nil,
118
- request_options: {}
119
- )
120
- end
121
-
122
37
  # Endpoint specially designed for platforms that want to identify transaction data
123
38
  # by the transaction title.
124
39
  sig do
@@ -168,54 +83,6 @@ module ContextDev
168
83
  )
169
84
  end
170
85
 
171
- # Signal that you may fetch brand data for a particular domain soon to improve
172
- # latency. This endpoint does not charge credits and is available for paid
173
- # customers to optimize future requests. [You must be on a paid plan to use this
174
- # endpoint]
175
- sig do
176
- params(
177
- domain: String,
178
- timeout_ms: Integer,
179
- request_options: ContextDev::RequestOptions::OrHash
180
- ).returns(ContextDev::Models::BrandPrefetchResponse)
181
- end
182
- def prefetch(
183
- # Domain name to prefetch brand data for
184
- domain:,
185
- # Optional timeout in milliseconds for the request. If the request takes longer
186
- # than this value, it will be aborted with a 408 status code. Maximum allowed
187
- # value is 300000ms (5 minutes).
188
- timeout_ms: nil,
189
- request_options: {}
190
- )
191
- end
192
-
193
- # Signal that you may fetch brand data for a particular domain soon to improve
194
- # latency. This endpoint accepts an email address, extracts the domain from it,
195
- # validates that it's not a disposable or free email provider, and queues the
196
- # domain for prefetching. This endpoint does not charge credits and is available
197
- # for paid customers to optimize future requests. [You must be on a paid plan to
198
- # use this endpoint]
199
- sig do
200
- params(
201
- email: String,
202
- timeout_ms: Integer,
203
- request_options: ContextDev::RequestOptions::OrHash
204
- ).returns(ContextDev::Models::BrandPrefetchByEmailResponse)
205
- end
206
- def prefetch_by_email(
207
- # Email address to prefetch brand data for. The domain will be extracted from the
208
- # email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email
209
- # addresses are not allowed.
210
- email:,
211
- # Optional timeout in milliseconds for the request. If the request takes longer
212
- # than this value, it will be aborted with a 408 status code. Maximum allowed
213
- # value is 300000ms (5 minutes).
214
- timeout_ms: nil,
215
- request_options: {}
216
- )
217
- end
218
-
219
86
  # Retrieve brand information using an email address while detecting disposable and
220
87
  # free email addresses. This endpoint extracts the domain from the email address
221
88
  # and returns brand data for that domain. Disposable and free email addresses
@@ -350,34 +217,6 @@ module ContextDev
350
217
  )
351
218
  end
352
219
 
353
- # Endpoint to classify any brand into a 2022 NAICS code.
354
- sig do
355
- params(
356
- input: String,
357
- max_results: Integer,
358
- min_results: Integer,
359
- timeout_ms: Integer,
360
- request_options: ContextDev::RequestOptions::OrHash
361
- ).returns(ContextDev::Models::BrandRetrieveNaicsResponse)
362
- end
363
- def retrieve_naics(
364
- # Brand domain or title to retrieve NAICS code for. If a valid domain is provided
365
- # in `input`, it will be used for classification, otherwise, we will search for
366
- # the brand using the provided title.
367
- input:,
368
- # Maximum number of NAICS codes to return. Must be between 1 and 10. Defaults
369
- # to 5.
370
- max_results: nil,
371
- # Minimum number of NAICS codes to return. Must be at least 1. Defaults to 1.
372
- min_results: nil,
373
- # Optional timeout in milliseconds for the request. If the request takes longer
374
- # than this value, it will be aborted with a 408 status code. Maximum allowed
375
- # value is 300000ms (5 minutes).
376
- timeout_ms: nil,
377
- request_options: {}
378
- )
379
- end
380
-
381
220
  # Returns a simplified version of brand data containing only essential
382
221
  # information: domain, title, colors, logos, and backdrops. This endpoint is
383
222
  # optimized for faster responses and reduced data transfer.
@@ -399,148 +238,6 @@ module ContextDev
399
238
  )
400
239
  end
401
240
 
402
- # Capture a screenshot of a website. Supports both viewport (standard browser
403
- # view) and full-page screenshots. Can also screenshot specific page types (login,
404
- # pricing, etc.) by using heuristics to find the appropriate URL. Returns a URL to
405
- # the uploaded screenshot image hosted on our CDN.
406
- sig do
407
- params(
408
- domain: String,
409
- full_screenshot:
410
- ContextDev::BrandScreenshotParams::FullScreenshot::OrSymbol,
411
- page: ContextDev::BrandScreenshotParams::Page::OrSymbol,
412
- prioritize: ContextDev::BrandScreenshotParams::Prioritize::OrSymbol,
413
- request_options: ContextDev::RequestOptions::OrHash
414
- ).returns(ContextDev::Models::BrandScreenshotResponse)
415
- end
416
- def screenshot(
417
- # Domain name to take screenshot of (e.g., 'example.com', 'google.com'). The
418
- # domain will be automatically normalized and validated.
419
- domain:,
420
- # Optional parameter to determine screenshot type. If 'true', takes a full page
421
- # screenshot capturing all content. If 'false' or not provided, takes a viewport
422
- # screenshot (standard browser view).
423
- full_screenshot: nil,
424
- # Optional parameter to specify which page type to screenshot. If provided, the
425
- # system will scrape the domain's links and use heuristics to find the most
426
- # appropriate URL for the specified page type (30 supported languages). If not
427
- # provided, screenshots the main domain landing page.
428
- page: nil,
429
- # Optional parameter to prioritize screenshot capture. If 'speed', optimizes for
430
- # faster capture with basic quality. If 'quality', optimizes for higher quality
431
- # with longer wait times. Defaults to 'quality' if not provided.
432
- prioritize: nil,
433
- request_options: {}
434
- )
435
- end
436
-
437
- # Automatically extract comprehensive design system information from a brand's
438
- # website including colors, typography, spacing, shadows, and UI components.
439
- # Either 'domain' or 'directUrl' must be provided as a query parameter, but not
440
- # both.
441
- sig do
442
- params(
443
- direct_url: String,
444
- domain: String,
445
- prioritize: ContextDev::BrandStyleguideParams::Prioritize::OrSymbol,
446
- timeout_ms: Integer,
447
- request_options: ContextDev::RequestOptions::OrHash
448
- ).returns(ContextDev::Models::BrandStyleguideResponse)
449
- end
450
- def styleguide(
451
- # A specific URL to fetch the styleguide from directly, bypassing domain
452
- # resolution (e.g., 'https://example.com/design-system').
453
- direct_url: nil,
454
- # Domain name to extract styleguide from (e.g., 'example.com', 'google.com'). The
455
- # domain will be automatically normalized and validated.
456
- domain: nil,
457
- # Optional parameter to prioritize screenshot capture for styleguide extraction.
458
- # If 'speed', optimizes for faster capture with basic quality. If 'quality',
459
- # optimizes for higher quality with longer wait times. Defaults to 'quality' if
460
- # not provided.
461
- prioritize: nil,
462
- # Optional timeout in milliseconds for the request. If the request takes longer
463
- # than this value, it will be aborted with a 408 status code. Maximum allowed
464
- # value is 300000ms (5 minutes).
465
- timeout_ms: nil,
466
- request_options: {}
467
- )
468
- end
469
-
470
- # Scrapes the given URL and returns the raw HTML content of the page. Uses
471
- # automatic proxy escalation to handle blocked sites.
472
- sig do
473
- params(
474
- url: String,
475
- request_options: ContextDev::RequestOptions::OrHash
476
- ).returns(ContextDev::Models::BrandWebScrapeHTMLResponse)
477
- end
478
- def web_scrape_html(
479
- # Full URL to scrape (must include http:// or https:// protocol)
480
- url:,
481
- request_options: {}
482
- )
483
- end
484
-
485
- # Scrapes all images from the given URL. Extracts images from img, svg,
486
- # picture/source, link, and video elements including inline SVGs, base64 data
487
- # URIs, and standard URLs.
488
- sig do
489
- params(
490
- url: String,
491
- request_options: ContextDev::RequestOptions::OrHash
492
- ).returns(ContextDev::Models::BrandWebScrapeImagesResponse)
493
- end
494
- def web_scrape_images(
495
- # Full URL to scrape images from (must include http:// or https:// protocol)
496
- url:,
497
- request_options: {}
498
- )
499
- end
500
-
501
- # Scrapes the given URL, converts the HTML content to GitHub Flavored Markdown
502
- # (GFM), and returns the result. Uses automatic proxy escalation to handle blocked
503
- # sites.
504
- sig do
505
- params(
506
- url: String,
507
- include_images: T::Boolean,
508
- include_links: T::Boolean,
509
- shorten_base64_images: T::Boolean,
510
- request_options: ContextDev::RequestOptions::OrHash
511
- ).returns(ContextDev::Models::BrandWebScrapeMdResponse)
512
- end
513
- def web_scrape_md(
514
- # Full URL to scrape and convert to markdown (must include http:// or https://
515
- # protocol)
516
- url:,
517
- # Include image references in Markdown output
518
- include_images: nil,
519
- # Preserve hyperlinks in Markdown output
520
- include_links: nil,
521
- # Shorten base64-encoded image data in the Markdown output
522
- shorten_base64_images: nil,
523
- request_options: {}
524
- )
525
- end
526
-
527
- # Crawls the sitemap of the given domain and returns all discovered page URLs.
528
- # Supports sitemap index files (recursive), parallel fetching with concurrency
529
- # control, deduplication, and filters out non-page resources (images, PDFs, etc.).
530
- sig do
531
- params(
532
- domain: String,
533
- request_options: ContextDev::RequestOptions::OrHash
534
- ).returns(ContextDev::Models::BrandWebScrapeSitemapResponse)
535
- end
536
- def web_scrape_sitemap(
537
- # Domain name to crawl sitemaps for (e.g., 'example.com'). The domain will be
538
- # automatically normalized and validated.
539
- domain:,
540
- request_options: {}
541
- )
542
- end
543
-
544
241
  # @api private
545
242
  sig { params(client: ContextDev::Client).returns(T.attached_class) }
546
243
  def self.new(client:)