@absolutejs/voice 0.0.22-beta.530 → 0.0.22-beta.532
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/dist/angular/index.js +4 -4
- package/dist/angular/voice-call-debugger.service.d.ts +1 -1
- package/dist/angular/voice-campaign-dialer-proof.service.d.ts +1 -1
- package/dist/angular/voice-controller.service.d.ts +1 -1
- package/dist/angular/voice-cost-dashboard.service.d.ts +1 -1
- package/dist/angular/voice-delivery-runtime.service.d.ts +1 -1
- package/dist/angular/voice-ops-status.service.d.ts +1 -1
- package/dist/angular/voice-platform-coverage.service.d.ts +1 -1
- package/dist/angular/voice-profile-comparison.service.d.ts +1 -1
- package/dist/angular/voice-proof-trends.service.d.ts +1 -1
- package/dist/angular/voice-provider-capabilities.service.d.ts +1 -1
- package/dist/angular/voice-provider-contracts.service.d.ts +1 -1
- package/dist/angular/voice-provider-status.service.d.ts +1 -1
- package/dist/angular/voice-readiness-failures.service.d.ts +1 -1
- package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +1 -1
- package/dist/angular/voice-session-observability.service.d.ts +1 -1
- package/dist/angular/voice-session-snapshot.service.d.ts +1 -1
- package/dist/angular/voice-stream.service.d.ts +1 -1
- package/dist/angular/voice-trace-timeline.service.d.ts +1 -1
- package/dist/angular/voice-turn-latency.service.d.ts +1 -1
- package/dist/angular/voice-turn-quality.service.d.ts +1 -1
- package/dist/angular/voice-widget.service.d.ts +1 -1
- package/dist/angular/voice-workflow-status.service.d.ts +1 -1
- package/dist/client/actions.d.ts +1 -1
- package/dist/client/agentSquadStatus.d.ts +1 -1
- package/dist/client/audioPlayer.d.ts +1 -1
- package/dist/client/bargeInMonitor.d.ts +1 -1
- package/dist/client/browserMedia.d.ts +1 -1
- package/dist/client/callDebugger.d.ts +1 -1
- package/dist/client/callPlayer.d.ts +1 -1
- package/dist/client/campaignDialerProof.d.ts +1 -1
- package/dist/client/connection.d.ts +1 -1
- package/dist/client/controller.d.ts +1 -1
- package/dist/client/conversationAnalytics.d.ts +1 -1
- package/dist/client/costDashboard.d.ts +1 -1
- package/dist/client/createVoiceStream.d.ts +1 -1
- package/dist/client/deliveryRuntime.d.ts +1 -1
- package/dist/client/duplex.d.ts +1 -1
- package/dist/client/htmx.d.ts +1 -1
- package/dist/client/htmxBootstrap.js +3 -3
- package/dist/client/htmxDashboardRenderers.d.ts +1 -1
- package/dist/client/index.js +25 -29
- package/dist/client/liveAgentConsole.d.ts +1 -1
- package/dist/client/liveCallViewer.d.ts +1 -1
- package/dist/client/liveOps.d.ts +1 -1
- package/dist/client/liveOpsWidget.d.ts +1 -1
- package/dist/client/liveTurnLatency.d.ts +1 -1
- package/dist/client/microphone.d.ts +1 -1
- package/dist/client/opsActionHistory.d.ts +1 -1
- package/dist/client/opsStatus.d.ts +1 -1
- package/dist/client/opsStatusWidget.d.ts +1 -1
- package/dist/client/platformCoverage.d.ts +1 -1
- package/dist/client/platformCoverageWidget.d.ts +1 -1
- package/dist/client/profileComparison.d.ts +1 -1
- package/dist/client/profileSwitchRecommendation.d.ts +1 -1
- package/dist/client/proofTrends.d.ts +1 -1
- package/dist/client/proofTrendsWidget.d.ts +1 -1
- package/dist/client/providerCapabilities.d.ts +1 -1
- package/dist/client/providerCapabilitiesWidget.d.ts +1 -1
- package/dist/client/providerContracts.d.ts +1 -1
- package/dist/client/providerContractsWidget.d.ts +1 -1
- package/dist/client/providerStatus.d.ts +1 -1
- package/dist/client/providerStatusWidget.d.ts +1 -1
- package/dist/client/readinessFailures.d.ts +1 -1
- package/dist/client/readinessFailuresWidget.d.ts +1 -1
- package/dist/client/reconnectProfileEvidence.d.ts +1 -1
- package/dist/client/routingStatus.d.ts +1 -1
- package/dist/client/routingStatusWidget.d.ts +1 -1
- package/dist/client/sessionObservability.d.ts +1 -1
- package/dist/client/sessionObservabilityWidget.d.ts +1 -1
- package/dist/client/sessionSnapshot.d.ts +1 -1
- package/dist/client/store.d.ts +1 -1
- package/dist/client/traceTimeline.d.ts +1 -1
- package/dist/client/traceTimelineWidget.d.ts +1 -1
- package/dist/client/turnLatency.d.ts +1 -1
- package/dist/client/turnLatencyWidget.d.ts +1 -1
- package/dist/client/turnQuality.d.ts +1 -1
- package/dist/client/turnQualityWidget.d.ts +1 -1
- package/dist/client/voiceWidgetView.d.ts +2 -2
- package/dist/client/workflowStatus.d.ts +1 -1
- package/dist/{dataControl.d.ts → core/dataControl.d.ts} +1 -1
- package/dist/{fileStore.d.ts → core/fileStore.d.ts} +1 -1
- package/dist/{htmxDashboardRoutes.d.ts → core/htmxDashboardRoutes.d.ts} +4 -4
- package/dist/{multilingualProof.d.ts → core/multilingualProof.d.ts} +2 -2
- package/dist/{operationsRecord.d.ts → core/operationsRecord.d.ts} +1 -1
- package/dist/{ops.d.ts → core/ops.d.ts} +1 -1
- package/dist/{outcomeContract.d.ts → core/outcomeContract.d.ts} +1 -1
- package/dist/{phoneAgent.d.ts → core/phoneAgent.d.ts} +5 -5
- package/dist/{phoneAgentProductionSmoke.d.ts → core/phoneAgentProductionSmoke.d.ts} +1 -1
- package/dist/{postCallAnalysis.d.ts → core/postCallAnalysis.d.ts} +1 -1
- package/dist/{postgresStore.d.ts → core/postgresStore.d.ts} +1 -1
- package/dist/{productionReadiness.d.ts → core/productionReadiness.d.ts} +2 -2
- package/dist/{resilienceRoutes.d.ts → core/resilienceRoutes.d.ts} +1 -1
- package/dist/{runtimeOps.d.ts → core/runtimeOps.d.ts} +1 -1
- package/dist/{s3Store.d.ts → core/s3Store.d.ts} +1 -1
- package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +1 -1
- package/dist/{types.d.ts → core/types.d.ts} +3 -3
- package/dist/embed/index.d.ts +1 -1
- package/dist/embed/index.js +4 -4
- package/dist/embed/voice-widget.js +1 -1
- package/dist/index.d.ts +339 -339
- package/dist/index.js +232 -324
- package/dist/internal/evidence.d.ts +10 -0
- package/dist/internal/status.d.ts +0 -2
- package/dist/react/VoiceCallPlayer.d.ts +1 -1
- package/dist/react/VoiceWidget.d.ts +1 -1
- package/dist/react/index.js +21 -17
- package/dist/react/useVoiceController.d.ts +1 -1
- package/dist/react/useVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceWidget.d.ts +1 -1
- package/dist/svelte/index.js +18 -18
- package/dist/telephony/plivo.d.ts +3 -3
- package/dist/telephony/security.d.ts +3 -3
- package/dist/telephony/telnyx.d.ts +3 -3
- package/dist/telephony/twilio.d.ts +2 -2
- package/dist/testing/accuracy.d.ts +1 -1
- package/dist/testing/benchmark.d.ts +1 -1
- package/dist/testing/corrected.d.ts +1 -1
- package/dist/testing/duplex.d.ts +1 -1
- package/dist/testing/fixtures.d.ts +1 -1
- package/dist/testing/index.js +33 -29
- package/dist/testing/ioProviderSimulator.d.ts +1 -1
- package/dist/testing/providerSimulator.d.ts +3 -3
- package/dist/testing/review.d.ts +1 -1
- package/dist/testing/sessionBenchmark.d.ts +1 -1
- package/dist/testing/stt.d.ts +1 -1
- package/dist/testing/telephony.d.ts +2 -2
- package/dist/testing/tts.d.ts +1 -1
- package/dist/vue/VoiceCallPlayer.d.ts +1 -1
- package/dist/vue/VoiceCostDashboard.d.ts +1 -1
- package/dist/vue/VoiceWidget.d.ts +1 -1
- package/dist/vue/index.js +21 -17
- package/dist/vue/useVoiceCallDebugger.d.ts +1 -1
- package/dist/vue/useVoiceCampaignDialerProof.d.ts +1 -1
- package/dist/vue/useVoiceController.d.ts +1 -1
- package/dist/vue/useVoiceDeliveryRuntime.d.ts +1 -1
- package/dist/vue/useVoiceOpsStatus.d.ts +1 -1
- package/dist/vue/useVoicePlatformCoverage.d.ts +1 -1
- package/dist/vue/useVoiceProfileComparison.d.ts +1 -1
- package/dist/vue/useVoiceProofTrends.d.ts +1 -1
- package/dist/vue/useVoiceProviderCapabilities.d.ts +1 -1
- package/dist/vue/useVoiceProviderContracts.d.ts +1 -1
- package/dist/vue/useVoiceProviderStatus.d.ts +1 -1
- package/dist/vue/useVoiceReadinessFailures.d.ts +1 -1
- package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +1 -1
- package/dist/vue/useVoiceSessionObservability.d.ts +1 -1
- package/dist/vue/useVoiceSessionSnapshot.d.ts +1 -1
- package/dist/vue/useVoiceStream.d.ts +1 -1
- package/dist/vue/useVoiceTraceTimeline.d.ts +1 -1
- package/dist/vue/useVoiceTurnLatency.d.ts +1 -1
- package/dist/vue/useVoiceTurnQuality.d.ts +1 -1
- package/dist/vue/useVoiceWorkflowStatus.d.ts +1 -1
- package/package.json +3 -1
- /package/dist/{agent.d.ts → core/agent.d.ts} +0 -0
- /package/dist/{agentPerformanceReport.d.ts → core/agentPerformanceReport.d.ts} +0 -0
- /package/dist/{agentSquadContract.d.ts → core/agentSquadContract.d.ts} +0 -0
- /package/dist/{agentState.d.ts → core/agentState.d.ts} +0 -0
- /package/dist/{agentTools.d.ts → core/agentTools.d.ts} +0 -0
- /package/dist/{aiScorecard.d.ts → core/aiScorecard.d.ts} +0 -0
- /package/dist/{aiVoiceModel.d.ts → core/aiVoiceModel.d.ts} +0 -0
- /package/dist/{amdDetector.d.ts → core/amdDetector.d.ts} +0 -0
- /package/dist/{assistant.d.ts → core/assistant.d.ts} +0 -0
- /package/dist/{assistantExperiment.d.ts → core/assistantExperiment.d.ts} +0 -0
- /package/dist/{assistantHealth.d.ts → core/assistantHealth.d.ts} +0 -0
- /package/dist/{assistantMemory.d.ts → core/assistantMemory.d.ts} +0 -0
- /package/dist/{assistantMode.d.ts → core/assistantMode.d.ts} +0 -0
- /package/dist/{audioConditioning.d.ts → core/audioConditioning.d.ts} +0 -0
- /package/dist/{audit.d.ts → core/audit.d.ts} +0 -0
- /package/dist/{auditDeliveryRoutes.d.ts → core/auditDeliveryRoutes.d.ts} +0 -0
- /package/dist/{auditExport.d.ts → core/auditExport.d.ts} +0 -0
- /package/dist/{auditRoutes.d.ts → core/auditRoutes.d.ts} +0 -0
- /package/dist/{auditSinks.d.ts → core/auditSinks.d.ts} +0 -0
- /package/dist/{backchannel.d.ts → core/backchannel.d.ts} +0 -0
- /package/dist/{bargeInRoutes.d.ts → core/bargeInRoutes.d.ts} +0 -0
- /package/dist/{bookingFlow.d.ts → core/bookingFlow.d.ts} +0 -0
- /package/dist/{browserCallProfiles.d.ts → core/browserCallProfiles.d.ts} +0 -0
- /package/dist/{browserMediaRoutes.d.ts → core/browserMediaRoutes.d.ts} +0 -0
- /package/dist/{calendarAdapter.d.ts → core/calendarAdapter.d.ts} +0 -0
- /package/dist/{calendarSlots.d.ts → core/calendarSlots.d.ts} +0 -0
- /package/dist/{callDebugger.d.ts → core/callDebugger.d.ts} +0 -0
- /package/dist/{callDisposition.d.ts → core/callDisposition.d.ts} +0 -0
- /package/dist/{callQuota.d.ts → core/callQuota.d.ts} +0 -0
- /package/dist/{callScorecard.d.ts → core/callScorecard.d.ts} +0 -0
- /package/dist/{callerCRMLinker.d.ts → core/callerCRMLinker.d.ts} +0 -0
- /package/dist/{callerMemory.d.ts → core/callerMemory.d.ts} +0 -0
- /package/dist/{callingWindow.d.ts → core/callingWindow.d.ts} +0 -0
- /package/dist/{campaign.d.ts → core/campaign.d.ts} +0 -0
- /package/dist/{campaignControls.d.ts → core/campaignControls.d.ts} +0 -0
- /package/dist/{campaignDialers.d.ts → core/campaignDialers.d.ts} +0 -0
- /package/dist/{campaignTemplate.d.ts → core/campaignTemplate.d.ts} +0 -0
- /package/dist/{competitiveCoverage.d.ts → core/competitiveCoverage.d.ts} +0 -0
- /package/dist/{conversationSimulator.d.ts → core/conversationSimulator.d.ts} +0 -0
- /package/dist/{correction.d.ts → core/correction.d.ts} +0 -0
- /package/dist/{costAccounting.d.ts → core/costAccounting.d.ts} +0 -0
- /package/dist/{costPredictor.d.ts → core/costPredictor.d.ts} +0 -0
- /package/dist/{crmCallLogger.d.ts → core/crmCallLogger.d.ts} +0 -0
- /package/dist/{crmContract.d.ts → core/crmContract.d.ts} +0 -0
- /package/dist/{defineVoiceAssistant.d.ts → core/defineVoiceAssistant.d.ts} +0 -0
- /package/dist/{deliveryRuntime.d.ts → core/deliveryRuntime.d.ts} +0 -0
- /package/dist/{deliverySinkRoutes.d.ts → core/deliverySinkRoutes.d.ts} +0 -0
- /package/dist/{demoReadyRoutes.d.ts → core/demoReadyRoutes.d.ts} +0 -0
- /package/dist/{diagnosticsRoutes.d.ts → core/diagnosticsRoutes.d.ts} +0 -0
- /package/dist/{dncRegistry.d.ts → core/dncRegistry.d.ts} +0 -0
- /package/dist/{dtmfCollector.d.ts → core/dtmfCollector.d.ts} +0 -0
- /package/dist/{evalRoutes.d.ts → core/evalRoutes.d.ts} +0 -0
- /package/dist/{guardrails.d.ts → core/guardrails.d.ts} +0 -0
- /package/dist/{handoff.d.ts → core/handoff.d.ts} +0 -0
- /package/dist/{handoffHealth.d.ts → core/handoffHealth.d.ts} +0 -0
- /package/dist/{holdAudio.d.ts → core/holdAudio.d.ts} +0 -0
- /package/dist/{htmx.d.ts → core/htmx.d.ts} +0 -0
- /package/dist/{iceServers.d.ts → core/iceServers.d.ts} +0 -0
- /package/dist/{incidentBundle.d.ts → core/incidentBundle.d.ts} +0 -0
- /package/dist/{incidentTimeline.d.ts → core/incidentTimeline.d.ts} +0 -0
- /package/dist/{ivrPlan.d.ts → core/ivrPlan.d.ts} +0 -0
- /package/dist/{latencySlo.d.ts → core/latencySlo.d.ts} +0 -0
- /package/dist/{liveCoach.d.ts → core/liveCoach.d.ts} +0 -0
- /package/dist/{liveLatency.d.ts → core/liveLatency.d.ts} +0 -0
- /package/dist/{liveOps.d.ts → core/liveOps.d.ts} +0 -0
- /package/dist/{llmJudge.d.ts → core/llmJudge.d.ts} +0 -0
- /package/dist/{logger.d.ts → core/logger.d.ts} +0 -0
- /package/dist/{mcpToolset.d.ts → core/mcpToolset.d.ts} +0 -0
- /package/dist/{mediaPipelineRoutes.d.ts → core/mediaPipelineRoutes.d.ts} +0 -0
- /package/dist/{mediaPipelineSurfaces.d.ts → core/mediaPipelineSurfaces.d.ts} +0 -0
- /package/dist/{memoryStore.d.ts → core/memoryStore.d.ts} +0 -0
- /package/dist/{midCallSummary.d.ts → core/midCallSummary.d.ts} +0 -0
- /package/dist/{modelAdapters.d.ts → core/modelAdapters.d.ts} +0 -0
- /package/dist/{monitor.d.ts → core/monitor.d.ts} +0 -0
- /package/dist/{noShowPredictor.d.ts → core/noShowPredictor.d.ts} +0 -0
- /package/dist/{oauth2TokenSource.d.ts → core/oauth2TokenSource.d.ts} +0 -0
- /package/dist/{observabilityExport.d.ts → core/observabilityExport.d.ts} +0 -0
- /package/dist/{openaiTTS.d.ts → core/openaiTTS.d.ts} +0 -0
- /package/dist/{operationalStatus.d.ts → core/operationalStatus.d.ts} +0 -0
- /package/dist/{opsActionAuditRoutes.d.ts → core/opsActionAuditRoutes.d.ts} +0 -0
- /package/dist/{opsConsoleRoutes.d.ts → core/opsConsoleRoutes.d.ts} +0 -0
- /package/dist/{opsPresets.d.ts → core/opsPresets.d.ts} +0 -0
- /package/dist/{opsRecovery.d.ts → core/opsRecovery.d.ts} +0 -0
- /package/dist/{opsRuntime.d.ts → core/opsRuntime.d.ts} +0 -0
- /package/dist/{opsSinks.d.ts → core/opsSinks.d.ts} +0 -0
- /package/dist/{opsStatus.d.ts → core/opsStatus.d.ts} +0 -0
- /package/dist/{opsStatusRoutes.d.ts → core/opsStatusRoutes.d.ts} +0 -0
- /package/dist/{opsWebhook.d.ts → core/opsWebhook.d.ts} +0 -0
- /package/dist/{otelExporter.d.ts → core/otelExporter.d.ts} +0 -0
- /package/dist/{outcomeRecipes.d.ts → core/outcomeRecipes.d.ts} +0 -0
- /package/dist/{pathway.d.ts → core/pathway.d.ts} +0 -0
- /package/dist/{pathwayCompiler.d.ts → core/pathwayCompiler.d.ts} +0 -0
- /package/dist/{pathwayGenerator.d.ts → core/pathwayGenerator.d.ts} +0 -0
- /package/dist/{pathwayRuntime.d.ts → core/pathwayRuntime.d.ts} +0 -0
- /package/dist/{pathwaySlotCollector.d.ts → core/pathwaySlotCollector.d.ts} +0 -0
- /package/dist/{pathwayVisualizer.d.ts → core/pathwayVisualizer.d.ts} +0 -0
- /package/dist/{phoneProvisioning.d.ts → core/phoneProvisioning.d.ts} +0 -0
- /package/dist/{platformCoverage.d.ts → core/platformCoverage.d.ts} +0 -0
- /package/dist/{plugin.d.ts → core/plugin.d.ts} +0 -0
- /package/dist/{postCallSurvey.d.ts → core/postCallSurvey.d.ts} +0 -0
- /package/dist/{presets.d.ts → core/presets.d.ts} +0 -0
- /package/dist/{profileSwitchRecommendation.d.ts → core/profileSwitchRecommendation.d.ts} +0 -0
- /package/dist/{promptInjectionGuard.d.ts → core/promptInjectionGuard.d.ts} +0 -0
- /package/dist/{proofAssertions.d.ts → core/proofAssertions.d.ts} +0 -0
- /package/dist/{proofPack.d.ts → core/proofPack.d.ts} +0 -0
- /package/dist/{proofRunner.d.ts → core/proofRunner.d.ts} +0 -0
- /package/dist/{proofTrends.d.ts → core/proofTrends.d.ts} +0 -0
- /package/dist/{providerAdapters.d.ts → core/providerAdapters.d.ts} +0 -0
- /package/dist/{providerCapabilities.d.ts → core/providerCapabilities.d.ts} +0 -0
- /package/dist/{providerDecisionTraces.d.ts → core/providerDecisionTraces.d.ts} +0 -0
- /package/dist/{providerHealth.d.ts → core/providerHealth.d.ts} +0 -0
- /package/dist/{providerOrchestration.d.ts → core/providerOrchestration.d.ts} +0 -0
- /package/dist/{providerRouterTraces.d.ts → core/providerRouterTraces.d.ts} +0 -0
- /package/dist/{providerRoutingContract.d.ts → core/providerRoutingContract.d.ts} +0 -0
- /package/dist/{providerSlo.d.ts → core/providerSlo.d.ts} +0 -0
- /package/dist/{providerStackRecommendations.d.ts → core/providerStackRecommendations.d.ts} +0 -0
- /package/dist/{qualityDriftDetector.d.ts → core/qualityDriftDetector.d.ts} +0 -0
- /package/dist/{qualityRoutes.d.ts → core/qualityRoutes.d.ts} +0 -0
- /package/dist/{queue.d.ts → core/queue.d.ts} +0 -0
- /package/dist/{ragTool.d.ts → core/ragTool.d.ts} +0 -0
- /package/dist/{readinessProfiles.d.ts → core/readinessProfiles.d.ts} +0 -0
- /package/dist/{realtimeChannel.d.ts → core/realtimeChannel.d.ts} +0 -0
- /package/dist/{realtimeProviderContracts.d.ts → core/realtimeProviderContracts.d.ts} +0 -0
- /package/dist/{reconnectContract.d.ts → core/reconnectContract.d.ts} +0 -0
- /package/dist/{recordingRedaction.d.ts → core/recordingRedaction.d.ts} +0 -0
- /package/dist/{recordingStore.d.ts → core/recordingStore.d.ts} +0 -0
- /package/dist/{redaction.d.ts → core/redaction.d.ts} +0 -0
- /package/dist/{reminderScheduler.d.ts → core/reminderScheduler.d.ts} +0 -0
- /package/dist/{retention.d.ts → core/retention.d.ts} +0 -0
- /package/dist/{retryPolicy.d.ts → core/retryPolicy.d.ts} +0 -0
- /package/dist/{routeAuth.d.ts → core/routeAuth.d.ts} +0 -0
- /package/dist/{routing.d.ts → core/routing.d.ts} +0 -0
- /package/dist/{scorecardCalibration.d.ts → core/scorecardCalibration.d.ts} +0 -0
- /package/dist/{semanticTurn.d.ts → core/semanticTurn.d.ts} +0 -0
- /package/dist/{session.d.ts → core/session.d.ts} +0 -0
- /package/dist/{sessionObservability.d.ts → core/sessionObservability.d.ts} +0 -0
- /package/dist/{sessionReplay.d.ts → core/sessionReplay.d.ts} +0 -0
- /package/dist/{sessionSnapshot.d.ts → core/sessionSnapshot.d.ts} +0 -0
- /package/dist/{simulationSuite.d.ts → core/simulationSuite.d.ts} +0 -0
- /package/dist/{sloCalibration.d.ts → core/sloCalibration.d.ts} +0 -0
- /package/dist/{store.d.ts → core/store.d.ts} +0 -0
- /package/dist/{supervisorPermissions.d.ts → core/supervisorPermissions.d.ts} +0 -0
- /package/dist/{supervisorPresence.d.ts → core/supervisorPresence.d.ts} +0 -0
- /package/dist/{telephonyMediaRoutes.d.ts → core/telephonyMediaRoutes.d.ts} +0 -0
- /package/dist/{telephonyOutcome.d.ts → core/telephonyOutcome.d.ts} +0 -0
- /package/dist/{toolContract.d.ts → core/toolContract.d.ts} +0 -0
- /package/dist/{toolRuntime.d.ts → core/toolRuntime.d.ts} +0 -0
- /package/dist/{trace.d.ts → core/trace.d.ts} +0 -0
- /package/dist/{traceDeliveryRoutes.d.ts → core/traceDeliveryRoutes.d.ts} +0 -0
- /package/dist/{traceTimeline.d.ts → core/traceTimeline.d.ts} +0 -0
- /package/dist/{transcriptAnnotator.d.ts → core/transcriptAnnotator.d.ts} +0 -0
- /package/dist/{turnDetection.d.ts → core/turnDetection.d.ts} +0 -0
- /package/dist/{turnLatency.d.ts → core/turnLatency.d.ts} +0 -0
- /package/dist/{turnProfiles.d.ts → core/turnProfiles.d.ts} +0 -0
- /package/dist/{turnQuality.d.ts → core/turnQuality.d.ts} +0 -0
- /package/dist/{vapiAdapter.d.ts → core/vapiAdapter.d.ts} +0 -0
- /package/dist/{variableAnalytics.d.ts → core/variableAnalytics.d.ts} +0 -0
- /package/dist/{voiceConfiguration.d.ts → core/voiceConfiguration.d.ts} +0 -0
- /package/dist/{voiceMonitoring.d.ts → core/voiceMonitoring.d.ts} +0 -0
- /package/dist/{webhookFanout.d.ts → core/webhookFanout.d.ts} +0 -0
- /package/dist/{webhookVerification.d.ts → core/webhookVerification.d.ts} +0 -0
- /package/dist/{whisperChannel.d.ts → core/whisperChannel.d.ts} +0 -0
- /package/dist/{workflowContract.d.ts → core/workflowContract.d.ts} +0 -0
- /package/dist/{zeroDataRetention.d.ts → core/zeroDataRetention.d.ts} +0 -0
package/dist/index.js
CHANGED
|
@@ -83,7 +83,7 @@ var __decorateElement = (array, flags, name, decorators, target, extra) => {
|
|
|
83
83
|
};
|
|
84
84
|
var __require = import.meta.require;
|
|
85
85
|
|
|
86
|
-
// src/calendarSlots.ts
|
|
86
|
+
// src/core/calendarSlots.ts
|
|
87
87
|
var exports_calendarSlots = {};
|
|
88
88
|
__export(exports_calendarSlots, {
|
|
89
89
|
summarizeVoiceCalendarSlot: () => summarizeVoiceCalendarSlot,
|
|
@@ -192,7 +192,7 @@ var parseHHMM = (value) => {
|
|
|
192
192
|
return formatter.format(new Date(slot.startMs));
|
|
193
193
|
};
|
|
194
194
|
|
|
195
|
-
// src/audioConditioning.ts
|
|
195
|
+
// src/core/audioConditioning.ts
|
|
196
196
|
var DEFAULT_TARGET_LEVEL = 0.08;
|
|
197
197
|
var DEFAULT_MAX_GAIN = 3;
|
|
198
198
|
var DEFAULT_NOISE_GATE_THRESHOLD = 0.006;
|
|
@@ -247,14 +247,14 @@ var conditionAudioChunk = (audio, config) => {
|
|
|
247
247
|
return new Uint8Array(output.buffer);
|
|
248
248
|
};
|
|
249
249
|
|
|
250
|
-
// src/plugin.ts
|
|
250
|
+
// src/core/plugin.ts
|
|
251
251
|
import { Elysia as Elysia70 } from "elysia";
|
|
252
252
|
import { resolve } from "path";
|
|
253
253
|
|
|
254
254
|
// src/internal/html.ts
|
|
255
255
|
var escapeHtml = (value) => String(value).replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll('"', """).replaceAll("'", "'");
|
|
256
256
|
|
|
257
|
-
// src/htmx.ts
|
|
257
|
+
// src/core/htmx.ts
|
|
258
258
|
var DEFAULT_HTMX_TARGETS = {
|
|
259
259
|
assistant: "voice-htmx-assistant",
|
|
260
260
|
metrics: "voice-htmx-metrics",
|
|
@@ -378,7 +378,7 @@ var buildVoiceHTMXResponse = (input, renderers, targets) => [
|
|
|
378
378
|
renderOob(targets.result, renderers.result(input))
|
|
379
379
|
].join("");
|
|
380
380
|
|
|
381
|
-
// src/logger.ts
|
|
381
|
+
// src/core/logger.ts
|
|
382
382
|
var noop = () => {};
|
|
383
383
|
var createNoopLogger = () => ({
|
|
384
384
|
debug: noop,
|
|
@@ -391,7 +391,7 @@ var resolveLogger = (logger) => ({
|
|
|
391
391
|
...logger
|
|
392
392
|
});
|
|
393
393
|
|
|
394
|
-
// src/turnProfiles.ts
|
|
394
|
+
// src/core/turnProfiles.ts
|
|
395
395
|
var TURN_PROFILE_DEFAULTS = {
|
|
396
396
|
balanced: {
|
|
397
397
|
qualityProfile: "general",
|
|
@@ -446,7 +446,7 @@ var resolveTurnDetectionConfig = (config) => {
|
|
|
446
446
|
};
|
|
447
447
|
};
|
|
448
448
|
|
|
449
|
-
// src/presets.ts
|
|
449
|
+
// src/core/presets.ts
|
|
450
450
|
var PRESET_INPUTS = {
|
|
451
451
|
chat: {
|
|
452
452
|
audioConditioning: {
|
|
@@ -652,7 +652,7 @@ var resolveVoiceRuntimePreset = (name = "default") => {
|
|
|
652
652
|
};
|
|
653
653
|
};
|
|
654
654
|
|
|
655
|
-
// src/ops.ts
|
|
655
|
+
// src/core/ops.ts
|
|
656
656
|
var createVoiceExternalObjectMapId = (input) => [
|
|
657
657
|
input.provider,
|
|
658
658
|
input.sinkId ?? "default",
|
|
@@ -1442,7 +1442,7 @@ var buildVoiceOpsTaskFromSLABreach = (task, policy = {}) => {
|
|
|
1442
1442
|
return followUp;
|
|
1443
1443
|
};
|
|
1444
1444
|
|
|
1445
|
-
// src/opsSinks.ts
|
|
1445
|
+
// src/core/opsSinks.ts
|
|
1446
1446
|
var sleep2 = async (delayMs) => {
|
|
1447
1447
|
if (delayMs <= 0) {
|
|
1448
1448
|
return;
|
|
@@ -2804,7 +2804,7 @@ var renderVoiceCallReviewHTML = (artifact) => {
|
|
|
2804
2804
|
</html>`;
|
|
2805
2805
|
};
|
|
2806
2806
|
|
|
2807
|
-
// src/runtimeOps.ts
|
|
2807
|
+
// src/core/runtimeOps.ts
|
|
2808
2808
|
var defaultReviewTitle = (session) => session.scenarioId ? `Voice call review: ${session.scenarioId}` : `Voice call review: ${session.id}`;
|
|
2809
2809
|
var buildDefaultPostCallSummary = (input) => {
|
|
2810
2810
|
switch (input.disposition) {
|
|
@@ -3049,7 +3049,7 @@ var recordVoiceRuntimeOps = async (input) => {
|
|
|
3049
3049
|
};
|
|
3050
3050
|
};
|
|
3051
3051
|
|
|
3052
|
-
// src/store.ts
|
|
3052
|
+
// src/core/store.ts
|
|
3053
3053
|
var createId = () => crypto.randomUUID();
|
|
3054
3054
|
var createVoiceSessionRecord = (id, scenarioId) => ({
|
|
3055
3055
|
committedTurnIds: [],
|
|
@@ -3089,10 +3089,10 @@ var toVoiceSessionSummary = (session) => ({
|
|
|
3089
3089
|
turnCount: session.turns.length
|
|
3090
3090
|
});
|
|
3091
3091
|
|
|
3092
|
-
// src/session.ts
|
|
3092
|
+
// src/core/session.ts
|
|
3093
3093
|
import { Buffer as Buffer2 } from "buffer";
|
|
3094
3094
|
|
|
3095
|
-
// src/handoff.ts
|
|
3095
|
+
// src/core/handoff.ts
|
|
3096
3096
|
var toHex3 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
3097
3097
|
var signHandoffBody = async (input) => {
|
|
3098
3098
|
const encoder = new TextEncoder;
|
|
@@ -3375,7 +3375,7 @@ var createVoiceTwilioRedirectHandoffAdapter = (options) => ({
|
|
|
3375
3375
|
kind: "twilio-redirect"
|
|
3376
3376
|
});
|
|
3377
3377
|
|
|
3378
|
-
// src/turnDetection.ts
|
|
3378
|
+
// src/core/turnDetection.ts
|
|
3379
3379
|
var DEFAULT_SILENCE_MS = 700;
|
|
3380
3380
|
var DEFAULT_SPEECH_THRESHOLD = 0.015;
|
|
3381
3381
|
var toUint8Array = (audio) => {
|
|
@@ -3492,10 +3492,10 @@ var buildTurnText = (transcripts, partialText, options = {}) => {
|
|
|
3492
3492
|
return selectPreferredTranscriptText(finalText, nextPartial);
|
|
3493
3493
|
};
|
|
3494
3494
|
|
|
3495
|
-
// src/types.ts
|
|
3495
|
+
// src/core/types.ts
|
|
3496
3496
|
var ttsAdapterSessionCanCancel = (session) => typeof session.cancel === "function";
|
|
3497
3497
|
|
|
3498
|
-
// src/recordingStore.ts
|
|
3498
|
+
// src/core/recordingStore.ts
|
|
3499
3499
|
var writeUint32LE = (view, offset, value) => {
|
|
3500
3500
|
view.setUint32(offset, value, true);
|
|
3501
3501
|
};
|
|
@@ -3596,7 +3596,7 @@ var createVoiceMemoryRecordingStore = () => {
|
|
|
3596
3596
|
};
|
|
3597
3597
|
};
|
|
3598
3598
|
|
|
3599
|
-
// src/assistantMode.ts
|
|
3599
|
+
// src/core/assistantMode.ts
|
|
3600
3600
|
var resolveVoiceAssistantMode = (options) => {
|
|
3601
3601
|
if (options.assistantMode) {
|
|
3602
3602
|
return options.assistantMode;
|
|
@@ -3618,7 +3618,7 @@ var describeVoiceAssistantMode = (options) => {
|
|
|
3618
3618
|
};
|
|
3619
3619
|
};
|
|
3620
3620
|
|
|
3621
|
-
// src/session.ts
|
|
3621
|
+
// src/core/session.ts
|
|
3622
3622
|
var DEFAULT_RECONNECT_TIMEOUT = 30000;
|
|
3623
3623
|
var DEFAULT_MAX_RECONNECT_ATTEMPTS = 10;
|
|
3624
3624
|
var DEFAULT_TRANSCRIPT_STABILITY_MS = 450;
|
|
@@ -5749,10 +5749,10 @@ var createVoiceSession = (options) => {
|
|
|
5749
5749
|
return api;
|
|
5750
5750
|
};
|
|
5751
5751
|
|
|
5752
|
-
// src/profileSwitchRecommendation.ts
|
|
5752
|
+
// src/core/profileSwitchRecommendation.ts
|
|
5753
5753
|
import { Elysia } from "elysia";
|
|
5754
5754
|
|
|
5755
|
-
// src/audit.ts
|
|
5755
|
+
// src/core/audit.ts
|
|
5756
5756
|
var includes = (filter, value) => {
|
|
5757
5757
|
if (!filter) {
|
|
5758
5758
|
return true;
|
|
@@ -5953,7 +5953,7 @@ var createVoiceAuditLogger = (store) => ({
|
|
|
5953
5953
|
toolCall: (input) => recordVoiceToolAuditEvent({ ...input, store })
|
|
5954
5954
|
});
|
|
5955
5955
|
|
|
5956
|
-
// src/profileSwitchRecommendation.ts
|
|
5956
|
+
// src/core/profileSwitchRecommendation.ts
|
|
5957
5957
|
var readDefaults = (input) => ("defaults" in input) ? input.defaults : input;
|
|
5958
5958
|
var stringifyForHtml = (value) => escapeHtml(JSON.stringify(value, null, 2) ?? "");
|
|
5959
5959
|
var isNumber = (value) => typeof value === "number" && Number.isFinite(value);
|
|
@@ -6546,10 +6546,10 @@ var createVoiceProfileSwitchReadinessRoutes = (options) => {
|
|
|
6546
6546
|
return routes;
|
|
6547
6547
|
};
|
|
6548
6548
|
|
|
6549
|
-
// src/assistantHealth.ts
|
|
6549
|
+
// src/core/assistantHealth.ts
|
|
6550
6550
|
import { Elysia as Elysia3 } from "elysia";
|
|
6551
6551
|
|
|
6552
|
-
// src/ragTool.ts
|
|
6552
|
+
// src/core/ragTool.ts
|
|
6553
6553
|
var extractVoiceRAGCitations = (toolResults, toolName = "searchKnowledgeBase") => {
|
|
6554
6554
|
const out = [];
|
|
6555
6555
|
for (const entry of toolResults) {
|
|
@@ -6699,7 +6699,7 @@ var createVoiceRAGTool = (collection, options = {}) => {
|
|
|
6699
6699
|
});
|
|
6700
6700
|
};
|
|
6701
6701
|
|
|
6702
|
-
// src/agent.ts
|
|
6702
|
+
// src/core/agent.ts
|
|
6703
6703
|
var normalizeText3 = (value) => typeof value === "string" ? value.trim() : "";
|
|
6704
6704
|
var toErrorMessage3 = (error) => error instanceof Error ? error.message : String(error);
|
|
6705
6705
|
var createHistoryMessages = (session, turn) => {
|
|
@@ -7363,7 +7363,7 @@ var createVoiceAgentSquad = (options) => {
|
|
|
7363
7363
|
};
|
|
7364
7364
|
};
|
|
7365
7365
|
|
|
7366
|
-
// src/outcomeRecipes.ts
|
|
7366
|
+
// src/core/outcomeRecipes.ts
|
|
7367
7367
|
var RECIPE_DEFAULTS = {
|
|
7368
7368
|
"appointment-booking": {
|
|
7369
7369
|
completedAction: "Verify appointment details, confirm calendar state, and send any required confirmation.",
|
|
@@ -7600,7 +7600,7 @@ var resolveVoiceOutcomeRecipe = (name, options = {}) => {
|
|
|
7600
7600
|
};
|
|
7601
7601
|
};
|
|
7602
7602
|
|
|
7603
|
-
// src/assistantMemory.ts
|
|
7603
|
+
// src/core/assistantMemory.ts
|
|
7604
7604
|
var createMemoryId = (input) => `${input.assistantId}:${input.namespace}:${input.key}`;
|
|
7605
7605
|
var createVoiceAssistantMemoryRecord = (input) => {
|
|
7606
7606
|
const now = Date.now();
|
|
@@ -7706,7 +7706,7 @@ var createVoiceAssistantMemoryHandle = async (input) => {
|
|
|
7706
7706
|
};
|
|
7707
7707
|
};
|
|
7708
7708
|
|
|
7709
|
-
// src/assistant.ts
|
|
7709
|
+
// src/core/assistant.ts
|
|
7710
7710
|
var hashString = (value) => {
|
|
7711
7711
|
let hash = 2166136261;
|
|
7712
7712
|
for (let index = 0;index < value.length; index += 1) {
|
|
@@ -8115,7 +8115,7 @@ var summarizeVoiceAssistantRuns = async (input) => {
|
|
|
8115
8115
|
};
|
|
8116
8116
|
};
|
|
8117
8117
|
|
|
8118
|
-
// src/providerHealth.ts
|
|
8118
|
+
// src/core/providerHealth.ts
|
|
8119
8119
|
import { Elysia as Elysia2 } from "elysia";
|
|
8120
8120
|
var getString = (value) => typeof value === "string" ? value : undefined;
|
|
8121
8121
|
var getNumber = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -8323,7 +8323,7 @@ var createVoiceProviderHealthRoutes = (options) => {
|
|
|
8323
8323
|
return routes;
|
|
8324
8324
|
};
|
|
8325
8325
|
|
|
8326
|
-
// src/assistantHealth.ts
|
|
8326
|
+
// src/core/assistantHealth.ts
|
|
8327
8327
|
var renderCountMap = (values) => {
|
|
8328
8328
|
const entries = Object.entries(values).sort((left, right) => right[1] - left[1]);
|
|
8329
8329
|
if (entries.length === 0) {
|
|
@@ -8429,10 +8429,10 @@ var createVoiceAssistantHealthRoutes = (options) => {
|
|
|
8429
8429
|
return routes;
|
|
8430
8430
|
};
|
|
8431
8431
|
|
|
8432
|
-
// src/auditDeliveryRoutes.ts
|
|
8432
|
+
// src/core/auditDeliveryRoutes.ts
|
|
8433
8433
|
import { Elysia as Elysia5 } from "elysia";
|
|
8434
8434
|
|
|
8435
|
-
// src/trace.ts
|
|
8435
|
+
// src/core/trace.ts
|
|
8436
8436
|
var createVoiceTraceEventId = (event) => [
|
|
8437
8437
|
event.sessionId,
|
|
8438
8438
|
event.turnId ?? "session",
|
|
@@ -9243,7 +9243,7 @@ var buildVoiceTraceReplay = (events, options = {}) => ({
|
|
|
9243
9243
|
summary: summarizeVoiceTrace(options.redact ? redactVoiceTraceEvents(events, options.redact) : events)
|
|
9244
9244
|
});
|
|
9245
9245
|
|
|
9246
|
-
// src/auditRoutes.ts
|
|
9246
|
+
// src/core/auditRoutes.ts
|
|
9247
9247
|
import { Elysia as Elysia4 } from "elysia";
|
|
9248
9248
|
var getString3 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
9249
9249
|
var getNumber2 = (value) => {
|
|
@@ -9440,7 +9440,7 @@ var createVoiceAuditTrailRoutes = (options) => {
|
|
|
9440
9440
|
return routes;
|
|
9441
9441
|
};
|
|
9442
9442
|
|
|
9443
|
-
// src/auditExport.ts
|
|
9443
|
+
// src/core/auditExport.ts
|
|
9444
9444
|
var normalizeRedactionKey2 = (key) => key.trim().toLowerCase().replace(/[^a-z0-9]/g, "");
|
|
9445
9445
|
var resolveReplacement2 = (input) => typeof input.options.replacement === "function" ? input.options.replacement({
|
|
9446
9446
|
key: input.key,
|
|
@@ -9571,7 +9571,7 @@ var buildVoiceAuditExport = (events, options = {}) => {
|
|
|
9571
9571
|
};
|
|
9572
9572
|
};
|
|
9573
9573
|
|
|
9574
|
-
// src/auditSinks.ts
|
|
9574
|
+
// src/core/auditSinks.ts
|
|
9575
9575
|
var sleep4 = async (delayMs) => {
|
|
9576
9576
|
if (delayMs <= 0) {
|
|
9577
9577
|
return;
|
|
@@ -10008,7 +10008,7 @@ var createVoiceAuditSinkDeliveryWorkerLoop = (options) => {
|
|
|
10008
10008
|
};
|
|
10009
10009
|
};
|
|
10010
10010
|
|
|
10011
|
-
// src/auditDeliveryRoutes.ts
|
|
10011
|
+
// src/core/auditDeliveryRoutes.ts
|
|
10012
10012
|
var getString4 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
10013
10013
|
var getNumber3 = (value) => {
|
|
10014
10014
|
if (typeof value === "number" && Number.isFinite(value)) {
|
|
@@ -10134,7 +10134,7 @@ var createVoiceAuditDeliveryRoutes = (options) => {
|
|
|
10134
10134
|
return routes;
|
|
10135
10135
|
};
|
|
10136
10136
|
|
|
10137
|
-
// src/bargeInRoutes.ts
|
|
10137
|
+
// src/core/bargeInRoutes.ts
|
|
10138
10138
|
import { Elysia as Elysia6 } from "elysia";
|
|
10139
10139
|
var isBargeInPayload = (value) => !!value && typeof value === "object" && typeof value.at === "number" && typeof value.id === "string" && typeof value.reason === "string" && typeof value.status === "string";
|
|
10140
10140
|
var toBargeInEvent = (event) => event.type === "client.barge_in" && isBargeInPayload(event.payload) ? event.payload : undefined;
|
|
@@ -10230,7 +10230,7 @@ var createVoiceBargeInRoutes = (options) => {
|
|
|
10230
10230
|
return routes;
|
|
10231
10231
|
};
|
|
10232
10232
|
|
|
10233
|
-
// src/browserCallProfiles.ts
|
|
10233
|
+
// src/core/browserCallProfiles.ts
|
|
10234
10234
|
import { Elysia as Elysia7 } from "elysia";
|
|
10235
10235
|
var DEFAULT_MAX_AGE_MS = 10 * 60 * 1000;
|
|
10236
10236
|
var toTime = (value) => {
|
|
@@ -10415,7 +10415,7 @@ var createVoiceBrowserCallProfileRoutes = (options = {}) => {
|
|
|
10415
10415
|
return routes;
|
|
10416
10416
|
};
|
|
10417
10417
|
|
|
10418
|
-
// src/browserMediaRoutes.ts
|
|
10418
|
+
// src/core/browserMediaRoutes.ts
|
|
10419
10419
|
import { Elysia as Elysia8 } from "elysia";
|
|
10420
10420
|
var isMediaWebRTCStatsReport = (value) => {
|
|
10421
10421
|
const report = value;
|
|
@@ -10527,10 +10527,10 @@ var createVoiceBrowserMediaRoutes = (options) => {
|
|
|
10527
10527
|
return routes;
|
|
10528
10528
|
};
|
|
10529
10529
|
|
|
10530
|
-
// src/callDebugger.ts
|
|
10530
|
+
// src/core/callDebugger.ts
|
|
10531
10531
|
import { Elysia as Elysia13 } from "elysia";
|
|
10532
10532
|
|
|
10533
|
-
// src/operationsRecord.ts
|
|
10533
|
+
// src/core/operationsRecord.ts
|
|
10534
10534
|
import { Elysia as Elysia11 } from "elysia";
|
|
10535
10535
|
import {
|
|
10536
10536
|
summarizeMediaProcessorGraphReport,
|
|
@@ -10538,7 +10538,7 @@ import {
|
|
|
10538
10538
|
summarizeMediaTransportReport
|
|
10539
10539
|
} from "@absolutejs/media";
|
|
10540
10540
|
|
|
10541
|
-
// src/sessionReplay.ts
|
|
10541
|
+
// src/core/sessionReplay.ts
|
|
10542
10542
|
import { Elysia as Elysia9 } from "elysia";
|
|
10543
10543
|
var getString5 = (value) => typeof value === "string" ? value : undefined;
|
|
10544
10544
|
var increment3 = (record, key) => {
|
|
@@ -10818,7 +10818,7 @@ var createVoiceSessionReplayRoutes = (options) => {
|
|
|
10818
10818
|
return routes;
|
|
10819
10819
|
};
|
|
10820
10820
|
|
|
10821
|
-
// src/traceTimeline.ts
|
|
10821
|
+
// src/core/traceTimeline.ts
|
|
10822
10822
|
import { Elysia as Elysia10 } from "elysia";
|
|
10823
10823
|
var getString6 = (value) => typeof value === "string" && value.trim() ? value : undefined;
|
|
10824
10824
|
var getNumber4 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -11096,7 +11096,7 @@ var createVoiceTraceTimelineRoutes = (options) => {
|
|
|
11096
11096
|
return routes;
|
|
11097
11097
|
};
|
|
11098
11098
|
|
|
11099
|
-
// src/operationsRecord.ts
|
|
11099
|
+
// src/core/operationsRecord.ts
|
|
11100
11100
|
var getString7 = (value) => typeof value === "string" ? value : undefined;
|
|
11101
11101
|
var getNumber5 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
11102
11102
|
var getBoolean = (value) => typeof value === "boolean" ? value : undefined;
|
|
@@ -11944,10 +11944,10 @@ var createVoiceOperationsRecordRoutes = (options) => {
|
|
|
11944
11944
|
return routes;
|
|
11945
11945
|
};
|
|
11946
11946
|
|
|
11947
|
-
// src/sessionSnapshot.ts
|
|
11947
|
+
// src/core/sessionSnapshot.ts
|
|
11948
11948
|
import { Elysia as Elysia12 } from "elysia";
|
|
11949
11949
|
|
|
11950
|
-
// src/proofAssertions.ts
|
|
11950
|
+
// src/core/proofAssertions.ts
|
|
11951
11951
|
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11952
11952
|
var createVoiceProofAssertion = (input) => ({
|
|
11953
11953
|
kind: "json-assertion",
|
|
@@ -11986,7 +11986,7 @@ var summarizeVoiceProofAssertions = (assertions) => {
|
|
|
11986
11986
|
};
|
|
11987
11987
|
};
|
|
11988
11988
|
|
|
11989
|
-
// src/sessionSnapshot.ts
|
|
11989
|
+
// src/core/sessionSnapshot.ts
|
|
11990
11990
|
var statusRank = (status) => {
|
|
11991
11991
|
if (status === "fail") {
|
|
11992
11992
|
return 2;
|
|
@@ -12121,7 +12121,7 @@ var createVoiceSessionSnapshotRoutes = (options = {}) => {
|
|
|
12121
12121
|
return app;
|
|
12122
12122
|
};
|
|
12123
12123
|
|
|
12124
|
-
// src/callDebugger.ts
|
|
12124
|
+
// src/core/callDebugger.ts
|
|
12125
12125
|
var resolveSessionId = (params) => {
|
|
12126
12126
|
const sessionId = params.sessionId;
|
|
12127
12127
|
return typeof sessionId === "string" ? sessionId : "";
|
|
@@ -12271,7 +12271,15 @@ var createVoiceCallDebuggerRoutes = (options) => {
|
|
|
12271
12271
|
return app;
|
|
12272
12272
|
};
|
|
12273
12273
|
|
|
12274
|
-
// src/
|
|
12274
|
+
// src/internal/evidence.ts
|
|
12275
|
+
var assertVoiceEvidence = (failureMessage, assertion) => {
|
|
12276
|
+
if (!assertion.ok) {
|
|
12277
|
+
throw new Error(`${failureMessage}: ${assertion.issues.join(" ")}`);
|
|
12278
|
+
}
|
|
12279
|
+
return assertion;
|
|
12280
|
+
};
|
|
12281
|
+
|
|
12282
|
+
// src/core/campaign.ts
|
|
12275
12283
|
import { Elysia as Elysia14 } from "elysia";
|
|
12276
12284
|
var createId2 = () => crypto.randomUUID();
|
|
12277
12285
|
var cloneRecord = (record) => ({
|
|
@@ -13399,11 +13407,7 @@ var evaluateVoiceCampaignReadinessEvidence = (report, input = {}) => {
|
|
|
13399
13407
|
};
|
|
13400
13408
|
};
|
|
13401
13409
|
var assertVoiceCampaignReadinessEvidence = (report, input = {}) => {
|
|
13402
|
-
|
|
13403
|
-
if (!assertion.ok) {
|
|
13404
|
-
throw new Error(`Voice campaign readiness evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
13405
|
-
}
|
|
13406
|
-
return assertion;
|
|
13410
|
+
return assertVoiceEvidence("Voice campaign readiness evidence assertion failed", evaluateVoiceCampaignReadinessEvidence(report, input));
|
|
13407
13411
|
};
|
|
13408
13412
|
var getString8 = (value) => typeof value === "string" && value.length > 0 ? value : undefined;
|
|
13409
13413
|
var campaignAttemptSessionId = (attempt) => getString8(attempt.metadata?.sessionId) ?? getString8(attempt.metadata?.voiceSessionId) ?? getString8(attempt.metadata?.callSessionId);
|
|
@@ -13483,7 +13487,7 @@ var createVoiceCampaignRoutes = (options) => {
|
|
|
13483
13487
|
return app;
|
|
13484
13488
|
};
|
|
13485
13489
|
|
|
13486
|
-
// src/competitiveCoverage.ts
|
|
13490
|
+
// src/core/competitiveCoverage.ts
|
|
13487
13491
|
import { Elysia as Elysia15 } from "elysia";
|
|
13488
13492
|
var escapeMarkdown = (value) => value.replaceAll("|", "\\|");
|
|
13489
13493
|
var resolveSurfaceStatus = (surface) => {
|
|
@@ -13713,7 +13717,7 @@ var createVoiceCompetitiveCoverageRoutes = (options) => {
|
|
|
13713
13717
|
return app;
|
|
13714
13718
|
};
|
|
13715
13719
|
|
|
13716
|
-
// src/dataControl.ts
|
|
13720
|
+
// src/core/dataControl.ts
|
|
13717
13721
|
import { Elysia as Elysia16 } from "elysia";
|
|
13718
13722
|
var voiceComplianceRedactionDefaults = {
|
|
13719
13723
|
keys: [
|
|
@@ -14151,11 +14155,7 @@ var evaluateVoiceDataControlEvidence = (report, input = {}) => {
|
|
|
14151
14155
|
};
|
|
14152
14156
|
};
|
|
14153
14157
|
var assertVoiceDataControlEvidence = (report, input = {}) => {
|
|
14154
|
-
|
|
14155
|
-
if (!assertion.ok) {
|
|
14156
|
-
throw new Error(`Voice data-control evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
14157
|
-
}
|
|
14158
|
-
return assertion;
|
|
14158
|
+
return assertVoiceEvidence("Voice data-control evidence assertion failed", evaluateVoiceDataControlEvidence(report, input));
|
|
14159
14159
|
};
|
|
14160
14160
|
var createVoiceZeroRetentionPolicy = (options) => ({
|
|
14161
14161
|
...options,
|
|
@@ -14328,12 +14328,12 @@ var createVoiceDataControlRoutes = (options) => {
|
|
|
14328
14328
|
return routes;
|
|
14329
14329
|
};
|
|
14330
14330
|
|
|
14331
|
-
// src/deliveryRuntime.ts
|
|
14331
|
+
// src/core/deliveryRuntime.ts
|
|
14332
14332
|
import { Elysia as Elysia17 } from "elysia";
|
|
14333
14333
|
import { mkdir } from "fs/promises";
|
|
14334
14334
|
import { dirname, join } from "path";
|
|
14335
14335
|
|
|
14336
|
-
// src/queue.ts
|
|
14336
|
+
// src/core/queue.ts
|
|
14337
14337
|
var releaseLeaseScript = `
|
|
14338
14338
|
if redis.call("GET", KEYS[1]) == ARGV[1] then
|
|
14339
14339
|
return redis.call("DEL", KEYS[1])
|
|
@@ -15273,7 +15273,7 @@ var createVoiceOpsTaskProcessorWorkerLoop = (options) => {
|
|
|
15273
15273
|
};
|
|
15274
15274
|
};
|
|
15275
15275
|
|
|
15276
|
-
// src/deliveryRuntime.ts
|
|
15276
|
+
// src/core/deliveryRuntime.ts
|
|
15277
15277
|
var renderSummaryCard = (label, summary) => {
|
|
15278
15278
|
if (!summary) {
|
|
15279
15279
|
return `<article><span>${escapeHtml(label)}</span><strong>Disabled</strong><p class="muted">No worker configured.</p></article>`;
|
|
@@ -15572,7 +15572,7 @@ var worstVoiceStatus = (statuses) => {
|
|
|
15572
15572
|
return worst;
|
|
15573
15573
|
};
|
|
15574
15574
|
|
|
15575
|
-
// src/deliverySinkRoutes.ts
|
|
15575
|
+
// src/core/deliverySinkRoutes.ts
|
|
15576
15576
|
import { Elysia as Elysia18 } from "elysia";
|
|
15577
15577
|
var deliveryStatus = (summary) => {
|
|
15578
15578
|
if (!summary) {
|
|
@@ -15708,7 +15708,7 @@ var createVoiceDeliverySinkRoutes = (options) => {
|
|
|
15708
15708
|
return routes;
|
|
15709
15709
|
};
|
|
15710
15710
|
|
|
15711
|
-
// src/demoReadyRoutes.ts
|
|
15711
|
+
// src/core/demoReadyRoutes.ts
|
|
15712
15712
|
import { Elysia as Elysia19 } from "elysia";
|
|
15713
15713
|
var rollupStatus = (sections) => worstVoiceStatus(sections.map((section) => section.status));
|
|
15714
15714
|
var resolveLoader = async (loader, input) => typeof loader === "function" ? await loader(input) : loader;
|
|
@@ -15825,7 +15825,7 @@ var createVoiceDemoReadyRoutes = (options) => {
|
|
|
15825
15825
|
return routes;
|
|
15826
15826
|
};
|
|
15827
15827
|
|
|
15828
|
-
// src/diagnosticsRoutes.ts
|
|
15828
|
+
// src/core/diagnosticsRoutes.ts
|
|
15829
15829
|
import { Elysia as Elysia20 } from "elysia";
|
|
15830
15830
|
var getString9 = (value) => typeof value === "string" && value.trim() ? value : undefined;
|
|
15831
15831
|
var getNumber6 = (value) => {
|
|
@@ -15963,15 +15963,15 @@ var createVoiceDiagnosticsRoutes = (options) => {
|
|
|
15963
15963
|
return routes;
|
|
15964
15964
|
};
|
|
15965
15965
|
|
|
15966
|
-
// src/evalRoutes.ts
|
|
15966
|
+
// src/core/evalRoutes.ts
|
|
15967
15967
|
import { Elysia as Elysia23 } from "elysia";
|
|
15968
15968
|
import { mkdir as mkdir2 } from "fs/promises";
|
|
15969
15969
|
import { dirname as dirname2 } from "path";
|
|
15970
15970
|
|
|
15971
|
-
// src/qualityRoutes.ts
|
|
15971
|
+
// src/core/qualityRoutes.ts
|
|
15972
15972
|
import { Elysia as Elysia22 } from "elysia";
|
|
15973
15973
|
|
|
15974
|
-
// src/handoffHealth.ts
|
|
15974
|
+
// src/core/handoffHealth.ts
|
|
15975
15975
|
import { Elysia as Elysia21 } from "elysia";
|
|
15976
15976
|
var getString10 = (value) => typeof value === "string" && value.length > 0 ? value : undefined;
|
|
15977
15977
|
var isStatus = (value) => value === "delivered" || value === "failed" || value === "skipped";
|
|
@@ -16163,7 +16163,7 @@ var createVoiceHandoffHealthRoutes = (options = {}) => {
|
|
|
16163
16163
|
return routes;
|
|
16164
16164
|
};
|
|
16165
16165
|
|
|
16166
|
-
// src/qualityRoutes.ts
|
|
16166
|
+
// src/core/qualityRoutes.ts
|
|
16167
16167
|
var DEFAULT_THRESHOLDS = {
|
|
16168
16168
|
maxDuplicateTurnRate: 0,
|
|
16169
16169
|
maxEmptyTurnRate: 0.02,
|
|
@@ -16312,7 +16312,7 @@ var createVoiceQualityRoutes = (options) => {
|
|
|
16312
16312
|
return routes;
|
|
16313
16313
|
};
|
|
16314
16314
|
|
|
16315
|
-
// src/evalRoutes.ts
|
|
16315
|
+
// src/core/evalRoutes.ts
|
|
16316
16316
|
var rate2 = (count, total) => count / Math.max(1, total);
|
|
16317
16317
|
var normalizeSearchText = (value) => value.trim().toLowerCase();
|
|
16318
16318
|
var getString12 = (value) => typeof value === "string" ? value : undefined;
|
|
@@ -16842,7 +16842,7 @@ var createVoiceEvalRoutes = (options) => {
|
|
|
16842
16842
|
return routes;
|
|
16843
16843
|
};
|
|
16844
16844
|
|
|
16845
|
-
// src/guardrails.ts
|
|
16845
|
+
// src/core/guardrails.ts
|
|
16846
16846
|
import { Elysia as Elysia24 } from "elysia";
|
|
16847
16847
|
var stringifyContent = (value) => typeof value === "string" ? value : JSON.stringify(value) ?? "";
|
|
16848
16848
|
var appliesToStage = (rule, stage) => !rule.stages || rule.stages.length === 0 || rule.stages.includes(stage);
|
|
@@ -17180,7 +17180,7 @@ var createVoiceGuardrailRoutes = (options = {}) => {
|
|
|
17180
17180
|
return routes;
|
|
17181
17181
|
};
|
|
17182
17182
|
|
|
17183
|
-
// src/htmxDashboardRoutes.ts
|
|
17183
|
+
// src/core/htmxDashboardRoutes.ts
|
|
17184
17184
|
import { Elysia as Elysia25 } from "elysia";
|
|
17185
17185
|
|
|
17186
17186
|
// src/client/costDashboard.ts
|
|
@@ -17263,7 +17263,7 @@ var buildVoiceCostDashboardReport = (options) => {
|
|
|
17263
17263
|
};
|
|
17264
17264
|
};
|
|
17265
17265
|
|
|
17266
|
-
// src/agentState.ts
|
|
17266
|
+
// src/core/agentState.ts
|
|
17267
17267
|
var deriveVoiceAgentUIState = (input) => {
|
|
17268
17268
|
if (!input.isConnected) {
|
|
17269
17269
|
return "idle";
|
|
@@ -17663,7 +17663,7 @@ var renderVoiceLiveCallViewerFromState = (input) => renderVoiceLiveCallViewerHTM
|
|
|
17663
17663
|
});
|
|
17664
17664
|
var createLiveCallViewerFromOptions = createLiveCallViewer;
|
|
17665
17665
|
|
|
17666
|
-
// src/htmxDashboardRoutes.ts
|
|
17666
|
+
// src/core/htmxDashboardRoutes.ts
|
|
17667
17667
|
var HTML_HEADERS = { "content-type": "text/html; charset=utf-8" };
|
|
17668
17668
|
var createVoiceCostDashboardHTMXRoute = (options) => {
|
|
17669
17669
|
const renderers = resolveVoiceDashboardRenderers(options.render);
|
|
@@ -17778,7 +17778,7 @@ var createVoiceHTMXDashboardRoutesFromStores = (options) => createVoiceHTMXDashb
|
|
|
17778
17778
|
} : undefined
|
|
17779
17779
|
});
|
|
17780
17780
|
|
|
17781
|
-
// src/incidentBundle.ts
|
|
17781
|
+
// src/core/incidentBundle.ts
|
|
17782
17782
|
import { Elysia as Elysia26 } from "elysia";
|
|
17783
17783
|
var filterIncidentBundleArtifacts = (artifacts, filter = {}) => artifacts.filter((artifact) => {
|
|
17784
17784
|
if (filter.sessionId && artifact.sessionId !== filter.sessionId) {
|
|
@@ -18026,10 +18026,10 @@ var createVoiceIncidentBundleRoutes = (options) => {
|
|
|
18026
18026
|
return routes;
|
|
18027
18027
|
};
|
|
18028
18028
|
|
|
18029
|
-
// src/incidentTimeline.ts
|
|
18029
|
+
// src/core/incidentTimeline.ts
|
|
18030
18030
|
import { Elysia as Elysia28 } from "elysia";
|
|
18031
18031
|
|
|
18032
|
-
// src/opsActionAuditRoutes.ts
|
|
18032
|
+
// src/core/opsActionAuditRoutes.ts
|
|
18033
18033
|
import { Elysia as Elysia27 } from "elysia";
|
|
18034
18034
|
var readRecordBody = (body) => {
|
|
18035
18035
|
if (!body || typeof body !== "object") {
|
|
@@ -18160,7 +18160,7 @@ var renderVoiceOpsActionHistoryHTML = (report) => {
|
|
|
18160
18160
|
return `<!doctype html><html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" /><title>Voice Ops Action History</title><style>body{background:#11140f;color:#f7f1df;font-family:ui-sans-serif,system-ui,sans-serif;margin:0}main{margin:auto;max-width:980px;padding:32px}.hero,article{background:#181d15;border:1px solid #2c3327;border-radius:24px;padding:20px}.hero{margin-bottom:16px}h1{font-size:clamp(2rem,6vw,4rem);line-height:.95}section{display:grid;gap:12px}article.ok{border-color:rgba(34,197,94,.55)}article.fail{border-color:rgba(239,68,68,.75)}span{color:#facc15;font-weight:900;text-transform:uppercase}p{color:#c8ccb8}</style></head><body><main><section class="hero"><span>Operator proof</span><h1>Voice Ops Action History</h1><p>${String(report.total)} action(s), ${String(report.failed)} failed.</p></section><section>${rows || "<p>No operator actions have been recorded.</p>"}</section></main></body></html>`;
|
|
18161
18161
|
};
|
|
18162
18162
|
|
|
18163
|
-
// src/incidentTimeline.ts
|
|
18163
|
+
// src/core/incidentTimeline.ts
|
|
18164
18164
|
var resolveValue = async (value) => typeof value === "function" ? await value() : value;
|
|
18165
18165
|
var linkForSession = (link, sessionId) => {
|
|
18166
18166
|
if (!link || !sessionId) {
|
|
@@ -18937,7 +18937,7 @@ var createVoiceIncidentTimelineRoutes = (options) => {
|
|
|
18937
18937
|
return routes;
|
|
18938
18938
|
};
|
|
18939
18939
|
|
|
18940
|
-
// src/liveLatency.ts
|
|
18940
|
+
// src/core/liveLatency.ts
|
|
18941
18941
|
import { Elysia as Elysia29 } from "elysia";
|
|
18942
18942
|
var percentile = (values, percentileValue) => {
|
|
18943
18943
|
if (values.length === 0) {
|
|
@@ -19028,7 +19028,7 @@ var createVoiceLiveLatencyRoutes = (options) => {
|
|
|
19028
19028
|
return routes;
|
|
19029
19029
|
};
|
|
19030
19030
|
|
|
19031
|
-
// src/liveOps.ts
|
|
19031
|
+
// src/core/liveOps.ts
|
|
19032
19032
|
import { Elysia as Elysia30 } from "elysia";
|
|
19033
19033
|
var VOICE_LIVE_OPS_ACTIONS = [
|
|
19034
19034
|
"assign",
|
|
@@ -19130,11 +19130,7 @@ var evaluateVoiceLiveOpsEvidence = (input = {}) => {
|
|
|
19130
19130
|
};
|
|
19131
19131
|
};
|
|
19132
19132
|
var assertVoiceLiveOpsEvidence = (input = {}) => {
|
|
19133
|
-
|
|
19134
|
-
if (!assertion.ok) {
|
|
19135
|
-
throw new Error(`Voice live-ops evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
19136
|
-
}
|
|
19137
|
-
return assertion;
|
|
19133
|
+
return assertVoiceEvidence("Voice live-ops evidence assertion failed", evaluateVoiceLiveOpsEvidence(input));
|
|
19138
19134
|
};
|
|
19139
19135
|
var evaluateVoiceLiveOpsControlEvidence = (input = {}) => {
|
|
19140
19136
|
const issues = [];
|
|
@@ -19182,11 +19178,7 @@ var evaluateVoiceLiveOpsControlEvidence = (input = {}) => {
|
|
|
19182
19178
|
};
|
|
19183
19179
|
};
|
|
19184
19180
|
var assertVoiceLiveOpsControlEvidence = (input = {}) => {
|
|
19185
|
-
|
|
19186
|
-
if (!assertion.ok) {
|
|
19187
|
-
throw new Error(`Voice live-ops control evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
19188
|
-
}
|
|
19189
|
-
return assertion;
|
|
19181
|
+
return assertVoiceEvidence("Voice live-ops control evidence assertion failed", evaluateVoiceLiveOpsControlEvidence(input));
|
|
19190
19182
|
};
|
|
19191
19183
|
var createVoiceMemoryLiveOpsControlStore = () => {
|
|
19192
19184
|
const states = new Map;
|
|
@@ -19361,7 +19353,7 @@ var createVoiceLiveOpsRoutes = (options = {}) => {
|
|
|
19361
19353
|
});
|
|
19362
19354
|
};
|
|
19363
19355
|
|
|
19364
|
-
// src/mediaPipelineRoutes.ts
|
|
19356
|
+
// src/core/mediaPipelineRoutes.ts
|
|
19365
19357
|
import { Elysia as Elysia31 } from "elysia";
|
|
19366
19358
|
import {
|
|
19367
19359
|
buildMediaInterruptionReport,
|
|
@@ -19505,11 +19497,7 @@ var evaluateVoiceMediaPipelineEvidence = (report, input = {}) => {
|
|
|
19505
19497
|
};
|
|
19506
19498
|
};
|
|
19507
19499
|
var assertVoiceMediaPipelineEvidence = (report, input = {}) => {
|
|
19508
|
-
|
|
19509
|
-
if (!assertion.ok) {
|
|
19510
|
-
throw new Error(`Voice media pipeline assertion failed: ${assertion.issues.join(" ")}`);
|
|
19511
|
-
}
|
|
19512
|
-
return assertion;
|
|
19500
|
+
return assertVoiceEvidence("Voice media pipeline assertion failed", evaluateVoiceMediaPipelineEvidence(report, input));
|
|
19513
19501
|
};
|
|
19514
19502
|
var renderVoiceMediaPipelineMarkdown = (report) => [
|
|
19515
19503
|
"# Voice Media Pipeline Proof",
|
|
@@ -19673,7 +19661,7 @@ var summarizeVoiceMediaPipelineReport = (report, options = {}) => {
|
|
|
19673
19661
|
};
|
|
19674
19662
|
};
|
|
19675
19663
|
|
|
19676
|
-
// src/monitor.ts
|
|
19664
|
+
// src/core/monitor.ts
|
|
19677
19665
|
import { Elysia as Elysia32 } from "elysia";
|
|
19678
19666
|
var buildAudioFanout = () => {
|
|
19679
19667
|
const handlers = new Set;
|
|
@@ -20134,7 +20122,7 @@ var createVoiceLiveMonitorRoutes = (options) => {
|
|
|
20134
20122
|
return app;
|
|
20135
20123
|
};
|
|
20136
20124
|
|
|
20137
|
-
// src/observabilityExport.ts
|
|
20125
|
+
// src/core/observabilityExport.ts
|
|
20138
20126
|
import { Elysia as Elysia33 } from "elysia";
|
|
20139
20127
|
import { Database } from "bun:sqlite";
|
|
20140
20128
|
import { createHash } from "crypto";
|
|
@@ -20703,11 +20691,7 @@ var evaluateVoiceObservabilityExportReplayEvidence = (report, input = {}) => {
|
|
|
20703
20691
|
};
|
|
20704
20692
|
};
|
|
20705
20693
|
var assertVoiceObservabilityExportReplayEvidence = (report, input = {}) => {
|
|
20706
|
-
|
|
20707
|
-
if (!assertion.ok) {
|
|
20708
|
-
throw new Error(`Voice observability export replay assertion failed: ${assertion.issues.join(" ")}`);
|
|
20709
|
-
}
|
|
20710
|
-
return assertion;
|
|
20694
|
+
return assertVoiceEvidence("Voice observability export replay assertion failed", evaluateVoiceObservabilityExportReplayEvidence(report, input));
|
|
20711
20695
|
};
|
|
20712
20696
|
var loadVoiceObservabilityExportReplaySource = async (source) => {
|
|
20713
20697
|
if (source.kind === "records") {
|
|
@@ -21056,11 +21040,7 @@ var evaluateVoiceObservabilityExportDeliveryEvidence = (history, input = {}) =>
|
|
|
21056
21040
|
};
|
|
21057
21041
|
};
|
|
21058
21042
|
var assertVoiceObservabilityExportDeliveryEvidence = (history, input = {}) => {
|
|
21059
|
-
|
|
21060
|
-
if (!assertion.ok) {
|
|
21061
|
-
throw new Error(`Voice observability export delivery assertion failed: ${assertion.issues.join(" ")}`);
|
|
21062
|
-
}
|
|
21063
|
-
return assertion;
|
|
21043
|
+
return assertVoiceEvidence("Voice observability export delivery assertion failed", evaluateVoiceObservabilityExportDeliveryEvidence(history, input));
|
|
21064
21044
|
};
|
|
21065
21045
|
var inferContentType = (artifact) => {
|
|
21066
21046
|
if (artifact.contentType) {
|
|
@@ -21742,13 +21722,13 @@ var createVoiceObservabilityExportRoutes = (options = {}) => {
|
|
|
21742
21722
|
return app;
|
|
21743
21723
|
};
|
|
21744
21724
|
|
|
21745
|
-
// src/operationalStatus.ts
|
|
21725
|
+
// src/core/operationalStatus.ts
|
|
21746
21726
|
import { Elysia as Elysia45 } from "elysia";
|
|
21747
21727
|
|
|
21748
|
-
// src/productionReadiness.ts
|
|
21728
|
+
// src/core/productionReadiness.ts
|
|
21749
21729
|
import { Elysia as Elysia44 } from "elysia";
|
|
21750
21730
|
|
|
21751
|
-
// src/resilienceRoutes.ts
|
|
21731
|
+
// src/core/resilienceRoutes.ts
|
|
21752
21732
|
import { Elysia as Elysia34 } from "elysia";
|
|
21753
21733
|
var getString14 = (value) => typeof value === "string" ? value : undefined;
|
|
21754
21734
|
var getNumber8 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -22419,7 +22399,7 @@ var createVoiceTelephonyCarrierMatrixRoutes = (options) => {
|
|
|
22419
22399
|
});
|
|
22420
22400
|
};
|
|
22421
22401
|
|
|
22422
|
-
// src/telephonyOutcome.ts
|
|
22402
|
+
// src/core/telephonyOutcome.ts
|
|
22423
22403
|
import { Elysia as Elysia36 } from "elysia";
|
|
22424
22404
|
var DEFAULT_COMPLETED_STATUSES = [
|
|
22425
22405
|
"answered",
|
|
@@ -22584,11 +22564,7 @@ var evaluateVoiceTelephonyWebhookNormalizationEvidence = (input = {}) => {
|
|
|
22584
22564
|
};
|
|
22585
22565
|
};
|
|
22586
22566
|
var assertVoiceTelephonyWebhookNormalizationEvidence = (input = {}) => {
|
|
22587
|
-
|
|
22588
|
-
if (!assertion.ok) {
|
|
22589
|
-
throw new Error(`Voice telephony webhook normalization evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
22590
|
-
}
|
|
22591
|
-
return assertion;
|
|
22567
|
+
return assertVoiceEvidence("Voice telephony webhook normalization evidence assertion failed", evaluateVoiceTelephonyWebhookNormalizationEvidence(input));
|
|
22592
22568
|
};
|
|
22593
22569
|
var normalizeToken = (value) => typeof value === "string" ? value.trim().toLowerCase().replace(/\s+/g, "-").replace(/_+/g, "-") : undefined;
|
|
22594
22570
|
var firstString2 = (source, keys) => {
|
|
@@ -23214,7 +23190,7 @@ var createVoiceTelephonyWebhookRoutes = (options = {}) => {
|
|
|
23214
23190
|
// src/telephony/security.ts
|
|
23215
23191
|
import { Elysia as Elysia40 } from "elysia";
|
|
23216
23192
|
|
|
23217
|
-
// src/postgresStore.ts
|
|
23193
|
+
// src/core/postgresStore.ts
|
|
23218
23194
|
var normalizeIdentifierSegment = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice";
|
|
23219
23195
|
var quoteIdentifier = (value) => `"${value.replace(/"/g, '""')}"`;
|
|
23220
23196
|
var resolveStoreTableName = (input) => {
|
|
@@ -23474,7 +23450,7 @@ var createVoicePostgresRuntimeStorage = (options) => {
|
|
|
23474
23450
|
};
|
|
23475
23451
|
};
|
|
23476
23452
|
|
|
23477
|
-
// src/sqliteStore.ts
|
|
23453
|
+
// src/core/sqliteStore.ts
|
|
23478
23454
|
import { Database as Database2 } from "bun:sqlite";
|
|
23479
23455
|
var normalizeTableNameSegment = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice";
|
|
23480
23456
|
var resolveTableName = (input) => {
|
|
@@ -26003,11 +25979,7 @@ var evaluateVoiceTelephonyWebhookSecurityEvidence = (report, input = {}) => {
|
|
|
26003
25979
|
};
|
|
26004
25980
|
};
|
|
26005
25981
|
var assertVoiceTelephonyWebhookSecurityEvidence = (report, input = {}) => {
|
|
26006
|
-
|
|
26007
|
-
if (!assertion.ok) {
|
|
26008
|
-
throw new Error(`Voice telephony webhook security assertion failed: ${assertion.issues.join(" ")}`);
|
|
26009
|
-
}
|
|
26010
|
-
return assertion;
|
|
25982
|
+
return assertVoiceEvidence("Voice telephony webhook security assertion failed", evaluateVoiceTelephonyWebhookSecurityEvidence(report, input));
|
|
26011
25983
|
};
|
|
26012
25984
|
var createVoiceTelephonyWebhookSecurityRoutes = (options) => {
|
|
26013
25985
|
const path = options.path ?? "/api/voice/telephony/webhook-security";
|
|
@@ -26067,7 +26039,7 @@ var createVoiceTelephonyWebhookSecurityPreset = (options = {}) => {
|
|
|
26067
26039
|
};
|
|
26068
26040
|
};
|
|
26069
26041
|
|
|
26070
|
-
// src/providerSlo.ts
|
|
26042
|
+
// src/core/providerSlo.ts
|
|
26071
26043
|
import { Elysia as Elysia41 } from "elysia";
|
|
26072
26044
|
var defaultThresholds = {
|
|
26073
26045
|
llm: {
|
|
@@ -26356,11 +26328,7 @@ var evaluateVoiceProviderSloEvidence = (report, input = {}) => {
|
|
|
26356
26328
|
};
|
|
26357
26329
|
};
|
|
26358
26330
|
var assertVoiceProviderSloEvidence = (report, input = {}) => {
|
|
26359
|
-
|
|
26360
|
-
if (!assertion.ok) {
|
|
26361
|
-
throw new Error(`Voice provider SLO assertion failed: ${assertion.issues.join(" ")}`);
|
|
26362
|
-
}
|
|
26363
|
-
return assertion;
|
|
26331
|
+
return assertVoiceEvidence("Voice provider SLO assertion failed", evaluateVoiceProviderSloEvidence(report, input));
|
|
26364
26332
|
};
|
|
26365
26333
|
var formatMetricValue2 = (metric) => metric.unit === "rate" ? `${(metric.actual * 100).toFixed(2)}%` : metric.unit === "ms" ? `${Math.round(metric.actual)}ms` : String(metric.actual);
|
|
26366
26334
|
var formatMetricThreshold = (metric) => metric.unit === "rate" ? `${(metric.threshold * 100).toFixed(2)}%` : metric.unit === "ms" ? `${Math.round(metric.threshold)}ms` : String(metric.threshold);
|
|
@@ -26453,7 +26421,7 @@ var createVoiceProviderSloRoutes = (options) => {
|
|
|
26453
26421
|
return app;
|
|
26454
26422
|
};
|
|
26455
26423
|
|
|
26456
|
-
// src/sessionObservability.ts
|
|
26424
|
+
// src/core/sessionObservability.ts
|
|
26457
26425
|
import { Elysia as Elysia42 } from "elysia";
|
|
26458
26426
|
var formatMs4 = (value) => value === undefined ? "n/a" : `${String(value)}ms`;
|
|
26459
26427
|
var resolveHref = (href, sessionId) => {
|
|
@@ -26722,11 +26690,7 @@ var evaluateVoiceSessionObservabilityEvidence = (report, input = {}) => {
|
|
|
26722
26690
|
};
|
|
26723
26691
|
};
|
|
26724
26692
|
var assertVoiceSessionObservabilityEvidence = (report, input = {}) => {
|
|
26725
|
-
|
|
26726
|
-
if (!assertion.ok) {
|
|
26727
|
-
throw new Error(`Voice session observability evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
26728
|
-
}
|
|
26729
|
-
return assertion;
|
|
26693
|
+
return assertVoiceEvidence("Voice session observability evidence assertion failed", evaluateVoiceSessionObservabilityEvidence(report, input));
|
|
26730
26694
|
};
|
|
26731
26695
|
var createVoiceSessionObservabilityRoutes = (options) => {
|
|
26732
26696
|
const path = options.path ?? "/api/voice/session-observability/:sessionId";
|
|
@@ -26780,10 +26744,10 @@ var createVoiceSessionObservabilityRoutes = (options) => {
|
|
|
26780
26744
|
return routes;
|
|
26781
26745
|
};
|
|
26782
26746
|
|
|
26783
|
-
// src/opsRecovery.ts
|
|
26747
|
+
// src/core/opsRecovery.ts
|
|
26784
26748
|
import { Elysia as Elysia43 } from "elysia";
|
|
26785
26749
|
|
|
26786
|
-
// src/latencySlo.ts
|
|
26750
|
+
// src/core/latencySlo.ts
|
|
26787
26751
|
var DEFAULT_WARN_AFTER_MS = 1800;
|
|
26788
26752
|
var DEFAULT_FAIL_AFTER_MS = 3200;
|
|
26789
26753
|
var STAGE_LABELS = {
|
|
@@ -27086,7 +27050,7 @@ None.
|
|
|
27086
27050
|
`}`;
|
|
27087
27051
|
};
|
|
27088
27052
|
|
|
27089
|
-
// src/opsRecovery.ts
|
|
27053
|
+
// src/core/opsRecovery.ts
|
|
27090
27054
|
var getString16 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
27091
27055
|
var hrefForSession = (value, sessionId) => {
|
|
27092
27056
|
if (typeof value === "function") {
|
|
@@ -27341,7 +27305,7 @@ var createVoiceOpsRecoveryRoutes = (options = {}) => {
|
|
|
27341
27305
|
return routes;
|
|
27342
27306
|
};
|
|
27343
27307
|
|
|
27344
|
-
// src/productionReadiness.ts
|
|
27308
|
+
// src/core/productionReadiness.ts
|
|
27345
27309
|
var buildVoiceReadinessRecoveryActions = (input, options = {}) => {
|
|
27346
27310
|
const checks = "checks" in input ? input.checks : input;
|
|
27347
27311
|
const includeWarnings = options.includeWarnings ?? true;
|
|
@@ -27653,11 +27617,7 @@ var evaluateVoiceProductionReadinessEvidence = (report, input = {}) => {
|
|
|
27653
27617
|
};
|
|
27654
27618
|
};
|
|
27655
27619
|
var assertVoiceProductionReadinessEvidence = (report, input = {}) => {
|
|
27656
|
-
|
|
27657
|
-
if (!assertion.ok) {
|
|
27658
|
-
throw new Error(`Voice production readiness assertion failed: ${assertion.issues.join(" ")}`);
|
|
27659
|
-
}
|
|
27660
|
-
return assertion;
|
|
27620
|
+
return assertVoiceEvidence("Voice production readiness assertion failed", evaluateVoiceProductionReadinessEvidence(report, input));
|
|
27661
27621
|
};
|
|
27662
27622
|
var carrierStatus = (matrix) => matrix.summary.failing > 0 ? "fail" : matrix.summary.warnings > 0 || matrix.summary.ready < matrix.summary.providers ? "warn" : "pass";
|
|
27663
27623
|
var resolveCarriers = async (options, input) => {
|
|
@@ -29566,7 +29526,7 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
29566
29526
|
return routes;
|
|
29567
29527
|
};
|
|
29568
29528
|
|
|
29569
|
-
// src/operationalStatus.ts
|
|
29529
|
+
// src/core/operationalStatus.ts
|
|
29570
29530
|
var resolveValue2 = async (value) => typeof value === "function" ? await value() : value;
|
|
29571
29531
|
var isDeliveryRuntime = (value) => Boolean(value && typeof value === "object" && "isRunning" in value && "summarize" in value);
|
|
29572
29532
|
var worstStatus3 = (statuses) => worstVoiceStatus(statuses);
|
|
@@ -29675,7 +29635,7 @@ var createVoiceOperationalStatusRoutes = (options) => {
|
|
|
29675
29635
|
return routes;
|
|
29676
29636
|
};
|
|
29677
29637
|
|
|
29678
|
-
// src/opsConsoleRoutes.ts
|
|
29638
|
+
// src/core/opsConsoleRoutes.ts
|
|
29679
29639
|
import { Elysia as Elysia46 } from "elysia";
|
|
29680
29640
|
var DEFAULT_LINKS = [
|
|
29681
29641
|
{
|
|
@@ -29800,10 +29760,10 @@ var createVoiceOpsConsoleRoutes = (options) => {
|
|
|
29800
29760
|
return routes;
|
|
29801
29761
|
};
|
|
29802
29762
|
|
|
29803
|
-
// src/opsStatusRoutes.ts
|
|
29763
|
+
// src/core/opsStatusRoutes.ts
|
|
29804
29764
|
import { Elysia as Elysia47 } from "elysia";
|
|
29805
29765
|
|
|
29806
|
-
// src/opsStatus.ts
|
|
29766
|
+
// src/core/opsStatus.ts
|
|
29807
29767
|
var DEFAULT_LINKS2 = [
|
|
29808
29768
|
{
|
|
29809
29769
|
description: "Production quality gates.",
|
|
@@ -29966,7 +29926,7 @@ var summarizeVoiceOpsStatus = async (options) => {
|
|
|
29966
29926
|
};
|
|
29967
29927
|
};
|
|
29968
29928
|
|
|
29969
|
-
// src/opsStatusRoutes.ts
|
|
29929
|
+
// src/core/opsStatusRoutes.ts
|
|
29970
29930
|
var renderVoiceOpsStatusHTML = (report, options = {}) => {
|
|
29971
29931
|
const title = options.title ?? "AbsoluteJS Voice Ops Status";
|
|
29972
29932
|
const surfaces = Object.entries(report.surfaces).map(([key, surface]) => {
|
|
@@ -29993,7 +29953,7 @@ var createVoiceOpsStatusRoutes = (options) => {
|
|
|
29993
29953
|
return routes;
|
|
29994
29954
|
};
|
|
29995
29955
|
|
|
29996
|
-
// src/opsWebhook.ts
|
|
29956
|
+
// src/core/opsWebhook.ts
|
|
29997
29957
|
import { Elysia as Elysia48 } from "elysia";
|
|
29998
29958
|
var toHex6 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
29999
29959
|
var signVoiceOpsWebhookBody = async (input) => {
|
|
@@ -30157,7 +30117,7 @@ var createVoiceOpsWebhookReceiverRoutes = (options = {}) => {
|
|
|
30157
30117
|
});
|
|
30158
30118
|
};
|
|
30159
30119
|
|
|
30160
|
-
// src/outcomeContract.ts
|
|
30120
|
+
// src/core/outcomeContract.ts
|
|
30161
30121
|
import { Elysia as Elysia49 } from "elysia";
|
|
30162
30122
|
var resolveSessionHref4 = (value, sessionId) => {
|
|
30163
30123
|
if (value === false) {
|
|
@@ -30360,11 +30320,7 @@ var evaluateVoiceOutcomeContractEvidence = (report, input = {}) => {
|
|
|
30360
30320
|
};
|
|
30361
30321
|
};
|
|
30362
30322
|
var assertVoiceOutcomeContractEvidence = (report, input = {}) => {
|
|
30363
|
-
|
|
30364
|
-
if (!assertion.ok) {
|
|
30365
|
-
throw new Error(`Voice outcome contract evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
30366
|
-
}
|
|
30367
|
-
return assertion;
|
|
30323
|
+
return assertVoiceEvidence("Voice outcome contract evidence assertion failed", evaluateVoiceOutcomeContractEvidence(report, input));
|
|
30368
30324
|
};
|
|
30369
30325
|
var renderVoiceOutcomeContractHTML = (report, options = {}) => {
|
|
30370
30326
|
const title = options.title ?? "Voice Outcome Contracts";
|
|
@@ -30415,7 +30371,7 @@ var createVoiceOutcomeContractRoutes = (options) => {
|
|
|
30415
30371
|
return routes;
|
|
30416
30372
|
};
|
|
30417
30373
|
|
|
30418
|
-
// src/phoneAgentProductionSmoke.ts
|
|
30374
|
+
// src/core/phoneAgentProductionSmoke.ts
|
|
30419
30375
|
import { Elysia as Elysia50 } from "elysia";
|
|
30420
30376
|
var defaultRequirements = [
|
|
30421
30377
|
"media-started",
|
|
@@ -30567,7 +30523,7 @@ var createVoicePhoneAgentProductionSmokeRoutes = (options) => {
|
|
|
30567
30523
|
return routes;
|
|
30568
30524
|
};
|
|
30569
30525
|
|
|
30570
|
-
// src/platformCoverage.ts
|
|
30526
|
+
// src/core/platformCoverage.ts
|
|
30571
30527
|
import { Elysia as Elysia51 } from "elysia";
|
|
30572
30528
|
var buildVoicePlatformCoverageSummary = (input) => {
|
|
30573
30529
|
const coverage = input.coverage ?? [];
|
|
@@ -30641,7 +30597,7 @@ var createVoicePlatformCoverageRoutes = (options) => {
|
|
|
30641
30597
|
return routes;
|
|
30642
30598
|
};
|
|
30643
30599
|
|
|
30644
|
-
// src/postCallAnalysis.ts
|
|
30600
|
+
// src/core/postCallAnalysis.ts
|
|
30645
30601
|
import { Elysia as Elysia52 } from "elysia";
|
|
30646
30602
|
var isStore = (value) => Boolean(value) && typeof value === "object" && value !== null && ("list" in value);
|
|
30647
30603
|
var asArray = async (value) => Array.isArray(value) ? value : isStore(value) ? await value.list() : [];
|
|
@@ -30846,7 +30802,7 @@ var createVoicePostCallAnalysisRoutes = (options = {}) => {
|
|
|
30846
30802
|
return routes;
|
|
30847
30803
|
};
|
|
30848
30804
|
|
|
30849
|
-
// src/proofPack.ts
|
|
30805
|
+
// src/core/proofPack.ts
|
|
30850
30806
|
import { Elysia as Elysia53 } from "elysia";
|
|
30851
30807
|
import { mkdir as mkdir4 } from "fs/promises";
|
|
30852
30808
|
import { dirname as dirname3, join as join3 } from "path";
|
|
@@ -31453,10 +31409,10 @@ var createVoiceProofPackRoutes = (options) => {
|
|
|
31453
31409
|
return app;
|
|
31454
31410
|
};
|
|
31455
31411
|
|
|
31456
|
-
// src/proofTrends.ts
|
|
31412
|
+
// src/core/proofTrends.ts
|
|
31457
31413
|
import { Elysia as Elysia55 } from "elysia";
|
|
31458
31414
|
|
|
31459
|
-
// src/providerDecisionTraces.ts
|
|
31415
|
+
// src/core/providerDecisionTraces.ts
|
|
31460
31416
|
import { Elysia as Elysia54 } from "elysia";
|
|
31461
31417
|
var getString18 = (value) => typeof value === "string" ? value : undefined;
|
|
31462
31418
|
var getNumber11 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -31770,7 +31726,7 @@ var createVoiceProviderDecisionTraceRoutes = (options) => {
|
|
|
31770
31726
|
return app;
|
|
31771
31727
|
};
|
|
31772
31728
|
|
|
31773
|
-
// src/proofTrends.ts
|
|
31729
|
+
// src/core/proofTrends.ts
|
|
31774
31730
|
var DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
31775
31731
|
var DEFAULT_VOICE_PROOF_TREND_PROFILE_DEFINITIONS = [
|
|
31776
31732
|
{
|
|
@@ -34010,11 +33966,7 @@ var evaluateVoiceProofTrendEvidence = (report, input = {}) => {
|
|
|
34010
33966
|
};
|
|
34011
33967
|
};
|
|
34012
33968
|
var assertVoiceProofTrendEvidence = (report, input = {}) => {
|
|
34013
|
-
|
|
34014
|
-
if (!assertion.ok) {
|
|
34015
|
-
throw new Error(`Voice proof trends assertion failed: ${assertion.issues.join(" ")}`);
|
|
34016
|
-
}
|
|
34017
|
-
return assertion;
|
|
33969
|
+
return assertVoiceEvidence("Voice proof trends assertion failed", evaluateVoiceProofTrendEvidence(report, input));
|
|
34018
33970
|
};
|
|
34019
33971
|
var DEFAULT_RECOMMENDATION_BUDGETS = {
|
|
34020
33972
|
maxLiveP95Ms: 800,
|
|
@@ -34589,7 +34541,7 @@ var formatVoiceProofTrendAge = (ageMs) => {
|
|
|
34589
34541
|
return `${days}d ${hours % 24}h`;
|
|
34590
34542
|
};
|
|
34591
34543
|
|
|
34592
|
-
// src/providerCapabilities.ts
|
|
34544
|
+
// src/core/providerCapabilities.ts
|
|
34593
34545
|
import { Elysia as Elysia56 } from "elysia";
|
|
34594
34546
|
var fromProviderList = (kind, providers, options) => (providers ?? []).map((provider) => ({
|
|
34595
34547
|
configured: true,
|
|
@@ -34701,7 +34653,7 @@ var createVoiceProviderCapabilityRoutes = (options) => {
|
|
|
34701
34653
|
return routes;
|
|
34702
34654
|
};
|
|
34703
34655
|
|
|
34704
|
-
// src/providerOrchestration.ts
|
|
34656
|
+
// src/core/providerOrchestration.ts
|
|
34705
34657
|
import { Elysia as Elysia57 } from "elysia";
|
|
34706
34658
|
var defaultRequirement = {
|
|
34707
34659
|
minProviders: 1,
|
|
@@ -34907,7 +34859,7 @@ var createVoiceProviderOrchestrationRoutes = (options) => {
|
|
|
34907
34859
|
return routes;
|
|
34908
34860
|
};
|
|
34909
34861
|
|
|
34910
|
-
// src/providerStackRecommendations.ts
|
|
34862
|
+
// src/core/providerStackRecommendations.ts
|
|
34911
34863
|
import { Elysia as Elysia58 } from "elysia";
|
|
34912
34864
|
var profileProviderPriorities = {
|
|
34913
34865
|
"meeting-recorder": {
|
|
@@ -35186,11 +35138,7 @@ var evaluateVoiceProviderContractMatrixEvidence = (report, input = {}) => {
|
|
|
35186
35138
|
};
|
|
35187
35139
|
};
|
|
35188
35140
|
var assertVoiceProviderContractMatrixEvidence = (report, input = {}) => {
|
|
35189
|
-
|
|
35190
|
-
if (!assertion.ok) {
|
|
35191
|
-
throw new Error(`Voice provider contract matrix assertion failed: ${assertion.issues.join(" ")}`);
|
|
35192
|
-
}
|
|
35193
|
-
return assertion;
|
|
35141
|
+
return assertVoiceEvidence("Voice provider contract matrix assertion failed", evaluateVoiceProviderContractMatrixEvidence(report, input));
|
|
35194
35142
|
};
|
|
35195
35143
|
var createVoiceProviderContractMatrixPreset = (profile, options) => {
|
|
35196
35144
|
const contracts = ["llm", "stt", "tts"].flatMap((kind) => {
|
|
@@ -35380,14 +35328,10 @@ var evaluateVoiceProviderStackEvidence = (report, input = {}) => {
|
|
|
35380
35328
|
};
|
|
35381
35329
|
};
|
|
35382
35330
|
var assertVoiceProviderStackEvidence = (report, input = {}) => {
|
|
35383
|
-
|
|
35384
|
-
if (!assertion.ok) {
|
|
35385
|
-
throw new Error(`Voice provider stack assertion failed: ${assertion.issues.join(" ")}`);
|
|
35386
|
-
}
|
|
35387
|
-
return assertion;
|
|
35331
|
+
return assertVoiceEvidence("Voice provider stack assertion failed", evaluateVoiceProviderStackEvidence(report, input));
|
|
35388
35332
|
};
|
|
35389
35333
|
|
|
35390
|
-
// src/realtimeChannel.ts
|
|
35334
|
+
// src/core/realtimeChannel.ts
|
|
35391
35335
|
import { Elysia as Elysia59 } from "elysia";
|
|
35392
35336
|
var DEFAULT_REALTIME_FORMAT2 = {
|
|
35393
35337
|
channels: 1,
|
|
@@ -35622,11 +35566,7 @@ var evaluateVoiceRealtimeChannelEvidence = (report, input = {}) => {
|
|
|
35622
35566
|
};
|
|
35623
35567
|
};
|
|
35624
35568
|
var assertVoiceRealtimeChannelEvidence = (report, input = {}) => {
|
|
35625
|
-
|
|
35626
|
-
if (!assertion.ok) {
|
|
35627
|
-
throw new Error(`Voice realtime channel assertion failed: ${assertion.issues.join(" ")}`);
|
|
35628
|
-
}
|
|
35629
|
-
return assertion;
|
|
35569
|
+
return assertVoiceEvidence("Voice realtime channel assertion failed", evaluateVoiceRealtimeChannelEvidence(report, input));
|
|
35630
35570
|
};
|
|
35631
35571
|
var renderVoiceRealtimeChannelMarkdown = (report) => [
|
|
35632
35572
|
"# Voice Realtime Channel Proof",
|
|
@@ -35708,7 +35648,7 @@ var createVoiceRealtimeChannelRoutes = (options) => {
|
|
|
35708
35648
|
return app;
|
|
35709
35649
|
};
|
|
35710
35650
|
|
|
35711
|
-
// src/realtimeProviderContracts.ts
|
|
35651
|
+
// src/core/realtimeProviderContracts.ts
|
|
35712
35652
|
import { Elysia as Elysia60 } from "elysia";
|
|
35713
35653
|
var defaultRequiredCapabilities = [
|
|
35714
35654
|
"browser-format-negotiation",
|
|
@@ -35896,11 +35836,7 @@ var evaluateVoiceRealtimeProviderContractEvidence = (report, input = {}) => {
|
|
|
35896
35836
|
};
|
|
35897
35837
|
};
|
|
35898
35838
|
var assertVoiceRealtimeProviderContractEvidence = (report, input = {}) => {
|
|
35899
|
-
|
|
35900
|
-
if (!assertion.ok) {
|
|
35901
|
-
throw new Error(`Voice realtime provider contract assertion failed: ${assertion.issues.join(" ")}`);
|
|
35902
|
-
}
|
|
35903
|
-
return assertion;
|
|
35839
|
+
return assertVoiceEvidence("Voice realtime provider contract assertion failed", evaluateVoiceRealtimeProviderContractEvidence(report, input));
|
|
35904
35840
|
};
|
|
35905
35841
|
var resolveMatrix = async (matrix) => typeof matrix === "function" ? await matrix() : matrix;
|
|
35906
35842
|
var renderVoiceRealtimeProviderContractHTML = (report, title = "Voice Realtime Provider Contracts") => {
|
|
@@ -35940,7 +35876,7 @@ var createVoiceRealtimeProviderContractRoutes = (options) => {
|
|
|
35940
35876
|
return routes;
|
|
35941
35877
|
};
|
|
35942
35878
|
|
|
35943
|
-
// src/reconnectContract.ts
|
|
35879
|
+
// src/core/reconnectContract.ts
|
|
35944
35880
|
import { Elysia as Elysia61 } from "elysia";
|
|
35945
35881
|
var unique2 = (values) => [...new Set(values)];
|
|
35946
35882
|
var isReconnectPayload = (value) => {
|
|
@@ -36189,13 +36125,13 @@ var createVoiceReconnectContractRoutes = (options) => {
|
|
|
36189
36125
|
return app;
|
|
36190
36126
|
};
|
|
36191
36127
|
|
|
36192
|
-
// src/simulationSuite.ts
|
|
36128
|
+
// src/core/simulationSuite.ts
|
|
36193
36129
|
import { Elysia as Elysia63 } from "elysia";
|
|
36194
36130
|
|
|
36195
|
-
// src/toolContract.ts
|
|
36131
|
+
// src/core/toolContract.ts
|
|
36196
36132
|
import { Elysia as Elysia62 } from "elysia";
|
|
36197
36133
|
|
|
36198
|
-
// src/toolRuntime.ts
|
|
36134
|
+
// src/core/toolRuntime.ts
|
|
36199
36135
|
var toErrorMessage4 = (error) => error instanceof Error ? error.message : String(error);
|
|
36200
36136
|
var sleep5 = (ms) => new Promise((resolve) => {
|
|
36201
36137
|
setTimeout(resolve, ms);
|
|
@@ -36392,7 +36328,7 @@ var createVoiceToolIdempotencyKey = (input) => {
|
|
|
36392
36328
|
].join(":");
|
|
36393
36329
|
};
|
|
36394
36330
|
|
|
36395
|
-
// src/toolContract.ts
|
|
36331
|
+
// src/core/toolContract.ts
|
|
36396
36332
|
var createDefaultSession = (contractId, caseId) => createVoiceSessionRecord(`tool-contract-${contractId}-${caseId}`);
|
|
36397
36333
|
var createDefaultTurn = (caseId) => ({
|
|
36398
36334
|
committedAt: Date.now(),
|
|
@@ -36644,11 +36580,7 @@ var evaluateVoiceToolContractEvidence = (report, input = {}) => {
|
|
|
36644
36580
|
};
|
|
36645
36581
|
};
|
|
36646
36582
|
var assertVoiceToolContractEvidence = (report, input = {}) => {
|
|
36647
|
-
|
|
36648
|
-
if (!assertion.ok) {
|
|
36649
|
-
throw new Error(`Voice tool contract evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
36650
|
-
}
|
|
36651
|
-
return assertion;
|
|
36583
|
+
return assertVoiceEvidence("Voice tool contract evidence assertion failed", evaluateVoiceToolContractEvidence(report, input));
|
|
36652
36584
|
};
|
|
36653
36585
|
var renderVoiceToolContractHTML = (report, options = {}) => {
|
|
36654
36586
|
const title = options.title ?? "Voice Tool Contracts";
|
|
@@ -36727,7 +36659,7 @@ var createVoiceToolContractRoutes = (options) => {
|
|
|
36727
36659
|
return routes;
|
|
36728
36660
|
};
|
|
36729
36661
|
|
|
36730
|
-
// src/simulationSuite.ts
|
|
36662
|
+
// src/core/simulationSuite.ts
|
|
36731
36663
|
var summarizeSection = (report) => ({
|
|
36732
36664
|
failed: report.failed,
|
|
36733
36665
|
passed: report.passed,
|
|
@@ -36913,11 +36845,7 @@ var evaluateVoiceSimulationSuiteEvidence = (report, input = {}) => {
|
|
|
36913
36845
|
};
|
|
36914
36846
|
};
|
|
36915
36847
|
var assertVoiceSimulationSuiteEvidence = (report, input = {}) => {
|
|
36916
|
-
|
|
36917
|
-
if (!assertion.ok) {
|
|
36918
|
-
throw new Error(`Voice simulation suite evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
36919
|
-
}
|
|
36920
|
-
return assertion;
|
|
36848
|
+
return assertVoiceEvidence("Voice simulation suite evidence assertion failed", evaluateVoiceSimulationSuiteEvidence(report, input));
|
|
36921
36849
|
};
|
|
36922
36850
|
var renderSection = (label, summary) => {
|
|
36923
36851
|
if (!summary) {
|
|
@@ -36987,7 +36915,7 @@ var createVoiceSimulationSuiteRoutes = (options) => {
|
|
|
36987
36915
|
return app;
|
|
36988
36916
|
};
|
|
36989
36917
|
|
|
36990
|
-
// src/sloCalibration.ts
|
|
36918
|
+
// src/core/sloCalibration.ts
|
|
36991
36919
|
import { Elysia as Elysia64 } from "elysia";
|
|
36992
36920
|
var DEFAULT_HEADROOM_MULTIPLIER = 1.5;
|
|
36993
36921
|
var DEFAULT_WARN_RATIO = 0.8;
|
|
@@ -37326,7 +37254,7 @@ var createVoiceSloReadinessThresholdRoutes = (options) => {
|
|
|
37326
37254
|
return routes;
|
|
37327
37255
|
};
|
|
37328
37256
|
|
|
37329
|
-
// src/telephonyMediaRoutes.ts
|
|
37257
|
+
// src/core/telephonyMediaRoutes.ts
|
|
37330
37258
|
import { Elysia as Elysia65 } from "elysia";
|
|
37331
37259
|
import {
|
|
37332
37260
|
buildMediaTelephonyStreamLifecycleReport,
|
|
@@ -37539,7 +37467,7 @@ var createVoiceTelephonyMediaRoutes = (options = {}) => {
|
|
|
37539
37467
|
return routes;
|
|
37540
37468
|
};
|
|
37541
37469
|
|
|
37542
|
-
// src/traceDeliveryRoutes.ts
|
|
37470
|
+
// src/core/traceDeliveryRoutes.ts
|
|
37543
37471
|
import { Elysia as Elysia66 } from "elysia";
|
|
37544
37472
|
var getString19 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
37545
37473
|
var getNumber12 = (value) => {
|
|
@@ -37666,7 +37594,7 @@ var createVoiceTraceDeliveryRoutes = (options) => {
|
|
|
37666
37594
|
return routes;
|
|
37667
37595
|
};
|
|
37668
37596
|
|
|
37669
|
-
// src/turnLatency.ts
|
|
37597
|
+
// src/core/turnLatency.ts
|
|
37670
37598
|
import { Elysia as Elysia67 } from "elysia";
|
|
37671
37599
|
var DEFAULT_WARN_AFTER_MS2 = 1800;
|
|
37672
37600
|
var DEFAULT_FAIL_AFTER_MS2 = 3200;
|
|
@@ -37835,7 +37763,7 @@ var createVoiceTurnLatencyRoutes = (options) => {
|
|
|
37835
37763
|
return routes;
|
|
37836
37764
|
};
|
|
37837
37765
|
|
|
37838
|
-
// src/turnQuality.ts
|
|
37766
|
+
// src/core/turnQuality.ts
|
|
37839
37767
|
import { Elysia as Elysia68 } from "elysia";
|
|
37840
37768
|
var DEFAULT_CONFIDENCE_WARN_THRESHOLD = 0.72;
|
|
37841
37769
|
var getTurnLatencyMs = (turn) => {
|
|
@@ -37950,7 +37878,7 @@ var createVoiceTurnQualityRoutes = (options) => {
|
|
|
37950
37878
|
return routes;
|
|
37951
37879
|
};
|
|
37952
37880
|
|
|
37953
|
-
// src/voiceMonitoring.ts
|
|
37881
|
+
// src/core/voiceMonitoring.ts
|
|
37954
37882
|
import { Elysia as Elysia69 } from "elysia";
|
|
37955
37883
|
var issueIdForRun = (run) => `voice-monitor:${run.id}:${run.impactedSessions?.[0] ?? "global"}`;
|
|
37956
37884
|
var rollupStatus5 = (runs) => worstVoiceStatus(runs.map((run) => run.status));
|
|
@@ -38299,7 +38227,7 @@ var createVoiceMonitorRunnerRoutes = (options) => {
|
|
|
38299
38227
|
});
|
|
38300
38228
|
};
|
|
38301
38229
|
|
|
38302
|
-
// src/plugin.ts
|
|
38230
|
+
// src/core/plugin.ts
|
|
38303
38231
|
var resolveQueryScenario = (query) => {
|
|
38304
38232
|
if (typeof query?.scenarioId === "string" && query.scenarioId.trim()) {
|
|
38305
38233
|
return query.scenarioId.trim();
|
|
@@ -38962,7 +38890,7 @@ var voice = (config) => {
|
|
|
38962
38890
|
}
|
|
38963
38891
|
}).use(htmxRoutes()).use(surfaceRoutes());
|
|
38964
38892
|
};
|
|
38965
|
-
// src/campaignDialers.ts
|
|
38893
|
+
// src/core/campaignDialers.ts
|
|
38966
38894
|
import { Buffer as Buffer6 } from "buffer";
|
|
38967
38895
|
var resolveFetch = (fetcher) => {
|
|
38968
38896
|
const activeFetch = fetcher ?? globalThis.fetch;
|
|
@@ -39358,13 +39286,9 @@ var evaluateVoiceCampaignDialerProofEvidence = (report, input = {}) => {
|
|
|
39358
39286
|
};
|
|
39359
39287
|
};
|
|
39360
39288
|
var assertVoiceCampaignDialerProofEvidence = (report, input = {}) => {
|
|
39361
|
-
|
|
39362
|
-
if (!assertion.ok) {
|
|
39363
|
-
throw new Error(`Voice campaign dialer proof evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
39364
|
-
}
|
|
39365
|
-
return assertion;
|
|
39289
|
+
return assertVoiceEvidence("Voice campaign dialer proof evidence assertion failed", evaluateVoiceCampaignDialerProofEvidence(report, input));
|
|
39366
39290
|
};
|
|
39367
|
-
// src/mediaPipelineSurfaces.ts
|
|
39291
|
+
// src/core/mediaPipelineSurfaces.ts
|
|
39368
39292
|
import {
|
|
39369
39293
|
buildMediaProcessorGraphArtifact,
|
|
39370
39294
|
buildMediaQualityArtifact,
|
|
@@ -39577,7 +39501,7 @@ var writeVoiceMediaPipelineArtifacts = async (options) => {
|
|
|
39577
39501
|
}
|
|
39578
39502
|
return { artifacts, hrefs };
|
|
39579
39503
|
};
|
|
39580
|
-
// src/proofRunner.ts
|
|
39504
|
+
// src/core/proofRunner.ts
|
|
39581
39505
|
var encoder = new TextEncoder;
|
|
39582
39506
|
var trimBaseUrl = (baseUrl) => baseUrl.replace(/\/$/, "");
|
|
39583
39507
|
var safeArtifactName = (name) => name.replace(/[^a-z0-9_.-]/gi, "-");
|
|
@@ -39789,7 +39713,7 @@ var runVoiceCommandProofTarget = async (target, options) => {
|
|
|
39789
39713
|
};
|
|
39790
39714
|
};
|
|
39791
39715
|
var runVoiceCommandProofTargets = (targets, options) => mapVoiceProofTargetsWithConcurrency(targets, options.concurrency ?? targets.length, (target) => runVoiceCommandProofTarget(target, options));
|
|
39792
|
-
// src/providerRouterTraces.ts
|
|
39716
|
+
// src/core/providerRouterTraces.ts
|
|
39793
39717
|
var buildVoiceProviderRouterTraceEvent = (options) => ({
|
|
39794
39718
|
at: options.at ?? options.event.at,
|
|
39795
39719
|
id: options.id ?? `${options.sessionId}:${options.turnId ?? "session"}:${options.event.provider}:${options.event.status}:${String(options.at ?? options.event.at)}`,
|
|
@@ -39820,7 +39744,7 @@ var buildVoiceIOProviderRouterTraceEvent = (options) => ({
|
|
|
39820
39744
|
type: options.type ?? "session.error"
|
|
39821
39745
|
});
|
|
39822
39746
|
var appendVoiceIOProviderRouterTraceEvent = async (options) => options.store.append(buildVoiceIOProviderRouterTraceEvent(options));
|
|
39823
|
-
// src/workflowContract.ts
|
|
39747
|
+
// src/core/workflowContract.ts
|
|
39824
39748
|
var getObject2 = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
|
|
39825
39749
|
var getPathValue3 = (value, path) => {
|
|
39826
39750
|
let current = value;
|
|
@@ -40122,7 +40046,7 @@ var createVoiceWorkflowContractHandler = (input) => {
|
|
|
40122
40046
|
return result;
|
|
40123
40047
|
};
|
|
40124
40048
|
};
|
|
40125
|
-
// src/conversationSimulator.ts
|
|
40049
|
+
// src/core/conversationSimulator.ts
|
|
40126
40050
|
var createStubApi = (sessionId) => ({ id: sessionId });
|
|
40127
40051
|
var callerTurnText = async (caller, transcript, turnIndex) => {
|
|
40128
40052
|
if (caller.kind === "script") {
|
|
@@ -40240,7 +40164,7 @@ Respond with only your spoken line. When your goal is met or you want to hang up
|
|
|
40240
40164
|
persona: options.persona
|
|
40241
40165
|
};
|
|
40242
40166
|
};
|
|
40243
|
-
// src/mcpToolset.ts
|
|
40167
|
+
// src/core/mcpToolset.ts
|
|
40244
40168
|
var flattenContent = (result) => {
|
|
40245
40169
|
const blocks = result.content ?? [];
|
|
40246
40170
|
const text = blocks.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.text).join(`
|
|
@@ -40286,7 +40210,7 @@ var createVoiceMCPToolset = async (options) => {
|
|
|
40286
40210
|
}
|
|
40287
40211
|
return tools;
|
|
40288
40212
|
};
|
|
40289
|
-
// src/aiVoiceModel.ts
|
|
40213
|
+
// src/core/aiVoiceModel.ts
|
|
40290
40214
|
var toProviderMessages = (messages) => {
|
|
40291
40215
|
const out = [];
|
|
40292
40216
|
for (const message of messages) {
|
|
@@ -40392,7 +40316,7 @@ var createAIVoiceModel = (options) => ({
|
|
|
40392
40316
|
return output;
|
|
40393
40317
|
}
|
|
40394
40318
|
});
|
|
40395
|
-
// src/llmJudge.ts
|
|
40319
|
+
// src/core/llmJudge.ts
|
|
40396
40320
|
var DEFAULT_SYSTEM_PROMPT = "You are an impartial evaluator scoring a voice-agent transcript against a rubric. " + "For each criterion, decide pass/fail and give a one-sentence rationale grounded in the transcript. " + 'Respond with strict JSON: {"criteria":[{"criterionId":"\u2026","passed":true,"rationale":"\u2026"}],"summary":"\u2026"}.';
|
|
40397
40321
|
var buildPrompt = (rubric, input) => {
|
|
40398
40322
|
const criteriaBlock = rubric.criteria.map((criterion) => `- ${criterion.id}${criterion.required ? " (required)" : ""}: ${criterion.description}`).join(`
|
|
@@ -40518,7 +40442,7 @@ var createVoiceAIJudgeCompletion = (options) => async ({ prompt, systemPrompt })
|
|
|
40518
40442
|
}
|
|
40519
40443
|
return buffered;
|
|
40520
40444
|
};
|
|
40521
|
-
// src/redaction.ts
|
|
40445
|
+
// src/core/redaction.ts
|
|
40522
40446
|
var DEFAULT_VOICE_REDACTION_PATTERNS = [
|
|
40523
40447
|
{
|
|
40524
40448
|
label: "credit-card",
|
|
@@ -40558,7 +40482,7 @@ var createVoiceTranscriptRedactor = (options = {}) => {
|
|
|
40558
40482
|
};
|
|
40559
40483
|
};
|
|
40560
40484
|
var redactVoiceTranscript = (transcript, patterns = DEFAULT_VOICE_REDACTION_PATTERNS) => createVoiceTranscriptRedactor({ patterns })(transcript);
|
|
40561
|
-
// src/recordingRedaction.ts
|
|
40485
|
+
// src/core/recordingRedaction.ts
|
|
40562
40486
|
import {
|
|
40563
40487
|
applyAudioRedaction,
|
|
40564
40488
|
mergeAudioRedactionRanges
|
|
@@ -40617,7 +40541,7 @@ var redactVoiceRecording = (input) => {
|
|
|
40617
40541
|
redactedCount: ranges.length
|
|
40618
40542
|
};
|
|
40619
40543
|
};
|
|
40620
|
-
// src/variableAnalytics.ts
|
|
40544
|
+
// src/core/variableAnalytics.ts
|
|
40621
40545
|
var stringifyValue = (value) => {
|
|
40622
40546
|
if (value === null || value === undefined)
|
|
40623
40547
|
return "(none)";
|
|
@@ -40691,7 +40615,7 @@ var buildVoiceVariableAnalytics = (input) => {
|
|
|
40691
40615
|
}
|
|
40692
40616
|
return { byVariable, overall, totalCalls };
|
|
40693
40617
|
};
|
|
40694
|
-
// src/zeroDataRetention.ts
|
|
40618
|
+
// src/core/zeroDataRetention.ts
|
|
40695
40619
|
var RETAIN_ALL = {
|
|
40696
40620
|
assistantText: true,
|
|
40697
40621
|
metadata: true,
|
|
@@ -40751,7 +40675,7 @@ var scrubVoiceTraceForZeroDataRetention = (event, policy) => {
|
|
|
40751
40675
|
return { ...event, payload: scrubbedPayload };
|
|
40752
40676
|
};
|
|
40753
40677
|
var VOICE_ZERO_DATA_RETENTION_REDACTION_MARKER = REDACTED;
|
|
40754
|
-
// src/costAccounting.ts
|
|
40678
|
+
// src/core/costAccounting.ts
|
|
40755
40679
|
var DEFAULT_VOICE_PRICE_BOOK = {
|
|
40756
40680
|
"anthropic:claude-opus-4-5": {
|
|
40757
40681
|
llm: {
|
|
@@ -40894,7 +40818,7 @@ var createVoiceCostAccountant = (options = {}) => {
|
|
|
40894
40818
|
})
|
|
40895
40819
|
};
|
|
40896
40820
|
};
|
|
40897
|
-
// src/semanticTurn.ts
|
|
40821
|
+
// src/core/semanticTurn.ts
|
|
40898
40822
|
var DEFAULT_END_PUNCTUATION = [".", "?", "!"];
|
|
40899
40823
|
var DEFAULT_FILLER_WORDS = [
|
|
40900
40824
|
"uh",
|
|
@@ -40964,7 +40888,7 @@ var createRegexSemanticTurnDetector = (options) => {
|
|
|
40964
40888
|
}
|
|
40965
40889
|
};
|
|
40966
40890
|
};
|
|
40967
|
-
// src/webhookVerification.ts
|
|
40891
|
+
// src/core/webhookVerification.ts
|
|
40968
40892
|
var VOICE_WEBHOOK_SIGNATURE_HEADER = "x-absolutejs-signature";
|
|
40969
40893
|
var VOICE_WEBHOOK_TIMESTAMP_HEADER = "x-absolutejs-timestamp";
|
|
40970
40894
|
var toHex7 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -41035,7 +40959,7 @@ var extractVoiceWebhookSignatureFromHeaders = (headers) => {
|
|
|
41035
40959
|
timestamp: get(VOICE_WEBHOOK_TIMESTAMP_HEADER)
|
|
41036
40960
|
};
|
|
41037
40961
|
};
|
|
41038
|
-
// src/campaignControls.ts
|
|
40962
|
+
// src/core/campaignControls.ts
|
|
41039
40963
|
var normalizePhoneNumber = (phone) => phone.replace(/[\s()-]/g, "").trim();
|
|
41040
40964
|
var createInMemoryDNCList = (phones) => {
|
|
41041
40965
|
const set = new Set(phones.map(normalizePhoneNumber));
|
|
@@ -41119,7 +41043,7 @@ var summarizeVoiceCampaignDispositions = (record) => {
|
|
|
41119
41043
|
totalRecipients: record.recipients.length
|
|
41120
41044
|
};
|
|
41121
41045
|
};
|
|
41122
|
-
// src/backchannel.ts
|
|
41046
|
+
// src/core/backchannel.ts
|
|
41123
41047
|
var DEFAULT_CUES = [
|
|
41124
41048
|
{ text: "mm-hmm" },
|
|
41125
41049
|
{ text: "I see" },
|
|
@@ -41183,7 +41107,7 @@ var createVoiceBackchannelDriver = (options) => {
|
|
|
41183
41107
|
}
|
|
41184
41108
|
};
|
|
41185
41109
|
};
|
|
41186
|
-
// src/oauth2TokenSource.ts
|
|
41110
|
+
// src/core/oauth2TokenSource.ts
|
|
41187
41111
|
var createVoiceOAuth2TokenSource = (options) => {
|
|
41188
41112
|
const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
41189
41113
|
const refreshSkewMs = (options.refreshSkewSeconds ?? 60) * 1000;
|
|
@@ -41243,7 +41167,7 @@ var createVoiceOAuth2TokenSource = (options) => {
|
|
|
41243
41167
|
}
|
|
41244
41168
|
};
|
|
41245
41169
|
};
|
|
41246
|
-
// src/ivrPlan.ts
|
|
41170
|
+
// src/core/ivrPlan.ts
|
|
41247
41171
|
var speechMatchesPattern = (pattern, speech) => {
|
|
41248
41172
|
const normalized = speech.toLowerCase().trim();
|
|
41249
41173
|
if (pattern instanceof RegExp) {
|
|
@@ -41327,7 +41251,7 @@ var describeVoiceIVRPlan = (plan) => {
|
|
|
41327
41251
|
return lines.join(`
|
|
41328
41252
|
`);
|
|
41329
41253
|
};
|
|
41330
|
-
// src/callerMemory.ts
|
|
41254
|
+
// src/core/callerMemory.ts
|
|
41331
41255
|
var VOICE_CALLER_MEMORY_KEY = "caller-memory-snapshot";
|
|
41332
41256
|
var normalizeIdentifier = (value) => value.trim().replace(/[^a-zA-Z0-9+@._-]/g, "-").toLowerCase();
|
|
41333
41257
|
var buildVoiceCallerMemoryNamespace = (identity, prefix = "caller") => {
|
|
@@ -41418,7 +41342,7 @@ Return JSON only.`;
|
|
|
41418
41342
|
summary: typeof record.summary === "string" ? record.summary : ""
|
|
41419
41343
|
};
|
|
41420
41344
|
};
|
|
41421
|
-
// src/otelExporter.ts
|
|
41345
|
+
// src/core/otelExporter.ts
|
|
41422
41346
|
var SCOPE_NAME = "@absolutejs/voice";
|
|
41423
41347
|
var SPAN_KIND_INTERNAL = 1;
|
|
41424
41348
|
var STATUS_OK = 1;
|
|
@@ -41555,7 +41479,7 @@ var createVoiceOTELHTTPExporter = (options) => {
|
|
|
41555
41479
|
}
|
|
41556
41480
|
};
|
|
41557
41481
|
};
|
|
41558
|
-
// src/amdDetector.ts
|
|
41482
|
+
// src/core/amdDetector.ts
|
|
41559
41483
|
var createMonologueAMDDetector = (options = {}) => {
|
|
41560
41484
|
const minMonologueMs = options.minMonologueMs ?? 8000;
|
|
41561
41485
|
const reason = options.reason ?? "monologue-suspected-voicemail";
|
|
@@ -41585,7 +41509,7 @@ var createMonologueAMDDetector = (options = {}) => {
|
|
|
41585
41509
|
intervalMs: options.intervalMs ?? 1000
|
|
41586
41510
|
};
|
|
41587
41511
|
};
|
|
41588
|
-
// src/agentTools.ts
|
|
41512
|
+
// src/core/agentTools.ts
|
|
41589
41513
|
var createVoiceEndCallTool = (options = {}) => createVoiceAgentTool({
|
|
41590
41514
|
description: options.description ?? "End the call gracefully. Call this only when the conversation is complete or the caller asks to hang up.",
|
|
41591
41515
|
execute: async ({ api, args, context, session }) => {
|
|
@@ -41808,9 +41732,9 @@ var createVoiceApiRequestTool = (options) => {
|
|
|
41808
41732
|
resultToMessage: options.formatResult ?? ((result) => result.ok ? `API request ${options.name} succeeded (${String(result.status)}).` : `API request ${options.name} failed with status ${String(result.status)}.`)
|
|
41809
41733
|
});
|
|
41810
41734
|
};
|
|
41811
|
-
// src/voiceConfiguration.ts
|
|
41735
|
+
// src/core/voiceConfiguration.ts
|
|
41812
41736
|
var createVoiceConfiguration = (configuration) => configuration;
|
|
41813
|
-
// src/defineVoiceAssistant.ts
|
|
41737
|
+
// src/core/defineVoiceAssistant.ts
|
|
41814
41738
|
var DEFAULT_SPEECH_THRESHOLD2 = 0.015;
|
|
41815
41739
|
var DEFAULT_SILENCE_MS2 = 700;
|
|
41816
41740
|
var DEFAULT_TRANSCRIPT_STABILITY_MS2 = 200;
|
|
@@ -41879,7 +41803,7 @@ var defineVoiceAssistant = (definition) => {
|
|
|
41879
41803
|
}
|
|
41880
41804
|
};
|
|
41881
41805
|
};
|
|
41882
|
-
// src/callQuota.ts
|
|
41806
|
+
// src/core/callQuota.ts
|
|
41883
41807
|
var monthBucketKey = (epochMs) => {
|
|
41884
41808
|
const date = new Date(epochMs);
|
|
41885
41809
|
return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, "0")}`;
|
|
@@ -41977,7 +41901,7 @@ var createInMemoryVoiceCallQuota = (options) => {
|
|
|
41977
41901
|
}
|
|
41978
41902
|
};
|
|
41979
41903
|
};
|
|
41980
|
-
// src/routeAuth.ts
|
|
41904
|
+
// src/core/routeAuth.ts
|
|
41981
41905
|
import { Elysia as Elysia71 } from "elysia";
|
|
41982
41906
|
var createVoiceBearerAuthVerifier = (input) => {
|
|
41983
41907
|
const headerName = (input.headerName ?? "authorization").toLowerCase();
|
|
@@ -42188,7 +42112,7 @@ var formatVoiceCallPlayerTimestamp = (ms) => {
|
|
|
42188
42112
|
const remaining = seconds % 60;
|
|
42189
42113
|
return `${String(minutes).padStart(2, "0")}:${String(remaining).padStart(2, "0")}`;
|
|
42190
42114
|
};
|
|
42191
|
-
// src/phoneProvisioning.ts
|
|
42115
|
+
// src/core/phoneProvisioning.ts
|
|
42192
42116
|
var requireAuth = (input) => {
|
|
42193
42117
|
if (!input.accountSid || !input.authToken) {
|
|
42194
42118
|
throw new Error("Twilio provisioning requires accountSid + authToken");
|
|
@@ -42330,7 +42254,7 @@ var provisionTelnyxPhoneNumber = async (input) => {
|
|
|
42330
42254
|
raw: orderResult
|
|
42331
42255
|
};
|
|
42332
42256
|
};
|
|
42333
|
-
// src/webhookFanout.ts
|
|
42257
|
+
// src/core/webhookFanout.ts
|
|
42334
42258
|
var deliverOnce = async (input) => {
|
|
42335
42259
|
const startedAt = Date.now();
|
|
42336
42260
|
const timeoutMs = input.sink.timeoutMs ?? 1e4;
|
|
@@ -42483,7 +42407,7 @@ var BROWSER_NOISE_SUPPRESSOR_PRESETS = {
|
|
|
42483
42407
|
workletUrl
|
|
42484
42408
|
})
|
|
42485
42409
|
};
|
|
42486
|
-
// src/retention.ts
|
|
42410
|
+
// src/core/retention.ts
|
|
42487
42411
|
var defaultResolveAt = (event) => {
|
|
42488
42412
|
if (!event || typeof event !== "object")
|
|
42489
42413
|
return;
|
|
@@ -42536,7 +42460,7 @@ var createVoiceRetentionScheduler = (options) => {
|
|
|
42536
42460
|
}
|
|
42537
42461
|
};
|
|
42538
42462
|
};
|
|
42539
|
-
// src/vapiAdapter.ts
|
|
42463
|
+
// src/core/vapiAdapter.ts
|
|
42540
42464
|
var VAPI_BUILT_IN_VARIABLES = {
|
|
42541
42465
|
date: () => new Date().toISOString().slice(0, 10),
|
|
42542
42466
|
now: () => new Date().toISOString(),
|
|
@@ -42810,7 +42734,7 @@ var fromVapiAssistantConfig = (config, options) => {
|
|
|
42810
42734
|
unsupported
|
|
42811
42735
|
};
|
|
42812
42736
|
};
|
|
42813
|
-
// src/agentSquadContract.ts
|
|
42737
|
+
// src/core/agentSquadContract.ts
|
|
42814
42738
|
var normalizeIncludes = (value) => value.trim().toLowerCase();
|
|
42815
42739
|
var resolveOutcome4 = (result) => {
|
|
42816
42740
|
if (result.complete)
|
|
@@ -43112,13 +43036,9 @@ var evaluateVoiceAgentSquadContractEvidence = (reports, input = {}) => {
|
|
|
43112
43036
|
};
|
|
43113
43037
|
};
|
|
43114
43038
|
var assertVoiceAgentSquadContractEvidence = (reports, input = {}) => {
|
|
43115
|
-
|
|
43116
|
-
if (!report.ok) {
|
|
43117
|
-
throw new Error(`Voice agent squad contract evidence assertion failed: ${report.issues.join(" ")}`);
|
|
43118
|
-
}
|
|
43119
|
-
return report;
|
|
43039
|
+
return assertVoiceEvidence("Voice agent squad contract evidence assertion failed", evaluateVoiceAgentSquadContractEvidence(reports, input));
|
|
43120
43040
|
};
|
|
43121
|
-
// src/phoneAgent.ts
|
|
43041
|
+
// src/core/phoneAgent.ts
|
|
43122
43042
|
import { Elysia as Elysia72 } from "elysia";
|
|
43123
43043
|
var defaultSetupPath = (provider) => `/api/voice/${provider}/setup`;
|
|
43124
43044
|
var defaultSmokePath = (provider) => `/api/voice/${provider}/smoke`;
|
|
@@ -43283,11 +43203,7 @@ var evaluateVoicePhoneAssistantEvidence = (report, input = {}) => {
|
|
|
43283
43203
|
};
|
|
43284
43204
|
};
|
|
43285
43205
|
var assertVoicePhoneAssistantEvidence = (report, input = {}) => {
|
|
43286
|
-
|
|
43287
|
-
if (!assertion.ok) {
|
|
43288
|
-
throw new Error(`Voice phone assistant evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
43289
|
-
}
|
|
43290
|
-
return assertion;
|
|
43206
|
+
return assertVoiceEvidence("Voice phone assistant evidence assertion failed", evaluateVoicePhoneAssistantEvidence(report, input));
|
|
43291
43207
|
};
|
|
43292
43208
|
var evaluateVoicePhoneCallControlEvidence = (input = {}) => {
|
|
43293
43209
|
const issues = [];
|
|
@@ -43333,11 +43249,7 @@ var evaluateVoicePhoneCallControlEvidence = (input = {}) => {
|
|
|
43333
43249
|
};
|
|
43334
43250
|
};
|
|
43335
43251
|
var assertVoicePhoneCallControlEvidence = (input = {}) => {
|
|
43336
|
-
|
|
43337
|
-
if (!assertion.ok) {
|
|
43338
|
-
throw new Error(`Voice phone call-control evidence assertion failed: ${assertion.issues.join(" ")}`);
|
|
43339
|
-
}
|
|
43340
|
-
return assertion;
|
|
43252
|
+
return assertVoiceEvidence("Voice phone call-control evidence assertion failed", evaluateVoicePhoneCallControlEvidence(input));
|
|
43341
43253
|
};
|
|
43342
43254
|
var buildVoicePhoneAgentSetupInstructions = (input) => input.carriers.map((carrier) => {
|
|
43343
43255
|
const entry = findCarrierMatrixEntry(input.matrix, carrier);
|
|
@@ -43530,7 +43442,7 @@ var createVoicePhoneAgent = (options) => {
|
|
|
43530
43442
|
setupPath
|
|
43531
43443
|
};
|
|
43532
43444
|
};
|
|
43533
|
-
// src/fileStore.ts
|
|
43445
|
+
// src/core/fileStore.ts
|
|
43534
43446
|
import {
|
|
43535
43447
|
mkdir as mkdir5,
|
|
43536
43448
|
readFile as readFile2,
|
|
@@ -44159,7 +44071,7 @@ var createVoiceFileRecordingStore = (options) => {
|
|
|
44159
44071
|
};
|
|
44160
44072
|
return { get, list, put };
|
|
44161
44073
|
};
|
|
44162
|
-
// src/modelAdapters.ts
|
|
44074
|
+
// src/core/modelAdapters.ts
|
|
44163
44075
|
var isVoiceProviderRoutingPolicyPreset = (value) => value === "balanced" || value === "cost-cap" || value === "cost-first" || value === "latency-first" || value === "quality-first";
|
|
44164
44076
|
var resolveVoiceProviderRoutingPolicyPreset = (preset, options = {}) => {
|
|
44165
44077
|
switch (preset) {
|
|
@@ -45114,7 +45026,7 @@ var createGeminiVoiceAssistantModel = (options) => {
|
|
|
45114
45026
|
}
|
|
45115
45027
|
};
|
|
45116
45028
|
};
|
|
45117
|
-
// src/openaiTTS.ts
|
|
45029
|
+
// src/core/openaiTTS.ts
|
|
45118
45030
|
var OPENAI_PCM24_FORMAT = {
|
|
45119
45031
|
channels: 1,
|
|
45120
45032
|
container: "raw",
|
|
@@ -45248,7 +45160,7 @@ var createOpenAIVoiceTTS = (options) => {
|
|
|
45248
45160
|
}
|
|
45249
45161
|
};
|
|
45250
45162
|
};
|
|
45251
|
-
// src/providerRoutingContract.ts
|
|
45163
|
+
// src/core/providerRoutingContract.ts
|
|
45252
45164
|
var isRoutingEvent2 = (event) => Boolean(event && typeof event === "object" && "status" in event && "kind" in event && "sessionId" in event);
|
|
45253
45165
|
var normalizeEvents2 = (events) => (events.every(isRoutingEvent2) ? [...events] : listVoiceRoutingEvents(events)).sort((left, right) => left.at - right.at);
|
|
45254
45166
|
var matchesExpectation = (event, expectation) => (expectation.kind === undefined || event.kind === expectation.kind) && (expectation.operation === undefined || event.operation === expectation.operation) && (expectation.provider === undefined || event.provider === expectation.provider) && (expectation.selectedProvider === undefined || event.selectedProvider === expectation.selectedProvider) && (expectation.fallbackProvider === undefined || event.fallbackProvider === expectation.fallbackProvider) && (expectation.status === undefined || event.status === expectation.status);
|
|
@@ -45385,13 +45297,9 @@ var evaluateVoiceProviderRoutingContractEvidence = (reports, input = {}) => {
|
|
|
45385
45297
|
};
|
|
45386
45298
|
};
|
|
45387
45299
|
var assertVoiceProviderRoutingContractEvidence = (reports, input = {}) => {
|
|
45388
|
-
|
|
45389
|
-
if (!report.ok) {
|
|
45390
|
-
throw new Error(`Voice provider routing contract evidence assertion failed: ${report.issues.join(" ")}`);
|
|
45391
|
-
}
|
|
45392
|
-
return report;
|
|
45300
|
+
return assertVoiceEvidence("Voice provider routing contract evidence assertion failed", evaluateVoiceProviderRoutingContractEvidence(reports, input));
|
|
45393
45301
|
};
|
|
45394
|
-
// src/readinessProfiles.ts
|
|
45302
|
+
// src/core/readinessProfiles.ts
|
|
45395
45303
|
var profileSurfaceLabels = {
|
|
45396
45304
|
"meeting-recorder": {
|
|
45397
45305
|
bargeInReports: "barge-in proof configured",
|
|
@@ -45762,7 +45670,7 @@ var recommendVoiceReadinessProfile = (options) => {
|
|
|
45762
45670
|
scores
|
|
45763
45671
|
};
|
|
45764
45672
|
};
|
|
45765
|
-
// src/providerAdapters.ts
|
|
45673
|
+
// src/core/providerAdapters.ts
|
|
45766
45674
|
class VoiceIOProviderTimeoutError extends Error {
|
|
45767
45675
|
provider;
|
|
45768
45676
|
timeoutMs;
|
|
@@ -46179,7 +46087,7 @@ var createVoiceTTSProviderRouter = (options) => {
|
|
|
46179
46087
|
}
|
|
46180
46088
|
};
|
|
46181
46089
|
};
|
|
46182
|
-
// src/s3Store.ts
|
|
46090
|
+
// src/core/s3Store.ts
|
|
46183
46091
|
var encodeStoreId2 = (id) => `${encodeURIComponent(id)}.json`;
|
|
46184
46092
|
var normalizeKeyPrefix = (prefix) => prefix?.trim().replace(/^\/+|\/+$/g, "") ?? "voice/reviews";
|
|
46185
46093
|
var toReviewObjectKey = (prefix, id) => `${prefix}/${encodeStoreId2(id)}`;
|
|
@@ -46293,7 +46201,7 @@ var createVoiceS3RecordingStore = (options) => {
|
|
|
46293
46201
|
};
|
|
46294
46202
|
return { get, list, put };
|
|
46295
46203
|
};
|
|
46296
|
-
// src/memoryStore.ts
|
|
46204
|
+
// src/core/memoryStore.ts
|
|
46297
46205
|
var createVoiceMemoryStore = () => {
|
|
46298
46206
|
const sessions = new Map;
|
|
46299
46207
|
const get = async (id) => sessions.get(id);
|
|
@@ -46314,7 +46222,7 @@ var createVoiceMemoryStore = () => {
|
|
|
46314
46222
|
};
|
|
46315
46223
|
return { get, getOrCreate, list, remove, set };
|
|
46316
46224
|
};
|
|
46317
|
-
// src/opsRuntime.ts
|
|
46225
|
+
// src/core/opsRuntime.ts
|
|
46318
46226
|
var resolveTaskStores = (config) => {
|
|
46319
46227
|
if (!config.ops.tasks) {
|
|
46320
46228
|
throw new Error("Voice ops runtime task workers require ops.tasks to be configured.");
|
|
@@ -46502,7 +46410,7 @@ var createVoiceOpsRuntime = (config) => {
|
|
|
46502
46410
|
}
|
|
46503
46411
|
};
|
|
46504
46412
|
};
|
|
46505
|
-
// src/opsPresets.ts
|
|
46413
|
+
// src/core/opsPresets.ts
|
|
46506
46414
|
var PRESET_INPUTS2 = {
|
|
46507
46415
|
"collections-default": {
|
|
46508
46416
|
description: "Biases toward fast callback recovery, aggressive retry routing, and supervisor escalation for overdue debt or collections follow-up.",
|
|
@@ -46736,7 +46644,7 @@ var resolveVoiceOpsPreset = (name, overrides = {}) => {
|
|
|
46736
46644
|
taskPolicies: mergePolicies(preset.taskPolicies, overrides.taskPolicies)
|
|
46737
46645
|
};
|
|
46738
46646
|
};
|
|
46739
|
-
// src/correction.ts
|
|
46647
|
+
// src/core/correction.ts
|
|
46740
46648
|
var escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
46741
46649
|
var buildAliasMatcher = (alias) => new RegExp(`(?<![\\p{L}\\p{N}'])${escapeRegExp(alias)}(?![\\p{L}\\p{N}'])`, "giu");
|
|
46742
46650
|
var WORD_PATTERN = /[\p{L}\p{N}']+/gu;
|
|
@@ -47031,7 +46939,7 @@ var createRiskyTurnCorrectionHandler = (options = {}) => {
|
|
|
47031
46939
|
};
|
|
47032
46940
|
};
|
|
47033
46941
|
|
|
47034
|
-
// src/routing.ts
|
|
46942
|
+
// src/core/routing.ts
|
|
47035
46943
|
var resolveVoiceSTTRoutingStrategy = (goal = "best") => {
|
|
47036
46944
|
if (goal === "low-cost") {
|
|
47037
46945
|
return {
|
|
@@ -47993,7 +47901,7 @@ var runSTTAdapterBenchmarkSeries = async ({
|
|
|
47993
47901
|
});
|
|
47994
47902
|
};
|
|
47995
47903
|
|
|
47996
|
-
// src/multilingualProof.ts
|
|
47904
|
+
// src/core/multilingualProof.ts
|
|
47997
47905
|
var average3 = (values) => {
|
|
47998
47906
|
if (values.length === 0)
|
|
47999
47907
|
return 0;
|
|
@@ -48205,7 +48113,7 @@ var buildVoiceMultilingualProofReadinessCheck = (report, options = {}) => {
|
|
|
48205
48113
|
value: failedAdapters.length
|
|
48206
48114
|
};
|
|
48207
48115
|
};
|
|
48208
|
-
// src/costPredictor.ts
|
|
48116
|
+
// src/core/costPredictor.ts
|
|
48209
48117
|
var lookupRates2 = (priceBook, provider, model) => {
|
|
48210
48118
|
if (!provider)
|
|
48211
48119
|
return;
|
|
@@ -48289,7 +48197,7 @@ var compareVoiceCostScenarios = (input) => {
|
|
|
48289
48197
|
})
|
|
48290
48198
|
};
|
|
48291
48199
|
};
|
|
48292
|
-
// src/iceServers.ts
|
|
48200
|
+
// src/core/iceServers.ts
|
|
48293
48201
|
var toBase643 = (bytes) => {
|
|
48294
48202
|
if (typeof Buffer !== "undefined") {
|
|
48295
48203
|
return Buffer.from(bytes).toString("base64");
|
|
@@ -48350,7 +48258,7 @@ var createTwilioNTSIceServers = async (input) => {
|
|
|
48350
48258
|
username: entry.username
|
|
48351
48259
|
}));
|
|
48352
48260
|
};
|
|
48353
|
-
// src/holdAudio.ts
|
|
48261
|
+
// src/core/holdAudio.ts
|
|
48354
48262
|
var DEFAULT_CUES2 = [
|
|
48355
48263
|
{ text: "Let me look that up for you." },
|
|
48356
48264
|
{ text: "One moment while I check on that." },
|
|
@@ -48427,7 +48335,7 @@ var createVoiceHoldAudioDriver = (options) => {
|
|
|
48427
48335
|
}
|
|
48428
48336
|
};
|
|
48429
48337
|
};
|
|
48430
|
-
// src/promptInjectionGuard.ts
|
|
48338
|
+
// src/core/promptInjectionGuard.ts
|
|
48431
48339
|
var DEFAULT_VOICE_PROMPT_INJECTION_RULES = [
|
|
48432
48340
|
{
|
|
48433
48341
|
label: "ignore-prior-instructions",
|
|
@@ -48491,7 +48399,7 @@ var createVoicePromptInjectionGuard = (options = {}) => {
|
|
|
48491
48399
|
}
|
|
48492
48400
|
};
|
|
48493
48401
|
};
|
|
48494
|
-
// src/postCallSurvey.ts
|
|
48402
|
+
// src/core/postCallSurvey.ts
|
|
48495
48403
|
var DEFAULT_VOICE_POST_CALL_SURVEY_QUESTIONS = [
|
|
48496
48404
|
{
|
|
48497
48405
|
id: "nps",
|
|
@@ -48618,7 +48526,7 @@ var summarizeVoicePostCallSurveys = (responses) => {
|
|
|
48618
48526
|
sampleSize: ratings.length
|
|
48619
48527
|
};
|
|
48620
48528
|
};
|
|
48621
|
-
// src/dtmfCollector.ts
|
|
48529
|
+
// src/core/dtmfCollector.ts
|
|
48622
48530
|
var VOICE_DTMF_DIGITS = [
|
|
48623
48531
|
"0",
|
|
48624
48532
|
"1",
|
|
@@ -48755,7 +48663,7 @@ var validateVoiceDTMFLuhn = (digits) => {
|
|
|
48755
48663
|
}
|
|
48756
48664
|
return sum % 10 === 0;
|
|
48757
48665
|
};
|
|
48758
|
-
// src/dncRegistry.ts
|
|
48666
|
+
// src/core/dncRegistry.ts
|
|
48759
48667
|
var normalizePhone = (phone) => {
|
|
48760
48668
|
const trimmed = phone.trim();
|
|
48761
48669
|
if (!trimmed)
|
|
@@ -48865,7 +48773,7 @@ var importVoiceDNCFromCSV = (csv, options = {}) => {
|
|
|
48865
48773
|
}
|
|
48866
48774
|
return entries;
|
|
48867
48775
|
};
|
|
48868
|
-
// src/callingWindow.ts
|
|
48776
|
+
// src/core/callingWindow.ts
|
|
48869
48777
|
var DAY_INDEX = {
|
|
48870
48778
|
friday: 5,
|
|
48871
48779
|
monday: 1,
|
|
@@ -49009,7 +48917,7 @@ var VOICE_TCPA_DEFAULT_WINDOW = {
|
|
|
49009
48917
|
allowedDays: ["monday", "tuesday", "wednesday", "thursday", "friday"],
|
|
49010
48918
|
allowedHours: { end: "21:00", start: "08:00" }
|
|
49011
48919
|
};
|
|
49012
|
-
// src/callDisposition.ts
|
|
48920
|
+
// src/core/callDisposition.ts
|
|
49013
48921
|
var DEFAULT_VOICE_CALL_DISPOSITIONS = [
|
|
49014
48922
|
{
|
|
49015
48923
|
code: "sale",
|
|
@@ -49185,7 +49093,7 @@ var createVoiceCallDispositionTagger = (options = {}) => {
|
|
|
49185
49093
|
untag
|
|
49186
49094
|
};
|
|
49187
49095
|
};
|
|
49188
|
-
// src/retryPolicy.ts
|
|
49096
|
+
// src/core/retryPolicy.ts
|
|
49189
49097
|
var DEFAULT_RULES = [
|
|
49190
49098
|
{
|
|
49191
49099
|
action: "retry",
|
|
@@ -49253,7 +49161,7 @@ var createVoiceRetryPolicy = (options = {}) => {
|
|
|
49253
49161
|
}
|
|
49254
49162
|
};
|
|
49255
49163
|
};
|
|
49256
|
-
// src/campaignTemplate.ts
|
|
49164
|
+
// src/core/campaignTemplate.ts
|
|
49257
49165
|
var lookupPath = (scope, path) => {
|
|
49258
49166
|
const parts2 = path.split(".");
|
|
49259
49167
|
let cursor = scope;
|
|
@@ -49373,7 +49281,7 @@ var collectVoiceCampaignTemplateVariables = (template) => {
|
|
|
49373
49281
|
}
|
|
49374
49282
|
return Array.from(set);
|
|
49375
49283
|
};
|
|
49376
|
-
// src/whisperChannel.ts
|
|
49284
|
+
// src/core/whisperChannel.ts
|
|
49377
49285
|
var createVoiceWhisperChannel = (options) => {
|
|
49378
49286
|
const now = options.now ?? (() => Date.now());
|
|
49379
49287
|
const defaultRoute = options.defaultRoute ?? "agent-only";
|
|
@@ -49447,7 +49355,7 @@ var createVoiceWhisperChannel = (options) => {
|
|
|
49447
49355
|
}
|
|
49448
49356
|
};
|
|
49449
49357
|
};
|
|
49450
|
-
// src/liveCoach.ts
|
|
49358
|
+
// src/core/liveCoach.ts
|
|
49451
49359
|
var DEFAULT_TEMPLATES = {
|
|
49452
49360
|
correction: "Supervisor correction (do not repeat this verbatim; weave it into your next response): {{text}}",
|
|
49453
49361
|
hint: "Supervisor hint: {{text}}",
|
|
@@ -49530,7 +49438,7 @@ var createVoiceLiveCoach = (options) => {
|
|
|
49530
49438
|
}
|
|
49531
49439
|
};
|
|
49532
49440
|
};
|
|
49533
|
-
// src/transcriptAnnotator.ts
|
|
49441
|
+
// src/core/transcriptAnnotator.ts
|
|
49534
49442
|
var DEFAULT_VOICE_ANNOTATION_KIND_SEVERITY = {
|
|
49535
49443
|
"compliance-concern": "major",
|
|
49536
49444
|
custom: "info",
|
|
@@ -49608,7 +49516,7 @@ var createVoiceTranscriptAnnotator = (options) => {
|
|
|
49608
49516
|
summarize
|
|
49609
49517
|
};
|
|
49610
49518
|
};
|
|
49611
|
-
// src/supervisorPresence.ts
|
|
49519
|
+
// src/core/supervisorPresence.ts
|
|
49612
49520
|
var createVoiceSupervisorPresence = (options = {}) => {
|
|
49613
49521
|
const now = options.now ?? (() => Date.now());
|
|
49614
49522
|
const staleAfter = options.staleAfterMs ?? 30000;
|
|
@@ -49716,7 +49624,7 @@ var createVoiceSupervisorPresence = (options = {}) => {
|
|
|
49716
49624
|
}
|
|
49717
49625
|
};
|
|
49718
49626
|
};
|
|
49719
|
-
// src/supervisorPermissions.ts
|
|
49627
|
+
// src/core/supervisorPermissions.ts
|
|
49720
49628
|
var TIER_CAPABILITIES = {
|
|
49721
49629
|
annotate: ["monitor", "annotate"],
|
|
49722
49630
|
coach: ["monitor", "annotate", "coach"],
|
|
@@ -49807,7 +49715,7 @@ var createVoiceSupervisorPermissions = (options = {}) => {
|
|
|
49807
49715
|
};
|
|
49808
49716
|
};
|
|
49809
49717
|
var VOICE_SUPERVISOR_TIER_CAPABILITIES = TIER_CAPABILITIES;
|
|
49810
|
-
// src/calendarAdapter.ts
|
|
49718
|
+
// src/core/calendarAdapter.ts
|
|
49811
49719
|
var createVoiceInMemoryCalendarAdapter = (options) => {
|
|
49812
49720
|
const now = options.now ?? (() => Date.now());
|
|
49813
49721
|
const generateId = options.generateId ?? (() => `appt_${Math.random().toString(36).slice(2, 10)}`);
|
|
@@ -49892,7 +49800,7 @@ var createVoiceInMemoryCalendarAdapter = (options) => {
|
|
|
49892
49800
|
}
|
|
49893
49801
|
};
|
|
49894
49802
|
};
|
|
49895
|
-
// src/bookingFlow.ts
|
|
49803
|
+
// src/core/bookingFlow.ts
|
|
49896
49804
|
var createVoiceBookingFlow = (options) => {
|
|
49897
49805
|
const initial = {
|
|
49898
49806
|
proposedSlots: [],
|
|
@@ -49990,7 +49898,7 @@ var createVoiceBookingFlow = (options) => {
|
|
|
49990
49898
|
}
|
|
49991
49899
|
};
|
|
49992
49900
|
};
|
|
49993
|
-
// src/noShowPredictor.ts
|
|
49901
|
+
// src/core/noShowPredictor.ts
|
|
49994
49902
|
var clamp = (value, min = 0, max = 1) => Math.max(min, Math.min(max, value));
|
|
49995
49903
|
var scoreVoiceNoShowRisk = (input) => {
|
|
49996
49904
|
const now = input.now ?? (() => Date.now());
|
|
@@ -50059,7 +49967,7 @@ var summarizeVoiceNoShowVerdict = (verdict) => {
|
|
|
50059
49967
|
const top = verdict.drivers.slice(0, 2).map((d) => d.kind).join(", ");
|
|
50060
49968
|
return `${verdict.band} risk (${pct}%)${top ? ` \u2014 driven by ${top}` : ""}`;
|
|
50061
49969
|
};
|
|
50062
|
-
// src/reminderScheduler.ts
|
|
49970
|
+
// src/core/reminderScheduler.ts
|
|
50063
49971
|
var DEFAULT_VOICE_REMINDER_TRIGGERS = [
|
|
50064
49972
|
{
|
|
50065
49973
|
channel: "sms",
|
|
@@ -50172,7 +50080,7 @@ var createVoiceReminderScheduler = (options = {}) => {
|
|
|
50172
50080
|
}
|
|
50173
50081
|
};
|
|
50174
50082
|
};
|
|
50175
|
-
// src/callScorecard.ts
|
|
50083
|
+
// src/core/callScorecard.ts
|
|
50176
50084
|
var clampScore = (raw, max) => Math.max(0, Math.min(max, raw));
|
|
50177
50085
|
var buildVoiceCallScorecard = (input) => {
|
|
50178
50086
|
const now = input.now ?? (() => Date.now());
|
|
@@ -50274,7 +50182,7 @@ var DEFAULT_VOICE_SALES_RUBRIC = {
|
|
|
50274
50182
|
passingGrade: 0.75,
|
|
50275
50183
|
scaleMax: 5
|
|
50276
50184
|
};
|
|
50277
|
-
// src/aiScorecard.ts
|
|
50185
|
+
// src/core/aiScorecard.ts
|
|
50278
50186
|
var DEFAULT_SYSTEM_PROMPT3 = "You are an impartial quality reviewer scoring a voice-agent call transcript. " + "For each criterion, return a numeric score between 0 and the rubric's scaleMax, with a one-sentence rationale grounded in the transcript. " + 'Respond with strict JSON: {"scores":[{"criterionId":"\u2026","score":4,"rationale":"\u2026"}],"comments":"\u2026"}. ' + "Do not return prose outside the JSON.";
|
|
50279
50187
|
var buildPrompt2 = (input) => {
|
|
50280
50188
|
const { rubric } = input;
|
|
@@ -50380,7 +50288,7 @@ var createVoiceAIScorecard = (options) => {
|
|
|
50380
50288
|
}
|
|
50381
50289
|
};
|
|
50382
50290
|
};
|
|
50383
|
-
// src/agentPerformanceReport.ts
|
|
50291
|
+
// src/core/agentPerformanceReport.ts
|
|
50384
50292
|
var bucketKeyFor = (ms, bucket) => {
|
|
50385
50293
|
const date = new Date(ms);
|
|
50386
50294
|
const year = date.getUTCFullYear();
|
|
@@ -50490,7 +50398,7 @@ var buildVoiceAgentPerformanceReport = (input) => {
|
|
|
50490
50398
|
worstCriterion: ranked[0]?.criterionId ?? null
|
|
50491
50399
|
};
|
|
50492
50400
|
};
|
|
50493
|
-
// src/scorecardCalibration.ts
|
|
50401
|
+
// src/core/scorecardCalibration.ts
|
|
50494
50402
|
var normalize = (raw, scaleMax) => scaleMax === 0 ? 0 : raw / scaleMax;
|
|
50495
50403
|
var correlation = (xs, ys) => {
|
|
50496
50404
|
if (xs.length === 0 || xs.length !== ys.length)
|
|
@@ -50595,7 +50503,7 @@ var computeVoiceScorecardCalibration = (pairs, options = {}) => {
|
|
|
50595
50503
|
worstDivergences: divergences.sort((a, b) => Math.abs(b.normalizedGap) - Math.abs(a.normalizedGap)).slice(0, topN)
|
|
50596
50504
|
};
|
|
50597
50505
|
};
|
|
50598
|
-
// src/qualityDriftDetector.ts
|
|
50506
|
+
// src/core/qualityDriftDetector.ts
|
|
50599
50507
|
var severityFor = (delta, watch, regression) => {
|
|
50600
50508
|
if (delta <= -regression)
|
|
50601
50509
|
return "regression";
|
|
@@ -50675,7 +50583,7 @@ var detectVoiceQualityDrift = (input) => {
|
|
|
50675
50583
|
scope: { from: baselineFrom, to: cutoff }
|
|
50676
50584
|
};
|
|
50677
50585
|
};
|
|
50678
|
-
// src/pathway.ts
|
|
50586
|
+
// src/core/pathway.ts
|
|
50679
50587
|
var slotRefsInActions = (actions) => {
|
|
50680
50588
|
if (!actions)
|
|
50681
50589
|
return [];
|
|
@@ -50826,7 +50734,7 @@ var validateVoicePathway = (pathway) => {
|
|
|
50826
50734
|
};
|
|
50827
50735
|
var findVoicePathwayState = (pathway, id) => pathway.states.find((s) => s.id === id) ?? null;
|
|
50828
50736
|
var findVoicePathwaySlot = (pathway, id) => pathway.slots.find((s) => s.id === id) ?? null;
|
|
50829
|
-
// src/pathwayRuntime.ts
|
|
50737
|
+
// src/core/pathwayRuntime.ts
|
|
50830
50738
|
var evaluateCondition = (condition, slots) => {
|
|
50831
50739
|
switch (condition.kind) {
|
|
50832
50740
|
case "always":
|
|
@@ -51017,7 +50925,7 @@ var createVoicePathwayRuntime = (options) => {
|
|
|
51017
50925
|
tryTransition
|
|
51018
50926
|
};
|
|
51019
50927
|
};
|
|
51020
|
-
// src/pathwaySlotCollector.ts
|
|
50928
|
+
// src/core/pathwaySlotCollector.ts
|
|
51021
50929
|
var numberWords = {
|
|
51022
50930
|
eight: 8,
|
|
51023
50931
|
five: 5,
|
|
@@ -51224,7 +51132,7 @@ var createVoicePathwaySlotCollector = (options = {}) => {
|
|
|
51224
51132
|
}
|
|
51225
51133
|
};
|
|
51226
51134
|
};
|
|
51227
|
-
// src/pathwayCompiler.ts
|
|
51135
|
+
// src/core/pathwayCompiler.ts
|
|
51228
51136
|
var describeAction = (action) => {
|
|
51229
51137
|
switch (action.kind) {
|
|
51230
51138
|
case "say":
|
|
@@ -51379,7 +51287,7 @@ ${stateBlock}`
|
|
|
51379
51287
|
...options.introduction !== undefined ? { initialPrompt: options.introduction } : {}
|
|
51380
51288
|
};
|
|
51381
51289
|
};
|
|
51382
|
-
// src/pathwayVisualizer.ts
|
|
51290
|
+
// src/core/pathwayVisualizer.ts
|
|
51383
51291
|
var escapeMermaidLabel = (text) => text.replace(/[<>"]/gu, "").replace(/\|/gu, "/");
|
|
51384
51292
|
var conditionLabel = (condition) => {
|
|
51385
51293
|
switch (condition.kind) {
|
|
@@ -51475,7 +51383,7 @@ var visualizeVoicePathway = (pathway) => ({
|
|
|
51475
51383
|
mermaid: renderVoicePathwayMermaid(pathway),
|
|
51476
51384
|
text: renderVoicePathwayText(pathway)
|
|
51477
51385
|
});
|
|
51478
|
-
// src/pathwayGenerator.ts
|
|
51386
|
+
// src/core/pathwayGenerator.ts
|
|
51479
51387
|
var SYSTEM_PROMPT = `You design conversation pathways for voice agents as strict JSON.
|
|
51480
51388
|
|
|
51481
51389
|
A pathway is a state machine. Output ONLY a JSON object with this shape:
|
|
@@ -51588,7 +51496,7 @@ Return a corrected pathway JSON that fixes every error.`;
|
|
|
51588
51496
|
report: lastReport
|
|
51589
51497
|
};
|
|
51590
51498
|
};
|
|
51591
|
-
// src/crmContract.ts
|
|
51499
|
+
// src/core/crmContract.ts
|
|
51592
51500
|
var createVoiceCRMRegistry = (options) => {
|
|
51593
51501
|
const byVendor = new Map;
|
|
51594
51502
|
for (const contract of options.contracts) {
|
|
@@ -51607,7 +51515,7 @@ var createVoiceCRMRegistry = (options) => {
|
|
|
51607
51515
|
}
|
|
51608
51516
|
};
|
|
51609
51517
|
};
|
|
51610
|
-
// src/callerCRMLinker.ts
|
|
51518
|
+
// src/core/callerCRMLinker.ts
|
|
51611
51519
|
var cacheKeyFor = (identity, vendor) => {
|
|
51612
51520
|
const id = identity.externalId ?? identity.phone ?? identity.email ?? "anonymous";
|
|
51613
51521
|
return `${vendor}::${id}`;
|
|
@@ -51682,7 +51590,7 @@ var createVoiceCallerCRMLinker = (options) => {
|
|
|
51682
51590
|
resolve: resolve3
|
|
51683
51591
|
};
|
|
51684
51592
|
};
|
|
51685
|
-
// src/crmCallLogger.ts
|
|
51593
|
+
// src/core/crmCallLogger.ts
|
|
51686
51594
|
var createVoiceCRMCallLogger = (options) => {
|
|
51687
51595
|
const now = options.now ?? (() => Date.now());
|
|
51688
51596
|
const errorPolicy = options.errorPolicy ?? "swallow";
|