context.dev 2.8.0 → 2.9.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +5 -0
  5. data/lib/context_dev/models/batch_delete_params.rb +22 -0
  6. data/lib/context_dev/models/batch_delete_response.rb +60 -0
  7. data/lib/context_dev/models/batch_get_results_response.rb +13 -1
  8. data/lib/context_dev/models/batch_list_response.rb +13 -4
  9. data/lib/context_dev/models/batch_retrieve_response.rb +13 -4
  10. data/lib/context_dev/models/batch_submit_params.rb +2352 -26
  11. data/lib/context_dev/models/batch_submit_response.rb +125 -531
  12. data/lib/context_dev/models/brand_retrieve_response.rb +50 -1
  13. data/lib/context_dev/models/brand_search_response.rb +3 -2
  14. data/lib/context_dev/models/crawl_controls.rb +21 -15
  15. data/lib/context_dev/models/parse_handle_params.rb +11 -9
  16. data/lib/context_dev/models/person_enrich_params.rb +176 -0
  17. data/lib/context_dev/models/person_enrich_response.rb +581 -0
  18. data/lib/context_dev/models/web_search_response.rb +1 -0
  19. data/lib/context_dev/models/web_web_crawl_md_params.rb +5 -4
  20. data/lib/context_dev/models/web_web_scrape_html_params.rb +11 -9
  21. data/lib/context_dev/models/web_web_scrape_md_params.rb +11 -9
  22. data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +11 -1
  23. data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +3 -2
  24. data/lib/context_dev/models.rb +4 -0
  25. data/lib/context_dev/resources/batch.rb +33 -7
  26. data/lib/context_dev/resources/brand.rb +2 -1
  27. data/lib/context_dev/resources/parse.rb +1 -1
  28. data/lib/context_dev/resources/people.rb +56 -0
  29. data/lib/context_dev/resources/web.rb +21 -2
  30. data/lib/context_dev/version.rb +1 -1
  31. data/lib/context_dev.rb +5 -0
  32. data/rbi/context_dev/client.rbi +4 -0
  33. data/rbi/context_dev/models/batch_delete_params.rbi +40 -0
  34. data/rbi/context_dev/models/batch_delete_response.rbi +116 -0
  35. data/rbi/context_dev/models/batch_get_results_response.rbi +14 -1
  36. data/rbi/context_dev/models/batch_list_response.rbi +24 -8
  37. data/rbi/context_dev/models/batch_retrieve_response.rbi +24 -8
  38. data/rbi/context_dev/models/batch_submit_params.rbi +6955 -44
  39. data/rbi/context_dev/models/batch_submit_response.rbi +184 -1151
  40. data/rbi/context_dev/models/brand_retrieve_response.rbi +152 -0
  41. data/rbi/context_dev/models/brand_search_response.rbi +4 -2
  42. data/rbi/context_dev/models/crawl_controls.rbi +22 -28
  43. data/rbi/context_dev/models/parse_handle_params.rbi +15 -12
  44. data/rbi/context_dev/models/person_enrich_params.rbi +332 -0
  45. data/rbi/context_dev/models/person_enrich_response.rbi +1208 -0
  46. data/rbi/context_dev/models/web_search_response.rbi +5 -0
  47. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +8 -6
  48. data/rbi/context_dev/models/web_web_scrape_html_params.rbi +15 -12
  49. data/rbi/context_dev/models/web_web_scrape_md_params.rbi +15 -12
  50. data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +15 -0
  51. data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +4 -2
  52. data/rbi/context_dev/models.rbi +4 -0
  53. data/rbi/context_dev/resources/batch.rbi +32 -10
  54. data/rbi/context_dev/resources/brand.rbi +2 -1
  55. data/rbi/context_dev/resources/parse.rbi +5 -5
  56. data/rbi/context_dev/resources/people.rbi +47 -0
  57. data/rbi/context_dev/resources/web.rbi +23 -1
  58. data/sig/context_dev/client.rbs +2 -0
  59. data/sig/context_dev/models/batch_delete_params.rbs +23 -0
  60. data/sig/context_dev/models/batch_delete_response.rbs +57 -0
  61. data/sig/context_dev/models/batch_get_results_response.rbs +9 -2
  62. data/sig/context_dev/models/batch_list_response.rbs +16 -2
  63. data/sig/context_dev/models/batch_retrieve_response.rbs +16 -2
  64. data/sig/context_dev/models/batch_submit_params.rbs +2756 -15
  65. data/sig/context_dev/models/batch_submit_response.rbs +78 -466
  66. data/sig/context_dev/models/brand_retrieve_response.rbs +62 -0
  67. data/sig/context_dev/models/crawl_controls.rbs +16 -16
  68. data/sig/context_dev/models/person_enrich_params.rbs +199 -0
  69. data/sig/context_dev/models/person_enrich_response.rbs +607 -0
  70. data/sig/context_dev/models/web_search_response.rbs +2 -0
  71. data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +7 -0
  72. data/sig/context_dev/models.rbs +4 -0
  73. data/sig/context_dev/resources/batch.rbs +8 -2
  74. data/sig/context_dev/resources/people.rbs +19 -0
  75. data/sig/context_dev/resources/web.rbs +1 -0
  76. metadata +17 -2
@@ -179,6 +179,24 @@ module ContextDev
179
179
  sig { params(email: String).void }
180
180
  attr_writer :email
181
181
 
182
+ # Employee headcount information for the brand (will be null if unknown)
183
+ sig do
184
+ returns(
185
+ T.nilable(
186
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees
187
+ )
188
+ )
189
+ end
190
+ attr_reader :employees
191
+
192
+ sig do
193
+ params(
194
+ employees:
195
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::OrHash
196
+ ).void
197
+ end
198
+ attr_writer :employees
199
+
182
200
  # Industry classification information for the brand
183
201
  sig do
184
202
  returns(
@@ -324,6 +342,8 @@ module ContextDev
324
342
  description: String,
325
343
  domain: String,
326
344
  email: String,
345
+ employees:
346
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::OrHash,
327
347
  industries:
328
348
  ContextDev::Models::BrandRetrieveResponse::Brand::Industries::OrHash,
329
349
  is_nsfw: T::Boolean,
@@ -361,6 +381,8 @@ module ContextDev
361
381
  domain: nil,
362
382
  # Company email address
363
383
  email: nil,
384
+ # Employee headcount information for the brand (will be null if unknown)
385
+ employees: nil,
364
386
  # Industry classification information for the brand
365
387
  industries: nil,
366
388
  # Indicates whether the brand content is not safe for work (NSFW)
@@ -401,6 +423,8 @@ module ContextDev
401
423
  description: String,
402
424
  domain: String,
403
425
  email: String,
426
+ employees:
427
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees,
404
428
  industries:
405
429
  ContextDev::Models::BrandRetrieveResponse::Brand::Industries,
406
430
  is_nsfw: T::Boolean,
@@ -757,6 +781,134 @@ module ContextDev
757
781
  end
758
782
  end
759
783
 
784
+ class Employees < ContextDev::Internal::Type::BaseModel
785
+ OrHash =
786
+ T.type_alias do
787
+ T.any(
788
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees,
789
+ ContextDev::Internal::AnyHash
790
+ )
791
+ end
792
+
793
+ # Exact employee count when a precise headcount is known
794
+ sig { returns(T.nilable(Integer)) }
795
+ attr_reader :exact
796
+
797
+ sig { params(exact: Integer).void }
798
+ attr_writer :exact
799
+
800
+ # Employee count range for the brand (e.g. '11 to 50')
801
+ sig do
802
+ returns(
803
+ T.nilable(
804
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
805
+ )
806
+ )
807
+ end
808
+ attr_reader :range
809
+
810
+ sig do
811
+ params(
812
+ range:
813
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::OrSymbol
814
+ ).void
815
+ end
816
+ attr_writer :range
817
+
818
+ # Employee headcount information for the brand (will be null if unknown)
819
+ sig do
820
+ params(
821
+ exact: Integer,
822
+ range:
823
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::OrSymbol
824
+ ).returns(T.attached_class)
825
+ end
826
+ def self.new(
827
+ # Exact employee count when a precise headcount is known
828
+ exact: nil,
829
+ # Employee count range for the brand (e.g. '11 to 50')
830
+ range: nil
831
+ )
832
+ end
833
+
834
+ sig do
835
+ override.returns(
836
+ {
837
+ exact: Integer,
838
+ range:
839
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
840
+ }
841
+ )
842
+ end
843
+ def to_hash
844
+ end
845
+
846
+ # Employee count range for the brand (e.g. '11 to 50')
847
+ module Range
848
+ extend ContextDev::Internal::Type::Enum
849
+
850
+ TaggedSymbol =
851
+ T.type_alias do
852
+ T.all(
853
+ Symbol,
854
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range
855
+ )
856
+ end
857
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
858
+
859
+ RANGE_1_TO_10 =
860
+ T.let(
861
+ :"1 to 10",
862
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
863
+ )
864
+ RANGE_11_TO_50 =
865
+ T.let(
866
+ :"11 to 50",
867
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
868
+ )
869
+ RANGE_51_TO_200 =
870
+ T.let(
871
+ :"51 to 200",
872
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
873
+ )
874
+ RANGE_201_TO_500 =
875
+ T.let(
876
+ :"201 to 500",
877
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
878
+ )
879
+ RANGE_501_TO_1000 =
880
+ T.let(
881
+ :"501 to 1000",
882
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
883
+ )
884
+ RANGE_1001_TO_5000 =
885
+ T.let(
886
+ :"1001 to 5000",
887
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
888
+ )
889
+ RANGE_5001_TO_10000 =
890
+ T.let(
891
+ :"5001 to 10000",
892
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
893
+ )
894
+ RANGE_10001 =
895
+ T.let(
896
+ :"10001+",
897
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
898
+ )
899
+
900
+ sig do
901
+ override.returns(
902
+ T::Array[
903
+ ContextDev::Models::BrandRetrieveResponse::Brand::Employees::Range::TaggedSymbol
904
+ ]
905
+ )
906
+ end
907
+ def self.values
908
+ end
909
+ end
910
+ end
911
+
760
912
  class Industries < ContextDev::Internal::Type::BaseModel
761
913
  OrHash =
762
914
  T.type_alias do
@@ -11,7 +11,8 @@ module ContextDev
11
11
  )
12
12
  end
13
13
 
14
- # Up to 10 matching brands, most popular first. Empty when nothing matches.
14
+ # Up to 10 matching brands, name matches first, then domain matches, most popular
15
+ # first within each group. Empty when nothing matches.
15
16
  sig { returns(T::Array[ContextDev::Models::BrandSearchResponse::Result]) }
16
17
  attr_accessor :results
17
18
 
@@ -39,7 +40,8 @@ module ContextDev
39
40
  ).returns(T.attached_class)
40
41
  end
41
42
  def self.new(
42
- # Up to 10 matching brands, most popular first. Empty when nothing matches.
43
+ # Up to 10 matching brands, name matches first, then domain matches, most popular
44
+ # first within each group. Empty when nothing matches.
43
45
  results:,
44
46
  # Metadata about the API key used for the request. Included in every response
45
47
  # whenever a valid API key is provided, even when the response status is not 200.
@@ -39,8 +39,8 @@ module ContextDev
39
39
  max_pages: Integer,
40
40
  source:
41
41
  T.any(
42
- ContextDev::CrawlControls::Source::UnionMember0::OrHash,
43
- ContextDev::CrawlControls::Source::UnionMember1::OrHash
42
+ ContextDev::CrawlControls::Source::StartURL::OrHash,
43
+ ContextDev::CrawlControls::Source::Sitemap::OrHash
44
44
  ),
45
45
  url_pattern: T.nilable(String)
46
46
  ).returns(T.attached_class)
@@ -82,23 +82,23 @@ module ContextDev
82
82
  Variants =
83
83
  T.type_alias do
84
84
  T.any(
85
- ContextDev::CrawlControls::Source::UnionMember0,
86
- ContextDev::CrawlControls::Source::UnionMember1
85
+ ContextDev::CrawlControls::Source::StartURL,
86
+ ContextDev::CrawlControls::Source::Sitemap
87
87
  )
88
88
  end
89
89
 
90
- class UnionMember0 < ContextDev::Internal::Type::BaseModel
90
+ class StartURL < ContextDev::Internal::Type::BaseModel
91
91
  OrHash =
92
92
  T.type_alias do
93
93
  T.any(
94
- ContextDev::CrawlControls::Source::UnionMember0,
94
+ ContextDev::CrawlControls::Source::StartURL,
95
95
  ContextDev::Internal::AnyHash
96
96
  )
97
97
  end
98
98
 
99
99
  sig do
100
100
  returns(
101
- ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
101
+ ContextDev::CrawlControls::Source::StartURL::Type::TaggedSymbol
102
102
  )
103
103
  end
104
104
  attr_accessor :type
@@ -107,10 +107,10 @@ module ContextDev
107
107
  sig { returns(String) }
108
108
  attr_accessor :url
109
109
 
110
+ # The crawl discovered pages by following links from one URL.
110
111
  sig do
111
112
  params(
112
- type:
113
- ContextDev::CrawlControls::Source::UnionMember0::Type::OrSymbol,
113
+ type: ContextDev::CrawlControls::Source::StartURL::Type::OrSymbol,
114
114
  url: String
115
115
  ).returns(T.attached_class)
116
116
  end
@@ -125,7 +125,7 @@ module ContextDev
125
125
  override.returns(
126
126
  {
127
127
  type:
128
- ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol,
128
+ ContextDev::CrawlControls::Source::StartURL::Type::TaggedSymbol,
129
129
  url: String
130
130
  }
131
131
  )
@@ -138,23 +138,20 @@ module ContextDev
138
138
 
139
139
  TaggedSymbol =
140
140
  T.type_alias do
141
- T.all(
142
- Symbol,
143
- ContextDev::CrawlControls::Source::UnionMember0::Type
144
- )
141
+ T.all(Symbol, ContextDev::CrawlControls::Source::StartURL::Type)
145
142
  end
146
143
  OrSymbol = T.type_alias { T.any(Symbol, String) }
147
144
 
148
145
  START_URL =
149
146
  T.let(
150
147
  :start_url,
151
- ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
148
+ ContextDev::CrawlControls::Source::StartURL::Type::TaggedSymbol
152
149
  )
153
150
 
154
151
  sig do
155
152
  override.returns(
156
153
  T::Array[
157
- ContextDev::CrawlControls::Source::UnionMember0::Type::TaggedSymbol
154
+ ContextDev::CrawlControls::Source::StartURL::Type::TaggedSymbol
158
155
  ]
159
156
  )
160
157
  end
@@ -163,11 +160,11 @@ module ContextDev
163
160
  end
164
161
  end
165
162
 
166
- class UnionMember1 < ContextDev::Internal::Type::BaseModel
163
+ class Sitemap < ContextDev::Internal::Type::BaseModel
167
164
  OrHash =
168
165
  T.type_alias do
169
166
  T.any(
170
- ContextDev::CrawlControls::Source::UnionMember1,
167
+ ContextDev::CrawlControls::Source::Sitemap,
171
168
  ContextDev::Internal::AnyHash
172
169
  )
173
170
  end
@@ -178,16 +175,16 @@ module ContextDev
178
175
 
179
176
  sig do
180
177
  returns(
181
- ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
178
+ ContextDev::CrawlControls::Source::Sitemap::Type::TaggedSymbol
182
179
  )
183
180
  end
184
181
  attr_accessor :type
185
182
 
183
+ # The crawl scraped the pages listed in the domain's sitemap.
186
184
  sig do
187
185
  params(
188
186
  domain: String,
189
- type:
190
- ContextDev::CrawlControls::Source::UnionMember1::Type::OrSymbol
187
+ type: ContextDev::CrawlControls::Source::Sitemap::Type::OrSymbol
191
188
  ).returns(T.attached_class)
192
189
  end
193
190
  def self.new(
@@ -202,7 +199,7 @@ module ContextDev
202
199
  {
203
200
  domain: String,
204
201
  type:
205
- ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
202
+ ContextDev::CrawlControls::Source::Sitemap::Type::TaggedSymbol
206
203
  }
207
204
  )
208
205
  end
@@ -214,23 +211,20 @@ module ContextDev
214
211
 
215
212
  TaggedSymbol =
216
213
  T.type_alias do
217
- T.all(
218
- Symbol,
219
- ContextDev::CrawlControls::Source::UnionMember1::Type
220
- )
214
+ T.all(Symbol, ContextDev::CrawlControls::Source::Sitemap::Type)
221
215
  end
222
216
  OrSymbol = T.type_alias { T.any(Symbol, String) }
223
217
 
224
218
  SITEMAP =
225
219
  T.let(
226
220
  :sitemap,
227
- ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
221
+ ContextDev::CrawlControls::Source::Sitemap::Type::TaggedSymbol
228
222
  )
229
223
 
230
224
  sig do
231
225
  override.returns(
232
226
  T::Array[
233
- ContextDev::CrawlControls::Source::UnionMember1::Type::TaggedSymbol
227
+ ContextDev::CrawlControls::Source::Sitemap::Type::TaggedSymbol
234
228
  ]
235
229
  )
236
230
  end
@@ -83,10 +83,11 @@ module ContextDev
83
83
  end
84
84
  attr_writer :include_links
85
85
 
86
- # When true for PDF inputs, detect and OCR images embedded in the selected pages,
87
- # inserting recognized text at each image's position in page reading order while
88
- # preserving the PDF text layer. pdf.start/pdf.end limit the inclusive page range.
89
- # When false, all OCR is disabled, including the automatic scanned-PDF fallback.
86
+ # When true for PDF inputs, OCR the selected pages that have no usable text layer
87
+ # (scans), replacing each recovered page's text with the OCR result while pages
88
+ # with a real text layer keep it. pdf.start/pdf.end limit the inclusive page
89
+ # range. Billed at 1 credit per page OCR actually recovered, on top of the base
90
+ # request cost. When false, no OCR runs.
90
91
  sig do
91
92
  returns(
92
93
  T.nilable(
@@ -220,10 +221,11 @@ module ContextDev
220
221
  include_images: nil,
221
222
  # Preserve hyperlinks in Markdown output
222
223
  include_links: nil,
223
- # When true for PDF inputs, detect and OCR images embedded in the selected pages,
224
- # inserting recognized text at each image's position in page reading order while
225
- # preserving the PDF text layer. pdf.start/pdf.end limit the inclusive page range.
226
- # When false, all OCR is disabled, including the automatic scanned-PDF fallback.
224
+ # When true for PDF inputs, OCR the selected pages that have no usable text layer
225
+ # (scans), replacing each recovered page's text with the OCR result while pages
226
+ # with a real text layer keep it. pdf.start/pdf.end limit the inclusive page
227
+ # range. Billed at 1 credit per page OCR actually recovered, on top of the base
228
+ # request cost. When false, no OCR runs.
227
229
  ocr: nil,
228
230
  # PDF page-range options as a JSON object, e.g. {"start": 2, "end": 5}.
229
231
  pdf: nil,
@@ -516,10 +518,11 @@ module ContextDev
516
518
  )
517
519
  end
518
520
 
519
- # When true for PDF inputs, detect and OCR images embedded in the selected pages,
520
- # inserting recognized text at each image's position in page reading order while
521
- # preserving the PDF text layer. pdf.start/pdf.end limit the inclusive page range.
522
- # When false, all OCR is disabled, including the automatic scanned-PDF fallback.
521
+ # When true for PDF inputs, OCR the selected pages that have no usable text layer
522
+ # (scans), replacing each recovered page's text with the OCR result while pages
523
+ # with a real text layer keep it. pdf.start/pdf.end limit the inclusive page
524
+ # range. Billed at 1 credit per page OCR actually recovered, on top of the base
525
+ # request cost. When false, no OCR runs.
523
526
  module Ocr
524
527
  extend ContextDev::Internal::Type::Union
525
528