context.dev 1.35.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:
@@ -178,6 +185,12 @@ module ContextDev
178
185
  ).returns(ContextDev::Models::WebScreenshotResponse)
179
186
  end
180
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,
181
194
  # A specific URL to screenshot directly, bypassing domain resolution (e.g.,
182
195
  # 'https://example.com/pricing'). When provided, the screenshot is taken of this
183
196
  # exact URL. You must provide either 'domain' or 'directUrl', but not both.
@@ -229,19 +242,25 @@ module ContextDev
229
242
  sig do
230
243
  params(
231
244
  query: String,
245
+ country: ContextDev::WebSearchParams::Country::OrSymbol,
232
246
  exclude_domains: T::Array[String],
233
247
  freshness: ContextDev::WebSearchParams::Freshness::OrSymbol,
234
248
  include_domains: T::Array[String],
235
249
  markdown_options:
236
250
  ContextDev::WebSearchParams::MarkdownOptions::OrHash,
251
+ num_results: Integer,
237
252
  query_fanout: T::Boolean,
238
253
  timeout_ms: Integer,
239
254
  request_options: ContextDev::RequestOptions::OrHash
240
255
  ).returns(ContextDev::Models::WebSearchResponse)
241
256
  end
242
257
  def search(
243
- # 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`.
244
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,
245
264
  # Blocklist — drop results from these domains. Example: ["pinterest.com",
246
265
  # "reddit.com"].
247
266
  exclude_domains: nil,
@@ -252,6 +271,8 @@ module ContextDev
252
271
  include_domains: nil,
253
272
  # Inline Markdown scraping for each result. Set `enabled: true` to activate.
254
273
  markdown_options: nil,
274
+ # Number of results to request and return (10–100). Defaults to 10.
275
+ num_results: nil,
255
276
  # Expand the query into multiple parallel variants for broader recall.
256
277
  query_fanout: nil,
257
278
  # Optional timeout in milliseconds for the request. If the request takes longer
@@ -267,6 +288,7 @@ module ContextDev
267
288
  sig do
268
289
  params(
269
290
  url: String,
291
+ country: ContextDev::WebWebCrawlMdParams::Country::OrSymbol,
270
292
  exclude_selectors: T::Array[String],
271
293
  follow_subdomains: T::Boolean,
272
294
  include_frames: T::Boolean,
@@ -289,6 +311,10 @@ module ContextDev
289
311
  def web_crawl_md(
290
312
  # The starting URL for the crawl (must include http:// or https:// protocol)
291
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,
292
318
  # CSS selectors to remove before each crawled page is converted to Markdown.
293
319
  # Applied after includeSelectors. Exclusion takes precedence: an element matching
294
320
  # both is removed. Examples: "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -347,6 +373,7 @@ module ContextDev
347
373
  sig do
348
374
  params(
349
375
  url: String,
376
+ country: ContextDev::WebWebScrapeHTMLParams::Country::OrSymbol,
350
377
  exclude_selectors: T::Array[String],
351
378
  headers: T::Hash[Symbol, String],
352
379
  include_frames: T::Boolean,
@@ -362,6 +389,9 @@ module ContextDev
362
389
  def web_scrape_html(
363
390
  # Full URL to scrape (must include http:// or https:// protocol)
364
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,
365
395
  # CSS selectors to remove from the result. Applied after includeSelectors.
366
396
  # Exclusion takes precedence: an element matching both is removed. Examples:
367
397
  # "nav", "footer", ".ad-banner", "[aria-hidden=true]".
@@ -440,6 +470,7 @@ module ContextDev
440
470
  sig do
441
471
  params(
442
472
  url: String,
473
+ country: ContextDev::WebWebScrapeMdParams::Country::OrSymbol,
443
474
  exclude_selectors: T::Array[String],
444
475
  headers: T::Hash[Symbol, String],
445
476
  include_frames: T::Boolean,
@@ -459,6 +490,9 @@ module ContextDev
459
490
  # Full URL to scrape into LLM usable Markdown (must include http:// or https://
460
491
  # protocol)
461
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,
462
496
  # CSS selectors to remove before conversion to Markdown. Applied after
463
497
  # includeSelectors. Exclusion takes precedence: an element matching both is
464
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