@absolutejs/voice 0.0.22-beta.62 → 0.0.22-beta.620

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 (502) hide show
  1. package/LICENSE +88 -0
  2. package/README.md +4543 -1181
  3. package/dist/angular/index.d.ts +36 -6
  4. package/dist/angular/index.js +4203 -457
  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 +8 -3
  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 +1345 -84
  58. package/dist/client/htmxDashboardRenderers.d.ts +71 -0
  59. package/dist/client/index.d.ts +107 -25
  60. package/dist/client/index.js +10531 -462
  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 +3 -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/oauth2TokenSource.d.ts +21 -0
  195. package/dist/core/observabilityExport.d.ts +501 -0
  196. package/dist/core/openaiTTS.d.ts +18 -0
  197. package/dist/core/operationalStatus.d.ts +87 -0
  198. package/dist/core/operationsRecord.d.ts +371 -0
  199. package/dist/{ops.d.ts → core/ops.d.ts} +70 -70
  200. package/dist/core/opsActionAuditRoutes.d.ts +99 -0
  201. package/dist/{opsConsoleRoutes.d.ts → core/opsConsoleRoutes.d.ts} +11 -8
  202. package/dist/{opsPresets.d.ts → core/opsPresets.d.ts} +2 -2
  203. package/dist/core/opsRecovery.d.ts +137 -0
  204. package/dist/{opsRuntime.d.ts → core/opsRuntime.d.ts} +6 -6
  205. package/dist/{opsSinks.d.ts → core/opsSinks.d.ts} +19 -19
  206. package/dist/core/opsStatus.d.ts +76 -0
  207. package/dist/core/opsStatusRoutes.d.ts +33 -0
  208. package/dist/{opsWebhook.d.ts → core/opsWebhook.d.ts} +15 -15
  209. package/dist/core/otelExporter.d.ts +83 -0
  210. package/dist/core/outcomeContract.d.ts +146 -0
  211. package/dist/{outcomeRecipes.d.ts → core/outcomeRecipes.d.ts} +4 -4
  212. package/dist/core/pathway.d.ts +94 -0
  213. package/dist/core/pathwayCompiler.d.ts +31 -0
  214. package/dist/core/pathwayGenerator.d.ts +27 -0
  215. package/dist/core/pathwayRuntime.d.ts +57 -0
  216. package/dist/core/pathwaySlotCollector.d.ts +29 -0
  217. package/dist/core/pathwayVisualizer.d.ts +8 -0
  218. package/dist/core/phoneAgent.d.ts +139 -0
  219. package/dist/core/phoneAgentProductionSmoke.d.ts +115 -0
  220. package/dist/core/phoneProvisioning.d.ts +29 -0
  221. package/dist/core/platformCoverage.d.ts +91 -0
  222. package/dist/{plugin.d.ts → core/plugin.d.ts} +2 -2
  223. package/dist/core/postCallAnalysis.d.ts +98 -0
  224. package/dist/core/postCallSurvey.d.ts +41 -0
  225. package/dist/{postgresStore.d.ts → core/postgresStore.d.ts} +20 -9
  226. package/dist/{presets.d.ts → core/presets.d.ts} +3 -3
  227. package/dist/core/productionReadiness.d.ts +757 -0
  228. package/dist/core/profileSwitchRecommendation.d.ts +350 -0
  229. package/dist/core/promptInjectionGuard.d.ts +30 -0
  230. package/dist/core/proofAssertions.d.ts +32 -0
  231. package/dist/core/proofPack.d.ts +211 -0
  232. package/dist/core/proofRunner.d.ts +79 -0
  233. package/dist/core/proofTrends.d.ts +966 -0
  234. package/dist/{providerAdapters.d.ts → core/providerAdapters.d.ts} +5 -5
  235. package/dist/core/providerCapabilities.d.ts +92 -0
  236. package/dist/core/providerDecisionTraces.d.ts +130 -0
  237. package/dist/{providerHealth.d.ts → core/providerHealth.d.ts} +15 -5
  238. package/dist/core/providerOrchestration.d.ts +109 -0
  239. package/dist/core/providerRouterTraces.d.ts +35 -0
  240. package/dist/core/providerRoutingContract.d.ts +71 -0
  241. package/dist/core/providerSlo.d.ts +142 -0
  242. package/dist/core/providerStackRecommendations.d.ts +188 -0
  243. package/dist/core/qualityDriftDetector.d.ts +44 -0
  244. package/dist/{qualityRoutes.d.ts → core/qualityRoutes.d.ts} +7 -7
  245. package/dist/{queue.d.ts → core/queue.d.ts} +48 -39
  246. package/dist/core/ragTool.d.ts +52 -0
  247. package/dist/core/readinessProfiles.d.ts +45 -0
  248. package/dist/core/realtimeChannel.d.ts +136 -0
  249. package/dist/core/realtimeProviderContracts.d.ts +133 -0
  250. package/dist/core/reconnectContract.d.ts +177 -0
  251. package/dist/core/recordingRedaction.d.ts +47 -0
  252. package/dist/core/recordingStore.d.ts +60 -0
  253. package/dist/core/redaction.d.ts +13 -0
  254. package/dist/core/reminderScheduler.d.ts +43 -0
  255. package/dist/{resilienceRoutes.d.ts → core/resilienceRoutes.d.ts} +34 -5
  256. package/dist/core/retention.d.ts +37 -0
  257. package/dist/core/retryPolicy.d.ts +38 -0
  258. package/dist/core/routeAuth.d.ts +58 -0
  259. package/dist/{routing.d.ts → core/routing.d.ts} +2 -2
  260. package/dist/{runtimeOps.d.ts → core/runtimeOps.d.ts} +3 -3
  261. package/dist/{s3Store.d.ts → core/s3Store.d.ts} +12 -3
  262. package/dist/core/scorecardCalibration.d.ts +31 -0
  263. package/dist/core/scribe.d.ts +50 -0
  264. package/dist/core/semanticTurn.d.ts +37 -0
  265. package/dist/{session.d.ts → core/session.d.ts} +1 -1
  266. package/dist/core/sessionObservability.d.ts +145 -0
  267. package/dist/{sessionReplay.d.ts → core/sessionReplay.d.ts} +31 -19
  268. package/dist/core/sessionSnapshot.d.ts +109 -0
  269. package/dist/core/simulationSuite.d.ts +144 -0
  270. package/dist/core/sloCalibration.d.ts +185 -0
  271. package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +20 -9
  272. package/dist/{store.d.ts → core/store.d.ts} +1 -1
  273. package/dist/core/supervisorPermissions.d.ts +33 -0
  274. package/dist/core/supervisorPresence.d.ts +49 -0
  275. package/dist/core/telephonyMediaRoutes.d.ts +72 -0
  276. package/dist/core/telephonyOutcome.d.ts +269 -0
  277. package/dist/core/toolContract.d.ts +161 -0
  278. package/dist/{toolRuntime.d.ts → core/toolRuntime.d.ts} +4 -4
  279. package/dist/{trace.d.ts → core/trace.d.ts} +61 -22
  280. package/dist/core/traceDeliveryRoutes.d.ts +86 -0
  281. package/dist/core/traceTimeline.d.ts +97 -0
  282. package/dist/core/transcriptAnnotator.d.ts +41 -0
  283. package/dist/{turnDetection.d.ts → core/turnDetection.d.ts} +2 -1
  284. package/dist/core/turnLatency.d.ts +95 -0
  285. package/dist/core/turnProfiles.d.ts +3 -0
  286. package/dist/core/turnQuality.d.ts +94 -0
  287. package/dist/core/types.d.ts +1535 -0
  288. package/dist/core/vapiAdapter.d.ts +160 -0
  289. package/dist/core/variableAnalytics.d.ts +47 -0
  290. package/dist/core/voiceConfiguration.d.ts +8 -0
  291. package/dist/core/voiceMonitoring.d.ts +444 -0
  292. package/dist/core/webhookFanout.d.ts +48 -0
  293. package/dist/core/webhookVerification.d.ts +27 -0
  294. package/dist/core/whisperChannel.d.ts +50 -0
  295. package/dist/{workflowContract.d.ts → core/workflowContract.d.ts} +21 -21
  296. package/dist/core/writeBehindStore.d.ts +41 -0
  297. package/dist/core/zeroDataRetention.d.ts +31 -0
  298. package/dist/drizzle/assistantMemory.d.ts +100 -0
  299. package/dist/drizzle/eval.d.ts +55 -0
  300. package/dist/drizzle/handoff.d.ts +56 -0
  301. package/dist/drizzle/incidentBundle.d.ts +55 -0
  302. package/dist/drizzle/index.d.ts +991 -0
  303. package/dist/drizzle/index.js +3059 -0
  304. package/dist/drizzle/observabilityExport.d.ts +55 -0
  305. package/dist/drizzle/proofTrends.d.ts +114 -0
  306. package/dist/drizzle/runtimeStorage.d.ts +1183 -0
  307. package/dist/drizzle/shared.d.ts +69 -0
  308. package/dist/embed/index.d.ts +38 -0
  309. package/dist/embed/index.js +1775 -0
  310. package/dist/embed/voice-widget.js +10 -0
  311. package/dist/index.d.ts +378 -76
  312. package/dist/index.js +47412 -7749
  313. package/dist/internal/evidence.d.ts +10 -0
  314. package/dist/internal/html.d.ts +6 -0
  315. package/dist/internal/status.d.ts +7 -0
  316. package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
  317. package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
  318. package/dist/react/VoiceCallPlayer.d.ts +11 -0
  319. package/dist/react/VoiceCostDashboard.d.ts +10 -0
  320. package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
  321. package/dist/react/VoiceLiveAgentConsole.d.ts +11 -0
  322. package/dist/react/VoiceLiveCallViewer.d.ts +9 -0
  323. package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
  324. package/dist/react/VoiceOpsStatus.d.ts +1 -1
  325. package/dist/react/VoicePlatformCoverage.d.ts +6 -0
  326. package/dist/react/VoiceProfileComparison.d.ts +6 -0
  327. package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
  328. package/dist/react/VoiceProofTrends.d.ts +6 -0
  329. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  330. package/dist/react/VoiceProviderContracts.d.ts +6 -0
  331. package/dist/react/VoiceProviderSimulationControls.d.ts +1 -1
  332. package/dist/react/VoiceProviderStatus.d.ts +1 -1
  333. package/dist/react/VoiceReadinessFailures.d.ts +6 -0
  334. package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
  335. package/dist/react/VoiceReplayTimeline.d.ts +6 -0
  336. package/dist/react/VoiceRoutingStatus.d.ts +1 -1
  337. package/dist/react/VoiceSessionObservability.d.ts +6 -0
  338. package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
  339. package/dist/react/VoiceTraceTimeline.d.ts +6 -0
  340. package/dist/react/VoiceTurnLatency.d.ts +6 -0
  341. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  342. package/dist/react/VoiceWidget.d.ts +13 -0
  343. package/dist/react/index.d.ts +80 -11
  344. package/dist/react/index.js +13545 -1593
  345. package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
  346. package/dist/react/useVoiceCallDebugger.d.ts +8 -0
  347. package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
  348. package/dist/react/useVoiceController.d.ts +5 -1
  349. package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
  350. package/dist/react/useVoiceLiveOps.d.ts +9 -0
  351. package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
  352. package/dist/react/useVoiceOpsStatus.d.ts +8 -0
  353. package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
  354. package/dist/react/useVoiceProfileComparison.d.ts +8 -0
  355. package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
  356. package/dist/react/useVoiceProofTrends.d.ts +8 -0
  357. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  358. package/dist/react/useVoiceProviderContracts.d.ts +8 -0
  359. package/dist/react/useVoiceProviderSimulationControls.d.ts +1 -1
  360. package/dist/react/useVoiceProviderStatus.d.ts +1 -1
  361. package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
  362. package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
  363. package/dist/react/useVoiceRoutingStatus.d.ts +1 -1
  364. package/dist/react/useVoiceSessionObservability.d.ts +8 -0
  365. package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
  366. package/dist/react/useVoiceStream.d.ts +5 -1
  367. package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
  368. package/dist/react/useVoiceTurnLatency.d.ts +9 -0
  369. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  370. package/dist/react/useVoiceWorkflowStatus.d.ts +1 -1
  371. package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
  372. package/dist/svelte/createVoiceCallDebugger.d.ts +10 -0
  373. package/dist/svelte/createVoiceCallPlayer.d.ts +33 -0
  374. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
  375. package/dist/svelte/createVoiceCostDashboard.d.ts +13 -0
  376. package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
  377. package/dist/svelte/createVoiceLiveAgentConsole.d.ts +23 -0
  378. package/dist/svelte/createVoiceLiveCallViewer.d.ts +26 -0
  379. package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
  380. package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
  381. package/dist/svelte/createVoiceOpsStatus.d.ts +4 -4
  382. package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
  383. package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
  384. package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
  385. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  386. package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
  387. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +2 -2
  388. package/dist/svelte/createVoiceProviderStatus.d.ts +2 -2
  389. package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
  390. package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
  391. package/dist/svelte/createVoiceReplayTimeline.d.ts +13 -0
  392. package/dist/svelte/createVoiceRoutingStatus.d.ts +2 -2
  393. package/dist/svelte/createVoiceSessionObservability.d.ts +10 -0
  394. package/dist/svelte/createVoiceSessionSnapshot.d.ts +11 -0
  395. package/dist/svelte/createVoiceStream.d.ts +1 -1
  396. package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
  397. package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
  398. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  399. package/dist/svelte/createVoiceWidget.d.ts +19 -0
  400. package/dist/svelte/createVoiceWorkflowStatus.d.ts +2 -2
  401. package/dist/svelte/index.d.ts +37 -8
  402. package/dist/svelte/index.js +7177 -1306
  403. package/dist/telephony/contract.d.ts +61 -0
  404. package/dist/telephony/matrix.d.ts +97 -0
  405. package/dist/telephony/plivo.d.ts +303 -0
  406. package/dist/telephony/response.d.ts +1 -1
  407. package/dist/telephony/security.d.ts +182 -0
  408. package/dist/telephony/telnyx.d.ts +291 -0
  409. package/dist/telephony/twilio.d.ts +153 -15
  410. package/dist/testing/accuracy.d.ts +1 -1
  411. package/dist/testing/benchmark.d.ts +15 -15
  412. package/dist/testing/corrected.d.ts +9 -9
  413. package/dist/testing/duplex.d.ts +5 -5
  414. package/dist/testing/fixtures.d.ts +4 -4
  415. package/dist/testing/index.d.ts +13 -13
  416. package/dist/testing/index.js +7426 -964
  417. package/dist/testing/ioProviderSimulator.d.ts +5 -5
  418. package/dist/testing/providerSimulator.d.ts +5 -5
  419. package/dist/testing/review.d.ts +8 -8
  420. package/dist/testing/sessionBenchmark.d.ts +13 -13
  421. package/dist/testing/stt.d.ts +3 -3
  422. package/dist/testing/telephony.d.ts +27 -2
  423. package/dist/testing/tts.d.ts +2 -2
  424. package/dist/vue/VoiceCallDebuggerLaunch.d.ts +72 -0
  425. package/dist/vue/VoiceCallPlayer.d.ts +40 -0
  426. package/dist/vue/VoiceCostDashboard.d.ts +57 -0
  427. package/dist/vue/VoiceDeliveryRuntime.d.ts +34 -0
  428. package/dist/vue/VoiceLiveAgentConsole.d.ts +50 -0
  429. package/dist/vue/VoiceLiveCallViewer.d.ts +35 -0
  430. package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
  431. package/dist/vue/VoiceOpsStatus.d.ts +4 -0
  432. package/dist/vue/VoicePlatformCoverage.d.ts +27 -0
  433. package/dist/vue/VoiceProofTrends.d.ts +25 -0
  434. package/dist/vue/VoiceProviderCapabilities.d.ts +55 -0
  435. package/dist/vue/VoiceProviderContracts.d.ts +25 -0
  436. package/dist/vue/VoiceProviderSimulationControls.d.ts +3 -3
  437. package/dist/vue/VoiceProviderStatus.d.ts +4 -0
  438. package/dist/vue/VoiceReadinessFailures.d.ts +25 -0
  439. package/dist/vue/VoiceReconnectProfileEvidence.d.ts +25 -0
  440. package/dist/vue/VoiceReplayTimeline.d.ts +17 -0
  441. package/dist/vue/VoiceRoutingStatus.d.ts +4 -0
  442. package/dist/vue/VoiceSessionObservability.d.ts +27 -0
  443. package/dist/vue/VoiceSessionSnapshot.d.ts +72 -0
  444. package/dist/vue/VoiceTurnLatency.d.ts +73 -0
  445. package/dist/vue/VoiceTurnQuality.d.ts +55 -0
  446. package/dist/vue/VoiceWidget.d.ts +77 -0
  447. package/dist/vue/index.d.ts +49 -11
  448. package/dist/vue/index.js +12844 -1711
  449. package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
  450. package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
  451. package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
  452. package/dist/vue/useVoiceController.d.ts +10 -7
  453. package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
  454. package/dist/vue/useVoiceLiveOps.d.ts +9 -0
  455. package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
  456. package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
  457. package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
  458. package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
  459. package/dist/vue/useVoiceProofTrends.d.ts +9 -0
  460. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  461. package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
  462. package/dist/vue/useVoiceProviderSimulationControls.d.ts +2 -2
  463. package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
  464. package/dist/vue/useVoiceReadinessFailures.d.ts +959 -0
  465. package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
  466. package/dist/vue/useVoiceRoutingStatus.d.ts +2 -2
  467. package/dist/vue/useVoiceSessionObservability.d.ts +9 -0
  468. package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
  469. package/dist/vue/useVoiceStream.d.ts +10 -6
  470. package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
  471. package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
  472. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  473. package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
  474. package/package.json +159 -256
  475. package/dist/angular/voice-app-kit-status.service.d.ts +0 -12
  476. package/dist/angular/voice-ops-status.component.d.ts +0 -15
  477. package/dist/appKit.d.ts +0 -92
  478. package/dist/client/appKitStatus.d.ts +0 -19
  479. package/dist/react/useVoiceAppKitStatus.d.ts +0 -8
  480. package/dist/svelte/createVoiceAppKitStatus.d.ts +0 -8
  481. package/dist/turnProfiles.d.ts +0 -6
  482. package/dist/types.d.ts +0 -968
  483. package/dist/vue/useVoiceAppKitStatus.d.ts +0 -9
  484. package/fixtures/README.md +0 -57
  485. package/fixtures/manifest.json +0 -199
  486. package/fixtures/pcm/dialogue-three-clean.pcm +0 -0
  487. package/fixtures/pcm/dialogue-three-mixed.pcm +0 -0
  488. package/fixtures/pcm/dialogue-two-clean.pcm +0 -0
  489. package/fixtures/pcm/dialogue-two-noisy.pcm +0 -0
  490. package/fixtures/pcm/multiturn-three-mixed.pcm +0 -0
  491. package/fixtures/pcm/multiturn-two-clean.pcm +0 -0
  492. package/fixtures/pcm/quietly-alone-clean.pcm +0 -0
  493. package/fixtures/pcm/rainstorms-noisy.pcm +0 -0
  494. package/fixtures/pcm/stella-bulgaria-bulgarian20.pcm +0 -0
  495. package/fixtures/pcm/stella-ghana-english507.pcm +0 -0
  496. package/fixtures/pcm/stella-india-english37.pcm +0 -0
  497. package/fixtures/pcm/stella-jamaica-jamaican-creole-english1.pcm +0 -0
  498. package/fixtures/pcm/stella-liberia-liberian-pidgin-english2.pcm +0 -0
  499. package/fixtures/pcm/stella-pakistan-english519.pcm +0 -0
  500. package/fixtures/pcm/stella-sierra-leone-krio5.pcm +0 -0
  501. package/fixtures/pcm/stella-singapore-english655.pcm +0 -0
  502. package/fixtures/pcm/traveled-back-route-clean.pcm +0 -0
@@ -0,0 +1,151 @@
1
+ import type { S3Client, S3Options } from "bun";
2
+ import type { StoredVoiceAuditEvent, VoiceAuditEventStore, VoiceAuditEventType } from "./audit";
3
+ import type { VoiceIdempotencyStore, VoiceRedisTaskLeaseCoordinator } from "./queue";
4
+ import type { VoiceTraceRedactionConfig } from "./trace";
5
+ export type VoiceAuditSinkDeliveryStatus = "delivered" | "failed" | "skipped";
6
+ export type VoiceAuditSinkDeliveryQueueStatus = VoiceAuditSinkDeliveryStatus | "pending";
7
+ export type VoiceAuditSinkDeliveryResult = {
8
+ attempts: number;
9
+ deliveredAt?: number;
10
+ deliveredTo?: string;
11
+ error?: string;
12
+ eventCount: number;
13
+ responseBody?: unknown;
14
+ status: VoiceAuditSinkDeliveryStatus;
15
+ };
16
+ export type VoiceAuditSink = {
17
+ deliver: (input: {
18
+ events: StoredVoiceAuditEvent[];
19
+ }) => Promise<VoiceAuditSinkDeliveryResult> | VoiceAuditSinkDeliveryResult;
20
+ eventTypes?: VoiceAuditEventType[];
21
+ id: string;
22
+ kind?: string;
23
+ };
24
+ export type VoiceAuditSinkFanoutResult = {
25
+ deliveredAt: number;
26
+ eventCount: number;
27
+ sinkDeliveries: Record<string, VoiceAuditSinkDeliveryResult>;
28
+ status: VoiceAuditSinkDeliveryStatus;
29
+ };
30
+ export type VoiceAuditSinkDeliveryRecord = {
31
+ createdAt: number;
32
+ deliveredAt?: number;
33
+ deliveryAttempts?: number;
34
+ deliveryError?: string;
35
+ deliveryStatus: VoiceAuditSinkDeliveryQueueStatus;
36
+ events: StoredVoiceAuditEvent[];
37
+ id: string;
38
+ sinkDeliveries?: Record<string, VoiceAuditSinkDeliveryResult>;
39
+ updatedAt: number;
40
+ };
41
+ export type VoiceAuditSinkDeliveryStore<TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord> = {
42
+ get: (id: string) => Promise<TDelivery | undefined> | TDelivery | undefined;
43
+ list: () => Promise<TDelivery[]> | TDelivery[];
44
+ remove: (id: string) => Promise<void> | void;
45
+ set: (id: string, delivery: TDelivery) => Promise<void> | void;
46
+ };
47
+ export type VoiceAuditHTTPSinkOptions<TBody extends Record<string, unknown> = Record<string, unknown>> = {
48
+ backoffMs?: number;
49
+ body?: (input: {
50
+ events: StoredVoiceAuditEvent[];
51
+ }) => Promise<TBody> | TBody;
52
+ eventTypes?: VoiceAuditEventType[];
53
+ fetch?: typeof fetch;
54
+ headers?: Record<string, string>;
55
+ id: string;
56
+ kind?: string;
57
+ method?: "POST" | "PUT" | "PATCH";
58
+ retries?: number;
59
+ signingSecret?: string;
60
+ timeoutMs?: number;
61
+ url: string;
62
+ };
63
+ export type VoiceS3AuditSinkFile = {
64
+ write: (data: string, options?: BlobPropertyBag) => Promise<number> | number;
65
+ };
66
+ export type VoiceS3AuditSinkClient = Pick<S3Client, "file">;
67
+ export type VoiceAuditS3SinkOptions<TBody extends Record<string, unknown> = Record<string, unknown>> = S3Options & {
68
+ body?: (input: {
69
+ events: StoredVoiceAuditEvent[];
70
+ key: string;
71
+ }) => Promise<TBody> | TBody;
72
+ client?: VoiceS3AuditSinkClient;
73
+ contentType?: string;
74
+ eventTypes?: VoiceAuditEventType[];
75
+ id: string;
76
+ keyPrefix?: string;
77
+ kind?: string;
78
+ };
79
+ export type VoiceAuditSinkStoreOptions<TEvent extends StoredVoiceAuditEvent = StoredVoiceAuditEvent> = {
80
+ awaitDelivery?: boolean;
81
+ deliveryQueue?: VoiceAuditSinkDeliveryStore;
82
+ onDelivery?: (result: VoiceAuditSinkFanoutResult) => Promise<void> | void;
83
+ onError?: (error: unknown) => Promise<void> | void;
84
+ redact?: VoiceTraceRedactionConfig;
85
+ sinks: VoiceAuditSink[];
86
+ store: VoiceAuditEventStore<TEvent>;
87
+ };
88
+ export type VoiceAuditSinkDeliveryWorkerOptions<TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord> = {
89
+ deadLetters?: VoiceAuditSinkDeliveryStore<TDelivery>;
90
+ deliveries: VoiceAuditSinkDeliveryStore<TDelivery>;
91
+ idempotency?: VoiceIdempotencyStore;
92
+ idempotencyTtlSeconds?: number;
93
+ leaseMs?: number;
94
+ leases: VoiceRedisTaskLeaseCoordinator;
95
+ maxFailures?: number;
96
+ onDeadLetter?: (delivery: TDelivery) => Promise<void> | void;
97
+ redact?: VoiceTraceRedactionConfig;
98
+ sinks: VoiceAuditSink[];
99
+ statuses?: VoiceAuditSinkDeliveryQueueStatus[];
100
+ workerId: string;
101
+ };
102
+ export type VoiceAuditSinkDeliveryWorkerResult = {
103
+ alreadyProcessed: number;
104
+ attempted: number;
105
+ deadLettered: number;
106
+ delivered: number;
107
+ failed: number;
108
+ skipped: number;
109
+ };
110
+ export type VoiceAuditSinkDeliveryWorkerLoopOptions<TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord> = {
111
+ onError?: (error: unknown) => Promise<void> | void;
112
+ pollIntervalMs?: number;
113
+ worker: ReturnType<typeof createVoiceAuditSinkDeliveryWorker<TDelivery>>;
114
+ };
115
+ export type VoiceAuditSinkDeliveryWorkerLoop = {
116
+ isRunning: () => boolean;
117
+ start: () => void;
118
+ stop: () => void;
119
+ tick: () => Promise<VoiceAuditSinkDeliveryWorkerResult>;
120
+ };
121
+ export type VoiceAuditSinkDeliveryQueueSummary = {
122
+ deadLettered: number;
123
+ delivered: number;
124
+ failed: number;
125
+ pending: number;
126
+ retryEligible: number;
127
+ skipped: number;
128
+ total: number;
129
+ };
130
+ export declare const createVoiceAuditHTTPSink: <TBody extends Record<string, unknown> = Record<string, unknown>>(options: VoiceAuditHTTPSinkOptions<TBody>) => VoiceAuditSink;
131
+ export declare const createVoiceAuditS3Sink: <TBody extends Record<string, unknown> = Record<string, unknown>>(options: VoiceAuditS3SinkOptions<TBody>) => VoiceAuditSink;
132
+ export declare const createVoiceAuditSinkDeliveryId: (events: StoredVoiceAuditEvent[]) => string;
133
+ export declare const createVoiceAuditSinkDeliveryRecord: (input: {
134
+ createdAt?: number;
135
+ events: StoredVoiceAuditEvent[];
136
+ id?: string;
137
+ } & Partial<Omit<VoiceAuditSinkDeliveryRecord, "createdAt" | "events" | "id">>) => VoiceAuditSinkDeliveryRecord;
138
+ export declare const createVoiceAuditSinkStore: <TEvent extends StoredVoiceAuditEvent = StoredVoiceAuditEvent>(options: VoiceAuditSinkStoreOptions<TEvent>) => VoiceAuditEventStore<TEvent>;
139
+ export declare const createVoiceMemoryAuditSinkDeliveryStore: <TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord>() => VoiceAuditSinkDeliveryStore<TDelivery>;
140
+ export declare const deliverVoiceAuditEventsToSinks: (input: {
141
+ events: StoredVoiceAuditEvent[];
142
+ redact?: VoiceTraceRedactionConfig;
143
+ sinks: VoiceAuditSink[];
144
+ }) => Promise<VoiceAuditSinkFanoutResult>;
145
+ export declare const createVoiceAuditSinkDeliveryWorker: <TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord>(options: VoiceAuditSinkDeliveryWorkerOptions<TDelivery>) => {
146
+ drain: () => Promise<VoiceAuditSinkDeliveryWorkerResult>;
147
+ };
148
+ export declare const createVoiceAuditSinkDeliveryWorkerLoop: <TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord>(options: VoiceAuditSinkDeliveryWorkerLoopOptions<TDelivery>) => VoiceAuditSinkDeliveryWorkerLoop;
149
+ export declare const summarizeVoiceAuditSinkDeliveries: <TDelivery extends VoiceAuditSinkDeliveryRecord = VoiceAuditSinkDeliveryRecord>(deliveries: TDelivery[], input?: {
150
+ deadLetters?: VoiceAuditSinkDeliveryStore<TDelivery>;
151
+ }) => Promise<VoiceAuditSinkDeliveryQueueSummary> | VoiceAuditSinkDeliveryQueueSummary;
@@ -0,0 +1,25 @@
1
+ export type VoiceBackchannelCue = {
2
+ audioUrl?: string;
3
+ metadata?: Record<string, unknown>;
4
+ text?: string;
5
+ };
6
+ export type VoiceBackchannelDriverOptions = {
7
+ cues?: ReadonlyArray<VoiceBackchannelCue>;
8
+ cueIntervalMs?: number;
9
+ cueIndex?: (index: number) => number;
10
+ minSpeechMs?: number;
11
+ onCue: (cue: VoiceBackchannelCue) => Promise<void> | void;
12
+ };
13
+ export type VoiceBackchannelConfig = {
14
+ enabled?: boolean;
15
+ cues?: ReadonlyArray<string>;
16
+ minSpeechMs?: number;
17
+ cueIntervalMs?: number;
18
+ };
19
+ export type VoiceBackchannelDriver = {
20
+ noteSpeech: (timestampMs?: number) => void;
21
+ noteSilence: (timestampMs?: number) => void;
22
+ reset: () => void;
23
+ };
24
+ export declare const isBackchannelUtterance: (text: string, maxWords?: number) => boolean;
25
+ export declare const createVoiceBackchannelDriver: (options: VoiceBackchannelDriverOptions) => VoiceBackchannelDriver;
@@ -0,0 +1,51 @@
1
+ import type { AudioFormat } from "./types";
2
+ export type VoiceBargeInInput = {
3
+ /** The partial transcript that arrived while the assistant was speaking. */
4
+ partialText: string;
5
+ /** Word count of `partialText`. */
6
+ wordCount: number;
7
+ /** Whether the text matches a known backchannel cue (isBackchannelUtterance). */
8
+ isBackchannelByText: boolean;
9
+ /** The user's buffered PCM for this window (oldest→newest), if any. */
10
+ turnAudio?: ReadonlyArray<Uint8Array>;
11
+ turnAudioFormat?: AudioFormat;
12
+ };
13
+ export type VoiceBargeInVerdict = {
14
+ /** true = real interruption → cancel the assistant's TTS. false = keep talking. */
15
+ shouldCancel: boolean;
16
+ /** Diagnostic label, surfaced on the barge_in / barge_in_suppressed trace. */
17
+ reason?: string;
18
+ /**
19
+ * The acoustic measurements the decision used, surfaced on the trace for
20
+ * tuning against real audio. Omitted when no audio was judged.
21
+ */
22
+ metrics?: {
23
+ voicedMs: number;
24
+ rms: number;
25
+ };
26
+ };
27
+ export type VoiceBargeInDetector = {
28
+ evaluate: (input: VoiceBargeInInput) => Promise<VoiceBargeInVerdict> | VoiceBargeInVerdict;
29
+ };
30
+ export type CreateAcousticBargeInDetectorOptions = {
31
+ /** Voiced speech sustained this long (ms) is a real interruption — cancel. */
32
+ sustainedMs?: number;
33
+ /**
34
+ * Leading words that mark an interruption ("wait", "hold on", "sorry"). A
35
+ * short utterance starting with one cancels immediately instead of holding.
36
+ * Extends (does not replace) the defaults.
37
+ */
38
+ interruptionCues?: string[];
39
+ };
40
+ /**
41
+ * A model-free backchannel-vs-barge-in classifier driven by TEXT + PERSISTENCE
42
+ * (energy was measured to not discriminate on normalized speech):
43
+ * - voiced speech past `sustainedMs` → real interruption (cancel)
44
+ * - known backchannel cue, still short → backchannel (keep talking)
45
+ * - starts with an interruption cue → caller took the floor (cancel)
46
+ * - otherwise short + ambiguous → HOLD: keep talking; a continuing
47
+ * utterance cancels itself once its
48
+ * voiced duration crosses sustainedMs
49
+ * Runs in-process on raw arithmetic — no model, no sidecar.
50
+ */
51
+ export declare const createAcousticBargeInDetector: (options?: CreateAcousticBargeInDetectorOptions) => VoiceBargeInDetector;
@@ -0,0 +1,56 @@
1
+ import { Elysia } from "elysia";
2
+ import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from "./trace";
3
+ import type { VoiceBargeInMonitorSnapshot } from "./types";
4
+ export type VoiceBargeInRoutesOptions = {
5
+ headers?: HeadersInit;
6
+ htmlPath?: string;
7
+ name?: string;
8
+ path?: string;
9
+ store: VoiceTraceEventStore;
10
+ thresholdMs?: number;
11
+ title?: string;
12
+ };
13
+ export type VoiceBargeInReport = VoiceBargeInMonitorSnapshot & {
14
+ checkedAt: number;
15
+ sessions: Array<{
16
+ averageLatencyMs?: number;
17
+ failed: number;
18
+ passed: number;
19
+ sessionId: string;
20
+ total: number;
21
+ }>;
22
+ };
23
+ export declare const createVoiceBargeInRoutes: (options: VoiceBargeInRoutesOptions) => Elysia<"", {
24
+ decorator: {};
25
+ store: {};
26
+ derive: {};
27
+ resolve: {};
28
+ }, {
29
+ typebox: {};
30
+ error: {};
31
+ }, {
32
+ schema: {};
33
+ standaloneSchema: {};
34
+ macro: {};
35
+ macroFn: {};
36
+ parser: {};
37
+ response: {};
38
+ }, {}, {
39
+ derive: {};
40
+ resolve: {};
41
+ schema: {};
42
+ standaloneSchema: {};
43
+ response: {};
44
+ }, {
45
+ derive: {};
46
+ resolve: {};
47
+ schema: {};
48
+ standaloneSchema: {};
49
+ response: {};
50
+ }>;
51
+ export declare const renderVoiceBargeInHTML: (report: VoiceBargeInReport, options?: {
52
+ title?: string;
53
+ }) => string;
54
+ export declare const summarizeVoiceBargeIn: (events: StoredVoiceTraceEvent[], options?: {
55
+ thresholdMs?: number;
56
+ }) => VoiceBargeInReport;
@@ -0,0 +1,43 @@
1
+ import type { VoiceCalendarAdapter, VoiceCalendarAppointment } from "./calendarAdapter";
2
+ import type { VoiceCalendarSlot } from "./calendarSlots";
3
+ export type VoiceBookingFlowStep = "ask-service" | "ask-date" | "ask-time" | "confirm" | "booking" | "booked" | "failed";
4
+ export type VoiceBookingFlowState = {
5
+ step: VoiceBookingFlowStep;
6
+ serviceId?: string;
7
+ serviceDurationMinutes?: number;
8
+ attendees?: string[];
9
+ proposedSlots: VoiceCalendarSlot[];
10
+ selectedSlot?: VoiceCalendarSlot;
11
+ appointment?: VoiceCalendarAppointment;
12
+ error?: string;
13
+ };
14
+ export type VoiceBookingFlowServiceCatalog = {
15
+ id: string;
16
+ label: string;
17
+ durationMinutes: number;
18
+ }[];
19
+ export type CreateVoiceBookingFlowOptions = {
20
+ adapter: VoiceCalendarAdapter;
21
+ calendarId: string;
22
+ services?: VoiceBookingFlowServiceCatalog;
23
+ defaultDurationMinutes?: number;
24
+ initialStep?: VoiceBookingFlowStep;
25
+ maxSlotsPerDay?: number;
26
+ };
27
+ export declare const createVoiceBookingFlow: (options: CreateVoiceBookingFlowOptions) => {
28
+ chooseService: (serviceId: string) => void;
29
+ chooseSlot: (slotIndex: number) => void;
30
+ confirm: (input?: {
31
+ attendees?: string[];
32
+ title?: string;
33
+ notes?: string;
34
+ }) => Promise<VoiceCalendarAppointment | null>;
35
+ proposeSlotsForDay: (input: {
36
+ fromMs: number;
37
+ toMs: number;
38
+ }) => Promise<VoiceCalendarSlot[]>;
39
+ reset: () => void;
40
+ getState: () => VoiceBookingFlowState;
41
+ subscribe(listener: (state: VoiceBookingFlowState) => void): () => void;
42
+ };
43
+ export type VoiceBookingFlow = ReturnType<typeof createVoiceBookingFlow>;
@@ -0,0 +1,120 @@
1
+ import { Elysia } from "elysia";
2
+ export type VoiceBrowserCallProfileStatus = "empty" | "fail" | "pass" | "stale" | "warn";
3
+ export type VoiceBrowserCallProfileFrameworkSummary = {
4
+ messageCount?: number;
5
+ openSockets?: number;
6
+ receivedBytes?: number;
7
+ sentBytes?: number;
8
+ };
9
+ export type VoiceBrowserCallProfileFrameworkEvidence = {
10
+ error?: string;
11
+ framework: string;
12
+ ok?: boolean;
13
+ summary?: VoiceBrowserCallProfileFrameworkSummary;
14
+ url?: string;
15
+ };
16
+ export type VoiceBrowserCallProfileSummary = {
17
+ failedFrameworks: string[];
18
+ openSockets: number;
19
+ passedFrameworks: string[];
20
+ receivedBytes: number;
21
+ sentBytes: number;
22
+ totalFrameworks: number;
23
+ totalMessages: number;
24
+ };
25
+ export type VoiceBrowserCallProfileReportInput = {
26
+ ageMs?: number;
27
+ baseUrl?: string;
28
+ frameworks?: string[];
29
+ freshUntil?: string;
30
+ generatedAt?: string;
31
+ maxAgeMs?: number;
32
+ now?: Date | number | string;
33
+ ok?: boolean;
34
+ outputDir?: string;
35
+ profileId?: string;
36
+ results?: VoiceBrowserCallProfileFrameworkEvidence[];
37
+ runId?: string;
38
+ source?: string;
39
+ status?: VoiceBrowserCallProfileStatus;
40
+ summary?: Partial<VoiceBrowserCallProfileSummary> & VoiceBrowserCallProfileFrameworkSummary;
41
+ };
42
+ export type VoiceBrowserCallProfileReport = {
43
+ ageMs?: number;
44
+ baseUrl?: string;
45
+ frameworks: string[];
46
+ freshUntil?: string;
47
+ generatedAt: string;
48
+ maxAgeMs: number;
49
+ ok: boolean;
50
+ outputDir?: string;
51
+ profileId: string;
52
+ results: VoiceBrowserCallProfileFrameworkEvidence[];
53
+ runId?: string;
54
+ source: string;
55
+ status: VoiceBrowserCallProfileStatus;
56
+ summary: VoiceBrowserCallProfileSummary;
57
+ };
58
+ export type VoiceBrowserCallProfileAssertionInput = {
59
+ maxAgeMs?: number;
60
+ minMessageCountPerFramework?: number;
61
+ minOpenSocketsPerFramework?: number;
62
+ minSentBytesPerFramework?: number;
63
+ requireAllFrameworksPass?: boolean;
64
+ requiredFrameworks?: string[];
65
+ };
66
+ export type VoiceBrowserCallProfileAssertionReport = {
67
+ failedFrameworks: string[];
68
+ issues: string[];
69
+ ok: boolean;
70
+ passedFrameworks: string[];
71
+ status: VoiceBrowserCallProfileStatus;
72
+ summary: VoiceBrowserCallProfileSummary;
73
+ };
74
+ export type VoiceBrowserCallProfileRoutesOptions = {
75
+ headers?: HeadersInit;
76
+ htmlPath?: false | string;
77
+ jsonPath?: string;
78
+ markdownPath?: false | string;
79
+ maxAgeMs?: number;
80
+ name?: string;
81
+ source?: (() => Promise<VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput> | VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput) | VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput;
82
+ title?: string;
83
+ };
84
+ export declare const assertVoiceBrowserCallProfileEvidence: (report: VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput, input?: VoiceBrowserCallProfileAssertionInput) => VoiceBrowserCallProfileAssertionReport;
85
+ export declare const buildVoiceBrowserCallProfileReport: (input?: VoiceBrowserCallProfileReportInput) => VoiceBrowserCallProfileReport;
86
+ export declare const evaluateVoiceBrowserCallProfileEvidence: (report: VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput, input?: VoiceBrowserCallProfileAssertionInput) => VoiceBrowserCallProfileAssertionReport;
87
+ export declare const renderVoiceBrowserCallProfileHTML: (report: VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput, options?: {
88
+ title?: string;
89
+ }) => string;
90
+ export declare const renderVoiceBrowserCallProfileMarkdown: (report: VoiceBrowserCallProfileReport | VoiceBrowserCallProfileReportInput, options?: {
91
+ title?: string;
92
+ }) => string;
93
+ export declare const createVoiceBrowserCallProfileRoutes: (options?: VoiceBrowserCallProfileRoutesOptions) => Elysia<"", {
94
+ decorator: {};
95
+ store: {};
96
+ derive: {};
97
+ resolve: {};
98
+ }, {
99
+ typebox: {};
100
+ error: {};
101
+ }, {
102
+ schema: {};
103
+ standaloneSchema: {};
104
+ macro: {};
105
+ macroFn: {};
106
+ parser: {};
107
+ response: {};
108
+ }, {}, {
109
+ derive: {};
110
+ resolve: {};
111
+ schema: {};
112
+ standaloneSchema: {};
113
+ response: {};
114
+ }, {
115
+ derive: {};
116
+ resolve: {};
117
+ schema: {};
118
+ standaloneSchema: {};
119
+ response: {};
120
+ }>;
@@ -0,0 +1,62 @@
1
+ import { Elysia } from "elysia";
2
+ import type { MediaWebRTCStatsReport, MediaWebRTCStreamContinuityReport } from "@absolutejs/media";
3
+ import type { VoiceTraceEventStore } from "./trace";
4
+ export type VoiceBrowserMediaStatus = "empty" | "fail" | "pass" | "warn";
5
+ export type VoiceBrowserMediaSample = {
6
+ at: number;
7
+ continuity?: MediaWebRTCStreamContinuityReport;
8
+ report: MediaWebRTCStatsReport;
9
+ scenarioId?: string;
10
+ sessionId: string;
11
+ traceId?: string;
12
+ };
13
+ export type VoiceBrowserMediaReport = {
14
+ checkedAt: number;
15
+ latest?: VoiceBrowserMediaSample;
16
+ recent: VoiceBrowserMediaSample[];
17
+ status: VoiceBrowserMediaStatus;
18
+ stale: boolean;
19
+ total: number;
20
+ };
21
+ export type VoiceBrowserMediaRoutesOptions = {
22
+ headers?: HeadersInit;
23
+ htmlPath?: false | string;
24
+ maxAgeMs?: number;
25
+ name?: string;
26
+ path?: string;
27
+ store: VoiceTraceEventStore;
28
+ title?: string;
29
+ };
30
+ export declare const createVoiceBrowserMediaRoutes: (options: VoiceBrowserMediaRoutesOptions) => Elysia<"", {
31
+ decorator: {};
32
+ store: {};
33
+ derive: {};
34
+ resolve: {};
35
+ }, {
36
+ typebox: {};
37
+ error: {};
38
+ }, {
39
+ schema: {};
40
+ standaloneSchema: {};
41
+ macro: {};
42
+ macroFn: {};
43
+ parser: {};
44
+ response: {};
45
+ }, {}, {
46
+ derive: {};
47
+ resolve: {};
48
+ schema: {};
49
+ standaloneSchema: {};
50
+ response: {};
51
+ }, {
52
+ derive: {};
53
+ resolve: {};
54
+ schema: {};
55
+ standaloneSchema: {};
56
+ response: {};
57
+ }>;
58
+ export declare const getLatestVoiceBrowserMediaReport: (options: Pick<VoiceBrowserMediaRoutesOptions, "maxAgeMs" | "store">) => Promise<MediaWebRTCStatsReport | undefined>;
59
+ export declare const renderVoiceBrowserMediaHTML: (report: VoiceBrowserMediaReport, options?: {
60
+ title?: string;
61
+ }) => string;
62
+ export declare const summarizeVoiceBrowserMedia: (options: Pick<VoiceBrowserMediaRoutesOptions, "maxAgeMs" | "store">) => Promise<VoiceBrowserMediaReport>;
@@ -0,0 +1,54 @@
1
+ import type { TTSAdapter, TTSAdapterOpenOptions, TTSAudioEvent } from "./types";
2
+ /**
3
+ * Optional persistent backing store for the cache — an L2 behind the in-memory
4
+ * LRU. Lets rendered audio survive process restarts/deploys so a fixed prompt
5
+ * (e.g. a greeting) is synthesized once *ever* per content key, not once per
6
+ * process. The store is content-addressed by the same `keyFor` key, so a
7
+ * changed prompt/voice/model naturally lands on a new key and re-renders.
8
+ *
9
+ * The store is told `TTSAudioEvent[]` and must return the same on read; how it
10
+ * serializes the binary `chunk`s (base64 in JSON, bytea, a file, etc.) is up to
11
+ * the implementation. `get` returns `null`/`undefined` on a miss. Both may be
12
+ * sync or async; errors should be swallowed by the implementation (a store
13
+ * failure must never break playback — the wrapper falls back to live render).
14
+ */
15
+ export type CachedTTSStore = {
16
+ get: (key: string) => Promise<TTSAudioEvent[] | null | undefined> | TTSAudioEvent[] | null | undefined;
17
+ set: (key: string, events: TTSAudioEvent[]) => Promise<void> | void;
18
+ };
19
+ export type CachedTTSOptions = {
20
+ /**
21
+ * Return a stable cache key for an utterance whose synthesized audio should
22
+ * be rendered once and replayed verbatim on later calls (typically a
23
+ * greeting / fixed prompt), or `null`/`undefined` to synthesize it live every
24
+ * time (dynamic turn replies).
25
+ *
26
+ * The key must encode everything that affects the audio — the text, the
27
+ * voice, the model, and the output format. Because the cache is
28
+ * content-addressed, editing any of those naturally produces a new key, so a
29
+ * stale rendering is never replayed: the first call after a change re-renders
30
+ * (and re-caches) while the old entry is simply orphaned.
31
+ */
32
+ keyFor: (text: string, openOptions: TTSAdapterOpenOptions) => string | null | undefined;
33
+ /** Max distinct utterances to retain in memory (LRU by insertion). Default 32. */
34
+ maxEntries?: number;
35
+ /**
36
+ * Optional persistent L2 store (see {@link CachedTTSStore}). When set, an
37
+ * in-memory miss consults the store before rendering; a store hit is replayed
38
+ * and promoted into memory, and a fresh render is written through to it. Omit
39
+ * for memory-only behaviour (unchanged).
40
+ */
41
+ store?: CachedTTSStore;
42
+ };
43
+ /**
44
+ * Wrap a TTS adapter so selected utterances are synthesized once and replayed
45
+ * from memory on subsequent `send()`s — eliminating provider latency for fixed
46
+ * prompts like a call greeting. Utterances are selected (and keyed) by
47
+ * `options.keyFor`; everything else passes straight through to the inner
48
+ * adapter, so dynamic replies are unaffected.
49
+ *
50
+ * The cache lives for the lifetime of the wrapper (one per adapter), so it is
51
+ * shared across every session/call the adapter serves. Warm it ahead of the
52
+ * first call by opening a session and `send()`ing the cacheable text once.
53
+ */
54
+ export declare const createCachedTTS: (inner: TTSAdapter, options: CachedTTSOptions) => TTSAdapter<TTSAdapterOpenOptions>;
@@ -0,0 +1,47 @@
1
+ import type { VoiceCalendarBookedRange, VoiceCalendarBusinessHours, VoiceCalendarSlot } from "./calendarSlots";
2
+ export type VoiceCalendarAppointment = {
3
+ id: string;
4
+ calendarId: string;
5
+ startMs: number;
6
+ endMs: number;
7
+ title?: string;
8
+ attendees?: string[];
9
+ notes?: string;
10
+ metadata?: Record<string, string>;
11
+ createdAt: number;
12
+ status: "scheduled" | "cancelled" | "completed" | "no-show";
13
+ };
14
+ export type VoiceCalendarAvailabilityQuery = {
15
+ calendarId: string;
16
+ fromMs: number;
17
+ toMs: number;
18
+ durationMinutes: number;
19
+ bufferMinutes?: number;
20
+ granularityMinutes?: number;
21
+ maxSlots?: number;
22
+ };
23
+ export type VoiceCalendarBookInput = {
24
+ calendarId: string;
25
+ startMs: number;
26
+ endMs: number;
27
+ title?: string;
28
+ attendees?: string[];
29
+ notes?: string;
30
+ metadata?: Record<string, string>;
31
+ };
32
+ export type VoiceCalendarAdapter = {
33
+ readonly providerName: string;
34
+ listAvailability(query: VoiceCalendarAvailabilityQuery): Promise<VoiceCalendarSlot[]>;
35
+ book(input: VoiceCalendarBookInput): Promise<VoiceCalendarAppointment>;
36
+ cancel(appointmentId: string): Promise<VoiceCalendarAppointment | null>;
37
+ get(appointmentId: string): Promise<VoiceCalendarAppointment | null>;
38
+ reschedule(appointmentId: string, nextStartMs: number, nextEndMs: number): Promise<VoiceCalendarAppointment | null>;
39
+ };
40
+ export type CreateVoiceInMemoryCalendarAdapterOptions = {
41
+ businessHours: VoiceCalendarBusinessHours[];
42
+ timezone?: string;
43
+ bookedRanges?: VoiceCalendarBookedRange[];
44
+ generateId?: () => string;
45
+ now?: () => number;
46
+ };
47
+ export declare const createVoiceInMemoryCalendarAdapter: (options: CreateVoiceInMemoryCalendarAdapterOptions) => VoiceCalendarAdapter;
@@ -0,0 +1,35 @@
1
+ export type VoiceCalendarBusinessHours = {
2
+ weekday: number;
3
+ start: string;
4
+ end: string;
5
+ };
6
+ export type VoiceCalendarBlackout = {
7
+ date: string;
8
+ reason?: string;
9
+ };
10
+ export type VoiceCalendarBookedRange = {
11
+ startMs: number;
12
+ endMs: number;
13
+ };
14
+ export type VoiceCalendarSlot = {
15
+ startMs: number;
16
+ endMs: number;
17
+ durationMinutes: number;
18
+ };
19
+ export type GenerateVoiceCalendarSlotsInput = {
20
+ fromMs: number;
21
+ toMs: number;
22
+ durationMinutes: number;
23
+ bufferMinutes?: number;
24
+ granularityMinutes?: number;
25
+ timezone?: string;
26
+ businessHours: VoiceCalendarBusinessHours[];
27
+ blackoutDates?: VoiceCalendarBlackout[];
28
+ bookedRanges?: VoiceCalendarBookedRange[];
29
+ maxSlots?: number;
30
+ };
31
+ export declare const generateVoiceCalendarSlots: (input: GenerateVoiceCalendarSlotsInput) => VoiceCalendarSlot[];
32
+ export declare const summarizeVoiceCalendarSlot: (slot: VoiceCalendarSlot, options?: {
33
+ timezone?: string;
34
+ locale?: string;
35
+ }) => string;