@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
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import type { VoiceReconnectClientState, VoiceSessionRecord, VoiceSessionStore } from "./types";
|
|
3
|
+
import type { StoredVoiceTraceEvent } from "./trace";
|
|
4
|
+
export type VoiceReconnectContractSnapshot = {
|
|
5
|
+
at: number;
|
|
6
|
+
reconnect: VoiceReconnectClientState;
|
|
7
|
+
turnIds?: readonly string[];
|
|
8
|
+
};
|
|
9
|
+
export type VoiceReconnectContractIssue = {
|
|
10
|
+
code: string;
|
|
11
|
+
message: string;
|
|
12
|
+
severity: "error" | "warning";
|
|
13
|
+
};
|
|
14
|
+
export type VoiceReconnectContractReport = {
|
|
15
|
+
checkedAt: number;
|
|
16
|
+
issues: VoiceReconnectContractIssue[];
|
|
17
|
+
pass: boolean;
|
|
18
|
+
resumeLatencyP95Ms?: number;
|
|
19
|
+
snapshotCount: number;
|
|
20
|
+
statuses: VoiceReconnectClientState["status"][];
|
|
21
|
+
summary: {
|
|
22
|
+
attempts: number;
|
|
23
|
+
maxAttempts: number;
|
|
24
|
+
reconnected: boolean;
|
|
25
|
+
resumed: boolean;
|
|
26
|
+
exhausted: boolean;
|
|
27
|
+
duplicateTurnIds: string[];
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export type VoiceReconnectContractOptions = {
|
|
31
|
+
allowNoSnapshots?: boolean;
|
|
32
|
+
requireReconnect?: boolean;
|
|
33
|
+
requireResume?: boolean;
|
|
34
|
+
requireReplayProtection?: boolean;
|
|
35
|
+
snapshots: readonly VoiceReconnectContractSnapshot[];
|
|
36
|
+
};
|
|
37
|
+
export type VoiceReconnectProofStatus = "fail" | "pass" | "warn";
|
|
38
|
+
export type VoiceReconnectProofReport = {
|
|
39
|
+
checkedAt: number;
|
|
40
|
+
contract: VoiceReconnectContractReport;
|
|
41
|
+
generatedAt: string;
|
|
42
|
+
ok: boolean;
|
|
43
|
+
reconnectAware: true;
|
|
44
|
+
sessionCount: number;
|
|
45
|
+
snapshotCount: number;
|
|
46
|
+
status: VoiceReconnectProofStatus;
|
|
47
|
+
summary: string;
|
|
48
|
+
};
|
|
49
|
+
export type VoiceReconnectProofOptions = {
|
|
50
|
+
completedSessionCount?: number;
|
|
51
|
+
maxAttempts?: number;
|
|
52
|
+
requireObservedReconnect?: boolean;
|
|
53
|
+
requireReplayProtection?: boolean;
|
|
54
|
+
requireResumeAfterReconnect?: boolean;
|
|
55
|
+
sessions?: readonly VoiceSessionRecord[];
|
|
56
|
+
snapshots?: readonly VoiceReconnectContractSnapshot[];
|
|
57
|
+
};
|
|
58
|
+
export type VoiceReconnectProofRoutesOptions = Omit<VoiceReconnectProofOptions, "completedSessionCount" | "sessions" | "snapshots"> & {
|
|
59
|
+
getCompletedSessionCount?: () => number | Promise<number>;
|
|
60
|
+
getSessions?: () => readonly VoiceSessionRecord[] | Promise<readonly VoiceSessionRecord[]>;
|
|
61
|
+
getSnapshots?: () => readonly VoiceReconnectContractSnapshot[] | Promise<readonly VoiceReconnectContractSnapshot[]>;
|
|
62
|
+
headers?: HeadersInit;
|
|
63
|
+
maxCollectedSnapshots?: number;
|
|
64
|
+
name?: string;
|
|
65
|
+
path?: string;
|
|
66
|
+
store?: VoiceSessionStore;
|
|
67
|
+
};
|
|
68
|
+
export type VoiceReconnectContractRoutesOptions = Omit<VoiceReconnectContractOptions, "snapshots"> & {
|
|
69
|
+
getSnapshots: () => readonly VoiceReconnectContractSnapshot[] | Promise<readonly VoiceReconnectContractSnapshot[]>;
|
|
70
|
+
headers?: HeadersInit;
|
|
71
|
+
htmlPath?: false | string;
|
|
72
|
+
name?: string;
|
|
73
|
+
path?: string;
|
|
74
|
+
render?: (report: VoiceReconnectContractReport) => string | Promise<string>;
|
|
75
|
+
};
|
|
76
|
+
export declare const summarizeVoiceReconnectContractSnapshots: (events: readonly StoredVoiceTraceEvent[], options?: {
|
|
77
|
+
sessionId?: string;
|
|
78
|
+
}) => VoiceReconnectContractSnapshot[];
|
|
79
|
+
export declare const summarizeVoiceReconnectProofSessions: (sessions: readonly VoiceSessionRecord[], options?: {
|
|
80
|
+
maxAttempts?: number;
|
|
81
|
+
}) => VoiceReconnectContractSnapshot[];
|
|
82
|
+
export declare const runVoiceReconnectContract: (options: VoiceReconnectContractOptions) => VoiceReconnectContractReport;
|
|
83
|
+
export declare const buildVoiceReconnectProofReport: (options?: VoiceReconnectProofOptions) => VoiceReconnectProofReport;
|
|
84
|
+
export declare const createVoiceReconnectProofRoutes: (options?: VoiceReconnectProofRoutesOptions) => Elysia<"", {
|
|
85
|
+
decorator: {};
|
|
86
|
+
store: {};
|
|
87
|
+
derive: {};
|
|
88
|
+
resolve: {};
|
|
89
|
+
}, {
|
|
90
|
+
typebox: {};
|
|
91
|
+
error: {};
|
|
92
|
+
}, {
|
|
93
|
+
schema: {};
|
|
94
|
+
standaloneSchema: {};
|
|
95
|
+
macro: {};
|
|
96
|
+
macroFn: {};
|
|
97
|
+
parser: {};
|
|
98
|
+
response: {};
|
|
99
|
+
}, {
|
|
100
|
+
[x: string]: {
|
|
101
|
+
get: {
|
|
102
|
+
body: unknown;
|
|
103
|
+
params: {};
|
|
104
|
+
query: unknown;
|
|
105
|
+
headers: unknown;
|
|
106
|
+
response: {
|
|
107
|
+
200: Response;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
} & {
|
|
112
|
+
[x: string]: {
|
|
113
|
+
post: {
|
|
114
|
+
body: unknown;
|
|
115
|
+
params: {};
|
|
116
|
+
query: unknown;
|
|
117
|
+
headers: unknown;
|
|
118
|
+
response: {
|
|
119
|
+
200: Response;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
}, {
|
|
124
|
+
derive: {};
|
|
125
|
+
resolve: {};
|
|
126
|
+
schema: {};
|
|
127
|
+
standaloneSchema: {};
|
|
128
|
+
response: {};
|
|
129
|
+
}, {
|
|
130
|
+
derive: {};
|
|
131
|
+
resolve: {};
|
|
132
|
+
schema: {};
|
|
133
|
+
standaloneSchema: {};
|
|
134
|
+
response: {};
|
|
135
|
+
}>;
|
|
136
|
+
export declare const renderVoiceReconnectContractHTML: (report: VoiceReconnectContractReport) => string;
|
|
137
|
+
export declare const createVoiceReconnectContractRoutes: (options: VoiceReconnectContractRoutesOptions) => Elysia<"", {
|
|
138
|
+
decorator: {};
|
|
139
|
+
store: {};
|
|
140
|
+
derive: {};
|
|
141
|
+
resolve: {};
|
|
142
|
+
}, {
|
|
143
|
+
typebox: {};
|
|
144
|
+
error: {};
|
|
145
|
+
}, {
|
|
146
|
+
schema: {};
|
|
147
|
+
standaloneSchema: {};
|
|
148
|
+
macro: {};
|
|
149
|
+
macroFn: {};
|
|
150
|
+
parser: {};
|
|
151
|
+
response: {};
|
|
152
|
+
}, {
|
|
153
|
+
[x: string]: {
|
|
154
|
+
get: {
|
|
155
|
+
body: unknown;
|
|
156
|
+
params: {};
|
|
157
|
+
query: unknown;
|
|
158
|
+
headers: unknown;
|
|
159
|
+
response: {
|
|
160
|
+
200: Response;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
}, {
|
|
165
|
+
derive: {};
|
|
166
|
+
resolve: {};
|
|
167
|
+
schema: {};
|
|
168
|
+
standaloneSchema: {};
|
|
169
|
+
response: {};
|
|
170
|
+
}, {
|
|
171
|
+
derive: {};
|
|
172
|
+
resolve: {};
|
|
173
|
+
schema: {};
|
|
174
|
+
standaloneSchema: {};
|
|
175
|
+
response: {};
|
|
176
|
+
}>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Elysia } from
|
|
2
|
-
import { type VoiceProviderHealthSummary } from
|
|
3
|
-
import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from
|
|
4
|
-
import type { VoiceIOProviderFailureSimulationMode, VoiceIOProviderFailureSimulationResult } from
|
|
5
|
-
export type VoiceRoutingEventKind =
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import { type VoiceProviderHealthSummary } from "./providerHealth";
|
|
3
|
+
import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from "./trace";
|
|
4
|
+
import type { VoiceIOProviderFailureSimulationMode, VoiceIOProviderFailureSimulationResult } from "./testing/ioProviderSimulator";
|
|
5
|
+
export type VoiceRoutingEventKind = "llm" | "stt" | "tts";
|
|
6
6
|
export type VoiceRoutingEvent = {
|
|
7
7
|
at: number;
|
|
8
8
|
attempt?: number;
|
|
@@ -12,13 +12,49 @@ export type VoiceRoutingEvent = {
|
|
|
12
12
|
kind: VoiceRoutingEventKind;
|
|
13
13
|
latencyBudgetMs?: number;
|
|
14
14
|
operation?: string;
|
|
15
|
+
profileId?: string;
|
|
16
|
+
profileLabel?: string;
|
|
15
17
|
provider?: string;
|
|
18
|
+
providerRoutes?: Record<string, string>;
|
|
19
|
+
routing?: string;
|
|
20
|
+
scenarioId?: string;
|
|
16
21
|
selectedProvider?: string;
|
|
17
22
|
sessionId: string;
|
|
18
23
|
status?: string;
|
|
24
|
+
suppressionRemainingMs?: number;
|
|
19
25
|
timedOut: boolean;
|
|
20
26
|
turnId?: string;
|
|
21
27
|
};
|
|
28
|
+
export type VoiceRoutingDecisionSummary = VoiceRoutingEvent;
|
|
29
|
+
export type VoiceRoutingDecisionSummaryOptions = {
|
|
30
|
+
kind?: VoiceRoutingEventKind;
|
|
31
|
+
limit?: number;
|
|
32
|
+
sessionId?: string;
|
|
33
|
+
store: VoiceTraceEventStore;
|
|
34
|
+
};
|
|
35
|
+
export type VoiceRoutingKindSummary = {
|
|
36
|
+
errorCount: number;
|
|
37
|
+
fallbackCount: number;
|
|
38
|
+
latest?: VoiceRoutingEvent;
|
|
39
|
+
providers: string[];
|
|
40
|
+
runCount: number;
|
|
41
|
+
timeoutCount: number;
|
|
42
|
+
};
|
|
43
|
+
export type VoiceRoutingSessionSummary = {
|
|
44
|
+
errorCount: number;
|
|
45
|
+
eventCount: number;
|
|
46
|
+
fallbackCount: number;
|
|
47
|
+
kinds: Record<VoiceRoutingEventKind, VoiceRoutingKindSummary>;
|
|
48
|
+
lastEventAt: number;
|
|
49
|
+
sessionId: string;
|
|
50
|
+
startedAt: number;
|
|
51
|
+
status: "healthy" | "fallback" | "degraded";
|
|
52
|
+
timeoutCount: number;
|
|
53
|
+
};
|
|
54
|
+
export type VoiceRoutingSessionSummaryOptions = {
|
|
55
|
+
limit?: number;
|
|
56
|
+
sessionId?: string;
|
|
57
|
+
};
|
|
22
58
|
export type VoiceResilienceLink = {
|
|
23
59
|
href: string;
|
|
24
60
|
label: string;
|
|
@@ -42,6 +78,7 @@ export type VoiceResiliencePageData = {
|
|
|
42
78
|
links?: readonly VoiceResilienceLink[];
|
|
43
79
|
llmProviderHealth: VoiceProviderHealthSummary<string>[];
|
|
44
80
|
routingEvents: VoiceRoutingEvent[];
|
|
81
|
+
routingSessions: VoiceRoutingSessionSummary[];
|
|
45
82
|
sttProviderHealth: VoiceProviderHealthSummary<string>[];
|
|
46
83
|
sttSimulation?: VoiceResilienceIOSimulator<string>;
|
|
47
84
|
title?: string;
|
|
@@ -63,6 +100,9 @@ export type VoiceResilienceRoutesOptions = {
|
|
|
63
100
|
ttsSimulation?: VoiceResilienceIOSimulator<string>;
|
|
64
101
|
};
|
|
65
102
|
export declare const listVoiceRoutingEvents: (events: StoredVoiceTraceEvent[]) => VoiceRoutingEvent[];
|
|
103
|
+
export declare const summarizeVoiceRoutingDecision: (events: StoredVoiceTraceEvent[], options?: Omit<VoiceRoutingDecisionSummaryOptions, "store">) => VoiceRoutingDecisionSummary | null;
|
|
104
|
+
export declare const summarizeVoiceRoutingSessions: (events: StoredVoiceTraceEvent[] | VoiceRoutingEvent[], options?: VoiceRoutingSessionSummaryOptions) => VoiceRoutingSessionSummary[];
|
|
105
|
+
export declare const createVoiceRoutingDecisionSummary: (options: VoiceRoutingDecisionSummaryOptions) => Promise<VoiceRoutingDecisionSummary | null>;
|
|
66
106
|
export declare const renderVoiceResilienceHTML: (input: VoiceResiliencePageData) => string;
|
|
67
107
|
export declare const createVoiceResilienceRoutes: (options: VoiceResilienceRoutesOptions) => Elysia<"", {
|
|
68
108
|
decorator: {};
|
package/dist/routing.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { VoiceSTTRoutingCorrectionMode, VoiceSTTRoutingGoal, VoiceSTTRoutingStrategy, VoiceTurnCorrectionHandler } from
|
|
1
|
+
import type { VoiceSTTRoutingCorrectionMode, VoiceSTTRoutingGoal, VoiceSTTRoutingStrategy, VoiceTurnCorrectionHandler } from "./types";
|
|
2
2
|
export declare const resolveVoiceSTTRoutingStrategy: (goal?: VoiceSTTRoutingGoal) => VoiceSTTRoutingStrategy;
|
|
3
3
|
export declare const createVoiceSTTRoutingCorrectionHandler: (mode?: VoiceSTTRoutingCorrectionMode) => VoiceTurnCorrectionHandler | undefined;
|
package/dist/runtimeOps.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact } from
|
|
2
|
-
import type { VoiceOpsTask } from
|
|
3
|
-
import type { VoiceCallDisposition, VoiceRuntimeOpsConfig, VoiceSessionHandle, VoiceSessionRecord } from
|
|
1
|
+
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewArtifact } from "./testing/review";
|
|
2
|
+
import type { VoiceOpsTask } from "./ops";
|
|
3
|
+
import type { VoiceCallDisposition, VoiceRuntimeOpsConfig, VoiceSessionHandle, VoiceSessionRecord } from "./types";
|
|
4
4
|
export declare const createVoiceCallReviewFromSession: <TSession extends VoiceSessionRecord = VoiceSessionRecord>(input: {
|
|
5
5
|
disposition: VoiceCallDisposition;
|
|
6
6
|
generatedAt?: number;
|
package/dist/s3Store.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { S3Client, S3Options } from
|
|
2
|
-
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewStore } from
|
|
1
|
+
import type { S3Client, S3Options } from "bun";
|
|
2
|
+
import type { StoredVoiceCallReviewArtifact, VoiceCallReviewStore } from "./testing/review";
|
|
3
3
|
export type VoiceS3ReviewStoreFile = {
|
|
4
4
|
delete: () => Promise<void>;
|
|
5
5
|
exists: () => Promise<boolean>;
|
|
6
6
|
text: () => Promise<string>;
|
|
7
7
|
write: (data: string) => Promise<number>;
|
|
8
8
|
};
|
|
9
|
-
export type VoiceS3ReviewStoreClient = Pick<S3Client,
|
|
9
|
+
export type VoiceS3ReviewStoreClient = Pick<S3Client, "file" | "list">;
|
|
10
10
|
export type VoiceS3ReviewStoreOptions = S3Options & {
|
|
11
11
|
client?: VoiceS3ReviewStoreClient;
|
|
12
12
|
keyPrefix?: string;
|
package/dist/session.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { CreateVoiceSessionOptions, VoiceSessionHandle, VoiceSessionRecord } from
|
|
1
|
+
import type { CreateVoiceSessionOptions, VoiceSessionHandle, VoiceSessionRecord } from "./types";
|
|
2
2
|
export declare const createVoiceSession: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(options: CreateVoiceSessionOptions<TContext, TSession, TResult>) => VoiceSessionHandle<TContext, TSession, TResult>;
|
package/dist/sessionReplay.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Elysia } from
|
|
2
|
-
import { type StoredVoiceTraceEvent, type VoiceTraceEvaluationOptions, type VoiceTraceEventStore, type VoiceTraceRedactionConfig, type VoiceTraceSummary, type VoiceTraceEvaluation } from
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import { type StoredVoiceTraceEvent, type VoiceTraceEvaluationOptions, type VoiceTraceEventStore, type VoiceTraceRedactionConfig, type VoiceTraceSummary, type VoiceTraceEvaluation } from "./trace";
|
|
3
3
|
export type VoiceSessionReplayTurn = {
|
|
4
4
|
assistantReplies: string[];
|
|
5
5
|
committedText?: string;
|
|
@@ -24,16 +24,17 @@ export type VoiceSessionReplay = {
|
|
|
24
24
|
offsetMs?: number;
|
|
25
25
|
payload: Record<string, unknown>;
|
|
26
26
|
turnId?: string;
|
|
27
|
-
type: StoredVoiceTraceEvent[
|
|
27
|
+
type: StoredVoiceTraceEvent["type"];
|
|
28
28
|
}>;
|
|
29
29
|
turns: VoiceSessionReplayTurn[];
|
|
30
30
|
};
|
|
31
|
-
export type VoiceSessionListStatus =
|
|
31
|
+
export type VoiceSessionListStatus = "failed" | "healthy";
|
|
32
32
|
export type VoiceSessionListItem = {
|
|
33
33
|
endedAt?: number;
|
|
34
34
|
errorCount: number;
|
|
35
35
|
eventCount: number;
|
|
36
36
|
latestOutcome?: string;
|
|
37
|
+
operationsRecordHref?: string;
|
|
37
38
|
providerErrors: Record<string, number>;
|
|
38
39
|
providers: string[];
|
|
39
40
|
replayHref: string;
|
|
@@ -43,13 +44,23 @@ export type VoiceSessionListItem = {
|
|
|
43
44
|
transcriptCount: number;
|
|
44
45
|
turnCount: number;
|
|
45
46
|
};
|
|
47
|
+
export type VoiceProviderFallbackRecoverySummary = {
|
|
48
|
+
recovered: number;
|
|
49
|
+
recoveredSessions: number;
|
|
50
|
+
recoveredTurns: number;
|
|
51
|
+
status: "fail" | "pass";
|
|
52
|
+
total: number;
|
|
53
|
+
unresolvedErrors: number;
|
|
54
|
+
unresolvedSessions: number;
|
|
55
|
+
};
|
|
46
56
|
export type VoiceSessionListOptions = {
|
|
47
57
|
events?: StoredVoiceTraceEvent[];
|
|
48
58
|
limit?: number;
|
|
59
|
+
operationsRecordHref?: false | string | ((session: Omit<VoiceSessionListItem, "operationsRecordHref" | "replayHref">) => string);
|
|
49
60
|
provider?: string;
|
|
50
61
|
q?: string;
|
|
51
|
-
replayHref?: false | string | ((session: Omit<VoiceSessionListItem,
|
|
52
|
-
status?: VoiceSessionListStatus |
|
|
62
|
+
replayHref?: false | string | ((session: Omit<VoiceSessionListItem, "replayHref">) => string);
|
|
63
|
+
status?: VoiceSessionListStatus | "all";
|
|
53
64
|
store?: VoiceTraceEventStore;
|
|
54
65
|
};
|
|
55
66
|
export type VoiceSessionListHTMLHandlerOptions = VoiceSessionListOptions & {
|
|
@@ -69,7 +80,7 @@ export type VoiceSessionReplayOptions = {
|
|
|
69
80
|
store?: VoiceTraceEventStore;
|
|
70
81
|
title?: string;
|
|
71
82
|
};
|
|
72
|
-
export type VoiceSessionReplayHTMLHandlerOptions = Omit<VoiceSessionReplayOptions,
|
|
83
|
+
export type VoiceSessionReplayHTMLHandlerOptions = Omit<VoiceSessionReplayOptions, "sessionId"> & {
|
|
73
84
|
headers?: HeadersInit;
|
|
74
85
|
render?: (replay: VoiceSessionReplay) => string | Promise<string>;
|
|
75
86
|
};
|
|
@@ -78,6 +89,7 @@ export type VoiceSessionReplayRoutesOptions = VoiceSessionReplayHTMLHandlerOptio
|
|
|
78
89
|
name?: string;
|
|
79
90
|
path?: string;
|
|
80
91
|
};
|
|
92
|
+
export declare const summarizeVoiceProviderFallbackRecovery: (events: StoredVoiceTraceEvent[]) => VoiceProviderFallbackRecoverySummary;
|
|
81
93
|
export declare const summarizeVoiceSessionReplay: (options: VoiceSessionReplayOptions) => Promise<VoiceSessionReplay>;
|
|
82
94
|
export declare const summarizeVoiceSessions: (options?: VoiceSessionListOptions) => Promise<VoiceSessionListItem[]>;
|
|
83
95
|
export declare const renderVoiceSessionsHTML: (sessions: VoiceSessionListItem[]) => string;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import type { MediaProcessorGraphSnapshot } from "@absolutejs/media";
|
|
3
|
+
import type { VoiceProofAssertionResult, VoiceProofAssertionSummary } from "./proofAssertions";
|
|
4
|
+
import type { VoiceCampaignTelephonyOutcomeSnapshot } from "./campaign";
|
|
5
|
+
import type { StoredVoiceTraceEvent } from "./trace";
|
|
6
|
+
export type VoiceSessionSnapshotStatus = "fail" | "pass" | "warn";
|
|
7
|
+
export type VoiceSessionSnapshotQualityEvidence = {
|
|
8
|
+
name: string;
|
|
9
|
+
report: unknown;
|
|
10
|
+
status?: VoiceSessionSnapshotStatus;
|
|
11
|
+
};
|
|
12
|
+
export type VoiceSessionSnapshotArtifactKind = "failure-replay" | "incident-bundle" | "operations-record" | "provider-fallback" | "trace" | "custom";
|
|
13
|
+
export type VoiceSessionSnapshotArtifact = {
|
|
14
|
+
href?: string;
|
|
15
|
+
kind: VoiceSessionSnapshotArtifactKind;
|
|
16
|
+
label: string;
|
|
17
|
+
report?: unknown;
|
|
18
|
+
status?: VoiceSessionSnapshotStatus;
|
|
19
|
+
};
|
|
20
|
+
export type VoiceSessionSnapshot = {
|
|
21
|
+
artifacts: readonly VoiceSessionSnapshotArtifact[];
|
|
22
|
+
capturedAt: number;
|
|
23
|
+
media: readonly MediaProcessorGraphSnapshot[];
|
|
24
|
+
name?: string;
|
|
25
|
+
proofAssertions: readonly VoiceProofAssertionResult[];
|
|
26
|
+
proofSummary: VoiceProofAssertionSummary;
|
|
27
|
+
providerRoutingEvents: readonly StoredVoiceTraceEvent[];
|
|
28
|
+
quality: readonly VoiceSessionSnapshotQualityEvidence[];
|
|
29
|
+
scenarioId?: string;
|
|
30
|
+
schema: "absolute.voice.session.snapshot.v1";
|
|
31
|
+
sessionId: string;
|
|
32
|
+
status: VoiceSessionSnapshotStatus;
|
|
33
|
+
telephonyOutcomes: readonly VoiceCampaignTelephonyOutcomeSnapshot[];
|
|
34
|
+
turnId?: string;
|
|
35
|
+
};
|
|
36
|
+
export type VoiceSessionSnapshotInput = {
|
|
37
|
+
artifacts?: readonly VoiceSessionSnapshotArtifact[];
|
|
38
|
+
media?: readonly MediaProcessorGraphSnapshot[];
|
|
39
|
+
name?: string;
|
|
40
|
+
proofAssertions?: readonly VoiceProofAssertionResult[];
|
|
41
|
+
providerRoutingEvents?: readonly StoredVoiceTraceEvent[];
|
|
42
|
+
quality?: readonly VoiceSessionSnapshotQualityEvidence[];
|
|
43
|
+
scenarioId?: string;
|
|
44
|
+
sessionId: string;
|
|
45
|
+
telephonyOutcomes?: readonly VoiceCampaignTelephonyOutcomeSnapshot[];
|
|
46
|
+
turnId?: string;
|
|
47
|
+
};
|
|
48
|
+
export type VoiceSessionSnapshotRouteSourceInput = {
|
|
49
|
+
request: Request;
|
|
50
|
+
sessionId: string;
|
|
51
|
+
turnId?: string;
|
|
52
|
+
};
|
|
53
|
+
export type VoiceSessionSnapshotRouteSource = VoiceSessionSnapshot | VoiceSessionSnapshotInput | ((input: VoiceSessionSnapshotRouteSourceInput) => Promise<VoiceSessionSnapshot | VoiceSessionSnapshotInput> | VoiceSessionSnapshot | VoiceSessionSnapshotInput);
|
|
54
|
+
export type VoiceSessionSnapshotRoutesOptions = Partial<VoiceSessionSnapshotInput> & {
|
|
55
|
+
downloadPath?: false | string;
|
|
56
|
+
headers?: HeadersInit;
|
|
57
|
+
name?: string;
|
|
58
|
+
path?: string;
|
|
59
|
+
source?: VoiceSessionSnapshotRouteSource;
|
|
60
|
+
};
|
|
61
|
+
export declare const buildVoiceSessionSnapshotStatus: (input: {
|
|
62
|
+
artifacts?: readonly Pick<VoiceSessionSnapshotArtifact, "status">[];
|
|
63
|
+
media?: readonly Pick<MediaProcessorGraphSnapshot, "report">[];
|
|
64
|
+
proofSummary?: Pick<VoiceProofAssertionSummary, "ok">;
|
|
65
|
+
quality?: readonly Pick<VoiceSessionSnapshotQualityEvidence, "status">[];
|
|
66
|
+
telephonyOutcomes?: readonly Pick<VoiceCampaignTelephonyOutcomeSnapshot, "campaignOutcome" | "duplicate">[];
|
|
67
|
+
}) => VoiceSessionSnapshotStatus;
|
|
68
|
+
export declare const buildVoiceSessionSnapshot: (input: VoiceSessionSnapshotInput) => VoiceSessionSnapshot;
|
|
69
|
+
export declare const parseVoiceSessionSnapshot: (snapshot: VoiceSessionSnapshot) => VoiceSessionSnapshot;
|
|
70
|
+
export declare const createVoiceSessionSnapshotRoutes: (options?: VoiceSessionSnapshotRoutesOptions) => Elysia<"", {
|
|
71
|
+
decorator: {};
|
|
72
|
+
store: {};
|
|
73
|
+
derive: {};
|
|
74
|
+
resolve: {};
|
|
75
|
+
}, {
|
|
76
|
+
typebox: {};
|
|
77
|
+
error: {};
|
|
78
|
+
}, {
|
|
79
|
+
schema: {};
|
|
80
|
+
standaloneSchema: {};
|
|
81
|
+
macro: {};
|
|
82
|
+
macroFn: {};
|
|
83
|
+
parser: {};
|
|
84
|
+
response: {};
|
|
85
|
+
}, {
|
|
86
|
+
[x: string]: {
|
|
87
|
+
get: {
|
|
88
|
+
body: unknown;
|
|
89
|
+
params: {};
|
|
90
|
+
query: unknown;
|
|
91
|
+
headers: unknown;
|
|
92
|
+
response: {
|
|
93
|
+
200: Response;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
}, {
|
|
98
|
+
derive: {};
|
|
99
|
+
resolve: {};
|
|
100
|
+
schema: {};
|
|
101
|
+
standaloneSchema: {};
|
|
102
|
+
response: {};
|
|
103
|
+
}, {
|
|
104
|
+
derive: {};
|
|
105
|
+
resolve: {};
|
|
106
|
+
schema: {};
|
|
107
|
+
standaloneSchema: {};
|
|
108
|
+
response: {};
|
|
109
|
+
}>;
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Elysia } from "elysia";
|
|
2
|
+
import { type VoiceEvalReport, type VoiceEvalRoutesOptions, type VoiceScenarioEvalDefinition, type VoiceScenarioEvalReport, type VoiceScenarioFixture, type VoiceScenarioFixtureEvalReport, type VoiceScenarioFixtureStore } from "./evalRoutes";
|
|
3
|
+
import { type VoiceOutcomeContractDefinition, type VoiceOutcomeContractOptions, type VoiceOutcomeContractSuiteReport } from "./outcomeContract";
|
|
4
|
+
import { type VoiceToolContractDefinition, type VoiceToolContractSuiteReport } from "./toolContract";
|
|
5
|
+
import type { VoiceQualityThresholds } from "./qualityRoutes";
|
|
6
|
+
import type { VoiceTraceEventStore } from "./trace";
|
|
7
|
+
import type { VoiceSessionRecord } from "./types";
|
|
8
|
+
export type VoiceSimulationSuiteStatus = "pass" | "fail";
|
|
9
|
+
export type VoiceSimulationSuiteReport = {
|
|
10
|
+
actions: VoiceSimulationSuiteAction[];
|
|
11
|
+
checkedAt: number;
|
|
12
|
+
failed: number;
|
|
13
|
+
fixtures?: VoiceScenarioFixtureEvalReport;
|
|
14
|
+
outcomes?: VoiceOutcomeContractSuiteReport;
|
|
15
|
+
passed: number;
|
|
16
|
+
scenarios?: VoiceScenarioEvalReport;
|
|
17
|
+
sessions?: VoiceEvalReport;
|
|
18
|
+
status: VoiceSimulationSuiteStatus;
|
|
19
|
+
summary: {
|
|
20
|
+
fixtures?: VoiceSimulationSuiteSectionSummary;
|
|
21
|
+
outcomes?: VoiceSimulationSuiteSectionSummary;
|
|
22
|
+
scenarios?: VoiceSimulationSuiteSectionSummary;
|
|
23
|
+
sessions?: VoiceSimulationSuiteSectionSummary;
|
|
24
|
+
tools?: VoiceSimulationSuiteSectionSummary;
|
|
25
|
+
};
|
|
26
|
+
tools?: VoiceToolContractSuiteReport;
|
|
27
|
+
total: number;
|
|
28
|
+
};
|
|
29
|
+
export type VoiceSimulationSuiteAction = {
|
|
30
|
+
description: string;
|
|
31
|
+
href?: string;
|
|
32
|
+
label: string;
|
|
33
|
+
section: "fixtures" | "outcomes" | "scenarios" | "sessions" | "tools";
|
|
34
|
+
severity: "error" | "warning";
|
|
35
|
+
};
|
|
36
|
+
export type VoiceSimulationSuiteSectionSummary = {
|
|
37
|
+
failed: number;
|
|
38
|
+
passed: number;
|
|
39
|
+
status: VoiceSimulationSuiteStatus;
|
|
40
|
+
total: number;
|
|
41
|
+
};
|
|
42
|
+
export type VoiceSimulationSuiteSection = "fixtures" | "outcomes" | "scenarios" | "sessions" | "tools";
|
|
43
|
+
export type VoiceSimulationSuiteAssertionInput = {
|
|
44
|
+
maxActions?: number;
|
|
45
|
+
maxFailed?: number;
|
|
46
|
+
minPassed?: number;
|
|
47
|
+
minSections?: number;
|
|
48
|
+
requiredSections?: VoiceSimulationSuiteSection[];
|
|
49
|
+
sectionMinimums?: Partial<Record<VoiceSimulationSuiteSection, number>>;
|
|
50
|
+
};
|
|
51
|
+
export type VoiceSimulationSuiteAssertionReport = {
|
|
52
|
+
actions: number;
|
|
53
|
+
failed: number;
|
|
54
|
+
issues: string[];
|
|
55
|
+
ok: boolean;
|
|
56
|
+
passed: number;
|
|
57
|
+
sections: VoiceSimulationSuiteSection[];
|
|
58
|
+
sectionTotals: Partial<Record<VoiceSimulationSuiteSection, number>>;
|
|
59
|
+
status: VoiceSimulationSuiteStatus;
|
|
60
|
+
total: number;
|
|
61
|
+
};
|
|
62
|
+
export type VoiceSimulationSuiteOptions<TSession extends VoiceSessionRecord = VoiceSessionRecord> = {
|
|
63
|
+
actionLinks?: {
|
|
64
|
+
fixtures?: string;
|
|
65
|
+
outcomes?: string;
|
|
66
|
+
scenarios?: string;
|
|
67
|
+
sessions?: string;
|
|
68
|
+
tools?: string;
|
|
69
|
+
};
|
|
70
|
+
fixtures?: VoiceScenarioFixture[];
|
|
71
|
+
fixtureStore?: VoiceScenarioFixtureStore;
|
|
72
|
+
include?: {
|
|
73
|
+
fixtures?: boolean;
|
|
74
|
+
outcomes?: boolean;
|
|
75
|
+
scenarios?: boolean;
|
|
76
|
+
sessions?: boolean;
|
|
77
|
+
tools?: boolean;
|
|
78
|
+
};
|
|
79
|
+
limit?: number;
|
|
80
|
+
operationsRecordHref?: false | string | ((sessionId: string) => string);
|
|
81
|
+
outcomes?: Omit<VoiceOutcomeContractOptions<TSession>, "contracts"> & {
|
|
82
|
+
contracts: VoiceOutcomeContractDefinition[];
|
|
83
|
+
};
|
|
84
|
+
scenarios?: VoiceScenarioEvalDefinition[];
|
|
85
|
+
store?: VoiceTraceEventStore;
|
|
86
|
+
thresholds?: VoiceQualityThresholds;
|
|
87
|
+
tools?: VoiceToolContractDefinition[];
|
|
88
|
+
};
|
|
89
|
+
export type VoiceSimulationSuiteRoutesOptions<TSession extends VoiceSessionRecord = VoiceSessionRecord> = VoiceSimulationSuiteOptions<TSession> & {
|
|
90
|
+
headers?: HeadersInit;
|
|
91
|
+
htmlPath?: false | string;
|
|
92
|
+
name?: string;
|
|
93
|
+
path?: string;
|
|
94
|
+
render?: (report: VoiceSimulationSuiteReport) => string | Promise<string>;
|
|
95
|
+
title?: string;
|
|
96
|
+
};
|
|
97
|
+
export declare const runVoiceSimulationSuite: <TSession extends VoiceSessionRecord = VoiceSessionRecord>(options: VoiceSimulationSuiteOptions<TSession>) => Promise<VoiceSimulationSuiteReport>;
|
|
98
|
+
export declare const evaluateVoiceSimulationSuiteEvidence: (report: VoiceSimulationSuiteReport, input?: VoiceSimulationSuiteAssertionInput) => VoiceSimulationSuiteAssertionReport;
|
|
99
|
+
export declare const assertVoiceSimulationSuiteEvidence: (report: VoiceSimulationSuiteReport, input?: VoiceSimulationSuiteAssertionInput) => VoiceSimulationSuiteAssertionReport;
|
|
100
|
+
export declare const renderVoiceSimulationSuiteHTML: (report: VoiceSimulationSuiteReport, options?: {
|
|
101
|
+
title?: string;
|
|
102
|
+
}) => string;
|
|
103
|
+
export declare const createVoiceSimulationSuiteRoutes: <TSession extends VoiceSessionRecord = VoiceSessionRecord>(options: VoiceSimulationSuiteRoutesOptions<TSession>) => Elysia<"", {
|
|
104
|
+
decorator: {};
|
|
105
|
+
store: {};
|
|
106
|
+
derive: {};
|
|
107
|
+
resolve: {};
|
|
108
|
+
}, {
|
|
109
|
+
typebox: {};
|
|
110
|
+
error: {};
|
|
111
|
+
}, {
|
|
112
|
+
schema: {};
|
|
113
|
+
standaloneSchema: {};
|
|
114
|
+
macro: {};
|
|
115
|
+
macroFn: {};
|
|
116
|
+
parser: {};
|
|
117
|
+
response: {};
|
|
118
|
+
}, {
|
|
119
|
+
[x: string]: {
|
|
120
|
+
get: {
|
|
121
|
+
body: unknown;
|
|
122
|
+
params: {};
|
|
123
|
+
query: unknown;
|
|
124
|
+
headers: unknown;
|
|
125
|
+
response: {
|
|
126
|
+
200: VoiceSimulationSuiteReport;
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
}, {
|
|
131
|
+
derive: {};
|
|
132
|
+
resolve: {};
|
|
133
|
+
schema: {};
|
|
134
|
+
standaloneSchema: {};
|
|
135
|
+
response: {};
|
|
136
|
+
}, {
|
|
137
|
+
derive: {};
|
|
138
|
+
resolve: {};
|
|
139
|
+
schema: {};
|
|
140
|
+
standaloneSchema: {};
|
|
141
|
+
response: {};
|
|
142
|
+
}>;
|
|
143
|
+
export type VoiceSimulationSuiteEvalRoutesOptions = VoiceEvalRoutesOptions;
|