context.dev 1.31.0 → 1.32.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_ai_query_response.rb +36 -1
  5. data/lib/context_dev/models/ai_extract_product_response.rb +36 -1
  6. data/lib/context_dev/models/ai_extract_products_response.rb +36 -1
  7. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +36 -1
  8. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +36 -1
  9. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +36 -1
  10. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +36 -1
  11. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +36 -1
  12. data/lib/context_dev/models/brand_retrieve_response.rb +36 -1
  13. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +36 -1
  14. data/lib/context_dev/models/industry_retrieve_naics_response.rb +36 -1
  15. data/lib/context_dev/models/industry_retrieve_sic_response.rb +33 -1
  16. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +36 -1
  17. data/lib/context_dev/models/utility_prefetch_response.rb +36 -1
  18. data/lib/context_dev/models/web_extract_competitors_response.rb +36 -1
  19. data/lib/context_dev/models/web_extract_fonts_response.rb +33 -1
  20. data/lib/context_dev/models/web_extract_params.rb +18 -1
  21. data/lib/context_dev/models/web_extract_response.rb +36 -1
  22. data/lib/context_dev/models/web_extract_styleguide_response.rb +36 -1
  23. data/lib/context_dev/models/web_screenshot_response.rb +36 -1
  24. data/lib/context_dev/models/web_search_response.rb +36 -1
  25. data/lib/context_dev/models/web_web_crawl_md_response.rb +37 -1
  26. data/lib/context_dev/models/web_web_scrape_html_response.rb +33 -1
  27. data/lib/context_dev/models/web_web_scrape_images_response.rb +36 -1
  28. data/lib/context_dev/models/web_web_scrape_md_response.rb +36 -1
  29. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +36 -1
  30. data/lib/context_dev/resources/web.rb +5 -1
  31. data/lib/context_dev/version.rb +1 -1
  32. data/rbi/context_dev/models/ai_ai_query_response.rbi +62 -0
  33. data/rbi/context_dev/models/ai_extract_product_response.rbi +65 -0
  34. data/rbi/context_dev/models/ai_extract_products_response.rbi +65 -0
  35. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +67 -0
  36. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +67 -0
  37. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +67 -0
  38. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +67 -0
  39. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +67 -0
  40. data/rbi/context_dev/models/brand_retrieve_response.rbi +65 -0
  41. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +67 -0
  42. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +67 -0
  43. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +67 -0
  44. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +79 -4
  45. data/rbi/context_dev/models/utility_prefetch_response.rbi +77 -4
  46. data/rbi/context_dev/models/web_extract_competitors_response.rbi +70 -3
  47. data/rbi/context_dev/models/web_extract_fonts_response.rbi +68 -3
  48. data/rbi/context_dev/models/web_extract_params.rbi +24 -0
  49. data/rbi/context_dev/models/web_extract_response.rbi +65 -3
  50. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +67 -0
  51. data/rbi/context_dev/models/web_screenshot_response.rbi +65 -0
  52. data/rbi/context_dev/models/web_search_response.rbi +65 -3
  53. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +71 -3
  54. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +68 -3
  55. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +68 -3
  56. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +68 -3
  57. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +70 -3
  58. data/rbi/context_dev/resources/web.rbi +7 -0
  59. data/sig/context_dev/models/ai_ai_query_response.rbs +28 -0
  60. data/sig/context_dev/models/ai_extract_product_response.rbs +28 -0
  61. data/sig/context_dev/models/ai_extract_products_response.rbs +28 -0
  62. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +28 -0
  63. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +28 -0
  64. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +28 -0
  65. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +28 -0
  66. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +28 -0
  67. data/sig/context_dev/models/brand_retrieve_response.rbs +28 -0
  68. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +28 -0
  69. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +28 -0
  70. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +28 -0
  71. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +38 -2
  72. data/sig/context_dev/models/utility_prefetch_response.rbs +38 -2
  73. data/sig/context_dev/models/web_extract_competitors_response.rbs +31 -3
  74. data/sig/context_dev/models/web_extract_fonts_response.rbs +31 -3
  75. data/sig/context_dev/models/web_extract_params.rbs +14 -0
  76. data/sig/context_dev/models/web_extract_response.rbs +31 -3
  77. data/sig/context_dev/models/web_extract_styleguide_response.rbs +28 -0
  78. data/sig/context_dev/models/web_screenshot_response.rbs +28 -0
  79. data/sig/context_dev/models/web_search_response.rbs +31 -3
  80. data/sig/context_dev/models/web_web_crawl_md_response.rbs +31 -3
  81. data/sig/context_dev/models/web_web_scrape_html_response.rbs +31 -3
  82. data/sig/context_dev/models/web_web_scrape_images_response.rbs +31 -3
  83. data/sig/context_dev/models/web_web_scrape_md_response.rbs +31 -3
  84. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +31 -3
  85. data/sig/context_dev/resources/web.rbs +2 -0
  86. metadata +2 -2
@@ -15,9 +15,22 @@ module ContextDev
15
15
  required :results,
16
16
  -> { ContextDev::Internal::Type::ArrayOf[ContextDev::Models::WebWebCrawlMdResponse::Result] }
17
17
 
18
- # @!method initialize(metadata:, results:)
18
+ # @!attribute key_metadata
19
+ # Metadata about the API key used for the request. Included in every response
20
+ # whenever a valid API key is provided, even when the response status is not 200.
21
+ #
22
+ # @return [ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata, nil]
23
+ optional :key_metadata, -> { ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata }
24
+
25
+ # @!method initialize(metadata:, results:, key_metadata: nil)
26
+ # Some parameter documentations has been truncated, see
27
+ # {ContextDev::Models::WebWebCrawlMdResponse} for more details.
28
+ #
19
29
  # @param metadata [ContextDev::Models::WebWebCrawlMdResponse::Metadata]
30
+ #
20
31
  # @param results [Array<ContextDev::Models::WebWebCrawlMdResponse::Result>]
32
+ #
33
+ # @param key_metadata [ContextDev::Models::WebWebCrawlMdResponse::KeyMetadata] Metadata about the API key used for the request. Included in every response when
21
34
 
22
35
  # @see ContextDev::Models::WebWebCrawlMdResponse#metadata
23
36
  class Metadata < ContextDev::Internal::Type::BaseModel
@@ -128,6 +141,29 @@ module ContextDev
128
141
  # @param url [String] The URL that was fetched
129
142
  end
130
143
  end
144
+
145
+ # @see ContextDev::Models::WebWebCrawlMdResponse#key_metadata
146
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
147
+ # @!attribute credits_consumed
148
+ # The number of credits consumed by this request.
149
+ #
150
+ # @return [Integer]
151
+ required :credits_consumed, Integer
152
+
153
+ # @!attribute credits_remaining
154
+ # The number of credits remaining for your organization after this request.
155
+ #
156
+ # @return [Integer]
157
+ required :credits_remaining, Integer
158
+
159
+ # @!method initialize(credits_consumed:, credits_remaining:)
160
+ # Metadata about the API key used for the request. Included in every response
161
+ # whenever a valid API key is provided, even when the response status is not 200.
162
+ #
163
+ # @param credits_consumed [Integer] The number of credits consumed by this request.
164
+ #
165
+ # @param credits_remaining [Integer] The number of credits remaining for your organization after this request.
166
+ end
131
167
  end
132
168
  end
133
169
  end
@@ -31,7 +31,14 @@ module ContextDev
31
31
  # @return [String]
32
32
  required :url, String
33
33
 
34
- # @!method initialize(html:, success:, type:, url:)
34
+ # @!attribute key_metadata
35
+ # Metadata about the API key used for the request. Included in every response
36
+ # whenever a valid API key is provided, even when the response status is not 200.
37
+ #
38
+ # @return [ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata, nil]
39
+ optional :key_metadata, -> { ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata }
40
+
41
+ # @!method initialize(html:, success:, type:, url:, key_metadata: nil)
35
42
  # Some parameter documentations has been truncated, see
36
43
  # {ContextDev::Models::WebWebScrapeHTMLResponse} for more details.
37
44
  #
@@ -42,6 +49,8 @@ module ContextDev
42
49
  # @param type [Symbol, ContextDev::Models::WebWebScrapeHTMLResponse::Type] Detected content type of the returned `html` field. Sitemaps and feeds are surfa
43
50
  #
44
51
  # @param url [String] The URL that was scraped
52
+ #
53
+ # @param key_metadata [ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata] Metadata about the API key used for the request. Included in every response when
45
54
 
46
55
  # Indicates success
47
56
  #
@@ -74,6 +83,29 @@ module ContextDev
74
83
  # @!method self.values
75
84
  # @return [Array<Symbol>]
76
85
  end
86
+
87
+ # @see ContextDev::Models::WebWebScrapeHTMLResponse#key_metadata
88
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
89
+ # @!attribute credits_consumed
90
+ # The number of credits consumed by this request.
91
+ #
92
+ # @return [Integer]
93
+ required :credits_consumed, Integer
94
+
95
+ # @!attribute credits_remaining
96
+ # The number of credits remaining for your organization after this request.
97
+ #
98
+ # @return [Integer]
99
+ required :credits_remaining, Integer
100
+
101
+ # @!method initialize(credits_consumed:, credits_remaining:)
102
+ # Metadata about the API key used for the request. Included in every response
103
+ # whenever a valid API key is provided, even when the response status is not 200.
104
+ #
105
+ # @param credits_consumed [Integer] The number of credits consumed by this request.
106
+ #
107
+ # @param credits_remaining [Integer] The number of credits remaining for your organization after this request.
108
+ end
77
109
  end
78
110
  end
79
111
  end
@@ -23,12 +23,24 @@ module ContextDev
23
23
  # @return [String]
24
24
  required :url, String
25
25
 
26
- # @!method initialize(images:, success:, url:)
26
+ # @!attribute key_metadata
27
+ # Metadata about the API key used for the request. Included in every response
28
+ # whenever a valid API key is provided, even when the response status is not 200.
29
+ #
30
+ # @return [ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata, nil]
31
+ optional :key_metadata, -> { ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata }
32
+
33
+ # @!method initialize(images:, success:, url:, key_metadata: nil)
34
+ # Some parameter documentations has been truncated, see
35
+ # {ContextDev::Models::WebWebScrapeImagesResponse} for more details.
36
+ #
27
37
  # @param images [Array<ContextDev::Models::WebWebScrapeImagesResponse::Image>] Images found on the page.
28
38
  #
29
39
  # @param success [Boolean, ContextDev::Models::WebWebScrapeImagesResponse::Success] Always true on success.
30
40
  #
31
41
  # @param url [String] Page URL that was scraped.
42
+ #
43
+ # @param key_metadata [ContextDev::Models::WebWebScrapeImagesResponse::KeyMetadata] Metadata about the API key used for the request. Included in every response when
32
44
 
33
45
  class Image < ContextDev::Internal::Type::BaseModel
34
46
  # @!attribute alt
@@ -183,6 +195,29 @@ module ContextDev
183
195
  # @!method self.values
184
196
  # @return [Array<Boolean>]
185
197
  end
198
+
199
+ # @see ContextDev::Models::WebWebScrapeImagesResponse#key_metadata
200
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
201
+ # @!attribute credits_consumed
202
+ # The number of credits consumed by this request.
203
+ #
204
+ # @return [Integer]
205
+ required :credits_consumed, Integer
206
+
207
+ # @!attribute credits_remaining
208
+ # The number of credits remaining for your organization after this request.
209
+ #
210
+ # @return [Integer]
211
+ required :credits_remaining, Integer
212
+
213
+ # @!method initialize(credits_consumed:, credits_remaining:)
214
+ # Metadata about the API key used for the request. Included in every response
215
+ # whenever a valid API key is provided, even when the response status is not 200.
216
+ #
217
+ # @param credits_consumed [Integer] The number of credits consumed by this request.
218
+ #
219
+ # @param credits_remaining [Integer] The number of credits remaining for your organization after this request.
220
+ end
186
221
  end
187
222
  end
188
223
  end
@@ -22,12 +22,24 @@ module ContextDev
22
22
  # @return [String]
23
23
  required :url, String
24
24
 
25
- # @!method initialize(markdown:, success:, url:)
25
+ # @!attribute key_metadata
26
+ # Metadata about the API key used for the request. Included in every response
27
+ # whenever a valid API key is provided, even when the response status is not 200.
28
+ #
29
+ # @return [ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata, nil]
30
+ optional :key_metadata, -> { ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata }
31
+
32
+ # @!method initialize(markdown:, success:, url:, key_metadata: nil)
33
+ # Some parameter documentations has been truncated, see
34
+ # {ContextDev::Models::WebWebScrapeMdResponse} for more details.
35
+ #
26
36
  # @param markdown [String] Page content converted to GitHub Flavored Markdown
27
37
  #
28
38
  # @param success [Boolean, ContextDev::Models::WebWebScrapeMdResponse::Success] Indicates success
29
39
  #
30
40
  # @param url [String] The URL that was scraped
41
+ #
42
+ # @param key_metadata [ContextDev::Models::WebWebScrapeMdResponse::KeyMetadata] Metadata about the API key used for the request. Included in every response when
31
43
 
32
44
  # Indicates success
33
45
  #
@@ -40,6 +52,29 @@ module ContextDev
40
52
  # @!method self.values
41
53
  # @return [Array<Boolean>]
42
54
  end
55
+
56
+ # @see ContextDev::Models::WebWebScrapeMdResponse#key_metadata
57
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
58
+ # @!attribute credits_consumed
59
+ # The number of credits consumed by this request.
60
+ #
61
+ # @return [Integer]
62
+ required :credits_consumed, Integer
63
+
64
+ # @!attribute credits_remaining
65
+ # The number of credits remaining for your organization after this request.
66
+ #
67
+ # @return [Integer]
68
+ required :credits_remaining, Integer
69
+
70
+ # @!method initialize(credits_consumed:, credits_remaining:)
71
+ # Metadata about the API key used for the request. Included in every response
72
+ # whenever a valid API key is provided, even when the response status is not 200.
73
+ #
74
+ # @param credits_consumed [Integer] The number of credits consumed by this request.
75
+ #
76
+ # @param credits_remaining [Integer] The number of credits remaining for your organization after this request.
77
+ end
43
78
  end
44
79
  end
45
80
  end
@@ -28,7 +28,17 @@ module ContextDev
28
28
  # @return [Array<String>]
29
29
  required :urls, ContextDev::Internal::Type::ArrayOf[String]
30
30
 
31
- # @!method initialize(domain:, meta:, success:, urls:)
31
+ # @!attribute key_metadata
32
+ # Metadata about the API key used for the request. Included in every response
33
+ # whenever a valid API key is provided, even when the response status is not 200.
34
+ #
35
+ # @return [ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata, nil]
36
+ optional :key_metadata, -> { ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata }
37
+
38
+ # @!method initialize(domain:, meta:, success:, urls:, key_metadata: nil)
39
+ # Some parameter documentations has been truncated, see
40
+ # {ContextDev::Models::WebWebScrapeSitemapResponse} for more details.
41
+ #
32
42
  # @param domain [String] The normalized domain that was crawled
33
43
  #
34
44
  # @param meta [ContextDev::Models::WebWebScrapeSitemapResponse::Meta] Metadata about the sitemap crawl operation
@@ -36,6 +46,8 @@ module ContextDev
36
46
  # @param success [Boolean, ContextDev::Models::WebWebScrapeSitemapResponse::Success] Indicates success
37
47
  #
38
48
  # @param urls [Array<String>] Array of discovered page URLs from the sitemap (max 500)
49
+ #
50
+ # @param key_metadata [ContextDev::Models::WebWebScrapeSitemapResponse::KeyMetadata] Metadata about the API key used for the request. Included in every response when
39
51
 
40
52
  # @see ContextDev::Models::WebWebScrapeSitemapResponse#meta
41
53
  class Meta < ContextDev::Internal::Type::BaseModel
@@ -86,6 +98,29 @@ module ContextDev
86
98
  # @!method self.values
87
99
  # @return [Array<Boolean>]
88
100
  end
101
+
102
+ # @see ContextDev::Models::WebWebScrapeSitemapResponse#key_metadata
103
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
104
+ # @!attribute credits_consumed
105
+ # The number of credits consumed by this request.
106
+ #
107
+ # @return [Integer]
108
+ required :credits_consumed, Integer
109
+
110
+ # @!attribute credits_remaining
111
+ # The number of credits remaining for your organization after this request.
112
+ #
113
+ # @return [Integer]
114
+ required :credits_remaining, Integer
115
+
116
+ # @!method initialize(credits_consumed:, credits_remaining:)
117
+ # Metadata about the API key used for the request. Included in every response
118
+ # whenever a valid API key is provided, even when the response status is not 200.
119
+ #
120
+ # @param credits_consumed [Integer] The number of credits consumed by this request.
121
+ #
122
+ # @param credits_remaining [Integer] The number of credits remaining for your organization after this request.
123
+ end
89
124
  end
90
125
  end
91
126
  end
@@ -9,7 +9,7 @@ module ContextDev
9
9
  # Crawl a website, use the provided JSON Schema and instructions to prioritize
10
10
  # relevant internal links, and extract structured data from the selected pages.
11
11
  #
12
- # @overload extract(schema:, url:, fact_check: nil, follow_subdomains: nil, include_frames: nil, instructions: nil, max_age_ms: nil, pdf: nil, stop_after_ms: nil, timeout_ms: nil, wait_for_ms: nil, request_options: {})
12
+ # @overload extract(schema:, url:, fact_check: nil, follow_subdomains: nil, include_frames: nil, instructions: nil, max_age_ms: nil, max_depth: nil, max_pages: nil, pdf: nil, stop_after_ms: nil, timeout_ms: nil, wait_for_ms: nil, request_options: {})
13
13
  #
14
14
  # @param schema [Hash{Symbol=>Object}] JSON Schema for the returned data object. TypeScript Zod users can pass a JSON S
15
15
  #
@@ -25,6 +25,10 @@ module ContextDev
25
25
  #
26
26
  # @param max_age_ms [Integer] Return cached scrape results if a prior scrape for the same parameters is younge
27
27
  #
28
+ # @param max_depth [Integer] Optional maximum link depth from the starting URL (0 = only the starting page).
29
+ #
30
+ # @param max_pages [Integer] Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
31
+ #
28
32
  # @param pdf [ContextDev::Models::WebExtractParams::Pdf]
29
33
  #
30
34
  # @param stop_after_ms [Integer] Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000 (1
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ContextDev
4
- VERSION = "1.31.0"
4
+ VERSION = "1.32.0"
5
5
  end
@@ -38,6 +38,21 @@ module ContextDev
38
38
  sig { params(domain: String).void }
39
39
  attr_writer :domain
40
40
 
41
+ # Metadata about the API key used for the request. Included in every response
42
+ # whenever a valid API key is provided, even when the response status is not 200.
43
+ sig do
44
+ returns(T.nilable(ContextDev::Models::AIAIQueryResponse::KeyMetadata))
45
+ end
46
+ attr_reader :key_metadata
47
+
48
+ sig do
49
+ params(
50
+ key_metadata:
51
+ ContextDev::Models::AIAIQueryResponse::KeyMetadata::OrHash
52
+ ).void
53
+ end
54
+ attr_writer :key_metadata
55
+
41
56
  # Status of the response, e.g., 'ok'
42
57
  sig { returns(T.nilable(String)) }
43
58
  attr_reader :status
@@ -59,6 +74,8 @@ module ContextDev
59
74
  ContextDev::Models::AIAIQueryResponse::DataExtracted::OrHash
60
75
  ],
61
76
  domain: String,
77
+ key_metadata:
78
+ ContextDev::Models::AIAIQueryResponse::KeyMetadata::OrHash,
62
79
  status: String,
63
80
  urls_analyzed: T::Array[String]
64
81
  ).returns(T.attached_class)
@@ -68,6 +85,9 @@ module ContextDev
68
85
  data_extracted: nil,
69
86
  # The domain that was analyzed
70
87
  domain: nil,
88
+ # Metadata about the API key used for the request. Included in every response
89
+ # whenever a valid API key is provided, even when the response status is not 200.
90
+ key_metadata: nil,
71
91
  # Status of the response, e.g., 'ok'
72
92
  status: nil,
73
93
  # List of URLs that were analyzed
@@ -81,6 +101,7 @@ module ContextDev
81
101
  data_extracted:
82
102
  T::Array[ContextDev::Models::AIAIQueryResponse::DataExtracted],
83
103
  domain: String,
104
+ key_metadata: ContextDev::Models::AIAIQueryResponse::KeyMetadata,
84
105
  status: String,
85
106
  urls_analyzed: T::Array[String]
86
107
  }
@@ -200,6 +221,47 @@ module ContextDev
200
221
  )
201
222
  end
202
223
  end
224
+
225
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
226
+ OrHash =
227
+ T.type_alias do
228
+ T.any(
229
+ ContextDev::Models::AIAIQueryResponse::KeyMetadata,
230
+ ContextDev::Internal::AnyHash
231
+ )
232
+ end
233
+
234
+ # The number of credits consumed by this request.
235
+ sig { returns(Integer) }
236
+ attr_accessor :credits_consumed
237
+
238
+ # The number of credits remaining for your organization after this request.
239
+ sig { returns(Integer) }
240
+ attr_accessor :credits_remaining
241
+
242
+ # Metadata about the API key used for the request. Included in every response
243
+ # whenever a valid API key is provided, even when the response status is not 200.
244
+ sig do
245
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
246
+ T.attached_class
247
+ )
248
+ end
249
+ def self.new(
250
+ # The number of credits consumed by this request.
251
+ credits_consumed:,
252
+ # The number of credits remaining for your organization after this request.
253
+ credits_remaining:
254
+ )
255
+ end
256
+
257
+ sig do
258
+ override.returns(
259
+ { credits_consumed: Integer, credits_remaining: Integer }
260
+ )
261
+ end
262
+ def to_hash
263
+ end
264
+ end
203
265
  end
204
266
  end
205
267
  end
@@ -18,6 +18,23 @@ module ContextDev
18
18
  sig { params(is_product_page: T::Boolean).void }
19
19
  attr_writer :is_product_page
20
20
 
21
+ # Metadata about the API key used for the request. Included in every response
22
+ # whenever a valid API key is provided, even when the response status is not 200.
23
+ sig do
24
+ returns(
25
+ T.nilable(ContextDev::Models::AIExtractProductResponse::KeyMetadata)
26
+ )
27
+ end
28
+ attr_reader :key_metadata
29
+
30
+ sig do
31
+ params(
32
+ key_metadata:
33
+ ContextDev::Models::AIExtractProductResponse::KeyMetadata::OrHash
34
+ ).void
35
+ end
36
+ attr_writer :key_metadata
37
+
21
38
  # The detected ecommerce platform, or null if not a product page
22
39
  sig do
23
40
  returns(
@@ -49,6 +66,8 @@ module ContextDev
49
66
  sig do
50
67
  params(
51
68
  is_product_page: T::Boolean,
69
+ key_metadata:
70
+ ContextDev::Models::AIExtractProductResponse::KeyMetadata::OrHash,
52
71
  platform:
53
72
  T.nilable(
54
73
  ContextDev::Models::AIExtractProductResponse::Platform::OrSymbol
@@ -62,6 +81,9 @@ module ContextDev
62
81
  def self.new(
63
82
  # Whether the given URL is a product detail page
64
83
  is_product_page: nil,
84
+ # Metadata about the API key used for the request. Included in every response
85
+ # whenever a valid API key is provided, even when the response status is not 200.
86
+ key_metadata: nil,
65
87
  # The detected ecommerce platform, or null if not a product page
66
88
  platform: nil,
67
89
  # The extracted product data, or null if not a product page
@@ -73,6 +95,8 @@ module ContextDev
73
95
  override.returns(
74
96
  {
75
97
  is_product_page: T::Boolean,
98
+ key_metadata:
99
+ ContextDev::Models::AIExtractProductResponse::KeyMetadata,
76
100
  platform:
77
101
  T.nilable(
78
102
  ContextDev::Models::AIExtractProductResponse::Platform::TaggedSymbol
@@ -85,6 +109,47 @@ module ContextDev
85
109
  def to_hash
86
110
  end
87
111
 
112
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
113
+ OrHash =
114
+ T.type_alias do
115
+ T.any(
116
+ ContextDev::Models::AIExtractProductResponse::KeyMetadata,
117
+ ContextDev::Internal::AnyHash
118
+ )
119
+ end
120
+
121
+ # The number of credits consumed by this request.
122
+ sig { returns(Integer) }
123
+ attr_accessor :credits_consumed
124
+
125
+ # The number of credits remaining for your organization after this request.
126
+ sig { returns(Integer) }
127
+ attr_accessor :credits_remaining
128
+
129
+ # Metadata about the API key used for the request. Included in every response
130
+ # whenever a valid API key is provided, even when the response status is not 200.
131
+ sig do
132
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
133
+ T.attached_class
134
+ )
135
+ end
136
+ def self.new(
137
+ # The number of credits consumed by this request.
138
+ credits_consumed:,
139
+ # The number of credits remaining for your organization after this request.
140
+ credits_remaining:
141
+ )
142
+ end
143
+
144
+ sig do
145
+ override.returns(
146
+ { credits_consumed: Integer, credits_remaining: Integer }
147
+ )
148
+ end
149
+ def to_hash
150
+ end
151
+ end
152
+
88
153
  # The detected ecommerce platform, or null if not a product page
89
154
  module Platform
90
155
  extend ContextDev::Internal::Type::Enum
@@ -11,6 +11,23 @@ module ContextDev
11
11
  )
12
12
  end
13
13
 
14
+ # Metadata about the API key used for the request. Included in every response
15
+ # whenever a valid API key is provided, even when the response status is not 200.
16
+ sig do
17
+ returns(
18
+ T.nilable(ContextDev::Models::AIExtractProductsResponse::KeyMetadata)
19
+ )
20
+ end
21
+ attr_reader :key_metadata
22
+
23
+ sig do
24
+ params(
25
+ key_metadata:
26
+ ContextDev::Models::AIExtractProductsResponse::KeyMetadata::OrHash
27
+ ).void
28
+ end
29
+ attr_writer :key_metadata
30
+
14
31
  # Array of products extracted from the website
15
32
  sig do
16
33
  returns(
@@ -33,6 +50,8 @@ module ContextDev
33
50
 
34
51
  sig do
35
52
  params(
53
+ key_metadata:
54
+ ContextDev::Models::AIExtractProductsResponse::KeyMetadata::OrHash,
36
55
  products:
37
56
  T::Array[
38
57
  ContextDev::Models::AIExtractProductsResponse::Product::OrHash
@@ -40,6 +59,9 @@ module ContextDev
40
59
  ).returns(T.attached_class)
41
60
  end
42
61
  def self.new(
62
+ # Metadata about the API key used for the request. Included in every response
63
+ # whenever a valid API key is provided, even when the response status is not 200.
64
+ key_metadata: nil,
43
65
  # Array of products extracted from the website
44
66
  products: nil
45
67
  )
@@ -48,6 +70,8 @@ module ContextDev
48
70
  sig do
49
71
  override.returns(
50
72
  {
73
+ key_metadata:
74
+ ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
51
75
  products:
52
76
  T::Array[ContextDev::Models::AIExtractProductsResponse::Product]
53
77
  }
@@ -56,6 +80,47 @@ module ContextDev
56
80
  def to_hash
57
81
  end
58
82
 
83
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
84
+ OrHash =
85
+ T.type_alias do
86
+ T.any(
87
+ ContextDev::Models::AIExtractProductsResponse::KeyMetadata,
88
+ ContextDev::Internal::AnyHash
89
+ )
90
+ end
91
+
92
+ # The number of credits consumed by this request.
93
+ sig { returns(Integer) }
94
+ attr_accessor :credits_consumed
95
+
96
+ # The number of credits remaining for your organization after this request.
97
+ sig { returns(Integer) }
98
+ attr_accessor :credits_remaining
99
+
100
+ # Metadata about the API key used for the request. Included in every response
101
+ # whenever a valid API key is provided, even when the response status is not 200.
102
+ sig do
103
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
104
+ T.attached_class
105
+ )
106
+ end
107
+ def self.new(
108
+ # The number of credits consumed by this request.
109
+ credits_consumed:,
110
+ # The number of credits remaining for your organization after this request.
111
+ credits_remaining:
112
+ )
113
+ end
114
+
115
+ sig do
116
+ override.returns(
117
+ { credits_consumed: Integer, credits_remaining: Integer }
118
+ )
119
+ end
120
+ def to_hash
121
+ end
122
+ end
123
+
59
124
  class Product < ContextDev::Internal::Type::BaseModel
60
125
  OrHash =
61
126
  T.type_alias do