@absolutejs/voice 0.0.22-beta.54 → 0.0.22-beta.540

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 (493) hide show
  1. package/README.md +4518 -951
  2. package/dist/angular/index.d.ts +36 -5
  3. package/dist/angular/index.js +4189 -390
  4. package/dist/angular/voice-agent-squad-status.service.d.ts +12 -0
  5. package/dist/angular/voice-call-debugger.service.d.ts +12 -0
  6. package/dist/angular/voice-call-player.service.d.ts +19 -0
  7. package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
  8. package/dist/angular/voice-controller.service.d.ts +3 -1
  9. package/dist/angular/voice-cost-dashboard.service.d.ts +15 -0
  10. package/dist/angular/voice-delivery-runtime.service.d.ts +16 -0
  11. package/dist/angular/voice-live-agent-console.service.d.ts +16 -0
  12. package/dist/angular/voice-live-call-viewer.service.d.ts +16 -0
  13. package/dist/angular/voice-live-ops.service.d.ts +11 -0
  14. package/dist/angular/voice-ops-action-center.service.d.ts +13 -0
  15. package/dist/angular/voice-ops-status.service.d.ts +12 -0
  16. package/dist/angular/voice-platform-coverage.service.d.ts +12 -0
  17. package/dist/angular/voice-profile-comparison.service.d.ts +12 -0
  18. package/dist/angular/voice-proof-trends.service.d.ts +12 -0
  19. package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
  20. package/dist/angular/voice-provider-contracts.service.d.ts +12 -0
  21. package/dist/angular/voice-provider-status.service.d.ts +2 -2
  22. package/dist/angular/voice-readiness-failures.service.d.ts +13 -0
  23. package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +12 -0
  24. package/dist/angular/voice-replay-timeline.service.d.ts +13 -0
  25. package/dist/angular/voice-routing-status.service.d.ts +11 -0
  26. package/dist/angular/voice-session-observability.service.d.ts +12 -0
  27. package/dist/angular/voice-session-snapshot.service.d.ts +13 -0
  28. package/dist/angular/voice-stream.service.d.ts +4 -1
  29. package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
  30. package/dist/angular/voice-turn-latency.service.d.ts +13 -0
  31. package/dist/angular/voice-turn-quality.service.d.ts +12 -0
  32. package/dist/angular/voice-widget.service.d.ts +18 -0
  33. package/dist/angular/voice-workflow-status.service.d.ts +2 -2
  34. package/dist/client/actions.d.ts +95 -1
  35. package/dist/client/agentSquadStatus.d.ts +37 -0
  36. package/dist/client/agentSquadStatusWidget.d.ts +24 -0
  37. package/dist/client/audioPlayer.d.ts +2 -2
  38. package/dist/client/bargeInMonitor.d.ts +7 -0
  39. package/dist/client/browserMedia.d.ts +8 -0
  40. package/dist/client/browserNoiseSuppression.d.ts +42 -0
  41. package/dist/client/browserVoiceSupport.d.ts +22 -0
  42. package/dist/client/callDebugger.d.ts +21 -0
  43. package/dist/client/callDebuggerWidget.d.ts +30 -0
  44. package/dist/client/callPlayer.d.ts +41 -0
  45. package/dist/client/campaignDialerProof.d.ts +25 -0
  46. package/dist/client/connection.d.ts +4 -3
  47. package/dist/client/controller.d.ts +1 -1
  48. package/dist/client/conversationAnalytics.d.ts +30 -0
  49. package/dist/client/costDashboard.d.ts +27 -0
  50. package/dist/client/createVoiceStream.d.ts +1 -1
  51. package/dist/client/deliveryRuntime.d.ts +36 -0
  52. package/dist/client/deliveryRuntimeWidget.d.ts +37 -0
  53. package/dist/client/duplex.d.ts +2 -2
  54. package/dist/client/htmx.d.ts +1 -1
  55. package/dist/client/htmxAttributes.d.ts +24 -0
  56. package/dist/client/htmxBootstrap.js +1029 -73
  57. package/dist/client/htmxDashboardRenderers.d.ts +71 -0
  58. package/dist/client/index.d.ts +106 -15
  59. package/dist/client/index.js +10494 -279
  60. package/dist/client/liveAgentConsole.d.ts +28 -0
  61. package/dist/client/liveCallViewer.d.ts +42 -0
  62. package/dist/client/liveOps.d.ts +22 -0
  63. package/dist/client/liveOpsWidget.d.ts +23 -0
  64. package/dist/client/liveTurnLatency.d.ts +41 -0
  65. package/dist/client/microphone.d.ts +4 -4
  66. package/dist/client/opsActionCenter.d.ts +56 -0
  67. package/dist/client/opsActionCenterWidget.d.ts +29 -0
  68. package/dist/client/opsActionHistory.d.ts +21 -0
  69. package/dist/client/opsActionHistoryWidget.d.ts +11 -0
  70. package/dist/client/opsStatus.d.ts +21 -0
  71. package/dist/client/opsStatusWidget.d.ts +10 -10
  72. package/dist/client/platformCoverage.d.ts +21 -0
  73. package/dist/client/platformCoverageWidget.d.ts +38 -0
  74. package/dist/client/profileComparison.d.ts +21 -0
  75. package/dist/client/profileComparisonWidget.d.ts +41 -0
  76. package/dist/client/profileSwitchRecommendation.d.ts +21 -0
  77. package/dist/client/profileSwitchRecommendationWidget.d.ts +12 -0
  78. package/dist/client/proofTrends.d.ts +21 -0
  79. package/dist/client/proofTrendsWidget.d.ts +38 -0
  80. package/dist/client/providerCapabilities.d.ts +21 -0
  81. package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
  82. package/dist/client/providerContracts.d.ts +21 -0
  83. package/dist/client/providerContractsWidget.d.ts +37 -0
  84. package/dist/client/providerSimulationControls.d.ts +33 -0
  85. package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
  86. package/dist/client/providerStatus.d.ts +5 -3
  87. package/dist/client/providerStatusWidget.d.ts +32 -0
  88. package/dist/client/reactiveSource.d.ts +8 -0
  89. package/dist/client/readinessFailures.d.ts +21 -0
  90. package/dist/client/readinessFailuresWidget.d.ts +42 -0
  91. package/dist/client/reconnectProfileEvidence.d.ts +21 -0
  92. package/dist/client/reconnectProfileEvidenceWidget.d.ts +39 -0
  93. package/dist/client/replayTimeline.d.ts +26 -0
  94. package/dist/client/routingStatus.d.ts +21 -0
  95. package/dist/client/routingStatusWidget.d.ts +32 -0
  96. package/dist/client/sessionObservability.d.ts +21 -0
  97. package/dist/client/sessionObservabilityWidget.d.ts +31 -0
  98. package/dist/client/sessionSnapshot.d.ts +23 -0
  99. package/dist/client/sessionSnapshotWidget.d.ts +33 -0
  100. package/dist/client/store.d.ts +1 -1
  101. package/dist/client/traceTimeline.d.ts +21 -0
  102. package/dist/client/traceTimelineWidget.d.ts +36 -0
  103. package/dist/client/turnLatency.d.ts +24 -0
  104. package/dist/client/turnLatencyWidget.d.ts +33 -0
  105. package/dist/client/turnQuality.d.ts +21 -0
  106. package/dist/client/turnQualityWidget.d.ts +32 -0
  107. package/dist/client/voiceWidgetView.d.ts +48 -0
  108. package/dist/client/workflowStatus.d.ts +5 -3
  109. package/dist/{agent.d.ts → core/agent.d.ts} +81 -6
  110. package/dist/core/agentPerformanceReport.d.ts +40 -0
  111. package/dist/core/agentSquadContract.d.ts +98 -0
  112. package/dist/core/agentState.d.ts +12 -0
  113. package/dist/core/agentTools.d.ts +132 -0
  114. package/dist/core/aiScorecard.d.ts +32 -0
  115. package/dist/core/aiVoiceModel.d.ts +15 -0
  116. package/dist/core/amdDetector.d.ts +25 -0
  117. package/dist/{assistant.d.ts → core/assistant.d.ts} +14 -14
  118. package/dist/core/assistantExperiment.d.ts +42 -0
  119. package/dist/{assistantHealth.d.ts → core/assistantHealth.d.ts} +9 -9
  120. package/dist/{assistantMemory.d.ts → core/assistantMemory.d.ts} +10 -10
  121. package/dist/core/assistantMode.d.ts +22 -0
  122. package/dist/{audioConditioning.d.ts → core/audioConditioning.d.ts} +2 -2
  123. package/dist/core/audit.d.ts +131 -0
  124. package/dist/core/auditDeliveryRoutes.d.ts +85 -0
  125. package/dist/core/auditExport.d.ts +34 -0
  126. package/dist/core/auditRoutes.d.ts +66 -0
  127. package/dist/core/auditSinks.d.ts +151 -0
  128. package/dist/core/backchannel.d.ts +18 -0
  129. package/dist/core/bargeInRoutes.d.ts +56 -0
  130. package/dist/core/bookingFlow.d.ts +43 -0
  131. package/dist/core/browserCallProfiles.d.ts +120 -0
  132. package/dist/core/browserMediaRoutes.d.ts +62 -0
  133. package/dist/core/calendarAdapter.d.ts +47 -0
  134. package/dist/core/calendarSlots.d.ts +35 -0
  135. package/dist/core/callDebugger.d.ts +66 -0
  136. package/dist/core/callDisposition.d.ts +38 -0
  137. package/dist/core/callQuota.d.ts +54 -0
  138. package/dist/core/callScorecard.d.ts +53 -0
  139. package/dist/core/callerCRMLinker.d.ts +29 -0
  140. package/dist/core/callerMemory.d.ts +37 -0
  141. package/dist/core/callingWindow.d.ts +26 -0
  142. package/dist/core/campaign.d.ts +795 -0
  143. package/dist/core/campaignControls.d.ts +37 -0
  144. package/dist/core/campaignDialers.d.ts +111 -0
  145. package/dist/core/campaignTemplate.d.ts +16 -0
  146. package/dist/core/competitiveCoverage.d.ts +141 -0
  147. package/dist/core/conversationSimulator.d.ts +73 -0
  148. package/dist/{correction.d.ts → core/correction.d.ts} +5 -4
  149. package/dist/core/costAccounting.d.ts +76 -0
  150. package/dist/core/costPredictor.d.ts +74 -0
  151. package/dist/core/crmCallLogger.d.ts +37 -0
  152. package/dist/core/crmContract.d.ts +70 -0
  153. package/dist/core/dataControl.d.ts +180 -0
  154. package/dist/core/defineVoiceAssistant.d.ts +68 -0
  155. package/dist/core/deliveryRuntime.d.ts +159 -0
  156. package/dist/core/deliverySinkRoutes.d.ts +117 -0
  157. package/dist/core/demoReadyRoutes.d.ts +98 -0
  158. package/dist/{diagnosticsRoutes.d.ts → core/diagnosticsRoutes.d.ts} +2 -2
  159. package/dist/core/dncRegistry.d.ts +38 -0
  160. package/dist/core/dtmfCollector.d.ts +37 -0
  161. package/dist/{evalRoutes.d.ts → core/evalRoutes.d.ts} +26 -20
  162. package/dist/{fileStore.d.ts → core/fileStore.d.ts} +34 -20
  163. package/dist/core/guardrails.d.ts +128 -0
  164. package/dist/{handoff.d.ts → core/handoff.d.ts} +10 -10
  165. package/dist/{handoffHealth.d.ts → core/handoffHealth.d.ts} +9 -9
  166. package/dist/core/holdAudio.d.ts +23 -0
  167. package/dist/{htmx.d.ts → core/htmx.d.ts} +2 -2
  168. package/dist/core/htmxDashboardRoutes.d.ts +250 -0
  169. package/dist/core/iceServers.d.ts +34 -0
  170. package/dist/core/incidentBundle.d.ts +119 -0
  171. package/dist/core/incidentTimeline.d.ts +260 -0
  172. package/dist/core/ivrPlan.d.ts +40 -0
  173. package/dist/core/latencySlo.d.ts +56 -0
  174. package/dist/core/liveCoach.d.ts +43 -0
  175. package/dist/core/liveLatency.d.ts +78 -0
  176. package/dist/core/liveOps.d.ts +190 -0
  177. package/dist/core/llmJudge.d.ts +45 -0
  178. package/dist/{logger.d.ts → core/logger.d.ts} +1 -2
  179. package/dist/core/mcpToolset.d.ts +58 -0
  180. package/dist/core/mediaPipelineRoutes.d.ts +171 -0
  181. package/dist/core/mediaPipelineSurfaces.d.ts +48 -0
  182. package/dist/{memoryStore.d.ts → core/memoryStore.d.ts} +1 -1
  183. package/dist/core/midCallSummary.d.ts +27 -0
  184. package/dist/{modelAdapters.d.ts → core/modelAdapters.d.ts} +59 -7
  185. package/dist/core/monitor.d.ts +148 -0
  186. package/dist/core/multilingualProof.d.ts +77 -0
  187. package/dist/core/noShowPredictor.d.ts +46 -0
  188. package/dist/core/oauth2TokenSource.d.ts +21 -0
  189. package/dist/core/observabilityExport.d.ts +501 -0
  190. package/dist/core/openaiTTS.d.ts +18 -0
  191. package/dist/core/operationalStatus.d.ts +87 -0
  192. package/dist/core/operationsRecord.d.ts +371 -0
  193. package/dist/{ops.d.ts → core/ops.d.ts} +70 -70
  194. package/dist/core/opsActionAuditRoutes.d.ts +99 -0
  195. package/dist/{opsConsoleRoutes.d.ts → core/opsConsoleRoutes.d.ts} +11 -8
  196. package/dist/{opsPresets.d.ts → core/opsPresets.d.ts} +2 -2
  197. package/dist/core/opsRecovery.d.ts +137 -0
  198. package/dist/{opsRuntime.d.ts → core/opsRuntime.d.ts} +6 -6
  199. package/dist/{opsSinks.d.ts → core/opsSinks.d.ts} +19 -19
  200. package/dist/core/opsStatus.d.ts +76 -0
  201. package/dist/core/opsStatusRoutes.d.ts +33 -0
  202. package/dist/{opsWebhook.d.ts → core/opsWebhook.d.ts} +15 -15
  203. package/dist/core/otelExporter.d.ts +83 -0
  204. package/dist/core/outcomeContract.d.ts +146 -0
  205. package/dist/{outcomeRecipes.d.ts → core/outcomeRecipes.d.ts} +4 -4
  206. package/dist/core/pathway.d.ts +94 -0
  207. package/dist/core/pathwayCompiler.d.ts +31 -0
  208. package/dist/core/pathwayGenerator.d.ts +27 -0
  209. package/dist/core/pathwayRuntime.d.ts +57 -0
  210. package/dist/core/pathwaySlotCollector.d.ts +29 -0
  211. package/dist/core/pathwayVisualizer.d.ts +8 -0
  212. package/dist/core/phoneAgent.d.ts +139 -0
  213. package/dist/core/phoneAgentProductionSmoke.d.ts +115 -0
  214. package/dist/core/phoneProvisioning.d.ts +29 -0
  215. package/dist/core/platformCoverage.d.ts +91 -0
  216. package/dist/{plugin.d.ts → core/plugin.d.ts} +2 -2
  217. package/dist/core/postCallAnalysis.d.ts +98 -0
  218. package/dist/core/postCallSurvey.d.ts +41 -0
  219. package/dist/{postgresStore.d.ts → core/postgresStore.d.ts} +20 -9
  220. package/dist/{presets.d.ts → core/presets.d.ts} +3 -3
  221. package/dist/core/productionReadiness.d.ts +757 -0
  222. package/dist/core/profileSwitchRecommendation.d.ts +350 -0
  223. package/dist/core/promptInjectionGuard.d.ts +30 -0
  224. package/dist/core/proofAssertions.d.ts +32 -0
  225. package/dist/core/proofPack.d.ts +211 -0
  226. package/dist/core/proofRunner.d.ts +79 -0
  227. package/dist/core/proofTrends.d.ts +966 -0
  228. package/dist/{providerAdapters.d.ts → core/providerAdapters.d.ts} +16 -5
  229. package/dist/core/providerCapabilities.d.ts +92 -0
  230. package/dist/core/providerDecisionTraces.d.ts +130 -0
  231. package/dist/{providerHealth.d.ts → core/providerHealth.d.ts} +15 -5
  232. package/dist/core/providerOrchestration.d.ts +109 -0
  233. package/dist/core/providerRouterTraces.d.ts +35 -0
  234. package/dist/core/providerRoutingContract.d.ts +71 -0
  235. package/dist/core/providerSlo.d.ts +142 -0
  236. package/dist/core/providerStackRecommendations.d.ts +188 -0
  237. package/dist/core/qualityDriftDetector.d.ts +44 -0
  238. package/dist/{qualityRoutes.d.ts → core/qualityRoutes.d.ts} +7 -7
  239. package/dist/{queue.d.ts → core/queue.d.ts} +48 -39
  240. package/dist/core/ragTool.d.ts +52 -0
  241. package/dist/core/readinessProfiles.d.ts +45 -0
  242. package/dist/core/realtimeChannel.d.ts +136 -0
  243. package/dist/core/realtimeProviderContracts.d.ts +133 -0
  244. package/dist/core/reconnectContract.d.ts +177 -0
  245. package/dist/core/recordingRedaction.d.ts +47 -0
  246. package/dist/core/recordingStore.d.ts +60 -0
  247. package/dist/core/redaction.d.ts +13 -0
  248. package/dist/core/reminderScheduler.d.ts +43 -0
  249. package/dist/{resilienceRoutes.d.ts → core/resilienceRoutes.d.ts} +45 -5
  250. package/dist/core/retention.d.ts +37 -0
  251. package/dist/core/retryPolicy.d.ts +38 -0
  252. package/dist/core/routeAuth.d.ts +58 -0
  253. package/dist/{routing.d.ts → core/routing.d.ts} +2 -2
  254. package/dist/{runtimeOps.d.ts → core/runtimeOps.d.ts} +3 -3
  255. package/dist/{s3Store.d.ts → core/s3Store.d.ts} +12 -3
  256. package/dist/core/scorecardCalibration.d.ts +31 -0
  257. package/dist/core/semanticTurn.d.ts +27 -0
  258. package/dist/{session.d.ts → core/session.d.ts} +1 -1
  259. package/dist/core/sessionObservability.d.ts +145 -0
  260. package/dist/{sessionReplay.d.ts → core/sessionReplay.d.ts} +31 -19
  261. package/dist/core/sessionSnapshot.d.ts +109 -0
  262. package/dist/core/simulationSuite.d.ts +144 -0
  263. package/dist/core/sloCalibration.d.ts +185 -0
  264. package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +20 -9
  265. package/dist/{store.d.ts → core/store.d.ts} +1 -1
  266. package/dist/core/supervisorPermissions.d.ts +33 -0
  267. package/dist/core/supervisorPresence.d.ts +49 -0
  268. package/dist/core/telephonyMediaRoutes.d.ts +72 -0
  269. package/dist/core/telephonyOutcome.d.ts +269 -0
  270. package/dist/core/toolContract.d.ts +161 -0
  271. package/dist/core/toolRuntime.d.ts +50 -0
  272. package/dist/{trace.d.ts → core/trace.d.ts} +61 -22
  273. package/dist/core/traceDeliveryRoutes.d.ts +86 -0
  274. package/dist/core/traceTimeline.d.ts +97 -0
  275. package/dist/core/transcriptAnnotator.d.ts +41 -0
  276. package/dist/{turnDetection.d.ts → core/turnDetection.d.ts} +1 -1
  277. package/dist/core/turnLatency.d.ts +95 -0
  278. package/dist/core/turnProfiles.d.ts +3 -0
  279. package/dist/core/turnQuality.d.ts +94 -0
  280. package/dist/{types.d.ts → core/types.d.ts} +416 -81
  281. package/dist/core/vapiAdapter.d.ts +160 -0
  282. package/dist/core/variableAnalytics.d.ts +47 -0
  283. package/dist/core/voiceConfiguration.d.ts +8 -0
  284. package/dist/core/voiceMonitoring.d.ts +444 -0
  285. package/dist/core/webhookFanout.d.ts +48 -0
  286. package/dist/core/webhookVerification.d.ts +27 -0
  287. package/dist/core/whisperChannel.d.ts +50 -0
  288. package/dist/{workflowContract.d.ts → core/workflowContract.d.ts} +21 -21
  289. package/dist/core/zeroDataRetention.d.ts +31 -0
  290. package/dist/drizzle/assistantMemory.d.ts +112 -0
  291. package/dist/drizzle/eval.d.ts +61 -0
  292. package/dist/drizzle/handoff.d.ts +62 -0
  293. package/dist/drizzle/incidentBundle.d.ts +61 -0
  294. package/dist/drizzle/index.d.ts +1105 -0
  295. package/dist/drizzle/index.js +3059 -0
  296. package/dist/drizzle/observabilityExport.d.ts +61 -0
  297. package/dist/drizzle/proofTrends.d.ts +126 -0
  298. package/dist/drizzle/runtimeStorage.d.ts +1315 -0
  299. package/dist/drizzle/shared.d.ts +76 -0
  300. package/dist/embed/index.d.ts +38 -0
  301. package/dist/embed/index.js +1710 -0
  302. package/dist/embed/voice-widget.js +10 -0
  303. package/dist/index.d.ts +369 -74
  304. package/dist/index.js +45779 -7413
  305. package/dist/internal/evidence.d.ts +10 -0
  306. package/dist/internal/html.d.ts +6 -0
  307. package/dist/internal/status.d.ts +7 -0
  308. package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
  309. package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
  310. package/dist/react/VoiceCallPlayer.d.ts +11 -0
  311. package/dist/react/VoiceCostDashboard.d.ts +10 -0
  312. package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
  313. package/dist/react/VoiceLiveAgentConsole.d.ts +11 -0
  314. package/dist/react/VoiceLiveCallViewer.d.ts +9 -0
  315. package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
  316. package/dist/react/VoiceOpsStatus.d.ts +1 -1
  317. package/dist/react/VoicePlatformCoverage.d.ts +6 -0
  318. package/dist/react/VoiceProfileComparison.d.ts +6 -0
  319. package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
  320. package/dist/react/VoiceProofTrends.d.ts +6 -0
  321. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  322. package/dist/react/VoiceProviderContracts.d.ts +6 -0
  323. package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
  324. package/dist/react/VoiceProviderStatus.d.ts +6 -0
  325. package/dist/react/VoiceReadinessFailures.d.ts +6 -0
  326. package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
  327. package/dist/react/VoiceReplayTimeline.d.ts +6 -0
  328. package/dist/react/VoiceRoutingStatus.d.ts +6 -0
  329. package/dist/react/VoiceSessionObservability.d.ts +6 -0
  330. package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
  331. package/dist/react/VoiceTraceTimeline.d.ts +6 -0
  332. package/dist/react/VoiceTurnLatency.d.ts +6 -0
  333. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  334. package/dist/react/VoiceWidget.d.ts +13 -0
  335. package/dist/react/index.d.ts +80 -6
  336. package/dist/react/index.js +12900 -320
  337. package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
  338. package/dist/react/useVoiceCallDebugger.d.ts +8 -0
  339. package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
  340. package/dist/react/useVoiceController.d.ts +4 -1
  341. package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
  342. package/dist/react/useVoiceLiveOps.d.ts +9 -0
  343. package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
  344. package/dist/react/useVoiceOpsStatus.d.ts +8 -0
  345. package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
  346. package/dist/react/useVoiceProfileComparison.d.ts +8 -0
  347. package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
  348. package/dist/react/useVoiceProofTrends.d.ts +8 -0
  349. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  350. package/dist/react/useVoiceProviderContracts.d.ts +8 -0
  351. package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
  352. package/dist/react/useVoiceProviderStatus.d.ts +1 -1
  353. package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
  354. package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
  355. package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
  356. package/dist/react/useVoiceSessionObservability.d.ts +8 -0
  357. package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
  358. package/dist/react/useVoiceStream.d.ts +4 -1
  359. package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
  360. package/dist/react/useVoiceTurnLatency.d.ts +9 -0
  361. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  362. package/dist/react/useVoiceWorkflowStatus.d.ts +1 -1
  363. package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
  364. package/dist/svelte/createVoiceCallDebugger.d.ts +10 -0
  365. package/dist/svelte/createVoiceCallPlayer.d.ts +33 -0
  366. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
  367. package/dist/svelte/createVoiceCostDashboard.d.ts +13 -0
  368. package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
  369. package/dist/svelte/createVoiceLiveAgentConsole.d.ts +23 -0
  370. package/dist/svelte/createVoiceLiveCallViewer.d.ts +26 -0
  371. package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
  372. package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
  373. package/dist/svelte/createVoiceOpsStatus.d.ts +4 -4
  374. package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
  375. package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
  376. package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
  377. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  378. package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
  379. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
  380. package/dist/svelte/createVoiceProviderStatus.d.ts +5 -3
  381. package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
  382. package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
  383. package/dist/svelte/createVoiceReplayTimeline.d.ts +13 -0
  384. package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
  385. package/dist/svelte/createVoiceSessionObservability.d.ts +10 -0
  386. package/dist/svelte/createVoiceSessionSnapshot.d.ts +11 -0
  387. package/dist/svelte/createVoiceStream.d.ts +1 -1
  388. package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
  389. package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
  390. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  391. package/dist/svelte/createVoiceWidget.d.ts +19 -0
  392. package/dist/svelte/createVoiceWorkflowStatus.d.ts +2 -2
  393. package/dist/svelte/index.d.ts +37 -6
  394. package/dist/svelte/index.js +7047 -768
  395. package/dist/telephony/contract.d.ts +61 -0
  396. package/dist/telephony/matrix.d.ts +97 -0
  397. package/dist/telephony/plivo.d.ts +303 -0
  398. package/dist/telephony/response.d.ts +1 -1
  399. package/dist/telephony/security.d.ts +182 -0
  400. package/dist/telephony/telnyx.d.ts +291 -0
  401. package/dist/telephony/twilio.d.ts +149 -15
  402. package/dist/testing/accuracy.d.ts +1 -1
  403. package/dist/testing/benchmark.d.ts +15 -15
  404. package/dist/testing/corrected.d.ts +9 -9
  405. package/dist/testing/duplex.d.ts +5 -5
  406. package/dist/testing/fixtures.d.ts +4 -4
  407. package/dist/testing/index.d.ts +13 -13
  408. package/dist/testing/index.js +5756 -636
  409. package/dist/testing/ioProviderSimulator.d.ts +5 -5
  410. package/dist/testing/providerSimulator.d.ts +5 -5
  411. package/dist/testing/review.d.ts +8 -8
  412. package/dist/testing/sessionBenchmark.d.ts +13 -13
  413. package/dist/testing/stt.d.ts +3 -3
  414. package/dist/testing/telephony.d.ts +27 -2
  415. package/dist/testing/tts.d.ts +2 -2
  416. package/dist/vue/VoiceCallDebuggerLaunch.d.ts +72 -0
  417. package/dist/vue/VoiceCallPlayer.d.ts +40 -0
  418. package/dist/vue/VoiceCostDashboard.d.ts +57 -0
  419. package/dist/vue/VoiceDeliveryRuntime.d.ts +34 -0
  420. package/dist/vue/VoiceLiveAgentConsole.d.ts +50 -0
  421. package/dist/vue/VoiceLiveCallViewer.d.ts +35 -0
  422. package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
  423. package/dist/vue/VoiceOpsStatus.d.ts +4 -0
  424. package/dist/vue/VoicePlatformCoverage.d.ts +27 -0
  425. package/dist/vue/VoiceProofTrends.d.ts +25 -0
  426. package/dist/vue/VoiceProviderCapabilities.d.ts +55 -0
  427. package/dist/vue/VoiceProviderContracts.d.ts +25 -0
  428. package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
  429. package/dist/vue/VoiceProviderStatus.d.ts +55 -0
  430. package/dist/vue/VoiceReadinessFailures.d.ts +25 -0
  431. package/dist/vue/VoiceReconnectProfileEvidence.d.ts +25 -0
  432. package/dist/vue/VoiceReplayTimeline.d.ts +17 -0
  433. package/dist/vue/VoiceRoutingStatus.d.ts +55 -0
  434. package/dist/vue/VoiceSessionObservability.d.ts +27 -0
  435. package/dist/vue/VoiceSessionSnapshot.d.ts +72 -0
  436. package/dist/vue/VoiceTurnLatency.d.ts +73 -0
  437. package/dist/vue/VoiceTurnQuality.d.ts +55 -0
  438. package/dist/vue/VoiceWidget.d.ts +77 -0
  439. package/dist/vue/index.d.ts +49 -6
  440. package/dist/vue/index.js +12193 -402
  441. package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
  442. package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
  443. package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
  444. package/dist/vue/useVoiceController.d.ts +9 -7
  445. package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
  446. package/dist/vue/useVoiceLiveOps.d.ts +9 -0
  447. package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
  448. package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
  449. package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
  450. package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
  451. package/dist/vue/useVoiceProofTrends.d.ts +9 -0
  452. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  453. package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
  454. package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
  455. package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
  456. package/dist/vue/useVoiceReadinessFailures.d.ts +959 -0
  457. package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
  458. package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
  459. package/dist/vue/useVoiceSessionObservability.d.ts +9 -0
  460. package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
  461. package/dist/vue/useVoiceStream.d.ts +9 -6
  462. package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
  463. package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
  464. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  465. package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
  466. package/package.json +154 -256
  467. package/dist/angular/voice-app-kit-status.service.d.ts +0 -12
  468. package/dist/angular/voice-ops-status.component.d.ts +0 -15
  469. package/dist/appKit.d.ts +0 -92
  470. package/dist/client/appKitStatus.d.ts +0 -19
  471. package/dist/react/useVoiceAppKitStatus.d.ts +0 -8
  472. package/dist/svelte/createVoiceAppKitStatus.d.ts +0 -8
  473. package/dist/turnProfiles.d.ts +0 -6
  474. package/dist/vue/useVoiceAppKitStatus.d.ts +0 -9
  475. package/fixtures/README.md +0 -57
  476. package/fixtures/manifest.json +0 -199
  477. package/fixtures/pcm/dialogue-three-clean.pcm +0 -0
  478. package/fixtures/pcm/dialogue-three-mixed.pcm +0 -0
  479. package/fixtures/pcm/dialogue-two-clean.pcm +0 -0
  480. package/fixtures/pcm/dialogue-two-noisy.pcm +0 -0
  481. package/fixtures/pcm/multiturn-three-mixed.pcm +0 -0
  482. package/fixtures/pcm/multiturn-two-clean.pcm +0 -0
  483. package/fixtures/pcm/quietly-alone-clean.pcm +0 -0
  484. package/fixtures/pcm/rainstorms-noisy.pcm +0 -0
  485. package/fixtures/pcm/stella-bulgaria-bulgarian20.pcm +0 -0
  486. package/fixtures/pcm/stella-ghana-english507.pcm +0 -0
  487. package/fixtures/pcm/stella-india-english37.pcm +0 -0
  488. package/fixtures/pcm/stella-jamaica-jamaican-creole-english1.pcm +0 -0
  489. package/fixtures/pcm/stella-liberia-liberian-pidgin-english2.pcm +0 -0
  490. package/fixtures/pcm/stella-pakistan-english519.pcm +0 -0
  491. package/fixtures/pcm/stella-sierra-leone-krio5.pcm +0 -0
  492. package/fixtures/pcm/stella-singapore-english655.pcm +0 -0
  493. package/fixtures/pcm/traveled-back-route-clean.pcm +0 -0
@@ -1,24 +1,48 @@
1
- import type { SessionStore } from '@absolutejs/absolute';
2
- import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from './ops';
3
- import type { VoiceIntegrationSink } from './opsSinks';
4
- import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from './testing/review';
5
- import type { VoiceTraceEventStore } from './trace';
1
+ import type { MediaWebRTCStatsCollector, MediaWebRTCStatsReport, MediaWebRTCStatsReportInput, MediaWebRTCStreamContinuityInput, MediaWebRTCStreamContinuityReport } from "@absolutejs/media";
2
+ import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from "./ops";
3
+ import type { VoiceIntegrationSink } from "./opsSinks";
4
+ import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from "../testing/review";
5
+ import type { VoiceTraceEventStore } from "./trace";
6
+ import type { VoiceLiveOpsControlState } from "./liveOps";
7
+ import type { VoiceAuditActor, VoiceAuditEventStore } from "./audit";
8
+ import type { VoiceProfileSwitchGuardDecision, VoiceProfileSwitchGuardMode, VoiceProfileSwitchObservedSignals } from "./profileSwitchRecommendation";
9
+ import type { VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileHistoryReport } from "./proofTrends";
6
10
  export type AudioFormat = {
7
- container: 'raw';
8
- encoding: 'alaw' | 'mulaw' | 'pcm_s16le';
11
+ container: "raw";
12
+ encoding: "alaw" | "mulaw" | "pcm_s16le";
9
13
  sampleRateHz: number;
10
14
  channels: 1 | 2;
11
15
  };
12
16
  export type AudioChunk = ArrayBuffer | ArrayBufferView;
17
+ /**
18
+ * Structural contract for an inbound noise suppressor applied before STT.
19
+ * Matches `@absolutejs/media`'s `NoiseSuppressor`, so any media suppressor
20
+ * (`createFFmpegNoiseSuppressor`, `createEnergyGateNoiseSuppressor`, a Krisp
21
+ * adapter, etc.) satisfies it without a hard import.
22
+ */
23
+ export type VoiceNoiseSuppressor = {
24
+ readonly kind: string;
25
+ process: (input: {
26
+ format: AudioFormat;
27
+ pcm: ArrayBuffer | ArrayBufferView;
28
+ }) => Promise<{
29
+ bytes: Uint8Array;
30
+ format: AudioFormat;
31
+ }> | {
32
+ bytes: Uint8Array;
33
+ format: AudioFormat;
34
+ };
35
+ close?: () => Promise<void> | void;
36
+ };
13
37
  export type VoiceLanguageStrategy = {
14
- mode: 'auto-detect';
38
+ mode: "auto-detect";
15
39
  allowedLanguages?: string[];
16
40
  } | {
17
- mode: 'fixed';
41
+ mode: "fixed";
18
42
  primaryLanguage: string;
19
43
  secondaryLanguages?: string[];
20
44
  } | {
21
- mode: 'allow-switching';
45
+ mode: "allow-switching";
22
46
  primaryLanguage?: string;
23
47
  secondaryLanguages: string[];
24
48
  };
@@ -28,7 +52,7 @@ export type VoicePhraseHint = {
28
52
  boost?: number;
29
53
  metadata?: Record<string, unknown>;
30
54
  };
31
- export type VoiceCorrectionRiskTier = 'safe' | 'balanced' | 'risky';
55
+ export type VoiceCorrectionRiskTier = "safe" | "balanced" | "risky";
32
56
  export type VoiceDomainTerm = {
33
57
  text: string;
34
58
  aliases?: string[];
@@ -44,12 +68,18 @@ export type VoiceLexiconEntry = {
44
68
  metadata?: Record<string, unknown>;
45
69
  pronunciation?: string;
46
70
  };
71
+ export type VoiceTranscriptSentiment = {
72
+ label: "negative" | "neutral" | "positive" | (string & {});
73
+ metadata?: Record<string, unknown>;
74
+ score?: number;
75
+ };
47
76
  export type Transcript = {
48
77
  id: string;
49
78
  text: string;
50
79
  isFinal: boolean;
51
80
  confidence?: number;
52
81
  language?: string;
82
+ sentiment?: VoiceTranscriptSentiment;
53
83
  speaker?: string | number;
54
84
  startedAtMs?: number;
55
85
  endedAtMs?: number;
@@ -65,7 +95,7 @@ export type VoiceTranscriptQuality = {
65
95
  fallback?: VoiceFallbackDiagnostics;
66
96
  partialTranscriptCount: number;
67
97
  selectedTranscriptCount: number;
68
- source: 'fallback' | 'primary';
98
+ source: "fallback" | "primary";
69
99
  };
70
100
  export type VoiceTurnCorrectionDiagnostics = {
71
101
  attempted: boolean;
@@ -83,7 +113,7 @@ export type VoiceTurnCostEstimate = {
83
113
  primaryAudioMs: number;
84
114
  totalBillableAudioMs: number;
85
115
  };
86
- export type VoiceFallbackSelectionReason = 'fallback-empty' | 'primary-empty' | 'word-count-margin' | 'confidence-margin' | 'word-count-tiebreak' | 'kept-primary';
116
+ export type VoiceFallbackSelectionReason = "fallback-empty" | "primary-empty" | "word-count-margin" | "confidence-margin" | "word-count-tiebreak" | "kept-primary";
87
117
  export type VoiceFallbackDiagnostics = {
88
118
  attempted: boolean;
89
119
  fallbackConfidence?: number;
@@ -94,31 +124,31 @@ export type VoiceFallbackDiagnostics = {
94
124
  primaryWordCount: number;
95
125
  selected: boolean;
96
126
  selectionReason: VoiceFallbackSelectionReason;
97
- trigger: 'empty-turn' | 'low-confidence' | 'empty-or-low-confidence' | 'always';
127
+ trigger: "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
98
128
  };
99
129
  export type VoicePartialEvent = {
100
- type: 'partial';
130
+ type: "partial";
101
131
  transcript: Transcript;
102
132
  receivedAt: number;
103
133
  };
104
134
  export type VoiceFinalEvent = {
105
- type: 'final';
135
+ type: "final";
106
136
  transcript: Transcript;
107
137
  receivedAt: number;
108
138
  };
109
139
  export type VoiceEndOfTurnEvent = {
110
- type: 'endOfTurn';
111
- reason: 'vendor' | 'silence' | 'manual';
140
+ type: "endOfTurn";
141
+ reason: "vendor" | "silence" | "manual";
112
142
  receivedAt: number;
113
143
  };
114
144
  export type VoiceErrorEvent = {
115
- type: 'error';
145
+ type: "error";
116
146
  error: Error;
117
147
  recoverable: boolean;
118
148
  code?: string;
119
149
  };
120
150
  export type VoiceCloseEvent = {
121
- type: 'close';
151
+ type: "close";
122
152
  code?: number;
123
153
  reason?: string;
124
154
  recoverable?: boolean;
@@ -144,11 +174,11 @@ export type STTAdapterOpenOptions = {
144
174
  signal?: AbortSignal;
145
175
  };
146
176
  export type STTAdapter<TOptions extends STTAdapterOpenOptions = STTAdapterOpenOptions> = {
147
- kind: 'stt';
177
+ kind: "stt";
148
178
  open: (options: TOptions) => Promise<STTAdapterSession> | STTAdapterSession;
149
179
  };
150
180
  export type TTSAudioEvent = {
151
- type: 'audio';
181
+ type: "audio";
152
182
  chunk: AudioChunk;
153
183
  format: AudioFormat;
154
184
  receivedAt: number;
@@ -161,15 +191,26 @@ export type TTSSessionEventMap = {
161
191
  export type TTSAdapterSession = {
162
192
  on: <K extends keyof TTSSessionEventMap>(event: K, handler: (payload: TTSSessionEventMap[K]) => void | Promise<void>) => () => void;
163
193
  send: (text: string) => Promise<void>;
194
+ cancel?: (reason?: string) => Promise<void>;
164
195
  close: (reason?: string) => Promise<void>;
165
196
  };
197
+ export declare const ttsAdapterSessionCanCancel: (session: TTSAdapterSession) => session is TTSAdapterSession & {
198
+ cancel: (reason?: string) => Promise<void>;
199
+ };
200
+ export type VoiceTTSProsody = {
201
+ emphasis?: number;
202
+ pitch?: number;
203
+ speed?: number;
204
+ style?: string;
205
+ };
166
206
  export type TTSAdapterOpenOptions = {
167
207
  sessionId: string;
168
208
  lexicon?: VoiceLexiconEntry[];
209
+ prosody?: VoiceTTSProsody;
169
210
  signal?: AbortSignal;
170
211
  };
171
212
  export type TTSAdapter<TOptions extends TTSAdapterOpenOptions = TTSAdapterOpenOptions> = {
172
- kind: 'tts';
213
+ kind: "tts";
173
214
  open: (options: TOptions) => Promise<TTSAdapterSession> | TTSAdapterSession;
174
215
  };
175
216
  export type RealtimeSessionEventMap = STTSessionEventMap & {
@@ -185,20 +226,40 @@ export type RealtimeAdapterOpenOptions = {
185
226
  format: AudioFormat;
186
227
  languageStrategy?: VoiceLanguageStrategy;
187
228
  lexicon?: VoiceLexiconEntry[];
229
+ modalities?: ReadonlyArray<"audio" | "text">;
188
230
  phraseHints?: VoicePhraseHint[];
231
+ promptCacheKey?: string;
232
+ semanticVAD?: import("./assistantMode").VoiceSemanticVADConfig;
189
233
  signal?: AbortSignal;
190
234
  };
191
235
  export type RealtimeAdapter<TOptions extends RealtimeAdapterOpenOptions = RealtimeAdapterOpenOptions> = {
192
- kind: 'realtime';
236
+ kind: "realtime";
193
237
  open: (options: TOptions) => Promise<RealtimeAdapterSession> | RealtimeAdapterSession;
194
238
  };
195
- export type VoiceSessionStatus = 'active' | 'reconnecting' | 'completed' | 'failed';
239
+ export type VoiceSessionStatus = "active" | "reconnecting" | "completed" | "failed";
240
+ export type VoiceReconnectClientStatus = "idle" | "reconnecting" | "resumed" | "exhausted";
241
+ export type VoiceReconnectClientState = {
242
+ attempts: number;
243
+ lastDisconnectAt?: number;
244
+ lastResumedAt?: number;
245
+ maxAttempts: number;
246
+ nextAttemptAt?: number;
247
+ status: VoiceReconnectClientStatus;
248
+ };
249
+ export type VoiceTurnCitation = {
250
+ chunkId: string;
251
+ score: number;
252
+ source?: string;
253
+ title?: string;
254
+ };
196
255
  export type VoiceTurnRecord<TResult = unknown> = {
197
256
  id: string;
198
257
  text: string;
199
258
  quality?: VoiceTranscriptQuality;
200
259
  transcripts: Transcript[];
201
260
  assistantText?: string;
261
+ attachments?: import("./agent").VoiceAgentMessageAttachment[];
262
+ citations?: VoiceTurnCitation[];
202
263
  committedAt: number;
203
264
  result?: TResult;
204
265
  };
@@ -253,10 +314,10 @@ export type VoiceSessionSummary = {
253
314
  status: VoiceSessionStatus;
254
315
  turnCount: number;
255
316
  };
256
- export type VoiceCallDisposition = 'completed' | 'transferred' | 'escalated' | 'voicemail' | 'no-answer' | 'failed' | 'closed';
317
+ export type VoiceCallDisposition = "completed" | "transferred" | "escalated" | "voicemail" | "no-answer" | "failed" | "silence-timeout" | "closed";
257
318
  export type VoiceCallLifecycleEvent = {
258
319
  at: number;
259
- type: 'start' | 'end' | 'transfer' | 'escalation' | 'voicemail' | 'no-answer';
320
+ type: "start" | "end" | "transfer" | "escalation" | "voicemail" | "no-answer";
260
321
  disposition?: VoiceCallDisposition;
261
322
  metadata?: Record<string, unknown>;
262
323
  reason?: string;
@@ -269,8 +330,8 @@ export type VoiceCallLifecycleState = {
269
330
  lastEventAt: number;
270
331
  startedAt: number;
271
332
  };
272
- export type VoiceHandoffAction = 'escalate' | 'no-answer' | 'transfer' | 'voicemail';
273
- export type VoiceHandoffStatus = 'delivered' | 'failed' | 'skipped';
333
+ export type VoiceHandoffAction = "escalate" | "no-answer" | "transfer" | "voicemail";
334
+ export type VoiceHandoffStatus = "delivered" | "failed" | "skipped";
274
335
  export type VoiceHandoffResult = {
275
336
  deliveredAt?: number;
276
337
  deliveredTo?: string;
@@ -278,7 +339,7 @@ export type VoiceHandoffResult = {
278
339
  metadata?: Record<string, unknown>;
279
340
  status: VoiceHandoffStatus;
280
341
  };
281
- export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | 'pending';
342
+ export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | "pending";
282
343
  export type StoredVoiceHandoffDelivery<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
283
344
  action: VoiceHandoffAction;
284
345
  context: TContext;
@@ -326,9 +387,15 @@ export type VoiceHandoffConfig<TContext = unknown, TSession extends VoiceSession
326
387
  adapters: VoiceHandoffAdapter<TContext, TSession, TResult>[];
327
388
  deliveryQueue?: VoiceHandoffDeliveryStore<StoredVoiceHandoffDelivery<TContext, TSession, TResult>>;
328
389
  enqueueOnly?: boolean;
329
- failMode?: 'record' | 'throw';
390
+ failMode?: "record" | "throw";
391
+ };
392
+ export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = {
393
+ get: (id: string) => Promise<TSession | undefined>;
394
+ getOrCreate: (id: string) => Promise<TSession>;
395
+ set: (id: string, value: TSession) => Promise<void>;
396
+ list: () => Promise<VoiceSessionSummary[]>;
397
+ remove: (id: string) => Promise<void>;
330
398
  };
331
- export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = SessionStore<TSession, VoiceSessionSummary>;
332
399
  export type VoiceLogger = {
333
400
  debug?: (message: string, meta?: Record<string, unknown>) => void;
334
401
  info?: (message: string, meta?: Record<string, unknown>) => void;
@@ -336,15 +403,15 @@ export type VoiceLogger = {
336
403
  error?: (message: string, meta?: Record<string, unknown>) => void;
337
404
  };
338
405
  export type VoiceReconnectConfig = {
339
- strategy?: 'resume-last-turn' | 'restart' | 'fail';
406
+ strategy?: "resume-last-turn" | "restart" | "fail";
340
407
  timeout?: number;
341
408
  maxAttempts?: number;
342
409
  };
343
- export type VoiceRuntimePreset = 'default' | 'chat' | 'guided-intake' | 'dictation' | 'noisy-room' | 'pstn-balanced' | 'pstn-fast' | 'reliability';
344
- export type VoiceSTTLifecycle = 'continuous' | 'turn-scoped';
345
- export type VoiceTurnProfile = 'fast' | 'balanced' | 'long-form';
346
- export type VoiceTurnQualityProfile = 'general' | 'accent-heavy' | 'noisy-room' | 'short-command';
347
- export type VoiceTurnFallbackTrigger = 'empty-turn' | 'low-confidence' | 'empty-or-low-confidence' | 'always';
410
+ export type VoiceRuntimePreset = "default" | "chat" | "guided-intake" | "dictation" | "noisy-room" | "pstn-balanced" | "pstn-fast" | "reliability";
411
+ export type VoiceSTTLifecycle = "continuous" | "turn-scoped";
412
+ export type VoiceTurnProfile = "fast" | "balanced" | "long-form";
413
+ export type VoiceTurnQualityProfile = "general" | "accent-heavy" | "noisy-room" | "short-command";
414
+ export type VoiceTurnFallbackTrigger = "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
348
415
  export type VoiceSTTFallbackConfig = {
349
416
  adapter: STTAdapter;
350
417
  trigger?: VoiceTurnFallbackTrigger;
@@ -397,11 +464,26 @@ export type VoiceSocket = {
397
464
  send: (data: string | Uint8Array | ArrayBuffer) => void | Promise<void>;
398
465
  close: (code?: number, reason?: string) => void | Promise<void>;
399
466
  };
467
+ export type VoiceMonitorRuntimeSessionBinding = {
468
+ deregister: (reason?: string) => void;
469
+ emitAudio: (chunk: Uint8Array | ArrayBuffer, options?: {
470
+ source?: "assistant" | "caller" | (string & {});
471
+ }) => void;
472
+ };
473
+ export type VoiceMonitorRuntimeRegisterInput = {
474
+ handle: VoiceSessionHandle<unknown, VoiceSessionRecord, unknown>;
475
+ metadata?: Record<string, unknown>;
476
+ sessionId: string;
477
+ };
478
+ export type VoiceMonitorRuntimeBinding = {
479
+ registerSession: (input: VoiceMonitorRuntimeRegisterInput) => VoiceMonitorRuntimeSessionBinding;
480
+ };
400
481
  export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
401
482
  id: string;
402
483
  connect: (socket: VoiceSocket) => Promise<void>;
403
484
  receiveAudio: (audio: AudioChunk) => Promise<void>;
404
- commitTurn: (reason?: VoiceEndOfTurnEvent['reason']) => Promise<void>;
485
+ attachUserMedia: (attachment: import("./agent").VoiceAgentMessageAttachment) => Promise<void>;
486
+ commitTurn: (reason?: VoiceEndOfTurnEvent["reason"]) => Promise<void>;
405
487
  disconnect: (event?: VoiceCloseEvent) => Promise<void>;
406
488
  complete: (result?: TResult) => Promise<void>;
407
489
  escalate: (input: {
@@ -423,6 +505,7 @@ export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSession
423
505
  reason?: string;
424
506
  result?: TResult;
425
507
  target: string;
508
+ transferMode?: "cold" | "warm";
426
509
  }) => Promise<void>;
427
510
  close: (reason?: string) => Promise<void>;
428
511
  snapshot: () => Promise<TSession>;
@@ -431,10 +514,12 @@ export type VoiceRouteResult<TResult = unknown> = {
431
514
  complete?: boolean;
432
515
  result?: TResult;
433
516
  assistantText?: string;
517
+ citations?: ReadonlyArray<VoiceTurnCitation>;
434
518
  transfer?: {
435
519
  metadata?: Record<string, unknown>;
436
520
  reason?: string;
437
521
  target: string;
522
+ transferMode?: "cold" | "warm";
438
523
  };
439
524
  escalate?: {
440
525
  metadata?: Record<string, unknown>;
@@ -475,6 +560,10 @@ export type VoiceLexiconResolver<TContext = unknown> = (input: {
475
560
  }) => Promise<VoiceLexiconEntry[] | void> | VoiceLexiconEntry[] | void;
476
561
  export type VoiceOnTurnObjectHandler<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = (input: {
477
562
  context: TContext;
563
+ liveOps?: {
564
+ control: VoiceLiveOpsControlState;
565
+ injectedInstruction?: string;
566
+ };
478
567
  session: TSession;
479
568
  turn: VoiceTurnRecord;
480
569
  api: VoiceSessionHandle<TContext, TSession, TResult>;
@@ -559,7 +648,7 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
559
648
  disposition: VoiceCallDisposition;
560
649
  review: StoredVoiceCallReviewArtifact;
561
650
  session: TSession;
562
- }) => Promise<Omit<VoiceOpsTask, 'id'> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, 'id'> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
651
+ }) => Promise<Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
563
652
  resolveTaskPolicy?: (input: {
564
653
  api: VoiceSessionHandle<TContext, TSession, TResult>;
565
654
  context: TContext;
@@ -596,7 +685,37 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
596
685
  tasks?: VoiceOpsTaskStore;
597
686
  webhook?: VoiceIntegrationWebhookConfig;
598
687
  };
599
- export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, 'onTurn'> & {
688
+ export type VoiceLiveOpsRuntimeConfig = {
689
+ getControl: (sessionId: string) => Promise<VoiceLiveOpsControlState | null | undefined> | VoiceLiveOpsControlState | null | undefined;
690
+ };
691
+ export type VoiceProfileSwitchGuardResolverInput<TContext = unknown> = {
692
+ context: TContext;
693
+ scenarioId?: string;
694
+ sessionId: string;
695
+ };
696
+ export type VoicePluginProfileSwitchGuardConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
697
+ actor?: VoiceAuditActor;
698
+ allowedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
699
+ audit?: VoiceAuditEventStore;
700
+ blockedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
701
+ currentProfileId?: string | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string | undefined> | string | undefined);
702
+ defaultProfileId?: string;
703
+ defaults: VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport> | VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport);
704
+ metadata?: Record<string, unknown> | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<Record<string, unknown> | undefined> | Record<string, unknown> | undefined);
705
+ minConfidence?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
706
+ maxAutoSwitchesPerSession?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
707
+ mode?: VoiceProfileSwitchGuardMode | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchGuardMode | undefined> | VoiceProfileSwitchGuardMode | undefined);
708
+ observed?: VoiceProfileSwitchObservedSignals | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchObservedSignals | undefined> | VoiceProfileSwitchObservedSignals | undefined);
709
+ onDecision?: (input: {
710
+ context: TContext;
711
+ decision: VoiceProfileSwitchGuardDecision;
712
+ scenarioId?: string;
713
+ sessionId: string;
714
+ }) => Promise<void> | void;
715
+ sessionMetadataKey?: string | false;
716
+ trace?: false | VoiceTraceEventStore;
717
+ };
718
+ export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, "onTurn"> & {
600
719
  onTurn: VoiceOnTurnObjectHandler<TContext, TSession, TResult>;
601
720
  };
602
721
  export type VoiceScenario = {
@@ -609,131 +728,285 @@ export type VoiceExpectedSpeakerTurn = {
609
728
  speaker: string;
610
729
  text: string;
611
730
  };
731
+ /**
732
+ * Configures one of the plugin's optional route surfaces. Pass that surface's
733
+ * options object to mount it, `false` (or omit) to leave it off. Surfaces whose
734
+ * options are entirely optional may also be enabled with `true` for defaults.
735
+ */
736
+ export type VoiceSurfaceConfig<O> = false | O | (Record<string, never> extends O ? true : never);
612
737
  export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
613
738
  costTelemetry?: VoiceCostTelemetryConfig<TContext, TSession, TResult>;
614
739
  path: string;
740
+ greeting?: string;
615
741
  languageStrategy?: VoiceLanguageStrategy;
616
742
  lexicon?: VoiceLexiconEntry[] | VoiceLexiconResolver<TContext>;
617
743
  phraseHints?: VoicePhraseHint[] | VoicePhraseHintResolver<TContext>;
618
744
  preset?: VoiceRuntimePreset;
619
- stt: STTAdapter;
745
+ stt?: STTAdapter;
620
746
  sttFallback?: VoiceSTTFallbackConfig;
621
747
  sttLifecycle?: VoiceSTTLifecycle;
748
+ realtime?: RealtimeAdapter;
749
+ realtimeInputFormat?: AudioFormat;
622
750
  tts?: TTSAdapter;
623
751
  session: VoiceSessionStore<NoInfer<TSession>>;
624
752
  reconnect?: VoiceReconnectConfig;
625
753
  turnDetection?: VoiceTurnDetectionConfig;
626
754
  audioConditioning?: VoiceAudioConditioningConfig;
755
+ noiseSuppressor?: VoiceNoiseSuppressor;
756
+ noiseSuppressorFormat?: AudioFormat;
627
757
  logger?: VoiceLogger;
628
758
  htmx?: boolean | VoiceHTMXConfig<TSession, NoInfer<TResult>>;
629
759
  handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
630
760
  ops?: VoiceRuntimeOpsConfig<TContext, TSession, TResult>;
761
+ liveOps?: VoiceLiveOpsRuntimeConfig;
762
+ monitor?: VoiceMonitorRuntimeBinding;
763
+ profileSwitchGuard?: VoicePluginProfileSwitchGuardConfig<TContext, TSession, TResult>;
631
764
  trace?: VoiceTraceEventStore;
765
+ assistantHealth?: VoiceSurfaceConfig<import("./assistantHealth").VoiceAssistantHealthRoutesOptions>;
766
+ auditDelivery?: VoiceSurfaceConfig<import("./auditDeliveryRoutes").VoiceAuditDeliveryRoutesOptions>;
767
+ auditTrail?: VoiceSurfaceConfig<import("./auditRoutes").VoiceAuditTrailRoutesOptions>;
768
+ bargeIn?: VoiceSurfaceConfig<import("./bargeInRoutes").VoiceBargeInRoutesOptions>;
769
+ browserCallProfile?: VoiceSurfaceConfig<import("./browserCallProfiles").VoiceBrowserCallProfileRoutesOptions>;
770
+ browserMedia?: VoiceSurfaceConfig<import("./browserMediaRoutes").VoiceBrowserMediaRoutesOptions>;
771
+ callDebugger?: VoiceSurfaceConfig<import("./callDebugger").VoiceCallDebuggerRoutesOptions>;
772
+ campaign?: VoiceSurfaceConfig<import("./campaign").VoiceCampaignRoutesOptions>;
773
+ competitiveCoverage?: VoiceSurfaceConfig<import("./competitiveCoverage").VoiceCompetitiveCoverageRoutesOptions>;
774
+ dataControl?: VoiceSurfaceConfig<import("./dataControl").VoiceDataControlRoutesOptions>;
775
+ deliveryRuntime?: VoiceSurfaceConfig<import("./deliveryRuntime").VoiceDeliveryRuntimeRoutesOptions>;
776
+ deliverySink?: VoiceSurfaceConfig<import("./deliverySinkRoutes").VoiceDeliverySinkRoutesOptions>;
777
+ demoReady?: VoiceSurfaceConfig<import("./demoReadyRoutes").VoiceDemoReadyRoutesOptions>;
778
+ diagnostics?: VoiceSurfaceConfig<import("./diagnosticsRoutes").VoiceDiagnosticsRoutesOptions>;
779
+ eval?: VoiceSurfaceConfig<import("./evalRoutes").VoiceEvalRoutesOptions>;
780
+ guardrail?: VoiceSurfaceConfig<import("./guardrails").VoiceGuardrailRoutesOptions>;
781
+ handoffHealth?: VoiceSurfaceConfig<import("./handoffHealth").VoiceHandoffHealthRoutesOptions>;
782
+ htmxDashboard?: VoiceSurfaceConfig<import("./htmxDashboardRoutes").VoiceHTMXDashboardRoutesOptions>;
783
+ incidentBundle?: VoiceSurfaceConfig<import("./incidentBundle").VoiceIncidentBundleRoutesOptions>;
784
+ incidentTimeline?: VoiceSurfaceConfig<import("./incidentTimeline").VoiceIncidentTimelineRoutesOptions>;
785
+ liveLatency?: VoiceSurfaceConfig<import("./liveLatency").VoiceLiveLatencyRoutesOptions>;
786
+ liveMonitor?: VoiceSurfaceConfig<import("./monitor").VoiceLiveMonitorRoutesOptions>;
787
+ liveOpsConsole?: VoiceSurfaceConfig<import("./liveOps").VoiceLiveOpsRoutesOptions>;
788
+ mediaPipeline?: VoiceSurfaceConfig<import("./mediaPipelineRoutes").VoiceMediaPipelineRoutesOptions>;
789
+ monitorReport?: VoiceSurfaceConfig<import("./voiceMonitoring").VoiceMonitorRoutesOptions>;
790
+ monitorRunner?: VoiceSurfaceConfig<import("./voiceMonitoring").VoiceMonitorRunnerRoutesOptions>;
791
+ observabilityExport?: VoiceSurfaceConfig<import("./observabilityExport").VoiceObservabilityExportRoutesOptions>;
792
+ observabilityExportReplay?: VoiceSurfaceConfig<import("./observabilityExport").VoiceObservabilityExportReplayRoutesOptions>;
793
+ operationalStatus?: VoiceSurfaceConfig<import("./operationalStatus").VoiceOperationalStatusRoutesOptions>;
794
+ operationsRecord?: VoiceSurfaceConfig<import("./operationsRecord").VoiceOperationsRecordRoutesOptions>;
795
+ opsActionAudit?: VoiceSurfaceConfig<import("./opsActionAuditRoutes").VoiceOpsActionAuditRoutesOptions>;
796
+ opsConsole?: VoiceSurfaceConfig<import("./opsConsoleRoutes").VoiceOpsConsoleRoutesOptions>;
797
+ opsRecovery?: VoiceSurfaceConfig<import("./opsRecovery").VoiceOpsRecoveryRoutesOptions>;
798
+ opsStatus?: VoiceSurfaceConfig<import("./opsStatus").VoiceOpsStatusRoutesOptions>;
799
+ opsWebhookReceiver?: VoiceSurfaceConfig<import("./opsWebhook").VoiceOpsWebhookReceiverRoutesOptions>;
800
+ outcomeContract?: VoiceSurfaceConfig<import("./outcomeContract").VoiceOutcomeContractRoutesOptions>;
801
+ phoneAgentProductionSmoke?: VoiceSurfaceConfig<import("./phoneAgentProductionSmoke").VoicePhoneAgentProductionSmokeRoutesOptions>;
802
+ platformCoverage?: VoiceSurfaceConfig<import("./platformCoverage").VoicePlatformCoverageRoutesOptions>;
803
+ postCallAnalysis?: VoiceSurfaceConfig<import("./postCallAnalysis").VoicePostCallAnalysisRoutesOptions>;
804
+ productionReadiness?: VoiceSurfaceConfig<import("./productionReadiness").VoiceProductionReadinessRoutesOptions>;
805
+ profileSwitchLiveDecision?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchLiveDecisionRoutesOptions>;
806
+ profileSwitchPolicyProof?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchPolicyProofRoutesOptions>;
807
+ profileSwitchReadiness?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchReadinessRoutesOptions>;
808
+ proofPack?: VoiceSurfaceConfig<import("./proofPack").VoiceProofPackRoutesOptions>;
809
+ proofTrend?: VoiceSurfaceConfig<import("./proofTrends").VoiceProofTrendRoutesOptions>;
810
+ proofTrendRecommendation?: VoiceSurfaceConfig<import("./proofTrends").VoiceProofTrendRecommendationRoutesOptions>;
811
+ providerCapability?: VoiceSurfaceConfig<import("./providerCapabilities").VoiceProviderCapabilityRoutesOptions>;
812
+ providerContractMatrix?: VoiceSurfaceConfig<import("./providerStackRecommendations").VoiceProviderContractMatrixRoutesOptions>;
813
+ providerDecisionTrace?: VoiceSurfaceConfig<import("./providerDecisionTraces").VoiceProviderDecisionTraceRoutesOptions>;
814
+ providerHealth?: VoiceSurfaceConfig<import("./providerHealth").VoiceProviderHealthRoutesOptions>;
815
+ providerOrchestration?: VoiceSurfaceConfig<import("./providerOrchestration").VoiceProviderOrchestrationRoutesOptions>;
816
+ providerSlo?: VoiceSurfaceConfig<import("./providerSlo").VoiceProviderSloRoutesOptions>;
817
+ quality?: VoiceSurfaceConfig<import("./qualityRoutes").VoiceQualityRoutesOptions>;
818
+ realCallEvidenceRuntime?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallEvidenceRuntimeRoutesOptions>;
819
+ realCallProfileHistory?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallProfileHistoryRoutesOptions>;
820
+ realCallProfileRecoveryAction?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallProfileRecoveryActionRoutesOptions>;
821
+ realtimeChannel?: VoiceSurfaceConfig<import("./realtimeChannel").VoiceRealtimeChannelRoutesOptions>;
822
+ realtimeProviderContract?: VoiceSurfaceConfig<import("./realtimeProviderContracts").VoiceRealtimeProviderContractRoutesOptions>;
823
+ reconnectContract?: VoiceSurfaceConfig<import("./reconnectContract").VoiceReconnectContractRoutesOptions>;
824
+ reconnectProof?: VoiceSurfaceConfig<import("./reconnectContract").VoiceReconnectProofRoutesOptions>;
825
+ resilience?: VoiceSurfaceConfig<import("./resilienceRoutes").VoiceResilienceRoutesOptions>;
826
+ sessionList?: VoiceSurfaceConfig<import("./sessionReplay").VoiceSessionListRoutesOptions>;
827
+ sessionObservability?: VoiceSurfaceConfig<import("./sessionObservability").VoiceSessionObservabilityRoutesOptions>;
828
+ sessionReplay?: VoiceSurfaceConfig<import("./sessionReplay").VoiceSessionReplayRoutesOptions>;
829
+ sessionSnapshot?: VoiceSurfaceConfig<import("./sessionSnapshot").VoiceSessionSnapshotRoutesOptions>;
830
+ simulationSuite?: VoiceSurfaceConfig<import("./simulationSuite").VoiceSimulationSuiteRoutesOptions>;
831
+ sloCalibration?: VoiceSurfaceConfig<import("./sloCalibration").VoiceSloCalibrationRoutesOptions>;
832
+ sloReadinessThreshold?: VoiceSurfaceConfig<import("./sloCalibration").VoiceSloReadinessThresholdRoutesOptions>;
833
+ telephonyCarrierMatrix?: VoiceSurfaceConfig<import("../telephony/matrix").VoiceTelephonyCarrierMatrixRoutesOptions>;
834
+ telephonyMedia?: VoiceSurfaceConfig<import("./telephonyMediaRoutes").VoiceTelephonyMediaRoutesOptions>;
835
+ telephonyWebhook?: VoiceSurfaceConfig<import("./telephonyOutcome").VoiceTelephonyWebhookRoutesOptions>;
836
+ telephonyWebhookSecurity?: VoiceSurfaceConfig<import("../telephony/security").VoiceTelephonyWebhookSecurityRoutesOptions>;
837
+ toolContract?: VoiceSurfaceConfig<import("./toolContract").VoiceToolContractRoutesOptions>;
838
+ traceDelivery?: VoiceSurfaceConfig<import("./traceDeliveryRoutes").VoiceTraceDeliveryRoutesOptions>;
839
+ traceTimeline?: VoiceSurfaceConfig<import("./traceTimeline").VoiceTraceTimelineRoutesOptions>;
840
+ turnLatency?: VoiceSurfaceConfig<import("./turnLatency").VoiceTurnLatencyRoutesOptions>;
841
+ turnQuality?: VoiceSurfaceConfig<import("./turnQuality").VoiceTurnQualityRoutesOptions>;
632
842
  } & VoiceRouteConfig<TContext, TSession, TResult>;
843
+ export type VoiceSessionRecordingConfig = {
844
+ channels?: ReadonlyArray<"assistant" | "user">;
845
+ maxBytesPerChannel?: number;
846
+ store: import("./recordingStore").VoiceRecordingStore;
847
+ userInputFormat?: AudioFormat;
848
+ };
633
849
  export type CreateVoiceSessionOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
634
850
  costTelemetry?: VoiceCostTelemetryConfig<TContext, TSession, TResult>;
635
851
  id: string;
636
852
  context: TContext;
637
853
  socket: VoiceSocket;
638
- stt: STTAdapter;
854
+ greeting?: string;
855
+ stt?: STTAdapter;
856
+ realtime?: RealtimeAdapter;
857
+ realtimeInputFormat?: AudioFormat;
639
858
  tts?: TTSAdapter;
640
859
  languageStrategy?: VoiceLanguageStrategy;
641
860
  lexicon?: VoiceLexiconEntry[];
642
861
  sttFallback?: VoiceResolvedSTTFallbackConfig;
643
862
  store: VoiceSessionStore<TSession>;
644
863
  trace?: VoiceTraceEventStore;
864
+ recording?: VoiceSessionRecordingConfig;
865
+ callSilenceTimeoutMs?: number;
866
+ amd?: import("./amdDetector").VoiceAMDDetector<TContext, TSession, TResult>;
867
+ costAccountant?: import("./costAccounting").VoiceCostAccountant;
868
+ costTelephony?: {
869
+ provider?: string;
870
+ };
871
+ redact?: import("./redaction").VoiceTranscriptRedactor;
872
+ semanticTurnDetector?: import("./semanticTurn").VoiceSemanticTurnDetector;
873
+ assistantMode?: import("./assistantMode").VoiceAssistantMode;
874
+ modalities?: ReadonlyArray<"audio" | "text">;
875
+ prosody?: VoiceTTSProsody;
645
876
  reconnect: Required<VoiceReconnectConfig>;
646
877
  phraseHints?: VoicePhraseHint[];
878
+ sessionMetadata?: Record<string, unknown>;
647
879
  scenarioId?: string;
648
880
  sttLifecycle: VoiceSTTLifecycle;
649
881
  turnDetection: VoiceResolvedTurnDetectionConfig;
650
882
  audioConditioning?: VoiceResolvedAudioConditioningConfig;
883
+ noiseSuppressor?: VoiceNoiseSuppressor;
884
+ noiseSuppressorFormat?: AudioFormat;
651
885
  handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
886
+ liveOps?: VoiceLiveOpsRuntimeConfig;
652
887
  route: VoiceNormalizedRouteConfig<TContext, TSession, TResult>;
653
888
  logger?: VoiceLogger;
654
889
  };
655
890
  export type CreateVoiceSession = <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
656
891
  export type VoiceClientStartMessage = {
657
- type: 'start';
892
+ type: "start";
658
893
  sessionId?: string;
659
894
  scenarioId?: string;
660
895
  };
661
896
  export type VoiceClientEndTurnMessage = {
662
- type: 'end_turn';
897
+ type: "end_turn";
663
898
  };
664
899
  export type VoiceClientCloseMessage = {
665
- type: 'close';
900
+ type: "close";
666
901
  reason?: string;
667
902
  };
668
903
  export type VoiceClientCallControlMessage = {
669
- type: 'call_control';
670
- action: 'complete' | 'escalate' | 'no-answer' | 'transfer' | 'voicemail';
904
+ type: "call_control";
905
+ action: "complete" | "escalate" | "no-answer" | "transfer" | "voicemail";
671
906
  metadata?: Record<string, unknown>;
672
907
  reason?: string;
673
908
  target?: string;
674
909
  };
675
910
  export type VoiceClientPingMessage = {
676
- type: 'ping';
911
+ type: "ping";
677
912
  };
678
913
  export type VoiceClientMessage = VoiceClientStartMessage | VoiceClientEndTurnMessage | VoiceClientCloseMessage | VoiceClientCallControlMessage | VoiceClientPingMessage;
679
914
  export type VoiceServerSessionMessage = {
680
- type: 'session';
915
+ type: "session";
681
916
  sessionId: string;
682
917
  status: VoiceSessionStatus;
683
918
  scenarioId?: string;
919
+ sessionMetadata?: Record<string, unknown>;
920
+ };
921
+ export type VoiceServerReplayMessage<TResult = unknown> = {
922
+ type: "replay";
923
+ assistantTexts: string[];
924
+ call?: VoiceCallLifecycleState;
925
+ partial: string;
926
+ scenarioId?: string;
927
+ sessionId: string;
928
+ sessionMetadata?: Record<string, unknown>;
929
+ status: VoiceSessionStatus;
930
+ turns: VoiceTurnRecord<TResult>[];
684
931
  };
685
932
  export type VoiceServerPartialMessage = {
686
- type: 'partial';
933
+ type: "partial";
687
934
  transcript: Transcript;
688
935
  };
689
936
  export type VoiceServerFinalMessage = {
690
- type: 'final';
937
+ type: "final";
691
938
  transcript: Transcript;
692
939
  };
693
940
  export type VoiceServerTurnMessage<TResult = unknown> = {
694
- type: 'turn';
941
+ type: "turn";
695
942
  turn: VoiceTurnRecord<TResult>;
696
943
  };
697
944
  export type VoiceServerAssistantMessage = {
698
- type: 'assistant';
945
+ type: "assistant";
699
946
  text: string;
700
947
  turnId?: string;
701
948
  };
702
949
  export type VoiceServerAudioMessage = {
703
- type: 'audio';
950
+ type: "audio";
704
951
  chunkBase64: string;
705
952
  format: AudioFormat;
706
953
  receivedAt: number;
707
954
  turnId?: string;
708
955
  };
709
956
  export type VoiceServerCompleteMessage = {
710
- type: 'complete';
957
+ type: "complete";
711
958
  sessionId: string;
712
959
  };
713
960
  export type VoiceServerCallLifecycleMessage = {
714
- type: 'call_lifecycle';
961
+ type: "call_lifecycle";
715
962
  event: VoiceCallLifecycleEvent;
716
963
  sessionId: string;
717
964
  };
718
965
  export type VoiceServerErrorMessage = {
719
- type: 'error';
966
+ type: "error";
720
967
  message: string;
721
968
  recoverable?: boolean;
722
969
  };
723
970
  export type VoiceServerPongMessage = {
724
- type: 'pong';
971
+ type: "pong";
725
972
  };
726
- export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage;
973
+ export type VoiceServerConnectionMessage = {
974
+ type: "connection";
975
+ reconnect: VoiceReconnectClientState;
976
+ };
977
+ export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerReplayMessage<TResult> | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage | VoiceServerConnectionMessage;
727
978
  export type VoiceConnectionOptions = {
979
+ browserMedia?: false | VoiceBrowserMediaReporterOptions;
728
980
  protocols?: string[];
729
981
  scenarioId?: string;
730
982
  reconnect?: boolean;
983
+ reconnectReportPath?: string;
731
984
  maxReconnectAttempts?: number;
732
985
  pingInterval?: number;
733
986
  sessionId?: string;
734
987
  };
988
+ export type VoiceBrowserMediaReportPayload = {
989
+ at: number;
990
+ continuity?: MediaWebRTCStreamContinuityReport;
991
+ report: MediaWebRTCStatsReport;
992
+ scenarioId?: string | null;
993
+ sessionId?: string | null;
994
+ };
995
+ export type VoiceBrowserMediaReporterOptions = Omit<MediaWebRTCStatsReportInput, "peerConnection"> & {
996
+ fetch?: typeof fetch;
997
+ getPeerConnection?: (() => MediaWebRTCStatsCollector | null | undefined) | (() => Promise<MediaWebRTCStatsCollector | null | undefined>);
998
+ getScenarioId?: () => string | null | undefined;
999
+ getSessionId?: () => string | null | undefined;
1000
+ intervalMs?: number;
1001
+ continuity?: false | Omit<MediaWebRTCStreamContinuityInput, "previousStats" | "stats">;
1002
+ onError?: (error: unknown) => void;
1003
+ onReport?: (payload: VoiceBrowserMediaReportPayload) => void;
1004
+ path?: string;
1005
+ peerConnection?: MediaWebRTCStatsCollector;
1006
+ };
735
1007
  export type VoiceCaptureOptions = {
736
1008
  channelCount?: 1 | 2;
1009
+ onAudio?: (audio: Uint8Array | ArrayBuffer, sendAudio: (audio: Uint8Array | ArrayBuffer) => void) => void;
737
1010
  onLevel?: (level: number) => void;
738
1011
  sampleRateHz?: number;
739
1012
  };
@@ -747,6 +1020,46 @@ export type VoiceBargeInOptions = {
747
1020
  enabled?: boolean;
748
1021
  interruptOnPartial?: boolean;
749
1022
  interruptThreshold?: number;
1023
+ monitor?: VoiceBargeInMonitor;
1024
+ };
1025
+ export type VoiceBargeInTriggerReason = "input-level" | "manual-audio" | "manual-interrupt" | "partial-transcript";
1026
+ export type VoiceBargeInMonitorEvent = {
1027
+ at: number;
1028
+ id: string;
1029
+ latencyMs?: number;
1030
+ playbackStopLatencyMs?: number;
1031
+ reason: VoiceBargeInTriggerReason;
1032
+ sessionId?: string | null;
1033
+ status: "requested" | "stopped" | "skipped";
1034
+ thresholdMs?: number;
1035
+ };
1036
+ export type VoiceBargeInMonitorSnapshot = {
1037
+ averageLatencyMs?: number;
1038
+ events: VoiceBargeInMonitorEvent[];
1039
+ failed: number;
1040
+ lastEvent?: VoiceBargeInMonitorEvent;
1041
+ passed: number;
1042
+ status: "empty" | "fail" | "pass" | "warn";
1043
+ thresholdMs: number;
1044
+ total: number;
1045
+ };
1046
+ export type VoiceBargeInMonitor = {
1047
+ getSnapshot: () => VoiceBargeInMonitorSnapshot;
1048
+ recordRequested: (input: {
1049
+ reason: VoiceBargeInTriggerReason;
1050
+ sessionId?: string | null;
1051
+ }) => VoiceBargeInMonitorEvent;
1052
+ recordSkipped: (input: {
1053
+ reason: VoiceBargeInTriggerReason;
1054
+ sessionId?: string | null;
1055
+ }) => VoiceBargeInMonitorEvent;
1056
+ recordStopped: (input: {
1057
+ latencyMs?: number;
1058
+ playbackStopLatencyMs?: number;
1059
+ reason: VoiceBargeInTriggerReason;
1060
+ sessionId?: string | null;
1061
+ }) => VoiceBargeInMonitorEvent;
1062
+ subscribe: (subscriber: () => void) => () => void;
750
1063
  };
751
1064
  export type VoiceAudioPlayerOptions = {
752
1065
  autoStart?: boolean;
@@ -757,10 +1070,10 @@ export type VoiceDuplexControllerOptions = VoiceControllerOptions & {
757
1070
  audioPlayer?: VoiceAudioPlayerOptions;
758
1071
  bargeIn?: VoiceBargeInOptions;
759
1072
  };
760
- export type VoiceSTTRoutingGoal = 'best' | 'low-cost';
761
- export type VoiceSTTRoutingCorrectionMode = 'generic' | 'none' | 'risky-turn';
1073
+ export type VoiceSTTRoutingGoal = "best" | "low-cost";
1074
+ export type VoiceSTTRoutingCorrectionMode = "generic" | "none" | "risky-turn";
762
1075
  export type VoiceSTTRoutingStrategy = {
763
- benchmarkSessionTarget: 'deepgram-corrected' | 'deepgram-flux';
1076
+ benchmarkSessionTarget: "deepgram-corrected" | "deepgram-flux";
764
1077
  correctionMode: VoiceSTTRoutingCorrectionMode;
765
1078
  goal: VoiceSTTRoutingGoal;
766
1079
  notes: string[];
@@ -774,7 +1087,7 @@ export type VoiceHTMXRenderInput<TResult = unknown, TSession extends VoiceSessio
774
1087
  result?: TResult;
775
1088
  session?: TSession;
776
1089
  sessionId?: string;
777
- status: VoiceSessionStatus | 'idle';
1090
+ status: VoiceSessionStatus | "idle";
778
1091
  turnCount: number;
779
1092
  turns: VoiceTurnRecord<TResult>[];
780
1093
  };
@@ -802,9 +1115,11 @@ export type VoiceHTMXOptions<TSession extends VoiceSessionRecord = VoiceSessionR
802
1115
  export type VoiceHTMXConfig<TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = VoiceHTMXRenderer<TSession, TResult> | VoiceHTMXOptions<TSession, TResult>;
803
1116
  export type VoiceStreamState<TResult = unknown> = {
804
1117
  call: VoiceCallLifecycleState | null;
1118
+ sessionMetadata: Record<string, unknown> | null;
805
1119
  sessionId: string | null;
806
1120
  scenarioId: string | null;
807
- status: VoiceSessionStatus | 'idle';
1121
+ status: VoiceSessionStatus | "idle";
1122
+ reconnect: VoiceReconnectClientState;
808
1123
  partial: string;
809
1124
  turns: VoiceTurnRecord<TResult>[];
810
1125
  assistantTexts: string[];
@@ -819,7 +1134,7 @@ export type VoiceStreamState<TResult = unknown> = {
819
1134
  };
820
1135
  export type VoiceStream<TResult = unknown> = {
821
1136
  call: VoiceCallLifecycleState | null;
822
- callControl: (message: Omit<VoiceClientCallControlMessage, 'type'>) => void;
1137
+ callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
823
1138
  close: () => void;
824
1139
  start: (input?: {
825
1140
  scenarioId?: string;
@@ -831,10 +1146,13 @@ export type VoiceStream<TResult = unknown> = {
831
1146
  getSnapshot: () => VoiceStreamState<TResult>;
832
1147
  isConnected: boolean;
833
1148
  partial: string;
1149
+ reconnect: VoiceReconnectClientState;
834
1150
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
1151
+ simulateDisconnect: () => void;
835
1152
  sessionId: string | null;
1153
+ sessionMetadata: Record<string, unknown> | null;
836
1154
  scenarioId: string | null;
837
- status: VoiceSessionStatus | 'idle';
1155
+ status: VoiceSessionStatus | "idle";
838
1156
  subscribe: (subscriber: () => void) => () => void;
839
1157
  turns: VoiceTurnRecord<TResult>[];
840
1158
  assistantTexts: string[];
@@ -860,7 +1178,7 @@ export type VoiceAudioPlayerState = {
860
1178
  queuedChunkCount: number;
861
1179
  };
862
1180
  export type VoiceAudioPlayerSource = {
863
- assistantAudio: VoiceStreamState['assistantAudio'];
1181
+ assistantAudio: VoiceStreamState["assistantAudio"];
864
1182
  subscribe: (subscriber: () => void) => () => void;
865
1183
  };
866
1184
  export type VoiceAudioPlayer = {
@@ -887,7 +1205,7 @@ export type VoiceBargeInBinding = {
887
1205
  export type VoiceController<TResult = unknown> = {
888
1206
  bindHTMX: (options: VoiceHTMXBindingOptions) => () => void;
889
1207
  call: VoiceCallLifecycleState | null;
890
- callControl: (message: Omit<VoiceClientCallControlMessage, 'type'>) => void;
1208
+ callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
891
1209
  close: () => void;
892
1210
  endTurn: () => void;
893
1211
  start: (input?: {
@@ -900,12 +1218,15 @@ export type VoiceController<TResult = unknown> = {
900
1218
  isConnected: boolean;
901
1219
  isRecording: boolean;
902
1220
  partial: string;
1221
+ reconnect: VoiceReconnectClientState;
903
1222
  recordingError: string | null;
904
1223
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
1224
+ simulateDisconnect: () => void;
905
1225
  sessionId: string | null;
1226
+ sessionMetadata: Record<string, unknown> | null;
906
1227
  scenarioId: string | null;
907
1228
  startRecording: () => Promise<void>;
908
- status: VoiceSessionStatus | 'idle';
1229
+ status: VoiceSessionStatus | "idle";
909
1230
  stopRecording: () => void;
910
1231
  subscribe: (subscriber: () => void) => () => void;
911
1232
  toggleRecording: () => Promise<void>;
@@ -929,40 +1250,54 @@ export type VoiceHTMXBindingOptions = {
929
1250
  sessionQueryParam?: string;
930
1251
  };
931
1252
  export type VoiceStoreAction<TResult = unknown> = {
932
- type: 'session';
1253
+ type: "session";
933
1254
  sessionId: string;
1255
+ sessionMetadata?: Record<string, unknown>;
934
1256
  scenarioId?: string;
935
1257
  status: VoiceSessionStatus;
936
1258
  } | {
937
- type: 'call_lifecycle';
1259
+ type: "replay";
1260
+ assistantTexts: string[];
1261
+ call?: VoiceCallLifecycleState;
1262
+ partial: string;
1263
+ scenarioId?: string;
1264
+ sessionId: string;
1265
+ sessionMetadata?: Record<string, unknown>;
1266
+ status: VoiceSessionStatus;
1267
+ turns: VoiceTurnRecord<TResult>[];
1268
+ } | {
1269
+ type: "call_lifecycle";
938
1270
  event: VoiceCallLifecycleEvent;
939
1271
  sessionId: string;
940
1272
  } | {
941
- type: 'partial';
1273
+ type: "partial";
942
1274
  transcript: Transcript;
943
1275
  } | {
944
- type: 'final';
1276
+ type: "final";
945
1277
  transcript: Transcript;
946
1278
  } | {
947
- type: 'turn';
1279
+ type: "turn";
948
1280
  turn: VoiceTurnRecord<TResult>;
949
1281
  } | {
950
- type: 'assistant';
1282
+ type: "assistant";
951
1283
  text: string;
952
1284
  } | {
953
- type: 'audio';
1285
+ type: "audio";
954
1286
  chunk: Uint8Array;
955
1287
  format: AudioFormat;
956
1288
  receivedAt: number;
957
1289
  turnId?: string;
958
1290
  } | {
959
- type: 'complete';
1291
+ type: "complete";
960
1292
  sessionId: string;
961
1293
  } | {
962
- type: 'error';
1294
+ type: "error";
963
1295
  message: string;
964
1296
  } | {
965
- type: 'connected';
1297
+ type: "connected";
1298
+ } | {
1299
+ type: "connection";
1300
+ reconnect: VoiceReconnectClientState;
966
1301
  } | {
967
- type: 'disconnected';
1302
+ type: "disconnected";
968
1303
  };