@absolutejs/voice 0.0.22-beta.531 → 0.0.22-beta.533
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 +3 -2
- 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 +2 -3
- package/dist/client/index.js +14 -14
- 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 +3 -2
- 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 +3 -2
- 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 -4
- package/dist/client/workflowStatus.d.ts +1 -1
- package/dist/{agent.d.ts → core/agent.d.ts} +2 -1
- package/dist/{agentTools.d.ts → core/agentTools.d.ts} +1 -2
- package/dist/{assistant.d.ts → core/assistant.d.ts} +2 -1
- package/dist/{assistantExperiment.d.ts → core/assistantExperiment.d.ts} +5 -4
- package/dist/{campaign.d.ts → core/campaign.d.ts} +2 -1
- package/dist/{correction.d.ts → core/correction.d.ts} +2 -1
- package/dist/{dataControl.d.ts → core/dataControl.d.ts} +1 -1
- package/dist/{deliveryRuntime.d.ts → core/deliveryRuntime.d.ts} +3 -2
- package/dist/{fileStore.d.ts → core/fileStore.d.ts} +1 -1
- package/dist/{htmxDashboardRoutes.d.ts → core/htmxDashboardRoutes.d.ts} +6 -5
- package/dist/{logger.d.ts → core/logger.d.ts} +0 -1
- package/dist/{midCallSummary.d.ts → core/midCallSummary.d.ts} +3 -3
- package/dist/{multilingualProof.d.ts → core/multilingualProof.d.ts} +2 -2
- package/dist/{operationsRecord.d.ts → core/operationsRecord.d.ts} +3 -2
- 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} +6 -6
- 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} +7 -6
- package/dist/{providerStackRecommendations.d.ts → core/providerStackRecommendations.d.ts} +2 -1
- package/dist/{reconnectContract.d.ts → core/reconnectContract.d.ts} +2 -1
- 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} +4 -10
- package/dist/{simulationSuite.d.ts → core/simulationSuite.d.ts} +2 -1
- package/dist/{sqliteStore.d.ts → core/sqliteStore.d.ts} +1 -1
- package/dist/{telephonyOutcome.d.ts → core/telephonyOutcome.d.ts} +0 -4
- package/dist/core/turnProfiles.d.ts +3 -0
- 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 +199 -199
- 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.d.ts +21 -0
- package/dist/react/index.js +12 -12
- package/dist/react/useVoiceController.d.ts +1 -1
- package/dist/react/useVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceCallDebugger.d.ts +0 -2
- package/dist/svelte/createVoiceSessionSnapshot.d.ts +0 -2
- package/dist/svelte/createVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceWidget.d.ts +1 -1
- package/dist/svelte/index.js +8 -8
- 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 +24 -24
- 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 +12 -12
- 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/angular/voice-delivery-runtime.component.d.ts +0 -17
- package/dist/angular/voice-ops-status.component.d.ts +0 -15
- package/dist/turnProfiles.d.ts +0 -6
- /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/{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/{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/{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/{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/{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/{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/{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/{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/{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/{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/{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/{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 : "";
|
|
@@ -12279,7 +12279,7 @@ var assertVoiceEvidence = (failureMessage, assertion) => {
|
|
|
12279
12279
|
return assertion;
|
|
12280
12280
|
};
|
|
12281
12281
|
|
|
12282
|
-
// src/campaign.ts
|
|
12282
|
+
// src/core/campaign.ts
|
|
12283
12283
|
import { Elysia as Elysia14 } from "elysia";
|
|
12284
12284
|
var createId2 = () => crypto.randomUUID();
|
|
12285
12285
|
var cloneRecord = (record) => ({
|
|
@@ -13487,7 +13487,7 @@ var createVoiceCampaignRoutes = (options) => {
|
|
|
13487
13487
|
return app;
|
|
13488
13488
|
};
|
|
13489
13489
|
|
|
13490
|
-
// src/competitiveCoverage.ts
|
|
13490
|
+
// src/core/competitiveCoverage.ts
|
|
13491
13491
|
import { Elysia as Elysia15 } from "elysia";
|
|
13492
13492
|
var escapeMarkdown = (value) => value.replaceAll("|", "\\|");
|
|
13493
13493
|
var resolveSurfaceStatus = (surface) => {
|
|
@@ -13717,7 +13717,7 @@ var createVoiceCompetitiveCoverageRoutes = (options) => {
|
|
|
13717
13717
|
return app;
|
|
13718
13718
|
};
|
|
13719
13719
|
|
|
13720
|
-
// src/dataControl.ts
|
|
13720
|
+
// src/core/dataControl.ts
|
|
13721
13721
|
import { Elysia as Elysia16 } from "elysia";
|
|
13722
13722
|
var voiceComplianceRedactionDefaults = {
|
|
13723
13723
|
keys: [
|
|
@@ -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",
|
|
@@ -19353,7 +19353,7 @@ var createVoiceLiveOpsRoutes = (options = {}) => {
|
|
|
19353
19353
|
});
|
|
19354
19354
|
};
|
|
19355
19355
|
|
|
19356
|
-
// src/mediaPipelineRoutes.ts
|
|
19356
|
+
// src/core/mediaPipelineRoutes.ts
|
|
19357
19357
|
import { Elysia as Elysia31 } from "elysia";
|
|
19358
19358
|
import {
|
|
19359
19359
|
buildMediaInterruptionReport,
|
|
@@ -19661,7 +19661,7 @@ var summarizeVoiceMediaPipelineReport = (report, options = {}) => {
|
|
|
19661
19661
|
};
|
|
19662
19662
|
};
|
|
19663
19663
|
|
|
19664
|
-
// src/monitor.ts
|
|
19664
|
+
// src/core/monitor.ts
|
|
19665
19665
|
import { Elysia as Elysia32 } from "elysia";
|
|
19666
19666
|
var buildAudioFanout = () => {
|
|
19667
19667
|
const handlers = new Set;
|
|
@@ -20122,7 +20122,7 @@ var createVoiceLiveMonitorRoutes = (options) => {
|
|
|
20122
20122
|
return app;
|
|
20123
20123
|
};
|
|
20124
20124
|
|
|
20125
|
-
// src/observabilityExport.ts
|
|
20125
|
+
// src/core/observabilityExport.ts
|
|
20126
20126
|
import { Elysia as Elysia33 } from "elysia";
|
|
20127
20127
|
import { Database } from "bun:sqlite";
|
|
20128
20128
|
import { createHash } from "crypto";
|
|
@@ -21722,13 +21722,13 @@ var createVoiceObservabilityExportRoutes = (options = {}) => {
|
|
|
21722
21722
|
return app;
|
|
21723
21723
|
};
|
|
21724
21724
|
|
|
21725
|
-
// src/operationalStatus.ts
|
|
21725
|
+
// src/core/operationalStatus.ts
|
|
21726
21726
|
import { Elysia as Elysia45 } from "elysia";
|
|
21727
21727
|
|
|
21728
|
-
// src/productionReadiness.ts
|
|
21728
|
+
// src/core/productionReadiness.ts
|
|
21729
21729
|
import { Elysia as Elysia44 } from "elysia";
|
|
21730
21730
|
|
|
21731
|
-
// src/resilienceRoutes.ts
|
|
21731
|
+
// src/core/resilienceRoutes.ts
|
|
21732
21732
|
import { Elysia as Elysia34 } from "elysia";
|
|
21733
21733
|
var getString14 = (value) => typeof value === "string" ? value : undefined;
|
|
21734
21734
|
var getNumber8 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -22399,7 +22399,7 @@ var createVoiceTelephonyCarrierMatrixRoutes = (options) => {
|
|
|
22399
22399
|
});
|
|
22400
22400
|
};
|
|
22401
22401
|
|
|
22402
|
-
// src/telephonyOutcome.ts
|
|
22402
|
+
// src/core/telephonyOutcome.ts
|
|
22403
22403
|
import { Elysia as Elysia36 } from "elysia";
|
|
22404
22404
|
var DEFAULT_COMPLETED_STATUSES = [
|
|
22405
22405
|
"answered",
|
|
@@ -23190,7 +23190,7 @@ var createVoiceTelephonyWebhookRoutes = (options = {}) => {
|
|
|
23190
23190
|
// src/telephony/security.ts
|
|
23191
23191
|
import { Elysia as Elysia40 } from "elysia";
|
|
23192
23192
|
|
|
23193
|
-
// src/postgresStore.ts
|
|
23193
|
+
// src/core/postgresStore.ts
|
|
23194
23194
|
var normalizeIdentifierSegment = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice";
|
|
23195
23195
|
var quoteIdentifier = (value) => `"${value.replace(/"/g, '""')}"`;
|
|
23196
23196
|
var resolveStoreTableName = (input) => {
|
|
@@ -23450,7 +23450,7 @@ var createVoicePostgresRuntimeStorage = (options) => {
|
|
|
23450
23450
|
};
|
|
23451
23451
|
};
|
|
23452
23452
|
|
|
23453
|
-
// src/sqliteStore.ts
|
|
23453
|
+
// src/core/sqliteStore.ts
|
|
23454
23454
|
import { Database as Database2 } from "bun:sqlite";
|
|
23455
23455
|
var normalizeTableNameSegment = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice";
|
|
23456
23456
|
var resolveTableName = (input) => {
|
|
@@ -26039,7 +26039,7 @@ var createVoiceTelephonyWebhookSecurityPreset = (options = {}) => {
|
|
|
26039
26039
|
};
|
|
26040
26040
|
};
|
|
26041
26041
|
|
|
26042
|
-
// src/providerSlo.ts
|
|
26042
|
+
// src/core/providerSlo.ts
|
|
26043
26043
|
import { Elysia as Elysia41 } from "elysia";
|
|
26044
26044
|
var defaultThresholds = {
|
|
26045
26045
|
llm: {
|
|
@@ -26421,7 +26421,7 @@ var createVoiceProviderSloRoutes = (options) => {
|
|
|
26421
26421
|
return app;
|
|
26422
26422
|
};
|
|
26423
26423
|
|
|
26424
|
-
// src/sessionObservability.ts
|
|
26424
|
+
// src/core/sessionObservability.ts
|
|
26425
26425
|
import { Elysia as Elysia42 } from "elysia";
|
|
26426
26426
|
var formatMs4 = (value) => value === undefined ? "n/a" : `${String(value)}ms`;
|
|
26427
26427
|
var resolveHref = (href, sessionId) => {
|
|
@@ -26744,10 +26744,10 @@ var createVoiceSessionObservabilityRoutes = (options) => {
|
|
|
26744
26744
|
return routes;
|
|
26745
26745
|
};
|
|
26746
26746
|
|
|
26747
|
-
// src/opsRecovery.ts
|
|
26747
|
+
// src/core/opsRecovery.ts
|
|
26748
26748
|
import { Elysia as Elysia43 } from "elysia";
|
|
26749
26749
|
|
|
26750
|
-
// src/latencySlo.ts
|
|
26750
|
+
// src/core/latencySlo.ts
|
|
26751
26751
|
var DEFAULT_WARN_AFTER_MS = 1800;
|
|
26752
26752
|
var DEFAULT_FAIL_AFTER_MS = 3200;
|
|
26753
26753
|
var STAGE_LABELS = {
|
|
@@ -27050,7 +27050,7 @@ None.
|
|
|
27050
27050
|
`}`;
|
|
27051
27051
|
};
|
|
27052
27052
|
|
|
27053
|
-
// src/opsRecovery.ts
|
|
27053
|
+
// src/core/opsRecovery.ts
|
|
27054
27054
|
var getString16 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
27055
27055
|
var hrefForSession = (value, sessionId) => {
|
|
27056
27056
|
if (typeof value === "function") {
|
|
@@ -27305,7 +27305,7 @@ var createVoiceOpsRecoveryRoutes = (options = {}) => {
|
|
|
27305
27305
|
return routes;
|
|
27306
27306
|
};
|
|
27307
27307
|
|
|
27308
|
-
// src/productionReadiness.ts
|
|
27308
|
+
// src/core/productionReadiness.ts
|
|
27309
27309
|
var buildVoiceReadinessRecoveryActions = (input, options = {}) => {
|
|
27310
27310
|
const checks = "checks" in input ? input.checks : input;
|
|
27311
27311
|
const includeWarnings = options.includeWarnings ?? true;
|
|
@@ -29526,7 +29526,7 @@ var createVoiceProductionReadinessRoutes = (options) => {
|
|
|
29526
29526
|
return routes;
|
|
29527
29527
|
};
|
|
29528
29528
|
|
|
29529
|
-
// src/operationalStatus.ts
|
|
29529
|
+
// src/core/operationalStatus.ts
|
|
29530
29530
|
var resolveValue2 = async (value) => typeof value === "function" ? await value() : value;
|
|
29531
29531
|
var isDeliveryRuntime = (value) => Boolean(value && typeof value === "object" && "isRunning" in value && "summarize" in value);
|
|
29532
29532
|
var worstStatus3 = (statuses) => worstVoiceStatus(statuses);
|
|
@@ -29635,7 +29635,7 @@ var createVoiceOperationalStatusRoutes = (options) => {
|
|
|
29635
29635
|
return routes;
|
|
29636
29636
|
};
|
|
29637
29637
|
|
|
29638
|
-
// src/opsConsoleRoutes.ts
|
|
29638
|
+
// src/core/opsConsoleRoutes.ts
|
|
29639
29639
|
import { Elysia as Elysia46 } from "elysia";
|
|
29640
29640
|
var DEFAULT_LINKS = [
|
|
29641
29641
|
{
|
|
@@ -29760,10 +29760,10 @@ var createVoiceOpsConsoleRoutes = (options) => {
|
|
|
29760
29760
|
return routes;
|
|
29761
29761
|
};
|
|
29762
29762
|
|
|
29763
|
-
// src/opsStatusRoutes.ts
|
|
29763
|
+
// src/core/opsStatusRoutes.ts
|
|
29764
29764
|
import { Elysia as Elysia47 } from "elysia";
|
|
29765
29765
|
|
|
29766
|
-
// src/opsStatus.ts
|
|
29766
|
+
// src/core/opsStatus.ts
|
|
29767
29767
|
var DEFAULT_LINKS2 = [
|
|
29768
29768
|
{
|
|
29769
29769
|
description: "Production quality gates.",
|
|
@@ -29926,7 +29926,7 @@ var summarizeVoiceOpsStatus = async (options) => {
|
|
|
29926
29926
|
};
|
|
29927
29927
|
};
|
|
29928
29928
|
|
|
29929
|
-
// src/opsStatusRoutes.ts
|
|
29929
|
+
// src/core/opsStatusRoutes.ts
|
|
29930
29930
|
var renderVoiceOpsStatusHTML = (report, options = {}) => {
|
|
29931
29931
|
const title = options.title ?? "AbsoluteJS Voice Ops Status";
|
|
29932
29932
|
const surfaces = Object.entries(report.surfaces).map(([key, surface]) => {
|
|
@@ -29953,7 +29953,7 @@ var createVoiceOpsStatusRoutes = (options) => {
|
|
|
29953
29953
|
return routes;
|
|
29954
29954
|
};
|
|
29955
29955
|
|
|
29956
|
-
// src/opsWebhook.ts
|
|
29956
|
+
// src/core/opsWebhook.ts
|
|
29957
29957
|
import { Elysia as Elysia48 } from "elysia";
|
|
29958
29958
|
var toHex6 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
29959
29959
|
var signVoiceOpsWebhookBody = async (input) => {
|
|
@@ -30117,7 +30117,7 @@ var createVoiceOpsWebhookReceiverRoutes = (options = {}) => {
|
|
|
30117
30117
|
});
|
|
30118
30118
|
};
|
|
30119
30119
|
|
|
30120
|
-
// src/outcomeContract.ts
|
|
30120
|
+
// src/core/outcomeContract.ts
|
|
30121
30121
|
import { Elysia as Elysia49 } from "elysia";
|
|
30122
30122
|
var resolveSessionHref4 = (value, sessionId) => {
|
|
30123
30123
|
if (value === false) {
|
|
@@ -30371,7 +30371,7 @@ var createVoiceOutcomeContractRoutes = (options) => {
|
|
|
30371
30371
|
return routes;
|
|
30372
30372
|
};
|
|
30373
30373
|
|
|
30374
|
-
// src/phoneAgentProductionSmoke.ts
|
|
30374
|
+
// src/core/phoneAgentProductionSmoke.ts
|
|
30375
30375
|
import { Elysia as Elysia50 } from "elysia";
|
|
30376
30376
|
var defaultRequirements = [
|
|
30377
30377
|
"media-started",
|
|
@@ -30523,7 +30523,7 @@ var createVoicePhoneAgentProductionSmokeRoutes = (options) => {
|
|
|
30523
30523
|
return routes;
|
|
30524
30524
|
};
|
|
30525
30525
|
|
|
30526
|
-
// src/platformCoverage.ts
|
|
30526
|
+
// src/core/platformCoverage.ts
|
|
30527
30527
|
import { Elysia as Elysia51 } from "elysia";
|
|
30528
30528
|
var buildVoicePlatformCoverageSummary = (input) => {
|
|
30529
30529
|
const coverage = input.coverage ?? [];
|
|
@@ -30597,7 +30597,7 @@ var createVoicePlatformCoverageRoutes = (options) => {
|
|
|
30597
30597
|
return routes;
|
|
30598
30598
|
};
|
|
30599
30599
|
|
|
30600
|
-
// src/postCallAnalysis.ts
|
|
30600
|
+
// src/core/postCallAnalysis.ts
|
|
30601
30601
|
import { Elysia as Elysia52 } from "elysia";
|
|
30602
30602
|
var isStore = (value) => Boolean(value) && typeof value === "object" && value !== null && ("list" in value);
|
|
30603
30603
|
var asArray = async (value) => Array.isArray(value) ? value : isStore(value) ? await value.list() : [];
|
|
@@ -30802,7 +30802,7 @@ var createVoicePostCallAnalysisRoutes = (options = {}) => {
|
|
|
30802
30802
|
return routes;
|
|
30803
30803
|
};
|
|
30804
30804
|
|
|
30805
|
-
// src/proofPack.ts
|
|
30805
|
+
// src/core/proofPack.ts
|
|
30806
30806
|
import { Elysia as Elysia53 } from "elysia";
|
|
30807
30807
|
import { mkdir as mkdir4 } from "fs/promises";
|
|
30808
30808
|
import { dirname as dirname3, join as join3 } from "path";
|
|
@@ -31409,10 +31409,10 @@ var createVoiceProofPackRoutes = (options) => {
|
|
|
31409
31409
|
return app;
|
|
31410
31410
|
};
|
|
31411
31411
|
|
|
31412
|
-
// src/proofTrends.ts
|
|
31412
|
+
// src/core/proofTrends.ts
|
|
31413
31413
|
import { Elysia as Elysia55 } from "elysia";
|
|
31414
31414
|
|
|
31415
|
-
// src/providerDecisionTraces.ts
|
|
31415
|
+
// src/core/providerDecisionTraces.ts
|
|
31416
31416
|
import { Elysia as Elysia54 } from "elysia";
|
|
31417
31417
|
var getString18 = (value) => typeof value === "string" ? value : undefined;
|
|
31418
31418
|
var getNumber11 = (value) => typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
@@ -31726,7 +31726,7 @@ var createVoiceProviderDecisionTraceRoutes = (options) => {
|
|
|
31726
31726
|
return app;
|
|
31727
31727
|
};
|
|
31728
31728
|
|
|
31729
|
-
// src/proofTrends.ts
|
|
31729
|
+
// src/core/proofTrends.ts
|
|
31730
31730
|
var DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
31731
31731
|
var DEFAULT_VOICE_PROOF_TREND_PROFILE_DEFINITIONS = [
|
|
31732
31732
|
{
|
|
@@ -34541,7 +34541,7 @@ var formatVoiceProofTrendAge = (ageMs) => {
|
|
|
34541
34541
|
return `${days}d ${hours % 24}h`;
|
|
34542
34542
|
};
|
|
34543
34543
|
|
|
34544
|
-
// src/providerCapabilities.ts
|
|
34544
|
+
// src/core/providerCapabilities.ts
|
|
34545
34545
|
import { Elysia as Elysia56 } from "elysia";
|
|
34546
34546
|
var fromProviderList = (kind, providers, options) => (providers ?? []).map((provider) => ({
|
|
34547
34547
|
configured: true,
|
|
@@ -34653,7 +34653,7 @@ var createVoiceProviderCapabilityRoutes = (options) => {
|
|
|
34653
34653
|
return routes;
|
|
34654
34654
|
};
|
|
34655
34655
|
|
|
34656
|
-
// src/providerOrchestration.ts
|
|
34656
|
+
// src/core/providerOrchestration.ts
|
|
34657
34657
|
import { Elysia as Elysia57 } from "elysia";
|
|
34658
34658
|
var defaultRequirement = {
|
|
34659
34659
|
minProviders: 1,
|
|
@@ -34859,7 +34859,7 @@ var createVoiceProviderOrchestrationRoutes = (options) => {
|
|
|
34859
34859
|
return routes;
|
|
34860
34860
|
};
|
|
34861
34861
|
|
|
34862
|
-
// src/providerStackRecommendations.ts
|
|
34862
|
+
// src/core/providerStackRecommendations.ts
|
|
34863
34863
|
import { Elysia as Elysia58 } from "elysia";
|
|
34864
34864
|
var profileProviderPriorities = {
|
|
34865
34865
|
"meeting-recorder": {
|
|
@@ -35331,7 +35331,7 @@ var assertVoiceProviderStackEvidence = (report, input = {}) => {
|
|
|
35331
35331
|
return assertVoiceEvidence("Voice provider stack assertion failed", evaluateVoiceProviderStackEvidence(report, input));
|
|
35332
35332
|
};
|
|
35333
35333
|
|
|
35334
|
-
// src/realtimeChannel.ts
|
|
35334
|
+
// src/core/realtimeChannel.ts
|
|
35335
35335
|
import { Elysia as Elysia59 } from "elysia";
|
|
35336
35336
|
var DEFAULT_REALTIME_FORMAT2 = {
|
|
35337
35337
|
channels: 1,
|
|
@@ -35648,7 +35648,7 @@ var createVoiceRealtimeChannelRoutes = (options) => {
|
|
|
35648
35648
|
return app;
|
|
35649
35649
|
};
|
|
35650
35650
|
|
|
35651
|
-
// src/realtimeProviderContracts.ts
|
|
35651
|
+
// src/core/realtimeProviderContracts.ts
|
|
35652
35652
|
import { Elysia as Elysia60 } from "elysia";
|
|
35653
35653
|
var defaultRequiredCapabilities = [
|
|
35654
35654
|
"browser-format-negotiation",
|
|
@@ -35876,7 +35876,7 @@ var createVoiceRealtimeProviderContractRoutes = (options) => {
|
|
|
35876
35876
|
return routes;
|
|
35877
35877
|
};
|
|
35878
35878
|
|
|
35879
|
-
// src/reconnectContract.ts
|
|
35879
|
+
// src/core/reconnectContract.ts
|
|
35880
35880
|
import { Elysia as Elysia61 } from "elysia";
|
|
35881
35881
|
var unique2 = (values) => [...new Set(values)];
|
|
35882
35882
|
var isReconnectPayload = (value) => {
|
|
@@ -36125,13 +36125,13 @@ var createVoiceReconnectContractRoutes = (options) => {
|
|
|
36125
36125
|
return app;
|
|
36126
36126
|
};
|
|
36127
36127
|
|
|
36128
|
-
// src/simulationSuite.ts
|
|
36128
|
+
// src/core/simulationSuite.ts
|
|
36129
36129
|
import { Elysia as Elysia63 } from "elysia";
|
|
36130
36130
|
|
|
36131
|
-
// src/toolContract.ts
|
|
36131
|
+
// src/core/toolContract.ts
|
|
36132
36132
|
import { Elysia as Elysia62 } from "elysia";
|
|
36133
36133
|
|
|
36134
|
-
// src/toolRuntime.ts
|
|
36134
|
+
// src/core/toolRuntime.ts
|
|
36135
36135
|
var toErrorMessage4 = (error) => error instanceof Error ? error.message : String(error);
|
|
36136
36136
|
var sleep5 = (ms) => new Promise((resolve) => {
|
|
36137
36137
|
setTimeout(resolve, ms);
|
|
@@ -36328,7 +36328,7 @@ var createVoiceToolIdempotencyKey = (input) => {
|
|
|
36328
36328
|
].join(":");
|
|
36329
36329
|
};
|
|
36330
36330
|
|
|
36331
|
-
// src/toolContract.ts
|
|
36331
|
+
// src/core/toolContract.ts
|
|
36332
36332
|
var createDefaultSession = (contractId, caseId) => createVoiceSessionRecord(`tool-contract-${contractId}-${caseId}`);
|
|
36333
36333
|
var createDefaultTurn = (caseId) => ({
|
|
36334
36334
|
committedAt: Date.now(),
|
|
@@ -36659,7 +36659,7 @@ var createVoiceToolContractRoutes = (options) => {
|
|
|
36659
36659
|
return routes;
|
|
36660
36660
|
};
|
|
36661
36661
|
|
|
36662
|
-
// src/simulationSuite.ts
|
|
36662
|
+
// src/core/simulationSuite.ts
|
|
36663
36663
|
var summarizeSection = (report) => ({
|
|
36664
36664
|
failed: report.failed,
|
|
36665
36665
|
passed: report.passed,
|
|
@@ -36915,7 +36915,7 @@ var createVoiceSimulationSuiteRoutes = (options) => {
|
|
|
36915
36915
|
return app;
|
|
36916
36916
|
};
|
|
36917
36917
|
|
|
36918
|
-
// src/sloCalibration.ts
|
|
36918
|
+
// src/core/sloCalibration.ts
|
|
36919
36919
|
import { Elysia as Elysia64 } from "elysia";
|
|
36920
36920
|
var DEFAULT_HEADROOM_MULTIPLIER = 1.5;
|
|
36921
36921
|
var DEFAULT_WARN_RATIO = 0.8;
|
|
@@ -37254,7 +37254,7 @@ var createVoiceSloReadinessThresholdRoutes = (options) => {
|
|
|
37254
37254
|
return routes;
|
|
37255
37255
|
};
|
|
37256
37256
|
|
|
37257
|
-
// src/telephonyMediaRoutes.ts
|
|
37257
|
+
// src/core/telephonyMediaRoutes.ts
|
|
37258
37258
|
import { Elysia as Elysia65 } from "elysia";
|
|
37259
37259
|
import {
|
|
37260
37260
|
buildMediaTelephonyStreamLifecycleReport,
|
|
@@ -37467,7 +37467,7 @@ var createVoiceTelephonyMediaRoutes = (options = {}) => {
|
|
|
37467
37467
|
return routes;
|
|
37468
37468
|
};
|
|
37469
37469
|
|
|
37470
|
-
// src/traceDeliveryRoutes.ts
|
|
37470
|
+
// src/core/traceDeliveryRoutes.ts
|
|
37471
37471
|
import { Elysia as Elysia66 } from "elysia";
|
|
37472
37472
|
var getString19 = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
37473
37473
|
var getNumber12 = (value) => {
|
|
@@ -37594,7 +37594,7 @@ var createVoiceTraceDeliveryRoutes = (options) => {
|
|
|
37594
37594
|
return routes;
|
|
37595
37595
|
};
|
|
37596
37596
|
|
|
37597
|
-
// src/turnLatency.ts
|
|
37597
|
+
// src/core/turnLatency.ts
|
|
37598
37598
|
import { Elysia as Elysia67 } from "elysia";
|
|
37599
37599
|
var DEFAULT_WARN_AFTER_MS2 = 1800;
|
|
37600
37600
|
var DEFAULT_FAIL_AFTER_MS2 = 3200;
|
|
@@ -37763,7 +37763,7 @@ var createVoiceTurnLatencyRoutes = (options) => {
|
|
|
37763
37763
|
return routes;
|
|
37764
37764
|
};
|
|
37765
37765
|
|
|
37766
|
-
// src/turnQuality.ts
|
|
37766
|
+
// src/core/turnQuality.ts
|
|
37767
37767
|
import { Elysia as Elysia68 } from "elysia";
|
|
37768
37768
|
var DEFAULT_CONFIDENCE_WARN_THRESHOLD = 0.72;
|
|
37769
37769
|
var getTurnLatencyMs = (turn) => {
|
|
@@ -37878,7 +37878,7 @@ var createVoiceTurnQualityRoutes = (options) => {
|
|
|
37878
37878
|
return routes;
|
|
37879
37879
|
};
|
|
37880
37880
|
|
|
37881
|
-
// src/voiceMonitoring.ts
|
|
37881
|
+
// src/core/voiceMonitoring.ts
|
|
37882
37882
|
import { Elysia as Elysia69 } from "elysia";
|
|
37883
37883
|
var issueIdForRun = (run) => `voice-monitor:${run.id}:${run.impactedSessions?.[0] ?? "global"}`;
|
|
37884
37884
|
var rollupStatus5 = (runs) => worstVoiceStatus(runs.map((run) => run.status));
|
|
@@ -38227,7 +38227,7 @@ var createVoiceMonitorRunnerRoutes = (options) => {
|
|
|
38227
38227
|
});
|
|
38228
38228
|
};
|
|
38229
38229
|
|
|
38230
|
-
// src/plugin.ts
|
|
38230
|
+
// src/core/plugin.ts
|
|
38231
38231
|
var resolveQueryScenario = (query) => {
|
|
38232
38232
|
if (typeof query?.scenarioId === "string" && query.scenarioId.trim()) {
|
|
38233
38233
|
return query.scenarioId.trim();
|
|
@@ -38890,7 +38890,7 @@ var voice = (config) => {
|
|
|
38890
38890
|
}
|
|
38891
38891
|
}).use(htmxRoutes()).use(surfaceRoutes());
|
|
38892
38892
|
};
|
|
38893
|
-
// src/campaignDialers.ts
|
|
38893
|
+
// src/core/campaignDialers.ts
|
|
38894
38894
|
import { Buffer as Buffer6 } from "buffer";
|
|
38895
38895
|
var resolveFetch = (fetcher) => {
|
|
38896
38896
|
const activeFetch = fetcher ?? globalThis.fetch;
|
|
@@ -39288,7 +39288,7 @@ var evaluateVoiceCampaignDialerProofEvidence = (report, input = {}) => {
|
|
|
39288
39288
|
var assertVoiceCampaignDialerProofEvidence = (report, input = {}) => {
|
|
39289
39289
|
return assertVoiceEvidence("Voice campaign dialer proof evidence assertion failed", evaluateVoiceCampaignDialerProofEvidence(report, input));
|
|
39290
39290
|
};
|
|
39291
|
-
// src/mediaPipelineSurfaces.ts
|
|
39291
|
+
// src/core/mediaPipelineSurfaces.ts
|
|
39292
39292
|
import {
|
|
39293
39293
|
buildMediaProcessorGraphArtifact,
|
|
39294
39294
|
buildMediaQualityArtifact,
|
|
@@ -39501,7 +39501,7 @@ var writeVoiceMediaPipelineArtifacts = async (options) => {
|
|
|
39501
39501
|
}
|
|
39502
39502
|
return { artifacts, hrefs };
|
|
39503
39503
|
};
|
|
39504
|
-
// src/proofRunner.ts
|
|
39504
|
+
// src/core/proofRunner.ts
|
|
39505
39505
|
var encoder = new TextEncoder;
|
|
39506
39506
|
var trimBaseUrl = (baseUrl) => baseUrl.replace(/\/$/, "");
|
|
39507
39507
|
var safeArtifactName = (name) => name.replace(/[^a-z0-9_.-]/gi, "-");
|
|
@@ -39713,7 +39713,7 @@ var runVoiceCommandProofTarget = async (target, options) => {
|
|
|
39713
39713
|
};
|
|
39714
39714
|
};
|
|
39715
39715
|
var runVoiceCommandProofTargets = (targets, options) => mapVoiceProofTargetsWithConcurrency(targets, options.concurrency ?? targets.length, (target) => runVoiceCommandProofTarget(target, options));
|
|
39716
|
-
// src/providerRouterTraces.ts
|
|
39716
|
+
// src/core/providerRouterTraces.ts
|
|
39717
39717
|
var buildVoiceProviderRouterTraceEvent = (options) => ({
|
|
39718
39718
|
at: options.at ?? options.event.at,
|
|
39719
39719
|
id: options.id ?? `${options.sessionId}:${options.turnId ?? "session"}:${options.event.provider}:${options.event.status}:${String(options.at ?? options.event.at)}`,
|
|
@@ -39744,7 +39744,7 @@ var buildVoiceIOProviderRouterTraceEvent = (options) => ({
|
|
|
39744
39744
|
type: options.type ?? "session.error"
|
|
39745
39745
|
});
|
|
39746
39746
|
var appendVoiceIOProviderRouterTraceEvent = async (options) => options.store.append(buildVoiceIOProviderRouterTraceEvent(options));
|
|
39747
|
-
// src/workflowContract.ts
|
|
39747
|
+
// src/core/workflowContract.ts
|
|
39748
39748
|
var getObject2 = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
|
|
39749
39749
|
var getPathValue3 = (value, path) => {
|
|
39750
39750
|
let current = value;
|
|
@@ -40046,7 +40046,7 @@ var createVoiceWorkflowContractHandler = (input) => {
|
|
|
40046
40046
|
return result;
|
|
40047
40047
|
};
|
|
40048
40048
|
};
|
|
40049
|
-
// src/conversationSimulator.ts
|
|
40049
|
+
// src/core/conversationSimulator.ts
|
|
40050
40050
|
var createStubApi = (sessionId) => ({ id: sessionId });
|
|
40051
40051
|
var callerTurnText = async (caller, transcript, turnIndex) => {
|
|
40052
40052
|
if (caller.kind === "script") {
|
|
@@ -40164,7 +40164,7 @@ Respond with only your spoken line. When your goal is met or you want to hang up
|
|
|
40164
40164
|
persona: options.persona
|
|
40165
40165
|
};
|
|
40166
40166
|
};
|
|
40167
|
-
// src/mcpToolset.ts
|
|
40167
|
+
// src/core/mcpToolset.ts
|
|
40168
40168
|
var flattenContent = (result) => {
|
|
40169
40169
|
const blocks = result.content ?? [];
|
|
40170
40170
|
const text = blocks.filter((block) => block.type === "text" && typeof block.text === "string").map((block) => block.text).join(`
|
|
@@ -40210,7 +40210,7 @@ var createVoiceMCPToolset = async (options) => {
|
|
|
40210
40210
|
}
|
|
40211
40211
|
return tools;
|
|
40212
40212
|
};
|
|
40213
|
-
// src/aiVoiceModel.ts
|
|
40213
|
+
// src/core/aiVoiceModel.ts
|
|
40214
40214
|
var toProviderMessages = (messages) => {
|
|
40215
40215
|
const out = [];
|
|
40216
40216
|
for (const message of messages) {
|
|
@@ -40316,7 +40316,7 @@ var createAIVoiceModel = (options) => ({
|
|
|
40316
40316
|
return output;
|
|
40317
40317
|
}
|
|
40318
40318
|
});
|
|
40319
|
-
// src/llmJudge.ts
|
|
40319
|
+
// src/core/llmJudge.ts
|
|
40320
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"}.';
|
|
40321
40321
|
var buildPrompt = (rubric, input) => {
|
|
40322
40322
|
const criteriaBlock = rubric.criteria.map((criterion) => `- ${criterion.id}${criterion.required ? " (required)" : ""}: ${criterion.description}`).join(`
|
|
@@ -40442,7 +40442,7 @@ var createVoiceAIJudgeCompletion = (options) => async ({ prompt, systemPrompt })
|
|
|
40442
40442
|
}
|
|
40443
40443
|
return buffered;
|
|
40444
40444
|
};
|
|
40445
|
-
// src/redaction.ts
|
|
40445
|
+
// src/core/redaction.ts
|
|
40446
40446
|
var DEFAULT_VOICE_REDACTION_PATTERNS = [
|
|
40447
40447
|
{
|
|
40448
40448
|
label: "credit-card",
|
|
@@ -40482,7 +40482,7 @@ var createVoiceTranscriptRedactor = (options = {}) => {
|
|
|
40482
40482
|
};
|
|
40483
40483
|
};
|
|
40484
40484
|
var redactVoiceTranscript = (transcript, patterns = DEFAULT_VOICE_REDACTION_PATTERNS) => createVoiceTranscriptRedactor({ patterns })(transcript);
|
|
40485
|
-
// src/recordingRedaction.ts
|
|
40485
|
+
// src/core/recordingRedaction.ts
|
|
40486
40486
|
import {
|
|
40487
40487
|
applyAudioRedaction,
|
|
40488
40488
|
mergeAudioRedactionRanges
|
|
@@ -40541,7 +40541,7 @@ var redactVoiceRecording = (input) => {
|
|
|
40541
40541
|
redactedCount: ranges.length
|
|
40542
40542
|
};
|
|
40543
40543
|
};
|
|
40544
|
-
// src/variableAnalytics.ts
|
|
40544
|
+
// src/core/variableAnalytics.ts
|
|
40545
40545
|
var stringifyValue = (value) => {
|
|
40546
40546
|
if (value === null || value === undefined)
|
|
40547
40547
|
return "(none)";
|
|
@@ -40615,7 +40615,7 @@ var buildVoiceVariableAnalytics = (input) => {
|
|
|
40615
40615
|
}
|
|
40616
40616
|
return { byVariable, overall, totalCalls };
|
|
40617
40617
|
};
|
|
40618
|
-
// src/zeroDataRetention.ts
|
|
40618
|
+
// src/core/zeroDataRetention.ts
|
|
40619
40619
|
var RETAIN_ALL = {
|
|
40620
40620
|
assistantText: true,
|
|
40621
40621
|
metadata: true,
|
|
@@ -40675,7 +40675,7 @@ var scrubVoiceTraceForZeroDataRetention = (event, policy) => {
|
|
|
40675
40675
|
return { ...event, payload: scrubbedPayload };
|
|
40676
40676
|
};
|
|
40677
40677
|
var VOICE_ZERO_DATA_RETENTION_REDACTION_MARKER = REDACTED;
|
|
40678
|
-
// src/costAccounting.ts
|
|
40678
|
+
// src/core/costAccounting.ts
|
|
40679
40679
|
var DEFAULT_VOICE_PRICE_BOOK = {
|
|
40680
40680
|
"anthropic:claude-opus-4-5": {
|
|
40681
40681
|
llm: {
|
|
@@ -40818,7 +40818,7 @@ var createVoiceCostAccountant = (options = {}) => {
|
|
|
40818
40818
|
})
|
|
40819
40819
|
};
|
|
40820
40820
|
};
|
|
40821
|
-
// src/semanticTurn.ts
|
|
40821
|
+
// src/core/semanticTurn.ts
|
|
40822
40822
|
var DEFAULT_END_PUNCTUATION = [".", "?", "!"];
|
|
40823
40823
|
var DEFAULT_FILLER_WORDS = [
|
|
40824
40824
|
"uh",
|
|
@@ -40888,7 +40888,7 @@ var createRegexSemanticTurnDetector = (options) => {
|
|
|
40888
40888
|
}
|
|
40889
40889
|
};
|
|
40890
40890
|
};
|
|
40891
|
-
// src/webhookVerification.ts
|
|
40891
|
+
// src/core/webhookVerification.ts
|
|
40892
40892
|
var VOICE_WEBHOOK_SIGNATURE_HEADER = "x-absolutejs-signature";
|
|
40893
40893
|
var VOICE_WEBHOOK_TIMESTAMP_HEADER = "x-absolutejs-timestamp";
|
|
40894
40894
|
var toHex7 = (bytes) => Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -40959,7 +40959,7 @@ var extractVoiceWebhookSignatureFromHeaders = (headers) => {
|
|
|
40959
40959
|
timestamp: get(VOICE_WEBHOOK_TIMESTAMP_HEADER)
|
|
40960
40960
|
};
|
|
40961
40961
|
};
|
|
40962
|
-
// src/campaignControls.ts
|
|
40962
|
+
// src/core/campaignControls.ts
|
|
40963
40963
|
var normalizePhoneNumber = (phone) => phone.replace(/[\s()-]/g, "").trim();
|
|
40964
40964
|
var createInMemoryDNCList = (phones) => {
|
|
40965
40965
|
const set = new Set(phones.map(normalizePhoneNumber));
|
|
@@ -41043,7 +41043,7 @@ var summarizeVoiceCampaignDispositions = (record) => {
|
|
|
41043
41043
|
totalRecipients: record.recipients.length
|
|
41044
41044
|
};
|
|
41045
41045
|
};
|
|
41046
|
-
// src/backchannel.ts
|
|
41046
|
+
// src/core/backchannel.ts
|
|
41047
41047
|
var DEFAULT_CUES = [
|
|
41048
41048
|
{ text: "mm-hmm" },
|
|
41049
41049
|
{ text: "I see" },
|
|
@@ -41107,7 +41107,7 @@ var createVoiceBackchannelDriver = (options) => {
|
|
|
41107
41107
|
}
|
|
41108
41108
|
};
|
|
41109
41109
|
};
|
|
41110
|
-
// src/oauth2TokenSource.ts
|
|
41110
|
+
// src/core/oauth2TokenSource.ts
|
|
41111
41111
|
var createVoiceOAuth2TokenSource = (options) => {
|
|
41112
41112
|
const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
41113
41113
|
const refreshSkewMs = (options.refreshSkewSeconds ?? 60) * 1000;
|
|
@@ -41167,7 +41167,7 @@ var createVoiceOAuth2TokenSource = (options) => {
|
|
|
41167
41167
|
}
|
|
41168
41168
|
};
|
|
41169
41169
|
};
|
|
41170
|
-
// src/ivrPlan.ts
|
|
41170
|
+
// src/core/ivrPlan.ts
|
|
41171
41171
|
var speechMatchesPattern = (pattern, speech) => {
|
|
41172
41172
|
const normalized = speech.toLowerCase().trim();
|
|
41173
41173
|
if (pattern instanceof RegExp) {
|
|
@@ -41251,7 +41251,7 @@ var describeVoiceIVRPlan = (plan) => {
|
|
|
41251
41251
|
return lines.join(`
|
|
41252
41252
|
`);
|
|
41253
41253
|
};
|
|
41254
|
-
// src/callerMemory.ts
|
|
41254
|
+
// src/core/callerMemory.ts
|
|
41255
41255
|
var VOICE_CALLER_MEMORY_KEY = "caller-memory-snapshot";
|
|
41256
41256
|
var normalizeIdentifier = (value) => value.trim().replace(/[^a-zA-Z0-9+@._-]/g, "-").toLowerCase();
|
|
41257
41257
|
var buildVoiceCallerMemoryNamespace = (identity, prefix = "caller") => {
|
|
@@ -41342,7 +41342,7 @@ Return JSON only.`;
|
|
|
41342
41342
|
summary: typeof record.summary === "string" ? record.summary : ""
|
|
41343
41343
|
};
|
|
41344
41344
|
};
|
|
41345
|
-
// src/otelExporter.ts
|
|
41345
|
+
// src/core/otelExporter.ts
|
|
41346
41346
|
var SCOPE_NAME = "@absolutejs/voice";
|
|
41347
41347
|
var SPAN_KIND_INTERNAL = 1;
|
|
41348
41348
|
var STATUS_OK = 1;
|
|
@@ -41479,7 +41479,7 @@ var createVoiceOTELHTTPExporter = (options) => {
|
|
|
41479
41479
|
}
|
|
41480
41480
|
};
|
|
41481
41481
|
};
|
|
41482
|
-
// src/amdDetector.ts
|
|
41482
|
+
// src/core/amdDetector.ts
|
|
41483
41483
|
var createMonologueAMDDetector = (options = {}) => {
|
|
41484
41484
|
const minMonologueMs = options.minMonologueMs ?? 8000;
|
|
41485
41485
|
const reason = options.reason ?? "monologue-suspected-voicemail";
|
|
@@ -41509,7 +41509,7 @@ var createMonologueAMDDetector = (options = {}) => {
|
|
|
41509
41509
|
intervalMs: options.intervalMs ?? 1000
|
|
41510
41510
|
};
|
|
41511
41511
|
};
|
|
41512
|
-
// src/agentTools.ts
|
|
41512
|
+
// src/core/agentTools.ts
|
|
41513
41513
|
var createVoiceEndCallTool = (options = {}) => createVoiceAgentTool({
|
|
41514
41514
|
description: options.description ?? "End the call gracefully. Call this only when the conversation is complete or the caller asks to hang up.",
|
|
41515
41515
|
execute: async ({ api, args, context, session }) => {
|
|
@@ -41732,9 +41732,9 @@ var createVoiceApiRequestTool = (options) => {
|
|
|
41732
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)}.`)
|
|
41733
41733
|
});
|
|
41734
41734
|
};
|
|
41735
|
-
// src/voiceConfiguration.ts
|
|
41735
|
+
// src/core/voiceConfiguration.ts
|
|
41736
41736
|
var createVoiceConfiguration = (configuration) => configuration;
|
|
41737
|
-
// src/defineVoiceAssistant.ts
|
|
41737
|
+
// src/core/defineVoiceAssistant.ts
|
|
41738
41738
|
var DEFAULT_SPEECH_THRESHOLD2 = 0.015;
|
|
41739
41739
|
var DEFAULT_SILENCE_MS2 = 700;
|
|
41740
41740
|
var DEFAULT_TRANSCRIPT_STABILITY_MS2 = 200;
|
|
@@ -41803,7 +41803,7 @@ var defineVoiceAssistant = (definition) => {
|
|
|
41803
41803
|
}
|
|
41804
41804
|
};
|
|
41805
41805
|
};
|
|
41806
|
-
// src/callQuota.ts
|
|
41806
|
+
// src/core/callQuota.ts
|
|
41807
41807
|
var monthBucketKey = (epochMs) => {
|
|
41808
41808
|
const date = new Date(epochMs);
|
|
41809
41809
|
return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, "0")}`;
|
|
@@ -41901,7 +41901,7 @@ var createInMemoryVoiceCallQuota = (options) => {
|
|
|
41901
41901
|
}
|
|
41902
41902
|
};
|
|
41903
41903
|
};
|
|
41904
|
-
// src/routeAuth.ts
|
|
41904
|
+
// src/core/routeAuth.ts
|
|
41905
41905
|
import { Elysia as Elysia71 } from "elysia";
|
|
41906
41906
|
var createVoiceBearerAuthVerifier = (input) => {
|
|
41907
41907
|
const headerName = (input.headerName ?? "authorization").toLowerCase();
|
|
@@ -42112,7 +42112,7 @@ var formatVoiceCallPlayerTimestamp = (ms) => {
|
|
|
42112
42112
|
const remaining = seconds % 60;
|
|
42113
42113
|
return `${String(minutes).padStart(2, "0")}:${String(remaining).padStart(2, "0")}`;
|
|
42114
42114
|
};
|
|
42115
|
-
// src/phoneProvisioning.ts
|
|
42115
|
+
// src/core/phoneProvisioning.ts
|
|
42116
42116
|
var requireAuth = (input) => {
|
|
42117
42117
|
if (!input.accountSid || !input.authToken) {
|
|
42118
42118
|
throw new Error("Twilio provisioning requires accountSid + authToken");
|
|
@@ -42254,7 +42254,7 @@ var provisionTelnyxPhoneNumber = async (input) => {
|
|
|
42254
42254
|
raw: orderResult
|
|
42255
42255
|
};
|
|
42256
42256
|
};
|
|
42257
|
-
// src/webhookFanout.ts
|
|
42257
|
+
// src/core/webhookFanout.ts
|
|
42258
42258
|
var deliverOnce = async (input) => {
|
|
42259
42259
|
const startedAt = Date.now();
|
|
42260
42260
|
const timeoutMs = input.sink.timeoutMs ?? 1e4;
|
|
@@ -42407,7 +42407,7 @@ var BROWSER_NOISE_SUPPRESSOR_PRESETS = {
|
|
|
42407
42407
|
workletUrl
|
|
42408
42408
|
})
|
|
42409
42409
|
};
|
|
42410
|
-
// src/retention.ts
|
|
42410
|
+
// src/core/retention.ts
|
|
42411
42411
|
var defaultResolveAt = (event) => {
|
|
42412
42412
|
if (!event || typeof event !== "object")
|
|
42413
42413
|
return;
|
|
@@ -42460,7 +42460,7 @@ var createVoiceRetentionScheduler = (options) => {
|
|
|
42460
42460
|
}
|
|
42461
42461
|
};
|
|
42462
42462
|
};
|
|
42463
|
-
// src/vapiAdapter.ts
|
|
42463
|
+
// src/core/vapiAdapter.ts
|
|
42464
42464
|
var VAPI_BUILT_IN_VARIABLES = {
|
|
42465
42465
|
date: () => new Date().toISOString().slice(0, 10),
|
|
42466
42466
|
now: () => new Date().toISOString(),
|
|
@@ -42734,7 +42734,7 @@ var fromVapiAssistantConfig = (config, options) => {
|
|
|
42734
42734
|
unsupported
|
|
42735
42735
|
};
|
|
42736
42736
|
};
|
|
42737
|
-
// src/agentSquadContract.ts
|
|
42737
|
+
// src/core/agentSquadContract.ts
|
|
42738
42738
|
var normalizeIncludes = (value) => value.trim().toLowerCase();
|
|
42739
42739
|
var resolveOutcome4 = (result) => {
|
|
42740
42740
|
if (result.complete)
|
|
@@ -43038,7 +43038,7 @@ var evaluateVoiceAgentSquadContractEvidence = (reports, input = {}) => {
|
|
|
43038
43038
|
var assertVoiceAgentSquadContractEvidence = (reports, input = {}) => {
|
|
43039
43039
|
return assertVoiceEvidence("Voice agent squad contract evidence assertion failed", evaluateVoiceAgentSquadContractEvidence(reports, input));
|
|
43040
43040
|
};
|
|
43041
|
-
// src/phoneAgent.ts
|
|
43041
|
+
// src/core/phoneAgent.ts
|
|
43042
43042
|
import { Elysia as Elysia72 } from "elysia";
|
|
43043
43043
|
var defaultSetupPath = (provider) => `/api/voice/${provider}/setup`;
|
|
43044
43044
|
var defaultSmokePath = (provider) => `/api/voice/${provider}/smoke`;
|
|
@@ -43442,7 +43442,7 @@ var createVoicePhoneAgent = (options) => {
|
|
|
43442
43442
|
setupPath
|
|
43443
43443
|
};
|
|
43444
43444
|
};
|
|
43445
|
-
// src/fileStore.ts
|
|
43445
|
+
// src/core/fileStore.ts
|
|
43446
43446
|
import {
|
|
43447
43447
|
mkdir as mkdir5,
|
|
43448
43448
|
readFile as readFile2,
|
|
@@ -44071,7 +44071,7 @@ var createVoiceFileRecordingStore = (options) => {
|
|
|
44071
44071
|
};
|
|
44072
44072
|
return { get, list, put };
|
|
44073
44073
|
};
|
|
44074
|
-
// src/modelAdapters.ts
|
|
44074
|
+
// src/core/modelAdapters.ts
|
|
44075
44075
|
var isVoiceProviderRoutingPolicyPreset = (value) => value === "balanced" || value === "cost-cap" || value === "cost-first" || value === "latency-first" || value === "quality-first";
|
|
44076
44076
|
var resolveVoiceProviderRoutingPolicyPreset = (preset, options = {}) => {
|
|
44077
44077
|
switch (preset) {
|
|
@@ -45026,7 +45026,7 @@ var createGeminiVoiceAssistantModel = (options) => {
|
|
|
45026
45026
|
}
|
|
45027
45027
|
};
|
|
45028
45028
|
};
|
|
45029
|
-
// src/openaiTTS.ts
|
|
45029
|
+
// src/core/openaiTTS.ts
|
|
45030
45030
|
var OPENAI_PCM24_FORMAT = {
|
|
45031
45031
|
channels: 1,
|
|
45032
45032
|
container: "raw",
|
|
@@ -45160,7 +45160,7 @@ var createOpenAIVoiceTTS = (options) => {
|
|
|
45160
45160
|
}
|
|
45161
45161
|
};
|
|
45162
45162
|
};
|
|
45163
|
-
// src/providerRoutingContract.ts
|
|
45163
|
+
// src/core/providerRoutingContract.ts
|
|
45164
45164
|
var isRoutingEvent2 = (event) => Boolean(event && typeof event === "object" && "status" in event && "kind" in event && "sessionId" in event);
|
|
45165
45165
|
var normalizeEvents2 = (events) => (events.every(isRoutingEvent2) ? [...events] : listVoiceRoutingEvents(events)).sort((left, right) => left.at - right.at);
|
|
45166
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);
|
|
@@ -45299,7 +45299,7 @@ var evaluateVoiceProviderRoutingContractEvidence = (reports, input = {}) => {
|
|
|
45299
45299
|
var assertVoiceProviderRoutingContractEvidence = (reports, input = {}) => {
|
|
45300
45300
|
return assertVoiceEvidence("Voice provider routing contract evidence assertion failed", evaluateVoiceProviderRoutingContractEvidence(reports, input));
|
|
45301
45301
|
};
|
|
45302
|
-
// src/readinessProfiles.ts
|
|
45302
|
+
// src/core/readinessProfiles.ts
|
|
45303
45303
|
var profileSurfaceLabels = {
|
|
45304
45304
|
"meeting-recorder": {
|
|
45305
45305
|
bargeInReports: "barge-in proof configured",
|
|
@@ -45670,7 +45670,7 @@ var recommendVoiceReadinessProfile = (options) => {
|
|
|
45670
45670
|
scores
|
|
45671
45671
|
};
|
|
45672
45672
|
};
|
|
45673
|
-
// src/providerAdapters.ts
|
|
45673
|
+
// src/core/providerAdapters.ts
|
|
45674
45674
|
class VoiceIOProviderTimeoutError extends Error {
|
|
45675
45675
|
provider;
|
|
45676
45676
|
timeoutMs;
|
|
@@ -46087,7 +46087,7 @@ var createVoiceTTSProviderRouter = (options) => {
|
|
|
46087
46087
|
}
|
|
46088
46088
|
};
|
|
46089
46089
|
};
|
|
46090
|
-
// src/s3Store.ts
|
|
46090
|
+
// src/core/s3Store.ts
|
|
46091
46091
|
var encodeStoreId2 = (id) => `${encodeURIComponent(id)}.json`;
|
|
46092
46092
|
var normalizeKeyPrefix = (prefix) => prefix?.trim().replace(/^\/+|\/+$/g, "") ?? "voice/reviews";
|
|
46093
46093
|
var toReviewObjectKey = (prefix, id) => `${prefix}/${encodeStoreId2(id)}`;
|
|
@@ -46201,7 +46201,7 @@ var createVoiceS3RecordingStore = (options) => {
|
|
|
46201
46201
|
};
|
|
46202
46202
|
return { get, list, put };
|
|
46203
46203
|
};
|
|
46204
|
-
// src/memoryStore.ts
|
|
46204
|
+
// src/core/memoryStore.ts
|
|
46205
46205
|
var createVoiceMemoryStore = () => {
|
|
46206
46206
|
const sessions = new Map;
|
|
46207
46207
|
const get = async (id) => sessions.get(id);
|
|
@@ -46222,7 +46222,7 @@ var createVoiceMemoryStore = () => {
|
|
|
46222
46222
|
};
|
|
46223
46223
|
return { get, getOrCreate, list, remove, set };
|
|
46224
46224
|
};
|
|
46225
|
-
// src/opsRuntime.ts
|
|
46225
|
+
// src/core/opsRuntime.ts
|
|
46226
46226
|
var resolveTaskStores = (config) => {
|
|
46227
46227
|
if (!config.ops.tasks) {
|
|
46228
46228
|
throw new Error("Voice ops runtime task workers require ops.tasks to be configured.");
|
|
@@ -46410,7 +46410,7 @@ var createVoiceOpsRuntime = (config) => {
|
|
|
46410
46410
|
}
|
|
46411
46411
|
};
|
|
46412
46412
|
};
|
|
46413
|
-
// src/opsPresets.ts
|
|
46413
|
+
// src/core/opsPresets.ts
|
|
46414
46414
|
var PRESET_INPUTS2 = {
|
|
46415
46415
|
"collections-default": {
|
|
46416
46416
|
description: "Biases toward fast callback recovery, aggressive retry routing, and supervisor escalation for overdue debt or collections follow-up.",
|
|
@@ -46644,7 +46644,7 @@ var resolveVoiceOpsPreset = (name, overrides = {}) => {
|
|
|
46644
46644
|
taskPolicies: mergePolicies(preset.taskPolicies, overrides.taskPolicies)
|
|
46645
46645
|
};
|
|
46646
46646
|
};
|
|
46647
|
-
// src/correction.ts
|
|
46647
|
+
// src/core/correction.ts
|
|
46648
46648
|
var escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
46649
46649
|
var buildAliasMatcher = (alias) => new RegExp(`(?<![\\p{L}\\p{N}'])${escapeRegExp(alias)}(?![\\p{L}\\p{N}'])`, "giu");
|
|
46650
46650
|
var WORD_PATTERN = /[\p{L}\p{N}']+/gu;
|
|
@@ -46939,7 +46939,7 @@ var createRiskyTurnCorrectionHandler = (options = {}) => {
|
|
|
46939
46939
|
};
|
|
46940
46940
|
};
|
|
46941
46941
|
|
|
46942
|
-
// src/routing.ts
|
|
46942
|
+
// src/core/routing.ts
|
|
46943
46943
|
var resolveVoiceSTTRoutingStrategy = (goal = "best") => {
|
|
46944
46944
|
if (goal === "low-cost") {
|
|
46945
46945
|
return {
|
|
@@ -47901,7 +47901,7 @@ var runSTTAdapterBenchmarkSeries = async ({
|
|
|
47901
47901
|
});
|
|
47902
47902
|
};
|
|
47903
47903
|
|
|
47904
|
-
// src/multilingualProof.ts
|
|
47904
|
+
// src/core/multilingualProof.ts
|
|
47905
47905
|
var average3 = (values) => {
|
|
47906
47906
|
if (values.length === 0)
|
|
47907
47907
|
return 0;
|
|
@@ -48113,7 +48113,7 @@ var buildVoiceMultilingualProofReadinessCheck = (report, options = {}) => {
|
|
|
48113
48113
|
value: failedAdapters.length
|
|
48114
48114
|
};
|
|
48115
48115
|
};
|
|
48116
|
-
// src/costPredictor.ts
|
|
48116
|
+
// src/core/costPredictor.ts
|
|
48117
48117
|
var lookupRates2 = (priceBook, provider, model) => {
|
|
48118
48118
|
if (!provider)
|
|
48119
48119
|
return;
|
|
@@ -48197,7 +48197,7 @@ var compareVoiceCostScenarios = (input) => {
|
|
|
48197
48197
|
})
|
|
48198
48198
|
};
|
|
48199
48199
|
};
|
|
48200
|
-
// src/iceServers.ts
|
|
48200
|
+
// src/core/iceServers.ts
|
|
48201
48201
|
var toBase643 = (bytes) => {
|
|
48202
48202
|
if (typeof Buffer !== "undefined") {
|
|
48203
48203
|
return Buffer.from(bytes).toString("base64");
|
|
@@ -48258,7 +48258,7 @@ var createTwilioNTSIceServers = async (input) => {
|
|
|
48258
48258
|
username: entry.username
|
|
48259
48259
|
}));
|
|
48260
48260
|
};
|
|
48261
|
-
// src/holdAudio.ts
|
|
48261
|
+
// src/core/holdAudio.ts
|
|
48262
48262
|
var DEFAULT_CUES2 = [
|
|
48263
48263
|
{ text: "Let me look that up for you." },
|
|
48264
48264
|
{ text: "One moment while I check on that." },
|
|
@@ -48335,7 +48335,7 @@ var createVoiceHoldAudioDriver = (options) => {
|
|
|
48335
48335
|
}
|
|
48336
48336
|
};
|
|
48337
48337
|
};
|
|
48338
|
-
// src/promptInjectionGuard.ts
|
|
48338
|
+
// src/core/promptInjectionGuard.ts
|
|
48339
48339
|
var DEFAULT_VOICE_PROMPT_INJECTION_RULES = [
|
|
48340
48340
|
{
|
|
48341
48341
|
label: "ignore-prior-instructions",
|
|
@@ -48399,7 +48399,7 @@ var createVoicePromptInjectionGuard = (options = {}) => {
|
|
|
48399
48399
|
}
|
|
48400
48400
|
};
|
|
48401
48401
|
};
|
|
48402
|
-
// src/postCallSurvey.ts
|
|
48402
|
+
// src/core/postCallSurvey.ts
|
|
48403
48403
|
var DEFAULT_VOICE_POST_CALL_SURVEY_QUESTIONS = [
|
|
48404
48404
|
{
|
|
48405
48405
|
id: "nps",
|
|
@@ -48526,7 +48526,7 @@ var summarizeVoicePostCallSurveys = (responses) => {
|
|
|
48526
48526
|
sampleSize: ratings.length
|
|
48527
48527
|
};
|
|
48528
48528
|
};
|
|
48529
|
-
// src/dtmfCollector.ts
|
|
48529
|
+
// src/core/dtmfCollector.ts
|
|
48530
48530
|
var VOICE_DTMF_DIGITS = [
|
|
48531
48531
|
"0",
|
|
48532
48532
|
"1",
|
|
@@ -48663,7 +48663,7 @@ var validateVoiceDTMFLuhn = (digits) => {
|
|
|
48663
48663
|
}
|
|
48664
48664
|
return sum % 10 === 0;
|
|
48665
48665
|
};
|
|
48666
|
-
// src/dncRegistry.ts
|
|
48666
|
+
// src/core/dncRegistry.ts
|
|
48667
48667
|
var normalizePhone = (phone) => {
|
|
48668
48668
|
const trimmed = phone.trim();
|
|
48669
48669
|
if (!trimmed)
|
|
@@ -48773,7 +48773,7 @@ var importVoiceDNCFromCSV = (csv, options = {}) => {
|
|
|
48773
48773
|
}
|
|
48774
48774
|
return entries;
|
|
48775
48775
|
};
|
|
48776
|
-
// src/callingWindow.ts
|
|
48776
|
+
// src/core/callingWindow.ts
|
|
48777
48777
|
var DAY_INDEX = {
|
|
48778
48778
|
friday: 5,
|
|
48779
48779
|
monday: 1,
|
|
@@ -48917,7 +48917,7 @@ var VOICE_TCPA_DEFAULT_WINDOW = {
|
|
|
48917
48917
|
allowedDays: ["monday", "tuesday", "wednesday", "thursday", "friday"],
|
|
48918
48918
|
allowedHours: { end: "21:00", start: "08:00" }
|
|
48919
48919
|
};
|
|
48920
|
-
// src/callDisposition.ts
|
|
48920
|
+
// src/core/callDisposition.ts
|
|
48921
48921
|
var DEFAULT_VOICE_CALL_DISPOSITIONS = [
|
|
48922
48922
|
{
|
|
48923
48923
|
code: "sale",
|
|
@@ -49093,7 +49093,7 @@ var createVoiceCallDispositionTagger = (options = {}) => {
|
|
|
49093
49093
|
untag
|
|
49094
49094
|
};
|
|
49095
49095
|
};
|
|
49096
|
-
// src/retryPolicy.ts
|
|
49096
|
+
// src/core/retryPolicy.ts
|
|
49097
49097
|
var DEFAULT_RULES = [
|
|
49098
49098
|
{
|
|
49099
49099
|
action: "retry",
|
|
@@ -49161,7 +49161,7 @@ var createVoiceRetryPolicy = (options = {}) => {
|
|
|
49161
49161
|
}
|
|
49162
49162
|
};
|
|
49163
49163
|
};
|
|
49164
|
-
// src/campaignTemplate.ts
|
|
49164
|
+
// src/core/campaignTemplate.ts
|
|
49165
49165
|
var lookupPath = (scope, path) => {
|
|
49166
49166
|
const parts2 = path.split(".");
|
|
49167
49167
|
let cursor = scope;
|
|
@@ -49281,7 +49281,7 @@ var collectVoiceCampaignTemplateVariables = (template) => {
|
|
|
49281
49281
|
}
|
|
49282
49282
|
return Array.from(set);
|
|
49283
49283
|
};
|
|
49284
|
-
// src/whisperChannel.ts
|
|
49284
|
+
// src/core/whisperChannel.ts
|
|
49285
49285
|
var createVoiceWhisperChannel = (options) => {
|
|
49286
49286
|
const now = options.now ?? (() => Date.now());
|
|
49287
49287
|
const defaultRoute = options.defaultRoute ?? "agent-only";
|
|
@@ -49355,7 +49355,7 @@ var createVoiceWhisperChannel = (options) => {
|
|
|
49355
49355
|
}
|
|
49356
49356
|
};
|
|
49357
49357
|
};
|
|
49358
|
-
// src/liveCoach.ts
|
|
49358
|
+
// src/core/liveCoach.ts
|
|
49359
49359
|
var DEFAULT_TEMPLATES = {
|
|
49360
49360
|
correction: "Supervisor correction (do not repeat this verbatim; weave it into your next response): {{text}}",
|
|
49361
49361
|
hint: "Supervisor hint: {{text}}",
|
|
@@ -49438,7 +49438,7 @@ var createVoiceLiveCoach = (options) => {
|
|
|
49438
49438
|
}
|
|
49439
49439
|
};
|
|
49440
49440
|
};
|
|
49441
|
-
// src/transcriptAnnotator.ts
|
|
49441
|
+
// src/core/transcriptAnnotator.ts
|
|
49442
49442
|
var DEFAULT_VOICE_ANNOTATION_KIND_SEVERITY = {
|
|
49443
49443
|
"compliance-concern": "major",
|
|
49444
49444
|
custom: "info",
|
|
@@ -49516,7 +49516,7 @@ var createVoiceTranscriptAnnotator = (options) => {
|
|
|
49516
49516
|
summarize
|
|
49517
49517
|
};
|
|
49518
49518
|
};
|
|
49519
|
-
// src/supervisorPresence.ts
|
|
49519
|
+
// src/core/supervisorPresence.ts
|
|
49520
49520
|
var createVoiceSupervisorPresence = (options = {}) => {
|
|
49521
49521
|
const now = options.now ?? (() => Date.now());
|
|
49522
49522
|
const staleAfter = options.staleAfterMs ?? 30000;
|
|
@@ -49624,7 +49624,7 @@ var createVoiceSupervisorPresence = (options = {}) => {
|
|
|
49624
49624
|
}
|
|
49625
49625
|
};
|
|
49626
49626
|
};
|
|
49627
|
-
// src/supervisorPermissions.ts
|
|
49627
|
+
// src/core/supervisorPermissions.ts
|
|
49628
49628
|
var TIER_CAPABILITIES = {
|
|
49629
49629
|
annotate: ["monitor", "annotate"],
|
|
49630
49630
|
coach: ["monitor", "annotate", "coach"],
|
|
@@ -49715,7 +49715,7 @@ var createVoiceSupervisorPermissions = (options = {}) => {
|
|
|
49715
49715
|
};
|
|
49716
49716
|
};
|
|
49717
49717
|
var VOICE_SUPERVISOR_TIER_CAPABILITIES = TIER_CAPABILITIES;
|
|
49718
|
-
// src/calendarAdapter.ts
|
|
49718
|
+
// src/core/calendarAdapter.ts
|
|
49719
49719
|
var createVoiceInMemoryCalendarAdapter = (options) => {
|
|
49720
49720
|
const now = options.now ?? (() => Date.now());
|
|
49721
49721
|
const generateId = options.generateId ?? (() => `appt_${Math.random().toString(36).slice(2, 10)}`);
|
|
@@ -49800,7 +49800,7 @@ var createVoiceInMemoryCalendarAdapter = (options) => {
|
|
|
49800
49800
|
}
|
|
49801
49801
|
};
|
|
49802
49802
|
};
|
|
49803
|
-
// src/bookingFlow.ts
|
|
49803
|
+
// src/core/bookingFlow.ts
|
|
49804
49804
|
var createVoiceBookingFlow = (options) => {
|
|
49805
49805
|
const initial = {
|
|
49806
49806
|
proposedSlots: [],
|
|
@@ -49898,7 +49898,7 @@ var createVoiceBookingFlow = (options) => {
|
|
|
49898
49898
|
}
|
|
49899
49899
|
};
|
|
49900
49900
|
};
|
|
49901
|
-
// src/noShowPredictor.ts
|
|
49901
|
+
// src/core/noShowPredictor.ts
|
|
49902
49902
|
var clamp = (value, min = 0, max = 1) => Math.max(min, Math.min(max, value));
|
|
49903
49903
|
var scoreVoiceNoShowRisk = (input) => {
|
|
49904
49904
|
const now = input.now ?? (() => Date.now());
|
|
@@ -49967,7 +49967,7 @@ var summarizeVoiceNoShowVerdict = (verdict) => {
|
|
|
49967
49967
|
const top = verdict.drivers.slice(0, 2).map((d) => d.kind).join(", ");
|
|
49968
49968
|
return `${verdict.band} risk (${pct}%)${top ? ` \u2014 driven by ${top}` : ""}`;
|
|
49969
49969
|
};
|
|
49970
|
-
// src/reminderScheduler.ts
|
|
49970
|
+
// src/core/reminderScheduler.ts
|
|
49971
49971
|
var DEFAULT_VOICE_REMINDER_TRIGGERS = [
|
|
49972
49972
|
{
|
|
49973
49973
|
channel: "sms",
|
|
@@ -50080,7 +50080,7 @@ var createVoiceReminderScheduler = (options = {}) => {
|
|
|
50080
50080
|
}
|
|
50081
50081
|
};
|
|
50082
50082
|
};
|
|
50083
|
-
// src/callScorecard.ts
|
|
50083
|
+
// src/core/callScorecard.ts
|
|
50084
50084
|
var clampScore = (raw, max) => Math.max(0, Math.min(max, raw));
|
|
50085
50085
|
var buildVoiceCallScorecard = (input) => {
|
|
50086
50086
|
const now = input.now ?? (() => Date.now());
|
|
@@ -50182,7 +50182,7 @@ var DEFAULT_VOICE_SALES_RUBRIC = {
|
|
|
50182
50182
|
passingGrade: 0.75,
|
|
50183
50183
|
scaleMax: 5
|
|
50184
50184
|
};
|
|
50185
|
-
// src/aiScorecard.ts
|
|
50185
|
+
// src/core/aiScorecard.ts
|
|
50186
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.";
|
|
50187
50187
|
var buildPrompt2 = (input) => {
|
|
50188
50188
|
const { rubric } = input;
|
|
@@ -50288,7 +50288,7 @@ var createVoiceAIScorecard = (options) => {
|
|
|
50288
50288
|
}
|
|
50289
50289
|
};
|
|
50290
50290
|
};
|
|
50291
|
-
// src/agentPerformanceReport.ts
|
|
50291
|
+
// src/core/agentPerformanceReport.ts
|
|
50292
50292
|
var bucketKeyFor = (ms, bucket) => {
|
|
50293
50293
|
const date = new Date(ms);
|
|
50294
50294
|
const year = date.getUTCFullYear();
|
|
@@ -50398,7 +50398,7 @@ var buildVoiceAgentPerformanceReport = (input) => {
|
|
|
50398
50398
|
worstCriterion: ranked[0]?.criterionId ?? null
|
|
50399
50399
|
};
|
|
50400
50400
|
};
|
|
50401
|
-
// src/scorecardCalibration.ts
|
|
50401
|
+
// src/core/scorecardCalibration.ts
|
|
50402
50402
|
var normalize = (raw, scaleMax) => scaleMax === 0 ? 0 : raw / scaleMax;
|
|
50403
50403
|
var correlation = (xs, ys) => {
|
|
50404
50404
|
if (xs.length === 0 || xs.length !== ys.length)
|
|
@@ -50503,7 +50503,7 @@ var computeVoiceScorecardCalibration = (pairs, options = {}) => {
|
|
|
50503
50503
|
worstDivergences: divergences.sort((a, b) => Math.abs(b.normalizedGap) - Math.abs(a.normalizedGap)).slice(0, topN)
|
|
50504
50504
|
};
|
|
50505
50505
|
};
|
|
50506
|
-
// src/qualityDriftDetector.ts
|
|
50506
|
+
// src/core/qualityDriftDetector.ts
|
|
50507
50507
|
var severityFor = (delta, watch, regression) => {
|
|
50508
50508
|
if (delta <= -regression)
|
|
50509
50509
|
return "regression";
|
|
@@ -50583,7 +50583,7 @@ var detectVoiceQualityDrift = (input) => {
|
|
|
50583
50583
|
scope: { from: baselineFrom, to: cutoff }
|
|
50584
50584
|
};
|
|
50585
50585
|
};
|
|
50586
|
-
// src/pathway.ts
|
|
50586
|
+
// src/core/pathway.ts
|
|
50587
50587
|
var slotRefsInActions = (actions) => {
|
|
50588
50588
|
if (!actions)
|
|
50589
50589
|
return [];
|
|
@@ -50734,7 +50734,7 @@ var validateVoicePathway = (pathway) => {
|
|
|
50734
50734
|
};
|
|
50735
50735
|
var findVoicePathwayState = (pathway, id) => pathway.states.find((s) => s.id === id) ?? null;
|
|
50736
50736
|
var findVoicePathwaySlot = (pathway, id) => pathway.slots.find((s) => s.id === id) ?? null;
|
|
50737
|
-
// src/pathwayRuntime.ts
|
|
50737
|
+
// src/core/pathwayRuntime.ts
|
|
50738
50738
|
var evaluateCondition = (condition, slots) => {
|
|
50739
50739
|
switch (condition.kind) {
|
|
50740
50740
|
case "always":
|
|
@@ -50925,7 +50925,7 @@ var createVoicePathwayRuntime = (options) => {
|
|
|
50925
50925
|
tryTransition
|
|
50926
50926
|
};
|
|
50927
50927
|
};
|
|
50928
|
-
// src/pathwaySlotCollector.ts
|
|
50928
|
+
// src/core/pathwaySlotCollector.ts
|
|
50929
50929
|
var numberWords = {
|
|
50930
50930
|
eight: 8,
|
|
50931
50931
|
five: 5,
|
|
@@ -51132,7 +51132,7 @@ var createVoicePathwaySlotCollector = (options = {}) => {
|
|
|
51132
51132
|
}
|
|
51133
51133
|
};
|
|
51134
51134
|
};
|
|
51135
|
-
// src/pathwayCompiler.ts
|
|
51135
|
+
// src/core/pathwayCompiler.ts
|
|
51136
51136
|
var describeAction = (action) => {
|
|
51137
51137
|
switch (action.kind) {
|
|
51138
51138
|
case "say":
|
|
@@ -51287,7 +51287,7 @@ ${stateBlock}`
|
|
|
51287
51287
|
...options.introduction !== undefined ? { initialPrompt: options.introduction } : {}
|
|
51288
51288
|
};
|
|
51289
51289
|
};
|
|
51290
|
-
// src/pathwayVisualizer.ts
|
|
51290
|
+
// src/core/pathwayVisualizer.ts
|
|
51291
51291
|
var escapeMermaidLabel = (text) => text.replace(/[<>"]/gu, "").replace(/\|/gu, "/");
|
|
51292
51292
|
var conditionLabel = (condition) => {
|
|
51293
51293
|
switch (condition.kind) {
|
|
@@ -51383,7 +51383,7 @@ var visualizeVoicePathway = (pathway) => ({
|
|
|
51383
51383
|
mermaid: renderVoicePathwayMermaid(pathway),
|
|
51384
51384
|
text: renderVoicePathwayText(pathway)
|
|
51385
51385
|
});
|
|
51386
|
-
// src/pathwayGenerator.ts
|
|
51386
|
+
// src/core/pathwayGenerator.ts
|
|
51387
51387
|
var SYSTEM_PROMPT = `You design conversation pathways for voice agents as strict JSON.
|
|
51388
51388
|
|
|
51389
51389
|
A pathway is a state machine. Output ONLY a JSON object with this shape:
|
|
@@ -51496,7 +51496,7 @@ Return a corrected pathway JSON that fixes every error.`;
|
|
|
51496
51496
|
report: lastReport
|
|
51497
51497
|
};
|
|
51498
51498
|
};
|
|
51499
|
-
// src/crmContract.ts
|
|
51499
|
+
// src/core/crmContract.ts
|
|
51500
51500
|
var createVoiceCRMRegistry = (options) => {
|
|
51501
51501
|
const byVendor = new Map;
|
|
51502
51502
|
for (const contract of options.contracts) {
|
|
@@ -51515,7 +51515,7 @@ var createVoiceCRMRegistry = (options) => {
|
|
|
51515
51515
|
}
|
|
51516
51516
|
};
|
|
51517
51517
|
};
|
|
51518
|
-
// src/callerCRMLinker.ts
|
|
51518
|
+
// src/core/callerCRMLinker.ts
|
|
51519
51519
|
var cacheKeyFor = (identity, vendor) => {
|
|
51520
51520
|
const id = identity.externalId ?? identity.phone ?? identity.email ?? "anonymous";
|
|
51521
51521
|
return `${vendor}::${id}`;
|
|
@@ -51590,7 +51590,7 @@ var createVoiceCallerCRMLinker = (options) => {
|
|
|
51590
51590
|
resolve: resolve3
|
|
51591
51591
|
};
|
|
51592
51592
|
};
|
|
51593
|
-
// src/crmCallLogger.ts
|
|
51593
|
+
// src/core/crmCallLogger.ts
|
|
51594
51594
|
var createVoiceCRMCallLogger = (options) => {
|
|
51595
51595
|
const now = options.now ?? (() => Date.now());
|
|
51596
51596
|
const errorPolicy = options.errorPolicy ?? "swallow";
|