context.dev 2.18.0 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +1 -1
- data/lib/context_dev/client.rb +0 -4
- data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
- data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
- data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
- data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
- data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
- data/lib/context_dev/models/web_map_urls_response.rb +123 -0
- data/lib/context_dev/models/web_scrape_params.rb +906 -0
- data/lib/context_dev/models/web_scrape_response.rb +659 -0
- data/lib/context_dev/models/web_screenshot_params.rb +15 -1
- data/lib/context_dev/models/web_screenshot_response.rb +3 -3
- data/lib/context_dev/models.rb +8 -22
- data/lib/context_dev/resources/brand.rb +0 -36
- data/lib/context_dev/resources/monitors.rb +47 -0
- data/lib/context_dev/resources/web.rb +106 -486
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +8 -23
- data/rbi/context_dev/client.rbi +0 -3
- data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
- data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
- data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
- data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
- data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
- data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
- data/rbi/context_dev/models/web_scrape_params.rbi +2000 -0
- data/rbi/context_dev/models/{web_web_scrape_html_response.rbi → web_scrape_response.rbi} +539 -510
- data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
- data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
- data/rbi/context_dev/models.rbi +9 -24
- data/rbi/context_dev/resources/brand.rbi +0 -35
- data/rbi/context_dev/resources/monitors.rbi +24 -0
- data/rbi/context_dev/resources/web.rbi +135 -654
- data/sig/context_dev/client.rbs +0 -2
- data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
- data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
- data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
- data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
- data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
- data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
- data/sig/context_dev/models/web_scrape_params.rbs +834 -0
- data/sig/context_dev/models/web_scrape_response.rbs +552 -0
- data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
- data/sig/context_dev/models.rbs +8 -22
- data/sig/context_dev/resources/brand.rbs +0 -9
- data/sig/context_dev/resources/monitors.rbs +11 -0
- data/sig/context_dev/resources/web.rbs +30 -128
- metadata +26 -71
- data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
- data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
- data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
- data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
- data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
- data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
- data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
- data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
- data/lib/context_dev/models/web_extract_params.rb +0 -419
- data/lib/context_dev/models/web_extract_response.rb +0 -287
- data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
- data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
- data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
- data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
- data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
- data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
- data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
- data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
- data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
- data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
- data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
- data/lib/context_dev/resources/ai.rb +0 -71
- data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
- data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
- data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
- data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
- data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
- data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
- data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
- data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
- data/rbi/context_dev/models/web_extract_params.rbi +0 -781
- data/rbi/context_dev/models/web_extract_response.rbi +0 -512
- data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
- data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
- data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
- data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
- data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
- data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
- data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
- data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
- data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
- data/rbi/context_dev/resources/ai.rbi +0 -63
- data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
- data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
- data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
- data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
- data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
- data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
- data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
- data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
- data/sig/context_dev/models/web_extract_params.rbs +0 -324
- data/sig/context_dev/models/web_extract_response.rbs +0 -239
- data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
- data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
- data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
- data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
- data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
- data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
- data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
- data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
- data/sig/context_dev/resources/ai.rbs +0 -21
|
@@ -2,235 +2,192 @@
|
|
|
2
2
|
|
|
3
3
|
module ContextDev
|
|
4
4
|
module Models
|
|
5
|
-
class
|
|
5
|
+
class WebScrapeResponse < ContextDev::Internal::Type::BaseModel
|
|
6
6
|
OrHash =
|
|
7
7
|
T.type_alias do
|
|
8
8
|
T.any(
|
|
9
|
-
ContextDev::Models::
|
|
9
|
+
ContextDev::Models::WebScrapeResponse,
|
|
10
10
|
ContextDev::Internal::AnyHash
|
|
11
11
|
)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Original HTTP response body. Waiting, actions, and content filters never change
|
|
15
|
+
# it.
|
|
16
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Bytes) }
|
|
17
|
+
attr_reader :bytes
|
|
18
|
+
|
|
19
|
+
sig do
|
|
20
|
+
params(bytes: ContextDev::Models::WebScrapeResponse::Bytes::OrHash).void
|
|
21
|
+
end
|
|
22
|
+
attr_writer :bytes
|
|
23
|
+
|
|
14
24
|
# Cache outcome for this response. Composite responses are hits only when every
|
|
15
25
|
# cache-controlled fetch contributing to the output was a hit; age_ms is the
|
|
16
26
|
# oldest contributing hit.
|
|
17
|
-
sig
|
|
18
|
-
returns(ContextDev::Models::WebWebScrapeHTMLResponse::CacheMetadata)
|
|
19
|
-
end
|
|
27
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::CacheMetadata) }
|
|
20
28
|
attr_reader :cache_metadata
|
|
21
29
|
|
|
22
30
|
sig do
|
|
23
31
|
params(
|
|
24
32
|
cache_metadata:
|
|
25
|
-
ContextDev::Models::
|
|
33
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::OrHash
|
|
26
34
|
).void
|
|
27
35
|
end
|
|
28
36
|
attr_writer :cache_metadata
|
|
29
37
|
|
|
30
|
-
#
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
# parts may be missing. Partial results are billed at the base request cost.
|
|
38
|
+
# Rendered HTML after content filters.
|
|
39
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::HTML) }
|
|
40
|
+
attr_reader :html
|
|
41
|
+
|
|
35
42
|
sig do
|
|
36
|
-
|
|
37
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::FinalDomState::TaggedSymbol
|
|
38
|
-
)
|
|
43
|
+
params(html: ContextDev::Models::WebScrapeResponse::HTML::OrHash).void
|
|
39
44
|
end
|
|
40
|
-
|
|
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
|
|
45
|
+
attr_writer :html
|
|
47
46
|
|
|
48
|
-
#
|
|
49
|
-
sig { returns(ContextDev::Models::
|
|
50
|
-
attr_reader :
|
|
47
|
+
# Images after content filters. Empty when none are found.
|
|
48
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Images) }
|
|
49
|
+
attr_reader :images
|
|
51
50
|
|
|
52
51
|
sig do
|
|
53
52
|
params(
|
|
54
|
-
|
|
55
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::OrHash
|
|
53
|
+
images: ContextDev::Models::WebScrapeResponse::Images::OrHash
|
|
56
54
|
).void
|
|
57
55
|
end
|
|
58
|
-
attr_writer :
|
|
56
|
+
attr_writer :images
|
|
59
57
|
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
attr_accessor :request_id
|
|
58
|
+
# Markdown after content filters.
|
|
59
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Markdown) }
|
|
60
|
+
attr_reader :markdown
|
|
64
61
|
|
|
65
|
-
# Indicates success
|
|
66
62
|
sig do
|
|
67
|
-
|
|
68
|
-
ContextDev::Models::
|
|
69
|
-
)
|
|
63
|
+
params(
|
|
64
|
+
markdown: ContextDev::Models::WebScrapeResponse::Markdown::OrHash
|
|
65
|
+
).void
|
|
70
66
|
end
|
|
71
|
-
|
|
67
|
+
attr_writer :markdown
|
|
68
|
+
|
|
69
|
+
# Page details, when available.
|
|
70
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Metadata) }
|
|
71
|
+
attr_reader :metadata
|
|
72
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
73
|
sig do
|
|
78
|
-
|
|
79
|
-
ContextDev::Models::
|
|
80
|
-
)
|
|
74
|
+
params(
|
|
75
|
+
metadata: ContextDev::Models::WebScrapeResponse::Metadata::OrHash
|
|
76
|
+
).void
|
|
81
77
|
end
|
|
82
|
-
|
|
78
|
+
attr_writer :metadata
|
|
83
79
|
|
|
84
|
-
#
|
|
85
|
-
sig { returns(
|
|
86
|
-
|
|
80
|
+
# Fields produced by parseParams.rules, after shared content filters.
|
|
81
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Parsed) }
|
|
82
|
+
attr_reader :parsed
|
|
87
83
|
|
|
88
|
-
# One verified outcome per requested browser action, in request order.
|
|
89
84
|
sig do
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied
|
|
94
|
-
]
|
|
95
|
-
)
|
|
96
|
-
)
|
|
85
|
+
params(
|
|
86
|
+
parsed: ContextDev::Models::WebScrapeResponse::Parsed::OrHash
|
|
87
|
+
).void
|
|
97
88
|
end
|
|
98
|
-
|
|
89
|
+
attr_writer :parsed
|
|
90
|
+
|
|
91
|
+
# Unique id of this API call, also sent in the X-Request-Id response header. Quote
|
|
92
|
+
# it when contacting support about a failed request.
|
|
93
|
+
sig { returns(String) }
|
|
94
|
+
attr_accessor :request_id
|
|
95
|
+
|
|
96
|
+
# An image data URL. Use directly as an image src.
|
|
97
|
+
sig { returns(ContextDev::Models::WebScrapeResponse::Screenshot) }
|
|
98
|
+
attr_reader :screenshot
|
|
99
99
|
|
|
100
100
|
sig do
|
|
101
101
|
params(
|
|
102
|
-
|
|
103
|
-
T::Array[
|
|
104
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::OrHash
|
|
105
|
-
]
|
|
102
|
+
screenshot: ContextDev::Models::WebScrapeResponse::Screenshot::OrHash
|
|
106
103
|
).void
|
|
107
104
|
end
|
|
108
|
-
attr_writer :
|
|
105
|
+
attr_writer :screenshot
|
|
109
106
|
|
|
110
|
-
#
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
attr_reader :actions_html_stale
|
|
114
|
-
|
|
115
|
-
sig { params(actions_html_stale: T::Boolean).void }
|
|
116
|
-
attr_writer :actions_html_stale
|
|
107
|
+
# Final URL after redirects and browser actions.
|
|
108
|
+
sig { returns(String) }
|
|
109
|
+
attr_accessor :url
|
|
117
110
|
|
|
118
|
-
# Present
|
|
119
|
-
#
|
|
120
|
-
# or lists. Missing items are null; lists with no matches are empty. Rules run on
|
|
121
|
-
# the returned HTML after filtering.
|
|
111
|
+
# Present when return-partial captures a page that is still loading or returns
|
|
112
|
+
# images before image processing finishes. Partial responses are not cached.
|
|
122
113
|
sig do
|
|
123
114
|
returns(
|
|
124
115
|
T.nilable(
|
|
125
|
-
|
|
126
|
-
Symbol,
|
|
127
|
-
T.nilable(
|
|
128
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
|
|
129
|
-
)
|
|
130
|
-
]
|
|
116
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::TaggedBoolean
|
|
131
117
|
)
|
|
132
118
|
)
|
|
133
119
|
end
|
|
134
|
-
attr_reader :
|
|
120
|
+
attr_reader :is_partial
|
|
135
121
|
|
|
136
122
|
sig do
|
|
137
123
|
params(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
Symbol,
|
|
141
|
-
T.nilable(
|
|
142
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
|
|
143
|
-
)
|
|
144
|
-
]
|
|
124
|
+
is_partial:
|
|
125
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::OrBoolean
|
|
145
126
|
).void
|
|
146
127
|
end
|
|
147
|
-
attr_writer :
|
|
128
|
+
attr_writer :is_partial
|
|
148
129
|
|
|
149
130
|
# Credit usage, included whenever a valid API key is provided.
|
|
150
131
|
sig do
|
|
151
|
-
returns(
|
|
152
|
-
T.nilable(ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata)
|
|
153
|
-
)
|
|
132
|
+
returns(T.nilable(ContextDev::Models::WebScrapeResponse::KeyMetadata))
|
|
154
133
|
end
|
|
155
134
|
attr_reader :key_metadata
|
|
156
135
|
|
|
157
136
|
sig do
|
|
158
137
|
params(
|
|
159
138
|
key_metadata:
|
|
160
|
-
ContextDev::Models::
|
|
139
|
+
ContextDev::Models::WebScrapeResponse::KeyMetadata::OrHash
|
|
161
140
|
).void
|
|
162
141
|
end
|
|
163
142
|
attr_writer :key_metadata
|
|
164
143
|
|
|
165
144
|
sig do
|
|
166
145
|
params(
|
|
146
|
+
bytes: ContextDev::Models::WebScrapeResponse::Bytes::OrHash,
|
|
167
147
|
cache_metadata:
|
|
168
|
-
ContextDev::Models::
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
metadata:
|
|
173
|
-
|
|
148
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::OrHash,
|
|
149
|
+
html: ContextDev::Models::WebScrapeResponse::HTML::OrHash,
|
|
150
|
+
images: ContextDev::Models::WebScrapeResponse::Images::OrHash,
|
|
151
|
+
markdown: ContextDev::Models::WebScrapeResponse::Markdown::OrHash,
|
|
152
|
+
metadata: ContextDev::Models::WebScrapeResponse::Metadata::OrHash,
|
|
153
|
+
parsed: ContextDev::Models::WebScrapeResponse::Parsed::OrHash,
|
|
174
154
|
request_id: String,
|
|
175
|
-
|
|
176
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Success::OrBoolean,
|
|
177
|
-
type: ContextDev::Models::WebWebScrapeHTMLResponse::Type::OrSymbol,
|
|
155
|
+
screenshot: ContextDev::Models::WebScrapeResponse::Screenshot::OrHash,
|
|
178
156
|
url: String,
|
|
179
|
-
|
|
180
|
-
|
|
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
|
-
],
|
|
157
|
+
is_partial:
|
|
158
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::OrBoolean,
|
|
191
159
|
key_metadata:
|
|
192
|
-
ContextDev::Models::
|
|
160
|
+
ContextDev::Models::WebScrapeResponse::KeyMetadata::OrHash
|
|
193
161
|
).returns(T.attached_class)
|
|
194
162
|
end
|
|
195
163
|
def self.new(
|
|
164
|
+
# Original HTTP response body. Waiting, actions, and content filters never change
|
|
165
|
+
# it.
|
|
166
|
+
bytes:,
|
|
196
167
|
# Cache outcome for this response. Composite responses are hits only when every
|
|
197
168
|
# cache-controlled fetch contributing to the output was a hit; age_ms is the
|
|
198
169
|
# oldest contributing hit.
|
|
199
170
|
cache_metadata:,
|
|
200
|
-
#
|
|
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.
|
|
171
|
+
# Rendered HTML after content filters.
|
|
209
172
|
html:,
|
|
210
|
-
#
|
|
173
|
+
# Images after content filters. Empty when none are found.
|
|
174
|
+
images:,
|
|
175
|
+
# Markdown after content filters.
|
|
176
|
+
markdown:,
|
|
177
|
+
# Page details, when available.
|
|
211
178
|
metadata:,
|
|
179
|
+
# Fields produced by parseParams.rules, after shared content filters.
|
|
180
|
+
parsed:,
|
|
212
181
|
# Unique id of this API call, also sent in the X-Request-Id response header. Quote
|
|
213
182
|
# it when contacting support about a failed request.
|
|
214
183
|
request_id:,
|
|
215
|
-
#
|
|
216
|
-
|
|
217
|
-
#
|
|
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
|
|
184
|
+
# An image data URL. Use directly as an image src.
|
|
185
|
+
screenshot:,
|
|
186
|
+
# Final URL after redirects and browser actions.
|
|
223
187
|
url:,
|
|
224
|
-
#
|
|
225
|
-
|
|
226
|
-
|
|
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,
|
|
188
|
+
# Present when return-partial captures a page that is still loading or returns
|
|
189
|
+
# images before image processing finishes. Partial responses are not cached.
|
|
190
|
+
is_partial: nil,
|
|
234
191
|
# Credit usage, included whenever a valid API key is provided.
|
|
235
192
|
key_metadata: nil
|
|
236
193
|
)
|
|
@@ -239,43 +196,120 @@ module ContextDev
|
|
|
239
196
|
sig do
|
|
240
197
|
override.returns(
|
|
241
198
|
{
|
|
199
|
+
bytes: ContextDev::Models::WebScrapeResponse::Bytes,
|
|
242
200
|
cache_metadata:
|
|
243
|
-
ContextDev::Models::
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
metadata: ContextDev::Models::
|
|
201
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata,
|
|
202
|
+
html: ContextDev::Models::WebScrapeResponse::HTML,
|
|
203
|
+
images: ContextDev::Models::WebScrapeResponse::Images,
|
|
204
|
+
markdown: ContextDev::Models::WebScrapeResponse::Markdown,
|
|
205
|
+
metadata: ContextDev::Models::WebScrapeResponse::Metadata,
|
|
206
|
+
parsed: ContextDev::Models::WebScrapeResponse::Parsed,
|
|
248
207
|
request_id: String,
|
|
249
|
-
|
|
250
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean,
|
|
251
|
-
type:
|
|
252
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Type::TaggedSymbol,
|
|
208
|
+
screenshot: ContextDev::Models::WebScrapeResponse::Screenshot,
|
|
253
209
|
url: String,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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
|
|
210
|
+
is_partial:
|
|
211
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::TaggedBoolean,
|
|
212
|
+
key_metadata: ContextDev::Models::WebScrapeResponse::KeyMetadata
|
|
268
213
|
}
|
|
269
214
|
)
|
|
270
215
|
end
|
|
271
216
|
def to_hash
|
|
272
217
|
end
|
|
273
218
|
|
|
219
|
+
class Bytes < ContextDev::Internal::Type::BaseModel
|
|
220
|
+
OrHash =
|
|
221
|
+
T.type_alias do
|
|
222
|
+
T.any(
|
|
223
|
+
ContextDev::Models::WebScrapeResponse::Bytes,
|
|
224
|
+
ContextDev::Internal::AnyHash
|
|
225
|
+
)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
sig do
|
|
229
|
+
returns(T.nilable(ContextDev::Models::WebScrapeResponse::Bytes::Data))
|
|
230
|
+
end
|
|
231
|
+
attr_reader :data
|
|
232
|
+
|
|
233
|
+
sig do
|
|
234
|
+
params(
|
|
235
|
+
data:
|
|
236
|
+
T.nilable(
|
|
237
|
+
ContextDev::Models::WebScrapeResponse::Bytes::Data::OrHash
|
|
238
|
+
)
|
|
239
|
+
).void
|
|
240
|
+
end
|
|
241
|
+
attr_writer :data
|
|
242
|
+
|
|
243
|
+
sig { returns(T::Boolean) }
|
|
244
|
+
attr_accessor :requested
|
|
245
|
+
|
|
246
|
+
# Original HTTP response body. Waiting, actions, and content filters never change
|
|
247
|
+
# it.
|
|
248
|
+
sig do
|
|
249
|
+
params(
|
|
250
|
+
data:
|
|
251
|
+
T.nilable(
|
|
252
|
+
ContextDev::Models::WebScrapeResponse::Bytes::Data::OrHash
|
|
253
|
+
),
|
|
254
|
+
requested: T::Boolean
|
|
255
|
+
).returns(T.attached_class)
|
|
256
|
+
end
|
|
257
|
+
def self.new(data:, requested:)
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
sig do
|
|
261
|
+
override.returns(
|
|
262
|
+
{
|
|
263
|
+
data:
|
|
264
|
+
T.nilable(ContextDev::Models::WebScrapeResponse::Bytes::Data),
|
|
265
|
+
requested: T::Boolean
|
|
266
|
+
}
|
|
267
|
+
)
|
|
268
|
+
end
|
|
269
|
+
def to_hash
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
class Data < ContextDev::Internal::Type::BaseModel
|
|
273
|
+
OrHash =
|
|
274
|
+
T.type_alias do
|
|
275
|
+
T.any(
|
|
276
|
+
ContextDev::Models::WebScrapeResponse::Bytes::Data,
|
|
277
|
+
ContextDev::Internal::AnyHash
|
|
278
|
+
)
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Original response body as base64, after HTTP decompression. Maximum decoded
|
|
282
|
+
# size: 20 MiB.
|
|
283
|
+
sig { returns(String) }
|
|
284
|
+
attr_accessor :base64
|
|
285
|
+
|
|
286
|
+
sig { returns(String) }
|
|
287
|
+
attr_accessor :content_type
|
|
288
|
+
|
|
289
|
+
sig do
|
|
290
|
+
params(base64: String, content_type: String).returns(
|
|
291
|
+
T.attached_class
|
|
292
|
+
)
|
|
293
|
+
end
|
|
294
|
+
def self.new(
|
|
295
|
+
# Original response body as base64, after HTTP decompression. Maximum decoded
|
|
296
|
+
# size: 20 MiB.
|
|
297
|
+
base64:,
|
|
298
|
+
content_type:
|
|
299
|
+
)
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
sig { override.returns({ base64: String, content_type: String }) }
|
|
303
|
+
def to_hash
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
|
|
274
308
|
class CacheMetadata < ContextDev::Internal::Type::BaseModel
|
|
275
309
|
OrHash =
|
|
276
310
|
T.type_alias do
|
|
277
311
|
T.any(
|
|
278
|
-
ContextDev::Models::
|
|
312
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata,
|
|
279
313
|
ContextDev::Internal::AnyHash
|
|
280
314
|
)
|
|
281
315
|
end
|
|
@@ -288,7 +322,7 @@ module ContextDev
|
|
|
288
322
|
# zero-data-retention cache bypass.
|
|
289
323
|
sig do
|
|
290
324
|
returns(
|
|
291
|
-
ContextDev::Models::
|
|
325
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
292
326
|
)
|
|
293
327
|
end
|
|
294
328
|
attr_accessor :status
|
|
@@ -300,7 +334,7 @@ module ContextDev
|
|
|
300
334
|
params(
|
|
301
335
|
age_ms: Integer,
|
|
302
336
|
status:
|
|
303
|
-
ContextDev::Models::
|
|
337
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::OrSymbol
|
|
304
338
|
).returns(T.attached_class)
|
|
305
339
|
end
|
|
306
340
|
def self.new(
|
|
@@ -317,7 +351,7 @@ module ContextDev
|
|
|
317
351
|
{
|
|
318
352
|
age_ms: Integer,
|
|
319
353
|
status:
|
|
320
|
-
ContextDev::Models::
|
|
354
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
321
355
|
}
|
|
322
356
|
)
|
|
323
357
|
end
|
|
@@ -333,7 +367,7 @@ module ContextDev
|
|
|
333
367
|
T.type_alias do
|
|
334
368
|
T.all(
|
|
335
369
|
Symbol,
|
|
336
|
-
ContextDev::Models::
|
|
370
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status
|
|
337
371
|
)
|
|
338
372
|
end
|
|
339
373
|
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
@@ -341,23 +375,23 @@ module ContextDev
|
|
|
341
375
|
HIT =
|
|
342
376
|
T.let(
|
|
343
377
|
:hit,
|
|
344
|
-
ContextDev::Models::
|
|
378
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
345
379
|
)
|
|
346
380
|
MISS =
|
|
347
381
|
T.let(
|
|
348
382
|
:miss,
|
|
349
|
-
ContextDev::Models::
|
|
383
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
350
384
|
)
|
|
351
385
|
ZDR =
|
|
352
386
|
T.let(
|
|
353
387
|
:zdr,
|
|
354
|
-
ContextDev::Models::
|
|
388
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
355
389
|
)
|
|
356
390
|
|
|
357
391
|
sig do
|
|
358
392
|
override.returns(
|
|
359
393
|
T::Array[
|
|
360
|
-
ContextDev::Models::
|
|
394
|
+
ContextDev::Models::WebScrapeResponse::CacheMetadata::Status::TaggedSymbol
|
|
361
395
|
]
|
|
362
396
|
)
|
|
363
397
|
end
|
|
@@ -366,62 +400,287 @@ module ContextDev
|
|
|
366
400
|
end
|
|
367
401
|
end
|
|
368
402
|
|
|
369
|
-
|
|
370
|
-
|
|
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 =
|
|
403
|
+
class HTML < ContextDev::Internal::Type::BaseModel
|
|
404
|
+
OrHash =
|
|
378
405
|
T.type_alias do
|
|
379
|
-
T.
|
|
380
|
-
|
|
381
|
-
ContextDev::
|
|
406
|
+
T.any(
|
|
407
|
+
ContextDev::Models::WebScrapeResponse::HTML,
|
|
408
|
+
ContextDev::Internal::AnyHash
|
|
382
409
|
)
|
|
383
410
|
end
|
|
384
|
-
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
385
411
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
412
|
+
sig { returns(T.nilable(String)) }
|
|
413
|
+
attr_accessor :data
|
|
414
|
+
|
|
415
|
+
sig { returns(T::Boolean) }
|
|
416
|
+
attr_accessor :requested
|
|
417
|
+
|
|
418
|
+
# Rendered HTML after content filters.
|
|
419
|
+
sig do
|
|
420
|
+
params(data: T.nilable(String), requested: T::Boolean).returns(
|
|
421
|
+
T.attached_class
|
|
390
422
|
)
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
423
|
+
end
|
|
424
|
+
def self.new(data:, requested:)
|
|
425
|
+
end
|
|
426
|
+
|
|
427
|
+
sig do
|
|
428
|
+
override.returns({ data: T.nilable(String), requested: T::Boolean })
|
|
429
|
+
end
|
|
430
|
+
def to_hash
|
|
431
|
+
end
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
class Images < ContextDev::Internal::Type::BaseModel
|
|
435
|
+
OrHash =
|
|
436
|
+
T.type_alias do
|
|
437
|
+
T.any(
|
|
438
|
+
ContextDev::Models::WebScrapeResponse::Images,
|
|
439
|
+
ContextDev::Internal::AnyHash
|
|
440
|
+
)
|
|
441
|
+
end
|
|
442
|
+
|
|
443
|
+
sig do
|
|
444
|
+
returns(
|
|
445
|
+
T.nilable(
|
|
446
|
+
T::Array[ContextDev::Models::WebScrapeResponse::Images::Data]
|
|
447
|
+
)
|
|
395
448
|
)
|
|
449
|
+
end
|
|
450
|
+
attr_accessor :data
|
|
451
|
+
|
|
452
|
+
sig { returns(T::Boolean) }
|
|
453
|
+
attr_accessor :requested
|
|
454
|
+
|
|
455
|
+
# Images after content filters. Empty when none are found.
|
|
456
|
+
sig do
|
|
457
|
+
params(
|
|
458
|
+
data:
|
|
459
|
+
T.nilable(
|
|
460
|
+
T::Array[
|
|
461
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::OrHash
|
|
462
|
+
]
|
|
463
|
+
),
|
|
464
|
+
requested: T::Boolean
|
|
465
|
+
).returns(T.attached_class)
|
|
466
|
+
end
|
|
467
|
+
def self.new(data:, requested:)
|
|
468
|
+
end
|
|
396
469
|
|
|
397
470
|
sig do
|
|
398
471
|
override.returns(
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
472
|
+
{
|
|
473
|
+
data:
|
|
474
|
+
T.nilable(
|
|
475
|
+
T::Array[ContextDev::Models::WebScrapeResponse::Images::Data]
|
|
476
|
+
),
|
|
477
|
+
requested: T::Boolean
|
|
478
|
+
}
|
|
402
479
|
)
|
|
403
480
|
end
|
|
404
|
-
def
|
|
481
|
+
def to_hash
|
|
482
|
+
end
|
|
483
|
+
|
|
484
|
+
class Data < ContextDev::Internal::Type::BaseModel
|
|
485
|
+
OrHash =
|
|
486
|
+
T.type_alias do
|
|
487
|
+
T.any(
|
|
488
|
+
ContextDev::Models::WebScrapeResponse::Images::Data,
|
|
489
|
+
ContextDev::Internal::AnyHash
|
|
490
|
+
)
|
|
491
|
+
end
|
|
492
|
+
|
|
493
|
+
# Alt text, if present.
|
|
494
|
+
sig { returns(T.nilable(String)) }
|
|
495
|
+
attr_accessor :alt
|
|
496
|
+
|
|
497
|
+
# Image URL, or a data URI for inline images.
|
|
498
|
+
sig { returns(String) }
|
|
499
|
+
attr_accessor :url
|
|
500
|
+
|
|
501
|
+
sig do
|
|
502
|
+
returns(
|
|
503
|
+
T.nilable(
|
|
504
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
505
|
+
)
|
|
506
|
+
)
|
|
507
|
+
end
|
|
508
|
+
attr_reader :classification
|
|
509
|
+
|
|
510
|
+
sig do
|
|
511
|
+
params(
|
|
512
|
+
classification:
|
|
513
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::OrSymbol
|
|
514
|
+
).void
|
|
515
|
+
end
|
|
516
|
+
attr_writer :classification
|
|
517
|
+
|
|
518
|
+
# Hosted copy when file enrichment is requested and zdr is disabled. Valid for 24
|
|
519
|
+
# hours from the original capture.
|
|
520
|
+
sig { returns(T.nilable(String)) }
|
|
521
|
+
attr_reader :file_url
|
|
522
|
+
|
|
523
|
+
sig { params(file_url: String).void }
|
|
524
|
+
attr_writer :file_url
|
|
525
|
+
|
|
526
|
+
sig { returns(T.nilable(Integer)) }
|
|
527
|
+
attr_reader :height
|
|
528
|
+
|
|
529
|
+
sig { params(height: Integer).void }
|
|
530
|
+
attr_writer :height
|
|
531
|
+
|
|
532
|
+
sig { returns(T.nilable(Integer)) }
|
|
533
|
+
attr_reader :width
|
|
534
|
+
|
|
535
|
+
sig { params(width: Integer).void }
|
|
536
|
+
attr_writer :width
|
|
537
|
+
|
|
538
|
+
sig do
|
|
539
|
+
params(
|
|
540
|
+
alt: T.nilable(String),
|
|
541
|
+
url: String,
|
|
542
|
+
classification:
|
|
543
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::OrSymbol,
|
|
544
|
+
file_url: String,
|
|
545
|
+
height: Integer,
|
|
546
|
+
width: Integer
|
|
547
|
+
).returns(T.attached_class)
|
|
548
|
+
end
|
|
549
|
+
def self.new(
|
|
550
|
+
# Alt text, if present.
|
|
551
|
+
alt:,
|
|
552
|
+
# Image URL, or a data URI for inline images.
|
|
553
|
+
url:,
|
|
554
|
+
classification: nil,
|
|
555
|
+
# Hosted copy when file enrichment is requested and zdr is disabled. Valid for 24
|
|
556
|
+
# hours from the original capture.
|
|
557
|
+
file_url: nil,
|
|
558
|
+
height: nil,
|
|
559
|
+
width: nil
|
|
560
|
+
)
|
|
561
|
+
end
|
|
562
|
+
|
|
563
|
+
sig do
|
|
564
|
+
override.returns(
|
|
565
|
+
{
|
|
566
|
+
alt: T.nilable(String),
|
|
567
|
+
url: String,
|
|
568
|
+
classification:
|
|
569
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol,
|
|
570
|
+
file_url: String,
|
|
571
|
+
height: Integer,
|
|
572
|
+
width: Integer
|
|
573
|
+
}
|
|
574
|
+
)
|
|
575
|
+
end
|
|
576
|
+
def to_hash
|
|
577
|
+
end
|
|
578
|
+
|
|
579
|
+
module Classification
|
|
580
|
+
extend ContextDev::Internal::Type::Enum
|
|
581
|
+
|
|
582
|
+
TaggedSymbol =
|
|
583
|
+
T.type_alias do
|
|
584
|
+
T.all(
|
|
585
|
+
Symbol,
|
|
586
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification
|
|
587
|
+
)
|
|
588
|
+
end
|
|
589
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
590
|
+
|
|
591
|
+
PHOTOGRAPHY =
|
|
592
|
+
T.let(
|
|
593
|
+
:photography,
|
|
594
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
595
|
+
)
|
|
596
|
+
ILLUSTRATION =
|
|
597
|
+
T.let(
|
|
598
|
+
:illustration,
|
|
599
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
600
|
+
)
|
|
601
|
+
LOGO =
|
|
602
|
+
T.let(
|
|
603
|
+
:logo,
|
|
604
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
605
|
+
)
|
|
606
|
+
WORDMARK =
|
|
607
|
+
T.let(
|
|
608
|
+
:wordmark,
|
|
609
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
610
|
+
)
|
|
611
|
+
ICON =
|
|
612
|
+
T.let(
|
|
613
|
+
:icon,
|
|
614
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
615
|
+
)
|
|
616
|
+
PATTERN =
|
|
617
|
+
T.let(
|
|
618
|
+
:pattern,
|
|
619
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
620
|
+
)
|
|
621
|
+
GRAPHIC =
|
|
622
|
+
T.let(
|
|
623
|
+
:graphic,
|
|
624
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
625
|
+
)
|
|
626
|
+
OTHER =
|
|
627
|
+
T.let(
|
|
628
|
+
:other,
|
|
629
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
630
|
+
)
|
|
631
|
+
|
|
632
|
+
sig do
|
|
633
|
+
override.returns(
|
|
634
|
+
T::Array[
|
|
635
|
+
ContextDev::Models::WebScrapeResponse::Images::Data::Classification::TaggedSymbol
|
|
636
|
+
]
|
|
637
|
+
)
|
|
638
|
+
end
|
|
639
|
+
def self.values
|
|
640
|
+
end
|
|
641
|
+
end
|
|
405
642
|
end
|
|
406
643
|
end
|
|
407
644
|
|
|
408
|
-
class
|
|
645
|
+
class Markdown < ContextDev::Internal::Type::BaseModel
|
|
409
646
|
OrHash =
|
|
410
647
|
T.type_alias do
|
|
411
648
|
T.any(
|
|
412
|
-
ContextDev::Models::
|
|
649
|
+
ContextDev::Models::WebScrapeResponse::Markdown,
|
|
413
650
|
ContextDev::Internal::AnyHash
|
|
414
651
|
)
|
|
415
652
|
end
|
|
416
653
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
654
|
+
sig { returns(T.nilable(String)) }
|
|
655
|
+
attr_accessor :data
|
|
656
|
+
|
|
657
|
+
sig { returns(T::Boolean) }
|
|
658
|
+
attr_accessor :requested
|
|
421
659
|
|
|
422
|
-
#
|
|
423
|
-
sig
|
|
424
|
-
|
|
660
|
+
# Markdown after content filters.
|
|
661
|
+
sig do
|
|
662
|
+
params(data: T.nilable(String), requested: T::Boolean).returns(
|
|
663
|
+
T.attached_class
|
|
664
|
+
)
|
|
665
|
+
end
|
|
666
|
+
def self.new(data:, requested:)
|
|
667
|
+
end
|
|
668
|
+
|
|
669
|
+
sig do
|
|
670
|
+
override.returns({ data: T.nilable(String), requested: T::Boolean })
|
|
671
|
+
end
|
|
672
|
+
def to_hash
|
|
673
|
+
end
|
|
674
|
+
end
|
|
675
|
+
|
|
676
|
+
class Metadata < ContextDev::Internal::Type::BaseModel
|
|
677
|
+
OrHash =
|
|
678
|
+
T.type_alias do
|
|
679
|
+
T.any(
|
|
680
|
+
ContextDev::Models::WebScrapeResponse::Metadata,
|
|
681
|
+
ContextDev::Internal::AnyHash
|
|
682
|
+
)
|
|
683
|
+
end
|
|
425
684
|
|
|
426
685
|
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
427
686
|
sig do
|
|
@@ -429,7 +688,7 @@ module ContextDev
|
|
|
429
688
|
T.nilable(
|
|
430
689
|
T::Hash[
|
|
431
690
|
Symbol,
|
|
432
|
-
ContextDev::Models::
|
|
691
|
+
ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::Variants
|
|
433
692
|
]
|
|
434
693
|
)
|
|
435
694
|
)
|
|
@@ -441,7 +700,7 @@ module ContextDev
|
|
|
441
700
|
additional_meta:
|
|
442
701
|
T::Hash[
|
|
443
702
|
Symbol,
|
|
444
|
-
ContextDev::Models::
|
|
703
|
+
ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::Variants
|
|
445
704
|
]
|
|
446
705
|
).void
|
|
447
706
|
end
|
|
@@ -452,7 +711,7 @@ module ContextDev
|
|
|
452
711
|
returns(
|
|
453
712
|
T.nilable(
|
|
454
713
|
T::Array[
|
|
455
|
-
ContextDev::Models::
|
|
714
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Alternate
|
|
456
715
|
]
|
|
457
716
|
)
|
|
458
717
|
)
|
|
@@ -463,7 +722,7 @@ module ContextDev
|
|
|
463
722
|
params(
|
|
464
723
|
alternates:
|
|
465
724
|
T::Array[
|
|
466
|
-
ContextDev::Models::
|
|
725
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Alternate::OrHash
|
|
467
726
|
]
|
|
468
727
|
).void
|
|
469
728
|
end
|
|
@@ -502,9 +761,7 @@ module ContextDev
|
|
|
502
761
|
sig do
|
|
503
762
|
returns(
|
|
504
763
|
T.nilable(
|
|
505
|
-
T::Array[
|
|
506
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Metadata::Heading
|
|
507
|
-
]
|
|
764
|
+
T::Array[ContextDev::Models::WebScrapeResponse::Metadata::Heading]
|
|
508
765
|
)
|
|
509
766
|
)
|
|
510
767
|
end
|
|
@@ -514,7 +771,7 @@ module ContextDev
|
|
|
514
771
|
params(
|
|
515
772
|
headings:
|
|
516
773
|
T::Array[
|
|
517
|
-
ContextDev::Models::
|
|
774
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Heading::OrHash
|
|
518
775
|
]
|
|
519
776
|
).void
|
|
520
777
|
end
|
|
@@ -561,7 +818,7 @@ module ContextDev
|
|
|
561
818
|
T.nilable(
|
|
562
819
|
T::Hash[
|
|
563
820
|
Symbol,
|
|
564
|
-
ContextDev::Models::
|
|
821
|
+
ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::Variants
|
|
565
822
|
]
|
|
566
823
|
)
|
|
567
824
|
)
|
|
@@ -573,7 +830,7 @@ module ContextDev
|
|
|
573
830
|
open_graph:
|
|
574
831
|
T::Hash[
|
|
575
832
|
Symbol,
|
|
576
|
-
ContextDev::Models::
|
|
833
|
+
ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::Variants
|
|
577
834
|
]
|
|
578
835
|
).void
|
|
579
836
|
end
|
|
@@ -613,7 +870,7 @@ module ContextDev
|
|
|
613
870
|
T.nilable(
|
|
614
871
|
T::Hash[
|
|
615
872
|
Symbol,
|
|
616
|
-
ContextDev::Models::
|
|
873
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Twitter::Variants
|
|
617
874
|
]
|
|
618
875
|
)
|
|
619
876
|
)
|
|
@@ -625,25 +882,23 @@ module ContextDev
|
|
|
625
882
|
twitter:
|
|
626
883
|
T::Hash[
|
|
627
884
|
Symbol,
|
|
628
|
-
ContextDev::Models::
|
|
885
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Twitter::Variants
|
|
629
886
|
]
|
|
630
887
|
).void
|
|
631
888
|
end
|
|
632
889
|
attr_writer :twitter
|
|
633
890
|
|
|
634
|
-
#
|
|
891
|
+
# Page details, when available.
|
|
635
892
|
sig do
|
|
636
893
|
params(
|
|
637
|
-
final_url: String,
|
|
638
|
-
source_url: String,
|
|
639
894
|
additional_meta:
|
|
640
895
|
T::Hash[
|
|
641
896
|
Symbol,
|
|
642
|
-
ContextDev::Models::
|
|
897
|
+
ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::Variants
|
|
643
898
|
],
|
|
644
899
|
alternates:
|
|
645
900
|
T::Array[
|
|
646
|
-
ContextDev::Models::
|
|
901
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Alternate::OrHash
|
|
647
902
|
],
|
|
648
903
|
author: String,
|
|
649
904
|
canonical_url: String,
|
|
@@ -651,7 +906,7 @@ module ContextDev
|
|
|
651
906
|
favicon: String,
|
|
652
907
|
headings:
|
|
653
908
|
T::Array[
|
|
654
|
-
ContextDev::Models::
|
|
909
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Heading::OrHash
|
|
655
910
|
],
|
|
656
911
|
image: String,
|
|
657
912
|
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
@@ -661,7 +916,7 @@ module ContextDev
|
|
|
661
916
|
open_graph:
|
|
662
917
|
T::Hash[
|
|
663
918
|
Symbol,
|
|
664
|
-
ContextDev::Models::
|
|
919
|
+
ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::Variants
|
|
665
920
|
],
|
|
666
921
|
published_time: String,
|
|
667
922
|
robots: String,
|
|
@@ -670,16 +925,11 @@ module ContextDev
|
|
|
670
925
|
twitter:
|
|
671
926
|
T::Hash[
|
|
672
927
|
Symbol,
|
|
673
|
-
ContextDev::Models::
|
|
928
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Twitter::Variants
|
|
674
929
|
]
|
|
675
930
|
).returns(T.attached_class)
|
|
676
931
|
end
|
|
677
932
|
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
933
|
# Additional non-social meta tags not promoted to top-level metadata fields.
|
|
684
934
|
additional_meta: nil,
|
|
685
935
|
# Resolved alternate links from link rel=alternate tags.
|
|
@@ -723,16 +973,14 @@ module ContextDev
|
|
|
723
973
|
sig do
|
|
724
974
|
override.returns(
|
|
725
975
|
{
|
|
726
|
-
final_url: String,
|
|
727
|
-
source_url: String,
|
|
728
976
|
additional_meta:
|
|
729
977
|
T::Hash[
|
|
730
978
|
Symbol,
|
|
731
|
-
ContextDev::Models::
|
|
979
|
+
ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::Variants
|
|
732
980
|
],
|
|
733
981
|
alternates:
|
|
734
982
|
T::Array[
|
|
735
|
-
ContextDev::Models::
|
|
983
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Alternate
|
|
736
984
|
],
|
|
737
985
|
author: String,
|
|
738
986
|
canonical_url: String,
|
|
@@ -740,7 +988,7 @@ module ContextDev
|
|
|
740
988
|
favicon: String,
|
|
741
989
|
headings:
|
|
742
990
|
T::Array[
|
|
743
|
-
ContextDev::Models::
|
|
991
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Heading
|
|
744
992
|
],
|
|
745
993
|
image: String,
|
|
746
994
|
json_ld: T::Array[T::Hash[Symbol, T.anything]],
|
|
@@ -750,7 +998,7 @@ module ContextDev
|
|
|
750
998
|
open_graph:
|
|
751
999
|
T::Hash[
|
|
752
1000
|
Symbol,
|
|
753
|
-
ContextDev::Models::
|
|
1001
|
+
ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::Variants
|
|
754
1002
|
],
|
|
755
1003
|
published_time: String,
|
|
756
1004
|
robots: String,
|
|
@@ -759,7 +1007,7 @@ module ContextDev
|
|
|
759
1007
|
twitter:
|
|
760
1008
|
T::Hash[
|
|
761
1009
|
Symbol,
|
|
762
|
-
ContextDev::Models::
|
|
1010
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Twitter::Variants
|
|
763
1011
|
]
|
|
764
1012
|
}
|
|
765
1013
|
)
|
|
@@ -775,7 +1023,7 @@ module ContextDev
|
|
|
775
1023
|
sig do
|
|
776
1024
|
override.returns(
|
|
777
1025
|
T::Array[
|
|
778
|
-
ContextDev::Models::
|
|
1026
|
+
ContextDev::Models::WebScrapeResponse::Metadata::AdditionalMeta::Variants
|
|
779
1027
|
]
|
|
780
1028
|
)
|
|
781
1029
|
end
|
|
@@ -793,7 +1041,7 @@ module ContextDev
|
|
|
793
1041
|
OrHash =
|
|
794
1042
|
T.type_alias do
|
|
795
1043
|
T.any(
|
|
796
|
-
ContextDev::Models::
|
|
1044
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Alternate,
|
|
797
1045
|
ContextDev::Internal::AnyHash
|
|
798
1046
|
)
|
|
799
1047
|
end
|
|
@@ -856,7 +1104,7 @@ module ContextDev
|
|
|
856
1104
|
OrHash =
|
|
857
1105
|
T.type_alias do
|
|
858
1106
|
T.any(
|
|
859
|
-
ContextDev::Models::
|
|
1107
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Heading,
|
|
860
1108
|
ContextDev::Internal::AnyHash
|
|
861
1109
|
)
|
|
862
1110
|
end
|
|
@@ -891,7 +1139,7 @@ module ContextDev
|
|
|
891
1139
|
sig do
|
|
892
1140
|
override.returns(
|
|
893
1141
|
T::Array[
|
|
894
|
-
ContextDev::Models::
|
|
1142
|
+
ContextDev::Models::WebScrapeResponse::Metadata::OpenGraph::Variants
|
|
895
1143
|
]
|
|
896
1144
|
)
|
|
897
1145
|
end
|
|
@@ -913,7 +1161,7 @@ module ContextDev
|
|
|
913
1161
|
sig do
|
|
914
1162
|
override.returns(
|
|
915
1163
|
T::Array[
|
|
916
|
-
ContextDev::Models::
|
|
1164
|
+
ContextDev::Models::WebScrapeResponse::Metadata::Twitter::Variants
|
|
917
1165
|
]
|
|
918
1166
|
)
|
|
919
1167
|
end
|
|
@@ -928,326 +1176,107 @@ module ContextDev
|
|
|
928
1176
|
end
|
|
929
1177
|
end
|
|
930
1178
|
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
extend ContextDev::Internal::Type::Enum
|
|
934
|
-
|
|
935
|
-
TaggedBoolean =
|
|
1179
|
+
class Parsed < ContextDev::Internal::Type::BaseModel
|
|
1180
|
+
OrHash =
|
|
936
1181
|
T.type_alias do
|
|
937
|
-
T.
|
|
938
|
-
|
|
939
|
-
ContextDev::
|
|
1182
|
+
T.any(
|
|
1183
|
+
ContextDev::Models::WebScrapeResponse::Parsed,
|
|
1184
|
+
ContextDev::Internal::AnyHash
|
|
940
1185
|
)
|
|
941
1186
|
end
|
|
942
|
-
OrBoolean = T.type_alias { T::Boolean }
|
|
943
1187
|
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
true,
|
|
947
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Success::TaggedBoolean
|
|
948
|
-
)
|
|
1188
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
1189
|
+
attr_accessor :data
|
|
949
1190
|
|
|
1191
|
+
sig { returns(T::Boolean) }
|
|
1192
|
+
attr_accessor :requested
|
|
1193
|
+
|
|
1194
|
+
# Fields produced by parseParams.rules, after shared content filters.
|
|
950
1195
|
sig do
|
|
951
|
-
|
|
952
|
-
T::
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
)
|
|
1196
|
+
params(
|
|
1197
|
+
data: T.nilable(T::Hash[Symbol, T.anything]),
|
|
1198
|
+
requested: T::Boolean
|
|
1199
|
+
).returns(T.attached_class)
|
|
956
1200
|
end
|
|
957
|
-
def self.
|
|
1201
|
+
def self.new(data:, requested:)
|
|
958
1202
|
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
1203
|
|
|
1045
1204
|
sig do
|
|
1046
1205
|
override.returns(
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1206
|
+
{
|
|
1207
|
+
data: T.nilable(T::Hash[Symbol, T.anything]),
|
|
1208
|
+
requested: T::Boolean
|
|
1209
|
+
}
|
|
1050
1210
|
)
|
|
1051
1211
|
end
|
|
1052
|
-
def
|
|
1212
|
+
def to_hash
|
|
1053
1213
|
end
|
|
1054
1214
|
end
|
|
1055
1215
|
|
|
1056
|
-
class
|
|
1216
|
+
class Screenshot < ContextDev::Internal::Type::BaseModel
|
|
1057
1217
|
OrHash =
|
|
1058
1218
|
T.type_alias do
|
|
1059
1219
|
T.any(
|
|
1060
|
-
ContextDev::Models::
|
|
1220
|
+
ContextDev::Models::WebScrapeResponse::Screenshot,
|
|
1061
1221
|
ContextDev::Internal::AnyHash
|
|
1062
1222
|
)
|
|
1063
1223
|
end
|
|
1064
1224
|
|
|
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
1225
|
sig { returns(T.nilable(String)) }
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
sig { params(completion_evidence: String).void }
|
|
1082
|
-
attr_writer :completion_evidence
|
|
1226
|
+
attr_accessor :data
|
|
1083
1227
|
|
|
1084
|
-
sig { returns(T
|
|
1085
|
-
|
|
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
|
|
1228
|
+
sig { returns(T::Boolean) }
|
|
1229
|
+
attr_accessor :requested
|
|
1107
1230
|
|
|
1231
|
+
# An image data URL. Use directly as an image src.
|
|
1108
1232
|
sig do
|
|
1109
|
-
params(
|
|
1110
|
-
|
|
1111
|
-
|
|
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)
|
|
1233
|
+
params(data: T.nilable(String), requested: T::Boolean).returns(
|
|
1234
|
+
T.attached_class
|
|
1235
|
+
)
|
|
1119
1236
|
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
|
-
)
|
|
1237
|
+
def self.new(data:, requested:)
|
|
1132
1238
|
end
|
|
1133
1239
|
|
|
1134
1240
|
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
|
-
)
|
|
1241
|
+
override.returns({ data: T.nilable(String), requested: T::Boolean })
|
|
1147
1242
|
end
|
|
1148
1243
|
def to_hash
|
|
1149
1244
|
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
1245
|
end
|
|
1192
1246
|
|
|
1193
|
-
|
|
1194
|
-
|
|
1247
|
+
# Present when return-partial captures a page that is still loading or returns
|
|
1248
|
+
# images before image processing finishes. Partial responses are not cached.
|
|
1249
|
+
module IsPartial
|
|
1250
|
+
extend ContextDev::Internal::Type::Enum
|
|
1195
1251
|
|
|
1196
|
-
|
|
1252
|
+
TaggedBoolean =
|
|
1197
1253
|
T.type_alias do
|
|
1198
|
-
T.
|
|
1199
|
-
String,
|
|
1200
|
-
T.anything,
|
|
1201
|
-
T::Array[
|
|
1202
|
-
T.nilable(
|
|
1203
|
-
ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::UnionMember2::Variants
|
|
1204
|
-
)
|
|
1205
|
-
]
|
|
1206
|
-
)
|
|
1254
|
+
T.all(T::Boolean, ContextDev::Models::WebScrapeResponse::IsPartial)
|
|
1207
1255
|
end
|
|
1256
|
+
OrBoolean = T.type_alias { T::Boolean }
|
|
1208
1257
|
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
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
|
|
1258
|
+
TRUE =
|
|
1259
|
+
T.let(
|
|
1260
|
+
true,
|
|
1261
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::TaggedBoolean
|
|
1262
|
+
)
|
|
1224
1263
|
|
|
1225
1264
|
sig do
|
|
1226
1265
|
override.returns(
|
|
1227
1266
|
T::Array[
|
|
1228
|
-
ContextDev::Models::
|
|
1267
|
+
ContextDev::Models::WebScrapeResponse::IsPartial::TaggedBoolean
|
|
1229
1268
|
]
|
|
1230
1269
|
)
|
|
1231
1270
|
end
|
|
1232
|
-
def self.
|
|
1271
|
+
def self.values
|
|
1233
1272
|
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
1273
|
end
|
|
1245
1274
|
|
|
1246
1275
|
class KeyMetadata < ContextDev::Internal::Type::BaseModel
|
|
1247
1276
|
OrHash =
|
|
1248
1277
|
T.type_alias do
|
|
1249
1278
|
T.any(
|
|
1250
|
-
ContextDev::Models::
|
|
1279
|
+
ContextDev::Models::WebScrapeResponse::KeyMetadata,
|
|
1251
1280
|
ContextDev::Internal::AnyHash
|
|
1252
1281
|
)
|
|
1253
1282
|
end
|