@absolutejs/voice 0.0.22-beta.453 → 0.0.22-beta.455
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/angular/index.d.ts +1 -0
- package/dist/angular/index.js +345 -224
- package/dist/angular/voice-reconnect-profile-evidence.service.d.ts +12 -0
- package/dist/client/index.d.ts +4 -0
- package/dist/client/index.js +659 -240
- package/dist/client/reconnectProfileEvidence.d.ts +19 -0
- package/dist/client/reconnectProfileEvidenceWidget.d.ts +39 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +224 -0
- package/dist/proofTrends.d.ts +103 -0
- package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +1035 -526
- package/dist/react/useVoiceReconnectProfileEvidence.d.ts +8 -0
- package/dist/svelte/createVoiceReconnectProfileEvidence.d.ts +7 -0
- package/dist/svelte/index.d.ts +1 -0
- package/dist/svelte/index.js +86 -0
- package/dist/vue/VoiceReconnectProfileEvidence.d.ts +21 -0
- package/dist/vue/index.d.ts +2 -0
- package/dist/vue/index.js +941 -438
- package/dist/vue/useVoiceReconnectProfileEvidence.d.ts +9 -0
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { VoiceReconnectProfileEvidenceSummary } from "../proofTrends";
|
|
2
|
+
export type VoiceReconnectProfileEvidenceClientOptions = {
|
|
3
|
+
fetch?: typeof fetch;
|
|
4
|
+
intervalMs?: number;
|
|
5
|
+
};
|
|
6
|
+
export type VoiceReconnectProfileEvidenceSnapshot = {
|
|
7
|
+
error: string | null;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
report?: VoiceReconnectProfileEvidenceSummary;
|
|
10
|
+
updatedAt?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare const fetchVoiceReconnectProfileEvidence: (path?: string, options?: Pick<VoiceReconnectProfileEvidenceClientOptions, "fetch">) => Promise<VoiceReconnectProfileEvidenceSummary>;
|
|
13
|
+
export declare const createVoiceReconnectProfileEvidenceStore: (path?: string, options?: VoiceReconnectProfileEvidenceClientOptions) => {
|
|
14
|
+
close: () => void;
|
|
15
|
+
getServerSnapshot: () => VoiceReconnectProfileEvidenceSnapshot;
|
|
16
|
+
getSnapshot: () => VoiceReconnectProfileEvidenceSnapshot;
|
|
17
|
+
refresh: () => Promise<VoiceReconnectProfileEvidenceSummary | undefined>;
|
|
18
|
+
subscribe: (listener: () => void) => () => void;
|
|
19
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type VoiceReconnectProfileEvidenceClientOptions, type VoiceReconnectProfileEvidenceSnapshot } from "./reconnectProfileEvidence";
|
|
2
|
+
export type VoiceReconnectProfileEvidenceMetricView = {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
export type VoiceReconnectProfileEvidenceViewModel = {
|
|
7
|
+
description: string;
|
|
8
|
+
error: string | null;
|
|
9
|
+
isLoading: boolean;
|
|
10
|
+
label: string;
|
|
11
|
+
latest?: {
|
|
12
|
+
profileLabel: string;
|
|
13
|
+
sessionId: string;
|
|
14
|
+
surfaces: string;
|
|
15
|
+
};
|
|
16
|
+
links: Array<{
|
|
17
|
+
href: string;
|
|
18
|
+
label: string;
|
|
19
|
+
}>;
|
|
20
|
+
metrics: VoiceReconnectProfileEvidenceMetricView[];
|
|
21
|
+
status: "empty" | "error" | "loading" | "ready" | "warning";
|
|
22
|
+
title: string;
|
|
23
|
+
};
|
|
24
|
+
export type VoiceReconnectProfileEvidenceWidgetOptions = VoiceReconnectProfileEvidenceClientOptions & {
|
|
25
|
+
description?: string;
|
|
26
|
+
links?: Array<{
|
|
27
|
+
href: string;
|
|
28
|
+
label: string;
|
|
29
|
+
}>;
|
|
30
|
+
title?: string;
|
|
31
|
+
};
|
|
32
|
+
export declare const createVoiceReconnectProfileEvidenceViewModel: (snapshot: VoiceReconnectProfileEvidenceSnapshot, options?: VoiceReconnectProfileEvidenceWidgetOptions) => VoiceReconnectProfileEvidenceViewModel;
|
|
33
|
+
export declare const renderVoiceReconnectProfileEvidenceHTML: (snapshot: VoiceReconnectProfileEvidenceSnapshot, options?: VoiceReconnectProfileEvidenceWidgetOptions) => string;
|
|
34
|
+
export declare const getVoiceReconnectProfileEvidenceCSS: () => string;
|
|
35
|
+
export declare const mountVoiceReconnectProfileEvidence: (element: Element, path?: string, options?: VoiceReconnectProfileEvidenceWidgetOptions) => {
|
|
36
|
+
close: () => void;
|
|
37
|
+
refresh: () => Promise<import("..").VoiceReconnectProfileEvidenceSummary | undefined>;
|
|
38
|
+
};
|
|
39
|
+
export declare const defineVoiceReconnectProfileEvidenceElement: (tagName?: string) => void;
|
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ export { assertVoicePlatformCoverage, buildVoicePlatformCoverageSummary, createV
|
|
|
31
31
|
export { assertVoiceCompetitiveCoverage, buildVoiceCompetitiveCoverageReport, createVoiceCompetitiveCoverageRoutes, evaluateVoiceCompetitiveCoverage, renderVoiceCompetitiveCoverageHTML, renderVoiceCompetitiveCoverageMarkdown, } from "./competitiveCoverage";
|
|
32
32
|
export type { VoiceCompetitiveCoverageAssertionInput, VoiceCompetitiveCoverageAssertionReport, VoiceCompetitiveCoverageIssue, VoiceCompetitiveCoverageLevel, VoiceCompetitiveCoverageReport, VoiceCompetitiveCoverageReportInput, VoiceCompetitiveCoverageRoutesOptions, VoiceCompetitiveCoverageStatus, VoiceCompetitiveCoverageSummary, VoiceCompetitiveDepthLevel, VoiceCompetitiveEvidence, VoiceCompetitiveSurface, } from "./competitiveCoverage";
|
|
33
33
|
export type { VoicePlatformCoverageAssertionInput, VoicePlatformCoverageAssertionReport, VoicePlatformCoverageEvidence, VoicePlatformCoverageRoutesOptions, VoicePlatformCoverageStatus, VoicePlatformCoverageSummary, VoicePlatformCoverageSummaryInput, VoicePlatformCoverageSurface, } from "./platformCoverage";
|
|
34
|
-
export { assertVoiceProofTrendEvidence, appendVoiceRealCallProfileRecoveryEvidence, buildEmptyVoiceProofTrendReport, buildVoiceProofTrendProfileSummaries, buildVoiceProofTrendRecommendationReport, buildVoiceProofTrendReportFromRealCallProfiles, buildVoiceProofTrendReport, buildVoiceRealCallProfileEvidenceFromTraceEvents, buildVoiceRealCallProfileEvidenceFromReconnectProofReports, buildVoiceRealCallProfileDefaults, buildVoiceRealCallProfileHistoryReport, buildVoiceRealCallProfileHistoryReportFromStore, buildVoiceRealCallProfileReadinessCheck, buildVoiceRealCallProfileRecoveryJobHistoryCheck, buildVoiceRealCallProfileRecoveryActions, createVoiceInMemoryRealCallProfileRecoveryJobStore, createVoiceRealCallProfileTraceCollector, createVoiceSQLiteRealCallProfileEvidenceStore, createVoiceSQLiteRealCallProfileRecoveryJobStore, createVoiceProofTrendRecommendationRoutes, createVoiceProofTrendRoutes, createVoiceRealCallProfileHistoryRoutes, createVoiceRealCallProfileRecoveryActionRoutes, DEFAULT_VOICE_PROOF_TREND_PROFILE_DEFINITIONS, DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS, evaluateVoiceProofTrendEvidence, formatVoiceProofTrendAge, loadVoiceRealCallProfileEvidenceFromStore, loadVoiceRealCallProfileEvidenceFromTraceStore, normalizeVoiceProofTrendReport, readVoiceProofTrendReportFile, renderVoiceProofTrendRecommendationHTML, renderVoiceProofTrendRecommendationMarkdown, renderVoiceRealCallProfileHistoryHTML, renderVoiceRealCallProfileHistoryMarkdown, runVoiceRealCallProfileRecoveryLoop, resolveVoiceRealCallProfileProviderRoute, } from "./proofTrends";
|
|
34
|
+
export { assertVoiceProofTrendEvidence, appendVoiceRealCallProfileRecoveryEvidence, buildEmptyVoiceProofTrendReport, buildVoiceProofTrendProfileSummaries, buildVoiceProofTrendRecommendationReport, buildVoiceProofTrendReportFromRealCallProfiles, buildVoiceProofTrendReport, buildVoiceRealCallProfileEvidenceFromTraceEvents, buildVoiceRealCallProfileEvidenceFromReconnectProofReports, buildVoiceRealCallProfileDefaults, buildVoiceRealCallProfileHistoryReport, buildVoiceRealCallProfileHistoryReportFromStore, buildVoiceRealCallProfileReadinessCheck, buildVoiceRealCallProfileRecoveryJobHistoryCheck, buildVoiceRealCallProfileRecoveryActions, buildVoiceReconnectProfileEvidenceSummary, createVoiceRealCallEvidenceRuntime, createVoiceRealCallEvidenceRuntimeRoutes, createVoiceInMemoryRealCallProfileRecoveryJobStore, createVoiceRealCallProfileTraceCollector, createVoiceSQLiteRealCallProfileEvidenceStore, createVoiceSQLiteRealCallProfileRecoveryJobStore, createVoiceProofTrendRecommendationRoutes, createVoiceProofTrendRoutes, createVoiceRealCallProfileHistoryRoutes, createVoiceRealCallProfileRecoveryActionRoutes, DEFAULT_VOICE_PROOF_TREND_PROFILE_DEFINITIONS, DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS, evaluateVoiceProofTrendEvidence, formatVoiceProofTrendAge, loadVoiceRealCallProfileEvidenceFromStore, loadVoiceRealCallProfileEvidenceFromTraceStore, normalizeVoiceProofTrendReport, readVoiceProofTrendReportFile, renderVoiceProofTrendRecommendationHTML, renderVoiceProofTrendRecommendationMarkdown, renderVoiceRealCallEvidenceRuntimeHTML, renderVoiceRealCallEvidenceRuntimeMarkdown, renderVoiceRealCallProfileHistoryHTML, renderVoiceRealCallProfileHistoryMarkdown, runVoiceRealCallProfileRecoveryLoop, resolveVoiceRealCallProfileProviderRoute, } from "./proofTrends";
|
|
35
35
|
export { createVoiceEvidenceAssertion, createVoiceProofAssertion, summarizeVoiceProofAssertions, } from "./proofAssertions";
|
|
36
36
|
export { buildVoiceSessionSnapshot, buildVoiceSessionSnapshotStatus, createVoiceSessionSnapshotRoutes, parseVoiceSessionSnapshot, } from "./sessionSnapshot";
|
|
37
37
|
export { buildVoiceCallDebuggerReport, createVoiceCallDebuggerRoutes, renderVoiceCallDebuggerHTML, resolveLatestVoiceCallDebuggerSessionId, } from "./callDebugger";
|
|
@@ -46,7 +46,7 @@ export { buildVoiceProviderDecisionTraceReport, createVoiceProviderDecisionTrace
|
|
|
46
46
|
export type { VoiceProviderDecisionStatus, VoiceProviderDecisionSurfaceReport, VoiceProviderDecisionTrace, VoiceProviderDecisionTraceInput, VoiceProviderDecisionTraceIssue, VoiceProviderDecisionTraceReport, VoiceProviderDecisionTraceReportOptions, VoiceProviderDecisionTraceRoutesOptions, } from "./providerDecisionTraces";
|
|
47
47
|
export { appendVoiceIOProviderRouterTraceEvent, appendVoiceProviderRouterTraceEvent, buildVoiceIOProviderRouterTraceEvent, buildVoiceProviderRouterTraceEvent, } from "./providerRouterTraces";
|
|
48
48
|
export type { VoiceIOProviderRouterTraceAppendOptions, VoiceIOProviderRouterTraceEventOptions, VoiceProviderRouterTraceAppendOptions, VoiceProviderRouterTraceEventOptions, } from "./providerRouterTraces";
|
|
49
|
-
export type { VoiceProofTrendAssertionInput, VoiceProofTrendAssertionReport, VoiceProofTrendCycle, VoiceProofTrendProfileDefinition, VoiceProofTrendProfileRecommendation, VoiceProofTrendProfileSummaryOptions, VoiceProofTrendProfileSummary, VoiceProofTrendProviderRecommendation, VoiceProofTrendProviderSummary, VoiceProofTrendReconnectSummary, VoiceProofTrendRecommendation, VoiceProofTrendRecommendationOptions, VoiceProofTrendRecommendationReport, VoiceProofTrendRecommendationRoutesOptions, VoiceProofTrendRecommendationStatus, VoiceProofTrendRecommendationSurface, VoiceProofTrendRealCallProfileEvidence, VoiceProofTrendRealCallProfileReportOptions, VoiceProofTrendReport, VoiceProofTrendReportInput, VoiceProofTrendRoutesOptions, VoiceProofTrendRuntimeChannelSummary, VoiceProofTrendStatus, VoiceProofTrendSummary, VoiceRealCallProfileDefault, VoiceRealCallProfileDefaultsOptions, VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileEvidenceCreateInput, VoiceRealCallProfileEvidenceListOptions, VoiceRealCallProfileEvidenceRecord, VoiceRealCallProfileEvidenceStore, VoiceRealCallProfileHistoryOptions, VoiceRealCallProfileHistoryReport, VoiceRealCallProfileHistoryRoutesOptions, VoiceRealCallProfileProviderRouteOptions, VoiceRealCallProfileReadinessCheckOptions, VoiceRealCallProfileRecoveryActionOptions, VoiceRealCallProfileRecoveryAction, VoiceRealCallProfileRecoveryActionHandler, VoiceRealCallProfileRecoveryActionHandlerInput, VoiceRealCallProfileRecoveryActionId, VoiceRealCallProfileRecoveryJobHistoryCheckOptions, VoiceRealCallProfileRecoveryActionResult, VoiceRealCallProfileRecoveryActionRoutesOptions, VoiceRealCallProfileRecoveryJob, VoiceRealCallProfileRecoveryJobCreateInput, VoiceRealCallProfileRecoveryJobListOptions, VoiceRealCallProfileRecoveryJobStatus, VoiceRealCallProfileRecoveryJobStore, VoiceRealCallProfileRecoveryJobUpdate, VoiceRealCallProfileRecoveryLoopAction, VoiceRealCallProfileRecoveryLoopJob, VoiceRealCallProfileRecoveryLoopJobResult, VoiceRealCallProfileRecoveryLoopOptions, VoiceRealCallProfileRecoveryLoopReport, VoiceRealCallProfileRecoveryLoopStartFailure, VoiceRealCallProfileRecoveryEvidenceOptions, VoiceRealCallProfileRecoveryEvidenceProvider, VoiceRealCallProfileRecoveryEvidenceProviderRole, VoiceRealCallProfileRecoveryEvidenceResult, VoiceSQLiteRealCallProfileRecoveryJobStoreOptions, VoiceRealCallProfileTraceCollector, VoiceRealCallProfileTraceCollectorEvidenceOptions, VoiceRealCallProfileTraceCollectorOptions, VoiceRealCallProfileTraceEvidenceOptions, VoiceRealCallProfileTraceStoreEvidenceOptions, VoiceReconnectRealCallProfileEvidenceOptions, VoiceSQLiteRealCallProfileEvidenceStoreOptions, } from "./proofTrends";
|
|
49
|
+
export type { VoiceProofTrendAssertionInput, VoiceProofTrendAssertionReport, VoiceProofTrendCycle, VoiceProofTrendProfileDefinition, VoiceProofTrendProfileRecommendation, VoiceProofTrendProfileSummaryOptions, VoiceProofTrendProfileSummary, VoiceProofTrendProviderRecommendation, VoiceProofTrendProviderSummary, VoiceProofTrendReconnectSummary, VoiceProofTrendRecommendation, VoiceProofTrendRecommendationOptions, VoiceProofTrendRecommendationReport, VoiceProofTrendRecommendationRoutesOptions, VoiceProofTrendRecommendationStatus, VoiceProofTrendRecommendationSurface, VoiceProofTrendRealCallProfileEvidence, VoiceProofTrendRealCallProfileReportOptions, VoiceProofTrendReport, VoiceProofTrendReportInput, VoiceProofTrendRoutesOptions, VoiceProofTrendRuntimeChannelSummary, VoiceProofTrendStatus, VoiceProofTrendSummary, VoiceRealCallProfileDefault, VoiceRealCallProfileDefaultsOptions, VoiceRealCallProfileDefaultsReport, VoiceRealCallProfileEvidenceCreateInput, VoiceRealCallProfileEvidenceListOptions, VoiceRealCallProfileEvidenceRecord, VoiceRealCallProfileEvidenceStore, VoiceRealCallProfileHistoryOptions, VoiceRealCallProfileHistoryReport, VoiceRealCallProfileHistoryRoutesOptions, VoiceRealCallProfileProviderRouteOptions, VoiceRealCallProfileReadinessCheckOptions, VoiceRealCallProfileRecoveryActionOptions, VoiceRealCallProfileRecoveryAction, VoiceRealCallProfileRecoveryActionHandler, VoiceRealCallProfileRecoveryActionHandlerInput, VoiceRealCallProfileRecoveryActionId, VoiceRealCallProfileRecoveryJobHistoryCheckOptions, VoiceRealCallProfileRecoveryActionResult, VoiceRealCallProfileRecoveryActionRoutesOptions, VoiceRealCallProfileRecoveryJob, VoiceRealCallProfileRecoveryJobCreateInput, VoiceRealCallProfileRecoveryJobListOptions, VoiceRealCallProfileRecoveryJobStatus, VoiceRealCallProfileRecoveryJobStore, VoiceRealCallProfileRecoveryJobUpdate, VoiceRealCallProfileRecoveryLoopAction, VoiceRealCallProfileRecoveryLoopJob, VoiceRealCallProfileRecoveryLoopJobResult, VoiceRealCallProfileRecoveryLoopOptions, VoiceRealCallProfileRecoveryLoopReport, VoiceRealCallProfileRecoveryLoopStartFailure, VoiceRealCallProfileRecoveryEvidenceOptions, VoiceRealCallProfileRecoveryEvidenceProvider, VoiceRealCallProfileRecoveryEvidenceProviderRole, VoiceRealCallProfileRecoveryEvidenceResult, VoiceSQLiteRealCallProfileRecoveryJobStoreOptions, VoiceRealCallProfileTraceCollector, VoiceRealCallProfileTraceCollectorEvidenceOptions, VoiceRealCallProfileTraceCollectorOptions, VoiceRealCallProfileTraceEvidenceOptions, VoiceRealCallProfileTraceStoreEvidenceOptions, VoiceReconnectRealCallProfileEvidenceOptions, VoiceReconnectProfileEvidenceSummary, VoiceReconnectProfileEvidenceSummaryStatus, VoiceRealCallEvidenceRuntime, VoiceRealCallEvidenceRuntimeCollectOptions, VoiceRealCallEvidenceRuntimeOptions, VoiceRealCallEvidenceRuntimeReport, VoiceRealCallEvidenceRuntimeRoutesOptions, VoiceRealCallEvidenceRuntimeSourceOptions, VoiceSQLiteRealCallProfileEvidenceStoreOptions, } from "./proofTrends";
|
|
50
50
|
export { assertVoiceSloCalibration, buildVoiceSloCalibrationReport, buildVoiceSloReadinessThresholdReport, createVoiceSloReadinessThresholdOptions, createVoiceSloReadinessThresholdRoutes, createVoiceSloThresholdProfile, createVoiceSloCalibrationRoutes, renderVoiceSloCalibrationMarkdown, renderVoiceSloReadinessThresholdHTML, renderVoiceSloReadinessThresholdMarkdown, } from "./sloCalibration";
|
|
51
51
|
export type { VoiceSloCalibrationMetricKey, VoiceSloCalibrationOptions, VoiceSloCalibrationReport, VoiceSloCalibrationRoutesOptions, VoiceSloCalibrationSample, VoiceSloCalibrationStatus, VoiceSloCalibrationThreshold, VoiceSloCalibrationThresholds, VoiceSloReadinessThresholdReport, VoiceSloReadinessThresholdReportOptions, VoiceSloReadinessThresholdOptions, VoiceSloReadinessThresholdRoutesOptions, VoiceSloThresholdProfile, } from "./sloCalibration";
|
|
52
52
|
export { assertVoiceLiveOpsControlEvidence, assertVoiceLiveOpsEvidence, buildVoiceLiveOpsControlState, createVoiceLiveOpsController, createVoiceLiveOpsRoutes, createVoiceMemoryLiveOpsControlStore, evaluateVoiceLiveOpsControlEvidence, evaluateVoiceLiveOpsEvidence, getVoiceLiveOpsControlStatus, VOICE_LIVE_OPS_ACTIONS, } from "./liveOps";
|
package/dist/index.js
CHANGED
|
@@ -16509,6 +16509,33 @@ var maxNumber = (values) => {
|
|
|
16509
16509
|
const finite = values.filter((value) => typeof value === "number" && Number.isFinite(value));
|
|
16510
16510
|
return finite.length > 0 ? Math.max(...finite) : undefined;
|
|
16511
16511
|
};
|
|
16512
|
+
var buildVoiceReconnectProfileEvidenceSummary = (evidence, options = {}) => {
|
|
16513
|
+
const profileId = options.profileId ?? "reconnect-resume";
|
|
16514
|
+
const filtered = evidence.filter((record) => record.profileId === profileId).sort((left, right) => {
|
|
16515
|
+
const leftAt = Date.parse(left.generatedAt ?? left.createdAt);
|
|
16516
|
+
const rightAt = Date.parse(right.generatedAt ?? right.createdAt);
|
|
16517
|
+
return (Number.isFinite(rightAt) ? rightAt : 0) - (Number.isFinite(leftAt) ? leftAt : 0);
|
|
16518
|
+
});
|
|
16519
|
+
const latest = filtered[0];
|
|
16520
|
+
const sampleCount = filtered.reduce((total, record) => total + (record.reconnect?.samples ?? 1), 0);
|
|
16521
|
+
const snapshotCount = filtered.reduce((total, record) => total + (record.reconnect?.snapshotCount ?? 0), 0);
|
|
16522
|
+
const resumeLatencyP95Ms = maxNumber(filtered.map((record) => record.reconnect?.resumeLatencyP95Ms));
|
|
16523
|
+
const failed = filtered.some((record) => record.ok === false || record.reconnect?.status === "fail");
|
|
16524
|
+
const passed = filtered.some((record) => record.ok === true && record.reconnect?.resumed === true && record.reconnect?.reconnected === true);
|
|
16525
|
+
const status = filtered.length === 0 ? "empty" : failed ? "fail" : passed ? "pass" : "warn";
|
|
16526
|
+
return {
|
|
16527
|
+
evidence: filtered,
|
|
16528
|
+
generatedAt: options.generatedAt ?? new Date().toISOString(),
|
|
16529
|
+
latest,
|
|
16530
|
+
ok: status === "pass",
|
|
16531
|
+
profileId,
|
|
16532
|
+
resumeLatencyP95Ms,
|
|
16533
|
+
sampleCount,
|
|
16534
|
+
snapshotCount,
|
|
16535
|
+
sourceHref: options.sourceHref,
|
|
16536
|
+
status
|
|
16537
|
+
};
|
|
16538
|
+
};
|
|
16512
16539
|
var percentile2 = (values, rank) => {
|
|
16513
16540
|
const finite = values.filter((value) => Number.isFinite(value)).sort((left, right) => left - right);
|
|
16514
16541
|
if (finite.length === 0) {
|
|
@@ -16829,6 +16856,133 @@ var buildVoiceRealCallProfileEvidenceFromReconnectProofReports = (input, options
|
|
|
16829
16856
|
};
|
|
16830
16857
|
var loadVoiceRealCallProfileEvidenceFromTraceStore = async (options) => buildVoiceRealCallProfileEvidenceFromTraceEvents(await options.store.list({ limit: options.limit ?? 5000 }), options);
|
|
16831
16858
|
var loadVoiceRealCallProfileEvidenceFromStore = async (options) => options.store.list(options);
|
|
16859
|
+
var readRealCallEvidenceRuntimeKey = (evidence) => [evidence.profileId, evidence.sessionId, evidence.generatedAt ?? ""].join("\x00");
|
|
16860
|
+
var resolveRealCallEvidenceRuntimeReconnectReports = async (reports, options) => {
|
|
16861
|
+
const resolved = typeof reports === "function" ? await reports(options) : reports;
|
|
16862
|
+
if (!resolved) {
|
|
16863
|
+
return [];
|
|
16864
|
+
}
|
|
16865
|
+
return Array.isArray(resolved) ? resolved : [resolved];
|
|
16866
|
+
};
|
|
16867
|
+
var mergeRealCallEvidenceRuntimeOptions = (base, override = {}) => ({
|
|
16868
|
+
dedupe: override.dedupe ?? base.dedupe,
|
|
16869
|
+
evidenceStore: override.evidenceStore ?? base.evidenceStore,
|
|
16870
|
+
existingEvidenceLimit: override.existingEvidenceLimit ?? base.existingEvidenceLimit,
|
|
16871
|
+
history: {
|
|
16872
|
+
...base.history ?? {},
|
|
16873
|
+
...override.history ?? {}
|
|
16874
|
+
},
|
|
16875
|
+
now: override.now ?? base.now,
|
|
16876
|
+
reconnectEvidence: {
|
|
16877
|
+
...base.reconnectEvidence ?? {},
|
|
16878
|
+
...override.reconnectEvidence ?? {}
|
|
16879
|
+
},
|
|
16880
|
+
reconnectReports: override.reconnectReports ?? base.reconnectReports,
|
|
16881
|
+
traceEvidence: mergeRealCallProfileCollectorOptions(base.traceEvidence ?? {}, override.traceEvidence ?? {}),
|
|
16882
|
+
traceStore: override.traceStore ?? base.traceStore
|
|
16883
|
+
});
|
|
16884
|
+
var buildRealCallEvidenceRuntimeReport = async (options, input = {}) => {
|
|
16885
|
+
const evidence = await options.evidenceStore.list({
|
|
16886
|
+
limit: options.existingEvidenceLimit ?? 5000
|
|
16887
|
+
});
|
|
16888
|
+
const history = await buildVoiceRealCallProfileHistoryReportFromStore({
|
|
16889
|
+
...options.history ?? {},
|
|
16890
|
+
limit: options.existingEvidenceLimit ?? 5000,
|
|
16891
|
+
store: options.evidenceStore
|
|
16892
|
+
});
|
|
16893
|
+
const generatedAt = (options.now ?? (() => new Date))().toISOString();
|
|
16894
|
+
const sessions = new Set(evidence.map((record) => record.sessionId)).size;
|
|
16895
|
+
const failedProfiles = history.summary.profiles?.filter((profile) => profile.status === "fail").length;
|
|
16896
|
+
const issues = [
|
|
16897
|
+
...evidence.length === 0 ? ["No real-call profile evidence has been collected yet."] : [],
|
|
16898
|
+
...history.issues
|
|
16899
|
+
];
|
|
16900
|
+
const status = evidence.length === 0 ? "empty" : issues.length > 0 ? history.status === "pass" ? "fail" : history.status : history.status;
|
|
16901
|
+
return {
|
|
16902
|
+
appended: input.appended ?? 0,
|
|
16903
|
+
collected: input.collected ?? [],
|
|
16904
|
+
duplicateKeys: input.duplicateKeys ?? [],
|
|
16905
|
+
evidence,
|
|
16906
|
+
generatedAt,
|
|
16907
|
+
history,
|
|
16908
|
+
issues,
|
|
16909
|
+
ok: status === "pass" && issues.length === 0,
|
|
16910
|
+
skippedDuplicates: input.skippedDuplicates ?? 0,
|
|
16911
|
+
source: "real-call-evidence-runtime",
|
|
16912
|
+
status,
|
|
16913
|
+
summary: {
|
|
16914
|
+
collectedEvidence: input.collected?.length ?? 0,
|
|
16915
|
+
failedProfiles: failedProfiles ?? 0,
|
|
16916
|
+
profiles: history.summary.profileCount,
|
|
16917
|
+
sessions,
|
|
16918
|
+
storedEvidence: evidence.length
|
|
16919
|
+
}
|
|
16920
|
+
};
|
|
16921
|
+
};
|
|
16922
|
+
var collectVoiceRealCallEvidenceRuntimeEvidence = async (options) => {
|
|
16923
|
+
const evidence = [];
|
|
16924
|
+
if (options.traceStore) {
|
|
16925
|
+
evidence.push(...buildVoiceRealCallProfileEvidenceFromTraceEvents(await options.traceStore.list({
|
|
16926
|
+
limit: options.traceEvidence?.limit ?? 5000
|
|
16927
|
+
}), options.traceEvidence));
|
|
16928
|
+
}
|
|
16929
|
+
const reconnectReports = await resolveRealCallEvidenceRuntimeReconnectReports(options.reconnectReports, options);
|
|
16930
|
+
if (reconnectReports.length > 0) {
|
|
16931
|
+
evidence.push(...buildVoiceRealCallProfileEvidenceFromReconnectProofReports(reconnectReports, options.reconnectEvidence));
|
|
16932
|
+
}
|
|
16933
|
+
return evidence;
|
|
16934
|
+
};
|
|
16935
|
+
var createVoiceRealCallEvidenceRuntime = (options) => {
|
|
16936
|
+
const appendEvidence = async (evidenceInput, collectOptions = {}) => {
|
|
16937
|
+
const merged = mergeRealCallEvidenceRuntimeOptions(options, collectOptions);
|
|
16938
|
+
const evidence = Array.isArray(evidenceInput) ? [...evidenceInput] : [evidenceInput];
|
|
16939
|
+
const dedupe = merged.dedupe ?? true;
|
|
16940
|
+
const existing = dedupe ? await merged.evidenceStore.list({
|
|
16941
|
+
limit: merged.existingEvidenceLimit ?? 5000
|
|
16942
|
+
}) : [];
|
|
16943
|
+
const seen = new Set(existing.map(readRealCallEvidenceRuntimeKey));
|
|
16944
|
+
const incomingSeen = new Set;
|
|
16945
|
+
const duplicateKeys = [];
|
|
16946
|
+
let appended = 0;
|
|
16947
|
+
for (const item of evidence) {
|
|
16948
|
+
const key = readRealCallEvidenceRuntimeKey(item);
|
|
16949
|
+
if (dedupe && (seen.has(key) || incomingSeen.has(key))) {
|
|
16950
|
+
duplicateKeys.push(key);
|
|
16951
|
+
continue;
|
|
16952
|
+
}
|
|
16953
|
+
incomingSeen.add(key);
|
|
16954
|
+
await merged.evidenceStore.append(item);
|
|
16955
|
+
appended += 1;
|
|
16956
|
+
}
|
|
16957
|
+
return buildRealCallEvidenceRuntimeReport(merged, {
|
|
16958
|
+
appended,
|
|
16959
|
+
collected: evidence,
|
|
16960
|
+
duplicateKeys,
|
|
16961
|
+
skippedDuplicates: duplicateKeys.length
|
|
16962
|
+
});
|
|
16963
|
+
};
|
|
16964
|
+
return {
|
|
16965
|
+
appendEvidence,
|
|
16966
|
+
buildHistoryReport: async (historyOptions = {}) => buildVoiceRealCallProfileHistoryReportFromStore({
|
|
16967
|
+
...options.history ?? {},
|
|
16968
|
+
...historyOptions,
|
|
16969
|
+
limit: historyOptions.limit ?? options.existingEvidenceLimit ?? 5000,
|
|
16970
|
+
store: options.evidenceStore
|
|
16971
|
+
}),
|
|
16972
|
+
buildReport: async (collectOptions = {}) => buildRealCallEvidenceRuntimeReport(mergeRealCallEvidenceRuntimeOptions(options, collectOptions)),
|
|
16973
|
+
collect: async (collectOptions = {}) => {
|
|
16974
|
+
const merged = mergeRealCallEvidenceRuntimeOptions(options, collectOptions);
|
|
16975
|
+
const evidence = await collectVoiceRealCallEvidenceRuntimeEvidence(merged);
|
|
16976
|
+
return appendEvidence(evidence, {
|
|
16977
|
+
dedupe: merged.dedupe
|
|
16978
|
+
});
|
|
16979
|
+
},
|
|
16980
|
+
listEvidence: async (listOptions = {}) => await options.evidenceStore.list({
|
|
16981
|
+
limit: options.existingEvidenceLimit ?? 5000,
|
|
16982
|
+
...listOptions
|
|
16983
|
+
})
|
|
16984
|
+
};
|
|
16985
|
+
};
|
|
16832
16986
|
var realCallProfileTraceSignalTypes = new Set([
|
|
16833
16987
|
"client.barge_in",
|
|
16834
16988
|
"client.browser_media",
|
|
@@ -18415,6 +18569,31 @@ var renderVoiceRealCallProfileHistoryHTML = (report, title = "Voice Real-Call Pr
|
|
|
18415
18569
|
const issues = report.issues.length === 0 ? "<li>None</li>" : report.issues.map((issue) => `<li>${escapeHtml26(issue)}</li>`).join("");
|
|
18416
18570
|
return `<!doctype html><html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" /><title>${escapeHtml26(title)}</title><style>body{background:#111510;color:#f6f0dd;font-family:ui-sans-serif,system-ui,sans-serif;margin:0}main{margin:auto;max-width:1120px;padding:32px}.hero,article,.card{background:#182117;border:1px solid #32412d;border-radius:24px;margin-bottom:16px;padding:22px}.hero{background:linear-gradient(135deg,rgba(132,204,22,.16),rgba(20,184,166,.12))}.eyebrow{color:#bef264;font-weight:900;letter-spacing:.1em;text-transform:uppercase}h1{font-size:clamp(2.2rem,6vw,4.7rem);letter-spacing:-.06em;line-height:.92;margin:.2rem 0 1rem}.summary{display:flex;flex-wrap:wrap;gap:10px}.pill{border:1px solid #52624b;border-radius:999px;padding:8px 12px}.pass{border-color:rgba(34,197,94,.55)}.warn{border-color:rgba(245,158,11,.7)}.fail{border-color:rgba(239,68,68,.75)}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #32412d;padding:10px;text-align:left}</style></head><body><main><section class="hero"><p class="eyebrow">Real-call benchmark history</p><h1>${escapeHtml26(title)}</h1><p>Generated ${escapeHtml26(report.generatedAt)} from ${escapeHtml26(report.source)}.</p><div class="summary"><span class="pill">Status ${escapeHtml26(report.status)}</span><span class="pill">Reports ${String(report.reports)}</span><span class="pill">Profiles ${String(report.summary.profileCount)}</span><span class="pill">Defaults ${String(report.defaults.summary.actionableProfiles)}/${String(report.defaults.summary.profileCount)}</span><span class="pill">Cycles ${String(report.summary.cycles ?? 0)}</span><span class="pill">Best mix ${escapeHtml26(formatProviderMix(report.recommendations.bestProviders))}</span></div></section><section class="card"><h2>Profiles</h2><table><thead><tr><th>Profile</th><th>Status</th><th>Live p95</th><th>Provider p95</th><th>Turn p95</th><th>Provider mix</th></tr></thead><tbody>${profileRows}</tbody></table></section><section class="card"><h2>Actionable Defaults</h2><table><thead><tr><th>Profile</th><th>Status</th><th>Provider routes</th><th>Live budget</th><th>Provider budget</th><th>Turn budget</th></tr></thead><tbody>${defaultRows}</tbody></table></section>${recommendations}<section class="card"><h2>Issues</h2><ul>${issues}</ul></section></main></body></html>`;
|
|
18417
18571
|
};
|
|
18572
|
+
var renderVoiceRealCallEvidenceRuntimeMarkdown = (report, title = "Voice Real-Call Evidence Runtime") => [
|
|
18573
|
+
`# ${title}`,
|
|
18574
|
+
"",
|
|
18575
|
+
`- Status: ${report.status}`,
|
|
18576
|
+
`- Stored evidence: ${String(report.summary.storedEvidence)}`,
|
|
18577
|
+
`- Collected evidence: ${String(report.summary.collectedEvidence)}`,
|
|
18578
|
+
`- Appended: ${String(report.appended)}`,
|
|
18579
|
+
`- Skipped duplicates: ${String(report.skippedDuplicates)}`,
|
|
18580
|
+
`- Sessions: ${String(report.summary.sessions)}`,
|
|
18581
|
+
`- Profiles: ${String(report.summary.profiles)}`,
|
|
18582
|
+
"",
|
|
18583
|
+
"## Rolling Profile History",
|
|
18584
|
+
"",
|
|
18585
|
+
renderVoiceRealCallProfileHistoryMarkdown(report.history, "Rolling Real-Call Profile History"),
|
|
18586
|
+
"",
|
|
18587
|
+
"## Issues",
|
|
18588
|
+
"",
|
|
18589
|
+
...report.issues.length ? report.issues.map((issue) => `- ${issue}`) : ["- None"]
|
|
18590
|
+
].join(`
|
|
18591
|
+
`);
|
|
18592
|
+
var renderVoiceRealCallEvidenceRuntimeHTML = (report, title = "Voice Real-Call Evidence Runtime") => {
|
|
18593
|
+
const issueItems = report.issues.length === 0 ? "<li>None</li>" : report.issues.map((issue) => `<li>${escapeHtml26(issue)}</li>`).join("");
|
|
18594
|
+
const profileRows = report.history.summary.profiles?.length ? report.history.summary.profiles.map((profile) => `<tr><td>${escapeHtml26(profile.label ?? profile.id)}</td><td>${escapeHtml26(profile.status ?? "unknown")}</td><td>${escapeHtml26(profile.sessionCount ?? "n/a")}</td><td>${escapeHtml26(profile.maxLiveP95Ms ?? "n/a")}</td><td>${escapeHtml26(profile.maxProviderP95Ms ?? "n/a")}</td><td>${escapeHtml26(formatProviderMix(profile.providers ?? []))}</td></tr>`).join("") : '<tr><td colspan="6">No profile history has been collected yet.</td></tr>';
|
|
18595
|
+
return `<!doctype html><html lang="en"><head><meta charset="utf-8" /><meta name="viewport" content="width=device-width,initial-scale=1" /><title>${escapeHtml26(title)}</title><style>body{background:#0f1618;color:#f2f7f2;font-family:ui-sans-serif,system-ui,sans-serif;margin:0}main{margin:auto;max-width:1120px;padding:32px}.hero,.card{background:#162225;border:1px solid #2f4548;border-radius:24px;margin-bottom:16px;padding:22px}.hero{background:linear-gradient(135deg,rgba(20,184,166,.18),rgba(132,204,22,.1))}.eyebrow{color:#99f6e4;font-weight:900;letter-spacing:.1em;text-transform:uppercase}h1{font-size:clamp(2.1rem,6vw,4.3rem);letter-spacing:-.06em;line-height:.94;margin:.2rem 0 1rem}.summary{display:flex;flex-wrap:wrap;gap:10px}.pill{border:1px solid #4b6669;border-radius:999px;padding:8px 12px}.pass{border-color:rgba(34,197,94,.55)}.warn{border-color:rgba(245,158,11,.7)}.fail,.empty,.stale{border-color:rgba(239,68,68,.75)}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #2f4548;padding:10px;text-align:left}</style></head><body><main><section class="hero"><p class="eyebrow">Real-call evidence runtime</p><h1>${escapeHtml26(title)}</h1><p>Generated ${escapeHtml26(report.generatedAt)} from ${escapeHtml26(report.source)}.</p><div class="summary"><span class="pill ${escapeHtml26(report.status)}">Status ${escapeHtml26(report.status)}</span><span class="pill">Stored ${String(report.summary.storedEvidence)}</span><span class="pill">Collected ${String(report.summary.collectedEvidence)}</span><span class="pill">Appended ${String(report.appended)}</span><span class="pill">Duplicates ${String(report.skippedDuplicates)}</span><span class="pill">Sessions ${String(report.summary.sessions)}</span><span class="pill">Profiles ${String(report.summary.profiles)}</span></div></section><section class="card"><h2>Rolling Profile History</h2><table><thead><tr><th>Profile</th><th>Status</th><th>Sessions</th><th>Live p95</th><th>Provider p95</th><th>Provider mix</th></tr></thead><tbody>${profileRows}</tbody></table></section><section class="card"><h2>Issues</h2><ul>${issueItems}</ul></section></main></body></html>`;
|
|
18596
|
+
};
|
|
18418
18597
|
var createVoiceProofTrendRecommendationRoutes = (options) => {
|
|
18419
18598
|
const path = options.path ?? "/api/voice/proof-trend-recommendations";
|
|
18420
18599
|
const htmlPath = options.htmlPath === undefined ? "/voice/proof-trend-recommendations" : options.htmlPath;
|
|
@@ -18498,6 +18677,46 @@ var createVoiceRealCallProfileHistoryRoutes = (options = {}) => {
|
|
|
18498
18677
|
}
|
|
18499
18678
|
return routes;
|
|
18500
18679
|
};
|
|
18680
|
+
var createVoiceRealCallEvidenceRuntimeRoutes = (options) => {
|
|
18681
|
+
const path = options.jsonPath ?? "/api/voice/real-call-evidence-runtime";
|
|
18682
|
+
const collectPath = options.collectPath === undefined ? `${path}/collect` : options.collectPath;
|
|
18683
|
+
const htmlPath = options.htmlPath === undefined ? "/voice/real-call-evidence-runtime" : options.htmlPath;
|
|
18684
|
+
const markdownPath = options.markdownPath === undefined ? "/voice/real-call-evidence-runtime.md" : options.markdownPath;
|
|
18685
|
+
const title = options.title ?? "Voice Real-Call Evidence Runtime";
|
|
18686
|
+
const runtime = options.runtime ?? createVoiceRealCallEvidenceRuntime({
|
|
18687
|
+
...options
|
|
18688
|
+
});
|
|
18689
|
+
const routes = new Elysia24({
|
|
18690
|
+
name: options.name ?? "absolutejs-voice-real-call-evidence-runtime"
|
|
18691
|
+
});
|
|
18692
|
+
routes.get(path, async () => Response.json(await runtime.buildReport(), { headers: options.headers }));
|
|
18693
|
+
if (collectPath !== false) {
|
|
18694
|
+
routes.post(collectPath, async () => Response.json(await runtime.collect(), { headers: options.headers }));
|
|
18695
|
+
}
|
|
18696
|
+
if (htmlPath !== false) {
|
|
18697
|
+
routes.get(htmlPath, async () => {
|
|
18698
|
+
const report = await runtime.buildReport();
|
|
18699
|
+
return new Response(renderVoiceRealCallEvidenceRuntimeHTML(report, title), {
|
|
18700
|
+
headers: {
|
|
18701
|
+
"content-type": "text/html; charset=utf-8",
|
|
18702
|
+
...Object.fromEntries(new Headers(options.headers))
|
|
18703
|
+
}
|
|
18704
|
+
});
|
|
18705
|
+
});
|
|
18706
|
+
}
|
|
18707
|
+
if (markdownPath !== false) {
|
|
18708
|
+
routes.get(markdownPath, async () => {
|
|
18709
|
+
const report = await runtime.buildReport();
|
|
18710
|
+
return new Response(renderVoiceRealCallEvidenceRuntimeMarkdown(report, title), {
|
|
18711
|
+
headers: {
|
|
18712
|
+
"content-type": "text/markdown; charset=utf-8",
|
|
18713
|
+
...Object.fromEntries(new Headers(options.headers))
|
|
18714
|
+
}
|
|
18715
|
+
});
|
|
18716
|
+
});
|
|
18717
|
+
}
|
|
18718
|
+
return routes;
|
|
18719
|
+
};
|
|
18501
18720
|
var realCallProfileActionPaths = {
|
|
18502
18721
|
"collect-browser-proof": "/collect-browser-proof",
|
|
18503
18722
|
"collect-phone-proof": "/collect-phone-proof",
|
|
@@ -42287,6 +42506,8 @@ export {
|
|
|
42287
42506
|
renderVoiceRealtimeChannelHTML,
|
|
42288
42507
|
renderVoiceRealCallProfileHistoryMarkdown,
|
|
42289
42508
|
renderVoiceRealCallProfileHistoryHTML,
|
|
42509
|
+
renderVoiceRealCallEvidenceRuntimeMarkdown,
|
|
42510
|
+
renderVoiceRealCallEvidenceRuntimeHTML,
|
|
42290
42511
|
renderVoiceQualityHTML,
|
|
42291
42512
|
renderVoiceProviderSloMarkdown,
|
|
42292
42513
|
renderVoiceProviderSloHTML,
|
|
@@ -42557,6 +42778,8 @@ export {
|
|
|
42557
42778
|
createVoiceRealCallProfileTraceCollector,
|
|
42558
42779
|
createVoiceRealCallProfileRecoveryActionRoutes,
|
|
42559
42780
|
createVoiceRealCallProfileHistoryRoutes,
|
|
42781
|
+
createVoiceRealCallEvidenceRuntimeRoutes,
|
|
42782
|
+
createVoiceRealCallEvidenceRuntime,
|
|
42560
42783
|
createVoiceReadinessProfile,
|
|
42561
42784
|
createVoiceQualityRoutes,
|
|
42562
42785
|
createVoiceProviderSloRoutes,
|
|
@@ -42789,6 +43012,7 @@ export {
|
|
|
42789
43012
|
buildVoiceSessionSnapshotStatus,
|
|
42790
43013
|
buildVoiceSessionSnapshot,
|
|
42791
43014
|
buildVoiceReconnectProofReport,
|
|
43015
|
+
buildVoiceReconnectProfileEvidenceSummary,
|
|
42792
43016
|
buildVoiceRealtimeProviderContractMatrix,
|
|
42793
43017
|
buildVoiceRealtimeChannelRuntimeSamplesFromTrace,
|
|
42794
43018
|
buildVoiceRealtimeChannelReport,
|
package/dist/proofTrends.d.ts
CHANGED
|
@@ -166,6 +166,19 @@ export type VoiceRealCallProfileEvidenceRecord = VoiceProofTrendRealCallProfileE
|
|
|
166
166
|
createdAt: string;
|
|
167
167
|
id: string;
|
|
168
168
|
};
|
|
169
|
+
export type VoiceReconnectProfileEvidenceSummaryStatus = "empty" | "fail" | "pass" | "warn";
|
|
170
|
+
export type VoiceReconnectProfileEvidenceSummary = {
|
|
171
|
+
evidence: VoiceRealCallProfileEvidenceRecord[];
|
|
172
|
+
generatedAt: string;
|
|
173
|
+
latest?: VoiceRealCallProfileEvidenceRecord;
|
|
174
|
+
ok: boolean;
|
|
175
|
+
profileId: string;
|
|
176
|
+
resumeLatencyP95Ms?: number;
|
|
177
|
+
sampleCount: number;
|
|
178
|
+
snapshotCount: number;
|
|
179
|
+
sourceHref?: string;
|
|
180
|
+
status: VoiceReconnectProfileEvidenceSummaryStatus;
|
|
181
|
+
};
|
|
169
182
|
export type VoiceRealCallProfileEvidenceCreateInput = VoiceProofTrendRealCallProfileEvidence & {
|
|
170
183
|
createdAt?: string;
|
|
171
184
|
id?: string;
|
|
@@ -223,6 +236,60 @@ export type VoiceRealCallProfileTraceCollector<TEvent extends StoredVoiceTraceEv
|
|
|
223
236
|
listCapturedSessionIds: () => string[];
|
|
224
237
|
listEvidence: (options?: VoiceRealCallProfileTraceCollectorEvidenceOptions) => Promise<VoiceProofTrendRealCallProfileEvidence[]>;
|
|
225
238
|
};
|
|
239
|
+
export type VoiceRealCallEvidenceRuntimeSourceOptions = {
|
|
240
|
+
existingEvidenceLimit?: number;
|
|
241
|
+
evidenceStore: VoiceRealCallProfileEvidenceStore;
|
|
242
|
+
history?: Omit<VoiceRealCallProfileHistoryOptions, "evidence">;
|
|
243
|
+
reconnectEvidence?: VoiceReconnectRealCallProfileEvidenceOptions;
|
|
244
|
+
reconnectReports?: ((options: VoiceRealCallEvidenceRuntimeCollectOptions) => Promise<VoiceReconnectProofReport | VoiceReconnectContractReport | readonly (VoiceReconnectProofReport | VoiceReconnectContractReport)[] | undefined> | VoiceReconnectProofReport | VoiceReconnectContractReport | readonly (VoiceReconnectProofReport | VoiceReconnectContractReport)[] | undefined) | VoiceReconnectProofReport | VoiceReconnectContractReport | readonly (VoiceReconnectProofReport | VoiceReconnectContractReport)[];
|
|
245
|
+
traceEvidence?: VoiceRealCallProfileTraceCollectorEvidenceOptions;
|
|
246
|
+
traceStore?: VoiceTraceEventStore;
|
|
247
|
+
};
|
|
248
|
+
export type VoiceRealCallEvidenceRuntimeOptions = VoiceRealCallEvidenceRuntimeSourceOptions & {
|
|
249
|
+
dedupe?: boolean;
|
|
250
|
+
now?: () => Date;
|
|
251
|
+
};
|
|
252
|
+
export type VoiceRealCallEvidenceRuntimeCollectOptions = Partial<VoiceRealCallEvidenceRuntimeSourceOptions> & {
|
|
253
|
+
dedupe?: boolean;
|
|
254
|
+
now?: () => Date;
|
|
255
|
+
};
|
|
256
|
+
export type VoiceRealCallEvidenceRuntimeReport = {
|
|
257
|
+
appended: number;
|
|
258
|
+
collected: VoiceProofTrendRealCallProfileEvidence[];
|
|
259
|
+
duplicateKeys: string[];
|
|
260
|
+
evidence: VoiceRealCallProfileEvidenceRecord[];
|
|
261
|
+
generatedAt: string;
|
|
262
|
+
history: VoiceRealCallProfileHistoryReport;
|
|
263
|
+
issues: string[];
|
|
264
|
+
ok: boolean;
|
|
265
|
+
skippedDuplicates: number;
|
|
266
|
+
source: string;
|
|
267
|
+
status: VoiceProofTrendStatus;
|
|
268
|
+
summary: {
|
|
269
|
+
collectedEvidence: number;
|
|
270
|
+
failedProfiles: number;
|
|
271
|
+
profiles: number;
|
|
272
|
+
sessions: number;
|
|
273
|
+
storedEvidence: number;
|
|
274
|
+
};
|
|
275
|
+
};
|
|
276
|
+
export type VoiceRealCallEvidenceRuntime = {
|
|
277
|
+
appendEvidence: (evidence: VoiceProofTrendRealCallProfileEvidence | readonly VoiceProofTrendRealCallProfileEvidence[], options?: Pick<VoiceRealCallEvidenceRuntimeCollectOptions, "dedupe">) => Promise<VoiceRealCallEvidenceRuntimeReport>;
|
|
278
|
+
buildHistoryReport: (options?: Omit<VoiceRealCallProfileHistoryOptions, "evidence"> & VoiceRealCallProfileEvidenceListOptions) => Promise<VoiceRealCallProfileHistoryReport>;
|
|
279
|
+
buildReport: (options?: VoiceRealCallEvidenceRuntimeCollectOptions) => Promise<VoiceRealCallEvidenceRuntimeReport>;
|
|
280
|
+
collect: (options?: VoiceRealCallEvidenceRuntimeCollectOptions) => Promise<VoiceRealCallEvidenceRuntimeReport>;
|
|
281
|
+
listEvidence: (options?: VoiceRealCallProfileEvidenceListOptions) => Promise<VoiceRealCallProfileEvidenceRecord[]>;
|
|
282
|
+
};
|
|
283
|
+
export type VoiceRealCallEvidenceRuntimeRoutesOptions = VoiceRealCallEvidenceRuntimeOptions & {
|
|
284
|
+
collectPath?: false | string;
|
|
285
|
+
headers?: HeadersInit;
|
|
286
|
+
htmlPath?: false | string;
|
|
287
|
+
jsonPath?: string;
|
|
288
|
+
markdownPath?: false | string;
|
|
289
|
+
name?: string;
|
|
290
|
+
runtime?: VoiceRealCallEvidenceRuntime;
|
|
291
|
+
title?: string;
|
|
292
|
+
};
|
|
226
293
|
export type VoiceProofTrendRealCallProfileReportOptions = VoiceProofTrendProfileSummaryOptions & {
|
|
227
294
|
baseUrl?: string;
|
|
228
295
|
evidence: readonly VoiceProofTrendRealCallProfileEvidence[];
|
|
@@ -632,12 +699,18 @@ export declare const normalizeVoiceProofTrendReport: (value: VoiceProofTrendRepo
|
|
|
632
699
|
export declare const readVoiceProofTrendReportFile: (path: string, options?: {
|
|
633
700
|
maxAgeMs?: number;
|
|
634
701
|
}) => Promise<VoiceProofTrendReport>;
|
|
702
|
+
export declare const buildVoiceReconnectProfileEvidenceSummary: (evidence: readonly VoiceRealCallProfileEvidenceRecord[], options?: {
|
|
703
|
+
generatedAt?: string;
|
|
704
|
+
profileId?: string;
|
|
705
|
+
sourceHref?: string;
|
|
706
|
+
}) => VoiceReconnectProfileEvidenceSummary;
|
|
635
707
|
export declare const buildVoiceRealCallProfileEvidenceFromTraceEvents: (events: readonly StoredVoiceTraceEvent[], options?: VoiceRealCallProfileTraceEvidenceOptions) => VoiceProofTrendRealCallProfileEvidence[];
|
|
636
708
|
export declare const buildVoiceRealCallProfileEvidenceFromReconnectProofReports: (input: VoiceReconnectProofReport | VoiceReconnectContractReport | readonly (VoiceReconnectProofReport | VoiceReconnectContractReport)[], options?: VoiceReconnectRealCallProfileEvidenceOptions) => VoiceProofTrendRealCallProfileEvidence[];
|
|
637
709
|
export declare const loadVoiceRealCallProfileEvidenceFromTraceStore: (options: VoiceRealCallProfileTraceStoreEvidenceOptions) => Promise<VoiceProofTrendRealCallProfileEvidence[]>;
|
|
638
710
|
export declare const loadVoiceRealCallProfileEvidenceFromStore: (options: VoiceRealCallProfileEvidenceListOptions & {
|
|
639
711
|
store: VoiceRealCallProfileEvidenceStore;
|
|
640
712
|
}) => Promise<VoiceRealCallProfileEvidenceRecord[]>;
|
|
713
|
+
export declare const createVoiceRealCallEvidenceRuntime: (options: VoiceRealCallEvidenceRuntimeOptions) => VoiceRealCallEvidenceRuntime;
|
|
641
714
|
export declare const createVoiceRealCallProfileTraceCollector: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(options: VoiceRealCallProfileTraceCollectorOptions<TEvent>) => VoiceRealCallProfileTraceCollector<TEvent>;
|
|
642
715
|
export declare const buildVoiceProofTrendProfileSummaries: (input: VoiceProofTrendReport | readonly VoiceProofTrendReport[], options?: VoiceProofTrendProfileSummaryOptions) => VoiceProofTrendProfileSummary[];
|
|
643
716
|
export declare const buildVoiceProofTrendReportFromRealCallProfiles: (options: VoiceProofTrendRealCallProfileReportOptions) => VoiceProofTrendReport;
|
|
@@ -665,6 +738,8 @@ export declare const renderVoiceProofTrendRecommendationMarkdown: (report: Voice
|
|
|
665
738
|
export declare const renderVoiceProofTrendRecommendationHTML: (report: VoiceProofTrendRecommendationReport, title?: string) => string;
|
|
666
739
|
export declare const renderVoiceRealCallProfileHistoryMarkdown: (report: VoiceRealCallProfileHistoryReport, title?: string) => string;
|
|
667
740
|
export declare const renderVoiceRealCallProfileHistoryHTML: (report: VoiceRealCallProfileHistoryReport, title?: string) => string;
|
|
741
|
+
export declare const renderVoiceRealCallEvidenceRuntimeMarkdown: (report: VoiceRealCallEvidenceRuntimeReport, title?: string) => string;
|
|
742
|
+
export declare const renderVoiceRealCallEvidenceRuntimeHTML: (report: VoiceRealCallEvidenceRuntimeReport, title?: string) => string;
|
|
668
743
|
export declare const createVoiceProofTrendRecommendationRoutes: (options: VoiceProofTrendRecommendationRoutesOptions) => Elysia<"", {
|
|
669
744
|
decorator: {};
|
|
670
745
|
store: {};
|
|
@@ -721,6 +796,34 @@ export declare const createVoiceRealCallProfileHistoryRoutes: (options?: VoiceRe
|
|
|
721
796
|
standaloneSchema: {};
|
|
722
797
|
response: {};
|
|
723
798
|
}>;
|
|
799
|
+
export declare const createVoiceRealCallEvidenceRuntimeRoutes: (options: VoiceRealCallEvidenceRuntimeRoutesOptions) => Elysia<"", {
|
|
800
|
+
decorator: {};
|
|
801
|
+
store: {};
|
|
802
|
+
derive: {};
|
|
803
|
+
resolve: {};
|
|
804
|
+
}, {
|
|
805
|
+
typebox: {};
|
|
806
|
+
error: {};
|
|
807
|
+
}, {
|
|
808
|
+
schema: {};
|
|
809
|
+
standaloneSchema: {};
|
|
810
|
+
macro: {};
|
|
811
|
+
macroFn: {};
|
|
812
|
+
parser: {};
|
|
813
|
+
response: {};
|
|
814
|
+
}, {}, {
|
|
815
|
+
derive: {};
|
|
816
|
+
resolve: {};
|
|
817
|
+
schema: {};
|
|
818
|
+
standaloneSchema: {};
|
|
819
|
+
response: {};
|
|
820
|
+
}, {
|
|
821
|
+
derive: {};
|
|
822
|
+
resolve: {};
|
|
823
|
+
schema: {};
|
|
824
|
+
standaloneSchema: {};
|
|
825
|
+
response: {};
|
|
826
|
+
}>;
|
|
724
827
|
export declare const createVoiceRealCallProfileRecoveryActionRoutes: (options?: VoiceRealCallProfileRecoveryActionRoutesOptions) => Elysia<"", {
|
|
725
828
|
decorator: {};
|
|
726
829
|
store: {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type VoiceReconnectProfileEvidenceWidgetOptions } from "../client/reconnectProfileEvidenceWidget";
|
|
2
|
+
export type VoiceReconnectProfileEvidenceProps = VoiceReconnectProfileEvidenceWidgetOptions & {
|
|
3
|
+
className?: string;
|
|
4
|
+
path?: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const VoiceReconnectProfileEvidence: ({ className, path, ...options }: VoiceReconnectProfileEvidenceProps) => import("react/jsx-runtime").JSX.Element;
|
package/dist/react/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { VoiceOpsActionCenter } from "./VoiceOpsActionCenter";
|
|
|
3
3
|
export { VoiceDeliveryRuntime } from "./VoiceDeliveryRuntime";
|
|
4
4
|
export { VoicePlatformCoverage } from "./VoicePlatformCoverage";
|
|
5
5
|
export { VoiceProofTrends } from "./VoiceProofTrends";
|
|
6
|
+
export { VoiceReconnectProfileEvidence } from "./VoiceReconnectProfileEvidence";
|
|
6
7
|
export { VoiceCallDebuggerLaunch } from "./VoiceCallDebuggerLaunch";
|
|
7
8
|
export { VoiceSessionSnapshot } from "./VoiceSessionSnapshot";
|
|
8
9
|
export { VoiceProfileComparison } from "./VoiceProfileComparison";
|
|
@@ -20,6 +21,7 @@ export { VoiceTurnQuality } from "./VoiceTurnQuality";
|
|
|
20
21
|
export { useVoiceOpsStatus } from "./useVoiceOpsStatus";
|
|
21
22
|
export { useVoicePlatformCoverage } from "./useVoicePlatformCoverage";
|
|
22
23
|
export { useVoiceProofTrends } from "./useVoiceProofTrends";
|
|
24
|
+
export { useVoiceReconnectProfileEvidence } from "./useVoiceReconnectProfileEvidence";
|
|
23
25
|
export { useVoiceCallDebugger } from "./useVoiceCallDebugger";
|
|
24
26
|
export { useVoiceSessionSnapshot } from "./useVoiceSessionSnapshot";
|
|
25
27
|
export { useVoiceProfileComparison } from "./useVoiceProfileComparison";
|