@absolutejs/voice 0.0.22-beta.67 → 0.0.22-beta.670

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 (515) hide show
  1. package/LICENSE +88 -0
  2. package/README.md +4562 -1179
  3. package/dist/angular/index.d.ts +36 -8
  4. package/dist/angular/index.js +4362 -537
  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 +2 -2
  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 +6 -2
  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 +2 -2
  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 +201 -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 +13 -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 +1808 -159
  58. package/dist/client/htmxDashboardRenderers.d.ts +71 -0
  59. package/dist/client/index.d.ts +109 -33
  60. package/dist/client/index.js +10799 -646
  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 +5 -3
  82. package/dist/client/providerCapabilitiesWidget.d.ts +6 -6
  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 +5 -3
  108. package/dist/client/turnQualityWidget.d.ts +6 -6
  109. package/dist/client/voiceWidgetView.d.ts +48 -0
  110. package/dist/client/workflowStatus.d.ts +5 -3
  111. package/dist/core/agent.d.ts +251 -0
  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} +24 -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} +11 -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/{turnQuality.d.ts → core/turnQuality.d.ts} +9 -9
  288. package/dist/core/types.d.ts +1786 -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 +3060 -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 +2100 -0
  311. package/dist/embed/voice-widget.js +10 -0
  312. package/dist/index.d.ts +379 -82
  313. package/dist/index.js +48514 -8241
  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 +1 -1
  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 +1 -1
  346. package/dist/react/VoiceWidget.d.ts +13 -0
  347. package/dist/react/index.d.ts +80 -15
  348. package/dist/react/index.js +13740 -2052
  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 +9 -2
  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 +1 -1
  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 +9 -2
  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 +1 -1
  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 +2 -2
  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 +2 -2
  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 -10
  406. package/dist/svelte/index.js +7465 -1676
  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 +302 -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 +290 -0
  413. package/dist/telephony/twilio.d.ts +164 -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 +9171 -1290
  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 +4 -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 +4 -0
  458. package/dist/vue/VoiceWidget.d.ts +77 -0
  459. package/dist/vue/index.d.ts +49 -15
  460. package/dist/vue/index.js +13097 -2219
  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 +3 -3
  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 +3 -3
  485. package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
  486. package/package.json +247 -256
  487. package/dist/agent.d.ts +0 -115
  488. package/dist/angular/voice-app-kit-status.service.d.ts +0 -12
  489. package/dist/angular/voice-ops-status.component.d.ts +0 -15
  490. package/dist/appKit.d.ts +0 -94
  491. package/dist/client/appKitStatus.d.ts +0 -19
  492. package/dist/react/useVoiceAppKitStatus.d.ts +0 -8
  493. package/dist/svelte/createVoiceAppKitStatus.d.ts +0 -8
  494. package/dist/turnProfiles.d.ts +0 -6
  495. package/dist/types.d.ts +0 -968
  496. package/dist/vue/useVoiceAppKitStatus.d.ts +0 -9
  497. package/fixtures/README.md +0 -57
  498. package/fixtures/manifest.json +0 -199
  499. package/fixtures/pcm/dialogue-three-clean.pcm +0 -0
  500. package/fixtures/pcm/dialogue-three-mixed.pcm +0 -0
  501. package/fixtures/pcm/dialogue-two-clean.pcm +0 -0
  502. package/fixtures/pcm/dialogue-two-noisy.pcm +0 -0
  503. package/fixtures/pcm/multiturn-three-mixed.pcm +0 -0
  504. package/fixtures/pcm/multiturn-two-clean.pcm +0 -0
  505. package/fixtures/pcm/quietly-alone-clean.pcm +0 -0
  506. package/fixtures/pcm/rainstorms-noisy.pcm +0 -0
  507. package/fixtures/pcm/stella-bulgaria-bulgarian20.pcm +0 -0
  508. package/fixtures/pcm/stella-ghana-english507.pcm +0 -0
  509. package/fixtures/pcm/stella-india-english37.pcm +0 -0
  510. package/fixtures/pcm/stella-jamaica-jamaican-creole-english1.pcm +0 -0
  511. package/fixtures/pcm/stella-liberia-liberian-pidgin-english2.pcm +0 -0
  512. package/fixtures/pcm/stella-pakistan-english519.pcm +0 -0
  513. package/fixtures/pcm/stella-sierra-leone-krio5.pcm +0 -0
  514. package/fixtures/pcm/stella-singapore-english655.pcm +0 -0
  515. package/fixtures/pcm/traveled-back-route-clean.pcm +0 -0
@@ -0,0 +1,10 @@
1
+ export type VoiceEvidenceAssertion = {
2
+ ok: boolean;
3
+ issues: string[];
4
+ };
5
+ /**
6
+ * Throw if an evidence assertion failed, formatting its issues into the error
7
+ * message. Returns the assertion unchanged when it passed, so callers can
8
+ * `return assertVoiceEvidence(label, evaluate(...))`.
9
+ */
10
+ export declare const assertVoiceEvidence: <A extends VoiceEvidenceAssertion>(failureMessage: string, assertion: A) => A;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Escape a value for safe interpolation into HTML text/attributes. Accepts any
3
+ * value (non-strings are stringified) and escapes the five HTML-significant
4
+ * characters.
5
+ */
6
+ export declare const escapeHtml: (value: unknown) => string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * The shared three-level health status used across voice reports. Severity
3
+ * order is fail > warn > pass.
4
+ */
5
+ export type VoiceStatus = "fail" | "pass" | "warn";
6
+ /** Reduce a set of statuses to the worst one (fail > warn > pass). */
7
+ export declare const worstVoiceStatus: (statuses: Iterable<VoiceStatus>) => VoiceStatus;
@@ -0,0 +1,17 @@
1
+ import type { VoicePluginConfig, VoiceSessionStore } from "./core/types";
2
+ export declare const manifest: Omit<import("@absolutejs/manifest").PackageManifest<VoicePluginConfig, VoiceSessionStore>, "tools" | "contract" | "settings"> & (({
3
+ contract: 1;
4
+ tools?: Record<string, import("@absolutejs/manifest").LegacyManifestTool<VoiceSessionStore>> | undefined;
5
+ } | {
6
+ contract: 2;
7
+ tools?: Record<string, import("@absolutejs/manifest").AuthorizedManifestTool<VoiceSessionStore>> | undefined;
8
+ }) & {
9
+ settings: import("@sinclair/typebox").TObject<{
10
+ backchannelBargeInGuard: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
11
+ greeting: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
12
+ normalizeNumbers: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
13
+ path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
14
+ preset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"default">, import("@sinclair/typebox").TLiteral<"chat">, import("@sinclair/typebox").TLiteral<"guided-intake">, import("@sinclair/typebox").TLiteral<"dictation">, import("@sinclair/typebox").TLiteral<"noisy-room">, import("@sinclair/typebox").TLiteral<"pstn-balanced">, import("@sinclair/typebox").TLiteral<"pstn-fast">, import("@sinclair/typebox").TLiteral<"reliability">]>>;
15
+ resumeGreeting: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
16
+ }>;
17
+ });
@@ -0,0 +1,424 @@
1
+ // @bun
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, name) => {
6
+ Object.defineProperty(target, "name", {
7
+ value: name,
8
+ enumerable: false,
9
+ configurable: true
10
+ });
11
+ return target;
12
+ };
13
+ var __returnValue = (v) => v;
14
+ function __exportSetter(name, newValue) {
15
+ this[name] = __returnValue.bind(null, newValue);
16
+ }
17
+ var __export = (target, all) => {
18
+ for (var name in all)
19
+ __defProp(target, name, {
20
+ get: all[name],
21
+ enumerable: true,
22
+ configurable: true,
23
+ set: __exportSetter.bind(all, name)
24
+ });
25
+ };
26
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
27
+ var __typeError = (msg) => {
28
+ throw TypeError(msg);
29
+ };
30
+ var __defNormalProp = (obj, key, value) => (key in obj) ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
31
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
32
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
33
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
34
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
35
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
36
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
37
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
38
+ var __expectFn = (fn) => fn !== undefined && typeof fn !== "function" ? __typeError("Function expected") : fn;
39
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({
40
+ kind: __decoratorStrings[kind],
41
+ name,
42
+ metadata,
43
+ addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null))
44
+ });
45
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
46
+ var __runInitializers = (array, flags, self, value) => {
47
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length;i < n; i++)
48
+ flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
49
+ return value;
50
+ };
51
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
52
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
53
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
54
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
55
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : {
56
+ get [name]() {
57
+ return __privateGet(this, extra);
58
+ },
59
+ set [name](x) {
60
+ __privateSet(this, extra, x);
61
+ }
62
+ }, name));
63
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
64
+ for (var i = decorators.length - 1;i >= 0; i--) {
65
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
66
+ if (k) {
67
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => (name in x) };
68
+ if (k ^ 3)
69
+ access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
70
+ if (k > 2)
71
+ access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
72
+ }
73
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? undefined : { get: desc.get, set: desc.set } : target, ctx);
74
+ done._ = 1;
75
+ if (k ^ 4 || it === undefined)
76
+ __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
77
+ else if (typeof it !== "object" || it === null)
78
+ __typeError("Object expected");
79
+ else
80
+ __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
81
+ }
82
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
83
+ };
84
+ var __require = import.meta.require;
85
+
86
+ // src/manifest.ts
87
+ import {
88
+ defineImplementation,
89
+ defineManifest,
90
+ toolFactory
91
+ } from "@absolutejs/manifest";
92
+ import { Type } from "@sinclair/typebox";
93
+ var tool = toolFactory();
94
+ var MAX_LIST_LIMIT = 200;
95
+ var MAX_TRANSCRIPT_TURNS = 20;
96
+ var manifest = defineManifest()({
97
+ contract: 2,
98
+ identity: {
99
+ accent: "#f43f5e",
100
+ category: "voice",
101
+ description: "Self-hosted voice assistant runtime for Elysia: browser and phone-call sessions over WebSockets, pluggable speech-to-text (`voice/stt`), text-to-speech (`voice/tts`), and speech-to-speech (`voice/realtime`) vendor adapters, turn detection, barge-in, greetings, reconnect recovery, session stores (`voice/session-store`), traces, evals, and live-monitor surfaces \u2014 the orchestration hosted voice platforms keep behind their dashboards, inside your own server.",
102
+ docsUrl: "https://github.com/absolutejs/voice",
103
+ name: "@absolutejs/voice",
104
+ tagline: "Let people talk to your site and get spoken answers."
105
+ },
106
+ implements: [
107
+ defineImplementation()({
108
+ contract: "voice/session-store",
109
+ factory: "createVoiceMemoryStore",
110
+ from: "@absolutejs/voice",
111
+ title: "In memory (development only \u2014 calls are forgotten on restart)",
112
+ wiring: {
113
+ code: "createVoiceMemoryStore()",
114
+ imports: [
115
+ { from: "@absolutejs/voice", names: ["createVoiceMemoryStore"] }
116
+ ]
117
+ }
118
+ }),
119
+ defineImplementation()({
120
+ contract: "voice/session-store",
121
+ factory: "createVoiceSQLiteSessionStore",
122
+ from: "@absolutejs/voice",
123
+ settings: Type.Object({
124
+ path: Type.String({
125
+ description: "Database file on this machine where call sessions are kept. Created if missing.",
126
+ examples: ["./var/voice-sessions.sqlite"],
127
+ title: "Database file"
128
+ }),
129
+ tableName: Type.Optional(Type.String({
130
+ description: "Table the sessions are stored in.",
131
+ title: "Table name"
132
+ }))
133
+ }),
134
+ title: "SQLite file on this machine",
135
+ wiring: {
136
+ code: "createVoiceSQLiteSessionStore(${settings})",
137
+ imports: [
138
+ {
139
+ from: "@absolutejs/voice",
140
+ names: ["createVoiceSQLiteSessionStore"]
141
+ }
142
+ ]
143
+ }
144
+ }),
145
+ defineImplementation()({
146
+ contract: "voice/session-store",
147
+ factory: "createVoicePostgresSessionStore",
148
+ from: "@absolutejs/voice",
149
+ requires: {
150
+ env: [
151
+ {
152
+ description: "Postgres connection string (call sessions are stored here)",
153
+ example: "postgres://user:pass@host/db",
154
+ key: "DATABASE_URL",
155
+ secret: true
156
+ }
157
+ ],
158
+ services: [
159
+ {
160
+ description: "Stores call sessions durably",
161
+ id: "postgres"
162
+ }
163
+ ]
164
+ },
165
+ settings: Type.Object({
166
+ schemaName: Type.Optional(Type.String({
167
+ description: "Postgres schema the table lives in.",
168
+ title: "Schema name"
169
+ })),
170
+ tableName: Type.Optional(Type.String({
171
+ description: "Table the sessions are stored in.",
172
+ title: "Table name"
173
+ }))
174
+ }),
175
+ title: "Postgres",
176
+ wiring: {
177
+ code: 'createVoicePostgresSessionStore({ connectionString: ${env.DATABASE_URL} ?? "", ...${settings} })',
178
+ imports: [
179
+ {
180
+ from: "@absolutejs/voice",
181
+ names: ["createVoicePostgresSessionStore"]
182
+ }
183
+ ]
184
+ }
185
+ }),
186
+ defineImplementation()({
187
+ contract: "voice/session-store",
188
+ factory: "createVoiceFileSessionStore",
189
+ from: "@absolutejs/voice",
190
+ settings: Type.Object({
191
+ directory: Type.String({
192
+ description: "Folder on this machine where each call session is kept as a JSON file. Created if missing.",
193
+ examples: ["./var/voice-sessions"],
194
+ title: "Storage folder"
195
+ })
196
+ }),
197
+ title: "JSON files on this machine",
198
+ wiring: {
199
+ code: "createVoiceFileSessionStore(${settings})",
200
+ imports: [
201
+ { from: "@absolutejs/voice", names: ["createVoiceFileSessionStore"] }
202
+ ]
203
+ }
204
+ })
205
+ ],
206
+ requires: {
207
+ peers: [{ name: "elysia", range: ">= 1.4.18", reason: "plugin host" }]
208
+ },
209
+ settings: Type.Object({
210
+ backchannelBargeInGuard: Type.Optional(Type.Boolean({
211
+ description: 'Keep the assistant talking through listening cues like "mm-hm" or "right" instead of treating them as interruptions.',
212
+ title: "Ignore listening cues"
213
+ })),
214
+ greeting: Type.Optional(Type.String({
215
+ description: "Spoken by the assistant the moment a call connects, before the caller says anything.",
216
+ examples: ["Hi! How can I help you today?"],
217
+ title: "Opening greeting"
218
+ })),
219
+ normalizeNumbers: Type.Optional(Type.Boolean({
220
+ description: 'Rewrite spoken numbers to digits in transcripts ("ten million" becomes "10 million") so downstream systems read them consistently.',
221
+ title: "Write numbers as digits"
222
+ })),
223
+ path: Type.Optional(Type.String({
224
+ default: "/voice/realtime",
225
+ description: "The WebSocket route callers connect to.",
226
+ title: "Call route"
227
+ })),
228
+ preset: Type.Optional(Type.Union([
229
+ Type.Literal("default"),
230
+ Type.Literal("chat"),
231
+ Type.Literal("guided-intake"),
232
+ Type.Literal("dictation"),
233
+ Type.Literal("noisy-room"),
234
+ Type.Literal("pstn-balanced"),
235
+ Type.Literal("pstn-fast"),
236
+ Type.Literal("reliability")
237
+ ], {
238
+ description: "Tuned bundle of turn-taking and latency defaults for the kind of calls you take \u2014 casual chat, guided intake, dictation, noisy rooms, or phone lines.",
239
+ title: "Conversation preset"
240
+ })),
241
+ resumeGreeting: Type.Optional(Type.String({
242
+ description: "Spoken when a dropped call reconnects, so the caller knows they are back.",
243
+ examples: ["Sorry, we got cut off \u2014 where were we?"],
244
+ title: "Reconnect greeting"
245
+ }))
246
+ }),
247
+ slots: {
248
+ realtime: {
249
+ configPath: "realtime",
250
+ contract: "voice/realtime",
251
+ description: "One speech-to-speech model that listens and talks in a single stream \u2014 an alternative to picking separate speech-to-text and text-to-speech services.",
252
+ known: ["@absolutejs/voice-openai", "@absolutejs/voice-gemini"]
253
+ },
254
+ session: {
255
+ configPath: "session",
256
+ contract: "voice/session-store",
257
+ description: "Where each call's transcript and state is kept while it runs (and after, for review)",
258
+ known: [
259
+ "@absolutejs/voice#memory",
260
+ "@absolutejs/voice#sqlite",
261
+ "@absolutejs/voice#postgres",
262
+ "@absolutejs/voice#file"
263
+ ],
264
+ required: true
265
+ },
266
+ stt: {
267
+ configPath: "stt",
268
+ contract: "voice/stt",
269
+ description: "The service that turns the caller's speech into text. Not needed when a speech-to-speech (realtime) adapter is chosen instead.",
270
+ known: [
271
+ "@absolutejs/voice-deepgram",
272
+ "@absolutejs/voice-assemblyai",
273
+ "@absolutejs/voice-gladia",
274
+ "@absolutejs/voice-soniox",
275
+ "@absolutejs/voice-speechmatics",
276
+ "@absolutejs/voice-azure",
277
+ "@absolutejs/voice-google-speech",
278
+ "@absolutejs/voice-openai-whisper"
279
+ ]
280
+ },
281
+ tts: {
282
+ configPath: "tts",
283
+ contract: "voice/tts",
284
+ description: "The service that speaks the assistant's replies out loud. Not needed when a speech-to-speech (realtime) adapter is chosen instead.",
285
+ known: [
286
+ "@absolutejs/voice-elevenlabs",
287
+ "@absolutejs/voice-cartesia",
288
+ "@absolutejs/voice-azure",
289
+ "@absolutejs/voice-lmnt",
290
+ "@absolutejs/voice-playht",
291
+ "@absolutejs/voice-rime",
292
+ "@absolutejs/voice-smallest",
293
+ "@absolutejs/voice-neets"
294
+ ]
295
+ }
296
+ },
297
+ tools: {
298
+ delete_session: tool.runtime({
299
+ annotations: { destructiveHint: true, idempotentHint: true },
300
+ authorization: {
301
+ approval: "policy",
302
+ audience: "owner",
303
+ effects: ["delete"],
304
+ idempotency: { mode: "resource" },
305
+ requiredScopes: ["voice:sessions:delete"],
306
+ resource: { idField: "id", type: "voice-session" },
307
+ reversible: false
308
+ },
309
+ description: "Delete one call session (its transcript and state) by id. Deleting an unknown id succeeds.",
310
+ input: Type.Object({ id: Type.String({ minLength: 1 }) }),
311
+ handler: async ({ id }, store) => {
312
+ await store.remove(id);
313
+ return `deleted session ${id}`;
314
+ }
315
+ }),
316
+ get_session: tool.runtime({
317
+ annotations: { readOnlyHint: true },
318
+ authorization: {
319
+ approval: "never",
320
+ audience: "owner",
321
+ effects: ["read"],
322
+ requiredScopes: ["voice:sessions:read"],
323
+ resource: { idField: "id", type: "voice-session" }
324
+ },
325
+ description: "Fetch one call session by id: status, timing, and the committed conversation turns (caller text and assistant reply), most recent last.",
326
+ input: Type.Object({
327
+ id: Type.String({ minLength: 1 }),
328
+ maxTurns: Type.Optional(Type.Integer({ maximum: MAX_LIST_LIMIT, minimum: 1 }))
329
+ }),
330
+ handler: async ({ id, maxTurns }, store) => {
331
+ const session = await store.get(id);
332
+ if (session === undefined)
333
+ return `no session with id ${id}`;
334
+ const limit = maxTurns ?? MAX_TRANSCRIPT_TURNS;
335
+ return JSON.stringify({
336
+ createdAt: session.createdAt,
337
+ disposition: session.call?.disposition,
338
+ id: session.id,
339
+ lastActivityAt: session.lastActivityAt,
340
+ status: session.status,
341
+ turnCount: session.turns.length,
342
+ turns: session.turns.slice(-limit).map((turn) => ({
343
+ assistantText: turn.assistantText,
344
+ committedAt: turn.committedAt,
345
+ userText: turn.text
346
+ }))
347
+ });
348
+ }
349
+ }),
350
+ list_sessions: tool.runtime({
351
+ annotations: { readOnlyHint: true },
352
+ authorization: {
353
+ approval: "never",
354
+ audience: "owner",
355
+ effects: ["read"],
356
+ requiredScopes: ["voice:sessions:read"]
357
+ },
358
+ description: "List call sessions with status, creation time, last activity, and turn count \u2014 most recently active first.",
359
+ input: Type.Object({
360
+ limit: Type.Optional(Type.Integer({ maximum: MAX_LIST_LIMIT, minimum: 1 }))
361
+ }),
362
+ handler: async ({ limit }, store) => {
363
+ const sessions = await store.list();
364
+ return JSON.stringify(sessions.slice(0, limit ?? MAX_LIST_LIMIT));
365
+ }
366
+ })
367
+ },
368
+ wiring: [
369
+ {
370
+ description: "Pick a speech-to-text and a text-to-speech service, choose where call sessions are stored, and write the onTurn handler \u2014 the assistant's brain.",
371
+ id: "default",
372
+ server: {
373
+ code: [
374
+ "// Every call's transcript and state lives in the session store.",
375
+ "const voiceSessions = ${slot.session};",
376
+ "",
377
+ "// Mount with .use(voiceAssistant); callers connect over WebSocket at `path`.",
378
+ "const voiceAssistant = voice({",
379
+ "\tonTurn: async (session, turn) => {",
380
+ "\t\t// TODO: generate the assistant's reply (call your LLM here).",
381
+ '\t\treturn { assistantText: "You said: " + turn.text };',
382
+ "\t},",
383
+ "\tsession: voiceSessions,",
384
+ "\tstt: ${slot.stt},",
385
+ "\ttts: ${slot.tts},",
386
+ "\t...${settings}",
387
+ "});"
388
+ ].join(`
389
+ `),
390
+ imports: [{ from: "@absolutejs/voice", names: ["voice"] }],
391
+ placement: "module-scope"
392
+ },
393
+ title: "Voice assistant with separate STT + TTS"
394
+ },
395
+ {
396
+ description: "Use one speech-to-speech model (OpenAI Realtime, Gemini Live) that listens and talks in a single stream instead of separate STT and TTS services.",
397
+ id: "realtime",
398
+ server: {
399
+ code: [
400
+ "// Every call's transcript and state lives in the session store.",
401
+ "const voiceSessions = ${slot.session};",
402
+ "",
403
+ "// Mount with .use(voiceAssistant); callers connect over WebSocket at `path`.",
404
+ "const voiceAssistant = voice({",
405
+ "\tonTurn: async (session, turn) => {",
406
+ "\t\t// TODO: generate the assistant's reply (call your LLM here).",
407
+ '\t\treturn { assistantText: "You said: " + turn.text };',
408
+ "\t},",
409
+ "\trealtime: ${slot.realtime},",
410
+ "\tsession: voiceSessions,",
411
+ "\t...${settings}",
412
+ "});"
413
+ ].join(`
414
+ `),
415
+ imports: [{ from: "@absolutejs/voice", names: ["voice"] }],
416
+ placement: "module-scope"
417
+ },
418
+ title: "Voice assistant with a speech-to-speech model"
419
+ }
420
+ ]
421
+ });
422
+ export {
423
+ manifest
424
+ };