@absolutejs/voice 0.0.22-beta.115 → 0.0.22-beta.117

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.
@@ -2357,9 +2357,147 @@ var VoiceTurnQuality = ({
2357
2357
  ]
2358
2358
  }, undefined, true, undefined, this);
2359
2359
  };
2360
- // src/react/useVoiceStream.tsx
2360
+ // src/react/useVoiceCampaignDialerProof.tsx
2361
2361
  import { useEffect as useEffect9, useRef as useRef9, useSyncExternalStore as useSyncExternalStore9 } from "react";
2362
2362
 
2363
+ // src/client/campaignDialerProof.ts
2364
+ var fetchVoiceCampaignDialerProofStatus = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2365
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2366
+ const response = await fetchImpl(path);
2367
+ if (!response.ok) {
2368
+ throw new Error(`Voice campaign dialer proof status failed: HTTP ${response.status}`);
2369
+ }
2370
+ return await response.json();
2371
+ };
2372
+ var runVoiceCampaignDialerProofAction = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2373
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2374
+ const response = await fetchImpl(path, { method: "POST" });
2375
+ if (!response.ok) {
2376
+ throw new Error(`Voice campaign dialer proof failed: HTTP ${response.status}`);
2377
+ }
2378
+ return await response.json();
2379
+ };
2380
+ var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2381
+ const listeners = new Set;
2382
+ let closed = false;
2383
+ let timer;
2384
+ let snapshot = {
2385
+ error: null,
2386
+ isLoading: false
2387
+ };
2388
+ const emit = () => {
2389
+ for (const listener of listeners) {
2390
+ listener();
2391
+ }
2392
+ };
2393
+ const refresh = async () => {
2394
+ if (closed) {
2395
+ return snapshot.status;
2396
+ }
2397
+ snapshot = { ...snapshot, error: null, isLoading: true };
2398
+ emit();
2399
+ try {
2400
+ const status = await fetchVoiceCampaignDialerProofStatus(path, options);
2401
+ snapshot = {
2402
+ ...snapshot,
2403
+ error: null,
2404
+ isLoading: false,
2405
+ status,
2406
+ updatedAt: Date.now()
2407
+ };
2408
+ emit();
2409
+ return status;
2410
+ } catch (error) {
2411
+ snapshot = {
2412
+ ...snapshot,
2413
+ error: error instanceof Error ? error.message : String(error),
2414
+ isLoading: false
2415
+ };
2416
+ emit();
2417
+ throw error;
2418
+ }
2419
+ };
2420
+ const runProof = async () => {
2421
+ const runPath = options.runPath ?? snapshot.status?.runPath ?? path;
2422
+ snapshot = { ...snapshot, error: null, isLoading: true };
2423
+ emit();
2424
+ try {
2425
+ const report = await runVoiceCampaignDialerProofAction(runPath, options);
2426
+ snapshot = {
2427
+ ...snapshot,
2428
+ error: null,
2429
+ isLoading: false,
2430
+ report,
2431
+ status: {
2432
+ generatedAt: Date.now(),
2433
+ mode: report.mode,
2434
+ ok: report.ok,
2435
+ providers: report.providers.map((provider) => provider.provider),
2436
+ runPath,
2437
+ safe: true
2438
+ },
2439
+ updatedAt: Date.now()
2440
+ };
2441
+ emit();
2442
+ return report;
2443
+ } catch (error) {
2444
+ snapshot = {
2445
+ ...snapshot,
2446
+ error: error instanceof Error ? error.message : String(error),
2447
+ isLoading: false
2448
+ };
2449
+ emit();
2450
+ throw error;
2451
+ }
2452
+ };
2453
+ const close = () => {
2454
+ closed = true;
2455
+ if (timer) {
2456
+ clearInterval(timer);
2457
+ timer = undefined;
2458
+ }
2459
+ listeners.clear();
2460
+ };
2461
+ if (options.intervalMs && options.intervalMs > 0) {
2462
+ timer = setInterval(() => {
2463
+ refresh().catch(() => {});
2464
+ }, options.intervalMs);
2465
+ }
2466
+ return {
2467
+ close,
2468
+ getServerSnapshot: () => snapshot,
2469
+ getSnapshot: () => snapshot,
2470
+ refresh,
2471
+ runProof,
2472
+ subscribe: (listener) => {
2473
+ listeners.add(listener);
2474
+ return () => {
2475
+ listeners.delete(listener);
2476
+ };
2477
+ }
2478
+ };
2479
+ };
2480
+
2481
+ // src/react/useVoiceCampaignDialerProof.tsx
2482
+ var useVoiceCampaignDialerProof = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2483
+ const storeRef = useRef9(null);
2484
+ if (!storeRef.current) {
2485
+ storeRef.current = createVoiceCampaignDialerProofStore(path, options);
2486
+ }
2487
+ const store = storeRef.current;
2488
+ useEffect9(() => {
2489
+ store.refresh().catch(() => {});
2490
+ return () => store.close();
2491
+ }, [store]);
2492
+ return {
2493
+ ...useSyncExternalStore9(store.subscribe, store.getSnapshot, store.getServerSnapshot),
2494
+ refresh: store.refresh,
2495
+ runProof: store.runProof
2496
+ };
2497
+ };
2498
+ // src/react/useVoiceStream.tsx
2499
+ import { useEffect as useEffect10, useRef as useRef10, useSyncExternalStore as useSyncExternalStore10 } from "react";
2500
+
2363
2501
  // src/client/actions.ts
2364
2502
  var normalizeErrorMessage = (value) => {
2365
2503
  if (typeof value === "string" && value.trim()) {
@@ -2886,13 +3024,13 @@ var EMPTY_SNAPSHOT = {
2886
3024
  turns: []
2887
3025
  };
2888
3026
  var useVoiceStream = (path, options = {}) => {
2889
- const streamRef = useRef9(null);
3027
+ const streamRef = useRef10(null);
2890
3028
  if (!streamRef.current) {
2891
3029
  streamRef.current = createVoiceStream(path, options);
2892
3030
  }
2893
3031
  const stream = streamRef.current;
2894
- useEffect9(() => () => stream.close(), [stream]);
2895
- const snapshot = useSyncExternalStore9(stream.subscribe, stream.getSnapshot, stream.getServerSnapshot) ?? EMPTY_SNAPSHOT;
3032
+ useEffect10(() => () => stream.close(), [stream]);
3033
+ const snapshot = useSyncExternalStore10(stream.subscribe, stream.getSnapshot, stream.getServerSnapshot) ?? EMPTY_SNAPSHOT;
2896
3034
  return {
2897
3035
  ...snapshot,
2898
3036
  callControl: (message) => stream.callControl(message),
@@ -2902,7 +3040,7 @@ var useVoiceStream = (path, options = {}) => {
2902
3040
  };
2903
3041
  };
2904
3042
  // src/react/useVoiceController.tsx
2905
- import { useEffect as useEffect10, useRef as useRef10, useSyncExternalStore as useSyncExternalStore10 } from "react";
3043
+ import { useEffect as useEffect11, useRef as useRef11, useSyncExternalStore as useSyncExternalStore11 } from "react";
2906
3044
 
2907
3045
  // src/client/htmx.ts
2908
3046
  var DEFAULT_EVENT_NAME = "voice-refresh";
@@ -3555,13 +3693,13 @@ var EMPTY_SNAPSHOT2 = {
3555
3693
  turns: []
3556
3694
  };
3557
3695
  var useVoiceController = (path, options = {}) => {
3558
- const controllerRef = useRef10(null);
3696
+ const controllerRef = useRef11(null);
3559
3697
  if (!controllerRef.current) {
3560
3698
  controllerRef.current = createVoiceController(path, options);
3561
3699
  }
3562
3700
  const controller = controllerRef.current;
3563
- useEffect10(() => () => controller.close(), [controller]);
3564
- const snapshot = useSyncExternalStore10(controller.subscribe, controller.getSnapshot, controller.getServerSnapshot) ?? EMPTY_SNAPSHOT2;
3701
+ useEffect11(() => () => controller.close(), [controller]);
3702
+ const snapshot = useSyncExternalStore11(controller.subscribe, controller.getSnapshot, controller.getServerSnapshot) ?? EMPTY_SNAPSHOT2;
3565
3703
  return {
3566
3704
  ...snapshot,
3567
3705
  bindHTMX: controller.bindHTMX,
@@ -3575,7 +3713,7 @@ var useVoiceController = (path, options = {}) => {
3575
3713
  };
3576
3714
  };
3577
3715
  // src/react/useVoiceWorkflowStatus.tsx
3578
- import { useEffect as useEffect11, useRef as useRef11, useSyncExternalStore as useSyncExternalStore11 } from "react";
3716
+ import { useEffect as useEffect12, useRef as useRef12, useSyncExternalStore as useSyncExternalStore12 } from "react";
3579
3717
 
3580
3718
  // src/client/workflowStatus.ts
3581
3719
  var fetchVoiceWorkflowStatus = async (path = "/evals/scenarios/json", options = {}) => {
@@ -3658,17 +3796,17 @@ var createVoiceWorkflowStatusStore = (path = "/evals/scenarios/json", options =
3658
3796
 
3659
3797
  // src/react/useVoiceWorkflowStatus.tsx
3660
3798
  var useVoiceWorkflowStatus = (path = "/evals/scenarios/json", options = {}) => {
3661
- const storeRef = useRef11(null);
3799
+ const storeRef = useRef12(null);
3662
3800
  if (!storeRef.current) {
3663
3801
  storeRef.current = createVoiceWorkflowStatusStore(path, options);
3664
3802
  }
3665
3803
  const store = storeRef.current;
3666
- useEffect11(() => {
3804
+ useEffect12(() => {
3667
3805
  store.refresh().catch(() => {});
3668
3806
  return () => store.close();
3669
3807
  }, [store]);
3670
3808
  return {
3671
- ...useSyncExternalStore11(store.subscribe, store.getSnapshot, store.getServerSnapshot),
3809
+ ...useSyncExternalStore12(store.subscribe, store.getSnapshot, store.getServerSnapshot),
3672
3810
  refresh: store.refresh
3673
3811
  };
3674
3812
  };
@@ -3683,6 +3821,7 @@ export {
3683
3821
  useVoiceProviderSimulationControls,
3684
3822
  useVoiceProviderCapabilities,
3685
3823
  useVoiceController,
3824
+ useVoiceCampaignDialerProof,
3686
3825
  useVoiceAppKitStatus,
3687
3826
  VoiceTurnQuality,
3688
3827
  VoiceTurnLatency,
@@ -0,0 +1,10 @@
1
+ import { type VoiceCampaignDialerProofClientOptions } from '../client/campaignDialerProof';
2
+ export declare const useVoiceCampaignDialerProof: (path?: string, options?: VoiceCampaignDialerProofClientOptions) => {
3
+ refresh: () => Promise<import("..").VoiceCampaignDialerProofStatus | undefined>;
4
+ runProof: () => Promise<import("..").VoiceCampaignDialerProofReport>;
5
+ error: string | null;
6
+ isLoading: boolean;
7
+ report?: import("..").VoiceCampaignDialerProofReport;
8
+ status?: import("..").VoiceCampaignDialerProofStatus;
9
+ updatedAt?: number;
10
+ };
@@ -0,0 +1,9 @@
1
+ import type { VoiceCampaignDialerProofClientOptions } from '../client/campaignDialerProof';
2
+ export declare const createVoiceCampaignDialerProof: (path?: string, options?: VoiceCampaignDialerProofClientOptions) => {
3
+ close: () => void;
4
+ getServerSnapshot: () => import("../client").VoiceCampaignDialerProofSnapshot;
5
+ getSnapshot: () => import("../client").VoiceCampaignDialerProofSnapshot;
6
+ refresh: () => Promise<import("..").VoiceCampaignDialerProofStatus | undefined>;
7
+ runProof: () => Promise<import("..").VoiceCampaignDialerProofReport>;
8
+ subscribe: (listener: () => void) => () => void;
9
+ };
@@ -1,4 +1,5 @@
1
1
  export { createVoiceAppKitStatus } from './createVoiceAppKitStatus';
2
+ export { createVoiceCampaignDialerProof } from './createVoiceCampaignDialerProof';
2
3
  export { createVoiceOpsStatus } from './createVoiceOpsStatus';
3
4
  export { createVoiceProviderSimulationControls } from './createVoiceProviderSimulationControls';
4
5
  export { createVoiceProviderCapabilities } from './createVoiceProviderCapabilities';
@@ -150,6 +150,126 @@ var createVoiceAppKitStatusStore = (path = "/app-kit/status", options = {}) => {
150
150
 
151
151
  // src/svelte/createVoiceAppKitStatus.ts
152
152
  var createVoiceAppKitStatus = (path = "/app-kit/status", options = {}) => createVoiceAppKitStatusStore(path, options);
153
+ // src/client/campaignDialerProof.ts
154
+ var fetchVoiceCampaignDialerProofStatus = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
155
+ const fetchImpl = options.fetch ?? globalThis.fetch;
156
+ const response = await fetchImpl(path);
157
+ if (!response.ok) {
158
+ throw new Error(`Voice campaign dialer proof status failed: HTTP ${response.status}`);
159
+ }
160
+ return await response.json();
161
+ };
162
+ var runVoiceCampaignDialerProofAction = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
163
+ const fetchImpl = options.fetch ?? globalThis.fetch;
164
+ const response = await fetchImpl(path, { method: "POST" });
165
+ if (!response.ok) {
166
+ throw new Error(`Voice campaign dialer proof failed: HTTP ${response.status}`);
167
+ }
168
+ return await response.json();
169
+ };
170
+ var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
171
+ const listeners = new Set;
172
+ let closed = false;
173
+ let timer;
174
+ let snapshot = {
175
+ error: null,
176
+ isLoading: false
177
+ };
178
+ const emit = () => {
179
+ for (const listener of listeners) {
180
+ listener();
181
+ }
182
+ };
183
+ const refresh = async () => {
184
+ if (closed) {
185
+ return snapshot.status;
186
+ }
187
+ snapshot = { ...snapshot, error: null, isLoading: true };
188
+ emit();
189
+ try {
190
+ const status = await fetchVoiceCampaignDialerProofStatus(path, options);
191
+ snapshot = {
192
+ ...snapshot,
193
+ error: null,
194
+ isLoading: false,
195
+ status,
196
+ updatedAt: Date.now()
197
+ };
198
+ emit();
199
+ return status;
200
+ } catch (error) {
201
+ snapshot = {
202
+ ...snapshot,
203
+ error: error instanceof Error ? error.message : String(error),
204
+ isLoading: false
205
+ };
206
+ emit();
207
+ throw error;
208
+ }
209
+ };
210
+ const runProof = async () => {
211
+ const runPath = options.runPath ?? snapshot.status?.runPath ?? path;
212
+ snapshot = { ...snapshot, error: null, isLoading: true };
213
+ emit();
214
+ try {
215
+ const report = await runVoiceCampaignDialerProofAction(runPath, options);
216
+ snapshot = {
217
+ ...snapshot,
218
+ error: null,
219
+ isLoading: false,
220
+ report,
221
+ status: {
222
+ generatedAt: Date.now(),
223
+ mode: report.mode,
224
+ ok: report.ok,
225
+ providers: report.providers.map((provider) => provider.provider),
226
+ runPath,
227
+ safe: true
228
+ },
229
+ updatedAt: Date.now()
230
+ };
231
+ emit();
232
+ return report;
233
+ } catch (error) {
234
+ snapshot = {
235
+ ...snapshot,
236
+ error: error instanceof Error ? error.message : String(error),
237
+ isLoading: false
238
+ };
239
+ emit();
240
+ throw error;
241
+ }
242
+ };
243
+ const close = () => {
244
+ closed = true;
245
+ if (timer) {
246
+ clearInterval(timer);
247
+ timer = undefined;
248
+ }
249
+ listeners.clear();
250
+ };
251
+ if (options.intervalMs && options.intervalMs > 0) {
252
+ timer = setInterval(() => {
253
+ refresh().catch(() => {});
254
+ }, options.intervalMs);
255
+ }
256
+ return {
257
+ close,
258
+ getServerSnapshot: () => snapshot,
259
+ getSnapshot: () => snapshot,
260
+ refresh,
261
+ runProof,
262
+ subscribe: (listener) => {
263
+ listeners.add(listener);
264
+ return () => {
265
+ listeners.delete(listener);
266
+ };
267
+ }
268
+ };
269
+ };
270
+
271
+ // src/svelte/createVoiceCampaignDialerProof.ts
272
+ var createVoiceCampaignDialerProof = (path = "/api/voice/campaigns/dialer-proof", options = {}) => createVoiceCampaignDialerProofStore(path, options);
153
273
  // src/client/opsStatusWidget.ts
154
274
  var DEFAULT_TITLE = "Voice Ops Status";
155
275
  var DEFAULT_DESCRIPTION = "Certified workflow, provider, and handoff readiness from the AbsoluteJS voice app kit.";
@@ -2897,5 +3017,6 @@ export {
2897
3017
  createVoiceProviderCapabilities,
2898
3018
  createVoiceOpsStatus,
2899
3019
  createVoiceController,
3020
+ createVoiceCampaignDialerProof,
2900
3021
  createVoiceAppKitStatus
2901
3022
  };
@@ -6,6 +6,7 @@ export { VoiceRoutingStatus } from './VoiceRoutingStatus';
6
6
  export { VoiceTurnLatency } from './VoiceTurnLatency';
7
7
  export { VoiceTurnQuality } from './VoiceTurnQuality';
8
8
  export { useVoiceAppKitStatus } from './useVoiceAppKitStatus';
9
+ export { useVoiceCampaignDialerProof } from './useVoiceCampaignDialerProof';
9
10
  export { useVoiceStream } from './useVoiceStream';
10
11
  export { useVoiceController } from './useVoiceController';
11
12
  export { useVoiceProviderStatus } from './useVoiceProviderStatus';
package/dist/vue/index.js CHANGED
@@ -2110,8 +2110,162 @@ var VoiceTurnQuality = defineComponent7({
2110
2110
  ]);
2111
2111
  }
2112
2112
  });
2113
+ // src/vue/useVoiceCampaignDialerProof.ts
2114
+ import { onUnmounted as onUnmounted8, shallowRef as shallowRef7 } from "vue";
2115
+
2116
+ // src/client/campaignDialerProof.ts
2117
+ var fetchVoiceCampaignDialerProofStatus = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2118
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2119
+ const response = await fetchImpl(path);
2120
+ if (!response.ok) {
2121
+ throw new Error(`Voice campaign dialer proof status failed: HTTP ${response.status}`);
2122
+ }
2123
+ return await response.json();
2124
+ };
2125
+ var runVoiceCampaignDialerProofAction = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2126
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2127
+ const response = await fetchImpl(path, { method: "POST" });
2128
+ if (!response.ok) {
2129
+ throw new Error(`Voice campaign dialer proof failed: HTTP ${response.status}`);
2130
+ }
2131
+ return await response.json();
2132
+ };
2133
+ var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2134
+ const listeners = new Set;
2135
+ let closed = false;
2136
+ let timer;
2137
+ let snapshot = {
2138
+ error: null,
2139
+ isLoading: false
2140
+ };
2141
+ const emit = () => {
2142
+ for (const listener of listeners) {
2143
+ listener();
2144
+ }
2145
+ };
2146
+ const refresh = async () => {
2147
+ if (closed) {
2148
+ return snapshot.status;
2149
+ }
2150
+ snapshot = { ...snapshot, error: null, isLoading: true };
2151
+ emit();
2152
+ try {
2153
+ const status = await fetchVoiceCampaignDialerProofStatus(path, options);
2154
+ snapshot = {
2155
+ ...snapshot,
2156
+ error: null,
2157
+ isLoading: false,
2158
+ status,
2159
+ updatedAt: Date.now()
2160
+ };
2161
+ emit();
2162
+ return status;
2163
+ } catch (error) {
2164
+ snapshot = {
2165
+ ...snapshot,
2166
+ error: error instanceof Error ? error.message : String(error),
2167
+ isLoading: false
2168
+ };
2169
+ emit();
2170
+ throw error;
2171
+ }
2172
+ };
2173
+ const runProof = async () => {
2174
+ const runPath = options.runPath ?? snapshot.status?.runPath ?? path;
2175
+ snapshot = { ...snapshot, error: null, isLoading: true };
2176
+ emit();
2177
+ try {
2178
+ const report = await runVoiceCampaignDialerProofAction(runPath, options);
2179
+ snapshot = {
2180
+ ...snapshot,
2181
+ error: null,
2182
+ isLoading: false,
2183
+ report,
2184
+ status: {
2185
+ generatedAt: Date.now(),
2186
+ mode: report.mode,
2187
+ ok: report.ok,
2188
+ providers: report.providers.map((provider) => provider.provider),
2189
+ runPath,
2190
+ safe: true
2191
+ },
2192
+ updatedAt: Date.now()
2193
+ };
2194
+ emit();
2195
+ return report;
2196
+ } catch (error) {
2197
+ snapshot = {
2198
+ ...snapshot,
2199
+ error: error instanceof Error ? error.message : String(error),
2200
+ isLoading: false
2201
+ };
2202
+ emit();
2203
+ throw error;
2204
+ }
2205
+ };
2206
+ const close = () => {
2207
+ closed = true;
2208
+ if (timer) {
2209
+ clearInterval(timer);
2210
+ timer = undefined;
2211
+ }
2212
+ listeners.clear();
2213
+ };
2214
+ if (options.intervalMs && options.intervalMs > 0) {
2215
+ timer = setInterval(() => {
2216
+ refresh().catch(() => {});
2217
+ }, options.intervalMs);
2218
+ }
2219
+ return {
2220
+ close,
2221
+ getServerSnapshot: () => snapshot,
2222
+ getSnapshot: () => snapshot,
2223
+ refresh,
2224
+ runProof,
2225
+ subscribe: (listener) => {
2226
+ listeners.add(listener);
2227
+ return () => {
2228
+ listeners.delete(listener);
2229
+ };
2230
+ }
2231
+ };
2232
+ };
2233
+
2234
+ // src/vue/useVoiceCampaignDialerProof.ts
2235
+ var useVoiceCampaignDialerProof = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
2236
+ const store = createVoiceCampaignDialerProofStore(path, options);
2237
+ const error = shallowRef7(null);
2238
+ const isLoading = shallowRef7(false);
2239
+ const report = shallowRef7();
2240
+ const status = shallowRef7();
2241
+ const updatedAt = shallowRef7(undefined);
2242
+ const sync = () => {
2243
+ const snapshot = store.getSnapshot();
2244
+ error.value = snapshot.error;
2245
+ isLoading.value = snapshot.isLoading;
2246
+ report.value = snapshot.report;
2247
+ status.value = snapshot.status;
2248
+ updatedAt.value = snapshot.updatedAt;
2249
+ };
2250
+ const unsubscribe = store.subscribe(sync);
2251
+ sync();
2252
+ store.refresh().catch(() => {});
2253
+ onUnmounted8(() => {
2254
+ unsubscribe();
2255
+ store.close();
2256
+ });
2257
+ return {
2258
+ error,
2259
+ isLoading,
2260
+ refresh: store.refresh,
2261
+ report,
2262
+ runProof: store.runProof,
2263
+ status,
2264
+ updatedAt
2265
+ };
2266
+ };
2113
2267
  // src/vue/useVoiceStream.ts
2114
- import { onUnmounted as onUnmounted8, ref as ref5, shallowRef as shallowRef7 } from "vue";
2268
+ import { onUnmounted as onUnmounted9, ref as ref5, shallowRef as shallowRef8 } from "vue";
2115
2269
 
2116
2270
  // src/client/actions.ts
2117
2271
  var normalizeErrorMessage = (value) => {
@@ -2629,15 +2783,15 @@ var createVoiceStream = (path, options = {}) => {
2629
2783
  // src/vue/useVoiceStream.ts
2630
2784
  var useVoiceStream = (path, options = {}) => {
2631
2785
  const stream = createVoiceStream(path, options);
2632
- const assistantAudio = shallowRef7([]);
2633
- const assistantTexts = shallowRef7([]);
2634
- const call = shallowRef7(null);
2786
+ const assistantAudio = shallowRef8([]);
2787
+ const assistantTexts = shallowRef8([]);
2788
+ const call = shallowRef8(null);
2635
2789
  const error = ref5(null);
2636
2790
  const isConnected = ref5(false);
2637
2791
  const partial = ref5("");
2638
2792
  const sessionId = ref5(stream.sessionId);
2639
2793
  const status = ref5(stream.status);
2640
- const turns = shallowRef7([]);
2794
+ const turns = shallowRef8([]);
2641
2795
  const sync = () => {
2642
2796
  assistantAudio.value = [...stream.assistantAudio];
2643
2797
  assistantTexts.value = [...stream.assistantTexts];
@@ -2655,7 +2809,7 @@ var useVoiceStream = (path, options = {}) => {
2655
2809
  unsubscribe();
2656
2810
  stream.close();
2657
2811
  };
2658
- onUnmounted8(destroy);
2812
+ onUnmounted9(destroy);
2659
2813
  return {
2660
2814
  assistantAudio,
2661
2815
  assistantTexts,
@@ -2673,7 +2827,7 @@ var useVoiceStream = (path, options = {}) => {
2673
2827
  };
2674
2828
  };
2675
2829
  // src/vue/useVoiceController.ts
2676
- import { onUnmounted as onUnmounted9, ref as ref6, shallowRef as shallowRef8 } from "vue";
2830
+ import { onUnmounted as onUnmounted10, ref as ref6, shallowRef as shallowRef9 } from "vue";
2677
2831
 
2678
2832
  // src/client/htmx.ts
2679
2833
  var DEFAULT_EVENT_NAME = "voice-refresh";
@@ -3314,8 +3468,8 @@ var createVoiceController = (path, options = {}) => {
3314
3468
  // src/vue/useVoiceController.ts
3315
3469
  var useVoiceController = (path, options = {}) => {
3316
3470
  const controller = createVoiceController(path, options);
3317
- const assistantAudio = shallowRef8([]);
3318
- const assistantTexts = shallowRef8([]);
3471
+ const assistantAudio = shallowRef9([]);
3472
+ const assistantTexts = shallowRef9([]);
3319
3473
  const error = ref6(null);
3320
3474
  const isConnected = ref6(false);
3321
3475
  const isRecording = ref6(false);
@@ -3323,7 +3477,7 @@ var useVoiceController = (path, options = {}) => {
3323
3477
  const recordingError = ref6(null);
3324
3478
  const sessionId = ref6(controller.sessionId);
3325
3479
  const status = ref6(controller.status);
3326
- const turns = shallowRef8([]);
3480
+ const turns = shallowRef9([]);
3327
3481
  const sync = () => {
3328
3482
  assistantAudio.value = [...controller.assistantAudio];
3329
3483
  assistantTexts.value = [...controller.assistantTexts];
@@ -3342,7 +3496,7 @@ var useVoiceController = (path, options = {}) => {
3342
3496
  unsubscribe();
3343
3497
  controller.close();
3344
3498
  };
3345
- onUnmounted9(destroy);
3499
+ onUnmounted10(destroy);
3346
3500
  return {
3347
3501
  assistantAudio,
3348
3502
  assistantTexts,
@@ -3364,7 +3518,7 @@ var useVoiceController = (path, options = {}) => {
3364
3518
  };
3365
3519
  };
3366
3520
  // src/vue/useVoiceTraceTimeline.ts
3367
- import { onUnmounted as onUnmounted10, ref as ref7, shallowRef as shallowRef9 } from "vue";
3521
+ import { onUnmounted as onUnmounted11, ref as ref7, shallowRef as shallowRef10 } from "vue";
3368
3522
 
3369
3523
  // src/client/traceTimeline.ts
3370
3524
  var fetchVoiceTraceTimeline = async (path = "/api/voice-traces", options = {}) => {
@@ -3451,7 +3605,7 @@ var useVoiceTraceTimeline = (path = "/api/voice-traces", options = {}) => {
3451
3605
  const store = createVoiceTraceTimelineStore(path, options);
3452
3606
  const error = ref7(null);
3453
3607
  const isLoading = ref7(false);
3454
- const report = shallowRef9(null);
3608
+ const report = shallowRef10(null);
3455
3609
  const updatedAt = ref7(undefined);
3456
3610
  const sync = () => {
3457
3611
  const snapshot = store.getSnapshot();
@@ -3463,7 +3617,7 @@ var useVoiceTraceTimeline = (path = "/api/voice-traces", options = {}) => {
3463
3617
  const unsubscribe = store.subscribe(sync);
3464
3618
  sync();
3465
3619
  store.refresh().catch(() => {});
3466
- onUnmounted10(() => {
3620
+ onUnmounted11(() => {
3467
3621
  unsubscribe();
3468
3622
  store.close();
3469
3623
  });
@@ -3476,7 +3630,7 @@ var useVoiceTraceTimeline = (path = "/api/voice-traces", options = {}) => {
3476
3630
  };
3477
3631
  };
3478
3632
  // src/vue/useVoiceWorkflowStatus.ts
3479
- import { onUnmounted as onUnmounted11, ref as ref8, shallowRef as shallowRef10 } from "vue";
3633
+ import { onUnmounted as onUnmounted12, ref as ref8, shallowRef as shallowRef11 } from "vue";
3480
3634
 
3481
3635
  // src/client/workflowStatus.ts
3482
3636
  var fetchVoiceWorkflowStatus = async (path = "/evals/scenarios/json", options = {}) => {
@@ -3562,7 +3716,7 @@ var useVoiceWorkflowStatus = (path = "/evals/scenarios/json", options = {}) => {
3562
3716
  const store = createVoiceWorkflowStatusStore(path, options);
3563
3717
  const error = ref8(null);
3564
3718
  const isLoading = ref8(false);
3565
- const report = shallowRef10(undefined);
3719
+ const report = shallowRef11(undefined);
3566
3720
  const updatedAt = ref8(undefined);
3567
3721
  const sync = () => {
3568
3722
  const snapshot = store.getSnapshot();
@@ -3576,7 +3730,7 @@ var useVoiceWorkflowStatus = (path = "/evals/scenarios/json", options = {}) => {
3576
3730
  if (typeof window !== "undefined") {
3577
3731
  store.refresh().catch(() => {});
3578
3732
  }
3579
- onUnmounted11(() => {
3733
+ onUnmounted12(() => {
3580
3734
  unsubscribe();
3581
3735
  store.close();
3582
3736
  });
@@ -3599,6 +3753,7 @@ export {
3599
3753
  useVoiceProviderSimulationControls,
3600
3754
  useVoiceProviderCapabilities,
3601
3755
  useVoiceController,
3756
+ useVoiceCampaignDialerProof,
3602
3757
  useVoiceAppKitStatus,
3603
3758
  VoiceTurnQuality,
3604
3759
  VoiceTurnLatency,