context.dev 2.18.0 → 2.20.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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +220 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +0 -4
  5. data/lib/context_dev/models/monitor_retrieve_run_params.rb +26 -0
  6. data/lib/context_dev/models/monitor_retrieve_run_response.rb +232 -0
  7. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +20 -0
  8. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +765 -0
  9. data/lib/context_dev/models/{web_web_scrape_sitemap_params.rb → web_map_urls_params.rb} +14 -14
  10. data/lib/context_dev/models/web_map_urls_response.rb +123 -0
  11. data/lib/context_dev/models/web_scrape_params.rb +1035 -0
  12. data/lib/context_dev/models/web_scrape_response.rb +974 -0
  13. data/lib/context_dev/models/web_screenshot_params.rb +15 -1
  14. data/lib/context_dev/models/web_screenshot_response.rb +3 -3
  15. data/lib/context_dev/models.rb +8 -22
  16. data/lib/context_dev/resources/brand.rb +0 -36
  17. data/lib/context_dev/resources/monitors.rb +47 -0
  18. data/lib/context_dev/resources/web.rb +118 -486
  19. data/lib/context_dev/version.rb +1 -1
  20. data/lib/context_dev.rb +8 -23
  21. data/rbi/context_dev/client.rbi +0 -3
  22. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +46 -0
  23. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +452 -0
  24. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +38 -0
  25. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +1367 -0
  26. data/rbi/context_dev/models/{web_web_scrape_sitemap_params.rbi → web_map_urls_params.rbi} +23 -45
  27. data/rbi/context_dev/models/web_map_urls_response.rbi +226 -0
  28. data/rbi/context_dev/models/web_scrape_params.rbi +2221 -0
  29. data/rbi/context_dev/models/web_scrape_response.rbi +1874 -0
  30. data/rbi/context_dev/models/web_screenshot_params.rbi +23 -0
  31. data/rbi/context_dev/models/web_screenshot_response.rbi +4 -4
  32. data/rbi/context_dev/models.rbi +9 -24
  33. data/rbi/context_dev/resources/brand.rbi +0 -35
  34. data/rbi/context_dev/resources/monitors.rbi +24 -0
  35. data/rbi/context_dev/resources/web.rbi +152 -654
  36. data/sig/context_dev/client.rbs +0 -2
  37. data/sig/context_dev/models/monitor_retrieve_run_params.rbs +28 -0
  38. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +182 -0
  39. data/sig/context_dev/models/monitor_rotate_webhook_secret_params.rbs +23 -0
  40. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +545 -0
  41. data/sig/context_dev/models/{web_web_scrape_sitemap_params.rbs → web_map_urls_params.rbs} +22 -22
  42. data/sig/context_dev/models/web_map_urls_response.rbs +125 -0
  43. data/sig/context_dev/models/web_scrape_params.rbs +925 -0
  44. data/sig/context_dev/models/web_scrape_response.rbs +782 -0
  45. data/sig/context_dev/models/web_screenshot_params.rbs +7 -0
  46. data/sig/context_dev/models.rbs +8 -22
  47. data/sig/context_dev/resources/brand.rbs +0 -9
  48. data/sig/context_dev/resources/monitors.rbs +11 -0
  49. data/sig/context_dev/resources/web.rbs +33 -128
  50. metadata +26 -71
  51. data/lib/context_dev/models/ai_extract_product_params.rb +0 -125
  52. data/lib/context_dev/models/ai_extract_product_response.rb +0 -402
  53. data/lib/context_dev/models/ai_extract_products_params.rb +0 -233
  54. data/lib/context_dev/models/ai_extract_products_response.rb +0 -370
  55. data/lib/context_dev/models/brand_retrieve_simplified_params.rb +0 -120
  56. data/lib/context_dev/models/brand_retrieve_simplified_response.rb +0 -441
  57. data/lib/context_dev/models/web_extract_fonts_params.rb +0 -114
  58. data/lib/context_dev/models/web_extract_fonts_response.rb +0 -291
  59. data/lib/context_dev/models/web_extract_params.rb +0 -419
  60. data/lib/context_dev/models/web_extract_response.rb +0 -287
  61. data/lib/context_dev/models/web_web_scrape_bytes_params.rb +0 -346
  62. data/lib/context_dev/models/web_web_scrape_bytes_response.rb +0 -135
  63. data/lib/context_dev/models/web_web_scrape_html_params.rb +0 -812
  64. data/lib/context_dev/models/web_web_scrape_html_response.rb +0 -628
  65. data/lib/context_dev/models/web_web_scrape_images_params.rb +0 -373
  66. data/lib/context_dev/models/web_web_scrape_images_response.rb +0 -409
  67. data/lib/context_dev/models/web_web_scrape_md_params.rb +0 -670
  68. data/lib/context_dev/models/web_web_scrape_md_response.rb +0 -567
  69. data/lib/context_dev/models/web_web_scrape_screenshot_params.rb +0 -471
  70. data/lib/context_dev/models/web_web_scrape_screenshot_response.rb +0 -169
  71. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +0 -144
  72. data/lib/context_dev/resources/ai.rb +0 -71
  73. data/rbi/context_dev/models/ai_extract_product_params.rbi +0 -253
  74. data/rbi/context_dev/models/ai_extract_product_response.rbi +0 -791
  75. data/rbi/context_dev/models/ai_extract_products_params.rbi +0 -490
  76. data/rbi/context_dev/models/ai_extract_products_response.rbi +0 -718
  77. data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +0 -256
  78. data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +0 -1040
  79. data/rbi/context_dev/models/web_extract_fonts_params.rbi +0 -223
  80. data/rbi/context_dev/models/web_extract_fonts_response.rbi +0 -563
  81. data/rbi/context_dev/models/web_extract_params.rbi +0 -781
  82. data/rbi/context_dev/models/web_extract_response.rbi +0 -512
  83. data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +0 -702
  84. data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +0 -238
  85. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +0 -1690
  86. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +0 -1287
  87. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +0 -728
  88. data/rbi/context_dev/models/web_web_scrape_images_response.rbi +0 -910
  89. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +0 -1052
  90. data/rbi/context_dev/models/web_web_scrape_md_response.rbi +0 -1088
  91. data/rbi/context_dev/models/web_web_scrape_screenshot_params.rbi +0 -1580
  92. data/rbi/context_dev/models/web_web_scrape_screenshot_response.rbi +0 -332
  93. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +0 -258
  94. data/rbi/context_dev/resources/ai.rbi +0 -63
  95. data/sig/context_dev/models/ai_extract_product_params.rbs +0 -106
  96. data/sig/context_dev/models/ai_extract_product_response.rbs +0 -314
  97. data/sig/context_dev/models/ai_extract_products_params.rbs +0 -202
  98. data/sig/context_dev/models/ai_extract_products_response.rbs +0 -293
  99. data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +0 -104
  100. data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +0 -413
  101. data/sig/context_dev/models/web_extract_fonts_params.rbs +0 -93
  102. data/sig/context_dev/models/web_extract_fonts_response.rbs +0 -230
  103. data/sig/context_dev/models/web_extract_params.rbs +0 -324
  104. data/sig/context_dev/models/web_extract_response.rbs +0 -239
  105. data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +0 -531
  106. data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +0 -108
  107. data/sig/context_dev/models/web_web_scrape_html_params.rbs +0 -878
  108. data/sig/context_dev/models/web_web_scrape_html_response.rbs +0 -525
  109. data/sig/context_dev/models/web_web_scrape_images_params.rbs +0 -281
  110. data/sig/context_dev/models/web_web_scrape_images_response.rbs +0 -371
  111. data/sig/context_dev/models/web_web_scrape_md_params.rbs +0 -758
  112. data/sig/context_dev/models/web_web_scrape_md_response.rbs +0 -465
  113. data/sig/context_dev/models/web_web_scrape_screenshot_params.rbs +0 -619
  114. data/sig/context_dev/models/web_web_scrape_screenshot_response.rbs +0 -127
  115. data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +0 -117
  116. data/sig/context_dev/resources/ai.rbs +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e0f065997a3f6bc987b9ef1486e702f79002addef6662ceeed38107340ff8565
4
- data.tar.gz: d22faf02bd6bdc0ad7ba496b99375be03a07eeb2a8753b93aef39ea8733bbd35
3
+ metadata.gz: e77aec25d51b70c0df1a55ba12b10fad65b5366d49e720e6efefabf6c3a23711
4
+ data.tar.gz: '03190fde06fe98e9fb590ebbf09d0871f47cbfe824ea48158e0ee5b62aa36dd1'
5
5
  SHA512:
6
- metadata.gz: c626610bd4e3070c60ad4db6c0b0c0eb3f0f8ac0eb1bf10f61e4c5dc740f2f3c40ab829309ecaaf5fe4ed232c9d8683bab6872641ccca935ca3eff5a932b0dcc
7
- data.tar.gz: 8089fb01f3a2ba6dfbab55db9fac2ae0ac3d0555f051f6ec7ae5edaf3d9990e80b17d9d9d3b0588d4fa5ada2a073e5aed03caf1faa907e9dcbe717b136a6c16e
6
+ metadata.gz: f037514e5a499f5632b49fcec6d219dbcf14950e58d0178861f9583ebf303e71ec7f8baac7db9934c4e74d49df45f3bd46f51a5235b51acc80dcb808b0e1a8d5
7
+ data.tar.gz: c44695655f09ef6b9d2aee15b39c7e1522e05f69d46b201aaaa1621d82001e16f25749976b9f1a8b662440bbb2cf24bfd598f6cac50b1d436bdf810d48b0d915
data/CHANGELOG.md CHANGED
@@ -1,5 +1,225 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.20.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.19.0...v2.20.0) (2026-09-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * **answers:** add live web research with fast and ultra modes ([#954](https://github.com/context-dot-dev/context-ruby-sdk/issues/954)) ([838e943](https://github.com/context-dot-dev/context-ruby-sdk/commit/838e943b1fe34aeaf6f804ff534c22f62b4900fe))
9
+ * **api-keys:** enforce scoped API key permissions ([#1038](https://github.com/context-dot-dev/context-ruby-sdk/issues/1038)) ([7f87431](https://github.com/context-dot-dev/context-ruby-sdk/commit/7f874312c42b5c12020d71251f8bfc6eaa8ab2aa))
10
+ * **api:** api update ([f7adbd6](https://github.com/context-dot-dev/context-ruby-sdk/commit/f7adbd63407b697245019ea9483dc090de9ba0ff))
11
+ * **api:** api update ([c26b304](https://github.com/context-dot-dev/context-ruby-sdk/commit/c26b30411607dcc2eaad14962d582f4588f5193f))
12
+ * **api:** api update ([852a96e](https://github.com/context-dot-dev/context-ruby-sdk/commit/852a96e58dab7e6fef53af10093119ffc237f52e))
13
+ * **api:** api update ([c16beb5](https://github.com/context-dot-dev/context-ruby-sdk/commit/c16beb55d66977611c58711b489132f347ab2c96))
14
+ * **api:** api update ([9bff49f](https://github.com/context-dot-dev/context-ruby-sdk/commit/9bff49f9a966fd40691f2cd7a41ba96ec7679243))
15
+ * **api:** api update ([5b19e0c](https://github.com/context-dot-dev/context-ruby-sdk/commit/5b19e0ce1f7ad615a92e28440bec6ab3703ffe02))
16
+ * **api:** api update ([f4ccf22](https://github.com/context-dot-dev/context-ruby-sdk/commit/f4ccf220f130672950d3231a6b9952c166168ef9))
17
+ * **api:** api update ([6f90ebf](https://github.com/context-dot-dev/context-ruby-sdk/commit/6f90ebff6164a8daf2f6c4bf8d1492ade1ad2779))
18
+ * **api:** api update ([95cbdde](https://github.com/context-dot-dev/context-ruby-sdk/commit/95cbddeb3a3351a03c394709dfeaf3fb5c98be92))
19
+ * **api:** api update ([97520df](https://github.com/context-dot-dev/context-ruby-sdk/commit/97520df52a798122460e2f219d7b582d2f6830da))
20
+ * **api:** api update ([2b73772](https://github.com/context-dot-dev/context-ruby-sdk/commit/2b737722e962cf7a5aba20a2b596d379f7f2bce0))
21
+ * **api:** api update ([630b415](https://github.com/context-dot-dev/context-ruby-sdk/commit/630b4156f12004d2da154e26003271cd143ccbb8))
22
+ * **api:** api update ([ea29f67](https://github.com/context-dot-dev/context-ruby-sdk/commit/ea29f67042bd6fd9b987d7ad4ad9f8993a871653))
23
+ * **api:** api update ([e7c64e4](https://github.com/context-dot-dev/context-ruby-sdk/commit/e7c64e4540db4cc313d70cebe5409739b052e567))
24
+ * **api:** api update ([975de89](https://github.com/context-dot-dev/context-ruby-sdk/commit/975de893c9145f20f541a443730d7d99f575a313))
25
+ * **api:** api update ([a1f13c2](https://github.com/context-dot-dev/context-ruby-sdk/commit/a1f13c2244b0ac81a58c350e6cba79875e0c4bf1))
26
+ * **api:** api update ([e7cfd87](https://github.com/context-dot-dev/context-ruby-sdk/commit/e7cfd87ff2e163f572cc33ee4b6af5be79811d03))
27
+ * **api:** api update ([c827408](https://github.com/context-dot-dev/context-ruby-sdk/commit/c8274088947813e1090d6232190b5333c025696a))
28
+ * **api:** api update ([5c09f03](https://github.com/context-dot-dev/context-ruby-sdk/commit/5c09f03dd90cda2cad388ac2605d6cadebf0e137))
29
+ * **api:** api update ([b0bdc3e](https://github.com/context-dot-dev/context-ruby-sdk/commit/b0bdc3ec9322ce5854177cdaff808caaba427746))
30
+ * **api:** api update ([17848b3](https://github.com/context-dot-dev/context-ruby-sdk/commit/17848b313dcbd098b21902bd2bd2cab6d9ad5ce2))
31
+ * **api:** api update ([4db7386](https://github.com/context-dot-dev/context-ruby-sdk/commit/4db7386bf6f686a33beae7817ec9122e1adad47f))
32
+ * **api:** api update ([cedd9b1](https://github.com/context-dot-dev/context-ruby-sdk/commit/cedd9b1191e1297236c2aa6dede3fa640380b651))
33
+ * **api:** api update ([98fedb9](https://github.com/context-dot-dev/context-ruby-sdk/commit/98fedb99aae187cff9284efd0a6c574b1b71d749))
34
+ * **api:** api update ([7a5cc9a](https://github.com/context-dot-dev/context-ruby-sdk/commit/7a5cc9aa3bd2c746d0e47a58fbc426453db3b8c7))
35
+ * **api:** api update ([6cfd0e8](https://github.com/context-dot-dev/context-ruby-sdk/commit/6cfd0e80f3860cfbddd595ac4c72461075775415))
36
+ * **api:** api update ([99bdfb2](https://github.com/context-dot-dev/context-ruby-sdk/commit/99bdfb24af9adfac64ee68ca714fb1176c1d61c0))
37
+ * **api:** api update ([5af0d4b](https://github.com/context-dot-dev/context-ruby-sdk/commit/5af0d4b1954673356f6200967dbea5ea61685025))
38
+ * **api:** api update ([28793d8](https://github.com/context-dot-dev/context-ruby-sdk/commit/28793d84ed93dcf457aaf3f346056f2480f37724))
39
+ * **api:** api update ([c9c4475](https://github.com/context-dot-dev/context-ruby-sdk/commit/c9c447554772879c742d72ac88174a75fbff599a))
40
+ * **api:** api update ([72e6d90](https://github.com/context-dot-dev/context-ruby-sdk/commit/72e6d90baaeeb9181482488e7b49e511597d2175))
41
+ * **api:** api update ([2574f7d](https://github.com/context-dot-dev/context-ruby-sdk/commit/2574f7db809d8480db2b7ae2705fd2de6a1ce2ff))
42
+ * **api:** api update ([8fb7d29](https://github.com/context-dot-dev/context-ruby-sdk/commit/8fb7d29835d4ffe7eb53b1619d3da20fa45df52c))
43
+ * **api:** api update ([f5684a3](https://github.com/context-dot-dev/context-ruby-sdk/commit/f5684a355f24bf6a80aa904f09087a899f2121aa))
44
+ * **api:** api update ([426deb1](https://github.com/context-dot-dev/context-ruby-sdk/commit/426deb18249b214c3ccaa44c1e654e75ef666dd2))
45
+ * **api:** api update ([3fd9604](https://github.com/context-dot-dev/context-ruby-sdk/commit/3fd960488c341f082b6d312dda927aeee23dccff))
46
+ * **api:** api update ([bdd3176](https://github.com/context-dot-dev/context-ruby-sdk/commit/bdd3176c7f507880adb7becae314b816c6bbe9bc))
47
+ * **api:** api update ([d68d31d](https://github.com/context-dot-dev/context-ruby-sdk/commit/d68d31dc5aa77ad154789b6cf91e0b8558353214))
48
+ * **api:** api update ([d4c601e](https://github.com/context-dot-dev/context-ruby-sdk/commit/d4c601ea30aa1d47ef041d0439ab8b5d976cc8e2))
49
+ * **api:** api update ([03fa3ac](https://github.com/context-dot-dev/context-ruby-sdk/commit/03fa3ac3c7c61aba88846db890bf4d3fd22d1086))
50
+ * **api:** api update ([626d105](https://github.com/context-dot-dev/context-ruby-sdk/commit/626d1054da9622e88469bb9c3b755f43d1d75280))
51
+ * **api:** api update ([04e3709](https://github.com/context-dot-dev/context-ruby-sdk/commit/04e370916ae9679892d86fc297e3c935afa1e2c2))
52
+ * **api:** api update ([59b7e62](https://github.com/context-dot-dev/context-ruby-sdk/commit/59b7e62e57eff7482db12fe2dd1a97298620b88f))
53
+ * **api:** api update ([7fe6a1f](https://github.com/context-dot-dev/context-ruby-sdk/commit/7fe6a1fbd2977c0669b7623ba96533b43789b8ae))
54
+ * **api:** api update ([cd5b872](https://github.com/context-dot-dev/context-ruby-sdk/commit/cd5b8725dcd7fb06d7bd684aa4ce11b81ca4409a))
55
+ * **api:** api update ([bdc4962](https://github.com/context-dot-dev/context-ruby-sdk/commit/bdc4962f436086be52293ea489960b6b6158726b))
56
+ * **api:** api update ([531ccbe](https://github.com/context-dot-dev/context-ruby-sdk/commit/531ccbeb9770c4340641353859064b50aa6d72bc))
57
+ * **api:** api update ([b0511d9](https://github.com/context-dot-dev/context-ruby-sdk/commit/b0511d905641a19d59391ff26ac27d474016ac26))
58
+ * **api:** api update ([a146323](https://github.com/context-dot-dev/context-ruby-sdk/commit/a14632340e78b4b21be6c742f3792a7f14ca4fae))
59
+ * **api:** api update ([4a4a076](https://github.com/context-dot-dev/context-ruby-sdk/commit/4a4a0762b6c422c5507f847bb06b9ac0fb11e605))
60
+ * **api:** api update ([4682d0b](https://github.com/context-dot-dev/context-ruby-sdk/commit/4682d0b50170440ce7a3b60beadad10cefff3168))
61
+ * **api:** api update ([0026695](https://github.com/context-dot-dev/context-ruby-sdk/commit/00266958beb99d8747e4e5422a122792e0cb8080))
62
+ * **api:** api update ([3393a00](https://github.com/context-dot-dev/context-ruby-sdk/commit/3393a0047608f81e85a7c011ff3fd6356d7433a3))
63
+ * **api:** api update ([ab547fb](https://github.com/context-dot-dev/context-ruby-sdk/commit/ab547fb83535a1184f2aa1414b86022e4550704f))
64
+ * **api:** api update ([d71fbde](https://github.com/context-dot-dev/context-ruby-sdk/commit/d71fbde94bc39245091db193f120fa383efea82f))
65
+ * **api:** api update ([8fb393a](https://github.com/context-dot-dev/context-ruby-sdk/commit/8fb393a6a53d4ec6867efe8d9daf8458d9fa3cc8))
66
+ * **api:** api update ([edf39d7](https://github.com/context-dot-dev/context-ruby-sdk/commit/edf39d75e9ca0a7b96ddac6467f9b50ceca0acf1))
67
+ * **api:** api update ([893f11d](https://github.com/context-dot-dev/context-ruby-sdk/commit/893f11d2746ccb636e971e12c24553043046cb11))
68
+ * **api:** api update ([59319b0](https://github.com/context-dot-dev/context-ruby-sdk/commit/59319b0421154c96a444f5e2d45b83e8f4bc9074))
69
+ * **api:** api update ([125ebe5](https://github.com/context-dot-dev/context-ruby-sdk/commit/125ebe5cb023b276c01bdc8c3cafbe8841dffddb))
70
+ * **api:** api update ([26f4358](https://github.com/context-dot-dev/context-ruby-sdk/commit/26f43582d8d63b9ebd98f0ba04c64e93d61b185f))
71
+ * **api:** api update ([94469da](https://github.com/context-dot-dev/context-ruby-sdk/commit/94469da02de1d8713f5bcb723cab05f0e23bb33d))
72
+ * **api:** api update ([65310de](https://github.com/context-dot-dev/context-ruby-sdk/commit/65310de1d9739b217660fc4ab8e5462bc5a0f081))
73
+ * **api:** api update ([67ddd60](https://github.com/context-dot-dev/context-ruby-sdk/commit/67ddd60fffad48a4cc6697fb940f6510bc04d0cb))
74
+ * **api:** api update ([e987167](https://github.com/context-dot-dev/context-ruby-sdk/commit/e9871675c89fd313209d95cd54071fe986dd772a))
75
+ * **api:** api update ([2170040](https://github.com/context-dot-dev/context-ruby-sdk/commit/2170040142dab272a55f903f0d062b0d36d751aa))
76
+ * **api:** api update ([c57bae4](https://github.com/context-dot-dev/context-ruby-sdk/commit/c57bae40d99770e18c92d402eb71dc0aa651f522))
77
+ * **api:** api update ([c897bbf](https://github.com/context-dot-dev/context-ruby-sdk/commit/c897bbf03235960c8036bd808c5239b935d94bf3))
78
+ * **api:** api update ([9aa6127](https://github.com/context-dot-dev/context-ruby-sdk/commit/9aa6127b563032655648c3c24fe9564616ebe3f1))
79
+ * **api:** api update ([22eb08f](https://github.com/context-dot-dev/context-ruby-sdk/commit/22eb08f65d1001052f1bd247a4d60e2680bb33ea))
80
+ * **api:** api update ([d442168](https://github.com/context-dot-dev/context-ruby-sdk/commit/d442168b67accce12463e36f03630f155c1c7be3))
81
+ * **api:** api update ([f3a97c1](https://github.com/context-dot-dev/context-ruby-sdk/commit/f3a97c19ef01be5e6cf1ce7ecfa26c972edfdf33))
82
+ * **api:** api update ([8d8abf7](https://github.com/context-dot-dev/context-ruby-sdk/commit/8d8abf7c1600bce17ea26aa245f41b2e3199f722))
83
+ * **api:** api update ([7948cbf](https://github.com/context-dot-dev/context-ruby-sdk/commit/7948cbf296742dd0fea7c08c148962a35ed88c20))
84
+ * **api:** api update ([5574aa6](https://github.com/context-dot-dev/context-ruby-sdk/commit/5574aa6793f9ff576b625cbb2e86fa819fd3bf36))
85
+ * **api:** api update ([6e08ffc](https://github.com/context-dot-dev/context-ruby-sdk/commit/6e08ffc77cc708d31b9a3972bc3e2ac86c2fdb92))
86
+ * **api:** api update ([ab9c393](https://github.com/context-dot-dev/context-ruby-sdk/commit/ab9c3935b669fbe2c7a8ffdd5bff7ea05fc2ae56))
87
+ * **api:** api update ([7f8b7b7](https://github.com/context-dot-dev/context-ruby-sdk/commit/7f8b7b7a720f3fdf5364ffaf7c7e55f171b72c0e))
88
+ * **api:** api update ([b582c05](https://github.com/context-dot-dev/context-ruby-sdk/commit/b582c05376102bb0cb6f8d4d8c9a2cefdef8c1ec))
89
+ * **api:** api update ([4a4e4bb](https://github.com/context-dot-dev/context-ruby-sdk/commit/4a4e4bbc547662de263a307b213dd7eecd03a61d))
90
+ * **api:** api update ([ae638b0](https://github.com/context-dot-dev/context-ruby-sdk/commit/ae638b04d0e08bf93e2cdd1211236d841d5313b1))
91
+ * **api:** api update ([8376344](https://github.com/context-dot-dev/context-ruby-sdk/commit/8376344a7a72a7ff01906bc3d6a5913a4de60bcb))
92
+ * **api:** api update ([f0b1f3a](https://github.com/context-dot-dev/context-ruby-sdk/commit/f0b1f3afd885c44cb464393b57d944fa27a6c0b5))
93
+ * **api:** api update ([42c8282](https://github.com/context-dot-dev/context-ruby-sdk/commit/42c8282f18c421ca317b51c640ea42cc04c61230))
94
+ * **api:** api update ([58cb73a](https://github.com/context-dot-dev/context-ruby-sdk/commit/58cb73a109e20f296f6a5f256a94d690b1203f70))
95
+ * **api:** api update ([59a9399](https://github.com/context-dot-dev/context-ruby-sdk/commit/59a93997a90f6afac755abf6686c139b92d8463e))
96
+ * **api:** api update ([c74cbf3](https://github.com/context-dot-dev/context-ruby-sdk/commit/c74cbf354e15c2b56680b4248ed69462a1a84d23))
97
+ * **api:** api update ([cc57672](https://github.com/context-dot-dev/context-ruby-sdk/commit/cc576729ce6c522ee578e7dc5f99122463014515))
98
+ * **api:** api update ([84bfef2](https://github.com/context-dot-dev/context-ruby-sdk/commit/84bfef260d99a7a444c243edc4be1c72191929dd))
99
+ * **api:** api update ([5405b96](https://github.com/context-dot-dev/context-ruby-sdk/commit/5405b9676800e2004d92dd9f621dfc56972bacd2))
100
+ * **api:** api update ([9c8b4d9](https://github.com/context-dot-dev/context-ruby-sdk/commit/9c8b4d9b1d813c5b7992998a3fa23cde63fe2f4c))
101
+ * **api:** api update ([c1543f7](https://github.com/context-dot-dev/context-ruby-sdk/commit/c1543f7513b2d88b0c8ad8e209e62075bd9658bc))
102
+ * **api:** api update ([9c98e20](https://github.com/context-dot-dev/context-ruby-sdk/commit/9c98e20725dcda8466a2274b61be75943d0564d9))
103
+ * **api:** api update ([8ccafd9](https://github.com/context-dot-dev/context-ruby-sdk/commit/8ccafd9625079f40393fe23890958a80d8bdb4e8))
104
+ * **api:** api update ([30ef99f](https://github.com/context-dot-dev/context-ruby-sdk/commit/30ef99f9a0d61f6528aed16b080f376753b3447a))
105
+ * **api:** api update ([c9851eb](https://github.com/context-dot-dev/context-ruby-sdk/commit/c9851ebc0618d7433ed88f7062902fcec575b229))
106
+ * **api:** api update ([55529f6](https://github.com/context-dot-dev/context-ruby-sdk/commit/55529f63e23cf255645bdb2d0420bf24aaba28b1))
107
+ * **api:** api update ([51320a5](https://github.com/context-dot-dev/context-ruby-sdk/commit/51320a5677298ab231dc417ef3c54d6a75e640ba))
108
+ * **api:** api update ([5a69904](https://github.com/context-dot-dev/context-ruby-sdk/commit/5a69904d89cc873614e8320308eecac9304992d2))
109
+ * **api:** api update ([7d186fa](https://github.com/context-dot-dev/context-ruby-sdk/commit/7d186faf849e20bcd958beb5f46b71f6440b8358))
110
+ * **api:** api update ([2d439b9](https://github.com/context-dot-dev/context-ruby-sdk/commit/2d439b9814f0e3be9efead3d2e70e3e5d7e3a1f0))
111
+ * **api:** api update ([8b33b1e](https://github.com/context-dot-dev/context-ruby-sdk/commit/8b33b1ee26acc8314d9c285ea53e3531ba390a16))
112
+ * **api:** api update ([7b5ddec](https://github.com/context-dot-dev/context-ruby-sdk/commit/7b5ddec0b8e306df34a72ccd39e8d731168a62ea))
113
+ * **api:** api update ([b09024f](https://github.com/context-dot-dev/context-ruby-sdk/commit/b09024fa19c7aecafaf4fe4bd211bfc3738484ed))
114
+ * **api:** api update ([4e74fe3](https://github.com/context-dot-dev/context-ruby-sdk/commit/4e74fe3f395778efb1ca3f1e752f2f71e21a3191))
115
+ * **api:** api update ([f475665](https://github.com/context-dot-dev/context-ruby-sdk/commit/f47566556bc4d2c81a52084979f83be62cb17cf2))
116
+ * **api:** api update ([a4e99e6](https://github.com/context-dot-dev/context-ruby-sdk/commit/a4e99e6e0659cb7b09375d7a467e9771aa6cea44))
117
+ * **api:** api update ([b13514f](https://github.com/context-dot-dev/context-ruby-sdk/commit/b13514f872498b08e54fc8b4264179201ee30311))
118
+ * **api:** api update ([5f00bc0](https://github.com/context-dot-dev/context-ruby-sdk/commit/5f00bc076f0081065bc274ce9f28cd26a7daa944))
119
+ * **api:** api update ([9ae9b10](https://github.com/context-dot-dev/context-ruby-sdk/commit/9ae9b108ce2737b42574a6f781103410a546f704))
120
+ * **api:** api update ([58ed755](https://github.com/context-dot-dev/context-ruby-sdk/commit/58ed7551637936ea3c007e28af3358eb96a339ca))
121
+ * **api:** api update ([4767618](https://github.com/context-dot-dev/context-ruby-sdk/commit/4767618765a8f15bde582bf35f78190649681453))
122
+ * **api:** api update ([0891a8f](https://github.com/context-dot-dev/context-ruby-sdk/commit/0891a8f97fa7ca1b8e49dbc5d383763406ac85ae))
123
+ * **api:** api update ([ff1db16](https://github.com/context-dot-dev/context-ruby-sdk/commit/ff1db1692a06315279532c93a05722223cb2c7ee))
124
+ * **api:** api update ([97eac17](https://github.com/context-dot-dev/context-ruby-sdk/commit/97eac17686bff356d4d5b6ad6438beb24c05b05a))
125
+ * **api:** enable ZDR on remaining AI endpoints via OpenAI ([#1099](https://github.com/context-dot-dev/context-ruby-sdk/issues/1099)) ([36e5487](https://github.com/context-dot-dev/context-ruby-sdk/commit/36e548724224b3198e49d248735916f3af6d1b61))
126
+ * **api:** manual updates ([54ad450](https://github.com/context-dot-dev/context-ruby-sdk/commit/54ad450f892542378cec0ce5430d1436e1437a4d))
127
+ * **api:** manual updates ([cf2f79f](https://github.com/context-dot-dev/context-ruby-sdk/commit/cf2f79ff77dca3e57069cfac612e7fd333a8d83f))
128
+ * **api:** manual updates ([054713e](https://github.com/context-dot-dev/context-ruby-sdk/commit/054713ecd7a6c12c29a2aaf0df0ea0eeb0ff61fc))
129
+ * **api:** manual updates ([d7a4669](https://github.com/context-dot-dev/context-ruby-sdk/commit/d7a46695c2ba5ec1f54eaedec751bfd1d1559c4b))
130
+ * **api:** manual updates ([2a83a5f](https://github.com/context-dot-dev/context-ruby-sdk/commit/2a83a5f976bf2b75964ea56ff07f99872acd5022))
131
+ * **api:** manual updates ([b7f6b2c](https://github.com/context-dot-dev/context-ruby-sdk/commit/b7f6b2c0a5bb91cc065bcc2ef497c9999414262c))
132
+ * **api:** manual updates ([b18f464](https://github.com/context-dot-dev/context-ruby-sdk/commit/b18f46485bf70c10b0a20459ed38b2991ea5add0))
133
+ * **api:** manual updates ([fa7f5bf](https://github.com/context-dot-dev/context-ruby-sdk/commit/fa7f5bfa1e892a7dff26b169bd3ea7a6d0863048))
134
+ * **api:** manual updates ([7277672](https://github.com/context-dot-dev/context-ruby-sdk/commit/7277672e289e4d8a54791a154e989ec6ba25e3b2))
135
+ * **api:** manual updates ([e3971dc](https://github.com/context-dot-dev/context-ruby-sdk/commit/e3971dcc3b94f5b998562f8ecb82a292cc8f00bd))
136
+ * **api:** manual updates ([688e5f5](https://github.com/context-dot-dev/context-ruby-sdk/commit/688e5f56137aeac7c5219383f241a459173f961f))
137
+ * **api:** manual updates ([b6c283e](https://github.com/context-dot-dev/context-ruby-sdk/commit/b6c283ee6c514421e07fb0b6d61aace62df318d1))
138
+ * **api:** manual updates ([6d640e9](https://github.com/context-dot-dev/context-ruby-sdk/commit/6d640e9d1c52818badc55b8f9e5c545766a26d01))
139
+ * **api:** manual updates ([ec963bb](https://github.com/context-dot-dev/context-ruby-sdk/commit/ec963bb99ac36d162552c76fb067e87144f21089))
140
+ * **api:** manual updates ([1017ae4](https://github.com/context-dot-dev/context-ruby-sdk/commit/1017ae4d595beb2e5b466326a4db19c78ce6db51))
141
+ * **api:** manual updates ([490fde0](https://github.com/context-dot-dev/context-ruby-sdk/commit/490fde06ead702db0640f9d1161c3d8ecedd31a9))
142
+ * **api:** manual updates ([e1f12de](https://github.com/context-dot-dev/context-ruby-sdk/commit/e1f12de44bcadd047b5746fdddcd828a29107e1e))
143
+ * **api:** manual updates ([f451afe](https://github.com/context-dot-dev/context-ruby-sdk/commit/f451afea50625bba49a808a4b193c451c7019571))
144
+ * **api:** manual updates ([11ea49f](https://github.com/context-dot-dev/context-ruby-sdk/commit/11ea49fac95ca680db1f9880b8b8590aa650b00a))
145
+ * **api:** manual updates ([739b99f](https://github.com/context-dot-dev/context-ruby-sdk/commit/739b99fddcd745960b3cf390cc9bff4220941ee8))
146
+ * **api:** manual updates ([d32eb69](https://github.com/context-dot-dev/context-ruby-sdk/commit/d32eb69f2bafb655156587bfb2daa659dcc3b731))
147
+ * **api:** manual updates ([8e8fcc2](https://github.com/context-dot-dev/context-ruby-sdk/commit/8e8fcc26f2fbbb2bdcca9713fa3b9f8518303586))
148
+ * **api:** manual updates ([d120a5d](https://github.com/context-dot-dev/context-ruby-sdk/commit/d120a5dde6665acced2c75394beb6910389e344e))
149
+ * **api:** manual updates ([fe32a5e](https://github.com/context-dot-dev/context-ruby-sdk/commit/fe32a5e431bf152d8b0966f9927efcd8ebc3b5c1))
150
+ * **api:** return request_id on every response ([012ba65](https://github.com/context-dot-dev/context-ruby-sdk/commit/012ba65ea7648ebd7b18fa7ad00955a13b8394b9))
151
+ * **api:** unify timeout configuration and return partial results ([#1030](https://github.com/context-dot-dev/context-ruby-sdk/issues/1030)) ([7c0fa1f](https://github.com/context-dot-dev/context-ruby-sdk/commit/7c0fa1f308fc51885405c065aef2fd4ab8fe5725))
152
+ * **billing:** charge for 404s and skip fraud accounting ([#1152](https://github.com/context-dot-dev/context-ruby-sdk/issues/1152)) ([d1fa73e](https://github.com/context-dot-dev/context-ruby-sdk/commit/d1fa73e0809ce7acb5668f413f40b902e539fe72))
153
+ * initial stlc build ([bf63ae0](https://github.com/context-dot-dev/context-ruby-sdk/commit/bf63ae0769d9756a0b36480fd0c2d05ae939997c))
154
+ * **logs:** expose request log endpoints in SDKs ([#1025](https://github.com/context-dot-dev/context-ruby-sdk/issues/1025)) ([5b22be7](https://github.com/context-dot-dev/context-ruby-sdk/commit/5b22be7bd1cb6401b8260b5a756b6ec040cbc6a8))
155
+ * **monitors:** add page selector filters ([#1037](https://github.com/context-dot-dev/context-ruby-sdk/issues/1037)) ([1f3a748](https://github.com/context-dot-dev/context-ruby-sdk/commit/1f3a74858133f69ea52c3a189f9ed8c80b80c0c6))
156
+ * **products:** extract ProductGroup variants with images ([#1124](https://github.com/context-dot-dev/context-ruby-sdk/issues/1124)) ([dd14116](https://github.com/context-dot-dev/context-ruby-sdk/commit/dd141167200666c0bbb658f9a83ffa8896411aae))
157
+ * **scrape:** add cache age support to byte downloads ([#1171](https://github.com/context-dot-dev/context-ruby-sdk/issues/1171)) ([9b2704f](https://github.com/context-dot-dev/context-ruby-sdk/commit/9b2704f21f51249319a1536a535b881769da0864))
158
+ * **scrape:** add CSS extraction rules to HTML scraping ([#1146](https://github.com/context-dot-dev/context-ruby-sdk/issues/1146)) ([4ed406d](https://github.com/context-dot-dev/context-ruby-sdk/commit/4ed406dfa5bf0dd2ad8e6652fb85ef9ebe37ff07))
159
+ * **scrape:** add highlights format to POST /web/scrape ([#1210](https://github.com/context-dot-dev/context-ruby-sdk/issues/1210)) ([b15aa13](https://github.com/context-dot-dev/context-ruby-sdk/commit/b15aa139b666c263900f0f058344887cf3da3e4b))
160
+ * **scrape:** add json output format to POST /web/scrape ([#1213](https://github.com/context-dot-dev/context-ruby-sdk/issues/1213)) ([03ec23b](https://github.com/context-dot-dev/context-ruby-sdk/commit/03ec23bb699bf1cc7c3662979ce2a5a0c7f0a8dd))
161
+ * **scrape:** add product extraction format to POST /web/scrape ([#1212](https://github.com/context-dot-dev/context-ruby-sdk/issues/1212)) ([cf6a8ca](https://github.com/context-dot-dev/context-ruby-sdk/commit/cf6a8caaf6c4d913847d034aef557bdb1d5622cf))
162
+ * **scrape:** add unified scrape API ([#1182](https://github.com/context-dot-dev/context-ruby-sdk/issues/1182)) ([f96de1a](https://github.com/context-dot-dev/context-ruby-sdk/commit/f96de1aceca6305f47851701708cba674ed5c30b))
163
+ * **scrape:** align timeout options and public SDK methods ([#1207](https://github.com/context-dot-dev/context-ruby-sdk/issues/1207)) ([f1f8442](https://github.com/context-dot-dev/context-ruby-sdk/commit/f1f84420192e0b686f973187d2efdadd4a1509cd))
164
+ * **scrape:** support country for image scraping ([#1172](https://github.com/context-dot-dev/context-ruby-sdk/issues/1172)) ([9b2704f](https://github.com/context-dot-dev/context-ruby-sdk/commit/9b2704f21f51249319a1536a535b881769da0864))
165
+ * **scrape:** support custom screenshot headers ([#1169](https://github.com/context-dot-dev/context-ruby-sdk/issues/1169)) ([ea364f2](https://github.com/context-dot-dev/context-ruby-sdk/commit/ea364f242b9120982ee69006305a1929464d4dfe))
166
+ * **scrape:** support waitForMs for byte downloads ([#1170](https://github.com/context-dot-dev/context-ruby-sdk/issues/1170)) ([267301b](https://github.com/context-dot-dev/context-ruby-sdk/commit/267301b3da971db51c63102242ed0dece4ba6630))
167
+ * **sitemap:** add subdomain discovery ([5630b67](https://github.com/context-dot-dev/context-ruby-sdk/commit/5630b67ab555ab5dabd06b0ade2c4d2837f13423))
168
+ * **stlc:** configurable CI runner and private-production-repo support in workflow templates ([f1c36e9](https://github.com/context-dot-dev/context-ruby-sdk/commit/f1c36e95f04eb617aa1769ba9cd21e3dad7bc5ee))
169
+ * support setting headers via env ([e625fee](https://github.com/context-dot-dev/context-ruby-sdk/commit/e625fee97a6d4f6ab25f69447b33521cac6a896c))
170
+ * **web:** add raw bytes scraping endpoint ([#1081](https://github.com/context-dot-dev/context-ruby-sdk/issues/1081)) ([e4b2347](https://github.com/context-dot-dev/context-ruby-sdk/commit/e4b23477deab52f1822eb2e3e2bbbca6b9cf9c07))
171
+ * **web:** add URL-based scrape screenshot endpoint ([#1150](https://github.com/context-dot-dev/context-ruby-sdk/issues/1150)) ([52c8043](https://github.com/context-dot-dev/context-ruby-sdk/commit/52c80435c9c767bdb6ff782c487ada1263d9f767))
172
+ * **webhooks:** add configurable retries and manual replay ([00388ec](https://github.com/context-dot-dev/context-ruby-sdk/commit/00388ec76d375d7466c9b0d85dfe983d2a369807))
173
+ * **webhooks:** simplify delivery APIs ([fbd879e](https://github.com/context-dot-dev/context-ruby-sdk/commit/fbd879eaa0c0008cba1c3b19f1fe1accb53d8771))
174
+
175
+
176
+ ### Bug Fixes
177
+
178
+ * align path encoding with RFC 3986 section 3.3 ([2c4072d](https://github.com/context-dot-dev/context-ruby-sdk/commit/2c4072df7df531933f5352c611183b1d152e3ec2))
179
+ * **api:** guarantee search descriptions and align response types ([#1089](https://github.com/context-dot-dev/context-ruby-sdk/issues/1089)) ([7ee03fc](https://github.com/context-dot-dev/context-ruby-sdk/commit/7ee03fc233d3e975f01fd3d290defb48a6e6ad56))
180
+ * **api:** honour maxAgeMs=0 on brand retrieve, styleguide and fonts endpoints ([#998](https://github.com/context-dot-dev/context-ruby-sdk/issues/998)) ([78491ef](https://github.com/context-dot-dev/context-ruby-sdk/commit/78491ef8e43ab49074d011ce8c10e3cda5cb27db))
181
+ * **api:** lower partial scrape timeout minimum to five seconds ([#1118](https://github.com/context-dot-dev/context-ruby-sdk/issues/1118)) ([871982b](https://github.com/context-dot-dev/context-ruby-sdk/commit/871982bff814f9cb698fc59f1e07c2d87c5a6dad))
182
+ * **api:** reject timeoutMS too short for waitForMs ([e8a6725](https://github.com/context-dot-dev/context-ruby-sdk/commit/e8a67255c9354f69d632697179a4d6270a4677ee))
183
+ * **client:** elide content type header on requests without body ([f53ad05](https://github.com/context-dot-dev/context-ruby-sdk/commit/f53ad05fc7e00b2be604cc1e637998bf4ed187f5))
184
+ * **client:** send content-type header for requests with an omitted optional body ([63d0f66](https://github.com/context-dot-dev/context-ruby-sdk/commit/63d0f66c1d871786bf80989b7a8ad11b859ec12a))
185
+ * **internal:** correct multipart form field name encoding ([221d059](https://github.com/context-dot-dev/context-ruby-sdk/commit/221d0598148243acddae6c9679c949c07e1dcd7a))
186
+ * multipart encoding for file arrays ([105116f](https://github.com/context-dot-dev/context-ruby-sdk/commit/105116f48178f46bae721d32e987d684fc662dd0))
187
+ * **openapi:** strip empty-object defaults from the generated spec ([fcbb393](https://github.com/context-dot-dev/context-ruby-sdk/commit/fcbb393067fd9058bb2d443bd2a8f2a9e4b8f17c))
188
+ * **scrape:** reuse legacy caches across all output formats ([#1197](https://github.com/context-dot-dev/context-ruby-sdk/issues/1197)) ([007ad3f](https://github.com/context-dot-dev/context-ruby-sdk/commit/007ad3f81ba753e74093d5ee05dfe8df2db06be9))
189
+ * variable name typo ([10e1853](https://github.com/context-dot-dev/context-ruby-sdk/commit/10e185365b3196732fc5e0649975ab696f80e893))
190
+ * **webhooks:** format Slack webhook notifications ([#1045](https://github.com/context-dot-dev/context-ruby-sdk/issues/1045)) ([4bd0df1](https://github.com/context-dot-dev/context-ruby-sdk/commit/4bd0df1c614713a46e366ca1320942fa777452fc))
191
+
192
+
193
+ ### Chores
194
+
195
+ * **ci:** support opting out of skipping builds on metadata-only commits ([aad82ac](https://github.com/context-dot-dev/context-ruby-sdk/commit/aad82ac90dd1c55ca4db05e63b70b46abded53e3))
196
+ * configure new SDK language ([8d24989](https://github.com/context-dot-dev/context-ruby-sdk/commit/8d2498986b1358432204720208f1a9b18d0f53f0))
197
+ * **internal:** bound formatter parallelism to CPU count ([8b73d53](https://github.com/context-dot-dev/context-ruby-sdk/commit/8b73d53426ce571223386b1decabcb0bf58eaa37))
198
+ * **internal:** more robust bootstrap script ([57b2d93](https://github.com/context-dot-dev/context-ruby-sdk/commit/57b2d93877e5ceeb388679f239e21c09b087b2a1))
199
+ * **internal:** tweak CI branches ([2b124b9](https://github.com/context-dot-dev/context-ruby-sdk/commit/2b124b9fd6a5eeb81fa445afc448ce4819fc077e))
200
+ * release 2.17.1 ([eeb2a0d](https://github.com/context-dot-dev/context-ruby-sdk/commit/eeb2a0db6c069449f6c062113583657a3dfa7bdc))
201
+ * sync repo ([663ae2b](https://github.com/context-dot-dev/context-ruby-sdk/commit/663ae2b31199fd8a6b7e37161111d2c37a8d76df))
202
+ * update SDK settings ([8a92059](https://github.com/context-dot-dev/context-ruby-sdk/commit/8a920591a4a5ef301d26d19ca2a985ac7c0d8efd))
203
+ * update SDK settings ([3c49703](https://github.com/context-dot-dev/context-ruby-sdk/commit/3c49703a25e8951d07f597cc16b1abc03b248d84))
204
+
205
+ ## [2.19.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.18.0...v2.19.0) (2026-09-22)
206
+
207
+
208
+ ### Features
209
+
210
+ * **billing:** charge for 404s and skip fraud accounting ([#1152](https://github.com/context-dot-dev/context-ruby-sdk/issues/1152)) ([d1fa73e](https://github.com/context-dot-dev/context-ruby-sdk/commit/d1fa73e0809ce7acb5668f413f40b902e539fe72))
211
+ * **scrape:** add cache age support to byte downloads ([#1171](https://github.com/context-dot-dev/context-ruby-sdk/issues/1171)) ([9b2704f](https://github.com/context-dot-dev/context-ruby-sdk/commit/9b2704f21f51249319a1536a535b881769da0864))
212
+ * **scrape:** add unified scrape API ([#1182](https://github.com/context-dot-dev/context-ruby-sdk/issues/1182)) ([f96de1a](https://github.com/context-dot-dev/context-ruby-sdk/commit/f96de1aceca6305f47851701708cba674ed5c30b))
213
+ * **scrape:** align timeout options and public SDK methods ([#1207](https://github.com/context-dot-dev/context-ruby-sdk/issues/1207)) ([f1f8442](https://github.com/context-dot-dev/context-ruby-sdk/commit/f1f84420192e0b686f973187d2efdadd4a1509cd))
214
+ * **scrape:** support country for image scraping ([#1172](https://github.com/context-dot-dev/context-ruby-sdk/issues/1172)) ([9b2704f](https://github.com/context-dot-dev/context-ruby-sdk/commit/9b2704f21f51249319a1536a535b881769da0864))
215
+ * **scrape:** support custom screenshot headers ([#1169](https://github.com/context-dot-dev/context-ruby-sdk/issues/1169)) ([ea364f2](https://github.com/context-dot-dev/context-ruby-sdk/commit/ea364f242b9120982ee69006305a1929464d4dfe))
216
+ * **scrape:** support waitForMs for byte downloads ([#1170](https://github.com/context-dot-dev/context-ruby-sdk/issues/1170)) ([267301b](https://github.com/context-dot-dev/context-ruby-sdk/commit/267301b3da971db51c63102242ed0dece4ba6630))
217
+
218
+
219
+ ### Bug Fixes
220
+
221
+ * **scrape:** reuse legacy caches across all output formats ([#1197](https://github.com/context-dot-dev/context-ruby-sdk/issues/1197)) ([007ad3f](https://github.com/context-dot-dev/context-ruby-sdk/commit/007ad3f81ba753e74093d5ee05dfe8df2db06be9))
222
+
3
223
  ## [2.18.0](https://github.com/context-dot-dev/context-ruby-sdk/compare/v2.17.1...v2.18.0) (2026-09-18)
4
224
 
5
225
 
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "context.dev", "~> 2.18.0"
20
+ gem "context.dev", "~> 2.20.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -24,9 +24,6 @@ module ContextDev
24
24
  # @return [ContextDev::Resources::Web]
25
25
  attr_reader :web
26
26
 
27
- # @return [ContextDev::Resources::AI]
28
- attr_reader :ai
29
-
30
27
  # @return [ContextDev::Resources::Brand]
31
28
  attr_reader :brand
32
29
 
@@ -125,7 +122,6 @@ module ContextDev
125
122
 
126
123
  @parse = ContextDev::Resources::Parse.new(client: self)
127
124
  @web = ContextDev::Resources::Web.new(client: self)
128
- @ai = ContextDev::Resources::AI.new(client: self)
129
125
  @brand = ContextDev::Resources::Brand.new(client: self)
130
126
  @industry = ContextDev::Resources::Industry.new(client: self)
131
127
  @utility = ContextDev::Resources::Utility.new(client: self)
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Monitors#retrieve_run
6
+ class MonitorRetrieveRunParams < ContextDev::Internal::Type::BaseModel
7
+ extend ContextDev::Internal::Type::RequestParameters::Converter
8
+ include ContextDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute monitor_id
11
+ #
12
+ # @return [String]
13
+ required :monitor_id, String
14
+
15
+ # @!attribute run_id
16
+ #
17
+ # @return [String]
18
+ required :run_id, String
19
+
20
+ # @!method initialize(monitor_id:, run_id:, request_options: {})
21
+ # @param monitor_id [String]
22
+ # @param run_id [String]
23
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,232 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Monitors#retrieve_run
6
+ class MonitorRetrieveRunResponse < ContextDev::Internal::Type::BaseModel
7
+ # @!attribute id
8
+ #
9
+ # @return [String]
10
+ required :id, String
11
+
12
+ # @!attribute baseline_created
13
+ # True when this run established the monitor's initial baseline; baseline runs
14
+ # perform no change detection.
15
+ #
16
+ # @return [Boolean]
17
+ required :baseline_created, ContextDev::Internal::Type::Boolean
18
+
19
+ # @!attribute change_detected
20
+ #
21
+ # @return [Boolean]
22
+ required :change_detected, ContextDev::Internal::Type::Boolean
23
+
24
+ # @!attribute change_detection_type
25
+ #
26
+ # @return [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::ChangeDetectionType]
27
+ required :change_detection_type,
28
+ enum: -> { ContextDev::Models::MonitorRetrieveRunResponse::ChangeDetectionType }
29
+
30
+ # @!attribute credits_charged
31
+ # Credits charged for this run (0 for skipped/failed runs).
32
+ #
33
+ # @return [Integer]
34
+ required :credits_charged, Integer
35
+
36
+ # @!attribute monitor_id
37
+ #
38
+ # @return [String]
39
+ required :monitor_id, String
40
+
41
+ # @!attribute run_type
42
+ # The first run after monitor creation is a baseline run.
43
+ #
44
+ # @return [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::RunType]
45
+ required :run_type, enum: -> { ContextDev::Models::MonitorRetrieveRunResponse::RunType }
46
+
47
+ # @!attribute status
48
+ # Lifecycle status of a run. `skipped` runs never executed — see `skip_reason`
49
+ # (insufficient credits, monitor paused, or superseded by a concurrent run).
50
+ #
51
+ # @return [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::Status]
52
+ required :status, enum: -> { ContextDev::Models::MonitorRetrieveRunResponse::Status }
53
+
54
+ # @!attribute target_type
55
+ #
56
+ # @return [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::TargetType]
57
+ required :target_type, enum: -> { ContextDev::Models::MonitorRetrieveRunResponse::TargetType }
58
+
59
+ # @!attribute change_id
60
+ #
61
+ # @return [String, nil]
62
+ optional :change_id, String, nil?: true
63
+
64
+ # @!attribute completed_at
65
+ #
66
+ # @return [Time, nil]
67
+ optional :completed_at, Time, nil?: true
68
+
69
+ # @!attribute error
70
+ #
71
+ # @return [ContextDev::Models::MonitorRetrieveRunResponse::Error, nil]
72
+ optional :error, -> { ContextDev::Models::MonitorRetrieveRunResponse::Error }, nil?: true
73
+
74
+ # @!attribute skip_reason
75
+ # Why a skipped run never executed; null unless status is `skipped`.
76
+ #
77
+ # @return [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::SkipReason, nil]
78
+ optional :skip_reason, enum: -> { ContextDev::Models::MonitorRetrieveRunResponse::SkipReason }, nil?: true
79
+
80
+ # @!attribute started_at
81
+ #
82
+ # @return [Time, nil]
83
+ optional :started_at, Time, nil?: true
84
+
85
+ # @!attribute webhook_deliveries
86
+ # All webhook deliveries attempted by this run — one per subscribed event that
87
+ # fired. Omitted when no webhook was attempted, including runs created before
88
+ # event selection was added.
89
+ #
90
+ # @return [Array<ContextDev::Models::WebhookDelivery>, nil]
91
+ optional :webhook_deliveries, -> { ContextDev::Internal::Type::ArrayOf[ContextDev::WebhookDelivery] }
92
+
93
+ # @!attribute webhook_delivery
94
+ # @deprecated
95
+ #
96
+ # Deprecated: use `webhook_deliveries`, which records every attempt now that a run
97
+ # can deliver multiple events. Omitted when no webhook was attempted, including
98
+ # historical runs created before delivery tracking was added.
99
+ #
100
+ # @return [ContextDev::Models::WebhookDelivery, nil]
101
+ optional :webhook_delivery, -> { ContextDev::WebhookDelivery }
102
+
103
+ # @!attribute webhook_delivery_ids
104
+ # Webhook delivery IDs for this run.
105
+ #
106
+ # @return [Array<String>, nil]
107
+ optional :webhook_delivery_ids, ContextDev::Internal::Type::ArrayOf[String]
108
+
109
+ # @!method initialize(id:, baseline_created:, change_detected:, change_detection_type:, credits_charged:, monitor_id:, run_type:, status:, target_type:, change_id: nil, completed_at: nil, error: nil, skip_reason: nil, started_at: nil, webhook_deliveries: nil, webhook_delivery: nil, webhook_delivery_ids: nil)
110
+ # Some parameter documentations has been truncated, see
111
+ # {ContextDev::Models::MonitorRetrieveRunResponse} for more details.
112
+ #
113
+ # @param id [String]
114
+ #
115
+ # @param baseline_created [Boolean] True when this run established the monitor's initial baseline; baseline runs per
116
+ #
117
+ # @param change_detected [Boolean]
118
+ #
119
+ # @param change_detection_type [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::ChangeDetectionType]
120
+ #
121
+ # @param credits_charged [Integer] Credits charged for this run (0 for skipped/failed runs).
122
+ #
123
+ # @param monitor_id [String]
124
+ #
125
+ # @param run_type [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::RunType] The first run after monitor creation is a baseline run.
126
+ #
127
+ # @param status [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::Status] Lifecycle status of a run. `skipped` runs never executed — see `skip_reason` (in
128
+ #
129
+ # @param target_type [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::TargetType]
130
+ #
131
+ # @param change_id [String, nil]
132
+ #
133
+ # @param completed_at [Time, nil]
134
+ #
135
+ # @param error [ContextDev::Models::MonitorRetrieveRunResponse::Error, nil]
136
+ #
137
+ # @param skip_reason [Symbol, ContextDev::Models::MonitorRetrieveRunResponse::SkipReason, nil] Why a skipped run never executed; null unless status is `skipped`.
138
+ #
139
+ # @param started_at [Time, nil]
140
+ #
141
+ # @param webhook_deliveries [Array<ContextDev::Models::WebhookDelivery>] All webhook deliveries attempted by this run — one per subscribed event that fir
142
+ #
143
+ # @param webhook_delivery [ContextDev::Models::WebhookDelivery] Deprecated: use `webhook_deliveries`, which records every attempt now that a run
144
+ #
145
+ # @param webhook_delivery_ids [Array<String>] Webhook delivery IDs for this run.
146
+
147
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#change_detection_type
148
+ module ChangeDetectionType
149
+ extend ContextDev::Internal::Type::Enum
150
+
151
+ EXACT = :exact
152
+ SEMANTIC = :semantic
153
+
154
+ # @!method self.values
155
+ # @return [Array<Symbol>]
156
+ end
157
+
158
+ # The first run after monitor creation is a baseline run.
159
+ #
160
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#run_type
161
+ module RunType
162
+ extend ContextDev::Internal::Type::Enum
163
+
164
+ BASELINE = :baseline
165
+ SCHEDULED = :scheduled
166
+
167
+ # @!method self.values
168
+ # @return [Array<Symbol>]
169
+ end
170
+
171
+ # Lifecycle status of a run. `skipped` runs never executed — see `skip_reason`
172
+ # (insufficient credits, monitor paused, or superseded by a concurrent run).
173
+ #
174
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#status
175
+ module Status
176
+ extend ContextDev::Internal::Type::Enum
177
+
178
+ QUEUED = :queued
179
+ RUNNING = :running
180
+ COMPLETED = :completed
181
+ FAILED = :failed
182
+ SKIPPED = :skipped
183
+
184
+ # @!method self.values
185
+ # @return [Array<Symbol>]
186
+ end
187
+
188
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#target_type
189
+ module TargetType
190
+ extend ContextDev::Internal::Type::Enum
191
+
192
+ PAGE = :page
193
+ SITEMAP = :sitemap
194
+ EXTRACT = :extract
195
+
196
+ # @!method self.values
197
+ # @return [Array<Symbol>]
198
+ end
199
+
200
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#error
201
+ class Error < ContextDev::Internal::Type::BaseModel
202
+ # @!attribute code
203
+ #
204
+ # @return [String]
205
+ required :code, String
206
+
207
+ # @!attribute message
208
+ #
209
+ # @return [String]
210
+ required :message, String
211
+
212
+ # @!method initialize(code:, message:)
213
+ # @param code [String]
214
+ # @param message [String]
215
+ end
216
+
217
+ # Why a skipped run never executed; null unless status is `skipped`.
218
+ #
219
+ # @see ContextDev::Models::MonitorRetrieveRunResponse#skip_reason
220
+ module SkipReason
221
+ extend ContextDev::Internal::Type::Enum
222
+
223
+ INSUFFICIENT_CREDITS = :insufficient_credits
224
+ MONITOR_PAUSED = :monitor_paused
225
+ SUPERSEDED = :superseded
226
+
227
+ # @!method self.values
228
+ # @return [Array<Symbol>]
229
+ end
230
+ end
231
+ end
232
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ContextDev
4
+ module Models
5
+ # @see ContextDev::Resources::Monitors#rotate_webhook_secret
6
+ class MonitorRotateWebhookSecretParams < ContextDev::Internal::Type::BaseModel
7
+ extend ContextDev::Internal::Type::RequestParameters::Converter
8
+ include ContextDev::Internal::Type::RequestParameters
9
+
10
+ # @!attribute monitor_id
11
+ #
12
+ # @return [String]
13
+ required :monitor_id, String
14
+
15
+ # @!method initialize(monitor_id:, request_options: {})
16
+ # @param monitor_id [String]
17
+ # @param request_options [ContextDev::RequestOptions, Hash{Symbol=>Object}]
18
+ end
19
+ end
20
+ end