@absolutejs/voice 0.0.1

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 (179) hide show
  1. package/README.md +150 -0
  2. package/dist/absolutejs/src/angular/angularDeps.d.ts +2 -0
  3. package/dist/absolutejs/src/angular/angularPatch.d.ts +1 -0
  4. package/dist/absolutejs/src/angular/injectorPatch.d.ts +1 -0
  5. package/dist/absolutejs/src/angular/islands.d.ts +3 -0
  6. package/dist/absolutejs/src/angular/lowerDeferSyntax.d.ts +18 -0
  7. package/dist/absolutejs/src/angular/lowerServerIslands.d.ts +1 -0
  8. package/dist/absolutejs/src/angular/pageHandler.d.ts +26 -0
  9. package/dist/absolutejs/src/angular/resolveAngularPackage.d.ts +7 -0
  10. package/dist/absolutejs/src/angular/ssrRender.d.ts +16 -0
  11. package/dist/absolutejs/src/angular/ssrSanitizer.d.ts +3 -0
  12. package/dist/absolutejs/src/build/angularLinkerPlugin.d.ts +11 -0
  13. package/dist/absolutejs/src/build/buildAngularVendor.d.ts +4 -0
  14. package/dist/absolutejs/src/build/buildDepVendor.d.ts +2 -0
  15. package/dist/absolutejs/src/build/buildReactVendor.d.ts +8 -0
  16. package/dist/absolutejs/src/build/buildSvelteVendor.d.ts +6 -0
  17. package/dist/absolutejs/src/build/buildVueVendor.d.ts +6 -0
  18. package/dist/absolutejs/src/build/compileAngular.d.ts +29 -0
  19. package/dist/absolutejs/src/build/compileSvelte.d.ts +13 -0
  20. package/dist/absolutejs/src/build/compileVue.d.ts +19 -0
  21. package/dist/absolutejs/src/build/generateManifest.d.ts +2 -0
  22. package/dist/absolutejs/src/build/generateReactIndexes.d.ts +1 -0
  23. package/dist/absolutejs/src/build/htmlScriptHMRPlugin.d.ts +13 -0
  24. package/dist/absolutejs/src/build/islandEntries.d.ts +32 -0
  25. package/dist/absolutejs/src/build/nativeRewrite.d.ts +5 -0
  26. package/dist/absolutejs/src/build/optimizeHtmlImages.d.ts +2 -0
  27. package/dist/absolutejs/src/build/outputLogs.d.ts +1 -0
  28. package/dist/absolutejs/src/build/resolvePackageImport.d.ts +9 -0
  29. package/dist/absolutejs/src/build/rewriteImports.d.ts +7 -0
  30. package/dist/absolutejs/src/build/rewriteReactImports.d.ts +7 -0
  31. package/dist/absolutejs/src/build/scanConventions.d.ts +5 -0
  32. package/dist/absolutejs/src/build/scanCssEntryPoints.d.ts +1 -0
  33. package/dist/absolutejs/src/build/scanEntryPoints.d.ts +1 -0
  34. package/dist/absolutejs/src/build/staticIslandPages.d.ts +9 -0
  35. package/dist/absolutejs/src/build/updateAssetPaths.d.ts +1 -0
  36. package/dist/absolutejs/src/build/wrapHTMLScript.d.ts +17 -0
  37. package/dist/absolutejs/src/cli/scripts/telemetry.d.ts +5 -0
  38. package/dist/absolutejs/src/cli/telemetryEvent.d.ts +1 -0
  39. package/dist/absolutejs/src/client/islandStore.d.ts +22 -0
  40. package/dist/absolutejs/src/client/streamSwap.d.ts +11 -0
  41. package/dist/absolutejs/src/constants.d.ts +60 -0
  42. package/dist/absolutejs/src/core/build.d.ts +9 -0
  43. package/dist/absolutejs/src/core/currentIslandRegistry.d.ts +7 -0
  44. package/dist/absolutejs/src/core/devBuild.d.ts +6 -0
  45. package/dist/absolutejs/src/core/devRouteRegistrationCallsite.d.ts +2 -0
  46. package/dist/absolutejs/src/core/devVendorPaths.d.ts +13 -0
  47. package/dist/absolutejs/src/core/index.d.ts +7 -0
  48. package/dist/absolutejs/src/core/islandManifest.d.ts +3 -0
  49. package/dist/absolutejs/src/core/islandMarkupAttributes.d.ts +12 -0
  50. package/dist/absolutejs/src/core/islandPageContext.d.ts +12 -0
  51. package/dist/absolutejs/src/core/islandSsr.d.ts +6 -0
  52. package/dist/absolutejs/src/core/islands.d.ts +16 -0
  53. package/dist/absolutejs/src/core/loadIslandRegistry.d.ts +1 -0
  54. package/dist/absolutejs/src/core/lookup.d.ts +1 -0
  55. package/dist/absolutejs/src/core/pageHandlers.d.ts +6 -0
  56. package/dist/absolutejs/src/core/prepare.d.ts +274 -0
  57. package/dist/absolutejs/src/core/prerender.d.ts +31 -0
  58. package/dist/absolutejs/src/core/renderIslandMarkup.d.ts +13 -0
  59. package/dist/absolutejs/src/core/responseEnhancers.d.ts +10 -0
  60. package/dist/absolutejs/src/core/staticStreaming.d.ts +25 -0
  61. package/dist/absolutejs/src/core/streamingSlotRegistrar.d.ts +16 -0
  62. package/dist/absolutejs/src/core/streamingSlotRegistry.d.ts +2 -0
  63. package/dist/absolutejs/src/core/streamingSlotWarningScope.d.ts +4 -0
  64. package/dist/absolutejs/src/core/svelteServerModule.d.ts +1 -0
  65. package/dist/absolutejs/src/core/wrapPageHandlerWithStreamingSlots.d.ts +2 -0
  66. package/dist/absolutejs/src/dev/assetStore.d.ts +8 -0
  67. package/dist/absolutejs/src/dev/buildHMRClient.d.ts +1 -0
  68. package/dist/absolutejs/src/dev/clientManager.d.ts +31 -0
  69. package/dist/absolutejs/src/dev/configResolver.d.ts +14 -0
  70. package/dist/absolutejs/src/dev/dependencyGraph.d.ts +10 -0
  71. package/dist/absolutejs/src/dev/devCert.d.ts +11 -0
  72. package/dist/absolutejs/src/dev/fileHashTracker.d.ts +2 -0
  73. package/dist/absolutejs/src/dev/fileWatcher.d.ts +4 -0
  74. package/dist/absolutejs/src/dev/moduleMapper.d.ts +27 -0
  75. package/dist/absolutejs/src/dev/moduleServer.d.ts +21 -0
  76. package/dist/absolutejs/src/dev/moduleVersionTracker.d.ts +7 -0
  77. package/dist/absolutejs/src/dev/pathUtils.d.ts +5 -0
  78. package/dist/absolutejs/src/dev/reactComponentClassifier.d.ts +2 -0
  79. package/dist/absolutejs/src/dev/rebuildTrigger.d.ts +10 -0
  80. package/dist/absolutejs/src/dev/simpleHTMLHMR.d.ts +4 -0
  81. package/dist/absolutejs/src/dev/simpleHTMXHMR.d.ts +4 -0
  82. package/dist/absolutejs/src/dev/transformCache.d.ts +6 -0
  83. package/dist/absolutejs/src/dev/webSocket.d.ts +9 -0
  84. package/dist/absolutejs/src/index.d.ts +5 -0
  85. package/dist/absolutejs/src/islands/pageMetadata.d.ts +13 -0
  86. package/dist/absolutejs/src/islands/sourceMetadata.d.ts +10 -0
  87. package/dist/absolutejs/src/plugins/devtoolsJson.d.ts +58 -0
  88. package/dist/absolutejs/src/plugins/hmr.d.ts +138 -0
  89. package/dist/absolutejs/src/plugins/imageOptimizer.d.ts +67 -0
  90. package/dist/absolutejs/src/plugins/index.d.ts +3 -0
  91. package/dist/absolutejs/src/plugins/networking.d.ts +2 -0
  92. package/dist/absolutejs/src/plugins/pageRouter.d.ts +1 -0
  93. package/dist/absolutejs/src/react/Island.d.ts +2 -0
  94. package/dist/absolutejs/src/react/bridgeInternals.d.ts +1 -0
  95. package/dist/absolutejs/src/react/createIsland.d.ts +2 -0
  96. package/dist/absolutejs/src/react/hooks/useIslandStore.d.ts +3 -0
  97. package/dist/absolutejs/src/react/index.d.ts +4 -0
  98. package/dist/absolutejs/src/react/pageHandler.d.ts +21 -0
  99. package/dist/absolutejs/src/svelte/lowerAwaitSlotSyntax.d.ts +4 -0
  100. package/dist/absolutejs/src/svelte/lowerIslandSyntax.d.ts +4 -0
  101. package/dist/absolutejs/src/svelte/pageHandler.d.ts +23 -0
  102. package/dist/absolutejs/src/svelte/renderToReadableStream.d.ts +14 -0
  103. package/dist/absolutejs/src/utils/cleanStaleOutputs.d.ts +1 -0
  104. package/dist/absolutejs/src/utils/cleanup.d.ts +8 -0
  105. package/dist/absolutejs/src/utils/commonAncestor.d.ts +1 -0
  106. package/dist/absolutejs/src/utils/defineConfig.d.ts +2 -0
  107. package/dist/absolutejs/src/utils/defineEnv.d.ts +10 -0
  108. package/dist/absolutejs/src/utils/escapeScriptContent.d.ts +1 -0
  109. package/dist/absolutejs/src/utils/generateHeadElement.d.ts +4 -0
  110. package/dist/absolutejs/src/utils/generateSitemap.d.ts +6 -0
  111. package/dist/absolutejs/src/utils/getDurationString.d.ts +1 -0
  112. package/dist/absolutejs/src/utils/getEnv.d.ts +1 -0
  113. package/dist/absolutejs/src/utils/imageProcessing.d.ts +33 -0
  114. package/dist/absolutejs/src/utils/index.d.ts +9 -0
  115. package/dist/absolutejs/src/utils/jsonLd.d.ts +2 -0
  116. package/dist/absolutejs/src/utils/loadConfig.d.ts +1 -0
  117. package/dist/absolutejs/src/utils/logger.d.ts +55 -0
  118. package/dist/absolutejs/src/utils/networking.d.ts +2 -0
  119. package/dist/absolutejs/src/utils/normalizePath.d.ts +9 -0
  120. package/dist/absolutejs/src/utils/registerClientScript.d.ts +36 -0
  121. package/dist/absolutejs/src/utils/resolveConvention.d.ts +9 -0
  122. package/dist/absolutejs/src/utils/ssrErrorPage.d.ts +1 -0
  123. package/dist/absolutejs/src/utils/startupBanner.d.ts +9 -0
  124. package/dist/absolutejs/src/utils/streamingSlotMetricSink.d.ts +18 -0
  125. package/dist/absolutejs/src/utils/streamingSlots.d.ts +76 -0
  126. package/dist/absolutejs/src/utils/stringModifiers.d.ts +3 -0
  127. package/dist/absolutejs/src/utils/validateSafePath.d.ts +1 -0
  128. package/dist/absolutejs/src/vue/pageHandler.d.ts +29 -0
  129. package/dist/absolutejs/types/ai.d.ts +4631 -0
  130. package/dist/absolutejs/types/angular.d.ts +29 -0
  131. package/dist/absolutejs/types/build.d.ts +67 -0
  132. package/dist/absolutejs/types/cli.d.ts +19 -0
  133. package/dist/absolutejs/types/client.d.ts +65 -0
  134. package/dist/absolutejs/types/conventions.d.ts +20 -0
  135. package/dist/absolutejs/types/env.d.ts +2 -0
  136. package/dist/absolutejs/types/image.d.ts +77 -0
  137. package/dist/absolutejs/types/index.d.ts +19 -0
  138. package/dist/absolutejs/types/island.d.ts +48 -0
  139. package/dist/absolutejs/types/jsonLd.d.ts +271 -0
  140. package/dist/absolutejs/types/messages.d.ts +144 -0
  141. package/dist/absolutejs/types/metadata.d.ts +49 -0
  142. package/dist/absolutejs/types/react.d.ts +2 -0
  143. package/dist/absolutejs/types/session.d.ts +16 -0
  144. package/dist/absolutejs/types/sitemap.d.ts +14 -0
  145. package/dist/absolutejs/types/svelte.d.ts +2 -0
  146. package/dist/absolutejs/types/telemetry.d.ts +15 -0
  147. package/dist/absolutejs/types/tool.d.ts +11 -0
  148. package/dist/absolutejs/types/typeGuards.d.ts +5 -0
  149. package/dist/absolutejs/types/vue.d.ts +14 -0
  150. package/dist/absolutejs/types/websocket.d.ts +6 -0
  151. package/dist/angular/index.js +505 -0
  152. package/dist/client/index.js +521 -0
  153. package/dist/index.js +693 -0
  154. package/dist/react/index.js +489 -0
  155. package/dist/svelte/index.js +456 -0
  156. package/dist/voice/src/angular/index.d.ts +1 -0
  157. package/dist/voice/src/angular/voice-stream.service.d.ts +15 -0
  158. package/dist/voice/src/client/actions.d.ts +58 -0
  159. package/dist/voice/src/client/connection.d.ts +12 -0
  160. package/dist/voice/src/client/createVoiceStream.d.ts +14 -0
  161. package/dist/voice/src/client/index.d.ts +3 -0
  162. package/dist/voice/src/client/microphone.d.ts +11 -0
  163. package/dist/voice/src/client/store.d.ts +7 -0
  164. package/dist/voice/src/index.d.ts +5 -0
  165. package/dist/voice/src/logger.d.ts +8 -0
  166. package/dist/voice/src/memoryStore.d.ts +2 -0
  167. package/dist/voice/src/plugin.d.ts +40 -0
  168. package/dist/voice/src/react/index.d.ts +1 -0
  169. package/dist/voice/src/react/useVoiceStream.d.ts +13 -0
  170. package/dist/voice/src/session.d.ts +2 -0
  171. package/dist/voice/src/store.d.ts +6 -0
  172. package/dist/voice/src/svelte/createVoiceStream.d.ts +14 -0
  173. package/dist/voice/src/svelte/index.d.ts +1 -0
  174. package/dist/voice/src/turnDetection.d.ts +3 -0
  175. package/dist/voice/src/types.d.ts +318 -0
  176. package/dist/voice/src/vue/index.d.ts +1 -0
  177. package/dist/voice/src/vue/useVoiceStream.d.ts +13 -0
  178. package/dist/vue/index.js +496 -0
  179. package/package.json +100 -0
@@ -0,0 +1,14 @@
1
+ import type { VoiceConnectionOptions } from '../types';
2
+ export declare const createVoiceStream: <TResult = unknown>(path: string, options?: VoiceConnectionOptions) => {
3
+ close(): void;
4
+ endTurn(): void;
5
+ readonly error: string | null;
6
+ readonly isConnected: boolean;
7
+ readonly partial: string;
8
+ readonly sessionId: string;
9
+ readonly status: "idle" | import("..").VoiceSessionStatus;
10
+ readonly turns: import("..").VoiceTurnRecord<TResult>[];
11
+ readonly assistantTexts: string[];
12
+ sendAudio(audio: Uint8Array | ArrayBuffer): void;
13
+ subscribe(subscriber: () => void): () => void;
14
+ };
@@ -0,0 +1 @@
1
+ export { createVoiceStream } from './createVoiceStream';
@@ -0,0 +1,3 @@
1
+ import type { Transcript } from './types';
2
+ export declare const DEFAULT_SILENCE_MS = 700;
3
+ export declare const buildTurnText: (transcripts: Transcript[], partialText: string) => string;
@@ -0,0 +1,318 @@
1
+ import type { SessionStore } from '@absolutejs/absolute';
2
+ export type AudioFormat = {
3
+ container: 'raw';
4
+ encoding: 'pcm_s16le';
5
+ sampleRateHz: number;
6
+ channels: 1 | 2;
7
+ };
8
+ export type AudioChunk = ArrayBuffer | ArrayBufferView;
9
+ export type Transcript = {
10
+ id: string;
11
+ text: string;
12
+ isFinal: boolean;
13
+ confidence?: number;
14
+ language?: string;
15
+ startedAtMs?: number;
16
+ endedAtMs?: number;
17
+ vendor?: string;
18
+ };
19
+ export type VoicePartialEvent = {
20
+ type: 'partial';
21
+ transcript: Transcript;
22
+ receivedAt: number;
23
+ };
24
+ export type VoiceFinalEvent = {
25
+ type: 'final';
26
+ transcript: Transcript;
27
+ receivedAt: number;
28
+ };
29
+ export type VoiceEndOfTurnEvent = {
30
+ type: 'endOfTurn';
31
+ reason: 'vendor' | 'silence' | 'manual';
32
+ receivedAt: number;
33
+ };
34
+ export type VoiceErrorEvent = {
35
+ type: 'error';
36
+ error: Error;
37
+ recoverable: boolean;
38
+ code?: string;
39
+ };
40
+ export type VoiceCloseEvent = {
41
+ type: 'close';
42
+ code?: number;
43
+ reason?: string;
44
+ recoverable?: boolean;
45
+ };
46
+ export type STTSessionEventMap = {
47
+ partial: VoicePartialEvent;
48
+ final: VoiceFinalEvent;
49
+ endOfTurn: VoiceEndOfTurnEvent;
50
+ error: VoiceErrorEvent;
51
+ close: VoiceCloseEvent;
52
+ };
53
+ export type STTAdapterSession = {
54
+ on: <K extends keyof STTSessionEventMap>(event: K, handler: (payload: STTSessionEventMap[K]) => void | Promise<void>) => () => void;
55
+ send: (audio: AudioChunk) => Promise<void>;
56
+ close: (reason?: string) => Promise<void>;
57
+ };
58
+ export type STTAdapterOpenOptions = {
59
+ sessionId: string;
60
+ format: AudioFormat;
61
+ signal?: AbortSignal;
62
+ };
63
+ export type STTAdapter<TOptions extends STTAdapterOpenOptions = STTAdapterOpenOptions> = {
64
+ kind: 'stt';
65
+ open: (options: TOptions) => Promise<STTAdapterSession> | STTAdapterSession;
66
+ };
67
+ export type TTSAudioEvent = {
68
+ type: 'audio';
69
+ chunk: AudioChunk;
70
+ format: AudioFormat;
71
+ receivedAt: number;
72
+ };
73
+ export type TTSSessionEventMap = {
74
+ audio: TTSAudioEvent;
75
+ error: VoiceErrorEvent;
76
+ close: VoiceCloseEvent;
77
+ };
78
+ export type TTSAdapterSession = {
79
+ on: <K extends keyof TTSSessionEventMap>(event: K, handler: (payload: TTSSessionEventMap[K]) => void | Promise<void>) => () => void;
80
+ send: (text: string) => Promise<void>;
81
+ close: (reason?: string) => Promise<void>;
82
+ };
83
+ export type TTSAdapterOpenOptions = {
84
+ sessionId: string;
85
+ signal?: AbortSignal;
86
+ };
87
+ export type TTSAdapter<TOptions extends TTSAdapterOpenOptions = TTSAdapterOpenOptions> = {
88
+ kind: 'tts';
89
+ open: (options: TOptions) => Promise<TTSAdapterSession> | TTSAdapterSession;
90
+ };
91
+ export type RealtimeSessionEventMap = STTSessionEventMap & {
92
+ audio: TTSAudioEvent;
93
+ };
94
+ export type RealtimeAdapterSession = {
95
+ on: <K extends keyof RealtimeSessionEventMap>(event: K, handler: (payload: RealtimeSessionEventMap[K]) => void | Promise<void>) => () => void;
96
+ send: (input: AudioChunk | string) => Promise<void>;
97
+ close: (reason?: string) => Promise<void>;
98
+ };
99
+ export type RealtimeAdapterOpenOptions = {
100
+ sessionId: string;
101
+ format: AudioFormat;
102
+ signal?: AbortSignal;
103
+ };
104
+ export type RealtimeAdapter<TOptions extends RealtimeAdapterOpenOptions = RealtimeAdapterOpenOptions> = {
105
+ kind: 'realtime';
106
+ open: (options: TOptions) => Promise<RealtimeAdapterSession> | RealtimeAdapterSession;
107
+ };
108
+ export type VoiceSessionStatus = 'active' | 'reconnecting' | 'completed' | 'failed';
109
+ export type VoiceTurnRecord<TResult = unknown> = {
110
+ id: string;
111
+ text: string;
112
+ transcripts: Transcript[];
113
+ assistantText?: string;
114
+ committedAt: number;
115
+ result?: TResult;
116
+ };
117
+ export type VoiceSessionRecord<TMeta = Record<string, never>, TResult = unknown> = {
118
+ id: string;
119
+ createdAt: number;
120
+ lastActivityAt?: number;
121
+ status: VoiceSessionStatus;
122
+ transcripts: Transcript[];
123
+ currentTurn: {
124
+ transcripts: Transcript[];
125
+ partialText: string;
126
+ finalText: string;
127
+ lastAudioAt?: number;
128
+ };
129
+ turns: VoiceTurnRecord<TResult>[];
130
+ committedTurnIds: string[];
131
+ reconnect: {
132
+ attempts: number;
133
+ lastDisconnectAt?: number;
134
+ };
135
+ metadata?: TMeta;
136
+ };
137
+ export type VoiceSessionSummary = {
138
+ id: string;
139
+ createdAt: number;
140
+ lastActivityAt?: number;
141
+ status: VoiceSessionStatus;
142
+ turnCount: number;
143
+ };
144
+ export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = SessionStore<TSession, VoiceSessionSummary>;
145
+ export type VoiceLogger = {
146
+ debug?: (message: string, meta?: Record<string, unknown>) => void;
147
+ info?: (message: string, meta?: Record<string, unknown>) => void;
148
+ warn?: (message: string, meta?: Record<string, unknown>) => void;
149
+ error?: (message: string, meta?: Record<string, unknown>) => void;
150
+ };
151
+ export type VoiceReconnectConfig = {
152
+ strategy?: 'resume-last-turn' | 'restart' | 'fail';
153
+ timeout?: number;
154
+ maxAttempts?: number;
155
+ };
156
+ export type VoiceSocket = {
157
+ send: (data: string | Uint8Array | ArrayBuffer) => void | Promise<void>;
158
+ close: (code?: number, reason?: string) => void | Promise<void>;
159
+ };
160
+ export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
161
+ id: string;
162
+ connect: (socket: VoiceSocket) => Promise<void>;
163
+ receiveAudio: (audio: AudioChunk) => Promise<void>;
164
+ commitTurn: (reason?: VoiceEndOfTurnEvent['reason']) => Promise<void>;
165
+ disconnect: (event?: VoiceCloseEvent) => Promise<void>;
166
+ complete: (result?: TResult) => Promise<void>;
167
+ fail: (error: unknown) => Promise<void>;
168
+ close: (reason?: string) => Promise<void>;
169
+ snapshot: () => Promise<TSession>;
170
+ };
171
+ export type VoiceRouteResult<TResult = unknown> = {
172
+ complete?: boolean;
173
+ result?: TResult;
174
+ assistantText?: string;
175
+ };
176
+ export type VoiceRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
177
+ onSession?: (input: {
178
+ context: TContext;
179
+ session: TSession;
180
+ api: VoiceSessionHandle<TContext, TSession, TResult>;
181
+ }) => Promise<void> | void;
182
+ onTurn: (input: {
183
+ context: TContext;
184
+ session: TSession;
185
+ turn: VoiceTurnRecord<TResult>;
186
+ api: VoiceSessionHandle<TContext, TSession, TResult>;
187
+ }) => Promise<VoiceRouteResult<TResult> | void> | VoiceRouteResult<TResult> | void;
188
+ onComplete: (input: {
189
+ context: TContext;
190
+ session: TSession;
191
+ api: VoiceSessionHandle<TContext, TSession, TResult>;
192
+ }) => Promise<void> | void;
193
+ onError?: (input: {
194
+ context: TContext;
195
+ sessionId: string;
196
+ session?: TSession;
197
+ error: unknown;
198
+ api?: VoiceSessionHandle<TContext, TSession, TResult>;
199
+ }) => Promise<void> | void;
200
+ };
201
+ export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
202
+ path: string;
203
+ stt: STTAdapter;
204
+ tts?: TTSAdapter;
205
+ session: VoiceSessionStore<TSession>;
206
+ reconnect?: VoiceReconnectConfig;
207
+ turnDetection?: {
208
+ silenceMs?: number;
209
+ };
210
+ logger?: VoiceLogger;
211
+ } & VoiceRouteConfig<TContext, TSession, TResult>;
212
+ export type CreateVoiceSessionOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
213
+ id: string;
214
+ context: TContext;
215
+ socket: VoiceSocket;
216
+ stt: STTAdapter;
217
+ store: VoiceSessionStore<TSession>;
218
+ reconnect: Required<VoiceReconnectConfig>;
219
+ turnDetection: {
220
+ silenceMs: number;
221
+ };
222
+ route: VoiceRouteConfig<TContext, TSession, TResult>;
223
+ logger?: VoiceLogger;
224
+ };
225
+ export type CreateVoiceSession = <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
226
+ export type VoiceClientStartMessage = {
227
+ type: 'start';
228
+ sessionId?: string;
229
+ };
230
+ export type VoiceClientEndTurnMessage = {
231
+ type: 'end_turn';
232
+ };
233
+ export type VoiceClientCloseMessage = {
234
+ type: 'close';
235
+ reason?: string;
236
+ };
237
+ export type VoiceClientPingMessage = {
238
+ type: 'ping';
239
+ };
240
+ export type VoiceClientMessage = VoiceClientStartMessage | VoiceClientEndTurnMessage | VoiceClientCloseMessage | VoiceClientPingMessage;
241
+ export type VoiceServerSessionMessage = {
242
+ type: 'session';
243
+ sessionId: string;
244
+ status: VoiceSessionStatus;
245
+ };
246
+ export type VoiceServerPartialMessage = {
247
+ type: 'partial';
248
+ transcript: Transcript;
249
+ };
250
+ export type VoiceServerFinalMessage = {
251
+ type: 'final';
252
+ transcript: Transcript;
253
+ };
254
+ export type VoiceServerTurnMessage<TResult = unknown> = {
255
+ type: 'turn';
256
+ turn: VoiceTurnRecord<TResult>;
257
+ };
258
+ export type VoiceServerAssistantMessage = {
259
+ type: 'assistant';
260
+ text: string;
261
+ turnId?: string;
262
+ };
263
+ export type VoiceServerCompleteMessage = {
264
+ type: 'complete';
265
+ sessionId: string;
266
+ };
267
+ export type VoiceServerErrorMessage = {
268
+ type: 'error';
269
+ message: string;
270
+ recoverable?: boolean;
271
+ };
272
+ export type VoiceServerPongMessage = {
273
+ type: 'pong';
274
+ };
275
+ export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage;
276
+ export type VoiceConnectionOptions = {
277
+ protocols?: string[];
278
+ reconnect?: boolean;
279
+ maxReconnectAttempts?: number;
280
+ pingInterval?: number;
281
+ sessionId?: string;
282
+ };
283
+ export type VoiceStreamState<TResult = unknown> = {
284
+ sessionId: string | null;
285
+ status: VoiceSessionStatus | 'idle';
286
+ partial: string;
287
+ turns: VoiceTurnRecord<TResult>[];
288
+ assistantTexts: string[];
289
+ error: string | null;
290
+ isConnected: boolean;
291
+ };
292
+ export type VoiceStoreAction<TResult = unknown> = {
293
+ type: 'session';
294
+ sessionId: string;
295
+ status: VoiceSessionStatus;
296
+ } | {
297
+ type: 'partial';
298
+ transcript: Transcript;
299
+ } | {
300
+ type: 'final';
301
+ transcript: Transcript;
302
+ } | {
303
+ type: 'turn';
304
+ turn: VoiceTurnRecord<TResult>;
305
+ } | {
306
+ type: 'assistant';
307
+ text: string;
308
+ } | {
309
+ type: 'complete';
310
+ sessionId: string;
311
+ } | {
312
+ type: 'error';
313
+ message: string;
314
+ } | {
315
+ type: 'connected';
316
+ } | {
317
+ type: 'disconnected';
318
+ };
@@ -0,0 +1 @@
1
+ export { useVoiceStream } from './useVoiceStream';
@@ -0,0 +1,13 @@
1
+ import type { VoiceConnectionOptions, VoiceTurnRecord } from '../types';
2
+ export declare const useVoiceStream: <TResult = unknown>(path: string, options?: VoiceConnectionOptions) => {
3
+ assistantTexts: import("vue").ShallowRef<string[], string[]>;
4
+ close: () => void;
5
+ endTurn: () => void;
6
+ error: import("vue").Ref<string | null, string | null>;
7
+ isConnected: import("vue").Ref<boolean, boolean>;
8
+ partial: import("vue").Ref<string, string>;
9
+ sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
10
+ sessionId: import("vue").Ref<string, string>;
11
+ status: import("vue").Ref<"idle" | import("..").VoiceSessionStatus, "idle" | import("..").VoiceSessionStatus>;
12
+ turns: import("vue").ShallowRef<VoiceTurnRecord<TResult>[], VoiceTurnRecord<TResult>[]>;
13
+ };