@elevenlabs/client 0.15.2 → 1.0.0-rc.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 (160) hide show
  1. package/README.md +20 -836
  2. package/dist/BaseConversation.d.ts +10 -12
  3. package/dist/BaseConversation.d.ts.map +1 -0
  4. package/dist/BaseConversation.js +392 -0
  5. package/dist/BaseConversation.js.map +1 -0
  6. package/dist/InputController.d.ts +13 -0
  7. package/dist/InputController.d.ts.map +1 -0
  8. package/dist/InputController.js +2 -0
  9. package/dist/InputController.js.map +1 -0
  10. package/dist/OutputController.d.ts +12 -0
  11. package/dist/OutputController.d.ts.map +1 -0
  12. package/dist/OutputController.js +2 -0
  13. package/dist/OutputController.js.map +1 -0
  14. package/dist/TextConversation.d.ts +7 -0
  15. package/dist/TextConversation.d.ts.map +1 -0
  16. package/dist/TextConversation.js +53 -0
  17. package/dist/TextConversation.js.map +1 -0
  18. package/dist/VoiceConversation.d.ts +14 -12
  19. package/dist/VoiceConversation.d.ts.map +1 -0
  20. package/dist/VoiceConversation.js +225 -0
  21. package/dist/VoiceConversation.js.map +1 -0
  22. package/dist/index.d.ts +11 -6
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +20 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/internal.d.ts +8 -0
  27. package/dist/internal.d.ts.map +1 -0
  28. package/dist/internal.js +6 -0
  29. package/dist/internal.js.map +1 -0
  30. package/dist/lib.iife.js +23493 -0
  31. package/dist/lib.iife.js.map +1 -0
  32. package/dist/platform/VoiceSessionSetup.d.ts +35 -0
  33. package/dist/platform/VoiceSessionSetup.d.ts.map +1 -0
  34. package/dist/platform/VoiceSessionSetup.js +74 -0
  35. package/dist/platform/VoiceSessionSetup.js.map +1 -0
  36. package/dist/scribe/connection.d.ts +1 -0
  37. package/dist/scribe/connection.d.ts.map +1 -0
  38. package/dist/scribe/connection.js +363 -0
  39. package/dist/scribe/connection.js.map +1 -0
  40. package/dist/scribe/index.d.ts +1 -0
  41. package/dist/scribe/index.d.ts.map +1 -0
  42. package/dist/scribe/index.js +8 -0
  43. package/dist/scribe/index.js.map +1 -0
  44. package/dist/scribe/scribe.d.ts +1 -0
  45. package/dist/scribe/scribe.d.ts.map +1 -0
  46. package/dist/scribe/scribe.js +193 -0
  47. package/dist/scribe/scribe.js.map +1 -0
  48. package/dist/sourceInfo.d.ts +7 -0
  49. package/dist/sourceInfo.d.ts.map +1 -0
  50. package/dist/sourceInfo.js +9 -0
  51. package/dist/sourceInfo.js.map +1 -0
  52. package/dist/utils/BaseConnection.d.ts +2 -9
  53. package/dist/utils/BaseConnection.d.ts.map +1 -0
  54. package/dist/utils/BaseConnection.js +73 -0
  55. package/dist/utils/BaseConnection.js.map +1 -0
  56. package/dist/utils/ConnectionFactory.d.ts +1 -0
  57. package/dist/utils/ConnectionFactory.d.ts.map +1 -0
  58. package/dist/utils/ConnectionFactory.js +26 -0
  59. package/dist/utils/ConnectionFactory.js.map +1 -0
  60. package/dist/utils/WebRTCConnection.d.ts +6 -1
  61. package/dist/utils/WebRTCConnection.d.ts.map +1 -0
  62. package/dist/utils/WebRTCConnection.js +494 -0
  63. package/dist/utils/WebRTCConnection.js.map +1 -0
  64. package/dist/utils/WebSocketConnection.d.ts +8 -3
  65. package/dist/utils/WebSocketConnection.d.ts.map +1 -0
  66. package/dist/utils/WebSocketConnection.js +155 -0
  67. package/dist/utils/WebSocketConnection.js.map +1 -0
  68. package/dist/utils/applyDelay.d.ts +1 -0
  69. package/dist/utils/applyDelay.d.ts.map +1 -0
  70. package/dist/utils/applyDelay.js +18 -0
  71. package/dist/utils/applyDelay.js.map +1 -0
  72. package/dist/utils/attachConnectionToOutput.d.ts +5 -0
  73. package/dist/utils/attachConnectionToOutput.d.ts.map +1 -0
  74. package/dist/utils/attachConnectionToOutput.js +11 -0
  75. package/dist/utils/attachConnectionToOutput.js.map +1 -0
  76. package/dist/utils/attachInputToConnection.d.ts +6 -0
  77. package/dist/utils/attachInputToConnection.d.ts.map +1 -0
  78. package/dist/utils/attachInputToConnection.js +16 -0
  79. package/dist/utils/attachInputToConnection.js.map +1 -0
  80. package/dist/utils/audio.d.ts +1 -0
  81. package/dist/utils/audio.d.ts.map +1 -0
  82. package/dist/utils/audio.js +16 -0
  83. package/dist/utils/audio.js.map +1 -0
  84. package/dist/utils/audioConcatProcessor.generated.d.ts +1 -0
  85. package/dist/utils/audioConcatProcessor.generated.d.ts.map +1 -0
  86. package/{worklets/audioConcatProcessor.js → dist/utils/audioConcatProcessor.generated.js} +12 -18
  87. package/dist/utils/audioConcatProcessor.generated.js.map +1 -0
  88. package/dist/utils/compatibility.d.ts +1 -0
  89. package/dist/utils/compatibility.d.ts.map +1 -0
  90. package/dist/utils/compatibility.js +16 -0
  91. package/dist/utils/compatibility.js.map +1 -0
  92. package/dist/utils/connection.d.ts +11 -0
  93. package/dist/utils/connection.d.ts.map +1 -0
  94. package/dist/utils/connection.js +14 -0
  95. package/dist/utils/connection.js.map +1 -0
  96. package/dist/utils/createWorkletModuleLoader.d.ts +1 -0
  97. package/dist/utils/createWorkletModuleLoader.d.ts.map +1 -0
  98. package/dist/utils/createWorkletModuleLoader.js +43 -0
  99. package/dist/utils/createWorkletModuleLoader.js.map +1 -0
  100. package/dist/utils/errors.d.ts +1 -0
  101. package/dist/utils/errors.d.ts.map +1 -0
  102. package/dist/utils/errors.js +11 -0
  103. package/dist/utils/errors.js.map +1 -0
  104. package/dist/utils/events.d.ts +3 -5
  105. package/dist/utils/events.d.ts.map +1 -0
  106. package/dist/utils/events.js +4 -0
  107. package/dist/utils/events.js.map +1 -0
  108. package/dist/utils/input.d.ts +22 -11
  109. package/dist/utils/input.d.ts.map +1 -0
  110. package/dist/utils/input.js +181 -0
  111. package/dist/utils/input.js.map +1 -0
  112. package/dist/utils/location.d.ts +5 -0
  113. package/dist/utils/location.d.ts.map +1 -0
  114. package/dist/utils/location.js +31 -0
  115. package/dist/utils/location.js.map +1 -0
  116. package/dist/utils/mergeOptions.d.ts +11 -0
  117. package/dist/utils/mergeOptions.d.ts.map +1 -0
  118. package/dist/utils/mergeOptions.js +38 -0
  119. package/dist/utils/mergeOptions.js.map +1 -0
  120. package/dist/utils/output.d.ts +36 -10
  121. package/dist/utils/output.d.ts.map +1 -0
  122. package/dist/utils/output.js +127 -0
  123. package/dist/utils/output.js.map +1 -0
  124. package/dist/utils/overrides.d.ts +1 -0
  125. package/dist/utils/overrides.d.ts.map +1 -0
  126. package/dist/utils/overrides.js +40 -0
  127. package/dist/utils/overrides.js.map +1 -0
  128. package/dist/utils/postOverallFeedback.d.ts +1 -0
  129. package/dist/utils/postOverallFeedback.d.ts.map +1 -0
  130. package/dist/utils/postOverallFeedback.js +19 -0
  131. package/dist/utils/postOverallFeedback.js.map +1 -0
  132. package/dist/utils/rawAudioProcessor.generated.d.ts +1 -0
  133. package/dist/utils/rawAudioProcessor.generated.d.ts.map +1 -0
  134. package/{worklets/rawAudioProcessor.js → dist/utils/rawAudioProcessor.generated.js} +7 -1
  135. package/dist/utils/rawAudioProcessor.generated.js.map +1 -0
  136. package/dist/utils/scribeAudioProcessor.generated.d.ts +1 -0
  137. package/dist/utils/scribeAudioProcessor.generated.d.ts.map +1 -0
  138. package/{worklets/scribeAudioProcessor.js → dist/utils/scribeAudioProcessor.generated.js} +7 -1
  139. package/dist/utils/scribeAudioProcessor.generated.js.map +1 -0
  140. package/dist/version.d.ts +2 -1
  141. package/dist/version.d.ts.map +1 -0
  142. package/dist/version.js +3 -0
  143. package/dist/version.js.map +1 -0
  144. package/package.json +22 -16
  145. package/.turbo/turbo-build.log +0 -13
  146. package/.turbo/turbo-generate-version.log +0 -4
  147. package/.turbo/turbo-generate-worklets.log +0 -9
  148. package/.turbo/turbo-lint$colon$es.log +0 -6
  149. package/.turbo/turbo-lint$colon$prettier.log +0 -6
  150. package/CHANGELOG.md +0 -50
  151. package/dist/lib.cjs +0 -2
  152. package/dist/lib.cjs.map +0 -1
  153. package/dist/lib.modern.js +0 -2
  154. package/dist/lib.modern.js.map +0 -1
  155. package/dist/lib.module.js +0 -2
  156. package/dist/lib.module.js.map +0 -1
  157. package/dist/lib.umd.js +0 -2
  158. package/dist/lib.umd.js.map +0 -1
  159. package/dist/utils/addLibsamplerateModule.d.ts +0 -1
  160. package/scripts/generateWorklets.js +0 -59
@@ -0,0 +1,35 @@
1
+ import type { Options } from "../BaseConversation";
2
+ import type { BaseConnection } from "../utils/BaseConnection";
3
+ import type { InputController } from "../InputController";
4
+ import type { OutputController } from "../OutputController";
5
+ import { type PlaybackEventTarget } from "../utils/output";
6
+ export type VoiceSessionSetupResult = {
7
+ connection: BaseConnection;
8
+ input: InputController;
9
+ output: OutputController;
10
+ playbackEventTarget: PlaybackEventTarget | null;
11
+ detach: () => void;
12
+ };
13
+ export type VoiceSessionSetupStrategy = (options: Options) => Promise<VoiceSessionSetupResult>;
14
+ /**
15
+ * Sets up input and output controllers for an existing connection.
16
+ * Shared helper used by platform-specific setup strategies.
17
+ */
18
+ export declare function setupInputOutput(options: Options, connection: BaseConnection): Promise<Omit<VoiceSessionSetupResult, "connection">>;
19
+ /**
20
+ * Web platform session setup strategy.
21
+ * Creates a connection and sets up input/output based on the connection type.
22
+ */
23
+ export declare function webSessionSetup(options: Options): Promise<VoiceSessionSetupResult>;
24
+ /**
25
+ * The active session setup strategy.
26
+ * Defaults to web platform strategy.
27
+ * Can be overridden by platform-specific entrypoints (e.g. React Native).
28
+ */
29
+ export declare let setupStrategy: VoiceSessionSetupStrategy;
30
+ /**
31
+ * Override the voice session setup strategy.
32
+ * Called by platform-specific entrypoints to inject their own setup handling.
33
+ */
34
+ export declare function setSetupStrategy(strategy: VoiceSessionSetupStrategy): void;
35
+ //# sourceMappingURL=VoiceSessionSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceSessionSetup.d.ts","sourceRoot":"","sources":["../../src/platform/VoiceSessionSetup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAQ9E,MAAM,MAAM,uBAAuB,GAAG;IACpC,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,gBAAgB,CAAC;IACzB,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAChD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,uBAAuB,CAAC,CAAC;AAEtC;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC,CAyCtD;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,uBAAuB,CAAC,CAIlC;AAED;;;;GAIG;AACH,eAAO,IAAI,aAAa,EAAE,yBAA2C,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,yBAAyB,QAEnE"}
@@ -0,0 +1,74 @@
1
+ import { MediaDeviceOutput } from "../utils/output";
2
+ import { MediaDeviceInput } from "../utils/input";
3
+ import { WebSocketConnection } from "../utils/WebSocketConnection";
4
+ import { WebRTCConnection } from "../utils/WebRTCConnection";
5
+ import { attachInputToConnection } from "../utils/attachInputToConnection";
6
+ import { attachConnectionToOutput } from "../utils/attachConnectionToOutput";
7
+ import { createConnection } from "../utils/ConnectionFactory";
8
+ /**
9
+ * Sets up input and output controllers for an existing connection.
10
+ * Shared helper used by platform-specific setup strategies.
11
+ */
12
+ export async function setupInputOutput(options, connection) {
13
+ if (connection instanceof WebRTCConnection) {
14
+ return {
15
+ input: connection.input,
16
+ output: connection.output,
17
+ playbackEventTarget: null,
18
+ detach: () => { },
19
+ };
20
+ }
21
+ else if (connection instanceof WebSocketConnection) {
22
+ const [input, output] = await Promise.all([
23
+ MediaDeviceInput.create({
24
+ ...connection.inputFormat,
25
+ preferHeadphonesForIosDevices: options.preferHeadphonesForIosDevices,
26
+ inputDeviceId: options.inputDeviceId,
27
+ workletPaths: options.workletPaths,
28
+ libsampleratePath: options.libsampleratePath,
29
+ }),
30
+ MediaDeviceOutput.create({
31
+ ...connection.outputFormat,
32
+ outputDeviceId: options.outputDeviceId,
33
+ workletPaths: options.workletPaths,
34
+ }),
35
+ ]);
36
+ const detachInput = attachInputToConnection(input, connection);
37
+ const detachOutput = attachConnectionToOutput(connection, output);
38
+ return {
39
+ input,
40
+ output,
41
+ playbackEventTarget: output,
42
+ detach: () => {
43
+ detachInput();
44
+ detachOutput();
45
+ },
46
+ };
47
+ }
48
+ else {
49
+ throw new Error(`Unsupported connection type: ${connection.constructor.name}`);
50
+ }
51
+ }
52
+ /**
53
+ * Web platform session setup strategy.
54
+ * Creates a connection and sets up input/output based on the connection type.
55
+ */
56
+ export async function webSessionSetup(options) {
57
+ const connection = await createConnection(options);
58
+ const io = await setupInputOutput(options, connection);
59
+ return { connection, ...io };
60
+ }
61
+ /**
62
+ * The active session setup strategy.
63
+ * Defaults to web platform strategy.
64
+ * Can be overridden by platform-specific entrypoints (e.g. React Native).
65
+ */
66
+ export let setupStrategy = webSessionSetup;
67
+ /**
68
+ * Override the voice session setup strategy.
69
+ * Called by platform-specific entrypoints to inject their own setup handling.
70
+ */
71
+ export function setSetupStrategy(strategy) {
72
+ setupStrategy = strategy;
73
+ }
74
+ //# sourceMappingURL=VoiceSessionSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoiceSessionSetup.js","sourceRoot":"","sources":["../../src/platform/VoiceSessionSetup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAc9D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAgB,EAChB,UAA0B;IAE1B,IAAI,UAAU,YAAY,gBAAgB,EAAE,CAAC;QAC3C,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,mBAAmB,EAAE,IAAI;YACzB,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;SACjB,CAAC;IACJ,CAAC;SAAM,IAAI,UAAU,YAAY,mBAAmB,EAAE,CAAC;QACrD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,gBAAgB,CAAC,MAAM,CAAC;gBACtB,GAAG,UAAU,CAAC,WAAW;gBACzB,6BAA6B,EAAE,OAAO,CAAC,6BAA6B;gBACpE,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;aAC7C,CAAC;YACF,iBAAiB,CAAC,MAAM,CAAC;gBACvB,GAAG,UAAU,CAAC,YAAY;gBAC1B,cAAc,EAAE,OAAO,CAAC,cAAc;gBACtC,YAAY,EAAE,OAAO,CAAC,YAAY;aACnC,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAG,wBAAwB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAElE,OAAO;YACL,KAAK;YACL,MAAM;YACN,mBAAmB,EAAE,MAAM;YAC3B,MAAM,EAAE,GAAG,EAAE;gBACX,WAAW,EAAE,CAAC;gBACd,YAAY,EAAE,CAAC;YACjB,CAAC;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,gCAAgC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,CAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAgB;IAEhB,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACvD,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,IAAI,aAAa,GAA8B,eAAe,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAmC;IAClE,aAAa,GAAG,QAAQ,CAAC;AAC3B,CAAC"}
@@ -221,3 +221,4 @@ export declare class RealtimeConnection {
221
221
  */
222
222
  close(): void;
223
223
  }
224
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/scribe/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,363 @@
1
+ /**
2
+ * Simple EventEmitter implementation for browser compatibility.
3
+ */
4
+ class EventEmitter {
5
+ listeners = new Map();
6
+ on(event, listener) {
7
+ if (!this.listeners.has(event)) {
8
+ this.listeners.set(event, new Set());
9
+ }
10
+ const eventListeners = this.listeners.get(event);
11
+ if (eventListeners) {
12
+ eventListeners.add(listener);
13
+ }
14
+ }
15
+ off(event, listener) {
16
+ const eventListeners = this.listeners.get(event);
17
+ if (eventListeners) {
18
+ eventListeners.delete(listener);
19
+ }
20
+ }
21
+ emit(event, ...args) {
22
+ const eventListeners = this.listeners.get(event);
23
+ if (eventListeners) {
24
+ eventListeners.forEach(listener => {
25
+ listener(...args);
26
+ });
27
+ }
28
+ }
29
+ }
30
+ /**
31
+ * Events emitted by the RealtimeConnection.
32
+ */
33
+ export var RealtimeEvents;
34
+ (function (RealtimeEvents) {
35
+ /** Emitted when the session is successfully started */
36
+ RealtimeEvents["SESSION_STARTED"] = "session_started";
37
+ /** Emitted when a partial (interim) transcript is available */
38
+ RealtimeEvents["PARTIAL_TRANSCRIPT"] = "partial_transcript";
39
+ /** Emitted when a final transcript is available */
40
+ RealtimeEvents["COMMITTED_TRANSCRIPT"] = "committed_transcript";
41
+ /** Emitted when a final transcript with timestamps is available */
42
+ RealtimeEvents["COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS"] = "committed_transcript_with_timestamps";
43
+ /** Emitted when an authentication error occurs */
44
+ RealtimeEvents["AUTH_ERROR"] = "auth_error";
45
+ /** Emitted when an error occurs (also emitted for all specific error types) */
46
+ RealtimeEvents["ERROR"] = "error";
47
+ /** Emitted when the WebSocket connection is opened */
48
+ RealtimeEvents["OPEN"] = "open";
49
+ /** Emitted when the WebSocket connection is closed */
50
+ RealtimeEvents["CLOSE"] = "close";
51
+ /** Emitted when a quota exceeded error occurs */
52
+ RealtimeEvents["QUOTA_EXCEEDED"] = "quota_exceeded";
53
+ /** Emitted when commit is throttled */
54
+ RealtimeEvents["COMMIT_THROTTLED"] = "commit_throttled";
55
+ /** Emitted when a transcriber error occurs */
56
+ RealtimeEvents["TRANSCRIBER_ERROR"] = "transcriber_error";
57
+ /** Emitted when terms have not been accepted */
58
+ RealtimeEvents["UNACCEPTED_TERMS"] = "unaccepted_terms";
59
+ /** Emitted when rate limited */
60
+ RealtimeEvents["RATE_LIMITED"] = "rate_limited";
61
+ /** Emitted when there's an input error */
62
+ RealtimeEvents["INPUT_ERROR"] = "input_error";
63
+ /** Emitted when the queue overflows */
64
+ RealtimeEvents["QUEUE_OVERFLOW"] = "queue_overflow";
65
+ /** Emitted when resources are exhausted */
66
+ RealtimeEvents["RESOURCE_EXHAUSTED"] = "resource_exhausted";
67
+ /** Emitted when session time limit is exceeded */
68
+ RealtimeEvents["SESSION_TIME_LIMIT_EXCEEDED"] = "session_time_limit_exceeded";
69
+ /** Emitted when chunk size is exceeded */
70
+ RealtimeEvents["CHUNK_SIZE_EXCEEDED"] = "chunk_size_exceeded";
71
+ /** Emitted when there's insufficient audio activity */
72
+ RealtimeEvents["INSUFFICIENT_AUDIO_ACTIVITY"] = "insufficient_audio_activity";
73
+ })(RealtimeEvents || (RealtimeEvents = {}));
74
+ /**
75
+ * Manages a real-time transcription WebSocket connection.
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const connection = await Scribe.connect({
80
+ * token: "...",
81
+ * modelId: "scribe_v2_realtime",
82
+ * audioFormat: AudioFormat.PCM_16000,
83
+ * sampleRate: 16000,
84
+ * });
85
+ *
86
+ * connection.on(RealtimeEvents.SESSION_STARTED, (data) => {
87
+ * console.log("Session started");
88
+ * });
89
+ *
90
+ * connection.on(RealtimeEvents.PARTIAL_TRANSCRIPT, (data) => {
91
+ * console.log("Partial:", data.transcript);
92
+ * });
93
+ *
94
+ * connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, (data) => {
95
+ * console.log("Final:", data.transcript);
96
+ * connection.close();
97
+ * });
98
+ *
99
+ * // Send audio data
100
+ * connection.send({ audioBase64: base64String });
101
+ *
102
+ * // Commit and close
103
+ * connection.commit();
104
+ * ```
105
+ */
106
+ export class RealtimeConnection {
107
+ websocket = null;
108
+ eventEmitter = new EventEmitter();
109
+ currentSampleRate = 16000;
110
+ _audioCleanup;
111
+ constructor(sampleRate) {
112
+ this.currentSampleRate = sampleRate;
113
+ }
114
+ /**
115
+ * @internal
116
+ * Used internally by ScribeRealtime to attach the WebSocket after connection is created.
117
+ */
118
+ setWebSocket(websocket) {
119
+ this.websocket = websocket;
120
+ // If WebSocket is already open, emit OPEN event immediately
121
+ if (this.websocket.readyState === WebSocket.OPEN) {
122
+ this.eventEmitter.emit(RealtimeEvents.OPEN);
123
+ }
124
+ else {
125
+ // Otherwise, wait for the open event
126
+ this.websocket.addEventListener("open", () => {
127
+ this.eventEmitter.emit(RealtimeEvents.OPEN);
128
+ });
129
+ }
130
+ this.websocket.addEventListener("message", (event) => {
131
+ try {
132
+ const data = JSON.parse(event.data);
133
+ switch (data.message_type) {
134
+ case "session_started":
135
+ this.eventEmitter.emit(RealtimeEvents.SESSION_STARTED, data);
136
+ break;
137
+ case "partial_transcript":
138
+ this.eventEmitter.emit(RealtimeEvents.PARTIAL_TRANSCRIPT, data);
139
+ break;
140
+ case "committed_transcript":
141
+ this.eventEmitter.emit(RealtimeEvents.COMMITTED_TRANSCRIPT, data);
142
+ break;
143
+ case "committed_transcript_with_timestamps":
144
+ this.eventEmitter.emit(RealtimeEvents.COMMITTED_TRANSCRIPT_WITH_TIMESTAMPS, data);
145
+ break;
146
+ // Error cases - emit both specific event and generic ERROR
147
+ case "auth_error":
148
+ this.eventEmitter.emit(RealtimeEvents.AUTH_ERROR, data);
149
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
150
+ break;
151
+ case "quota_exceeded":
152
+ this.eventEmitter.emit(RealtimeEvents.QUOTA_EXCEEDED, data);
153
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
154
+ break;
155
+ case "commit_throttled":
156
+ this.eventEmitter.emit(RealtimeEvents.COMMIT_THROTTLED, data);
157
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
158
+ break;
159
+ case "transcriber_error":
160
+ this.eventEmitter.emit(RealtimeEvents.TRANSCRIBER_ERROR, data);
161
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
162
+ break;
163
+ case "unaccepted_terms":
164
+ this.eventEmitter.emit(RealtimeEvents.UNACCEPTED_TERMS, data);
165
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
166
+ break;
167
+ case "rate_limited":
168
+ this.eventEmitter.emit(RealtimeEvents.RATE_LIMITED, data);
169
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
170
+ break;
171
+ case "input_error":
172
+ this.eventEmitter.emit(RealtimeEvents.INPUT_ERROR, data);
173
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
174
+ break;
175
+ case "queue_overflow":
176
+ this.eventEmitter.emit(RealtimeEvents.QUEUE_OVERFLOW, data);
177
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
178
+ break;
179
+ case "resource_exhausted":
180
+ this.eventEmitter.emit(RealtimeEvents.RESOURCE_EXHAUSTED, data);
181
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
182
+ break;
183
+ case "session_time_limit_exceeded":
184
+ this.eventEmitter.emit(RealtimeEvents.SESSION_TIME_LIMIT_EXCEEDED, data);
185
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
186
+ break;
187
+ case "chunk_size_exceeded":
188
+ this.eventEmitter.emit(RealtimeEvents.CHUNK_SIZE_EXCEEDED, data);
189
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
190
+ break;
191
+ case "insufficient_audio_activity":
192
+ this.eventEmitter.emit(RealtimeEvents.INSUFFICIENT_AUDIO_ACTIVITY, data);
193
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
194
+ break;
195
+ case "error":
196
+ this.eventEmitter.emit(RealtimeEvents.ERROR, data);
197
+ break;
198
+ default:
199
+ console.warn("Unknown message type:", data);
200
+ }
201
+ }
202
+ catch (error) {
203
+ console.error("Failed to parse WebSocket message:", error, event.data);
204
+ this.eventEmitter.emit(RealtimeEvents.ERROR, new Error(`Failed to parse message: ${error}`));
205
+ }
206
+ });
207
+ this.websocket.addEventListener("error", (error) => {
208
+ console.error("WebSocket error:", error);
209
+ this.eventEmitter.emit(RealtimeEvents.ERROR, error);
210
+ });
211
+ this.websocket.addEventListener("close", (event) => {
212
+ console.log(`WebSocket closed: code=${event.code}, reason="${event.reason}", wasClean=${event.wasClean}`);
213
+ // Emit error if close was not clean or had an error code
214
+ if (!event.wasClean || (event.code !== 1000 && event.code !== 1005)) {
215
+ const errorMessage = `WebSocket closed unexpectedly: ${event.code} - ${event.reason || "No reason provided"}`;
216
+ console.error(errorMessage);
217
+ this.eventEmitter.emit(RealtimeEvents.ERROR, new Error(errorMessage));
218
+ }
219
+ this.eventEmitter.emit(RealtimeEvents.CLOSE, event);
220
+ });
221
+ }
222
+ /**
223
+ * Attaches an event listener for the specified event.
224
+ *
225
+ * @param event - The event to listen for (use RealtimeEvents enum)
226
+ * @param listener - The callback function to execute when the event fires
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * connection.on(RealtimeEvents.SESSION_STARTED, (data) => {
231
+ * console.log("Session started", data.session_id);
232
+ * });
233
+ *
234
+ * connection.on(RealtimeEvents.PARTIAL_TRANSCRIPT, (data) => {
235
+ * console.log("Partial:", data.text);
236
+ * });
237
+ *
238
+ * connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, (data) => {
239
+ * console.log("Final:", data.text);
240
+ * });
241
+ * ```
242
+ */
243
+ on(event, listener) {
244
+ this.eventEmitter.on(event, listener);
245
+ }
246
+ /**
247
+ * Removes an event listener for the specified event.
248
+ *
249
+ * @param event - The event to stop listening for
250
+ * @param listener - The callback function to remove
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const handler = (data: PartialTranscriptMessage) => console.log(data.text);
255
+ * connection.on(RealtimeEvents.PARTIAL_TRANSCRIPT, handler);
256
+ *
257
+ * // Later, remove the listener
258
+ * connection.off(RealtimeEvents.PARTIAL_TRANSCRIPT, handler);
259
+ * ```
260
+ */
261
+ off(event, listener) {
262
+ this.eventEmitter.off(event, listener);
263
+ }
264
+ /**
265
+ * Sends audio data to the transcription service.
266
+ *
267
+ * @param data - Audio data configuration
268
+ * @param data.audioBase64 - Base64-encoded audio data
269
+ * @param data.commit - Whether to commit the transcription after this chunk. You likely want to use connection.commit() instead (default: false)
270
+ * @param data.sampleRate - Sample rate of the audio (default: configured sample rate)
271
+ * @param data.previousText - Send context to the model via base64 encoded audio or text from a previous transcription. Can only be sent alongside the first audio chunk. If sent in a subsequent chunk, an error will be returned.
272
+ *
273
+ * @throws {Error} If the WebSocket connection is not open
274
+ *
275
+ * @example
276
+ * ```typescript
277
+ * // Send audio chunk without committing
278
+ * connection.send({
279
+ * audioBase64: base64EncodedAudio,
280
+ * });
281
+ *
282
+ * // Send audio chunk with custom sample rate and previous text
283
+ * connection.send({
284
+ * audioBase64: base64EncodedAudio,
285
+ * sampleRate: 16000,
286
+ * previousText: "Previous transcription text",
287
+ * });
288
+ * ```
289
+ */
290
+ send(data) {
291
+ if (!this.websocket || this.websocket.readyState !== WebSocket.OPEN) {
292
+ throw new Error("WebSocket is not connected");
293
+ }
294
+ const message = {
295
+ message_type: "input_audio_chunk",
296
+ audio_base_64: data.audioBase64,
297
+ commit: data.commit ?? false,
298
+ sample_rate: data.sampleRate ?? this.currentSampleRate,
299
+ previous_text: data.previousText,
300
+ };
301
+ this.websocket.send(JSON.stringify(message));
302
+ }
303
+ /**
304
+ * Commits the transcription, signaling that a segment of audio has been sent. This clears the buffer and triggers a COMMITTED_TRANSCRIPT event. Context from previous segments is kept.
305
+ * Committing a segment triggers a COMMITTED_TRANSCRIPT event.
306
+ *
307
+ * @throws {Error} If the WebSocket connection is not open
308
+ *
309
+ * @remarks
310
+ * Only needed when using CommitStrategy.MANUAL.
311
+ * When using CommitStrategy.VAD, commits are handled automatically by the server.
312
+ *
313
+ * @example
314
+ * ```typescript
315
+ * // Send all audio chunks
316
+ * for (const chunk of audioChunks) {
317
+ * connection.send({ audioBase64: chunk });
318
+ * }
319
+ *
320
+ * // Finalize the transcription
321
+ * connection.commit();
322
+ * ```
323
+ */
324
+ commit() {
325
+ if (!this.websocket || this.websocket.readyState !== WebSocket.OPEN) {
326
+ throw new Error("WebSocket is not connected");
327
+ }
328
+ const message = {
329
+ message_type: "input_audio_chunk",
330
+ audio_base_64: "",
331
+ commit: true,
332
+ sample_rate: this.currentSampleRate,
333
+ };
334
+ this.websocket.send(JSON.stringify(message));
335
+ }
336
+ /**
337
+ * Closes the WebSocket connection and cleans up resources.
338
+ * This will terminate any ongoing transcription and stop microphone streaming if active.
339
+ *
340
+ * @remarks
341
+ * After calling close(), this connection cannot be reused.
342
+ * Create a new connection if you need to start transcribing again.
343
+ *
344
+ * @example
345
+ * ```typescript
346
+ * connection.on(RealtimeEvents.COMMITTED_TRANSCRIPT, (data) => {
347
+ * console.log("Segment committed:", data.transcript);
348
+ * connection.close();
349
+ * });
350
+ * ```
351
+ */
352
+ close() {
353
+ // Cleanup audio resources (microphone stream, audio context)
354
+ if (this._audioCleanup) {
355
+ this._audioCleanup();
356
+ }
357
+ // Close WebSocket connection
358
+ if (this.websocket) {
359
+ this.websocket.close(1000, "User ended session");
360
+ }
361
+ }
362
+ }
363
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/scribe/connection.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,4 @@ export { RealtimeEvents } from "./connection";
5
5
  export type { RealtimeEventMap } from "./connection";
6
6
  export type { AudioOptions, MicrophoneOptions } from "./scribe";
7
7
  export type { WebSocketMessage, SessionStartedMessage, PartialTranscriptMessage, CommittedTranscriptMessage, CommittedTranscriptWithTimestampsMessage, ScribeErrorMessage, ScribeAuthErrorMessage, ScribeQuotaExceededErrorMessage, ScribeCommitThrottledErrorMessage, ScribeTranscriberErrorMessage, ScribeUnacceptedTermsErrorMessage, ScribeRateLimitedErrorMessage, ScribeInputErrorMessage, ScribeQueueOverflowErrorMessage, ScribeResourceExhaustedErrorMessage, ScribeSessionTimeLimitExceededErrorMessage, ScribeChunkSizeExceededErrorMessage, ScribeInsufficientAudioActivityErrorMessage, } from "./connection";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scribe/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAChE,YAAY,EACV,gBAAgB,EAChB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,wCAAwC,EACxC,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,EAC7B,iCAAiC,EACjC,6BAA6B,EAC7B,uBAAuB,EACvB,+BAA+B,EAC/B,mCAAmC,EACnC,0CAA0C,EAC1C,mCAAmC,EACnC,2CAA2C,GAC5C,MAAM,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ // Export the main Scribe class (renamed from ScribeRealtime)
2
+ export { ScribeRealtime as Scribe } from "./scribe";
3
+ // Export connection class
4
+ export { RealtimeConnection } from "./connection";
5
+ // Export enums
6
+ export { AudioFormat, CommitStrategy } from "./scribe";
7
+ export { RealtimeEvents } from "./connection";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scribe/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAEpD,0BAA0B;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -121,3 +121,4 @@ export declare class ScribeRealtime {
121
121
  private static streamFromMicrophone;
122
122
  }
123
123
  export {};
124
+ //# sourceMappingURL=scribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scribe.d.ts","sourceRoot":"","sources":["../../src/scribe/scribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,SAAS,cAAc;CACxB;AAED,oBAAY,cAAc;IACxB,MAAM,WAAW;IACjB,GAAG,QAAQ;CACZ;AAED,UAAU,WAAW;IACnB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,kBAAkB,CAAC;QAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB;AAED;;;GAGG;AAGH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAErE,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAyEhC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;WACW,OAAO,CACnB,OAAO,EAAE,YAAY,GAAG,iBAAiB,GACxC,kBAAkB;mBAgCA,oBAAoB;CAqF1C"}