@absolutejs/voice 0.0.22-beta.56 → 0.0.22-beta.560
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.
- package/README.md +4550 -1156
- package/dist/angular/index.d.ts +36 -5
- package/dist/angular/index.js +4189 -390
- package/dist/angular/voice-agent-squad-status.service.d.ts +12 -0
- package/dist/angular/voice-call-debugger.service.d.ts +12 -0
- package/dist/angular/voice-call-player.service.d.ts +19 -0
- package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
- package/dist/angular/voice-controller.service.d.ts +3 -1
- package/dist/angular/voice-cost-dashboard.service.d.ts +15 -0
- package/dist/angular/voice-delivery-runtime.service.d.ts +16 -0
- package/dist/angular/voice-live-agent-console.service.d.ts +16 -0
- package/dist/angular/voice-live-call-viewer.service.d.ts +16 -0
- package/dist/angular/voice-live-ops.service.d.ts +11 -0
- package/dist/angular/voice-ops-action-center.service.d.ts +13 -0
- package/dist/angular/voice-ops-status.service.d.ts +12 -0
- package/dist/angular/voice-platform-coverage.service.d.ts +12 -0
- package/dist/angular/voice-profile-comparison.service.d.ts +12 -0
- package/dist/angular/voice-proof-trends.service.d.ts +12 -0
- package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
- package/dist/angular/voice-provider-contracts.service.d.ts +12 -0
- package/dist/angular/voice-provider-status.service.d.ts +2 -2
- package/dist/angular/voice-readiness-failures.service.d.ts +13 -0
- package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +12 -0
- package/dist/angular/voice-replay-timeline.service.d.ts +13 -0
- package/dist/angular/voice-routing-status.service.d.ts +11 -0
- package/dist/angular/voice-session-observability.service.d.ts +12 -0
- package/dist/angular/voice-session-snapshot.service.d.ts +13 -0
- package/dist/angular/voice-stream.service.d.ts +4 -1
- package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
- package/dist/angular/voice-turn-latency.service.d.ts +13 -0
- package/dist/angular/voice-turn-quality.service.d.ts +12 -0
- package/dist/angular/voice-widget.service.d.ts +18 -0
- package/dist/angular/voice-workflow-status.service.d.ts +2 -2
- package/dist/client/actions.d.ts +95 -1
- package/dist/client/agentSquadStatus.d.ts +37 -0
- package/dist/client/agentSquadStatusWidget.d.ts +24 -0
- package/dist/client/audioPlayer.d.ts +2 -2
- package/dist/client/bargeInMonitor.d.ts +7 -0
- package/dist/client/browserMedia.d.ts +8 -0
- package/dist/client/browserNoiseSuppression.d.ts +42 -0
- package/dist/client/browserVoiceSupport.d.ts +22 -0
- package/dist/client/callDebugger.d.ts +21 -0
- package/dist/client/callDebuggerWidget.d.ts +30 -0
- package/dist/client/callPlayer.d.ts +41 -0
- package/dist/client/campaignDialerProof.d.ts +25 -0
- package/dist/client/connection.d.ts +4 -3
- package/dist/client/controller.d.ts +1 -1
- package/dist/client/conversationAnalytics.d.ts +30 -0
- package/dist/client/costDashboard.d.ts +27 -0
- package/dist/client/createVoiceStream.d.ts +1 -1
- package/dist/client/deliveryRuntime.d.ts +36 -0
- package/dist/client/deliveryRuntimeWidget.d.ts +37 -0
- package/dist/client/duplex.d.ts +2 -2
- package/dist/client/htmx.d.ts +1 -1
- package/dist/client/htmxAttributes.d.ts +24 -0
- package/dist/client/htmxBootstrap.js +1029 -73
- package/dist/client/htmxDashboardRenderers.d.ts +71 -0
- package/dist/client/index.d.ts +106 -15
- package/dist/client/index.js +10520 -279
- package/dist/client/liveAgentConsole.d.ts +28 -0
- package/dist/client/liveCallViewer.d.ts +42 -0
- package/dist/client/liveOps.d.ts +22 -0
- package/dist/client/liveOpsWidget.d.ts +23 -0
- package/dist/client/liveTurnLatency.d.ts +41 -0
- package/dist/client/microphone.d.ts +4 -4
- package/dist/client/opsActionCenter.d.ts +56 -0
- package/dist/client/opsActionCenterWidget.d.ts +29 -0
- package/dist/client/opsActionHistory.d.ts +21 -0
- package/dist/client/opsActionHistoryWidget.d.ts +11 -0
- package/dist/client/opsStatus.d.ts +21 -0
- package/dist/client/opsStatusWidget.d.ts +10 -10
- package/dist/client/platformCoverage.d.ts +21 -0
- package/dist/client/platformCoverageWidget.d.ts +38 -0
- package/dist/client/profileComparison.d.ts +21 -0
- package/dist/client/profileComparisonWidget.d.ts +41 -0
- package/dist/client/profileSwitchRecommendation.d.ts +21 -0
- package/dist/client/profileSwitchRecommendationWidget.d.ts +12 -0
- package/dist/client/proofTrends.d.ts +21 -0
- package/dist/client/proofTrendsWidget.d.ts +38 -0
- package/dist/client/providerCapabilities.d.ts +21 -0
- package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
- package/dist/client/providerContracts.d.ts +21 -0
- package/dist/client/providerContractsWidget.d.ts +37 -0
- package/dist/client/providerSimulationControls.d.ts +33 -0
- package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
- package/dist/client/providerStatus.d.ts +5 -3
- package/dist/client/providerStatusWidget.d.ts +32 -0
- package/dist/client/reactiveSource.d.ts +8 -0
- package/dist/client/readinessFailures.d.ts +21 -0
- package/dist/client/readinessFailuresWidget.d.ts +42 -0
- package/dist/client/reconnectProfileEvidence.d.ts +21 -0
- package/dist/client/reconnectProfileEvidenceWidget.d.ts +39 -0
- package/dist/client/replayTimeline.d.ts +26 -0
- package/dist/client/routingStatus.d.ts +21 -0
- package/dist/client/routingStatusWidget.d.ts +32 -0
- package/dist/client/sessionObservability.d.ts +21 -0
- package/dist/client/sessionObservabilityWidget.d.ts +31 -0
- package/dist/client/sessionSnapshot.d.ts +23 -0
- package/dist/client/sessionSnapshotWidget.d.ts +33 -0
- package/dist/client/store.d.ts +1 -1
- package/dist/client/traceTimeline.d.ts +21 -0
- package/dist/client/traceTimelineWidget.d.ts +36 -0
- package/dist/client/turnLatency.d.ts +24 -0
- package/dist/client/turnLatencyWidget.d.ts +33 -0
- package/dist/client/turnQuality.d.ts +21 -0
- package/dist/client/turnQualityWidget.d.ts +32 -0
- package/dist/client/voiceWidgetView.d.ts +48 -0
- package/dist/client/workflowStatus.d.ts +5 -3
- package/dist/{agent.d.ts → core/agent.d.ts} +83 -6
- package/dist/core/agentPerformanceReport.d.ts +40 -0
- package/dist/core/agentSquadContract.d.ts +98 -0
- package/dist/core/agentState.d.ts +12 -0
- package/dist/core/agentTools.d.ts +132 -0
- package/dist/core/aiScorecard.d.ts +32 -0
- package/dist/core/aiVoiceModel.d.ts +15 -0
- package/dist/core/amdDetector.d.ts +25 -0
- package/dist/{assistant.d.ts → core/assistant.d.ts} +14 -14
- package/dist/core/assistantExperiment.d.ts +42 -0
- package/dist/{assistantHealth.d.ts → core/assistantHealth.d.ts} +9 -9
- package/dist/{assistantMemory.d.ts → core/assistantMemory.d.ts} +10 -10
- package/dist/core/assistantMode.d.ts +22 -0
- package/dist/{audioConditioning.d.ts → core/audioConditioning.d.ts} +2 -2
- package/dist/core/audit.d.ts +131 -0
- package/dist/core/auditDeliveryRoutes.d.ts +85 -0
- package/dist/core/auditExport.d.ts +34 -0
- package/dist/core/auditRoutes.d.ts +66 -0
- package/dist/core/auditSinks.d.ts +151 -0
- package/dist/core/backchannel.d.ts +18 -0
- package/dist/core/bargeInRoutes.d.ts +56 -0
- package/dist/core/bookingFlow.d.ts +43 -0
- package/dist/core/browserCallProfiles.d.ts +120 -0
- package/dist/core/browserMediaRoutes.d.ts +62 -0
- package/dist/core/cachedTTS.d.ts +30 -0
- package/dist/core/calendarAdapter.d.ts +47 -0
- package/dist/core/calendarSlots.d.ts +35 -0
- package/dist/core/callDebugger.d.ts +66 -0
- package/dist/core/callDisposition.d.ts +38 -0
- package/dist/core/callQuota.d.ts +54 -0
- package/dist/core/callScorecard.d.ts +53 -0
- package/dist/core/callerCRMLinker.d.ts +29 -0
- package/dist/core/callerMemory.d.ts +37 -0
- package/dist/core/callingWindow.d.ts +26 -0
- package/dist/core/campaign.d.ts +795 -0
- package/dist/core/campaignControls.d.ts +37 -0
- package/dist/core/campaignDialers.d.ts +111 -0
- package/dist/core/campaignTemplate.d.ts +16 -0
- package/dist/core/competitiveCoverage.d.ts +141 -0
- package/dist/core/conversationSimulator.d.ts +73 -0
- package/dist/{correction.d.ts → core/correction.d.ts} +5 -4
- package/dist/core/costAccounting.d.ts +76 -0
- package/dist/core/costPredictor.d.ts +74 -0
- package/dist/core/crmCallLogger.d.ts +37 -0
- package/dist/core/crmContract.d.ts +70 -0
- package/dist/core/dataControl.d.ts +180 -0
- package/dist/core/defineVoiceAssistant.d.ts +68 -0
- package/dist/core/deliveryRuntime.d.ts +159 -0
- package/dist/core/deliverySinkRoutes.d.ts +117 -0
- package/dist/core/demoReadyRoutes.d.ts +98 -0
- package/dist/{diagnosticsRoutes.d.ts → core/diagnosticsRoutes.d.ts} +2 -2
- package/dist/core/dncRegistry.d.ts +38 -0
- package/dist/core/dtmfCollector.d.ts +37 -0
- package/dist/{evalRoutes.d.ts → core/evalRoutes.d.ts} +26 -20
- package/dist/{fileStore.d.ts → core/fileStore.d.ts} +34 -20
- package/dist/core/guardrails.d.ts +128 -0
- package/dist/{handoff.d.ts → core/handoff.d.ts} +10 -10
- package/dist/{handoffHealth.d.ts → core/handoffHealth.d.ts} +9 -9
- package/dist/core/holdAudio.d.ts +23 -0
- package/dist/{htmx.d.ts → core/htmx.d.ts} +2 -2
- package/dist/core/htmxDashboardRoutes.d.ts +250 -0
- package/dist/core/iceServers.d.ts +34 -0
- package/dist/core/incidentBundle.d.ts +119 -0
- package/dist/core/incidentTimeline.d.ts +260 -0
- package/dist/core/ivrPlan.d.ts +40 -0
- package/dist/core/latencySlo.d.ts +56 -0
- package/dist/core/liveCoach.d.ts +43 -0
- package/dist/core/liveLatency.d.ts +78 -0
- package/dist/core/liveOps.d.ts +190 -0
- package/dist/core/llmJudge.d.ts +45 -0
- package/dist/{logger.d.ts → core/logger.d.ts} +1 -2
- package/dist/core/mcpToolset.d.ts +58 -0
- package/dist/core/mediaPipelineRoutes.d.ts +171 -0
- package/dist/core/mediaPipelineSurfaces.d.ts +48 -0
- package/dist/{memoryStore.d.ts → core/memoryStore.d.ts} +1 -1
- package/dist/core/midCallSummary.d.ts +27 -0
- package/dist/{modelAdapters.d.ts → core/modelAdapters.d.ts} +52 -7
- package/dist/core/monitor.d.ts +148 -0
- package/dist/core/multilingualProof.d.ts +77 -0
- package/dist/core/noShowPredictor.d.ts +46 -0
- package/dist/core/oauth2TokenSource.d.ts +21 -0
- package/dist/core/observabilityExport.d.ts +501 -0
- package/dist/core/openaiTTS.d.ts +18 -0
- package/dist/core/operationalStatus.d.ts +87 -0
- package/dist/core/operationsRecord.d.ts +371 -0
- package/dist/{ops.d.ts → core/ops.d.ts} +70 -70
- package/dist/core/opsActionAuditRoutes.d.ts +99 -0
- package/dist/{opsConsoleRoutes.d.ts → core/opsConsoleRoutes.d.ts} +11 -8
- package/dist/{opsPresets.d.ts → core/opsPresets.d.ts} +2 -2
- package/dist/core/opsRecovery.d.ts +137 -0
- package/dist/{opsRuntime.d.ts → core/opsRuntime.d.ts} +6 -6
- package/dist/{opsSinks.d.ts → core/opsSinks.d.ts} +19 -19
- package/dist/core/opsStatus.d.ts +76 -0
- package/dist/core/opsStatusRoutes.d.ts +33 -0
- package/dist/{opsWebhook.d.ts → core/opsWebhook.d.ts} +15 -15
- package/dist/core/otelExporter.d.ts +83 -0
- package/dist/core/outcomeContract.d.ts +146 -0
- package/dist/{outcomeRecipes.d.ts → core/outcomeRecipes.d.ts} +4 -4
- package/dist/core/pathway.d.ts +94 -0
- package/dist/core/pathwayCompiler.d.ts +31 -0
- package/dist/core/pathwayGenerator.d.ts +27 -0
- package/dist/core/pathwayRuntime.d.ts +57 -0
- package/dist/core/pathwaySlotCollector.d.ts +29 -0
- package/dist/core/pathwayVisualizer.d.ts +8 -0
- package/dist/core/phoneAgent.d.ts +139 -0
- package/dist/core/phoneAgentProductionSmoke.d.ts +115 -0
- package/dist/core/phoneProvisioning.d.ts +29 -0
- package/dist/core/platformCoverage.d.ts +91 -0
- package/dist/{plugin.d.ts → core/plugin.d.ts} +2 -2
- package/dist/core/postCallAnalysis.d.ts +98 -0
- package/dist/core/postCallSurvey.d.ts +41 -0
- package/dist/{postgresStore.d.ts → core/postgresStore.d.ts} +20 -9
- package/dist/{presets.d.ts → core/presets.d.ts} +3 -3
- package/dist/core/productionReadiness.d.ts +757 -0
- package/dist/core/profileSwitchRecommendation.d.ts +350 -0
- package/dist/core/promptInjectionGuard.d.ts +30 -0
- package/dist/core/proofAssertions.d.ts +32 -0
- package/dist/core/proofPack.d.ts +211 -0
- package/dist/core/proofRunner.d.ts +79 -0
- package/dist/core/proofTrends.d.ts +966 -0
- package/dist/{providerAdapters.d.ts → core/providerAdapters.d.ts} +16 -5
- package/dist/core/providerCapabilities.d.ts +92 -0
- package/dist/core/providerDecisionTraces.d.ts +130 -0
- package/dist/{providerHealth.d.ts → core/providerHealth.d.ts} +15 -5
- package/dist/core/providerOrchestration.d.ts +109 -0
- package/dist/core/providerRouterTraces.d.ts +35 -0
- package/dist/core/providerRoutingContract.d.ts +71 -0
- package/dist/core/providerSlo.d.ts +142 -0
- package/dist/core/providerStackRecommendations.d.ts +188 -0
- package/dist/core/qualityDriftDetector.d.ts +44 -0
- package/dist/{qualityRoutes.d.ts → core/qualityRoutes.d.ts} +7 -7
- package/dist/{queue.d.ts → core/queue.d.ts} +48 -39
- package/dist/core/ragTool.d.ts +52 -0
- package/dist/core/readinessProfiles.d.ts +45 -0
- package/dist/core/realtimeChannel.d.ts +136 -0
- package/dist/core/realtimeProviderContracts.d.ts +133 -0
- package/dist/core/reconnectContract.d.ts +177 -0
- package/dist/core/recordingRedaction.d.ts +47 -0
- package/dist/core/recordingStore.d.ts +60 -0
- package/dist/core/redaction.d.ts +13 -0
- package/dist/core/reminderScheduler.d.ts +43 -0
- package/dist/{resilienceRoutes.d.ts → core/resilienceRoutes.d.ts} +45 -5
- package/dist/core/retention.d.ts +37 -0
- package/dist/core/retryPolicy.d.ts +38 -0
- package/dist/core/routeAuth.d.ts +58 -0
- package/dist/{routing.d.ts → core/routing.d.ts} +2 -2
- package/dist/{runtimeOps.d.ts → core/runtimeOps.d.ts} +3 -3
- package/dist/{s3Store.d.ts → core/s3Store.d.ts} +12 -3
- package/dist/core/scorecardCalibration.d.ts +31 -0
- package/dist/core/scribe.d.ts +50 -0
- package/dist/core/semanticTurn.d.ts +27 -0
- package/dist/{session.d.ts → core/session.d.ts} +1 -1
- package/dist/core/sessionObservability.d.ts +145 -0
- package/dist/{sessionReplay.d.ts → core/sessionReplay.d.ts} +31 -19
- package/dist/core/sessionSnapshot.d.ts +109 -0
- package/dist/core/simulationSuite.d.ts +144 -0
- package/dist/core/sloCalibration.d.ts +185 -0
- package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +20 -9
- package/dist/{store.d.ts → core/store.d.ts} +1 -1
- package/dist/core/supervisorPermissions.d.ts +33 -0
- package/dist/core/supervisorPresence.d.ts +49 -0
- package/dist/core/telephonyMediaRoutes.d.ts +72 -0
- package/dist/core/telephonyOutcome.d.ts +269 -0
- package/dist/core/toolContract.d.ts +161 -0
- package/dist/core/toolRuntime.d.ts +50 -0
- package/dist/{trace.d.ts → core/trace.d.ts} +61 -22
- package/dist/core/traceDeliveryRoutes.d.ts +86 -0
- package/dist/core/traceTimeline.d.ts +97 -0
- package/dist/core/transcriptAnnotator.d.ts +41 -0
- package/dist/{turnDetection.d.ts → core/turnDetection.d.ts} +1 -1
- package/dist/core/turnLatency.d.ts +95 -0
- package/dist/core/turnProfiles.d.ts +3 -0
- package/dist/core/turnQuality.d.ts +94 -0
- package/dist/{types.d.ts → core/types.d.ts} +477 -81
- package/dist/core/vapiAdapter.d.ts +160 -0
- package/dist/core/variableAnalytics.d.ts +47 -0
- package/dist/core/voiceConfiguration.d.ts +8 -0
- package/dist/core/voiceMonitoring.d.ts +444 -0
- package/dist/core/webhookFanout.d.ts +48 -0
- package/dist/core/webhookVerification.d.ts +27 -0
- package/dist/core/whisperChannel.d.ts +50 -0
- package/dist/{workflowContract.d.ts → core/workflowContract.d.ts} +21 -21
- package/dist/core/zeroDataRetention.d.ts +31 -0
- package/dist/drizzle/assistantMemory.d.ts +112 -0
- package/dist/drizzle/eval.d.ts +61 -0
- package/dist/drizzle/handoff.d.ts +62 -0
- package/dist/drizzle/incidentBundle.d.ts +61 -0
- package/dist/drizzle/index.d.ts +1105 -0
- package/dist/drizzle/index.js +3059 -0
- package/dist/drizzle/observabilityExport.d.ts +61 -0
- package/dist/drizzle/proofTrends.d.ts +126 -0
- package/dist/drizzle/runtimeStorage.d.ts +1315 -0
- package/dist/drizzle/shared.d.ts +76 -0
- package/dist/embed/index.d.ts +38 -0
- package/dist/embed/index.js +1710 -0
- package/dist/embed/voice-widget.js +10 -0
- package/dist/index.d.ts +373 -74
- package/dist/index.js +46401 -7516
- package/dist/internal/evidence.d.ts +10 -0
- package/dist/internal/html.d.ts +6 -0
- package/dist/internal/status.d.ts +7 -0
- package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
- package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
- package/dist/react/VoiceCallPlayer.d.ts +11 -0
- package/dist/react/VoiceCostDashboard.d.ts +10 -0
- package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
- package/dist/react/VoiceLiveAgentConsole.d.ts +11 -0
- package/dist/react/VoiceLiveCallViewer.d.ts +9 -0
- package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
- package/dist/react/VoiceOpsStatus.d.ts +1 -1
- package/dist/react/VoicePlatformCoverage.d.ts +6 -0
- package/dist/react/VoiceProfileComparison.d.ts +6 -0
- package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
- package/dist/react/VoiceProofTrends.d.ts +6 -0
- package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
- package/dist/react/VoiceProviderContracts.d.ts +6 -0
- package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
- package/dist/react/VoiceProviderStatus.d.ts +6 -0
- package/dist/react/VoiceReadinessFailures.d.ts +6 -0
- package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
- package/dist/react/VoiceReplayTimeline.d.ts +6 -0
- package/dist/react/VoiceRoutingStatus.d.ts +6 -0
- package/dist/react/VoiceSessionObservability.d.ts +6 -0
- package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
- package/dist/react/VoiceTraceTimeline.d.ts +6 -0
- package/dist/react/VoiceTurnLatency.d.ts +6 -0
- package/dist/react/VoiceTurnQuality.d.ts +6 -0
- package/dist/react/VoiceWidget.d.ts +13 -0
- package/dist/react/index.d.ts +80 -6
- package/dist/react/index.js +12925 -319
- package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
- package/dist/react/useVoiceCallDebugger.d.ts +8 -0
- package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
- package/dist/react/useVoiceController.d.ts +4 -1
- package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
- package/dist/react/useVoiceLiveOps.d.ts +9 -0
- package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
- package/dist/react/useVoiceOpsStatus.d.ts +8 -0
- package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
- package/dist/react/useVoiceProfileComparison.d.ts +8 -0
- package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
- package/dist/react/useVoiceProofTrends.d.ts +8 -0
- package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
- package/dist/react/useVoiceProviderContracts.d.ts +8 -0
- package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
- package/dist/react/useVoiceProviderStatus.d.ts +1 -1
- package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
- package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
- package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
- package/dist/react/useVoiceSessionObservability.d.ts +8 -0
- package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
- package/dist/react/useVoiceStream.d.ts +4 -1
- package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
- package/dist/react/useVoiceTurnLatency.d.ts +9 -0
- package/dist/react/useVoiceTurnQuality.d.ts +8 -0
- package/dist/react/useVoiceWorkflowStatus.d.ts +1 -1
- package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
- package/dist/svelte/createVoiceCallDebugger.d.ts +10 -0
- package/dist/svelte/createVoiceCallPlayer.d.ts +33 -0
- package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
- package/dist/svelte/createVoiceCostDashboard.d.ts +13 -0
- package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
- package/dist/svelte/createVoiceLiveAgentConsole.d.ts +23 -0
- package/dist/svelte/createVoiceLiveCallViewer.d.ts +26 -0
- package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
- package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
- package/dist/svelte/createVoiceOpsStatus.d.ts +4 -4
- package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
- package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
- package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
- package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
- package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
- package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
- package/dist/svelte/createVoiceProviderStatus.d.ts +5 -3
- package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
- package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
- package/dist/svelte/createVoiceReplayTimeline.d.ts +13 -0
- package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
- package/dist/svelte/createVoiceSessionObservability.d.ts +10 -0
- package/dist/svelte/createVoiceSessionSnapshot.d.ts +11 -0
- package/dist/svelte/createVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
- package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
- package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
- package/dist/svelte/createVoiceWidget.d.ts +19 -0
- package/dist/svelte/createVoiceWorkflowStatus.d.ts +2 -2
- package/dist/svelte/index.d.ts +37 -6
- package/dist/svelte/index.js +7067 -768
- package/dist/telephony/contract.d.ts +61 -0
- package/dist/telephony/matrix.d.ts +97 -0
- package/dist/telephony/plivo.d.ts +303 -0
- package/dist/telephony/response.d.ts +1 -1
- package/dist/telephony/security.d.ts +182 -0
- package/dist/telephony/telnyx.d.ts +291 -0
- package/dist/telephony/twilio.d.ts +189 -15
- package/dist/testing/accuracy.d.ts +1 -1
- package/dist/testing/benchmark.d.ts +15 -15
- package/dist/testing/corrected.d.ts +9 -9
- package/dist/testing/duplex.d.ts +5 -5
- package/dist/testing/fixtures.d.ts +4 -4
- package/dist/testing/index.d.ts +13 -13
- package/dist/testing/index.js +6326 -899
- package/dist/testing/ioProviderSimulator.d.ts +5 -5
- package/dist/testing/providerSimulator.d.ts +5 -5
- package/dist/testing/review.d.ts +8 -8
- package/dist/testing/sessionBenchmark.d.ts +13 -13
- package/dist/testing/stt.d.ts +3 -3
- package/dist/testing/telephony.d.ts +27 -2
- package/dist/testing/tts.d.ts +2 -2
- package/dist/vue/VoiceCallDebuggerLaunch.d.ts +72 -0
- package/dist/vue/VoiceCallPlayer.d.ts +40 -0
- package/dist/vue/VoiceCostDashboard.d.ts +57 -0
- package/dist/vue/VoiceDeliveryRuntime.d.ts +34 -0
- package/dist/vue/VoiceLiveAgentConsole.d.ts +50 -0
- package/dist/vue/VoiceLiveCallViewer.d.ts +35 -0
- package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
- package/dist/vue/VoiceOpsStatus.d.ts +4 -0
- package/dist/vue/VoicePlatformCoverage.d.ts +27 -0
- package/dist/vue/VoiceProofTrends.d.ts +25 -0
- package/dist/vue/VoiceProviderCapabilities.d.ts +55 -0
- package/dist/vue/VoiceProviderContracts.d.ts +25 -0
- package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
- package/dist/vue/VoiceProviderStatus.d.ts +55 -0
- package/dist/vue/VoiceReadinessFailures.d.ts +25 -0
- package/dist/vue/VoiceReconnectProfileEvidence.d.ts +25 -0
- package/dist/vue/VoiceReplayTimeline.d.ts +17 -0
- package/dist/vue/VoiceRoutingStatus.d.ts +55 -0
- package/dist/vue/VoiceSessionObservability.d.ts +27 -0
- package/dist/vue/VoiceSessionSnapshot.d.ts +72 -0
- package/dist/vue/VoiceTurnLatency.d.ts +73 -0
- package/dist/vue/VoiceTurnQuality.d.ts +55 -0
- package/dist/vue/VoiceWidget.d.ts +77 -0
- package/dist/vue/index.d.ts +49 -6
- package/dist/vue/index.js +12224 -413
- package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
- package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
- package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
- package/dist/vue/useVoiceController.d.ts +9 -7
- package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
- package/dist/vue/useVoiceLiveOps.d.ts +9 -0
- package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
- package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
- package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
- package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
- package/dist/vue/useVoiceProofTrends.d.ts +9 -0
- package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
- package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
- package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
- package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
- package/dist/vue/useVoiceReadinessFailures.d.ts +959 -0
- package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
- package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
- package/dist/vue/useVoiceSessionObservability.d.ts +9 -0
- package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
- package/dist/vue/useVoiceStream.d.ts +9 -6
- package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
- package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
- package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
- package/dist/vue/useVoiceWorkflowStatus.d.ts +3 -3
- package/package.json +51 -152
- package/dist/angular/voice-app-kit-status.service.d.ts +0 -12
- package/dist/angular/voice-ops-status.component.d.ts +0 -15
- package/dist/appKit.d.ts +0 -92
- package/dist/client/appKitStatus.d.ts +0 -19
- package/dist/react/useVoiceAppKitStatus.d.ts +0 -8
- package/dist/svelte/createVoiceAppKitStatus.d.ts +0 -8
- package/dist/turnProfiles.d.ts +0 -6
- package/dist/vue/useVoiceAppKitStatus.d.ts +0 -9
- package/fixtures/README.md +0 -57
- package/fixtures/manifest.json +0 -199
- package/fixtures/pcm/dialogue-three-clean.pcm +0 -0
- package/fixtures/pcm/dialogue-three-mixed.pcm +0 -0
- package/fixtures/pcm/dialogue-two-clean.pcm +0 -0
- package/fixtures/pcm/dialogue-two-noisy.pcm +0 -0
- package/fixtures/pcm/multiturn-three-mixed.pcm +0 -0
- package/fixtures/pcm/multiturn-two-clean.pcm +0 -0
- package/fixtures/pcm/quietly-alone-clean.pcm +0 -0
- package/fixtures/pcm/rainstorms-noisy.pcm +0 -0
- package/fixtures/pcm/stella-bulgaria-bulgarian20.pcm +0 -0
- package/fixtures/pcm/stella-ghana-english507.pcm +0 -0
- package/fixtures/pcm/stella-india-english37.pcm +0 -0
- package/fixtures/pcm/stella-jamaica-jamaican-creole-english1.pcm +0 -0
- package/fixtures/pcm/stella-liberia-liberian-pidgin-english2.pcm +0 -0
- package/fixtures/pcm/stella-pakistan-english519.pcm +0 -0
- package/fixtures/pcm/stella-sierra-leone-krio5.pcm +0 -0
- package/fixtures/pcm/stella-singapore-english655.pcm +0 -0
- package/fixtures/pcm/traveled-back-route-clean.pcm +0 -0
|
@@ -1,24 +1,48 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from
|
|
3
|
-
import type { VoiceIntegrationSink } from
|
|
4
|
-
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from
|
|
5
|
-
import type { VoiceTraceEventStore } from
|
|
1
|
+
import type { MediaWebRTCStatsCollector, MediaWebRTCStatsReport, MediaWebRTCStatsReportInput, MediaWebRTCStreamContinuityInput, MediaWebRTCStreamContinuityReport } from "@absolutejs/media";
|
|
2
|
+
import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from "./ops";
|
|
3
|
+
import type { VoiceIntegrationSink } from "./opsSinks";
|
|
4
|
+
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from "../testing/review";
|
|
5
|
+
import type { VoiceTraceEventStore } from "./trace";
|
|
6
|
+
import type { VoiceLiveOpsControlState } from "./liveOps";
|
|
7
|
+
import type { VoiceAuditActor, VoiceAuditEventStore } from "./audit";
|
|
8
|
+
import type { VoiceProfileSwitchGuardDecision, VoiceProfileSwitchGuardMode, VoiceProfileSwitchObservedSignals } from "./profileSwitchRecommendation";
|
|
9
|
+
import type { VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileHistoryReport } from "./proofTrends";
|
|
6
10
|
export type AudioFormat = {
|
|
7
|
-
container:
|
|
8
|
-
encoding:
|
|
11
|
+
container: "raw";
|
|
12
|
+
encoding: "alaw" | "mulaw" | "pcm_s16le";
|
|
9
13
|
sampleRateHz: number;
|
|
10
14
|
channels: 1 | 2;
|
|
11
15
|
};
|
|
12
16
|
export type AudioChunk = ArrayBuffer | ArrayBufferView;
|
|
17
|
+
/**
|
|
18
|
+
* Structural contract for an inbound noise suppressor applied before STT.
|
|
19
|
+
* Matches `@absolutejs/media`'s `NoiseSuppressor`, so any media suppressor
|
|
20
|
+
* (`createFFmpegNoiseSuppressor`, `createEnergyGateNoiseSuppressor`, a Krisp
|
|
21
|
+
* adapter, etc.) satisfies it without a hard import.
|
|
22
|
+
*/
|
|
23
|
+
export type VoiceNoiseSuppressor = {
|
|
24
|
+
readonly kind: string;
|
|
25
|
+
process: (input: {
|
|
26
|
+
format: AudioFormat;
|
|
27
|
+
pcm: ArrayBuffer | ArrayBufferView;
|
|
28
|
+
}) => Promise<{
|
|
29
|
+
bytes: Uint8Array;
|
|
30
|
+
format: AudioFormat;
|
|
31
|
+
}> | {
|
|
32
|
+
bytes: Uint8Array;
|
|
33
|
+
format: AudioFormat;
|
|
34
|
+
};
|
|
35
|
+
close?: () => Promise<void> | void;
|
|
36
|
+
};
|
|
13
37
|
export type VoiceLanguageStrategy = {
|
|
14
|
-
mode:
|
|
38
|
+
mode: "auto-detect";
|
|
15
39
|
allowedLanguages?: string[];
|
|
16
40
|
} | {
|
|
17
|
-
mode:
|
|
41
|
+
mode: "fixed";
|
|
18
42
|
primaryLanguage: string;
|
|
19
43
|
secondaryLanguages?: string[];
|
|
20
44
|
} | {
|
|
21
|
-
mode:
|
|
45
|
+
mode: "allow-switching";
|
|
22
46
|
primaryLanguage?: string;
|
|
23
47
|
secondaryLanguages: string[];
|
|
24
48
|
};
|
|
@@ -28,7 +52,7 @@ export type VoicePhraseHint = {
|
|
|
28
52
|
boost?: number;
|
|
29
53
|
metadata?: Record<string, unknown>;
|
|
30
54
|
};
|
|
31
|
-
export type VoiceCorrectionRiskTier =
|
|
55
|
+
export type VoiceCorrectionRiskTier = "safe" | "balanced" | "risky";
|
|
32
56
|
export type VoiceDomainTerm = {
|
|
33
57
|
text: string;
|
|
34
58
|
aliases?: string[];
|
|
@@ -44,12 +68,18 @@ export type VoiceLexiconEntry = {
|
|
|
44
68
|
metadata?: Record<string, unknown>;
|
|
45
69
|
pronunciation?: string;
|
|
46
70
|
};
|
|
71
|
+
export type VoiceTranscriptSentiment = {
|
|
72
|
+
label: "negative" | "neutral" | "positive" | (string & {});
|
|
73
|
+
metadata?: Record<string, unknown>;
|
|
74
|
+
score?: number;
|
|
75
|
+
};
|
|
47
76
|
export type Transcript = {
|
|
48
77
|
id: string;
|
|
49
78
|
text: string;
|
|
50
79
|
isFinal: boolean;
|
|
51
80
|
confidence?: number;
|
|
52
81
|
language?: string;
|
|
82
|
+
sentiment?: VoiceTranscriptSentiment;
|
|
53
83
|
speaker?: string | number;
|
|
54
84
|
startedAtMs?: number;
|
|
55
85
|
endedAtMs?: number;
|
|
@@ -65,7 +95,7 @@ export type VoiceTranscriptQuality = {
|
|
|
65
95
|
fallback?: VoiceFallbackDiagnostics;
|
|
66
96
|
partialTranscriptCount: number;
|
|
67
97
|
selectedTranscriptCount: number;
|
|
68
|
-
source:
|
|
98
|
+
source: "fallback" | "primary";
|
|
69
99
|
};
|
|
70
100
|
export type VoiceTurnCorrectionDiagnostics = {
|
|
71
101
|
attempted: boolean;
|
|
@@ -83,7 +113,7 @@ export type VoiceTurnCostEstimate = {
|
|
|
83
113
|
primaryAudioMs: number;
|
|
84
114
|
totalBillableAudioMs: number;
|
|
85
115
|
};
|
|
86
|
-
export type VoiceFallbackSelectionReason =
|
|
116
|
+
export type VoiceFallbackSelectionReason = "fallback-empty" | "primary-empty" | "word-count-margin" | "confidence-margin" | "word-count-tiebreak" | "kept-primary";
|
|
87
117
|
export type VoiceFallbackDiagnostics = {
|
|
88
118
|
attempted: boolean;
|
|
89
119
|
fallbackConfidence?: number;
|
|
@@ -94,31 +124,31 @@ export type VoiceFallbackDiagnostics = {
|
|
|
94
124
|
primaryWordCount: number;
|
|
95
125
|
selected: boolean;
|
|
96
126
|
selectionReason: VoiceFallbackSelectionReason;
|
|
97
|
-
trigger:
|
|
127
|
+
trigger: "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
|
|
98
128
|
};
|
|
99
129
|
export type VoicePartialEvent = {
|
|
100
|
-
type:
|
|
130
|
+
type: "partial";
|
|
101
131
|
transcript: Transcript;
|
|
102
132
|
receivedAt: number;
|
|
103
133
|
};
|
|
104
134
|
export type VoiceFinalEvent = {
|
|
105
|
-
type:
|
|
135
|
+
type: "final";
|
|
106
136
|
transcript: Transcript;
|
|
107
137
|
receivedAt: number;
|
|
108
138
|
};
|
|
109
139
|
export type VoiceEndOfTurnEvent = {
|
|
110
|
-
type:
|
|
111
|
-
reason:
|
|
140
|
+
type: "endOfTurn";
|
|
141
|
+
reason: "vendor" | "silence" | "manual";
|
|
112
142
|
receivedAt: number;
|
|
113
143
|
};
|
|
114
144
|
export type VoiceErrorEvent = {
|
|
115
|
-
type:
|
|
145
|
+
type: "error";
|
|
116
146
|
error: Error;
|
|
117
147
|
recoverable: boolean;
|
|
118
148
|
code?: string;
|
|
119
149
|
};
|
|
120
150
|
export type VoiceCloseEvent = {
|
|
121
|
-
type:
|
|
151
|
+
type: "close";
|
|
122
152
|
code?: number;
|
|
123
153
|
reason?: string;
|
|
124
154
|
recoverable?: boolean;
|
|
@@ -144,11 +174,11 @@ export type STTAdapterOpenOptions = {
|
|
|
144
174
|
signal?: AbortSignal;
|
|
145
175
|
};
|
|
146
176
|
export type STTAdapter<TOptions extends STTAdapterOpenOptions = STTAdapterOpenOptions> = {
|
|
147
|
-
kind:
|
|
177
|
+
kind: "stt";
|
|
148
178
|
open: (options: TOptions) => Promise<STTAdapterSession> | STTAdapterSession;
|
|
149
179
|
};
|
|
150
180
|
export type TTSAudioEvent = {
|
|
151
|
-
type:
|
|
181
|
+
type: "audio";
|
|
152
182
|
chunk: AudioChunk;
|
|
153
183
|
format: AudioFormat;
|
|
154
184
|
receivedAt: number;
|
|
@@ -161,15 +191,26 @@ export type TTSSessionEventMap = {
|
|
|
161
191
|
export type TTSAdapterSession = {
|
|
162
192
|
on: <K extends keyof TTSSessionEventMap>(event: K, handler: (payload: TTSSessionEventMap[K]) => void | Promise<void>) => () => void;
|
|
163
193
|
send: (text: string) => Promise<void>;
|
|
194
|
+
cancel?: (reason?: string) => Promise<void>;
|
|
164
195
|
close: (reason?: string) => Promise<void>;
|
|
165
196
|
};
|
|
197
|
+
export declare const ttsAdapterSessionCanCancel: (session: TTSAdapterSession) => session is TTSAdapterSession & {
|
|
198
|
+
cancel: (reason?: string) => Promise<void>;
|
|
199
|
+
};
|
|
200
|
+
export type VoiceTTSProsody = {
|
|
201
|
+
emphasis?: number;
|
|
202
|
+
pitch?: number;
|
|
203
|
+
speed?: number;
|
|
204
|
+
style?: string;
|
|
205
|
+
};
|
|
166
206
|
export type TTSAdapterOpenOptions = {
|
|
167
207
|
sessionId: string;
|
|
168
208
|
lexicon?: VoiceLexiconEntry[];
|
|
209
|
+
prosody?: VoiceTTSProsody;
|
|
169
210
|
signal?: AbortSignal;
|
|
170
211
|
};
|
|
171
212
|
export type TTSAdapter<TOptions extends TTSAdapterOpenOptions = TTSAdapterOpenOptions> = {
|
|
172
|
-
kind:
|
|
213
|
+
kind: "tts";
|
|
173
214
|
open: (options: TOptions) => Promise<TTSAdapterSession> | TTSAdapterSession;
|
|
174
215
|
};
|
|
175
216
|
export type RealtimeSessionEventMap = STTSessionEventMap & {
|
|
@@ -185,20 +226,40 @@ export type RealtimeAdapterOpenOptions = {
|
|
|
185
226
|
format: AudioFormat;
|
|
186
227
|
languageStrategy?: VoiceLanguageStrategy;
|
|
187
228
|
lexicon?: VoiceLexiconEntry[];
|
|
229
|
+
modalities?: ReadonlyArray<"audio" | "text">;
|
|
188
230
|
phraseHints?: VoicePhraseHint[];
|
|
231
|
+
promptCacheKey?: string;
|
|
232
|
+
semanticVAD?: import("./assistantMode").VoiceSemanticVADConfig;
|
|
189
233
|
signal?: AbortSignal;
|
|
190
234
|
};
|
|
191
235
|
export type RealtimeAdapter<TOptions extends RealtimeAdapterOpenOptions = RealtimeAdapterOpenOptions> = {
|
|
192
|
-
kind:
|
|
236
|
+
kind: "realtime";
|
|
193
237
|
open: (options: TOptions) => Promise<RealtimeAdapterSession> | RealtimeAdapterSession;
|
|
194
238
|
};
|
|
195
|
-
export type VoiceSessionStatus =
|
|
239
|
+
export type VoiceSessionStatus = "active" | "reconnecting" | "completed" | "failed";
|
|
240
|
+
export type VoiceReconnectClientStatus = "idle" | "reconnecting" | "resumed" | "exhausted";
|
|
241
|
+
export type VoiceReconnectClientState = {
|
|
242
|
+
attempts: number;
|
|
243
|
+
lastDisconnectAt?: number;
|
|
244
|
+
lastResumedAt?: number;
|
|
245
|
+
maxAttempts: number;
|
|
246
|
+
nextAttemptAt?: number;
|
|
247
|
+
status: VoiceReconnectClientStatus;
|
|
248
|
+
};
|
|
249
|
+
export type VoiceTurnCitation = {
|
|
250
|
+
chunkId: string;
|
|
251
|
+
score: number;
|
|
252
|
+
source?: string;
|
|
253
|
+
title?: string;
|
|
254
|
+
};
|
|
196
255
|
export type VoiceTurnRecord<TResult = unknown> = {
|
|
197
256
|
id: string;
|
|
198
257
|
text: string;
|
|
199
258
|
quality?: VoiceTranscriptQuality;
|
|
200
259
|
transcripts: Transcript[];
|
|
201
260
|
assistantText?: string;
|
|
261
|
+
attachments?: import("./agent").VoiceAgentMessageAttachment[];
|
|
262
|
+
citations?: VoiceTurnCitation[];
|
|
202
263
|
committedAt: number;
|
|
203
264
|
result?: TResult;
|
|
204
265
|
};
|
|
@@ -253,10 +314,10 @@ export type VoiceSessionSummary = {
|
|
|
253
314
|
status: VoiceSessionStatus;
|
|
254
315
|
turnCount: number;
|
|
255
316
|
};
|
|
256
|
-
export type VoiceCallDisposition =
|
|
317
|
+
export type VoiceCallDisposition = "completed" | "transferred" | "escalated" | "voicemail" | "no-answer" | "failed" | "silence-timeout" | "closed";
|
|
257
318
|
export type VoiceCallLifecycleEvent = {
|
|
258
319
|
at: number;
|
|
259
|
-
type:
|
|
320
|
+
type: "start" | "end" | "transfer" | "escalation" | "voicemail" | "no-answer";
|
|
260
321
|
disposition?: VoiceCallDisposition;
|
|
261
322
|
metadata?: Record<string, unknown>;
|
|
262
323
|
reason?: string;
|
|
@@ -269,8 +330,8 @@ export type VoiceCallLifecycleState = {
|
|
|
269
330
|
lastEventAt: number;
|
|
270
331
|
startedAt: number;
|
|
271
332
|
};
|
|
272
|
-
export type VoiceHandoffAction =
|
|
273
|
-
export type VoiceHandoffStatus =
|
|
333
|
+
export type VoiceHandoffAction = "escalate" | "no-answer" | "transfer" | "voicemail";
|
|
334
|
+
export type VoiceHandoffStatus = "delivered" | "failed" | "skipped";
|
|
274
335
|
export type VoiceHandoffResult = {
|
|
275
336
|
deliveredAt?: number;
|
|
276
337
|
deliveredTo?: string;
|
|
@@ -278,7 +339,7 @@ export type VoiceHandoffResult = {
|
|
|
278
339
|
metadata?: Record<string, unknown>;
|
|
279
340
|
status: VoiceHandoffStatus;
|
|
280
341
|
};
|
|
281
|
-
export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus |
|
|
342
|
+
export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | "pending";
|
|
282
343
|
export type StoredVoiceHandoffDelivery<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
283
344
|
action: VoiceHandoffAction;
|
|
284
345
|
context: TContext;
|
|
@@ -326,9 +387,15 @@ export type VoiceHandoffConfig<TContext = unknown, TSession extends VoiceSession
|
|
|
326
387
|
adapters: VoiceHandoffAdapter<TContext, TSession, TResult>[];
|
|
327
388
|
deliveryQueue?: VoiceHandoffDeliveryStore<StoredVoiceHandoffDelivery<TContext, TSession, TResult>>;
|
|
328
389
|
enqueueOnly?: boolean;
|
|
329
|
-
failMode?:
|
|
390
|
+
failMode?: "record" | "throw";
|
|
391
|
+
};
|
|
392
|
+
export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = {
|
|
393
|
+
get: (id: string) => Promise<TSession | undefined>;
|
|
394
|
+
getOrCreate: (id: string) => Promise<TSession>;
|
|
395
|
+
set: (id: string, value: TSession) => Promise<void>;
|
|
396
|
+
list: () => Promise<VoiceSessionSummary[]>;
|
|
397
|
+
remove: (id: string) => Promise<void>;
|
|
330
398
|
};
|
|
331
|
-
export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = SessionStore<TSession, VoiceSessionSummary>;
|
|
332
399
|
export type VoiceLogger = {
|
|
333
400
|
debug?: (message: string, meta?: Record<string, unknown>) => void;
|
|
334
401
|
info?: (message: string, meta?: Record<string, unknown>) => void;
|
|
@@ -336,15 +403,15 @@ export type VoiceLogger = {
|
|
|
336
403
|
error?: (message: string, meta?: Record<string, unknown>) => void;
|
|
337
404
|
};
|
|
338
405
|
export type VoiceReconnectConfig = {
|
|
339
|
-
strategy?:
|
|
406
|
+
strategy?: "resume-last-turn" | "restart" | "fail";
|
|
340
407
|
timeout?: number;
|
|
341
408
|
maxAttempts?: number;
|
|
342
409
|
};
|
|
343
|
-
export type VoiceRuntimePreset =
|
|
344
|
-
export type VoiceSTTLifecycle =
|
|
345
|
-
export type VoiceTurnProfile =
|
|
346
|
-
export type VoiceTurnQualityProfile =
|
|
347
|
-
export type VoiceTurnFallbackTrigger =
|
|
410
|
+
export type VoiceRuntimePreset = "default" | "chat" | "guided-intake" | "dictation" | "noisy-room" | "pstn-balanced" | "pstn-fast" | "reliability";
|
|
411
|
+
export type VoiceSTTLifecycle = "continuous" | "turn-scoped";
|
|
412
|
+
export type VoiceTurnProfile = "fast" | "balanced" | "long-form";
|
|
413
|
+
export type VoiceTurnQualityProfile = "general" | "accent-heavy" | "noisy-room" | "short-command";
|
|
414
|
+
export type VoiceTurnFallbackTrigger = "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
|
|
348
415
|
export type VoiceSTTFallbackConfig = {
|
|
349
416
|
adapter: STTAdapter;
|
|
350
417
|
trigger?: VoiceTurnFallbackTrigger;
|
|
@@ -396,12 +463,34 @@ export type VoiceResolvedAudioConditioningConfig = {
|
|
|
396
463
|
export type VoiceSocket = {
|
|
397
464
|
send: (data: string | Uint8Array | ArrayBuffer) => void | Promise<void>;
|
|
398
465
|
close: (code?: number, reason?: string) => void | Promise<void>;
|
|
466
|
+
/**
|
|
467
|
+
* Discard any audio already buffered downstream (e.g. a telephony carrier's
|
|
468
|
+
* outbound media buffer). Called on barge-in so the caller stops hearing the
|
|
469
|
+
* assistant immediately, even when frames have already been flushed to the
|
|
470
|
+
* transport. Optional: transports without a flush concept omit it.
|
|
471
|
+
*/
|
|
472
|
+
clear?: () => void | Promise<void>;
|
|
473
|
+
};
|
|
474
|
+
export type VoiceMonitorRuntimeSessionBinding = {
|
|
475
|
+
deregister: (reason?: string) => void;
|
|
476
|
+
emitAudio: (chunk: Uint8Array | ArrayBuffer, options?: {
|
|
477
|
+
source?: "assistant" | "caller" | (string & {});
|
|
478
|
+
}) => void;
|
|
479
|
+
};
|
|
480
|
+
export type VoiceMonitorRuntimeRegisterInput = {
|
|
481
|
+
handle: VoiceSessionHandle<unknown, VoiceSessionRecord, unknown>;
|
|
482
|
+
metadata?: Record<string, unknown>;
|
|
483
|
+
sessionId: string;
|
|
484
|
+
};
|
|
485
|
+
export type VoiceMonitorRuntimeBinding = {
|
|
486
|
+
registerSession: (input: VoiceMonitorRuntimeRegisterInput) => VoiceMonitorRuntimeSessionBinding;
|
|
399
487
|
};
|
|
400
488
|
export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
401
489
|
id: string;
|
|
402
490
|
connect: (socket: VoiceSocket) => Promise<void>;
|
|
403
491
|
receiveAudio: (audio: AudioChunk) => Promise<void>;
|
|
404
|
-
|
|
492
|
+
attachUserMedia: (attachment: import("./agent").VoiceAgentMessageAttachment) => Promise<void>;
|
|
493
|
+
commitTurn: (reason?: VoiceEndOfTurnEvent["reason"]) => Promise<void>;
|
|
405
494
|
disconnect: (event?: VoiceCloseEvent) => Promise<void>;
|
|
406
495
|
complete: (result?: TResult) => Promise<void>;
|
|
407
496
|
escalate: (input: {
|
|
@@ -423,18 +512,33 @@ export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSession
|
|
|
423
512
|
reason?: string;
|
|
424
513
|
result?: TResult;
|
|
425
514
|
target: string;
|
|
515
|
+
transferMode?: "cold" | "warm";
|
|
426
516
|
}) => Promise<void>;
|
|
427
517
|
close: (reason?: string) => Promise<void>;
|
|
428
518
|
snapshot: () => Promise<TSession>;
|
|
519
|
+
/**
|
|
520
|
+
* Mutate the live turn-detection config for this session — useful when a
|
|
521
|
+
* tool call wants to dial silenceMs up ("the caller asked for more time")
|
|
522
|
+
* or down. The change takes effect on the NEXT silence-timer schedule, so
|
|
523
|
+
* an in-flight commit isn't cancelled. Returns the merged config so the
|
|
524
|
+
* caller can confirm.
|
|
525
|
+
*/
|
|
526
|
+
setTurnDetection: (patch: Partial<VoiceTurnDetectionConfig>) => Promise<{
|
|
527
|
+
silenceMs: number;
|
|
528
|
+
speechThreshold: number;
|
|
529
|
+
transcriptStabilityMs: number;
|
|
530
|
+
}>;
|
|
429
531
|
};
|
|
430
532
|
export type VoiceRouteResult<TResult = unknown> = {
|
|
431
533
|
complete?: boolean;
|
|
432
534
|
result?: TResult;
|
|
433
535
|
assistantText?: string;
|
|
536
|
+
citations?: ReadonlyArray<VoiceTurnCitation>;
|
|
434
537
|
transfer?: {
|
|
435
538
|
metadata?: Record<string, unknown>;
|
|
436
539
|
reason?: string;
|
|
437
540
|
target: string;
|
|
541
|
+
transferMode?: "cold" | "warm";
|
|
438
542
|
};
|
|
439
543
|
escalate?: {
|
|
440
544
|
metadata?: Record<string, unknown>;
|
|
@@ -475,6 +579,11 @@ export type VoiceLexiconResolver<TContext = unknown> = (input: {
|
|
|
475
579
|
}) => Promise<VoiceLexiconEntry[] | void> | VoiceLexiconEntry[] | void;
|
|
476
580
|
export type VoiceOnTurnObjectHandler<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = (input: {
|
|
477
581
|
context: TContext;
|
|
582
|
+
liveOps?: {
|
|
583
|
+
control: VoiceLiveOpsControlState;
|
|
584
|
+
injectedInstruction?: string;
|
|
585
|
+
};
|
|
586
|
+
onTextDelta?: (delta: string) => void;
|
|
478
587
|
session: TSession;
|
|
479
588
|
turn: VoiceTurnRecord;
|
|
480
589
|
api: VoiceSessionHandle<TContext, TSession, TResult>;
|
|
@@ -559,7 +668,7 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
|
|
|
559
668
|
disposition: VoiceCallDisposition;
|
|
560
669
|
review: StoredVoiceCallReviewArtifact;
|
|
561
670
|
session: TSession;
|
|
562
|
-
}) => Promise<Omit<VoiceOpsTask,
|
|
671
|
+
}) => Promise<Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
|
|
563
672
|
resolveTaskPolicy?: (input: {
|
|
564
673
|
api: VoiceSessionHandle<TContext, TSession, TResult>;
|
|
565
674
|
context: TContext;
|
|
@@ -596,7 +705,37 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
|
|
|
596
705
|
tasks?: VoiceOpsTaskStore;
|
|
597
706
|
webhook?: VoiceIntegrationWebhookConfig;
|
|
598
707
|
};
|
|
599
|
-
export type
|
|
708
|
+
export type VoiceLiveOpsRuntimeConfig = {
|
|
709
|
+
getControl: (sessionId: string) => Promise<VoiceLiveOpsControlState | null | undefined> | VoiceLiveOpsControlState | null | undefined;
|
|
710
|
+
};
|
|
711
|
+
export type VoiceProfileSwitchGuardResolverInput<TContext = unknown> = {
|
|
712
|
+
context: TContext;
|
|
713
|
+
scenarioId?: string;
|
|
714
|
+
sessionId: string;
|
|
715
|
+
};
|
|
716
|
+
export type VoicePluginProfileSwitchGuardConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
717
|
+
actor?: VoiceAuditActor;
|
|
718
|
+
allowedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
|
|
719
|
+
audit?: VoiceAuditEventStore;
|
|
720
|
+
blockedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
|
|
721
|
+
currentProfileId?: string | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string | undefined> | string | undefined);
|
|
722
|
+
defaultProfileId?: string;
|
|
723
|
+
defaults: VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport> | VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport);
|
|
724
|
+
metadata?: Record<string, unknown> | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<Record<string, unknown> | undefined> | Record<string, unknown> | undefined);
|
|
725
|
+
minConfidence?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
|
|
726
|
+
maxAutoSwitchesPerSession?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
|
|
727
|
+
mode?: VoiceProfileSwitchGuardMode | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchGuardMode | undefined> | VoiceProfileSwitchGuardMode | undefined);
|
|
728
|
+
observed?: VoiceProfileSwitchObservedSignals | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchObservedSignals | undefined> | VoiceProfileSwitchObservedSignals | undefined);
|
|
729
|
+
onDecision?: (input: {
|
|
730
|
+
context: TContext;
|
|
731
|
+
decision: VoiceProfileSwitchGuardDecision;
|
|
732
|
+
scenarioId?: string;
|
|
733
|
+
sessionId: string;
|
|
734
|
+
}) => Promise<void> | void;
|
|
735
|
+
sessionMetadataKey?: string | false;
|
|
736
|
+
trace?: false | VoiceTraceEventStore;
|
|
737
|
+
};
|
|
738
|
+
export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, "onTurn"> & {
|
|
600
739
|
onTurn: VoiceOnTurnObjectHandler<TContext, TSession, TResult>;
|
|
601
740
|
};
|
|
602
741
|
export type VoiceScenario = {
|
|
@@ -609,131 +748,326 @@ export type VoiceExpectedSpeakerTurn = {
|
|
|
609
748
|
speaker: string;
|
|
610
749
|
text: string;
|
|
611
750
|
};
|
|
751
|
+
/**
|
|
752
|
+
* Configures one of the plugin's optional route surfaces. Pass that surface's
|
|
753
|
+
* options object to mount it, `false` (or omit) to leave it off. Surfaces whose
|
|
754
|
+
* options are entirely optional may also be enabled with `true` for defaults.
|
|
755
|
+
*/
|
|
756
|
+
export type VoiceSurfaceConfig<O> = false | O | (Record<string, never> extends O ? true : never);
|
|
612
757
|
export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
613
758
|
costTelemetry?: VoiceCostTelemetryConfig<TContext, TSession, TResult>;
|
|
614
759
|
path: string;
|
|
760
|
+
greeting?: string | ((input: {
|
|
761
|
+
session: TSession;
|
|
762
|
+
}) => string | Promise<string>);
|
|
615
763
|
languageStrategy?: VoiceLanguageStrategy;
|
|
616
764
|
lexicon?: VoiceLexiconEntry[] | VoiceLexiconResolver<TContext>;
|
|
617
765
|
phraseHints?: VoicePhraseHint[] | VoicePhraseHintResolver<TContext>;
|
|
618
766
|
preset?: VoiceRuntimePreset;
|
|
619
|
-
stt
|
|
767
|
+
stt?: STTAdapter;
|
|
620
768
|
sttFallback?: VoiceSTTFallbackConfig;
|
|
621
769
|
sttLifecycle?: VoiceSTTLifecycle;
|
|
770
|
+
realtime?: RealtimeAdapter;
|
|
771
|
+
realtimeInputFormat?: AudioFormat;
|
|
622
772
|
tts?: TTSAdapter;
|
|
623
773
|
session: VoiceSessionStore<NoInfer<TSession>>;
|
|
624
774
|
reconnect?: VoiceReconnectConfig;
|
|
625
775
|
turnDetection?: VoiceTurnDetectionConfig;
|
|
626
776
|
audioConditioning?: VoiceAudioConditioningConfig;
|
|
777
|
+
noiseSuppressor?: VoiceNoiseSuppressor;
|
|
778
|
+
noiseSuppressorFormat?: AudioFormat;
|
|
627
779
|
logger?: VoiceLogger;
|
|
628
780
|
htmx?: boolean | VoiceHTMXConfig<TSession, NoInfer<TResult>>;
|
|
629
781
|
handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
|
|
630
782
|
ops?: VoiceRuntimeOpsConfig<TContext, TSession, TResult>;
|
|
783
|
+
liveOps?: VoiceLiveOpsRuntimeConfig;
|
|
784
|
+
monitor?: VoiceMonitorRuntimeBinding;
|
|
785
|
+
profileSwitchGuard?: VoicePluginProfileSwitchGuardConfig<TContext, TSession, TResult>;
|
|
631
786
|
trace?: VoiceTraceEventStore;
|
|
787
|
+
assistantHealth?: VoiceSurfaceConfig<import("./assistantHealth").VoiceAssistantHealthRoutesOptions>;
|
|
788
|
+
auditDelivery?: VoiceSurfaceConfig<import("./auditDeliveryRoutes").VoiceAuditDeliveryRoutesOptions>;
|
|
789
|
+
auditTrail?: VoiceSurfaceConfig<import("./auditRoutes").VoiceAuditTrailRoutesOptions>;
|
|
790
|
+
bargeIn?: VoiceSurfaceConfig<import("./bargeInRoutes").VoiceBargeInRoutesOptions>;
|
|
791
|
+
browserCallProfile?: VoiceSurfaceConfig<import("./browserCallProfiles").VoiceBrowserCallProfileRoutesOptions>;
|
|
792
|
+
browserMedia?: VoiceSurfaceConfig<import("./browserMediaRoutes").VoiceBrowserMediaRoutesOptions>;
|
|
793
|
+
callDebugger?: VoiceSurfaceConfig<import("./callDebugger").VoiceCallDebuggerRoutesOptions>;
|
|
794
|
+
campaign?: VoiceSurfaceConfig<import("./campaign").VoiceCampaignRoutesOptions>;
|
|
795
|
+
competitiveCoverage?: VoiceSurfaceConfig<import("./competitiveCoverage").VoiceCompetitiveCoverageRoutesOptions>;
|
|
796
|
+
dataControl?: VoiceSurfaceConfig<import("./dataControl").VoiceDataControlRoutesOptions>;
|
|
797
|
+
deliveryRuntime?: VoiceSurfaceConfig<import("./deliveryRuntime").VoiceDeliveryRuntimeRoutesOptions>;
|
|
798
|
+
deliverySink?: VoiceSurfaceConfig<import("./deliverySinkRoutes").VoiceDeliverySinkRoutesOptions>;
|
|
799
|
+
demoReady?: VoiceSurfaceConfig<import("./demoReadyRoutes").VoiceDemoReadyRoutesOptions>;
|
|
800
|
+
diagnostics?: VoiceSurfaceConfig<import("./diagnosticsRoutes").VoiceDiagnosticsRoutesOptions>;
|
|
801
|
+
eval?: VoiceSurfaceConfig<import("./evalRoutes").VoiceEvalRoutesOptions>;
|
|
802
|
+
guardrail?: VoiceSurfaceConfig<import("./guardrails").VoiceGuardrailRoutesOptions>;
|
|
803
|
+
handoffHealth?: VoiceSurfaceConfig<import("./handoffHealth").VoiceHandoffHealthRoutesOptions>;
|
|
804
|
+
htmxDashboard?: VoiceSurfaceConfig<import("./htmxDashboardRoutes").VoiceHTMXDashboardRoutesOptions>;
|
|
805
|
+
incidentBundle?: VoiceSurfaceConfig<import("./incidentBundle").VoiceIncidentBundleRoutesOptions>;
|
|
806
|
+
incidentTimeline?: VoiceSurfaceConfig<import("./incidentTimeline").VoiceIncidentTimelineRoutesOptions>;
|
|
807
|
+
liveLatency?: VoiceSurfaceConfig<import("./liveLatency").VoiceLiveLatencyRoutesOptions>;
|
|
808
|
+
liveMonitor?: VoiceSurfaceConfig<import("./monitor").VoiceLiveMonitorRoutesOptions>;
|
|
809
|
+
liveOpsConsole?: VoiceSurfaceConfig<import("./liveOps").VoiceLiveOpsRoutesOptions>;
|
|
810
|
+
mediaPipeline?: VoiceSurfaceConfig<import("./mediaPipelineRoutes").VoiceMediaPipelineRoutesOptions>;
|
|
811
|
+
monitorReport?: VoiceSurfaceConfig<import("./voiceMonitoring").VoiceMonitorRoutesOptions>;
|
|
812
|
+
monitorRunner?: VoiceSurfaceConfig<import("./voiceMonitoring").VoiceMonitorRunnerRoutesOptions>;
|
|
813
|
+
observabilityExport?: VoiceSurfaceConfig<import("./observabilityExport").VoiceObservabilityExportRoutesOptions>;
|
|
814
|
+
observabilityExportReplay?: VoiceSurfaceConfig<import("./observabilityExport").VoiceObservabilityExportReplayRoutesOptions>;
|
|
815
|
+
operationalStatus?: VoiceSurfaceConfig<import("./operationalStatus").VoiceOperationalStatusRoutesOptions>;
|
|
816
|
+
operationsRecord?: VoiceSurfaceConfig<import("./operationsRecord").VoiceOperationsRecordRoutesOptions>;
|
|
817
|
+
opsActionAudit?: VoiceSurfaceConfig<import("./opsActionAuditRoutes").VoiceOpsActionAuditRoutesOptions>;
|
|
818
|
+
opsConsole?: VoiceSurfaceConfig<import("./opsConsoleRoutes").VoiceOpsConsoleRoutesOptions>;
|
|
819
|
+
opsRecovery?: VoiceSurfaceConfig<import("./opsRecovery").VoiceOpsRecoveryRoutesOptions>;
|
|
820
|
+
opsStatus?: VoiceSurfaceConfig<import("./opsStatus").VoiceOpsStatusRoutesOptions>;
|
|
821
|
+
opsWebhookReceiver?: VoiceSurfaceConfig<import("./opsWebhook").VoiceOpsWebhookReceiverRoutesOptions>;
|
|
822
|
+
outcomeContract?: VoiceSurfaceConfig<import("./outcomeContract").VoiceOutcomeContractRoutesOptions>;
|
|
823
|
+
phoneAgentProductionSmoke?: VoiceSurfaceConfig<import("./phoneAgentProductionSmoke").VoicePhoneAgentProductionSmokeRoutesOptions>;
|
|
824
|
+
platformCoverage?: VoiceSurfaceConfig<import("./platformCoverage").VoicePlatformCoverageRoutesOptions>;
|
|
825
|
+
postCallAnalysis?: VoiceSurfaceConfig<import("./postCallAnalysis").VoicePostCallAnalysisRoutesOptions>;
|
|
826
|
+
productionReadiness?: VoiceSurfaceConfig<import("./productionReadiness").VoiceProductionReadinessRoutesOptions>;
|
|
827
|
+
profileSwitchLiveDecision?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchLiveDecisionRoutesOptions>;
|
|
828
|
+
profileSwitchPolicyProof?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchPolicyProofRoutesOptions>;
|
|
829
|
+
profileSwitchReadiness?: VoiceSurfaceConfig<import("./profileSwitchRecommendation").VoiceProfileSwitchReadinessRoutesOptions>;
|
|
830
|
+
proofPack?: VoiceSurfaceConfig<import("./proofPack").VoiceProofPackRoutesOptions>;
|
|
831
|
+
proofTrend?: VoiceSurfaceConfig<import("./proofTrends").VoiceProofTrendRoutesOptions>;
|
|
832
|
+
proofTrendRecommendation?: VoiceSurfaceConfig<import("./proofTrends").VoiceProofTrendRecommendationRoutesOptions>;
|
|
833
|
+
providerCapability?: VoiceSurfaceConfig<import("./providerCapabilities").VoiceProviderCapabilityRoutesOptions>;
|
|
834
|
+
providerContractMatrix?: VoiceSurfaceConfig<import("./providerStackRecommendations").VoiceProviderContractMatrixRoutesOptions>;
|
|
835
|
+
providerDecisionTrace?: VoiceSurfaceConfig<import("./providerDecisionTraces").VoiceProviderDecisionTraceRoutesOptions>;
|
|
836
|
+
providerHealth?: VoiceSurfaceConfig<import("./providerHealth").VoiceProviderHealthRoutesOptions>;
|
|
837
|
+
providerOrchestration?: VoiceSurfaceConfig<import("./providerOrchestration").VoiceProviderOrchestrationRoutesOptions>;
|
|
838
|
+
providerSlo?: VoiceSurfaceConfig<import("./providerSlo").VoiceProviderSloRoutesOptions>;
|
|
839
|
+
quality?: VoiceSurfaceConfig<import("./qualityRoutes").VoiceQualityRoutesOptions>;
|
|
840
|
+
realCallEvidenceRuntime?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallEvidenceRuntimeRoutesOptions>;
|
|
841
|
+
realCallProfileHistory?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallProfileHistoryRoutesOptions>;
|
|
842
|
+
realCallProfileRecoveryAction?: VoiceSurfaceConfig<import("./proofTrends").VoiceRealCallProfileRecoveryActionRoutesOptions>;
|
|
843
|
+
realtimeChannel?: VoiceSurfaceConfig<import("./realtimeChannel").VoiceRealtimeChannelRoutesOptions>;
|
|
844
|
+
realtimeProviderContract?: VoiceSurfaceConfig<import("./realtimeProviderContracts").VoiceRealtimeProviderContractRoutesOptions>;
|
|
845
|
+
reconnectContract?: VoiceSurfaceConfig<import("./reconnectContract").VoiceReconnectContractRoutesOptions>;
|
|
846
|
+
reconnectProof?: VoiceSurfaceConfig<import("./reconnectContract").VoiceReconnectProofRoutesOptions>;
|
|
847
|
+
resilience?: VoiceSurfaceConfig<import("./resilienceRoutes").VoiceResilienceRoutesOptions>;
|
|
848
|
+
sessionList?: VoiceSurfaceConfig<import("./sessionReplay").VoiceSessionListRoutesOptions>;
|
|
849
|
+
sessionObservability?: VoiceSurfaceConfig<import("./sessionObservability").VoiceSessionObservabilityRoutesOptions>;
|
|
850
|
+
sessionReplay?: VoiceSurfaceConfig<import("./sessionReplay").VoiceSessionReplayRoutesOptions>;
|
|
851
|
+
sessionSnapshot?: VoiceSurfaceConfig<import("./sessionSnapshot").VoiceSessionSnapshotRoutesOptions>;
|
|
852
|
+
simulationSuite?: VoiceSurfaceConfig<import("./simulationSuite").VoiceSimulationSuiteRoutesOptions>;
|
|
853
|
+
sloCalibration?: VoiceSurfaceConfig<import("./sloCalibration").VoiceSloCalibrationRoutesOptions>;
|
|
854
|
+
sloReadinessThreshold?: VoiceSurfaceConfig<import("./sloCalibration").VoiceSloReadinessThresholdRoutesOptions>;
|
|
855
|
+
telephonyCarrierMatrix?: VoiceSurfaceConfig<import("../telephony/matrix").VoiceTelephonyCarrierMatrixRoutesOptions>;
|
|
856
|
+
telephonyMedia?: VoiceSurfaceConfig<import("./telephonyMediaRoutes").VoiceTelephonyMediaRoutesOptions>;
|
|
857
|
+
telephonyWebhook?: VoiceSurfaceConfig<import("./telephonyOutcome").VoiceTelephonyWebhookRoutesOptions>;
|
|
858
|
+
telephonyWebhookSecurity?: VoiceSurfaceConfig<import("../telephony/security").VoiceTelephonyWebhookSecurityRoutesOptions>;
|
|
859
|
+
toolContract?: VoiceSurfaceConfig<import("./toolContract").VoiceToolContractRoutesOptions>;
|
|
860
|
+
traceDelivery?: VoiceSurfaceConfig<import("./traceDeliveryRoutes").VoiceTraceDeliveryRoutesOptions>;
|
|
861
|
+
traceTimeline?: VoiceSurfaceConfig<import("./traceTimeline").VoiceTraceTimelineRoutesOptions>;
|
|
862
|
+
turnLatency?: VoiceSurfaceConfig<import("./turnLatency").VoiceTurnLatencyRoutesOptions>;
|
|
863
|
+
turnQuality?: VoiceSurfaceConfig<import("./turnQuality").VoiceTurnQualityRoutesOptions>;
|
|
632
864
|
} & VoiceRouteConfig<TContext, TSession, TResult>;
|
|
865
|
+
export type VoiceSessionRecordingConfig = {
|
|
866
|
+
channels?: ReadonlyArray<"assistant" | "user">;
|
|
867
|
+
maxBytesPerChannel?: number;
|
|
868
|
+
store: import("./recordingStore").VoiceRecordingStore;
|
|
869
|
+
userInputFormat?: AudioFormat;
|
|
870
|
+
};
|
|
633
871
|
export type CreateVoiceSessionOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
634
872
|
costTelemetry?: VoiceCostTelemetryConfig<TContext, TSession, TResult>;
|
|
635
873
|
id: string;
|
|
636
874
|
context: TContext;
|
|
637
875
|
socket: VoiceSocket;
|
|
638
|
-
|
|
876
|
+
greeting?: string | ((input: {
|
|
877
|
+
session: TSession;
|
|
878
|
+
}) => string | Promise<string>);
|
|
879
|
+
stt?: STTAdapter;
|
|
880
|
+
realtime?: RealtimeAdapter;
|
|
881
|
+
realtimeInputFormat?: AudioFormat;
|
|
639
882
|
tts?: TTSAdapter;
|
|
640
883
|
languageStrategy?: VoiceLanguageStrategy;
|
|
641
884
|
lexicon?: VoiceLexiconEntry[];
|
|
642
885
|
sttFallback?: VoiceResolvedSTTFallbackConfig;
|
|
643
886
|
store: VoiceSessionStore<TSession>;
|
|
644
887
|
trace?: VoiceTraceEventStore;
|
|
888
|
+
recording?: VoiceSessionRecordingConfig;
|
|
889
|
+
callSilenceTimeoutMs?: number;
|
|
890
|
+
amd?: import("./amdDetector").VoiceAMDDetector<TContext, TSession, TResult>;
|
|
891
|
+
costAccountant?: import("./costAccounting").VoiceCostAccountant;
|
|
892
|
+
costTelephony?: {
|
|
893
|
+
provider?: string;
|
|
894
|
+
};
|
|
895
|
+
redact?: import("./redaction").VoiceTranscriptRedactor;
|
|
896
|
+
semanticTurnDetector?: import("./semanticTurn").VoiceSemanticTurnDetector;
|
|
897
|
+
/**
|
|
898
|
+
* Pre-rendered filler phrases the runtime plays in the gap between
|
|
899
|
+
* user-turn-commit and real assistant audio (typically 800-1500ms). The
|
|
900
|
+
* caller hears something within ~150-300ms of stopping speaking, so the
|
|
901
|
+
* LLM/TTS latency feels like the bot thinking instead of dead air. Boardy's
|
|
902
|
+
* killer UX feature.
|
|
903
|
+
*
|
|
904
|
+
* Behavior:
|
|
905
|
+
* - After a turn commits, a timer fires at `fillerDelayMs` (default
|
|
906
|
+
* 250ms). At that point, if the real assistant audio for this turn
|
|
907
|
+
* hasn't started flowing yet, a random phrase is rendered via the
|
|
908
|
+
* configured `tts` adapter and pushed to the socket.
|
|
909
|
+
* - When the real assistant audio's first chunk arrives, any in-flight
|
|
910
|
+
* filler is cancelled (`cancelActiveTTS` clears the carrier buffer).
|
|
911
|
+
* - Cooldown protects against double-fillers per turn.
|
|
912
|
+
*
|
|
913
|
+
* Set `fillerPhrases: []` (or omit) to disable. Reasonable defaults if
|
|
914
|
+
* you enable: `["Hmm.", "Got it.", "Right.", "Mm-hm.", "Let me think.", "Okay."]`.
|
|
915
|
+
*/
|
|
916
|
+
fillerPhrases?: ReadonlyArray<string>;
|
|
917
|
+
/** Milliseconds after turn-commit before the filler fires. Default 250ms — short enough to feel instant, long enough to skip if the LLM is very fast. */
|
|
918
|
+
fillerDelayMs?: number;
|
|
919
|
+
/**
|
|
920
|
+
* Default spoken ack if the model returns ONLY tool calls (no text) and the
|
|
921
|
+
* turn isn't ending. Without this, the caller hears total silence after
|
|
922
|
+
* their turn and assumes the line dropped. Default is "Sorry, one moment."
|
|
923
|
+
* Set to "" to opt out entirely.
|
|
924
|
+
*/
|
|
925
|
+
defaultSilentTurnAck?: string;
|
|
926
|
+
/**
|
|
927
|
+
* Hard timeout on a single `route.onTurn` call. If onTurn hasn't resolved
|
|
928
|
+
* in this many ms, it's rejected with a hard-timeout error which falls
|
|
929
|
+
* through to defaultSilentTurnAck. Default 45s — generous for normal
|
|
930
|
+
* conversational LLM calls (1-3s typical), but catches hangs where the
|
|
931
|
+
* model adapter's own timeout doesn't fire. Set to 0 to disable.
|
|
932
|
+
*/
|
|
933
|
+
routeOnTurnTimeoutMs?: number;
|
|
934
|
+
assistantMode?: import("./assistantMode").VoiceAssistantMode;
|
|
935
|
+
modalities?: ReadonlyArray<"audio" | "text">;
|
|
936
|
+
prosody?: VoiceTTSProsody;
|
|
645
937
|
reconnect: Required<VoiceReconnectConfig>;
|
|
646
938
|
phraseHints?: VoicePhraseHint[];
|
|
939
|
+
sessionMetadata?: Record<string, unknown>;
|
|
647
940
|
scenarioId?: string;
|
|
648
941
|
sttLifecycle: VoiceSTTLifecycle;
|
|
649
942
|
turnDetection: VoiceResolvedTurnDetectionConfig;
|
|
650
943
|
audioConditioning?: VoiceResolvedAudioConditioningConfig;
|
|
944
|
+
noiseSuppressor?: VoiceNoiseSuppressor;
|
|
945
|
+
noiseSuppressorFormat?: AudioFormat;
|
|
651
946
|
handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
|
|
947
|
+
liveOps?: VoiceLiveOpsRuntimeConfig;
|
|
652
948
|
route: VoiceNormalizedRouteConfig<TContext, TSession, TResult>;
|
|
653
949
|
logger?: VoiceLogger;
|
|
654
950
|
};
|
|
655
951
|
export type CreateVoiceSession = <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
|
|
656
952
|
export type VoiceClientStartMessage = {
|
|
657
|
-
type:
|
|
953
|
+
type: "start";
|
|
658
954
|
sessionId?: string;
|
|
659
955
|
scenarioId?: string;
|
|
660
956
|
};
|
|
661
957
|
export type VoiceClientEndTurnMessage = {
|
|
662
|
-
type:
|
|
958
|
+
type: "end_turn";
|
|
663
959
|
};
|
|
664
960
|
export type VoiceClientCloseMessage = {
|
|
665
|
-
type:
|
|
961
|
+
type: "close";
|
|
666
962
|
reason?: string;
|
|
667
963
|
};
|
|
668
964
|
export type VoiceClientCallControlMessage = {
|
|
669
|
-
type:
|
|
670
|
-
action:
|
|
965
|
+
type: "call_control";
|
|
966
|
+
action: "complete" | "escalate" | "no-answer" | "transfer" | "voicemail";
|
|
671
967
|
metadata?: Record<string, unknown>;
|
|
672
968
|
reason?: string;
|
|
673
969
|
target?: string;
|
|
674
970
|
};
|
|
675
971
|
export type VoiceClientPingMessage = {
|
|
676
|
-
type:
|
|
972
|
+
type: "ping";
|
|
677
973
|
};
|
|
678
974
|
export type VoiceClientMessage = VoiceClientStartMessage | VoiceClientEndTurnMessage | VoiceClientCloseMessage | VoiceClientCallControlMessage | VoiceClientPingMessage;
|
|
679
975
|
export type VoiceServerSessionMessage = {
|
|
680
|
-
type:
|
|
976
|
+
type: "session";
|
|
681
977
|
sessionId: string;
|
|
682
978
|
status: VoiceSessionStatus;
|
|
683
979
|
scenarioId?: string;
|
|
980
|
+
sessionMetadata?: Record<string, unknown>;
|
|
981
|
+
};
|
|
982
|
+
export type VoiceServerReplayMessage<TResult = unknown> = {
|
|
983
|
+
type: "replay";
|
|
984
|
+
assistantTexts: string[];
|
|
985
|
+
call?: VoiceCallLifecycleState;
|
|
986
|
+
partial: string;
|
|
987
|
+
scenarioId?: string;
|
|
988
|
+
sessionId: string;
|
|
989
|
+
sessionMetadata?: Record<string, unknown>;
|
|
990
|
+
status: VoiceSessionStatus;
|
|
991
|
+
turns: VoiceTurnRecord<TResult>[];
|
|
684
992
|
};
|
|
685
993
|
export type VoiceServerPartialMessage = {
|
|
686
|
-
type:
|
|
994
|
+
type: "partial";
|
|
687
995
|
transcript: Transcript;
|
|
688
996
|
};
|
|
689
997
|
export type VoiceServerFinalMessage = {
|
|
690
|
-
type:
|
|
998
|
+
type: "final";
|
|
691
999
|
transcript: Transcript;
|
|
692
1000
|
};
|
|
693
1001
|
export type VoiceServerTurnMessage<TResult = unknown> = {
|
|
694
|
-
type:
|
|
1002
|
+
type: "turn";
|
|
695
1003
|
turn: VoiceTurnRecord<TResult>;
|
|
696
1004
|
};
|
|
697
1005
|
export type VoiceServerAssistantMessage = {
|
|
698
|
-
type:
|
|
1006
|
+
type: "assistant";
|
|
699
1007
|
text: string;
|
|
700
1008
|
turnId?: string;
|
|
701
1009
|
};
|
|
702
1010
|
export type VoiceServerAudioMessage = {
|
|
703
|
-
type:
|
|
1011
|
+
type: "audio";
|
|
704
1012
|
chunkBase64: string;
|
|
705
1013
|
format: AudioFormat;
|
|
706
1014
|
receivedAt: number;
|
|
707
1015
|
turnId?: string;
|
|
708
1016
|
};
|
|
709
1017
|
export type VoiceServerCompleteMessage = {
|
|
710
|
-
type:
|
|
1018
|
+
type: "complete";
|
|
711
1019
|
sessionId: string;
|
|
712
1020
|
};
|
|
713
1021
|
export type VoiceServerCallLifecycleMessage = {
|
|
714
|
-
type:
|
|
1022
|
+
type: "call_lifecycle";
|
|
715
1023
|
event: VoiceCallLifecycleEvent;
|
|
716
1024
|
sessionId: string;
|
|
717
1025
|
};
|
|
718
1026
|
export type VoiceServerErrorMessage = {
|
|
719
|
-
type:
|
|
1027
|
+
type: "error";
|
|
720
1028
|
message: string;
|
|
721
1029
|
recoverable?: boolean;
|
|
722
1030
|
};
|
|
723
1031
|
export type VoiceServerPongMessage = {
|
|
724
|
-
type:
|
|
1032
|
+
type: "pong";
|
|
725
1033
|
};
|
|
726
|
-
export type
|
|
1034
|
+
export type VoiceServerConnectionMessage = {
|
|
1035
|
+
type: "connection";
|
|
1036
|
+
reconnect: VoiceReconnectClientState;
|
|
1037
|
+
};
|
|
1038
|
+
export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerReplayMessage<TResult> | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage | VoiceServerConnectionMessage;
|
|
727
1039
|
export type VoiceConnectionOptions = {
|
|
1040
|
+
browserMedia?: false | VoiceBrowserMediaReporterOptions;
|
|
728
1041
|
protocols?: string[];
|
|
729
1042
|
scenarioId?: string;
|
|
730
1043
|
reconnect?: boolean;
|
|
1044
|
+
reconnectReportPath?: string;
|
|
731
1045
|
maxReconnectAttempts?: number;
|
|
732
1046
|
pingInterval?: number;
|
|
733
1047
|
sessionId?: string;
|
|
734
1048
|
};
|
|
1049
|
+
export type VoiceBrowserMediaReportPayload = {
|
|
1050
|
+
at: number;
|
|
1051
|
+
continuity?: MediaWebRTCStreamContinuityReport;
|
|
1052
|
+
report: MediaWebRTCStatsReport;
|
|
1053
|
+
scenarioId?: string | null;
|
|
1054
|
+
sessionId?: string | null;
|
|
1055
|
+
};
|
|
1056
|
+
export type VoiceBrowserMediaReporterOptions = Omit<MediaWebRTCStatsReportInput, "peerConnection"> & {
|
|
1057
|
+
fetch?: typeof fetch;
|
|
1058
|
+
getPeerConnection?: (() => MediaWebRTCStatsCollector | null | undefined) | (() => Promise<MediaWebRTCStatsCollector | null | undefined>);
|
|
1059
|
+
getScenarioId?: () => string | null | undefined;
|
|
1060
|
+
getSessionId?: () => string | null | undefined;
|
|
1061
|
+
intervalMs?: number;
|
|
1062
|
+
continuity?: false | Omit<MediaWebRTCStreamContinuityInput, "previousStats" | "stats">;
|
|
1063
|
+
onError?: (error: unknown) => void;
|
|
1064
|
+
onReport?: (payload: VoiceBrowserMediaReportPayload) => void;
|
|
1065
|
+
path?: string;
|
|
1066
|
+
peerConnection?: MediaWebRTCStatsCollector;
|
|
1067
|
+
};
|
|
735
1068
|
export type VoiceCaptureOptions = {
|
|
736
1069
|
channelCount?: 1 | 2;
|
|
1070
|
+
onAudio?: (audio: Uint8Array | ArrayBuffer, sendAudio: (audio: Uint8Array | ArrayBuffer) => void) => void;
|
|
737
1071
|
onLevel?: (level: number) => void;
|
|
738
1072
|
sampleRateHz?: number;
|
|
739
1073
|
};
|
|
@@ -747,6 +1081,46 @@ export type VoiceBargeInOptions = {
|
|
|
747
1081
|
enabled?: boolean;
|
|
748
1082
|
interruptOnPartial?: boolean;
|
|
749
1083
|
interruptThreshold?: number;
|
|
1084
|
+
monitor?: VoiceBargeInMonitor;
|
|
1085
|
+
};
|
|
1086
|
+
export type VoiceBargeInTriggerReason = "input-level" | "manual-audio" | "manual-interrupt" | "partial-transcript";
|
|
1087
|
+
export type VoiceBargeInMonitorEvent = {
|
|
1088
|
+
at: number;
|
|
1089
|
+
id: string;
|
|
1090
|
+
latencyMs?: number;
|
|
1091
|
+
playbackStopLatencyMs?: number;
|
|
1092
|
+
reason: VoiceBargeInTriggerReason;
|
|
1093
|
+
sessionId?: string | null;
|
|
1094
|
+
status: "requested" | "stopped" | "skipped";
|
|
1095
|
+
thresholdMs?: number;
|
|
1096
|
+
};
|
|
1097
|
+
export type VoiceBargeInMonitorSnapshot = {
|
|
1098
|
+
averageLatencyMs?: number;
|
|
1099
|
+
events: VoiceBargeInMonitorEvent[];
|
|
1100
|
+
failed: number;
|
|
1101
|
+
lastEvent?: VoiceBargeInMonitorEvent;
|
|
1102
|
+
passed: number;
|
|
1103
|
+
status: "empty" | "fail" | "pass" | "warn";
|
|
1104
|
+
thresholdMs: number;
|
|
1105
|
+
total: number;
|
|
1106
|
+
};
|
|
1107
|
+
export type VoiceBargeInMonitor = {
|
|
1108
|
+
getSnapshot: () => VoiceBargeInMonitorSnapshot;
|
|
1109
|
+
recordRequested: (input: {
|
|
1110
|
+
reason: VoiceBargeInTriggerReason;
|
|
1111
|
+
sessionId?: string | null;
|
|
1112
|
+
}) => VoiceBargeInMonitorEvent;
|
|
1113
|
+
recordSkipped: (input: {
|
|
1114
|
+
reason: VoiceBargeInTriggerReason;
|
|
1115
|
+
sessionId?: string | null;
|
|
1116
|
+
}) => VoiceBargeInMonitorEvent;
|
|
1117
|
+
recordStopped: (input: {
|
|
1118
|
+
latencyMs?: number;
|
|
1119
|
+
playbackStopLatencyMs?: number;
|
|
1120
|
+
reason: VoiceBargeInTriggerReason;
|
|
1121
|
+
sessionId?: string | null;
|
|
1122
|
+
}) => VoiceBargeInMonitorEvent;
|
|
1123
|
+
subscribe: (subscriber: () => void) => () => void;
|
|
750
1124
|
};
|
|
751
1125
|
export type VoiceAudioPlayerOptions = {
|
|
752
1126
|
autoStart?: boolean;
|
|
@@ -757,10 +1131,10 @@ export type VoiceDuplexControllerOptions = VoiceControllerOptions & {
|
|
|
757
1131
|
audioPlayer?: VoiceAudioPlayerOptions;
|
|
758
1132
|
bargeIn?: VoiceBargeInOptions;
|
|
759
1133
|
};
|
|
760
|
-
export type VoiceSTTRoutingGoal =
|
|
761
|
-
export type VoiceSTTRoutingCorrectionMode =
|
|
1134
|
+
export type VoiceSTTRoutingGoal = "best" | "low-cost";
|
|
1135
|
+
export type VoiceSTTRoutingCorrectionMode = "generic" | "none" | "risky-turn";
|
|
762
1136
|
export type VoiceSTTRoutingStrategy = {
|
|
763
|
-
benchmarkSessionTarget:
|
|
1137
|
+
benchmarkSessionTarget: "deepgram-corrected" | "deepgram-flux";
|
|
764
1138
|
correctionMode: VoiceSTTRoutingCorrectionMode;
|
|
765
1139
|
goal: VoiceSTTRoutingGoal;
|
|
766
1140
|
notes: string[];
|
|
@@ -774,7 +1148,7 @@ export type VoiceHTMXRenderInput<TResult = unknown, TSession extends VoiceSessio
|
|
|
774
1148
|
result?: TResult;
|
|
775
1149
|
session?: TSession;
|
|
776
1150
|
sessionId?: string;
|
|
777
|
-
status: VoiceSessionStatus |
|
|
1151
|
+
status: VoiceSessionStatus | "idle";
|
|
778
1152
|
turnCount: number;
|
|
779
1153
|
turns: VoiceTurnRecord<TResult>[];
|
|
780
1154
|
};
|
|
@@ -802,9 +1176,11 @@ export type VoiceHTMXOptions<TSession extends VoiceSessionRecord = VoiceSessionR
|
|
|
802
1176
|
export type VoiceHTMXConfig<TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = VoiceHTMXRenderer<TSession, TResult> | VoiceHTMXOptions<TSession, TResult>;
|
|
803
1177
|
export type VoiceStreamState<TResult = unknown> = {
|
|
804
1178
|
call: VoiceCallLifecycleState | null;
|
|
1179
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
805
1180
|
sessionId: string | null;
|
|
806
1181
|
scenarioId: string | null;
|
|
807
|
-
status: VoiceSessionStatus |
|
|
1182
|
+
status: VoiceSessionStatus | "idle";
|
|
1183
|
+
reconnect: VoiceReconnectClientState;
|
|
808
1184
|
partial: string;
|
|
809
1185
|
turns: VoiceTurnRecord<TResult>[];
|
|
810
1186
|
assistantTexts: string[];
|
|
@@ -819,7 +1195,7 @@ export type VoiceStreamState<TResult = unknown> = {
|
|
|
819
1195
|
};
|
|
820
1196
|
export type VoiceStream<TResult = unknown> = {
|
|
821
1197
|
call: VoiceCallLifecycleState | null;
|
|
822
|
-
callControl: (message: Omit<VoiceClientCallControlMessage,
|
|
1198
|
+
callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
|
|
823
1199
|
close: () => void;
|
|
824
1200
|
start: (input?: {
|
|
825
1201
|
scenarioId?: string;
|
|
@@ -831,10 +1207,13 @@ export type VoiceStream<TResult = unknown> = {
|
|
|
831
1207
|
getSnapshot: () => VoiceStreamState<TResult>;
|
|
832
1208
|
isConnected: boolean;
|
|
833
1209
|
partial: string;
|
|
1210
|
+
reconnect: VoiceReconnectClientState;
|
|
834
1211
|
sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
|
|
1212
|
+
simulateDisconnect: () => void;
|
|
835
1213
|
sessionId: string | null;
|
|
1214
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
836
1215
|
scenarioId: string | null;
|
|
837
|
-
status: VoiceSessionStatus |
|
|
1216
|
+
status: VoiceSessionStatus | "idle";
|
|
838
1217
|
subscribe: (subscriber: () => void) => () => void;
|
|
839
1218
|
turns: VoiceTurnRecord<TResult>[];
|
|
840
1219
|
assistantTexts: string[];
|
|
@@ -860,7 +1239,7 @@ export type VoiceAudioPlayerState = {
|
|
|
860
1239
|
queuedChunkCount: number;
|
|
861
1240
|
};
|
|
862
1241
|
export type VoiceAudioPlayerSource = {
|
|
863
|
-
assistantAudio: VoiceStreamState[
|
|
1242
|
+
assistantAudio: VoiceStreamState["assistantAudio"];
|
|
864
1243
|
subscribe: (subscriber: () => void) => () => void;
|
|
865
1244
|
};
|
|
866
1245
|
export type VoiceAudioPlayer = {
|
|
@@ -887,7 +1266,7 @@ export type VoiceBargeInBinding = {
|
|
|
887
1266
|
export type VoiceController<TResult = unknown> = {
|
|
888
1267
|
bindHTMX: (options: VoiceHTMXBindingOptions) => () => void;
|
|
889
1268
|
call: VoiceCallLifecycleState | null;
|
|
890
|
-
callControl: (message: Omit<VoiceClientCallControlMessage,
|
|
1269
|
+
callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
|
|
891
1270
|
close: () => void;
|
|
892
1271
|
endTurn: () => void;
|
|
893
1272
|
start: (input?: {
|
|
@@ -900,12 +1279,15 @@ export type VoiceController<TResult = unknown> = {
|
|
|
900
1279
|
isConnected: boolean;
|
|
901
1280
|
isRecording: boolean;
|
|
902
1281
|
partial: string;
|
|
1282
|
+
reconnect: VoiceReconnectClientState;
|
|
903
1283
|
recordingError: string | null;
|
|
904
1284
|
sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
|
|
1285
|
+
simulateDisconnect: () => void;
|
|
905
1286
|
sessionId: string | null;
|
|
1287
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
906
1288
|
scenarioId: string | null;
|
|
907
1289
|
startRecording: () => Promise<void>;
|
|
908
|
-
status: VoiceSessionStatus |
|
|
1290
|
+
status: VoiceSessionStatus | "idle";
|
|
909
1291
|
stopRecording: () => void;
|
|
910
1292
|
subscribe: (subscriber: () => void) => () => void;
|
|
911
1293
|
toggleRecording: () => Promise<void>;
|
|
@@ -929,40 +1311,54 @@ export type VoiceHTMXBindingOptions = {
|
|
|
929
1311
|
sessionQueryParam?: string;
|
|
930
1312
|
};
|
|
931
1313
|
export type VoiceStoreAction<TResult = unknown> = {
|
|
932
|
-
type:
|
|
1314
|
+
type: "session";
|
|
933
1315
|
sessionId: string;
|
|
1316
|
+
sessionMetadata?: Record<string, unknown>;
|
|
934
1317
|
scenarioId?: string;
|
|
935
1318
|
status: VoiceSessionStatus;
|
|
936
1319
|
} | {
|
|
937
|
-
type:
|
|
1320
|
+
type: "replay";
|
|
1321
|
+
assistantTexts: string[];
|
|
1322
|
+
call?: VoiceCallLifecycleState;
|
|
1323
|
+
partial: string;
|
|
1324
|
+
scenarioId?: string;
|
|
1325
|
+
sessionId: string;
|
|
1326
|
+
sessionMetadata?: Record<string, unknown>;
|
|
1327
|
+
status: VoiceSessionStatus;
|
|
1328
|
+
turns: VoiceTurnRecord<TResult>[];
|
|
1329
|
+
} | {
|
|
1330
|
+
type: "call_lifecycle";
|
|
938
1331
|
event: VoiceCallLifecycleEvent;
|
|
939
1332
|
sessionId: string;
|
|
940
1333
|
} | {
|
|
941
|
-
type:
|
|
1334
|
+
type: "partial";
|
|
942
1335
|
transcript: Transcript;
|
|
943
1336
|
} | {
|
|
944
|
-
type:
|
|
1337
|
+
type: "final";
|
|
945
1338
|
transcript: Transcript;
|
|
946
1339
|
} | {
|
|
947
|
-
type:
|
|
1340
|
+
type: "turn";
|
|
948
1341
|
turn: VoiceTurnRecord<TResult>;
|
|
949
1342
|
} | {
|
|
950
|
-
type:
|
|
1343
|
+
type: "assistant";
|
|
951
1344
|
text: string;
|
|
952
1345
|
} | {
|
|
953
|
-
type:
|
|
1346
|
+
type: "audio";
|
|
954
1347
|
chunk: Uint8Array;
|
|
955
1348
|
format: AudioFormat;
|
|
956
1349
|
receivedAt: number;
|
|
957
1350
|
turnId?: string;
|
|
958
1351
|
} | {
|
|
959
|
-
type:
|
|
1352
|
+
type: "complete";
|
|
960
1353
|
sessionId: string;
|
|
961
1354
|
} | {
|
|
962
|
-
type:
|
|
1355
|
+
type: "error";
|
|
963
1356
|
message: string;
|
|
964
1357
|
} | {
|
|
965
|
-
type:
|
|
1358
|
+
type: "connected";
|
|
1359
|
+
} | {
|
|
1360
|
+
type: "connection";
|
|
1361
|
+
reconnect: VoiceReconnectClientState;
|
|
966
1362
|
} | {
|
|
967
|
-
type:
|
|
1363
|
+
type: "disconnected";
|
|
968
1364
|
};
|