@absolutejs/voice 0.0.22-beta.452 → 0.0.22-beta.454
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 +543 -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 +107 -0
- package/dist/proofTrends.d.ts +53 -0
- package/dist/react/VoiceReconnectProfileEvidence.d.ts +6 -0
- package/dist/react/index.d.ts +2 -0
- package/dist/react/index.js +919 -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 +825 -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, buildVoiceRealCallProfileReadinessCheck, buildVoiceRealCallProfileRecoveryJobHistoryCheck, buildVoiceRealCallProfileRecoveryActions, createVoiceInMemoryRealCallProfileRecoveryJobStore, createVoiceRealCallProfileTraceCollector, createVoiceSQLiteRealCallProfileRecoveryJobStore, createVoiceProofTrendRecommendationRoutes, createVoiceProofTrendRoutes, createVoiceRealCallProfileHistoryRoutes, createVoiceRealCallProfileRecoveryActionRoutes, DEFAULT_VOICE_PROOF_TREND_PROFILE_DEFINITIONS, DEFAULT_VOICE_PROOF_TRENDS_MAX_AGE_MS, evaluateVoiceProofTrendEvidence, formatVoiceProofTrendAge, 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, 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";
|
|
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, 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, } 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, 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) {
|
|
@@ -16828,6 +16855,7 @@ var buildVoiceRealCallProfileEvidenceFromReconnectProofReports = (input, options
|
|
|
16828
16855
|
});
|
|
16829
16856
|
};
|
|
16830
16857
|
var loadVoiceRealCallProfileEvidenceFromTraceStore = async (options) => buildVoiceRealCallProfileEvidenceFromTraceEvents(await options.store.list({ limit: options.limit ?? 5000 }), options);
|
|
16858
|
+
var loadVoiceRealCallProfileEvidenceFromStore = async (options) => options.store.list(options);
|
|
16831
16859
|
var realCallProfileTraceSignalTypes = new Set([
|
|
16832
16860
|
"client.barge_in",
|
|
16833
16861
|
"client.browser_media",
|
|
@@ -17670,6 +17698,74 @@ var createVoiceInMemoryRealCallProfileRecoveryJobStore = (options = {}) => {
|
|
|
17670
17698
|
}
|
|
17671
17699
|
};
|
|
17672
17700
|
};
|
|
17701
|
+
var normalizeRealCallProfileEvidenceTableName = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice_real_call_profile_evidence";
|
|
17702
|
+
var parseRealCallProfileEvidenceBoundary = (value) => value === undefined ? undefined : value instanceof Date ? value.getTime() : typeof value === "number" ? value : Date.parse(value);
|
|
17703
|
+
var readRealCallProfileEvidenceSortTime = (evidence, fallback) => Date.parse(evidence.generatedAt ?? fallback) || Date.parse(fallback);
|
|
17704
|
+
var createVoiceSQLiteRealCallProfileEvidenceStore = (options = {}) => {
|
|
17705
|
+
const { Database: SQLiteDatabase } = __require("bun:sqlite");
|
|
17706
|
+
const database = options.database ?? new SQLiteDatabase(options.path ?? ":memory:", {
|
|
17707
|
+
create: true
|
|
17708
|
+
});
|
|
17709
|
+
const tableName = normalizeRealCallProfileEvidenceTableName(options.tableName ?? "voice_real_call_profile_evidence");
|
|
17710
|
+
const now = () => (options.now ?? (() => new Date))().toISOString();
|
|
17711
|
+
const createId3 = () => `${options.idPrefix ?? "voice-profile-evidence"}-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
17712
|
+
database.exec("PRAGMA journal_mode = WAL;");
|
|
17713
|
+
database.exec("PRAGMA synchronous = NORMAL;");
|
|
17714
|
+
database.exec("PRAGMA busy_timeout = 5000;");
|
|
17715
|
+
database.exec(`CREATE TABLE IF NOT EXISTS "${tableName}" (
|
|
17716
|
+
id TEXT PRIMARY KEY,
|
|
17717
|
+
sort_at INTEGER NOT NULL,
|
|
17718
|
+
profile_id TEXT NOT NULL,
|
|
17719
|
+
session_id TEXT NOT NULL,
|
|
17720
|
+
created_at TEXT NOT NULL,
|
|
17721
|
+
payload TEXT NOT NULL
|
|
17722
|
+
)`);
|
|
17723
|
+
const selectStatement = database.query(`SELECT payload FROM "${tableName}" WHERE id = ?1 LIMIT 1`);
|
|
17724
|
+
const listStatement = database.query(`SELECT payload FROM "${tableName}" ORDER BY sort_at DESC, id DESC`);
|
|
17725
|
+
const upsertStatement = database.query(`INSERT INTO "${tableName}" (id, sort_at, profile_id, session_id, created_at, payload)
|
|
17726
|
+
VALUES (?1, ?2, ?3, ?4, ?5, ?6)
|
|
17727
|
+
ON CONFLICT(id) DO UPDATE SET
|
|
17728
|
+
sort_at = excluded.sort_at,
|
|
17729
|
+
profile_id = excluded.profile_id,
|
|
17730
|
+
session_id = excluded.session_id,
|
|
17731
|
+
created_at = excluded.created_at,
|
|
17732
|
+
payload = excluded.payload`);
|
|
17733
|
+
const deleteStatement = database.query(`DELETE FROM "${tableName}" WHERE id = ?1`);
|
|
17734
|
+
const writeEvidence = (record) => {
|
|
17735
|
+
upsertStatement.run(record.id, readRealCallProfileEvidenceSortTime(record, record.createdAt), record.profileId, record.sessionId, record.createdAt, JSON.stringify(record));
|
|
17736
|
+
return record;
|
|
17737
|
+
};
|
|
17738
|
+
const readEvidence = (id) => {
|
|
17739
|
+
const row = selectStatement.get(id);
|
|
17740
|
+
return row ? JSON.parse(row.payload) : undefined;
|
|
17741
|
+
};
|
|
17742
|
+
const matchesListOptions = (record, input) => {
|
|
17743
|
+
const evidenceTime = readRealCallProfileEvidenceSortTime(record, record.createdAt);
|
|
17744
|
+
const since = parseRealCallProfileEvidenceBoundary(input.since);
|
|
17745
|
+
const until = parseRealCallProfileEvidenceBoundary(input.until);
|
|
17746
|
+
return (!input.profileId || record.profileId === input.profileId) && (!input.sessionId || record.sessionId === input.sessionId) && (since === undefined || Number.isNaN(since) || evidenceTime >= since) && (until === undefined || Number.isNaN(until) || evidenceTime <= until);
|
|
17747
|
+
};
|
|
17748
|
+
return {
|
|
17749
|
+
append(input) {
|
|
17750
|
+
const createdAt = input.createdAt ?? now();
|
|
17751
|
+
return writeEvidence({
|
|
17752
|
+
...input,
|
|
17753
|
+
createdAt,
|
|
17754
|
+
id: input.id ?? createId3()
|
|
17755
|
+
});
|
|
17756
|
+
},
|
|
17757
|
+
get(id) {
|
|
17758
|
+
return readEvidence(id);
|
|
17759
|
+
},
|
|
17760
|
+
list(input = {}) {
|
|
17761
|
+
const limit = Number.isFinite(input.limit) && input.limit !== undefined && input.limit > 0 ? Math.floor(input.limit) : 500;
|
|
17762
|
+
return listStatement.all().map((row) => JSON.parse(row.payload)).filter((record) => matchesListOptions(record, input)).slice(0, limit);
|
|
17763
|
+
},
|
|
17764
|
+
remove(id) {
|
|
17765
|
+
deleteStatement.run(id);
|
|
17766
|
+
}
|
|
17767
|
+
};
|
|
17768
|
+
};
|
|
17673
17769
|
var normalizeRealCallRecoveryJobTableName = (value) => value.trim().replace(/[^a-zA-Z0-9_]+/g, "_").replace(/^_+|_+$/g, "") || "voice_real_call_profile_recovery_jobs";
|
|
17674
17770
|
var createVoiceSQLiteRealCallProfileRecoveryJobStore = (options = {}) => {
|
|
17675
17771
|
const { Database: SQLiteDatabase } = __require("bun:sqlite");
|
|
@@ -17923,6 +18019,13 @@ var buildVoiceRealCallProfileHistoryReport = (options = {}) => {
|
|
|
17923
18019
|
trend
|
|
17924
18020
|
};
|
|
17925
18021
|
};
|
|
18022
|
+
var buildVoiceRealCallProfileHistoryReportFromStore = async (options) => {
|
|
18023
|
+
const evidence = await options.store.list(options);
|
|
18024
|
+
return buildVoiceRealCallProfileHistoryReport({
|
|
18025
|
+
...options,
|
|
18026
|
+
evidence
|
|
18027
|
+
});
|
|
18028
|
+
};
|
|
17926
18029
|
var normalizeProviderStatus = (status) => status === "pass" ? "pass" : status === "fail" ? "fail" : "warn";
|
|
17927
18030
|
var providerSortScore = (provider) => [
|
|
17928
18031
|
recommendationStatusRank[provider.status],
|
|
@@ -42307,6 +42410,7 @@ export {
|
|
|
42307
42410
|
markVoiceOpsTaskSLABreached,
|
|
42308
42411
|
mapVoiceProofTargetsWithConcurrency,
|
|
42309
42412
|
loadVoiceRealCallProfileEvidenceFromTraceStore,
|
|
42413
|
+
loadVoiceRealCallProfileEvidenceFromStore,
|
|
42310
42414
|
loadVoiceObservabilityExportReplaySource,
|
|
42311
42415
|
listVoiceRoutingEvents,
|
|
42312
42416
|
listVoiceProviderDecisionTraces,
|
|
@@ -42454,6 +42558,7 @@ export {
|
|
|
42454
42558
|
createVoiceSQLiteRuntimeStorage,
|
|
42455
42559
|
createVoiceSQLiteReviewStore,
|
|
42456
42560
|
createVoiceSQLiteRealCallProfileRecoveryJobStore,
|
|
42561
|
+
createVoiceSQLiteRealCallProfileEvidenceStore,
|
|
42457
42562
|
createVoiceSQLitePlivoWebhookNonceStore,
|
|
42458
42563
|
createVoiceSQLiteIntegrationEventStore,
|
|
42459
42564
|
createVoiceSQLiteExternalObjectMapStore,
|
|
@@ -42711,12 +42816,14 @@ export {
|
|
|
42711
42816
|
buildVoiceSessionSnapshotStatus,
|
|
42712
42817
|
buildVoiceSessionSnapshot,
|
|
42713
42818
|
buildVoiceReconnectProofReport,
|
|
42819
|
+
buildVoiceReconnectProfileEvidenceSummary,
|
|
42714
42820
|
buildVoiceRealtimeProviderContractMatrix,
|
|
42715
42821
|
buildVoiceRealtimeChannelRuntimeSamplesFromTrace,
|
|
42716
42822
|
buildVoiceRealtimeChannelReport,
|
|
42717
42823
|
buildVoiceRealCallProfileRecoveryJobHistoryCheck,
|
|
42718
42824
|
buildVoiceRealCallProfileRecoveryActions,
|
|
42719
42825
|
buildVoiceRealCallProfileReadinessCheck,
|
|
42826
|
+
buildVoiceRealCallProfileHistoryReportFromStore,
|
|
42720
42827
|
buildVoiceRealCallProfileHistoryReport,
|
|
42721
42828
|
buildVoiceRealCallProfileEvidenceFromTraceEvents,
|
|
42722
42829
|
buildVoiceRealCallProfileEvidenceFromReconnectProofReports,
|
package/dist/proofTrends.d.ts
CHANGED
|
@@ -162,6 +162,47 @@ export type VoiceProofTrendRealCallProfileEvidence = {
|
|
|
162
162
|
surfaces?: string[];
|
|
163
163
|
turnP95Ms?: number;
|
|
164
164
|
};
|
|
165
|
+
export type VoiceRealCallProfileEvidenceRecord = VoiceProofTrendRealCallProfileEvidence & {
|
|
166
|
+
createdAt: string;
|
|
167
|
+
id: string;
|
|
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
|
+
};
|
|
182
|
+
export type VoiceRealCallProfileEvidenceCreateInput = VoiceProofTrendRealCallProfileEvidence & {
|
|
183
|
+
createdAt?: string;
|
|
184
|
+
id?: string;
|
|
185
|
+
};
|
|
186
|
+
export type VoiceRealCallProfileEvidenceListOptions = {
|
|
187
|
+
limit?: number;
|
|
188
|
+
profileId?: string;
|
|
189
|
+
sessionId?: string;
|
|
190
|
+
since?: Date | number | string;
|
|
191
|
+
until?: Date | number | string;
|
|
192
|
+
};
|
|
193
|
+
export type VoiceRealCallProfileEvidenceStore = {
|
|
194
|
+
append(input: VoiceRealCallProfileEvidenceCreateInput): Promise<VoiceRealCallProfileEvidenceRecord> | VoiceRealCallProfileEvidenceRecord;
|
|
195
|
+
get(id: string): Promise<VoiceRealCallProfileEvidenceRecord | undefined> | VoiceRealCallProfileEvidenceRecord | undefined;
|
|
196
|
+
list(options?: VoiceRealCallProfileEvidenceListOptions): Promise<VoiceRealCallProfileEvidenceRecord[]> | VoiceRealCallProfileEvidenceRecord[];
|
|
197
|
+
remove(id: string): Promise<void> | void;
|
|
198
|
+
};
|
|
199
|
+
export type VoiceSQLiteRealCallProfileEvidenceStoreOptions = {
|
|
200
|
+
database?: Database;
|
|
201
|
+
idPrefix?: string;
|
|
202
|
+
now?: () => Date;
|
|
203
|
+
path?: string;
|
|
204
|
+
tableName?: string;
|
|
205
|
+
};
|
|
165
206
|
export type VoiceReconnectRealCallProfileEvidenceOptions = {
|
|
166
207
|
operationsRecordHref?: string | ((report: VoiceReconnectProofReport | VoiceReconnectContractReport, index: number) => string | undefined);
|
|
167
208
|
profileDescription?: string;
|
|
@@ -604,9 +645,17 @@ export declare const normalizeVoiceProofTrendReport: (value: VoiceProofTrendRepo
|
|
|
604
645
|
export declare const readVoiceProofTrendReportFile: (path: string, options?: {
|
|
605
646
|
maxAgeMs?: number;
|
|
606
647
|
}) => Promise<VoiceProofTrendReport>;
|
|
648
|
+
export declare const buildVoiceReconnectProfileEvidenceSummary: (evidence: readonly VoiceRealCallProfileEvidenceRecord[], options?: {
|
|
649
|
+
generatedAt?: string;
|
|
650
|
+
profileId?: string;
|
|
651
|
+
sourceHref?: string;
|
|
652
|
+
}) => VoiceReconnectProfileEvidenceSummary;
|
|
607
653
|
export declare const buildVoiceRealCallProfileEvidenceFromTraceEvents: (events: readonly StoredVoiceTraceEvent[], options?: VoiceRealCallProfileTraceEvidenceOptions) => VoiceProofTrendRealCallProfileEvidence[];
|
|
608
654
|
export declare const buildVoiceRealCallProfileEvidenceFromReconnectProofReports: (input: VoiceReconnectProofReport | VoiceReconnectContractReport | readonly (VoiceReconnectProofReport | VoiceReconnectContractReport)[], options?: VoiceReconnectRealCallProfileEvidenceOptions) => VoiceProofTrendRealCallProfileEvidence[];
|
|
609
655
|
export declare const loadVoiceRealCallProfileEvidenceFromTraceStore: (options: VoiceRealCallProfileTraceStoreEvidenceOptions) => Promise<VoiceProofTrendRealCallProfileEvidence[]>;
|
|
656
|
+
export declare const loadVoiceRealCallProfileEvidenceFromStore: (options: VoiceRealCallProfileEvidenceListOptions & {
|
|
657
|
+
store: VoiceRealCallProfileEvidenceStore;
|
|
658
|
+
}) => Promise<VoiceRealCallProfileEvidenceRecord[]>;
|
|
610
659
|
export declare const createVoiceRealCallProfileTraceCollector: <TEvent extends StoredVoiceTraceEvent = StoredVoiceTraceEvent>(options: VoiceRealCallProfileTraceCollectorOptions<TEvent>) => VoiceRealCallProfileTraceCollector<TEvent>;
|
|
611
660
|
export declare const buildVoiceProofTrendProfileSummaries: (input: VoiceProofTrendReport | readonly VoiceProofTrendReport[], options?: VoiceProofTrendProfileSummaryOptions) => VoiceProofTrendProfileSummary[];
|
|
612
661
|
export declare const buildVoiceProofTrendReportFromRealCallProfiles: (options: VoiceProofTrendRealCallProfileReportOptions) => VoiceProofTrendReport;
|
|
@@ -618,11 +667,15 @@ export declare const createVoiceInMemoryRealCallProfileRecoveryJobStore: (option
|
|
|
618
667
|
idPrefix?: string;
|
|
619
668
|
now?: () => Date;
|
|
620
669
|
}) => VoiceRealCallProfileRecoveryJobStore;
|
|
670
|
+
export declare const createVoiceSQLiteRealCallProfileEvidenceStore: (options?: VoiceSQLiteRealCallProfileEvidenceStoreOptions) => VoiceRealCallProfileEvidenceStore;
|
|
621
671
|
export declare const createVoiceSQLiteRealCallProfileRecoveryJobStore: (options?: VoiceSQLiteRealCallProfileRecoveryJobStoreOptions) => VoiceRealCallProfileRecoveryJobStore;
|
|
622
672
|
export declare const buildVoiceRealCallProfileReadinessCheck: (report: VoiceRealCallProfileHistoryReport, options?: VoiceRealCallProfileReadinessCheckOptions) => VoiceProductionReadinessCheck;
|
|
623
673
|
export declare const buildVoiceRealCallProfileRecoveryJobHistoryCheck: (store: Pick<VoiceRealCallProfileRecoveryJobStore, "list"> | undefined, options?: VoiceRealCallProfileRecoveryJobHistoryCheckOptions) => Promise<VoiceProductionReadinessCheck>;
|
|
624
674
|
export declare const resolveVoiceRealCallProfileProviderRoute: <TProvider extends string = string>(options: VoiceRealCallProfileProviderRouteOptions<TProvider>) => TProvider | undefined;
|
|
625
675
|
export declare const buildVoiceRealCallProfileHistoryReport: (options?: VoiceRealCallProfileHistoryOptions) => VoiceRealCallProfileHistoryReport;
|
|
676
|
+
export declare const buildVoiceRealCallProfileHistoryReportFromStore: (options: Omit<VoiceRealCallProfileHistoryOptions, "evidence"> & VoiceRealCallProfileEvidenceListOptions & {
|
|
677
|
+
store: VoiceRealCallProfileEvidenceStore;
|
|
678
|
+
}) => Promise<VoiceRealCallProfileHistoryReport>;
|
|
626
679
|
export declare const evaluateVoiceProofTrendEvidence: (report: VoiceProofTrendReport, input?: VoiceProofTrendAssertionInput) => VoiceProofTrendAssertionReport;
|
|
627
680
|
export declare const assertVoiceProofTrendEvidence: (report: VoiceProofTrendReport, input?: VoiceProofTrendAssertionInput) => VoiceProofTrendAssertionReport;
|
|
628
681
|
export declare const buildVoiceProofTrendRecommendationReport: (report: VoiceProofTrendReport, options?: VoiceProofTrendRecommendationOptions) => VoiceProofTrendRecommendationReport;
|
|
@@ -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";
|