context.dev 1.34.0 → 1.36.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.
@@ -16,6 +16,20 @@ module ContextDev
16
16
  sig { returns(String) }
17
17
  attr_accessor :url
18
18
 
19
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
20
+ # When provided, Context.dev fetches the target page from that country.
21
+ sig do
22
+ returns(T.nilable(ContextDev::WebWebScrapeMdParams::Country::OrSymbol))
23
+ end
24
+ attr_reader :country
25
+
26
+ sig do
27
+ params(
28
+ country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol
29
+ ).void
30
+ end
31
+ attr_writer :country
32
+
19
33
  # CSS selectors to remove before conversion to Markdown. Applied after
20
34
  # includeSelectors. Exclusion takes precedence: an element matching both is
21
35
  # removed. Examples: "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -116,6 +130,7 @@ module ContextDev
116
130
  sig do
117
131
  params(
118
132
  url: String,
133
+ country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
119
134
  exclude_selectors: T::Array[String],
120
135
  headers: T::Hash[Symbol, String],
121
136
  include_frames: T::Boolean,
@@ -135,6 +150,9 @@ module ContextDev
135
150
  # Full URL to scrape into LLM usable Markdown (must include http:// or https://
136
151
  # protocol)
137
152
  url:,
153
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
154
+ # When provided, Context.dev fetches the target page from that country.
155
+ country: nil,
138
156
  # CSS selectors to remove before conversion to Markdown. Applied after
139
157
  # includeSelectors. Exclusion takes precedence: an element matching both is
140
158
  # removed. Examples: "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -180,6 +198,7 @@ module ContextDev
180
198
  override.returns(
181
199
  {
182
200
  url: String,
201
+ country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
183
202
  exclude_selectors: T::Array[String],
184
203
  headers: T::Hash[Symbol, String],
185
204
  include_frames: T::Boolean,
@@ -199,6 +218,231 @@ module ContextDev
199
218
  def to_hash
200
219
  end
201
220
 
221
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
222
+ # When provided, Context.dev fetches the target page from that country.
223
+ module Country
224
+ extend ContextDev::Internal::Type::Enum
225
+
226
+ TaggedSymbol =
227
+ T.type_alias do
228
+ T.all(Symbol, ContextDev::WebWebScrapeMdParams::Country)
229
+ end
230
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
231
+
232
+ AD = T.let(:ad, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
233
+ AE = T.let(:ae, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
234
+ AF = T.let(:af, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
235
+ AG = T.let(:ag, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
236
+ AI = T.let(:ai, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
237
+ AL = T.let(:al, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
238
+ AM = T.let(:am, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
239
+ AO = T.let(:ao, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
240
+ AR = T.let(:ar, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
241
+ AT = T.let(:at, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
242
+ AU = T.let(:au, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
243
+ AW = T.let(:aw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
244
+ AZ = T.let(:az, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
245
+ BA = T.let(:ba, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
246
+ BB = T.let(:bb, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
247
+ BD = T.let(:bd, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
248
+ BE = T.let(:be, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
249
+ BF = T.let(:bf, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
250
+ BG = T.let(:bg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
251
+ BH = T.let(:bh, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
252
+ BI = T.let(:bi, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
253
+ BJ = T.let(:bj, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
254
+ BM = T.let(:bm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
255
+ BN = T.let(:bn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
256
+ BO = T.let(:bo, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
257
+ BQ = T.let(:bq, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
258
+ BR = T.let(:br, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
259
+ BS = T.let(:bs, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
260
+ BW = T.let(:bw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
261
+ BY = T.let(:by, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
262
+ BZ = T.let(:bz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
263
+ CA = T.let(:ca, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
264
+ CD = T.let(:cd, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
265
+ CF = T.let(:cf, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
266
+ CG = T.let(:cg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
267
+ CH = T.let(:ch, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
268
+ CI = T.let(:ci, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
269
+ CL = T.let(:cl, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
270
+ CM = T.let(:cm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
271
+ CN = T.let(:cn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
272
+ CO = T.let(:co, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
273
+ CR = T.let(:cr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
274
+ CV = T.let(:cv, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
275
+ CW = T.let(:cw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
276
+ CY = T.let(:cy, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
277
+ CZ = T.let(:cz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
278
+ DE = T.let(:de, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
279
+ DJ = T.let(:dj, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
280
+ DK = T.let(:dk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
281
+ DM = T.let(:dm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
282
+ DO = T.let(:do, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
283
+ DZ = T.let(:dz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
284
+ EC = T.let(:ec, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
285
+ EE = T.let(:ee, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
286
+ EG = T.let(:eg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
287
+ ES = T.let(:es, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
288
+ ET = T.let(:et, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
289
+ FI = T.let(:fi, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
290
+ FJ = T.let(:fj, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
291
+ FR = T.let(:fr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
292
+ GA = T.let(:ga, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
293
+ GB = T.let(:gb, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
294
+ GD = T.let(:gd, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
295
+ GE = T.let(:ge, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
296
+ GF = T.let(:gf, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
297
+ GG = T.let(:gg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
298
+ GH = T.let(:gh, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
299
+ GM = T.let(:gm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
300
+ GN = T.let(:gn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
301
+ GP = T.let(:gp, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
302
+ GQ = T.let(:gq, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
303
+ GR = T.let(:gr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
304
+ GT = T.let(:gt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
305
+ GU = T.let(:gu, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
306
+ GW = T.let(:gw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
307
+ GY = T.let(:gy, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
308
+ HK = T.let(:hk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
309
+ HN = T.let(:hn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
310
+ HR = T.let(:hr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
311
+ HT = T.let(:ht, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
312
+ HU = T.let(:hu, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
313
+ ID = T.let(:id, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
314
+ IE = T.let(:ie, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
315
+ IL = T.let(:il, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
316
+ IM = T.let(:im, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
317
+ IN = T.let(:in, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
318
+ IQ = T.let(:iq, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
319
+ IR = T.let(:ir, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
320
+ IS = T.let(:is, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
321
+ IT = T.let(:it, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
322
+ JE = T.let(:je, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
323
+ JM = T.let(:jm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
324
+ JO = T.let(:jo, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
325
+ JP = T.let(:jp, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
326
+ KE = T.let(:ke, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
327
+ KG = T.let(:kg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
328
+ KH = T.let(:kh, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
329
+ KN = T.let(:kn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
330
+ KR = T.let(:kr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
331
+ KW = T.let(:kw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
332
+ KY = T.let(:ky, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
333
+ KZ = T.let(:kz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
334
+ LA = T.let(:la, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
335
+ LB = T.let(:lb, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
336
+ LC = T.let(:lc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
337
+ LK = T.let(:lk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
338
+ LR = T.let(:lr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
339
+ LS = T.let(:ls, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
340
+ LT = T.let(:lt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
341
+ LU = T.let(:lu, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
342
+ LV = T.let(:lv, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
343
+ LY = T.let(:ly, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
344
+ MA = T.let(:ma, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
345
+ MC = T.let(:mc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
346
+ MD = T.let(:md, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
347
+ ME = T.let(:me, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
348
+ MF = T.let(:mf, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
349
+ MG = T.let(:mg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
350
+ MK = T.let(:mk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
351
+ ML = T.let(:ml, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
352
+ MM = T.let(:mm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
353
+ MN = T.let(:mn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
354
+ MO = T.let(:mo, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
355
+ MQ = T.let(:mq, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
356
+ MR = T.let(:mr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
357
+ MT = T.let(:mt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
358
+ MU = T.let(:mu, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
359
+ MV = T.let(:mv, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
360
+ MW = T.let(:mw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
361
+ MX = T.let(:mx, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
362
+ MY = T.let(:my, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
363
+ MZ = T.let(:mz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
364
+ NA = T.let(:na, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
365
+ NC = T.let(:nc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
366
+ NE = T.let(:ne, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
367
+ NG = T.let(:ng, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
368
+ NI = T.let(:ni, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
369
+ NL = T.let(:nl, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
370
+ NO = T.let(:no, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
371
+ NP = T.let(:np, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
372
+ NZ = T.let(:nz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
373
+ OM = T.let(:om, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
374
+ PA = T.let(:pa, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
375
+ PE = T.let(:pe, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
376
+ PF = T.let(:pf, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
377
+ PG = T.let(:pg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
378
+ PH = T.let(:ph, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
379
+ PK = T.let(:pk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
380
+ PL = T.let(:pl, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
381
+ PR = T.let(:pr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
382
+ PS = T.let(:ps, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
383
+ PT = T.let(:pt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
384
+ PY = T.let(:py, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
385
+ QA = T.let(:qa, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
386
+ RE = T.let(:re, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
387
+ RO = T.let(:ro, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
388
+ RS = T.let(:rs, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
389
+ RU = T.let(:ru, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
390
+ RW = T.let(:rw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
391
+ SA = T.let(:sa, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
392
+ SC = T.let(:sc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
393
+ SD = T.let(:sd, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
394
+ SE = T.let(:se, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
395
+ SG = T.let(:sg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
396
+ SI = T.let(:si, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
397
+ SK = T.let(:sk, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
398
+ SL = T.let(:sl, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
399
+ SM = T.let(:sm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
400
+ SN = T.let(:sn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
401
+ SO = T.let(:so, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
402
+ SR = T.let(:sr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
403
+ SS = T.let(:ss, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
404
+ ST = T.let(:st, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
405
+ SV = T.let(:sv, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
406
+ SX = T.let(:sx, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
407
+ SY = T.let(:sy, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
408
+ SZ = T.let(:sz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
409
+ TC = T.let(:tc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
410
+ TD = T.let(:td, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
411
+ TG = T.let(:tg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
412
+ TH = T.let(:th, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
413
+ TJ = T.let(:tj, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
414
+ TL = T.let(:tl, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
415
+ TM = T.let(:tm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
416
+ TN = T.let(:tn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
417
+ TR = T.let(:tr, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
418
+ TT = T.let(:tt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
419
+ TW = T.let(:tw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
420
+ TZ = T.let(:tz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
421
+ UA = T.let(:ua, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
422
+ UG = T.let(:ug, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
423
+ US = T.let(:us, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
424
+ UY = T.let(:uy, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
425
+ UZ = T.let(:uz, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
426
+ VC = T.let(:vc, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
427
+ VE = T.let(:ve, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
428
+ VG = T.let(:vg, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
429
+ VI = T.let(:vi, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
430
+ VN = T.let(:vn, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
431
+ YE = T.let(:ye, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
432
+ YT = T.let(:yt, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
433
+ ZA = T.let(:za, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
434
+ ZM = T.let(:zm, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
435
+ ZW = T.let(:zw, ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol)
436
+
437
+ sig do
438
+ override.returns(
439
+ T::Array[ContextDev::WebWebScrapeMdParams::Country::TaggedSymbol]
440
+ )
441
+ end
442
+ def self.values
443
+ end
444
+ end
445
+
202
446
  class Pdf < ContextDev::Internal::Type::BaseModel
203
447
  OrHash =
204
448
  T.type_alias do
@@ -129,6 +129,8 @@ module ContextDev
129
129
  # typography, spacing, shadows, and UI components.
130
130
  sig do
131
131
  params(
132
+ color_scheme:
133
+ ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol,
132
134
  direct_url: String,
133
135
  domain: String,
134
136
  max_age_ms: Integer,
@@ -137,6 +139,9 @@ module ContextDev
137
139
  ).returns(ContextDev::Models::WebExtractStyleguideResponse)
138
140
  end
139
141
  def extract_styleguide(
142
+ # Optional browser color scheme to emulate for websites that respond to
143
+ # prefers-color-scheme. This value is part of the styleguide cache key.
144
+ color_scheme: nil,
140
145
  # A specific URL to fetch the styleguide from directly, bypassing domain
141
146
  # resolution (e.g., 'https://example.com/design-system'). When provided, the
142
147
  # styleguide is extracted from this exact URL. You must provide either 'domain' or
@@ -162,6 +167,8 @@ module ContextDev
162
167
  # Capture a screenshot of a website.
163
168
  sig do
164
169
  params(
170
+ color_scheme: ContextDev::WebScreenshotParams::ColorScheme::OrSymbol,
171
+ country: ContextDev::WebScreenshotParams::Country::OrSymbol,
165
172
  direct_url: String,
166
173
  domain: String,
167
174
  full_screenshot:
@@ -170,6 +177,7 @@ module ContextDev
170
177
  ContextDev::WebScreenshotParams::HandleCookiePopup::OrSymbol,
171
178
  max_age_ms: Integer,
172
179
  page: ContextDev::WebScreenshotParams::Page::OrSymbol,
180
+ scroll_offset: Integer,
173
181
  timeout_ms: Integer,
174
182
  viewport: ContextDev::WebScreenshotParams::Viewport::OrHash,
175
183
  wait_for_ms: Integer,
@@ -177,6 +185,12 @@ module ContextDev
177
185
  ).returns(ContextDev::Models::WebScreenshotResponse)
178
186
  end
179
187
  def screenshot(
188
+ # Optional parameter to choose the site's visual theme in the screenshot. Use
189
+ # 'light' or 'dark' when the site offers both appearances.
190
+ color_scheme: nil,
191
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
192
+ # When provided, Context.dev fetches the target page from that country.
193
+ country: nil,
180
194
  # A specific URL to screenshot directly, bypassing domain resolution (e.g.,
181
195
  # 'https://example.com/pricing'). When provided, the screenshot is taken of this
182
196
  # exact URL. You must provide either 'domain' or 'directUrl', but not both.
@@ -203,6 +217,13 @@ module ContextDev
203
217
  # provided, screenshots the main domain landing page. Only applicable when using
204
218
  # 'domain', not 'directUrl'.
205
219
  page: nil,
220
+ # Optional vertical scroll offset in pixels for capturing a long page in
221
+ # viewport-sized chunks. When provided, the full page is captured once and the
222
+ # returned image is the viewport-sized slice that begins at this Y offset (e.g.
223
+ # request scrollOffset=0, then 1080, then 2160 to walk a 1920x1080 landing page
224
+ # top to bottom). The final slice may be shorter than the viewport height. Takes
225
+ # precedence over fullScreenshot. Max: 100000.
226
+ scroll_offset: nil,
206
227
  # Optional timeout in milliseconds for the request. If the request takes longer
207
228
  # than this value, it will be aborted with a 408 status code. Maximum allowed
208
229
  # value is 300000ms (5 minutes).
@@ -221,19 +242,25 @@ module ContextDev
221
242
  sig do
222
243
  params(
223
244
  query: String,
245
+ country: ContextDev::WebSearchParams::Country::OrSymbol,
224
246
  exclude_domains: T::Array[String],
225
247
  freshness: ContextDev::WebSearchParams::Freshness::OrSymbol,
226
248
  include_domains: T::Array[String],
227
249
  markdown_options:
228
250
  ContextDev::WebSearchParams::MarkdownOptions::OrHash,
251
+ num_results: Integer,
229
252
  query_fanout: T::Boolean,
230
253
  timeout_ms: Integer,
231
254
  request_options: ContextDev::RequestOptions::OrHash
232
255
  ).returns(ContextDev::Models::WebSearchResponse)
233
256
  end
234
257
  def search(
235
- # Natural-language search query.
258
+ # Search query. Accepts natural language as well as Google-style search operators
259
+ # such as `site:`, `-site:`, `inurl:`, `intitle:`, quoted phrases, and `OR`.
236
260
  query:,
261
+ # Two-letter ISO 3166-1 alpha-2 country code to localize results to a specific
262
+ # country (maps to Google's `gl` parameter). Example: "us", "gb", "de".
263
+ country: nil,
237
264
  # Blocklist — drop results from these domains. Example: ["pinterest.com",
238
265
  # "reddit.com"].
239
266
  exclude_domains: nil,
@@ -244,6 +271,8 @@ module ContextDev
244
271
  include_domains: nil,
245
272
  # Inline Markdown scraping for each result. Set `enabled: true` to activate.
246
273
  markdown_options: nil,
274
+ # Number of results to request and return (10–100). Defaults to 10.
275
+ num_results: nil,
247
276
  # Expand the query into multiple parallel variants for broader recall.
248
277
  query_fanout: nil,
249
278
  # Optional timeout in milliseconds for the request. If the request takes longer
@@ -259,6 +288,7 @@ module ContextDev
259
288
  sig do
260
289
  params(
261
290
  url: String,
291
+ country: ContextDev::WebWebCrawlMdParams::Country::OrSymbol,
262
292
  exclude_selectors: T::Array[String],
263
293
  follow_subdomains: T::Boolean,
264
294
  include_frames: T::Boolean,
@@ -281,6 +311,10 @@ module ContextDev
281
311
  def web_crawl_md(
282
312
  # The starting URL for the crawl (must include http:// or https:// protocol)
283
313
  url:,
314
+ # Two-letter ISO 3166-1 alpha-2 country code identifying a supported Context.dev
315
+ # residential proxy exit location. Must be one of Context.dev's supported
316
+ # countries. When provided, Context.dev fetches the target page from that country.
317
+ country: nil,
284
318
  # CSS selectors to remove before each crawled page is converted to Markdown.
285
319
  # Applied after includeSelectors. Exclusion takes precedence: an element matching
286
320
  # both is removed. Examples: "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -339,6 +373,7 @@ module ContextDev
339
373
  sig do
340
374
  params(
341
375
  url: String,
376
+ country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
342
377
  exclude_selectors: T::Array[String],
343
378
  headers: T::Hash[Symbol, String],
344
379
  include_frames: T::Boolean,
@@ -354,6 +389,9 @@ module ContextDev
354
389
  def web_scrape_html(
355
390
  # Full URL to scrape (must include http:// or https:// protocol)
356
391
  url:,
392
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
393
+ # When provided, Context.dev fetches the target page from that country.
394
+ country: nil,
357
395
  # CSS selectors to remove from the result. Applied after includeSelectors.
358
396
  # Exclusion takes precedence: an element matching both is removed. Examples:
359
397
  # "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -432,6 +470,7 @@ module ContextDev
432
470
  sig do
433
471
  params(
434
472
  url: String,
473
+ country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
435
474
  exclude_selectors: T::Array[String],
436
475
  headers: T::Hash[Symbol, String],
437
476
  include_frames: T::Boolean,
@@ -451,6 +490,9 @@ module ContextDev
451
490
  # Full URL to scrape into LLM usable Markdown (must include http:// or https://
452
491
  # protocol)
453
492
  url:,
493
+ # Two-letter ISO 3166-1 alpha-2 country code for the website request location.
494
+ # When provided, Context.dev fetches the target page from that country.
495
+ country: nil,
454
496
  # CSS selectors to remove before conversion to Markdown. Applied after
455
497
  # includeSelectors. Exclusion takes precedence: an element matching both is
456
498
  # removed. Examples: "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -2,6 +2,7 @@ module ContextDev
2
2
  module Models
3
3
  type web_extract_styleguide_params =
4
4
  {
5
+ color_scheme: ContextDev::Models::WebExtractStyleguideParams::color_scheme,
5
6
  direct_url: String,
6
7
  domain: String,
7
8
  max_age_ms: Integer,
@@ -13,6 +14,12 @@ module ContextDev
13
14
  extend ContextDev::Internal::Type::RequestParameters::Converter
14
15
  include ContextDev::Internal::Type::RequestParameters
15
16
 
17
+ attr_reader color_scheme: ContextDev::Models::WebExtractStyleguideParams::color_scheme?
18
+
19
+ def color_scheme=: (
20
+ ContextDev::Models::WebExtractStyleguideParams::color_scheme
21
+ ) -> ContextDev::Models::WebExtractStyleguideParams::color_scheme
22
+
16
23
  attr_reader direct_url: String?
17
24
 
18
25
  def direct_url=: (String) -> String
@@ -30,6 +37,7 @@ module ContextDev
30
37
  def timeout_ms=: (Integer) -> Integer
31
38
 
32
39
  def initialize: (
40
+ ?color_scheme: ContextDev::Models::WebExtractStyleguideParams::color_scheme,
33
41
  ?direct_url: String,
34
42
  ?domain: String,
35
43
  ?max_age_ms: Integer,
@@ -38,12 +46,24 @@ module ContextDev
38
46
  ) -> void
39
47
 
40
48
  def to_hash: -> {
49
+ color_scheme: ContextDev::Models::WebExtractStyleguideParams::color_scheme,
41
50
  direct_url: String,
42
51
  domain: String,
43
52
  max_age_ms: Integer,
44
53
  timeout_ms: Integer,
45
54
  request_options: ContextDev::RequestOptions
46
55
  }
56
+
57
+ type color_scheme = :light | :dark
58
+
59
+ module ColorScheme
60
+ extend ContextDev::Internal::Type::Enum
61
+
62
+ LIGHT: :light
63
+ DARK: :dark
64
+
65
+ def self?.values: -> ::Array[ContextDev::Models::WebExtractStyleguideParams::color_scheme]
66
+ end
47
67
  end
48
68
  end
49
69
  end