revox 0.0.2 → 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 (128) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/README.md +88 -22
  4. data/lib/revox/client.rb +19 -1
  5. data/lib/revox/internal/transport/base_client.rb +5 -0
  6. data/lib/revox/internal/type/base_model.rb +3 -3
  7. data/lib/revox/internal/util.rb +53 -7
  8. data/lib/revox/models/assistant_create_params.rb +1036 -11
  9. data/lib/revox/models/assistant_create_response.rb +1071 -11
  10. data/lib/revox/models/assistant_delete_params.rb +7 -1
  11. data/lib/revox/models/assistant_list_response.rb +1070 -11
  12. data/lib/revox/models/assistant_retrieve_params.rb +7 -1
  13. data/lib/revox/models/assistant_retrieve_response.rb +1066 -11
  14. data/lib/revox/models/assistant_update_params.rb +1043 -11
  15. data/lib/revox/models/assistant_update_response.rb +1097 -12
  16. data/lib/revox/models/call_create_params.rb +1063 -11
  17. data/lib/revox/models/call_create_response.rb +2507 -87
  18. data/lib/revox/models/call_retrieve_params.rb +7 -1
  19. data/lib/revox/models/call_retrieve_response.rb +2512 -87
  20. data/lib/revox/models/campaign_cancel_params.rb +20 -0
  21. data/lib/revox/models/campaign_cancel_response.rb +16 -0
  22. data/lib/revox/models/campaign_create_params.rb +239 -0
  23. data/lib/revox/models/campaign_create_response.rb +2030 -0
  24. data/lib/revox/models/campaign_delete_params.rb +20 -0
  25. data/lib/revox/models/campaign_delete_response.rb +16 -0
  26. data/lib/revox/models/campaign_export_rows_params.rb +20 -0
  27. data/lib/revox/models/campaign_export_rows_response.rb +22 -0
  28. data/lib/revox/models/campaign_get_rows_params.rb +20 -0
  29. data/lib/revox/models/campaign_get_rows_response.rb +3176 -0
  30. data/lib/revox/models/campaign_list_params.rb +14 -0
  31. data/lib/revox/models/campaign_list_response.rb +2024 -0
  32. data/lib/revox/models/campaign_retrieve_params.rb +20 -0
  33. data/lib/revox/models/campaign_retrieve_response.rb +2032 -0
  34. data/lib/revox/models/users/me_retrieve_response.rb +13 -1
  35. data/lib/revox/models/users/me_update_response.rb +13 -1
  36. data/lib/revox/models/voice_list_response.rb +55 -1
  37. data/lib/revox/models/voice_preview_params.rb +43 -3
  38. data/lib/revox/models/voice_retrieve_params.rb +7 -1
  39. data/lib/revox/models.rb +14 -2
  40. data/lib/revox/resources/assistants.rb +138 -6
  41. data/lib/revox/resources/call.rb +10 -27
  42. data/lib/revox/resources/campaigns.rb +176 -0
  43. data/lib/revox/resources/voices.rb +17 -7
  44. data/lib/revox/version.rb +1 -1
  45. data/lib/revox.rb +15 -2
  46. data/rbi/revox/client.rbi +3 -0
  47. data/rbi/revox/internal/util.rbi +28 -0
  48. data/rbi/revox/models/assistant_create_params.rbi +2135 -102
  49. data/rbi/revox/models/assistant_create_response.rbi +2454 -199
  50. data/rbi/revox/models/assistant_delete_params.rbi +11 -5
  51. data/rbi/revox/models/assistant_list_response.rbi +2448 -195
  52. data/rbi/revox/models/assistant_retrieve_params.rbi +11 -5
  53. data/rbi/revox/models/assistant_retrieve_response.rbi +2401 -210
  54. data/rbi/revox/models/assistant_update_params.rbi +2139 -100
  55. data/rbi/revox/models/assistant_update_response.rbi +2504 -198
  56. data/rbi/revox/models/call_create_params.rbi +2377 -222
  57. data/rbi/revox/models/call_create_response.rbi +5840 -594
  58. data/rbi/revox/models/call_retrieve_params.rbi +11 -5
  59. data/rbi/revox/models/call_retrieve_response.rbi +5872 -618
  60. data/rbi/revox/models/campaign_cancel_params.rbi +33 -0
  61. data/rbi/revox/models/campaign_cancel_response.rbi +23 -0
  62. data/rbi/revox/models/campaign_create_params.rbi +433 -0
  63. data/rbi/revox/models/campaign_create_response.rbi +4170 -0
  64. data/rbi/revox/models/campaign_delete_params.rbi +33 -0
  65. data/rbi/revox/models/campaign_delete_response.rbi +23 -0
  66. data/rbi/revox/models/campaign_export_rows_params.rbi +33 -0
  67. data/rbi/revox/models/campaign_export_rows_response.rbi +29 -0
  68. data/rbi/revox/models/campaign_get_rows_params.rbi +33 -0
  69. data/rbi/revox/models/campaign_get_rows_response.rbi +6706 -0
  70. data/rbi/revox/models/campaign_list_params.rbi +27 -0
  71. data/rbi/revox/models/campaign_list_response.rbi +4156 -0
  72. data/rbi/revox/models/campaign_retrieve_params.rbi +33 -0
  73. data/rbi/revox/models/campaign_retrieve_response.rbi +4175 -0
  74. data/rbi/revox/models/users/me_retrieve_response.rbi +13 -3
  75. data/rbi/revox/models/users/me_update_response.rbi +13 -3
  76. data/rbi/revox/models/voice_list_response.rbi +105 -3
  77. data/rbi/revox/models/voice_preview_params.rbi +60 -2
  78. data/rbi/revox/models/voice_retrieve_params.rbi +6 -1
  79. data/rbi/revox/models.rbi +14 -2
  80. data/rbi/revox/resources/assistants.rbi +301 -6
  81. data/rbi/revox/resources/call.rbi +10 -19
  82. data/rbi/revox/resources/campaigns.rbi +121 -0
  83. data/rbi/revox/resources/voices.rbi +15 -5
  84. data/sig/revox/client.rbs +2 -0
  85. data/sig/revox/internal/util.rbs +14 -0
  86. data/sig/revox/models/assistant_create_params.rbs +841 -4
  87. data/sig/revox/models/assistant_create_response.rbs +860 -3
  88. data/sig/revox/models/assistant_delete_params.rbs +8 -3
  89. data/sig/revox/models/assistant_list_response.rbs +860 -3
  90. data/sig/revox/models/assistant_retrieve_params.rbs +8 -3
  91. data/sig/revox/models/assistant_retrieve_response.rbs +859 -3
  92. data/sig/revox/models/assistant_update_params.rbs +846 -4
  93. data/sig/revox/models/assistant_update_response.rbs +886 -6
  94. data/sig/revox/models/call_create_params.rbs +844 -6
  95. data/sig/revox/models/call_create_response.rbs +2166 -79
  96. data/sig/revox/models/call_retrieve_params.rbs +9 -3
  97. data/sig/revox/models/call_retrieve_response.rbs +2166 -79
  98. data/sig/revox/models/campaign_cancel_params.rbs +20 -0
  99. data/sig/revox/models/campaign_cancel_response.rbs +13 -0
  100. data/sig/revox/models/campaign_create_params.rbs +203 -0
  101. data/sig/revox/models/campaign_create_response.rbs +1694 -0
  102. data/sig/revox/models/campaign_delete_params.rbs +20 -0
  103. data/sig/revox/models/campaign_delete_response.rbs +13 -0
  104. data/sig/revox/models/campaign_export_rows_params.rbs +20 -0
  105. data/sig/revox/models/campaign_export_rows_response.rbs +15 -0
  106. data/sig/revox/models/campaign_get_rows_params.rbs +20 -0
  107. data/sig/revox/models/campaign_get_rows_response.rbs +2688 -0
  108. data/sig/revox/models/campaign_list_params.rbs +14 -0
  109. data/sig/revox/models/campaign_list_response.rbs +1694 -0
  110. data/sig/revox/models/campaign_retrieve_params.rbs +20 -0
  111. data/sig/revox/models/campaign_retrieve_response.rbs +1694 -0
  112. data/sig/revox/models/users/me_retrieve_response.rbs +8 -3
  113. data/sig/revox/models/users/me_update_response.rbs +8 -3
  114. data/sig/revox/models/voice_list_response.rbs +45 -3
  115. data/sig/revox/models/voice_preview_params.rbs +35 -1
  116. data/sig/revox/models/voice_retrieve_params.rbs +5 -1
  117. data/sig/revox/models.rbs +14 -2
  118. data/sig/revox/resources/assistants.rbs +54 -0
  119. data/sig/revox/resources/call.rbs +0 -6
  120. data/sig/revox/resources/campaigns.rbs +49 -0
  121. data/sig/revox/resources/voices.rbs +3 -0
  122. metadata +47 -8
  123. data/lib/revox/models/call_list_params.rb +0 -29
  124. data/lib/revox/models/call_list_response.rb +0 -197
  125. data/rbi/revox/models/call_list_params.rbi +0 -47
  126. data/rbi/revox/models/call_list_response.rbi +0 -401
  127. data/sig/revox/models/call_list_params.rbs +0 -28
  128. data/sig/revox/models/call_list_response.rbs +0 -171
@@ -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,18 +19,43 @@ module Revox
19
19
  sig { returns(String) }
20
20
  attr_accessor :voice_id
21
21
 
22
- # The text to generate a preview for.
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.
23
38
  sig { returns(T.nilable(String)) }
24
39
  attr_reader :text
25
40
 
26
41
  sig { params(text: String).void }
27
42
  attr_writer :text
28
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
+
29
51
  sig do
30
52
  params(
31
53
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
32
54
  voice_id: String,
55
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
56
+ speed: Float,
33
57
  text: String,
58
+ volume: Float,
34
59
  request_options: Revox::RequestOptions::OrHash
35
60
  ).returns(T.attached_class)
36
61
  end
@@ -39,8 +64,15 @@ module Revox
39
64
  provider:,
40
65
  # The voice ID to generate a preview for.
41
66
  voice_id:,
42
- # The text to generate a preview for.
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.
43
73
  text: nil,
74
+ # Volume for Cartesia preview (0.5–2.0). Ignored for other providers.
75
+ volume: nil,
44
76
  request_options: {}
45
77
  )
46
78
  end
@@ -50,7 +82,10 @@ module Revox
50
82
  {
51
83
  provider: Revox::VoicePreviewParams::Provider::OrSymbol,
52
84
  voice_id: String,
85
+ model: Revox::VoicePreviewParams::Model::OrSymbol,
86
+ speed: Float,
53
87
  text: String,
88
+ volume: Float,
54
89
  request_options: Revox::RequestOptions
55
90
  }
56
91
  )
@@ -79,6 +114,29 @@ module Revox
79
114
  def self.values
80
115
  end
81
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
82
140
  end
83
141
  end
84
142
  end
@@ -11,21 +11,26 @@ module Revox
11
11
  T.any(Revox::VoiceRetrieveParams, Revox::Internal::AnyHash)
12
12
  end
13
13
 
14
+ sig { returns(String) }
15
+ attr_accessor :id
16
+
14
17
  sig { returns(Revox::VoiceRetrieveParams::Provider::OrSymbol) }
15
18
  attr_accessor :provider
16
19
 
17
20
  sig do
18
21
  params(
22
+ id: String,
19
23
  provider: Revox::VoiceRetrieveParams::Provider::OrSymbol,
20
24
  request_options: Revox::RequestOptions::OrHash
21
25
  ).returns(T.attached_class)
22
26
  end
23
- def self.new(provider:, request_options: {})
27
+ def self.new(id:, provider:, request_options: {})
24
28
  end
25
29
 
26
30
  sig do
27
31
  override.returns(
28
32
  {
33
+ id: String,
29
34
  provider: Revox::VoiceRetrieveParams::Provider::OrSymbol,
30
35
  request_options: Revox::RequestOptions
31
36
  }
data/rbi/revox/models.rbi CHANGED
@@ -13,10 +13,22 @@ 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
 
18
+ CampaignCancelParams = Revox::Models::CampaignCancelParams
19
+
20
+ CampaignCreateParams = Revox::Models::CampaignCreateParams
21
+
22
+ CampaignDeleteParams = Revox::Models::CampaignDeleteParams
23
+
24
+ CampaignExportRowsParams = Revox::Models::CampaignExportRowsParams
25
+
26
+ CampaignGetRowsParams = Revox::Models::CampaignGetRowsParams
27
+
28
+ CampaignListParams = Revox::Models::CampaignListParams
29
+
30
+ CampaignRetrieveParams = Revox::Models::CampaignRetrieveParams
31
+
20
32
  Users = Revox::Models::Users
21
33
 
22
34
  VoiceListParams = Revox::Models::VoiceListParams