context.dev 2.17.1 → 2.18.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/models/ai_extract_product_params.rb +28 -1
  5. data/lib/context_dev/models/ai_extract_product_response.rb +51 -1
  6. data/lib/context_dev/models/ai_extract_products_response.rb +51 -1
  7. data/lib/context_dev/models/industry_retrieve_naics_params.rb +28 -1
  8. data/lib/context_dev/models/industry_retrieve_sic_params.rb +28 -1
  9. data/lib/context_dev/models/parse_handle_params.rb +8 -6
  10. data/lib/context_dev/models/person_enrich_params.rb +28 -1
  11. data/lib/context_dev/models/web_answers_params.rb +28 -1
  12. data/lib/context_dev/models/web_extract_competitors_params.rb +28 -1
  13. data/lib/context_dev/models/web_extract_fonts_params.rb +2 -2
  14. data/lib/context_dev/models/web_extract_params.rb +28 -1
  15. data/lib/context_dev/models/web_extract_styleguide_params.rb +30 -3
  16. data/lib/context_dev/models/web_screenshot_params.rb +10 -8
  17. data/lib/context_dev/models/web_search_params.rb +30 -3
  18. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +8 -6
  19. data/lib/context_dev/models/web_web_scrape_html_params.rb +188 -9
  20. data/lib/context_dev/models/web_web_scrape_html_response.rb +41 -1
  21. data/lib/context_dev/models/web_web_scrape_images_params.rb +31 -4
  22. data/lib/context_dev/models/web_web_scrape_md_params.rb +10 -8
  23. data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +471 -0
  24. data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +169 -0
  25. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +8 -6
  26. data/lib/context_dev/models.rb +2 -0
  27. data/lib/context_dev/resources/ai.rb +3 -1
  28. data/lib/context_dev/resources/industry.rb +6 -2
  29. data/lib/context_dev/resources/people.rb +3 -1
  30. data/lib/context_dev/resources/web.rb +96 -13
  31. data/lib/context_dev/version.rb +1 -1
  32. data/lib/context_dev.rb +2 -0
  33. data/rbi/context_dev/models/ai_extract_product_params.rbi +54 -0
  34. data/rbi/context_dev/models/ai_extract_product_response.rbi +98 -3
  35. data/rbi/context_dev/models/ai_extract_products_response.rbi +98 -3
  36. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +59 -0
  37. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +57 -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_fonts_params.rbi +3 -3
  43. data/rbi/context_dev/models/web_extract_params.rbi +45 -0
  44. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +62 -3
  45. data/rbi/context_dev/models/web_screenshot_params.rbi +15 -12
  46. data/rbi/context_dev/models/web_search_params.rbi +48 -3
  47. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +12 -9
  48. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +485 -12
  49. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +103 -0
  50. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +62 -5
  51. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +15 -12
  52. data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +1580 -0
  53. data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +332 -0
  54. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +12 -9
  55. data/rbi/context_dev/models.rbi +3 -0
  56. data/rbi/context_dev/resources/ai.rbi +7 -0
  57. data/rbi/context_dev/resources/industry.rbi +14 -0
  58. data/rbi/context_dev/resources/parse.rbi +4 -4
  59. data/rbi/context_dev/resources/people.rbi +7 -0
  60. data/rbi/context_dev/resources/web.rbi +173 -21
  61. data/sig/context_dev/models/ai_extract_product_params.rbs +21 -1
  62. data/sig/context_dev/models/ai_extract_product_response.rbs +44 -3
  63. data/sig/context_dev/models/ai_extract_products_response.rbs +44 -3
  64. data/sig/context_dev/models/industry_retrieve_naics_params.rbs +21 -1
  65. data/sig/context_dev/models/industry_retrieve_sic_params.rbs +21 -1
  66. data/sig/context_dev/models/person_enrich_params.rbs +21 -1
  67. data/sig/context_dev/models/web_answers_params.rbs +21 -1
  68. data/sig/context_dev/models/web_extract_competitors_params.rbs +21 -1
  69. data/sig/context_dev/models/web_extract_params.rbs +21 -1
  70. data/sig/context_dev/models/web_extract_styleguide_params.rbs +21 -1
  71. data/sig/context_dev/models/web_search_params.rbs +21 -1
  72. data/sig/context_dev/models/web_web_scrape_html_params.rbs +148 -0
  73. data/sig/context_dev/models/web_web_scrape_html_response.rbs +30 -0
  74. data/sig/context_dev/models/web_web_scrape_images_params.rbs +21 -1
  75. data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +619 -0
  76. data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +127 -0
  77. data/sig/context_dev/models.rbs +2 -0
  78. data/sig/context_dev/resources/ai.rbs +1 -0
  79. data/sig/context_dev/resources/industry.rbs +2 -0
  80. data/sig/context_dev/resources/people.rbs +1 -0
  81. data/sig/context_dev/resources/web.rbs +24 -0
  82. metadata +8 -2
@@ -58,6 +58,42 @@ module ContextDev
58
58
  sig { returns(T.nilable(T::Array[String])) }
59
59
  attr_accessor :exclude_selectors
60
60
 
61
+ # Optional CSS extraction rules applied to the returned HTML after selector and
62
+ # main-content filtering. Use selector strings ("h1", "a@href") or objects with
63
+ # selector, type (item or list), and output (text, html, @attribute, or nested
64
+ # rules). Text whitespace is normalized; html includes the matched element;
65
+ # attributes are returned as written. Missing items are null and missing lists are
66
+ # empty. CSS only; XPath is not supported. Maximum: 100 fields across 5 levels.
67
+ # Send a JSON-encoded string in the extractRules query parameter.
68
+ sig do
69
+ returns(
70
+ T.nilable(
71
+ T::Hash[
72
+ Symbol,
73
+ T.any(
74
+ String,
75
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1
76
+ )
77
+ ]
78
+ )
79
+ )
80
+ end
81
+ attr_reader :extract_rules
82
+
83
+ sig do
84
+ params(
85
+ extract_rules:
86
+ T::Hash[
87
+ Symbol,
88
+ T.any(
89
+ String,
90
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::OrHash
91
+ )
92
+ ]
93
+ ).void
94
+ end
95
+ attr_writer :extract_rules
96
+
61
97
  # Optional outbound HTTP headers forwarded only to the target URL, sent as
62
98
  # deep-object query params such as headers[X-Custom]=value. When provided, caching
63
99
  # is bypassed: the result is neither read from nor written to cache.
@@ -142,9 +178,10 @@ module ContextDev
142
178
  attr_accessor :wait_for_ms
143
179
 
144
180
  # Set to enabled to bypass shared caches and omit request and response content
145
- # from retained usage logs. Requires zero data retention to be enabled for your
146
- # organization (contact support@context.dev), otherwise the request fails with
147
- # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
181
+ # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
182
+ # omitted. Requires zero data retention to be enabled for your organization
183
+ # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
184
+ # Successful ZDR responses include X-Context-ZDR: true.
148
185
  sig do
149
186
  returns(T.nilable(ContextDev::WebWebScrapeHTMLParams::Zdr::OrSymbol))
150
187
  end
@@ -170,6 +207,14 @@ module ContextDev
170
207
  ),
171
208
  country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
172
209
  exclude_selectors: T.nilable(T::Array[String]),
210
+ extract_rules:
211
+ T::Hash[
212
+ Symbol,
213
+ T.any(
214
+ String,
215
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::OrHash
216
+ )
217
+ ],
173
218
  headers: T::Hash[Symbol, String],
174
219
  include_frames: T::Boolean,
175
220
  include_selectors: T.nilable(T::Array[String]),
@@ -198,6 +243,14 @@ module ContextDev
198
243
  # Exclusion takes precedence: an element matching both is removed. Examples:
199
244
  # "nav", "footer", ".ad-banner", "[aria-hidden=true]".
200
245
  exclude_selectors: nil,
246
+ # Optional CSS extraction rules applied to the returned HTML after selector and
247
+ # main-content filtering. Use selector strings ("h1", "a@href") or objects with
248
+ # selector, type (item or list), and output (text, html, @attribute, or nested
249
+ # rules). Text whitespace is normalized; html includes the matched element;
250
+ # attributes are returned as written. Missing items are null and missing lists are
251
+ # empty. CSS only; XPath is not supported. Maximum: 100 fields across 5 levels.
252
+ # Send a JSON-encoded string in the extractRules query parameter.
253
+ extract_rules: nil,
201
254
  # Optional outbound HTTP headers forwarded only to the target URL, sent as
202
255
  # deep-object query params such as headers[X-Custom]=value. When provided, caching
203
256
  # is bypassed: the result is neither read from nor written to cache.
@@ -235,9 +288,10 @@ module ContextDev
235
288
  # TIMEOUT_TOO_SHORT_FOR_WAIT.
236
289
  wait_for_ms: nil,
237
290
  # Set to enabled to bypass shared caches and omit request and response content
238
- # from retained usage logs. Requires zero data retention to be enabled for your
239
- # organization (contact support@context.dev), otherwise the request fails with
240
- # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
291
+ # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
292
+ # omitted. Requires zero data retention to be enabled for your organization
293
+ # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
294
+ # Successful ZDR responses include X-Context-ZDR: true.
241
295
  zdr: nil,
242
296
  request_options: {}
243
297
  )
@@ -259,6 +313,14 @@ module ContextDev
259
313
  ),
260
314
  country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
261
315
  exclude_selectors: T.nilable(T::Array[String]),
316
+ extract_rules:
317
+ T::Hash[
318
+ Symbol,
319
+ T.any(
320
+ String,
321
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1
322
+ )
323
+ ],
262
324
  headers: T::Hash[Symbol, String],
263
325
  include_frames: T::Boolean,
264
326
  include_selectors: T.nilable(T::Array[String]),
@@ -991,6 +1053,416 @@ module ContextDev
991
1053
  end
992
1054
  end
993
1055
 
1056
+ module ExtractRule
1057
+ extend ContextDev::Internal::Type::Union
1058
+
1059
+ Variants =
1060
+ T.type_alias do
1061
+ T.any(
1062
+ String,
1063
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1
1064
+ )
1065
+ end
1066
+
1067
+ class UnionMember1 < ContextDev::Internal::Type::BaseModel
1068
+ OrHash =
1069
+ T.type_alias do
1070
+ T.any(
1071
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1,
1072
+ ContextDev::Internal::AnyHash
1073
+ )
1074
+ end
1075
+
1076
+ sig { returns(String) }
1077
+ attr_accessor :selector
1078
+
1079
+ sig do
1080
+ returns(
1081
+ T.nilable(
1082
+ T.any(
1083
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::OrSymbol,
1084
+ String,
1085
+ T::Hash[
1086
+ Symbol,
1087
+ T.any(
1088
+ String,
1089
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1
1090
+ )
1091
+ ]
1092
+ )
1093
+ )
1094
+ )
1095
+ end
1096
+ attr_reader :output
1097
+
1098
+ sig do
1099
+ params(
1100
+ output:
1101
+ T.any(
1102
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::OrSymbol,
1103
+ String,
1104
+ T::Hash[
1105
+ Symbol,
1106
+ T.any(
1107
+ String,
1108
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::OrHash
1109
+ )
1110
+ ]
1111
+ )
1112
+ ).void
1113
+ end
1114
+ attr_writer :output
1115
+
1116
+ sig do
1117
+ returns(
1118
+ T.nilable(
1119
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::OrSymbol
1120
+ )
1121
+ )
1122
+ end
1123
+ attr_reader :type
1124
+
1125
+ sig do
1126
+ params(
1127
+ type:
1128
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::OrSymbol
1129
+ ).void
1130
+ end
1131
+ attr_writer :type
1132
+
1133
+ sig do
1134
+ params(
1135
+ selector: String,
1136
+ output:
1137
+ T.any(
1138
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::OrSymbol,
1139
+ String,
1140
+ T::Hash[
1141
+ Symbol,
1142
+ T.any(
1143
+ String,
1144
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::OrHash
1145
+ )
1146
+ ]
1147
+ ),
1148
+ type:
1149
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::OrSymbol
1150
+ ).returns(T.attached_class)
1151
+ end
1152
+ def self.new(selector:, output: nil, type: nil)
1153
+ end
1154
+
1155
+ sig do
1156
+ override.returns(
1157
+ {
1158
+ selector: String,
1159
+ output:
1160
+ T.any(
1161
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::OrSymbol,
1162
+ String,
1163
+ T::Hash[
1164
+ Symbol,
1165
+ T.any(
1166
+ String,
1167
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1
1168
+ )
1169
+ ]
1170
+ ),
1171
+ type:
1172
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::OrSymbol
1173
+ }
1174
+ )
1175
+ end
1176
+ def to_hash
1177
+ end
1178
+
1179
+ module Output
1180
+ extend ContextDev::Internal::Type::Union
1181
+
1182
+ Variants =
1183
+ T.type_alias do
1184
+ T.any(
1185
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::TaggedSymbol,
1186
+ String,
1187
+ T::Hash[
1188
+ Symbol,
1189
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::Variants
1190
+ ]
1191
+ )
1192
+ end
1193
+
1194
+ module HTMLExtractionRule
1195
+ extend ContextDev::Internal::Type::Union
1196
+
1197
+ Variants =
1198
+ T.type_alias do
1199
+ T.any(
1200
+ String,
1201
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1
1202
+ )
1203
+ end
1204
+
1205
+ class UnionMember1 < ContextDev::Internal::Type::BaseModel
1206
+ OrHash =
1207
+ T.type_alias do
1208
+ T.any(
1209
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1,
1210
+ ContextDev::Internal::AnyHash
1211
+ )
1212
+ end
1213
+
1214
+ sig { returns(String) }
1215
+ attr_accessor :selector
1216
+
1217
+ sig do
1218
+ returns(
1219
+ T.nilable(
1220
+ T.any(
1221
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::OrSymbol,
1222
+ String,
1223
+ T.anything
1224
+ )
1225
+ )
1226
+ )
1227
+ end
1228
+ attr_reader :output
1229
+
1230
+ sig do
1231
+ params(
1232
+ output:
1233
+ T.any(
1234
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::OrSymbol,
1235
+ String,
1236
+ T.anything
1237
+ )
1238
+ ).void
1239
+ end
1240
+ attr_writer :output
1241
+
1242
+ sig do
1243
+ returns(
1244
+ T.nilable(
1245
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::OrSymbol
1246
+ )
1247
+ )
1248
+ end
1249
+ attr_reader :type
1250
+
1251
+ sig do
1252
+ params(
1253
+ type:
1254
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::OrSymbol
1255
+ ).void
1256
+ end
1257
+ attr_writer :type
1258
+
1259
+ sig do
1260
+ params(
1261
+ selector: String,
1262
+ output:
1263
+ T.any(
1264
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::OrSymbol,
1265
+ String,
1266
+ T.anything
1267
+ ),
1268
+ type:
1269
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::OrSymbol
1270
+ ).returns(T.attached_class)
1271
+ end
1272
+ def self.new(selector:, output: nil, type: nil)
1273
+ end
1274
+
1275
+ sig do
1276
+ override.returns(
1277
+ {
1278
+ selector: String,
1279
+ output:
1280
+ T.any(
1281
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::OrSymbol,
1282
+ String,
1283
+ T.anything
1284
+ ),
1285
+ type:
1286
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::OrSymbol
1287
+ }
1288
+ )
1289
+ end
1290
+ def to_hash
1291
+ end
1292
+
1293
+ module Output
1294
+ extend ContextDev::Internal::Type::Union
1295
+
1296
+ Variants =
1297
+ T.type_alias do
1298
+ T.any(
1299
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::TaggedSymbol,
1300
+ String,
1301
+ T.anything
1302
+ )
1303
+ end
1304
+
1305
+ sig do
1306
+ override.returns(
1307
+ T::Array[
1308
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::Variants
1309
+ ]
1310
+ )
1311
+ end
1312
+ def self.variants
1313
+ end
1314
+
1315
+ TaggedSymbol =
1316
+ T.type_alias do
1317
+ T.all(
1318
+ Symbol,
1319
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output
1320
+ )
1321
+ end
1322
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1323
+
1324
+ TEXT =
1325
+ T.let(
1326
+ :text,
1327
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::TaggedSymbol
1328
+ )
1329
+ HTML =
1330
+ T.let(
1331
+ :html,
1332
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Output::TaggedSymbol
1333
+ )
1334
+ end
1335
+
1336
+ module Type
1337
+ extend ContextDev::Internal::Type::Enum
1338
+
1339
+ TaggedSymbol =
1340
+ T.type_alias do
1341
+ T.all(
1342
+ Symbol,
1343
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type
1344
+ )
1345
+ end
1346
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1347
+
1348
+ ITEM =
1349
+ T.let(
1350
+ :item,
1351
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::TaggedSymbol
1352
+ )
1353
+ LIST =
1354
+ T.let(
1355
+ :list,
1356
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::TaggedSymbol
1357
+ )
1358
+
1359
+ sig do
1360
+ override.returns(
1361
+ T::Array[
1362
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::UnionMember1::Type::TaggedSymbol
1363
+ ]
1364
+ )
1365
+ end
1366
+ def self.values
1367
+ end
1368
+ end
1369
+ end
1370
+
1371
+ sig do
1372
+ override.returns(
1373
+ T::Array[
1374
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule::Variants
1375
+ ]
1376
+ )
1377
+ end
1378
+ def self.variants
1379
+ end
1380
+ end
1381
+
1382
+ sig do
1383
+ override.returns(
1384
+ T::Array[
1385
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::Variants
1386
+ ]
1387
+ )
1388
+ end
1389
+ def self.variants
1390
+ end
1391
+
1392
+ TaggedSymbol =
1393
+ T.type_alias do
1394
+ T.all(
1395
+ Symbol,
1396
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output
1397
+ )
1398
+ end
1399
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1400
+
1401
+ TEXT =
1402
+ T.let(
1403
+ :text,
1404
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::TaggedSymbol
1405
+ )
1406
+ HTML =
1407
+ T.let(
1408
+ :html,
1409
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::TaggedSymbol
1410
+ )
1411
+
1412
+ HTMLExtractionRuleMap =
1413
+ T.let(
1414
+ ContextDev::Internal::Type::HashOf[
1415
+ union:
1416
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Output::HTMLExtractionRule
1417
+ ],
1418
+ ContextDev::Internal::Type::Converter
1419
+ )
1420
+ end
1421
+
1422
+ module Type
1423
+ extend ContextDev::Internal::Type::Enum
1424
+
1425
+ TaggedSymbol =
1426
+ T.type_alias do
1427
+ T.all(
1428
+ Symbol,
1429
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type
1430
+ )
1431
+ end
1432
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
1433
+
1434
+ ITEM =
1435
+ T.let(
1436
+ :item,
1437
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::TaggedSymbol
1438
+ )
1439
+ LIST =
1440
+ T.let(
1441
+ :list,
1442
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::TaggedSymbol
1443
+ )
1444
+
1445
+ sig do
1446
+ override.returns(
1447
+ T::Array[
1448
+ ContextDev::WebWebScrapeHTMLParams::ExtractRule::UnionMember1::Type::TaggedSymbol
1449
+ ]
1450
+ )
1451
+ end
1452
+ def self.values
1453
+ end
1454
+ end
1455
+ end
1456
+
1457
+ sig do
1458
+ override.returns(
1459
+ T::Array[ContextDev::WebWebScrapeHTMLParams::ExtractRule::Variants]
1460
+ )
1461
+ end
1462
+ def self.variants
1463
+ end
1464
+ end
1465
+
994
1466
  class Pdf < ContextDev::Internal::Type::BaseModel
995
1467
  OrHash =
996
1468
  T.type_alias do
@@ -1091,7 +1563,7 @@ module ContextDev
1091
1563
  # credits. "return-partial" returns usable results collected so far; if none are
1092
1564
  # available, the request still fails without charging credits. Partial results are
1093
1565
  # not cached as complete results. "return-partial" requires milliseconds of at
1094
- # least 15000.
1566
+ # least 5000.
1095
1567
  sig do
1096
1568
  returns(
1097
1569
  T.nilable(
@@ -1126,7 +1598,7 @@ module ContextDev
1126
1598
  # credits. "return-partial" returns usable results collected so far; if none are
1127
1599
  # available, the request still fails without charging credits. Partial results are
1128
1600
  # not cached as complete results. "return-partial" requires milliseconds of at
1129
- # least 15000.
1601
+ # least 5000.
1130
1602
  behavior: nil
1131
1603
  )
1132
1604
  end
@@ -1147,7 +1619,7 @@ module ContextDev
1147
1619
  # credits. "return-partial" returns usable results collected so far; if none are
1148
1620
  # available, the request still fails without charging credits. Partial results are
1149
1621
  # not cached as complete results. "return-partial" requires milliseconds of at
1150
- # least 15000.
1622
+ # least 5000.
1151
1623
  module Behavior
1152
1624
  extend ContextDev::Internal::Type::Enum
1153
1625
 
@@ -1184,9 +1656,10 @@ module ContextDev
1184
1656
  end
1185
1657
 
1186
1658
  # Set to enabled to bypass shared caches and omit request and response content
1187
- # from retained usage logs. Requires zero data retention to be enabled for your
1188
- # organization (contact support@context.dev), otherwise the request fails with
1189
- # ZDR_NOT_ENABLED. Successful ZDR responses include X-Context-ZDR: true.
1659
+ # from retained usage logs. Asset uploads are skipped, so hosted image URLs are
1660
+ # omitted. Requires zero data retention to be enabled for your organization
1661
+ # (contact support@context.dev), otherwise the request fails with ZDR_NOT_ENABLED.
1662
+ # Successful ZDR responses include X-Context-ZDR: true.
1190
1663
  module Zdr
1191
1664
  extend ContextDev::Internal::Type::Enum
1192
1665
 
@@ -115,6 +115,37 @@ module ContextDev
115
115
  sig { params(actions_html_stale: T::Boolean).void }
116
116
  attr_writer :actions_html_stale
117
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
+
118
149
  # Credit usage, included whenever a valid API key is provided.
119
150
  sig do
120
151
  returns(
@@ -150,6 +181,13 @@ module ContextDev
150
181
  ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied::OrHash
151
182
  ],
152
183
  actions_html_stale: T::Boolean,
184
+ extracted:
185
+ T::Hash[
186
+ Symbol,
187
+ T.nilable(
188
+ ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
189
+ )
190
+ ],
153
191
  key_metadata:
154
192
  ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata::OrHash
155
193
  ).returns(T.attached_class)
@@ -188,6 +226,11 @@ module ContextDev
188
226
  # True when an action was applied but the returned content could not be refreshed
189
227
  # afterward.
190
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,
191
234
  # Credit usage, included whenever a valid API key is provided.
192
235
  key_metadata: nil
193
236
  )
@@ -213,6 +256,13 @@ module ContextDev
213
256
  ContextDev::Models::WebWebScrapeHTMLResponse::ActionsApplied
214
257
  ],
215
258
  actions_html_stale: T::Boolean,
259
+ extracted:
260
+ T::Hash[
261
+ Symbol,
262
+ T.nilable(
263
+ ContextDev::Models::WebWebScrapeHTMLResponse::Extracted::Variants
264
+ )
265
+ ],
216
266
  key_metadata:
217
267
  ContextDev::Models::WebWebScrapeHTMLResponse::KeyMetadata
218
268
  }
@@ -1140,6 +1190,59 @@ module ContextDev
1140
1190
  end
1141
1191
  end
1142
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
+
1143
1246
  class KeyMetadata < ContextDev::Internal::Type::BaseModel
1144
1247
  OrHash =
1145
1248
  T.type_alias do