@voice-kit/core 0.1.2 → 0.1.3

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 (53) hide show
  1. package/dist/index.cjs +2137 -0
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +1466 -4
  4. package/dist/index.d.ts +1466 -4
  5. package/dist/index.js +2102 -1
  6. package/dist/index.js.map +1 -1
  7. package/package.json +1 -31
  8. package/dist/audio.cjs +0 -533
  9. package/dist/audio.cjs.map +0 -1
  10. package/dist/audio.d.cts +0 -260
  11. package/dist/audio.d.ts +0 -260
  12. package/dist/audio.js +0 -514
  13. package/dist/audio.js.map +0 -1
  14. package/dist/compliance.cjs +0 -343
  15. package/dist/compliance.cjs.map +0 -1
  16. package/dist/compliance.d.cts +0 -163
  17. package/dist/compliance.d.ts +0 -163
  18. package/dist/compliance.js +0 -335
  19. package/dist/compliance.js.map +0 -1
  20. package/dist/errors.cjs +0 -284
  21. package/dist/errors.cjs.map +0 -1
  22. package/dist/errors.d.cts +0 -100
  23. package/dist/errors.d.ts +0 -100
  24. package/dist/errors.js +0 -262
  25. package/dist/errors.js.map +0 -1
  26. package/dist/index-D3KfRXMP.d.cts +0 -319
  27. package/dist/index-D3KfRXMP.d.ts +0 -319
  28. package/dist/memory.cjs +0 -121
  29. package/dist/memory.cjs.map +0 -1
  30. package/dist/memory.d.cts +0 -29
  31. package/dist/memory.d.ts +0 -29
  32. package/dist/memory.js +0 -115
  33. package/dist/memory.js.map +0 -1
  34. package/dist/observability.cjs +0 -229
  35. package/dist/observability.cjs.map +0 -1
  36. package/dist/observability.d.cts +0 -122
  37. package/dist/observability.d.ts +0 -122
  38. package/dist/observability.js +0 -222
  39. package/dist/observability.js.map +0 -1
  40. package/dist/stt.cjs +0 -828
  41. package/dist/stt.cjs.map +0 -1
  42. package/dist/stt.d.cts +0 -308
  43. package/dist/stt.d.ts +0 -308
  44. package/dist/stt.js +0 -815
  45. package/dist/stt.js.map +0 -1
  46. package/dist/telephony.errors-BQYr6-vl.d.cts +0 -80
  47. package/dist/telephony.errors-C0-nScrF.d.ts +0 -80
  48. package/dist/tts.cjs +0 -429
  49. package/dist/tts.cjs.map +0 -1
  50. package/dist/tts.d.cts +0 -151
  51. package/dist/tts.d.ts +0 -151
  52. package/dist/tts.js +0 -418
  53. package/dist/tts.js.map +0 -1
package/dist/errors.js DELETED
@@ -1,262 +0,0 @@
1
- // src/errors/base.ts
2
- var VoiceKitError = class extends Error {
3
- code;
4
- callId;
5
- provider;
6
- retryable;
7
- severity;
8
- cause;
9
- constructor(params) {
10
- super(params.message);
11
- this.name = this.constructor.name;
12
- this.code = params.code;
13
- this.callId = params.callId;
14
- this.provider = params.provider;
15
- this.retryable = params.retryable ?? false;
16
- this.severity = params.severity ?? "medium";
17
- this.cause = params.cause;
18
- Object.setPrototypeOf(this, new.target.prototype);
19
- }
20
- toJSON() {
21
- return {
22
- name: this.name,
23
- code: this.code,
24
- message: this.message,
25
- callId: this.callId,
26
- provider: this.provider,
27
- retryable: this.retryable,
28
- severity: this.severity
29
- };
30
- }
31
- };
32
-
33
- // src/errors/agents.errors.ts
34
- var AgentError = class extends VoiceKitError {
35
- };
36
- var TurnTransitionError = class extends AgentError {
37
- fromState;
38
- event;
39
- constructor(fromState, toEvent, callId) {
40
- super({
41
- code: "AGENT_INVALID_TURN_TRANSITION",
42
- message: `Invalid turn transition: state '${fromState}' cannot handle event '${toEvent}'`,
43
- callId,
44
- retryable: false,
45
- severity: "medium"
46
- });
47
- this.fromState = fromState;
48
- this.event = toEvent;
49
- }
50
- };
51
- var AgentHandoffError = class extends AgentError {
52
- constructor(capability, cause, callId) {
53
- super({
54
- code: "AGENT_HANDOFF_FAILED",
55
- message: `Handoff to '${capability}' agent failed`,
56
- callId,
57
- retryable: true,
58
- severity: "high",
59
- cause
60
- });
61
- }
62
- };
63
-
64
- // src/errors/compliance.ts
65
- var ComplianceError = class extends VoiceKitError {
66
- phoneNumber;
67
- constructor(params) {
68
- super({ ...params, provider: "trai" });
69
- this.phoneNumber = params.phoneNumber;
70
- }
71
- };
72
- var DNCBlockedError = class extends ComplianceError {
73
- constructor(phoneNumber, callId) {
74
- super({
75
- code: "COMPLIANCE_DNC_BLOCKED",
76
- message: `Number ${phoneNumber} is on DNC registry \u2014 call blocked`,
77
- callId,
78
- phoneNumber,
79
- retryable: false,
80
- severity: "low"
81
- });
82
- }
83
- };
84
- var CallingHoursError = class extends ComplianceError {
85
- constructor(phoneNumber, currentTime, callId) {
86
- super({
87
- code: "COMPLIANCE_OUTSIDE_CALLING_HOURS",
88
- message: `Call to ${phoneNumber} blocked \u2014 outside TRAI calling hours (current: ${currentTime} IST)`,
89
- callId,
90
- phoneNumber,
91
- retryable: false,
92
- severity: "low"
93
- });
94
- }
95
- };
96
- var ConsentMissingError = class extends ComplianceError {
97
- constructor(phoneNumber, callId) {
98
- super({
99
- code: "COMPLIANCE_CONSENT_MISSING",
100
- message: `No valid consent on record for ${phoneNumber}`,
101
- callId,
102
- phoneNumber,
103
- retryable: false,
104
- severity: "medium"
105
- });
106
- }
107
- };
108
-
109
- // src/errors/inngest.errors.ts
110
- var InngestError = class extends VoiceKitError {
111
- taskName;
112
- constructor(params) {
113
- super({
114
- ...params,
115
- provider: "inngest",
116
- retryable: true,
117
- severity: "medium"
118
- });
119
- this.taskName = params.taskName;
120
- }
121
- };
122
-
123
- // src/errors/stt.errors.ts
124
- var STTError = class extends VoiceKitError {
125
- languageCode;
126
- constructor(params) {
127
- super(params);
128
- this.languageCode = params.languageCode;
129
- }
130
- };
131
- var STTConnectionError = class extends STTError {
132
- constructor(provider, cause, callId) {
133
- super({
134
- code: "STT_CONNECTION_FAILED",
135
- message: `Failed to connect to ${provider} STT service`,
136
- provider,
137
- callId,
138
- retryable: true,
139
- severity: "high",
140
- cause
141
- });
142
- }
143
- };
144
- var STTStreamError = class extends STTError {
145
- constructor(provider, cause, callId) {
146
- super({
147
- code: "STT_STREAM_ERROR",
148
- message: `STT stream error from ${provider}`,
149
- provider,
150
- callId,
151
- retryable: true,
152
- severity: "medium",
153
- cause
154
- });
155
- }
156
- };
157
- var STTLanguageNotSupportedError = class extends STTError {
158
- constructor(provider, language) {
159
- super({
160
- code: "STT_LANGUAGE_NOT_SUPPORTED",
161
- message: `Language '${language}' is not supported by ${provider}`,
162
- provider,
163
- retryable: false,
164
- severity: "low",
165
- languageCode: language
166
- });
167
- }
168
- };
169
-
170
- // src/errors/telephony.errors.ts
171
- var TelephonyError = class extends VoiceKitError {
172
- to;
173
- from;
174
- constructor(params) {
175
- super(params);
176
- this.to = params.to;
177
- this.from = params.from;
178
- }
179
- };
180
- var CallConnectionError = class extends TelephonyError {
181
- constructor(provider, to, cause) {
182
- super({
183
- code: "CALL_CONNECTION_FAILED",
184
- message: `Failed to connect call to ${to} via ${provider}`,
185
- provider,
186
- to,
187
- retryable: true,
188
- severity: "high",
189
- cause
190
- });
191
- }
192
- };
193
- var CallNotFoundError = class extends TelephonyError {
194
- constructor(callId, provider) {
195
- super({
196
- code: "CALL_NOT_FOUND",
197
- message: `Call '${callId}' not found on ${provider}`,
198
- callId,
199
- provider,
200
- retryable: false,
201
- severity: "low"
202
- });
203
- }
204
- };
205
- var AudioTransportError = class extends TelephonyError {
206
- constructor(provider, cause, callId) {
207
- super({
208
- code: "AUDIO_TRANSPORT_ERROR",
209
- message: `Audio transport error on ${provider}`,
210
- provider,
211
- callId,
212
- retryable: true,
213
- severity: "high",
214
- cause
215
- });
216
- }
217
- };
218
-
219
- // src/errors/tts.errors.ts
220
- var TTSError = class extends VoiceKitError {
221
- };
222
- var TTSConnectionError = class extends TTSError {
223
- constructor(provider, cause, callId) {
224
- super({
225
- code: "TTS_CONNECTION_FAILED",
226
- message: `Failed to connect to ${provider} TTS service`,
227
- provider,
228
- callId,
229
- retryable: true,
230
- severity: "high",
231
- cause
232
- });
233
- }
234
- };
235
- var TTSStreamError = class extends TTSError {
236
- constructor(provider, cause, callId) {
237
- super({
238
- code: "TTS_STREAM_ERROR",
239
- message: `TTS stream error from ${provider}`,
240
- provider,
241
- callId,
242
- retryable: true,
243
- severity: "medium",
244
- cause
245
- });
246
- }
247
- };
248
- var TTSVoiceNotFoundError = class extends TTSError {
249
- constructor(provider, voiceId) {
250
- super({
251
- code: "TTS_VOICE_NOT_FOUND",
252
- message: `Voice '${voiceId}' not found on ${provider}`,
253
- provider,
254
- retryable: false,
255
- severity: "low"
256
- });
257
- }
258
- };
259
-
260
- export { AgentError, AgentHandoffError, AudioTransportError, CallConnectionError, CallNotFoundError, CallingHoursError, ComplianceError, ConsentMissingError, DNCBlockedError, InngestError, STTConnectionError, STTError, STTLanguageNotSupportedError, STTStreamError, TTSConnectionError, TTSError, TTSStreamError, TTSVoiceNotFoundError, TelephonyError, TurnTransitionError, VoiceKitError };
261
- //# sourceMappingURL=errors.js.map
262
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors/base.ts","../src/errors/agents.errors.ts","../src/errors/compliance.ts","../src/errors/inngest.errors.ts","../src/errors/stt.errors.ts","../src/errors/telephony.errors.ts","../src/errors/tts.errors.ts"],"names":[],"mappings":"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","file":"errors.js","sourcesContent":["/**\r\n * @voice-kit/core — Typed error hierarchy\r\n *\r\n * All VoiceKit errors extend VoiceKitError. Never throw raw Error.\r\n * Every error carries: code, message, provider, callId, retryable, severity.\r\n */\r\n\r\nimport type { ErrorSeverity } from '../types'\r\n\r\n// ─── Base Error ───────────────────────────────────────────────────────────────\r\n\r\n/**\r\n * Base class for all VoiceKit errors. Provides structured context for\r\n * logging, alerting, and programmatic error handling.\r\n *\r\n * @example\r\n * ```ts\r\n * try {\r\n * await stt.transcribeBatch(audio)\r\n * } catch (err) {\r\n * if (err instanceof STTError) {\r\n * console.error(err.code, err.provider, err.retryable)\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport class VoiceKitError extends Error {\r\n readonly code: string\r\n readonly callId?: string\r\n readonly provider?: string\r\n readonly retryable: boolean\r\n readonly severity: ErrorSeverity\r\n override readonly cause?: unknown\r\n\r\n constructor(params: {\r\n code: string\r\n message: string\r\n callId?: string\r\n provider?: string\r\n retryable?: boolean\r\n severity?: ErrorSeverity\r\n cause?: unknown\r\n }) {\r\n super(params.message)\r\n this.name = this.constructor.name\r\n this.code = params.code\r\n this.callId = params.callId\r\n this.provider = params.provider\r\n this.retryable = params.retryable ?? false\r\n this.severity = params.severity ?? 'medium'\r\n this.cause = params.cause\r\n\r\n // Maintains proper prototype chain for `instanceof` in transpiled code\r\n Object.setPrototypeOf(this, new.target.prototype)\r\n }\r\n\r\n toJSON() {\r\n return {\r\n name: this.name,\r\n code: this.code,\r\n message: this.message,\r\n callId: this.callId,\r\n provider: this.provider,\r\n retryable: this.retryable,\r\n severity: this.severity,\r\n }\r\n }\r\n}","\r\n// ─── Agent Errors ─────────────────────────────────────────────────────────────\r\n\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from agent orchestration (turn engine, handoff, injection).\r\n */\r\nexport class AgentError extends VoiceKitError { }\r\n\r\nexport class TurnTransitionError extends AgentError {\r\n readonly fromState: string\r\n readonly event: string\r\n\r\n constructor(fromState: string, toEvent: string, callId?: string) {\r\n super({\r\n code: 'AGENT_INVALID_TURN_TRANSITION',\r\n message: `Invalid turn transition: state '${fromState}' cannot handle event '${toEvent}'`,\r\n callId,\r\n retryable: false,\r\n severity: 'medium',\r\n })\r\n this.fromState = fromState\r\n this.event = toEvent\r\n }\r\n}\r\n\r\nexport class AgentHandoffError extends AgentError {\r\n constructor(capability: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'AGENT_HANDOFF_FAILED',\r\n message: `Handoff to '${capability}' agent failed`,\r\n callId,\r\n retryable: true,\r\n severity: 'high',\r\n cause,\r\n })\r\n }\r\n}\r\n","\r\n// ─── Compliance Errors ────────────────────────────────────────────────────────\r\n\r\nimport type { ErrorSeverity } from \"../types\"\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from compliance checks (TRAI DNC, calling hours, consent).\r\n */\r\nexport class ComplianceError extends VoiceKitError {\r\n readonly phoneNumber?: string\r\n\r\n constructor(params: {\r\n code: string\r\n message: string\r\n callId?: string\r\n phoneNumber?: string\r\n retryable?: boolean\r\n severity?: ErrorSeverity\r\n cause?: unknown\r\n }) {\r\n super({ ...params, provider: 'trai' })\r\n this.phoneNumber = params.phoneNumber\r\n }\r\n}\r\n\r\nexport class DNCBlockedError extends ComplianceError {\r\n constructor(phoneNumber: string, callId?: string) {\r\n super({\r\n code: 'COMPLIANCE_DNC_BLOCKED',\r\n message: `Number ${phoneNumber} is on DNC registry — call blocked`,\r\n callId,\r\n phoneNumber,\r\n retryable: false,\r\n severity: 'low',\r\n })\r\n }\r\n}\r\n\r\nexport class CallingHoursError extends ComplianceError {\r\n constructor(phoneNumber: string, currentTime: string, callId?: string) {\r\n super({\r\n code: 'COMPLIANCE_OUTSIDE_CALLING_HOURS',\r\n message: `Call to ${phoneNumber} blocked — outside TRAI calling hours (current: ${currentTime} IST)`,\r\n callId,\r\n phoneNumber,\r\n retryable: false,\r\n severity: 'low',\r\n })\r\n }\r\n}\r\n\r\nexport class ConsentMissingError extends ComplianceError {\r\n constructor(phoneNumber: string, callId?: string) {\r\n super({\r\n code: 'COMPLIANCE_CONSENT_MISSING',\r\n message: `No valid consent on record for ${phoneNumber}`,\r\n callId,\r\n phoneNumber,\r\n retryable: false,\r\n severity: 'medium',\r\n })\r\n }\r\n}\r\n","\r\n\r\n// ─── Inngest Errors ───────────────────────────────────────────────────────────\r\n\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from Inngest background task dispatch.\r\n */\r\nexport class InngestError extends VoiceKitError {\r\n readonly taskName?: string\r\n\r\n constructor(params: {\r\n code: string\r\n message: string\r\n callId?: string\r\n taskName?: string\r\n cause?: unknown\r\n }) {\r\n super({\r\n ...params,\r\n provider: 'inngest',\r\n retryable: true,\r\n severity: 'medium',\r\n })\r\n this.taskName = params.taskName\r\n }\r\n}","\r\n// ─── STT Errors ───────────────────────────────────────────────────────────────\r\n\r\nimport type { ErrorSeverity } from \"../types\"\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from speech-to-text providers.\r\n */\r\nexport class STTError extends VoiceKitError {\r\n readonly languageCode?: string\r\n\r\n constructor(params: {\r\n code: string\r\n message: string\r\n callId?: string\r\n provider?: string\r\n retryable?: boolean\r\n severity?: ErrorSeverity\r\n cause?: unknown\r\n languageCode?: string\r\n }) {\r\n super(params)\r\n this.languageCode = params.languageCode\r\n }\r\n}\r\n\r\nexport class STTConnectionError extends STTError {\r\n constructor(provider: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'STT_CONNECTION_FAILED',\r\n message: `Failed to connect to ${provider} STT service`,\r\n provider,\r\n callId,\r\n retryable: true,\r\n severity: 'high',\r\n cause,\r\n })\r\n }\r\n}\r\n\r\nexport class STTStreamError extends STTError {\r\n constructor(provider: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'STT_STREAM_ERROR',\r\n message: `STT stream error from ${provider}`,\r\n provider,\r\n callId,\r\n retryable: true,\r\n severity: 'medium',\r\n cause,\r\n })\r\n }\r\n}\r\n\r\nexport class STTLanguageNotSupportedError extends STTError {\r\n constructor(provider: string, language: string) {\r\n super({\r\n code: 'STT_LANGUAGE_NOT_SUPPORTED',\r\n message: `Language '${language}' is not supported by ${provider}`,\r\n provider,\r\n retryable: false,\r\n severity: 'low',\r\n languageCode: language,\r\n })\r\n }\r\n}\r\n","\r\n// ─── Telephony Errors ─────────────────────────────────────────────────────────\r\n\r\nimport type { ErrorSeverity } from \"../types\"\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from telephony providers.\r\n */\r\nexport class TelephonyError extends VoiceKitError {\r\n readonly to?: string\r\n readonly from?: string\r\n\r\n constructor(params: {\r\n code: string\r\n message: string\r\n callId?: string\r\n provider?: string\r\n retryable?: boolean\r\n severity?: ErrorSeverity\r\n cause?: unknown\r\n to?: string\r\n from?: string\r\n }) {\r\n super(params)\r\n this.to = params.to\r\n this.from = params.from\r\n }\r\n}\r\n\r\nexport class CallConnectionError extends TelephonyError {\r\n constructor(provider: string, to: string, cause?: unknown) {\r\n super({\r\n code: 'CALL_CONNECTION_FAILED',\r\n message: `Failed to connect call to ${to} via ${provider}`,\r\n provider,\r\n to,\r\n retryable: true,\r\n severity: 'high',\r\n cause,\r\n })\r\n }\r\n}\r\n\r\nexport class CallNotFoundError extends TelephonyError {\r\n constructor(callId: string, provider: string) {\r\n super({\r\n code: 'CALL_NOT_FOUND',\r\n message: `Call '${callId}' not found on ${provider}`,\r\n callId,\r\n provider,\r\n retryable: false,\r\n severity: 'low',\r\n })\r\n }\r\n}\r\n\r\nexport class AudioTransportError extends TelephonyError {\r\n constructor(provider: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'AUDIO_TRANSPORT_ERROR',\r\n message: `Audio transport error on ${provider}`,\r\n provider,\r\n callId,\r\n retryable: true,\r\n severity: 'high',\r\n cause,\r\n })\r\n }\r\n}\r\n","\r\n// ─── TTS Errors ───────────────────────────────────────────────────────────────\r\n\r\nimport { VoiceKitError } from \"./base\"\r\n\r\n/**\r\n * Errors from text-to-speech providers.\r\n */\r\nexport class TTSError extends VoiceKitError { }\r\n\r\nexport class TTSConnectionError extends TTSError {\r\n constructor(provider: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'TTS_CONNECTION_FAILED',\r\n message: `Failed to connect to ${provider} TTS service`,\r\n provider,\r\n callId,\r\n retryable: true,\r\n severity: 'high',\r\n cause,\r\n })\r\n }\r\n}\r\n\r\nexport class TTSStreamError extends TTSError {\r\n constructor(provider: string, cause?: unknown, callId?: string) {\r\n super({\r\n code: 'TTS_STREAM_ERROR',\r\n message: `TTS stream error from ${provider}`,\r\n provider,\r\n callId,\r\n retryable: true,\r\n severity: 'medium',\r\n cause,\r\n })\r\n }\r\n}\r\n\r\nexport class TTSVoiceNotFoundError extends TTSError {\r\n constructor(provider: string, voiceId: string) {\r\n super({\r\n code: 'TTS_VOICE_NOT_FOUND',\r\n message: `Voice '${voiceId}' not found on ${provider}`,\r\n provider,\r\n retryable: false,\r\n severity: 'low',\r\n })\r\n }\r\n}\r\n"]}
@@ -1,319 +0,0 @@
1
- import * as ai from 'ai';
2
-
3
- /**
4
- * @voice-kit/core — Type definitions
5
- */
6
- /**
7
- * A single word with timing information from an STT provider.
8
- */
9
- interface WordTimestamp {
10
- word: string;
11
- startMs: number;
12
- endMs: number;
13
- confidence: number;
14
- }
15
- /**
16
- * The result of a speech-to-text transcription, either streaming partial
17
- * or final. `isFinal` distinguishes the two.
18
- *
19
- * @example
20
- * ```ts
21
- * for await (const result of stt.transcribeStream(audioIterable)) {
22
- * if (result.isFinal) console.log('Final:', result.transcript)
23
- * }
24
- * ```
25
- */
26
- interface STTResult {
27
- /** The transcribed text. May be a partial result if `isFinal` is false. */
28
- transcript: string;
29
- /** Whether this is the final result for this utterance. */
30
- isFinal: boolean;
31
- /** Confidence score from the provider, 0–1. */
32
- confidence: number;
33
- /** BCP-47 language tag, e.g. 'hi-IN', 'en-IN'. */
34
- language: string;
35
- /** True if a mid-sentence language switch was detected (e.g. Hinglish). */
36
- languageSwitchDetected: boolean;
37
- /** Word-level timestamps if supported by the provider. */
38
- words?: WordTimestamp[];
39
- /** Time from audio start to this result being emitted, in ms. */
40
- latencyMs: number;
41
- }
42
- /**
43
- * Configuration for STT provider instantiation.
44
- */
45
- interface STTConfig {
46
- /** BCP-47 language code. Defaults to 'en-IN'. */
47
- language?: string;
48
- /** Additional languages to detect for code-switching. */
49
- alternateLanguages?: string[];
50
- /** API key. Falls back to provider-specific env var if omitted. */
51
- apiKey?: string;
52
- /** Custom model name. Provider-specific. */
53
- model?: string;
54
- /** Enable word-level timestamps. Default false. */
55
- wordTimestamps?: boolean;
56
- /** Enable interim / partial results. Default true. */
57
- interimResults?: boolean;
58
- /** Deepgram-specific: smart formatting. Default true. */
59
- smartFormat?: boolean;
60
- /** Sarvam-specific: region hint. */
61
- region?: string;
62
- }
63
- /**
64
- * The STTProvider interface. Obtained via `createSTT()` — never instantiate
65
- * provider classes directly.
66
- *
67
- * @example
68
- * ```ts
69
- * const stt = createSTT('deepgram', { language: 'en-IN' })
70
- * for await (const result of stt.transcribeStream(audioStream)) {
71
- * console.log(result.transcript)
72
- * }
73
- * ```
74
- */
75
- interface STTProvider {
76
- /** Stream audio in, stream STTResults out. Primary realtime path. */
77
- transcribeStream(audio: AsyncIterable<Buffer>): AsyncIterable<STTResult>;
78
- /** Batch transcription for recordings. Returns single final result. */
79
- transcribeBatch(audio: Buffer): Promise<STTResult>;
80
- /** Whether this provider supports streaming (all except Whisper). */
81
- readonly supportsStreaming: boolean;
82
- /** BCP-47 codes this provider can handle. */
83
- readonly supportedLanguages: string[];
84
- /** Human-readable provider name for logging. */
85
- readonly name: string;
86
- }
87
- /**
88
- * Configuration for TTS provider instantiation.
89
- */
90
- interface TTSConfig {
91
- /** Voice identifier. Provider-specific. */
92
- voiceId?: string;
93
- /** Output sample rate. Defaults to provider native rate. */
94
- sampleRate?: number;
95
- /** Speaking speed multiplier. Default 1.0. */
96
- speed?: number;
97
- /** Pitch adjustment. Provider-specific. */
98
- pitch?: number;
99
- /** API key. Falls back to provider-specific env var if omitted. */
100
- apiKey?: string;
101
- /** ElevenLabs-specific: model ID. */
102
- modelId?: string;
103
- /** Cartesia-specific: emotion control. */
104
- emotion?: string;
105
- /** Sarvam-specific: target language for Indic voices. */
106
- targetLanguage?: string;
107
- }
108
- /**
109
- * The TTSProvider interface. Obtained via `createTTS()` — never instantiate
110
- * provider classes directly.
111
- *
112
- * @example
113
- * ```ts
114
- * const tts = createTTS('elevenlabs', { voiceId: 'your-voice-id' })
115
- * for await (const chunk of tts.synthesizeStream('Hello, how can I help?')) {
116
- * socket.write(chunk)
117
- * }
118
- * ```
119
- */
120
- interface TTSProvider {
121
- /** Stream synthesis — preferred for realtime. First chunk < 300ms. */
122
- synthesizeStream(text: string, config?: TTSConfig): AsyncIterable<Buffer>;
123
- /** Synthesize full audio — for pre-recorded prompts or caching. */
124
- synthesizeFull(text: string, config?: TTSConfig): Promise<Buffer>;
125
- /** Native output sample rate of this provider in Hz. */
126
- readonly outputSampleRate: number;
127
- /** Native output format before any resampling. */
128
- readonly outputFormat: 'pcm' | 'mulaw' | 'opus' | 'mp3';
129
- /** Human-readable provider name for logging. */
130
- readonly name: string;
131
- }
132
- /**
133
- * A frame of audio classified by the VAD engine.
134
- * Developers subscribe to these events — never to raw VAD API.
135
- */
136
- interface VoiceFrame {
137
- /** Event type. */
138
- type: 'speech_start' | 'speech_end' | 'speech';
139
- /** VAD confidence 0–1. */
140
- confidence: number;
141
- /** Raw PCM audio bytes for this frame. */
142
- audioBuffer: Buffer;
143
- /** Duration of audio in this frame, in ms. */
144
- durationMs: number;
145
- }
146
- /**
147
- * Configuration for the VAD engine.
148
- */
149
- interface VADConfig {
150
- /** Activation threshold 0–1. Default 0.6. */
151
- threshold?: number;
152
- /** Consecutive positive frames before speech_start. Default 3. */
153
- positiveSpeechFrames?: number;
154
- /** Consecutive negative frames before speech_end. Default 5. */
155
- negativeSpeechFrames?: number;
156
- /** Debounce window in ms to prevent rapid flip-flop. Default 150. */
157
- debounceMs?: number;
158
- /** Input sample rate. Auto-set by AudioPipeline — do not override. */
159
- sampleRate?: number;
160
- }
161
- /**
162
- * Configuration for call memory (LRU-backed sliding window of turns).
163
- */
164
- interface CallMemoryConfig {
165
- /** Maximum number of turns to retain. Default 20. */
166
- maxTurns?: number;
167
- /** Maximum bytes of conversation history to retain. Default 512KB. */
168
- maxBytes?: number;
169
- /** TTL for the entire call memory entry in ms. Default 30 minutes. */
170
- ttlMs?: number;
171
- }
172
- /**
173
- * In-process LRU-backed call memory. Obtained via `createCallMemory()`.
174
- *
175
- * @example
176
- * ```ts
177
- * const memory = createCallMemory({ maxTurns: 20 })
178
- * memory.addTurn(callId, { role: 'user', content: 'Hello' })
179
- * const history = memory.getTurns(callId)
180
- * ```
181
- */
182
- interface CallMemory {
183
- addTurn(callId: string, message: ai.ModelMessage): void;
184
- getTurns(callId: string): ai.ModelMessage[];
185
- clearCall(callId: string): void;
186
- getTokenEstimate(callId: string): number;
187
- /** Truncate oldest turns to stay within budget. */
188
- trimToTokenBudget(callId: string, maxTokens: number): void;
189
- }
190
- /**
191
- * Type of call for TRAI DND classification.
192
- */
193
- type CallPurpose = 'TRANSACTIONAL' | 'PROMOTIONAL' | 'SERVICE' | 'EMERGENCY';
194
- /**
195
- * TRAI DNC check parameters.
196
- */
197
- interface DNCCheckParams {
198
- /** E.164 format phone number, validated via libphonenumber-js. */
199
- to: string;
200
- /** Purpose category for TRAI classification. */
201
- purpose: CallPurpose;
202
- /** Scheduled call time. Defaults to now. */
203
- scheduledAt?: Date;
204
- }
205
- /**
206
- * Result of a TRAI DNC check.
207
- */
208
- interface DNCCheckResult {
209
- /** Whether the call is permitted. */
210
- allowed: boolean;
211
- /** Human-readable reason if not allowed. */
212
- reason?: string;
213
- /** When this result was fetched (from LRU cache). */
214
- cachedAt?: Date;
215
- /** Whether result came from local LRU cache. */
216
- fromCache: boolean;
217
- }
218
- /**
219
- * Consent record stored for TRAI compliance.
220
- */
221
- interface ConsentRecord {
222
- phoneNumber: string;
223
- consentedAt: Date;
224
- /** Channel through which consent was obtained. */
225
- channel: 'voice' | 'sms' | 'web' | 'ivr';
226
- /** Call purpose consent was given for. */
227
- purpose: CallPurpose;
228
- /** Optional reference ID (e.g. recording URL). */
229
- referenceId?: string;
230
- }
231
- /**
232
- * TRAI compliance configuration.
233
- */
234
- interface TRAIConfig {
235
- /** Disable TRAI checks entirely. Default false. */
236
- disabled?: boolean;
237
- /** Calling timezone override. Default 'Asia/Kolkata'. */
238
- timezone?: string;
239
- /** Override calling hours start (24h). Default 9. */
240
- callingHoursStart?: number;
241
- /** Override calling hours end (24h). Default 21. */
242
- callingHoursEnd?: number;
243
- /** Custom DNC API endpoint. Default: mock endpoint (must be replaced in production). */
244
- dncApiEndpoint?: string;
245
- }
246
- /**
247
- * Aggregated metrics for a completed or in-progress call.
248
- */
249
- interface CallMetricsSummary {
250
- callId: string;
251
- sttFirstByteMs: number[];
252
- ttsFirstByteMs: number[];
253
- llmFirstTokenMs: number[];
254
- turnLatencyMs: number[];
255
- interruptionCount: number;
256
- interruptionPositions: number[];
257
- tokenCost: {
258
- model: string;
259
- inputTokens: number;
260
- outputTokens: number;
261
- estimatedUsdCost: number;
262
- }[];
263
- avgTurnLatencyMs: number;
264
- p95TurnLatencyMs: number;
265
- }
266
- /**
267
- * Error severity level.
268
- */
269
- type ErrorSeverity = 'low' | 'medium' | 'high' | 'critical';
270
- /**
271
- * Base error context shared by all VoiceKit errors.
272
- */
273
- interface VoiceKitErrorContext {
274
- /** Error code for programmatic handling. */
275
- code: string;
276
- /** Associated call ID if applicable. */
277
- callId?: string;
278
- /** The provider that threw (e.g. 'deepgram', 'elevenlabs'). */
279
- provider?: string;
280
- /** Whether this error is safe to retry. */
281
- retryable: boolean;
282
- /** Severity for alerting/logging. */
283
- severity: ErrorSeverity;
284
- /** Original upstream error if wrapping. */
285
- cause?: unknown;
286
- }
287
- /**
288
- * Create an STT provider instance. This is the ONLY public API for STT.
289
- * Never instantiate provider classes directly.
290
- *
291
- * @example
292
- * ```ts
293
- * const stt = createSTT('deepgram', { language: 'hi-IN' })
294
- * const stt2 = createSTT('sarvam', { language: 'ta-IN' })
295
- * ```
296
- */
297
- declare function createSTT(provider: 'deepgram' | 'whisper' | 'assemblyai' | 'sarvam', config?: STTConfig): STTProvider;
298
- /**
299
- * Create a TTS provider instance. This is the ONLY public API for TTS.
300
- * Never instantiate provider classes directly.
301
- *
302
- * @example
303
- * ```ts
304
- * const tts = createTTS('elevenlabs', { voiceId: 'your-voice-id' })
305
- * const tts2 = createTTS('sarvam', { targetLanguage: 'hi-IN' })
306
- * ```
307
- */
308
- declare function createTTS(provider: 'elevenlabs' | 'cartesia' | 'sarvam', config?: TTSConfig): TTSProvider;
309
- /**
310
- * Create an LRU-backed call memory instance.
311
- *
312
- * @example
313
- * ```ts
314
- * const memory = createCallMemory({ maxTurns: 20, maxBytes: 512_000 })
315
- * ```
316
- */
317
- declare function createCallMemory(config?: CallMemoryConfig): CallMemory;
318
-
319
- export { type CallMemoryConfig as C, type DNCCheckParams as D, type ErrorSeverity as E, type STTProvider as S, type TRAIConfig as T, type VADConfig as V, type WordTimestamp as W, type CallMemory as a, type DNCCheckResult as b, type ConsentRecord as c, type CallMetricsSummary as d, type TTSProvider as e, type TTSConfig as f, type VoiceFrame as g, type STTConfig as h, type STTResult as i, type CallPurpose as j, type VoiceKitErrorContext as k, createCallMemory as l, createSTT as m, createTTS as n };