retell-sdk 2.2.3 → 2.2.6

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 (184) hide show
  1. package/example.js +48 -5
  2. package/example.js.map +1 -1
  3. package/lib/config.d.ts.map +1 -1
  4. package/lib/config.js.map +1 -1
  5. package/lib/sdks.d.ts.map +1 -1
  6. package/lib/sdks.js.map +1 -1
  7. package/lib/security.d.ts.map +1 -1
  8. package/lib/security.js +5 -1
  9. package/lib/security.js.map +1 -1
  10. package/models/components/agent.d.ts +3 -205
  11. package/models/components/agent.d.ts.map +1 -1
  12. package/models/components/agent.js +5 -187
  13. package/models/components/agent.js.map +1 -1
  14. package/models/components/agentpromptparams.d.ts.map +1 -1
  15. package/models/components/agentpromptparams.js.map +1 -1
  16. package/models/components/calldetail.d.ts +33 -22
  17. package/models/components/calldetail.d.ts.map +1 -1
  18. package/models/components/calldetail.js +44 -31
  19. package/models/components/calldetail.js.map +1 -1
  20. package/models/components/callphonenumber.d.ts.map +1 -1
  21. package/models/components/callphonenumber.js.map +1 -1
  22. package/models/components/index.d.ts +0 -3
  23. package/models/components/index.d.ts.map +1 -1
  24. package/models/components/index.js +0 -3
  25. package/models/components/index.js.map +1 -1
  26. package/models/components/phonenumber.d.ts.map +1 -1
  27. package/models/components/phonenumber.js.map +1 -1
  28. package/models/components/security.d.ts.map +1 -1
  29. package/models/errors/createagent.d.ts.map +1 -1
  30. package/models/errors/createagent.js +36 -12
  31. package/models/errors/createagent.js.map +1 -1
  32. package/models/errors/createphonecall.d.ts.map +1 -1
  33. package/models/errors/createphonecall.js +54 -18
  34. package/models/errors/createphonecall.js.map +1 -1
  35. package/models/errors/createphonenumber.d.ts.map +1 -1
  36. package/models/errors/createphonenumber.js +42 -14
  37. package/models/errors/createphonenumber.js.map +1 -1
  38. package/models/errors/deleteagent.d.ts.map +1 -1
  39. package/models/errors/deleteagent.js +36 -12
  40. package/models/errors/deleteagent.js.map +1 -1
  41. package/models/errors/deletephonenumber.d.ts.map +1 -1
  42. package/models/errors/deletephonenumber.js +33 -11
  43. package/models/errors/deletephonenumber.js.map +1 -1
  44. package/models/errors/getagent.d.ts.map +1 -1
  45. package/models/errors/getagent.js +36 -12
  46. package/models/errors/getagent.js.map +1 -1
  47. package/models/errors/getcall.d.ts.map +1 -1
  48. package/models/errors/getcall.js +30 -10
  49. package/models/errors/getcall.js.map +1 -1
  50. package/models/errors/getphonenumber.d.ts.map +1 -1
  51. package/models/errors/getphonenumber.js +36 -12
  52. package/models/errors/getphonenumber.js.map +1 -1
  53. package/models/errors/index.d.ts +1 -6
  54. package/models/errors/index.d.ts.map +1 -1
  55. package/models/errors/index.js +1 -6
  56. package/models/errors/index.js.map +1 -1
  57. package/models/errors/listagents.d.ts.map +1 -1
  58. package/models/errors/listagents.js +15 -5
  59. package/models/errors/listagents.js.map +1 -1
  60. package/models/errors/listcalls.d.ts.map +1 -1
  61. package/models/errors/listcalls.js +24 -8
  62. package/models/errors/listcalls.js.map +1 -1
  63. package/models/errors/listphonenumbers.d.ts.map +1 -1
  64. package/models/errors/listphonenumbers.js +27 -9
  65. package/models/errors/listphonenumbers.js.map +1 -1
  66. package/models/errors/registercall.d.ts +218 -0
  67. package/models/errors/registercall.d.ts.map +1 -0
  68. package/models/errors/registercall.js +386 -0
  69. package/models/errors/registercall.js.map +1 -0
  70. package/models/errors/updateagent.d.ts.map +1 -1
  71. package/models/errors/updateagent.js +36 -12
  72. package/models/errors/updateagent.js.map +1 -1
  73. package/models/errors/updatephoneagent.d.ts.map +1 -1
  74. package/models/errors/updatephoneagent.js +36 -12
  75. package/models/errors/updatephoneagent.js.map +1 -1
  76. package/models/operations/createagent.d.ts +3 -16
  77. package/models/operations/createagent.d.ts.map +1 -1
  78. package/models/operations/createagent.js +4 -12
  79. package/models/operations/createagent.js.map +1 -1
  80. package/models/operations/createphonecall.d.ts.map +1 -1
  81. package/models/operations/createphonecall.js +18 -6
  82. package/models/operations/createphonecall.js.map +1 -1
  83. package/models/operations/createphonenumber.d.ts.map +1 -1
  84. package/models/operations/createphonenumber.js +6 -2
  85. package/models/operations/createphonenumber.js.map +1 -1
  86. package/models/operations/createwebcall.d.ts.map +1 -1
  87. package/models/operations/deleteagent.d.ts.map +1 -1
  88. package/models/operations/deleteagent.js.map +1 -1
  89. package/models/operations/deletephonenumber.d.ts.map +1 -1
  90. package/models/operations/deletephonenumber.js.map +1 -1
  91. package/models/operations/getagent.d.ts.map +1 -1
  92. package/models/operations/getagent.js.map +1 -1
  93. package/models/operations/getcall.d.ts +1 -1
  94. package/models/operations/getcall.d.ts.map +1 -1
  95. package/models/operations/getcall.js.map +1 -1
  96. package/models/operations/getphonenumber.d.ts.map +1 -1
  97. package/models/operations/getphonenumber.js +6 -2
  98. package/models/operations/getphonenumber.js.map +1 -1
  99. package/models/operations/index.d.ts +1 -7
  100. package/models/operations/index.d.ts.map +1 -1
  101. package/models/operations/index.js +1 -7
  102. package/models/operations/index.js.map +1 -1
  103. package/models/operations/listagents.d.ts.map +1 -1
  104. package/models/operations/listagents.js.map +1 -1
  105. package/models/operations/listcalls.d.ts +1 -7
  106. package/models/operations/listcalls.d.ts.map +1 -1
  107. package/models/operations/listcalls.js +6 -6
  108. package/models/operations/listcalls.js.map +1 -1
  109. package/models/operations/listphonenumbers.d.ts.map +1 -1
  110. package/models/operations/listphonenumbers.js +6 -2
  111. package/models/operations/listphonenumbers.js.map +1 -1
  112. package/models/operations/registercall.d.ts +74 -0
  113. package/models/operations/registercall.d.ts.map +1 -0
  114. package/models/operations/registercall.js +104 -0
  115. package/models/operations/registercall.js.map +1 -0
  116. package/models/operations/updateagent.d.ts +3 -16
  117. package/models/operations/updateagent.d.ts.map +1 -1
  118. package/models/operations/updateagent.js +9 -13
  119. package/models/operations/updateagent.js.map +1 -1
  120. package/models/operations/updatephoneagent.d.ts.map +1 -1
  121. package/models/operations/updatephoneagent.js +6 -2
  122. package/models/operations/updatephoneagent.js.map +1 -1
  123. package/package.json +1 -1
  124. package/sdk/audioWsClient.d.ts +10 -0
  125. package/sdk/audioWsClient.d.ts.map +1 -0
  126. package/sdk/audioWsClient.js +60 -0
  127. package/sdk/audioWsClient.js.map +1 -0
  128. package/sdk/index.d.ts +1 -1
  129. package/sdk/index.d.ts.map +1 -1
  130. package/sdk/index.js +1 -1
  131. package/sdk/index.js.map +1 -1
  132. package/sdk/liveClient.d.ts.map +1 -1
  133. package/sdk/liveClient.js +7 -2
  134. package/sdk/liveClient.js.map +1 -1
  135. package/sdk/sdk.d.ts +1 -23
  136. package/sdk/sdk.d.ts.map +1 -1
  137. package/sdk/sdk.js +21 -430
  138. package/sdk/sdk.js.map +1 -1
  139. package/src/example.ts +136 -88
  140. package/src/lib/config.ts +32 -32
  141. package/src/lib/sdks.ts +91 -82
  142. package/src/lib/security.ts +133 -118
  143. package/src/models/components/agent.ts +71 -451
  144. package/src/models/components/calldetail.ts +147 -130
  145. package/src/models/components/index.ts +0 -3
  146. package/src/models/components/security.ts +1 -1
  147. package/src/models/errors/createagent.ts +359 -311
  148. package/src/models/errors/deleteagent.ts +359 -311
  149. package/src/models/errors/getagent.ts +358 -302
  150. package/src/models/errors/getcall.ts +348 -294
  151. package/src/models/errors/index.ts +1 -6
  152. package/src/models/errors/listagents.ts +174 -147
  153. package/src/models/errors/listcalls.ts +251 -211
  154. package/src/models/errors/registercall.ts +662 -0
  155. package/src/models/errors/updateagent.ts +359 -311
  156. package/src/models/operations/createagent.ts +124 -130
  157. package/src/models/operations/deleteagent.ts +94 -78
  158. package/src/models/operations/getagent.ts +104 -88
  159. package/src/models/operations/getcall.ts +101 -88
  160. package/src/models/operations/index.ts +1 -7
  161. package/src/models/operations/listagents.ts +68 -60
  162. package/src/models/operations/listcalls.ts +228 -213
  163. package/src/models/operations/registercall.ts +167 -0
  164. package/src/models/operations/updateagent.ts +180 -174
  165. package/src/sdk/audioWsClient.ts +63 -0
  166. package/src/sdk/index.ts +1 -1
  167. package/src/sdk/sdk.ts +802 -1162
  168. package/src/models/components/agentpromptparams.ts +0 -53
  169. package/src/models/components/callphonenumber.ts +0 -56
  170. package/src/models/components/phonenumber.ts +0 -83
  171. package/src/models/errors/createphonecall.ts +0 -597
  172. package/src/models/errors/createphonenumber.ts +0 -500
  173. package/src/models/errors/deletephonenumber.ts +0 -400
  174. package/src/models/errors/getphonenumber.ts +0 -397
  175. package/src/models/errors/listphonenumbers.ts +0 -297
  176. package/src/models/errors/updatephoneagent.ts +0 -397
  177. package/src/models/operations/createphonecall.ts +0 -308
  178. package/src/models/operations/createphonenumber.ts +0 -124
  179. package/src/models/operations/createwebcall.ts +0 -16
  180. package/src/models/operations/deletephonenumber.ts +0 -103
  181. package/src/models/operations/getphonenumber.ts +0 -114
  182. package/src/models/operations/listphonenumbers.ts +0 -76
  183. package/src/models/operations/updatephoneagent.ts +0 -159
  184. package/src/sdk/liveClient.ts +0 -109
@@ -3,199 +3,205 @@
3
3
  */
4
4
 
5
5
  import * as components from "../../models/components";
6
- import { Function } from "../../models/components";
7
6
  import { z } from "zod";
8
7
 
9
8
  export type UpdateAgentRequestBody = {
10
- /**
11
- * The name of the agent. Only used for your own reference.
12
- */
13
- agentName?: string | undefined;
14
- /*
15
- * Determines how to generate the response in the call. Currently supports using our in-house LLM response system or your own custom
16
- * response generation system.
17
- */
18
- llmSetting?: components.RetellLlmSetting | components.CustomLlmSetting | undefined;
19
- /**
20
- * Setting combination that controls interaction flow, like begin and end logic.
21
- */
22
- interactionSetting?: components.InteractionSettingRequest | undefined;
23
- /**
24
- * Unique voice id used for the agent. Find list of available voices in documentation.
25
- */
26
- voiceId?: string | undefined;
27
- /**
28
- * Functions are the actions that the agent can perform, like booking appointments, retriving information, etc. By setting this field, either OpenAI's function calling feature or your own custom LLM's logic would determine when the function shall get called, and our server would make the call.
29
- */
30
- functions?: Function[] | undefined;
9
+ /**
10
+ * The name of the agent. Only used for your own reference.
11
+ */
12
+ agentName?: string | undefined;
13
+ /*
14
+ * The URL we will establish LLM websocket for getting response, usually your server.
15
+ */
16
+ llmWebsocketUrl?: string | undefined;
17
+ /**
18
+ * Unique voice id used for the agent. Find list of available voices in documentation.
19
+ */
20
+ voiceId?: string | undefined;
31
21
  };
32
22
 
33
23
  /** @internal */
34
24
  export namespace UpdateAgentRequestBody$ {
35
- export type Inbound = {
36
- agent_name?: string | undefined;
37
- llm_setting?: components.RetellLlmSetting$.Inbound | components.CustomLlmSetting$.Inbound | undefined;
38
- interaction_setting?: components.InteractionSettingRequest$.Inbound | undefined;
39
- voice_id?: string | undefined;
40
- functions?: Function[] | undefined;
41
- };
42
-
43
- export const inboundSchema: z.ZodType<UpdateAgentRequestBody, z.ZodTypeDef, Inbound> = z
44
- .object({
45
- agent_name: z.string().optional(),
46
- llm_setting: z.union([components.RetellLlmSetting$.inboundSchema, components.CustomLlmSetting$.inboundSchema]).optional(),
47
- interaction_setting: components.InteractionSettingRequest$.inboundSchema.optional(),
48
- voice_id: z.string().optional(),
49
- functions: z.array(components.Function$.inboundSchema).optional(),
50
- })
51
- .transform((v) => {
52
- return {
53
- ...(v.agent_name === undefined ? null : { agentName: v.agent_name }),
54
- ...(v.llm_setting === undefined ? null : { llmSetting: v.llm_setting }),
55
- ...(v.interaction_setting === undefined ? null : { interactionSetting: v.interaction_setting }),
56
- ...(v.voice_id === undefined ? null : { voiceId: v.voice_id }),
57
- ...(v.functions === undefined ? null : { functions: v.functions }),
58
- };
59
- });
60
-
61
- export type Outbound = {
62
- agent_name?: string | undefined;
63
- llm_setting?: components.RetellLlmSetting$.Outbound | components.CustomLlmSetting$.Outbound | undefined;
64
- interaction_setting?: components.InteractionSettingRequest$.Outbound | undefined;
65
- voice_id?: string | undefined;
66
- functions?: Function[] | undefined;
67
- };
68
-
69
- export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, UpdateAgentRequestBody> = z
70
- .object({
71
- agentName: z.string().optional(),
72
- llmSetting: z.union([components.RetellLlmSetting$.outboundSchema, components.CustomLlmSetting$.outboundSchema]).optional(),
73
- interactionSetting: components.InteractionSettingRequest$.outboundSchema.optional(),
74
- voiceId: z.string().optional(),
75
- functions: z.array(components.Function$.inboundSchema).optional(),
76
- })
77
- .transform((v) => {
78
- return {
79
- ...(v.agentName === undefined ? null : { agent_name: v.agentName }),
80
- ...(v.llmSetting === undefined ? null : { llm_setting: v.llmSetting }),
81
- ...(v.interactionSetting === undefined ? null : { interaction_setting: v.interactionSetting }),
82
- ...(v.voiceId === undefined ? null : { voice_id: v.voiceId }),
83
- ...(v.functions === undefined ? null : { functions: v.functions }),
84
- };
85
- });
25
+ export type Inbound = {
26
+ agent_name?: string | undefined;
27
+ llm_websocket_url?: string | undefined;
28
+ voice_id?: string | undefined;
29
+ };
30
+
31
+ export const inboundSchema: z.ZodType<
32
+ UpdateAgentRequestBody,
33
+ z.ZodTypeDef,
34
+ Inbound
35
+ > = z
36
+ .object({
37
+ agent_name: z.string().optional(),
38
+ llm_websocket_url: z.string(),
39
+ voice_id: z.string(),
40
+ })
41
+ .transform((v) => {
42
+ return {
43
+ ...(v.agent_name === undefined ? null : { agentName: v.agent_name }),
44
+ ...(v.llm_websocket_url === undefined
45
+ ? null
46
+ : { llmWebsocketUrl: v.llm_websocket_url }),
47
+ ...(v.voice_id === undefined ? null : { voiceId: v.voice_id }),
48
+ };
49
+ });
50
+
51
+ export type Outbound = {
52
+ agent_name?: string | undefined;
53
+ llm_websocket_url?: string | undefined;
54
+ voice_id?: string | undefined;
55
+ };
56
+
57
+ export const outboundSchema: z.ZodType<
58
+ Outbound,
59
+ z.ZodTypeDef,
60
+ UpdateAgentRequestBody
61
+ > = z
62
+ .object({
63
+ agentName: z.string().optional(),
64
+ llmWebsocketUrl: z.string().optional(),
65
+ voiceId: z.string().optional(),
66
+ })
67
+ .transform((v) => {
68
+ return {
69
+ ...(v.agentName === undefined ? null : { agent_name: v.agentName }),
70
+ ...(v.llmWebsocketUrl === undefined
71
+ ? null
72
+ : { llm_websocket_url: v.llmWebsocketUrl }),
73
+ ...(v.voiceId === undefined ? null : { voice_id: v.voiceId }),
74
+ };
75
+ });
86
76
  }
87
77
 
88
78
  export type UpdateAgentRequest = {
89
- requestBody: UpdateAgentRequestBody;
90
- /**
91
- * Unique id of the agent to be updated.
92
- */
93
- agentId: string;
79
+ requestBody: UpdateAgentRequestBody;
80
+ /**
81
+ * Unique id of the agent to be updated.
82
+ */
83
+ agentId: string;
94
84
  };
95
85
 
96
86
  export type UpdateAgentResponse = {
97
- /**
98
- * Successfully updated an agent.
99
- */
100
- agent?: components.Agent | undefined;
101
- /**
102
- * HTTP response content type for this operation
103
- */
104
- contentType: string;
105
- /**
106
- * HTTP response status code for this operation
107
- */
108
- statusCode: number;
109
- /**
110
- * Raw HTTP response; suitable for custom response parsing
111
- */
112
- rawResponse: Response;
87
+ /**
88
+ * Successfully updated an agent.
89
+ */
90
+ agent?: components.Agent | undefined;
91
+ /**
92
+ * HTTP response content type for this operation
93
+ */
94
+ contentType: string;
95
+ /**
96
+ * HTTP response status code for this operation
97
+ */
98
+ statusCode: number;
99
+ /**
100
+ * Raw HTTP response; suitable for custom response parsing
101
+ */
102
+ rawResponse: Response;
113
103
  };
114
104
 
115
105
  /** @internal */
116
106
  export namespace UpdateAgentRequest$ {
117
- export type Inbound = {
118
- RequestBody: UpdateAgentRequestBody$.Inbound;
119
- agent_id: string;
120
- };
121
-
122
- export const inboundSchema: z.ZodType<UpdateAgentRequest, z.ZodTypeDef, Inbound> = z
123
- .object({
124
- RequestBody: UpdateAgentRequestBody$.inboundSchema,
125
- agent_id: z.string(),
126
- })
127
- .transform((v) => {
128
- return {
129
- requestBody: v.RequestBody,
130
- agentId: v.agent_id,
131
- };
132
- });
133
-
134
- export type Outbound = {
135
- RequestBody: UpdateAgentRequestBody$.Outbound;
136
- agent_id: string;
137
- };
138
-
139
- export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, UpdateAgentRequest> = z
140
- .object({
141
- requestBody: UpdateAgentRequestBody$.outboundSchema,
142
- agentId: z.string(),
143
- })
144
- .transform((v) => {
145
- return {
146
- RequestBody: v.requestBody,
147
- agent_id: v.agentId,
148
- };
149
- });
107
+ export type Inbound = {
108
+ RequestBody: UpdateAgentRequestBody$.Inbound;
109
+ agent_id: string;
110
+ };
111
+
112
+ export const inboundSchema: z.ZodType<
113
+ UpdateAgentRequest,
114
+ z.ZodTypeDef,
115
+ Inbound
116
+ > = z
117
+ .object({
118
+ RequestBody: UpdateAgentRequestBody$.inboundSchema,
119
+ agent_id: z.string(),
120
+ })
121
+ .transform((v) => {
122
+ return {
123
+ requestBody: v.RequestBody,
124
+ agentId: v.agent_id,
125
+ };
126
+ });
127
+
128
+ export type Outbound = {
129
+ RequestBody: UpdateAgentRequestBody$.Outbound;
130
+ agent_id: string;
131
+ };
132
+
133
+ export const outboundSchema: z.ZodType<
134
+ Outbound,
135
+ z.ZodTypeDef,
136
+ UpdateAgentRequest
137
+ > = z
138
+ .object({
139
+ requestBody: UpdateAgentRequestBody$.outboundSchema,
140
+ agentId: z.string(),
141
+ })
142
+ .transform((v) => {
143
+ return {
144
+ RequestBody: v.requestBody,
145
+ agent_id: v.agentId,
146
+ };
147
+ });
150
148
  }
151
149
 
152
150
  /** @internal */
153
151
  export namespace UpdateAgentResponse$ {
154
- export type Inbound = {
155
- Agent?: components.Agent$.Inbound | undefined;
156
- ContentType: string;
157
- StatusCode: number;
158
- RawResponse: Response;
159
- };
160
-
161
- export const inboundSchema: z.ZodType<UpdateAgentResponse, z.ZodTypeDef, Inbound> = z
162
- .object({
163
- Agent: components.Agent$.inboundSchema.optional(),
164
- ContentType: z.string(),
165
- StatusCode: z.number().int(),
166
- RawResponse: z.instanceof(Response),
167
- })
168
- .transform((v) => {
169
- return {
170
- ...(v.Agent === undefined ? null : { agent: v.Agent }),
171
- contentType: v.ContentType,
172
- statusCode: v.StatusCode,
173
- rawResponse: v.RawResponse,
174
- };
175
- });
176
-
177
- export type Outbound = {
178
- Agent?: components.Agent$.Outbound | undefined;
179
- ContentType: string;
180
- StatusCode: number;
181
- RawResponse: never;
182
- };
183
-
184
- export const outboundSchema: z.ZodType<Outbound, z.ZodTypeDef, UpdateAgentResponse> = z
185
- .object({
186
- agent: components.Agent$.outboundSchema.optional(),
187
- contentType: z.string(),
188
- statusCode: z.number().int(),
189
- rawResponse: z.instanceof(Response).transform(() => {
190
- throw new Error("Response cannot be serialized");
191
- }),
192
- })
193
- .transform((v) => {
194
- return {
195
- ...(v.agent === undefined ? null : { Agent: v.agent }),
196
- ContentType: v.contentType,
197
- StatusCode: v.statusCode,
198
- RawResponse: v.rawResponse,
199
- };
200
- });
152
+ export type Inbound = {
153
+ Agent?: components.Agent$.Inbound | undefined;
154
+ ContentType: string;
155
+ StatusCode: number;
156
+ RawResponse: Response;
157
+ };
158
+
159
+ export const inboundSchema: z.ZodType<
160
+ UpdateAgentResponse,
161
+ z.ZodTypeDef,
162
+ Inbound
163
+ > = z
164
+ .object({
165
+ Agent: components.Agent$.inboundSchema.optional(),
166
+ ContentType: z.string(),
167
+ StatusCode: z.number().int(),
168
+ RawResponse: z.instanceof(Response),
169
+ })
170
+ .transform((v) => {
171
+ return {
172
+ ...(v.Agent === undefined ? null : { agent: v.Agent }),
173
+ contentType: v.ContentType,
174
+ statusCode: v.StatusCode,
175
+ rawResponse: v.RawResponse,
176
+ };
177
+ });
178
+
179
+ export type Outbound = {
180
+ Agent?: components.Agent$.Outbound | undefined;
181
+ ContentType: string;
182
+ StatusCode: number;
183
+ RawResponse: never;
184
+ };
185
+
186
+ export const outboundSchema: z.ZodType<
187
+ Outbound,
188
+ z.ZodTypeDef,
189
+ UpdateAgentResponse
190
+ > = z
191
+ .object({
192
+ agent: components.Agent$.outboundSchema.optional(),
193
+ contentType: z.string(),
194
+ statusCode: z.number().int(),
195
+ rawResponse: z.instanceof(Response).transform(() => {
196
+ throw new Error("Response cannot be serialized");
197
+ }),
198
+ })
199
+ .transform((v) => {
200
+ return {
201
+ ...(v.agent === undefined ? null : { Agent: v.agent }),
202
+ ContentType: v.contentType,
203
+ StatusCode: v.statusCode,
204
+ RawResponse: v.rawResponse,
205
+ };
206
+ });
201
207
  }
@@ -0,0 +1,63 @@
1
+ import { EventEmitter } from "eventemitter3";
2
+ import WebSocket from "isomorphic-ws";
3
+
4
+ let baseEndpoint = "wss://api.re-tell.ai/audio-websocket/";
5
+
6
+ export class AudioWsClient extends EventEmitter {
7
+ private ws: WebSocket;
8
+
9
+ constructor(callId: string, customEndpoint?: string) {
10
+ super();
11
+
12
+ if (customEndpoint) baseEndpoint = customEndpoint;
13
+ const endpoint = baseEndpoint + callId;
14
+ this.ws = new WebSocket(endpoint);
15
+ this.ws.binaryType = "arraybuffer";
16
+
17
+ this.ws.onmessage = (event) => {
18
+ const audio: ArrayBuffer = event.data as ArrayBuffer;
19
+ this.emit("audio", new Uint8Array(audio));
20
+ };
21
+ this.ws.onclose = (event) => {
22
+ this.emit("close", event.code, event.reason);
23
+ };
24
+ this.ws.onerror = (event) => {
25
+ this.emit("error", event.error);
26
+ };
27
+ }
28
+
29
+ send(audio: Uint8Array) {
30
+ if (this.ws.readyState === 1) {
31
+ this.ws.send(audio);
32
+ }
33
+ }
34
+
35
+ close() {
36
+ this.ws.close();
37
+ }
38
+ }
39
+
40
+ export function convertUint8ToFloat32(array: Uint8Array): Float32Array {
41
+ const targetArray = new Float32Array(array.byteLength / 2);
42
+
43
+ // A DataView is used to read our 16-bit little-endian samples out of the Uint8Array buffer
44
+ const sourceDataView = new DataView(array.buffer);
45
+
46
+ // Loop through, get values, and divide by 32,768
47
+ for (let i = 0; i < targetArray.length; i++) {
48
+ targetArray[i] = sourceDataView.getInt16(i * 2, true) / Math.pow(2, 16 - 1);
49
+ }
50
+ return targetArray;
51
+ }
52
+
53
+ export function convertFloat32ToUint8(array: Float32Array): Uint8Array {
54
+ const buffer = new ArrayBuffer(array.length * 2);
55
+ const view = new DataView(buffer);
56
+
57
+ for (let i = 0; i < array.length; i++) {
58
+ const value = (array[i] as number) * 32768;
59
+ view.setInt16(i * 2, value, true); // true for little-endian
60
+ }
61
+
62
+ return new Uint8Array(buffer);
63
+ }
package/src/sdk/index.ts CHANGED
@@ -3,4 +3,4 @@
3
3
  */
4
4
 
5
5
  export * from "./sdk";
6
- export * from "./liveClient";
6
+ export * from "./audioWsClient";