context.dev 2.18.0 → 2.20.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +220 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +0 -4
  5. data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
  6. data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
  7. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
  8. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
  9. data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
  10. data/lib/context_dev/models/web_map_urls_response.rb +123 -0
  11. data/lib/context_dev/models/web_scrape_params.rb +1035 -0
  12. data/lib/context_dev/models/web_scrape_response.rb +974 -0
  13. data/lib/context_dev/models/web_screenshot_params.rb +15 -1
  14. data/lib/context_dev/models/web_screenshot_response.rb +3 -3
  15. data/lib/context_dev/models.rb +8 -22
  16. data/lib/context_dev/resources/brand.rb +0 -36
  17. data/lib/context_dev/resources/monitors.rb +47 -0
  18. data/lib/context_dev/resources/web.rb +118 -486
  19. data/lib/context_dev/version.rb +1 -1
  20. data/lib/context_dev.rb +8 -23
  21. data/rbi/context_dev/client.rbi +0 -3
  22. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
  23. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
  24. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
  25. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
  26. data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
  27. data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
  28. data/rbi/context_dev/models/web_scrape_params.rbi +2221 -0
  29. data/rbi/context_dev/models/web_scrape_response.rbi +1874 -0
  30. data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
  31. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
  32. data/rbi/context_dev/models.rbi +9 -24
  33. data/rbi/context_dev/resources/brand.rbi +0 -35
  34. data/rbi/context_dev/resources/monitors.rbi +24 -0
  35. data/rbi/context_dev/resources/web.rbi +152 -654
  36. data/sig/context_dev/client.rbs +0 -2
  37. data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
  38. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
  39. data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
  40. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
  41. data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
  42. data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
  43. data/sig/context_dev/models/web_scrape_params.rbs +925 -0
  44. data/sig/context_dev/models/web_scrape_response.rbs +782 -0
  45. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  46. data/sig/context_dev/models.rbs +8 -22
  47. data/sig/context_dev/resources/brand.rbs +0 -9
  48. data/sig/context_dev/resources/monitors.rbs +11 -0
  49. data/sig/context_dev/resources/web.rbs +33 -128
  50. metadata +26 -71
  51. data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
  52. data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
  53. data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
  54. data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
  55. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
  56. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
  57. data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
  58. data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
  59. data/lib/context_dev/models/web_extract_params.rb +0 -419
  60. data/lib/context_dev/models/web_extract_response.rb +0 -287
  61. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
  62. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
  63. data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
  64. data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
  65. data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
  66. data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
  67. data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
  68. data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
  69. data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
  70. data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
  71. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
  72. data/lib/context_dev/resources/ai.rb +0 -71
  73. data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
  74. data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
  75. data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
  76. data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
  77. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
  78. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
  79. data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
  80. data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
  81. data/rbi/context_dev/models/web_extract_params.rbi +0 -781
  82. data/rbi/context_dev/models/web_extract_response.rbi +0 -512
  83. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
  84. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
  85. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
  86. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +0 -1287
  87. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
  88. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
  89. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
  90. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
  91. data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
  92. data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
  93. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
  94. data/rbi/context_dev/resources/ai.rbi +0 -63
  95. data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
  96. data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
  97. data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
  98. data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
  99. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
  100. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
  101. data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
  102. data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
  103. data/sig/context_dev/models/web_extract_params.rbs +0 -324
  104. data/sig/context_dev/models/web_extract_response.rbs +0 -239
  105. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
  106. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
  107. data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
  108. data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
  109. data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
  110. data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
  111. data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
  112. data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
  113. data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
  114. data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
  115. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
  116. data/sig/context_dev/resources/ai.rbs +0 -21
@@ -1,1287 +0,0 @@
1
- # typed: strong
2
-
3
- module ContextDev
4
- module Models
5
- class WebWebScrapeHTMLResponse < ContextDev::Internal::Type::BaseModel
6
- OrHash =
7
- T.type_alias do
8
- T.any(
9
- ContextDev::Models::WebWebScrapeHTMLResponse,
10
- ContextDev::Internal::AnyHash
11
- )
12
- end
13
-
14
- # Cache outcome for this response. Composite responses are hits only when every
15
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
16
- # oldest contributing hit.
17
- sig do
18
- returns(ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata)
19
- end
20
- attr_reader :cache_metadata
21
-
22
- sig do
23
- params(
24
- cache_metadata:
25
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::OrHash
26
- ).void
27
- end
28
- attr_writer :cache_metadata
29
-
30
- # How complete the returned content is. `loaded` means the page finished the waits
31
- # the request asked for. `still-loading` only occurs with
32
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
33
- # reached first, so the content reflects the DOM at that moment and late-rendering
34
- # parts may be missing. Partial results are billed at the base request cost.
35
- sig do
36
- returns(
37
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol
38
- )
39
- end
40
- attr_accessor :final_dom_state
41
-
42
- # The scraped content of the page. For normal pages this is the raw HTML. When the
43
- # page is a sitemap or feed served behind an XSL stylesheet (which browsers render
44
- # into HTML), this is the underlying XML instead — see the `type` field.
45
- sig { returns(String) }
46
- attr_accessor :html
47
-
48
- # Metadata extracted from the scraped page HTML.
49
- sig { returns(ContextDev::Models::WebWebScrapeHTMLResponse::Metadata) }
50
- attr_reader :metadata
51
-
52
- sig do
53
- params(
54
- metadata:
55
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash
56
- ).void
57
- end
58
- attr_writer :metadata
59
-
60
- # Unique id of this API call, also sent in the X-Request-Id response header. Quote
61
- # it when contacting support about a failed request.
62
- sig { returns(String) }
63
- attr_accessor :request_id
64
-
65
- # Indicates success
66
- sig do
67
- returns(
68
- ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean
69
- )
70
- end
71
- attr_accessor :success
72
-
73
- # Detected content type of the returned `html` field. Sitemaps and feeds are
74
- # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
75
- # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
76
- # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
77
- sig do
78
- returns(
79
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
80
- )
81
- end
82
- attr_accessor :type
83
-
84
- # The URL that was scraped
85
- sig { returns(String) }
86
- attr_accessor :url
87
-
88
- # One verified outcome per requested browser action, in request order.
89
- sig do
90
- returns(
91
- T.nilable(
92
- T::Array[
93
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied
94
- ]
95
- )
96
- )
97
- end
98
- attr_reader :actions_applied
99
-
100
- sig do
101
- params(
102
- actions_applied:
103
- T::Array[
104
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::OrHash
105
- ]
106
- ).void
107
- end
108
- attr_writer :actions_applied
109
-
110
- # True when an action was applied but the returned content could not be refreshed
111
- # afterward.
112
- sig { returns(T.nilable(T::Boolean)) }
113
- attr_reader :actions_html_stale
114
-
115
- sig { params(actions_html_stale: T::Boolean).void }
116
- attr_writer :actions_html_stale
117
-
118
- # Present only when extractRules is supplied. Keys match the requested fields.
119
- # Values are normalized text, raw attribute strings, outer HTML, nested objects,
120
- # or lists. Missing items are null; lists with no matches are empty. Rules run on
121
- # the returned HTML after filtering.
122
- sig do
123
- returns(
124
- T.nilable(
125
- T::Hash[
126
- Symbol,
127
- T.nilable(
128
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
129
- )
130
- ]
131
- )
132
- )
133
- end
134
- attr_reader :extracted
135
-
136
- sig do
137
- params(
138
- extracted:
139
- T::Hash[
140
- Symbol,
141
- T.nilable(
142
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
143
- )
144
- ]
145
- ).void
146
- end
147
- attr_writer :extracted
148
-
149
- # Credit usage, included whenever a valid API key is provided.
150
- sig do
151
- returns(
152
- T.nilable(ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata)
153
- )
154
- end
155
- attr_reader :key_metadata
156
-
157
- sig do
158
- params(
159
- key_metadata:
160
- ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata::OrHash
161
- ).void
162
- end
163
- attr_writer :key_metadata
164
-
165
- sig do
166
- params(
167
- cache_metadata:
168
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::OrHash,
169
- final_dom_state:
170
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::OrSymbol,
171
- html: String,
172
- metadata:
173
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash,
174
- request_id: String,
175
- success:
176
- ContextDev::Models::WebWebScrapeHTMLResponse::Success::OrBoolean,
177
- type: ContextDev::Models::WebWebScrapeHTMLResponse::Type::OrSymbol,
178
- url: String,
179
- actions_applied:
180
- T::Array[
181
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::OrHash
182
- ],
183
- actions_html_stale: T::Boolean,
184
- extracted:
185
- T::Hash[
186
- Symbol,
187
- T.nilable(
188
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
189
- )
190
- ],
191
- key_metadata:
192
- ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata::OrHash
193
- ).returns(T.attached_class)
194
- end
195
- def self.new(
196
- # Cache outcome for this response. Composite responses are hits only when every
197
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
198
- # oldest contributing hit.
199
- cache_metadata:,
200
- # How complete the returned content is. `loaded` means the page finished the waits
201
- # the request asked for. `still-loading` only occurs with
202
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
203
- # reached first, so the content reflects the DOM at that moment and late-rendering
204
- # parts may be missing. Partial results are billed at the base request cost.
205
- final_dom_state:,
206
- # The scraped content of the page. For normal pages this is the raw HTML. When the
207
- # page is a sitemap or feed served behind an XSL stylesheet (which browsers render
208
- # into HTML), this is the underlying XML instead — see the `type` field.
209
- html:,
210
- # Metadata extracted from the scraped page HTML.
211
- metadata:,
212
- # Unique id of this API call, also sent in the X-Request-Id response header. Quote
213
- # it when contacting support about a failed request.
214
- request_id:,
215
- # Indicates success
216
- success:,
217
- # Detected content type of the returned `html` field. Sitemaps and feeds are
218
- # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
219
- # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
220
- # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
221
- type:,
222
- # The URL that was scraped
223
- url:,
224
- # One verified outcome per requested browser action, in request order.
225
- actions_applied: nil,
226
- # True when an action was applied but the returned content could not be refreshed
227
- # afterward.
228
- actions_html_stale: nil,
229
- # Present only when extractRules is supplied. Keys match the requested fields.
230
- # Values are normalized text, raw attribute strings, outer HTML, nested objects,
231
- # or lists. Missing items are null; lists with no matches are empty. Rules run on
232
- # the returned HTML after filtering.
233
- extracted: nil,
234
- # Credit usage, included whenever a valid API key is provided.
235
- key_metadata: nil
236
- )
237
- end
238
-
239
- sig do
240
- override.returns(
241
- {
242
- cache_metadata:
243
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata,
244
- final_dom_state:
245
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol,
246
- html: String,
247
- metadata: ContextDev::Models::WebWebScrapeHTMLResponse::Metadata,
248
- request_id: String,
249
- success:
250
- ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean,
251
- type:
252
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol,
253
- url: String,
254
- actions_applied:
255
- T::Array[
256
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied
257
- ],
258
- actions_html_stale: T::Boolean,
259
- extracted:
260
- T::Hash[
261
- Symbol,
262
- T.nilable(
263
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
264
- )
265
- ],
266
- key_metadata:
267
- ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata
268
- }
269
- )
270
- end
271
- def to_hash
272
- end
273
-
274
- class CacheMetadata < ContextDev::Internal::Type::BaseModel
275
- OrHash =
276
- T.type_alias do
277
- T.any(
278
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata,
279
- ContextDev::Internal::AnyHash
280
- )
281
- end
282
-
283
- # Age of the cached data in milliseconds. Zero for miss and zdr responses.
284
- sig { returns(Integer) }
285
- attr_accessor :age_ms
286
-
287
- # Whether the response was served from cache, required fresh work, or honored
288
- # zero-data-retention cache bypass.
289
- sig do
290
- returns(
291
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
292
- )
293
- end
294
- attr_accessor :status
295
-
296
- # Cache outcome for this response. Composite responses are hits only when every
297
- # cache-controlled fetch contributing to the output was a hit; age_ms is the
298
- # oldest contributing hit.
299
- sig do
300
- params(
301
- age_ms: Integer,
302
- status:
303
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::OrSymbol
304
- ).returns(T.attached_class)
305
- end
306
- def self.new(
307
- # Age of the cached data in milliseconds. Zero for miss and zdr responses.
308
- age_ms:,
309
- # Whether the response was served from cache, required fresh work, or honored
310
- # zero-data-retention cache bypass.
311
- status:
312
- )
313
- end
314
-
315
- sig do
316
- override.returns(
317
- {
318
- age_ms: Integer,
319
- status:
320
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
321
- }
322
- )
323
- end
324
- def to_hash
325
- end
326
-
327
- # Whether the response was served from cache, required fresh work, or honored
328
- # zero-data-retention cache bypass.
329
- module Status
330
- extend ContextDev::Internal::Type::Enum
331
-
332
- TaggedSymbol =
333
- T.type_alias do
334
- T.all(
335
- Symbol,
336
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status
337
- )
338
- end
339
- OrSymbol = T.type_alias { T.any(Symbol, String) }
340
-
341
- HIT =
342
- T.let(
343
- :hit,
344
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
345
- )
346
- MISS =
347
- T.let(
348
- :miss,
349
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
350
- )
351
- ZDR =
352
- T.let(
353
- :zdr,
354
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
355
- )
356
-
357
- sig do
358
- override.returns(
359
- T::Array[
360
- ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata::Status::TaggedSymbol
361
- ]
362
- )
363
- end
364
- def self.values
365
- end
366
- end
367
- end
368
-
369
- # How complete the returned content is. `loaded` means the page finished the waits
370
- # the request asked for. `still-loading` only occurs with
371
- # timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
372
- # reached first, so the content reflects the DOM at that moment and late-rendering
373
- # parts may be missing. Partial results are billed at the base request cost.
374
- module FinalDomState
375
- extend ContextDev::Internal::Type::Enum
376
-
377
- TaggedSymbol =
378
- T.type_alias do
379
- T.all(
380
- Symbol,
381
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState
382
- )
383
- end
384
- OrSymbol = T.type_alias { T.any(Symbol, String) }
385
-
386
- LOADED =
387
- T.let(
388
- :loaded,
389
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol
390
- )
391
- STILL_LOADING =
392
- T.let(
393
- :"still-loading",
394
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol
395
- )
396
-
397
- sig do
398
- override.returns(
399
- T::Array[
400
- ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol
401
- ]
402
- )
403
- end
404
- def self.values
405
- end
406
- end
407
-
408
- class Metadata < ContextDev::Internal::Type::BaseModel
409
- OrHash =
410
- T.type_alias do
411
- T.any(
412
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata,
413
- ContextDev::Internal::AnyHash
414
- )
415
- end
416
-
417
- # Final URL scraped after redirects or scraper fallback, when known. Falls back to
418
- # sourceUrl when unavailable.
419
- sig { returns(String) }
420
- attr_accessor :final_url
421
-
422
- # Original URL requested by the caller.
423
- sig { returns(String) }
424
- attr_accessor :source_url
425
-
426
- # Additional non-social meta tags not promoted to top-level metadata fields.
427
- sig do
428
- returns(
429
- T.nilable(
430
- T::Hash[
431
- Symbol,
432
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
433
- ]
434
- )
435
- )
436
- end
437
- attr_reader :additional_meta
438
-
439
- sig do
440
- params(
441
- additional_meta:
442
- T::Hash[
443
- Symbol,
444
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
445
- ]
446
- ).void
447
- end
448
- attr_writer :additional_meta
449
-
450
- # Resolved alternate links from link rel=alternate tags.
451
- sig do
452
- returns(
453
- T.nilable(
454
- T::Array[
455
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate
456
- ]
457
- )
458
- )
459
- end
460
- attr_reader :alternates
461
-
462
- sig do
463
- params(
464
- alternates:
465
- T::Array[
466
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate::OrHash
467
- ]
468
- ).void
469
- end
470
- attr_writer :alternates
471
-
472
- # Author metadata, when present.
473
- sig { returns(T.nilable(String)) }
474
- attr_reader :author
475
-
476
- sig { params(author: String).void }
477
- attr_writer :author
478
-
479
- # Resolved canonical URL, when present.
480
- sig { returns(T.nilable(String)) }
481
- attr_reader :canonical_url
482
-
483
- sig { params(canonical_url: String).void }
484
- attr_writer :canonical_url
485
-
486
- # Best description extracted from standard, Open Graph, or Twitter metadata.
487
- sig { returns(T.nilable(String)) }
488
- attr_reader :description
489
-
490
- sig { params(description: String).void }
491
- attr_writer :description
492
-
493
- # Resolved favicon URL, when present.
494
- sig { returns(T.nilable(String)) }
495
- attr_reader :favicon
496
-
497
- sig { params(favicon: String).void }
498
- attr_writer :favicon
499
-
500
- # Page headings (h1–h6) in document order, extracted from the unfiltered document.
501
- # Capped at the first 500 headings. Omitted when the page has none.
502
- sig do
503
- returns(
504
- T.nilable(
505
- T::Array[
506
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading
507
- ]
508
- )
509
- )
510
- end
511
- attr_reader :headings
512
-
513
- sig do
514
- params(
515
- headings:
516
- T::Array[
517
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading::OrHash
518
- ]
519
- ).void
520
- end
521
- attr_writer :headings
522
-
523
- # Primary resolved preview image from Open Graph, Twitter, or image metadata.
524
- sig { returns(T.nilable(String)) }
525
- attr_reader :image
526
-
527
- sig { params(image: String).void }
528
- attr_writer :image
529
-
530
- # JSON-LD structured data blocks parsed from the page.
531
- sig { returns(T.nilable(T::Array[T::Hash[Symbol, T.anything]])) }
532
- attr_reader :json_ld
533
-
534
- sig { params(json_ld: T::Array[T::Hash[Symbol, T.anything]]).void }
535
- attr_writer :json_ld
536
-
537
- # Keywords extracted from the page's keywords meta tag.
538
- sig { returns(T.nilable(T::Array[String])) }
539
- attr_reader :keywords
540
-
541
- sig { params(keywords: T::Array[String]).void }
542
- attr_writer :keywords
543
-
544
- # Language extracted from html lang or language meta tags.
545
- sig { returns(T.nilable(String)) }
546
- attr_reader :language
547
-
548
- sig { params(language: String).void }
549
- attr_writer :language
550
-
551
- # Modified timestamp/date from page metadata, when present.
552
- sig { returns(T.nilable(String)) }
553
- attr_reader :modified_time
554
-
555
- sig { params(modified_time: String).void }
556
- attr_writer :modified_time
557
-
558
- # Open Graph metadata with the og: prefix removed and keys camel-cased.
559
- sig do
560
- returns(
561
- T.nilable(
562
- T::Hash[
563
- Symbol,
564
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
565
- ]
566
- )
567
- )
568
- end
569
- attr_reader :open_graph
570
-
571
- sig do
572
- params(
573
- open_graph:
574
- T::Hash[
575
- Symbol,
576
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
577
- ]
578
- ).void
579
- end
580
- attr_writer :open_graph
581
-
582
- # Published timestamp/date from page metadata, when present.
583
- sig { returns(T.nilable(String)) }
584
- attr_reader :published_time
585
-
586
- sig { params(published_time: String).void }
587
- attr_writer :published_time
588
-
589
- # Robots meta directive, when present.
590
- sig { returns(T.nilable(String)) }
591
- attr_reader :robots
592
-
593
- sig { params(robots: String).void }
594
- attr_writer :robots
595
-
596
- # Site or application name from page metadata.
597
- sig { returns(T.nilable(String)) }
598
- attr_reader :site_name
599
-
600
- sig { params(site_name: String).void }
601
- attr_writer :site_name
602
-
603
- # Best title extracted from the page.
604
- sig { returns(T.nilable(String)) }
605
- attr_reader :title
606
-
607
- sig { params(title: String).void }
608
- attr_writer :title
609
-
610
- # Twitter card metadata with the twitter: prefix removed and keys camel-cased.
611
- sig do
612
- returns(
613
- T.nilable(
614
- T::Hash[
615
- Symbol,
616
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
617
- ]
618
- )
619
- )
620
- end
621
- attr_reader :twitter
622
-
623
- sig do
624
- params(
625
- twitter:
626
- T::Hash[
627
- Symbol,
628
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
629
- ]
630
- ).void
631
- end
632
- attr_writer :twitter
633
-
634
- # Metadata extracted from the scraped page HTML.
635
- sig do
636
- params(
637
- final_url: String,
638
- source_url: String,
639
- additional_meta:
640
- T::Hash[
641
- Symbol,
642
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
643
- ],
644
- alternates:
645
- T::Array[
646
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate::OrHash
647
- ],
648
- author: String,
649
- canonical_url: String,
650
- description: String,
651
- favicon: String,
652
- headings:
653
- T::Array[
654
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading::OrHash
655
- ],
656
- image: String,
657
- json_ld: T::Array[T::Hash[Symbol, T.anything]],
658
- keywords: T::Array[String],
659
- language: String,
660
- modified_time: String,
661
- open_graph:
662
- T::Hash[
663
- Symbol,
664
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
665
- ],
666
- published_time: String,
667
- robots: String,
668
- site_name: String,
669
- title: String,
670
- twitter:
671
- T::Hash[
672
- Symbol,
673
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
674
- ]
675
- ).returns(T.attached_class)
676
- end
677
- def self.new(
678
- # Final URL scraped after redirects or scraper fallback, when known. Falls back to
679
- # sourceUrl when unavailable.
680
- final_url:,
681
- # Original URL requested by the caller.
682
- source_url:,
683
- # Additional non-social meta tags not promoted to top-level metadata fields.
684
- additional_meta: nil,
685
- # Resolved alternate links from link rel=alternate tags.
686
- alternates: nil,
687
- # Author metadata, when present.
688
- author: nil,
689
- # Resolved canonical URL, when present.
690
- canonical_url: nil,
691
- # Best description extracted from standard, Open Graph, or Twitter metadata.
692
- description: nil,
693
- # Resolved favicon URL, when present.
694
- favicon: nil,
695
- # Page headings (h1–h6) in document order, extracted from the unfiltered document.
696
- # Capped at the first 500 headings. Omitted when the page has none.
697
- headings: nil,
698
- # Primary resolved preview image from Open Graph, Twitter, or image metadata.
699
- image: nil,
700
- # JSON-LD structured data blocks parsed from the page.
701
- json_ld: nil,
702
- # Keywords extracted from the page's keywords meta tag.
703
- keywords: nil,
704
- # Language extracted from html lang or language meta tags.
705
- language: nil,
706
- # Modified timestamp/date from page metadata, when present.
707
- modified_time: nil,
708
- # Open Graph metadata with the og: prefix removed and keys camel-cased.
709
- open_graph: nil,
710
- # Published timestamp/date from page metadata, when present.
711
- published_time: nil,
712
- # Robots meta directive, when present.
713
- robots: nil,
714
- # Site or application name from page metadata.
715
- site_name: nil,
716
- # Best title extracted from the page.
717
- title: nil,
718
- # Twitter card metadata with the twitter: prefix removed and keys camel-cased.
719
- twitter: nil
720
- )
721
- end
722
-
723
- sig do
724
- override.returns(
725
- {
726
- final_url: String,
727
- source_url: String,
728
- additional_meta:
729
- T::Hash[
730
- Symbol,
731
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
732
- ],
733
- alternates:
734
- T::Array[
735
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate
736
- ],
737
- author: String,
738
- canonical_url: String,
739
- description: String,
740
- favicon: String,
741
- headings:
742
- T::Array[
743
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading
744
- ],
745
- image: String,
746
- json_ld: T::Array[T::Hash[Symbol, T.anything]],
747
- keywords: T::Array[String],
748
- language: String,
749
- modified_time: String,
750
- open_graph:
751
- T::Hash[
752
- Symbol,
753
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
754
- ],
755
- published_time: String,
756
- robots: String,
757
- site_name: String,
758
- title: String,
759
- twitter:
760
- T::Hash[
761
- Symbol,
762
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
763
- ]
764
- }
765
- )
766
- end
767
- def to_hash
768
- end
769
-
770
- module AdditionalMeta
771
- extend ContextDev::Internal::Type::Union
772
-
773
- Variants = T.type_alias { T.any(String, T::Array[String]) }
774
-
775
- sig do
776
- override.returns(
777
- T::Array[
778
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::AdditionalMeta::Variants
779
- ]
780
- )
781
- end
782
- def self.variants
783
- end
784
-
785
- StringArray =
786
- T.let(
787
- ContextDev::Internal::Type::ArrayOf[String],
788
- ContextDev::Internal::Type::Converter
789
- )
790
- end
791
-
792
- class Alternate < ContextDev::Internal::Type::BaseModel
793
- OrHash =
794
- T.type_alias do
795
- T.any(
796
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Alternate,
797
- ContextDev::Internal::AnyHash
798
- )
799
- end
800
-
801
- # Resolved alternate URL.
802
- sig { returns(String) }
803
- attr_accessor :href
804
-
805
- # Language or locale for the alternate URL, when present.
806
- sig { returns(T.nilable(String)) }
807
- attr_reader :hreflang
808
-
809
- sig { params(hreflang: String).void }
810
- attr_writer :hreflang
811
-
812
- # Alternate resource title, when present.
813
- sig { returns(T.nilable(String)) }
814
- attr_reader :title
815
-
816
- sig { params(title: String).void }
817
- attr_writer :title
818
-
819
- # Alternate resource MIME type, when present.
820
- sig { returns(T.nilable(String)) }
821
- attr_reader :type
822
-
823
- sig { params(type: String).void }
824
- attr_writer :type
825
-
826
- sig do
827
- params(
828
- href: String,
829
- hreflang: String,
830
- title: String,
831
- type: String
832
- ).returns(T.attached_class)
833
- end
834
- def self.new(
835
- # Resolved alternate URL.
836
- href:,
837
- # Language or locale for the alternate URL, when present.
838
- hreflang: nil,
839
- # Alternate resource title, when present.
840
- title: nil,
841
- # Alternate resource MIME type, when present.
842
- type: nil
843
- )
844
- end
845
-
846
- sig do
847
- override.returns(
848
- { href: String, hreflang: String, title: String, type: String }
849
- )
850
- end
851
- def to_hash
852
- end
853
- end
854
-
855
- class Heading < ContextDev::Internal::Type::BaseModel
856
- OrHash =
857
- T.type_alias do
858
- T.any(
859
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading,
860
- ContextDev::Internal::AnyHash
861
- )
862
- end
863
-
864
- # Heading level, 1–6 (from h1–h6).
865
- sig { returns(Integer) }
866
- attr_accessor :level
867
-
868
- # Heading text with whitespace collapsed, truncated to 1000 characters.
869
- sig { returns(String) }
870
- attr_accessor :text
871
-
872
- sig { params(level: Integer, text: String).returns(T.attached_class) }
873
- def self.new(
874
- # Heading level, 1–6 (from h1–h6).
875
- level:,
876
- # Heading text with whitespace collapsed, truncated to 1000 characters.
877
- text:
878
- )
879
- end
880
-
881
- sig { override.returns({ level: Integer, text: String }) }
882
- def to_hash
883
- end
884
- end
885
-
886
- module OpenGraph
887
- extend ContextDev::Internal::Type::Union
888
-
889
- Variants = T.type_alias { T.any(String, T::Array[String]) }
890
-
891
- sig do
892
- override.returns(
893
- T::Array[
894
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OpenGraph::Variants
895
- ]
896
- )
897
- end
898
- def self.variants
899
- end
900
-
901
- StringArray =
902
- T.let(
903
- ContextDev::Internal::Type::ArrayOf[String],
904
- ContextDev::Internal::Type::Converter
905
- )
906
- end
907
-
908
- module Twitter
909
- extend ContextDev::Internal::Type::Union
910
-
911
- Variants = T.type_alias { T.any(String, T::Array[String]) }
912
-
913
- sig do
914
- override.returns(
915
- T::Array[
916
- ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Twitter::Variants
917
- ]
918
- )
919
- end
920
- def self.variants
921
- end
922
-
923
- StringArray =
924
- T.let(
925
- ContextDev::Internal::Type::ArrayOf[String],
926
- ContextDev::Internal::Type::Converter
927
- )
928
- end
929
- end
930
-
931
- # Indicates success
932
- module Success
933
- extend ContextDev::Internal::Type::Enum
934
-
935
- TaggedBoolean =
936
- T.type_alias do
937
- T.all(
938
- T::Boolean,
939
- ContextDev::Models::WebWebScrapeHTMLResponse::Success
940
- )
941
- end
942
- OrBoolean = T.type_alias { T::Boolean }
943
-
944
- TRUE =
945
- T.let(
946
- true,
947
- ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean
948
- )
949
-
950
- sig do
951
- override.returns(
952
- T::Array[
953
- ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean
954
- ]
955
- )
956
- end
957
- def self.values
958
- end
959
- end
960
-
961
- # Detected content type of the returned `html` field. Sitemaps and feeds are
962
- # surfaced as `xml`; ordinary pages are `html`. Excel workbooks are surfaced as
963
- # `xlsx`/`xls` with the extracted sheets as HTML tables; PowerPoint presentations
964
- # are surfaced as `pptx`/`ppt` with the extracted slides as HTML.
965
- module Type
966
- extend ContextDev::Internal::Type::Enum
967
-
968
- TaggedSymbol =
969
- T.type_alias do
970
- T.all(Symbol, ContextDev::Models::WebWebScrapeHTMLResponse::Type)
971
- end
972
- OrSymbol = T.type_alias { T.any(Symbol, String) }
973
-
974
- HTML =
975
- T.let(
976
- :html,
977
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
978
- )
979
- XML =
980
- T.let(
981
- :xml,
982
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
983
- )
984
- JSON =
985
- T.let(
986
- :json,
987
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
988
- )
989
- TEXT =
990
- T.let(
991
- :text,
992
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
993
- )
994
- CSV =
995
- T.let(
996
- :csv,
997
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
998
- )
999
- MARKDOWN =
1000
- T.let(
1001
- :markdown,
1002
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1003
- )
1004
- SVG =
1005
- T.let(
1006
- :svg,
1007
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1008
- )
1009
- PDF =
1010
- T.let(
1011
- :pdf,
1012
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1013
- )
1014
- DOCX =
1015
- T.let(
1016
- :docx,
1017
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1018
- )
1019
- DOC =
1020
- T.let(
1021
- :doc,
1022
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1023
- )
1024
- XLSX =
1025
- T.let(
1026
- :xlsx,
1027
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1028
- )
1029
- XLS =
1030
- T.let(
1031
- :xls,
1032
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1033
- )
1034
- PPTX =
1035
- T.let(
1036
- :pptx,
1037
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1038
- )
1039
- PPT =
1040
- T.let(
1041
- :ppt,
1042
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1043
- )
1044
-
1045
- sig do
1046
- override.returns(
1047
- T::Array[
1048
- ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol
1049
- ]
1050
- )
1051
- end
1052
- def self.values
1053
- end
1054
- end
1055
-
1056
- class ActionsApplied < ContextDev::Internal::Type::BaseModel
1057
- OrHash =
1058
- T.type_alias do
1059
- T.any(
1060
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied,
1061
- ContextDev::Internal::AnyHash
1062
- )
1063
- end
1064
-
1065
- sig { returns(String) }
1066
- attr_accessor :instruction
1067
-
1068
- # Applied means the requested page state was visibly verified. Failed means it was
1069
- # not verified. Skipped means it was not attempted.
1070
- sig do
1071
- returns(
1072
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol
1073
- )
1074
- end
1075
- attr_accessor :status
1076
-
1077
- # Visible page evidence used to verify an applied action.
1078
- sig { returns(T.nilable(String)) }
1079
- attr_reader :completion_evidence
1080
-
1081
- sig { params(completion_evidence: String).void }
1082
- attr_writer :completion_evidence
1083
-
1084
- sig { returns(T.nilable(Float)) }
1085
- attr_reader :duration_ms
1086
-
1087
- sig { params(duration_ms: Float).void }
1088
- attr_writer :duration_ms
1089
-
1090
- sig { returns(T.nilable(String)) }
1091
- attr_reader :error
1092
-
1093
- sig { params(error: String).void }
1094
- attr_writer :error
1095
-
1096
- sig { returns(T.nilable(String)) }
1097
- attr_reader :method_
1098
-
1099
- sig { params(method_: String).void }
1100
- attr_writer :method_
1101
-
1102
- sig { returns(T.nilable(String)) }
1103
- attr_reader :target_description
1104
-
1105
- sig { params(target_description: String).void }
1106
- attr_writer :target_description
1107
-
1108
- sig do
1109
- params(
1110
- instruction: String,
1111
- status:
1112
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::OrSymbol,
1113
- completion_evidence: String,
1114
- duration_ms: Float,
1115
- error: String,
1116
- method_: String,
1117
- target_description: String
1118
- ).returns(T.attached_class)
1119
- end
1120
- def self.new(
1121
- instruction:,
1122
- # Applied means the requested page state was visibly verified. Failed means it was
1123
- # not verified. Skipped means it was not attempted.
1124
- status:,
1125
- # Visible page evidence used to verify an applied action.
1126
- completion_evidence: nil,
1127
- duration_ms: nil,
1128
- error: nil,
1129
- method_: nil,
1130
- target_description: nil
1131
- )
1132
- end
1133
-
1134
- sig do
1135
- override.returns(
1136
- {
1137
- instruction: String,
1138
- status:
1139
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol,
1140
- completion_evidence: String,
1141
- duration_ms: Float,
1142
- error: String,
1143
- method_: String,
1144
- target_description: String
1145
- }
1146
- )
1147
- end
1148
- def to_hash
1149
- end
1150
-
1151
- # Applied means the requested page state was visibly verified. Failed means it was
1152
- # not verified. Skipped means it was not attempted.
1153
- module Status
1154
- extend ContextDev::Internal::Type::Enum
1155
-
1156
- TaggedSymbol =
1157
- T.type_alias do
1158
- T.all(
1159
- Symbol,
1160
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status
1161
- )
1162
- end
1163
- OrSymbol = T.type_alias { T.any(Symbol, String) }
1164
-
1165
- APPLIED =
1166
- T.let(
1167
- :applied,
1168
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol
1169
- )
1170
- FAILED =
1171
- T.let(
1172
- :failed,
1173
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol
1174
- )
1175
- SKIPPED =
1176
- T.let(
1177
- :skipped,
1178
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol
1179
- )
1180
-
1181
- sig do
1182
- override.returns(
1183
- T::Array[
1184
- ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::Status::TaggedSymbol
1185
- ]
1186
- )
1187
- end
1188
- def self.values
1189
- end
1190
- end
1191
- end
1192
-
1193
- module Extracted
1194
- extend ContextDev::Internal::Type::Union
1195
-
1196
- Variants =
1197
- T.type_alias do
1198
- T.any(
1199
- String,
1200
- T.anything,
1201
- T::Array[
1202
- T.nilable(
1203
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::UnionMember2::Variants
1204
- )
1205
- ]
1206
- )
1207
- end
1208
-
1209
- module UnionMember2
1210
- extend ContextDev::Internal::Type::Union
1211
-
1212
- Variants = T.type_alias { T.any(String, T.anything) }
1213
-
1214
- sig do
1215
- override.returns(
1216
- T::Array[
1217
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::UnionMember2::Variants
1218
- ]
1219
- )
1220
- end
1221
- def self.variants
1222
- end
1223
- end
1224
-
1225
- sig do
1226
- override.returns(
1227
- T::Array[
1228
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
1229
- ]
1230
- )
1231
- end
1232
- def self.variants
1233
- end
1234
-
1235
- UnionMember2Array =
1236
- T.let(
1237
- ContextDev::Internal::Type::ArrayOf[
1238
- union:
1239
- ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::UnionMember2,
1240
- nil?: true
1241
- ],
1242
- ContextDev::Internal::Type::Converter
1243
- )
1244
- end
1245
-
1246
- class KeyMetadata < ContextDev::Internal::Type::BaseModel
1247
- OrHash =
1248
- T.type_alias do
1249
- T.any(
1250
- ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata,
1251
- ContextDev::Internal::AnyHash
1252
- )
1253
- end
1254
-
1255
- # Credits used by this request.
1256
- sig { returns(Integer) }
1257
- attr_accessor :credits_consumed
1258
-
1259
- # Credits remaining for your organization.
1260
- sig { returns(Integer) }
1261
- attr_accessor :credits_remaining
1262
-
1263
- # Credit usage, included whenever a valid API key is provided.
1264
- sig do
1265
- params(credits_consumed: Integer, credits_remaining: Integer).returns(
1266
- T.attached_class
1267
- )
1268
- end
1269
- def self.new(
1270
- # Credits used by this request.
1271
- credits_consumed:,
1272
- # Credits remaining for your organization.
1273
- credits_remaining:
1274
- )
1275
- end
1276
-
1277
- sig do
1278
- override.returns(
1279
- { credits_consumed: Integer, credits_remaining: Integer }
1280
- )
1281
- end
1282
- def to_hash
1283
- end
1284
- end
1285
- end
1286
- end
1287
- end