@absolutejs/voice 0.0.22-beta.54 → 0.0.22-beta.540
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 +4518 -951
- 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 +10494 -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} +81 -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/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} +59 -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/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} +416 -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 +369 -74
- package/dist/index.js +45779 -7413
- 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 +12900 -320
- 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 +7047 -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 +149 -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 +5756 -636
- 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 +12193 -402
- 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 +154 -256
- 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
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import type { VoiceRealtimeChannelReport } from "./realtimeChannel";
|
|
3
|
+
export type VoiceRealtimeProviderContractStatus = "fail" | "pass" | "warn";
|
|
4
|
+
export type VoiceRealtimeProviderContractCapability = "barge-in" | "browser-format-negotiation" | "duplex-audio" | "first-audio-latency" | "raw-pcm" | "reconnect" | "trace-evidence" | "turn-commit";
|
|
5
|
+
export type VoiceRealtimeProviderContractDefinition<TProvider extends string = string> = {
|
|
6
|
+
capabilities?: readonly VoiceRealtimeProviderContractCapability[];
|
|
7
|
+
configured?: boolean;
|
|
8
|
+
env?: Record<string, string | undefined>;
|
|
9
|
+
fallbackProviders?: readonly TProvider[];
|
|
10
|
+
implementationStatus?: "available" | "planned";
|
|
11
|
+
latencyBudgetMs?: number;
|
|
12
|
+
provider: TProvider;
|
|
13
|
+
readinessHref?: string;
|
|
14
|
+
realtimeChannel?: VoiceRealtimeChannelReport;
|
|
15
|
+
requiredCapabilities?: readonly VoiceRealtimeProviderContractCapability[];
|
|
16
|
+
requiredEnv?: readonly string[];
|
|
17
|
+
selected?: boolean;
|
|
18
|
+
traceHref?: string;
|
|
19
|
+
};
|
|
20
|
+
export type VoiceRealtimeProviderPresetProvider = "gemini-live" | "openai-realtime" | (string & {});
|
|
21
|
+
export type VoiceRealtimeProviderContractMatrixPresetOptions<TProvider extends string = VoiceRealtimeProviderPresetProvider> = {
|
|
22
|
+
capabilities?: Record<string, readonly VoiceRealtimeProviderContractCapability[]>;
|
|
23
|
+
configured?: Record<string, boolean>;
|
|
24
|
+
env?: Record<string, string | undefined>;
|
|
25
|
+
fallbackProviders?: Record<string, readonly TProvider[]>;
|
|
26
|
+
implementationStatus?: Record<string, "available" | "planned">;
|
|
27
|
+
latencyBudgets?: Record<string, number>;
|
|
28
|
+
providers?: readonly TProvider[];
|
|
29
|
+
readinessHref?: string | Record<string, string | undefined>;
|
|
30
|
+
realtimeChannels?: Record<string, VoiceRealtimeChannelReport | undefined>;
|
|
31
|
+
requiredCapabilities?: Record<string, readonly VoiceRealtimeProviderContractCapability[]>;
|
|
32
|
+
requiredEnv?: Record<string, readonly string[]>;
|
|
33
|
+
selected?: TProvider;
|
|
34
|
+
traceHref?: string | Record<string, string | undefined>;
|
|
35
|
+
};
|
|
36
|
+
export type VoiceRealtimeProviderContractCheck = {
|
|
37
|
+
detail?: string;
|
|
38
|
+
key: string;
|
|
39
|
+
label: string;
|
|
40
|
+
status: VoiceRealtimeProviderContractStatus;
|
|
41
|
+
};
|
|
42
|
+
export type VoiceRealtimeProviderContractRow<TProvider extends string = string> = {
|
|
43
|
+
checks: VoiceRealtimeProviderContractCheck[];
|
|
44
|
+
configured: boolean;
|
|
45
|
+
provider: TProvider;
|
|
46
|
+
selected: boolean;
|
|
47
|
+
status: VoiceRealtimeProviderContractStatus;
|
|
48
|
+
};
|
|
49
|
+
export type VoiceRealtimeProviderContractMatrixInput<TProvider extends string = string> = {
|
|
50
|
+
contracts: readonly VoiceRealtimeProviderContractDefinition<TProvider>[];
|
|
51
|
+
};
|
|
52
|
+
export type VoiceRealtimeProviderContractMatrixReport<TProvider extends string = string> = {
|
|
53
|
+
failed: number;
|
|
54
|
+
passed: number;
|
|
55
|
+
rows: VoiceRealtimeProviderContractRow<TProvider>[];
|
|
56
|
+
status: VoiceRealtimeProviderContractStatus;
|
|
57
|
+
total: number;
|
|
58
|
+
warned: number;
|
|
59
|
+
};
|
|
60
|
+
export type VoiceRealtimeProviderContractAssertionInput<TProvider extends string = string> = {
|
|
61
|
+
maxFailed?: number;
|
|
62
|
+
maxStatus?: VoiceRealtimeProviderContractStatus;
|
|
63
|
+
maxWarned?: number;
|
|
64
|
+
minRows?: number;
|
|
65
|
+
requireSelected?: boolean;
|
|
66
|
+
requiredCapabilities?: readonly VoiceRealtimeProviderContractCapability[];
|
|
67
|
+
requiredCheckKeys?: readonly string[];
|
|
68
|
+
requiredProviders?: readonly TProvider[];
|
|
69
|
+
};
|
|
70
|
+
export type VoiceRealtimeProviderContractAssertionReport<TProvider extends string = string> = {
|
|
71
|
+
failed: number;
|
|
72
|
+
issues: string[];
|
|
73
|
+
ok: boolean;
|
|
74
|
+
providers: TProvider[];
|
|
75
|
+
selectedProviders: TProvider[];
|
|
76
|
+
status: VoiceRealtimeProviderContractStatus;
|
|
77
|
+
total: number;
|
|
78
|
+
warned: number;
|
|
79
|
+
};
|
|
80
|
+
export type VoiceRealtimeProviderContractRoutesOptions<TProvider extends string = string> = {
|
|
81
|
+
headers?: HeadersInit;
|
|
82
|
+
htmlPath?: false | string;
|
|
83
|
+
matrix: (() => Promise<VoiceRealtimeProviderContractMatrixInput<TProvider>> | VoiceRealtimeProviderContractMatrixInput<TProvider>) | VoiceRealtimeProviderContractMatrixInput<TProvider>;
|
|
84
|
+
name?: string;
|
|
85
|
+
path?: string;
|
|
86
|
+
render?: (report: VoiceRealtimeProviderContractMatrixReport<TProvider>) => Promise<string> | string;
|
|
87
|
+
title?: string;
|
|
88
|
+
};
|
|
89
|
+
export declare const assertVoiceRealtimeProviderContractEvidence: <TProvider extends string = string>(report: VoiceRealtimeProviderContractMatrixReport<TProvider>, input?: VoiceRealtimeProviderContractAssertionInput<TProvider>) => VoiceRealtimeProviderContractAssertionReport<TProvider>;
|
|
90
|
+
export declare const buildVoiceRealtimeProviderContractMatrix: <TProvider extends string = string>(input: VoiceRealtimeProviderContractMatrixInput<TProvider>) => VoiceRealtimeProviderContractMatrixReport<TProvider>;
|
|
91
|
+
export declare const createVoiceRealtimeProviderContractMatrixPreset: <TProvider extends string = VoiceRealtimeProviderPresetProvider>(options?: VoiceRealtimeProviderContractMatrixPresetOptions<TProvider>) => VoiceRealtimeProviderContractMatrixInput<TProvider>;
|
|
92
|
+
export declare const evaluateVoiceRealtimeProviderContractEvidence: <TProvider extends string = string>(report: VoiceRealtimeProviderContractMatrixReport<TProvider>, input?: VoiceRealtimeProviderContractAssertionInput<TProvider>) => VoiceRealtimeProviderContractAssertionReport<TProvider>;
|
|
93
|
+
export declare const createVoiceRealtimeProviderContractRoutes: <TProvider extends string = string>(options: VoiceRealtimeProviderContractRoutesOptions<TProvider>) => Elysia<"", {
|
|
94
|
+
decorator: {};
|
|
95
|
+
store: {};
|
|
96
|
+
derive: {};
|
|
97
|
+
resolve: {};
|
|
98
|
+
}, {
|
|
99
|
+
typebox: {};
|
|
100
|
+
error: {};
|
|
101
|
+
}, {
|
|
102
|
+
schema: {};
|
|
103
|
+
standaloneSchema: {};
|
|
104
|
+
macro: {};
|
|
105
|
+
macroFn: {};
|
|
106
|
+
parser: {};
|
|
107
|
+
response: {};
|
|
108
|
+
}, {
|
|
109
|
+
[x: string]: {
|
|
110
|
+
get: {
|
|
111
|
+
body: unknown;
|
|
112
|
+
params: {};
|
|
113
|
+
query: unknown;
|
|
114
|
+
headers: unknown;
|
|
115
|
+
response: {
|
|
116
|
+
200: Response;
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
};
|
|
120
|
+
}, {
|
|
121
|
+
derive: {};
|
|
122
|
+
resolve: {};
|
|
123
|
+
schema: {};
|
|
124
|
+
standaloneSchema: {};
|
|
125
|
+
response: {};
|
|
126
|
+
}, {
|
|
127
|
+
derive: {};
|
|
128
|
+
resolve: {};
|
|
129
|
+
schema: {};
|
|
130
|
+
standaloneSchema: {};
|
|
131
|
+
response: {};
|
|
132
|
+
}>;
|
|
133
|
+
export declare const renderVoiceRealtimeProviderContractHTML: <TProvider extends string = string>(report: VoiceRealtimeProviderContractMatrixReport<TProvider>, title?: string) => string;
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import type { VoiceReconnectClientState, VoiceSessionRecord, VoiceSessionStore } from "./types";
|
|
3
|
+
import type { StoredVoiceTraceEvent } from "./trace";
|
|
4
|
+
export type VoiceReconnectContractSnapshot = {
|
|
5
|
+
at: number;
|
|
6
|
+
reconnect: VoiceReconnectClientState;
|
|
7
|
+
turnIds?: readonly string[];
|
|
8
|
+
};
|
|
9
|
+
type VoiceReconnectContractIssue = {
|
|
10
|
+
code: string;
|
|
11
|
+
message: string;
|
|
12
|
+
severity: "error" | "warning";
|
|
13
|
+
};
|
|
14
|
+
export type VoiceReconnectContractReport = {
|
|
15
|
+
checkedAt: number;
|
|
16
|
+
issues: VoiceReconnectContractIssue[];
|
|
17
|
+
pass: boolean;
|
|
18
|
+
resumeLatencyP95Ms?: number;
|
|
19
|
+
snapshotCount: number;
|
|
20
|
+
statuses: VoiceReconnectClientState["status"][];
|
|
21
|
+
summary: {
|
|
22
|
+
attempts: number;
|
|
23
|
+
maxAttempts: number;
|
|
24
|
+
reconnected: boolean;
|
|
25
|
+
resumed: boolean;
|
|
26
|
+
exhausted: boolean;
|
|
27
|
+
duplicateTurnIds: string[];
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export type VoiceReconnectContractOptions = {
|
|
31
|
+
allowNoSnapshots?: boolean;
|
|
32
|
+
requireReconnect?: boolean;
|
|
33
|
+
requireResume?: boolean;
|
|
34
|
+
requireReplayProtection?: boolean;
|
|
35
|
+
snapshots: readonly VoiceReconnectContractSnapshot[];
|
|
36
|
+
};
|
|
37
|
+
export type VoiceReconnectProofStatus = "fail" | "pass" | "warn";
|
|
38
|
+
export type VoiceReconnectProofReport = {
|
|
39
|
+
checkedAt: number;
|
|
40
|
+
contract: VoiceReconnectContractReport;
|
|
41
|
+
generatedAt: string;
|
|
42
|
+
ok: boolean;
|
|
43
|
+
reconnectAware: true;
|
|
44
|
+
sessionCount: number;
|
|
45
|
+
snapshotCount: number;
|
|
46
|
+
status: VoiceReconnectProofStatus;
|
|
47
|
+
summary: string;
|
|
48
|
+
};
|
|
49
|
+
export type VoiceReconnectProofOptions = {
|
|
50
|
+
completedSessionCount?: number;
|
|
51
|
+
maxAttempts?: number;
|
|
52
|
+
requireObservedReconnect?: boolean;
|
|
53
|
+
requireReplayProtection?: boolean;
|
|
54
|
+
requireResumeAfterReconnect?: boolean;
|
|
55
|
+
sessions?: readonly VoiceSessionRecord[];
|
|
56
|
+
snapshots?: readonly VoiceReconnectContractSnapshot[];
|
|
57
|
+
};
|
|
58
|
+
export type VoiceReconnectProofRoutesOptions = Omit<VoiceReconnectProofOptions, "completedSessionCount" | "sessions" | "snapshots"> & {
|
|
59
|
+
getCompletedSessionCount?: () => number | Promise<number>;
|
|
60
|
+
getSessions?: () => readonly VoiceSessionRecord[] | Promise<readonly VoiceSessionRecord[]>;
|
|
61
|
+
getSnapshots?: () => readonly VoiceReconnectContractSnapshot[] | Promise<readonly VoiceReconnectContractSnapshot[]>;
|
|
62
|
+
headers?: HeadersInit;
|
|
63
|
+
maxCollectedSnapshots?: number;
|
|
64
|
+
name?: string;
|
|
65
|
+
path?: string;
|
|
66
|
+
store?: VoiceSessionStore;
|
|
67
|
+
};
|
|
68
|
+
export type VoiceReconnectContractRoutesOptions = Omit<VoiceReconnectContractOptions, "snapshots"> & {
|
|
69
|
+
getSnapshots: () => readonly VoiceReconnectContractSnapshot[] | Promise<readonly VoiceReconnectContractSnapshot[]>;
|
|
70
|
+
headers?: HeadersInit;
|
|
71
|
+
htmlPath?: false | string;
|
|
72
|
+
name?: string;
|
|
73
|
+
path?: string;
|
|
74
|
+
render?: (report: VoiceReconnectContractReport) => string | Promise<string>;
|
|
75
|
+
};
|
|
76
|
+
export declare const summarizeVoiceReconnectContractSnapshots: (events: readonly StoredVoiceTraceEvent[], options?: {
|
|
77
|
+
sessionId?: string;
|
|
78
|
+
}) => VoiceReconnectContractSnapshot[];
|
|
79
|
+
export declare const summarizeVoiceReconnectProofSessions: (sessions: readonly VoiceSessionRecord[], options?: {
|
|
80
|
+
maxAttempts?: number;
|
|
81
|
+
}) => VoiceReconnectContractSnapshot[];
|
|
82
|
+
export declare const buildVoiceReconnectProofReport: (options?: VoiceReconnectProofOptions) => VoiceReconnectProofReport;
|
|
83
|
+
export declare const runVoiceReconnectContract: (options: VoiceReconnectContractOptions) => VoiceReconnectContractReport;
|
|
84
|
+
export declare const createVoiceReconnectContractRoutes: (options: VoiceReconnectContractRoutesOptions) => Elysia<"", {
|
|
85
|
+
decorator: {};
|
|
86
|
+
store: {};
|
|
87
|
+
derive: {};
|
|
88
|
+
resolve: {};
|
|
89
|
+
}, {
|
|
90
|
+
typebox: {};
|
|
91
|
+
error: {};
|
|
92
|
+
}, {
|
|
93
|
+
schema: {};
|
|
94
|
+
standaloneSchema: {};
|
|
95
|
+
macro: {};
|
|
96
|
+
macroFn: {};
|
|
97
|
+
parser: {};
|
|
98
|
+
response: {};
|
|
99
|
+
}, {
|
|
100
|
+
[x: string]: {
|
|
101
|
+
get: {
|
|
102
|
+
body: unknown;
|
|
103
|
+
params: {};
|
|
104
|
+
query: unknown;
|
|
105
|
+
headers: unknown;
|
|
106
|
+
response: {
|
|
107
|
+
200: Response;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
}, {
|
|
112
|
+
derive: {};
|
|
113
|
+
resolve: {};
|
|
114
|
+
schema: {};
|
|
115
|
+
standaloneSchema: {};
|
|
116
|
+
response: {};
|
|
117
|
+
}, {
|
|
118
|
+
derive: {};
|
|
119
|
+
resolve: {};
|
|
120
|
+
schema: {};
|
|
121
|
+
standaloneSchema: {};
|
|
122
|
+
response: {};
|
|
123
|
+
}>;
|
|
124
|
+
export declare const createVoiceReconnectProofRoutes: (options?: VoiceReconnectProofRoutesOptions) => Elysia<"", {
|
|
125
|
+
decorator: {};
|
|
126
|
+
store: {};
|
|
127
|
+
derive: {};
|
|
128
|
+
resolve: {};
|
|
129
|
+
}, {
|
|
130
|
+
typebox: {};
|
|
131
|
+
error: {};
|
|
132
|
+
}, {
|
|
133
|
+
schema: {};
|
|
134
|
+
standaloneSchema: {};
|
|
135
|
+
macro: {};
|
|
136
|
+
macroFn: {};
|
|
137
|
+
parser: {};
|
|
138
|
+
response: {};
|
|
139
|
+
}, {
|
|
140
|
+
[x: string]: {
|
|
141
|
+
get: {
|
|
142
|
+
body: unknown;
|
|
143
|
+
params: {};
|
|
144
|
+
query: unknown;
|
|
145
|
+
headers: unknown;
|
|
146
|
+
response: {
|
|
147
|
+
200: Response;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
} & {
|
|
152
|
+
[x: string]: {
|
|
153
|
+
post: {
|
|
154
|
+
body: unknown;
|
|
155
|
+
params: {};
|
|
156
|
+
query: unknown;
|
|
157
|
+
headers: unknown;
|
|
158
|
+
response: {
|
|
159
|
+
200: Response;
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
}, {
|
|
164
|
+
derive: {};
|
|
165
|
+
resolve: {};
|
|
166
|
+
schema: {};
|
|
167
|
+
standaloneSchema: {};
|
|
168
|
+
response: {};
|
|
169
|
+
}, {
|
|
170
|
+
derive: {};
|
|
171
|
+
resolve: {};
|
|
172
|
+
schema: {};
|
|
173
|
+
standaloneSchema: {};
|
|
174
|
+
response: {};
|
|
175
|
+
}>;
|
|
176
|
+
export declare const renderVoiceReconnectContractHTML: (report: VoiceReconnectContractReport) => string;
|
|
177
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type AudioRedactionFill } from "@absolutejs/media";
|
|
2
|
+
import type { AudioFormat, Transcript } from "./types";
|
|
3
|
+
import { type VoiceRedactionPattern } from "./redaction";
|
|
4
|
+
export type VoiceRecordingRedactionRange = {
|
|
5
|
+
endMs: number;
|
|
6
|
+
label?: string;
|
|
7
|
+
startMs: number;
|
|
8
|
+
};
|
|
9
|
+
export type DeriveVoiceRecordingRedactionRangesInput = {
|
|
10
|
+
/** When the recording starts in epoch ms; used to convert absolute timestamps if transcripts use them. */
|
|
11
|
+
recordingStartedAtEpochMs?: number;
|
|
12
|
+
/** Optional padding around redaction ranges, in ms (default 100). */
|
|
13
|
+
paddingMs?: number;
|
|
14
|
+
/** Patterns to test against transcripts. Defaults to DEFAULT_VOICE_REDACTION_PATTERNS. */
|
|
15
|
+
patterns?: ReadonlyArray<VoiceRedactionPattern>;
|
|
16
|
+
/** Transcripts to scan. */
|
|
17
|
+
transcripts: ReadonlyArray<Transcript>;
|
|
18
|
+
};
|
|
19
|
+
export declare const deriveVoiceRecordingRedactionRanges: (input: DeriveVoiceRecordingRedactionRangesInput) => VoiceRecordingRedactionRange[];
|
|
20
|
+
export type RedactVoiceRecordingInput = {
|
|
21
|
+
/** Raw pcm_s16le bytes of the recorded artifact. */
|
|
22
|
+
pcm: ArrayBuffer | ArrayBufferView;
|
|
23
|
+
/** Format of the recording (must be raw pcm_s16le). */
|
|
24
|
+
format: AudioFormat;
|
|
25
|
+
/** Final transcripts with timing, scanned for sensitive content. */
|
|
26
|
+
transcripts: ReadonlyArray<Transcript>;
|
|
27
|
+
recordingStartedAtEpochMs?: number;
|
|
28
|
+
paddingMs?: number;
|
|
29
|
+
patterns?: ReadonlyArray<VoiceRedactionPattern>;
|
|
30
|
+
/** Bleep style — silence (default) or a tone. */
|
|
31
|
+
fill?: AudioRedactionFill;
|
|
32
|
+
};
|
|
33
|
+
export type RedactVoiceRecordingResult = {
|
|
34
|
+
/** The redacted pcm_s16le bytes. */
|
|
35
|
+
bytes: Uint8Array;
|
|
36
|
+
/** The merged ranges that were bleeped. */
|
|
37
|
+
ranges: VoiceRecordingRedactionRange[];
|
|
38
|
+
/** How many ranges were redacted. */
|
|
39
|
+
redactedCount: number;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* End-to-end recording redaction: derives sensitive ranges from final
|
|
43
|
+
* transcripts, merges overlaps, and applies the audio bleep via
|
|
44
|
+
* `@absolutejs/media`'s `applyAudioRedaction`. Returns the redacted bytes
|
|
45
|
+
* ready to re-store in place of the original artifact.
|
|
46
|
+
*/
|
|
47
|
+
export declare const redactVoiceRecording: (input: RedactVoiceRecordingInput) => RedactVoiceRecordingResult;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { AudioFormat } from "./types";
|
|
2
|
+
export type VoiceRecordingChannel = "assistant" | "user";
|
|
3
|
+
export type VoiceRecordingArtifact = {
|
|
4
|
+
audioBytes: Uint8Array;
|
|
5
|
+
capturedAt: number;
|
|
6
|
+
channel: VoiceRecordingChannel;
|
|
7
|
+
durationMs: number;
|
|
8
|
+
format: AudioFormat;
|
|
9
|
+
sessionId: string;
|
|
10
|
+
};
|
|
11
|
+
export type StoredVoiceRecordingArtifact = VoiceRecordingArtifact & {
|
|
12
|
+
recordingUrl?: string;
|
|
13
|
+
};
|
|
14
|
+
export type VoiceRecordingEncoderInput = {
|
|
15
|
+
channel: VoiceRecordingChannel;
|
|
16
|
+
format: AudioFormat;
|
|
17
|
+
pcm: Uint8Array;
|
|
18
|
+
sessionId: string;
|
|
19
|
+
};
|
|
20
|
+
export type VoiceRecordingEncoderResult = {
|
|
21
|
+
bytes: Uint8Array;
|
|
22
|
+
contentType: string;
|
|
23
|
+
extension: string;
|
|
24
|
+
};
|
|
25
|
+
export type VoiceRecordingEncoder = {
|
|
26
|
+
encode: (input: VoiceRecordingEncoderInput) => Promise<VoiceRecordingEncoderResult> | VoiceRecordingEncoderResult;
|
|
27
|
+
kind: string;
|
|
28
|
+
};
|
|
29
|
+
export type VoiceRecordingStore = {
|
|
30
|
+
get: (sessionId: string, channel: VoiceRecordingChannel) => Promise<StoredVoiceRecordingArtifact | undefined>;
|
|
31
|
+
list: (sessionId: string) => Promise<StoredVoiceRecordingArtifact[]>;
|
|
32
|
+
put: (artifact: VoiceRecordingArtifact) => Promise<StoredVoiceRecordingArtifact>;
|
|
33
|
+
};
|
|
34
|
+
export declare const encodePcmAsWav: (pcm: Uint8Array, format: AudioFormat) => Uint8Array;
|
|
35
|
+
export type InterleavePcmInput = {
|
|
36
|
+
/** Mono PCM bytes for the left channel. */
|
|
37
|
+
left: Uint8Array;
|
|
38
|
+
/** Mono PCM bytes for the right channel. */
|
|
39
|
+
right: Uint8Array;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Interleaves two mono pcm_s16le buffers into a single stereo pcm_s16le
|
|
43
|
+
* buffer at the same sample rate. Output length is max(left, right) * 2.
|
|
44
|
+
* The shorter buffer is right-padded with silence to align frame counts.
|
|
45
|
+
*/
|
|
46
|
+
export declare const interleaveStereoPcm: (input: InterleavePcmInput) => Uint8Array;
|
|
47
|
+
export type EncodeStereoWavInput = {
|
|
48
|
+
format: AudioFormat;
|
|
49
|
+
left: Uint8Array;
|
|
50
|
+
right: Uint8Array;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Builds a stereo WAV file from two mono pcm_s16le channels. Convention:
|
|
54
|
+
* left = user track, right = assistant track. Review tools can split them
|
|
55
|
+
* back out with any DAW.
|
|
56
|
+
*/
|
|
57
|
+
export declare const computePcmDurationMs: (pcmByteLength: number, format: AudioFormat) => number;
|
|
58
|
+
export declare const createVoiceMemoryRecordingStore: () => VoiceRecordingStore;
|
|
59
|
+
export declare const createVoiceWavRecordingEncoder: () => VoiceRecordingEncoder;
|
|
60
|
+
export declare const encodeStereoWav: ({ format, left, right, }: EncodeStereoWavInput) => Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Transcript } from "./types";
|
|
2
|
+
export type VoiceRedactionPattern = {
|
|
3
|
+
label: string;
|
|
4
|
+
replacement?: string;
|
|
5
|
+
regex: RegExp;
|
|
6
|
+
};
|
|
7
|
+
export declare const DEFAULT_VOICE_REDACTION_PATTERNS: VoiceRedactionPattern[];
|
|
8
|
+
export type VoiceTranscriptRedactor = (transcript: Transcript) => Transcript;
|
|
9
|
+
export type CreateVoiceTranscriptRedactorOptions = {
|
|
10
|
+
patterns?: VoiceRedactionPattern[];
|
|
11
|
+
};
|
|
12
|
+
export declare const createVoiceTranscriptRedactor: (options?: CreateVoiceTranscriptRedactorOptions) => VoiceTranscriptRedactor;
|
|
13
|
+
export declare const redactVoiceTranscript: (transcript: Transcript, patterns?: VoiceRedactionPattern[]) => Transcript;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type VoiceReminderChannel = "call" | "sms" | "email";
|
|
2
|
+
export type VoiceReminderTrigger = {
|
|
3
|
+
id: string;
|
|
4
|
+
channel: VoiceReminderChannel;
|
|
5
|
+
offsetMinutesBeforeStart: number;
|
|
6
|
+
templateId?: string;
|
|
7
|
+
retryOnFailure?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export type VoiceReminderJob = {
|
|
10
|
+
id: string;
|
|
11
|
+
appointmentId: string;
|
|
12
|
+
triggerId: string;
|
|
13
|
+
channel: VoiceReminderChannel;
|
|
14
|
+
scheduledAtMs: number;
|
|
15
|
+
status: "pending" | "in-flight" | "sent" | "skipped" | "failed" | "cancelled";
|
|
16
|
+
attempts: number;
|
|
17
|
+
lastError?: string;
|
|
18
|
+
metadata?: Record<string, string>;
|
|
19
|
+
};
|
|
20
|
+
export type ScheduleVoiceRemindersInput = {
|
|
21
|
+
appointmentId: string;
|
|
22
|
+
appointmentStartMs: number;
|
|
23
|
+
triggers: VoiceReminderTrigger[];
|
|
24
|
+
metadata?: Record<string, string>;
|
|
25
|
+
};
|
|
26
|
+
export type CreateVoiceReminderSchedulerOptions = {
|
|
27
|
+
generateJobId?: () => string;
|
|
28
|
+
now?: () => number;
|
|
29
|
+
defaultTriggers?: VoiceReminderTrigger[];
|
|
30
|
+
maxAttempts?: number;
|
|
31
|
+
};
|
|
32
|
+
export declare const DEFAULT_VOICE_REMINDER_TRIGGERS: VoiceReminderTrigger[];
|
|
33
|
+
export declare const createVoiceReminderScheduler: (options?: CreateVoiceReminderSchedulerOptions) => {
|
|
34
|
+
cancelForAppointment: (appointmentId: string) => number;
|
|
35
|
+
due: (at?: number) => VoiceReminderJob[];
|
|
36
|
+
markFailed: (jobId: string, error: string) => boolean;
|
|
37
|
+
markInFlight: (jobId: string) => boolean;
|
|
38
|
+
markSent: (jobId: string) => boolean;
|
|
39
|
+
schedule: (input: ScheduleVoiceRemindersInput) => VoiceReminderJob[];
|
|
40
|
+
list: (appointmentId?: string) => VoiceReminderJob[];
|
|
41
|
+
subscribe(listener: (job: VoiceReminderJob) => void): () => void;
|
|
42
|
+
};
|
|
43
|
+
export type VoiceReminderScheduler = ReturnType<typeof createVoiceReminderScheduler>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Elysia } from
|
|
2
|
-
import { type VoiceProviderHealthSummary } from
|
|
3
|
-
import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from
|
|
4
|
-
import type { VoiceIOProviderFailureSimulationMode, VoiceIOProviderFailureSimulationResult } from
|
|
5
|
-
export type VoiceRoutingEventKind =
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import { type VoiceProviderHealthSummary } from "./providerHealth";
|
|
3
|
+
import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from "./trace";
|
|
4
|
+
import type { VoiceIOProviderFailureSimulationMode, VoiceIOProviderFailureSimulationResult } from "../testing/ioProviderSimulator";
|
|
5
|
+
export type VoiceRoutingEventKind = "llm" | "stt" | "tts";
|
|
6
6
|
export type VoiceRoutingEvent = {
|
|
7
7
|
at: number;
|
|
8
8
|
attempt?: number;
|
|
@@ -12,13 +12,49 @@ export type VoiceRoutingEvent = {
|
|
|
12
12
|
kind: VoiceRoutingEventKind;
|
|
13
13
|
latencyBudgetMs?: number;
|
|
14
14
|
operation?: string;
|
|
15
|
+
profileId?: string;
|
|
16
|
+
profileLabel?: string;
|
|
15
17
|
provider?: string;
|
|
18
|
+
providerRoutes?: Record<string, string>;
|
|
19
|
+
routing?: string;
|
|
20
|
+
scenarioId?: string;
|
|
16
21
|
selectedProvider?: string;
|
|
17
22
|
sessionId: string;
|
|
18
23
|
status?: string;
|
|
24
|
+
suppressionRemainingMs?: number;
|
|
19
25
|
timedOut: boolean;
|
|
20
26
|
turnId?: string;
|
|
21
27
|
};
|
|
28
|
+
export type VoiceRoutingDecisionSummary = VoiceRoutingEvent;
|
|
29
|
+
export type VoiceRoutingDecisionSummaryOptions = {
|
|
30
|
+
kind?: VoiceRoutingEventKind;
|
|
31
|
+
limit?: number;
|
|
32
|
+
sessionId?: string;
|
|
33
|
+
store: VoiceTraceEventStore;
|
|
34
|
+
};
|
|
35
|
+
export type VoiceRoutingKindSummary = {
|
|
36
|
+
errorCount: number;
|
|
37
|
+
fallbackCount: number;
|
|
38
|
+
latest?: VoiceRoutingEvent;
|
|
39
|
+
providers: string[];
|
|
40
|
+
runCount: number;
|
|
41
|
+
timeoutCount: number;
|
|
42
|
+
};
|
|
43
|
+
export type VoiceRoutingSessionSummary = {
|
|
44
|
+
errorCount: number;
|
|
45
|
+
eventCount: number;
|
|
46
|
+
fallbackCount: number;
|
|
47
|
+
kinds: Record<VoiceRoutingEventKind, VoiceRoutingKindSummary>;
|
|
48
|
+
lastEventAt: number;
|
|
49
|
+
sessionId: string;
|
|
50
|
+
startedAt: number;
|
|
51
|
+
status: "healthy" | "fallback" | "degraded";
|
|
52
|
+
timeoutCount: number;
|
|
53
|
+
};
|
|
54
|
+
export type VoiceRoutingSessionSummaryOptions = {
|
|
55
|
+
limit?: number;
|
|
56
|
+
sessionId?: string;
|
|
57
|
+
};
|
|
22
58
|
export type VoiceResilienceLink = {
|
|
23
59
|
href: string;
|
|
24
60
|
label: string;
|
|
@@ -42,6 +78,7 @@ export type VoiceResiliencePageData = {
|
|
|
42
78
|
links?: readonly VoiceResilienceLink[];
|
|
43
79
|
llmProviderHealth: VoiceProviderHealthSummary<string>[];
|
|
44
80
|
routingEvents: VoiceRoutingEvent[];
|
|
81
|
+
routingSessions: VoiceRoutingSessionSummary[];
|
|
45
82
|
sttProviderHealth: VoiceProviderHealthSummary<string>[];
|
|
46
83
|
sttSimulation?: VoiceResilienceIOSimulator<string>;
|
|
47
84
|
title?: string;
|
|
@@ -63,6 +100,9 @@ export type VoiceResilienceRoutesOptions = {
|
|
|
63
100
|
ttsSimulation?: VoiceResilienceIOSimulator<string>;
|
|
64
101
|
};
|
|
65
102
|
export declare const listVoiceRoutingEvents: (events: StoredVoiceTraceEvent[]) => VoiceRoutingEvent[];
|
|
103
|
+
export declare const summarizeVoiceRoutingDecision: (events: StoredVoiceTraceEvent[], options?: Omit<VoiceRoutingDecisionSummaryOptions, "store">) => VoiceRoutingDecisionSummary | null;
|
|
104
|
+
export declare const createVoiceRoutingDecisionSummary: (options: VoiceRoutingDecisionSummaryOptions) => Promise<VoiceRoutingDecisionSummary | null>;
|
|
105
|
+
export declare const summarizeVoiceRoutingSessions: (events: StoredVoiceTraceEvent[] | VoiceRoutingEvent[], options?: VoiceRoutingSessionSummaryOptions) => VoiceRoutingSessionSummary[];
|
|
66
106
|
export declare const renderVoiceResilienceHTML: (input: VoiceResiliencePageData) => string;
|
|
67
107
|
export declare const createVoiceResilienceRoutes: (options: VoiceResilienceRoutesOptions) => Elysia<"", {
|
|
68
108
|
decorator: {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type VoiceRetentionPolicyOptions = {
|
|
2
|
+
/** Maximum age in milliseconds; events older than this are eligible for purge. */
|
|
3
|
+
maxAgeMs: number;
|
|
4
|
+
/** Optional override that returns the timestamp for an event. Defaults to event.at. */
|
|
5
|
+
resolveAt?: (event: unknown) => number | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type VoiceRetentionStore<TRecord extends {
|
|
8
|
+
id: string;
|
|
9
|
+
}> = {
|
|
10
|
+
list: (filter?: Record<string, unknown>) => Promise<TRecord[]> | TRecord[];
|
|
11
|
+
remove: (id: string) => Promise<void> | void;
|
|
12
|
+
};
|
|
13
|
+
export type VoicePurgeReport = {
|
|
14
|
+
attempted: number;
|
|
15
|
+
failed: number;
|
|
16
|
+
purgedIds: string[];
|
|
17
|
+
reason: "expired" | "manual";
|
|
18
|
+
removed: number;
|
|
19
|
+
};
|
|
20
|
+
export declare const purgeVoiceRetentionStore: <TRecord extends {
|
|
21
|
+
id: string;
|
|
22
|
+
}>(store: VoiceRetentionStore<TRecord>, options: VoiceRetentionPolicyOptions, now?: number) => Promise<VoicePurgeReport>;
|
|
23
|
+
export type VoiceRetentionScheduler = {
|
|
24
|
+
start: () => void;
|
|
25
|
+
stop: () => void;
|
|
26
|
+
};
|
|
27
|
+
export type CreateVoiceRetentionSchedulerOptions<TRecord extends {
|
|
28
|
+
id: string;
|
|
29
|
+
}> = {
|
|
30
|
+
intervalMs?: number;
|
|
31
|
+
onReport?: (report: VoicePurgeReport) => void;
|
|
32
|
+
policy: VoiceRetentionPolicyOptions;
|
|
33
|
+
store: VoiceRetentionStore<TRecord>;
|
|
34
|
+
};
|
|
35
|
+
export declare const createVoiceRetentionScheduler: <TRecord extends {
|
|
36
|
+
id: string;
|
|
37
|
+
}>(options: CreateVoiceRetentionSchedulerOptions<TRecord>) => VoiceRetentionScheduler;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type VoiceRetryDispositionAction = "retry" | "abandon" | "escalate";
|
|
2
|
+
export type VoiceRetryDispositionRule = {
|
|
3
|
+
disposition: string;
|
|
4
|
+
action: VoiceRetryDispositionAction;
|
|
5
|
+
cooldownMs?: number;
|
|
6
|
+
maxAttemptsOverride?: number;
|
|
7
|
+
};
|
|
8
|
+
export type VoiceRetryAttempt = {
|
|
9
|
+
disposition: string;
|
|
10
|
+
at: number;
|
|
11
|
+
};
|
|
12
|
+
export type VoiceRetryDecision = {
|
|
13
|
+
action: "retry";
|
|
14
|
+
attemptNumber: number;
|
|
15
|
+
retryAt: number;
|
|
16
|
+
} | {
|
|
17
|
+
action: "abandon";
|
|
18
|
+
reason: "max-attempts" | "non-retryable" | "explicit";
|
|
19
|
+
} | {
|
|
20
|
+
action: "escalate";
|
|
21
|
+
reason: string;
|
|
22
|
+
};
|
|
23
|
+
export type CreateVoiceRetryPolicyOptions = {
|
|
24
|
+
maxAttempts?: number;
|
|
25
|
+
defaultCooldownMs?: number;
|
|
26
|
+
jitterMs?: number;
|
|
27
|
+
backoffMultiplier?: number;
|
|
28
|
+
rules?: VoiceRetryDispositionRule[];
|
|
29
|
+
escalateAfterAttempts?: number;
|
|
30
|
+
now?: () => number;
|
|
31
|
+
};
|
|
32
|
+
export declare const createVoiceRetryPolicy: (options?: CreateVoiceRetryPolicyOptions) => {
|
|
33
|
+
decide: (history: VoiceRetryAttempt[], lastDisposition: string) => VoiceRetryDecision;
|
|
34
|
+
maxAttempts: number;
|
|
35
|
+
rules: () => VoiceRetryDispositionRule[];
|
|
36
|
+
updateRule(rule: VoiceRetryDispositionRule): void;
|
|
37
|
+
};
|
|
38
|
+
export type VoiceRetryPolicy = ReturnType<typeof createVoiceRetryPolicy>;
|