@absolutejs/voice 0.0.22-beta.65 → 0.0.22-beta.651

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 (514) hide show
  1. package/LICENSE +88 -0
  2. package/README.md +4550 -1180
  3. package/dist/angular/index.d.ts +36 -6
  4. package/dist/angular/index.js +4281 -472
  5. package/dist/angular/voice-agent-squad-status.service.d.ts +12 -0
  6. package/dist/angular/voice-call-debugger.service.d.ts +12 -0
  7. package/dist/angular/voice-call-player.service.d.ts +19 -0
  8. package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
  9. package/dist/angular/voice-controller.service.d.ts +4 -1
  10. package/dist/angular/voice-cost-dashboard.service.d.ts +15 -0
  11. package/dist/angular/voice-delivery-runtime.service.d.ts +16 -0
  12. package/dist/angular/voice-live-agent-console.service.d.ts +16 -0
  13. package/dist/angular/voice-live-call-viewer.service.d.ts +16 -0
  14. package/dist/angular/voice-live-ops.service.d.ts +11 -0
  15. package/dist/angular/voice-ops-action-center.service.d.ts +13 -0
  16. package/dist/angular/voice-ops-status.service.d.ts +12 -0
  17. package/dist/angular/voice-platform-coverage.service.d.ts +12 -0
  18. package/dist/angular/voice-profile-comparison.service.d.ts +12 -0
  19. package/dist/angular/voice-proof-trends.service.d.ts +12 -0
  20. package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
  21. package/dist/angular/voice-provider-contracts.service.d.ts +12 -0
  22. package/dist/angular/voice-provider-status.service.d.ts +2 -2
  23. package/dist/angular/voice-readiness-failures.service.d.ts +13 -0
  24. package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +12 -0
  25. package/dist/angular/voice-replay-timeline.service.d.ts +13 -0
  26. package/dist/angular/voice-routing-status.service.d.ts +1 -1
  27. package/dist/angular/voice-session-observability.service.d.ts +12 -0
  28. package/dist/angular/voice-session-snapshot.service.d.ts +13 -0
  29. package/dist/angular/voice-stream.service.d.ts +5 -1
  30. package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
  31. package/dist/angular/voice-turn-latency.service.d.ts +13 -0
  32. package/dist/angular/voice-turn-quality.service.d.ts +12 -0
  33. package/dist/angular/voice-widget.service.d.ts +18 -0
  34. package/dist/angular/voice-workflow-status.service.d.ts +2 -2
  35. package/dist/client/actions.d.ts +128 -2
  36. package/dist/client/agentSquadStatus.d.ts +37 -0
  37. package/dist/client/agentSquadStatusWidget.d.ts +24 -0
  38. package/dist/client/audioPlayer.d.ts +12 -2
  39. package/dist/client/bargeInMonitor.d.ts +7 -0
  40. package/dist/client/browserMedia.d.ts +8 -0
  41. package/dist/client/browserNoiseSuppression.d.ts +42 -0
  42. package/dist/client/browserVoiceSupport.d.ts +22 -0
  43. package/dist/client/callDebugger.d.ts +21 -0
  44. package/dist/client/callDebuggerWidget.d.ts +30 -0
  45. package/dist/client/callPlayer.d.ts +41 -0
  46. package/dist/client/campaignDialerProof.d.ts +25 -0
  47. package/dist/client/connection.d.ts +10 -4
  48. package/dist/client/controller.d.ts +1 -1
  49. package/dist/client/conversationAnalytics.d.ts +30 -0
  50. package/dist/client/costDashboard.d.ts +27 -0
  51. package/dist/client/createVoiceStream.d.ts +1 -1
  52. package/dist/client/deliveryRuntime.d.ts +36 -0
  53. package/dist/client/deliveryRuntimeWidget.d.ts +37 -0
  54. package/dist/client/duplex.d.ts +2 -2
  55. package/dist/client/htmx.d.ts +1 -1
  56. package/dist/client/htmxAttributes.d.ts +24 -0
  57. package/dist/client/htmxBootstrap.js +1494 -107
  58. package/dist/client/htmxDashboardRenderers.d.ts +71 -0
  59. package/dist/client/index.d.ts +109 -25
  60. package/dist/client/index.js +10811 -532
  61. package/dist/client/liveAgentConsole.d.ts +28 -0
  62. package/dist/client/liveCallViewer.d.ts +42 -0
  63. package/dist/client/liveOps.d.ts +22 -0
  64. package/dist/client/liveOpsWidget.d.ts +23 -0
  65. package/dist/client/liveTurnLatency.d.ts +41 -0
  66. package/dist/client/microphone.d.ts +5 -4
  67. package/dist/client/opsActionCenter.d.ts +56 -0
  68. package/dist/client/opsActionCenterWidget.d.ts +29 -0
  69. package/dist/client/opsActionHistory.d.ts +21 -0
  70. package/dist/client/opsActionHistoryWidget.d.ts +11 -0
  71. package/dist/client/opsStatus.d.ts +21 -0
  72. package/dist/client/opsStatusWidget.d.ts +10 -10
  73. package/dist/client/platformCoverage.d.ts +21 -0
  74. package/dist/client/platformCoverageWidget.d.ts +38 -0
  75. package/dist/client/profileComparison.d.ts +21 -0
  76. package/dist/client/profileComparisonWidget.d.ts +41 -0
  77. package/dist/client/profileSwitchRecommendation.d.ts +21 -0
  78. package/dist/client/profileSwitchRecommendationWidget.d.ts +12 -0
  79. package/dist/client/proofTrends.d.ts +21 -0
  80. package/dist/client/proofTrendsWidget.d.ts +38 -0
  81. package/dist/client/providerCapabilities.d.ts +21 -0
  82. package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
  83. package/dist/client/providerContracts.d.ts +21 -0
  84. package/dist/client/providerContractsWidget.d.ts +37 -0
  85. package/dist/client/providerSimulationControls.d.ts +3 -3
  86. package/dist/client/providerSimulationControlsWidget.d.ts +5 -5
  87. package/dist/client/providerStatus.d.ts +5 -3
  88. package/dist/client/providerStatusWidget.d.ts +6 -6
  89. package/dist/client/reactiveSource.d.ts +8 -0
  90. package/dist/client/readinessFailures.d.ts +21 -0
  91. package/dist/client/readinessFailuresWidget.d.ts +42 -0
  92. package/dist/client/reconnectProfileEvidence.d.ts +21 -0
  93. package/dist/client/reconnectProfileEvidenceWidget.d.ts +39 -0
  94. package/dist/client/replayTimeline.d.ts +26 -0
  95. package/dist/client/routingStatus.d.ts +5 -3
  96. package/dist/client/routingStatusWidget.d.ts +10 -6
  97. package/dist/client/sessionObservability.d.ts +21 -0
  98. package/dist/client/sessionObservabilityWidget.d.ts +31 -0
  99. package/dist/client/sessionSnapshot.d.ts +23 -0
  100. package/dist/client/sessionSnapshotWidget.d.ts +33 -0
  101. package/dist/client/store.d.ts +1 -1
  102. package/dist/client/timeStretch.d.ts +5 -0
  103. package/dist/client/traceTimeline.d.ts +21 -0
  104. package/dist/client/traceTimelineWidget.d.ts +36 -0
  105. package/dist/client/turnLatency.d.ts +24 -0
  106. package/dist/client/turnLatencyWidget.d.ts +33 -0
  107. package/dist/client/turnQuality.d.ts +21 -0
  108. package/dist/client/turnQualityWidget.d.ts +32 -0
  109. package/dist/client/voiceWidgetView.d.ts +48 -0
  110. package/dist/client/workflowStatus.d.ts +5 -3
  111. package/dist/{agent.d.ts → core/agent.d.ts} +110 -7
  112. package/dist/core/agentPerformanceReport.d.ts +40 -0
  113. package/dist/core/agentSquadContract.d.ts +98 -0
  114. package/dist/core/agentState.d.ts +12 -0
  115. package/dist/core/agentTools.d.ts +132 -0
  116. package/dist/core/aiScorecard.d.ts +32 -0
  117. package/dist/core/aiVoiceModel.d.ts +15 -0
  118. package/dist/core/amdDetector.d.ts +25 -0
  119. package/dist/{assistant.d.ts → core/assistant.d.ts} +21 -14
  120. package/dist/core/assistantExperiment.d.ts +42 -0
  121. package/dist/{assistantHealth.d.ts → core/assistantHealth.d.ts} +9 -9
  122. package/dist/{assistantMemory.d.ts → core/assistantMemory.d.ts} +10 -10
  123. package/dist/core/assistantMode.d.ts +22 -0
  124. package/dist/{audioConditioning.d.ts → core/audioConditioning.d.ts} +2 -2
  125. package/dist/core/audit.d.ts +131 -0
  126. package/dist/core/auditDeliveryRoutes.d.ts +85 -0
  127. package/dist/core/auditExport.d.ts +34 -0
  128. package/dist/core/auditRoutes.d.ts +66 -0
  129. package/dist/core/auditSinks.d.ts +151 -0
  130. package/dist/core/backchannel.d.ts +25 -0
  131. package/dist/core/bargeInDetector.d.ts +51 -0
  132. package/dist/core/bargeInRoutes.d.ts +56 -0
  133. package/dist/core/bookingFlow.d.ts +43 -0
  134. package/dist/core/browserCallProfiles.d.ts +120 -0
  135. package/dist/core/browserMediaRoutes.d.ts +62 -0
  136. package/dist/core/cachedTTS.d.ts +54 -0
  137. package/dist/core/calendarAdapter.d.ts +47 -0
  138. package/dist/core/calendarSlots.d.ts +35 -0
  139. package/dist/core/callDebugger.d.ts +66 -0
  140. package/dist/core/callDisposition.d.ts +38 -0
  141. package/dist/core/callQuota.d.ts +54 -0
  142. package/dist/core/callScorecard.d.ts +53 -0
  143. package/dist/core/callerCRMLinker.d.ts +29 -0
  144. package/dist/core/callerMemory.d.ts +37 -0
  145. package/dist/core/callingWindow.d.ts +26 -0
  146. package/dist/core/campaign.d.ts +795 -0
  147. package/dist/core/campaignControls.d.ts +37 -0
  148. package/dist/core/campaignDialers.d.ts +111 -0
  149. package/dist/core/campaignTemplate.d.ts +16 -0
  150. package/dist/core/competitiveCoverage.d.ts +141 -0
  151. package/dist/core/conversationSimulator.d.ts +73 -0
  152. package/dist/{correction.d.ts → core/correction.d.ts} +5 -4
  153. package/dist/core/costAccounting.d.ts +90 -0
  154. package/dist/core/costPredictor.d.ts +74 -0
  155. package/dist/core/crmCallLogger.d.ts +37 -0
  156. package/dist/core/crmContract.d.ts +70 -0
  157. package/dist/core/dataControl.d.ts +180 -0
  158. package/dist/core/debugTiming.d.ts +11 -0
  159. package/dist/core/defineVoiceAssistant.d.ts +68 -0
  160. package/dist/core/deliveryRuntime.d.ts +159 -0
  161. package/dist/core/deliverySinkRoutes.d.ts +117 -0
  162. package/dist/core/demoReadyRoutes.d.ts +98 -0
  163. package/dist/{diagnosticsRoutes.d.ts → core/diagnosticsRoutes.d.ts} +2 -2
  164. package/dist/core/dncRegistry.d.ts +38 -0
  165. package/dist/core/dtmfCollector.d.ts +37 -0
  166. package/dist/{evalRoutes.d.ts → core/evalRoutes.d.ts} +26 -20
  167. package/dist/{fileStore.d.ts → core/fileStore.d.ts} +34 -20
  168. package/dist/core/guardrails.d.ts +128 -0
  169. package/dist/{handoff.d.ts → core/handoff.d.ts} +10 -10
  170. package/dist/{handoffHealth.d.ts → core/handoffHealth.d.ts} +9 -9
  171. package/dist/core/hardenedFetch.d.ts +1 -0
  172. package/dist/core/holdAudio.d.ts +23 -0
  173. package/dist/{htmx.d.ts → core/htmx.d.ts} +2 -2
  174. package/dist/core/htmxDashboardRoutes.d.ts +250 -0
  175. package/dist/core/iceServers.d.ts +34 -0
  176. package/dist/core/incidentBundle.d.ts +119 -0
  177. package/dist/core/incidentTimeline.d.ts +260 -0
  178. package/dist/core/ivrPlan.d.ts +40 -0
  179. package/dist/core/latencySlo.d.ts +56 -0
  180. package/dist/core/liveCoach.d.ts +43 -0
  181. package/dist/core/liveLatency.d.ts +78 -0
  182. package/dist/core/liveOps.d.ts +190 -0
  183. package/dist/core/llmJudge.d.ts +45 -0
  184. package/dist/{logger.d.ts → core/logger.d.ts} +1 -2
  185. package/dist/core/mcpToolset.d.ts +58 -0
  186. package/dist/core/mediaPipelineRoutes.d.ts +171 -0
  187. package/dist/core/mediaPipelineSurfaces.d.ts +48 -0
  188. package/dist/{memoryStore.d.ts → core/memoryStore.d.ts} +1 -1
  189. package/dist/core/midCallSummary.d.ts +27 -0
  190. package/dist/{modelAdapters.d.ts → core/modelAdapters.d.ts} +64 -7
  191. package/dist/core/monitor.d.ts +148 -0
  192. package/dist/core/multilingualProof.d.ts +77 -0
  193. package/dist/core/noShowPredictor.d.ts +46 -0
  194. package/dist/core/numberNormalizer.d.ts +1 -0
  195. package/dist/core/oauth2TokenSource.d.ts +21 -0
  196. package/dist/core/observabilityExport.d.ts +501 -0
  197. package/dist/core/openaiTTS.d.ts +18 -0
  198. package/dist/core/operationalStatus.d.ts +87 -0
  199. package/dist/core/operationsRecord.d.ts +371 -0
  200. package/dist/{ops.d.ts → core/ops.d.ts} +70 -70
  201. package/dist/core/opsActionAuditRoutes.d.ts +99 -0
  202. package/dist/{opsConsoleRoutes.d.ts → core/opsConsoleRoutes.d.ts} +11 -8
  203. package/dist/{opsPresets.d.ts → core/opsPresets.d.ts} +2 -2
  204. package/dist/core/opsRecovery.d.ts +137 -0
  205. package/dist/{opsRuntime.d.ts → core/opsRuntime.d.ts} +6 -6
  206. package/dist/{opsSinks.d.ts → core/opsSinks.d.ts} +19 -19
  207. package/dist/core/opsStatus.d.ts +76 -0
  208. package/dist/core/opsStatusRoutes.d.ts +33 -0
  209. package/dist/{opsWebhook.d.ts → core/opsWebhook.d.ts} +15 -15
  210. package/dist/core/otelExporter.d.ts +83 -0
  211. package/dist/core/outcomeContract.d.ts +146 -0
  212. package/dist/{outcomeRecipes.d.ts → core/outcomeRecipes.d.ts} +4 -4
  213. package/dist/core/pathway.d.ts +94 -0
  214. package/dist/core/pathwayCompiler.d.ts +31 -0
  215. package/dist/core/pathwayGenerator.d.ts +27 -0
  216. package/dist/core/pathwayRuntime.d.ts +57 -0
  217. package/dist/core/pathwaySlotCollector.d.ts +29 -0
  218. package/dist/core/pathwayVisualizer.d.ts +8 -0
  219. package/dist/core/phoneAgent.d.ts +139 -0
  220. package/dist/core/phoneAgentProductionSmoke.d.ts +115 -0
  221. package/dist/core/phoneProvisioning.d.ts +29 -0
  222. package/dist/core/platformCoverage.d.ts +91 -0
  223. package/dist/{plugin.d.ts → core/plugin.d.ts} +8 -8
  224. package/dist/core/postCallAnalysis.d.ts +98 -0
  225. package/dist/core/postCallSurvey.d.ts +41 -0
  226. package/dist/{postgresStore.d.ts → core/postgresStore.d.ts} +20 -9
  227. package/dist/{presets.d.ts → core/presets.d.ts} +3 -3
  228. package/dist/core/productionReadiness.d.ts +757 -0
  229. package/dist/core/profileSwitchRecommendation.d.ts +350 -0
  230. package/dist/core/promptInjectionGuard.d.ts +30 -0
  231. package/dist/core/proofAssertions.d.ts +32 -0
  232. package/dist/core/proofPack.d.ts +211 -0
  233. package/dist/core/proofRunner.d.ts +79 -0
  234. package/dist/core/proofTrends.d.ts +966 -0
  235. package/dist/{providerAdapters.d.ts → core/providerAdapters.d.ts} +5 -5
  236. package/dist/{providerCapabilities.d.ts → core/providerCapabilities.d.ts} +9 -9
  237. package/dist/core/providerDecisionTraces.d.ts +130 -0
  238. package/dist/{providerHealth.d.ts → core/providerHealth.d.ts} +15 -5
  239. package/dist/core/providerOrchestration.d.ts +109 -0
  240. package/dist/core/providerRouterTraces.d.ts +35 -0
  241. package/dist/core/providerRoutingContract.d.ts +71 -0
  242. package/dist/core/providerSlo.d.ts +142 -0
  243. package/dist/core/providerStackRecommendations.d.ts +188 -0
  244. package/dist/core/qualityDriftDetector.d.ts +44 -0
  245. package/dist/{qualityRoutes.d.ts → core/qualityRoutes.d.ts} +7 -7
  246. package/dist/{queue.d.ts → core/queue.d.ts} +48 -39
  247. package/dist/core/ragTool.d.ts +52 -0
  248. package/dist/core/readinessProfiles.d.ts +45 -0
  249. package/dist/core/realtimeChannel.d.ts +136 -0
  250. package/dist/core/realtimeProviderContracts.d.ts +133 -0
  251. package/dist/core/reconnectContract.d.ts +177 -0
  252. package/dist/core/recordingRedaction.d.ts +47 -0
  253. package/dist/core/recordingStore.d.ts +60 -0
  254. package/dist/core/redaction.d.ts +13 -0
  255. package/dist/core/reminderScheduler.d.ts +43 -0
  256. package/dist/{resilienceRoutes.d.ts → core/resilienceRoutes.d.ts} +34 -5
  257. package/dist/core/retention.d.ts +37 -0
  258. package/dist/core/retryPolicy.d.ts +38 -0
  259. package/dist/core/routeAuth.d.ts +58 -0
  260. package/dist/{routing.d.ts → core/routing.d.ts} +2 -2
  261. package/dist/{runtimeOps.d.ts → core/runtimeOps.d.ts} +3 -3
  262. package/dist/{s3Store.d.ts → core/s3Store.d.ts} +12 -3
  263. package/dist/core/scorecardCalibration.d.ts +31 -0
  264. package/dist/core/scribe.d.ts +50 -0
  265. package/dist/core/semanticTurn.d.ts +37 -0
  266. package/dist/{session.d.ts → core/session.d.ts} +1 -1
  267. package/dist/core/sessionObservability.d.ts +145 -0
  268. package/dist/{sessionReplay.d.ts → core/sessionReplay.d.ts} +31 -19
  269. package/dist/core/sessionSnapshot.d.ts +109 -0
  270. package/dist/core/simulationSuite.d.ts +144 -0
  271. package/dist/core/sloCalibration.d.ts +185 -0
  272. package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +20 -9
  273. package/dist/{store.d.ts → core/store.d.ts} +1 -1
  274. package/dist/core/supervisorPermissions.d.ts +33 -0
  275. package/dist/core/supervisorPresence.d.ts +49 -0
  276. package/dist/core/telephonyMediaRoutes.d.ts +72 -0
  277. package/dist/core/telephonyOutcome.d.ts +269 -0
  278. package/dist/{toolContract.d.ts → core/toolContract.d.ts} +46 -15
  279. package/dist/{toolRuntime.d.ts → core/toolRuntime.d.ts} +4 -4
  280. package/dist/{trace.d.ts → core/trace.d.ts} +61 -22
  281. package/dist/core/traceDeliveryRoutes.d.ts +86 -0
  282. package/dist/core/traceTimeline.d.ts +97 -0
  283. package/dist/core/transcriptAnnotator.d.ts +41 -0
  284. package/dist/{turnDetection.d.ts → core/turnDetection.d.ts} +2 -1
  285. package/dist/core/turnLatency.d.ts +95 -0
  286. package/dist/core/turnProfiles.d.ts +3 -0
  287. package/dist/core/turnQuality.d.ts +94 -0
  288. package/dist/core/types.d.ts +1727 -0
  289. package/dist/core/vapiAdapter.d.ts +160 -0
  290. package/dist/core/variableAnalytics.d.ts +47 -0
  291. package/dist/core/voiceConfiguration.d.ts +8 -0
  292. package/dist/core/voiceMonitoring.d.ts +444 -0
  293. package/dist/core/webhookFanout.d.ts +48 -0
  294. package/dist/core/webhookVerification.d.ts +27 -0
  295. package/dist/core/whisperChannel.d.ts +50 -0
  296. package/dist/{workflowContract.d.ts → core/workflowContract.d.ts} +21 -21
  297. package/dist/core/writeBehindStore.d.ts +41 -0
  298. package/dist/core/zeroDataRetention.d.ts +31 -0
  299. package/dist/drizzle/assistantMemory.d.ts +100 -0
  300. package/dist/drizzle/eval.d.ts +55 -0
  301. package/dist/drizzle/handoff.d.ts +56 -0
  302. package/dist/drizzle/incidentBundle.d.ts +55 -0
  303. package/dist/drizzle/index.d.ts +991 -0
  304. package/dist/drizzle/index.js +3059 -0
  305. package/dist/drizzle/observabilityExport.d.ts +55 -0
  306. package/dist/drizzle/proofTrends.d.ts +114 -0
  307. package/dist/drizzle/runtimeStorage.d.ts +1183 -0
  308. package/dist/drizzle/shared.d.ts +69 -0
  309. package/dist/embed/index.d.ts +38 -0
  310. package/dist/embed/index.js +1838 -0
  311. package/dist/embed/voice-widget.js +10 -0
  312. package/dist/index.d.ts +379 -80
  313. package/dist/index.js +48148 -8037
  314. package/dist/internal/evidence.d.ts +10 -0
  315. package/dist/internal/html.d.ts +6 -0
  316. package/dist/internal/status.d.ts +7 -0
  317. package/dist/manifest.d.ts +17 -0
  318. package/dist/manifest.js +424 -0
  319. package/dist/manifest.json +427 -0
  320. package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
  321. package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
  322. package/dist/react/VoiceCallPlayer.d.ts +11 -0
  323. package/dist/react/VoiceCostDashboard.d.ts +10 -0
  324. package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
  325. package/dist/react/VoiceLiveAgentConsole.d.ts +11 -0
  326. package/dist/react/VoiceLiveCallViewer.d.ts +9 -0
  327. package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
  328. package/dist/react/VoiceOpsStatus.d.ts +1 -1
  329. package/dist/react/VoicePlatformCoverage.d.ts +6 -0
  330. package/dist/react/VoiceProfileComparison.d.ts +6 -0
  331. package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
  332. package/dist/react/VoiceProofTrends.d.ts +6 -0
  333. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  334. package/dist/react/VoiceProviderContracts.d.ts +6 -0
  335. package/dist/react/VoiceProviderSimulationControls.d.ts +1 -1
  336. package/dist/react/VoiceProviderStatus.d.ts +1 -1
  337. package/dist/react/VoiceReadinessFailures.d.ts +6 -0
  338. package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
  339. package/dist/react/VoiceReplayTimeline.d.ts +6 -0
  340. package/dist/react/VoiceRoutingStatus.d.ts +1 -1
  341. package/dist/react/VoiceSessionObservability.d.ts +6 -0
  342. package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
  343. package/dist/react/VoiceTraceTimeline.d.ts +6 -0
  344. package/dist/react/VoiceTurnLatency.d.ts +6 -0
  345. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  346. package/dist/react/VoiceWidget.d.ts +13 -0
  347. package/dist/react/index.d.ts +80 -11
  348. package/dist/react/index.js +13610 -1595
  349. package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
  350. package/dist/react/useVoiceCallDebugger.d.ts +8 -0
  351. package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
  352. package/dist/react/useVoiceController.d.ts +5 -1
  353. package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
  354. package/dist/react/useVoiceLiveOps.d.ts +9 -0
  355. package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
  356. package/dist/react/useVoiceOpsStatus.d.ts +8 -0
  357. package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
  358. package/dist/react/useVoiceProfileComparison.d.ts +8 -0
  359. package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
  360. package/dist/react/useVoiceProofTrends.d.ts +8 -0
  361. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  362. package/dist/react/useVoiceProviderContracts.d.ts +8 -0
  363. package/dist/react/useVoiceProviderSimulationControls.d.ts +1 -1
  364. package/dist/react/useVoiceProviderStatus.d.ts +1 -1
  365. package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
  366. package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
  367. package/dist/react/useVoiceRoutingStatus.d.ts +1 -1
  368. package/dist/react/useVoiceSessionObservability.d.ts +8 -0
  369. package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
  370. package/dist/react/useVoiceStream.d.ts +5 -1
  371. package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
  372. package/dist/react/useVoiceTurnLatency.d.ts +9 -0
  373. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  374. package/dist/react/useVoiceWorkflowStatus.d.ts +1 -1
  375. package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
  376. package/dist/svelte/createVoiceCallDebugger.d.ts +10 -0
  377. package/dist/svelte/createVoiceCallPlayer.d.ts +33 -0
  378. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
  379. package/dist/svelte/createVoiceCostDashboard.d.ts +13 -0
  380. package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
  381. package/dist/svelte/createVoiceLiveAgentConsole.d.ts +23 -0
  382. package/dist/svelte/createVoiceLiveCallViewer.d.ts +26 -0
  383. package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
  384. package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
  385. package/dist/svelte/createVoiceOpsStatus.d.ts +4 -4
  386. package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
  387. package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
  388. package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
  389. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  390. package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
  391. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +2 -2
  392. package/dist/svelte/createVoiceProviderStatus.d.ts +2 -2
  393. package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
  394. package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
  395. package/dist/svelte/createVoiceReplayTimeline.d.ts +13 -0
  396. package/dist/svelte/createVoiceRoutingStatus.d.ts +2 -2
  397. package/dist/svelte/createVoiceSessionObservability.d.ts +10 -0
  398. package/dist/svelte/createVoiceSessionSnapshot.d.ts +11 -0
  399. package/dist/svelte/createVoiceStream.d.ts +1 -1
  400. package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
  401. package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
  402. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  403. package/dist/svelte/createVoiceWidget.d.ts +19 -0
  404. package/dist/svelte/createVoiceWorkflowStatus.d.ts +2 -2
  405. package/dist/svelte/index.d.ts +37 -8
  406. package/dist/svelte/index.js +7249 -1315
  407. package/dist/telephony/contract.d.ts +61 -0
  408. package/dist/telephony/matrix.d.ts +97 -0
  409. package/dist/telephony/plivo.d.ts +303 -0
  410. package/dist/telephony/response.d.ts +1 -1
  411. package/dist/telephony/security.d.ts +182 -0
  412. package/dist/telephony/telnyx.d.ts +291 -0
  413. package/dist/telephony/twilio.d.ts +153 -15
  414. package/dist/testing/accuracy.d.ts +18 -1
  415. package/dist/testing/audioMatrix.d.ts +22 -0
  416. package/dist/testing/benchmark.d.ts +24 -15
  417. package/dist/testing/confidenceCalibration.d.ts +19 -0
  418. package/dist/testing/conformance.d.ts +11 -0
  419. package/dist/testing/corrected.d.ts +9 -9
  420. package/dist/testing/criticalFields.d.ts +22 -0
  421. package/dist/testing/duplex.d.ts +5 -5
  422. package/dist/testing/fixtures.d.ts +7 -4
  423. package/dist/testing/index.d.ts +21 -13
  424. package/dist/testing/index.js +8517 -1053
  425. package/dist/testing/ioProviderSimulator.d.ts +5 -5
  426. package/dist/testing/outcomes.d.ts +12 -0
  427. package/dist/testing/provenance.d.ts +44 -0
  428. package/dist/testing/providerSimulator.d.ts +5 -5
  429. package/dist/testing/review.d.ts +8 -8
  430. package/dist/testing/routingBenchmark.d.ts +16 -0
  431. package/dist/testing/sessionBenchmark.d.ts +13 -13
  432. package/dist/testing/statistics.d.ts +30 -0
  433. package/dist/testing/stt.d.ts +3 -3
  434. package/dist/testing/telephony.d.ts +27 -2
  435. package/dist/testing/tts.d.ts +2 -2
  436. package/dist/vue/VoiceCallDebuggerLaunch.d.ts +72 -0
  437. package/dist/vue/VoiceCallPlayer.d.ts +40 -0
  438. package/dist/vue/VoiceCostDashboard.d.ts +57 -0
  439. package/dist/vue/VoiceDeliveryRuntime.d.ts +34 -0
  440. package/dist/vue/VoiceLiveAgentConsole.d.ts +50 -0
  441. package/dist/vue/VoiceLiveCallViewer.d.ts +35 -0
  442. package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
  443. package/dist/vue/VoiceOpsStatus.d.ts +4 -0
  444. package/dist/vue/VoicePlatformCoverage.d.ts +27 -0
  445. package/dist/vue/VoiceProofTrends.d.ts +25 -0
  446. package/dist/vue/VoiceProviderCapabilities.d.ts +55 -0
  447. package/dist/vue/VoiceProviderContracts.d.ts +25 -0
  448. package/dist/vue/VoiceProviderSimulationControls.d.ts +3 -3
  449. package/dist/vue/VoiceProviderStatus.d.ts +4 -0
  450. package/dist/vue/VoiceReadinessFailures.d.ts +25 -0
  451. package/dist/vue/VoiceReconnectProfileEvidence.d.ts +25 -0
  452. package/dist/vue/VoiceReplayTimeline.d.ts +17 -0
  453. package/dist/vue/VoiceRoutingStatus.d.ts +4 -0
  454. package/dist/vue/VoiceSessionObservability.d.ts +27 -0
  455. package/dist/vue/VoiceSessionSnapshot.d.ts +72 -0
  456. package/dist/vue/VoiceTurnLatency.d.ts +73 -0
  457. package/dist/vue/VoiceTurnQuality.d.ts +55 -0
  458. package/dist/vue/VoiceWidget.d.ts +77 -0
  459. package/dist/vue/index.d.ts +49 -11
  460. package/dist/vue/index.js +12896 -1700
  461. package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
  462. package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
  463. package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
  464. package/dist/vue/useVoiceController.d.ts +10 -7
  465. package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
  466. package/dist/vue/useVoiceLiveOps.d.ts +9 -0
  467. package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
  468. package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
  469. package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
  470. package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
  471. package/dist/vue/useVoiceProofTrends.d.ts +9 -0
  472. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  473. package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
  474. package/dist/vue/useVoiceProviderSimulationControls.d.ts +2 -2
  475. package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
  476. package/dist/vue/useVoiceReadinessFailures.d.ts +959 -0
  477. package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
  478. package/dist/vue/useVoiceRoutingStatus.d.ts +2 -2
  479. package/dist/vue/useVoiceSessionObservability.d.ts +9 -0
  480. package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
  481. package/dist/vue/useVoiceStream.d.ts +10 -6
  482. package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
  483. package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
  484. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  485. package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
  486. package/package.json +247 -256
  487. package/dist/angular/voice-app-kit-status.service.d.ts +0 -12
  488. package/dist/angular/voice-ops-status.component.d.ts +0 -15
  489. package/dist/appKit.d.ts +0 -94
  490. package/dist/client/appKitStatus.d.ts +0 -19
  491. package/dist/react/useVoiceAppKitStatus.d.ts +0 -8
  492. package/dist/svelte/createVoiceAppKitStatus.d.ts +0 -8
  493. package/dist/turnProfiles.d.ts +0 -6
  494. package/dist/types.d.ts +0 -968
  495. package/dist/vue/useVoiceAppKitStatus.d.ts +0 -9
  496. package/fixtures/README.md +0 -57
  497. package/fixtures/manifest.json +0 -199
  498. package/fixtures/pcm/dialogue-three-clean.pcm +0 -0
  499. package/fixtures/pcm/dialogue-three-mixed.pcm +0 -0
  500. package/fixtures/pcm/dialogue-two-clean.pcm +0 -0
  501. package/fixtures/pcm/dialogue-two-noisy.pcm +0 -0
  502. package/fixtures/pcm/multiturn-three-mixed.pcm +0 -0
  503. package/fixtures/pcm/multiturn-two-clean.pcm +0 -0
  504. package/fixtures/pcm/quietly-alone-clean.pcm +0 -0
  505. package/fixtures/pcm/rainstorms-noisy.pcm +0 -0
  506. package/fixtures/pcm/stella-bulgaria-bulgarian20.pcm +0 -0
  507. package/fixtures/pcm/stella-ghana-english507.pcm +0 -0
  508. package/fixtures/pcm/stella-india-english37.pcm +0 -0
  509. package/fixtures/pcm/stella-jamaica-jamaican-creole-english1.pcm +0 -0
  510. package/fixtures/pcm/stella-liberia-liberian-pidgin-english2.pcm +0 -0
  511. package/fixtures/pcm/stella-pakistan-english519.pcm +0 -0
  512. package/fixtures/pcm/stella-sierra-leone-krio5.pcm +0 -0
  513. package/fixtures/pcm/stella-singapore-english655.pcm +0 -0
  514. package/fixtures/pcm/traveled-back-route-clean.pcm +0 -0
@@ -0,0 +1,291 @@
1
+ import { Database } from "bun:sqlite";
2
+ import type { RedisClient } from "bun";
3
+ import { Elysia } from "elysia";
4
+ import { type VoiceTelephonyContractReport, type VoiceTelephonySetupStatus, type VoiceTelephonySmokeCheck, type VoiceTelephonySmokeReport } from "./contract";
5
+ import { type VoiceTelephonyOutcomePolicy, type VoiceTelephonyWebhookRoutesOptions, type VoiceTelephonyWebhookVerificationResult } from "../core/telephonyOutcome";
6
+ import type { VoiceServerMessage, VoiceSessionRecord } from "../core/types";
7
+ import { type TwilioMediaStreamBridgeOptions } from "./twilio";
8
+ import type { VoicePostgresClient } from "../core/postgresStore";
9
+ export type TelnyxMediaPayload = {
10
+ chunk?: string;
11
+ payload: string;
12
+ timestamp?: string;
13
+ track?: "inbound" | "outbound" | "inbound_track" | "outbound_track";
14
+ };
15
+ export type TelnyxInboundMessage = {
16
+ event: "connected";
17
+ version?: string;
18
+ } | {
19
+ event: "start";
20
+ sequence_number?: string;
21
+ start?: {
22
+ call_control_id?: string;
23
+ call_leg_id?: string;
24
+ call_session_id?: string;
25
+ custom_parameters?: Record<string, string>;
26
+ media_format?: {
27
+ channels?: number;
28
+ encoding?: string;
29
+ sample_rate?: number;
30
+ };
31
+ user_id?: string;
32
+ };
33
+ stream_id?: string;
34
+ } | {
35
+ event: "media";
36
+ media: TelnyxMediaPayload;
37
+ sequence_number?: string;
38
+ stream_id?: string;
39
+ } | {
40
+ event: "mark";
41
+ mark?: {
42
+ name?: string;
43
+ };
44
+ sequence_number?: string;
45
+ stream_id?: string;
46
+ } | {
47
+ event: "dtmf";
48
+ dtmf?: {
49
+ digit?: string;
50
+ };
51
+ sequence_number?: string;
52
+ stream_id?: string;
53
+ } | {
54
+ event: "error";
55
+ payload?: {
56
+ code?: number;
57
+ detail?: string;
58
+ title?: string;
59
+ };
60
+ stream_id?: string;
61
+ } | {
62
+ event: "stop";
63
+ sequence_number?: string;
64
+ stop?: {
65
+ call_control_id?: string;
66
+ user_id?: string;
67
+ };
68
+ stream_id?: string;
69
+ };
70
+ export type TelnyxOutboundMediaMessage = {
71
+ event: "media";
72
+ media: {
73
+ payload: string;
74
+ };
75
+ };
76
+ export type TelnyxOutboundClearMessage = {
77
+ event: "clear";
78
+ };
79
+ export type TelnyxOutboundMarkMessage = {
80
+ event: "mark";
81
+ mark: {
82
+ name: string;
83
+ };
84
+ };
85
+ export type TelnyxOutboundMessage = TelnyxOutboundMediaMessage | TelnyxOutboundClearMessage | TelnyxOutboundMarkMessage;
86
+ export type TelnyxMediaStreamSocket = {
87
+ close: (code?: number, reason?: string) => void | Promise<void>;
88
+ send: (data: string) => void | Promise<void>;
89
+ };
90
+ export type TelnyxMediaStreamBridgeOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<TwilioMediaStreamBridgeOptions<TContext, TSession, TResult>, "onVoiceMessage"> & {
91
+ onVoiceMessage?: (input: {
92
+ callControlId?: string;
93
+ message: VoiceServerMessage<TResult>;
94
+ sessionId: string;
95
+ streamId?: string;
96
+ }) => Promise<void> | void;
97
+ };
98
+ export type TelnyxMediaStreamBridge = {
99
+ close: (reason?: string) => Promise<void>;
100
+ getSessionId: () => string | null;
101
+ getStreamId: () => string | null;
102
+ handleMessage: (raw: string | TelnyxInboundMessage) => Promise<void>;
103
+ };
104
+ export type TelnyxVoiceResponseOptions = {
105
+ bidirectionalCodec?: "AMR-WB" | "G722" | "OPUS" | "PCMA" | "PCMU";
106
+ bidirectionalMode?: "mp3" | "rtp";
107
+ codec?: "AMR-WB" | "G722" | "OPUS" | "PCMA" | "PCMU" | "default";
108
+ streamName?: string;
109
+ streamUrl: string;
110
+ track?: "both_tracks" | "inbound_track" | "outbound_track";
111
+ };
112
+ export type TelnyxVoiceSetupStatus = VoiceTelephonySetupStatus<"telnyx"> & {
113
+ urls: VoiceTelephonySetupStatus<"telnyx">["urls"] & {
114
+ texml: string;
115
+ };
116
+ };
117
+ export type TelnyxVoiceSetupOptions = {
118
+ path?: false | string;
119
+ requiredEnv?: Record<string, string | undefined>;
120
+ title?: string;
121
+ };
122
+ export type TelnyxVoiceSmokeCheck = VoiceTelephonySmokeCheck;
123
+ export type TelnyxVoiceSmokeReport = VoiceTelephonySmokeReport<"telnyx"> & {
124
+ contract: VoiceTelephonyContractReport<"telnyx">;
125
+ setup: TelnyxVoiceSetupStatus;
126
+ texml?: {
127
+ status: number;
128
+ streamUrl?: string;
129
+ };
130
+ };
131
+ export type TelnyxVoiceSmokeOptions = {
132
+ callControlId?: string;
133
+ callLegId?: string;
134
+ eventType?: string;
135
+ path?: false | string;
136
+ sessionId?: string;
137
+ title?: string;
138
+ };
139
+ export type TelnyxVoiceRoutesOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
140
+ bridge?: TelnyxMediaStreamBridgeOptions<TContext, TSession, TResult>;
141
+ context?: TContext;
142
+ name?: string;
143
+ outcomePolicy?: VoiceTelephonyOutcomePolicy;
144
+ setup?: TelnyxVoiceSetupOptions;
145
+ smoke?: TelnyxVoiceSmokeOptions;
146
+ streamPath?: string;
147
+ texml?: {
148
+ path?: string;
149
+ response?: Omit<TelnyxVoiceResponseOptions, "streamUrl">;
150
+ streamUrl?: string | ((input: {
151
+ query: Record<string, unknown>;
152
+ request: Request;
153
+ streamPath: string;
154
+ }) => Promise<string> | string);
155
+ };
156
+ webhook?: Omit<VoiceTelephonyWebhookRoutesOptions<TContext, TSession, TResult>, "context" | "path" | "policy" | "provider"> & {
157
+ eventStore?: VoiceTelnyxWebhookEventStore;
158
+ path?: string;
159
+ policy?: VoiceTelephonyOutcomePolicy;
160
+ publicKey?: string;
161
+ toleranceSeconds?: number;
162
+ };
163
+ };
164
+ export type VoiceTelnyxWebhookEventStore = {
165
+ claim?: (eventId: string) => Promise<boolean> | boolean;
166
+ has: (eventId: string) => Promise<boolean> | boolean;
167
+ set: (eventId: string) => Promise<void> | void;
168
+ };
169
+ export type VoiceTelnyxWebhookEventStoreOptions = {
170
+ ttlSeconds?: number;
171
+ };
172
+ export type VoiceSQLiteTelnyxWebhookEventStoreOptions = VoiceTelnyxWebhookEventStoreOptions & {
173
+ database?: Database;
174
+ path?: string;
175
+ tableName?: string;
176
+ tablePrefix?: string;
177
+ };
178
+ export type VoicePostgresTelnyxWebhookEventStoreOptions = VoiceTelnyxWebhookEventStoreOptions & {
179
+ connectionString?: string;
180
+ schemaName?: string;
181
+ sql?: VoicePostgresClient;
182
+ tableName?: string;
183
+ tablePrefix?: string;
184
+ };
185
+ export type VoiceRedisTelnyxWebhookEventClient = Pick<RedisClient, "exists" | "set">;
186
+ export type VoiceRedisTelnyxWebhookEventStoreOptions = VoiceTelnyxWebhookEventStoreOptions & {
187
+ client?: VoiceRedisTelnyxWebhookEventClient;
188
+ keyPrefix?: string;
189
+ url?: string;
190
+ };
191
+ export type VoiceTelnyxWebhookVerifierOptions = {
192
+ eventStore?: VoiceTelnyxWebhookEventStore;
193
+ publicKey?: string;
194
+ toleranceSeconds?: number;
195
+ };
196
+ export declare const createTelnyxVoiceResponse: (options: TelnyxVoiceResponseOptions) => string;
197
+ export declare const createTelnyxMediaStreamBridge: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(socket: TelnyxMediaStreamSocket, options: TelnyxMediaStreamBridgeOptions<TContext, TSession, TResult>) => TelnyxMediaStreamBridge;
198
+ export declare const createMemoryVoiceTelnyxWebhookEventStore: () => VoiceTelnyxWebhookEventStore;
199
+ export declare const verifyVoiceTelnyxWebhookSignature: (input: {
200
+ body: string;
201
+ headers: Headers;
202
+ publicKey?: string;
203
+ toleranceSeconds?: number;
204
+ }) => Promise<VoiceTelephonyWebhookVerificationResult>;
205
+ export declare const createVoiceSQLiteTelnyxWebhookEventStore: (options: VoiceSQLiteTelnyxWebhookEventStoreOptions) => VoiceTelnyxWebhookEventStore;
206
+ export declare const createVoicePostgresTelnyxWebhookEventStore: (options?: VoicePostgresTelnyxWebhookEventStoreOptions) => VoiceTelnyxWebhookEventStore;
207
+ export declare const createVoiceRedisTelnyxWebhookEventStore: (options?: VoiceRedisTelnyxWebhookEventStoreOptions) => VoiceTelnyxWebhookEventStore;
208
+ export declare const createVoiceTelnyxWebhookVerifier: (options: VoiceTelnyxWebhookVerifierOptions) => (input: {
209
+ rawBody: string;
210
+ headers: Headers;
211
+ }) => Promise<VoiceTelephonyWebhookVerificationResult>;
212
+ export declare const createTelnyxVoiceRoutes: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options?: TelnyxVoiceRoutesOptions<TContext, TSession, TResult>) => Elysia<"", {
213
+ decorator: {};
214
+ store: {};
215
+ derive: {};
216
+ resolve: {};
217
+ }, {
218
+ typebox: {};
219
+ error: {};
220
+ }, {
221
+ schema: {};
222
+ standaloneSchema: {};
223
+ macro: {};
224
+ macroFn: {};
225
+ parser: {};
226
+ response: {};
227
+ }, {
228
+ [x: string]: {
229
+ get: {
230
+ body: unknown;
231
+ params: {};
232
+ query: unknown;
233
+ headers: unknown;
234
+ response: {
235
+ 200: Response;
236
+ };
237
+ };
238
+ };
239
+ } & {
240
+ [x: string]: {
241
+ post: {
242
+ body: unknown;
243
+ params: {};
244
+ query: unknown;
245
+ headers: unknown;
246
+ response: {
247
+ 200: Response;
248
+ };
249
+ };
250
+ };
251
+ } & {
252
+ [x: string]: {
253
+ subscribe: {
254
+ body: {};
255
+ params: {};
256
+ query: {};
257
+ headers: {};
258
+ response: {};
259
+ };
260
+ };
261
+ } & {
262
+ [x: string]: {
263
+ post: {
264
+ body: unknown;
265
+ params: {};
266
+ query: unknown;
267
+ headers: unknown;
268
+ response: {
269
+ 200: Response | import("..").VoiceTelephonyWebhookDecision<TResult>;
270
+ };
271
+ };
272
+ };
273
+ }, {
274
+ derive: {};
275
+ resolve: {};
276
+ schema: {};
277
+ standaloneSchema: {};
278
+ response: {};
279
+ }, {
280
+ derive: {};
281
+ resolve: {};
282
+ schema: {};
283
+ standaloneSchema: {};
284
+ response: {};
285
+ } & {
286
+ derive: {};
287
+ resolve: {};
288
+ schema: {};
289
+ standaloneSchema: {};
290
+ response: {};
291
+ }>;
@@ -1,18 +1,21 @@
1
- import { type VoiceCallReviewArtifact, type VoiceCallReviewConfig } from '../testing/review';
2
- import type { AudioFormat, VoiceLogger, VoicePluginConfig, VoiceSessionRecord, VoiceServerMessage } from '../types';
1
+ import { Elysia } from "elysia";
2
+ import type { VoiceTelephonySetupStatus, VoiceTelephonySmokeCheck, VoiceTelephonySmokeReport } from "./contract";
3
+ import { type VoiceTelephonyOutcomePolicy, type VoiceTelephonyWebhookRoutesOptions } from "../core/telephonyOutcome";
4
+ import { type VoiceCallReviewArtifact, type VoiceCallReviewConfig } from "../testing/review";
5
+ import type { AudioFormat, STTAdapter, VoiceLogger, VoiceOnTurnObjectHandler, VoicePluginConfig, VoiceSessionRecord, VoiceServerMessage } from "../core/types";
3
6
  type TwilioMediaPayload = {
4
7
  chunk?: string;
5
8
  payload: string;
6
9
  timestamp?: string;
7
- track?: 'inbound' | 'outbound';
10
+ track?: "inbound" | "outbound";
8
11
  };
9
12
  type TwilioConnectedMessage = {
10
- event: 'connected';
13
+ event: "connected";
11
14
  protocol?: string;
12
15
  version?: string;
13
16
  };
14
17
  type TwilioStartMessage = {
15
- event: 'start';
18
+ event: "start";
16
19
  sequenceNumber?: string;
17
20
  start: {
18
21
  accountSid?: string;
@@ -29,13 +32,13 @@ type TwilioStartMessage = {
29
32
  streamSid?: string;
30
33
  };
31
34
  type TwilioMediaMessage = {
32
- event: 'media';
35
+ event: "media";
33
36
  media: TwilioMediaPayload;
34
37
  sequenceNumber?: string;
35
38
  streamSid: string;
36
39
  };
37
40
  type TwilioMarkMessage = {
38
- event: 'mark';
41
+ event: "mark";
39
42
  mark?: {
40
43
  name?: string;
41
44
  };
@@ -43,7 +46,7 @@ type TwilioMarkMessage = {
43
46
  streamSid: string;
44
47
  };
45
48
  type TwilioStopMessage = {
46
- event: 'stop';
49
+ event: "stop";
47
50
  sequenceNumber?: string;
48
51
  stop?: {
49
52
  accountSid?: string;
@@ -53,18 +56,18 @@ type TwilioStopMessage = {
53
56
  };
54
57
  export type TwilioInboundMessage = TwilioConnectedMessage | TwilioStartMessage | TwilioMediaMessage | TwilioMarkMessage | TwilioStopMessage;
55
58
  export type TwilioOutboundMediaMessage = {
56
- event: 'media';
59
+ event: "media";
57
60
  media: {
58
61
  payload: string;
59
62
  };
60
63
  streamSid: string;
61
64
  };
62
65
  export type TwilioOutboundClearMessage = {
63
- event: 'clear';
66
+ event: "clear";
64
67
  streamSid: string;
65
68
  };
66
69
  export type TwilioOutboundMarkMessage = {
67
- event: 'mark';
70
+ event: "mark";
68
71
  mark: {
69
72
  name: string;
70
73
  };
@@ -75,7 +78,25 @@ export type TwilioMediaStreamSocket = {
75
78
  close: (code?: number, reason?: string) => void | Promise<void>;
76
79
  send: (data: string) => void | Promise<void>;
77
80
  };
78
- export type TwilioMediaStreamBridgeOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoicePluginConfig<TContext, TSession, TResult>, 'htmx' | 'path'> & {
81
+ export type TwilioMediaStreamBridgeOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoicePluginConfig<TContext, TSession, TResult>, "htmx" | "onTurn" | "path" | "stt"> & {
82
+ /**
83
+ * Per-turn handler. Receives the committed turn, session, context, and
84
+ * session `api` as a single object. The legacy positional form
85
+ * `(session, turn, api, context)` is still accepted at runtime via
86
+ * `normalizeOnTurn`, but only the object form is part of the typed
87
+ * surface — pinning it to a single (non-union) signature is what lets
88
+ * the `input` parameter infer at the call site instead of falling back
89
+ * to `any` (a union of function types defeats contextual typing).
90
+ */
91
+ onTurn: VoiceOnTurnObjectHandler<TContext, TSession, TResult>;
92
+ /**
93
+ * Legacy barge-in: send the carrier a "clear" on every inbound media frame
94
+ * once the assistant has spoken. Defaults to `false` — a phone line streams
95
+ * inbound audio continuously (silence included), so this flushes the
96
+ * assistant constantly. Barge-in is handled speech-gated by the session
97
+ * (`socket.clear()` on detected speech); only set `true` to force the old
98
+ * frame-level behavior.
99
+ */
79
100
  clearOnInboundMedia?: boolean;
80
101
  context: TContext;
81
102
  logger?: VoiceLogger;
@@ -94,6 +115,73 @@ export type TwilioMediaStreamBridgeOptions<TContext = unknown, TSession extends
94
115
  };
95
116
  scenarioId?: string;
96
117
  sessionId?: string;
118
+ stt: STTAdapter;
119
+ telephonyMediaCarrier?: "plivo" | "telnyx" | "twilio";
120
+ /** Capture call audio (per-channel) to a recording store. */
121
+ recording?: import("../core/types").VoiceSessionRecordingConfig;
122
+ /** Per-call cost accounting (STT/LLM/TTS) — emits turn.cost/cost.ready traces. */
123
+ costAccountant?: import("../core/costAccounting").VoiceCostAccountant;
124
+ /** Telephony cost provider for the accountant (e.g. "twilio"). */
125
+ costTelephony?: {
126
+ provider?: string;
127
+ };
128
+ /**
129
+ * Per-transcript semantic end-of-turn detector. Called on every transcript
130
+ * event; an `endOfTurn=true` verdict EARLY-commits the turn (the runtime
131
+ * still falls back to `turnDetection.silenceMs` if the detector says
132
+ * `false`). Useful for raising silenceMs for thinking time while keeping
133
+ * snappy responses on clear-cut answers. See VoiceSemanticTurnDetector.
134
+ */
135
+ semanticTurnDetector?: import("../core/semanticTurn").VoiceSemanticTurnDetector;
136
+ bargeInDetector?: import("../core/bargeInDetector").VoiceBargeInDetector;
137
+ /**
138
+ * Pre-rendered filler phrases ("Hmm.", "Got it.", "Let me think.") played
139
+ * in the gap between user-turn-commit and real assistant audio. Boardy's
140
+ * "the pause is character, not lag" pattern. See CreateVoiceSessionOptions
141
+ * for full semantics.
142
+ */
143
+ fillerPhrases?: ReadonlyArray<string>;
144
+ /** Milliseconds after turn-commit before the filler fires. Default 250ms. */
145
+ fillerDelayMs?: number;
146
+ /**
147
+ * Minimum word count in an STT partial transcript before barge-in
148
+ * cancels in-flight assistant TTS. Default 1 (any partial).
149
+ * Recommended 2 on phone routes — single-word partials ("you", "am i")
150
+ * cut the bot off mid-question per live-test 2026-05-27. See
151
+ * CreateVoiceSessionOptions for full semantics.
152
+ */
153
+ bargeInMinPartialWords?: number;
154
+ /**
155
+ * Content-aware filler (Latency Theater). Called in parallel with the
156
+ * main LLM turn; if it resolves within `fillerForTimeoutMs` the runtime
157
+ * speaks the result instead of a random `fillerPhrases` entry. Return
158
+ * `null` to skip filler for this turn. See CreateVoiceSessionOptions
159
+ * for full semantics.
160
+ */
161
+ fillerFor?: (input: {
162
+ sessionId: string;
163
+ turnId: string;
164
+ userText: string;
165
+ }) => Promise<string | null>;
166
+ /** Cap on the `fillerFor` race before falling back to a static phrase. Default 600ms. */
167
+ fillerForTimeoutMs?: number;
168
+ /** Backchannel cues played while the caller is mid-turn so they feel heard.
169
+ * Non-turn TTS path (no barge-in interaction). Off unless `enabled`. */
170
+ backchannel?: import("../core/backchannel").VoiceBackchannelConfig;
171
+ /**
172
+ * Default spoken ack if the model returns ONLY tool calls (no text) and
173
+ * the turn isn't ending. Without this, the caller hears silence and
174
+ * assumes the line dropped. Default "Sorry, one moment." — set to ""
175
+ * to opt out. See CreateVoiceSessionOptions for full semantics.
176
+ */
177
+ defaultSilentTurnAck?: string;
178
+ /**
179
+ * Hard timeout (ms) around `route.onTurn`. If onTurn doesn't resolve in
180
+ * this window, the runtime throws → defaultSilentTurnAck fires → caller
181
+ * hears the fallback instead of dead air. See CreateVoiceSessionOptions
182
+ * for full semantics. Default 45s.
183
+ */
184
+ routeOnTurnTimeoutMs?: number;
97
185
  };
98
186
  export type TwilioMediaStreamBridge = {
99
187
  close: (reason?: string) => Promise<void>;
@@ -105,12 +193,62 @@ export type TwilioVoiceResponseOptions = {
105
193
  parameters?: Record<string, string | number | boolean | undefined>;
106
194
  streamName?: string;
107
195
  streamUrl: string;
108
- track?: 'both_tracks' | 'inbound_track' | 'outbound_track';
196
+ track?: "both_tracks" | "inbound_track" | "outbound_track";
197
+ };
198
+ export type TwilioVoiceRouteParameters = Record<string, string | number | boolean | undefined> | ((input: {
199
+ query: Record<string, unknown>;
200
+ request: Request;
201
+ }) => Promise<Record<string, string | number | boolean | undefined>> | Record<string, string | number | boolean | undefined>);
202
+ export type TwilioVoiceSetupStatus = VoiceTelephonySetupStatus<"twilio"> & {
203
+ urls: VoiceTelephonySetupStatus<"twilio">["urls"] & {
204
+ twiml: string;
205
+ };
206
+ };
207
+ export type TwilioVoiceSetupOptions = {
208
+ path?: false | string;
209
+ requiredEnv?: Record<string, string | undefined>;
210
+ title?: string;
211
+ };
212
+ export type TwilioVoiceSmokeCheck = VoiceTelephonySmokeCheck;
213
+ export type TwilioVoiceSmokeReport = VoiceTelephonySmokeReport<"twilio"> & {
214
+ setup: TwilioVoiceSetupStatus;
215
+ };
216
+ export type TwilioVoiceSmokeOptions = {
217
+ callSid?: string;
218
+ path?: false | string;
219
+ scenarioId?: string;
220
+ sessionId?: string;
221
+ sipCode?: number;
222
+ status?: string;
223
+ title?: string;
224
+ };
225
+ export type TwilioVoiceRoutesOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = TwilioMediaStreamBridgeOptions<TContext, TSession, TResult> & {
226
+ name?: string;
227
+ outcomePolicy?: VoiceTelephonyOutcomePolicy;
228
+ smoke?: TwilioVoiceSmokeOptions;
229
+ setup?: TwilioVoiceSetupOptions;
230
+ streamPath?: string;
231
+ twiml?: {
232
+ parameters?: TwilioVoiceRouteParameters;
233
+ path?: string;
234
+ streamName?: string;
235
+ streamUrl?: string | ((input: {
236
+ query: Record<string, unknown>;
237
+ request: Request;
238
+ streamPath: string;
239
+ }) => Promise<string> | string);
240
+ track?: TwilioVoiceResponseOptions["track"];
241
+ };
242
+ webhook?: Omit<VoiceTelephonyWebhookRoutesOptions<TContext, TSession, TResult>, "context" | "path" | "policy" | "provider"> & {
243
+ path?: string;
244
+ policy?: VoiceTelephonyOutcomePolicy;
245
+ };
109
246
  };
110
247
  export declare const decodeTwilioMulawBase64: (payload: string) => Int16Array<ArrayBuffer>;
111
248
  export declare const encodeTwilioMulawBase64: (samples: Int16Array) => string;
112
- export declare const transcodeTwilioInboundPayloadToPCM16: (payload: string) => Uint8Array<ArrayBuffer>;
113
249
  export declare const transcodePCMToTwilioOutboundPayload: (chunk: Uint8Array, format: AudioFormat) => string;
114
- export declare const createTwilioVoiceResponse: (options: TwilioVoiceResponseOptions) => string;
250
+ export declare const transcodeTwilioInboundPayloadToPCM16: (payload: string) => Uint8Array<ArrayBuffer>;
115
251
  export declare const createTwilioMediaStreamBridge: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(socket: TwilioMediaStreamSocket, options: TwilioMediaStreamBridgeOptions<TContext, TSession, TResult>) => TwilioMediaStreamBridge;
252
+ export declare const createTwilioVoiceResponse: (options: TwilioVoiceResponseOptions) => string;
253
+ export declare const createTwilioVoiceRoutes: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: TwilioVoiceRoutesOptions<TContext, TSession, TResult>) => Elysia;
116
254
  export {};
@@ -1,4 +1,4 @@
1
- import type { Transcript } from '../types';
1
+ import type { Transcript } from "../core/types";
2
2
  export type VoiceTranscriptAccuracy = {
3
3
  actualText: string;
4
4
  charDistance: number;
@@ -8,6 +8,23 @@ export type VoiceTranscriptAccuracy = {
8
8
  threshold: number;
9
9
  wordDistance: number;
10
10
  wordErrorRate: number;
11
+ alignment?: VoiceWordAlignment;
11
12
  };
13
+ export type VoiceWordAlignmentOperation = {
14
+ actual?: string;
15
+ expected?: string;
16
+ type: "correct" | "substitution" | "deletion" | "insertion";
17
+ };
18
+ export type VoiceWordAlignment = {
19
+ correct: number;
20
+ deletions: number;
21
+ hypothesisWordCount: number;
22
+ insertions: number;
23
+ operations: VoiceWordAlignmentOperation[];
24
+ referenceWordCount: number;
25
+ sentenceError: boolean;
26
+ substitutions: number;
27
+ };
28
+ export declare const alignTranscriptWords: (actualWords: string[], expectedWords: string[]) => VoiceWordAlignment;
12
29
  export declare const mergeFinalTranscriptText: (transcripts: Transcript[]) => string;
13
30
  export declare const scoreTranscriptAccuracy: (actualText: string, expectedText: string, threshold?: number) => VoiceTranscriptAccuracy;
@@ -0,0 +1,22 @@
1
+ import type { VoiceTestFixture } from "./fixtures";
2
+ export type VoiceAudioCondition = {
3
+ id: string;
4
+ type: "gain";
5
+ gain: number;
6
+ } | {
7
+ id: string;
8
+ type: "clip";
9
+ ceiling: number;
10
+ } | {
11
+ id: string;
12
+ type: "drop-chunks";
13
+ every: number;
14
+ chunkDurationMs: number;
15
+ } | {
16
+ id: string;
17
+ type: "noise";
18
+ seed: number;
19
+ snrDb: number;
20
+ };
21
+ export declare const applyVoiceAudioCondition: (fixture: VoiceTestFixture, condition: VoiceAudioCondition) => VoiceTestFixture;
22
+ export declare const buildVoiceAudioMatrix: (fixtures: VoiceTestFixture[], conditions: VoiceAudioCondition[]) => VoiceTestFixture[];
@@ -1,6 +1,9 @@
1
- import type { STTAdapter, STTAdapterOpenOptions } from '../types';
2
- import { type VoiceSTTAdapterHarnessOptions, type VoiceSTTAdapterHarnessResult } from './stt';
3
- import type { VoiceTestFixture } from './fixtures';
1
+ import type { STTAdapter, STTAdapterOpenOptions } from "../core/types";
2
+ import { type VoiceSTTAdapterHarnessOptions, type VoiceSTTAdapterHarnessResult } from "./stt";
3
+ import type { VoiceTestFixture } from "./fixtures";
4
+ import { type VoiceConfidenceCalibrationReport } from "./confidenceCalibration";
5
+ import { type VoiceCriticalFieldAccuracy } from "./criticalFields";
6
+ import { type VoiceSTTConformanceReport } from "./conformance";
4
7
  export type VoiceExpectedTermAccuracy = {
5
8
  allMatched: boolean;
6
9
  expectedTerms: string[];
@@ -8,7 +11,7 @@ export type VoiceExpectedTermAccuracy = {
8
11
  missingTerms: string[];
9
12
  recall: number;
10
13
  };
11
- export type VoiceSTTFixtureEnvironment = 'accent' | 'accent-noisy' | 'clean' | 'code-switch' | 'jargon' | 'multilingual' | 'multi-speaker' | 'noisy' | 'telephony' | 'other';
14
+ export type VoiceSTTFixtureEnvironment = "accent" | "accent-noisy" | "clean" | "code-switch" | "jargon" | "multilingual" | "multi-speaker" | "noisy" | "telephony" | "other";
12
15
  export type VoiceSpeakerTurnAccuracy = {
13
16
  available: boolean;
14
17
  actualTurnCount: number;
@@ -18,13 +21,15 @@ export type VoiceSpeakerTurnAccuracy = {
18
21
  postClustered?: boolean;
19
22
  };
20
23
  export type VoiceSTTBenchmarkFixtureResult = {
21
- accuracy: VoiceSTTAdapterHarnessResult['accuracy'];
24
+ accuracy: VoiceSTTAdapterHarnessResult["accuracy"];
22
25
  closeCount: number;
23
- difficulty?: VoiceTestFixture['difficulty'];
26
+ conformance?: VoiceSTTConformanceReport;
27
+ difficulty?: VoiceTestFixture["difficulty"];
24
28
  elapsedMs: number;
25
29
  endOfTurnCount: number;
26
30
  errorCount: number;
27
31
  expectedTerms: VoiceExpectedTermAccuracy;
32
+ criticalFields?: VoiceCriticalFieldAccuracy;
28
33
  finalCount: number;
29
34
  finalText: string;
30
35
  fixtureId: string;
@@ -39,6 +44,7 @@ export type VoiceSTTBenchmarkFixtureResult = {
39
44
  timeToEndOfTurnMs?: number;
40
45
  timeToFirstFinalMs?: number;
41
46
  timeToFirstPartialMs?: number;
47
+ transcriptConfidence?: number;
42
48
  title: string;
43
49
  };
44
50
  export type VoiceSTTBenchmarkSummary = {
@@ -49,6 +55,8 @@ export type VoiceSTTBenchmarkSummary = {
49
55
  averageFinalCount: number;
50
56
  averageSpeakerTurnMatchRate?: number;
51
57
  averageTermRecall: number;
58
+ averageCriticalFieldAccuracy: number;
59
+ requiredCriticalFieldPassRate: number;
52
60
  averagePostSpeechTimeToEndOfTurnMs?: number;
53
61
  averagePostSpeechTimeToFirstFinalMs?: number;
54
62
  averageTimeToEndOfTurnMs?: number;
@@ -63,6 +71,7 @@ export type VoiceSTTBenchmarkSummary = {
63
71
  totalErrorCount: number;
64
72
  wordAccuracyRate: number;
65
73
  groupSummaries: VoiceSTTBenchmarkFixtureSummary[];
74
+ confidenceCalibration: VoiceConfidenceCalibrationReport;
66
75
  };
67
76
  export type VoiceSTTBenchmarkFixtureSummary = {
68
77
  group: VoiceSTTFixtureEnvironment;
@@ -141,27 +150,27 @@ export type VoiceSTTBenchmarkAcceptanceResult = {
141
150
  score: number;
142
151
  };
143
152
  export type VoiceSTTBenchmarkOptions = VoiceSTTAdapterHarnessOptions & {
144
- fixtureOptions?: Record<string, Omit<VoiceSTTAdapterHarnessOptions, 'fixtureOptions' | 'openOptions'>>;
153
+ fixtureOptions?: Record<string, Omit<VoiceSTTAdapterHarnessOptions, "fixtureOptions" | "openOptions">>;
145
154
  openOptions?: Partial<STTAdapterOpenOptions> | ((fixture: VoiceTestFixture) => Partial<STTAdapterOpenOptions> | undefined);
146
155
  };
147
156
  export declare const resolveFixtureEnvironment: (fixture: Pick<VoiceTestFixture, "language" | "tags">) => VoiceSTTFixtureEnvironment;
148
- export declare const summarizeSTTBenchmark: (adapterId: string, fixtures: VoiceSTTBenchmarkFixtureResult[]) => VoiceSTTBenchmarkSummary;
149
- export declare const evaluateSTTBenchmarkAcceptance: (report: VoiceSTTBenchmarkReport, thresholds?: VoiceSTTBenchmarkAcceptanceThresholds) => VoiceSTTBenchmarkAcceptanceResult;
150
157
  export declare const compareSTTBenchmarks: (reports: VoiceSTTBenchmarkReport[]) => VoiceSTTBenchmarkComparison;
151
- export declare const runSTTAdapterBenchmark: ({ adapter, adapterId, fixtures, options }: {
158
+ export declare const evaluateSTTBenchmarkAcceptance: (report: VoiceSTTBenchmarkReport, thresholds?: VoiceSTTBenchmarkAcceptanceThresholds) => VoiceSTTBenchmarkAcceptanceResult;
159
+ export declare const runSTTAdapterBenchmark: ({ adapter, adapterId, fixtures, options, }: {
152
160
  adapter: STTAdapter;
153
161
  adapterId: string;
154
162
  fixtures: VoiceTestFixture[];
155
163
  options?: VoiceSTTBenchmarkOptions;
156
164
  }) => Promise<VoiceSTTBenchmarkReport>;
157
- export declare const summarizeSTTBenchmarkSeries: (input: {
158
- adapterId: string;
159
- reports: VoiceSTTBenchmarkReport[];
160
- }) => VoiceSTTBenchmarkSeriesReport;
161
- export declare const runSTTAdapterBenchmarkSeries: ({ adapter, adapterId, fixtures, options, runs }: {
165
+ export declare const runSTTAdapterBenchmarkSeries: ({ adapter, adapterId, fixtures, options, runs, }: {
162
166
  adapter: STTAdapter;
163
167
  adapterId: string;
164
168
  fixtures: VoiceTestFixture[];
165
169
  options?: VoiceSTTBenchmarkOptions;
166
170
  runs: number;
167
171
  }) => Promise<VoiceSTTBenchmarkSeriesReport>;
172
+ export declare const summarizeSTTBenchmark: (adapterId: string, fixtures: VoiceSTTBenchmarkFixtureResult[]) => VoiceSTTBenchmarkSummary;
173
+ export declare const summarizeSTTBenchmarkSeries: (input: {
174
+ adapterId: string;
175
+ reports: VoiceSTTBenchmarkReport[];
176
+ }) => VoiceSTTBenchmarkSeriesReport;