context.dev 2.16.0 → 2.17.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/README.md +1 -1
- data/lib/context_dev/models/ai_extract_product_params.rb +53 -8
- data/lib/context_dev/models/ai_extract_product_response.rb +10 -1
- data/lib/context_dev/models/ai_extract_products_params.rb +116 -16
- data/lib/context_dev/models/ai_extract_products_response.rb +11 -1
- data/lib/context_dev/models/brand_retrieve_params.rb +355 -60
- data/lib/context_dev/models/brand_retrieve_response.rb +71 -62
- data/lib/context_dev/models/brand_retrieve_simplified_params.rb +57 -11
- data/lib/context_dev/models/brand_retrieve_simplified_response.rb +72 -63
- data/lib/context_dev/models/industry_retrieve_naics_params.rb +53 -8
- data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -1
- data/lib/context_dev/models/industry_retrieve_sic_params.rb +53 -8
- data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -1
- data/lib/context_dev/models/monitor_create_params.rb +27 -3
- data/lib/context_dev/models/monitor_create_response.rb +30 -5
- data/lib/context_dev/models/monitor_list_response.rb +30 -5
- data/lib/context_dev/models/monitor_retrieve_response.rb +30 -5
- data/lib/context_dev/models/monitor_update_params.rb +27 -3
- data/lib/context_dev/models/monitor_update_response.rb +30 -5
- data/lib/context_dev/models/person_enrich_params.rb +53 -8
- data/lib/context_dev/models/person_enrich_response.rb +10 -1
- data/lib/context_dev/models/utility_prefetch_params.rb +48 -8
- data/lib/context_dev/models/web_answers_params.rb +124 -0
- data/lib/context_dev/models/web_answers_response.rb +68 -0
- data/lib/context_dev/models/web_extract_competitors_params.rb +53 -8
- data/lib/context_dev/models/web_extract_competitors_response.rb +10 -1
- data/lib/context_dev/models/web_extract_fonts_params.rb +58 -11
- data/lib/context_dev/models/web_extract_fonts_response.rb +32 -1
- data/lib/context_dev/models/web_extract_params.rb +53 -8
- data/lib/context_dev/models/web_extract_response.rb +10 -1
- data/lib/context_dev/models/web_extract_styleguide_params.rb +58 -11
- data/lib/context_dev/models/web_extract_styleguide_response.rb +32 -1
- data/lib/context_dev/models/web_screenshot_params.rb +58 -10
- data/lib/context_dev/models/web_screenshot_response.rb +32 -1
- data/lib/context_dev/models/web_search_params.rb +112 -16
- data/lib/context_dev/models/web_search_response.rb +49 -4
- data/lib/context_dev/models/web_web_crawl_md_params.rb +53 -8
- data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -1
- data/lib/context_dev/models/web_web_scrape_bytes_params.rb +344 -0
- data/lib/context_dev/models/web_web_scrape_bytes_response.rb +135 -0
- data/lib/context_dev/models/web_web_scrape_html_params.rb +57 -10
- data/lib/context_dev/models/web_web_scrape_html_response.rb +32 -1
- data/lib/context_dev/models/web_web_scrape_images_params.rb +57 -10
- data/lib/context_dev/models/web_web_scrape_images_response.rb +42 -1
- data/lib/context_dev/models/web_web_scrape_md_params.rb +57 -10
- data/lib/context_dev/models/web_web_scrape_md_response.rb +32 -1
- data/lib/context_dev/models/web_web_scrape_sitemap_params.rb +53 -8
- data/lib/context_dev/models/web_web_scrape_sitemap_response.rb +11 -1
- data/lib/context_dev/models.rb +4 -0
- data/lib/context_dev/resources/ai.rb +2 -2
- data/lib/context_dev/resources/brand.rb +3 -3
- data/lib/context_dev/resources/industry.rb +6 -6
- data/lib/context_dev/resources/people.rb +2 -2
- data/lib/context_dev/resources/utility.rb +2 -2
- data/lib/context_dev/resources/web.rb +119 -33
- data/lib/context_dev/version.rb +1 -1
- data/lib/context_dev.rb +4 -0
- data/rbi/context_dev/models/ai_extract_product_params.rbi +125 -13
- data/rbi/context_dev/models/ai_extract_product_response.rbi +13 -0
- data/rbi/context_dev/models/ai_extract_products_params.rbi +264 -26
- data/rbi/context_dev/models/ai_extract_products_response.rbi +15 -0
- data/rbi/context_dev/models/brand_retrieve_params.rbi +816 -102
- data/rbi/context_dev/models/brand_retrieve_response.rbi +136 -131
- data/rbi/context_dev/models/brand_retrieve_simplified_params.rbi +136 -19
- data/rbi/context_dev/models/brand_retrieve_simplified_response.rbi +140 -135
- data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +127 -13
- data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +13 -0
- data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +127 -13
- data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +13 -0
- data/rbi/context_dev/models/monitor_create_params.rbi +40 -2
- data/rbi/context_dev/models/monitor_create_response.rbi +44 -4
- data/rbi/context_dev/models/monitor_list_response.rbi +44 -4
- data/rbi/context_dev/models/monitor_retrieve_response.rbi +44 -4
- data/rbi/context_dev/models/monitor_update_params.rbi +40 -2
- data/rbi/context_dev/models/monitor_update_response.rbi +44 -4
- data/rbi/context_dev/models/person_enrich_params.rbi +123 -13
- data/rbi/context_dev/models/person_enrich_response.rbi +16 -3
- data/rbi/context_dev/models/utility_prefetch_params.rbi +112 -13
- data/rbi/context_dev/models/web_answers_params.rbi +234 -0
- data/rbi/context_dev/models/web_answers_response.rbi +122 -0
- data/rbi/context_dev/models/web_extract_competitors_params.rbi +127 -13
- data/rbi/context_dev/models/web_extract_competitors_response.rbi +16 -3
- data/rbi/context_dev/models/web_extract_fonts_params.rbi +132 -19
- data/rbi/context_dev/models/web_extract_fonts_response.rbi +71 -0
- data/rbi/context_dev/models/web_extract_params.rbi +120 -13
- data/rbi/context_dev/models/web_extract_response.rbi +16 -3
- data/rbi/context_dev/models/web_extract_styleguide_params.rbi +136 -19
- data/rbi/context_dev/models/web_extract_styleguide_response.rbi +71 -0
- data/rbi/context_dev/models/web_screenshot_params.rbi +132 -17
- data/rbi/context_dev/models/web_screenshot_response.rbi +71 -0
- data/rbi/context_dev/models/web_search_params.rbi +253 -26
- data/rbi/context_dev/models/web_search_response.rbi +96 -8
- data/rbi/context_dev/models/web_web_crawl_md_params.rbi +123 -13
- data/rbi/context_dev/models/web_web_crawl_md_response.rbi +19 -3
- data/rbi/context_dev/models/web_web_scrape_bytes_params.rbi +699 -0
- data/rbi/context_dev/models/web_web_scrape_bytes_response.rbi +238 -0
- data/rbi/context_dev/models/web_web_scrape_html_params.rbi +132 -17
- data/rbi/context_dev/models/web_web_scrape_html_response.rbi +61 -0
- data/rbi/context_dev/models/web_web_scrape_images_params.rbi +134 -17
- data/rbi/context_dev/models/web_web_scrape_images_response.rbi +89 -3
- data/rbi/context_dev/models/web_web_scrape_md_params.rbi +130 -17
- data/rbi/context_dev/models/web_web_scrape_md_response.rbi +61 -0
- data/rbi/context_dev/models/web_web_scrape_sitemap_params.rbi +127 -13
- data/rbi/context_dev/models/web_web_scrape_sitemap_response.rbi +18 -3
- data/rbi/context_dev/models.rbi +4 -0
- data/rbi/context_dev/resources/ai.rbi +5 -5
- data/rbi/context_dev/resources/brand.rbi +9 -8
- data/rbi/context_dev/resources/industry.rbi +12 -10
- data/rbi/context_dev/resources/people.rbi +5 -5
- data/rbi/context_dev/resources/utility.rbi +5 -5
- data/rbi/context_dev/resources/web.rbi +170 -72
- data/sig/context_dev/models/ai_extract_product_params.rbs +44 -5
- data/sig/context_dev/models/ai_extract_product_response.rbs +7 -0
- data/sig/context_dev/models/ai_extract_products_params.rbs +88 -10
- data/sig/context_dev/models/ai_extract_products_response.rbs +7 -0
- data/sig/context_dev/models/brand_retrieve_params.rbs +264 -30
- data/sig/context_dev/models/brand_retrieve_response.rbs +53 -54
- data/sig/context_dev/models/brand_retrieve_simplified_params.rbs +44 -5
- data/sig/context_dev/models/brand_retrieve_simplified_response.rbs +53 -54
- data/sig/context_dev/models/industry_retrieve_naics_params.rbs +44 -5
- data/sig/context_dev/models/industry_retrieve_naics_response.rbs +7 -0
- data/sig/context_dev/models/industry_retrieve_sic_params.rbs +44 -5
- data/sig/context_dev/models/industry_retrieve_sic_response.rbs +7 -0
- data/sig/context_dev/models/monitor_create_params.rbs +14 -0
- data/sig/context_dev/models/monitor_create_response.rbs +14 -0
- data/sig/context_dev/models/monitor_list_response.rbs +14 -0
- data/sig/context_dev/models/monitor_retrieve_response.rbs +14 -0
- data/sig/context_dev/models/monitor_update_params.rbs +14 -0
- data/sig/context_dev/models/monitor_update_response.rbs +14 -0
- data/sig/context_dev/models/person_enrich_params.rbs +44 -5
- data/sig/context_dev/models/person_enrich_response.rbs +10 -3
- data/sig/context_dev/models/utility_prefetch_params.rbs +43 -5
- data/sig/context_dev/models/web_answers_params.rbs +106 -0
- data/sig/context_dev/models/web_answers_response.rbs +60 -0
- data/sig/context_dev/models/web_extract_competitors_params.rbs +44 -5
- data/sig/context_dev/models/web_extract_competitors_response.rbs +10 -3
- data/sig/context_dev/models/web_extract_fonts_params.rbs +44 -5
- data/sig/context_dev/models/web_extract_fonts_response.rbs +20 -0
- data/sig/context_dev/models/web_extract_params.rbs +44 -5
- data/sig/context_dev/models/web_extract_response.rbs +10 -3
- data/sig/context_dev/models/web_extract_styleguide_params.rbs +44 -5
- data/sig/context_dev/models/web_extract_styleguide_response.rbs +20 -0
- data/sig/context_dev/models/web_screenshot_params.rbs +44 -5
- data/sig/context_dev/models/web_screenshot_response.rbs +20 -0
- data/sig/context_dev/models/web_search_params.rbs +88 -10
- data/sig/context_dev/models/web_search_response.rbs +33 -6
- data/sig/context_dev/models/web_web_crawl_md_params.rbs +44 -5
- data/sig/context_dev/models/web_web_crawl_md_response.rbs +10 -3
- data/sig/context_dev/models/web_web_scrape_bytes_params.rbs +531 -0
- data/sig/context_dev/models/web_web_scrape_bytes_response.rbs +108 -0
- data/sig/context_dev/models/web_web_scrape_html_params.rbs +44 -5
- data/sig/context_dev/models/web_web_scrape_html_response.rbs +16 -0
- data/sig/context_dev/models/web_web_scrape_images_params.rbs +44 -5
- data/sig/context_dev/models/web_web_scrape_images_response.rbs +30 -3
- data/sig/context_dev/models/web_web_scrape_md_params.rbs +44 -5
- data/sig/context_dev/models/web_web_scrape_md_response.rbs +16 -0
- data/sig/context_dev/models/web_web_scrape_sitemap_params.rbs +44 -5
- data/sig/context_dev/models/web_web_scrape_sitemap_response.rbs +10 -3
- data/sig/context_dev/models.rbs +4 -0
- data/sig/context_dev/resources/ai.rbs +1 -1
- data/sig/context_dev/resources/brand.rbs +1 -1
- data/sig/context_dev/resources/industry.rbs +2 -2
- data/sig/context_dev/resources/people.rbs +1 -1
- data/sig/context_dev/resources/utility.rbs +1 -1
- data/sig/context_dev/resources/web.rbs +30 -11
- metadata +14 -2
|
@@ -85,14 +85,18 @@ module ContextDev
|
|
|
85
85
|
sig { params(tags: T::Array[String]).void }
|
|
86
86
|
attr_writer :tags
|
|
87
87
|
|
|
88
|
-
# Optional
|
|
89
|
-
#
|
|
90
|
-
#
|
|
91
|
-
sig { returns(T.nilable(
|
|
92
|
-
attr_reader :
|
|
88
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
89
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
90
|
+
# timeoutOpts object.
|
|
91
|
+
sig { returns(T.nilable(ContextDev::WebSearchParams::TimeoutOpts)) }
|
|
92
|
+
attr_reader :timeout_opts
|
|
93
93
|
|
|
94
|
-
sig
|
|
95
|
-
|
|
94
|
+
sig do
|
|
95
|
+
params(
|
|
96
|
+
timeout_opts: ContextDev::WebSearchParams::TimeoutOpts::OrHash
|
|
97
|
+
).void
|
|
98
|
+
end
|
|
99
|
+
attr_writer :timeout_opts
|
|
96
100
|
|
|
97
101
|
sig do
|
|
98
102
|
params(
|
|
@@ -106,7 +110,7 @@ module ContextDev
|
|
|
106
110
|
num_results: Integer,
|
|
107
111
|
query_fanout: T::Boolean,
|
|
108
112
|
tags: T::Array[String],
|
|
109
|
-
|
|
113
|
+
timeout_opts: ContextDev::WebSearchParams::TimeoutOpts::OrHash,
|
|
110
114
|
request_options: ContextDev::RequestOptions::OrHash
|
|
111
115
|
).returns(T.attached_class)
|
|
112
116
|
end
|
|
@@ -133,10 +137,10 @@ module ContextDev
|
|
|
133
137
|
query_fanout: nil,
|
|
134
138
|
# Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
|
|
135
139
|
tags: nil,
|
|
136
|
-
# Optional
|
|
137
|
-
#
|
|
138
|
-
#
|
|
139
|
-
|
|
140
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
141
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
142
|
+
# timeoutOpts object.
|
|
143
|
+
timeout_opts: nil,
|
|
140
144
|
request_options: {}
|
|
141
145
|
)
|
|
142
146
|
end
|
|
@@ -153,7 +157,7 @@ module ContextDev
|
|
|
153
157
|
num_results: Integer,
|
|
154
158
|
query_fanout: T::Boolean,
|
|
155
159
|
tags: T::Array[String],
|
|
156
|
-
|
|
160
|
+
timeout_opts: ContextDev::WebSearchParams::TimeoutOpts,
|
|
157
161
|
request_options: ContextDev::RequestOptions
|
|
158
162
|
}
|
|
159
163
|
)
|
|
@@ -522,14 +526,23 @@ module ContextDev
|
|
|
522
526
|
sig { params(shorten_base64_images: T::Boolean).void }
|
|
523
527
|
attr_writer :shorten_base64_images
|
|
524
528
|
|
|
525
|
-
# Optional
|
|
526
|
-
#
|
|
527
|
-
#
|
|
528
|
-
sig
|
|
529
|
-
|
|
529
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
530
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
531
|
+
# timeoutOpts object.
|
|
532
|
+
sig do
|
|
533
|
+
returns(
|
|
534
|
+
T.nilable(ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts)
|
|
535
|
+
)
|
|
536
|
+
end
|
|
537
|
+
attr_reader :timeout_opts
|
|
530
538
|
|
|
531
|
-
sig
|
|
532
|
-
|
|
539
|
+
sig do
|
|
540
|
+
params(
|
|
541
|
+
timeout_opts:
|
|
542
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::OrHash
|
|
543
|
+
).void
|
|
544
|
+
end
|
|
545
|
+
attr_writer :timeout_opts
|
|
533
546
|
|
|
534
547
|
# Strip nav, header, footer, and sidebar — keep only the primary article content.
|
|
535
548
|
sig { returns(T.nilable(T::Boolean)) }
|
|
@@ -556,7 +569,8 @@ module ContextDev
|
|
|
556
569
|
max_age_ms: Integer,
|
|
557
570
|
pdf: ContextDev::WebSearchParams::MarkdownOptions::Pdf::OrHash,
|
|
558
571
|
shorten_base64_images: T::Boolean,
|
|
559
|
-
|
|
572
|
+
timeout_opts:
|
|
573
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::OrHash,
|
|
560
574
|
use_main_content_only: T::Boolean,
|
|
561
575
|
wait_for_ms: Integer
|
|
562
576
|
).returns(T.attached_class)
|
|
@@ -577,10 +591,10 @@ module ContextDev
|
|
|
577
591
|
pdf: nil,
|
|
578
592
|
# Truncate inline base64 image payloads to keep responses small.
|
|
579
593
|
shorten_base64_images: nil,
|
|
580
|
-
# Optional
|
|
581
|
-
#
|
|
582
|
-
#
|
|
583
|
-
|
|
594
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
595
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
596
|
+
# timeoutOpts object.
|
|
597
|
+
timeout_opts: nil,
|
|
584
598
|
# Strip nav, header, footer, and sidebar — keep only the primary article content.
|
|
585
599
|
use_main_content_only: nil,
|
|
586
600
|
# Extra wait after page load before rendering, in ms (0–30000). Useful for
|
|
@@ -599,7 +613,8 @@ module ContextDev
|
|
|
599
613
|
max_age_ms: Integer,
|
|
600
614
|
pdf: ContextDev::WebSearchParams::MarkdownOptions::Pdf,
|
|
601
615
|
shorten_base64_images: T::Boolean,
|
|
602
|
-
|
|
616
|
+
timeout_opts:
|
|
617
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts,
|
|
603
618
|
use_main_content_only: T::Boolean,
|
|
604
619
|
wait_for_ms: Integer
|
|
605
620
|
}
|
|
@@ -666,6 +681,218 @@ module ContextDev
|
|
|
666
681
|
def to_hash
|
|
667
682
|
end
|
|
668
683
|
end
|
|
684
|
+
|
|
685
|
+
class TimeoutOpts < ContextDev::Internal::Type::BaseModel
|
|
686
|
+
OrHash =
|
|
687
|
+
T.type_alias do
|
|
688
|
+
T.any(
|
|
689
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts,
|
|
690
|
+
ContextDev::Internal::AnyHash
|
|
691
|
+
)
|
|
692
|
+
end
|
|
693
|
+
|
|
694
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
695
|
+
sig { returns(Integer) }
|
|
696
|
+
attr_accessor :milliseconds
|
|
697
|
+
|
|
698
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
699
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
700
|
+
# available, the request still fails without charging credits. Partial results are
|
|
701
|
+
# not cached as complete results. "return-partial" requires milliseconds of at
|
|
702
|
+
# least 15000.
|
|
703
|
+
sig do
|
|
704
|
+
returns(
|
|
705
|
+
T.nilable(
|
|
706
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::OrSymbol
|
|
707
|
+
)
|
|
708
|
+
)
|
|
709
|
+
end
|
|
710
|
+
attr_reader :behavior
|
|
711
|
+
|
|
712
|
+
sig do
|
|
713
|
+
params(
|
|
714
|
+
behavior:
|
|
715
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::OrSymbol
|
|
716
|
+
).void
|
|
717
|
+
end
|
|
718
|
+
attr_writer :behavior
|
|
719
|
+
|
|
720
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
721
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
722
|
+
# timeoutOpts object.
|
|
723
|
+
sig do
|
|
724
|
+
params(
|
|
725
|
+
milliseconds: Integer,
|
|
726
|
+
behavior:
|
|
727
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::OrSymbol
|
|
728
|
+
).returns(T.attached_class)
|
|
729
|
+
end
|
|
730
|
+
def self.new(
|
|
731
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
732
|
+
milliseconds:,
|
|
733
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
734
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
735
|
+
# available, the request still fails without charging credits. Partial results are
|
|
736
|
+
# not cached as complete results. "return-partial" requires milliseconds of at
|
|
737
|
+
# least 15000.
|
|
738
|
+
behavior: nil
|
|
739
|
+
)
|
|
740
|
+
end
|
|
741
|
+
|
|
742
|
+
sig do
|
|
743
|
+
override.returns(
|
|
744
|
+
{
|
|
745
|
+
milliseconds: Integer,
|
|
746
|
+
behavior:
|
|
747
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::OrSymbol
|
|
748
|
+
}
|
|
749
|
+
)
|
|
750
|
+
end
|
|
751
|
+
def to_hash
|
|
752
|
+
end
|
|
753
|
+
|
|
754
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
755
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
756
|
+
# available, the request still fails without charging credits. Partial results are
|
|
757
|
+
# not cached as complete results. "return-partial" requires milliseconds of at
|
|
758
|
+
# least 15000.
|
|
759
|
+
module Behavior
|
|
760
|
+
extend ContextDev::Internal::Type::Enum
|
|
761
|
+
|
|
762
|
+
TaggedSymbol =
|
|
763
|
+
T.type_alias do
|
|
764
|
+
T.all(
|
|
765
|
+
Symbol,
|
|
766
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior
|
|
767
|
+
)
|
|
768
|
+
end
|
|
769
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
770
|
+
|
|
771
|
+
FAIL =
|
|
772
|
+
T.let(
|
|
773
|
+
:fail,
|
|
774
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::TaggedSymbol
|
|
775
|
+
)
|
|
776
|
+
RETURN_PARTIAL =
|
|
777
|
+
T.let(
|
|
778
|
+
:"return-partial",
|
|
779
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::TaggedSymbol
|
|
780
|
+
)
|
|
781
|
+
|
|
782
|
+
sig do
|
|
783
|
+
override.returns(
|
|
784
|
+
T::Array[
|
|
785
|
+
ContextDev::WebSearchParams::MarkdownOptions::TimeoutOpts::Behavior::TaggedSymbol
|
|
786
|
+
]
|
|
787
|
+
)
|
|
788
|
+
end
|
|
789
|
+
def self.values
|
|
790
|
+
end
|
|
791
|
+
end
|
|
792
|
+
end
|
|
793
|
+
end
|
|
794
|
+
|
|
795
|
+
class TimeoutOpts < ContextDev::Internal::Type::BaseModel
|
|
796
|
+
OrHash =
|
|
797
|
+
T.type_alias do
|
|
798
|
+
T.any(
|
|
799
|
+
ContextDev::WebSearchParams::TimeoutOpts,
|
|
800
|
+
ContextDev::Internal::AnyHash
|
|
801
|
+
)
|
|
802
|
+
end
|
|
803
|
+
|
|
804
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
805
|
+
sig { returns(Integer) }
|
|
806
|
+
attr_accessor :milliseconds
|
|
807
|
+
|
|
808
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
809
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
810
|
+
# available, the request still fails without charging credits. Partial results are
|
|
811
|
+
# not cached as complete results.
|
|
812
|
+
sig do
|
|
813
|
+
returns(
|
|
814
|
+
T.nilable(
|
|
815
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::OrSymbol
|
|
816
|
+
)
|
|
817
|
+
)
|
|
818
|
+
end
|
|
819
|
+
attr_reader :behavior
|
|
820
|
+
|
|
821
|
+
sig do
|
|
822
|
+
params(
|
|
823
|
+
behavior:
|
|
824
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::OrSymbol
|
|
825
|
+
).void
|
|
826
|
+
end
|
|
827
|
+
attr_writer :behavior
|
|
828
|
+
|
|
829
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
830
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
831
|
+
# timeoutOpts object.
|
|
832
|
+
sig do
|
|
833
|
+
params(
|
|
834
|
+
milliseconds: Integer,
|
|
835
|
+
behavior:
|
|
836
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::OrSymbol
|
|
837
|
+
).returns(T.attached_class)
|
|
838
|
+
end
|
|
839
|
+
def self.new(
|
|
840
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
841
|
+
milliseconds:,
|
|
842
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
843
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
844
|
+
# available, the request still fails without charging credits. Partial results are
|
|
845
|
+
# not cached as complete results.
|
|
846
|
+
behavior: nil
|
|
847
|
+
)
|
|
848
|
+
end
|
|
849
|
+
|
|
850
|
+
sig do
|
|
851
|
+
override.returns(
|
|
852
|
+
{
|
|
853
|
+
milliseconds: Integer,
|
|
854
|
+
behavior:
|
|
855
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::OrSymbol
|
|
856
|
+
}
|
|
857
|
+
)
|
|
858
|
+
end
|
|
859
|
+
def to_hash
|
|
860
|
+
end
|
|
861
|
+
|
|
862
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
863
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
864
|
+
# available, the request still fails without charging credits. Partial results are
|
|
865
|
+
# not cached as complete results.
|
|
866
|
+
module Behavior
|
|
867
|
+
extend ContextDev::Internal::Type::Enum
|
|
868
|
+
|
|
869
|
+
TaggedSymbol =
|
|
870
|
+
T.type_alias do
|
|
871
|
+
T.all(Symbol, ContextDev::WebSearchParams::TimeoutOpts::Behavior)
|
|
872
|
+
end
|
|
873
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
874
|
+
|
|
875
|
+
FAIL =
|
|
876
|
+
T.let(
|
|
877
|
+
:fail,
|
|
878
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
879
|
+
)
|
|
880
|
+
RETURN_PARTIAL =
|
|
881
|
+
T.let(
|
|
882
|
+
:"return-partial",
|
|
883
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
884
|
+
)
|
|
885
|
+
|
|
886
|
+
sig do
|
|
887
|
+
override.returns(
|
|
888
|
+
T::Array[
|
|
889
|
+
ContextDev::WebSearchParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
890
|
+
]
|
|
891
|
+
)
|
|
892
|
+
end
|
|
893
|
+
def self.values
|
|
894
|
+
end
|
|
895
|
+
end
|
|
669
896
|
end
|
|
670
897
|
end
|
|
671
898
|
end
|
|
@@ -51,6 +51,15 @@ module ContextDev
|
|
|
51
51
|
end
|
|
52
52
|
attr_writer :key_metadata
|
|
53
53
|
|
|
54
|
+
# True when timeoutOpts.behavior=return-partial returned the usable results
|
|
55
|
+
# collected before the deadline. Partial collections are not cached as complete
|
|
56
|
+
# results.
|
|
57
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
58
|
+
attr_reader :partial
|
|
59
|
+
|
|
60
|
+
sig { params(partial: T::Boolean).void }
|
|
61
|
+
attr_writer :partial
|
|
62
|
+
|
|
54
63
|
sig do
|
|
55
64
|
params(
|
|
56
65
|
cache_metadata:
|
|
@@ -60,7 +69,8 @@ module ContextDev
|
|
|
60
69
|
results:
|
|
61
70
|
T::Array[ContextDev::Models::WebSearchResponse::Result::OrHash],
|
|
62
71
|
key_metadata:
|
|
63
|
-
ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash
|
|
72
|
+
ContextDev::Models::WebSearchResponse::KeyMetadata::OrHash,
|
|
73
|
+
partial: T::Boolean
|
|
64
74
|
).returns(T.attached_class)
|
|
65
75
|
end
|
|
66
76
|
def self.new(
|
|
@@ -75,7 +85,11 @@ module ContextDev
|
|
|
75
85
|
request_id:,
|
|
76
86
|
results:,
|
|
77
87
|
# Credit usage, included whenever a valid API key is provided.
|
|
78
|
-
key_metadata: nil
|
|
88
|
+
key_metadata: nil,
|
|
89
|
+
# True when timeoutOpts.behavior=return-partial returned the usable results
|
|
90
|
+
# collected before the deadline. Partial collections are not cached as complete
|
|
91
|
+
# results.
|
|
92
|
+
partial: nil
|
|
79
93
|
)
|
|
80
94
|
end
|
|
81
95
|
|
|
@@ -87,7 +101,8 @@ module ContextDev
|
|
|
87
101
|
query: String,
|
|
88
102
|
request_id: String,
|
|
89
103
|
results: T::Array[ContextDev::Models::WebSearchResponse::Result],
|
|
90
|
-
key_metadata: ContextDev::Models::WebSearchResponse::KeyMetadata
|
|
104
|
+
key_metadata: ContextDev::Models::WebSearchResponse::KeyMetadata,
|
|
105
|
+
partial: T::Boolean
|
|
91
106
|
}
|
|
92
107
|
)
|
|
93
108
|
end
|
|
@@ -198,7 +213,8 @@ module ContextDev
|
|
|
198
213
|
)
|
|
199
214
|
end
|
|
200
215
|
|
|
201
|
-
# Snippet excerpt from the page.
|
|
216
|
+
# Snippet excerpt from the page. Empty string when the search provider does not
|
|
217
|
+
# supply a snippet.
|
|
202
218
|
sig { returns(String) }
|
|
203
219
|
attr_accessor :description
|
|
204
220
|
|
|
@@ -242,7 +258,8 @@ module ContextDev
|
|
|
242
258
|
).returns(T.attached_class)
|
|
243
259
|
end
|
|
244
260
|
def self.new(
|
|
245
|
-
# Snippet excerpt from the page.
|
|
261
|
+
# Snippet excerpt from the page. Empty string when the search provider does not
|
|
262
|
+
# supply a snippet.
|
|
246
263
|
description:,
|
|
247
264
|
# Markdown scrape status and content for this result.
|
|
248
265
|
markdown:,
|
|
@@ -292,12 +309,36 @@ module ContextDev
|
|
|
292
309
|
sig { returns(T.nilable(String)) }
|
|
293
310
|
attr_accessor :markdown
|
|
294
311
|
|
|
312
|
+
# How complete the returned content is. `loaded` means the page finished the waits
|
|
313
|
+
# the request asked for. `still-loading` only occurs with
|
|
314
|
+
# timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
|
|
315
|
+
# reached first, so the content reflects the DOM at that moment and late-rendering
|
|
316
|
+
# parts may be missing. Partial results are billed at the base request cost.
|
|
317
|
+
sig do
|
|
318
|
+
returns(
|
|
319
|
+
T.nilable(
|
|
320
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
|
|
321
|
+
)
|
|
322
|
+
)
|
|
323
|
+
end
|
|
324
|
+
attr_reader :final_dom_state
|
|
325
|
+
|
|
326
|
+
sig do
|
|
327
|
+
params(
|
|
328
|
+
final_dom_state:
|
|
329
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::OrSymbol
|
|
330
|
+
).void
|
|
331
|
+
end
|
|
332
|
+
attr_writer :final_dom_state
|
|
333
|
+
|
|
295
334
|
# Markdown scrape status and content for this result.
|
|
296
335
|
sig do
|
|
297
336
|
params(
|
|
298
337
|
code:
|
|
299
338
|
ContextDev::Models::WebSearchResponse::Result::Markdown::Code::OrSymbol,
|
|
300
|
-
markdown: T.nilable(String)
|
|
339
|
+
markdown: T.nilable(String),
|
|
340
|
+
final_dom_state:
|
|
341
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::OrSymbol
|
|
301
342
|
).returns(T.attached_class)
|
|
302
343
|
end
|
|
303
344
|
def self.new(
|
|
@@ -305,7 +346,13 @@ module ContextDev
|
|
|
305
346
|
code:,
|
|
306
347
|
# GFM Markdown of the page. Null unless markdownOptions.enabled is true and
|
|
307
348
|
# scraping succeeded.
|
|
308
|
-
markdown
|
|
349
|
+
markdown:,
|
|
350
|
+
# How complete the returned content is. `loaded` means the page finished the waits
|
|
351
|
+
# the request asked for. `still-loading` only occurs with
|
|
352
|
+
# timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
|
|
353
|
+
# reached first, so the content reflects the DOM at that moment and late-rendering
|
|
354
|
+
# parts may be missing. Partial results are billed at the base request cost.
|
|
355
|
+
final_dom_state: nil
|
|
309
356
|
)
|
|
310
357
|
end
|
|
311
358
|
|
|
@@ -314,7 +361,9 @@ module ContextDev
|
|
|
314
361
|
{
|
|
315
362
|
code:
|
|
316
363
|
ContextDev::Models::WebSearchResponse::Result::Markdown::Code::TaggedSymbol,
|
|
317
|
-
markdown: T.nilable(String)
|
|
364
|
+
markdown: T.nilable(String),
|
|
365
|
+
final_dom_state:
|
|
366
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
|
|
318
367
|
}
|
|
319
368
|
)
|
|
320
369
|
end
|
|
@@ -375,6 +424,45 @@ module ContextDev
|
|
|
375
424
|
def self.values
|
|
376
425
|
end
|
|
377
426
|
end
|
|
427
|
+
|
|
428
|
+
# How complete the returned content is. `loaded` means the page finished the waits
|
|
429
|
+
# the request asked for. `still-loading` only occurs with
|
|
430
|
+
# timeoutOpts.behavior=return-partial: the timeoutOpts.milliseconds deadline was
|
|
431
|
+
# reached first, so the content reflects the DOM at that moment and late-rendering
|
|
432
|
+
# parts may be missing. Partial results are billed at the base request cost.
|
|
433
|
+
module FinalDomState
|
|
434
|
+
extend ContextDev::Internal::Type::Enum
|
|
435
|
+
|
|
436
|
+
TaggedSymbol =
|
|
437
|
+
T.type_alias do
|
|
438
|
+
T.all(
|
|
439
|
+
Symbol,
|
|
440
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState
|
|
441
|
+
)
|
|
442
|
+
end
|
|
443
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
444
|
+
|
|
445
|
+
LOADED =
|
|
446
|
+
T.let(
|
|
447
|
+
:loaded,
|
|
448
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
|
|
449
|
+
)
|
|
450
|
+
STILL_LOADING =
|
|
451
|
+
T.let(
|
|
452
|
+
:"still-loading",
|
|
453
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
|
|
454
|
+
)
|
|
455
|
+
|
|
456
|
+
sig do
|
|
457
|
+
override.returns(
|
|
458
|
+
T::Array[
|
|
459
|
+
ContextDev::Models::WebSearchResponse::Result::Markdown::FinalDomState::TaggedSymbol
|
|
460
|
+
]
|
|
461
|
+
)
|
|
462
|
+
end
|
|
463
|
+
def self.values
|
|
464
|
+
end
|
|
465
|
+
end
|
|
378
466
|
end
|
|
379
467
|
|
|
380
468
|
# Relevance to the original query.
|
|
@@ -141,14 +141,18 @@ module ContextDev
|
|
|
141
141
|
sig { params(tags: T::Array[String]).void }
|
|
142
142
|
attr_writer :tags
|
|
143
143
|
|
|
144
|
-
# Optional
|
|
145
|
-
#
|
|
146
|
-
#
|
|
147
|
-
sig { returns(T.nilable(
|
|
148
|
-
attr_reader :
|
|
144
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
145
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
146
|
+
# timeoutOpts object.
|
|
147
|
+
sig { returns(T.nilable(ContextDev::WebWebCrawlMdParams::TimeoutOpts)) }
|
|
148
|
+
attr_reader :timeout_opts
|
|
149
149
|
|
|
150
|
-
sig
|
|
151
|
-
|
|
150
|
+
sig do
|
|
151
|
+
params(
|
|
152
|
+
timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts::OrHash
|
|
153
|
+
).void
|
|
154
|
+
end
|
|
155
|
+
attr_writer :timeout_opts
|
|
152
156
|
|
|
153
157
|
# Regex pattern. Only URLs matching this pattern will be followed and scraped. An
|
|
154
158
|
# automatic prefix scope in the form ^<starting URL> follows a redirect of the
|
|
@@ -203,7 +207,7 @@ module ContextDev
|
|
|
203
207
|
shorten_base64_images: T::Boolean,
|
|
204
208
|
stop_after_ms: Integer,
|
|
205
209
|
tags: T::Array[String],
|
|
206
|
-
|
|
210
|
+
timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts::OrHash,
|
|
207
211
|
url_regex: String,
|
|
208
212
|
use_main_content_only: T::Boolean,
|
|
209
213
|
wait_for_ms: Integer,
|
|
@@ -261,10 +265,10 @@ module ContextDev
|
|
|
261
265
|
stop_after_ms: nil,
|
|
262
266
|
# Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.
|
|
263
267
|
tags: nil,
|
|
264
|
-
# Optional
|
|
265
|
-
#
|
|
266
|
-
#
|
|
267
|
-
|
|
268
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
269
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
270
|
+
# timeoutOpts object.
|
|
271
|
+
timeout_opts: nil,
|
|
268
272
|
# Regex pattern. Only URLs matching this pattern will be followed and scraped. An
|
|
269
273
|
# automatic prefix scope in the form ^<starting URL> follows a redirect of the
|
|
270
274
|
# starting page.
|
|
@@ -303,7 +307,7 @@ module ContextDev
|
|
|
303
307
|
shorten_base64_images: T::Boolean,
|
|
304
308
|
stop_after_ms: Integer,
|
|
305
309
|
tags: T::Array[String],
|
|
306
|
-
|
|
310
|
+
timeout_opts: ContextDev::WebWebCrawlMdParams::TimeoutOpts,
|
|
307
311
|
url_regex: String,
|
|
308
312
|
use_main_content_only: T::Boolean,
|
|
309
313
|
wait_for_ms: Integer,
|
|
@@ -623,6 +627,112 @@ module ContextDev
|
|
|
623
627
|
end
|
|
624
628
|
end
|
|
625
629
|
|
|
630
|
+
class TimeoutOpts < ContextDev::Internal::Type::BaseModel
|
|
631
|
+
OrHash =
|
|
632
|
+
T.type_alias do
|
|
633
|
+
T.any(
|
|
634
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts,
|
|
635
|
+
ContextDev::Internal::AnyHash
|
|
636
|
+
)
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
640
|
+
sig { returns(Integer) }
|
|
641
|
+
attr_accessor :milliseconds
|
|
642
|
+
|
|
643
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
644
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
645
|
+
# available, the request still fails without charging credits. Partial results are
|
|
646
|
+
# not cached as complete results.
|
|
647
|
+
sig do
|
|
648
|
+
returns(
|
|
649
|
+
T.nilable(
|
|
650
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
|
|
651
|
+
)
|
|
652
|
+
)
|
|
653
|
+
end
|
|
654
|
+
attr_reader :behavior
|
|
655
|
+
|
|
656
|
+
sig do
|
|
657
|
+
params(
|
|
658
|
+
behavior:
|
|
659
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
|
|
660
|
+
).void
|
|
661
|
+
end
|
|
662
|
+
attr_writer :behavior
|
|
663
|
+
|
|
664
|
+
# Optional request deadline and behavior on timeout. For GET requests, use
|
|
665
|
+
# timeoutOpts[milliseconds]=30000&timeoutOpts[behavior]=fail or a JSON-encoded
|
|
666
|
+
# timeoutOpts object.
|
|
667
|
+
sig do
|
|
668
|
+
params(
|
|
669
|
+
milliseconds: Integer,
|
|
670
|
+
behavior:
|
|
671
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
|
|
672
|
+
).returns(T.attached_class)
|
|
673
|
+
end
|
|
674
|
+
def self.new(
|
|
675
|
+
# Request deadline in milliseconds. Maximum: 300000 (5 minutes).
|
|
676
|
+
milliseconds:,
|
|
677
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
678
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
679
|
+
# available, the request still fails without charging credits. Partial results are
|
|
680
|
+
# not cached as complete results.
|
|
681
|
+
behavior: nil
|
|
682
|
+
)
|
|
683
|
+
end
|
|
684
|
+
|
|
685
|
+
sig do
|
|
686
|
+
override.returns(
|
|
687
|
+
{
|
|
688
|
+
milliseconds: Integer,
|
|
689
|
+
behavior:
|
|
690
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::OrSymbol
|
|
691
|
+
}
|
|
692
|
+
)
|
|
693
|
+
end
|
|
694
|
+
def to_hash
|
|
695
|
+
end
|
|
696
|
+
|
|
697
|
+
# What to do at the deadline. "fail" returns 408 REQUEST_TIMEOUT without charging
|
|
698
|
+
# credits. "return-partial" returns usable results collected so far; if none are
|
|
699
|
+
# available, the request still fails without charging credits. Partial results are
|
|
700
|
+
# not cached as complete results.
|
|
701
|
+
module Behavior
|
|
702
|
+
extend ContextDev::Internal::Type::Enum
|
|
703
|
+
|
|
704
|
+
TaggedSymbol =
|
|
705
|
+
T.type_alias do
|
|
706
|
+
T.all(
|
|
707
|
+
Symbol,
|
|
708
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior
|
|
709
|
+
)
|
|
710
|
+
end
|
|
711
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
712
|
+
|
|
713
|
+
FAIL =
|
|
714
|
+
T.let(
|
|
715
|
+
:fail,
|
|
716
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
717
|
+
)
|
|
718
|
+
RETURN_PARTIAL =
|
|
719
|
+
T.let(
|
|
720
|
+
:"return-partial",
|
|
721
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
722
|
+
)
|
|
723
|
+
|
|
724
|
+
sig do
|
|
725
|
+
override.returns(
|
|
726
|
+
T::Array[
|
|
727
|
+
ContextDev::WebWebCrawlMdParams::TimeoutOpts::Behavior::TaggedSymbol
|
|
728
|
+
]
|
|
729
|
+
)
|
|
730
|
+
end
|
|
731
|
+
def self.values
|
|
732
|
+
end
|
|
733
|
+
end
|
|
734
|
+
end
|
|
735
|
+
|
|
626
736
|
# Set to enabled to bypass shared caches and omit request and response content
|
|
627
737
|
# from retained usage logs. Requires zero data retention to be enabled for your
|
|
628
738
|
# organization (contact support@context.dev), otherwise the request fails with
|