@absolutejs/voice 0.0.22-beta.419 → 0.0.22-beta.420
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/index.d.ts +1 -1
- package/dist/index.js +49 -35
- package/dist/productionReadiness.d.ts +7 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -152,7 +152,7 @@ export type { VoicePhoneAgentCarrier, VoicePhoneAgentCarrierSummary, VoicePhoneA
|
|
|
152
152
|
export type { VoicePhoneAgentProductionSmokeIssue, VoicePhoneAgentProductionSmokeHandlerOptions, VoicePhoneAgentProductionSmokeHTMLHandlerOptions, VoicePhoneAgentProductionSmokeOptions, VoicePhoneAgentProductionSmokeReport, VoicePhoneAgentProductionSmokeRoutesOptions, VoicePhoneAgentProductionSmokeRequirement } from './phoneAgentProductionSmoke';
|
|
153
153
|
export type { VoiceOpsConsoleLink, VoiceOpsConsoleReport, VoiceOpsConsoleRoutesOptions } from './opsConsoleRoutes';
|
|
154
154
|
export type { VoiceOpsStatus, VoiceOpsStatusLink, VoiceOpsStatusOptions, VoiceOpsStatusReport, VoiceOpsStatusRoutesOptions } from './opsStatus';
|
|
155
|
-
export type { VoiceProductionReadinessAction, VoiceProductionReadinessAuditOptions, VoiceProductionReadinessAuditRequirement, VoiceProductionReadinessAuditSummary, VoiceProductionReadinessAssertionInput, VoiceProductionReadinessAssertionReport, VoiceProductionReadinessCheck, VoiceProductionReadinessGateExplanation, VoiceProductionReadinessGateIssue, VoiceProductionReadinessGateOptions, VoiceProductionReadinessGateProfile, VoiceProductionReadinessGateProfileSurface, VoiceProductionReadinessGateReport, VoiceProductionReadinessOpsActionHistoryOptions, VoiceProductionReadinessOpsActionHistorySummary, VoiceProductionReadinessOperationsRecordLink, VoiceProductionReadinessOperationsRecordLinks, VoiceProductionReadinessProfileExplanation, VoiceProductionReadinessProfileSurface, VoiceProductionReadinessProofMetadata, VoiceProductionReadinessProofRuntime, VoiceProductionReadinessProofRuntimeOptions, VoiceProductionReadinessProofRuntimeSeedOptions, VoiceProductionReadinessProofSource, VoiceProductionReadinessReport, VoiceProductionReadinessRouteInput, VoiceProductionReadinessRoutesOptions, VoiceProductionReadinessTraceDeliverySummary, VoiceReadinessRecoveryAction, VoiceReadinessRecoveryActionOptions, VoiceReadinessRecoveryActionPlan, VoiceProductionReadinessAuditDeliveryOptions, VoiceProductionReadinessAuditDeliverySummary, VoiceProductionReadinessTraceDeliveryOptions, VoiceProductionReadinessStatus } from './productionReadiness';
|
|
155
|
+
export type { VoiceProductionReadinessAction, VoiceProductionReadinessAuditOptions, VoiceProductionReadinessAuditRequirement, VoiceProductionReadinessAuditSummary, VoiceProductionReadinessAssertionInput, VoiceProductionReadinessAssertionReport, VoiceProductionReadinessCheck, VoiceProductionReadinessGateExplanation, VoiceProductionReadinessGateIssue, VoiceProductionReadinessGateOptions, VoiceProductionReadinessGateProfile, VoiceProductionReadinessGateProfileSurface, VoiceProductionReadinessGateReport, VoiceProductionReadinessOpsActionHistoryOptions, VoiceProductionReadinessOpsActionHistorySummary, VoiceProductionReadinessOperationsRecordLink, VoiceProductionReadinessOperationsRecordLinks, VoiceProductionReadinessProfileExplanation, VoiceProductionReadinessProfileSurface, VoiceProductionReadinessProofMetadata, VoiceProductionReadinessProofRuntime, VoiceProductionReadinessProofRuntimeOptions, VoiceProductionReadinessProofRuntimeSeedOptions, VoiceProductionReadinessProofSource, VoiceProductionReadinessReport, VoiceProductionReadinessRouteInput, VoiceProductionReadinessRoutesOptions, VoiceProductionReadinessTraceDeliverySummary, VoiceProductionReadinessTiming, VoiceReadinessRecoveryAction, VoiceReadinessRecoveryActionOptions, VoiceReadinessRecoveryActionPlan, VoiceProductionReadinessAuditDeliveryOptions, VoiceProductionReadinessAuditDeliverySummary, VoiceProductionReadinessTraceDeliveryOptions, VoiceProductionReadinessStatus } from './productionReadiness';
|
|
156
156
|
export type { VoiceMonitorDefinition, VoiceMonitorEvaluation, VoiceMonitorEvaluationInput, VoiceMonitorIssue, VoiceMonitorIssueStatus, VoiceMonitorIssueStore, VoiceMonitorNotifier, VoiceMonitorNotifierDeliveryInput, VoiceMonitorNotifierDeliveryOptions, VoiceMonitorNotifierDeliveryReceipt, VoiceMonitorNotifierDeliveryReceiptStore, VoiceMonitorNotifierDeliveryReport, VoiceMonitorNotifierDeliveryResult, VoiceMonitorRoutesOptions, VoiceMonitorRun, VoiceMonitorRunOptions, VoiceMonitorRunReport, VoiceMonitorRunner, VoiceMonitorRunnerOptions, VoiceMonitorRunnerRoutesOptions, VoiceMonitorRunnerTickResult, VoiceMonitorSeverity, VoiceMonitorStatus, VoiceMonitorWebhookNotifierOptions } from './voiceMonitoring';
|
|
157
157
|
export type { VoiceReadinessProfileName, VoiceReadinessProfileOptions, VoiceReadinessProfileRecommendation, VoiceReadinessProfileRecommendationScore, VoiceReadinessProfileRoutesOptions } from './readinessProfiles';
|
|
158
158
|
export type { VoiceProviderStackChoice, VoiceProviderStackCapabilities, VoiceProviderStackCapabilityGap, VoiceProviderStackCapabilityGapInput, VoiceProviderStackCapabilityGapReport, VoiceProviderContractCheck, VoiceProviderContractCheckStatus, VoiceProviderContractDefinition, VoiceProviderContractMatrixAssertionInput, VoiceProviderContractMatrixAssertionReport, VoiceProviderContractMatrixHandlerOptions, VoiceProviderContractMatrixHTMLHandlerOptions, VoiceProviderContractMatrixInput, VoiceProviderContractMatrixPresetOptions, VoiceProviderContractMatrixReport, VoiceProviderContractMatrixRoutesOptions, VoiceProviderContractMatrixRow, VoiceProviderStackAssertionInput, VoiceProviderStackAssertionReport, VoiceProviderStackInput, VoiceProviderStackKind, VoiceProviderStackRecommendation } from './providerStackRecommendations';
|
package/dist/index.js
CHANGED
|
@@ -34485,7 +34485,21 @@ var firstOperationsRecordHref = (links) => links[0]?.href;
|
|
|
34485
34485
|
var buildVoiceProductionReadinessReport = async (options, input = {}) => {
|
|
34486
34486
|
const request = input.request ?? new Request("http://localhost/");
|
|
34487
34487
|
const query = input.query ?? {};
|
|
34488
|
-
const
|
|
34488
|
+
const time = async (label, run) => {
|
|
34489
|
+
const startedAt = Date.now();
|
|
34490
|
+
try {
|
|
34491
|
+
return await run();
|
|
34492
|
+
} finally {
|
|
34493
|
+
const endedAt = Date.now();
|
|
34494
|
+
options.onTiming?.({
|
|
34495
|
+
durationMs: Math.max(0, endedAt - startedAt),
|
|
34496
|
+
endedAt,
|
|
34497
|
+
label,
|
|
34498
|
+
startedAt
|
|
34499
|
+
});
|
|
34500
|
+
}
|
|
34501
|
+
};
|
|
34502
|
+
const events = await time("traceEvents", () => options.store.list());
|
|
34489
34503
|
const minTraceAt = typeof options.traceMaxAgeMs === "number" && Number.isFinite(options.traceMaxAgeMs) && options.traceMaxAgeMs > 0 ? Date.now() - options.traceMaxAgeMs : undefined;
|
|
34490
34504
|
const readinessEvents = minTraceAt === undefined ? events : events.filter((event) => event.at >= minTraceAt);
|
|
34491
34505
|
const routingEvents = listVoiceRoutingEvents(readinessEvents);
|
|
@@ -34527,8 +34541,8 @@ var buildVoiceProductionReadinessReport = async (options, input = {}) => {
|
|
|
34527
34541
|
proofSources,
|
|
34528
34542
|
additionalChecks
|
|
34529
34543
|
] = await Promise.all([
|
|
34530
|
-
evaluateVoiceQuality({ events: readinessEvents }),
|
|
34531
|
-
Promise.all([
|
|
34544
|
+
time("quality", () => evaluateVoiceQuality({ events: readinessEvents })),
|
|
34545
|
+
time("providers", () => Promise.all([
|
|
34532
34546
|
summarizeVoiceProviderHealth({
|
|
34533
34547
|
events: readinessEvents,
|
|
34534
34548
|
providers: options.llmProviders ?? []
|
|
@@ -34541,38 +34555,38 @@ var buildVoiceProductionReadinessReport = async (options, input = {}) => {
|
|
|
34541
34555
|
events: readinessEvents.filter((event) => event.payload.kind === "tts"),
|
|
34542
34556
|
providers: options.ttsProviders ?? []
|
|
34543
34557
|
})
|
|
34544
|
-
]).then((groups) => groups.flat()),
|
|
34545
|
-
summarizeVoiceSessions({ events: readinessEvents, status: "all" }),
|
|
34546
|
-
summarizeVoiceHandoffHealth({ events: readinessEvents }),
|
|
34547
|
-
summarizeAuditEvidence(options),
|
|
34548
|
-
summarizeAuditDeliveries(options),
|
|
34549
|
-
summarizeOpsActionHistory(options),
|
|
34550
|
-
summarizeTraceDeliveries(options),
|
|
34551
|
-
resolveDeliveryRuntime(options, { query, request }),
|
|
34552
|
-
resolveCarriers(options, { query, request }),
|
|
34553
|
-
resolveAgentSquadContracts(options, { query, request }),
|
|
34554
|
-
resolveProviderRoutingContracts(options, { query, request }),
|
|
34555
|
-
resolveProviderSlo(options, { query, request }),
|
|
34556
|
-
resolveProviderOrchestration(options, { query, request }),
|
|
34557
|
-
resolveProfileSwitchReadiness(options, { query, request }),
|
|
34558
|
-
resolveProviderStack(options, { query, request }),
|
|
34559
|
-
resolveProviderContractMatrix(options, { query, request }),
|
|
34560
|
-
resolvePhoneAgentSmokes(options, { query, request }),
|
|
34561
|
-
resolveMonitoring(options, { query, request }),
|
|
34562
|
-
resolveMonitoringNotifierDelivery(options, { query, request }),
|
|
34563
|
-
resolveMediaPipeline(options, { query, request }),
|
|
34564
|
-
resolveBrowserMedia(options, { query, request }),
|
|
34565
|
-
resolveTelephonyMedia(options, { query, request }),
|
|
34566
|
-
resolveTelephonyWebhookSecurity(options, { query, request }),
|
|
34567
|
-
resolveReconnectContracts(options, { query, request }),
|
|
34568
|
-
resolveBargeInReports(options, { query, request }),
|
|
34569
|
-
resolveCampaignReadiness(options, { query, request }),
|
|
34570
|
-
resolveOpsRecovery(options, { query, request }),
|
|
34571
|
-
resolveObservabilityExport(options, { query, request }),
|
|
34572
|
-
resolveObservabilityExportDeliveryHistory(options, { query, request }),
|
|
34573
|
-
resolveObservabilityExportReplay(options, { query, request }),
|
|
34574
|
-
resolveProofSources(options, { query, request }),
|
|
34575
|
-
resolveAdditionalChecks(options, { query, request })
|
|
34558
|
+
]).then((groups) => groups.flat())),
|
|
34559
|
+
time("sessions", () => summarizeVoiceSessions({ events: readinessEvents, status: "all" })),
|
|
34560
|
+
time("handoffs", () => summarizeVoiceHandoffHealth({ events: readinessEvents })),
|
|
34561
|
+
time("audit", () => summarizeAuditEvidence(options)),
|
|
34562
|
+
time("auditDeliveries", () => summarizeAuditDeliveries(options)),
|
|
34563
|
+
time("opsActionHistory", () => summarizeOpsActionHistory(options)),
|
|
34564
|
+
time("traceDeliveries", () => summarizeTraceDeliveries(options)),
|
|
34565
|
+
time("deliveryRuntime", () => resolveDeliveryRuntime(options, { query, request })),
|
|
34566
|
+
time("carriers", () => resolveCarriers(options, { query, request })),
|
|
34567
|
+
time("agentSquadContracts", () => resolveAgentSquadContracts(options, { query, request })),
|
|
34568
|
+
time("providerRoutingContracts", () => resolveProviderRoutingContracts(options, { query, request })),
|
|
34569
|
+
time("providerSlo", () => resolveProviderSlo(options, { query, request })),
|
|
34570
|
+
time("providerOrchestration", () => resolveProviderOrchestration(options, { query, request })),
|
|
34571
|
+
time("profileSwitchReadiness", () => resolveProfileSwitchReadiness(options, { query, request })),
|
|
34572
|
+
time("providerStack", () => resolveProviderStack(options, { query, request })),
|
|
34573
|
+
time("providerContractMatrix", () => resolveProviderContractMatrix(options, { query, request })),
|
|
34574
|
+
time("phoneAgentSmokes", () => resolvePhoneAgentSmokes(options, { query, request })),
|
|
34575
|
+
time("monitoring", () => resolveMonitoring(options, { query, request })),
|
|
34576
|
+
time("monitoringNotifierDelivery", () => resolveMonitoringNotifierDelivery(options, { query, request })),
|
|
34577
|
+
time("mediaPipeline", () => resolveMediaPipeline(options, { query, request })),
|
|
34578
|
+
time("browserMedia", () => resolveBrowserMedia(options, { query, request })),
|
|
34579
|
+
time("telephonyMedia", () => resolveTelephonyMedia(options, { query, request })),
|
|
34580
|
+
time("telephonyWebhookSecurity", () => resolveTelephonyWebhookSecurity(options, { query, request })),
|
|
34581
|
+
time("reconnectContracts", () => resolveReconnectContracts(options, { query, request })),
|
|
34582
|
+
time("bargeInReports", () => resolveBargeInReports(options, { query, request })),
|
|
34583
|
+
time("campaignReadiness", () => resolveCampaignReadiness(options, { query, request })),
|
|
34584
|
+
time("opsRecovery", () => resolveOpsRecovery(options, { query, request })),
|
|
34585
|
+
time("observabilityExport", () => resolveObservabilityExport(options, { query, request })),
|
|
34586
|
+
time("observabilityExportDeliveryHistory", () => resolveObservabilityExportDeliveryHistory(options, { query, request })),
|
|
34587
|
+
time("observabilityExportReplay", () => resolveObservabilityExportReplay(options, { query, request })),
|
|
34588
|
+
time("proofSources", () => resolveProofSources(options, { query, request })),
|
|
34589
|
+
time("additionalChecks", () => resolveAdditionalChecks(options, { query, request }))
|
|
34576
34590
|
]);
|
|
34577
34591
|
const deliveryRuntime = summarizeDeliveryRuntime(deliveryRuntimeSummary);
|
|
34578
34592
|
const degradedProviders = providers.filter((provider) => provider.status === "degraded" || provider.status === "rate-limited" || provider.status === "suppressed").length;
|
|
@@ -517,6 +517,12 @@ export type VoiceProductionReadinessRouteInput = {
|
|
|
517
517
|
query: Record<string, unknown>;
|
|
518
518
|
request: Request;
|
|
519
519
|
};
|
|
520
|
+
export type VoiceProductionReadinessTiming = {
|
|
521
|
+
durationMs: number;
|
|
522
|
+
endedAt: number;
|
|
523
|
+
label: string;
|
|
524
|
+
startedAt: number;
|
|
525
|
+
};
|
|
520
526
|
export type VoiceProductionReadinessRoutesOptions = {
|
|
521
527
|
agentSquadContracts?: false | readonly VoiceAgentSquadContractReport[] | ((input: {
|
|
522
528
|
query: Record<string, unknown>;
|
|
@@ -552,6 +558,7 @@ export type VoiceProductionReadinessRoutesOptions = {
|
|
|
552
558
|
links?: VoiceProductionReadinessReport['links'];
|
|
553
559
|
llmProviders?: readonly string[];
|
|
554
560
|
name?: string;
|
|
561
|
+
onTiming?: (timing: VoiceProductionReadinessTiming) => void;
|
|
555
562
|
monitoring?: false | VoiceMonitorRunReport | ((input: {
|
|
556
563
|
query: Record<string, unknown>;
|
|
557
564
|
request: Request;
|