@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 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 events = await options.store.list();
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.419",
3
+ "version": "0.0.22-beta.420",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",