revox 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +71 -0
  3. data/README.md +39 -14
  4. data/lib/revox/client.rb +15 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/util.rb +22 -7
  7. data/lib/revox/models/assistant_create_params.rb +1038 -13
  8. data/lib/revox/models/assistant_create_response.rb +1071 -11
  9. data/lib/revox/models/assistant_list_response.rb +1070 -11
  10. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  11. data/lib/revox/models/assistant_update_params.rb +1038 -13
  12. data/lib/revox/models/assistant_update_response.rb +1097 -12
  13. data/lib/revox/models/call_create_params.rb +1065 -13
  14. data/lib/revox/models/call_create_response.rb +1813 -101
  15. data/lib/revox/models/call_retrieve_response.rb +1815 -101
  16. data/lib/revox/models/campaign_create_params.rb +67 -2
  17. data/lib/revox/models/campaign_create_response.rb +1314 -59
  18. data/lib/revox/models/campaign_get_rows_params.rb +1 -46
  19. data/lib/revox/models/campaign_get_rows_response.rb +1837 -129
  20. data/lib/revox/models/campaign_list_response.rb +1312 -59
  21. data/lib/revox/models/campaign_retrieve_response.rb +1312 -56
  22. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  23. data/lib/revox/models/users/me_update_response.rb +13 -1
  24. data/lib/revox/models/voice_list_response.rb +55 -1
  25. data/lib/revox/models/voice_preview_params.rb +49 -1
  26. data/lib/revox/models.rb +0 -2
  27. data/lib/revox/resources/assistants.rb +116 -8
  28. data/lib/revox/resources/call.rb +0 -29
  29. data/lib/revox/resources/campaigns.rb +12 -17
  30. data/lib/revox/resources/voices.rb +16 -10
  31. data/lib/revox/version.rb +1 -1
  32. data/lib/revox.rb +0 -2
  33. data/rbi/revox/internal/util.rbi +8 -0
  34. data/rbi/revox/models/assistant_create_params.rbi +2138 -103
  35. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  36. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  37. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  38. data/rbi/revox/models/assistant_update_params.rbi +2138 -103
  39. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  40. data/rbi/revox/models/call_create_params.rbi +2382 -225
  41. data/rbi/revox/models/call_create_response.rbi +4104 -384
  42. data/rbi/revox/models/call_retrieve_response.rbi +4104 -382
  43. data/rbi/revox/models/campaign_create_params.rbi +136 -0
  44. data/rbi/revox/models/campaign_create_response.rbi +2911 -231
  45. data/rbi/revox/models/campaign_get_rows_params.rbi +2 -82
  46. data/rbi/revox/models/campaign_get_rows_response.rbi +4135 -410
  47. data/rbi/revox/models/campaign_list_response.rbi +2904 -230
  48. data/rbi/revox/models/campaign_retrieve_response.rbi +2911 -231
  49. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  50. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  51. data/rbi/revox/models/voice_list_response.rbi +105 -3
  52. data/rbi/revox/models/voice_preview_params.rbi +69 -0
  53. data/rbi/revox/models.rbi +0 -2
  54. data/rbi/revox/resources/assistants.rbi +284 -8
  55. data/rbi/revox/resources/call.rbi +0 -21
  56. data/rbi/revox/resources/campaigns.rbi +12 -19
  57. data/rbi/revox/resources/voices.rbi +17 -9
  58. data/sig/revox/internal/util.rbs +4 -0
  59. data/sig/revox/models/assistant_create_params.rbs +844 -11
  60. data/sig/revox/models/assistant_create_response.rbs +860 -3
  61. data/sig/revox/models/assistant_list_response.rbs +860 -3
  62. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  63. data/sig/revox/models/assistant_update_params.rbs +844 -11
  64. data/sig/revox/models/assistant_update_response.rbs +886 -6
  65. data/sig/revox/models/call_create_params.rbs +847 -13
  66. data/sig/revox/models/call_create_response.rbs +1514 -34
  67. data/sig/revox/models/call_retrieve_response.rbs +1514 -34
  68. data/sig/revox/models/campaign_create_params.rbs +54 -0
  69. data/sig/revox/models/campaign_create_response.rbs +1034 -6
  70. data/sig/revox/models/campaign_get_rows_params.rbs +2 -64
  71. data/sig/revox/models/campaign_get_rows_response.rbs +1522 -54
  72. data/sig/revox/models/campaign_list_response.rbs +1034 -6
  73. data/sig/revox/models/campaign_retrieve_response.rbs +1034 -6
  74. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  75. data/sig/revox/models/users/me_update_response.rbs +8 -3
  76. data/sig/revox/models/voice_list_response.rbs +45 -3
  77. data/sig/revox/models/voice_preview_params.rbs +42 -1
  78. data/sig/revox/models.rbs +0 -2
  79. data/sig/revox/resources/assistants.rbs +56 -2
  80. data/sig/revox/resources/call.rbs +0 -7
  81. data/sig/revox/resources/campaigns.rbs +2 -5
  82. data/sig/revox/resources/voices.rbs +4 -0
  83. metadata +2 -8
  84. data/lib/revox/models/call_list_params.rb +0 -52
  85. data/lib/revox/models/call_list_response.rb +0 -259
  86. data/rbi/revox/models/call_list_params.rbi +0 -94
  87. data/rbi/revox/models/call_list_response.rbi +0 -563
  88. data/sig/revox/models/call_list_params.rbs +0 -63
  89. data/sig/revox/models/call_list_response.rbs +0 -226
@@ -83,6 +83,11 @@ module Revox
83
83
  sig { returns(T.anything) }
84
84
  attr_accessor :updated_at
85
85
 
86
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
87
+ # default region when normalizing national-format phone numbers.
88
+ sig { returns(T.nilable(String)) }
89
+ attr_accessor :organization_country
90
+
86
91
  # The current authenticated user.
87
92
  sig do
88
93
  params(
@@ -93,7 +98,8 @@ module Revox
93
98
  has_completed_onboarding: T::Boolean,
94
99
  last_name: T.nilable(String),
95
100
  organization_id: String,
96
- updated_at: T.anything
101
+ updated_at: T.anything,
102
+ organization_country: T.nilable(String)
97
103
  ).returns(T.attached_class)
98
104
  end
99
105
  def self.new(
@@ -112,7 +118,10 @@ module Revox
112
118
  # The ID of the organization the user belongs to.
113
119
  organization_id:,
114
120
  # The time the user was last updated.
115
- updated_at:
121
+ updated_at:,
122
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
123
+ # default region when normalizing national-format phone numbers.
124
+ organization_country: nil
116
125
  )
117
126
  end
118
127
 
@@ -126,7 +135,8 @@ module Revox
126
135
  has_completed_onboarding: T::Boolean,
127
136
  last_name: T.nilable(String),
128
137
  organization_id: String,
129
- updated_at: T.anything
138
+ updated_at: T.anything,
139
+ organization_country: T.nilable(String)
130
140
  }
131
141
  )
132
142
  end
@@ -83,6 +83,11 @@ module Revox
83
83
  sig { returns(T.anything) }
84
84
  attr_accessor :updated_at
85
85
 
86
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
87
+ # default region when normalizing national-format phone numbers.
88
+ sig { returns(T.nilable(String)) }
89
+ attr_accessor :organization_country
90
+
86
91
  # The current authenticated user.
87
92
  sig do
88
93
  params(
@@ -93,7 +98,8 @@ module Revox
93
98
  has_completed_onboarding: T::Boolean,
94
99
  last_name: T.nilable(String),
95
100
  organization_id: String,
96
- updated_at: T.anything
101
+ updated_at: T.anything,
102
+ organization_country: T.nilable(String)
97
103
  ).returns(T.attached_class)
98
104
  end
99
105
  def self.new(
@@ -112,7 +118,10 @@ module Revox
112
118
  # The ID of the organization the user belongs to.
113
119
  organization_id:,
114
120
  # The time the user was last updated.
115
- updated_at:
121
+ updated_at:,
122
+ # ISO 3166-1 alpha-2 country code of the organization (e.g. FR). Used as the
123
+ # default region when normalizing national-format phone numbers.
124
+ organization_country: nil
116
125
  )
117
126
  end
118
127
 
@@ -126,7 +135,8 @@ module Revox
126
135
  has_completed_onboarding: T::Boolean,
127
136
  last_name: T.nilable(String),
128
137
  organization_id: String,
129
- updated_at: T.anything
138
+ updated_at: T.anything,
139
+ organization_country: T.nilable(String)
130
140
  }
131
141
  )
132
142
  end
@@ -64,6 +64,47 @@ module Revox
64
64
  end
65
65
  attr_accessor :provider
66
66
 
67
+ # The accent/dialect of the voice (e.g. 'american', 'british', 'australian',
68
+ # 'quebec').
69
+ sig { returns(T.nilable(String)) }
70
+ attr_reader :accent
71
+
72
+ sig { params(accent: String).void }
73
+ attr_writer :accent
74
+
75
+ # The gender of the voice (e.g. 'male', 'female', 'neutral').
76
+ sig { returns(T.nilable(String)) }
77
+ attr_reader :gender
78
+
79
+ sig { params(gender: String).void }
80
+ attr_writer :gender
81
+
82
+ # Whether this is a cloned voice.
83
+ sig { returns(T.nilable(T::Boolean)) }
84
+ attr_reader :is_cloned
85
+
86
+ sig { params(is_cloned: T::Boolean).void }
87
+ attr_writer :is_cloned
88
+
89
+ # Cartesia model compatibility. Used to filter the voice list by the selected
90
+ # model. Absent/undefined is treated as 'universal'.
91
+ sig do
92
+ returns(
93
+ T.nilable(
94
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
95
+ )
96
+ )
97
+ end
98
+ attr_reader :model_compat
99
+
100
+ sig do
101
+ params(
102
+ model_compat:
103
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::OrSymbol
104
+ ).void
105
+ end
106
+ attr_writer :model_compat
107
+
67
108
  sig do
68
109
  params(
69
110
  id: String,
@@ -72,7 +113,12 @@ module Revox
72
113
  Revox::Models::VoiceListResponse::Voice::Language::OrSymbol,
73
114
  name: String,
74
115
  provider:
75
- Revox::Models::VoiceListResponse::Voice::Provider::OrSymbol
116
+ Revox::Models::VoiceListResponse::Voice::Provider::OrSymbol,
117
+ accent: String,
118
+ gender: String,
119
+ is_cloned: T::Boolean,
120
+ model_compat:
121
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::OrSymbol
76
122
  ).returns(T.attached_class)
77
123
  end
78
124
  def self.new(
@@ -85,7 +131,17 @@ module Revox
85
131
  # The name of the voice.
86
132
  name:,
87
133
  # The provider of the voice.
88
- provider:
134
+ provider:,
135
+ # The accent/dialect of the voice (e.g. 'american', 'british', 'australian',
136
+ # 'quebec').
137
+ accent: nil,
138
+ # The gender of the voice (e.g. 'male', 'female', 'neutral').
139
+ gender: nil,
140
+ # Whether this is a cloned voice.
141
+ is_cloned: nil,
142
+ # Cartesia model compatibility. Used to filter the voice list by the selected
143
+ # model. Absent/undefined is treated as 'universal'.
144
+ model_compat: nil
89
145
  )
90
146
  end
91
147
 
@@ -98,7 +154,12 @@ module Revox
98
154
  Revox::Models::VoiceListResponse::Voice::Language::TaggedSymbol,
99
155
  name: String,
100
156
  provider:
101
- Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol
157
+ Revox::Models::VoiceListResponse::Voice::Provider::TaggedSymbol,
158
+ accent: String,
159
+ gender: String,
160
+ is_cloned: T::Boolean,
161
+ model_compat:
162
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
102
163
  }
103
164
  )
104
165
  end
@@ -198,6 +259,47 @@ module Revox
198
259
  def self.values
199
260
  end
200
261
  end
262
+
263
+ # Cartesia model compatibility. Used to filter the voice list by the selected
264
+ # model. Absent/undefined is treated as 'universal'.
265
+ module ModelCompat
266
+ extend Revox::Internal::Type::Enum
267
+
268
+ TaggedSymbol =
269
+ T.type_alias do
270
+ T.all(
271
+ Symbol,
272
+ Revox::Models::VoiceListResponse::Voice::ModelCompat
273
+ )
274
+ end
275
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
276
+
277
+ UNIVERSAL =
278
+ T.let(
279
+ :universal,
280
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
281
+ )
282
+ SONIC_3 =
283
+ T.let(
284
+ :"sonic-3",
285
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
286
+ )
287
+ SONIC_3_5 =
288
+ T.let(
289
+ :"sonic-3.5",
290
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
291
+ )
292
+
293
+ sig do
294
+ override.returns(
295
+ T::Array[
296
+ Revox::Models::VoiceListResponse::Voice::ModelCompat::TaggedSymbol
297
+ ]
298
+ )
299
+ end
300
+ def self.values
301
+ end
302
+ end
201
303
  end
202
304
  end
203
305
  end
@@ -19,10 +19,43 @@ module Revox
19
19
  sig { returns(String) }
20
20
  attr_accessor :voice_id
21
21
 
22
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
23
+ # providers.
24
+ sig { returns(T.nilable(Revox::VoicePreviewParams::Model::OrSymbol)) }
25
+ attr_reader :model
26
+
27
+ sig { params(model: Revox::VoicePreviewParams::Model::OrSymbol).void }
28
+ attr_writer :model
29
+
30
+ # Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
31
+ sig { returns(T.nilable(Float)) }
32
+ attr_reader :speed
33
+
34
+ sig { params(speed: Float).void }
35
+ attr_writer :speed
36
+
37
+ # Custom text for the preview. If omitted, a short default is used.
38
+ sig { returns(T.nilable(String)) }
39
+ attr_reader :text
40
+
41
+ sig { params(text: String).void }
42
+ attr_writer :text
43
+
44
+ # Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
45
+ sig { returns(T.nilable(Float)) }
46
+ attr_reader :volume
47
+
48
+ sig { params(volume: Float).void }
49
+ attr_writer :volume
50
+
22
51
  sig do
23
52
  params(
24
53
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
25
54
  voice_id: String,
55
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
56
+ speed: Float,
57
+ text: String,
58
+ volume: Float,
26
59
  request_options: Revox::RequestOptions::OrHash
27
60
  ).returns(T.attached_class)
28
61
  end
@@ -31,6 +64,15 @@ module Revox
31
64
  provider:,
32
65
  # The voice ID to generate a preview for.
33
66
  voice_id:,
67
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
68
+ # providers.
69
+ model: nil,
70
+ # Speed for preview. Cartesia 0.6–1.5, ElevenLabs 0.7–1.2. Default 1.0.
71
+ speed: nil,
72
+ # Custom text for the preview. If omitted, a short default is used.
73
+ text: nil,
74
+ # Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
75
+ volume: nil,
34
76
  request_options: {}
35
77
  )
36
78
  end
@@ -40,6 +82,10 @@ module Revox
40
82
  {
41
83
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
42
84
  voice_id: String,
85
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
86
+ speed: Float,
87
+ text: String,
88
+ volume: Float,
43
89
  request_options: Revox::RequestOptions
44
90
  }
45
91
  )
@@ -68,6 +114,29 @@ module Revox
68
114
  def self.values
69
115
  end
70
116
  end
117
+
118
+ # Cartesia model for the preview. Defaults to sonic-3. Ignored for other
119
+ # providers.
120
+ module Model
121
+ extend Revox::Internal::Type::Enum
122
+
123
+ TaggedSymbol =
124
+ T.type_alias { T.all(Symbol, Revox::VoicePreviewParams::Model) }
125
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
126
+
127
+ SONIC_3 =
128
+ T.let(:"sonic-3", Revox::VoicePreviewParams::Model::TaggedSymbol)
129
+ SONIC_3_5 =
130
+ T.let(:"sonic-3.5", Revox::VoicePreviewParams::Model::TaggedSymbol)
131
+
132
+ sig do
133
+ override.returns(
134
+ T::Array[Revox::VoicePreviewParams::Model::TaggedSymbol]
135
+ )
136
+ end
137
+ def self.values
138
+ end
139
+ end
71
140
  end
72
141
  end
73
142
  end
data/rbi/revox/models.rbi CHANGED
@@ -13,8 +13,6 @@ module Revox
13
13
 
14
14
  CallCreateParams = Revox::Models::CallCreateParams
15
15
 
16
- CallListParams = Revox::Models::CallListParams
17
-
18
16
  CallRetrieveParams = Revox::Models::CallRetrieveParams
19
17
 
20
18
  CampaignCancelParams = Revox::Models::CampaignCancelParams