@absolutejs/voice 0.0.22-beta.45 → 0.0.22-beta.451
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4269 -603
- package/dist/agent.d.ts +67 -5
- package/dist/agentSquadContract.d.ts +98 -0
- package/dist/angular/index.d.ts +22 -3
- package/dist/angular/index.js +4660 -1140
- package/dist/angular/voice-agent-squad-status.service.d.ts +12 -0
- package/dist/angular/voice-call-debugger.service.d.ts +12 -0
- package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
- package/dist/angular/voice-controller.service.d.ts +3 -1
- package/dist/angular/voice-delivery-runtime.component.d.ts +17 -0
- package/dist/angular/voice-delivery-runtime.service.d.ts +16 -0
- package/dist/angular/voice-live-ops.service.d.ts +11 -0
- package/dist/angular/voice-ops-action-center.service.d.ts +13 -0
- package/dist/angular/voice-ops-status.component.d.ts +15 -0
- package/dist/angular/voice-ops-status.service.d.ts +12 -0
- package/dist/angular/voice-platform-coverage.service.d.ts +12 -0
- package/dist/angular/voice-profile-comparison.service.d.ts +12 -0
- package/dist/angular/voice-proof-trends.service.d.ts +12 -0
- package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
- package/dist/angular/voice-provider-contracts.service.d.ts +12 -0
- package/dist/angular/voice-provider-status.service.d.ts +2 -2
- package/dist/angular/voice-readiness-failures.service.d.ts +13 -0
- package/dist/angular/voice-routing-status.service.d.ts +11 -0
- package/dist/angular/voice-session-snapshot.service.d.ts +13 -0
- package/dist/angular/voice-stream.service.d.ts +4 -1
- package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
- package/dist/angular/voice-turn-latency.service.d.ts +13 -0
- package/dist/angular/voice-turn-quality.service.d.ts +12 -0
- package/dist/angular/voice-workflow-status.service.d.ts +12 -0
- package/dist/assistant.d.ts +11 -11
- package/dist/assistantHealth.d.ts +6 -6
- package/dist/assistantMemory.d.ts +3 -3
- package/dist/audioConditioning.d.ts +1 -1
- package/dist/audit.d.ts +131 -0
- package/dist/auditDeliveryRoutes.d.ts +85 -0
- package/dist/auditExport.d.ts +34 -0
- package/dist/auditRoutes.d.ts +66 -0
- package/dist/auditSinks.d.ts +151 -0
- package/dist/bargeInRoutes.d.ts +56 -0
- package/dist/browserCallProfiles.d.ts +120 -0
- package/dist/browserMediaRoutes.d.ts +62 -0
- package/dist/callDebugger.d.ts +66 -0
- package/dist/campaign.d.ts +794 -0
- package/dist/campaignDialers.d.ts +111 -0
- package/dist/client/actions.d.ts +95 -1
- package/dist/client/agentSquadStatus.d.ts +37 -0
- package/dist/client/agentSquadStatusWidget.d.ts +24 -0
- package/dist/client/audioPlayer.d.ts +2 -2
- package/dist/client/bargeInMonitor.d.ts +7 -0
- package/dist/client/browserMedia.d.ts +8 -0
- package/dist/client/callDebugger.d.ts +19 -0
- package/dist/client/callDebuggerWidget.d.ts +30 -0
- package/dist/client/campaignDialerProof.d.ts +23 -0
- package/dist/client/connection.d.ts +4 -3
- package/dist/client/controller.d.ts +1 -1
- package/dist/client/createVoiceStream.d.ts +1 -1
- package/dist/client/deliveryRuntime.d.ts +34 -0
- package/dist/client/deliveryRuntimeWidget.d.ts +37 -0
- package/dist/client/duplex.d.ts +2 -2
- package/dist/client/htmx.d.ts +1 -1
- package/dist/client/htmxBootstrap.js +967 -14
- package/dist/client/index.d.ts +96 -9
- package/dist/client/index.js +9953 -44
- package/dist/client/liveOps.d.ts +22 -0
- package/dist/client/liveOpsWidget.d.ts +23 -0
- package/dist/client/liveTurnLatency.d.ts +41 -0
- package/dist/client/microphone.d.ts +4 -4
- package/dist/client/opsActionCenter.d.ts +54 -0
- package/dist/client/opsActionCenterWidget.d.ts +29 -0
- package/dist/client/opsActionHistory.d.ts +19 -0
- package/dist/client/opsActionHistoryWidget.d.ts +11 -0
- package/dist/client/opsStatus.d.ts +19 -0
- package/dist/client/opsStatusWidget.d.ts +40 -0
- package/dist/client/platformCoverage.d.ts +19 -0
- package/dist/client/platformCoverageWidget.d.ts +37 -0
- package/dist/client/profileComparison.d.ts +19 -0
- package/dist/client/profileComparisonWidget.d.ts +41 -0
- package/dist/client/profileSwitchRecommendation.d.ts +19 -0
- package/dist/client/profileSwitchRecommendationWidget.d.ts +12 -0
- package/dist/client/proofTrends.d.ts +19 -0
- package/dist/client/proofTrendsWidget.d.ts +37 -0
- package/dist/client/providerCapabilities.d.ts +19 -0
- package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
- package/dist/client/providerContracts.d.ts +19 -0
- package/dist/client/providerContractsWidget.d.ts +37 -0
- package/dist/client/providerSimulationControls.d.ts +33 -0
- package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
- package/dist/client/providerStatus.d.ts +1 -1
- package/dist/client/providerStatusWidget.d.ts +32 -0
- package/dist/client/readinessFailures.d.ts +19 -0
- package/dist/client/readinessFailuresWidget.d.ts +42 -0
- package/dist/client/routingStatus.d.ts +19 -0
- package/dist/client/routingStatusWidget.d.ts +32 -0
- package/dist/client/sessionSnapshot.d.ts +21 -0
- package/dist/client/sessionSnapshotWidget.d.ts +33 -0
- package/dist/client/store.d.ts +1 -1
- package/dist/client/traceTimeline.d.ts +19 -0
- package/dist/client/traceTimelineWidget.d.ts +36 -0
- package/dist/client/turnLatency.d.ts +22 -0
- package/dist/client/turnLatencyWidget.d.ts +33 -0
- package/dist/client/turnQuality.d.ts +19 -0
- package/dist/client/turnQualityWidget.d.ts +32 -0
- package/dist/client/workflowStatus.d.ts +19 -0
- package/dist/competitiveCoverage.d.ts +141 -0
- package/dist/correction.d.ts +2 -2
- package/dist/dataControl.d.ts +180 -0
- package/dist/deliveryRuntime.d.ts +158 -0
- package/dist/deliverySinkRoutes.d.ts +117 -0
- package/dist/demoReadyRoutes.d.ts +98 -0
- package/dist/diagnosticsRoutes.d.ts +2 -2
- package/dist/evalRoutes.d.ts +11 -4
- package/dist/fileStore.d.ts +19 -7
- package/dist/generated/htmxBootstrapBundle.d.ts +1 -0
- package/dist/guardrails.d.ts +128 -0
- package/dist/handoff.d.ts +6 -6
- package/dist/handoffHealth.d.ts +5 -5
- package/dist/htmx.d.ts +1 -1
- package/dist/incidentBundle.d.ts +119 -0
- package/dist/incidentTimeline.d.ts +259 -0
- package/dist/index.d.ts +216 -70
- package/dist/index.js +35935 -6781
- package/dist/latencySlo.d.ts +56 -0
- package/dist/liveLatency.d.ts +78 -0
- package/dist/liveOps.d.ts +190 -0
- package/dist/logger.d.ts +1 -1
- package/dist/mediaPipelineRoutes.d.ts +117 -0
- package/dist/memoryStore.d.ts +1 -1
- package/dist/modelAdapters.d.ts +59 -7
- package/dist/observabilityExport.d.ts +501 -0
- package/dist/openaiTTS.d.ts +18 -0
- package/dist/operationalStatus.d.ts +87 -0
- package/dist/operationsRecord.d.ts +351 -0
- package/dist/ops.d.ts +12 -12
- package/dist/opsActionAuditRoutes.d.ts +99 -0
- package/dist/opsConsoleRoutes.d.ts +8 -5
- package/dist/opsPresets.d.ts +2 -2
- package/dist/opsRecovery.d.ts +137 -0
- package/dist/opsRuntime.d.ts +6 -6
- package/dist/opsSinks.d.ts +13 -13
- package/dist/opsStatus.d.ts +76 -0
- package/dist/opsStatusRoutes.d.ts +33 -0
- package/dist/opsWebhook.d.ts +6 -6
- package/dist/outcomeContract.d.ts +146 -0
- package/dist/outcomeRecipes.d.ts +4 -4
- package/dist/phoneAgent.d.ts +139 -0
- package/dist/phoneAgentProductionSmoke.d.ts +115 -0
- package/dist/platformCoverage.d.ts +91 -0
- package/dist/plugin.d.ts +2 -2
- package/dist/postCallAnalysis.d.ts +98 -0
- package/dist/postgresStore.d.ts +17 -6
- package/dist/presets.d.ts +3 -3
- package/dist/productionReadiness.d.ts +739 -0
- package/dist/profileSwitchRecommendation.d.ts +350 -0
- package/dist/proofAssertions.d.ts +32 -0
- package/dist/proofPack.d.ts +206 -0
- package/dist/proofRunner.d.ts +79 -0
- package/dist/proofTrends.d.ts +716 -0
- package/dist/providerAdapters.d.ts +16 -5
- package/dist/providerCapabilities.d.ts +92 -0
- package/dist/providerDecisionTraces.d.ts +130 -0
- package/dist/providerHealth.d.ts +3 -3
- package/dist/providerOrchestration.d.ts +109 -0
- package/dist/providerRouterTraces.d.ts +35 -0
- package/dist/providerRoutingContract.d.ts +71 -0
- package/dist/providerSlo.d.ts +142 -0
- package/dist/providerStackRecommendations.d.ts +187 -0
- package/dist/qualityRoutes.d.ts +4 -4
- package/dist/queue.d.ts +23 -14
- package/dist/react/VoiceAgentSquadStatus.d.ts +5 -0
- package/dist/react/VoiceCallDebuggerLaunch.d.ts +6 -0
- package/dist/react/VoiceDeliveryRuntime.d.ts +7 -0
- package/dist/react/VoiceOpsActionCenter.d.ts +5 -0
- package/dist/react/VoiceOpsStatus.d.ts +6 -0
- package/dist/react/VoicePlatformCoverage.d.ts +6 -0
- package/dist/react/VoiceProfileComparison.d.ts +6 -0
- package/dist/react/VoiceProfileSwitchRecommendation.d.ts +6 -0
- package/dist/react/VoiceProofTrends.d.ts +6 -0
- package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
- package/dist/react/VoiceProviderContracts.d.ts +6 -0
- package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
- package/dist/react/VoiceProviderStatus.d.ts +6 -0
- package/dist/react/VoiceReadinessFailures.d.ts +6 -0
- package/dist/react/VoiceRoutingStatus.d.ts +6 -0
- package/dist/react/VoiceSessionSnapshot.d.ts +6 -0
- package/dist/react/VoiceTraceTimeline.d.ts +6 -0
- package/dist/react/VoiceTurnLatency.d.ts +6 -0
- package/dist/react/VoiceTurnQuality.d.ts +6 -0
- package/dist/react/index.d.ts +43 -3
- package/dist/react/index.js +10698 -32
- package/dist/react/useVoiceAgentSquadStatus.d.ts +8 -0
- package/dist/react/useVoiceCallDebugger.d.ts +8 -0
- package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
- package/dist/react/useVoiceController.d.ts +4 -1
- package/dist/react/useVoiceDeliveryRuntime.d.ts +13 -0
- package/dist/react/useVoiceLiveOps.d.ts +9 -0
- package/dist/react/useVoiceOpsActionCenter.d.ts +11 -0
- package/dist/react/useVoiceOpsStatus.d.ts +8 -0
- package/dist/react/useVoicePlatformCoverage.d.ts +8 -0
- package/dist/react/useVoiceProfileComparison.d.ts +8 -0
- package/dist/react/useVoiceProfileSwitchRecommendation.d.ts +8 -0
- package/dist/react/useVoiceProofTrends.d.ts +8 -0
- package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
- package/dist/react/useVoiceProviderContracts.d.ts +8 -0
- package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
- package/dist/react/useVoiceProviderStatus.d.ts +1 -1
- package/dist/react/useVoiceReadinessFailures.d.ts +8 -0
- package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
- package/dist/react/useVoiceSessionSnapshot.d.ts +9 -0
- package/dist/react/useVoiceStream.d.ts +4 -1
- package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
- package/dist/react/useVoiceTurnLatency.d.ts +9 -0
- package/dist/react/useVoiceTurnQuality.d.ts +8 -0
- package/dist/react/useVoiceWorkflowStatus.d.ts +8 -0
- package/dist/readinessProfiles.d.ts +45 -0
- package/dist/realtimeChannel.d.ts +136 -0
- package/dist/realtimeProviderContracts.d.ts +133 -0
- package/dist/reconnectContract.d.ts +176 -0
- package/dist/resilienceRoutes.d.ts +45 -5
- package/dist/routing.d.ts +1 -1
- package/dist/runtimeOps.d.ts +3 -3
- package/dist/s3Store.d.ts +3 -3
- package/dist/session.d.ts +1 -1
- package/dist/sessionReplay.d.ts +19 -7
- package/dist/sessionSnapshot.d.ts +109 -0
- package/dist/simulationSuite.d.ts +143 -0
- package/dist/sloCalibration.d.ts +185 -0
- package/dist/sqliteStore.d.ts +17 -6
- package/dist/store.d.ts +1 -1
- package/dist/svelte/createVoiceAgentSquadStatus.d.ts +9 -0
- package/dist/svelte/createVoiceCallDebugger.d.ts +12 -0
- package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
- package/dist/svelte/createVoiceDeliveryRuntime.d.ts +11 -0
- package/dist/svelte/createVoiceLiveOps.d.ts +13 -0
- package/dist/svelte/createVoiceOpsActionCenter.d.ts +10 -0
- package/dist/svelte/createVoiceOpsStatus.d.ts +9 -0
- package/dist/svelte/createVoicePlatformCoverage.d.ts +7 -0
- package/dist/svelte/createVoiceProfileComparison.d.ts +7 -0
- package/dist/svelte/createVoiceProofTrends.d.ts +7 -0
- package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
- package/dist/svelte/createVoiceProviderContracts.d.ts +10 -0
- package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
- package/dist/svelte/createVoiceProviderStatus.d.ts +4 -2
- package/dist/svelte/createVoiceReadinessFailures.d.ts +7 -0
- package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
- package/dist/svelte/createVoiceSessionSnapshot.d.ts +13 -0
- package/dist/svelte/createVoiceStream.d.ts +1 -1
- package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
- package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
- package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
- package/dist/svelte/createVoiceWorkflowStatus.d.ts +8 -0
- package/dist/svelte/index.d.ts +23 -3
- package/dist/svelte/index.js +6436 -460
- package/dist/telephony/contract.d.ts +61 -0
- package/dist/telephony/matrix.d.ts +97 -0
- package/dist/telephony/plivo.d.ts +303 -0
- package/dist/telephony/response.d.ts +1 -1
- package/dist/telephony/security.d.ts +182 -0
- package/dist/telephony/telnyx.d.ts +291 -0
- package/dist/telephony/twilio.d.ts +147 -13
- package/dist/telephonyMediaRoutes.d.ts +72 -0
- package/dist/telephonyOutcome.d.ts +273 -0
- package/dist/testing/accuracy.d.ts +1 -1
- package/dist/testing/benchmark.d.ts +9 -9
- package/dist/testing/corrected.d.ts +5 -5
- package/dist/testing/duplex.d.ts +3 -3
- package/dist/testing/fixtures.d.ts +3 -3
- package/dist/testing/index.d.ts +13 -13
- package/dist/testing/index.js +5425 -185
- package/dist/testing/ioProviderSimulator.d.ts +5 -5
- package/dist/testing/providerSimulator.d.ts +5 -5
- package/dist/testing/review.d.ts +4 -4
- package/dist/testing/sessionBenchmark.d.ts +3 -3
- package/dist/testing/stt.d.ts +3 -3
- package/dist/testing/telephony.d.ts +25 -0
- package/dist/testing/tts.d.ts +1 -1
- package/dist/toolContract.d.ts +161 -0
- package/dist/toolRuntime.d.ts +50 -0
- package/dist/trace.d.ts +46 -7
- package/dist/traceDeliveryRoutes.d.ts +86 -0
- package/dist/traceTimeline.d.ts +97 -0
- package/dist/turnDetection.d.ts +1 -1
- package/dist/turnLatency.d.ts +95 -0
- package/dist/turnProfiles.d.ts +2 -2
- package/dist/turnQuality.d.ts +94 -0
- package/dist/types.d.ts +236 -80
- package/dist/voiceMonitoring.d.ts +444 -0
- package/dist/vue/VoiceCallDebuggerLaunch.d.ts +68 -0
- package/dist/vue/VoiceDeliveryRuntime.d.ts +30 -0
- package/dist/vue/VoiceOpsActionCenter.d.ts +13 -0
- package/dist/vue/VoiceOpsStatus.d.ts +30 -0
- package/dist/vue/VoicePlatformCoverage.d.ts +23 -0
- package/dist/vue/VoiceProofTrends.d.ts +21 -0
- package/dist/vue/VoiceProviderCapabilities.d.ts +51 -0
- package/dist/vue/VoiceProviderContracts.d.ts +21 -0
- package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
- package/dist/vue/VoiceProviderStatus.d.ts +51 -0
- package/dist/vue/VoiceReadinessFailures.d.ts +21 -0
- package/dist/vue/VoiceRoutingStatus.d.ts +51 -0
- package/dist/vue/VoiceSessionSnapshot.d.ts +68 -0
- package/dist/vue/VoiceTurnLatency.d.ts +69 -0
- package/dist/vue/VoiceTurnQuality.d.ts +51 -0
- package/dist/vue/index.d.ts +38 -3
- package/dist/vue/index.js +10142 -56
- package/dist/vue/useVoiceAgentSquadStatus.d.ts +9 -0
- package/dist/vue/useVoiceCallDebugger.d.ts +10 -0
- package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
- package/dist/vue/useVoiceController.d.ts +4 -2
- package/dist/vue/useVoiceDeliveryRuntime.d.ts +13 -0
- package/dist/vue/useVoiceLiveOps.d.ts +9 -0
- package/dist/vue/useVoiceOpsActionCenter.d.ts +11 -0
- package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
- package/dist/vue/useVoicePlatformCoverage.d.ts +9 -0
- package/dist/vue/useVoiceProfileComparison.d.ts +9 -0
- package/dist/vue/useVoiceProofTrends.d.ts +9 -0
- package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
- package/dist/vue/useVoiceProviderContracts.d.ts +9 -0
- package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
- package/dist/vue/useVoiceProviderStatus.d.ts +3 -3
- package/dist/vue/useVoiceReadinessFailures.d.ts +943 -0
- package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
- package/dist/vue/useVoiceSessionSnapshot.d.ts +10 -0
- package/dist/vue/useVoiceStream.d.ts +5 -2
- package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
- package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
- package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
- package/dist/vue/useVoiceWorkflowStatus.d.ts +9 -0
- package/dist/workflowContract.d.ts +91 -0
- package/fixtures/manifest.json +356 -197
- package/package.json +260 -256
package/dist/types.d.ts
CHANGED
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
import type { SessionStore } from
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
1
|
+
import type { SessionStore } from "@absolutejs/absolute";
|
|
2
|
+
import type { MediaWebRTCStatsCollector, MediaWebRTCStatsReport, MediaWebRTCStatsReportInput, MediaWebRTCStreamContinuityInput, MediaWebRTCStreamContinuityReport } from "@absolutejs/media";
|
|
3
|
+
import type { VoiceOpsDispositionTaskPolicies, VoiceOpsTaskAssignmentRule, VoiceOpsTaskAssignmentRules, VoiceIntegrationWebhookConfig, StoredVoiceIntegrationEvent, StoredVoiceOpsTask, VoiceIntegrationEventStore, VoiceOpsTaskPolicy, VoiceOpsTask, VoiceOpsTaskStore } from "./ops";
|
|
4
|
+
import type { VoiceIntegrationSink } from "./opsSinks";
|
|
5
|
+
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact, VoiceCallReviewStore } from "./testing/review";
|
|
6
|
+
import type { VoiceTraceEventStore } from "./trace";
|
|
7
|
+
import type { VoiceLiveOpsControlState } from "./liveOps";
|
|
8
|
+
import type { VoiceAuditActor, VoiceAuditEventStore } from "./audit";
|
|
9
|
+
import type { VoiceProfileSwitchGuardDecision, VoiceProfileSwitchGuardMode, VoiceProfileSwitchObservedSignals } from "./profileSwitchRecommendation";
|
|
10
|
+
import type { VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileHistoryReport } from "./proofTrends";
|
|
6
11
|
export type AudioFormat = {
|
|
7
|
-
container:
|
|
8
|
-
encoding:
|
|
12
|
+
container: "raw";
|
|
13
|
+
encoding: "alaw" | "mulaw" | "pcm_s16le";
|
|
9
14
|
sampleRateHz: number;
|
|
10
15
|
channels: 1 | 2;
|
|
11
16
|
};
|
|
12
17
|
export type AudioChunk = ArrayBuffer | ArrayBufferView;
|
|
13
18
|
export type VoiceLanguageStrategy = {
|
|
14
|
-
mode:
|
|
19
|
+
mode: "auto-detect";
|
|
15
20
|
allowedLanguages?: string[];
|
|
16
21
|
} | {
|
|
17
|
-
mode:
|
|
22
|
+
mode: "fixed";
|
|
18
23
|
primaryLanguage: string;
|
|
19
24
|
secondaryLanguages?: string[];
|
|
20
25
|
} | {
|
|
21
|
-
mode:
|
|
26
|
+
mode: "allow-switching";
|
|
22
27
|
primaryLanguage?: string;
|
|
23
28
|
secondaryLanguages: string[];
|
|
24
29
|
};
|
|
@@ -28,7 +33,7 @@ export type VoicePhraseHint = {
|
|
|
28
33
|
boost?: number;
|
|
29
34
|
metadata?: Record<string, unknown>;
|
|
30
35
|
};
|
|
31
|
-
export type VoiceCorrectionRiskTier =
|
|
36
|
+
export type VoiceCorrectionRiskTier = "safe" | "balanced" | "risky";
|
|
32
37
|
export type VoiceDomainTerm = {
|
|
33
38
|
text: string;
|
|
34
39
|
aliases?: string[];
|
|
@@ -65,7 +70,7 @@ export type VoiceTranscriptQuality = {
|
|
|
65
70
|
fallback?: VoiceFallbackDiagnostics;
|
|
66
71
|
partialTranscriptCount: number;
|
|
67
72
|
selectedTranscriptCount: number;
|
|
68
|
-
source:
|
|
73
|
+
source: "fallback" | "primary";
|
|
69
74
|
};
|
|
70
75
|
export type VoiceTurnCorrectionDiagnostics = {
|
|
71
76
|
attempted: boolean;
|
|
@@ -83,7 +88,7 @@ export type VoiceTurnCostEstimate = {
|
|
|
83
88
|
primaryAudioMs: number;
|
|
84
89
|
totalBillableAudioMs: number;
|
|
85
90
|
};
|
|
86
|
-
export type VoiceFallbackSelectionReason =
|
|
91
|
+
export type VoiceFallbackSelectionReason = "fallback-empty" | "primary-empty" | "word-count-margin" | "confidence-margin" | "word-count-tiebreak" | "kept-primary";
|
|
87
92
|
export type VoiceFallbackDiagnostics = {
|
|
88
93
|
attempted: boolean;
|
|
89
94
|
fallbackConfidence?: number;
|
|
@@ -94,31 +99,31 @@ export type VoiceFallbackDiagnostics = {
|
|
|
94
99
|
primaryWordCount: number;
|
|
95
100
|
selected: boolean;
|
|
96
101
|
selectionReason: VoiceFallbackSelectionReason;
|
|
97
|
-
trigger:
|
|
102
|
+
trigger: "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
|
|
98
103
|
};
|
|
99
104
|
export type VoicePartialEvent = {
|
|
100
|
-
type:
|
|
105
|
+
type: "partial";
|
|
101
106
|
transcript: Transcript;
|
|
102
107
|
receivedAt: number;
|
|
103
108
|
};
|
|
104
109
|
export type VoiceFinalEvent = {
|
|
105
|
-
type:
|
|
110
|
+
type: "final";
|
|
106
111
|
transcript: Transcript;
|
|
107
112
|
receivedAt: number;
|
|
108
113
|
};
|
|
109
114
|
export type VoiceEndOfTurnEvent = {
|
|
110
|
-
type:
|
|
111
|
-
reason:
|
|
115
|
+
type: "endOfTurn";
|
|
116
|
+
reason: "vendor" | "silence" | "manual";
|
|
112
117
|
receivedAt: number;
|
|
113
118
|
};
|
|
114
119
|
export type VoiceErrorEvent = {
|
|
115
|
-
type:
|
|
120
|
+
type: "error";
|
|
116
121
|
error: Error;
|
|
117
122
|
recoverable: boolean;
|
|
118
123
|
code?: string;
|
|
119
124
|
};
|
|
120
125
|
export type VoiceCloseEvent = {
|
|
121
|
-
type:
|
|
126
|
+
type: "close";
|
|
122
127
|
code?: number;
|
|
123
128
|
reason?: string;
|
|
124
129
|
recoverable?: boolean;
|
|
@@ -144,11 +149,11 @@ export type STTAdapterOpenOptions = {
|
|
|
144
149
|
signal?: AbortSignal;
|
|
145
150
|
};
|
|
146
151
|
export type STTAdapter<TOptions extends STTAdapterOpenOptions = STTAdapterOpenOptions> = {
|
|
147
|
-
kind:
|
|
152
|
+
kind: "stt";
|
|
148
153
|
open: (options: TOptions) => Promise<STTAdapterSession> | STTAdapterSession;
|
|
149
154
|
};
|
|
150
155
|
export type TTSAudioEvent = {
|
|
151
|
-
type:
|
|
156
|
+
type: "audio";
|
|
152
157
|
chunk: AudioChunk;
|
|
153
158
|
format: AudioFormat;
|
|
154
159
|
receivedAt: number;
|
|
@@ -169,7 +174,7 @@ export type TTSAdapterOpenOptions = {
|
|
|
169
174
|
signal?: AbortSignal;
|
|
170
175
|
};
|
|
171
176
|
export type TTSAdapter<TOptions extends TTSAdapterOpenOptions = TTSAdapterOpenOptions> = {
|
|
172
|
-
kind:
|
|
177
|
+
kind: "tts";
|
|
173
178
|
open: (options: TOptions) => Promise<TTSAdapterSession> | TTSAdapterSession;
|
|
174
179
|
};
|
|
175
180
|
export type RealtimeSessionEventMap = STTSessionEventMap & {
|
|
@@ -189,10 +194,19 @@ export type RealtimeAdapterOpenOptions = {
|
|
|
189
194
|
signal?: AbortSignal;
|
|
190
195
|
};
|
|
191
196
|
export type RealtimeAdapter<TOptions extends RealtimeAdapterOpenOptions = RealtimeAdapterOpenOptions> = {
|
|
192
|
-
kind:
|
|
197
|
+
kind: "realtime";
|
|
193
198
|
open: (options: TOptions) => Promise<RealtimeAdapterSession> | RealtimeAdapterSession;
|
|
194
199
|
};
|
|
195
|
-
export type VoiceSessionStatus =
|
|
200
|
+
export type VoiceSessionStatus = "active" | "reconnecting" | "completed" | "failed";
|
|
201
|
+
export type VoiceReconnectClientStatus = "idle" | "reconnecting" | "resumed" | "exhausted";
|
|
202
|
+
export type VoiceReconnectClientState = {
|
|
203
|
+
attempts: number;
|
|
204
|
+
lastDisconnectAt?: number;
|
|
205
|
+
lastResumedAt?: number;
|
|
206
|
+
maxAttempts: number;
|
|
207
|
+
nextAttemptAt?: number;
|
|
208
|
+
status: VoiceReconnectClientStatus;
|
|
209
|
+
};
|
|
196
210
|
export type VoiceTurnRecord<TResult = unknown> = {
|
|
197
211
|
id: string;
|
|
198
212
|
text: string;
|
|
@@ -253,10 +267,10 @@ export type VoiceSessionSummary = {
|
|
|
253
267
|
status: VoiceSessionStatus;
|
|
254
268
|
turnCount: number;
|
|
255
269
|
};
|
|
256
|
-
export type VoiceCallDisposition =
|
|
270
|
+
export type VoiceCallDisposition = "completed" | "transferred" | "escalated" | "voicemail" | "no-answer" | "failed" | "closed";
|
|
257
271
|
export type VoiceCallLifecycleEvent = {
|
|
258
272
|
at: number;
|
|
259
|
-
type:
|
|
273
|
+
type: "start" | "end" | "transfer" | "escalation" | "voicemail" | "no-answer";
|
|
260
274
|
disposition?: VoiceCallDisposition;
|
|
261
275
|
metadata?: Record<string, unknown>;
|
|
262
276
|
reason?: string;
|
|
@@ -269,8 +283,8 @@ export type VoiceCallLifecycleState = {
|
|
|
269
283
|
lastEventAt: number;
|
|
270
284
|
startedAt: number;
|
|
271
285
|
};
|
|
272
|
-
export type VoiceHandoffAction =
|
|
273
|
-
export type VoiceHandoffStatus =
|
|
286
|
+
export type VoiceHandoffAction = "escalate" | "no-answer" | "transfer" | "voicemail";
|
|
287
|
+
export type VoiceHandoffStatus = "delivered" | "failed" | "skipped";
|
|
274
288
|
export type VoiceHandoffResult = {
|
|
275
289
|
deliveredAt?: number;
|
|
276
290
|
deliveredTo?: string;
|
|
@@ -278,7 +292,7 @@ export type VoiceHandoffResult = {
|
|
|
278
292
|
metadata?: Record<string, unknown>;
|
|
279
293
|
status: VoiceHandoffStatus;
|
|
280
294
|
};
|
|
281
|
-
export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus |
|
|
295
|
+
export type VoiceHandoffDeliveryQueueStatus = VoiceHandoffStatus | "pending";
|
|
282
296
|
export type StoredVoiceHandoffDelivery<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
283
297
|
action: VoiceHandoffAction;
|
|
284
298
|
context: TContext;
|
|
@@ -326,7 +340,7 @@ export type VoiceHandoffConfig<TContext = unknown, TSession extends VoiceSession
|
|
|
326
340
|
adapters: VoiceHandoffAdapter<TContext, TSession, TResult>[];
|
|
327
341
|
deliveryQueue?: VoiceHandoffDeliveryStore<StoredVoiceHandoffDelivery<TContext, TSession, TResult>>;
|
|
328
342
|
enqueueOnly?: boolean;
|
|
329
|
-
failMode?:
|
|
343
|
+
failMode?: "record" | "throw";
|
|
330
344
|
};
|
|
331
345
|
export type VoiceSessionStore<TSession extends VoiceSessionRecord = VoiceSessionRecord> = SessionStore<TSession, VoiceSessionSummary>;
|
|
332
346
|
export type VoiceLogger = {
|
|
@@ -336,15 +350,15 @@ export type VoiceLogger = {
|
|
|
336
350
|
error?: (message: string, meta?: Record<string, unknown>) => void;
|
|
337
351
|
};
|
|
338
352
|
export type VoiceReconnectConfig = {
|
|
339
|
-
strategy?:
|
|
353
|
+
strategy?: "resume-last-turn" | "restart" | "fail";
|
|
340
354
|
timeout?: number;
|
|
341
355
|
maxAttempts?: number;
|
|
342
356
|
};
|
|
343
|
-
export type VoiceRuntimePreset =
|
|
344
|
-
export type VoiceSTTLifecycle =
|
|
345
|
-
export type VoiceTurnProfile =
|
|
346
|
-
export type VoiceTurnQualityProfile =
|
|
347
|
-
export type VoiceTurnFallbackTrigger =
|
|
357
|
+
export type VoiceRuntimePreset = "default" | "chat" | "guided-intake" | "dictation" | "noisy-room" | "pstn-balanced" | "pstn-fast" | "reliability";
|
|
358
|
+
export type VoiceSTTLifecycle = "continuous" | "turn-scoped";
|
|
359
|
+
export type VoiceTurnProfile = "fast" | "balanced" | "long-form";
|
|
360
|
+
export type VoiceTurnQualityProfile = "general" | "accent-heavy" | "noisy-room" | "short-command";
|
|
361
|
+
export type VoiceTurnFallbackTrigger = "empty-turn" | "low-confidence" | "empty-or-low-confidence" | "always";
|
|
348
362
|
export type VoiceSTTFallbackConfig = {
|
|
349
363
|
adapter: STTAdapter;
|
|
350
364
|
trigger?: VoiceTurnFallbackTrigger;
|
|
@@ -401,7 +415,7 @@ export type VoiceSessionHandle<TContext = unknown, TSession extends VoiceSession
|
|
|
401
415
|
id: string;
|
|
402
416
|
connect: (socket: VoiceSocket) => Promise<void>;
|
|
403
417
|
receiveAudio: (audio: AudioChunk) => Promise<void>;
|
|
404
|
-
commitTurn: (reason?: VoiceEndOfTurnEvent[
|
|
418
|
+
commitTurn: (reason?: VoiceEndOfTurnEvent["reason"]) => Promise<void>;
|
|
405
419
|
disconnect: (event?: VoiceCloseEvent) => Promise<void>;
|
|
406
420
|
complete: (result?: TResult) => Promise<void>;
|
|
407
421
|
escalate: (input: {
|
|
@@ -475,6 +489,10 @@ export type VoiceLexiconResolver<TContext = unknown> = (input: {
|
|
|
475
489
|
}) => Promise<VoiceLexiconEntry[] | void> | VoiceLexiconEntry[] | void;
|
|
476
490
|
export type VoiceOnTurnObjectHandler<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = (input: {
|
|
477
491
|
context: TContext;
|
|
492
|
+
liveOps?: {
|
|
493
|
+
control: VoiceLiveOpsControlState;
|
|
494
|
+
injectedInstruction?: string;
|
|
495
|
+
};
|
|
478
496
|
session: TSession;
|
|
479
497
|
turn: VoiceTurnRecord;
|
|
480
498
|
api: VoiceSessionHandle<TContext, TSession, TResult>;
|
|
@@ -559,7 +577,7 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
|
|
|
559
577
|
disposition: VoiceCallDisposition;
|
|
560
578
|
review: StoredVoiceCallReviewArtifact;
|
|
561
579
|
session: TSession;
|
|
562
|
-
}) => Promise<Omit<VoiceOpsTask,
|
|
580
|
+
}) => Promise<Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void> | Omit<VoiceOpsTask, "id"> | VoiceOpsTask | StoredVoiceOpsTask | null | void;
|
|
563
581
|
resolveTaskPolicy?: (input: {
|
|
564
582
|
api: VoiceSessionHandle<TContext, TSession, TResult>;
|
|
565
583
|
context: TContext;
|
|
@@ -596,7 +614,37 @@ export type VoiceRuntimeOpsConfig<TContext = unknown, TSession extends VoiceSess
|
|
|
596
614
|
tasks?: VoiceOpsTaskStore;
|
|
597
615
|
webhook?: VoiceIntegrationWebhookConfig;
|
|
598
616
|
};
|
|
599
|
-
export type
|
|
617
|
+
export type VoiceLiveOpsRuntimeConfig = {
|
|
618
|
+
getControl: (sessionId: string) => Promise<VoiceLiveOpsControlState | null | undefined> | VoiceLiveOpsControlState | null | undefined;
|
|
619
|
+
};
|
|
620
|
+
export type VoiceProfileSwitchGuardResolverInput<TContext = unknown> = {
|
|
621
|
+
context: TContext;
|
|
622
|
+
scenarioId?: string;
|
|
623
|
+
sessionId: string;
|
|
624
|
+
};
|
|
625
|
+
export type VoicePluginProfileSwitchGuardConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
626
|
+
actor?: VoiceAuditActor;
|
|
627
|
+
allowedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
|
|
628
|
+
audit?: VoiceAuditEventStore;
|
|
629
|
+
blockedProfileIds?: string[] | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string[] | undefined> | string[] | undefined);
|
|
630
|
+
currentProfileId?: string | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<string | undefined> | string | undefined);
|
|
631
|
+
defaultProfileId?: string;
|
|
632
|
+
defaults: VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport> | VoiceRealCallProfileDefaultsReport | VoiceRealCallProfileHistoryReport);
|
|
633
|
+
metadata?: Record<string, unknown> | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<Record<string, unknown> | undefined> | Record<string, unknown> | undefined);
|
|
634
|
+
minConfidence?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
|
|
635
|
+
maxAutoSwitchesPerSession?: number | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<number | undefined> | number | undefined);
|
|
636
|
+
mode?: VoiceProfileSwitchGuardMode | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchGuardMode | undefined> | VoiceProfileSwitchGuardMode | undefined);
|
|
637
|
+
observed?: VoiceProfileSwitchObservedSignals | ((input: VoiceProfileSwitchGuardResolverInput<TContext>) => Promise<VoiceProfileSwitchObservedSignals | undefined> | VoiceProfileSwitchObservedSignals | undefined);
|
|
638
|
+
onDecision?: (input: {
|
|
639
|
+
context: TContext;
|
|
640
|
+
decision: VoiceProfileSwitchGuardDecision;
|
|
641
|
+
scenarioId?: string;
|
|
642
|
+
sessionId: string;
|
|
643
|
+
}) => Promise<void> | void;
|
|
644
|
+
sessionMetadataKey?: string | false;
|
|
645
|
+
trace?: false | VoiceTraceEventStore;
|
|
646
|
+
};
|
|
647
|
+
export type VoiceNormalizedRouteConfig<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = Omit<VoiceRouteConfig<TContext, TSession, TResult>, "onTurn"> & {
|
|
600
648
|
onTurn: VoiceOnTurnObjectHandler<TContext, TSession, TResult>;
|
|
601
649
|
};
|
|
602
650
|
export type VoiceScenario = {
|
|
@@ -616,9 +664,11 @@ export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionR
|
|
|
616
664
|
lexicon?: VoiceLexiconEntry[] | VoiceLexiconResolver<TContext>;
|
|
617
665
|
phraseHints?: VoicePhraseHint[] | VoicePhraseHintResolver<TContext>;
|
|
618
666
|
preset?: VoiceRuntimePreset;
|
|
619
|
-
stt
|
|
667
|
+
stt?: STTAdapter;
|
|
620
668
|
sttFallback?: VoiceSTTFallbackConfig;
|
|
621
669
|
sttLifecycle?: VoiceSTTLifecycle;
|
|
670
|
+
realtime?: RealtimeAdapter;
|
|
671
|
+
realtimeInputFormat?: AudioFormat;
|
|
622
672
|
tts?: TTSAdapter;
|
|
623
673
|
session: VoiceSessionStore<NoInfer<TSession>>;
|
|
624
674
|
reconnect?: VoiceReconnectConfig;
|
|
@@ -628,6 +678,8 @@ export type VoicePluginConfig<TContext = unknown, TSession extends VoiceSessionR
|
|
|
628
678
|
htmx?: boolean | VoiceHTMXConfig<TSession, NoInfer<TResult>>;
|
|
629
679
|
handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
|
|
630
680
|
ops?: VoiceRuntimeOpsConfig<TContext, TSession, TResult>;
|
|
681
|
+
liveOps?: VoiceLiveOpsRuntimeConfig;
|
|
682
|
+
profileSwitchGuard?: VoicePluginProfileSwitchGuardConfig<TContext, TSession, TResult>;
|
|
631
683
|
trace?: VoiceTraceEventStore;
|
|
632
684
|
} & VoiceRouteConfig<TContext, TSession, TResult>;
|
|
633
685
|
export type CreateVoiceSessionOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = {
|
|
@@ -635,7 +687,9 @@ export type CreateVoiceSessionOptions<TContext = unknown, TSession extends Voice
|
|
|
635
687
|
id: string;
|
|
636
688
|
context: TContext;
|
|
637
689
|
socket: VoiceSocket;
|
|
638
|
-
stt
|
|
690
|
+
stt?: STTAdapter;
|
|
691
|
+
realtime?: RealtimeAdapter;
|
|
692
|
+
realtimeInputFormat?: AudioFormat;
|
|
639
693
|
tts?: TTSAdapter;
|
|
640
694
|
languageStrategy?: VoiceLanguageStrategy;
|
|
641
695
|
lexicon?: VoiceLexiconEntry[];
|
|
@@ -644,96 +698,136 @@ export type CreateVoiceSessionOptions<TContext = unknown, TSession extends Voice
|
|
|
644
698
|
trace?: VoiceTraceEventStore;
|
|
645
699
|
reconnect: Required<VoiceReconnectConfig>;
|
|
646
700
|
phraseHints?: VoicePhraseHint[];
|
|
701
|
+
sessionMetadata?: Record<string, unknown>;
|
|
647
702
|
scenarioId?: string;
|
|
648
703
|
sttLifecycle: VoiceSTTLifecycle;
|
|
649
704
|
turnDetection: VoiceResolvedTurnDetectionConfig;
|
|
650
705
|
audioConditioning?: VoiceResolvedAudioConditioningConfig;
|
|
651
706
|
handoff?: VoiceHandoffConfig<TContext, TSession, TResult>;
|
|
707
|
+
liveOps?: VoiceLiveOpsRuntimeConfig;
|
|
652
708
|
route: VoiceNormalizedRouteConfig<TContext, TSession, TResult>;
|
|
653
709
|
logger?: VoiceLogger;
|
|
654
710
|
};
|
|
655
711
|
export type CreateVoiceSession = <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
|
|
656
712
|
export type VoiceClientStartMessage = {
|
|
657
|
-
type:
|
|
713
|
+
type: "start";
|
|
658
714
|
sessionId?: string;
|
|
659
715
|
scenarioId?: string;
|
|
660
716
|
};
|
|
661
717
|
export type VoiceClientEndTurnMessage = {
|
|
662
|
-
type:
|
|
718
|
+
type: "end_turn";
|
|
663
719
|
};
|
|
664
720
|
export type VoiceClientCloseMessage = {
|
|
665
|
-
type:
|
|
721
|
+
type: "close";
|
|
666
722
|
reason?: string;
|
|
667
723
|
};
|
|
668
724
|
export type VoiceClientCallControlMessage = {
|
|
669
|
-
type:
|
|
670
|
-
action:
|
|
725
|
+
type: "call_control";
|
|
726
|
+
action: "complete" | "escalate" | "no-answer" | "transfer" | "voicemail";
|
|
671
727
|
metadata?: Record<string, unknown>;
|
|
672
728
|
reason?: string;
|
|
673
729
|
target?: string;
|
|
674
730
|
};
|
|
675
731
|
export type VoiceClientPingMessage = {
|
|
676
|
-
type:
|
|
732
|
+
type: "ping";
|
|
677
733
|
};
|
|
678
734
|
export type VoiceClientMessage = VoiceClientStartMessage | VoiceClientEndTurnMessage | VoiceClientCloseMessage | VoiceClientCallControlMessage | VoiceClientPingMessage;
|
|
679
735
|
export type VoiceServerSessionMessage = {
|
|
680
|
-
type:
|
|
736
|
+
type: "session";
|
|
681
737
|
sessionId: string;
|
|
682
738
|
status: VoiceSessionStatus;
|
|
683
739
|
scenarioId?: string;
|
|
740
|
+
sessionMetadata?: Record<string, unknown>;
|
|
741
|
+
};
|
|
742
|
+
export type VoiceServerReplayMessage<TResult = unknown> = {
|
|
743
|
+
type: "replay";
|
|
744
|
+
assistantTexts: string[];
|
|
745
|
+
call?: VoiceCallLifecycleState;
|
|
746
|
+
partial: string;
|
|
747
|
+
scenarioId?: string;
|
|
748
|
+
sessionId: string;
|
|
749
|
+
sessionMetadata?: Record<string, unknown>;
|
|
750
|
+
status: VoiceSessionStatus;
|
|
751
|
+
turns: VoiceTurnRecord<TResult>[];
|
|
684
752
|
};
|
|
685
753
|
export type VoiceServerPartialMessage = {
|
|
686
|
-
type:
|
|
754
|
+
type: "partial";
|
|
687
755
|
transcript: Transcript;
|
|
688
756
|
};
|
|
689
757
|
export type VoiceServerFinalMessage = {
|
|
690
|
-
type:
|
|
758
|
+
type: "final";
|
|
691
759
|
transcript: Transcript;
|
|
692
760
|
};
|
|
693
761
|
export type VoiceServerTurnMessage<TResult = unknown> = {
|
|
694
|
-
type:
|
|
762
|
+
type: "turn";
|
|
695
763
|
turn: VoiceTurnRecord<TResult>;
|
|
696
764
|
};
|
|
697
765
|
export type VoiceServerAssistantMessage = {
|
|
698
|
-
type:
|
|
766
|
+
type: "assistant";
|
|
699
767
|
text: string;
|
|
700
768
|
turnId?: string;
|
|
701
769
|
};
|
|
702
770
|
export type VoiceServerAudioMessage = {
|
|
703
|
-
type:
|
|
771
|
+
type: "audio";
|
|
704
772
|
chunkBase64: string;
|
|
705
773
|
format: AudioFormat;
|
|
706
774
|
receivedAt: number;
|
|
707
775
|
turnId?: string;
|
|
708
776
|
};
|
|
709
777
|
export type VoiceServerCompleteMessage = {
|
|
710
|
-
type:
|
|
778
|
+
type: "complete";
|
|
711
779
|
sessionId: string;
|
|
712
780
|
};
|
|
713
781
|
export type VoiceServerCallLifecycleMessage = {
|
|
714
|
-
type:
|
|
782
|
+
type: "call_lifecycle";
|
|
715
783
|
event: VoiceCallLifecycleEvent;
|
|
716
784
|
sessionId: string;
|
|
717
785
|
};
|
|
718
786
|
export type VoiceServerErrorMessage = {
|
|
719
|
-
type:
|
|
787
|
+
type: "error";
|
|
720
788
|
message: string;
|
|
721
789
|
recoverable?: boolean;
|
|
722
790
|
};
|
|
723
791
|
export type VoiceServerPongMessage = {
|
|
724
|
-
type:
|
|
792
|
+
type: "pong";
|
|
793
|
+
};
|
|
794
|
+
export type VoiceServerConnectionMessage = {
|
|
795
|
+
type: "connection";
|
|
796
|
+
reconnect: VoiceReconnectClientState;
|
|
725
797
|
};
|
|
726
|
-
export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage;
|
|
798
|
+
export type VoiceServerMessage<TResult = unknown> = VoiceServerSessionMessage | VoiceServerReplayMessage<TResult> | VoiceServerPartialMessage | VoiceServerFinalMessage | VoiceServerTurnMessage<TResult> | VoiceServerAssistantMessage | VoiceServerAudioMessage | VoiceServerCallLifecycleMessage | VoiceServerCompleteMessage | VoiceServerErrorMessage | VoiceServerPongMessage | VoiceServerConnectionMessage;
|
|
727
799
|
export type VoiceConnectionOptions = {
|
|
800
|
+
browserMedia?: false | VoiceBrowserMediaReporterOptions;
|
|
728
801
|
protocols?: string[];
|
|
729
802
|
scenarioId?: string;
|
|
730
803
|
reconnect?: boolean;
|
|
804
|
+
reconnectReportPath?: string;
|
|
731
805
|
maxReconnectAttempts?: number;
|
|
732
806
|
pingInterval?: number;
|
|
733
807
|
sessionId?: string;
|
|
734
808
|
};
|
|
809
|
+
export type VoiceBrowserMediaReportPayload = {
|
|
810
|
+
at: number;
|
|
811
|
+
continuity?: MediaWebRTCStreamContinuityReport;
|
|
812
|
+
report: MediaWebRTCStatsReport;
|
|
813
|
+
scenarioId?: string | null;
|
|
814
|
+
sessionId?: string | null;
|
|
815
|
+
};
|
|
816
|
+
export type VoiceBrowserMediaReporterOptions = Omit<MediaWebRTCStatsReportInput, "peerConnection"> & {
|
|
817
|
+
fetch?: typeof fetch;
|
|
818
|
+
getPeerConnection?: (() => MediaWebRTCStatsCollector | null | undefined) | (() => Promise<MediaWebRTCStatsCollector | null | undefined>);
|
|
819
|
+
getScenarioId?: () => string | null | undefined;
|
|
820
|
+
getSessionId?: () => string | null | undefined;
|
|
821
|
+
intervalMs?: number;
|
|
822
|
+
continuity?: false | Omit<MediaWebRTCStreamContinuityInput, "previousStats" | "stats">;
|
|
823
|
+
onError?: (error: unknown) => void;
|
|
824
|
+
onReport?: (payload: VoiceBrowserMediaReportPayload) => void;
|
|
825
|
+
path?: string;
|
|
826
|
+
peerConnection?: MediaWebRTCStatsCollector;
|
|
827
|
+
};
|
|
735
828
|
export type VoiceCaptureOptions = {
|
|
736
829
|
channelCount?: 1 | 2;
|
|
830
|
+
onAudio?: (audio: Uint8Array | ArrayBuffer, sendAudio: (audio: Uint8Array | ArrayBuffer) => void) => void;
|
|
737
831
|
onLevel?: (level: number) => void;
|
|
738
832
|
sampleRateHz?: number;
|
|
739
833
|
};
|
|
@@ -747,6 +841,46 @@ export type VoiceBargeInOptions = {
|
|
|
747
841
|
enabled?: boolean;
|
|
748
842
|
interruptOnPartial?: boolean;
|
|
749
843
|
interruptThreshold?: number;
|
|
844
|
+
monitor?: VoiceBargeInMonitor;
|
|
845
|
+
};
|
|
846
|
+
export type VoiceBargeInTriggerReason = "input-level" | "manual-audio" | "manual-interrupt" | "partial-transcript";
|
|
847
|
+
export type VoiceBargeInMonitorEvent = {
|
|
848
|
+
at: number;
|
|
849
|
+
id: string;
|
|
850
|
+
latencyMs?: number;
|
|
851
|
+
playbackStopLatencyMs?: number;
|
|
852
|
+
reason: VoiceBargeInTriggerReason;
|
|
853
|
+
sessionId?: string | null;
|
|
854
|
+
status: "requested" | "stopped" | "skipped";
|
|
855
|
+
thresholdMs?: number;
|
|
856
|
+
};
|
|
857
|
+
export type VoiceBargeInMonitorSnapshot = {
|
|
858
|
+
averageLatencyMs?: number;
|
|
859
|
+
events: VoiceBargeInMonitorEvent[];
|
|
860
|
+
failed: number;
|
|
861
|
+
lastEvent?: VoiceBargeInMonitorEvent;
|
|
862
|
+
passed: number;
|
|
863
|
+
status: "empty" | "fail" | "pass" | "warn";
|
|
864
|
+
thresholdMs: number;
|
|
865
|
+
total: number;
|
|
866
|
+
};
|
|
867
|
+
export type VoiceBargeInMonitor = {
|
|
868
|
+
getSnapshot: () => VoiceBargeInMonitorSnapshot;
|
|
869
|
+
recordRequested: (input: {
|
|
870
|
+
reason: VoiceBargeInTriggerReason;
|
|
871
|
+
sessionId?: string | null;
|
|
872
|
+
}) => VoiceBargeInMonitorEvent;
|
|
873
|
+
recordSkipped: (input: {
|
|
874
|
+
reason: VoiceBargeInTriggerReason;
|
|
875
|
+
sessionId?: string | null;
|
|
876
|
+
}) => VoiceBargeInMonitorEvent;
|
|
877
|
+
recordStopped: (input: {
|
|
878
|
+
latencyMs?: number;
|
|
879
|
+
playbackStopLatencyMs?: number;
|
|
880
|
+
reason: VoiceBargeInTriggerReason;
|
|
881
|
+
sessionId?: string | null;
|
|
882
|
+
}) => VoiceBargeInMonitorEvent;
|
|
883
|
+
subscribe: (subscriber: () => void) => () => void;
|
|
750
884
|
};
|
|
751
885
|
export type VoiceAudioPlayerOptions = {
|
|
752
886
|
autoStart?: boolean;
|
|
@@ -757,10 +891,10 @@ export type VoiceDuplexControllerOptions = VoiceControllerOptions & {
|
|
|
757
891
|
audioPlayer?: VoiceAudioPlayerOptions;
|
|
758
892
|
bargeIn?: VoiceBargeInOptions;
|
|
759
893
|
};
|
|
760
|
-
export type VoiceSTTRoutingGoal =
|
|
761
|
-
export type VoiceSTTRoutingCorrectionMode =
|
|
894
|
+
export type VoiceSTTRoutingGoal = "best" | "low-cost";
|
|
895
|
+
export type VoiceSTTRoutingCorrectionMode = "generic" | "none" | "risky-turn";
|
|
762
896
|
export type VoiceSTTRoutingStrategy = {
|
|
763
|
-
benchmarkSessionTarget:
|
|
897
|
+
benchmarkSessionTarget: "deepgram-corrected" | "deepgram-flux";
|
|
764
898
|
correctionMode: VoiceSTTRoutingCorrectionMode;
|
|
765
899
|
goal: VoiceSTTRoutingGoal;
|
|
766
900
|
notes: string[];
|
|
@@ -774,7 +908,7 @@ export type VoiceHTMXRenderInput<TResult = unknown, TSession extends VoiceSessio
|
|
|
774
908
|
result?: TResult;
|
|
775
909
|
session?: TSession;
|
|
776
910
|
sessionId?: string;
|
|
777
|
-
status: VoiceSessionStatus |
|
|
911
|
+
status: VoiceSessionStatus | "idle";
|
|
778
912
|
turnCount: number;
|
|
779
913
|
turns: VoiceTurnRecord<TResult>[];
|
|
780
914
|
};
|
|
@@ -802,9 +936,11 @@ export type VoiceHTMXOptions<TSession extends VoiceSessionRecord = VoiceSessionR
|
|
|
802
936
|
export type VoiceHTMXConfig<TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown> = VoiceHTMXRenderer<TSession, TResult> | VoiceHTMXOptions<TSession, TResult>;
|
|
803
937
|
export type VoiceStreamState<TResult = unknown> = {
|
|
804
938
|
call: VoiceCallLifecycleState | null;
|
|
939
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
805
940
|
sessionId: string | null;
|
|
806
941
|
scenarioId: string | null;
|
|
807
|
-
status: VoiceSessionStatus |
|
|
942
|
+
status: VoiceSessionStatus | "idle";
|
|
943
|
+
reconnect: VoiceReconnectClientState;
|
|
808
944
|
partial: string;
|
|
809
945
|
turns: VoiceTurnRecord<TResult>[];
|
|
810
946
|
assistantTexts: string[];
|
|
@@ -819,7 +955,7 @@ export type VoiceStreamState<TResult = unknown> = {
|
|
|
819
955
|
};
|
|
820
956
|
export type VoiceStream<TResult = unknown> = {
|
|
821
957
|
call: VoiceCallLifecycleState | null;
|
|
822
|
-
callControl: (message: Omit<VoiceClientCallControlMessage,
|
|
958
|
+
callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
|
|
823
959
|
close: () => void;
|
|
824
960
|
start: (input?: {
|
|
825
961
|
scenarioId?: string;
|
|
@@ -831,10 +967,13 @@ export type VoiceStream<TResult = unknown> = {
|
|
|
831
967
|
getSnapshot: () => VoiceStreamState<TResult>;
|
|
832
968
|
isConnected: boolean;
|
|
833
969
|
partial: string;
|
|
970
|
+
reconnect: VoiceReconnectClientState;
|
|
834
971
|
sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
|
|
972
|
+
simulateDisconnect: () => void;
|
|
835
973
|
sessionId: string | null;
|
|
974
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
836
975
|
scenarioId: string | null;
|
|
837
|
-
status: VoiceSessionStatus |
|
|
976
|
+
status: VoiceSessionStatus | "idle";
|
|
838
977
|
subscribe: (subscriber: () => void) => () => void;
|
|
839
978
|
turns: VoiceTurnRecord<TResult>[];
|
|
840
979
|
assistantTexts: string[];
|
|
@@ -860,7 +999,7 @@ export type VoiceAudioPlayerState = {
|
|
|
860
999
|
queuedChunkCount: number;
|
|
861
1000
|
};
|
|
862
1001
|
export type VoiceAudioPlayerSource = {
|
|
863
|
-
assistantAudio: VoiceStreamState[
|
|
1002
|
+
assistantAudio: VoiceStreamState["assistantAudio"];
|
|
864
1003
|
subscribe: (subscriber: () => void) => () => void;
|
|
865
1004
|
};
|
|
866
1005
|
export type VoiceAudioPlayer = {
|
|
@@ -887,7 +1026,7 @@ export type VoiceBargeInBinding = {
|
|
|
887
1026
|
export type VoiceController<TResult = unknown> = {
|
|
888
1027
|
bindHTMX: (options: VoiceHTMXBindingOptions) => () => void;
|
|
889
1028
|
call: VoiceCallLifecycleState | null;
|
|
890
|
-
callControl: (message: Omit<VoiceClientCallControlMessage,
|
|
1029
|
+
callControl: (message: Omit<VoiceClientCallControlMessage, "type">) => void;
|
|
891
1030
|
close: () => void;
|
|
892
1031
|
endTurn: () => void;
|
|
893
1032
|
start: (input?: {
|
|
@@ -900,12 +1039,15 @@ export type VoiceController<TResult = unknown> = {
|
|
|
900
1039
|
isConnected: boolean;
|
|
901
1040
|
isRecording: boolean;
|
|
902
1041
|
partial: string;
|
|
1042
|
+
reconnect: VoiceReconnectClientState;
|
|
903
1043
|
recordingError: string | null;
|
|
904
1044
|
sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
|
|
1045
|
+
simulateDisconnect: () => void;
|
|
905
1046
|
sessionId: string | null;
|
|
1047
|
+
sessionMetadata: Record<string, unknown> | null;
|
|
906
1048
|
scenarioId: string | null;
|
|
907
1049
|
startRecording: () => Promise<void>;
|
|
908
|
-
status: VoiceSessionStatus |
|
|
1050
|
+
status: VoiceSessionStatus | "idle";
|
|
909
1051
|
stopRecording: () => void;
|
|
910
1052
|
subscribe: (subscriber: () => void) => () => void;
|
|
911
1053
|
toggleRecording: () => Promise<void>;
|
|
@@ -929,40 +1071,54 @@ export type VoiceHTMXBindingOptions = {
|
|
|
929
1071
|
sessionQueryParam?: string;
|
|
930
1072
|
};
|
|
931
1073
|
export type VoiceStoreAction<TResult = unknown> = {
|
|
932
|
-
type:
|
|
1074
|
+
type: "session";
|
|
933
1075
|
sessionId: string;
|
|
1076
|
+
sessionMetadata?: Record<string, unknown>;
|
|
934
1077
|
scenarioId?: string;
|
|
935
1078
|
status: VoiceSessionStatus;
|
|
936
1079
|
} | {
|
|
937
|
-
type:
|
|
1080
|
+
type: "replay";
|
|
1081
|
+
assistantTexts: string[];
|
|
1082
|
+
call?: VoiceCallLifecycleState;
|
|
1083
|
+
partial: string;
|
|
1084
|
+
scenarioId?: string;
|
|
1085
|
+
sessionId: string;
|
|
1086
|
+
sessionMetadata?: Record<string, unknown>;
|
|
1087
|
+
status: VoiceSessionStatus;
|
|
1088
|
+
turns: VoiceTurnRecord<TResult>[];
|
|
1089
|
+
} | {
|
|
1090
|
+
type: "call_lifecycle";
|
|
938
1091
|
event: VoiceCallLifecycleEvent;
|
|
939
1092
|
sessionId: string;
|
|
940
1093
|
} | {
|
|
941
|
-
type:
|
|
1094
|
+
type: "partial";
|
|
942
1095
|
transcript: Transcript;
|
|
943
1096
|
} | {
|
|
944
|
-
type:
|
|
1097
|
+
type: "final";
|
|
945
1098
|
transcript: Transcript;
|
|
946
1099
|
} | {
|
|
947
|
-
type:
|
|
1100
|
+
type: "turn";
|
|
948
1101
|
turn: VoiceTurnRecord<TResult>;
|
|
949
1102
|
} | {
|
|
950
|
-
type:
|
|
1103
|
+
type: "assistant";
|
|
951
1104
|
text: string;
|
|
952
1105
|
} | {
|
|
953
|
-
type:
|
|
1106
|
+
type: "audio";
|
|
954
1107
|
chunk: Uint8Array;
|
|
955
1108
|
format: AudioFormat;
|
|
956
1109
|
receivedAt: number;
|
|
957
1110
|
turnId?: string;
|
|
958
1111
|
} | {
|
|
959
|
-
type:
|
|
1112
|
+
type: "complete";
|
|
960
1113
|
sessionId: string;
|
|
961
1114
|
} | {
|
|
962
|
-
type:
|
|
1115
|
+
type: "error";
|
|
963
1116
|
message: string;
|
|
964
1117
|
} | {
|
|
965
|
-
type:
|
|
1118
|
+
type: "connected";
|
|
1119
|
+
} | {
|
|
1120
|
+
type: "connection";
|
|
1121
|
+
reconnect: VoiceReconnectClientState;
|
|
966
1122
|
} | {
|
|
967
|
-
type:
|
|
1123
|
+
type: "disconnected";
|
|
968
1124
|
};
|