@assistant-ui/react 0.15.32 → 0.15.33

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.
@@ -0,0 +1,291 @@
1
+ import { bytesToBase64, raceWithAbortSignal } from "@assistant-ui/core/internal";
2
+ // src/adapters/gemini-live/audio.ts
3
+ const encodePcm16 = (samples) => {
4
+ const bytes = new Uint8Array(samples.length * 2);
5
+ const view = new DataView(bytes.buffer);
6
+ for (let i = 0; i < samples.length; i++) {
7
+ const s = Math.max(-1, Math.min(1, samples[i]));
8
+ view.setInt16(i * 2, s < 0 ? s * 32768 : s * 32767, true);
9
+ }
10
+ return bytesToBase64(bytes);
11
+ };
12
+ const decodePcm16 = (base64) => {
13
+ const binary = atob(base64);
14
+ const samples = new Float32Array(/* @__PURE__ */ new ArrayBuffer((binary.length >> 1) * 4));
15
+ const view = /* @__PURE__ */ new DataView(/* @__PURE__ */ new ArrayBuffer(samples.length * 2));
16
+ for (let i = 0; i < samples.length * 2; i++) view.setUint8(i, binary.charCodeAt(i));
17
+ for (let i = 0; i < samples.length; i++) samples[i] = view.getInt16(i * 2, true) / 32768;
18
+ return samples;
19
+ };
20
+ const readLevel = (analyser) => {
21
+ const data = new Uint8Array(analyser.fftSize);
22
+ analyser.getByteTimeDomainData(data);
23
+ let sum = 0;
24
+ for (const v of data) {
25
+ const centered = (v - 128) / 128;
26
+ sum += centered * centered;
27
+ }
28
+ return Math.min(1, Math.sqrt(sum / data.length) * 2);
29
+ };
30
+ const createLowPass = (ratio) => {
31
+ const omega = Math.PI * .9 / ratio;
32
+ const cosine = Math.cos(omega);
33
+ const sine = Math.sin(omega);
34
+ const sections = [
35
+ .5176380902,
36
+ .7071067812,
37
+ 1.9318516526
38
+ ].map((q) => {
39
+ const alpha = sine / (2 * q);
40
+ const a0 = 1 + alpha;
41
+ return {
42
+ b: (1 - cosine) / (2 * a0),
43
+ a1: -2 * cosine / a0,
44
+ a2: (1 - alpha) / a0,
45
+ z1: 0,
46
+ z2: 0
47
+ };
48
+ });
49
+ return (samples) => {
50
+ for (let i = 0; i < samples.length; i++) {
51
+ let x = samples[i];
52
+ for (const s of sections) {
53
+ const y = s.b * x + s.z1;
54
+ s.z1 = 2 * s.b * x - s.a1 * y + s.z2;
55
+ s.z2 = s.b * x - s.a2 * y;
56
+ x = y;
57
+ }
58
+ samples[i] = x;
59
+ }
60
+ };
61
+ };
62
+ const WORKLET_SOURCE = `
63
+ class PcmCapture extends AudioWorkletProcessor {
64
+ constructor(options) {
65
+ super();
66
+ this.ratio = sampleRate / options.processorOptions.targetRate;
67
+ this.chunk = Math.round(options.processorOptions.targetRate / 50);
68
+ this.position = 0;
69
+ this.last = 0;
70
+ this.pending = [];
71
+ this.sections = [];
72
+ if (this.ratio > 1) {
73
+ const omega = (Math.PI * 0.9) / this.ratio;
74
+ const cosine = Math.cos(omega);
75
+ const sine = Math.sin(omega);
76
+ for (const q of [0.5176380902, 0.7071067812, 1.9318516526]) {
77
+ const alpha = sine / (2 * q);
78
+ const a0 = 1 + alpha;
79
+ const b = (1 - cosine) / (2 * a0);
80
+ this.sections.push({ b, a1: (-2 * cosine) / a0, a2: (1 - alpha) / a0, z1: 0, z2: 0 });
81
+ }
82
+ }
83
+ }
84
+ process(inputs) {
85
+ const channels = inputs[0];
86
+ if (!channels || channels.length === 0 || channels[0].length === 0) return true;
87
+ const input = channels[0].slice();
88
+ for (let c = 1; c < channels.length; c++)
89
+ for (let i = 0; i < input.length; i++) input[i] += channels[c][i];
90
+ if (channels.length > 1)
91
+ for (let i = 0; i < input.length; i++) input[i] /= channels.length;
92
+ for (let i = 0; i < input.length; i++) {
93
+ let x = input[i];
94
+ for (const s of this.sections) {
95
+ const y = s.b * x + s.z1;
96
+ s.z1 = 2 * s.b * x - s.a1 * y + s.z2;
97
+ s.z2 = s.b * x - s.a2 * y;
98
+ x = y;
99
+ }
100
+ input[i] = x;
101
+ }
102
+ while (this.position < input.length - 1) {
103
+ const index = Math.floor(this.position);
104
+ const prev = index < 0 ? this.last : input[index];
105
+ const next = input[index + 1];
106
+ this.pending.push(prev + (next - prev) * (this.position - index));
107
+ this.position += this.ratio;
108
+ }
109
+ this.position -= input.length;
110
+ this.last = input[input.length - 1];
111
+ if (this.pending.length >= this.chunk) {
112
+ this.port.postMessage(Float32Array.from(this.pending));
113
+ this.pending = [];
114
+ }
115
+ return true;
116
+ }
117
+ }
118
+ registerProcessor("pcm-capture", PcmCapture);
119
+ `;
120
+ const createResampler = (ratio) => {
121
+ let position = 0;
122
+ let last = 0;
123
+ const lowPass = ratio > 1 ? createLowPass(ratio) : void 0;
124
+ return (input) => {
125
+ if (input.length === 0) return /* @__PURE__ */ new Float32Array(0);
126
+ const samples = lowPass ? input.slice() : input;
127
+ lowPass?.(samples);
128
+ const out = [];
129
+ while (position < samples.length - 1) {
130
+ const index = Math.floor(position);
131
+ const prev = index < 0 ? last : samples[index];
132
+ const next = samples[index + 1];
133
+ out.push(prev + (next - prev) * (position - index));
134
+ position += ratio;
135
+ }
136
+ position -= samples.length;
137
+ last = samples[samples.length - 1];
138
+ return Float32Array.from(out);
139
+ };
140
+ };
141
+ const openMicrophone = async (options) => {
142
+ let stream;
143
+ const stopTracks = () => {
144
+ stream?.getTracks().forEach((track) => track.stop());
145
+ stream = void 0;
146
+ };
147
+ const throwIfAborted = () => {
148
+ if (options.signal?.aborted) throw options.signal.reason;
149
+ };
150
+ let context;
151
+ try {
152
+ const openedStream = await raceWithAbortSignal(options.signal, async () => {
153
+ const acquired = await navigator.mediaDevices.getUserMedia({ audio: true });
154
+ stream = acquired;
155
+ if (options.signal?.aborted) {
156
+ stopTracks();
157
+ throw options.signal.reason;
158
+ }
159
+ return acquired;
160
+ });
161
+ throwIfAborted();
162
+ context = new AudioContext();
163
+ if (context.state === "suspended") await raceWithAbortSignal(options.signal, () => context.resume());
164
+ throwIfAborted();
165
+ const source = context.createMediaStreamSource(openedStream);
166
+ const analyser = context.createAnalyser();
167
+ analyser.fftSize = 256;
168
+ source.connect(analyser);
169
+ let muted = false;
170
+ let closed = false;
171
+ let closing;
172
+ const push = (samples) => {
173
+ if (!muted && !closed && samples.length) options.onChunk(encodePcm16(samples));
174
+ };
175
+ let node;
176
+ let detach = () => {};
177
+ if (context.audioWorklet) {
178
+ const url = URL.createObjectURL(new Blob([WORKLET_SOURCE], { type: "text/javascript" }));
179
+ try {
180
+ await raceWithAbortSignal(options.signal, () => context.audioWorklet.addModule(url));
181
+ throwIfAborted();
182
+ const worklet = new AudioWorkletNode(context, "pcm-capture", { processorOptions: { targetRate: options.sampleRate } });
183
+ worklet.port.onmessage = (event) => push(event.data);
184
+ detach = () => {
185
+ worklet.port.onmessage = null;
186
+ };
187
+ node = worklet;
188
+ } catch {
189
+ throwIfAborted();
190
+ } finally {
191
+ URL.revokeObjectURL(url);
192
+ }
193
+ }
194
+ if (!node) {
195
+ const resample = createResampler(context.sampleRate / options.sampleRate);
196
+ const processor = context.createScriptProcessor(1024, 1, 1);
197
+ processor.onaudioprocess = (event) => push(resample(event.inputBuffer.getChannelData(0)));
198
+ detach = () => {
199
+ processor.onaudioprocess = null;
200
+ };
201
+ node = processor;
202
+ }
203
+ analyser.connect(node);
204
+ node.connect(context.destination);
205
+ const opened = context;
206
+ return {
207
+ setMuted: (value) => {
208
+ muted = value;
209
+ openedStream.getAudioTracks().forEach((track) => {
210
+ track.enabled = !value;
211
+ });
212
+ },
213
+ level: () => readLevel(analyser),
214
+ close: () => {
215
+ if (closing) return closing;
216
+ closed = true;
217
+ detach();
218
+ node.disconnect();
219
+ source.disconnect();
220
+ stopTracks();
221
+ return closing = opened.close();
222
+ }
223
+ };
224
+ } catch (error) {
225
+ stopTracks();
226
+ await context?.close().catch(() => {});
227
+ throw error;
228
+ }
229
+ };
230
+ const IDLE_GRACE_MS = 100;
231
+ const createPcmPlayer = (options) => {
232
+ const context = new AudioContext({ sampleRate: options.sampleRate });
233
+ const analyser = context.createAnalyser();
234
+ analyser.fftSize = 256;
235
+ analyser.connect(context.destination);
236
+ const sources = /* @__PURE__ */ new Set();
237
+ let cursor = 0;
238
+ let closing;
239
+ let idleTimer;
240
+ const scheduleIdle = () => {
241
+ clearTimeout(idleTimer);
242
+ idleTimer = setTimeout(() => {
243
+ if (sources.size === 0) options.onIdle?.();
244
+ }, IDLE_GRACE_MS);
245
+ };
246
+ return {
247
+ enqueue: (base64) => {
248
+ const samples = decodePcm16(base64);
249
+ if (samples.length === 0) return;
250
+ const buffer = context.createBuffer(1, samples.length, options.sampleRate);
251
+ buffer.copyToChannel(samples, 0);
252
+ const source = context.createBufferSource();
253
+ source.buffer = buffer;
254
+ source.connect(analyser);
255
+ const start = Math.max(context.currentTime, cursor);
256
+ source.start(start);
257
+ cursor = start + buffer.duration;
258
+ sources.add(source);
259
+ source.onended = () => {
260
+ sources.delete(source);
261
+ if (sources.size === 0) scheduleIdle();
262
+ };
263
+ clearTimeout(idleTimer);
264
+ if (context.state === "suspended") context.resume().catch(() => {});
265
+ },
266
+ clear: () => {
267
+ clearTimeout(idleTimer);
268
+ for (const source of sources) {
269
+ source.onended = null;
270
+ source.stop();
271
+ }
272
+ sources.clear();
273
+ cursor = 0;
274
+ },
275
+ isPlaying: () => sources.size > 0,
276
+ level: () => readLevel(analyser),
277
+ close: () => {
278
+ if (closing) return closing;
279
+ clearTimeout(idleTimer);
280
+ for (const source of sources) {
281
+ source.onended = null;
282
+ source.stop();
283
+ }
284
+ sources.clear();
285
+ return closing = context.close();
286
+ }
287
+ };
288
+ };
289
+ export { WORKLET_SOURCE, createPcmPlayer, createResampler, decodePcm16, encodePcm16, openMicrophone, readLevel };
290
+
291
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","names":["bytesToBase64","raceWithAbortSignal","encodePcm16","samples","Float32Array","bytes","Uint8Array","length","view","DataView","buffer","i","s","Math","max","min","setInt16","decodePcm16","base64","ArrayBuffer","binary","atob","setUint8","charCodeAt","getInt16","readLevel","analyser","AnalyserNode","data","fftSize","getByteTimeDomainData","sum","v","centered","sqrt","MicrophoneCapture","setMuted","muted","level","close","Promise","createLowPass","ratio","omega","PI","cosine","cos","sine","sin","sections","map","q","alpha","a0","b","a1","a2","z1","z2","x","y","WORKLET_SOURCE","createResampler","position","last","lowPass","undefined","input","slice","out","index","floor","prev","next","push","from","openMicrophone","options","sampleRate","onChunk","signal","AbortSignal","stream","MediaStream","stopTracks","getTracks","forEach","track","stop","throwIfAborted","aborted","reason","context","AudioContext","openedStream","acquired","navigator","mediaDevices","getUserMedia","audio","state","resume","source","createMediaStreamSource","createAnalyser","connect","closed","closing","node","AudioNode","detach","audioWorklet","url","URL","createObjectURL","Blob","type","addModule","worklet","AudioWorkletNode","processorOptions","targetRate","port","onmessage","event","revokeObjectURL","resample","processor","createScriptProcessor","onaudioprocess","inputBuffer","getChannelData","destination","opened","value","getAudioTracks","enabled","disconnect","error","catch","PcmPlayer","enqueue","clear","isPlaying","IDLE_GRACE_MS","createPcmPlayer","onIdle","sources","Set","AudioBufferSourceNode","cursor","idleTimer","ReturnType","setTimeout","scheduleIdle","clearTimeout","size","createBuffer","copyToChannel","createBufferSource","start","currentTime","duration","add","onended","delete"],"sources":["../../../src/adapters/gemini-live/audio.ts"],"sourcesContent":["import {\n bytesToBase64,\n raceWithAbortSignal,\n} from \"@assistant-ui/core/internal\";\n\nexport const encodePcm16 = (samples: Float32Array): string => {\n const bytes = new Uint8Array(samples.length * 2);\n const view = new DataView(bytes.buffer);\n for (let i = 0; i < samples.length; i++) {\n const s = Math.max(-1, Math.min(1, samples[i]!));\n view.setInt16(i * 2, s < 0 ? s * 0x8000 : s * 0x7fff, true);\n }\n return bytesToBase64(bytes);\n};\n\nexport const decodePcm16 = (base64: string): Float32Array<ArrayBuffer> => {\n const binary = atob(base64);\n const samples = new Float32Array(new ArrayBuffer((binary.length >> 1) * 4));\n const view = new DataView(new ArrayBuffer(samples.length * 2));\n for (let i = 0; i < samples.length * 2; i++)\n view.setUint8(i, binary.charCodeAt(i));\n for (let i = 0; i < samples.length; i++)\n samples[i] = view.getInt16(i * 2, true) / 0x8000;\n return samples;\n};\n\nexport const readLevel = (analyser: AnalyserNode): number => {\n const data = new Uint8Array(analyser.fftSize);\n analyser.getByteTimeDomainData(data);\n let sum = 0;\n for (const v of data) {\n const centered = (v - 128) / 128;\n sum += centered * centered;\n }\n return Math.min(1, Math.sqrt(sum / data.length) * 2);\n};\n\nexport type MicrophoneCapture = {\n setMuted: (muted: boolean) => void;\n level: () => number;\n close: () => Promise<void>;\n};\n\nconst createLowPass = (ratio: number) => {\n const omega = (Math.PI * 0.9) / ratio;\n const cosine = Math.cos(omega);\n const sine = Math.sin(omega);\n const sections = [0.5176380902, 0.7071067812, 1.9318516526].map((q) => {\n const alpha = sine / (2 * q);\n const a0 = 1 + alpha;\n const b = (1 - cosine) / (2 * a0);\n return { b, a1: (-2 * cosine) / a0, a2: (1 - alpha) / a0, z1: 0, z2: 0 };\n });\n return (samples: Float32Array) => {\n for (let i = 0; i < samples.length; i++) {\n let x = samples[i]!;\n for (const s of sections) {\n const y = s.b * x + s.z1;\n s.z1 = 2 * s.b * x - s.a1 * y + s.z2;\n s.z2 = s.b * x - s.a2 * y;\n x = y;\n }\n samples[i] = x;\n }\n };\n};\n\nexport const WORKLET_SOURCE = `\nclass PcmCapture extends AudioWorkletProcessor {\n constructor(options) {\n super();\n this.ratio = sampleRate / options.processorOptions.targetRate;\n this.chunk = Math.round(options.processorOptions.targetRate / 50);\n this.position = 0;\n this.last = 0;\n this.pending = [];\n this.sections = [];\n if (this.ratio > 1) {\n const omega = (Math.PI * 0.9) / this.ratio;\n const cosine = Math.cos(omega);\n const sine = Math.sin(omega);\n for (const q of [0.5176380902, 0.7071067812, 1.9318516526]) {\n const alpha = sine / (2 * q);\n const a0 = 1 + alpha;\n const b = (1 - cosine) / (2 * a0);\n this.sections.push({ b, a1: (-2 * cosine) / a0, a2: (1 - alpha) / a0, z1: 0, z2: 0 });\n }\n }\n }\n process(inputs) {\n const channels = inputs[0];\n if (!channels || channels.length === 0 || channels[0].length === 0) return true;\n const input = channels[0].slice();\n for (let c = 1; c < channels.length; c++)\n for (let i = 0; i < input.length; i++) input[i] += channels[c][i];\n if (channels.length > 1)\n for (let i = 0; i < input.length; i++) input[i] /= channels.length;\n for (let i = 0; i < input.length; i++) {\n let x = input[i];\n for (const s of this.sections) {\n const y = s.b * x + s.z1;\n s.z1 = 2 * s.b * x - s.a1 * y + s.z2;\n s.z2 = s.b * x - s.a2 * y;\n x = y;\n }\n input[i] = x;\n }\n while (this.position < input.length - 1) {\n const index = Math.floor(this.position);\n const prev = index < 0 ? this.last : input[index];\n const next = input[index + 1];\n this.pending.push(prev + (next - prev) * (this.position - index));\n this.position += this.ratio;\n }\n this.position -= input.length;\n this.last = input[input.length - 1];\n if (this.pending.length >= this.chunk) {\n this.port.postMessage(Float32Array.from(this.pending));\n this.pending = [];\n }\n return true;\n }\n}\nregisterProcessor(\"pcm-capture\", PcmCapture);\n`;\n\nexport const createResampler = (ratio: number) => {\n let position = 0;\n let last = 0;\n const lowPass = ratio > 1 ? createLowPass(ratio) : undefined;\n return (input: Float32Array): Float32Array => {\n if (input.length === 0) return new Float32Array(0);\n const samples = lowPass ? input.slice() : input;\n lowPass?.(samples);\n const out: number[] = [];\n while (position < samples.length - 1) {\n const index = Math.floor(position);\n const prev = index < 0 ? last : samples[index]!;\n const next = samples[index + 1]!;\n out.push(prev + (next - prev) * (position - index));\n position += ratio;\n }\n position -= samples.length;\n last = samples[samples.length - 1]!;\n return Float32Array.from(out);\n };\n};\n\nexport const openMicrophone = async (options: {\n sampleRate: number;\n onChunk: (base64: string) => void;\n signal?: AbortSignal;\n}): Promise<MicrophoneCapture> => {\n let stream: MediaStream | undefined;\n const stopTracks = () => {\n stream?.getTracks().forEach((track) => track.stop());\n stream = undefined;\n };\n const throwIfAborted = () => {\n if (options.signal?.aborted) throw options.signal.reason;\n };\n let context: AudioContext | undefined;\n try {\n const openedStream = await raceWithAbortSignal(options.signal, async () => {\n const acquired = await navigator.mediaDevices.getUserMedia({\n audio: true,\n });\n stream = acquired;\n if (options.signal?.aborted) {\n stopTracks();\n throw options.signal.reason;\n }\n return acquired;\n });\n throwIfAborted();\n context = new AudioContext();\n if (context.state === \"suspended\")\n await raceWithAbortSignal(options.signal, () => context!.resume());\n throwIfAborted();\n const source = context.createMediaStreamSource(openedStream);\n const analyser = context.createAnalyser();\n analyser.fftSize = 256;\n source.connect(analyser);\n\n let muted = false;\n let closed = false;\n let closing: Promise<void> | undefined;\n const push = (samples: Float32Array) => {\n if (!muted && !closed && samples.length)\n options.onChunk(encodePcm16(samples));\n };\n\n let node: AudioNode | undefined;\n let detach = () => {};\n if (context.audioWorklet) {\n const url = URL.createObjectURL(\n new Blob([WORKLET_SOURCE], { type: \"text/javascript\" }),\n );\n try {\n await raceWithAbortSignal(options.signal, () =>\n context!.audioWorklet.addModule(url),\n );\n throwIfAborted();\n const worklet = new AudioWorkletNode(context, \"pcm-capture\", {\n processorOptions: { targetRate: options.sampleRate },\n });\n worklet.port.onmessage = (event) => push(event.data as Float32Array);\n detach = () => {\n worklet.port.onmessage = null;\n };\n node = worklet;\n } catch {\n // A CSP can block blob worklets even when AudioWorklet is available.\n throwIfAborted();\n } finally {\n URL.revokeObjectURL(url);\n }\n }\n if (!node) {\n const resample = createResampler(context.sampleRate / options.sampleRate);\n const processor = context.createScriptProcessor(1024, 1, 1);\n processor.onaudioprocess = (event) =>\n push(resample(event.inputBuffer.getChannelData(0)));\n detach = () => {\n processor.onaudioprocess = null;\n };\n node = processor;\n }\n analyser.connect(node);\n node.connect(context.destination);\n const opened = context;\n\n return {\n setMuted: (value) => {\n muted = value;\n openedStream.getAudioTracks().forEach((track) => {\n track.enabled = !value;\n });\n },\n level: () => readLevel(analyser),\n close: () => {\n if (closing) return closing;\n closed = true;\n detach();\n node.disconnect();\n source.disconnect();\n stopTracks();\n return (closing = opened.close());\n },\n };\n } catch (error) {\n stopTracks();\n await context?.close().catch(() => {});\n throw error;\n }\n};\n\nexport type PcmPlayer = {\n enqueue: (base64: string) => void;\n clear: () => void;\n isPlaying: () => boolean;\n level: () => number;\n close: () => Promise<void>;\n};\n\nconst IDLE_GRACE_MS = 100;\n\nexport const createPcmPlayer = (options: {\n sampleRate: number;\n onIdle?: () => void;\n}): PcmPlayer => {\n const context = new AudioContext({ sampleRate: options.sampleRate });\n const analyser = context.createAnalyser();\n analyser.fftSize = 256;\n analyser.connect(context.destination);\n const sources = new Set<AudioBufferSourceNode>();\n let cursor = 0;\n let closing: Promise<void> | undefined;\n let idleTimer: ReturnType<typeof setTimeout> | undefined;\n const scheduleIdle = () => {\n clearTimeout(idleTimer);\n idleTimer = setTimeout(() => {\n if (sources.size === 0) options.onIdle?.();\n }, IDLE_GRACE_MS);\n };\n\n return {\n enqueue: (base64) => {\n const samples = decodePcm16(base64);\n if (samples.length === 0) return;\n const buffer = context.createBuffer(\n 1,\n samples.length,\n options.sampleRate,\n );\n buffer.copyToChannel(samples, 0);\n const source = context.createBufferSource();\n source.buffer = buffer;\n source.connect(analyser);\n const start = Math.max(context.currentTime, cursor);\n source.start(start);\n cursor = start + buffer.duration;\n sources.add(source);\n source.onended = () => {\n sources.delete(source);\n if (sources.size === 0) scheduleIdle();\n };\n clearTimeout(idleTimer);\n if (context.state === \"suspended\") void context.resume().catch(() => {});\n },\n clear: () => {\n clearTimeout(idleTimer);\n for (const source of sources) {\n source.onended = null;\n source.stop();\n }\n sources.clear();\n cursor = 0;\n },\n isPlaying: () => sources.size > 0,\n level: () => readLevel(analyser),\n close: () => {\n if (closing) return closing;\n clearTimeout(idleTimer);\n for (const source of sources) {\n source.onended = null;\n source.stop();\n }\n sources.clear();\n return (closing = context.close());\n },\n };\n};\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { create } from "zustand";
3
2
  import { notifyEventListeners } from "@assistant-ui/core/internal";
3
+ import { create } from "zustand";
4
4
  import { createThreadViewportAutoScroll } from "@assistant-ui/store/client";
5
5
  // src/context/stores/ThreadViewport.ts
6
6
  const createSizeRegistry = (onChange) => {
package/dist/index.d.ts CHANGED
@@ -10,6 +10,7 @@ export { CloudFileAttachmentAdapter } from "@assistant-ui/core/react";
10
10
  export type { RealtimeVoiceAdapter } from "@assistant-ui/core";
11
11
  export { createVoiceSession } from "@assistant-ui/core";
12
12
  export { OpenAIRealtimeVoiceAdapter, type OpenAIRealtimeVoiceAdapterOptions, } from "./adapters/OpenAIRealtimeVoiceAdapter.js";
13
+ export { GeminiLiveVoiceAdapter, type GeminiLiveVoiceAdapterOptions, } from "./adapters/GeminiLiveVoiceAdapter.js";
13
14
  export type { VoiceSessionControls, VoiceSessionHelpers, VoiceSessionState, } from "@assistant-ui/core";
14
15
  export { useVoiceState, useVoiceVolume, useVoiceControls, } from "@assistant-ui/core/react";
15
16
  export type { FeedbackAdapter } from "@assistant-ui/core";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { GeminiLiveVoiceAdapter } from "./adapters/GeminiLiveVoiceAdapter.js";
1
2
  import { OpenAIRealtimeVoiceAdapter } from "./adapters/OpenAIRealtimeVoiceAdapter.js";
2
3
  import { useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState } from "./assistant-transport.js";
3
4
  import { useThreadViewport, useThreadViewportStore } from "./context/react/ThreadViewportContext.js";
@@ -63,4 +64,4 @@ import { ChainOfThoughtPartByIndexProvider, CloudFileAttachmentAdapter, DataRend
63
64
  import { AuiConfig, AuiIf, AuiProvider, useAui, useAuiEvent, useAuiState } from "@assistant-ui/store";
64
65
  import { ChainOfThoughtClient, ExternalThread, InMemoryThreadList, ModelContext as ModelContextClient, RemoteThreadList, SingleThreadList, Suggestions } from "@assistant-ui/core/store";
65
66
  import { AssistantCloud, readAnonymousRefreshToken } from "assistant-cloud";
66
- export { actionBarMore_exports as ActionBarMorePrimitive, actionBar_exports as ActionBarPrimitive, AssistantCloud, AssistantFrameHost, AssistantFrameProvider, assistantModal_exports as AssistantModalPrimitive, AssistantRuntimeProvider, attachment_exports as AttachmentPrimitive, AuiConfig, AuiIf, AuiProvider, branchPicker_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, ChainOfThoughtPartByIndexProvider, chainOfThought_exports as ChainOfThoughtPrimitive, CloudFileAttachmentAdapter, CloudRendererHost, ComposerAttachmentByIndexProvider, composer_exports as ComposerPrimitive, CompositeAttachmentAdapter, DataRenderers, DevToolsHooks, DevToolsProviderApi, error_exports as ErrorPrimitive, ExportedMessageRepository, ExternalThread, FRAME_MESSAGE_CHANNEL, GenerativeUIRender, GenerativeUIRenderError, internal_exports as INTERNAL, InMemoryThreadList, InMemoryThreadListAdapter, Interactables, McpAppRenderer, McpAppsRemoteHost, MessageAttachmentByIndexProvider, MessageByIndexProvider, MessageNotSentError, messagePart_exports as MessagePartPrimitive, message_exports as MessagePrimitive, MessageProvider, ModelContextClient, ModelContextRegistry, OpenAIRealtimeVoiceAdapter, PartByIndexProvider, queueItem_exports as QueueItemPrimitive, ReadonlyThreadProvider, RemoteThreadList, RuntimeAdapterProvider, selectionToolbar_exports as SelectionToolbarPrimitive, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, SuggestionByIndexProvider, suggestion_exports as SuggestionPrimitive, Suggestions, TextMessagePartProvider, ThreadListItemByIndexProvider, threadListItemMore_exports as ThreadListItemMorePrimitive, threadListItem_exports as ThreadListItemPrimitive, ThreadListItemRuntimeProvider, threadList_exports as ThreadListPrimitive, thread_exports as ThreadPrimitive, Tools, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createSimpleTitleAdapter, createSuggestionAdapter, createThreadRowsSelector, createVoiceSession, defaultDirectiveFormatter, defineMcpToolkit, defineToolkit, externalTool, fromThreadMessageLike, generateId, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, isMessageNotSentError, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, readAnonymousRefreshToken, stubTool, tool, toolApprovalAcceptsText, unstable_Interactables, unstable_convertExternalMessages, unstable_createExternalMessageConversionCache, unstable_createMessageConverter, unstable_defaultDirectiveFormatter, defaultWebMcpFilter as unstable_defaultWebMcpFilter, unstable_formatInteractableSnapshot, unstable_getInteractableSnapshots, unstable_getInteractableVersions, unstable_interactableTool, unstable_useComposerInput, unstable_useComposerInputHistory, unstable_useInteractable, unstable_useInteractableState, unstable_useInteractableVersions, unstable_useLiveCompletionAdapter, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, unstable_useThreadMessageIds, unstable_useTriggerPopoverAriaProps, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, unstable_useWebMcpProvider, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
67
+ export { actionBarMore_exports as ActionBarMorePrimitive, actionBar_exports as ActionBarPrimitive, AssistantCloud, AssistantFrameHost, AssistantFrameProvider, assistantModal_exports as AssistantModalPrimitive, AssistantRuntimeProvider, attachment_exports as AttachmentPrimitive, AuiConfig, AuiIf, AuiProvider, branchPicker_exports as BranchPickerPrimitive, ChainOfThoughtByIndicesProvider, ChainOfThoughtClient, ChainOfThoughtPartByIndexProvider, chainOfThought_exports as ChainOfThoughtPrimitive, CloudFileAttachmentAdapter, CloudRendererHost, ComposerAttachmentByIndexProvider, composer_exports as ComposerPrimitive, CompositeAttachmentAdapter, DataRenderers, DevToolsHooks, DevToolsProviderApi, error_exports as ErrorPrimitive, ExportedMessageRepository, ExternalThread, FRAME_MESSAGE_CHANNEL, GeminiLiveVoiceAdapter, GenerativeUIRender, GenerativeUIRenderError, internal_exports as INTERNAL, InMemoryThreadList, InMemoryThreadListAdapter, Interactables, McpAppRenderer, McpAppsRemoteHost, MessageAttachmentByIndexProvider, MessageByIndexProvider, MessageNotSentError, messagePart_exports as MessagePartPrimitive, message_exports as MessagePrimitive, MessageProvider, ModelContextClient, ModelContextRegistry, OpenAIRealtimeVoiceAdapter, PartByIndexProvider, queueItem_exports as QueueItemPrimitive, ReadonlyThreadProvider, RemoteThreadList, RuntimeAdapterProvider, selectionToolbar_exports as SelectionToolbarPrimitive, SimpleImageAttachmentAdapter, SimpleTextAttachmentAdapter, SingleThreadList, SuggestionByIndexProvider, suggestion_exports as SuggestionPrimitive, Suggestions, TextMessagePartProvider, ThreadListItemByIndexProvider, threadListItemMore_exports as ThreadListItemMorePrimitive, threadListItem_exports as ThreadListItemPrimitive, ThreadListItemRuntimeProvider, threadList_exports as ThreadListPrimitive, thread_exports as ThreadPrimitive, Tools, WebSpeechDictationAdapter, WebSpeechSynthesisAdapter, bindExternalStoreMessage, createMessageQueue, createSimpleTitleAdapter, createSuggestionAdapter, createThreadRowsSelector, createVoiceSession, defaultDirectiveFormatter, defineMcpToolkit, defineToolkit, externalTool, fromThreadMessageLike, generateId, getExternalStoreMessages, getMcpAppFromToolPart, groupPartByType, hitl, hitlTool, humanTool, isMessageNotSentError, makeAssistantDataUI, makeAssistantTool, makeAssistantToolUI, makeAssistantVisible, mergeModelContexts, pickExternalStoreSharedOptions, providerTool, readAnonymousRefreshToken, stubTool, tool, toolApprovalAcceptsText, unstable_Interactables, unstable_convertExternalMessages, unstable_createExternalMessageConversionCache, unstable_createMessageConverter, unstable_defaultDirectiveFormatter, defaultWebMcpFilter as unstable_defaultWebMcpFilter, unstable_formatInteractableSnapshot, unstable_getInteractableSnapshots, unstable_getInteractableVersions, unstable_interactableTool, unstable_useComposerInput, unstable_useComposerInputHistory, unstable_useInteractable, unstable_useInteractableState, unstable_useInteractableVersions, unstable_useLiveCompletionAdapter, unstable_useMentionAdapter, unstable_useMessageStallDetection, unstable_useSlashCommandAdapter, unstable_useThreadMessageIds, unstable_useTriggerPopoverAriaProps, useTriggerPopoverRootContext as unstable_useTriggerPopoverRootContext, useTriggerPopoverRootContextOptional as unstable_useTriggerPopoverRootContextOptional, useTriggerPopoverScopeContext as unstable_useTriggerPopoverScopeContext, useTriggerPopoverScopeContextOptional as unstable_useTriggerPopoverScopeContextOptional, useTriggerPopoverTriggers as unstable_useTriggerPopoverTriggers, useTriggerPopoverTriggersOptional as unstable_useTriggerPopoverTriggersOptional, unstable_useWebMcpProvider, useAssistantContext, useAssistantDataUI, useAssistantFrameHost, useAssistantInstructions, useAssistantInteractable, useAssistantTool, useAssistantToolUI, useAssistantTransportRuntime, useAssistantTransportSendCommand, useAssistantTransportState, useAui, useAuiEvent, useAuiState, useAuiToolOverrides, useCloudThreadListAdapter, useCloudThreadListRuntime, useExternalMessageConverter, useExternalStoreRuntime, useExternalStoreSharedOptions, useInlineRender, useInteractableState, useLocalRuntime, useMessagePartData, useMessagePartFile, useMessagePartImage, useMessagePartReasoning, useMessagePartSource, useMessagePartText, useMessageQuote, useMessageTiming, useRemoteThreadListRuntime, useRuntimeAdapters, useScrollLock, useSmooth, useThreadViewport, useThreadViewportAutoScroll, useThreadViewportStore, useToolArgsStatus, useToolCallElapsed, useVoiceControls, useVoiceState, useVoiceVolume };
package/dist/internal.js CHANGED
@@ -2,8 +2,8 @@ import { __exportAll } from "./_virtual/_rolldown/runtime.js";
2
2
  import { useComposerInputPluginRegistryOptional } from "./primitives/composer/ComposerInputPluginContext.js";
3
3
  import { useSmoothStatus, withSmoothContextProvider } from "./utils/smooth/SmoothContext.js";
4
4
  import { useSmooth } from "./utils/smooth/useSmooth.js";
5
- import { splitLocalRuntimeOptions } from "@assistant-ui/core/react";
6
5
  import { AssistantRuntimeImpl, BaseAssistantRuntimeCore, CompositeContextProvider, DefaultThreadComposerRuntimeCore, MessageRepository, ThreadRuntimeImpl, getAutoStatus } from "@assistant-ui/core/internal";
6
+ import { splitLocalRuntimeOptions } from "@assistant-ui/core/react";
7
7
  // src/internal.ts
8
8
  var internal_exports = /* @__PURE__ */ __exportAll({
9
9
  AssistantRuntimeImpl: () => AssistantRuntimeImpl,
@@ -2,11 +2,11 @@
2
2
  import { useIsomorphicLayoutEffect } from "../utils/useIsomorphicLayoutEffect.js";
3
3
  import { McpAppFrame } from "./app-frame.js";
4
4
  import { getMcpAppFromToolPart } from "./utils.js";
5
+ import { isRecord } from "@assistant-ui/core/internal";
5
6
  import { useEffect, useMemo, useRef, useState } from "@assistant-ui/tap/react-shim";
6
7
  import { useAui } from "@assistant-ui/store";
7
8
  import { resource, useResource } from "@assistant-ui/tap";
8
9
  import { create } from "zustand";
9
- import { isRecord } from "@assistant-ui/core/internal";
10
10
  import { Fragment, jsx } from "react/jsx-runtime";
11
11
  // src/mcp-apps/McpAppRenderer.tsx
12
12
  const isSameOptions = (a, b) => {
@@ -3,9 +3,9 @@ import { useIsomorphicLayoutEffect } from "../utils/useIsomorphicLayoutEffect.js
3
3
  import { createMcpAppBridge } from "./bridge.js";
4
4
  import { SandboxHost } from "../sandbox-host/SandboxHost.js";
5
5
  import { applyMcpAppCsp } from "./csp.js";
6
+ import { isRecord } from "@assistant-ui/core/internal";
6
7
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
7
8
  import { useEffect, useRef } from "@assistant-ui/tap/react-shim";
8
- import { isRecord } from "@assistant-ui/core/internal";
9
9
  import { jsx } from "react/jsx-runtime";
10
10
  // src/mcp-apps/app-frame.tsx
11
11
  const DEFAULT_PRODUCT = "assistant-ui-mcp-app";
@@ -4,11 +4,11 @@ import { TextMessagePartProvider } from "../../context/providers/TextMessagePart
4
4
  import { MessagePartPrimitiveText } from "../messagePart/MessagePartText.js";
5
5
  import { MessagePartPrimitiveImage } from "../messagePart/MessagePartImage.js";
6
6
  import { MessagePartPrimitiveInProgress } from "../messagePart/MessagePartInProgress.js";
7
+ import { getMessagePartKeys } from "@assistant-ui/core/internal";
7
8
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
8
9
  import { MessagePartComponent } from "@assistant-ui/core/react";
9
10
  import { memo } from "@assistant-ui/tap/react-shim";
10
11
  import { useAuiState } from "@assistant-ui/store";
11
- import { getMessagePartKeys } from "@assistant-ui/core/internal";
12
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
13
  // src/primitives/message/MessagePartsGrouped.tsx
14
14
  /**
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
  import { useIsomorphicLayoutEffect } from "../utils/useIsomorphicLayoutEffect.js";
3
+ import { invokeUserCallback } from "@assistant-ui/core/internal";
3
4
  import { c } from "@assistant-ui/tap/react-shim/compiler-runtime";
4
5
  import { useEffect, useRef, useState } from "@assistant-ui/tap/react-shim";
5
- import { invokeUserCallback } from "@assistant-ui/core/internal";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { SafeContentFrame, isShimLoadError } from "safe-content-frame";
8
8
  // src/sandbox-host/SandboxHost.tsx
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { useTriggerPopoverRootContextOptional } from "../primitives/composer/trigger/TriggerPopoverRootContext.js";
3
+ import { getThreadMessageText } from "@assistant-ui/core/internal";
3
4
  import { useCallback, useEffect, useMemo, useRef } from "@assistant-ui/tap/react-shim";
4
5
  import { useAui } from "@assistant-ui/store";
5
6
  import { flushTapSync } from "@assistant-ui/tap";
6
- import { getThreadMessageText } from "@assistant-ui/core/internal";
7
7
  // src/unstable/useComposerInputHistory.ts
8
8
  const deriveHistory = (messages) => {
9
9
  const entries = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/react",
3
- "version": "0.15.32",
3
+ "version": "0.15.33",
4
4
  "description": "Open-source TypeScript/React library for building production-grade AI chat experiences",
5
5
  "keywords": [
6
6
  "ai",
@@ -55,11 +55,11 @@
55
55
  ],
56
56
  "sideEffects": false,
57
57
  "dependencies": {
58
- "@assistant-ui/core": "^0.3.32",
59
- "@assistant-ui/store": "^0.3.22",
60
- "@assistant-ui/tap": "^0.9.24",
61
- "assistant-cloud": "^0.2.9",
62
- "assistant-stream": "^0.3.55",
58
+ "@assistant-ui/core": "^0.3.33",
59
+ "@assistant-ui/store": "^0.3.23",
60
+ "@assistant-ui/tap": "^0.9.25",
61
+ "assistant-cloud": "^0.2.10",
62
+ "assistant-stream": "^0.3.56",
63
63
  "radix-ui": "^1.8.1",
64
64
  "react-textarea-autosize": "^8.5.9",
65
65
  "safe-content-frame": "^0.0.34",