turbopuffer 1.16.0 → 1.18.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49996bb69761463127455f5c055e194300f90c3019a799a22caba584aea8d782
4
- data.tar.gz: 4de6f2a10ec1a14391748137eb96f93a6e3251f5a567dcb60afb0d914c47dcbe
3
+ metadata.gz: 392026af67d721a1c1e41655fa994e4b091513a09098debb10dfe3d7f5b28b10
4
+ data.tar.gz: b2594569c7c125a0ac5adf38e0a2837143672f8c5e2fac0d2c6e44c1a9e74f27
5
5
  SHA512:
6
- metadata.gz: 476911f60864a91b8f621a8a0d46a1ca0aa3bd1613bf238c9e4e1609444849874e1b3a2826969f96ff6b24637f476ccae5ea07ad9a705bea50bc9957b79926d2
7
- data.tar.gz: e8ce0b91324f880dac5070f46cda019dabe5eed989a2ce0337078cdf64544e7609442ae5e6554390057377226edd3e6fbd5237f05ef44769b6008d6981a49c66
6
+ metadata.gz: 5479a222309efe4bcf5c8405c3801e1b69701ae752e97629503da8fb575267f6a5ae1c9ad25761c76c4cc0e390e8ba5b236fdbd950fbcd4a6901ab7f9d4170e9
7
+ data.tar.gz: c8ae2cdf9de61b0766fb85f8de6e647d8eeda1d5d59fa5de98dbe69d22d02ae7a7106e4ac9403cba15a5449f21bff58cea6b0cf015dbbd89072f94c5bae02a6b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.18.0 (2026-03-20)
4
+
5
+ Full Changelog: [v1.17.0...v1.18.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.17.0...v1.18.0)
6
+
7
+ ### Features
8
+
9
+ * spec: disable CopyFromNamespace syntax sugar in Go ([93d9e4b](https://github.com/turbopuffer/turbopuffer-ruby/commit/93d9e4b4501ed7f444f2365b09baa5231349edf8))
10
+ * tpuf-engine: add verbose form of branch_from_namespace ([1ae049a](https://github.com/turbopuffer/turbopuffer-ruby/commit/1ae049ad623d519817d4d9b71228f5f4e7a55aec))
11
+
12
+ ## 1.17.0 (2026-03-18)
13
+
14
+ Full Changelog: [v1.16.0...v1.17.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.16.0...v1.17.0)
15
+
16
+ ### Features
17
+
18
+ * Response performance object ([c3ca5e3](https://github.com/turbopuffer/turbopuffer-ruby/commit/c3ca5e32f6cc4cfcdc29bc30e8cd11cd6e5550ef))
19
+ * tpuf: add branching to openapi spec ([7abdd2f](https://github.com/turbopuffer/turbopuffer-ruby/commit/7abdd2fb4f0fc1d2776dae20510b969e6c144b8b))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **client:** use higher retry delay precision ([bf9becb](https://github.com/turbopuffer/turbopuffer-ruby/commit/bf9becb1a4c0ef1d654e403b75032657a4dbde49))
25
+
26
+
27
+ ### Chores
28
+
29
+ * **internal:** tweak CI branches ([f11cac6](https://github.com/turbopuffer/turbopuffer-ruby/commit/f11cac6b51f4c31c1c013537032ac67711c5e39d))
30
+
3
31
  ## 1.16.0 (2026-03-15)
4
32
 
5
33
  Full Changelog: [v1.15.0...v1.16.0](https://github.com/turbopuffer/turbopuffer-ruby/compare/v1.15.0...v1.16.0)
data/README.md CHANGED
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "turbopuffer", "~> 1.16.0"
29
+ gem "turbopuffer", "~> 1.18.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -10,7 +10,7 @@ module Turbopuffer
10
10
 
11
11
  # Default initial retry delay in seconds.
12
12
  # Overall delay is calculated using exponential backoff + jitter.
13
- DEFAULT_INITIAL_RETRY_DELAY = 0.3
13
+ DEFAULT_INITIAL_RETRY_DELAY = 0.25
14
14
 
15
15
  # Default max retry delay in seconds.
16
16
  DEFAULT_MAX_RETRY_DELAY = 8.0
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # The namespace to create an instant, copy-on-write clone of.
6
+ module BranchFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ # The namespace to create an instant, copy-on-write clone of.
10
+ variant String
11
+
12
+ variant -> { Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig }
13
+
14
+ class BranchFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
15
+ # @!attribute source_namespace
16
+ # The namespace to create an instant, copy-on-write clone of.
17
+ #
18
+ # @return [String]
19
+ required :source_namespace, String
20
+
21
+ # @!method initialize(source_namespace:)
22
+ # @param source_namespace [String] The namespace to create an instant, copy-on-write clone of.
23
+ end
24
+
25
+ # @!method self.variants
26
+ # @return [Array(String, Turbopuffer::Models::BranchFromNamespaceParams::BranchFromNamespaceConfig)]
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # The namespace to copy documents from.
6
+ module CopyFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ # The namespace to copy documents from.
10
+ variant String
11
+
12
+ variant -> { Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig }
13
+
14
+ class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
15
+ # @!attribute source_namespace
16
+ # The namespace to copy documents from.
17
+ #
18
+ # @return [String]
19
+ required :source_namespace, String
20
+
21
+ # @!attribute source_api_key
22
+ # (Optional) An API key for the organization containing the source namespace
23
+ #
24
+ # @return [String, nil]
25
+ optional :source_api_key, String
26
+
27
+ # @!attribute source_region
28
+ # (Optional) The region of the source namespace.
29
+ #
30
+ # @return [String, nil]
31
+ optional :source_region, String
32
+
33
+ # @!method initialize(source_namespace:, source_api_key: nil, source_region: nil)
34
+ # @param source_namespace [String] The namespace to copy documents from.
35
+ #
36
+ # @param source_api_key [String] (Optional) An API key for the organization containing the source namespace
37
+ #
38
+ # @param source_region [String] (Optional) The region of the source namespace.
39
+ end
40
+
41
+ # @!method self.variants
42
+ # @return [Array(String, Turbopuffer::Models::CopyFromNamespaceParams::CopyFromNamespaceConfig)]
43
+ end
44
+ end
45
+ end
@@ -12,11 +12,17 @@ module Turbopuffer
12
12
  # @return [String, nil]
13
13
  optional :namespace, String
14
14
 
15
+ # @!attribute branch_from_namespace
16
+ # The namespace to create an instant, copy-on-write clone of.
17
+ #
18
+ # @return [String, Turbopuffer::Models::BranchFromNamespaceParams::BranchFromNamespaceConfig, nil]
19
+ optional :branch_from_namespace, union: -> { Turbopuffer::BranchFromNamespaceParams }
20
+
15
21
  # @!attribute copy_from_namespace
16
22
  # The namespace to copy documents from.
17
23
  #
18
- # @return [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig, nil]
19
- optional :copy_from_namespace, union: -> { Turbopuffer::NamespaceWriteParams::CopyFromNamespace }
24
+ # @return [String, Turbopuffer::Models::CopyFromNamespaceParams::CopyFromNamespaceConfig, nil]
25
+ optional :copy_from_namespace, union: -> { Turbopuffer::CopyFromNamespaceParams }
20
26
 
21
27
  # @!attribute delete_by_filter
22
28
  # The filter specifying which documents to delete.
@@ -124,13 +130,15 @@ module Turbopuffer
124
130
  # @return [Array<Turbopuffer::Models::Row>, nil]
125
131
  optional :upsert_rows, -> { Turbopuffer::Internal::Type::ArrayOf[Turbopuffer::Row] }
126
132
 
127
- # @!method initialize(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, return_affected_ids: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
133
+ # @!method initialize(namespace: nil, branch_from_namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, return_affected_ids: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
128
134
  # Some parameter documentations has been truncated, see
129
135
  # {Turbopuffer::Models::NamespaceWriteParams} for more details.
130
136
  #
131
137
  # @param namespace [String]
132
138
  #
133
- # @param copy_from_namespace [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig] The namespace to copy documents from.
139
+ # @param branch_from_namespace [String, Turbopuffer::Models::BranchFromNamespaceParams::BranchFromNamespaceConfig] The namespace to create an instant, copy-on-write clone of.
140
+ #
141
+ # @param copy_from_namespace [String, Turbopuffer::Models::CopyFromNamespaceParams::CopyFromNamespaceConfig] The namespace to copy documents from.
134
142
  #
135
143
  # @param delete_by_filter [Object] The filter specifying which documents to delete.
136
144
  #
@@ -168,46 +176,6 @@ module Turbopuffer
168
176
  #
169
177
  # @param request_options [Turbopuffer::RequestOptions, Hash{Symbol=>Object}]
170
178
 
171
- # The namespace to copy documents from.
172
- module CopyFromNamespace
173
- extend Turbopuffer::Internal::Type::Union
174
-
175
- # The namespace to copy documents from.
176
- variant String
177
-
178
- variant -> { Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig }
179
-
180
- class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
181
- # @!attribute source_namespace
182
- # The namespace to copy documents from.
183
- #
184
- # @return [String]
185
- required :source_namespace, String
186
-
187
- # @!attribute source_api_key
188
- # (Optional) An API key for the organization containing the source namespace
189
- #
190
- # @return [String, nil]
191
- optional :source_api_key, String
192
-
193
- # @!attribute source_region
194
- # (Optional) The region of the source namespace.
195
- #
196
- # @return [String, nil]
197
- optional :source_region, String
198
-
199
- # @!method initialize(source_namespace:, source_api_key: nil, source_region: nil)
200
- # @param source_namespace [String] The namespace to copy documents from.
201
- #
202
- # @param source_api_key [String] (Optional) An API key for the organization containing the source namespace
203
- #
204
- # @param source_region [String] (Optional) The region of the source namespace.
205
- end
206
-
207
- # @!method self.variants
208
- # @return [Array(String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig)]
209
- end
210
-
211
179
  class Encryption < Turbopuffer::Internal::Type::BaseModel
212
180
  # @!attribute cmek
213
181
  #
@@ -42,6 +42,12 @@ module Turbopuffer
42
42
  # @return [Array<String, Integer>, nil]
43
43
  optional :patched_ids, -> { Turbopuffer::Internal::Type::ArrayOf[union: Turbopuffer::ID] }
44
44
 
45
+ # @!attribute performance
46
+ # The performance information for a write request.
47
+ #
48
+ # @return [Turbopuffer::Models::WritePerformance, nil]
49
+ optional :performance, -> { Turbopuffer::WritePerformance }
50
+
45
51
  # @!attribute rows_deleted
46
52
  # The number of rows deleted by the write request.
47
53
  #
@@ -73,7 +79,7 @@ module Turbopuffer
73
79
  # @return [Array<String, Integer>, nil]
74
80
  optional :upserted_ids, -> { Turbopuffer::Internal::Type::ArrayOf[union: Turbopuffer::ID] }
75
81
 
76
- # @!method initialize(billing:, message:, rows_affected:, deleted_ids: nil, patched_ids: nil, rows_deleted: nil, rows_patched: nil, rows_remaining: nil, rows_upserted: nil, upserted_ids: nil, status: :OK)
82
+ # @!method initialize(billing:, message:, rows_affected:, deleted_ids: nil, patched_ids: nil, performance: nil, rows_deleted: nil, rows_patched: nil, rows_remaining: nil, rows_upserted: nil, upserted_ids: nil, status: :OK)
77
83
  # Some parameter documentations has been truncated, see
78
84
  # {Turbopuffer::Models::NamespaceWriteResponse} for more details.
79
85
  #
@@ -89,6 +95,8 @@ module Turbopuffer
89
95
  #
90
96
  # @param patched_ids [Array<String, Integer>] The IDs of documents that were patched. Only included when `return_affected_ids`
91
97
  #
98
+ # @param performance [Turbopuffer::Models::WritePerformance] The performance information for a write request.
99
+ #
92
100
  # @param rows_deleted [Integer] The number of rows deleted by the write request.
93
101
  #
94
102
  # @param rows_patched [Integer] The number of rows patched by the write request.
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class WritePerformance < Turbopuffer::Internal::Type::BaseModel
6
+ # @!attribute server_total_ms
7
+ # Request time measured on the server, in milliseconds.
8
+ #
9
+ # @return [Integer]
10
+ required :server_total_ms, Integer
11
+
12
+ # @!method initialize(server_total_ms:)
13
+ # The performance information for a write request.
14
+ #
15
+ # @param server_total_ms [Integer] Request time measured on the server, in milliseconds.
16
+ end
17
+ end
18
+ end
@@ -50,6 +50,8 @@ module Turbopuffer
50
50
 
51
51
  Bm25ClauseParams = Turbopuffer::Models::Bm25ClauseParams
52
52
 
53
+ BranchFromNamespaceParams = Turbopuffer::Models::BranchFromNamespaceParams
54
+
53
55
  ClientNamespacesParams = Turbopuffer::Models::ClientNamespacesParams
54
56
 
55
57
  Columns = Turbopuffer::Models::Columns
@@ -58,6 +60,8 @@ module Turbopuffer
58
60
 
59
61
  ContainsAnyTokenFilterParams = Turbopuffer::Models::ContainsAnyTokenFilterParams
60
62
 
63
+ CopyFromNamespaceParams = Turbopuffer::Models::CopyFromNamespaceParams
64
+
61
65
  DecayParams = Turbopuffer::Models::DecayParams
62
66
 
63
67
  DistanceMetric = Turbopuffer::Models::DistanceMetric
@@ -115,4 +119,6 @@ module Turbopuffer
115
119
  VectorEncoding = Turbopuffer::Models::VectorEncoding
116
120
 
117
121
  WriteBilling = Turbopuffer::Models::WriteBilling
122
+
123
+ WritePerformance = Turbopuffer::Models::WritePerformance
118
124
  end
@@ -307,11 +307,13 @@ module Turbopuffer
307
307
  #
308
308
  # Create, update, or delete documents.
309
309
  #
310
- # @overload write(namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, return_affected_ids: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
310
+ # @overload write(namespace: nil, branch_from_namespace: nil, copy_from_namespace: nil, delete_by_filter: nil, delete_by_filter_allow_partial: nil, delete_condition: nil, deletes: nil, disable_backpressure: nil, distance_metric: nil, encryption: nil, patch_by_filter: nil, patch_by_filter_allow_partial: nil, patch_columns: nil, patch_condition: nil, patch_rows: nil, return_affected_ids: nil, schema: nil, upsert_columns: nil, upsert_condition: nil, upsert_rows: nil, request_options: {})
311
311
  #
312
312
  # @param namespace [String] Path param: The name of the namespace.
313
313
  #
314
- # @param copy_from_namespace [String, Turbopuffer::Models::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig] Body param: The namespace to copy documents from.
314
+ # @param branch_from_namespace [String, Turbopuffer::Models::BranchFromNamespaceParams::BranchFromNamespaceConfig] Body param: The namespace to create an instant, copy-on-write clone of.
315
+ #
316
+ # @param copy_from_namespace [String, Turbopuffer::Models::CopyFromNamespaceParams::CopyFromNamespaceConfig] Body param: The namespace to copy documents from.
315
317
  #
316
318
  # @param delete_by_filter [Object] Body param: The filter specifying which documents to delete.
317
319
  #
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Turbopuffer
4
- VERSION = "1.16.0"
4
+ VERSION = "1.18.0"
5
5
  end
data/lib/turbopuffer.rb CHANGED
@@ -58,10 +58,12 @@ require_relative "turbopuffer/models/attribute_schema"
58
58
  require_relative "turbopuffer/models/attribute_schema_config"
59
59
  require_relative "turbopuffer/models/attribute_type"
60
60
  require_relative "turbopuffer/models/bm25_clause_params"
61
+ require_relative "turbopuffer/models/branch_from_namespace_params"
61
62
  require_relative "turbopuffer/models/client_namespaces_params"
62
63
  require_relative "turbopuffer/models/columns"
63
64
  require_relative "turbopuffer/models/contains_all_tokens_filter_params"
64
65
  require_relative "turbopuffer/models/contains_any_token_filter_params"
66
+ require_relative "turbopuffer/models/copy_from_namespace_params"
65
67
  require_relative "turbopuffer/models/decay_params"
66
68
  require_relative "turbopuffer/models/distance_metric"
67
69
  require_relative "turbopuffer/models/full_text_search"
@@ -100,6 +102,7 @@ require_relative "turbopuffer/models/tokenizer"
100
102
  require_relative "turbopuffer/models/vector"
101
103
  require_relative "turbopuffer/models/vector_encoding"
102
104
  require_relative "turbopuffer/models/write_billing"
105
+ require_relative "turbopuffer/models/write_performance"
103
106
  require_relative "turbopuffer/models"
104
107
  require_relative "turbopuffer/resources/namespaces"
105
108
  require_relative "turbopuffer/namespace"
@@ -6,7 +6,7 @@ module Turbopuffer
6
6
 
7
7
  DEFAULT_TIMEOUT_IN_SECONDS = T.let(60.0, Float)
8
8
 
9
- DEFAULT_INITIAL_RETRY_DELAY = T.let(0.3, Float)
9
+ DEFAULT_INITIAL_RETRY_DELAY = T.let(0.25, Float)
10
10
 
11
11
  DEFAULT_MAX_RETRY_DELAY = T.let(8.0, Float)
12
12
 
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # The namespace to create an instant, copy-on-write clone of.
6
+ module BranchFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ String,
13
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig
14
+ )
15
+ end
16
+
17
+ class BranchFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
18
+ OrHash =
19
+ T.type_alias do
20
+ T.any(
21
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig,
22
+ Turbopuffer::Internal::AnyHash
23
+ )
24
+ end
25
+
26
+ # The namespace to create an instant, copy-on-write clone of.
27
+ sig { returns(String) }
28
+ attr_accessor :source_namespace
29
+
30
+ sig { params(source_namespace: String).returns(T.attached_class) }
31
+ def self.new(
32
+ # The namespace to create an instant, copy-on-write clone of.
33
+ source_namespace:
34
+ )
35
+ end
36
+
37
+ sig { override.returns({ source_namespace: String }) }
38
+ def to_hash
39
+ end
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ T::Array[Turbopuffer::BranchFromNamespaceParams::Variants]
45
+ )
46
+ end
47
+ def self.variants
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,83 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ # The namespace to copy documents from.
6
+ module CopyFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ Variants =
10
+ T.type_alias do
11
+ T.any(
12
+ String,
13
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig
14
+ )
15
+ end
16
+
17
+ class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
18
+ OrHash =
19
+ T.type_alias do
20
+ T.any(
21
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig,
22
+ Turbopuffer::Internal::AnyHash
23
+ )
24
+ end
25
+
26
+ # The namespace to copy documents from.
27
+ sig { returns(String) }
28
+ attr_accessor :source_namespace
29
+
30
+ # (Optional) An API key for the organization containing the source namespace
31
+ sig { returns(T.nilable(String)) }
32
+ attr_reader :source_api_key
33
+
34
+ sig { params(source_api_key: String).void }
35
+ attr_writer :source_api_key
36
+
37
+ # (Optional) The region of the source namespace.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :source_region
40
+
41
+ sig { params(source_region: String).void }
42
+ attr_writer :source_region
43
+
44
+ sig do
45
+ params(
46
+ source_namespace: String,
47
+ source_api_key: String,
48
+ source_region: String
49
+ ).returns(T.attached_class)
50
+ end
51
+ def self.new(
52
+ # The namespace to copy documents from.
53
+ source_namespace:,
54
+ # (Optional) An API key for the organization containing the source namespace
55
+ source_api_key: nil,
56
+ # (Optional) The region of the source namespace.
57
+ source_region: nil
58
+ )
59
+ end
60
+
61
+ sig do
62
+ override.returns(
63
+ {
64
+ source_namespace: String,
65
+ source_api_key: String,
66
+ source_region: String
67
+ }
68
+ )
69
+ end
70
+ def to_hash
71
+ end
72
+ end
73
+
74
+ sig do
75
+ override.returns(
76
+ T::Array[Turbopuffer::CopyFromNamespaceParams::Variants]
77
+ )
78
+ end
79
+ def self.variants
80
+ end
81
+ end
82
+ end
83
+ end
@@ -20,13 +20,37 @@ module Turbopuffer
20
20
  sig { params(namespace: String).void }
21
21
  attr_writer :namespace
22
22
 
23
+ # The namespace to create an instant, copy-on-write clone of.
24
+ sig do
25
+ returns(
26
+ T.nilable(
27
+ T.any(
28
+ String,
29
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig
30
+ )
31
+ )
32
+ )
33
+ end
34
+ attr_reader :branch_from_namespace
35
+
36
+ sig do
37
+ params(
38
+ branch_from_namespace:
39
+ T.any(
40
+ String,
41
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig::OrHash
42
+ )
43
+ ).void
44
+ end
45
+ attr_writer :branch_from_namespace
46
+
23
47
  # The namespace to copy documents from.
24
48
  sig do
25
49
  returns(
26
50
  T.nilable(
27
51
  T.any(
28
52
  String,
29
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
53
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig
30
54
  )
31
55
  )
32
56
  )
@@ -38,7 +62,7 @@ module Turbopuffer
38
62
  copy_from_namespace:
39
63
  T.any(
40
64
  String,
41
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
65
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig::OrHash
42
66
  )
43
67
  ).void
44
68
  end
@@ -197,10 +221,15 @@ module Turbopuffer
197
221
  sig do
198
222
  params(
199
223
  namespace: String,
224
+ branch_from_namespace:
225
+ T.any(
226
+ String,
227
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig::OrHash
228
+ ),
200
229
  copy_from_namespace:
201
230
  T.any(
202
231
  String,
203
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
232
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig::OrHash
204
233
  ),
205
234
  delete_by_filter: T.anything,
206
235
  delete_by_filter_allow_partial: T::Boolean,
@@ -229,6 +258,8 @@ module Turbopuffer
229
258
  end
230
259
  def self.new(
231
260
  namespace: nil,
261
+ # The namespace to create an instant, copy-on-write clone of.
262
+ branch_from_namespace: nil,
232
263
  # The namespace to copy documents from.
233
264
  copy_from_namespace: nil,
234
265
  # The filter specifying which documents to delete.
@@ -277,10 +308,15 @@ module Turbopuffer
277
308
  override.returns(
278
309
  {
279
310
  namespace: String,
311
+ branch_from_namespace:
312
+ T.any(
313
+ String,
314
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig
315
+ ),
280
316
  copy_from_namespace:
281
317
  T.any(
282
318
  String,
283
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
319
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig
284
320
  ),
285
321
  delete_by_filter: T.anything,
286
322
  delete_by_filter_allow_partial: T::Boolean,
@@ -310,86 +346,6 @@ module Turbopuffer
310
346
  def to_hash
311
347
  end
312
348
 
313
- # The namespace to copy documents from.
314
- module CopyFromNamespace
315
- extend Turbopuffer::Internal::Type::Union
316
-
317
- Variants =
318
- T.type_alias do
319
- T.any(
320
- String,
321
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
322
- )
323
- end
324
-
325
- class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
326
- OrHash =
327
- T.type_alias do
328
- T.any(
329
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig,
330
- Turbopuffer::Internal::AnyHash
331
- )
332
- end
333
-
334
- # The namespace to copy documents from.
335
- sig { returns(String) }
336
- attr_accessor :source_namespace
337
-
338
- # (Optional) An API key for the organization containing the source namespace
339
- sig { returns(T.nilable(String)) }
340
- attr_reader :source_api_key
341
-
342
- sig { params(source_api_key: String).void }
343
- attr_writer :source_api_key
344
-
345
- # (Optional) The region of the source namespace.
346
- sig { returns(T.nilable(String)) }
347
- attr_reader :source_region
348
-
349
- sig { params(source_region: String).void }
350
- attr_writer :source_region
351
-
352
- sig do
353
- params(
354
- source_namespace: String,
355
- source_api_key: String,
356
- source_region: String
357
- ).returns(T.attached_class)
358
- end
359
- def self.new(
360
- # The namespace to copy documents from.
361
- source_namespace:,
362
- # (Optional) An API key for the organization containing the source namespace
363
- source_api_key: nil,
364
- # (Optional) The region of the source namespace.
365
- source_region: nil
366
- )
367
- end
368
-
369
- sig do
370
- override.returns(
371
- {
372
- source_namespace: String,
373
- source_api_key: String,
374
- source_region: String
375
- }
376
- )
377
- end
378
- def to_hash
379
- end
380
- end
381
-
382
- sig do
383
- override.returns(
384
- T::Array[
385
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::Variants
386
- ]
387
- )
388
- end
389
- def self.variants
390
- end
391
- end
392
-
393
349
  class Encryption < Turbopuffer::Internal::Type::BaseModel
394
350
  OrHash =
395
351
  T.type_alias do
@@ -46,6 +46,13 @@ module Turbopuffer
46
46
  sig { params(patched_ids: T::Array[Turbopuffer::ID::Variants]).void }
47
47
  attr_writer :patched_ids
48
48
 
49
+ # The performance information for a write request.
50
+ sig { returns(T.nilable(Turbopuffer::WritePerformance)) }
51
+ attr_reader :performance
52
+
53
+ sig { params(performance: Turbopuffer::WritePerformance::OrHash).void }
54
+ attr_writer :performance
55
+
49
56
  # The number of rows deleted by the write request.
50
57
  sig { returns(T.nilable(Integer)) }
51
58
  attr_reader :rows_deleted
@@ -90,6 +97,7 @@ module Turbopuffer
90
97
  rows_affected: Integer,
91
98
  deleted_ids: T::Array[Turbopuffer::ID::Variants],
92
99
  patched_ids: T::Array[Turbopuffer::ID::Variants],
100
+ performance: Turbopuffer::WritePerformance::OrHash,
93
101
  rows_deleted: Integer,
94
102
  rows_patched: Integer,
95
103
  rows_remaining: T::Boolean,
@@ -111,6 +119,8 @@ module Turbopuffer
111
119
  # The IDs of documents that were patched. Only included when `return_affected_ids`
112
120
  # is true and at least one document was patched.
113
121
  patched_ids: nil,
122
+ # The performance information for a write request.
123
+ performance: nil,
114
124
  # The number of rows deleted by the write request.
115
125
  rows_deleted: nil,
116
126
  # The number of rows patched by the write request.
@@ -136,6 +146,7 @@ module Turbopuffer
136
146
  status: Symbol,
137
147
  deleted_ids: T::Array[Turbopuffer::ID::Variants],
138
148
  patched_ids: T::Array[Turbopuffer::ID::Variants],
149
+ performance: Turbopuffer::WritePerformance,
139
150
  rows_deleted: Integer,
140
151
  rows_patched: Integer,
141
152
  rows_remaining: T::Boolean,
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module Turbopuffer
4
+ module Models
5
+ class WritePerformance < Turbopuffer::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Turbopuffer::WritePerformance, Turbopuffer::Internal::AnyHash)
9
+ end
10
+
11
+ # Request time measured on the server, in milliseconds.
12
+ sig { returns(Integer) }
13
+ attr_accessor :server_total_ms
14
+
15
+ # The performance information for a write request.
16
+ sig { params(server_total_ms: Integer).returns(T.attached_class) }
17
+ def self.new(
18
+ # Request time measured on the server, in milliseconds.
19
+ server_total_ms:
20
+ )
21
+ end
22
+
23
+ sig { override.returns({ server_total_ms: Integer }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
@@ -15,6 +15,8 @@ module Turbopuffer
15
15
 
16
16
  Bm25ClauseParams = Turbopuffer::Models::Bm25ClauseParams
17
17
 
18
+ BranchFromNamespaceParams = Turbopuffer::Models::BranchFromNamespaceParams
19
+
18
20
  ClientNamespacesParams = Turbopuffer::Models::ClientNamespacesParams
19
21
 
20
22
  Columns = Turbopuffer::Models::Columns
@@ -25,6 +27,8 @@ module Turbopuffer
25
27
  ContainsAnyTokenFilterParams =
26
28
  Turbopuffer::Models::ContainsAnyTokenFilterParams
27
29
 
30
+ CopyFromNamespaceParams = Turbopuffer::Models::CopyFromNamespaceParams
31
+
28
32
  DecayParams = Turbopuffer::Models::DecayParams
29
33
 
30
34
  DistanceMetric = Turbopuffer::Models::DistanceMetric
@@ -83,4 +87,6 @@ module Turbopuffer
83
87
  VectorEncoding = Turbopuffer::Models::VectorEncoding
84
88
 
85
89
  WriteBilling = Turbopuffer::Models::WriteBilling
90
+
91
+ WritePerformance = Turbopuffer::Models::WritePerformance
86
92
  end
@@ -238,10 +238,15 @@ module Turbopuffer
238
238
  sig do
239
239
  params(
240
240
  namespace: String,
241
+ branch_from_namespace:
242
+ T.any(
243
+ String,
244
+ Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig::OrHash
245
+ ),
241
246
  copy_from_namespace:
242
247
  T.any(
243
248
  String,
244
- Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig::OrHash
249
+ Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig::OrHash
245
250
  ),
246
251
  delete_by_filter: T.anything,
247
252
  delete_by_filter_allow_partial: T::Boolean,
@@ -271,6 +276,8 @@ module Turbopuffer
271
276
  def write(
272
277
  # Path param: The name of the namespace.
273
278
  namespace: nil,
279
+ # Body param: The namespace to create an instant, copy-on-write clone of.
280
+ branch_from_namespace: nil,
274
281
  # Body param: The namespace to copy documents from.
275
282
  copy_from_namespace: nil,
276
283
  # Body param: The filter specifying which documents to delete.
@@ -0,0 +1,22 @@
1
+ module Turbopuffer
2
+ module Models
3
+ type branch_from_namespace_params =
4
+ String | Turbopuffer::BranchFromNamespaceParams::BranchFromNamespaceConfig
5
+
6
+ module BranchFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ type branch_from_namespace_config = { source_namespace: String }
10
+
11
+ class BranchFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
12
+ attr_accessor source_namespace: String
13
+
14
+ def initialize: (source_namespace: String) -> void
15
+
16
+ def to_hash: -> { source_namespace: String }
17
+ end
18
+
19
+ def self?.variants: -> ::Array[Turbopuffer::Models::branch_from_namespace_params]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,43 @@
1
+ module Turbopuffer
2
+ module Models
3
+ type copy_from_namespace_params =
4
+ String | Turbopuffer::CopyFromNamespaceParams::CopyFromNamespaceConfig
5
+
6
+ module CopyFromNamespaceParams
7
+ extend Turbopuffer::Internal::Type::Union
8
+
9
+ type copy_from_namespace_config =
10
+ {
11
+ source_namespace: String,
12
+ source_api_key: String,
13
+ source_region: String
14
+ }
15
+
16
+ class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
17
+ attr_accessor source_namespace: String
18
+
19
+ attr_reader source_api_key: String?
20
+
21
+ def source_api_key=: (String) -> String
22
+
23
+ attr_reader source_region: String?
24
+
25
+ def source_region=: (String) -> String
26
+
27
+ def initialize: (
28
+ source_namespace: String,
29
+ ?source_api_key: String,
30
+ ?source_region: String
31
+ ) -> void
32
+
33
+ def to_hash: -> {
34
+ source_namespace: String,
35
+ source_api_key: String,
36
+ source_region: String
37
+ }
38
+ end
39
+
40
+ def self?.variants: -> ::Array[Turbopuffer::Models::copy_from_namespace_params]
41
+ end
42
+ end
43
+ end
@@ -3,7 +3,8 @@ module Turbopuffer
3
3
  type namespace_write_params =
4
4
  {
5
5
  namespace: String,
6
- copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
6
+ branch_from_namespace: Turbopuffer::Models::branch_from_namespace_params,
7
+ copy_from_namespace: Turbopuffer::Models::copy_from_namespace_params,
7
8
  delete_by_filter: top,
8
9
  delete_by_filter_allow_partial: bool,
9
10
  delete_condition: top,
@@ -32,11 +33,17 @@ module Turbopuffer
32
33
 
33
34
  def namespace=: (String) -> String
34
35
 
35
- attr_reader copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace?
36
+ attr_reader branch_from_namespace: Turbopuffer::Models::branch_from_namespace_params?
37
+
38
+ def branch_from_namespace=: (
39
+ Turbopuffer::Models::branch_from_namespace_params
40
+ ) -> Turbopuffer::Models::branch_from_namespace_params
41
+
42
+ attr_reader copy_from_namespace: Turbopuffer::Models::copy_from_namespace_params?
36
43
 
37
44
  def copy_from_namespace=: (
38
- Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace
39
- ) -> Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace
45
+ Turbopuffer::Models::copy_from_namespace_params
46
+ ) -> Turbopuffer::Models::copy_from_namespace_params
40
47
 
41
48
  attr_reader delete_by_filter: top?
42
49
 
@@ -118,7 +125,8 @@ module Turbopuffer
118
125
 
119
126
  def initialize: (
120
127
  ?namespace: String,
121
- ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
128
+ ?branch_from_namespace: Turbopuffer::Models::branch_from_namespace_params,
129
+ ?copy_from_namespace: Turbopuffer::Models::copy_from_namespace_params,
122
130
  ?delete_by_filter: top,
123
131
  ?delete_by_filter_allow_partial: bool,
124
132
  ?delete_condition: top,
@@ -141,7 +149,8 @@ module Turbopuffer
141
149
 
142
150
  def to_hash: -> {
143
151
  namespace: String,
144
- copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
152
+ branch_from_namespace: Turbopuffer::Models::branch_from_namespace_params,
153
+ copy_from_namespace: Turbopuffer::Models::copy_from_namespace_params,
145
154
  delete_by_filter: top,
146
155
  delete_by_filter_allow_partial: bool,
147
156
  delete_condition: top,
@@ -162,47 +171,6 @@ module Turbopuffer
162
171
  request_options: Turbopuffer::RequestOptions
163
172
  }
164
173
 
165
- type copy_from_namespace =
166
- String
167
- | Turbopuffer::NamespaceWriteParams::CopyFromNamespace::CopyFromNamespaceConfig
168
-
169
- module CopyFromNamespace
170
- extend Turbopuffer::Internal::Type::Union
171
-
172
- type copy_from_namespace_config =
173
- {
174
- source_namespace: String,
175
- source_api_key: String,
176
- source_region: String
177
- }
178
-
179
- class CopyFromNamespaceConfig < Turbopuffer::Internal::Type::BaseModel
180
- attr_accessor source_namespace: String
181
-
182
- attr_reader source_api_key: String?
183
-
184
- def source_api_key=: (String) -> String
185
-
186
- attr_reader source_region: String?
187
-
188
- def source_region=: (String) -> String
189
-
190
- def initialize: (
191
- source_namespace: String,
192
- ?source_api_key: String,
193
- ?source_region: String
194
- ) -> void
195
-
196
- def to_hash: -> {
197
- source_namespace: String,
198
- source_api_key: String,
199
- source_region: String
200
- }
201
- end
202
-
203
- def self?.variants: -> ::Array[Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace]
204
- end
205
-
206
174
  type encryption =
207
175
  { cmek: Turbopuffer::NamespaceWriteParams::Encryption::Cmek }
208
176
 
@@ -8,6 +8,7 @@ module Turbopuffer
8
8
  status: :OK,
9
9
  deleted_ids: ::Array[Turbopuffer::Models::id],
10
10
  patched_ids: ::Array[Turbopuffer::Models::id],
11
+ performance: Turbopuffer::WritePerformance,
11
12
  rows_deleted: Integer,
12
13
  rows_patched: Integer,
13
14
  rows_remaining: bool,
@@ -36,6 +37,12 @@ module Turbopuffer
36
37
  ::Array[Turbopuffer::Models::id]
37
38
  ) -> ::Array[Turbopuffer::Models::id]
38
39
 
40
+ attr_reader performance: Turbopuffer::WritePerformance?
41
+
42
+ def performance=: (
43
+ Turbopuffer::WritePerformance
44
+ ) -> Turbopuffer::WritePerformance
45
+
39
46
  attr_reader rows_deleted: Integer?
40
47
 
41
48
  def rows_deleted=: (Integer) -> Integer
@@ -64,6 +71,7 @@ module Turbopuffer
64
71
  rows_affected: Integer,
65
72
  ?deleted_ids: ::Array[Turbopuffer::Models::id],
66
73
  ?patched_ids: ::Array[Turbopuffer::Models::id],
74
+ ?performance: Turbopuffer::WritePerformance,
67
75
  ?rows_deleted: Integer,
68
76
  ?rows_patched: Integer,
69
77
  ?rows_remaining: bool,
@@ -79,6 +87,7 @@ module Turbopuffer
79
87
  status: :OK,
80
88
  deleted_ids: ::Array[Turbopuffer::Models::id],
81
89
  patched_ids: ::Array[Turbopuffer::Models::id],
90
+ performance: Turbopuffer::WritePerformance,
82
91
  rows_deleted: Integer,
83
92
  rows_patched: Integer,
84
93
  rows_remaining: bool,
@@ -0,0 +1,13 @@
1
+ module Turbopuffer
2
+ module Models
3
+ type write_performance = { server_total_ms: Integer }
4
+
5
+ class WritePerformance < Turbopuffer::Internal::Type::BaseModel
6
+ attr_accessor server_total_ms: Integer
7
+
8
+ def initialize: (server_total_ms: Integer) -> void
9
+
10
+ def to_hash: -> { server_total_ms: Integer }
11
+ end
12
+ end
13
+ end
@@ -9,6 +9,8 @@ module Turbopuffer
9
9
 
10
10
  class Bm25ClauseParams = Turbopuffer::Models::Bm25ClauseParams
11
11
 
12
+ module BranchFromNamespaceParams = Turbopuffer::Models::BranchFromNamespaceParams
13
+
12
14
  class ClientNamespacesParams = Turbopuffer::Models::ClientNamespacesParams
13
15
 
14
16
  class Columns = Turbopuffer::Models::Columns
@@ -17,6 +19,8 @@ module Turbopuffer
17
19
 
18
20
  class ContainsAnyTokenFilterParams = Turbopuffer::Models::ContainsAnyTokenFilterParams
19
21
 
22
+ module CopyFromNamespaceParams = Turbopuffer::Models::CopyFromNamespaceParams
23
+
20
24
  class DecayParams = Turbopuffer::Models::DecayParams
21
25
 
22
26
  module DistanceMetric = Turbopuffer::Models::DistanceMetric
@@ -74,4 +78,6 @@ module Turbopuffer
74
78
  module VectorEncoding = Turbopuffer::Models::VectorEncoding
75
79
 
76
80
  class WriteBilling = Turbopuffer::Models::WriteBilling
81
+
82
+ class WritePerformance = Turbopuffer::Models::WritePerformance
77
83
  end
@@ -78,7 +78,8 @@ module Turbopuffer
78
78
 
79
79
  def write: (
80
80
  ?namespace: String,
81
- ?copy_from_namespace: Turbopuffer::Models::NamespaceWriteParams::copy_from_namespace,
81
+ ?branch_from_namespace: Turbopuffer::Models::branch_from_namespace_params,
82
+ ?copy_from_namespace: Turbopuffer::Models::copy_from_namespace_params,
82
83
  ?delete_by_filter: top,
83
84
  ?delete_by_filter_allow_partial: bool,
84
85
  ?delete_condition: 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: 1.16.0
4
+ version: 1.18.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-03-16 00:00:00.000000000 Z
11
+ date: 2026-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi
@@ -75,10 +75,12 @@ files:
75
75
  - lib/turbopuffer/models/attribute_schema_config.rb
76
76
  - lib/turbopuffer/models/attribute_type.rb
77
77
  - lib/turbopuffer/models/bm25_clause_params.rb
78
+ - lib/turbopuffer/models/branch_from_namespace_params.rb
78
79
  - lib/turbopuffer/models/client_namespaces_params.rb
79
80
  - lib/turbopuffer/models/columns.rb
80
81
  - lib/turbopuffer/models/contains_all_tokens_filter_params.rb
81
82
  - lib/turbopuffer/models/contains_any_token_filter_params.rb
83
+ - lib/turbopuffer/models/copy_from_namespace_params.rb
82
84
  - lib/turbopuffer/models/decay_params.rb
83
85
  - lib/turbopuffer/models/distance_metric.rb
84
86
  - lib/turbopuffer/models/full_text_search.rb
@@ -117,6 +119,7 @@ files:
117
119
  - lib/turbopuffer/models/vector.rb
118
120
  - lib/turbopuffer/models/vector_encoding.rb
119
121
  - lib/turbopuffer/models/write_billing.rb
122
+ - lib/turbopuffer/models/write_performance.rb
120
123
  - lib/turbopuffer/namespace.rb
121
124
  - lib/turbopuffer/request_options.rb
122
125
  - lib/turbopuffer/resources/namespaces.rb
@@ -147,10 +150,12 @@ files:
147
150
  - rbi/turbopuffer/models/attribute_schema_config.rbi
148
151
  - rbi/turbopuffer/models/attribute_type.rbi
149
152
  - rbi/turbopuffer/models/bm25_clause_params.rbi
153
+ - rbi/turbopuffer/models/branch_from_namespace_params.rbi
150
154
  - rbi/turbopuffer/models/client_namespaces_params.rbi
151
155
  - rbi/turbopuffer/models/columns.rbi
152
156
  - rbi/turbopuffer/models/contains_all_tokens_filter_params.rbi
153
157
  - rbi/turbopuffer/models/contains_any_token_filter_params.rbi
158
+ - rbi/turbopuffer/models/copy_from_namespace_params.rbi
154
159
  - rbi/turbopuffer/models/decay_params.rbi
155
160
  - rbi/turbopuffer/models/distance_metric.rbi
156
161
  - rbi/turbopuffer/models/full_text_search.rbi
@@ -189,6 +194,7 @@ files:
189
194
  - rbi/turbopuffer/models/vector.rbi
190
195
  - rbi/turbopuffer/models/vector_encoding.rbi
191
196
  - rbi/turbopuffer/models/write_billing.rbi
197
+ - rbi/turbopuffer/models/write_performance.rbi
192
198
  - rbi/turbopuffer/namespace.rbi
193
199
  - rbi/turbopuffer/request_options.rbi
194
200
  - rbi/turbopuffer/resources/namespaces.rbi
@@ -218,10 +224,12 @@ files:
218
224
  - sig/turbopuffer/models/attribute_schema_config.rbs
219
225
  - sig/turbopuffer/models/attribute_type.rbs
220
226
  - sig/turbopuffer/models/bm25_clause_params.rbs
227
+ - sig/turbopuffer/models/branch_from_namespace_params.rbs
221
228
  - sig/turbopuffer/models/client_namespaces_params.rbs
222
229
  - sig/turbopuffer/models/columns.rbs
223
230
  - sig/turbopuffer/models/contains_all_tokens_filter_params.rbs
224
231
  - sig/turbopuffer/models/contains_any_token_filter_params.rbs
232
+ - sig/turbopuffer/models/copy_from_namespace_params.rbs
225
233
  - sig/turbopuffer/models/decay_params.rbs
226
234
  - sig/turbopuffer/models/distance_metric.rbs
227
235
  - sig/turbopuffer/models/full_text_search.rbs
@@ -260,6 +268,7 @@ files:
260
268
  - sig/turbopuffer/models/vector.rbs
261
269
  - sig/turbopuffer/models/vector_encoding.rbs
262
270
  - sig/turbopuffer/models/write_billing.rbs
271
+ - sig/turbopuffer/models/write_performance.rbs
263
272
  - sig/turbopuffer/namespace.rbs
264
273
  - sig/turbopuffer/request_options.rbs
265
274
  - sig/turbopuffer/resources/namespaces.rbs