@absolutejs/voice 0.0.22-beta.534 → 0.0.22-beta.535

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 (223) hide show
  1. package/dist/angular/index.js +347 -347
  2. package/dist/angular/voice-cost-dashboard.service.d.ts +1 -1
  3. package/dist/angular/voice-replay-timeline.service.d.ts +1 -1
  4. package/dist/client/agentSquadStatusWidget.d.ts +3 -3
  5. package/dist/client/browserVoiceSupport.d.ts +1 -1
  6. package/dist/client/callDebugger.d.ts +2 -2
  7. package/dist/client/callDebuggerWidget.d.ts +3 -3
  8. package/dist/client/campaignDialerProof.d.ts +4 -4
  9. package/dist/client/deliveryRuntime.d.ts +4 -4
  10. package/dist/client/deliveryRuntimeWidget.d.ts +3 -3
  11. package/dist/client/htmxAttributes.d.ts +1 -5
  12. package/dist/client/htmxBootstrap.js +82 -82
  13. package/dist/client/htmxDashboardRenderers.d.ts +17 -17
  14. package/dist/client/index.js +2478 -2484
  15. package/dist/client/liveOps.d.ts +2 -2
  16. package/dist/client/liveOpsWidget.d.ts +3 -3
  17. package/dist/client/opsActionCenter.d.ts +3 -3
  18. package/dist/client/opsActionCenterWidget.d.ts +3 -3
  19. package/dist/client/opsActionHistory.d.ts +2 -2
  20. package/dist/client/opsActionHistoryWidget.d.ts +2 -2
  21. package/dist/client/opsStatus.d.ts +2 -2
  22. package/dist/client/opsStatusWidget.d.ts +4 -4
  23. package/dist/client/platformCoverage.d.ts +2 -2
  24. package/dist/client/platformCoverageWidget.d.ts +3 -3
  25. package/dist/client/profileComparison.d.ts +2 -2
  26. package/dist/client/profileComparisonWidget.d.ts +3 -3
  27. package/dist/client/profileSwitchRecommendation.d.ts +2 -2
  28. package/dist/client/profileSwitchRecommendationWidget.d.ts +3 -3
  29. package/dist/client/proofTrends.d.ts +2 -2
  30. package/dist/client/proofTrendsWidget.d.ts +3 -3
  31. package/dist/client/providerCapabilities.d.ts +2 -2
  32. package/dist/client/providerCapabilitiesWidget.d.ts +3 -3
  33. package/dist/client/providerContracts.d.ts +2 -2
  34. package/dist/client/providerContractsWidget.d.ts +3 -3
  35. package/dist/client/providerSimulationControls.d.ts +1 -1
  36. package/dist/client/providerSimulationControlsWidget.d.ts +4 -4
  37. package/dist/client/providerStatus.d.ts +2 -2
  38. package/dist/client/providerStatusWidget.d.ts +3 -3
  39. package/dist/client/readinessFailures.d.ts +2 -2
  40. package/dist/client/readinessFailuresWidget.d.ts +3 -3
  41. package/dist/client/reconnectProfileEvidence.d.ts +2 -2
  42. package/dist/client/reconnectProfileEvidenceWidget.d.ts +3 -3
  43. package/dist/client/routingStatus.d.ts +2 -2
  44. package/dist/client/routingStatusWidget.d.ts +3 -3
  45. package/dist/client/sessionObservability.d.ts +2 -2
  46. package/dist/client/sessionObservabilityWidget.d.ts +3 -3
  47. package/dist/client/sessionSnapshot.d.ts +2 -2
  48. package/dist/client/sessionSnapshotWidget.d.ts +2 -2
  49. package/dist/client/traceTimeline.d.ts +2 -2
  50. package/dist/client/traceTimelineWidget.d.ts +3 -3
  51. package/dist/client/turnLatency.d.ts +4 -4
  52. package/dist/client/turnLatencyWidget.d.ts +3 -3
  53. package/dist/client/turnQuality.d.ts +2 -2
  54. package/dist/client/turnQualityWidget.d.ts +3 -3
  55. package/dist/client/workflowStatus.d.ts +2 -2
  56. package/dist/core/agent.d.ts +1 -1
  57. package/dist/core/agentSquadContract.d.ts +2 -2
  58. package/dist/core/agentState.d.ts +1 -1
  59. package/dist/core/aiScorecard.d.ts +1 -1
  60. package/dist/core/assistant.d.ts +1 -1
  61. package/dist/core/assistantHealth.d.ts +3 -3
  62. package/dist/core/assistantMemory.d.ts +7 -7
  63. package/dist/core/audioConditioning.d.ts +1 -1
  64. package/dist/core/audit.d.ts +6 -6
  65. package/dist/core/auditDeliveryRoutes.d.ts +7 -7
  66. package/dist/core/auditExport.d.ts +10 -10
  67. package/dist/core/auditRoutes.d.ts +5 -5
  68. package/dist/core/auditSinks.d.ts +7 -7
  69. package/dist/core/bargeInRoutes.d.ts +6 -6
  70. package/dist/core/bookingFlow.d.ts +1 -1
  71. package/dist/core/browserCallProfiles.d.ts +3 -3
  72. package/dist/core/browserMediaRoutes.d.ts +5 -5
  73. package/dist/core/callDebugger.d.ts +1 -1
  74. package/dist/core/callDisposition.d.ts +1 -1
  75. package/dist/core/callScorecard.d.ts +1 -1
  76. package/dist/core/campaign.d.ts +5 -5
  77. package/dist/core/campaignControls.d.ts +1 -1
  78. package/dist/core/campaignDialers.d.ts +4 -4
  79. package/dist/core/campaignTemplate.d.ts +1 -1
  80. package/dist/core/competitiveCoverage.d.ts +2 -2
  81. package/dist/core/conversationSimulator.d.ts +1 -1
  82. package/dist/core/correction.d.ts +1 -1
  83. package/dist/core/dataControl.d.ts +5 -5
  84. package/dist/core/deliveryRuntime.d.ts +7 -7
  85. package/dist/core/deliverySinkRoutes.d.ts +7 -7
  86. package/dist/core/demoReadyRoutes.d.ts +1 -1
  87. package/dist/core/dncRegistry.d.ts +1 -1
  88. package/dist/core/dtmfCollector.d.ts +1 -1
  89. package/dist/core/evalRoutes.d.ts +16 -16
  90. package/dist/core/fileStore.d.ts +18 -18
  91. package/dist/core/guardrails.d.ts +2 -2
  92. package/dist/core/handoff.d.ts +4 -4
  93. package/dist/core/handoffHealth.d.ts +4 -4
  94. package/dist/core/htmx.d.ts +1 -1
  95. package/dist/core/incidentBundle.d.ts +1 -1
  96. package/dist/core/incidentTimeline.d.ts +11 -11
  97. package/dist/core/latencySlo.d.ts +1 -1
  98. package/dist/core/liveCoach.d.ts +1 -1
  99. package/dist/core/liveLatency.d.ts +3 -3
  100. package/dist/core/liveOps.d.ts +6 -6
  101. package/dist/core/mediaPipelineRoutes.d.ts +4 -4
  102. package/dist/core/monitor.d.ts +1 -1
  103. package/dist/core/multilingualProof.d.ts +1 -1
  104. package/dist/core/observabilityExport.d.ts +15 -15
  105. package/dist/core/operationalStatus.d.ts +3 -3
  106. package/dist/core/operationsRecord.d.ts +8 -8
  107. package/dist/core/ops.d.ts +58 -58
  108. package/dist/core/opsActionAuditRoutes.d.ts +10 -10
  109. package/dist/core/opsConsoleRoutes.d.ts +3 -3
  110. package/dist/core/opsRecovery.d.ts +4 -4
  111. package/dist/core/opsSinks.d.ts +6 -6
  112. package/dist/core/opsStatusRoutes.d.ts +3 -3
  113. package/dist/core/opsWebhook.d.ts +9 -9
  114. package/dist/core/otelExporter.d.ts +1 -1
  115. package/dist/core/outcomeContract.d.ts +6 -6
  116. package/dist/core/pathway.d.ts +2 -2
  117. package/dist/core/pathwayRuntime.d.ts +2 -2
  118. package/dist/core/phoneAgent.d.ts +2 -2
  119. package/dist/core/phoneAgentProductionSmoke.d.ts +7 -7
  120. package/dist/core/platformCoverage.d.ts +1 -1
  121. package/dist/core/postCallSurvey.d.ts +1 -1
  122. package/dist/core/postgresStore.d.ts +8 -8
  123. package/dist/core/productionReadiness.d.ts +9 -9
  124. package/dist/core/profileSwitchRecommendation.d.ts +9 -9
  125. package/dist/core/proofAssertions.d.ts +1 -1
  126. package/dist/core/proofPack.d.ts +12 -12
  127. package/dist/core/proofRunner.d.ts +2 -2
  128. package/dist/core/proofTrends.d.ts +26 -26
  129. package/dist/core/providerCapabilities.d.ts +5 -5
  130. package/dist/core/providerDecisionTraces.d.ts +4 -4
  131. package/dist/core/providerHealth.d.ts +3 -3
  132. package/dist/core/providerOrchestration.d.ts +4 -4
  133. package/dist/core/providerRouterTraces.d.ts +2 -2
  134. package/dist/core/providerRoutingContract.d.ts +2 -2
  135. package/dist/core/providerSlo.d.ts +5 -5
  136. package/dist/core/providerStackRecommendations.d.ts +8 -8
  137. package/dist/core/qualityRoutes.d.ts +3 -3
  138. package/dist/core/queue.d.ts +26 -26
  139. package/dist/core/realtimeChannel.d.ts +5 -5
  140. package/dist/core/realtimeProviderContracts.d.ts +3 -3
  141. package/dist/core/reconnectContract.d.ts +16 -16
  142. package/dist/core/recordingStore.d.ts +2 -2
  143. package/dist/core/reminderScheduler.d.ts +1 -1
  144. package/dist/core/resilienceRoutes.d.ts +1 -1
  145. package/dist/core/routing.d.ts +1 -1
  146. package/dist/core/sessionObservability.d.ts +2 -2
  147. package/dist/core/sessionReplay.d.ts +12 -12
  148. package/dist/core/sessionSnapshot.d.ts +1 -1
  149. package/dist/core/simulationSuite.d.ts +4 -4
  150. package/dist/core/sloCalibration.d.ts +12 -12
  151. package/dist/core/sqliteStore.d.ts +8 -8
  152. package/dist/core/telephonyMediaRoutes.d.ts +4 -4
  153. package/dist/core/telephonyOutcome.d.ts +2 -2
  154. package/dist/core/toolContract.d.ts +10 -10
  155. package/dist/core/toolRuntime.d.ts +1 -1
  156. package/dist/core/trace.d.ts +18 -18
  157. package/dist/core/traceDeliveryRoutes.d.ts +7 -7
  158. package/dist/core/traceTimeline.d.ts +3 -3
  159. package/dist/core/turnLatency.d.ts +4 -4
  160. package/dist/core/turnQuality.d.ts +5 -5
  161. package/dist/core/types.d.ts +7 -2
  162. package/dist/core/voiceMonitoring.d.ts +11 -11
  163. package/dist/core/webhookVerification.d.ts +4 -4
  164. package/dist/core/whisperChannel.d.ts +4 -4
  165. package/dist/core/workflowContract.d.ts +13 -13
  166. package/dist/core/zeroDataRetention.d.ts +3 -13
  167. package/dist/drizzle/assistantMemory.d.ts +95 -0
  168. package/dist/drizzle/eval.d.ts +61 -0
  169. package/dist/drizzle/handoff.d.ts +62 -0
  170. package/dist/drizzle/index.d.ts +1029 -0
  171. package/dist/drizzle/index.js +3028 -0
  172. package/dist/drizzle/observabilityExport.d.ts +61 -0
  173. package/dist/drizzle/proofTrends.d.ts +126 -0
  174. package/dist/drizzle/runtimeStorage.d.ts +1311 -0
  175. package/dist/drizzle/shared.d.ts +75 -0
  176. package/dist/embed/index.js +72 -72
  177. package/dist/embed/voice-widget.js +2 -2
  178. package/dist/index.js +7034 -7101
  179. package/dist/react/index.js +2148 -2150
  180. package/dist/svelte/createVoiceAgentSquadStatus.d.ts +2 -2
  181. package/dist/svelte/createVoiceCallDebugger.d.ts +1 -1
  182. package/dist/svelte/createVoiceCallPlayer.d.ts +8 -8
  183. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +2 -2
  184. package/dist/svelte/createVoiceCostDashboard.d.ts +4 -4
  185. package/dist/svelte/createVoiceDeliveryRuntime.d.ts +3 -3
  186. package/dist/svelte/createVoiceLiveAgentConsole.d.ts +4 -4
  187. package/dist/svelte/createVoiceLiveOps.d.ts +4 -4
  188. package/dist/svelte/createVoiceOpsActionCenter.d.ts +2 -2
  189. package/dist/svelte/createVoiceOpsStatus.d.ts +2 -2
  190. package/dist/svelte/createVoiceProviderCapabilities.d.ts +1 -1
  191. package/dist/svelte/createVoiceProviderContracts.d.ts +1 -1
  192. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +1 -1
  193. package/dist/svelte/createVoiceProviderStatus.d.ts +1 -1
  194. package/dist/svelte/createVoiceReplayTimeline.d.ts +1 -1
  195. package/dist/svelte/createVoiceRoutingStatus.d.ts +1 -1
  196. package/dist/svelte/createVoiceSessionObservability.d.ts +1 -1
  197. package/dist/svelte/createVoiceSessionSnapshot.d.ts +1 -1
  198. package/dist/svelte/createVoiceTraceTimeline.d.ts +1 -1
  199. package/dist/svelte/createVoiceTurnLatency.d.ts +2 -2
  200. package/dist/svelte/createVoiceTurnQuality.d.ts +1 -1
  201. package/dist/svelte/createVoiceWidget.d.ts +2 -2
  202. package/dist/svelte/createVoiceWorkflowStatus.d.ts +1 -1
  203. package/dist/svelte/index.js +1518 -1522
  204. package/dist/telephony/matrix.d.ts +3 -3
  205. package/dist/telephony/plivo.d.ts +2 -2
  206. package/dist/telephony/security.d.ts +3 -3
  207. package/dist/telephony/telnyx.d.ts +1 -1
  208. package/dist/telephony/twilio.d.ts +2 -2
  209. package/dist/testing/benchmark.d.ts +6 -6
  210. package/dist/testing/corrected.d.ts +4 -4
  211. package/dist/testing/duplex.d.ts +2 -2
  212. package/dist/testing/fixtures.d.ts +1 -1
  213. package/dist/testing/index.js +1382 -1388
  214. package/dist/testing/review.d.ts +4 -4
  215. package/dist/testing/sessionBenchmark.d.ts +10 -10
  216. package/dist/testing/telephony.d.ts +3 -3
  217. package/dist/testing/tts.d.ts +1 -1
  218. package/dist/vue/VoiceCostDashboard.d.ts +2 -2
  219. package/dist/vue/index.js +2110 -2112
  220. package/dist/vue/useVoiceController.d.ts +5 -5
  221. package/dist/vue/useVoiceDeliveryRuntime.d.ts +1 -1
  222. package/dist/vue/useVoiceStream.d.ts +5 -5
  223. package/package.json +28 -6
@@ -87,14 +87,6 @@ var __require = import.meta.require;
87
87
  import { computed, Injectable, signal } from "@angular/core";
88
88
 
89
89
  // src/client/opsStatus.ts
90
- var fetchVoiceOpsStatus = async (path = "/api/voice/ops-status", options = {}) => {
91
- const fetchImpl = options.fetch ?? globalThis.fetch;
92
- const response = await fetchImpl(path);
93
- if (!response.ok) {
94
- throw new Error(`Voice ops status failed: HTTP ${response.status}`);
95
- }
96
- return await response.json();
97
- };
98
90
  var createVoiceOpsStatusStore = (path = "/api/voice/ops-status", options = {}) => {
99
91
  const listeners = new Set;
100
92
  let closed = false;
@@ -153,9 +145,9 @@ var createVoiceOpsStatusStore = (path = "/api/voice/ops-status", options = {}) =
153
145
  }
154
146
  return {
155
147
  close,
148
+ refresh,
156
149
  getServerSnapshot: () => snapshot,
157
150
  getSnapshot: () => snapshot,
158
- refresh,
159
151
  subscribe: (listener) => {
160
152
  listeners.add(listener);
161
153
  return () => {
@@ -164,6 +156,14 @@ var createVoiceOpsStatusStore = (path = "/api/voice/ops-status", options = {}) =
164
156
  }
165
157
  };
166
158
  };
159
+ var fetchVoiceOpsStatus = async (path = "/api/voice/ops-status", options = {}) => {
160
+ const fetchImpl = options.fetch ?? globalThis.fetch;
161
+ const response = await fetchImpl(path);
162
+ if (!response.ok) {
163
+ throw new Error(`Voice ops status failed: HTTP ${response.status}`);
164
+ }
165
+ return await response.json();
166
+ };
167
167
 
168
168
  // src/angular/voice-ops-status.service.ts
169
169
  var _dec = [
@@ -523,14 +523,14 @@ var createVoiceBrowserMediaReporter = (options) => {
523
523
  return {
524
524
  close: stop,
525
525
  reportOnce,
526
+ stop,
526
527
  start: () => {
527
528
  if (interval) {
528
529
  return;
529
530
  }
530
531
  run();
531
532
  interval = setInterval(run, options.intervalMs ?? DEFAULT_BROWSER_MEDIA_INTERVAL_MS);
532
- },
533
- stop
533
+ }
534
534
  };
535
535
  };
536
536
 
@@ -548,14 +548,14 @@ var NOOP_CONNECTION = {
548
548
  callControl: noop,
549
549
  close: noop,
550
550
  endTurn: noop,
551
- getReadyState: () => WS_CLOSED,
552
- getScenarioId: () => "",
553
- getSessionId: () => "",
554
551
  send: noop,
555
552
  sendAudio: noop,
556
553
  simulateDisconnect: noop,
557
- start: () => {},
558
- subscribe: noopUnsubscribe
554
+ subscribe: noopUnsubscribe,
555
+ getReadyState: () => WS_CLOSED,
556
+ getScenarioId: () => "",
557
+ getSessionId: () => "",
558
+ start: () => {}
559
559
  };
560
560
  var createSessionId = () => crypto.randomUUID();
561
561
  var buildWsUrl = (path, sessionId, scenarioId) => {
@@ -752,9 +752,9 @@ var createVoiceConnection = (path, options = {}) => {
752
752
  state.scenarioId = input.scenarioId;
753
753
  }
754
754
  send({
755
- type: "start",
755
+ scenarioId: state.scenarioId ?? undefined,
756
756
  sessionId: state.sessionId,
757
- scenarioId: state.scenarioId ?? undefined
757
+ type: "start"
758
758
  });
759
759
  };
760
760
  const sendAudio = (audio) => {
@@ -794,14 +794,14 @@ var createVoiceConnection = (path, options = {}) => {
794
794
  callControl,
795
795
  close,
796
796
  endTurn,
797
- getReadyState: () => state.ws?.readyState ?? WS_CLOSED,
798
- getScenarioId: () => state.scenarioId ?? "",
799
- getSessionId: () => state.sessionId,
800
797
  send,
801
798
  sendAudio,
802
799
  simulateDisconnect,
803
800
  start,
804
- subscribe
801
+ subscribe,
802
+ getReadyState: () => state.ws?.readyState ?? WS_CLOSED,
803
+ getScenarioId: () => state.scenarioId ?? "",
804
+ getSessionId: () => state.sessionId
805
805
  };
806
806
  };
807
807
 
@@ -817,11 +817,11 @@ var createInitialState = () => ({
817
817
  call: null,
818
818
  error: null,
819
819
  isConnected: false,
820
- sessionMetadata: null,
821
- scenarioId: null,
822
820
  partial: "",
823
821
  reconnect: createInitialReconnectState(),
822
+ scenarioId: null,
824
823
  sessionId: null,
824
+ sessionMetadata: null,
825
825
  status: "idle",
826
826
  turns: []
827
827
  });
@@ -1024,6 +1024,16 @@ var createVoiceStream = (path, options = {}) => {
1024
1024
  }
1025
1025
  });
1026
1026
  return {
1027
+ start,
1028
+ get assistantAudio() {
1029
+ return store.getSnapshot().assistantAudio;
1030
+ },
1031
+ get assistantTexts() {
1032
+ return store.getSnapshot().assistantTexts;
1033
+ },
1034
+ get call() {
1035
+ return store.getSnapshot().call;
1036
+ },
1027
1037
  callControl(message) {
1028
1038
  connection.callControl(message);
1029
1039
  },
@@ -1049,48 +1059,38 @@ var createVoiceStream = (path, options = {}) => {
1049
1059
  get isConnected() {
1050
1060
  return store.getSnapshot().isConnected;
1051
1061
  },
1052
- get scenarioId() {
1053
- return store.getSnapshot().scenarioId;
1054
- },
1055
- get sessionMetadata() {
1056
- return store.getSnapshot().sessionMetadata;
1057
- },
1058
- start,
1059
1062
  get partial() {
1060
1063
  return store.getSnapshot().partial;
1061
1064
  },
1062
1065
  get reconnect() {
1063
1066
  return store.getSnapshot().reconnect;
1064
1067
  },
1065
- get sessionId() {
1066
- return connection.getSessionId();
1067
- },
1068
- get status() {
1069
- return store.getSnapshot().status;
1070
- },
1071
- get turns() {
1072
- return store.getSnapshot().turns;
1073
- },
1074
- get assistantTexts() {
1075
- return store.getSnapshot().assistantTexts;
1076
- },
1077
- get assistantAudio() {
1078
- return store.getSnapshot().assistantAudio;
1079
- },
1080
- get call() {
1081
- return store.getSnapshot().call;
1068
+ get scenarioId() {
1069
+ return store.getSnapshot().scenarioId;
1082
1070
  },
1083
1071
  sendAudio(audio) {
1084
1072
  connection.sendAudio(audio);
1085
1073
  },
1074
+ get sessionId() {
1075
+ return connection.getSessionId();
1076
+ },
1077
+ get sessionMetadata() {
1078
+ return store.getSnapshot().sessionMetadata;
1079
+ },
1086
1080
  simulateDisconnect() {
1087
1081
  connection.simulateDisconnect();
1088
1082
  },
1083
+ get status() {
1084
+ return store.getSnapshot().status;
1085
+ },
1089
1086
  subscribe(subscriber) {
1090
1087
  subscribers.add(subscriber);
1091
1088
  return () => {
1092
1089
  subscribers.delete(subscriber);
1093
1090
  };
1091
+ },
1092
+ get turns() {
1093
+ return store.getSnapshot().turns;
1094
1094
  }
1095
1095
  };
1096
1096
  };
@@ -1117,18 +1117,6 @@ var computeRms = (samples) => {
1117
1117
  }
1118
1118
  return Math.sqrt(sumSquares / samples.length);
1119
1119
  };
1120
- var resolveAudioConditioningConfig = (config) => {
1121
- if (!config || config.enabled === false) {
1122
- return;
1123
- }
1124
- return {
1125
- enabled: true,
1126
- maxGain: config.maxGain ?? DEFAULT_MAX_GAIN,
1127
- noiseGateAttenuation: config.noiseGateAttenuation ?? DEFAULT_NOISE_GATE_ATTENUATION,
1128
- noiseGateThreshold: config.noiseGateThreshold ?? DEFAULT_NOISE_GATE_THRESHOLD,
1129
- targetLevel: config.targetLevel ?? DEFAULT_TARGET_LEVEL
1130
- };
1131
- };
1132
1120
  var conditionAudioChunk = (audio, config) => {
1133
1121
  if (!config) {
1134
1122
  return audio;
@@ -1149,6 +1137,18 @@ var conditionAudioChunk = (audio, config) => {
1149
1137
  }
1150
1138
  return new Uint8Array(output.buffer);
1151
1139
  };
1140
+ var resolveAudioConditioningConfig = (config) => {
1141
+ if (!config || config.enabled === false) {
1142
+ return;
1143
+ }
1144
+ return {
1145
+ enabled: true,
1146
+ maxGain: config.maxGain ?? DEFAULT_MAX_GAIN,
1147
+ noiseGateAttenuation: config.noiseGateAttenuation ?? DEFAULT_NOISE_GATE_ATTENUATION,
1148
+ noiseGateThreshold: config.noiseGateThreshold ?? DEFAULT_NOISE_GATE_THRESHOLD,
1149
+ targetLevel: config.targetLevel ?? DEFAULT_TARGET_LEVEL
1150
+ };
1151
+ };
1152
1152
 
1153
1153
  // src/core/turnProfiles.ts
1154
1154
  var TURN_PROFILE_DEFAULTS = {
@@ -1172,12 +1172,12 @@ var TURN_PROFILE_DEFAULTS = {
1172
1172
  }
1173
1173
  };
1174
1174
  var QUALITY_PROFILE_DEFAULTS = {
1175
- general: {},
1176
1175
  "accent-heavy": {
1177
1176
  silenceMs: 1200,
1178
1177
  speechThreshold: 0.01,
1179
1178
  transcriptStabilityMs: 1200
1180
1179
  },
1180
+ general: {},
1181
1181
  "noisy-room": {
1182
1182
  silenceMs: 2000,
1183
1183
  speechThreshold: 0.02,
@@ -1226,8 +1226,8 @@ var PRESET_INPUTS = {
1226
1226
  },
1227
1227
  sttLifecycle: "continuous",
1228
1228
  turnDetection: {
1229
- qualityProfile: "short-command",
1230
- profile: "balanced"
1229
+ profile: "balanced",
1230
+ qualityProfile: "short-command"
1231
1231
  }
1232
1232
  },
1233
1233
  default: {
@@ -1242,8 +1242,8 @@ var PRESET_INPUTS = {
1242
1242
  },
1243
1243
  sttLifecycle: "continuous",
1244
1244
  turnDetection: {
1245
- qualityProfile: "general",
1246
- profile: "fast"
1245
+ profile: "fast",
1246
+ qualityProfile: "general"
1247
1247
  }
1248
1248
  },
1249
1249
  dictation: {
@@ -1265,8 +1265,8 @@ var PRESET_INPUTS = {
1265
1265
  },
1266
1266
  sttLifecycle: "continuous",
1267
1267
  turnDetection: {
1268
- qualityProfile: "accent-heavy",
1269
- profile: "long-form"
1268
+ profile: "long-form",
1269
+ qualityProfile: "accent-heavy"
1270
1270
  }
1271
1271
  },
1272
1272
  "guided-intake": {
@@ -1288,8 +1288,8 @@ var PRESET_INPUTS = {
1288
1288
  },
1289
1289
  sttLifecycle: "turn-scoped",
1290
1290
  turnDetection: {
1291
- qualityProfile: "accent-heavy",
1292
- profile: "long-form"
1291
+ profile: "long-form",
1292
+ qualityProfile: "accent-heavy"
1293
1293
  }
1294
1294
  },
1295
1295
  "noisy-room": {
@@ -1311,8 +1311,8 @@ var PRESET_INPUTS = {
1311
1311
  },
1312
1312
  sttLifecycle: "continuous",
1313
1313
  turnDetection: {
1314
- qualityProfile: "noisy-room",
1315
1314
  profile: "long-form",
1315
+ qualityProfile: "noisy-room",
1316
1316
  silenceMs: 2100,
1317
1317
  speechThreshold: 0.02,
1318
1318
  transcriptStabilityMs: 1650
@@ -1337,8 +1337,8 @@ var PRESET_INPUTS = {
1337
1337
  },
1338
1338
  sttLifecycle: "continuous",
1339
1339
  turnDetection: {
1340
- qualityProfile: "noisy-room",
1341
1340
  profile: "long-form",
1341
+ qualityProfile: "noisy-room",
1342
1342
  silenceMs: 660,
1343
1343
  speechThreshold: 0.012,
1344
1344
  transcriptStabilityMs: 300
@@ -1363,8 +1363,8 @@ var PRESET_INPUTS = {
1363
1363
  },
1364
1364
  sttLifecycle: "continuous",
1365
1365
  turnDetection: {
1366
- qualityProfile: "noisy-room",
1367
1366
  profile: "long-form",
1367
+ qualityProfile: "noisy-room",
1368
1368
  silenceMs: 620,
1369
1369
  speechThreshold: 0.012,
1370
1370
  transcriptStabilityMs: 280
@@ -1389,8 +1389,8 @@ var PRESET_INPUTS = {
1389
1389
  },
1390
1390
  sttLifecycle: "continuous",
1391
1391
  turnDetection: {
1392
- qualityProfile: "noisy-room",
1393
- profile: "long-form"
1392
+ profile: "long-form",
1393
+ qualityProfile: "noisy-room"
1394
1394
  }
1395
1395
  }
1396
1396
  };
@@ -1530,11 +1530,22 @@ var createVoiceController = (path, options = {}) => {
1530
1530
  stream.close();
1531
1531
  };
1532
1532
  return {
1533
+ close,
1534
+ startRecording,
1535
+ stopRecording,
1536
+ get assistantAudio() {
1537
+ return state.assistantAudio;
1538
+ },
1539
+ get assistantTexts() {
1540
+ return state.assistantTexts;
1541
+ },
1533
1542
  bindHTMX(bindingOptions) {
1534
1543
  return bindVoiceHTMX(stream, bindingOptions);
1535
1544
  },
1545
+ get call() {
1546
+ return state.call;
1547
+ },
1536
1548
  callControl: (message) => stream.callControl(message),
1537
- close,
1538
1549
  endTurn: () => stream.endTurn(),
1539
1550
  get error() {
1540
1551
  return state.error;
@@ -1550,28 +1561,26 @@ var createVoiceController = (path, options = {}) => {
1550
1561
  get partial() {
1551
1562
  return state.partial;
1552
1563
  },
1564
+ get reconnect() {
1565
+ return state.reconnect;
1566
+ },
1553
1567
  get recordingError() {
1554
1568
  return state.recordingError;
1555
1569
  },
1556
- get reconnect() {
1557
- return state.reconnect;
1570
+ get scenarioId() {
1571
+ return state.scenarioId;
1558
1572
  },
1559
1573
  sendAudio: (audio) => stream.sendAudio(audio),
1560
- simulateDisconnect: () => stream.simulateDisconnect(),
1561
1574
  get sessionId() {
1562
1575
  return state.sessionId;
1563
1576
  },
1564
1577
  get sessionMetadata() {
1565
1578
  return state.sessionMetadata;
1566
1579
  },
1567
- get scenarioId() {
1568
- return state.scenarioId;
1569
- },
1570
- startRecording,
1580
+ simulateDisconnect: () => stream.simulateDisconnect(),
1571
1581
  get status() {
1572
1582
  return state.status;
1573
1583
  },
1574
- stopRecording,
1575
1584
  subscribe: (subscriber) => {
1576
1585
  subscribers.add(subscriber);
1577
1586
  return () => {
@@ -1587,15 +1596,6 @@ var createVoiceController = (path, options = {}) => {
1587
1596
  },
1588
1597
  get turns() {
1589
1598
  return state.turns;
1590
- },
1591
- get assistantTexts() {
1592
- return state.assistantTexts;
1593
- },
1594
- get assistantAudio() {
1595
- return state.assistantAudio;
1596
- },
1597
- get call() {
1598
- return state.call;
1599
1599
  }
1600
1600
  };
1601
1601
  };
@@ -1604,6 +1604,12 @@ var createVoiceController = (path, options = {}) => {
1604
1604
  var escapeHtml = (value) => String(value).replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#39;");
1605
1605
 
1606
1606
  // src/core/agentState.ts
1607
+ var voiceAgentUIStateOrder = [
1608
+ "idle",
1609
+ "listening",
1610
+ "thinking",
1611
+ "speaking"
1612
+ ];
1607
1613
  var deriveVoiceAgentUIState = (input) => {
1608
1614
  if (!input.isConnected) {
1609
1615
  return "idle";
@@ -1637,12 +1643,6 @@ var describeVoiceAgentUIState = (state) => {
1637
1643
  return "Thinking";
1638
1644
  }
1639
1645
  };
1640
- var voiceAgentUIStateOrder = [
1641
- "idle",
1642
- "listening",
1643
- "thinking",
1644
- "speaking"
1645
- ];
1646
1646
 
1647
1647
  // src/client/voiceWidgetView.ts
1648
1648
  var DEFAULT_VOICE_WIDGET_THEME = {
@@ -2075,14 +2075,14 @@ class VoiceCostDashboardService {
2075
2075
  return {
2076
2076
  currency: options.currency ?? "USD",
2077
2077
  report,
2078
+ title: options.title ?? "Voice cost dashboard",
2078
2079
  setEvents: (next) => events.set(next),
2079
2080
  setFilters: (next) => filters.update((current) => ({
2080
2081
  ...current,
2081
2082
  bucketBy: next.bucketBy ?? current.bucketBy,
2082
2083
  fromMs: next.fromMs ?? current.fromMs,
2083
2084
  toMs: next.toMs ?? current.toMs
2084
- })),
2085
- title: options.title ?? "Voice cost dashboard"
2085
+ }))
2086
2086
  };
2087
2087
  }
2088
2088
  }
@@ -2133,6 +2133,7 @@ var createLiveCallViewer = (options) => {
2133
2133
  update({ events: next });
2134
2134
  };
2135
2135
  return {
2136
+ applyEvent: pushEvent,
2136
2137
  applyControl: (control) => {
2137
2138
  pushEvent({
2138
2139
  at: Date.now(),
@@ -2141,7 +2142,6 @@ var createLiveCallViewer = (options) => {
2141
2142
  title: `control:${control.type}`
2142
2143
  });
2143
2144
  },
2144
- applyEvent: pushEvent,
2145
2145
  applyMonitorEvent: ({ payload, type }) => {
2146
2146
  pushEvent({
2147
2147
  at: Date.now(),
@@ -2236,6 +2236,7 @@ var createLiveAgentConsole = (options) => {
2236
2236
  }
2237
2237
  return {
2238
2238
  getState: buildState,
2239
+ viewer,
2239
2240
  noteAgentAudio: (at) => viewer.noteAgentAudio(at),
2240
2241
  notePartial: (text, at) => viewer.notePartial(text, at),
2241
2242
  noteTranscript: (text, at) => viewer.noteTranscript(text, at),
@@ -2268,8 +2269,7 @@ var createLiveAgentConsole = (options) => {
2268
2269
  takeoverReason = reason;
2269
2270
  viewer.applyControl({ reason, type: "takeover.engaged" });
2270
2271
  notify();
2271
- },
2272
- viewer
2272
+ }
2273
2273
  };
2274
2274
  };
2275
2275
 
@@ -2396,8 +2396,8 @@ class VoiceReplayTimelineService {
2396
2396
  const report = computed7(() => buildReplayTimelineReport({ artifact: artifact() }));
2397
2397
  return {
2398
2398
  report,
2399
- setArtifact: (next) => artifact.set(next),
2400
- title: options.title
2399
+ title: options.title,
2400
+ setArtifact: (next) => artifact.set(next)
2401
2401
  };
2402
2402
  }
2403
2403
  }
@@ -2409,14 +2409,6 @@ let _VoiceReplayTimelineService = VoiceReplayTimelineService;
2409
2409
  import { computed as computed8, Injectable as Injectable8, signal as signal8 } from "@angular/core";
2410
2410
 
2411
2411
  // src/client/platformCoverage.ts
2412
- var fetchVoicePlatformCoverage = async (path = "/api/voice/platform-coverage", options = {}) => {
2413
- const fetchImpl = options.fetch ?? globalThis.fetch;
2414
- const response = await fetchImpl(path);
2415
- if (!response.ok) {
2416
- throw new Error(`Voice platform coverage failed: HTTP ${response.status}`);
2417
- }
2418
- return await response.json();
2419
- };
2420
2412
  var createVoicePlatformCoverageStore = (path = "/api/voice/platform-coverage", options = {}) => {
2421
2413
  const listeners = new Set;
2422
2414
  let closed = false;
@@ -2475,9 +2467,9 @@ var createVoicePlatformCoverageStore = (path = "/api/voice/platform-coverage", o
2475
2467
  }
2476
2468
  return {
2477
2469
  close,
2470
+ refresh,
2478
2471
  getServerSnapshot: () => snapshot,
2479
2472
  getSnapshot: () => snapshot,
2480
- refresh,
2481
2473
  subscribe: (listener) => {
2482
2474
  listeners.add(listener);
2483
2475
  return () => {
@@ -2486,6 +2478,14 @@ var createVoicePlatformCoverageStore = (path = "/api/voice/platform-coverage", o
2486
2478
  }
2487
2479
  };
2488
2480
  };
2481
+ var fetchVoicePlatformCoverage = async (path = "/api/voice/platform-coverage", options = {}) => {
2482
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2483
+ const response = await fetchImpl(path);
2484
+ if (!response.ok) {
2485
+ throw new Error(`Voice platform coverage failed: HTTP ${response.status}`);
2486
+ }
2487
+ return await response.json();
2488
+ };
2489
2489
 
2490
2490
  // src/angular/voice-platform-coverage.service.ts
2491
2491
  var _dec = [
@@ -2533,14 +2533,6 @@ let _VoicePlatformCoverageService = VoicePlatformCoverageService;
2533
2533
  import { computed as computed9, Injectable as Injectable9, signal as signal9 } from "@angular/core";
2534
2534
 
2535
2535
  // src/client/proofTrends.ts
2536
- var fetchVoiceProofTrends = async (path = "/api/voice/proof-trends", options = {}) => {
2537
- const fetchImpl = options.fetch ?? globalThis.fetch;
2538
- const response = await fetchImpl(path);
2539
- if (!response.ok) {
2540
- throw new Error(`Voice proof trends failed: HTTP ${response.status}`);
2541
- }
2542
- return await response.json();
2543
- };
2544
2536
  var createVoiceProofTrendsStore = (path = "/api/voice/proof-trends", options = {}) => {
2545
2537
  const listeners = new Set;
2546
2538
  let closed = false;
@@ -2599,9 +2591,9 @@ var createVoiceProofTrendsStore = (path = "/api/voice/proof-trends", options = {
2599
2591
  }
2600
2592
  return {
2601
2593
  close,
2594
+ refresh,
2602
2595
  getServerSnapshot: () => snapshot,
2603
2596
  getSnapshot: () => snapshot,
2604
- refresh,
2605
2597
  subscribe: (listener) => {
2606
2598
  listeners.add(listener);
2607
2599
  return () => {
@@ -2610,6 +2602,14 @@ var createVoiceProofTrendsStore = (path = "/api/voice/proof-trends", options = {
2610
2602
  }
2611
2603
  };
2612
2604
  };
2605
+ var fetchVoiceProofTrends = async (path = "/api/voice/proof-trends", options = {}) => {
2606
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2607
+ const response = await fetchImpl(path);
2608
+ if (!response.ok) {
2609
+ throw new Error(`Voice proof trends failed: HTTP ${response.status}`);
2610
+ }
2611
+ return await response.json();
2612
+ };
2613
2613
 
2614
2614
  // src/angular/voice-proof-trends.service.ts
2615
2615
  var _dec = [
@@ -2657,14 +2657,6 @@ let _VoiceProofTrendsService = VoiceProofTrendsService;
2657
2657
  import { computed as computed10, Injectable as Injectable10, signal as signal10 } from "@angular/core";
2658
2658
 
2659
2659
  // src/client/reconnectProfileEvidence.ts
2660
- var fetchVoiceReconnectProfileEvidence = async (path = "/api/voice/reconnect-profile-evidence", options = {}) => {
2661
- const fetchImpl = options.fetch ?? globalThis.fetch;
2662
- const response = await fetchImpl(path);
2663
- if (!response.ok) {
2664
- throw new Error(`Voice reconnect profile evidence failed: HTTP ${response.status}`);
2665
- }
2666
- return await response.json();
2667
- };
2668
2660
  var createVoiceReconnectProfileEvidenceStore = (path = "/api/voice/reconnect-profile-evidence", options = {}) => {
2669
2661
  const listeners = new Set;
2670
2662
  let closed = false;
@@ -2719,9 +2711,9 @@ var createVoiceReconnectProfileEvidenceStore = (path = "/api/voice/reconnect-pro
2719
2711
  }
2720
2712
  return {
2721
2713
  close,
2714
+ refresh,
2722
2715
  getServerSnapshot: () => snapshot,
2723
2716
  getSnapshot: () => snapshot,
2724
- refresh,
2725
2717
  subscribe: (listener) => {
2726
2718
  listeners.add(listener);
2727
2719
  return () => {
@@ -2730,6 +2722,14 @@ var createVoiceReconnectProfileEvidenceStore = (path = "/api/voice/reconnect-pro
2730
2722
  }
2731
2723
  };
2732
2724
  };
2725
+ var fetchVoiceReconnectProfileEvidence = async (path = "/api/voice/reconnect-profile-evidence", options = {}) => {
2726
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2727
+ const response = await fetchImpl(path);
2728
+ if (!response.ok) {
2729
+ throw new Error(`Voice reconnect profile evidence failed: HTTP ${response.status}`);
2730
+ }
2731
+ return await response.json();
2732
+ };
2733
2733
 
2734
2734
  // src/angular/voice-reconnect-profile-evidence.service.ts
2735
2735
  var _dec = [
@@ -2777,14 +2777,6 @@ let _VoiceReconnectProfileEvidenceService = VoiceReconnectProfileEvidenceService
2777
2777
  import { computed as computed11, Injectable as Injectable11, signal as signal11 } from "@angular/core";
2778
2778
 
2779
2779
  // src/client/callDebugger.ts
2780
- var fetchVoiceCallDebugger = async (path, options = {}) => {
2781
- const fetchImpl = options.fetch ?? globalThis.fetch;
2782
- const response = await fetchImpl(path);
2783
- if (!response.ok) {
2784
- throw new Error(`Voice call debugger failed: HTTP ${response.status}`);
2785
- }
2786
- return await response.json();
2787
- };
2788
2780
  var createVoiceCallDebuggerStore = (path, options = {}) => {
2789
2781
  const listeners = new Set;
2790
2782
  let closed = false;
@@ -2839,9 +2831,9 @@ var createVoiceCallDebuggerStore = (path, options = {}) => {
2839
2831
  }
2840
2832
  return {
2841
2833
  close,
2834
+ refresh,
2842
2835
  getServerSnapshot: () => snapshot,
2843
2836
  getSnapshot: () => snapshot,
2844
- refresh,
2845
2837
  subscribe: (listener) => {
2846
2838
  listeners.add(listener);
2847
2839
  return () => {
@@ -2850,6 +2842,14 @@ var createVoiceCallDebuggerStore = (path, options = {}) => {
2850
2842
  }
2851
2843
  };
2852
2844
  };
2845
+ var fetchVoiceCallDebugger = async (path, options = {}) => {
2846
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2847
+ const response = await fetchImpl(path);
2848
+ if (!response.ok) {
2849
+ throw new Error(`Voice call debugger failed: HTTP ${response.status}`);
2850
+ }
2851
+ return await response.json();
2852
+ };
2853
2853
 
2854
2854
  // src/angular/voice-call-debugger.service.ts
2855
2855
  var _dec = [
@@ -2903,14 +2903,6 @@ var withTurnId = (path, turnId) => {
2903
2903
  url.searchParams.set("turnId", turnId);
2904
2904
  return `${url.pathname}${url.search}`;
2905
2905
  };
2906
- var fetchVoiceSessionSnapshot = async (path, options = {}) => {
2907
- const fetchImpl = options.fetch ?? globalThis.fetch;
2908
- const response = await fetchImpl(withTurnId(path, options.turnId));
2909
- if (!response.ok) {
2910
- throw new Error(`Voice session snapshot failed: HTTP ${response.status}`);
2911
- }
2912
- return await response.json();
2913
- };
2914
2906
  var createVoiceSessionSnapshotStore = (path, options = {}) => {
2915
2907
  const listeners = new Set;
2916
2908
  let closed = false;
@@ -2975,9 +2967,9 @@ var createVoiceSessionSnapshotStore = (path, options = {}) => {
2975
2967
  return {
2976
2968
  close,
2977
2969
  download,
2970
+ refresh,
2978
2971
  getServerSnapshot: () => snapshot,
2979
2972
  getSnapshot: () => snapshot,
2980
- refresh,
2981
2973
  subscribe: (listener) => {
2982
2974
  listeners.add(listener);
2983
2975
  return () => {
@@ -2986,9 +2978,17 @@ var createVoiceSessionSnapshotStore = (path, options = {}) => {
2986
2978
  }
2987
2979
  };
2988
2980
  };
2989
-
2990
- // src/angular/voice-session-snapshot.service.ts
2991
- var _dec = [
2981
+ var fetchVoiceSessionSnapshot = async (path, options = {}) => {
2982
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2983
+ const response = await fetchImpl(withTurnId(path, options.turnId));
2984
+ if (!response.ok) {
2985
+ throw new Error(`Voice session snapshot failed: HTTP ${response.status}`);
2986
+ }
2987
+ return await response.json();
2988
+ };
2989
+
2990
+ // src/angular/voice-session-snapshot.service.ts
2991
+ var _dec = [
2992
2992
  Injectable12({ providedIn: "root" })
2993
2993
  ];
2994
2994
  var _init = __decoratorStart(undefined);
@@ -3032,14 +3032,6 @@ let _VoiceSessionSnapshotService = VoiceSessionSnapshotService;
3032
3032
  import { computed as computed13, Injectable as Injectable13, signal as signal13 } from "@angular/core";
3033
3033
 
3034
3034
  // src/client/sessionObservability.ts
3035
- var fetchVoiceSessionObservability = async (path, options = {}) => {
3036
- const fetchImpl = options.fetch ?? globalThis.fetch;
3037
- const response = await fetchImpl(path);
3038
- if (!response.ok) {
3039
- throw new Error(`Voice session observability failed: HTTP ${response.status}`);
3040
- }
3041
- return await response.json();
3042
- };
3043
3035
  var createVoiceSessionObservabilityStore = (path, options = {}) => {
3044
3036
  const listeners = new Set;
3045
3037
  let closed = false;
@@ -3099,9 +3091,9 @@ var createVoiceSessionObservabilityStore = (path, options = {}) => {
3099
3091
  }
3100
3092
  return {
3101
3093
  close,
3094
+ refresh,
3102
3095
  getServerSnapshot: () => snapshot,
3103
3096
  getSnapshot: () => snapshot,
3104
- refresh,
3105
3097
  subscribe: (listener) => {
3106
3098
  listeners.add(listener);
3107
3099
  return () => {
@@ -3110,6 +3102,14 @@ var createVoiceSessionObservabilityStore = (path, options = {}) => {
3110
3102
  }
3111
3103
  };
3112
3104
  };
3105
+ var fetchVoiceSessionObservability = async (path, options = {}) => {
3106
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3107
+ const response = await fetchImpl(path);
3108
+ if (!response.ok) {
3109
+ throw new Error(`Voice session observability failed: HTTP ${response.status}`);
3110
+ }
3111
+ return await response.json();
3112
+ };
3113
3113
 
3114
3114
  // src/angular/voice-session-observability.service.ts
3115
3115
  var _dec = [
@@ -3155,14 +3155,6 @@ let _VoiceSessionObservabilityService = VoiceSessionObservabilityService;
3155
3155
  import { computed as computed14, Injectable as Injectable14, signal as signal14 } from "@angular/core";
3156
3156
 
3157
3157
  // src/client/profileComparison.ts
3158
- var fetchVoiceProfileComparison = async (path = "/api/voice/real-call-profile-history", options = {}) => {
3159
- const fetchImpl = options.fetch ?? globalThis.fetch;
3160
- const response = await fetchImpl(path);
3161
- if (!response.ok) {
3162
- throw new Error(`Voice profile comparison failed: HTTP ${response.status}`);
3163
- }
3164
- return await response.json();
3165
- };
3166
3158
  var createVoiceProfileComparisonStore = (path = "/api/voice/real-call-profile-history", options = {}) => {
3167
3159
  const listeners = new Set;
3168
3160
  let closed = false;
@@ -3217,9 +3209,9 @@ var createVoiceProfileComparisonStore = (path = "/api/voice/real-call-profile-hi
3217
3209
  }
3218
3210
  return {
3219
3211
  close,
3212
+ refresh,
3220
3213
  getServerSnapshot: () => snapshot,
3221
3214
  getSnapshot: () => snapshot,
3222
- refresh,
3223
3215
  subscribe: (listener) => {
3224
3216
  listeners.add(listener);
3225
3217
  return () => {
@@ -3228,6 +3220,14 @@ var createVoiceProfileComparisonStore = (path = "/api/voice/real-call-profile-hi
3228
3220
  }
3229
3221
  };
3230
3222
  };
3223
+ var fetchVoiceProfileComparison = async (path = "/api/voice/real-call-profile-history", options = {}) => {
3224
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3225
+ const response = await fetchImpl(path);
3226
+ if (!response.ok) {
3227
+ throw new Error(`Voice profile comparison failed: HTTP ${response.status}`);
3228
+ }
3229
+ return await response.json();
3230
+ };
3231
3231
 
3232
3232
  // src/angular/voice-profile-comparison.service.ts
3233
3233
  var _dec = [
@@ -3275,14 +3275,6 @@ let _VoiceProfileComparisonService = VoiceProfileComparisonService;
3275
3275
  import { computed as computed15, Injectable as Injectable15, signal as signal15 } from "@angular/core";
3276
3276
 
3277
3277
  // src/client/readinessFailures.ts
3278
- var fetchVoiceReadinessFailures = async (path = "/api/production-readiness", options = {}) => {
3279
- const fetchImpl = options.fetch ?? globalThis.fetch;
3280
- const response = await fetchImpl(path);
3281
- if (!response.ok) {
3282
- throw new Error(`Voice readiness failed: HTTP ${response.status}`);
3283
- }
3284
- return await response.json();
3285
- };
3286
3278
  var createVoiceReadinessFailuresStore = (path = "/api/production-readiness", options = {}) => {
3287
3279
  const listeners = new Set;
3288
3280
  let closed = false;
@@ -3337,9 +3329,9 @@ var createVoiceReadinessFailuresStore = (path = "/api/production-readiness", opt
3337
3329
  }
3338
3330
  return {
3339
3331
  close,
3332
+ refresh,
3340
3333
  getServerSnapshot: () => snapshot,
3341
3334
  getSnapshot: () => snapshot,
3342
- refresh,
3343
3335
  subscribe: (listener) => {
3344
3336
  listeners.add(listener);
3345
3337
  return () => {
@@ -3348,6 +3340,14 @@ var createVoiceReadinessFailuresStore = (path = "/api/production-readiness", opt
3348
3340
  }
3349
3341
  };
3350
3342
  };
3343
+ var fetchVoiceReadinessFailures = async (path = "/api/production-readiness", options = {}) => {
3344
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3345
+ const response = await fetchImpl(path);
3346
+ if (!response.ok) {
3347
+ throw new Error(`Voice readiness failed: HTTP ${response.status}`);
3348
+ }
3349
+ return await response.json();
3350
+ };
3351
3351
 
3352
3352
  // src/angular/voice-readiness-failures.service.ts
3353
3353
  var _dec = [
@@ -3380,7 +3380,7 @@ class VoiceReadinessFailuresService {
3380
3380
  store.close();
3381
3381
  },
3382
3382
  error: computed15(() => errorSignal()),
3383
- explanations: computed15(() => reportSignal()?.checks.filter((check) => check.status !== "pass" && !!check.gateExplanation) ?? []),
3383
+ explanations: computed15(() => reportSignal()?.checks.filter((check) => check.status !== "pass" && Boolean(check.gateExplanation)) ?? []),
3384
3384
  isLoading: computed15(() => isLoadingSignal()),
3385
3385
  refresh: store.refresh,
3386
3386
  report: computed15(() => reportSignal()),
@@ -3469,24 +3469,6 @@ var createVoiceOpsActionCenterActions = (options = {}) => {
3469
3469
  }
3470
3470
  return actions;
3471
3471
  };
3472
- var runVoiceOpsAction = async (action, options = {}) => {
3473
- const fetchImpl = options.fetch ?? globalThis.fetch;
3474
- const response = await fetchImpl(action.path, {
3475
- method: action.method ?? "POST"
3476
- });
3477
- const body = await response.json().catch(() => null);
3478
- if (!response.ok) {
3479
- const message = body && typeof body === "object" && "error" in body ? String(body.error) : `Voice ops action "${action.id}" failed: HTTP ${response.status}`;
3480
- throw new Error(message);
3481
- }
3482
- return {
3483
- actionId: action.id,
3484
- body,
3485
- ok: response.ok,
3486
- ranAt: Date.now(),
3487
- status: response.status
3488
- };
3489
- };
3490
3472
  var createVoiceOpsActionCenterStore = (options = {}) => {
3491
3473
  const listeners = new Set;
3492
3474
  let closed = false;
@@ -3573,10 +3555,10 @@ var createVoiceOpsActionCenterStore = (options = {}) => {
3573
3555
  }
3574
3556
  return {
3575
3557
  close,
3576
- getServerSnapshot: () => snapshot,
3577
- getSnapshot: () => snapshot,
3578
3558
  run,
3579
3559
  setActions,
3560
+ getServerSnapshot: () => snapshot,
3561
+ getSnapshot: () => snapshot,
3580
3562
  subscribe: (listener) => {
3581
3563
  listeners.add(listener);
3582
3564
  return () => {
@@ -3585,6 +3567,24 @@ var createVoiceOpsActionCenterStore = (options = {}) => {
3585
3567
  }
3586
3568
  };
3587
3569
  };
3570
+ var runVoiceOpsAction = async (action, options = {}) => {
3571
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3572
+ const response = await fetchImpl(action.path, {
3573
+ method: action.method ?? "POST"
3574
+ });
3575
+ const body = await response.json().catch(() => null);
3576
+ if (!response.ok) {
3577
+ const message = body && typeof body === "object" && "error" in body ? String(body.error) : `Voice ops action "${action.id}" failed: HTTP ${response.status}`;
3578
+ throw new Error(message);
3579
+ }
3580
+ return {
3581
+ actionId: action.id,
3582
+ body,
3583
+ ok: response.ok,
3584
+ ranAt: Date.now(),
3585
+ status: response.status
3586
+ };
3587
+ };
3588
3588
 
3589
3589
  // src/angular/voice-ops-action-center.service.ts
3590
3590
  var _dec = [
@@ -3633,25 +3633,6 @@ let _VoiceOpsActionCenterService = VoiceOpsActionCenterService;
3633
3633
  import { computed as computed17, Injectable as Injectable17, signal as signal17 } from "@angular/core";
3634
3634
 
3635
3635
  // src/client/liveOps.ts
3636
- var postVoiceLiveOpsAction = async (input, options = {}) => {
3637
- if (!input.sessionId) {
3638
- throw new Error("Start a voice session before running live ops actions.");
3639
- }
3640
- const fetchImpl = options.fetch ?? globalThis.fetch;
3641
- const response = await fetchImpl(options.actionPath ?? "/api/voice/live-ops/action", {
3642
- body: JSON.stringify(input),
3643
- headers: {
3644
- "Content-Type": "application/json"
3645
- },
3646
- method: "POST"
3647
- });
3648
- const payload = await response.json().catch(() => null);
3649
- if (!response.ok || !payload?.ok) {
3650
- const message = payload && typeof payload === "object" && "error" in payload ? String(payload.error) : `Voice live ops action failed: HTTP ${response.status}`;
3651
- throw new Error(message);
3652
- }
3653
- return payload;
3654
- };
3655
3636
  var createVoiceLiveOpsStore = (options = {}) => {
3656
3637
  const listeners = new Set;
3657
3638
  let closed = false;
@@ -3706,9 +3687,9 @@ var createVoiceLiveOpsStore = (options = {}) => {
3706
3687
  };
3707
3688
  return {
3708
3689
  close,
3690
+ run,
3709
3691
  getServerSnapshot: () => snapshot,
3710
3692
  getSnapshot: () => snapshot,
3711
- run,
3712
3693
  subscribe: (listener) => {
3713
3694
  listeners.add(listener);
3714
3695
  return () => {
@@ -3717,6 +3698,25 @@ var createVoiceLiveOpsStore = (options = {}) => {
3717
3698
  }
3718
3699
  };
3719
3700
  };
3701
+ var postVoiceLiveOpsAction = async (input, options = {}) => {
3702
+ if (!input.sessionId) {
3703
+ throw new Error("Start a voice session before running live ops actions.");
3704
+ }
3705
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3706
+ const response = await fetchImpl(options.actionPath ?? "/api/voice/live-ops/action", {
3707
+ body: JSON.stringify(input),
3708
+ headers: {
3709
+ "Content-Type": "application/json"
3710
+ },
3711
+ method: "POST"
3712
+ });
3713
+ const payload = await response.json().catch(() => null);
3714
+ if (!response.ok || !payload?.ok) {
3715
+ const message = payload && typeof payload === "object" && "error" in payload ? String(payload.error) : `Voice live ops action failed: HTTP ${response.status}`;
3716
+ throw new Error(message);
3717
+ }
3718
+ return payload;
3719
+ };
3720
3720
 
3721
3721
  // src/angular/voice-live-ops.service.ts
3722
3722
  var _dec = [
@@ -3767,30 +3767,6 @@ var getDefaultActionPath = (path, action, options) => {
3767
3767
  }
3768
3768
  return options.requeueDeadLettersPath ?? `${path.replace(/\/$/, "")}/requeue-dead-letters`;
3769
3769
  };
3770
- var fetchVoiceDeliveryRuntime = async (path = "/api/voice-delivery-runtime", options = {}) => {
3771
- const fetchImpl = options.fetch ?? globalThis.fetch;
3772
- const response = await fetchImpl(path);
3773
- if (!response.ok) {
3774
- throw new Error(`Voice delivery runtime failed: HTTP ${response.status}`);
3775
- }
3776
- return await response.json();
3777
- };
3778
- var runVoiceDeliveryRuntimeAction = async (action, path = "/api/voice-delivery-runtime", options = {}) => {
3779
- const fetchImpl = options.fetch ?? globalThis.fetch;
3780
- const response = await fetchImpl(getDefaultActionPath(path, action, options), {
3781
- method: "POST"
3782
- });
3783
- if (!response.ok) {
3784
- throw new Error(`Voice delivery runtime ${action} failed: HTTP ${response.status}`);
3785
- }
3786
- const body = await response.json();
3787
- return {
3788
- action,
3789
- result: body.result,
3790
- summary: body.summary,
3791
- updatedAt: Date.now()
3792
- };
3793
- };
3794
3770
  var createVoiceDeliveryRuntimeStore = (path = "/api/voice-delivery-runtime", options = {}) => {
3795
3771
  const listeners = new Set;
3796
3772
  let closed = false;
@@ -3883,17 +3859,41 @@ var createVoiceDeliveryRuntimeStore = (path = "/api/voice-delivery-runtime", opt
3883
3859
  }
3884
3860
  return {
3885
3861
  close,
3862
+ refresh,
3886
3863
  getServerSnapshot: () => snapshot,
3887
3864
  getSnapshot: () => snapshot,
3888
3865
  requeueDeadLetters: () => runAction("requeue-dead-letters"),
3889
- refresh,
3890
- tick: () => runAction("tick"),
3891
3866
  subscribe: (listener) => {
3892
3867
  listeners.add(listener);
3893
3868
  return () => {
3894
3869
  listeners.delete(listener);
3895
3870
  };
3896
- }
3871
+ },
3872
+ tick: () => runAction("tick")
3873
+ };
3874
+ };
3875
+ var fetchVoiceDeliveryRuntime = async (path = "/api/voice-delivery-runtime", options = {}) => {
3876
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3877
+ const response = await fetchImpl(path);
3878
+ if (!response.ok) {
3879
+ throw new Error(`Voice delivery runtime failed: HTTP ${response.status}`);
3880
+ }
3881
+ return await response.json();
3882
+ };
3883
+ var runVoiceDeliveryRuntimeAction = async (action, path = "/api/voice-delivery-runtime", options = {}) => {
3884
+ const fetchImpl = options.fetch ?? globalThis.fetch;
3885
+ const response = await fetchImpl(getDefaultActionPath(path, action, options), {
3886
+ method: "POST"
3887
+ });
3888
+ if (!response.ok) {
3889
+ throw new Error(`Voice delivery runtime ${action} failed: HTTP ${response.status}`);
3890
+ }
3891
+ const body = await response.json();
3892
+ return {
3893
+ action,
3894
+ result: body.result,
3895
+ summary: body.summary,
3896
+ updatedAt: Date.now()
3897
3897
  };
3898
3898
  };
3899
3899
 
@@ -3951,22 +3951,6 @@ let _VoiceDeliveryRuntimeService = VoiceDeliveryRuntimeService;
3951
3951
  import { computed as computed19, Injectable as Injectable19, signal as signal19 } from "@angular/core";
3952
3952
 
3953
3953
  // src/client/campaignDialerProof.ts
3954
- var fetchVoiceCampaignDialerProofStatus = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
3955
- const fetchImpl = options.fetch ?? globalThis.fetch;
3956
- const response = await fetchImpl(path);
3957
- if (!response.ok) {
3958
- throw new Error(`Voice campaign dialer proof status failed: HTTP ${response.status}`);
3959
- }
3960
- return await response.json();
3961
- };
3962
- var runVoiceCampaignDialerProofAction = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
3963
- const fetchImpl = options.fetch ?? globalThis.fetch;
3964
- const response = await fetchImpl(path, { method: "POST" });
3965
- if (!response.ok) {
3966
- throw new Error(`Voice campaign dialer proof failed: HTTP ${response.status}`);
3967
- }
3968
- return await response.json();
3969
- };
3970
3954
  var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
3971
3955
  const listeners = new Set;
3972
3956
  let closed = false;
@@ -4055,10 +4039,10 @@ var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-p
4055
4039
  }
4056
4040
  return {
4057
4041
  close,
4058
- getServerSnapshot: () => snapshot,
4059
- getSnapshot: () => snapshot,
4060
4042
  refresh,
4061
4043
  runProof,
4044
+ getServerSnapshot: () => snapshot,
4045
+ getSnapshot: () => snapshot,
4062
4046
  subscribe: (listener) => {
4063
4047
  listeners.add(listener);
4064
4048
  return () => {
@@ -4067,6 +4051,22 @@ var createVoiceCampaignDialerProofStore = (path = "/api/voice/campaigns/dialer-p
4067
4051
  }
4068
4052
  };
4069
4053
  };
4054
+ var fetchVoiceCampaignDialerProofStatus = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
4055
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4056
+ const response = await fetchImpl(path);
4057
+ if (!response.ok) {
4058
+ throw new Error(`Voice campaign dialer proof status failed: HTTP ${response.status}`);
4059
+ }
4060
+ return await response.json();
4061
+ };
4062
+ var runVoiceCampaignDialerProofAction = async (path = "/api/voice/campaigns/dialer-proof", options = {}) => {
4063
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4064
+ const response = await fetchImpl(path, { method: "POST" });
4065
+ if (!response.ok) {
4066
+ throw new Error(`Voice campaign dialer proof failed: HTTP ${response.status}`);
4067
+ }
4068
+ return await response.json();
4069
+ };
4070
4070
 
4071
4071
  // src/angular/voice-campaign-dialer-proof.service.ts
4072
4072
  var _dec = [
@@ -4245,14 +4245,6 @@ let _VoiceControllerService = VoiceControllerService;
4245
4245
  import { computed as computed22, Injectable as Injectable22, signal as signal22 } from "@angular/core";
4246
4246
 
4247
4247
  // src/client/providerCapabilities.ts
4248
- var fetchVoiceProviderCapabilities = async (path = "/api/provider-capabilities", options = {}) => {
4249
- const fetchImpl = options.fetch ?? globalThis.fetch;
4250
- const response = await fetchImpl(path);
4251
- if (!response.ok) {
4252
- throw new Error(`Voice provider capabilities failed: HTTP ${response.status}`);
4253
- }
4254
- return await response.json();
4255
- };
4256
4248
  var createVoiceProviderCapabilitiesStore = (path = "/api/provider-capabilities", options = {}) => {
4257
4249
  const listeners = new Set;
4258
4250
  let closed = false;
@@ -4311,9 +4303,9 @@ var createVoiceProviderCapabilitiesStore = (path = "/api/provider-capabilities",
4311
4303
  }
4312
4304
  return {
4313
4305
  close,
4306
+ refresh,
4314
4307
  getServerSnapshot: () => snapshot,
4315
4308
  getSnapshot: () => snapshot,
4316
- refresh,
4317
4309
  subscribe: (listener) => {
4318
4310
  listeners.add(listener);
4319
4311
  return () => {
@@ -4322,6 +4314,14 @@ var createVoiceProviderCapabilitiesStore = (path = "/api/provider-capabilities",
4322
4314
  }
4323
4315
  };
4324
4316
  };
4317
+ var fetchVoiceProviderCapabilities = async (path = "/api/provider-capabilities", options = {}) => {
4318
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4319
+ const response = await fetchImpl(path);
4320
+ if (!response.ok) {
4321
+ throw new Error(`Voice provider capabilities failed: HTTP ${response.status}`);
4322
+ }
4323
+ return await response.json();
4324
+ };
4325
4325
 
4326
4326
  // src/angular/voice-provider-capabilities.service.ts
4327
4327
  var _dec = [
@@ -4367,14 +4367,6 @@ let _VoiceProviderCapabilitiesService = VoiceProviderCapabilitiesService;
4367
4367
  import { computed as computed23, Injectable as Injectable23, signal as signal23 } from "@angular/core";
4368
4368
 
4369
4369
  // src/client/providerContracts.ts
4370
- var fetchVoiceProviderContracts = async (path = "/api/provider-contracts", options = {}) => {
4371
- const fetchImpl = options.fetch ?? globalThis.fetch;
4372
- const response = await fetchImpl(path);
4373
- if (!response.ok) {
4374
- throw new Error(`Voice provider contracts failed: HTTP ${response.status}`);
4375
- }
4376
- return await response.json();
4377
- };
4378
4370
  var createVoiceProviderContractsStore = (path = "/api/provider-contracts", options = {}) => {
4379
4371
  const listeners = new Set;
4380
4372
  let closed = false;
@@ -4429,9 +4421,9 @@ var createVoiceProviderContractsStore = (path = "/api/provider-contracts", optio
4429
4421
  }
4430
4422
  return {
4431
4423
  close,
4424
+ refresh,
4432
4425
  getServerSnapshot: () => snapshot,
4433
4426
  getSnapshot: () => snapshot,
4434
- refresh,
4435
4427
  subscribe: (listener) => {
4436
4428
  listeners.add(listener);
4437
4429
  return () => {
@@ -4440,6 +4432,14 @@ var createVoiceProviderContractsStore = (path = "/api/provider-contracts", optio
4440
4432
  }
4441
4433
  };
4442
4434
  };
4435
+ var fetchVoiceProviderContracts = async (path = "/api/provider-contracts", options = {}) => {
4436
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4437
+ const response = await fetchImpl(path);
4438
+ if (!response.ok) {
4439
+ throw new Error(`Voice provider contracts failed: HTTP ${response.status}`);
4440
+ }
4441
+ return await response.json();
4442
+ };
4443
4443
 
4444
4444
  // src/angular/voice-provider-contracts.service.ts
4445
4445
  var _dec = [
@@ -4485,14 +4485,6 @@ let _VoiceProviderContractsService = VoiceProviderContractsService;
4485
4485
  import { computed as computed24, Injectable as Injectable24, signal as signal24 } from "@angular/core";
4486
4486
 
4487
4487
  // src/client/providerStatus.ts
4488
- var fetchVoiceProviderStatus = async (path = "/api/provider-status", options = {}) => {
4489
- const fetchImpl = options.fetch ?? globalThis.fetch;
4490
- const response = await fetchImpl(path);
4491
- if (!response.ok) {
4492
- throw new Error(`Voice provider status failed: HTTP ${response.status}`);
4493
- }
4494
- return await response.json();
4495
- };
4496
4488
  var createVoiceProviderStatusStore = (path = "/api/provider-status", options = {}) => {
4497
4489
  const listeners = new Set;
4498
4490
  let closed = false;
@@ -4552,9 +4544,9 @@ var createVoiceProviderStatusStore = (path = "/api/provider-status", options = {
4552
4544
  }
4553
4545
  return {
4554
4546
  close,
4547
+ refresh,
4555
4548
  getServerSnapshot: () => snapshot,
4556
4549
  getSnapshot: () => snapshot,
4557
- refresh,
4558
4550
  subscribe: (listener) => {
4559
4551
  listeners.add(listener);
4560
4552
  return () => {
@@ -4563,6 +4555,14 @@ var createVoiceProviderStatusStore = (path = "/api/provider-status", options = {
4563
4555
  }
4564
4556
  };
4565
4557
  };
4558
+ var fetchVoiceProviderStatus = async (path = "/api/provider-status", options = {}) => {
4559
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4560
+ const response = await fetchImpl(path);
4561
+ if (!response.ok) {
4562
+ throw new Error(`Voice provider status failed: HTTP ${response.status}`);
4563
+ }
4564
+ return await response.json();
4565
+ };
4566
4566
 
4567
4567
  // src/angular/voice-provider-status.service.ts
4568
4568
  var _dec = [
@@ -4608,14 +4608,6 @@ let _VoiceProviderStatusService = VoiceProviderStatusService;
4608
4608
  import { Injectable as Injectable25, signal as signal25 } from "@angular/core";
4609
4609
 
4610
4610
  // src/client/routingStatus.ts
4611
- var fetchVoiceRoutingStatus = async (path = "/api/routing/latest", options = {}) => {
4612
- const fetchImpl = options.fetch ?? globalThis.fetch;
4613
- const response = await fetchImpl(path);
4614
- if (!response.ok) {
4615
- throw new Error(`Voice routing status failed: HTTP ${response.status}`);
4616
- }
4617
- return await response.json();
4618
- };
4619
4611
  var createVoiceRoutingStatusStore = (path = "/api/routing/latest", options = {}) => {
4620
4612
  const listeners = new Set;
4621
4613
  let closed = false;
@@ -4675,9 +4667,9 @@ var createVoiceRoutingStatusStore = (path = "/api/routing/latest", options = {})
4675
4667
  }
4676
4668
  return {
4677
4669
  close,
4670
+ refresh,
4678
4671
  getServerSnapshot: () => snapshot,
4679
4672
  getSnapshot: () => snapshot,
4680
- refresh,
4681
4673
  subscribe: (listener) => {
4682
4674
  listeners.add(listener);
4683
4675
  return () => {
@@ -4686,6 +4678,14 @@ var createVoiceRoutingStatusStore = (path = "/api/routing/latest", options = {})
4686
4678
  }
4687
4679
  };
4688
4680
  };
4681
+ var fetchVoiceRoutingStatus = async (path = "/api/routing/latest", options = {}) => {
4682
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4683
+ const response = await fetchImpl(path);
4684
+ if (!response.ok) {
4685
+ throw new Error(`Voice routing status failed: HTTP ${response.status}`);
4686
+ }
4687
+ return await response.json();
4688
+ };
4689
4689
 
4690
4690
  // src/angular/voice-routing-status.service.ts
4691
4691
  var _dec = [
@@ -4731,14 +4731,6 @@ let _VoiceRoutingStatusService = VoiceRoutingStatusService;
4731
4731
  import { computed as computed25, Injectable as Injectable26, signal as signal26 } from "@angular/core";
4732
4732
 
4733
4733
  // src/client/traceTimeline.ts
4734
- var fetchVoiceTraceTimeline = async (path = "/api/voice-traces", options = {}) => {
4735
- const fetchImpl = options.fetch ?? globalThis.fetch;
4736
- const response = await fetchImpl(path);
4737
- if (!response.ok) {
4738
- throw new Error(`Voice trace timeline failed: HTTP ${response.status}`);
4739
- }
4740
- return await response.json();
4741
- };
4742
4734
  var createVoiceTraceTimelineStore = (path = "/api/voice-traces", options = {}) => {
4743
4735
  const listeners = new Set;
4744
4736
  let closed = false;
@@ -4798,9 +4790,9 @@ var createVoiceTraceTimelineStore = (path = "/api/voice-traces", options = {}) =
4798
4790
  }
4799
4791
  return {
4800
4792
  close,
4793
+ refresh,
4801
4794
  getServerSnapshot: () => snapshot,
4802
4795
  getSnapshot: () => snapshot,
4803
- refresh,
4804
4796
  subscribe: (listener) => {
4805
4797
  listeners.add(listener);
4806
4798
  return () => {
@@ -4809,6 +4801,14 @@ var createVoiceTraceTimelineStore = (path = "/api/voice-traces", options = {}) =
4809
4801
  }
4810
4802
  };
4811
4803
  };
4804
+ var fetchVoiceTraceTimeline = async (path = "/api/voice-traces", options = {}) => {
4805
+ const fetchImpl = options.fetch ?? globalThis.fetch;
4806
+ const response = await fetchImpl(path);
4807
+ if (!response.ok) {
4808
+ throw new Error(`Voice trace timeline failed: HTTP ${response.status}`);
4809
+ }
4810
+ return await response.json();
4811
+ };
4812
4812
 
4813
4813
  // src/angular/voice-trace-timeline.service.ts
4814
4814
  var _dec = [
@@ -4972,22 +4972,6 @@ let _VoiceAgentSquadStatusService = VoiceAgentSquadStatusService;
4972
4972
  import { computed as computed27, Injectable as Injectable28, signal as signal28 } from "@angular/core";
4973
4973
 
4974
4974
  // src/client/turnLatency.ts
4975
- var fetchVoiceTurnLatency = async (path = "/api/turn-latency", options = {}) => {
4976
- const fetchImpl = options.fetch ?? globalThis.fetch;
4977
- const response = await fetchImpl(path);
4978
- if (!response.ok) {
4979
- throw new Error(`Voice turn latency failed: HTTP ${response.status}`);
4980
- }
4981
- return await response.json();
4982
- };
4983
- var runVoiceTurnLatencyProof = async (path, options = {}) => {
4984
- const fetchImpl = options.fetch ?? globalThis.fetch;
4985
- const response = await fetchImpl(path, { method: "POST" });
4986
- if (!response.ok) {
4987
- throw new Error(`Voice turn latency proof failed: HTTP ${response.status}`);
4988
- }
4989
- return response.json();
4990
- };
4991
4975
  var createVoiceTurnLatencyStore = (path = "/api/turn-latency", options = {}) => {
4992
4976
  const listeners = new Set;
4993
4977
  let closed = false;
@@ -5061,10 +5045,10 @@ var createVoiceTurnLatencyStore = (path = "/api/turn-latency", options = {}) =>
5061
5045
  }
5062
5046
  return {
5063
5047
  close,
5064
- getServerSnapshot: () => snapshot,
5065
- getSnapshot: () => snapshot,
5066
5048
  refresh,
5067
5049
  runProof,
5050
+ getServerSnapshot: () => snapshot,
5051
+ getSnapshot: () => snapshot,
5068
5052
  subscribe: (listener) => {
5069
5053
  listeners.add(listener);
5070
5054
  return () => {
@@ -5073,6 +5057,22 @@ var createVoiceTurnLatencyStore = (path = "/api/turn-latency", options = {}) =>
5073
5057
  }
5074
5058
  };
5075
5059
  };
5060
+ var fetchVoiceTurnLatency = async (path = "/api/turn-latency", options = {}) => {
5061
+ const fetchImpl = options.fetch ?? globalThis.fetch;
5062
+ const response = await fetchImpl(path);
5063
+ if (!response.ok) {
5064
+ throw new Error(`Voice turn latency failed: HTTP ${response.status}`);
5065
+ }
5066
+ return await response.json();
5067
+ };
5068
+ var runVoiceTurnLatencyProof = async (path, options = {}) => {
5069
+ const fetchImpl = options.fetch ?? globalThis.fetch;
5070
+ const response = await fetchImpl(path, { method: "POST" });
5071
+ if (!response.ok) {
5072
+ throw new Error(`Voice turn latency proof failed: HTTP ${response.status}`);
5073
+ }
5074
+ return response.json();
5075
+ };
5076
5076
 
5077
5077
  // src/angular/voice-turn-latency.service.ts
5078
5078
  var _dec = [
@@ -5119,14 +5119,6 @@ let _VoiceTurnLatencyService = VoiceTurnLatencyService;
5119
5119
  import { computed as computed28, Injectable as Injectable29, signal as signal29 } from "@angular/core";
5120
5120
 
5121
5121
  // src/client/turnQuality.ts
5122
- var fetchVoiceTurnQuality = async (path = "/api/turn-quality", options = {}) => {
5123
- const fetchImpl = options.fetch ?? globalThis.fetch;
5124
- const response = await fetchImpl(path);
5125
- if (!response.ok) {
5126
- throw new Error(`Voice turn quality failed: HTTP ${response.status}`);
5127
- }
5128
- return await response.json();
5129
- };
5130
5122
  var createVoiceTurnQualityStore = (path = "/api/turn-quality", options = {}) => {
5131
5123
  const listeners = new Set;
5132
5124
  let closed = false;
@@ -5185,9 +5177,9 @@ var createVoiceTurnQualityStore = (path = "/api/turn-quality", options = {}) =>
5185
5177
  }
5186
5178
  return {
5187
5179
  close,
5180
+ refresh,
5188
5181
  getServerSnapshot: () => snapshot,
5189
5182
  getSnapshot: () => snapshot,
5190
- refresh,
5191
5183
  subscribe: (listener) => {
5192
5184
  listeners.add(listener);
5193
5185
  return () => {
@@ -5196,6 +5188,14 @@ var createVoiceTurnQualityStore = (path = "/api/turn-quality", options = {}) =>
5196
5188
  }
5197
5189
  };
5198
5190
  };
5191
+ var fetchVoiceTurnQuality = async (path = "/api/turn-quality", options = {}) => {
5192
+ const fetchImpl = options.fetch ?? globalThis.fetch;
5193
+ const response = await fetchImpl(path);
5194
+ if (!response.ok) {
5195
+ throw new Error(`Voice turn quality failed: HTTP ${response.status}`);
5196
+ }
5197
+ return await response.json();
5198
+ };
5199
5199
 
5200
5200
  // src/angular/voice-turn-quality.service.ts
5201
5201
  var _dec = [
@@ -5241,14 +5241,6 @@ let _VoiceTurnQualityService = VoiceTurnQualityService;
5241
5241
  import { computed as computed29, Injectable as Injectable30, signal as signal30 } from "@angular/core";
5242
5242
 
5243
5243
  // src/client/workflowStatus.ts
5244
- var fetchVoiceWorkflowStatus = async (path = "/evals/scenarios/json", options = {}) => {
5245
- const fetchImpl = options.fetch ?? globalThis.fetch;
5246
- const response = await fetchImpl(path);
5247
- if (!response.ok) {
5248
- throw new Error(`Voice workflow status failed: HTTP ${response.status}`);
5249
- }
5250
- return await response.json();
5251
- };
5252
5244
  var createVoiceWorkflowStatusStore = (path = "/evals/scenarios/json", options = {}) => {
5253
5245
  const listeners = new Set;
5254
5246
  let closed = false;
@@ -5307,9 +5299,9 @@ var createVoiceWorkflowStatusStore = (path = "/evals/scenarios/json", options =
5307
5299
  }
5308
5300
  return {
5309
5301
  close,
5302
+ refresh,
5310
5303
  getServerSnapshot: () => snapshot,
5311
5304
  getSnapshot: () => snapshot,
5312
- refresh,
5313
5305
  subscribe: (listener) => {
5314
5306
  listeners.add(listener);
5315
5307
  return () => {
@@ -5318,6 +5310,14 @@ var createVoiceWorkflowStatusStore = (path = "/evals/scenarios/json", options =
5318
5310
  }
5319
5311
  };
5320
5312
  };
5313
+ var fetchVoiceWorkflowStatus = async (path = "/evals/scenarios/json", options = {}) => {
5314
+ const fetchImpl = options.fetch ?? globalThis.fetch;
5315
+ const response = await fetchImpl(path);
5316
+ if (!response.ok) {
5317
+ throw new Error(`Voice workflow status failed: HTTP ${response.status}`);
5318
+ }
5319
+ return await response.json();
5320
+ };
5321
5321
 
5322
5322
  // src/angular/voice-workflow-status.service.ts
5323
5323
  var _dec = [