weft-sdk 0.7.0 → 0.9.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.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. data/docs/APIKeysApi.md +1 -2
  3. data/docs/AccountApi.md +6 -5
  4. data/docs/AccountDetails.md +2 -1
  5. data/docs/ApiKey.md +0 -1
  6. data/docs/ApiKeyCreated.md +0 -1
  7. data/docs/ApiKeyCreatedResponse.md +0 -1
  8. data/docs/ApiKeyListResponse.md +0 -1
  9. data/docs/AuthApi.md +6 -7
  10. data/docs/AuthResponse.md +0 -1
  11. data/docs/AuthResponseData.md +0 -1
  12. data/docs/BalanceApi.md +1 -2
  13. data/docs/BalanceResponse.md +3 -4
  14. data/docs/ConfirmRequest.md +0 -1
  15. data/docs/CreateApiKeyRequest.md +0 -1
  16. data/docs/DefaultApi.md +0 -1
  17. data/docs/EnrolledResource.md +0 -1
  18. data/docs/Error.md +0 -1
  19. data/docs/ErrorResponse.md +0 -1
  20. data/docs/Fetch403Response.md +0 -1
  21. data/docs/FetchApi.md +10 -7
  22. data/docs/FetchBalanceSnapshot.md +2 -3
  23. data/docs/FetchErrorResponse.md +0 -1
  24. data/docs/FetchRequest.md +0 -1
  25. data/docs/FetchRequestBody.md +0 -1
  26. data/docs/FetchResponse.md +5 -2
  27. data/docs/InsufficientScopeResponse.md +0 -1
  28. data/docs/MeApiKey.md +0 -1
  29. data/docs/MeApiKeyCreator.md +0 -1
  30. data/docs/MeResponse.md +1 -2
  31. data/docs/MeResponseData.md +78 -0
  32. data/docs/Merchant.md +0 -1
  33. data/docs/MessageResponse.md +0 -1
  34. data/docs/MessageResponseData.md +0 -1
  35. data/docs/Pagination.md +0 -1
  36. data/docs/PasswordResetRequest.md +0 -1
  37. data/docs/PasswordUpdateRequest.md +0 -1
  38. data/docs/Payment.md +0 -3
  39. data/docs/PaymentListResponse.md +0 -1
  40. data/docs/PaymentResponse.md +0 -1
  41. data/docs/PaymentsApi.md +0 -1
  42. data/docs/PrincipalWallet.md +19 -0
  43. data/docs/PromoBalance.md +0 -1
  44. data/docs/Purchase.md +43 -0
  45. data/docs/PurchaseArtifact.md +23 -0
  46. data/docs/PurchaseListResponse.md +19 -0
  47. data/docs/PurchaseResponse.md +17 -0
  48. data/docs/PurchasesApi.md +148 -0
  49. data/docs/ResendConfirmationRequest.md +0 -1
  50. data/docs/ResourceEnrollmentRequest.md +0 -1
  51. data/docs/ResourceEnrollmentResponse.md +0 -1
  52. data/docs/ResourceStats.md +0 -1
  53. data/docs/ResourcesApi.md +2 -3
  54. data/docs/SearchApi.md +2 -3
  55. data/docs/SearchCapabilityRef.md +19 -0
  56. data/docs/SearchEndpointCall.md +23 -0
  57. data/docs/SearchEndpointHit.md +41 -0
  58. data/docs/SearchEndpointPrice.md +25 -0
  59. data/docs/SearchErrorResponse.md +0 -1
  60. data/docs/SearchFilterSpec.md +23 -0
  61. data/docs/SearchPaymentOffer.md +31 -0
  62. data/docs/SearchPriceAtomicFilter.md +25 -0
  63. data/docs/SearchPriceUsdFilter.md +25 -0
  64. data/docs/SearchProtocolFilter.md +19 -0
  65. data/docs/SearchProviderRef.md +21 -0
  66. data/docs/SearchRequest.md +3 -4
  67. data/docs/SearchResourceTypeFilter.md +19 -0
  68. data/docs/SearchResponse.md +35 -8
  69. data/docs/SearchResponseWarningsInner.md +23 -0
  70. data/docs/SearchResult.md +8 -21
  71. data/docs/SignInRequest.md +0 -1
  72. data/docs/SignUpRequest.md +0 -1
  73. data/docs/SpendingPolicy.md +0 -1
  74. data/docs/User.md +0 -1
  75. data/docs/UserPrincipal.md +33 -0
  76. data/docs/Wallet.md +3 -4
  77. data/lib/weft/generated/api/account_api.rb +6 -4
  78. data/lib/weft/generated/api/api_keys_api.rb +4 -4
  79. data/lib/weft/generated/api/auth_api.rb +14 -14
  80. data/lib/weft/generated/api/balance_api.rb +4 -4
  81. data/lib/weft/generated/api/default_api.rb +2 -2
  82. data/lib/weft/generated/api/fetch_api.rb +22 -6
  83. data/lib/weft/generated/api/payments_api.rb +2 -2
  84. data/lib/weft/generated/api/purchases_api.rb +150 -0
  85. data/lib/weft/generated/api/resources_api.rb +6 -6
  86. data/lib/weft/generated/api/search_api.rb +6 -6
  87. data/lib/weft/generated/api_client.rb +2 -2
  88. data/lib/weft/generated/api_error.rb +2 -2
  89. data/lib/weft/generated/api_model_base.rb +2 -2
  90. data/lib/weft/generated/configuration.rb +2 -2
  91. data/lib/weft/generated/models/account_details.rb +54 -4
  92. data/lib/weft/generated/models/api_key.rb +2 -2
  93. data/lib/weft/generated/models/api_key_created.rb +2 -2
  94. data/lib/weft/generated/models/api_key_created_response.rb +2 -2
  95. data/lib/weft/generated/models/api_key_list_response.rb +2 -2
  96. data/lib/weft/generated/models/auth_response.rb +2 -2
  97. data/lib/weft/generated/models/auth_response_data.rb +2 -2
  98. data/lib/weft/generated/models/balance_response.rb +5 -5
  99. data/lib/weft/generated/models/confirm_request.rb +2 -2
  100. data/lib/weft/generated/models/create_api_key_request.rb +2 -2
  101. data/lib/weft/generated/models/enrolled_resource.rb +4 -4
  102. data/lib/weft/generated/models/error.rb +3 -3
  103. data/lib/weft/generated/models/error_response.rb +3 -3
  104. data/lib/weft/generated/models/fetch403_response.rb +2 -2
  105. data/lib/weft/generated/models/fetch_balance_snapshot.rb +5 -5
  106. data/lib/weft/generated/models/fetch_error_response.rb +5 -5
  107. data/lib/weft/generated/models/fetch_request.rb +5 -5
  108. data/lib/weft/generated/models/fetch_request_body.rb +2 -2
  109. data/lib/weft/generated/models/fetch_response.rb +83 -5
  110. data/lib/weft/generated/models/insufficient_scope_response.rb +3 -3
  111. data/lib/weft/generated/models/me_api_key.rb +2 -2
  112. data/lib/weft/generated/models/me_api_key_creator.rb +3 -3
  113. data/lib/weft/generated/models/me_response.rb +3 -3
  114. data/lib/weft/generated/models/me_response_data.rb +55 -0
  115. data/lib/weft/generated/models/merchant.rb +2 -2
  116. data/lib/weft/generated/models/message_response.rb +2 -2
  117. data/lib/weft/generated/models/message_response_data.rb +2 -2
  118. data/lib/weft/generated/models/pagination.rb +2 -2
  119. data/lib/weft/generated/models/password_reset_request.rb +2 -2
  120. data/lib/weft/generated/models/password_update_request.rb +2 -2
  121. data/lib/weft/generated/models/payment.rb +3 -12
  122. data/lib/weft/generated/models/payment_list_response.rb +2 -2
  123. data/lib/weft/generated/models/payment_response.rb +2 -2
  124. data/lib/weft/generated/models/principal_wallet.rb +190 -0
  125. data/lib/weft/generated/models/promo_balance.rb +3 -3
  126. data/lib/weft/generated/models/purchase.rb +427 -0
  127. data/lib/weft/generated/models/{search_agent_card.rb → purchase_artifact.rb} +91 -82
  128. data/lib/weft/generated/models/purchase_list_response.rb +192 -0
  129. data/lib/weft/generated/models/purchase_response.rb +164 -0
  130. data/lib/weft/generated/models/resend_confirmation_request.rb +2 -2
  131. data/lib/weft/generated/models/resource_enrollment_request.rb +5 -5
  132. data/lib/weft/generated/models/resource_enrollment_response.rb +2 -2
  133. data/lib/weft/generated/models/resource_stats.rb +2 -2
  134. data/lib/weft/generated/models/{search_skill_endpoint.rb → search_capability_ref.rb} +18 -19
  135. data/lib/weft/generated/models/search_endpoint_call.rb +179 -0
  136. data/lib/weft/generated/models/search_endpoint_hit.rb +296 -0
  137. data/lib/weft/generated/models/{search_skill.rb → search_endpoint_price.rb} +76 -112
  138. data/lib/weft/generated/models/search_error_response.rb +5 -5
  139. data/lib/weft/generated/models/search_filter_spec.rb +175 -0
  140. data/lib/weft/generated/models/{search_pricing.rb → search_payment_offer.rb} +64 -67
  141. data/lib/weft/generated/models/search_price_atomic_filter.rb +284 -0
  142. data/lib/weft/generated/models/search_price_usd_filter.rb +294 -0
  143. data/lib/weft/generated/models/search_protocol_filter.rb +200 -0
  144. data/lib/weft/generated/models/{search_endpoints.rb → search_provider_ref.rb} +26 -36
  145. data/lib/weft/generated/models/search_request.rb +36 -27
  146. data/lib/weft/generated/models/search_resource_type_filter.rb +200 -0
  147. data/lib/weft/generated/models/search_response.rb +367 -31
  148. data/lib/weft/generated/models/search_response_warnings_inner.rb +210 -0
  149. data/lib/weft/generated/models/search_result.rb +68 -220
  150. data/lib/weft/generated/models/sign_in_request.rb +2 -2
  151. data/lib/weft/generated/models/sign_up_request.rb +2 -2
  152. data/lib/weft/generated/models/spending_policy.rb +2 -2
  153. data/lib/weft/generated/models/user.rb +2 -2
  154. data/lib/weft/generated/models/user_principal.rb +370 -0
  155. data/lib/weft/generated/models/wallet.rb +5 -5
  156. data/lib/weft/generated/version.rb +3 -3
  157. data/lib/weft/generated.rb +10 -4
  158. data/lib/weft/sdk.rb +1 -1
  159. metadata +57 -19
  160. data/docs/SearchAgentCard.md +0 -34
  161. data/docs/SearchEndpoints.md +0 -24
  162. data/docs/SearchFilters.md +0 -26
  163. data/docs/SearchPricing.md +0 -24
  164. data/docs/SearchRanking.md +0 -26
  165. data/docs/SearchResponseResultsInner.md +0 -36
  166. data/docs/SearchSkill.md +0 -36
  167. data/docs/SearchSkillEndpoint.md +0 -20
  168. data/lib/weft/generated/models/search_filters.rb +0 -277
  169. data/lib/weft/generated/models/search_ranking.rb +0 -277
  170. data/lib/weft/generated/models/search_response_results_inner.rb +0 -103
@@ -0,0 +1,370 @@
1
+ =begin
2
+ #Weft API
3
+
4
+ #The Weft API is the buyer-runtime surface that powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and any third-party agent that wants to discover and pay for paid resources on Weft. v1 covers five buyer concerns: 1. Account onboarding (`/api/v1/auth/*`, `/api/v1/me`) 2. CLI authentication (`/api/v1/api_keys`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Seller-side concerns (agent management, payout analytics, webhook delivery, the public storefront for `data_api` resources) live in the dashboard and are intentionally not documented here. They will be split out into a separate, dashboard-scoped spec when they need to be SDK-consumable. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
5
+
6
+ The version of the OpenAPI document: 0.9.1
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Weft
17
+ # The buyer User represented by an account API key or OAuth token.
18
+ class UserPrincipal < ApiModelBase
19
+ attr_accessor :principal_type
20
+
21
+ attr_accessor :id
22
+
23
+ attr_accessor :email
24
+
25
+ attr_accessor :display_name
26
+
27
+ attr_accessor :status
28
+
29
+ attr_accessor :buyer_enabled
30
+
31
+ attr_accessor :seller_enabled
32
+
33
+ attr_accessor :provisioning_status
34
+
35
+ attr_accessor :wallet
36
+
37
+ class EnumAttributeValidator
38
+ attr_reader :datatype
39
+ attr_reader :allowable_values
40
+
41
+ def initialize(datatype, allowable_values)
42
+ @allowable_values = allowable_values.map do |value|
43
+ case datatype.to_s
44
+ when /Integer/i
45
+ value.to_i
46
+ when /Float/i
47
+ value.to_f
48
+ else
49
+ value
50
+ end
51
+ end
52
+ end
53
+
54
+ def valid?(value)
55
+ !value || allowable_values.include?(value)
56
+ end
57
+ end
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'principal_type' => :'principal_type',
63
+ :'id' => :'id',
64
+ :'email' => :'email',
65
+ :'display_name' => :'display_name',
66
+ :'status' => :'status',
67
+ :'buyer_enabled' => :'buyer_enabled',
68
+ :'seller_enabled' => :'seller_enabled',
69
+ :'provisioning_status' => :'provisioning_status',
70
+ :'wallet' => :'wallet'
71
+ }
72
+ end
73
+
74
+ # Returns attribute mapping this model knows about
75
+ def self.acceptable_attribute_map
76
+ attribute_map
77
+ end
78
+
79
+ # Returns all the JSON keys this model knows about
80
+ def self.acceptable_attributes
81
+ acceptable_attribute_map.values
82
+ end
83
+
84
+ # Attribute type mapping.
85
+ def self.openapi_types
86
+ {
87
+ :'principal_type' => :'String',
88
+ :'id' => :'Integer',
89
+ :'email' => :'String',
90
+ :'display_name' => :'String',
91
+ :'status' => :'String',
92
+ :'buyer_enabled' => :'Boolean',
93
+ :'seller_enabled' => :'Boolean',
94
+ :'provisioning_status' => :'String',
95
+ :'wallet' => :'PrincipalWallet'
96
+ }
97
+ end
98
+
99
+ # List of attributes with nullable: true
100
+ def self.openapi_nullable
101
+ Set.new([
102
+ :'wallet'
103
+ ])
104
+ end
105
+
106
+ # Initializes the object
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ def initialize(attributes = {})
109
+ if (!attributes.is_a?(Hash))
110
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Weft::UserPrincipal` initialize method"
111
+ end
112
+
113
+ # check to see if the attribute exists and convert string to symbol for hash key
114
+ acceptable_attribute_map = self.class.acceptable_attribute_map
115
+ attributes = attributes.each_with_object({}) { |(k, v), h|
116
+ if (!acceptable_attribute_map.key?(k.to_sym))
117
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Weft::UserPrincipal`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
118
+ end
119
+ h[k.to_sym] = v
120
+ }
121
+
122
+ if attributes.key?(:'principal_type')
123
+ self.principal_type = attributes[:'principal_type']
124
+ else
125
+ self.principal_type = nil
126
+ end
127
+
128
+ if attributes.key?(:'id')
129
+ self.id = attributes[:'id']
130
+ else
131
+ self.id = nil
132
+ end
133
+
134
+ if attributes.key?(:'email')
135
+ self.email = attributes[:'email']
136
+ else
137
+ self.email = nil
138
+ end
139
+
140
+ if attributes.key?(:'display_name')
141
+ self.display_name = attributes[:'display_name']
142
+ end
143
+
144
+ if attributes.key?(:'status')
145
+ self.status = attributes[:'status']
146
+ else
147
+ self.status = nil
148
+ end
149
+
150
+ if attributes.key?(:'buyer_enabled')
151
+ self.buyer_enabled = attributes[:'buyer_enabled']
152
+ else
153
+ self.buyer_enabled = nil
154
+ end
155
+
156
+ if attributes.key?(:'seller_enabled')
157
+ self.seller_enabled = attributes[:'seller_enabled']
158
+ else
159
+ self.seller_enabled = nil
160
+ end
161
+
162
+ if attributes.key?(:'provisioning_status')
163
+ self.provisioning_status = attributes[:'provisioning_status']
164
+ else
165
+ self.provisioning_status = nil
166
+ end
167
+
168
+ if attributes.key?(:'wallet')
169
+ self.wallet = attributes[:'wallet']
170
+ else
171
+ self.wallet = nil
172
+ end
173
+ end
174
+
175
+ # Show invalid properties with the reasons. Usually used together with valid?
176
+ # @return Array for valid properties with the reasons
177
+ def list_invalid_properties
178
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
179
+ invalid_properties = Array.new
180
+ if @principal_type.nil?
181
+ invalid_properties.push('invalid value for "principal_type", principal_type cannot be nil.')
182
+ end
183
+
184
+ if @id.nil?
185
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
186
+ end
187
+
188
+ if @email.nil?
189
+ invalid_properties.push('invalid value for "email", email cannot be nil.')
190
+ end
191
+
192
+ if @status.nil?
193
+ invalid_properties.push('invalid value for "status", status cannot be nil.')
194
+ end
195
+
196
+ if @buyer_enabled.nil?
197
+ invalid_properties.push('invalid value for "buyer_enabled", buyer_enabled cannot be nil.')
198
+ end
199
+
200
+ if @seller_enabled.nil?
201
+ invalid_properties.push('invalid value for "seller_enabled", seller_enabled cannot be nil.')
202
+ end
203
+
204
+ if @provisioning_status.nil?
205
+ invalid_properties.push('invalid value for "provisioning_status", provisioning_status cannot be nil.')
206
+ end
207
+
208
+ invalid_properties
209
+ end
210
+
211
+ # Check to see if the all the properties in the model are valid
212
+ # @return true if the model is valid
213
+ def valid?
214
+ warn '[DEPRECATED] the `valid?` method is obsolete'
215
+ return false if @principal_type.nil?
216
+ principal_type_validator = EnumAttributeValidator.new('String', ["user"])
217
+ return false unless principal_type_validator.valid?(@principal_type)
218
+ return false if @id.nil?
219
+ return false if @email.nil?
220
+ return false if @status.nil?
221
+ status_validator = EnumAttributeValidator.new('String', ["active", "blocked"])
222
+ return false unless status_validator.valid?(@status)
223
+ return false if @buyer_enabled.nil?
224
+ return false if @seller_enabled.nil?
225
+ return false if @provisioning_status.nil?
226
+ provisioning_status_validator = EnumAttributeValidator.new('String', ["pending", "ready", "not_applicable"])
227
+ return false unless provisioning_status_validator.valid?(@provisioning_status)
228
+ true
229
+ end
230
+
231
+ # Custom attribute writer method checking allowed values (enum).
232
+ # @param [Object] principal_type Object to be assigned
233
+ def principal_type=(principal_type)
234
+ validator = EnumAttributeValidator.new('String', ["user"])
235
+ unless validator.valid?(principal_type)
236
+ fail ArgumentError, "invalid value for \"principal_type\", must be one of #{validator.allowable_values}."
237
+ end
238
+ @principal_type = principal_type
239
+ end
240
+
241
+ # Custom attribute writer method with validation
242
+ # @param [Object] id Value to be assigned
243
+ def id=(id)
244
+ if id.nil?
245
+ fail ArgumentError, 'id cannot be nil'
246
+ end
247
+
248
+ @id = id
249
+ end
250
+
251
+ # Custom attribute writer method with validation
252
+ # @param [Object] email Value to be assigned
253
+ def email=(email)
254
+ if email.nil?
255
+ fail ArgumentError, 'email cannot be nil'
256
+ end
257
+
258
+ @email = email
259
+ end
260
+
261
+ # Custom attribute writer method checking allowed values (enum).
262
+ # @param [Object] status Object to be assigned
263
+ def status=(status)
264
+ validator = EnumAttributeValidator.new('String', ["active", "blocked"])
265
+ unless validator.valid?(status)
266
+ fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
267
+ end
268
+ @status = status
269
+ end
270
+
271
+ # Custom attribute writer method with validation
272
+ # @param [Object] buyer_enabled Value to be assigned
273
+ def buyer_enabled=(buyer_enabled)
274
+ if buyer_enabled.nil?
275
+ fail ArgumentError, 'buyer_enabled cannot be nil'
276
+ end
277
+
278
+ @buyer_enabled = buyer_enabled
279
+ end
280
+
281
+ # Custom attribute writer method with validation
282
+ # @param [Object] seller_enabled Value to be assigned
283
+ def seller_enabled=(seller_enabled)
284
+ if seller_enabled.nil?
285
+ fail ArgumentError, 'seller_enabled cannot be nil'
286
+ end
287
+
288
+ @seller_enabled = seller_enabled
289
+ end
290
+
291
+ # Custom attribute writer method checking allowed values (enum).
292
+ # @param [Object] provisioning_status Object to be assigned
293
+ def provisioning_status=(provisioning_status)
294
+ validator = EnumAttributeValidator.new('String', ["pending", "ready", "not_applicable"])
295
+ unless validator.valid?(provisioning_status)
296
+ fail ArgumentError, "invalid value for \"provisioning_status\", must be one of #{validator.allowable_values}."
297
+ end
298
+ @provisioning_status = provisioning_status
299
+ end
300
+
301
+ # Checks equality by comparing each attribute.
302
+ # @param [Object] Object to be compared
303
+ def ==(o)
304
+ return true if self.equal?(o)
305
+ self.class == o.class &&
306
+ principal_type == o.principal_type &&
307
+ id == o.id &&
308
+ email == o.email &&
309
+ display_name == o.display_name &&
310
+ status == o.status &&
311
+ buyer_enabled == o.buyer_enabled &&
312
+ seller_enabled == o.seller_enabled &&
313
+ provisioning_status == o.provisioning_status &&
314
+ wallet == o.wallet
315
+ end
316
+
317
+ # @see the `==` method
318
+ # @param [Object] Object to be compared
319
+ def eql?(o)
320
+ self == o
321
+ end
322
+
323
+ # Calculates hash code according to all attributes.
324
+ # @return [Integer] Hash code
325
+ def hash
326
+ [principal_type, id, email, display_name, status, buyer_enabled, seller_enabled, provisioning_status, wallet].hash
327
+ end
328
+
329
+ # Builds the object from hash
330
+ # @param [Hash] attributes Model attributes in the form of hash
331
+ # @return [Object] Returns the model itself
332
+ def self.build_from_hash(attributes)
333
+ return nil unless attributes.is_a?(Hash)
334
+ attributes = attributes.transform_keys(&:to_sym)
335
+ transformed_hash = {}
336
+ openapi_types.each_pair do |key, type|
337
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
338
+ transformed_hash["#{key}"] = nil
339
+ elsif type =~ /\AArray<(.*)>/i
340
+ # check to ensure the input is an array given that the attribute
341
+ # is documented as an array but the input is not
342
+ if attributes[attribute_map[key]].is_a?(Array)
343
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
344
+ end
345
+ elsif !attributes[attribute_map[key]].nil?
346
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
347
+ end
348
+ end
349
+ new(transformed_hash)
350
+ end
351
+
352
+ # Returns the object in the form of hash
353
+ # @return [Hash] Returns the object in the form of hash
354
+ def to_hash
355
+ hash = {}
356
+ self.class.attribute_map.each_pair do |attr, param|
357
+ value = self.send(attr)
358
+ if value.nil?
359
+ is_nullable = self.class.openapi_nullable.include?(attr)
360
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
361
+ end
362
+
363
+ hash[param] = _to_hash(value)
364
+ end
365
+ hash
366
+ end
367
+
368
+ end
369
+
370
+ end
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #Weft API
3
3
 
4
- #The Weft API is the buyer-runtime surface that powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and any third-party agent that wants to discover and pay for paid resources on Weft. v1 covers five buyer concerns: 1. Account onboarding (`/api/v1/auth/*`, `/api/v1/me`) 2. CLI authentication (`/api/v1/api_keys`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/payments`) Seller-side concerns (agent management, payout analytics, webhook delivery, the public storefront for `data_api` resources) live in the dashboard and are intentionally not documented here. They will be split out into a separate, dashboard-scoped spec when they need to be SDK-consumable. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
4
+ #The Weft API is the buyer-runtime surface that powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and any third-party agent that wants to discover and pay for paid resources on Weft. v1 covers five buyer concerns: 1. Account onboarding (`/api/v1/auth/*`, `/api/v1/me`) 2. CLI authentication (`/api/v1/api_keys`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Seller-side concerns (agent management, payout analytics, webhook delivery, the public storefront for `data_api` resources) live in the dashboard and are intentionally not documented here. They will be split out into a separate, dashboard-scoped spec when they need to be SDK-consumable. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
5
5
 
6
- The version of the OpenAPI document: 0.7.0
6
+ The version of the OpenAPI document: 0.9.1
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.19.0
@@ -18,13 +18,13 @@ module Weft
18
18
  # EVM address of the buyer's Privy-managed wallet. Null if no wallet provisioned.
19
19
  attr_accessor :address
20
20
 
21
- # Live Base USDC balance, 2dp. Returns \"0.00\" if the upstream wallet provider is unreachable.
21
+ # Live Base USDC balance, exact to the micro-dollar (up to 6 decimals, minimum 2). Returns \"0.00\" if the upstream wallet provider is unreachable.
22
22
  attr_accessor :balance_usdc
23
23
 
24
- # Aggregated USD value of the allowlisted Tempo TIP-20 dollar tokens on the wallet's paired Tempo chain, 2dp. `null` when the value is UNKNOWN — the Tempo RPC read failed, or no dollar token is allowlisted for that chain yet (e.g. Tempo mainnet pre-launch). A null here is never \"0.00\"; it means \"we couldn't determine it\", and `total_usd` then reflects the Base component only.
24
+ # Aggregated USD value of the allowlisted Tempo TIP-20 dollar tokens on the wallet's paired Tempo chain, exact to the micro-dollar. `null` when the value is UNKNOWN — the Tempo RPC read failed, or no dollar token is allowlisted for that chain yet (e.g. Tempo mainnet pre-launch). A null here is never \"0.00\"; it means \"we couldn't determine it\", and `total_usd` then reflects the Base component only.
25
25
  attr_accessor :tempo_usd
26
26
 
27
- # Single aggregated USD balance = Base USDC + Tempo dollar tokens, 2dp. When `tempo_usd` is null (unavailable/unallowlisted) this equals `balance_usdc` alone. Null when the Base USDC provider is unreachable, because the surface never claims zero for a component it could not read.
27
+ # Single aggregated USD balance = Base USDC + Tempo dollar tokens, exact to the micro-dollar. When `tempo_usd` is null (unavailable/unallowlisted) this equals `balance_usdc` alone. Null when the Base USDC provider is unreachable, because the surface never claims zero for a component it could not read.
28
28
  attr_accessor :total_usd
29
29
 
30
30
  # Wallet network (e.g. `base-sepolia`).
@@ -1,9 +1,9 @@
1
1
  =begin
2
2
  #Weft API
3
3
 
4
- #The Weft API is the buyer-runtime surface that powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and any third-party agent that wants to discover and pay for paid resources on Weft. v1 covers five buyer concerns: 1. Account onboarding (`/api/v1/auth/*`, `/api/v1/me`) 2. CLI authentication (`/api/v1/api_keys`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/payments`) Seller-side concerns (agent management, payout analytics, webhook delivery, the public storefront for `data_api` resources) live in the dashboard and are intentionally not documented here. They will be split out into a separate, dashboard-scoped spec when they need to be SDK-consumable. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
4
+ #The Weft API is the buyer-runtime surface that powers the `weft` CLI, the hosted MCP server (`weft.network/mcp`), and any third-party agent that wants to discover and pay for paid resources on Weft. v1 covers five buyer concerns: 1. Account onboarding (`/api/v1/auth/*`, `/api/v1/me`) 2. CLI authentication (`/api/v1/api_keys`) 3. Wallet visibility (`/api/v1/balance`) 4. Discovery (`/api/v1/search`) 5. Paid execution (`/api/v1/fetch`) 6. Purchase history (`/api/v1/purchases`) Seller-side concerns (agent management, payout analytics, webhook delivery, the public storefront for `data_api` resources) live in the dashboard and are intentionally not documented here. They will be split out into a separate, dashboard-scoped spec when they need to be SDK-consumable. All errors share the envelope defined by `ErrorResponse`, except the buyer-runtime endpoints (`/search`, `/fetch`) which use bespoke envelopes carrying additional context — see `SearchErrorResponse` and `FetchErrorResponse`.
5
5
 
6
- The version of the OpenAPI document: 0.7.0
6
+ The version of the OpenAPI document: 0.9.1
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.19.0
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Weft
14
- VERSION = '0.7.0'
14
+ VERSION = '0.9.1'
15
15
  end
@@ -1,4 +1,10 @@
1
- module Weft
2
- module Generated
3
- end
4
- end
1
+ require 'set'
2
+
3
+ require_relative 'generated/version'
4
+ require_relative 'generated/api_error'
5
+ require_relative 'generated/api_model_base'
6
+ require_relative 'generated/configuration'
7
+ require_relative 'generated/api_client'
8
+
9
+ Dir[File.join(__dir__, 'generated/models/*.rb')].sort.each { |file| require file }
10
+ Dir[File.join(__dir__, 'generated/api/*.rb')].sort.each { |file| require file }
data/lib/weft/sdk.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Weft
2
2
  module SDK
3
- VERSION = '0.7.0'
3
+ VERSION = '0.9.1'
4
4
  end
5
5
  end
6
6
 
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weft-sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Weft Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-07-13 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2026-08-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: typhoeus
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.0'
13
27
  description:
14
28
  email:
15
29
  executables: []
@@ -46,6 +60,7 @@ files:
46
60
  - docs/MeApiKey.md
47
61
  - docs/MeApiKeyCreator.md
48
62
  - docs/MeResponse.md
63
+ - docs/MeResponseData.md
49
64
  - docs/Merchant.md
50
65
  - docs/MessageResponse.md
51
66
  - docs/MessageResponseData.md
@@ -56,29 +71,40 @@ files:
56
71
  - docs/PaymentListResponse.md
57
72
  - docs/PaymentResponse.md
58
73
  - docs/PaymentsApi.md
74
+ - docs/PrincipalWallet.md
59
75
  - docs/PromoBalance.md
76
+ - docs/Purchase.md
77
+ - docs/PurchaseArtifact.md
78
+ - docs/PurchaseListResponse.md
79
+ - docs/PurchaseResponse.md
80
+ - docs/PurchasesApi.md
60
81
  - docs/ResendConfirmationRequest.md
61
82
  - docs/ResourceEnrollmentRequest.md
62
83
  - docs/ResourceEnrollmentResponse.md
63
84
  - docs/ResourceStats.md
64
85
  - docs/ResourcesApi.md
65
- - docs/SearchAgentCard.md
66
86
  - docs/SearchApi.md
67
- - docs/SearchEndpoints.md
87
+ - docs/SearchCapabilityRef.md
88
+ - docs/SearchEndpointCall.md
89
+ - docs/SearchEndpointHit.md
90
+ - docs/SearchEndpointPrice.md
68
91
  - docs/SearchErrorResponse.md
69
- - docs/SearchFilters.md
70
- - docs/SearchPricing.md
71
- - docs/SearchRanking.md
92
+ - docs/SearchFilterSpec.md
93
+ - docs/SearchPaymentOffer.md
94
+ - docs/SearchPriceAtomicFilter.md
95
+ - docs/SearchPriceUsdFilter.md
96
+ - docs/SearchProtocolFilter.md
97
+ - docs/SearchProviderRef.md
72
98
  - docs/SearchRequest.md
99
+ - docs/SearchResourceTypeFilter.md
73
100
  - docs/SearchResponse.md
74
- - docs/SearchResponseResultsInner.md
101
+ - docs/SearchResponseWarningsInner.md
75
102
  - docs/SearchResult.md
76
- - docs/SearchSkill.md
77
- - docs/SearchSkillEndpoint.md
78
103
  - docs/SignInRequest.md
79
104
  - docs/SignUpRequest.md
80
105
  - docs/SpendingPolicy.md
81
106
  - docs/User.md
107
+ - docs/UserPrincipal.md
82
108
  - docs/Wallet.md
83
109
  - lib/weft/facilitator/client.rb
84
110
  - lib/weft/facilitator/fee.rb
@@ -91,6 +117,7 @@ files:
91
117
  - lib/weft/generated/api/default_api.rb
92
118
  - lib/weft/generated/api/fetch_api.rb
93
119
  - lib/weft/generated/api/payments_api.rb
120
+ - lib/weft/generated/api/purchases_api.rb
94
121
  - lib/weft/generated/api/resources_api.rb
95
122
  - lib/weft/generated/api/search_api.rb
96
123
  - lib/weft/generated/api_client.rb
@@ -120,6 +147,7 @@ files:
120
147
  - lib/weft/generated/models/me_api_key.rb
121
148
  - lib/weft/generated/models/me_api_key_creator.rb
122
149
  - lib/weft/generated/models/me_response.rb
150
+ - lib/weft/generated/models/me_response_data.rb
123
151
  - lib/weft/generated/models/merchant.rb
124
152
  - lib/weft/generated/models/message_response.rb
125
153
  - lib/weft/generated/models/message_response_data.rb
@@ -129,27 +157,37 @@ files:
129
157
  - lib/weft/generated/models/payment.rb
130
158
  - lib/weft/generated/models/payment_list_response.rb
131
159
  - lib/weft/generated/models/payment_response.rb
160
+ - lib/weft/generated/models/principal_wallet.rb
132
161
  - lib/weft/generated/models/promo_balance.rb
162
+ - lib/weft/generated/models/purchase.rb
163
+ - lib/weft/generated/models/purchase_artifact.rb
164
+ - lib/weft/generated/models/purchase_list_response.rb
165
+ - lib/weft/generated/models/purchase_response.rb
133
166
  - lib/weft/generated/models/resend_confirmation_request.rb
134
167
  - lib/weft/generated/models/resource_enrollment_request.rb
135
168
  - lib/weft/generated/models/resource_enrollment_response.rb
136
169
  - lib/weft/generated/models/resource_stats.rb
137
- - lib/weft/generated/models/search_agent_card.rb
138
- - lib/weft/generated/models/search_endpoints.rb
170
+ - lib/weft/generated/models/search_capability_ref.rb
171
+ - lib/weft/generated/models/search_endpoint_call.rb
172
+ - lib/weft/generated/models/search_endpoint_hit.rb
173
+ - lib/weft/generated/models/search_endpoint_price.rb
139
174
  - lib/weft/generated/models/search_error_response.rb
140
- - lib/weft/generated/models/search_filters.rb
141
- - lib/weft/generated/models/search_pricing.rb
142
- - lib/weft/generated/models/search_ranking.rb
175
+ - lib/weft/generated/models/search_filter_spec.rb
176
+ - lib/weft/generated/models/search_payment_offer.rb
177
+ - lib/weft/generated/models/search_price_atomic_filter.rb
178
+ - lib/weft/generated/models/search_price_usd_filter.rb
179
+ - lib/weft/generated/models/search_protocol_filter.rb
180
+ - lib/weft/generated/models/search_provider_ref.rb
143
181
  - lib/weft/generated/models/search_request.rb
182
+ - lib/weft/generated/models/search_resource_type_filter.rb
144
183
  - lib/weft/generated/models/search_response.rb
145
- - lib/weft/generated/models/search_response_results_inner.rb
184
+ - lib/weft/generated/models/search_response_warnings_inner.rb
146
185
  - lib/weft/generated/models/search_result.rb
147
- - lib/weft/generated/models/search_skill.rb
148
- - lib/weft/generated/models/search_skill_endpoint.rb
149
186
  - lib/weft/generated/models/sign_in_request.rb
150
187
  - lib/weft/generated/models/sign_up_request.rb
151
188
  - lib/weft/generated/models/spending_policy.rb
152
189
  - lib/weft/generated/models/user.rb
190
+ - lib/weft/generated/models/user_principal.rb
153
191
  - lib/weft/generated/models/wallet.rb
154
192
  - lib/weft/generated/version.rb
155
193
  - lib/weft/sdk.rb
@@ -1,34 +0,0 @@
1
- # Weft::SearchAgentCard
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **name** | **String** | | [optional] |
8
- | **description** | **String** | | [optional] |
9
- | **url** | **String** | | [optional] |
10
- | **version** | **String** | | [optional] |
11
- | **protocol_version** | **String** | | [optional] |
12
- | **capabilities** | **Hash&lt;String, Object&gt;** | | [optional] |
13
- | **default_input_modes** | **Array&lt;String&gt;** | | [optional] |
14
- | **default_output_modes** | **Array&lt;String&gt;** | | [optional] |
15
- | **skills** | [**Array&lt;SearchSkill&gt;**](SearchSkill.md) | | [optional] |
16
-
17
- ## Example
18
-
19
- ```ruby
20
- require 'weft-sdk'
21
-
22
- instance = Weft::SearchAgentCard.new(
23
- name: null,
24
- description: null,
25
- url: null,
26
- version: null,
27
- protocol_version: null,
28
- capabilities: null,
29
- default_input_modes: null,
30
- default_output_modes: null,
31
- skills: null
32
- )
33
- ```
34
-
@@ -1,24 +0,0 @@
1
- # Weft::SearchEndpoints
2
-
3
- ## Properties
4
-
5
- | Name | Type | Description | Notes |
6
- | ---- | ---- | ----------- | ----- |
7
- | **a2a** | **String** | | [optional] |
8
- | **mcp** | **String** | | [optional] |
9
- | **openapi** | **String** | URL to the agent&#39;s OpenAPI document. | [optional] |
10
- | **weft_fetch_target** | **String** | Base URL the &#x60;weft_fetch&#x60; MCP tool should target for this agent. | [optional] |
11
-
12
- ## Example
13
-
14
- ```ruby
15
- require 'weft-sdk'
16
-
17
- instance = Weft::SearchEndpoints.new(
18
- a2a: null,
19
- mcp: null,
20
- openapi: null,
21
- weft_fetch_target: null
22
- )
23
- ```
24
-