@absolutejs/voice 0.0.22-beta.48 → 0.0.22-beta.480

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 (356) hide show
  1. package/README.md +4556 -603
  2. package/dist/agent.d.ts +67 -5
  3. package/dist/agentSquadContract.d.ts +98 -0
  4. package/dist/agentTools.d.ts +133 -0
  5. package/dist/aiVoiceModel.d.ts +15 -0
  6. package/dist/amdDetector.d.ts +25 -0
  7. package/dist/angular/index.d.ts +24 -4
  8. package/dist/angular/index.js +4147 -1164
  9. package/dist/angular/voice-agent-squad-status.service.d.ts +12 -0
  10. package/dist/angular/voice-call-debugger.service.d.ts +12 -0
  11. package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
  12. package/dist/angular/voice-controller.service.d.ts +3 -1
  13. package/dist/angular/voice-delivery-runtime.component.d.ts +17 -0
  14. package/dist/angular/voice-delivery-runtime.service.d.ts +16 -0
  15. package/dist/angular/voice-live-ops.service.d.ts +11 -0
  16. package/dist/angular/voice-ops-action-center.service.d.ts +13 -0
  17. package/dist/angular/voice-ops-status.component.d.ts +15 -0
  18. package/dist/angular/voice-ops-status.service.d.ts +12 -0
  19. package/dist/angular/voice-platform-coverage.service.d.ts +12 -0
  20. package/dist/angular/voice-profile-comparison.service.d.ts +12 -0
  21. package/dist/angular/voice-proof-trends.service.d.ts +12 -0
  22. package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
  23. package/dist/angular/voice-provider-contracts.service.d.ts +12 -0
  24. package/dist/angular/voice-provider-status.service.d.ts +2 -2
  25. package/dist/angular/voice-readiness-failures.service.d.ts +13 -0
  26. package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +12 -0
  27. package/dist/angular/voice-routing-status.service.d.ts +11 -0
  28. package/dist/angular/voice-session-observability.service.d.ts +12 -0
  29. package/dist/angular/voice-session-snapshot.service.d.ts +13 -0
  30. package/dist/angular/voice-stream.service.d.ts +4 -1
  31. package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
  32. package/dist/angular/voice-turn-latency.service.d.ts +13 -0
  33. package/dist/angular/voice-turn-quality.service.d.ts +12 -0
  34. package/dist/angular/voice-workflow-status.service.d.ts +2 -2
  35. package/dist/assistant.d.ts +11 -11
  36. package/dist/assistantHealth.d.ts +6 -6
  37. package/dist/assistantMemory.d.ts +3 -3
  38. package/dist/audioConditioning.d.ts +1 -1
  39. package/dist/audit.d.ts +131 -0
  40. package/dist/auditDeliveryRoutes.d.ts +85 -0
  41. package/dist/auditExport.d.ts +34 -0
  42. package/dist/auditRoutes.d.ts +66 -0
  43. package/dist/auditSinks.d.ts +151 -0
  44. package/dist/bargeInRoutes.d.ts +56 -0
  45. package/dist/browserCallProfiles.d.ts +120 -0
  46. package/dist/browserMediaRoutes.d.ts +62 -0
  47. package/dist/callDebugger.d.ts +66 -0
  48. package/dist/campaign.d.ts +794 -0
  49. package/dist/campaignDialers.d.ts +111 -0
  50. package/dist/client/actions.d.ts +95 -1
  51. package/dist/client/agentSquadStatus.d.ts +37 -0
  52. package/dist/client/agentSquadStatusWidget.d.ts +24 -0
  53. package/dist/client/audioPlayer.d.ts +2 -2
  54. package/dist/client/bargeInMonitor.d.ts +7 -0
  55. package/dist/client/browserMedia.d.ts +8 -0
  56. package/dist/client/callDebugger.d.ts +19 -0
  57. package/dist/client/callDebuggerWidget.d.ts +30 -0
  58. package/dist/client/campaignDialerProof.d.ts +23 -0
  59. package/dist/client/connection.d.ts +4 -3
  60. package/dist/client/controller.d.ts +1 -1
  61. package/dist/client/createVoiceStream.d.ts +1 -1
  62. package/dist/client/deliveryRuntime.d.ts +34 -0
  63. package/dist/client/deliveryRuntimeWidget.d.ts +37 -0
  64. package/dist/client/duplex.d.ts +2 -2
  65. package/dist/client/htmx.d.ts +1 -1
  66. package/dist/client/htmxBootstrap.js +967 -14
  67. package/dist/client/index.d.ts +104 -11
  68. package/dist/client/index.js +10215 -19
  69. package/dist/client/liveOps.d.ts +22 -0
  70. package/dist/client/liveOpsWidget.d.ts +23 -0
  71. package/dist/client/liveTurnLatency.d.ts +41 -0
  72. package/dist/client/microphone.d.ts +4 -4
  73. package/dist/client/opsActionCenter.d.ts +54 -0
  74. package/dist/client/opsActionCenterWidget.d.ts +29 -0
  75. package/dist/client/opsActionHistory.d.ts +19 -0
  76. package/dist/client/opsActionHistoryWidget.d.ts +11 -0
  77. package/dist/client/opsStatus.d.ts +19 -0
  78. package/dist/client/opsStatusWidget.d.ts +40 -0
  79. package/dist/client/platformCoverage.d.ts +19 -0
  80. package/dist/client/platformCoverageWidget.d.ts +37 -0
  81. package/dist/client/profileComparison.d.ts +19 -0
  82. package/dist/client/profileComparisonWidget.d.ts +41 -0
  83. package/dist/client/profileSwitchRecommendation.d.ts +19 -0
  84. package/dist/client/profileSwitchRecommendationWidget.d.ts +12 -0
  85. package/dist/client/proofTrends.d.ts +19 -0
  86. package/dist/client/proofTrendsWidget.d.ts +37 -0
  87. package/dist/client/providerCapabilities.d.ts +19 -0
  88. package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
  89. package/dist/client/providerContracts.d.ts +19 -0
  90. package/dist/client/providerContractsWidget.d.ts +37 -0
  91. package/dist/client/providerSimulationControls.d.ts +33 -0
  92. package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
  93. package/dist/client/providerStatus.d.ts +1 -1
  94. package/dist/client/providerStatusWidget.d.ts +32 -0
  95. package/dist/client/readinessFailures.d.ts +19 -0
  96. package/dist/client/readinessFailuresWidget.d.ts +42 -0
  97. package/dist/client/reconnectProfileEvidence.d.ts +19 -0
  98. package/dist/client/reconnectProfileEvidenceWidget.d.ts +39 -0
  99. package/dist/client/routingStatus.d.ts +19 -0
  100. package/dist/client/routingStatusWidget.d.ts +32 -0
  101. package/dist/client/sessionObservability.d.ts +19 -0
  102. package/dist/client/sessionObservabilityWidget.d.ts +31 -0
  103. package/dist/client/sessionSnapshot.d.ts +21 -0
  104. package/dist/client/sessionSnapshotWidget.d.ts +33 -0
  105. package/dist/client/store.d.ts +1 -1
  106. package/dist/client/traceTimeline.d.ts +19 -0
  107. package/dist/client/traceTimelineWidget.d.ts +36 -0
  108. package/dist/client/turnLatency.d.ts +22 -0
  109. package/dist/client/turnLatencyWidget.d.ts +33 -0
  110. package/dist/client/turnQuality.d.ts +19 -0
  111. package/dist/client/turnQualityWidget.d.ts +32 -0
  112. package/dist/client/workflowStatus.d.ts +1 -1
  113. package/dist/competitiveCoverage.d.ts +141 -0
  114. package/dist/correction.d.ts +2 -2
  115. package/dist/costAccounting.d.ts +76 -0
  116. package/dist/dataControl.d.ts +180 -0
  117. package/dist/deliveryRuntime.d.ts +158 -0
  118. package/dist/deliverySinkRoutes.d.ts +117 -0
  119. package/dist/demoReadyRoutes.d.ts +98 -0
  120. package/dist/diagnosticsRoutes.d.ts +2 -2
  121. package/dist/evalRoutes.d.ts +10 -4
  122. package/dist/fileStore.d.ts +21 -7
  123. package/dist/generated/htmxBootstrapBundle.d.ts +1 -0
  124. package/dist/guardrails.d.ts +128 -0
  125. package/dist/handoff.d.ts +6 -6
  126. package/dist/handoffHealth.d.ts +5 -5
  127. package/dist/htmx.d.ts +1 -1
  128. package/dist/incidentBundle.d.ts +119 -0
  129. package/dist/incidentTimeline.d.ts +260 -0
  130. package/dist/index.d.ts +238 -72
  131. package/dist/index.js +38639 -6061
  132. package/dist/latencySlo.d.ts +56 -0
  133. package/dist/liveLatency.d.ts +78 -0
  134. package/dist/liveOps.d.ts +190 -0
  135. package/dist/logger.d.ts +1 -1
  136. package/dist/mediaPipelineRoutes.d.ts +171 -0
  137. package/dist/mediaPipelineSurfaces.d.ts +48 -0
  138. package/dist/memoryStore.d.ts +1 -1
  139. package/dist/modelAdapters.d.ts +59 -7
  140. package/dist/monitor.d.ts +148 -0
  141. package/dist/multilingualProof.d.ts +77 -0
  142. package/dist/observabilityExport.d.ts +501 -0
  143. package/dist/openaiTTS.d.ts +18 -0
  144. package/dist/operationalStatus.d.ts +87 -0
  145. package/dist/operationsRecord.d.ts +370 -0
  146. package/dist/ops.d.ts +12 -12
  147. package/dist/opsActionAuditRoutes.d.ts +99 -0
  148. package/dist/opsConsoleRoutes.d.ts +8 -5
  149. package/dist/opsPresets.d.ts +2 -2
  150. package/dist/opsRecovery.d.ts +137 -0
  151. package/dist/opsRuntime.d.ts +6 -6
  152. package/dist/opsSinks.d.ts +13 -13
  153. package/dist/opsStatus.d.ts +76 -0
  154. package/dist/opsStatusRoutes.d.ts +33 -0
  155. package/dist/opsWebhook.d.ts +6 -6
  156. package/dist/outcomeContract.d.ts +146 -0
  157. package/dist/outcomeRecipes.d.ts +4 -4
  158. package/dist/phoneAgent.d.ts +139 -0
  159. package/dist/phoneAgentProductionSmoke.d.ts +115 -0
  160. package/dist/platformCoverage.d.ts +91 -0
  161. package/dist/plugin.d.ts +2 -2
  162. package/dist/postCallAnalysis.d.ts +98 -0
  163. package/dist/postgresStore.d.ts +17 -6
  164. package/dist/presets.d.ts +3 -3
  165. package/dist/productionReadiness.d.ts +756 -0
  166. package/dist/profileSwitchRecommendation.d.ts +350 -0
  167. package/dist/proofAssertions.d.ts +32 -0
  168. package/dist/proofPack.d.ts +211 -0
  169. package/dist/proofRunner.d.ts +79 -0
  170. package/dist/proofTrends.d.ts +966 -0
  171. package/dist/providerAdapters.d.ts +16 -5
  172. package/dist/providerCapabilities.d.ts +92 -0
  173. package/dist/providerDecisionTraces.d.ts +130 -0
  174. package/dist/providerHealth.d.ts +3 -3
  175. package/dist/providerOrchestration.d.ts +109 -0
  176. package/dist/providerRouterTraces.d.ts +35 -0
  177. package/dist/providerRoutingContract.d.ts +71 -0
  178. package/dist/providerSlo.d.ts +142 -0
  179. package/dist/providerStackRecommendations.d.ts +187 -0
  180. package/dist/qualityRoutes.d.ts +4 -4
  181. package/dist/queue.d.ts +23 -14
  182. package/dist/ragTool.d.ts +47 -0
  183. package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
  184. package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
  185. package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
  186. package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
  187. package/dist/react/VoiceOpsStatus.d.ts +6 -0
  188. package/dist/react/VoicePlatformCoverage.d.ts +6 -0
  189. package/dist/react/VoiceProfileComparison.d.ts +6 -0
  190. package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
  191. package/dist/react/VoiceProofTrends.d.ts +6 -0
  192. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  193. package/dist/react/VoiceProviderContracts.d.ts +6 -0
  194. package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
  195. package/dist/react/VoiceProviderStatus.d.ts +6 -0
  196. package/dist/react/VoiceReadinessFailures.d.ts +6 -0
  197. package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
  198. package/dist/react/VoiceRoutingStatus.d.ts +6 -0
  199. package/dist/react/VoiceSessionObservability.d.ts +6 -0
  200. package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
  201. package/dist/react/VoiceTraceTimeline.d.ts +6 -0
  202. package/dist/react/VoiceTurnLatency.d.ts +6 -0
  203. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  204. package/dist/react/index.d.ts +47 -4
  205. package/dist/react/index.js +11230 -116
  206. package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
  207. package/dist/react/useVoiceCallDebugger.d.ts +8 -0
  208. package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
  209. package/dist/react/useVoiceController.d.ts +4 -1
  210. package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
  211. package/dist/react/useVoiceLiveOps.d.ts +9 -0
  212. package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
  213. package/dist/react/useVoiceOpsStatus.d.ts +8 -0
  214. package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
  215. package/dist/react/useVoiceProfileComparison.d.ts +8 -0
  216. package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
  217. package/dist/react/useVoiceProofTrends.d.ts +8 -0
  218. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  219. package/dist/react/useVoiceProviderContracts.d.ts +8 -0
  220. package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
  221. package/dist/react/useVoiceProviderStatus.d.ts +1 -1
  222. package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
  223. package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
  224. package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
  225. package/dist/react/useVoiceSessionObservability.d.ts +8 -0
  226. package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
  227. package/dist/react/useVoiceStream.d.ts +4 -1
  228. package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
  229. package/dist/react/useVoiceTurnLatency.d.ts +9 -0
  230. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  231. package/dist/react/useVoiceWorkflowStatus.d.ts +1 -1
  232. package/dist/readinessProfiles.d.ts +45 -0
  233. package/dist/realtimeChannel.d.ts +136 -0
  234. package/dist/realtimeProviderContracts.d.ts +133 -0
  235. package/dist/reconnectContract.d.ts +176 -0
  236. package/dist/recordingStore.d.ts +21 -0
  237. package/dist/resilienceRoutes.d.ts +45 -5
  238. package/dist/routing.d.ts +1 -1
  239. package/dist/runtimeOps.d.ts +3 -3
  240. package/dist/s3Store.d.ts +18 -3
  241. package/dist/session.d.ts +1 -1
  242. package/dist/sessionObservability.d.ts +145 -0
  243. package/dist/sessionReplay.d.ts +19 -7
  244. package/dist/sessionSnapshot.d.ts +109 -0
  245. package/dist/simulationSuite.d.ts +143 -0
  246. package/dist/sloCalibration.d.ts +185 -0
  247. package/dist/sqliteStore.d.ts +17 -6
  248. package/dist/store.d.ts +1 -1
  249. package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
  250. package/dist/svelte/createVoiceCallDebugger.d.ts +12 -0
  251. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
  252. package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
  253. package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
  254. package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
  255. package/dist/svelte/createVoiceOpsStatus.d.ts +9 -0
  256. package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
  257. package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
  258. package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
  259. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  260. package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
  261. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
  262. package/dist/svelte/createVoiceProviderStatus.d.ts +4 -2
  263. package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
  264. package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
  265. package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
  266. package/dist/svelte/createVoiceSessionObservability.d.ts +10 -0
  267. package/dist/svelte/createVoiceSessionSnapshot.d.ts +13 -0
  268. package/dist/svelte/createVoiceStream.d.ts +1 -1
  269. package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
  270. package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
  271. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  272. package/dist/svelte/createVoiceWorkflowStatus.d.ts +1 -1
  273. package/dist/svelte/index.d.ts +25 -4
  274. package/dist/svelte/index.js +5956 -462
  275. package/dist/telephony/contract.d.ts +61 -0
  276. package/dist/telephony/matrix.d.ts +97 -0
  277. package/dist/telephony/plivo.d.ts +303 -0
  278. package/dist/telephony/response.d.ts +1 -1
  279. package/dist/telephony/security.d.ts +182 -0
  280. package/dist/telephony/telnyx.d.ts +291 -0
  281. package/dist/telephony/twilio.d.ts +147 -13
  282. package/dist/telephonyMediaRoutes.d.ts +72 -0
  283. package/dist/telephonyOutcome.d.ts +273 -0
  284. package/dist/testing/accuracy.d.ts +1 -1
  285. package/dist/testing/benchmark.d.ts +9 -9
  286. package/dist/testing/corrected.d.ts +5 -5
  287. package/dist/testing/duplex.d.ts +3 -3
  288. package/dist/testing/fixtures.d.ts +3 -3
  289. package/dist/testing/index.d.ts +13 -13
  290. package/dist/testing/index.js +5160 -182
  291. package/dist/testing/ioProviderSimulator.d.ts +5 -5
  292. package/dist/testing/providerSimulator.d.ts +5 -5
  293. package/dist/testing/review.d.ts +4 -4
  294. package/dist/testing/sessionBenchmark.d.ts +3 -3
  295. package/dist/testing/stt.d.ts +3 -3
  296. package/dist/testing/telephony.d.ts +25 -0
  297. package/dist/testing/tts.d.ts +1 -1
  298. package/dist/toolContract.d.ts +161 -0
  299. package/dist/toolRuntime.d.ts +50 -0
  300. package/dist/trace.d.ts +46 -7
  301. package/dist/traceDeliveryRoutes.d.ts +86 -0
  302. package/dist/traceTimeline.d.ts +97 -0
  303. package/dist/turnDetection.d.ts +1 -1
  304. package/dist/turnLatency.d.ts +95 -0
  305. package/dist/turnProfiles.d.ts +2 -2
  306. package/dist/turnQuality.d.ts +94 -0
  307. package/dist/types.d.ts +270 -80
  308. package/dist/vapiAdapter.d.ts +160 -0
  309. package/dist/voiceMonitoring.d.ts +444 -0
  310. package/dist/vue/VoiceCallDebuggerLaunch.d.ts +68 -0
  311. package/dist/vue/VoiceDeliveryRuntime.d.ts +30 -0
  312. package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
  313. package/dist/vue/VoiceOpsStatus.d.ts +30 -0
  314. package/dist/vue/VoicePlatformCoverage.d.ts +23 -0
  315. package/dist/vue/VoiceProofTrends.d.ts +21 -0
  316. package/dist/vue/VoiceProviderCapabilities.d.ts +51 -0
  317. package/dist/vue/VoiceProviderContracts.d.ts +21 -0
  318. package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
  319. package/dist/vue/VoiceProviderStatus.d.ts +51 -0
  320. package/dist/vue/VoiceReadinessFailures.d.ts +21 -0
  321. package/dist/vue/VoiceReconnectProfileEvidence.d.ts +21 -0
  322. package/dist/vue/VoiceRoutingStatus.d.ts +51 -0
  323. package/dist/vue/VoiceSessionObservability.d.ts +23 -0
  324. package/dist/vue/VoiceSessionSnapshot.d.ts +68 -0
  325. package/dist/vue/VoiceTurnLatency.d.ts +69 -0
  326. package/dist/vue/VoiceTurnQuality.d.ts +51 -0
  327. package/dist/vue/index.d.ts +42 -4
  328. package/dist/vue/index.js +10642 -135
  329. package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
  330. package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
  331. package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
  332. package/dist/vue/useVoiceController.d.ts +4 -2
  333. package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
  334. package/dist/vue/useVoiceLiveOps.d.ts +9 -0
  335. package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
  336. package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
  337. package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
  338. package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
  339. package/dist/vue/useVoiceProofTrends.d.ts +9 -0
  340. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  341. package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
  342. package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
  343. package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
  344. package/dist/vue/useVoiceReadinessFailures.d.ts +959 -0
  345. package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
  346. package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
  347. package/dist/vue/useVoiceSessionObservability.d.ts +9 -0
  348. package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
  349. package/dist/vue/useVoiceStream.d.ts +5 -2
  350. package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
  351. package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
  352. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  353. package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
  354. package/dist/workflowContract.d.ts +8 -8
  355. package/fixtures/manifest.json +356 -197
  356. package/package.json +265 -256
package/dist/types.d.ts CHANGED
@@ -1,24 +1,29 @@
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 { SessionStore } from "@absolutejs/absolute";
2
+ import type { MediaWebRTCStatsCollector, MediaWebRTCStatsReport, MediaWebRTCStatsReportInput, MediaWebRTCStreamContinuityInput, MediaWebRTCStreamContinuityReport } from "@absolutejs/media";
3
+ import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from "./ops";
4
+ import type { VoiceIntegrationSink } from "./opsSinks";
5
+ import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from "./testing/review";
6
+ import type { VoiceTraceEventStore } from "./trace";
7
+ import type { VoiceLiveOpsControlState } from "./liveOps";
8
+ import type { VoiceAuditActor, VoiceAuditEventStore } from "./audit";
9
+ import type { VoiceProfileSwitchGuardDecision, VoiceProfileSwitchGuardMode, VoiceProfileSwitchObservedSignals } from "./profileSwitchRecommendation";
10
+ import type { VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileHistoryReport } from "./proofTrends";
6
11
  export type AudioFormat = {
7
- container: 'raw';
8
- encoding: 'alaw' | 'mulaw' | 'pcm_s16le';
12
+ container: "raw";
13
+ encoding: "alaw" | "mulaw" | "pcm_s16le";
9
14
  sampleRateHz: number;
10
15
  channels: 1 | 2;
11
16
  };
12
17
  export type AudioChunk = ArrayBuffer | ArrayBufferView;
13
18
  export type VoiceLanguageStrategy = {
14
- mode: 'auto-detect';
19
+ mode: "auto-detect";
15
20
  allowedLanguages?: string[];
16
21
  } | {
17
- mode: 'fixed';
22
+ mode: "fixed";
18
23
  primaryLanguage: string;
19
24
  secondaryLanguages?: string[];
20
25
  } | {
21
- mode: 'allow-switching';
26
+ mode: "allow-switching";
22
27
  primaryLanguage?: string;
23
28
  secondaryLanguages: string[];
24
29
  };
@@ -28,7 +33,7 @@ export type VoicePhraseHint = {
28
33
  boost?: number;
29
34
  metadata?: Record<string, unknown>;
30
35
  };
31
- export type VoiceCorrectionRiskTier = 'safe' | 'balanced' | 'risky';
36
+ export type VoiceCorrectionRiskTier = "safe" | "balanced" | "risky";
32
37
  export type VoiceDomainTerm = {
33
38
  text: string;
34
39
  aliases?: string[];
@@ -65,7 +70,7 @@ export type VoiceTranscriptQuality = {
65
70
  fallback?: VoiceFallbackDiagnostics;
66
71
  partialTranscriptCount: number;
67
72
  selectedTranscriptCount: number;
68
- source: 'fallback' | 'primary';
73
+ source: "fallback" | "primary";
69
74
  };
70
75
  export type VoiceTurnCorrectionDiagnostics = {
71
76
  attempted: boolean;
@@ -83,7 +88,7 @@ export type VoiceTurnCostEstimate = {
83
88
  primaryAudioMs: number;
84
89
  totalBillableAudioMs: number;
85
90
  };
86
- export type VoiceFallbackSelectionReason = 'fallback-empty' | 'primary-empty' | 'word-count-margin' | 'confidence-margin' | 'word-count-tiebreak' | 'kept-primary';
91
+ export type VoiceFallbackSelectionReason = "fallback-empty" | "primary-empty" | "word-count-margin" | "confidence-margin" | "word-count-tiebreak" | "kept-primary";
87
92
  export type VoiceFallbackDiagnostics = {
88
93
  attempted: boolean;
89
94
  fallbackConfidence?: number;
@@ -94,31 +99,31 @@ export type VoiceFallbackDiagnostics = {
94
99
  primaryWordCount: number;
95
100
  selected: boolean;
96
101
  selectionReason: VoiceFallbackSelectionReason;
97
- trigger: 'empty-turn' | 'low-confidence' | 'empty-or-low-confidence' | 'always';
102
+ trigger: "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
98
103
  };
99
104
  export type VoicePartialEvent = {
100
- type: 'partial';
105
+ type: "partial";
101
106
  transcript: Transcript;
102
107
  receivedAt: number;
103
108
  };
104
109
  export type VoiceFinalEvent = {
105
- type: 'final';
110
+ type: "final";
106
111
  transcript: Transcript;
107
112
  receivedAt: number;
108
113
  };
109
114
  export type VoiceEndOfTurnEvent = {
110
- type: 'endOfTurn';
111
- reason: 'vendor' | 'silence' | 'manual';
115
+ type: "endOfTurn";
116
+ reason: "vendor" | "silence" | "manual";
112
117
  receivedAt: number;
113
118
  };
114
119
  export type VoiceErrorEvent = {
115
- type: 'error';
120
+ type: "error";
116
121
  error: Error;
117
122
  recoverable: boolean;
118
123
  code?: string;
119
124
  };
120
125
  export type VoiceCloseEvent = {
121
- type: 'close';
126
+ type: "close";
122
127
  code?: number;
123
128
  reason?: string;
124
129
  recoverable?: boolean;
@@ -144,11 +149,11 @@ export type STTAdapterOpenOptions = {
144
149
  signal?: AbortSignal;
145
150
  };
146
151
  export type STTAdapter<TOptions extends STTAdapterOpenOptions = STTAdapterOpenOptions> = {
147
- kind: 'stt';
152
+ kind: "stt";
148
153
  open: (options: TOptions) => Promise<STTAdapterSession> | STTAdapterSession;
149
154
  };
150
155
  export type TTSAudioEvent = {
151
- type: 'audio';
156
+ type: "audio";
152
157
  chunk: AudioChunk;
153
158
  format: AudioFormat;
154
159
  receivedAt: number;
@@ -161,15 +166,19 @@ export type TTSSessionEventMap = {
161
166
  export type TTSAdapterSession = {
162
167
  on: <K extends keyof TTSSessionEventMap>(event: K, handler: (payload: TTSSessionEventMap[K]) => void | Promise<void>) => () => void;
163
168
  send: (text: string) => Promise<void>;
169
+ cancel?: (reason?: string) => Promise<void>;
164
170
  close: (reason?: string) => Promise<void>;
165
171
  };
172
+ export declare const ttsAdapterSessionCanCancel: (session: TTSAdapterSession) => session is TTSAdapterSession & {
173
+ cancel: (reason?: string) => Promise<void>;
174
+ };
166
175
  export type TTSAdapterOpenOptions = {
167
176
  sessionId: string;
168
177
  lexicon?: VoiceLexiconEntry[];
169
178
  signal?: AbortSignal;
170
179
  };
171
180
  export type TTSAdapter<TOptions extends TTSAdapterOpenOptions = TTSAdapterOpenOptions> = {
172
- kind: 'tts';
181
+ kind: "tts";
173
182
  open: (options: TOptions) => Promise<TTSAdapterSession> | TTSAdapterSession;
174
183
  };
175
184
  export type RealtimeSessionEventMap = STTSessionEventMap & {
@@ -189,10 +198,19 @@ export type RealtimeAdapterOpenOptions = {
189
198
  signal?: AbortSignal;
190
199
  };
191
200
  export type RealtimeAdapter<TOptions extends RealtimeAdapterOpenOptions = RealtimeAdapterOpenOptions> = {
192
- kind: 'realtime';
201
+ kind: "realtime";
193
202
  open: (options: TOptions) => Promise<RealtimeAdapterSession> | RealtimeAdapterSession;
194
203
  };
195
- export type VoiceSessionStatus = 'active' | 'reconnecting' | 'completed' | 'failed';
204
+ export type VoiceSessionStatus = "active" | "reconnecting" | "completed" | "failed";
205
+ export type VoiceReconnectClientStatus = "idle" | "reconnecting" | "resumed" | "exhausted";
206
+ export type VoiceReconnectClientState = {
207
+ attempts: number;
208
+ lastDisconnectAt?: number;
209
+ lastResumedAt?: number;
210
+ maxAttempts: number;
211
+ nextAttemptAt?: number;
212
+ status: VoiceReconnectClientStatus;
213
+ };
196
214
  export type VoiceTurnRecord<TResult = unknown> = {
197
215
  id: string;
198
216
  text: string;
@@ -253,10 +271,10 @@ export type VoiceSessionSummary = {
253
271
  status: VoiceSessionStatus;
254
272
  turnCount: number;
255
273
  };
256
- export type VoiceCallDisposition = 'completed' | 'transferred' | 'escalated' | 'voicemail' | 'no-answer' | 'failed' | 'closed';
274
+ export type VoiceCallDisposition = "completed" | "transferred" | "escalated" | "voicemail" | "no-answer" | "failed" | "silence-timeout" | "closed";
257
275
  export type VoiceCallLifecycleEvent = {
258
276
  at: number;
259
- type: 'start' | 'end' | 'transfer' | 'escalation' | 'voicemail' | 'no-answer';
277
+ type: "start" | "end" | "transfer" | "escalation" | "voicemail" | "no-answer";
260
278
  disposition?: VoiceCallDisposition;
261
279
  metadata?: Record<string, unknown>;
262
280
  reason?: string;
@@ -269,8 +287,8 @@ export type VoiceCallLifecycleState = {
269
287
  lastEventAt: number;
270
288
  startedAt: number;
271
289
  };
272
- export type VoiceHandoffAction = 'escalate' | 'no-answer' | 'transfer' | 'voicemail';
273
- export type VoiceHandoffStatus = 'delivered' | 'failed' | 'skipped';
290
+ export type VoiceHandoffAction = "escalate" | "no-answer" | "transfer" | "voicemail";
291
+ export type VoiceHandoffStatus = "delivered" | "failed" | "skipped";
274
292
  export type VoiceHandoffResult = {
275
293
  deliveredAt?: number;
276
294
  deliveredTo?: string;
@@ -278,7 +296,7 @@ export type VoiceHandoffResult = {
278
296
  metadata?: Record<string, unknown>;
279
297
  status: VoiceHandoffStatus;
280
298
  };
281
- export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | 'pending';
299
+ export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | "pending";
282
300
  export type StoredVoiceHandoffDelivery<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
283
301
  action: VoiceHandoffAction;
284
302
  context: TContext;
@@ -326,7 +344,7 @@ export type VoiceHandoffConfig<TContext = unknown, TSession extends VoiceSession
326
344
  adapters: VoiceHandoffAdapter<TContext, TSession, TResult>[];
327
345
  deliveryQueue?: VoiceHandoffDeliveryStore<StoredVoiceHandoffDelivery<TContext, TSession, TResult>>;
328
346
  enqueueOnly?: boolean;
329
- failMode?: 'record' | 'throw';
347
+ failMode?: "record" | "throw";
330
348
  };
331
349
  export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = SessionStore<TSession, VoiceSessionSummary>;
332
350
  export type VoiceLogger = {
@@ -336,15 +354,15 @@ export type VoiceLogger = {
336
354
  error?: (message: string, meta?: Record<string, unknown>) => void;
337
355
  };
338
356
  export type VoiceReconnectConfig = {
339
- strategy?: 'resume-last-turn' | 'restart' | 'fail';
357
+ strategy?: "resume-last-turn" | "restart" | "fail";
340
358
  timeout?: number;
341
359
  maxAttempts?: number;
342
360
  };
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';
361
+ export type VoiceRuntimePreset = "default" | "chat" | "guided-intake" | "dictation" | "noisy-room" | "pstn-balanced" | "pstn-fast" | "reliability";
362
+ export type VoiceSTTLifecycle = "continuous" | "turn-scoped";
363
+ export type VoiceTurnProfile = "fast" | "balanced" | "long-form";
364
+ export type VoiceTurnQualityProfile = "general" | "accent-heavy" | "noisy-room" | "short-command";
365
+ export type VoiceTurnFallbackTrigger = "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
348
366
  export type VoiceSTTFallbackConfig = {
349
367
  adapter: STTAdapter;
350
368
  trigger?: VoiceTurnFallbackTrigger;
@@ -397,11 +415,25 @@ export type VoiceSocket = {
397
415
  send: (data: string | Uint8Array | ArrayBuffer) => void | Promise<void>;
398
416
  close: (code?: number, reason?: string) => void | Promise<void>;
399
417
  };
418
+ export type VoiceMonitorRuntimeSessionBinding = {
419
+ deregister: (reason?: string) => void;
420
+ emitAudio: (chunk: Uint8Array | ArrayBuffer, options?: {
421
+ source?: "assistant" | "caller" | (string & {});
422
+ }) => void;
423
+ };
424
+ export type VoiceMonitorRuntimeRegisterInput = {
425
+ handle: VoiceSessionHandle<unknown, VoiceSessionRecord, unknown>;
426
+ metadata?: Record<string, unknown>;
427
+ sessionId: string;
428
+ };
429
+ export type VoiceMonitorRuntimeBinding = {
430
+ registerSession: (input: VoiceMonitorRuntimeRegisterInput) => VoiceMonitorRuntimeSessionBinding;
431
+ };
400
432
  export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
401
433
  id: string;
402
434
  connect: (socket: VoiceSocket) => Promise<void>;
403
435
  receiveAudio: (audio: AudioChunk) => Promise<void>;
404
- commitTurn: (reason?: VoiceEndOfTurnEvent['reason']) => Promise<void>;
436
+ commitTurn: (reason?: VoiceEndOfTurnEvent["reason"]) => Promise<void>;
405
437
  disconnect: (event?: VoiceCloseEvent) => Promise<void>;
406
438
  complete: (result?: TResult) => Promise<void>;
407
439
  escalate: (input: {
@@ -423,6 +455,7 @@ export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSession
423
455
  reason?: string;
424
456
  result?: TResult;
425
457
  target: string;
458
+ transferMode?: "cold" | "warm";
426
459
  }) => Promise<void>;
427
460
  close: (reason?: string) => Promise<void>;
428
461
  snapshot: () => Promise<TSession>;
@@ -435,6 +468,7 @@ export type VoiceRouteResult<TResult = unknown> = {
435
468
  metadata?: Record<string, unknown>;
436
469
  reason?: string;
437
470
  target: string;
471
+ transferMode?: "cold" | "warm";
438
472
  };
439
473
  escalate?: {
440
474
  metadata?: Record<string, unknown>;
@@ -475,6 +509,10 @@ export type VoiceLexiconResolver<TContext = unknown> = (input: {
475
509
  }) => Promise<VoiceLexiconEntry[] | void> | VoiceLexiconEntry[] | void;
476
510
  export type VoiceOnTurnObjectHandler<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = (input: {
477
511
  context: TContext;
512
+ liveOps?: {
513
+ control: VoiceLiveOpsControlState;
514
+ injectedInstruction?: string;
515
+ };
478
516
  session: TSession;
479
517
  turn: VoiceTurnRecord;
480
518
  api: VoiceSessionHandle<TContext, TSession, TResult>;
@@ -559,7 +597,7 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
559
597
  disposition: VoiceCallDisposition;
560
598
  review: StoredVoiceCallReviewArtifact;
561
599
  session: TSession;
562
- }) => Promise<Omit<VoiceOpsTask, 'id'> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, 'id'> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
600
+ }) => Promise<Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
563
601
  resolveTaskPolicy?: (input: {
564
602
  api: VoiceSessionHandle<TContext, TSession, TResult>;
565
603
  context: TContext;
@@ -596,7 +634,37 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
596
634
  tasks?: VoiceOpsTaskStore;
597
635
  webhook?: VoiceIntegrationWebhookConfig;
598
636
  };
599
- export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, 'onTurn'> & {
637
+ export type VoiceLiveOpsRuntimeConfig = {
638
+ getControl: (sessionId: string) => Promise<VoiceLiveOpsControlState | null | undefined> | VoiceLiveOpsControlState | null | undefined;
639
+ };
640
+ export type VoiceProfileSwitchGuardResolverInput<TContext = unknown> = {
641
+ context: TContext;
642
+ scenarioId?: string;
643
+ sessionId: string;
644
+ };
645
+ export type VoicePluginProfileSwitchGuardConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
646
+ actor?: VoiceAuditActor;
647
+ allowedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
648
+ audit?: VoiceAuditEventStore;
649
+ blockedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
650
+ currentProfileId?: string | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string | undefined> | string | undefined);
651
+ defaultProfileId?: string;
652
+ defaults: VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport> | VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport);
653
+ metadata?: Record<string, unknown> | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<Record<string, unknown> | undefined> | Record<string, unknown> | undefined);
654
+ minConfidence?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
655
+ maxAutoSwitchesPerSession?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
656
+ mode?: VoiceProfileSwitchGuardMode | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchGuardMode | undefined> | VoiceProfileSwitchGuardMode | undefined);
657
+ observed?: VoiceProfileSwitchObservedSignals | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchObservedSignals | undefined> | VoiceProfileSwitchObservedSignals | undefined);
658
+ onDecision?: (input: {
659
+ context: TContext;
660
+ decision: VoiceProfileSwitchGuardDecision;
661
+ scenarioId?: string;
662
+ sessionId: string;
663
+ }) => Promise<void> | void;
664
+ sessionMetadataKey?: string | false;
665
+ trace?: false | VoiceTraceEventStore;
666
+ };
667
+ export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, "onTurn"> & {
600
668
  onTurn: VoiceOnTurnObjectHandler<TContext, TSession, TResult>;
601
669
  };
602
670
  export type VoiceScenario = {
@@ -616,9 +684,11 @@ export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionR
616
684
  lexicon?: VoiceLexiconEntry[] | VoiceLexiconResolver<TContext>;
617
685
  phraseHints?: VoicePhraseHint[] | VoicePhraseHintResolver<TContext>;
618
686
  preset?: VoiceRuntimePreset;
619
- stt: STTAdapter;
687
+ stt?: STTAdapter;
620
688
  sttFallback?: VoiceSTTFallbackConfig;
621
689
  sttLifecycle?: VoiceSTTLifecycle;
690
+ realtime?: RealtimeAdapter;
691
+ realtimeInputFormat?: AudioFormat;
622
692
  tts?: TTSAdapter;
623
693
  session: VoiceSessionStore<NoInfer<TSession>>;
624
694
  reconnect?: VoiceReconnectConfig;
@@ -628,112 +698,170 @@ export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionR
628
698
  htmx?: boolean | VoiceHTMXConfig<TSession, NoInfer<TResult>>;
629
699
  handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
630
700
  ops?: VoiceRuntimeOpsConfig<TContext, TSession, TResult>;
701
+ liveOps?: VoiceLiveOpsRuntimeConfig;
702
+ monitor?: VoiceMonitorRuntimeBinding;
703
+ profileSwitchGuard?: VoicePluginProfileSwitchGuardConfig<TContext, TSession, TResult>;
631
704
  trace?: VoiceTraceEventStore;
632
705
  } & VoiceRouteConfig<TContext, TSession, TResult>;
706
+ export type VoiceSessionRecordingConfig = {
707
+ channels?: ReadonlyArray<"assistant" | "user">;
708
+ maxBytesPerChannel?: number;
709
+ store: import("./recordingStore").VoiceRecordingStore;
710
+ userInputFormat?: AudioFormat;
711
+ };
633
712
  export type CreateVoiceSessionOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
634
713
  costTelemetry?: VoiceCostTelemetryConfig<TContext, TSession, TResult>;
635
714
  id: string;
636
715
  context: TContext;
637
716
  socket: VoiceSocket;
638
- stt: STTAdapter;
717
+ stt?: STTAdapter;
718
+ realtime?: RealtimeAdapter;
719
+ realtimeInputFormat?: AudioFormat;
639
720
  tts?: TTSAdapter;
640
721
  languageStrategy?: VoiceLanguageStrategy;
641
722
  lexicon?: VoiceLexiconEntry[];
642
723
  sttFallback?: VoiceResolvedSTTFallbackConfig;
643
724
  store: VoiceSessionStore<TSession>;
644
725
  trace?: VoiceTraceEventStore;
726
+ recording?: VoiceSessionRecordingConfig;
727
+ callSilenceTimeoutMs?: number;
728
+ amd?: import("./amdDetector").VoiceAMDDetector<TContext, TSession, TResult>;
729
+ costAccountant?: import("./costAccounting").VoiceCostAccountant;
730
+ costTelephony?: {
731
+ provider?: string;
732
+ };
645
733
  reconnect: Required<VoiceReconnectConfig>;
646
734
  phraseHints?: VoicePhraseHint[];
735
+ sessionMetadata?: Record<string, unknown>;
647
736
  scenarioId?: string;
648
737
  sttLifecycle: VoiceSTTLifecycle;
649
738
  turnDetection: VoiceResolvedTurnDetectionConfig;
650
739
  audioConditioning?: VoiceResolvedAudioConditioningConfig;
651
740
  handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
741
+ liveOps?: VoiceLiveOpsRuntimeConfig;
652
742
  route: VoiceNormalizedRouteConfig<TContext, TSession, TResult>;
653
743
  logger?: VoiceLogger;
654
744
  };
655
745
  export type CreateVoiceSession = <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
656
746
  export type VoiceClientStartMessage = {
657
- type: 'start';
747
+ type: "start";
658
748
  sessionId?: string;
659
749
  scenarioId?: string;
660
750
  };
661
751
  export type VoiceClientEndTurnMessage = {
662
- type: 'end_turn';
752
+ type: "end_turn";
663
753
  };
664
754
  export type VoiceClientCloseMessage = {
665
- type: 'close';
755
+ type: "close";
666
756
  reason?: string;
667
757
  };
668
758
  export type VoiceClientCallControlMessage = {
669
- type: 'call_control';
670
- action: 'complete' | 'escalate' | 'no-answer' | 'transfer' | 'voicemail';
759
+ type: "call_control";
760
+ action: "complete" | "escalate" | "no-answer" | "transfer" | "voicemail";
671
761
  metadata?: Record<string, unknown>;
672
762
  reason?: string;
673
763
  target?: string;
674
764
  };
675
765
  export type VoiceClientPingMessage = {
676
- type: 'ping';
766
+ type: "ping";
677
767
  };
678
768
  export type VoiceClientMessage = VoiceClientStartMessage | VoiceClientEndTurnMessage | VoiceClientCloseMessage | VoiceClientCallControlMessage | VoiceClientPingMessage;
679
769
  export type VoiceServerSessionMessage = {
680
- type: 'session';
770
+ type: "session";
681
771
  sessionId: string;
682
772
  status: VoiceSessionStatus;
683
773
  scenarioId?: string;
774
+ sessionMetadata?: Record<string, unknown>;
775
+ };
776
+ export type VoiceServerReplayMessage<TResult = unknown> = {
777
+ type: "replay";
778
+ assistantTexts: string[];
779
+ call?: VoiceCallLifecycleState;
780
+ partial: string;
781
+ scenarioId?: string;
782
+ sessionId: string;
783
+ sessionMetadata?: Record<string, unknown>;
784
+ status: VoiceSessionStatus;
785
+ turns: VoiceTurnRecord<TResult>[];
684
786
  };
685
787
  export type VoiceServerPartialMessage = {
686
- type: 'partial';
788
+ type: "partial";
687
789
  transcript: Transcript;
688
790
  };
689
791
  export type VoiceServerFinalMessage = {
690
- type: 'final';
792
+ type: "final";
691
793
  transcript: Transcript;
692
794
  };
693
795
  export type VoiceServerTurnMessage<TResult = unknown> = {
694
- type: 'turn';
796
+ type: "turn";
695
797
  turn: VoiceTurnRecord<TResult>;
696
798
  };
697
799
  export type VoiceServerAssistantMessage = {
698
- type: 'assistant';
800
+ type: "assistant";
699
801
  text: string;
700
802
  turnId?: string;
701
803
  };
702
804
  export type VoiceServerAudioMessage = {
703
- type: 'audio';
805
+ type: "audio";
704
806
  chunkBase64: string;
705
807
  format: AudioFormat;
706
808
  receivedAt: number;
707
809
  turnId?: string;
708
810
  };
709
811
  export type VoiceServerCompleteMessage = {
710
- type: 'complete';
812
+ type: "complete";
711
813
  sessionId: string;
712
814
  };
713
815
  export type VoiceServerCallLifecycleMessage = {
714
- type: 'call_lifecycle';
816
+ type: "call_lifecycle";
715
817
  event: VoiceCallLifecycleEvent;
716
818
  sessionId: string;
717
819
  };
718
820
  export type VoiceServerErrorMessage = {
719
- type: 'error';
821
+ type: "error";
720
822
  message: string;
721
823
  recoverable?: boolean;
722
824
  };
723
825
  export type VoiceServerPongMessage = {
724
- type: 'pong';
826
+ type: "pong";
725
827
  };
726
- export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage;
828
+ export type VoiceServerConnectionMessage = {
829
+ type: "connection";
830
+ reconnect: VoiceReconnectClientState;
831
+ };
832
+ export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerReplayMessage<TResult> | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage | VoiceServerConnectionMessage;
727
833
  export type VoiceConnectionOptions = {
834
+ browserMedia?: false | VoiceBrowserMediaReporterOptions;
728
835
  protocols?: string[];
729
836
  scenarioId?: string;
730
837
  reconnect?: boolean;
838
+ reconnectReportPath?: string;
731
839
  maxReconnectAttempts?: number;
732
840
  pingInterval?: number;
733
841
  sessionId?: string;
734
842
  };
843
+ export type VoiceBrowserMediaReportPayload = {
844
+ at: number;
845
+ continuity?: MediaWebRTCStreamContinuityReport;
846
+ report: MediaWebRTCStatsReport;
847
+ scenarioId?: string | null;
848
+ sessionId?: string | null;
849
+ };
850
+ export type VoiceBrowserMediaReporterOptions = Omit<MediaWebRTCStatsReportInput, "peerConnection"> & {
851
+ fetch?: typeof fetch;
852
+ getPeerConnection?: (() => MediaWebRTCStatsCollector | null | undefined) | (() => Promise<MediaWebRTCStatsCollector | null | undefined>);
853
+ getScenarioId?: () => string | null | undefined;
854
+ getSessionId?: () => string | null | undefined;
855
+ intervalMs?: number;
856
+ continuity?: false | Omit<MediaWebRTCStreamContinuityInput, "previousStats" | "stats">;
857
+ onError?: (error: unknown) => void;
858
+ onReport?: (payload: VoiceBrowserMediaReportPayload) => void;
859
+ path?: string;
860
+ peerConnection?: MediaWebRTCStatsCollector;
861
+ };
735
862
  export type VoiceCaptureOptions = {
736
863
  channelCount?: 1 | 2;
864
+ onAudio?: (audio: Uint8Array | ArrayBuffer, sendAudio: (audio: Uint8Array | ArrayBuffer) => void) => void;
737
865
  onLevel?: (level: number) => void;
738
866
  sampleRateHz?: number;
739
867
  };
@@ -747,6 +875,46 @@ export type VoiceBargeInOptions = {
747
875
  enabled?: boolean;
748
876
  interruptOnPartial?: boolean;
749
877
  interruptThreshold?: number;
878
+ monitor?: VoiceBargeInMonitor;
879
+ };
880
+ export type VoiceBargeInTriggerReason = "input-level" | "manual-audio" | "manual-interrupt" | "partial-transcript";
881
+ export type VoiceBargeInMonitorEvent = {
882
+ at: number;
883
+ id: string;
884
+ latencyMs?: number;
885
+ playbackStopLatencyMs?: number;
886
+ reason: VoiceBargeInTriggerReason;
887
+ sessionId?: string | null;
888
+ status: "requested" | "stopped" | "skipped";
889
+ thresholdMs?: number;
890
+ };
891
+ export type VoiceBargeInMonitorSnapshot = {
892
+ averageLatencyMs?: number;
893
+ events: VoiceBargeInMonitorEvent[];
894
+ failed: number;
895
+ lastEvent?: VoiceBargeInMonitorEvent;
896
+ passed: number;
897
+ status: "empty" | "fail" | "pass" | "warn";
898
+ thresholdMs: number;
899
+ total: number;
900
+ };
901
+ export type VoiceBargeInMonitor = {
902
+ getSnapshot: () => VoiceBargeInMonitorSnapshot;
903
+ recordRequested: (input: {
904
+ reason: VoiceBargeInTriggerReason;
905
+ sessionId?: string | null;
906
+ }) => VoiceBargeInMonitorEvent;
907
+ recordSkipped: (input: {
908
+ reason: VoiceBargeInTriggerReason;
909
+ sessionId?: string | null;
910
+ }) => VoiceBargeInMonitorEvent;
911
+ recordStopped: (input: {
912
+ latencyMs?: number;
913
+ playbackStopLatencyMs?: number;
914
+ reason: VoiceBargeInTriggerReason;
915
+ sessionId?: string | null;
916
+ }) => VoiceBargeInMonitorEvent;
917
+ subscribe: (subscriber: () => void) => () => void;
750
918
  };
751
919
  export type VoiceAudioPlayerOptions = {
752
920
  autoStart?: boolean;
@@ -757,10 +925,10 @@ export type VoiceDuplexControllerOptions = VoiceControllerOptions & {
757
925
  audioPlayer?: VoiceAudioPlayerOptions;
758
926
  bargeIn?: VoiceBargeInOptions;
759
927
  };
760
- export type VoiceSTTRoutingGoal = 'best' | 'low-cost';
761
- export type VoiceSTTRoutingCorrectionMode = 'generic' | 'none' | 'risky-turn';
928
+ export type VoiceSTTRoutingGoal = "best" | "low-cost";
929
+ export type VoiceSTTRoutingCorrectionMode = "generic" | "none" | "risky-turn";
762
930
  export type VoiceSTTRoutingStrategy = {
763
- benchmarkSessionTarget: 'deepgram-corrected' | 'deepgram-flux';
931
+ benchmarkSessionTarget: "deepgram-corrected" | "deepgram-flux";
764
932
  correctionMode: VoiceSTTRoutingCorrectionMode;
765
933
  goal: VoiceSTTRoutingGoal;
766
934
  notes: string[];
@@ -774,7 +942,7 @@ export type VoiceHTMXRenderInput<TResult = unknown, TSession extends VoiceSessio
774
942
  result?: TResult;
775
943
  session?: TSession;
776
944
  sessionId?: string;
777
- status: VoiceSessionStatus | 'idle';
945
+ status: VoiceSessionStatus | "idle";
778
946
  turnCount: number;
779
947
  turns: VoiceTurnRecord<TResult>[];
780
948
  };
@@ -802,9 +970,11 @@ export type VoiceHTMXOptions<TSession extends VoiceSessionRecord = VoiceSessionR
802
970
  export type VoiceHTMXConfig<TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = VoiceHTMXRenderer<TSession, TResult> | VoiceHTMXOptions<TSession, TResult>;
803
971
  export type VoiceStreamState<TResult = unknown> = {
804
972
  call: VoiceCallLifecycleState | null;
973
+ sessionMetadata: Record<string, unknown> | null;
805
974
  sessionId: string | null;
806
975
  scenarioId: string | null;
807
- status: VoiceSessionStatus | 'idle';
976
+ status: VoiceSessionStatus | "idle";
977
+ reconnect: VoiceReconnectClientState;
808
978
  partial: string;
809
979
  turns: VoiceTurnRecord<TResult>[];
810
980
  assistantTexts: string[];
@@ -819,7 +989,7 @@ export type VoiceStreamState<TResult = unknown> = {
819
989
  };
820
990
  export type VoiceStream<TResult = unknown> = {
821
991
  call: VoiceCallLifecycleState | null;
822
- callControl: (message: Omit<VoiceClientCallControlMessage, 'type'>) => void;
992
+ callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
823
993
  close: () => void;
824
994
  start: (input?: {
825
995
  scenarioId?: string;
@@ -831,10 +1001,13 @@ export type VoiceStream<TResult = unknown> = {
831
1001
  getSnapshot: () => VoiceStreamState<TResult>;
832
1002
  isConnected: boolean;
833
1003
  partial: string;
1004
+ reconnect: VoiceReconnectClientState;
834
1005
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
1006
+ simulateDisconnect: () => void;
835
1007
  sessionId: string | null;
1008
+ sessionMetadata: Record<string, unknown> | null;
836
1009
  scenarioId: string | null;
837
- status: VoiceSessionStatus | 'idle';
1010
+ status: VoiceSessionStatus | "idle";
838
1011
  subscribe: (subscriber: () => void) => () => void;
839
1012
  turns: VoiceTurnRecord<TResult>[];
840
1013
  assistantTexts: string[];
@@ -860,7 +1033,7 @@ export type VoiceAudioPlayerState = {
860
1033
  queuedChunkCount: number;
861
1034
  };
862
1035
  export type VoiceAudioPlayerSource = {
863
- assistantAudio: VoiceStreamState['assistantAudio'];
1036
+ assistantAudio: VoiceStreamState["assistantAudio"];
864
1037
  subscribe: (subscriber: () => void) => () => void;
865
1038
  };
866
1039
  export type VoiceAudioPlayer = {
@@ -887,7 +1060,7 @@ export type VoiceBargeInBinding = {
887
1060
  export type VoiceController<TResult = unknown> = {
888
1061
  bindHTMX: (options: VoiceHTMXBindingOptions) => () => void;
889
1062
  call: VoiceCallLifecycleState | null;
890
- callControl: (message: Omit<VoiceClientCallControlMessage, 'type'>) => void;
1063
+ callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
891
1064
  close: () => void;
892
1065
  endTurn: () => void;
893
1066
  start: (input?: {
@@ -900,12 +1073,15 @@ export type VoiceController<TResult = unknown> = {
900
1073
  isConnected: boolean;
901
1074
  isRecording: boolean;
902
1075
  partial: string;
1076
+ reconnect: VoiceReconnectClientState;
903
1077
  recordingError: string | null;
904
1078
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
1079
+ simulateDisconnect: () => void;
905
1080
  sessionId: string | null;
1081
+ sessionMetadata: Record<string, unknown> | null;
906
1082
  scenarioId: string | null;
907
1083
  startRecording: () => Promise<void>;
908
- status: VoiceSessionStatus | 'idle';
1084
+ status: VoiceSessionStatus | "idle";
909
1085
  stopRecording: () => void;
910
1086
  subscribe: (subscriber: () => void) => () => void;
911
1087
  toggleRecording: () => Promise<void>;
@@ -929,40 +1105,54 @@ export type VoiceHTMXBindingOptions = {
929
1105
  sessionQueryParam?: string;
930
1106
  };
931
1107
  export type VoiceStoreAction<TResult = unknown> = {
932
- type: 'session';
1108
+ type: "session";
933
1109
  sessionId: string;
1110
+ sessionMetadata?: Record<string, unknown>;
934
1111
  scenarioId?: string;
935
1112
  status: VoiceSessionStatus;
936
1113
  } | {
937
- type: 'call_lifecycle';
1114
+ type: "replay";
1115
+ assistantTexts: string[];
1116
+ call?: VoiceCallLifecycleState;
1117
+ partial: string;
1118
+ scenarioId?: string;
1119
+ sessionId: string;
1120
+ sessionMetadata?: Record<string, unknown>;
1121
+ status: VoiceSessionStatus;
1122
+ turns: VoiceTurnRecord<TResult>[];
1123
+ } | {
1124
+ type: "call_lifecycle";
938
1125
  event: VoiceCallLifecycleEvent;
939
1126
  sessionId: string;
940
1127
  } | {
941
- type: 'partial';
1128
+ type: "partial";
942
1129
  transcript: Transcript;
943
1130
  } | {
944
- type: 'final';
1131
+ type: "final";
945
1132
  transcript: Transcript;
946
1133
  } | {
947
- type: 'turn';
1134
+ type: "turn";
948
1135
  turn: VoiceTurnRecord<TResult>;
949
1136
  } | {
950
- type: 'assistant';
1137
+ type: "assistant";
951
1138
  text: string;
952
1139
  } | {
953
- type: 'audio';
1140
+ type: "audio";
954
1141
  chunk: Uint8Array;
955
1142
  format: AudioFormat;
956
1143
  receivedAt: number;
957
1144
  turnId?: string;
958
1145
  } | {
959
- type: 'complete';
1146
+ type: "complete";
960
1147
  sessionId: string;
961
1148
  } | {
962
- type: 'error';
1149
+ type: "error";
963
1150
  message: string;
964
1151
  } | {
965
- type: 'connected';
1152
+ type: "connected";
1153
+ } | {
1154
+ type: "connection";
1155
+ reconnect: VoiceReconnectClientState;
966
1156
  } | {
967
- type: 'disconnected';
1157
+ type: "disconnected";
968
1158
  };