context.dev 1.35.0 → 2.0.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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +35 -0
  3. data/README.md +24 -17
  4. data/lib/context_dev/client.rb +7 -0
  5. data/lib/context_dev/models/brand_retrieve_params.rb +1036 -174
  6. data/lib/context_dev/models/monitor_create_params.rb +361 -0
  7. data/lib/context_dev/models/monitor_create_response.rb +484 -0
  8. data/lib/context_dev/models/monitor_delete_params.rb +20 -0
  9. data/lib/context_dev/models/monitor_delete_response.rb +22 -0
  10. data/lib/context_dev/models/monitor_list_account_changes_params.rb +93 -0
  11. data/lib/context_dev/models/monitor_list_account_changes_response.rb +199 -0
  12. data/lib/context_dev/models/monitor_list_account_runs_params.rb +55 -0
  13. data/lib/context_dev/models/monitor_list_account_runs_response.rb +227 -0
  14. data/lib/context_dev/models/monitor_list_changes_params.rb +57 -0
  15. data/lib/context_dev/models/monitor_list_changes_response.rb +198 -0
  16. data/lib/context_dev/models/monitor_list_params.rb +161 -0
  17. data/lib/context_dev/models/monitor_list_response.rb +507 -0
  18. data/lib/context_dev/models/monitor_list_runs_params.rb +62 -0
  19. data/lib/context_dev/models/monitor_list_runs_response.rb +227 -0
  20. data/lib/context_dev/models/monitor_retrieve_change_params.rb +20 -0
  21. data/lib/context_dev/models/monitor_retrieve_change_response.rb +271 -0
  22. data/lib/context_dev/models/monitor_retrieve_params.rb +20 -0
  23. data/lib/context_dev/models/monitor_retrieve_response.rb +484 -0
  24. data/lib/context_dev/models/monitor_run_params.rb +20 -0
  25. data/lib/context_dev/models/monitor_run_response.rb +35 -0
  26. data/lib/context_dev/models/monitor_update_params.rb +368 -0
  27. data/lib/context_dev/models/monitor_update_response.rb +484 -0
  28. data/lib/context_dev/models/utility_prefetch_params.rb +70 -6
  29. data/lib/context_dev/models/utility_prefetch_response.rb +23 -1
  30. data/lib/context_dev/models/web_extract_response.rb +17 -1
  31. data/lib/context_dev/models/web_extract_styleguide_params.rb +22 -1
  32. data/lib/context_dev/models/web_screenshot_params.rb +245 -1
  33. data/lib/context_dev/models/web_search_params.rb +270 -3
  34. data/lib/context_dev/models/web_web_crawl_md_params.rb +236 -1
  35. data/lib/context_dev/models/web_web_scrape_html_params.rb +234 -1
  36. data/lib/context_dev/models/web_web_scrape_html_response.rb +10 -2
  37. data/lib/context_dev/models/web_web_scrape_images_params.rb +12 -1
  38. data/lib/context_dev/models/web_web_scrape_md_params.rb +234 -1
  39. data/lib/context_dev/models.rb +20 -12
  40. data/lib/context_dev/resources/ai.rb +0 -33
  41. data/lib/context_dev/resources/brand.rb +7 -204
  42. data/lib/context_dev/resources/monitors.rb +352 -0
  43. data/lib/context_dev/resources/utility.rb +9 -35
  44. data/lib/context_dev/resources/web.rb +36 -8
  45. data/lib/context_dev/version.rb +1 -1
  46. data/lib/context_dev.rb +23 -14
  47. data/rbi/context_dev/client.rbi +6 -0
  48. data/rbi/context_dev/models/brand_retrieve_params.rbi +3792 -679
  49. data/rbi/context_dev/models/monitor_create_params.rbi +640 -0
  50. data/rbi/context_dev/models/monitor_create_response.rbi +820 -0
  51. data/rbi/context_dev/models/monitor_delete_params.rbi +35 -0
  52. data/rbi/context_dev/models/monitor_delete_response.rbi +29 -0
  53. data/rbi/context_dev/models/monitor_list_account_changes_params.rbi +211 -0
  54. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +376 -0
  55. data/rbi/context_dev/models/monitor_list_account_runs_params.rbi +125 -0
  56. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +464 -0
  57. data/rbi/context_dev/models/monitor_list_changes_params.rbi +91 -0
  58. data/rbi/context_dev/models/monitor_list_changes_response.rbi +372 -0
  59. data/rbi/context_dev/models/monitor_list_params.rbi +332 -0
  60. data/rbi/context_dev/models/monitor_list_response.rbi +885 -0
  61. data/rbi/context_dev/models/monitor_list_runs_params.rbi +125 -0
  62. data/rbi/context_dev/models/monitor_list_runs_response.rbi +455 -0
  63. data/rbi/context_dev/models/monitor_retrieve_change_params.rbi +38 -0
  64. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +478 -0
  65. data/rbi/context_dev/models/monitor_retrieve_params.rbi +38 -0
  66. data/rbi/context_dev/models/monitor_retrieve_response.rbi +828 -0
  67. data/rbi/context_dev/models/monitor_run_params.rbi +35 -0
  68. data/rbi/context_dev/models/monitor_run_response.rbi +48 -0
  69. data/rbi/context_dev/models/monitor_update_params.rbi +680 -0
  70. data/rbi/context_dev/models/monitor_update_response.rbi +820 -0
  71. data/rbi/context_dev/models/utility_prefetch_params.rbi +129 -7
  72. data/rbi/context_dev/models/utility_prefetch_response.rbi +55 -3
  73. data/rbi/context_dev/models/web_extract_response.rbi +10 -0
  74. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +59 -0
  75. data/rbi/context_dev/models/web_screenshot_params.rbi +295 -0
  76. data/rbi/context_dev/models/web_search_params.rbi +288 -2
  77. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +260 -0
  78. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +465 -0
  79. data/rbi/context_dev/models/web_web_scrape_html_response.rbi +29 -3
  80. data/rbi/context_dev/models/web_web_scrape_images_params.rbi +17 -0
  81. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +259 -0
  82. data/rbi/context_dev/models.rbi +23 -15
  83. data/rbi/context_dev/resources/ai.rbi +0 -28
  84. data/rbi/context_dev/resources/brand.rbi +13 -228
  85. data/rbi/context_dev/resources/monitors.rbi +286 -0
  86. data/rbi/context_dev/resources/utility.rbi +14 -29
  87. data/rbi/context_dev/resources/web.rbi +56 -1
  88. data/sig/context_dev/client.rbs +2 -0
  89. data/sig/context_dev/models/brand_retrieve_params.rbs +1560 -281
  90. data/sig/context_dev/models/monitor_create_params.rbs +311 -0
  91. data/sig/context_dev/models/monitor_create_response.rbs +369 -0
  92. data/sig/context_dev/models/monitor_delete_params.rbs +23 -0
  93. data/sig/context_dev/models/monitor_delete_response.rbs +15 -0
  94. data/sig/context_dev/models/monitor_list_account_changes_params.rbs +104 -0
  95. data/sig/context_dev/models/monitor_list_account_changes_response.rbs +176 -0
  96. data/sig/context_dev/models/monitor_list_account_runs_params.rbs +58 -0
  97. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +184 -0
  98. data/sig/context_dev/models/monitor_list_changes_params.rbs +61 -0
  99. data/sig/context_dev/models/monitor_list_changes_response.rbs +176 -0
  100. data/sig/context_dev/models/monitor_list_params.rbs +160 -0
  101. data/sig/context_dev/models/monitor_list_response.rbs +396 -0
  102. data/sig/context_dev/models/monitor_list_runs_params.rbs +63 -0
  103. data/sig/context_dev/models/monitor_list_runs_response.rbs +184 -0
  104. data/sig/context_dev/models/monitor_retrieve_change_params.rbs +23 -0
  105. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +228 -0
  106. data/sig/context_dev/models/monitor_retrieve_params.rbs +23 -0
  107. data/sig/context_dev/models/monitor_retrieve_response.rbs +369 -0
  108. data/sig/context_dev/models/monitor_run_params.rbs +23 -0
  109. data/sig/context_dev/models/monitor_run_response.rbs +18 -0
  110. data/sig/context_dev/models/monitor_update_params.rbs +331 -0
  111. data/sig/context_dev/models/monitor_update_response.rbs +369 -0
  112. data/sig/context_dev/models/utility_prefetch_params.rbs +52 -4
  113. data/sig/context_dev/models/utility_prefetch_response.rbs +22 -3
  114. data/sig/context_dev/models/web_extract_response.rbs +5 -0
  115. data/sig/context_dev/models/web_extract_styleguide_params.rbs +20 -0
  116. data/sig/context_dev/models/web_screenshot_params.rbs +446 -0
  117. data/sig/context_dev/models/web_search_params.rbs +503 -0
  118. data/sig/context_dev/models/web_web_crawl_md_params.rbs +433 -0
  119. data/sig/context_dev/models/web_web_scrape_html_params.rbs +433 -0
  120. data/sig/context_dev/models/web_web_scrape_html_response.rbs +8 -0
  121. data/sig/context_dev/models/web_web_scrape_images_params.rbs +7 -0
  122. data/sig/context_dev/models/web_web_scrape_md_params.rbs +433 -0
  123. data/sig/context_dev/models.rbs +20 -12
  124. data/sig/context_dev/resources/ai.rbs +0 -8
  125. data/sig/context_dev/resources/brand.rbs +1 -56
  126. data/sig/context_dev/resources/monitors.rbs +101 -0
  127. data/sig/context_dev/resources/utility.rbs +2 -7
  128. data/sig/context_dev/resources/web.rbs +12 -0
  129. metadata +71 -44
  130. data/lib/context_dev/models/ai_ai_query_params.rb +0 -235
  131. data/lib/context_dev/models/ai_ai_query_response.rb +0 -133
  132. data/lib/context_dev/models/brand_identify_from_transaction_params.rb +0 -474
  133. data/lib/context_dev/models/brand_identify_from_transaction_response.rb +0 -1074
  134. data/lib/context_dev/models/brand_retrieve_by_email_params.rb +0 -195
  135. data/lib/context_dev/models/brand_retrieve_by_email_response.rb +0 -1071
  136. data/lib/context_dev/models/brand_retrieve_by_isin_params.rb +0 -195
  137. data/lib/context_dev/models/brand_retrieve_by_isin_response.rb +0 -1070
  138. data/lib/context_dev/models/brand_retrieve_by_name_params.rb +0 -452
  139. data/lib/context_dev/models/brand_retrieve_by_name_response.rb +0 -1070
  140. data/lib/context_dev/models/brand_retrieve_by_ticker_params.rb +0 -283
  141. data/lib/context_dev/models/brand_retrieve_by_ticker_response.rb +0 -1072
  142. data/lib/context_dev/models/utility_prefetch_by_email_params.rb +0 -37
  143. data/lib/context_dev/models/utility_prefetch_by_email_response.rb +0 -68
  144. data/rbi/context_dev/models/ai_ai_query_params.rbi +0 -504
  145. data/rbi/context_dev/models/ai_ai_query_response.rbi +0 -267
  146. data/rbi/context_dev/models/brand_identify_from_transaction_params.rbi +0 -2020
  147. data/rbi/context_dev/models/brand_identify_from_transaction_response.rbi +0 -3515
  148. data/rbi/context_dev/models/brand_retrieve_by_email_params.rbi +0 -743
  149. data/rbi/context_dev/models/brand_retrieve_by_email_response.rbi +0 -3511
  150. data/rbi/context_dev/models/brand_retrieve_by_isin_params.rbi +0 -743
  151. data/rbi/context_dev/models/brand_retrieve_by_isin_response.rbi +0 -3510
  152. data/rbi/context_dev/models/brand_retrieve_by_name_params.rbi +0 -1982
  153. data/rbi/context_dev/models/brand_retrieve_by_name_response.rbi +0 -3510
  154. data/rbi/context_dev/models/brand_retrieve_by_ticker_params.rbi +0 -1153
  155. data/rbi/context_dev/models/brand_retrieve_by_ticker_response.rbi +0 -3512
  156. data/rbi/context_dev/models/utility_prefetch_by_email_params.rbi +0 -65
  157. data/rbi/context_dev/models/utility_prefetch_by_email_response.rbi +0 -132
  158. data/sig/context_dev/models/ai_ai_query_params.rbs +0 -218
  159. data/sig/context_dev/models/ai_ai_query_response.rbs +0 -121
  160. data/sig/context_dev/models/brand_identify_from_transaction_params.rbs +0 -822
  161. data/sig/context_dev/models/brand_identify_from_transaction_response.rbs +0 -1441
  162. data/sig/context_dev/models/brand_retrieve_by_email_params.rbs +0 -305
  163. data/sig/context_dev/models/brand_retrieve_by_email_response.rbs +0 -1441
  164. data/sig/context_dev/models/brand_retrieve_by_isin_params.rbs +0 -305
  165. data/sig/context_dev/models/brand_retrieve_by_isin_response.rbs +0 -1441
  166. data/sig/context_dev/models/brand_retrieve_by_name_params.rbs +0 -801
  167. data/sig/context_dev/models/brand_retrieve_by_name_response.rbs +0 -1441
  168. data/sig/context_dev/models/brand_retrieve_by_ticker_params.rbs +0 -467
  169. data/sig/context_dev/models/brand_retrieve_by_ticker_response.rbs +0 -1441
  170. data/sig/context_dev/models/utility_prefetch_by_email_params.rbs +0 -30
  171. data/sig/context_dev/models/utility_prefetch_by_email_response.rbs +0 -64
@@ -14,9 +14,20 @@ module ContextDev
14
14
  )
15
15
  end
16
16
 
17
- # Domain name to prefetch brand data for
18
- sig { returns(String) }
19
- attr_accessor :domain
17
+ # Identifier of the brand to prefetch. Provide exactly one of domain or email.
18
+ sig do
19
+ returns(
20
+ T.any(
21
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchDomainIdentifier,
22
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchEmailIdentifier
23
+ )
24
+ )
25
+ end
26
+ attr_accessor :identifier
27
+
28
+ # What to prefetch. Currently only 'brand' is supported.
29
+ sig { returns(ContextDev::UtilityPrefetchParams::Type::OrSymbol) }
30
+ attr_accessor :type
20
31
 
21
32
  # Optional timeout in milliseconds for the request. If the request takes longer
22
33
  # than this value, it will be aborted with a 408 status code. Maximum allowed
@@ -29,14 +40,21 @@ module ContextDev
29
40
 
30
41
  sig do
31
42
  params(
32
- domain: String,
43
+ identifier:
44
+ T.any(
45
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchDomainIdentifier::OrHash,
46
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchEmailIdentifier::OrHash
47
+ ),
48
+ type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
33
49
  timeout_ms: Integer,
34
50
  request_options: ContextDev::RequestOptions::OrHash
35
51
  ).returns(T.attached_class)
36
52
  end
37
53
  def self.new(
38
- # Domain name to prefetch brand data for
39
- domain:,
54
+ # Identifier of the brand to prefetch. Provide exactly one of domain or email.
55
+ identifier:,
56
+ # What to prefetch. Currently only 'brand' is supported.
57
+ type:,
40
58
  # Optional timeout in milliseconds for the request. If the request takes longer
41
59
  # than this value, it will be aborted with a 408 status code. Maximum allowed
42
60
  # value is 300000ms (5 minutes).
@@ -48,7 +66,12 @@ module ContextDev
48
66
  sig do
49
67
  override.returns(
50
68
  {
51
- domain: String,
69
+ identifier:
70
+ T.any(
71
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchDomainIdentifier,
72
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchEmailIdentifier
73
+ ),
74
+ type: ContextDev::UtilityPrefetchParams::Type::OrSymbol,
52
75
  timeout_ms: Integer,
53
76
  request_options: ContextDev::RequestOptions
54
77
  }
@@ -56,6 +79,105 @@ module ContextDev
56
79
  end
57
80
  def to_hash
58
81
  end
82
+
83
+ # Identifier of the brand to prefetch. Provide exactly one of domain or email.
84
+ module Identifier
85
+ extend ContextDev::Internal::Type::Union
86
+
87
+ Variants =
88
+ T.type_alias do
89
+ T.any(
90
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchDomainIdentifier,
91
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchEmailIdentifier
92
+ )
93
+ end
94
+
95
+ class UtilityPrefetchDomainIdentifier < ContextDev::Internal::Type::BaseModel
96
+ OrHash =
97
+ T.type_alias do
98
+ T.any(
99
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchDomainIdentifier,
100
+ ContextDev::Internal::AnyHash
101
+ )
102
+ end
103
+
104
+ # Domain name to prefetch brand data for
105
+ sig { returns(String) }
106
+ attr_accessor :domain
107
+
108
+ # Prefetch brand data by domain.
109
+ sig { params(domain: String).returns(T.attached_class) }
110
+ def self.new(
111
+ # Domain name to prefetch brand data for
112
+ domain:
113
+ )
114
+ end
115
+
116
+ sig { override.returns({ domain: String }) }
117
+ def to_hash
118
+ end
119
+ end
120
+
121
+ class UtilityPrefetchEmailIdentifier < ContextDev::Internal::Type::BaseModel
122
+ OrHash =
123
+ T.type_alias do
124
+ T.any(
125
+ ContextDev::UtilityPrefetchParams::Identifier::UtilityPrefetchEmailIdentifier,
126
+ ContextDev::Internal::AnyHash
127
+ )
128
+ end
129
+
130
+ # Email address to prefetch brand data for. The domain will be extracted from the
131
+ # email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email
132
+ # addresses are not allowed.
133
+ sig { returns(String) }
134
+ attr_accessor :email
135
+
136
+ # Prefetch brand data by email. The domain will be extracted and validated.
137
+ sig { params(email: String).returns(T.attached_class) }
138
+ def self.new(
139
+ # Email address to prefetch brand data for. The domain will be extracted from the
140
+ # email. Free email providers (gmail.com, yahoo.com, etc.) and disposable email
141
+ # addresses are not allowed.
142
+ email:
143
+ )
144
+ end
145
+
146
+ sig { override.returns({ email: String }) }
147
+ def to_hash
148
+ end
149
+ end
150
+
151
+ sig do
152
+ override.returns(
153
+ T::Array[ContextDev::UtilityPrefetchParams::Identifier::Variants]
154
+ )
155
+ end
156
+ def self.variants
157
+ end
158
+ end
159
+
160
+ # What to prefetch. Currently only 'brand' is supported.
161
+ module Type
162
+ extend ContextDev::Internal::Type::Enum
163
+
164
+ TaggedSymbol =
165
+ T.type_alias do
166
+ T.all(Symbol, ContextDev::UtilityPrefetchParams::Type)
167
+ end
168
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
169
+
170
+ BRAND =
171
+ T.let(:brand, ContextDev::UtilityPrefetchParams::Type::TaggedSymbol)
172
+
173
+ sig do
174
+ override.returns(
175
+ T::Array[ContextDev::UtilityPrefetchParams::Type::TaggedSymbol]
176
+ )
177
+ end
178
+ def self.values
179
+ end
180
+ end
59
181
  end
60
182
  end
61
183
  end
@@ -49,13 +49,32 @@ module ContextDev
49
49
  sig { params(status: String).void }
50
50
  attr_writer :status
51
51
 
52
+ # The type of prefetch that was queued, echoed from the request (currently always
53
+ # 'brand')
54
+ sig do
55
+ returns(
56
+ T.nilable(
57
+ ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
58
+ )
59
+ )
60
+ end
61
+ attr_reader :type
62
+
63
+ sig do
64
+ params(
65
+ type: ContextDev::Models::UtilityPrefetchResponse::Type::OrSymbol
66
+ ).void
67
+ end
68
+ attr_writer :type
69
+
52
70
  sig do
53
71
  params(
54
72
  domain: String,
55
73
  key_metadata:
56
74
  ContextDev::Models::UtilityPrefetchResponse::KeyMetadata::OrHash,
57
75
  message: String,
58
- status: String
76
+ status: String,
77
+ type: ContextDev::Models::UtilityPrefetchResponse::Type::OrSymbol
59
78
  ).returns(T.attached_class)
60
79
  end
61
80
  def self.new(
@@ -67,7 +86,10 @@ module ContextDev
67
86
  # Success message
68
87
  message: nil,
69
88
  # Status of the response, e.g., 'ok'
70
- status: nil
89
+ status: nil,
90
+ # The type of prefetch that was queued, echoed from the request (currently always
91
+ # 'brand')
92
+ type: nil
71
93
  )
72
94
  end
73
95
 
@@ -78,7 +100,9 @@ module ContextDev
78
100
  key_metadata:
79
101
  ContextDev::Models::UtilityPrefetchResponse::KeyMetadata,
80
102
  message: String,
81
- status: String
103
+ status: String,
104
+ type:
105
+ ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
82
106
  }
83
107
  )
84
108
  end
@@ -125,6 +149,34 @@ module ContextDev
125
149
  def to_hash
126
150
  end
127
151
  end
152
+
153
+ # The type of prefetch that was queued, echoed from the request (currently always
154
+ # 'brand')
155
+ module Type
156
+ extend ContextDev::Internal::Type::Enum
157
+
158
+ TaggedSymbol =
159
+ T.type_alias do
160
+ T.all(Symbol, ContextDev::Models::UtilityPrefetchResponse::Type)
161
+ end
162
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
163
+
164
+ BRAND =
165
+ T.let(
166
+ :brand,
167
+ ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
168
+ )
169
+
170
+ sig do
171
+ override.returns(
172
+ T::Array[
173
+ ContextDev::Models::UtilityPrefetchResponse::Type::TaggedSymbol
174
+ ]
175
+ )
176
+ end
177
+ def self.values
178
+ end
179
+ end
128
180
  end
129
181
  end
130
182
  end
@@ -106,6 +106,11 @@ module ContextDev
106
106
  sig { returns(Integer) }
107
107
  attr_accessor :max_crawl_depth
108
108
 
109
+ # Number of crawled pages excluded because they were anti-bot challenges, error
110
+ # pages, or parked-domain placeholders.
111
+ sig { returns(Integer) }
112
+ attr_accessor :num_blocked
113
+
109
114
  sig { returns(Integer) }
110
115
  attr_accessor :num_failed
111
116
 
@@ -121,6 +126,7 @@ module ContextDev
121
126
  sig do
122
127
  params(
123
128
  max_crawl_depth: Integer,
129
+ num_blocked: Integer,
124
130
  num_failed: Integer,
125
131
  num_skipped: Integer,
126
132
  num_succeeded: Integer,
@@ -129,6 +135,9 @@ module ContextDev
129
135
  end
130
136
  def self.new(
131
137
  max_crawl_depth:,
138
+ # Number of crawled pages excluded because they were anti-bot challenges, error
139
+ # pages, or parked-domain placeholders.
140
+ num_blocked:,
132
141
  num_failed:,
133
142
  num_skipped:,
134
143
  num_succeeded:,
@@ -140,6 +149,7 @@ module ContextDev
140
149
  override.returns(
141
150
  {
142
151
  max_crawl_depth: Integer,
152
+ num_blocked: Integer,
143
153
  num_failed: Integer,
144
154
  num_skipped: Integer,
145
155
  num_succeeded: Integer,
@@ -14,6 +14,25 @@ module ContextDev
14
14
  )
15
15
  end
16
16
 
17
+ # Optional browser color scheme to emulate for websites that respond to
18
+ # prefers-color-scheme. This value is part of the styleguide cache key.
19
+ sig do
20
+ returns(
21
+ T.nilable(
22
+ ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol
23
+ )
24
+ )
25
+ end
26
+ attr_reader :color_scheme
27
+
28
+ sig do
29
+ params(
30
+ color_scheme:
31
+ ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol
32
+ ).void
33
+ end
34
+ attr_writer :color_scheme
35
+
17
36
  # A specific URL to fetch the styleguide from directly, bypassing domain
18
37
  # resolution (e.g., 'https://example.com/design-system'). When provided, the
19
38
  # styleguide is extracted from this exact URL. You must provide either 'domain' or
@@ -54,6 +73,8 @@ module ContextDev
54
73
 
55
74
  sig do
56
75
  params(
76
+ color_scheme:
77
+ ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol,
57
78
  direct_url: String,
58
79
  domain: String,
59
80
  max_age_ms: Integer,
@@ -62,6 +83,9 @@ module ContextDev
62
83
  ).returns(T.attached_class)
63
84
  end
64
85
  def self.new(
86
+ # Optional browser color scheme to emulate for websites that respond to
87
+ # prefers-color-scheme. This value is part of the styleguide cache key.
88
+ color_scheme: nil,
65
89
  # A specific URL to fetch the styleguide from directly, bypassing domain
66
90
  # resolution (e.g., 'https://example.com/design-system'). When provided, the
67
91
  # styleguide is extracted from this exact URL. You must provide either 'domain' or
@@ -87,6 +111,8 @@ module ContextDev
87
111
  sig do
88
112
  override.returns(
89
113
  {
114
+ color_scheme:
115
+ ContextDev::WebExtractStyleguideParams::ColorScheme::OrSymbol,
90
116
  direct_url: String,
91
117
  domain: String,
92
118
  max_age_ms: Integer,
@@ -97,6 +123,39 @@ module ContextDev
97
123
  end
98
124
  def to_hash
99
125
  end
126
+
127
+ # Optional browser color scheme to emulate for websites that respond to
128
+ # prefers-color-scheme. This value is part of the styleguide cache key.
129
+ module ColorScheme
130
+ extend ContextDev::Internal::Type::Enum
131
+
132
+ TaggedSymbol =
133
+ T.type_alias do
134
+ T.all(Symbol, ContextDev::WebExtractStyleguideParams::ColorScheme)
135
+ end
136
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
137
+
138
+ LIGHT =
139
+ T.let(
140
+ :light,
141
+ ContextDev::WebExtractStyleguideParams::ColorScheme::TaggedSymbol
142
+ )
143
+ DARK =
144
+ T.let(
145
+ :dark,
146
+ ContextDev::WebExtractStyleguideParams::ColorScheme::TaggedSymbol
147
+ )
148
+
149
+ sig do
150
+ override.returns(
151
+ T::Array[
152
+ ContextDev::WebExtractStyleguideParams::ColorScheme::TaggedSymbol
153
+ ]
154
+ )
155
+ end
156
+ def self.values
157
+ end
158
+ end
100
159
  end
101
160
  end
102
161
  end