context.dev 2.17.1 → 2.19.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 (139) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +33 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +0 -4
  5. data/lib/context_dev/models/industry_retrieve_naics_params.rb +28 -1
  6. data/lib/context_dev/models/industry_retrieve_sic_params.rb +28 -1
  7. data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
  8. data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
  9. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
  10. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
  11. data/lib/context_dev/models/parse_handle_params.rb +8 -6
  12. data/lib/context_dev/models/person_enrich_params.rb +28 -1
  13. data/lib/context_dev/models/web_answers_params.rb +28 -1
  14. data/lib/context_dev/models/web_extract_competitors_params.rb +28 -1
  15. data/lib/context_dev/models/web_extract_styleguide_params.rb +30 -3
  16. data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +22 -20
  17. data/lib/context_dev/models/web_map_urls_response.rb +123 -0
  18. data/lib/context_dev/models/web_scrape_params.rb +906 -0
  19. data/lib/context_dev/models/web_scrape_response.rb +659 -0
  20. data/lib/context_dev/models/web_screenshot_params.rb +25 -9
  21. data/lib/context_dev/models/web_screenshot_response.rb +3 -3
  22. data/lib/context_dev/models/web_search_params.rb +30 -3
  23. data/lib/context_dev/models.rb +8 -20
  24. data/lib/context_dev/resources/brand.rb +0 -36
  25. data/lib/context_dev/resources/industry.rb +6 -2
  26. data/lib/context_dev/resources/monitors.rb +47 -0
  27. data/lib/context_dev/resources/people.rb +3 -1
  28. data/lib/context_dev/resources/web.rb +116 -413
  29. data/lib/context_dev/version.rb +1 -1
  30. data/lib/context_dev.rb +8 -21
  31. data/rbi/context_dev/client.rbi +0 -3
  32. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +59 -0
  33. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +57 -0
  34. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
  35. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
  36. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
  37. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
  38. data/rbi/context_dev/models/parse_handle_params.rbi +12 -9
  39. data/rbi/context_dev/models/person_enrich_params.rbi +45 -0
  40. data/rbi/context_dev/models/web_answers_params.rbi +45 -0
  41. data/rbi/context_dev/models/web_extract_competitors_params.rbi +59 -0
  42. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +62 -3
  43. data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +35 -54
  44. data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
  45. data/rbi/context_dev/models/web_scrape_params.rbi +2000 -0
  46. data/rbi/context_dev/models/{web_web_scrape_html_response.rbi → web_scrape_response.rbi} +550 -418
  47. data/rbi/context_dev/models/web_screenshot_params.rbi +38 -12
  48. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
  49. data/rbi/context_dev/models/web_search_params.rbi +48 -3
  50. data/rbi/context_dev/models.rbi +9 -21
  51. data/rbi/context_dev/resources/brand.rbi +0 -35
  52. data/rbi/context_dev/resources/industry.rbi +14 -0
  53. data/rbi/context_dev/resources/monitors.rbi +24 -0
  54. data/rbi/context_dev/resources/parse.rbi +4 -4
  55. data/rbi/context_dev/resources/people.rbi +7 -0
  56. data/rbi/context_dev/resources/web.rbi +166 -533
  57. data/sig/context_dev/client.rbs +0 -2
  58. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +21 -1
  59. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +21 -1
  60. data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
  61. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
  62. data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
  63. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
  64. data/sig/context_dev/models/person_enrich_params.rbs +21 -1
  65. data/sig/context_dev/models/web_answers_params.rbs +21 -1
  66. data/sig/context_dev/models/web_extract_competitors_params.rbs +21 -1
  67. data/sig/context_dev/models/web_extract_styleguide_params.rbs +21 -1
  68. data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
  69. data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
  70. data/sig/context_dev/models/web_scrape_params.rbs +834 -0
  71. data/sig/context_dev/models/web_scrape_response.rbs +552 -0
  72. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  73. data/sig/context_dev/models/web_search_params.rbs +21 -1
  74. data/sig/context_dev/models.rbs +8 -20
  75. data/sig/context_dev/resources/brand.rbs +0 -9
  76. data/sig/context_dev/resources/industry.rbs +2 -0
  77. data/sig/context_dev/resources/monitors.rbs +11 -0
  78. data/sig/context_dev/resources/people.rbs +1 -0
  79. data/sig/context_dev/resources/web.rbs +34 -108
  80. metadata +26 -65
  81. data/lib/context_dev/models/ai_extract_product_params.rb +0 -98
  82. data/lib/context_dev/models/ai_extract_product_response.rb +0 -352
  83. data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
  84. data/lib/context_dev/models/ai_extract_products_response.rb +0 -320
  85. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
  86. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
  87. data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
  88. data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
  89. data/lib/context_dev/models/web_extract_params.rb +0 -392
  90. data/lib/context_dev/models/web_extract_response.rb +0 -287
  91. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -344
  92. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
  93. data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -633
  94. data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -588
  95. data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -346
  96. data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
  97. data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -668
  98. data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
  99. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
  100. data/lib/context_dev/resources/ai.rb +0 -69
  101. data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -199
  102. data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -696
  103. data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
  104. data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -623
  105. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
  106. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
  107. data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
  108. data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
  109. data/rbi/context_dev/models/web_extract_params.rbi +0 -736
  110. data/rbi/context_dev/models/web_extract_response.rbi +0 -512
  111. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -699
  112. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
  113. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1217
  114. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -671
  115. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
  116. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1049
  117. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
  118. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
  119. data/rbi/context_dev/resources/ai.rbi +0 -56
  120. data/sig/context_dev/models/ai_extract_product_params.rbs +0 -86
  121. data/sig/context_dev/models/ai_extract_product_response.rbs +0 -273
  122. data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
  123. data/sig/context_dev/models/ai_extract_products_response.rbs +0 -252
  124. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
  125. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
  126. data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
  127. data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
  128. data/sig/context_dev/models/web_extract_params.rbs +0 -304
  129. data/sig/context_dev/models/web_extract_response.rbs +0 -239
  130. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
  131. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
  132. data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -730
  133. data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -495
  134. data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -261
  135. data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
  136. data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
  137. data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
  138. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
  139. data/sig/context_dev/resources/ai.rbs +0 -20
@@ -1,736 +0,0 @@
1
- # typed: strong
2
-
3
- module ContextDev
4
- module Models
5
- class WebExtractParams < ContextDev::Internal::Type::BaseModel
6
- extend ContextDev::Internal::Type::RequestParameters::Converter
7
- include ContextDev::Internal::Type::RequestParameters
8
-
9
- OrHash =
10
- T.type_alias do
11
- T.any(ContextDev::WebExtractParams, ContextDev::Internal::AnyHash)
12
- end
13
-
14
- # JSON Schema for the returned data object. Image fields such as `image_urls` or
15
- # `product_photos` automatically make page image references available to
16
- # extraction, so product data and photos can be returned in one call. TypeScript
17
- # Zod users can pass a JSON Schema generated from a Zod object; Python users can
18
- # pass the equivalent JSON Schema object.
19
- sig { returns(T::Hash[Symbol, T.anything]) }
20
- attr_accessor :schema
21
-
22
- # The starting website URL to crawl and extract from. Must include http:// or
23
- # https://.
24
- sig { returns(String) }
25
- attr_accessor :url
26
-
27
- # Optional browser actions executed in order on the requested page after it loads,
28
- # before links are discovered or additional pages are crawled. Requires a paid
29
- # plan. When actions are provided and stopAfterMs is omitted, the crawl budget
30
- # defaults to 110000 ms.
31
- sig do
32
- returns(
33
- T.nilable(
34
- T::Array[
35
- T.any(
36
- ContextDev::WebExtractParams::Action::Wait,
37
- ContextDev::WebExtractParams::Action::Perform,
38
- ContextDev::WebExtractParams::Action::Scroll
39
- )
40
- ]
41
- )
42
- )
43
- end
44
- attr_reader :actions
45
-
46
- sig do
47
- params(
48
- actions:
49
- T::Array[
50
- T.any(
51
- ContextDev::WebExtractParams::Action::Wait::OrHash,
52
- ContextDev::WebExtractParams::Action::Perform::OrHash,
53
- ContextDev::WebExtractParams::Action::Scroll::OrHash
54
- )
55
- ]
56
- ).void
57
- end
58
- attr_writer :actions
59
-
60
- # When true, every returned value must be grounded in facts stated on the page;
61
- # fields that cannot be supported by the page are returned as null/empty. When
62
- # false (default), the model may make reasonable inferences and derivations from
63
- # the page content (e.g. ideal customer, competitor analysis, recommendations)
64
- # while keeping verifiable specifics (names, quotes, URLs, dates, metrics)
65
- # faithful to the source.
66
- sig { returns(T.nilable(T::Boolean)) }
67
- attr_reader :fact_check
68
-
69
- sig { params(fact_check: T::Boolean).void }
70
- attr_writer :fact_check
71
-
72
- # When true, follow links on subdomains of the starting URL's domain.
73
- sig { returns(T.nilable(T::Boolean)) }
74
- attr_reader :follow_subdomains
75
-
76
- sig { params(follow_subdomains: T::Boolean).void }
77
- attr_writer :follow_subdomains
78
-
79
- # When true, iframe contents are included in Markdown before extraction.
80
- sig { returns(T.nilable(T::Boolean)) }
81
- attr_reader :include_frames
82
-
83
- sig { params(include_frames: T::Boolean).void }
84
- attr_writer :include_frames
85
-
86
- # Optional extraction guidance, such as which facts to prioritize or how to
87
- # interpret fields in the schema.
88
- sig { returns(T.nilable(String)) }
89
- attr_reader :instructions
90
-
91
- sig { params(instructions: String).void }
92
- attr_writer :instructions
93
-
94
- # Return cached scrape results if a prior scrape for the same parameters is
95
- # younger than this many milliseconds. Defaults to 7 days (604800000 ms).
96
- sig { returns(T.nilable(Integer)) }
97
- attr_reader :max_age_ms
98
-
99
- sig { params(max_age_ms: Integer).void }
100
- attr_writer :max_age_ms
101
-
102
- # Optional maximum link depth from the starting URL (0 = only the starting page).
103
- # If omitted, there is no crawl depth limit.
104
- sig { returns(T.nilable(Integer)) }
105
- attr_reader :max_depth
106
-
107
- sig { params(max_depth: Integer).void }
108
- attr_writer :max_depth
109
-
110
- # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
111
- sig { returns(T.nilable(Integer)) }
112
- attr_reader :max_pages
113
-
114
- sig { params(max_pages: Integer).void }
115
- attr_writer :max_pages
116
-
117
- sig { returns(T.nilable(ContextDev::WebExtractParams::Pdf)) }
118
- attr_reader :pdf
119
-
120
- sig { params(pdf: ContextDev::WebExtractParams::Pdf::OrHash).void }
121
- attr_writer :pdf
122
-
123
- # When true, waits briefly for CSS and transition animations to settle before
124
- # extracting each crawled page. Defaults to false. This adds a bit of latency in
125
- # exchange for more stable output on animated pages.
126
- sig { returns(T.nilable(T::Boolean)) }
127
- attr_reader :settle_animations
128
-
129
- sig { params(settle_animations: T::Boolean).void }
130
- attr_writer :settle_animations
131
-
132
- # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
133
- # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
134
- # provided.
135
- sig { returns(T.nilable(Integer)) }
136
- attr_reader :stop_after_ms
137
-
138
- sig { params(stop_after_ms: Integer).void }
139
- attr_writer :stop_after_ms
140
-
141
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
142
- sig { returns(T.nilable(T::Array[String])) }
143
- attr_reader :tags
144
-
145
- sig { params(tags: T::Array[String]).void }
146
- attr_writer :tags
147
-
148
- # Optional request deadline and behavior on timeout. For GET requests, use
149
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
150
- # timeoutOpts object.
151
- sig { returns(T.nilable(ContextDev::WebExtractParams::TimeoutOpts)) }
152
- attr_reader :timeout_opts
153
-
154
- sig do
155
- params(
156
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash
157
- ).void
158
- end
159
- attr_writer :timeout_opts
160
-
161
- # Optional browser wait time in milliseconds after initial page load for each
162
- # crawled page.
163
- sig { returns(T.nilable(Integer)) }
164
- attr_reader :wait_for_ms
165
-
166
- sig { params(wait_for_ms: Integer).void }
167
- attr_writer :wait_for_ms
168
-
169
- sig do
170
- params(
171
- schema: T::Hash[Symbol, T.anything],
172
- url: String,
173
- actions:
174
- T::Array[
175
- T.any(
176
- ContextDev::WebExtractParams::Action::Wait::OrHash,
177
- ContextDev::WebExtractParams::Action::Perform::OrHash,
178
- ContextDev::WebExtractParams::Action::Scroll::OrHash
179
- )
180
- ],
181
- fact_check: T::Boolean,
182
- follow_subdomains: T::Boolean,
183
- include_frames: T::Boolean,
184
- instructions: String,
185
- max_age_ms: Integer,
186
- max_depth: Integer,
187
- max_pages: Integer,
188
- pdf: ContextDev::WebExtractParams::Pdf::OrHash,
189
- settle_animations: T::Boolean,
190
- stop_after_ms: Integer,
191
- tags: T::Array[String],
192
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts::OrHash,
193
- wait_for_ms: Integer,
194
- request_options: ContextDev::RequestOptions::OrHash
195
- ).returns(T.attached_class)
196
- end
197
- def self.new(
198
- # JSON Schema for the returned data object. Image fields such as `image_urls` or
199
- # `product_photos` automatically make page image references available to
200
- # extraction, so product data and photos can be returned in one call. TypeScript
201
- # Zod users can pass a JSON Schema generated from a Zod object; Python users can
202
- # pass the equivalent JSON Schema object.
203
- schema:,
204
- # The starting website URL to crawl and extract from. Must include http:// or
205
- # https://.
206
- url:,
207
- # Optional browser actions executed in order on the requested page after it loads,
208
- # before links are discovered or additional pages are crawled. Requires a paid
209
- # plan. When actions are provided and stopAfterMs is omitted, the crawl budget
210
- # defaults to 110000 ms.
211
- actions: nil,
212
- # When true, every returned value must be grounded in facts stated on the page;
213
- # fields that cannot be supported by the page are returned as null/empty. When
214
- # false (default), the model may make reasonable inferences and derivations from
215
- # the page content (e.g. ideal customer, competitor analysis, recommendations)
216
- # while keeping verifiable specifics (names, quotes, URLs, dates, metrics)
217
- # faithful to the source.
218
- fact_check: nil,
219
- # When true, follow links on subdomains of the starting URL's domain.
220
- follow_subdomains: nil,
221
- # When true, iframe contents are included in Markdown before extraction.
222
- include_frames: nil,
223
- # Optional extraction guidance, such as which facts to prioritize or how to
224
- # interpret fields in the schema.
225
- instructions: nil,
226
- # Return cached scrape results if a prior scrape for the same parameters is
227
- # younger than this many milliseconds. Defaults to 7 days (604800000 ms).
228
- max_age_ms: nil,
229
- # Optional maximum link depth from the starting URL (0 = only the starting page).
230
- # If omitted, there is no crawl depth limit.
231
- max_depth: nil,
232
- # Maximum number of pages to analyze for extraction. Hard cap: 50. Defaults to 5.
233
- max_pages: nil,
234
- pdf: nil,
235
- # When true, waits briefly for CSS and transition animations to settle before
236
- # extracting each crawled page. Defaults to false. This adds a bit of latency in
237
- # exchange for more stable output on animated pages.
238
- settle_animations: nil,
239
- # Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000
240
- # (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are
241
- # provided.
242
- stop_after_ms: nil,
243
- # Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
244
- tags: nil,
245
- # Optional request deadline and behavior on timeout. For GET requests, use
246
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
247
- # timeoutOpts object.
248
- timeout_opts: nil,
249
- # Optional browser wait time in milliseconds after initial page load for each
250
- # crawled page.
251
- wait_for_ms: nil,
252
- request_options: {}
253
- )
254
- end
255
-
256
- sig do
257
- override.returns(
258
- {
259
- schema: T::Hash[Symbol, T.anything],
260
- url: String,
261
- actions:
262
- T::Array[
263
- T.any(
264
- ContextDev::WebExtractParams::Action::Wait,
265
- ContextDev::WebExtractParams::Action::Perform,
266
- ContextDev::WebExtractParams::Action::Scroll
267
- )
268
- ],
269
- fact_check: T::Boolean,
270
- follow_subdomains: T::Boolean,
271
- include_frames: T::Boolean,
272
- instructions: String,
273
- max_age_ms: Integer,
274
- max_depth: Integer,
275
- max_pages: Integer,
276
- pdf: ContextDev::WebExtractParams::Pdf,
277
- settle_animations: T::Boolean,
278
- stop_after_ms: Integer,
279
- tags: T::Array[String],
280
- timeout_opts: ContextDev::WebExtractParams::TimeoutOpts,
281
- wait_for_ms: Integer,
282
- request_options: ContextDev::RequestOptions
283
- }
284
- )
285
- end
286
- def to_hash
287
- end
288
-
289
- # Browser action discriminated by `do`. Each variant exposes only its applicable
290
- # fields.
291
- module Action
292
- extend ContextDev::Internal::Type::Union
293
-
294
- Variants =
295
- T.type_alias do
296
- T.any(
297
- ContextDev::WebExtractParams::Action::Wait,
298
- ContextDev::WebExtractParams::Action::Perform,
299
- ContextDev::WebExtractParams::Action::Scroll
300
- )
301
- end
302
-
303
- class Wait < ContextDev::Internal::Type::BaseModel
304
- OrHash =
305
- T.type_alias do
306
- T.any(
307
- ContextDev::WebExtractParams::Action::Wait,
308
- ContextDev::Internal::AnyHash
309
- )
310
- end
311
-
312
- sig { returns(Symbol) }
313
- attr_accessor :do_
314
-
315
- sig { returns(Integer) }
316
- attr_accessor :time_ms
317
-
318
- # Pause for a fixed number of milliseconds before continuing to the next action.
319
- sig do
320
- params(time_ms: Integer, do_: Symbol).returns(T.attached_class)
321
- end
322
- def self.new(time_ms:, do_: :wait)
323
- end
324
-
325
- sig { override.returns({ do_: Symbol, time_ms: Integer }) }
326
- def to_hash
327
- end
328
- end
329
-
330
- class Perform < ContextDev::Internal::Type::BaseModel
331
- OrHash =
332
- T.type_alias do
333
- T.any(
334
- ContextDev::WebExtractParams::Action::Perform,
335
- ContextDev::Internal::AnyHash
336
- )
337
- end
338
-
339
- sig { returns(String) }
340
- attr_accessor :action
341
-
342
- sig { returns(Symbol) }
343
- attr_accessor :do_
344
-
345
- # Resolve and perform one natural-language browser action.
346
- sig { params(action: String, do_: Symbol).returns(T.attached_class) }
347
- def self.new(action:, do_: :perform)
348
- end
349
-
350
- sig { override.returns({ action: String, do_: Symbol }) }
351
- def to_hash
352
- end
353
- end
354
-
355
- class Scroll < ContextDev::Internal::Type::BaseModel
356
- OrHash =
357
- T.type_alias do
358
- T.any(
359
- ContextDev::WebExtractParams::Action::Scroll,
360
- ContextDev::Internal::AnyHash
361
- )
362
- end
363
-
364
- sig { returns(Symbol) }
365
- attr_accessor :do_
366
-
367
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
368
- # Defaults to viewport.
369
- sig do
370
- returns(
371
- T.nilable(
372
- T.any(
373
- Integer,
374
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
375
- )
376
- )
377
- )
378
- end
379
- attr_reader :amount
380
-
381
- sig do
382
- params(
383
- amount:
384
- T.any(
385
- Integer,
386
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
387
- )
388
- ).void
389
- end
390
- attr_writer :amount
391
-
392
- # CSS selector for the first matching scroll container. Defaults to the page.
393
- sig { returns(T.nilable(String)) }
394
- attr_reader :container
395
-
396
- sig { params(container: String).void }
397
- attr_writer :container
398
-
399
- # Direction to scroll. Defaults to down.
400
- sig do
401
- returns(
402
- T.nilable(
403
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
404
- )
405
- )
406
- end
407
- attr_reader :direction
408
-
409
- sig do
410
- params(
411
- direction:
412
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol
413
- ).void
414
- end
415
- attr_writer :direction
416
-
417
- # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
418
- # changing. Defaults to 1.
419
- sig { returns(T.nilable(Integer)) }
420
- attr_reader :max_scrolls
421
-
422
- sig { params(max_scrolls: Integer).void }
423
- attr_writer :max_scrolls
424
-
425
- # Scroll the page or a selected scrollable container, waiting adaptively for
426
- # content and dimensions to settle after each iteration.
427
- sig do
428
- params(
429
- amount:
430
- T.any(
431
- Integer,
432
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
433
- ),
434
- container: String,
435
- direction:
436
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
437
- max_scrolls: Integer,
438
- do_: Symbol
439
- ).returns(T.attached_class)
440
- end
441
- def self.new(
442
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
443
- # Defaults to viewport.
444
- amount: nil,
445
- # CSS selector for the first matching scroll container. Defaults to the page.
446
- container: nil,
447
- # Direction to scroll. Defaults to down.
448
- direction: nil,
449
- # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
450
- # changing. Defaults to 1.
451
- max_scrolls: nil,
452
- do_: :scroll
453
- )
454
- end
455
-
456
- sig do
457
- override.returns(
458
- {
459
- do_: Symbol,
460
- amount:
461
- T.any(
462
- Integer,
463
- ContextDev::WebExtractParams::Action::Scroll::Amount::OrSymbol
464
- ),
465
- container: String,
466
- direction:
467
- ContextDev::WebExtractParams::Action::Scroll::Direction::OrSymbol,
468
- max_scrolls: Integer
469
- }
470
- )
471
- end
472
- def to_hash
473
- end
474
-
475
- # Pixels per scroll, one visible viewport, or the current scroll boundary.
476
- # Defaults to viewport.
477
- module Amount
478
- extend ContextDev::Internal::Type::Union
479
-
480
- Variants =
481
- T.type_alias do
482
- T.any(
483
- Integer,
484
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
485
- )
486
- end
487
-
488
- sig do
489
- override.returns(
490
- T::Array[
491
- ContextDev::WebExtractParams::Action::Scroll::Amount::Variants
492
- ]
493
- )
494
- end
495
- def self.variants
496
- end
497
-
498
- TaggedSymbol =
499
- T.type_alias do
500
- T.all(
501
- Symbol,
502
- ContextDev::WebExtractParams::Action::Scroll::Amount
503
- )
504
- end
505
- OrSymbol = T.type_alias { T.any(Symbol, String) }
506
-
507
- VIEWPORT =
508
- T.let(
509
- :viewport,
510
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
511
- )
512
- MAX =
513
- T.let(
514
- :max,
515
- ContextDev::WebExtractParams::Action::Scroll::Amount::TaggedSymbol
516
- )
517
- end
518
-
519
- # Direction to scroll. Defaults to down.
520
- module Direction
521
- extend ContextDev::Internal::Type::Enum
522
-
523
- TaggedSymbol =
524
- T.type_alias do
525
- T.all(
526
- Symbol,
527
- ContextDev::WebExtractParams::Action::Scroll::Direction
528
- )
529
- end
530
- OrSymbol = T.type_alias { T.any(Symbol, String) }
531
-
532
- UP =
533
- T.let(
534
- :up,
535
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
536
- )
537
- DOWN =
538
- T.let(
539
- :down,
540
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
541
- )
542
- LEFT =
543
- T.let(
544
- :left,
545
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
546
- )
547
- RIGHT =
548
- T.let(
549
- :right,
550
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
551
- )
552
-
553
- sig do
554
- override.returns(
555
- T::Array[
556
- ContextDev::WebExtractParams::Action::Scroll::Direction::TaggedSymbol
557
- ]
558
- )
559
- end
560
- def self.values
561
- end
562
- end
563
- end
564
-
565
- sig do
566
- override.returns(
567
- T::Array[ContextDev::WebExtractParams::Action::Variants]
568
- )
569
- end
570
- def self.variants
571
- end
572
- end
573
-
574
- class Pdf < ContextDev::Internal::Type::BaseModel
575
- OrHash =
576
- T.type_alias do
577
- T.any(
578
- ContextDev::WebExtractParams::Pdf,
579
- ContextDev::Internal::AnyHash
580
- )
581
- end
582
-
583
- # Last 1-based PDF page to parse. Must be greater than or equal to start when both
584
- # are provided.
585
- sig { returns(T.nilable(Integer)) }
586
- attr_reader :end_
587
-
588
- sig { params(end_: Integer).void }
589
- attr_writer :end_
590
-
591
- # When true, PDF pages are fetched and parsed. When false, PDF pages are skipped.
592
- sig { returns(T.nilable(T::Boolean)) }
593
- attr_reader :should_parse
594
-
595
- sig { params(should_parse: T::Boolean).void }
596
- attr_writer :should_parse
597
-
598
- # First 1-based PDF page to parse.
599
- sig { returns(T.nilable(Integer)) }
600
- attr_reader :start
601
-
602
- sig { params(start: Integer).void }
603
- attr_writer :start
604
-
605
- sig do
606
- params(
607
- end_: Integer,
608
- should_parse: T::Boolean,
609
- start: Integer
610
- ).returns(T.attached_class)
611
- end
612
- def self.new(
613
- # Last 1-based PDF page to parse. Must be greater than or equal to start when both
614
- # are provided.
615
- end_: nil,
616
- # When true, PDF pages are fetched and parsed. When false, PDF pages are skipped.
617
- should_parse: nil,
618
- # First 1-based PDF page to parse.
619
- start: nil
620
- )
621
- end
622
-
623
- sig do
624
- override.returns(
625
- { end_: Integer, should_parse: T::Boolean, start: Integer }
626
- )
627
- end
628
- def to_hash
629
- end
630
- end
631
-
632
- class TimeoutOpts < ContextDev::Internal::Type::BaseModel
633
- OrHash =
634
- T.type_alias do
635
- T.any(
636
- ContextDev::WebExtractParams::TimeoutOpts,
637
- ContextDev::Internal::AnyHash
638
- )
639
- end
640
-
641
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
642
- sig { returns(Integer) }
643
- attr_accessor :milliseconds
644
-
645
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
646
- # credits. "return-partial" returns usable results collected so far; if none are
647
- # available, the request still fails without charging credits. Partial results are
648
- # not cached as complete results.
649
- sig do
650
- returns(
651
- T.nilable(
652
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
653
- )
654
- )
655
- end
656
- attr_reader :behavior
657
-
658
- sig do
659
- params(
660
- behavior:
661
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
662
- ).void
663
- end
664
- attr_writer :behavior
665
-
666
- # Optional request deadline and behavior on timeout. For GET requests, use
667
- # timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
668
- # timeoutOpts object.
669
- sig do
670
- params(
671
- milliseconds: Integer,
672
- behavior:
673
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
674
- ).returns(T.attached_class)
675
- end
676
- def self.new(
677
- # Request deadline in milliseconds. Maximum: 300000 (5 minutes).
678
- milliseconds:,
679
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
680
- # credits. "return-partial" returns usable results collected so far; if none are
681
- # available, the request still fails without charging credits. Partial results are
682
- # not cached as complete results.
683
- behavior: nil
684
- )
685
- end
686
-
687
- sig do
688
- override.returns(
689
- {
690
- milliseconds: Integer,
691
- behavior:
692
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::OrSymbol
693
- }
694
- )
695
- end
696
- def to_hash
697
- end
698
-
699
- # What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
700
- # credits. "return-partial" returns usable results collected so far; if none are
701
- # available, the request still fails without charging credits. Partial results are
702
- # not cached as complete results.
703
- module Behavior
704
- extend ContextDev::Internal::Type::Enum
705
-
706
- TaggedSymbol =
707
- T.type_alias do
708
- T.all(Symbol, ContextDev::WebExtractParams::TimeoutOpts::Behavior)
709
- end
710
- OrSymbol = T.type_alias { T.any(Symbol, String) }
711
-
712
- FAIL =
713
- T.let(
714
- :fail,
715
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
716
- )
717
- RETURN_PARTIAL =
718
- T.let(
719
- :"return-partial",
720
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
721
- )
722
-
723
- sig do
724
- override.returns(
725
- T::Array[
726
- ContextDev::WebExtractParams::TimeoutOpts::Behavior::TaggedSymbol
727
- ]
728
- )
729
- end
730
- def self.values
731
- end
732
- end
733
- end
734
- end
735
- end
736
- end