turbopuffer 2.9.0 → 2.10.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.
@@ -73,7 +73,10 @@ module Turbopuffer
73
73
  aggregate_by: T::Hash[Symbol, T.anything],
74
74
  compute_attributes: T::Hash[Symbol, T.anything],
75
75
  consistency:
76
- Turbopuffer::NamespaceExplainQueryParams::Consistency::OrHash,
76
+ T.any(
77
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong::OrHash,
78
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual::OrHash
79
+ ),
77
80
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
78
81
  exclude_attributes: T::Array[String],
79
82
  filters: T.anything,
@@ -162,7 +165,10 @@ module Turbopuffer
162
165
  T::Array[Turbopuffer::NamespaceMultiQueryParams::Query::OrHash],
163
166
  namespace: String,
164
167
  consistency:
165
- Turbopuffer::NamespaceMultiQueryParams::Consistency::OrHash,
168
+ T.any(
169
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong::OrHash,
170
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual::OrHash
171
+ ),
166
172
  limit: T.any(Integer, Turbopuffer::RerankLimit::OrHash),
167
173
  offset: Integer,
168
174
  rerank_by: T.anything,
@@ -214,7 +220,11 @@ module Turbopuffer
214
220
  namespace: T.nilable(String),
215
221
  aggregate_by: T::Hash[Symbol, T.anything],
216
222
  compute_attributes: T::Hash[Symbol, T.anything],
217
- consistency: Turbopuffer::NamespaceQueryParams::Consistency::OrHash,
223
+ consistency:
224
+ T.any(
225
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong::OrHash,
226
+ Turbopuffer::NamespaceQueryParams::Consistency::Eventual::OrHash
227
+ ),
218
228
  distance_metric: Turbopuffer::DistanceMetric::OrSymbol,
219
229
  exclude_attributes: T::Array[String],
220
230
  filters: T.anything,
@@ -4,6 +4,11 @@ module Turbopuffer
4
4
  ENV_VAR: String
5
5
  HEADER: String
6
6
  SAMPLE_RATE_HEADER: String
7
+ REQUEST_ID_ALPHABET: String
8
+ REQUEST_ID_BYTES: Integer
9
+ REQUEST_ID_HEADER: String
10
+ REQUEST_ID_PREFIX: String
11
+ REQUEST_ID_RANDOM_BYTES: Integer
7
12
 
8
13
  ENVELOPE_VERSION: Integer
9
14
 
@@ -31,6 +36,10 @@ module Turbopuffer
31
36
 
32
37
  def self.random: -> Float
33
38
 
39
+ def self.encode_base32: (String bytes) -> String
40
+
41
+ def self.new_request_id: (Time now, ?random: String) -> String
42
+
34
43
  def self.buffer_for: (
35
44
  bool? enabled,
36
45
  String api_key,
@@ -61,15 +70,19 @@ module Turbopuffer
61
70
 
62
71
  def observe_response: (top response) -> void
63
72
 
73
+ def sample: -> Float?
74
+
64
75
  def record: (
65
76
  method: Symbol | String,
66
77
  url: URI::Generic | String,
67
78
  status: Integer,
68
79
  retries: Integer,
69
80
  durations: ::Hash[Symbol, Integer],
81
+ sample_rate: Float,
70
82
  ?server_total_ms: Numeric?,
71
83
  ?error: String?,
72
- ?reused: bool?
84
+ ?reused: bool?,
85
+ ?request_id: String?
73
86
  ) -> void
74
87
 
75
88
  def take: -> Turbopuffer::Internal::Telemetry::Batch?
@@ -7,16 +7,35 @@ module Turbopuffer
7
7
  module Encryption
8
8
  extend Turbopuffer::Internal::Type::Union
9
9
 
10
- type customer_managed = { key_name: String, mode: :"customer-managed" }
10
+ type customer_managed =
11
+ {
12
+ key_name: String,
13
+ mode: :"customer-managed",
14
+ encryption_context: ::Hash[Symbol, String]
15
+ }
11
16
 
12
17
  class CustomerManaged < Turbopuffer::Internal::Type::BaseModel
13
18
  attr_accessor key_name: String
14
19
 
15
20
  attr_accessor mode: :"customer-managed"
16
21
 
17
- def initialize: (key_name: String, ?mode: :"customer-managed") -> void
22
+ attr_reader encryption_context: ::Hash[Symbol, String]?
18
23
 
19
- def to_hash: -> { key_name: String, mode: :"customer-managed" }
24
+ def encryption_context=: (
25
+ ::Hash[Symbol, String]
26
+ ) -> ::Hash[Symbol, String]
27
+
28
+ def initialize: (
29
+ key_name: String,
30
+ ?encryption_context: ::Hash[Symbol, String],
31
+ ?mode: :"customer-managed"
32
+ ) -> void
33
+
34
+ def to_hash: -> {
35
+ key_name: String,
36
+ mode: :"customer-managed",
37
+ encryption_context: ::Hash[Symbol, String]
38
+ }
20
39
  end
21
40
 
22
41
  type default = { mode: :default }
@@ -5,7 +5,7 @@ module Turbopuffer
5
5
  namespace: String,
6
6
  aggregate_by: ::Hash[Symbol, top],
7
7
  compute_attributes: ::Hash[Symbol, top],
8
- consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency,
8
+ consistency: Turbopuffer::Models::NamespaceExplainQueryParams::consistency,
9
9
  distance_metric: Turbopuffer::Models::distance_metric,
10
10
  exclude_attributes: ::Array[String],
11
11
  filters: top,
@@ -35,11 +35,11 @@ module Turbopuffer
35
35
 
36
36
  def compute_attributes=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
37
37
 
38
- attr_reader consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency?
38
+ attr_reader consistency: Turbopuffer::Models::NamespaceExplainQueryParams::consistency?
39
39
 
40
40
  def consistency=: (
41
- Turbopuffer::NamespaceExplainQueryParams::Consistency
42
- ) -> Turbopuffer::NamespaceExplainQueryParams::Consistency
41
+ Turbopuffer::Models::NamespaceExplainQueryParams::consistency
42
+ ) -> Turbopuffer::Models::NamespaceExplainQueryParams::consistency
43
43
 
44
44
  attr_reader distance_metric: Turbopuffer::Models::distance_metric?
45
45
 
@@ -93,7 +93,7 @@ module Turbopuffer
93
93
  ?namespace: String,
94
94
  ?aggregate_by: ::Hash[Symbol, top],
95
95
  ?compute_attributes: ::Hash[Symbol, top],
96
- ?consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency,
96
+ ?consistency: Turbopuffer::Models::NamespaceExplainQueryParams::consistency,
97
97
  ?distance_metric: Turbopuffer::Models::distance_metric,
98
98
  ?exclude_attributes: ::Array[String],
99
99
  ?filters: top,
@@ -111,7 +111,7 @@ module Turbopuffer
111
111
  namespace: String,
112
112
  aggregate_by: ::Hash[Symbol, top],
113
113
  compute_attributes: ::Hash[Symbol, top],
114
- consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency,
114
+ consistency: Turbopuffer::Models::NamespaceExplainQueryParams::consistency,
115
115
  distance_metric: Turbopuffer::Models::distance_metric,
116
116
  exclude_attributes: ::Array[String],
117
117
  filters: top,
@@ -126,38 +126,40 @@ module Turbopuffer
126
126
  }
127
127
 
128
128
  type consistency =
129
- {
130
- level: Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level
131
- }
129
+ Turbopuffer::NamespaceExplainQueryParams::Consistency::Strong
130
+ | Turbopuffer::NamespaceExplainQueryParams::Consistency::Eventual
132
131
 
133
- class Consistency < Turbopuffer::Internal::Type::BaseModel
134
- attr_reader level: Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level?
132
+ module Consistency
133
+ extend Turbopuffer::Internal::Type::Union
134
+
135
+ type strong = { level: :strong }
135
136
 
136
- def level=: (
137
- Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level
138
- ) -> Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level
137
+ class Strong < Turbopuffer::Internal::Type::BaseModel
138
+ attr_accessor level: :strong
139
139
 
140
- def initialize: (
141
- ?level: Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level
142
- ) -> void
140
+ def initialize: (?level: :strong) -> void
143
141
 
144
- def to_hash: -> {
145
- level: Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level
146
- }
142
+ def to_hash: -> { level: :strong }
143
+ end
147
144
 
148
- type level = :strong | :eventual
145
+ type eventual = { level: :eventual, max_staleness_seconds: Integer }
149
146
 
150
- module Level
151
- extend Turbopuffer::Internal::Type::Enum
147
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
148
+ attr_accessor level: :eventual
152
149
 
153
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
154
- STRONG: :strong
150
+ attr_reader max_staleness_seconds: Integer?
155
151
 
156
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
157
- EVENTUAL: :eventual
152
+ def max_staleness_seconds=: (Integer) -> Integer
158
153
 
159
- def self?.values: -> ::Array[Turbopuffer::Models::NamespaceExplainQueryParams::Consistency::level]
154
+ def initialize: (
155
+ ?max_staleness_seconds: Integer,
156
+ ?level: :eventual
157
+ ) -> void
158
+
159
+ def to_hash: -> { level: :eventual, max_staleness_seconds: Integer }
160
160
  end
161
+
162
+ def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceExplainQueryParams::consistency]
161
163
  end
162
164
 
163
165
  type limit = Integer | Turbopuffer::Limit
@@ -4,7 +4,7 @@ module Turbopuffer
4
4
  {
5
5
  namespace: String,
6
6
  queries: ::Array[Turbopuffer::NamespaceMultiQueryParams::Query],
7
- consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency,
7
+ consistency: Turbopuffer::Models::NamespaceMultiQueryParams::consistency,
8
8
  limit: Turbopuffer::Models::NamespaceMultiQueryParams::limit,
9
9
  offset: Integer,
10
10
  rerank_by: top,
@@ -22,11 +22,11 @@ module Turbopuffer
22
22
 
23
23
  attr_accessor queries: ::Array[Turbopuffer::NamespaceMultiQueryParams::Query]
24
24
 
25
- attr_reader consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency?
25
+ attr_reader consistency: Turbopuffer::Models::NamespaceMultiQueryParams::consistency?
26
26
 
27
27
  def consistency=: (
28
- Turbopuffer::NamespaceMultiQueryParams::Consistency
29
- ) -> Turbopuffer::NamespaceMultiQueryParams::Consistency
28
+ Turbopuffer::Models::NamespaceMultiQueryParams::consistency
29
+ ) -> Turbopuffer::Models::NamespaceMultiQueryParams::consistency
30
30
 
31
31
  attr_reader limit: Turbopuffer::Models::NamespaceMultiQueryParams::limit?
32
32
 
@@ -51,7 +51,7 @@ module Turbopuffer
51
51
  def initialize: (
52
52
  queries: ::Array[Turbopuffer::NamespaceMultiQueryParams::Query],
53
53
  ?namespace: String,
54
- ?consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency,
54
+ ?consistency: Turbopuffer::Models::NamespaceMultiQueryParams::consistency,
55
55
  ?limit: Turbopuffer::Models::NamespaceMultiQueryParams::limit,
56
56
  ?offset: Integer,
57
57
  ?rerank_by: top,
@@ -62,7 +62,7 @@ module Turbopuffer
62
62
  def to_hash: -> {
63
63
  namespace: String,
64
64
  queries: ::Array[Turbopuffer::NamespaceMultiQueryParams::Query],
65
- consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency,
65
+ consistency: Turbopuffer::Models::NamespaceMultiQueryParams::consistency,
66
66
  limit: Turbopuffer::Models::NamespaceMultiQueryParams::limit,
67
67
  offset: Integer,
68
68
  rerank_by: top,
@@ -174,38 +174,40 @@ module Turbopuffer
174
174
  end
175
175
 
176
176
  type consistency =
177
- {
178
- level: Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level
179
- }
177
+ Turbopuffer::NamespaceMultiQueryParams::Consistency::Strong
178
+ | Turbopuffer::NamespaceMultiQueryParams::Consistency::Eventual
180
179
 
181
- class Consistency < Turbopuffer::Internal::Type::BaseModel
182
- attr_reader level: Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level?
180
+ module Consistency
181
+ extend Turbopuffer::Internal::Type::Union
183
182
 
184
- def level=: (
185
- Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level
186
- ) -> Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level
183
+ type strong = { level: :strong }
187
184
 
188
- def initialize: (
189
- ?level: Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level
190
- ) -> void
185
+ class Strong < Turbopuffer::Internal::Type::BaseModel
186
+ attr_accessor level: :strong
191
187
 
192
- def to_hash: -> {
193
- level: Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level
194
- }
188
+ def initialize: (?level: :strong) -> void
189
+
190
+ def to_hash: -> { level: :strong }
191
+ end
195
192
 
196
- type level = :strong | :eventual
193
+ type eventual = { level: :eventual, max_staleness_seconds: Integer }
197
194
 
198
- module Level
199
- extend Turbopuffer::Internal::Type::Enum
195
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
196
+ attr_accessor level: :eventual
200
197
 
201
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
202
- STRONG: :strong
198
+ attr_reader max_staleness_seconds: Integer?
203
199
 
204
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
205
- EVENTUAL: :eventual
200
+ def max_staleness_seconds=: (Integer) -> Integer
206
201
 
207
- def self?.values: -> ::Array[Turbopuffer::Models::NamespaceMultiQueryParams::Consistency::level]
202
+ def initialize: (
203
+ ?max_staleness_seconds: Integer,
204
+ ?level: :eventual
205
+ ) -> void
206
+
207
+ def to_hash: -> { level: :eventual, max_staleness_seconds: Integer }
208
208
  end
209
+
210
+ def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceMultiQueryParams::consistency]
209
211
  end
210
212
 
211
213
  type limit = Integer | Turbopuffer::RerankLimit
@@ -5,7 +5,7 @@ module Turbopuffer
5
5
  namespace: String,
6
6
  aggregate_by: ::Hash[Symbol, top],
7
7
  compute_attributes: ::Hash[Symbol, top],
8
- consistency: Turbopuffer::NamespaceQueryParams::Consistency,
8
+ consistency: Turbopuffer::Models::NamespaceQueryParams::consistency,
9
9
  distance_metric: Turbopuffer::Models::distance_metric,
10
10
  exclude_attributes: ::Array[String],
11
11
  filters: top,
@@ -36,11 +36,11 @@ module Turbopuffer
36
36
 
37
37
  def compute_attributes=: (::Hash[Symbol, top]) -> ::Hash[Symbol, top]
38
38
 
39
- attr_reader consistency: Turbopuffer::NamespaceQueryParams::Consistency?
39
+ attr_reader consistency: Turbopuffer::Models::NamespaceQueryParams::consistency?
40
40
 
41
41
  def consistency=: (
42
- Turbopuffer::NamespaceQueryParams::Consistency
43
- ) -> Turbopuffer::NamespaceQueryParams::Consistency
42
+ Turbopuffer::Models::NamespaceQueryParams::consistency
43
+ ) -> Turbopuffer::Models::NamespaceQueryParams::consistency
44
44
 
45
45
  attr_reader distance_metric: Turbopuffer::Models::distance_metric?
46
46
 
@@ -100,7 +100,7 @@ module Turbopuffer
100
100
  ?namespace: String,
101
101
  ?aggregate_by: ::Hash[Symbol, top],
102
102
  ?compute_attributes: ::Hash[Symbol, top],
103
- ?consistency: Turbopuffer::NamespaceQueryParams::Consistency,
103
+ ?consistency: Turbopuffer::Models::NamespaceQueryParams::consistency,
104
104
  ?distance_metric: Turbopuffer::Models::distance_metric,
105
105
  ?exclude_attributes: ::Array[String],
106
106
  ?filters: top,
@@ -119,7 +119,7 @@ module Turbopuffer
119
119
  namespace: String,
120
120
  aggregate_by: ::Hash[Symbol, top],
121
121
  compute_attributes: ::Hash[Symbol, top],
122
- consistency: Turbopuffer::NamespaceQueryParams::Consistency,
122
+ consistency: Turbopuffer::Models::NamespaceQueryParams::consistency,
123
123
  distance_metric: Turbopuffer::Models::distance_metric,
124
124
  exclude_attributes: ::Array[String],
125
125
  filters: top,
@@ -135,36 +135,40 @@ module Turbopuffer
135
135
  }
136
136
 
137
137
  type consistency =
138
- { level: Turbopuffer::Models::NamespaceQueryParams::Consistency::level }
138
+ Turbopuffer::NamespaceQueryParams::Consistency::Strong
139
+ | Turbopuffer::NamespaceQueryParams::Consistency::Eventual
139
140
 
140
- class Consistency < Turbopuffer::Internal::Type::BaseModel
141
- attr_reader level: Turbopuffer::Models::NamespaceQueryParams::Consistency::level?
141
+ module Consistency
142
+ extend Turbopuffer::Internal::Type::Union
143
+
144
+ type strong = { level: :strong }
142
145
 
143
- def level=: (
144
- Turbopuffer::Models::NamespaceQueryParams::Consistency::level
145
- ) -> Turbopuffer::Models::NamespaceQueryParams::Consistency::level
146
+ class Strong < Turbopuffer::Internal::Type::BaseModel
147
+ attr_accessor level: :strong
146
148
 
147
- def initialize: (
148
- ?level: Turbopuffer::Models::NamespaceQueryParams::Consistency::level
149
- ) -> void
149
+ def initialize: (?level: :strong) -> void
150
150
 
151
- def to_hash: -> {
152
- level: Turbopuffer::Models::NamespaceQueryParams::Consistency::level
153
- }
151
+ def to_hash: -> { level: :strong }
152
+ end
154
153
 
155
- type level = :strong | :eventual
154
+ type eventual = { level: :eventual, max_staleness_seconds: Integer }
156
155
 
157
- module Level
158
- extend Turbopuffer::Internal::Type::Enum
156
+ class Eventual < Turbopuffer::Internal::Type::BaseModel
157
+ attr_accessor level: :eventual
159
158
 
160
- # Strong consistency. Requires a round-trip to object storage to fetch the latest writes.
161
- STRONG: :strong
159
+ attr_reader max_staleness_seconds: Integer?
162
160
 
163
- # Eventual consistency. Does not require a round-trip to object storage, but may not see the latest writes.
164
- EVENTUAL: :eventual
161
+ def max_staleness_seconds=: (Integer) -> Integer
165
162
 
166
- def self?.values: -> ::Array[Turbopuffer::Models::NamespaceQueryParams::Consistency::level]
163
+ def initialize: (
164
+ ?max_staleness_seconds: Integer,
165
+ ?level: :eventual
166
+ ) -> void
167
+
168
+ def to_hash: -> { level: :eventual, max_staleness_seconds: Integer }
167
169
  end
170
+
171
+ def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceQueryParams::consistency]
168
172
  end
169
173
 
170
174
  type limit = Integer | Turbopuffer::Limit
@@ -25,7 +25,7 @@ module Turbopuffer
25
25
  ?namespace: String,
26
26
  ?aggregate_by: ::Hash[Symbol, top],
27
27
  ?compute_attributes: ::Hash[Symbol, top],
28
- ?consistency: Turbopuffer::NamespaceExplainQueryParams::Consistency,
28
+ ?consistency: Turbopuffer::Models::NamespaceExplainQueryParams::consistency,
29
29
  ?distance_metric: Turbopuffer::Models::distance_metric,
30
30
  ?exclude_attributes: ::Array[String],
31
31
  ?filters: top,
@@ -52,7 +52,7 @@ module Turbopuffer
52
52
  def multi_query: (
53
53
  queries: ::Array[Turbopuffer::NamespaceMultiQueryParams::Query],
54
54
  ?namespace: String,
55
- ?consistency: Turbopuffer::NamespaceMultiQueryParams::Consistency,
55
+ ?consistency: Turbopuffer::Models::NamespaceMultiQueryParams::consistency,
56
56
  ?limit: Turbopuffer::Models::NamespaceMultiQueryParams::limit,
57
57
  ?offset: Integer,
58
58
  ?rerank_by: top,
@@ -70,7 +70,7 @@ module Turbopuffer
70
70
  ?namespace: String,
71
71
  ?aggregate_by: ::Hash[Symbol, top],
72
72
  ?compute_attributes: ::Hash[Symbol, top],
73
- ?consistency: Turbopuffer::NamespaceQueryParams::Consistency,
73
+ ?consistency: Turbopuffer::Models::NamespaceQueryParams::consistency,
74
74
  ?distance_metric: Turbopuffer::Models::distance_metric,
75
75
  ?exclude_attributes: ::Array[String],
76
76
  ?filters: top,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbopuffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Turbopuffer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-10-22 00:00:00.000000000 Z
11
+ date: 2026-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -385,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
385
385
  - !ruby/object:Gem::Version
386
386
  version: '0'
387
387
  requirements: []
388
- rubygems_version: 3.4.1
388
+ rubygems_version: 3.4.19
389
389
  signing_key:
390
390
  specification_version: 4
391
391
  summary: Ruby library to access the Turbopuffer API