context.dev 1.31.0 → 1.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/internal/transport/base_client.rb +4 -1
  5. data/lib/context_dev/models/ai_ai_query_response.rb +36 -1
  6. data/lib/context_dev/models/ai_extract_product_response.rb +36 -1
  7. data/lib/context_dev/models/ai_extract_products_response.rb +36 -1
  8. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +36 -1
  9. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +36 -1
  10. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +36 -1
  11. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +36 -1
  12. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +36 -1
  13. data/lib/context_dev/models/brand_retrieve_response.rb +36 -1
  14. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +36 -1
  15. data/lib/context_dev/models/industry_retrieve_naics_response.rb +36 -1
  16. data/lib/context_dev/models/industry_retrieve_sic_response.rb +33 -1
  17. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +36 -1
  18. data/lib/context_dev/models/utility_prefetch_response.rb +36 -1
  19. data/lib/context_dev/models/web_extract_competitors_response.rb +36 -1
  20. data/lib/context_dev/models/web_extract_fonts_response.rb +33 -1
  21. data/lib/context_dev/models/web_extract_params.rb +18 -1
  22. data/lib/context_dev/models/web_extract_response.rb +36 -1
  23. data/lib/context_dev/models/web_extract_styleguide_response.rb +36 -1
  24. data/lib/context_dev/models/web_screenshot_response.rb +36 -1
  25. data/lib/context_dev/models/web_search_response.rb +36 -1
  26. data/lib/context_dev/models/web_web_crawl_md_response.rb +275 -6
  27. data/lib/context_dev/models/web_web_scrape_html_response.rb +290 -1
  28. data/lib/context_dev/models/web_web_scrape_images_response.rb +36 -1
  29. data/lib/context_dev/models/web_web_scrape_md_response.rb +291 -1
  30. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +36 -1
  31. data/lib/context_dev/resources/web.rb +5 -1
  32. data/lib/context_dev/version.rb +1 -1
  33. data/rbi/context_dev/models/ai_ai_query_response.rbi +62 -0
  34. data/rbi/context_dev/models/ai_extract_product_response.rbi +65 -0
  35. data/rbi/context_dev/models/ai_extract_products_response.rbi +65 -0
  36. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +67 -0
  37. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +67 -0
  38. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +67 -0
  39. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +67 -0
  40. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +67 -0
  41. data/rbi/context_dev/models/brand_retrieve_response.rbi +65 -0
  42. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +67 -0
  43. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +67 -0
  44. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +67 -0
  45. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +79 -4
  46. data/rbi/context_dev/models/utility_prefetch_response.rbi +77 -4
  47. data/rbi/context_dev/models/web_extract_competitors_response.rbi +70 -3
  48. data/rbi/context_dev/models/web_extract_fonts_response.rbi +68 -3
  49. data/rbi/context_dev/models/web_extract_params.rbi +24 -0
  50. data/rbi/context_dev/models/web_extract_response.rbi +65 -3
  51. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +67 -0
  52. data/rbi/context_dev/models/web_screenshot_response.rbi +65 -0
  53. data/rbi/context_dev/models/web_search_response.rbi +65 -3
  54. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +497 -10
  55. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +553 -3
  56. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +68 -3
  57. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +542 -3
  58. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +70 -3
  59. data/rbi/context_dev/resources/web.rbi +7 -0
  60. data/sig/context_dev/models/ai_ai_query_response.rbs +28 -0
  61. data/sig/context_dev/models/ai_extract_product_response.rbs +28 -0
  62. data/sig/context_dev/models/ai_extract_products_response.rbs +28 -0
  63. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +28 -0
  64. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +28 -0
  65. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +28 -0
  66. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +28 -0
  67. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +28 -0
  68. data/sig/context_dev/models/brand_retrieve_response.rbs +28 -0
  69. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +28 -0
  70. data/sig/context_dev/models/industry_retrieve_naics_response.rbs +28 -0
  71. data/sig/context_dev/models/industry_retrieve_sic_response.rbs +28 -0
  72. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +38 -2
  73. data/sig/context_dev/models/utility_prefetch_response.rbs +38 -2
  74. data/sig/context_dev/models/web_extract_competitors_response.rbs +31 -3
  75. data/sig/context_dev/models/web_extract_fonts_response.rbs +31 -3
  76. data/sig/context_dev/models/web_extract_params.rbs +14 -0
  77. data/sig/context_dev/models/web_extract_response.rbs +31 -3
  78. data/sig/context_dev/models/web_extract_styleguide_response.rbs +28 -0
  79. data/sig/context_dev/models/web_screenshot_response.rbs +28 -0
  80. data/sig/context_dev/models/web_search_response.rbs +31 -3
  81. data/sig/context_dev/models/web_web_crawl_md_response.rbs +229 -6
  82. data/sig/context_dev/models/web_web_scrape_html_response.rbs +263 -4
  83. data/sig/context_dev/models/web_web_scrape_images_response.rbs +31 -3
  84. data/sig/context_dev/models/web_web_scrape_md_response.rbs +250 -3
  85. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +31 -3
  86. data/sig/context_dev/resources/web.rbs +2 -0
  87. metadata +2 -2
@@ -55,6 +55,23 @@ module ContextDev
55
55
  end
56
56
  attr_writer :font_links
57
57
 
58
+ # Metadata about the API key used for the request. Included in every response
59
+ # whenever a valid API key is provided, even when the response status is not 200.
60
+ sig do
61
+ returns(
62
+ T.nilable(ContextDev::Models::WebExtractFontsResponse::KeyMetadata)
63
+ )
64
+ end
65
+ attr_reader :key_metadata
66
+
67
+ sig do
68
+ params(
69
+ key_metadata:
70
+ ContextDev::Models::WebExtractFontsResponse::KeyMetadata::OrHash
71
+ ).void
72
+ end
73
+ attr_writer :key_metadata
74
+
58
75
  sig do
59
76
  params(
60
77
  code: Integer,
@@ -66,7 +83,9 @@ module ContextDev
66
83
  T::Hash[
67
84
  Symbol,
68
85
  ContextDev::Models::WebExtractFontsResponse::FontLink::OrHash
69
- ]
86
+ ],
87
+ key_metadata:
88
+ ContextDev::Models::WebExtractFontsResponse::KeyMetadata::OrHash
70
89
  ).returns(T.attached_class)
71
90
  end
72
91
  def self.new(
@@ -81,7 +100,10 @@ module ContextDev
81
100
  # Font assets keyed by family name as it appears in the fonts array (non-generic
82
101
  # names only). Clients match entries in fonts to pick a file URL from files.
83
102
  # Omitted when no families resolve to Google or custom @font-face URLs.
84
- font_links: nil
103
+ font_links: nil,
104
+ # Metadata about the API key used for the request. Included in every response
105
+ # whenever a valid API key is provided, even when the response status is not 200.
106
+ key_metadata: nil
85
107
  )
86
108
  end
87
109
 
@@ -96,7 +118,9 @@ module ContextDev
96
118
  T::Hash[
97
119
  Symbol,
98
120
  ContextDev::Models::WebExtractFontsResponse::FontLink
99
- ]
121
+ ],
122
+ key_metadata:
123
+ ContextDev::Models::WebExtractFontsResponse::KeyMetadata
100
124
  }
101
125
  )
102
126
  end
@@ -296,6 +320,47 @@ module ContextDev
296
320
  end
297
321
  end
298
322
  end
323
+
324
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
325
+ OrHash =
326
+ T.type_alias do
327
+ T.any(
328
+ ContextDev::Models::WebExtractFontsResponse::KeyMetadata,
329
+ ContextDev::Internal::AnyHash
330
+ )
331
+ end
332
+
333
+ # The number of credits consumed by this request.
334
+ sig { returns(Integer) }
335
+ attr_accessor :credits_consumed
336
+
337
+ # The number of credits remaining for your organization after this request.
338
+ sig { returns(Integer) }
339
+ attr_accessor :credits_remaining
340
+
341
+ # Metadata about the API key used for the request. Included in every response
342
+ # whenever a valid API key is provided, even when the response status is not 200.
343
+ sig do
344
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
345
+ T.attached_class
346
+ )
347
+ end
348
+ def self.new(
349
+ # The number of credits consumed by this request.
350
+ credits_consumed:,
351
+ # The number of credits remaining for your organization after this request.
352
+ credits_remaining:
353
+ )
354
+ end
355
+
356
+ sig do
357
+ override.returns(
358
+ { credits_consumed: Integer, credits_remaining: Integer }
359
+ )
360
+ end
361
+ def to_hash
362
+ end
363
+ end
299
364
  end
300
365
  end
301
366
  end
@@ -64,6 +64,21 @@ module ContextDev
64
64
  sig { params(max_age_ms: Integer).void }
65
65
  attr_writer :max_age_ms
66
66
 
67
+ # Optional maximum link depth from the starting URL (0 = only the starting page).
68
+ # If omitted, there is no crawl depth limit.
69
+ sig { returns(T.nilable(Integer)) }
70
+ attr_reader :max_depth
71
+
72
+ sig { params(max_depth: Integer).void }
73
+ attr_writer :max_depth
74
+
75
+ # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
76
+ sig { returns(T.nilable(Integer)) }
77
+ attr_reader :max_pages
78
+
79
+ sig { params(max_pages: Integer).void }
80
+ attr_writer :max_pages
81
+
67
82
  sig { returns(T.nilable(ContextDev::WebExtractParams::Pdf)) }
68
83
  attr_reader :pdf
69
84
 
@@ -104,6 +119,8 @@ module ContextDev
104
119
  include_frames: T::Boolean,
105
120
  instructions: String,
106
121
  max_age_ms: Integer,
122
+ max_depth: Integer,
123
+ max_pages: Integer,
107
124
  pdf: ContextDev::WebExtractParams::Pdf::OrHash,
108
125
  stop_after_ms: Integer,
109
126
  timeout_ms: Integer,
@@ -136,6 +153,11 @@ module ContextDev
136
153
  # Return cached scrape results if a prior scrape for the same parameters is
137
154
  # younger than this many milliseconds. Defaults to 7 days (604800000 ms).
138
155
  max_age_ms: nil,
156
+ # Optional maximum link depth from the starting URL (0 = only the starting page).
157
+ # If omitted, there is no crawl depth limit.
158
+ max_depth: nil,
159
+ # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
160
+ max_pages: nil,
139
161
  pdf: nil,
140
162
  # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
141
163
  # (110s). Default: 80000 (80s).
@@ -161,6 +183,8 @@ module ContextDev
161
183
  include_frames: T::Boolean,
162
184
  instructions: String,
163
185
  max_age_ms: Integer,
186
+ max_depth: Integer,
187
+ max_pages: Integer,
164
188
  pdf: ContextDev::WebExtractParams::Pdf,
165
189
  stop_after_ms: Integer,
166
190
  timeout_ms: Integer,
@@ -37,13 +37,30 @@ module ContextDev
37
37
  sig { returns(T::Array[String]) }
38
38
  attr_accessor :urls_analyzed
39
39
 
40
+ # Metadata about the API key used for the request. Included in every response
41
+ # whenever a valid API key is provided, even when the response status is not 200.
42
+ sig do
43
+ returns(T.nilable(ContextDev::Models::WebExtractResponse::KeyMetadata))
44
+ end
45
+ attr_reader :key_metadata
46
+
47
+ sig do
48
+ params(
49
+ key_metadata:
50
+ ContextDev::Models::WebExtractResponse::KeyMetadata::OrHash
51
+ ).void
52
+ end
53
+ attr_writer :key_metadata
54
+
40
55
  sig do
41
56
  params(
42
57
  data: T::Hash[Symbol, T.anything],
43
58
  metadata: ContextDev::Models::WebExtractResponse::Metadata::OrHash,
44
59
  status: String,
45
60
  url: String,
46
- urls_analyzed: T::Array[String]
61
+ urls_analyzed: T::Array[String],
62
+ key_metadata:
63
+ ContextDev::Models::WebExtractResponse::KeyMetadata::OrHash
47
64
  ).returns(T.attached_class)
48
65
  end
49
66
  def self.new(
@@ -55,7 +72,10 @@ module ContextDev
55
72
  # The starting URL that was analyzed
56
73
  url:,
57
74
  # List of URLs whose Markdown was used for extraction
58
- urls_analyzed:
75
+ urls_analyzed:,
76
+ # Metadata about the API key used for the request. Included in every response
77
+ # whenever a valid API key is provided, even when the response status is not 200.
78
+ key_metadata: nil
59
79
  )
60
80
  end
61
81
 
@@ -66,7 +86,8 @@ module ContextDev
66
86
  metadata: ContextDev::Models::WebExtractResponse::Metadata,
67
87
  status: String,
68
88
  url: String,
69
- urls_analyzed: T::Array[String]
89
+ urls_analyzed: T::Array[String],
90
+ key_metadata: ContextDev::Models::WebExtractResponse::KeyMetadata
70
91
  }
71
92
  )
72
93
  end
@@ -129,6 +150,47 @@ module ContextDev
129
150
  def to_hash
130
151
  end
131
152
  end
153
+
154
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
155
+ OrHash =
156
+ T.type_alias do
157
+ T.any(
158
+ ContextDev::Models::WebExtractResponse::KeyMetadata,
159
+ ContextDev::Internal::AnyHash
160
+ )
161
+ end
162
+
163
+ # The number of credits consumed by this request.
164
+ sig { returns(Integer) }
165
+ attr_accessor :credits_consumed
166
+
167
+ # The number of credits remaining for your organization after this request.
168
+ sig { returns(Integer) }
169
+ attr_accessor :credits_remaining
170
+
171
+ # Metadata about the API key used for the request. Included in every response
172
+ # whenever a valid API key is provided, even when the response status is not 200.
173
+ sig do
174
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
175
+ T.attached_class
176
+ )
177
+ end
178
+ def self.new(
179
+ # The number of credits consumed by this request.
180
+ credits_consumed:,
181
+ # The number of credits remaining for your organization after this request.
182
+ credits_remaining:
183
+ )
184
+ end
185
+
186
+ sig do
187
+ override.returns(
188
+ { credits_consumed: Integer, credits_remaining: Integer }
189
+ )
190
+ end
191
+ def to_hash
192
+ end
193
+ end
132
194
  end
133
195
  end
134
196
  end
@@ -25,6 +25,25 @@ module ContextDev
25
25
  sig { params(domain: String).void }
26
26
  attr_writer :domain
27
27
 
28
+ # Metadata about the API key used for the request. Included in every response
29
+ # whenever a valid API key is provided, even when the response status is not 200.
30
+ sig do
31
+ returns(
32
+ T.nilable(
33
+ ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata
34
+ )
35
+ )
36
+ end
37
+ attr_reader :key_metadata
38
+
39
+ sig do
40
+ params(
41
+ key_metadata:
42
+ ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata::OrHash
43
+ ).void
44
+ end
45
+ attr_writer :key_metadata
46
+
28
47
  # Status of the response, e.g., 'ok'
29
48
  sig { returns(T.nilable(String)) }
30
49
  attr_reader :status
@@ -54,6 +73,8 @@ module ContextDev
54
73
  params(
55
74
  code: Integer,
56
75
  domain: String,
76
+ key_metadata:
77
+ ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata::OrHash,
57
78
  status: String,
58
79
  styleguide:
59
80
  ContextDev::Models::WebExtractStyleguideResponse::Styleguide::OrHash
@@ -64,6 +85,9 @@ module ContextDev
64
85
  code: nil,
65
86
  # The normalized domain that was processed
66
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,
67
91
  # Status of the response, e.g., 'ok'
68
92
  status: nil,
69
93
  # Comprehensive styleguide data extracted from the website
@@ -76,6 +100,8 @@ module ContextDev
76
100
  {
77
101
  code: Integer,
78
102
  domain: String,
103
+ key_metadata:
104
+ ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata,
79
105
  status: String,
80
106
  styleguide:
81
107
  ContextDev::Models::WebExtractStyleguideResponse::Styleguide
@@ -85,6 +111,47 @@ module ContextDev
85
111
  def to_hash
86
112
  end
87
113
 
114
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
115
+ OrHash =
116
+ T.type_alias do
117
+ T.any(
118
+ ContextDev::Models::WebExtractStyleguideResponse::KeyMetadata,
119
+ ContextDev::Internal::AnyHash
120
+ )
121
+ end
122
+
123
+ # The number of credits consumed by this request.
124
+ sig { returns(Integer) }
125
+ attr_accessor :credits_consumed
126
+
127
+ # The number of credits remaining for your organization after this request.
128
+ sig { returns(Integer) }
129
+ attr_accessor :credits_remaining
130
+
131
+ # Metadata about the API key used for the request. Included in every response
132
+ # whenever a valid API key is provided, even when the response status is not 200.
133
+ sig do
134
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
135
+ T.attached_class
136
+ )
137
+ end
138
+ def self.new(
139
+ # The number of credits consumed by this request.
140
+ credits_consumed:,
141
+ # The number of credits remaining for your organization after this request.
142
+ credits_remaining:
143
+ )
144
+ end
145
+
146
+ sig do
147
+ override.returns(
148
+ { credits_consumed: Integer, credits_remaining: Integer }
149
+ )
150
+ end
151
+ def to_hash
152
+ end
153
+ end
154
+
88
155
  class Styleguide < ContextDev::Internal::Type::BaseModel
89
156
  OrHash =
90
157
  T.type_alias do
@@ -32,6 +32,23 @@ module ContextDev
32
32
  sig { params(height: Integer).void }
33
33
  attr_writer :height
34
34
 
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
+ sig do
38
+ returns(
39
+ T.nilable(ContextDev::Models::WebScreenshotResponse::KeyMetadata)
40
+ )
41
+ end
42
+ attr_reader :key_metadata
43
+
44
+ sig do
45
+ params(
46
+ key_metadata:
47
+ ContextDev::Models::WebScreenshotResponse::KeyMetadata::OrHash
48
+ ).void
49
+ end
50
+ attr_writer :key_metadata
51
+
35
52
  # Public URL of the uploaded screenshot image
36
53
  sig { returns(T.nilable(String)) }
37
54
  attr_reader :screenshot
@@ -76,6 +93,8 @@ module ContextDev
76
93
  code: Integer,
77
94
  domain: String,
78
95
  height: Integer,
96
+ key_metadata:
97
+ ContextDev::Models::WebScreenshotResponse::KeyMetadata::OrHash,
79
98
  screenshot: String,
80
99
  screenshot_type:
81
100
  ContextDev::Models::WebScreenshotResponse::ScreenshotType::OrSymbol,
@@ -90,6 +109,9 @@ module ContextDev
90
109
  domain: nil,
91
110
  # Height in pixels of the returned screenshot image
92
111
  height: nil,
112
+ # Metadata about the API key used for the request. Included in every response
113
+ # whenever a valid API key is provided, even when the response status is not 200.
114
+ key_metadata: nil,
93
115
  # Public URL of the uploaded screenshot image
94
116
  screenshot: nil,
95
117
  # Type of screenshot that was captured
@@ -107,6 +129,8 @@ module ContextDev
107
129
  code: Integer,
108
130
  domain: String,
109
131
  height: Integer,
132
+ key_metadata:
133
+ ContextDev::Models::WebScreenshotResponse::KeyMetadata,
110
134
  screenshot: String,
111
135
  screenshot_type:
112
136
  ContextDev::Models::WebScreenshotResponse::ScreenshotType::TaggedSymbol,
@@ -118,6 +142,47 @@ module ContextDev
118
142
  def to_hash
119
143
  end
120
144
 
145
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
146
+ OrHash =
147
+ T.type_alias do
148
+ T.any(
149
+ ContextDev::Models::WebScreenshotResponse::KeyMetadata,
150
+ ContextDev::Internal::AnyHash
151
+ )
152
+ end
153
+
154
+ # The number of credits consumed by this request.
155
+ sig { returns(Integer) }
156
+ attr_accessor :credits_consumed
157
+
158
+ # The number of credits remaining for your organization after this request.
159
+ sig { returns(Integer) }
160
+ attr_accessor :credits_remaining
161
+
162
+ # Metadata about the API key used for the request. Included in every response
163
+ # whenever a valid API key is provided, even when the response status is not 200.
164
+ sig do
165
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
166
+ T.attached_class
167
+ )
168
+ end
169
+ def self.new(
170
+ # The number of credits consumed by this request.
171
+ credits_consumed:,
172
+ # The number of credits remaining for your organization after this request.
173
+ credits_remaining:
174
+ )
175
+ end
176
+
177
+ sig do
178
+ override.returns(
179
+ { credits_consumed: Integer, credits_remaining: Integer }
180
+ )
181
+ end
182
+ def to_hash
183
+ end
184
+ end
185
+
121
186
  # Type of screenshot that was captured
122
187
  module ScreenshotType
123
188
  extend ContextDev::Internal::Type::Enum
@@ -18,17 +18,37 @@ module ContextDev
18
18
  sig { returns(T::Array[ContextDev::Models::WebSearchResponse::Result]) }
19
19
  attr_accessor :results
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(T.nilable(ContextDev::Models::WebSearchResponse::KeyMetadata))
25
+ end
26
+ attr_reader :key_metadata
27
+
28
+ sig do
29
+ params(
30
+ key_metadata:
31
+ ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash
32
+ ).void
33
+ end
34
+ attr_writer :key_metadata
35
+
21
36
  sig do
22
37
  params(
23
38
  query: String,
24
39
  results:
25
- T::Array[ContextDev::Models::WebSearchResponse::Result::OrHash]
40
+ T::Array[ContextDev::Models::WebSearchResponse::Result::OrHash],
41
+ key_metadata:
42
+ ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash
26
43
  ).returns(T.attached_class)
27
44
  end
28
45
  def self.new(
29
46
  # Echo of the original query (useful when fanout was enabled).
30
47
  query:,
31
- results:
48
+ results:,
49
+ # Metadata about the API key used for the request. Included in every response
50
+ # whenever a valid API key is provided, even when the response status is not 200.
51
+ key_metadata: nil
32
52
  )
33
53
  end
34
54
 
@@ -36,7 +56,8 @@ module ContextDev
36
56
  override.returns(
37
57
  {
38
58
  query: String,
39
- results: T::Array[ContextDev::Models::WebSearchResponse::Result]
59
+ results: T::Array[ContextDev::Models::WebSearchResponse::Result],
60
+ key_metadata: ContextDev::Models::WebSearchResponse::KeyMetadata
40
61
  }
41
62
  )
42
63
  end
@@ -266,6 +287,47 @@ module ContextDev
266
287
  end
267
288
  end
268
289
  end
290
+
291
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
292
+ OrHash =
293
+ T.type_alias do
294
+ T.any(
295
+ ContextDev::Models::WebSearchResponse::KeyMetadata,
296
+ ContextDev::Internal::AnyHash
297
+ )
298
+ end
299
+
300
+ # The number of credits consumed by this request.
301
+ sig { returns(Integer) }
302
+ attr_accessor :credits_consumed
303
+
304
+ # The number of credits remaining for your organization after this request.
305
+ sig { returns(Integer) }
306
+ attr_accessor :credits_remaining
307
+
308
+ # Metadata about the API key used for the request. Included in every response
309
+ # whenever a valid API key is provided, even when the response status is not 200.
310
+ sig do
311
+ params(credits_consumed: Integer, credits_remaining: Integer).returns(
312
+ T.attached_class
313
+ )
314
+ end
315
+ def self.new(
316
+ # The number of credits consumed by this request.
317
+ credits_consumed:,
318
+ # The number of credits remaining for your organization after this request.
319
+ credits_remaining:
320
+ )
321
+ end
322
+
323
+ sig do
324
+ override.returns(
325
+ { credits_consumed: Integer, credits_remaining: Integer }
326
+ )
327
+ end
328
+ def to_hash
329
+ end
330
+ end
269
331
  end
270
332
  end
271
333
  end