@absolutejs/voice 0.0.22-beta.237 → 0.0.22-beta.239

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.
@@ -0,0 +1,12 @@
1
+ import { type VoicePlatformCoverageClientOptions } from '../client/platformCoverage';
2
+ import type { VoicePlatformCoverageSummary } from '../platformCoverage';
3
+ export declare class VoicePlatformCoverageService {
4
+ connect(path?: string, options?: VoicePlatformCoverageClientOptions): {
5
+ close: () => void;
6
+ error: import("@angular/core").Signal<string | null>;
7
+ isLoading: import("@angular/core").Signal<boolean>;
8
+ refresh: () => Promise<VoicePlatformCoverageSummary | undefined>;
9
+ report: import("@angular/core").Signal<VoicePlatformCoverageSummary | undefined>;
10
+ updatedAt: import("@angular/core").Signal<number | undefined>;
11
+ };
12
+ }
@@ -8,6 +8,7 @@ export { createMicrophoneCapture } from './microphone';
8
8
  export { createVoiceBargeInMonitor } from './bargeInMonitor';
9
9
  export { createVoiceLiveTurnLatencyMonitor } from './liveTurnLatency';
10
10
  export { createVoiceOpsStatusStore, fetchVoiceOpsStatus } from './opsStatus';
11
+ export { createVoicePlatformCoverageStore, fetchVoicePlatformCoverage } from './platformCoverage';
11
12
  export { createVoiceOpsActionCenterActions, createVoiceOpsActionCenterStore, recordVoiceOpsActionResult, runVoiceOpsAction } from './opsActionCenter';
12
13
  export { createVoiceLiveOpsStore, postVoiceLiveOpsAction } from './liveOps';
13
14
  export { createVoiceOpsActionHistoryStore, fetchVoiceOpsActionHistory } from './opsActionHistory';
@@ -2062,6 +2062,84 @@ var createVoiceOpsStatusStore = (path = "/api/voice/ops-status", options = {}) =
2062
2062
  }
2063
2063
  };
2064
2064
  };
2065
+ // src/client/platformCoverage.ts
2066
+ var fetchVoicePlatformCoverage = async (path = "/api/voice/platform-coverage", options = {}) => {
2067
+ const fetchImpl = options.fetch ?? globalThis.fetch;
2068
+ const response = await fetchImpl(path);
2069
+ if (!response.ok) {
2070
+ throw new Error(`Voice platform coverage failed: HTTP ${response.status}`);
2071
+ }
2072
+ return await response.json();
2073
+ };
2074
+ var createVoicePlatformCoverageStore = (path = "/api/voice/platform-coverage", options = {}) => {
2075
+ const listeners = new Set;
2076
+ let closed = false;
2077
+ let timer;
2078
+ let snapshot = {
2079
+ error: null,
2080
+ isLoading: false
2081
+ };
2082
+ const emit = () => {
2083
+ for (const listener of listeners) {
2084
+ listener();
2085
+ }
2086
+ };
2087
+ const refresh = async () => {
2088
+ if (closed) {
2089
+ return snapshot.report;
2090
+ }
2091
+ snapshot = {
2092
+ ...snapshot,
2093
+ error: null,
2094
+ isLoading: true
2095
+ };
2096
+ emit();
2097
+ try {
2098
+ const report = await fetchVoicePlatformCoverage(path, options);
2099
+ snapshot = {
2100
+ error: null,
2101
+ isLoading: false,
2102
+ report,
2103
+ updatedAt: Date.now()
2104
+ };
2105
+ emit();
2106
+ return report;
2107
+ } catch (error) {
2108
+ snapshot = {
2109
+ ...snapshot,
2110
+ error: error instanceof Error ? error.message : String(error),
2111
+ isLoading: false
2112
+ };
2113
+ emit();
2114
+ throw error;
2115
+ }
2116
+ };
2117
+ const close = () => {
2118
+ closed = true;
2119
+ if (timer) {
2120
+ clearInterval(timer);
2121
+ timer = undefined;
2122
+ }
2123
+ listeners.clear();
2124
+ };
2125
+ if (typeof window !== "undefined" && options.intervalMs && options.intervalMs > 0) {
2126
+ timer = setInterval(() => {
2127
+ refresh().catch(() => {});
2128
+ }, options.intervalMs);
2129
+ }
2130
+ return {
2131
+ close,
2132
+ getServerSnapshot: () => snapshot,
2133
+ getSnapshot: () => snapshot,
2134
+ refresh,
2135
+ subscribe: (listener) => {
2136
+ listeners.add(listener);
2137
+ return () => {
2138
+ listeners.delete(listener);
2139
+ };
2140
+ }
2141
+ };
2142
+ };
2065
2143
  // src/client/opsActionCenter.ts
2066
2144
  var recordVoiceOpsActionResult = async (result, options = {}) => {
2067
2145
  if (options.auditPath === false) {
@@ -5999,6 +6077,7 @@ export {
5999
6077
  fetchVoiceProviderStatus,
6000
6078
  fetchVoiceProviderContracts,
6001
6079
  fetchVoiceProviderCapabilities,
6080
+ fetchVoicePlatformCoverage,
6002
6081
  fetchVoiceOpsStatus,
6003
6082
  fetchVoiceOpsActionHistory,
6004
6083
  fetchVoiceDeliveryRuntime,
@@ -6035,6 +6114,7 @@ export {
6035
6114
  createVoiceProviderContractsStore,
6036
6115
  createVoiceProviderCapabilitiesViewModel,
6037
6116
  createVoiceProviderCapabilitiesStore,
6117
+ createVoicePlatformCoverageStore,
6038
6118
  createVoiceOpsStatusViewModel,
6039
6119
  createVoiceOpsStatusStore,
6040
6120
  createVoiceOpsActionHistoryStore,
@@ -0,0 +1,19 @@
1
+ import type { VoicePlatformCoverageSummary } from '../platformCoverage';
2
+ export type VoicePlatformCoverageClientOptions = {
3
+ fetch?: typeof fetch;
4
+ intervalMs?: number;
5
+ };
6
+ export type VoicePlatformCoverageSnapshot = {
7
+ error: string | null;
8
+ isLoading: boolean;
9
+ report?: VoicePlatformCoverageSummary;
10
+ updatedAt?: number;
11
+ };
12
+ export declare const fetchVoicePlatformCoverage: (path?: string, options?: Pick<VoicePlatformCoverageClientOptions, "fetch">) => Promise<VoicePlatformCoverageSummary>;
13
+ export declare const createVoicePlatformCoverageStore: (path?: string, options?: VoicePlatformCoverageClientOptions) => {
14
+ close: () => void;
15
+ getServerSnapshot: () => VoicePlatformCoverageSnapshot;
16
+ getSnapshot: () => VoicePlatformCoverageSnapshot;
17
+ refresh: () => Promise<VoicePlatformCoverageSummary | undefined>;
18
+ subscribe: (listener: () => void) => () => void;
19
+ };
package/dist/index.d.ts CHANGED
@@ -14,6 +14,8 @@ export { buildVoiceDiagnosticsMarkdown, createVoiceDiagnosticsRoutes, resolveVoi
14
14
  export { buildVoiceDemoReadyReport, createVoiceDemoReadyRoutes, renderVoiceDemoReadyHTML } from './demoReadyRoutes';
15
15
  export { buildVoiceDeliverySinkReport, createVoiceDeliverySinkDescriptor, createVoiceDeliverySinkPair, createVoiceDeliverySinkRoutes, createVoiceFileDeliverySink, createVoicePostgresDeliverySink, createVoiceS3DeliverySink, createVoiceSQLiteDeliverySink, createVoiceWebhookDeliverySink, renderVoiceDeliverySinkHTML } from './deliverySinkRoutes';
16
16
  export { buildVoiceOpsActionHistoryReport, createVoiceOpsActionAuditRoutes, recordVoiceOpsActionAudit, renderVoiceOpsActionHistoryHTML } from './opsActionAuditRoutes';
17
+ export { buildVoicePlatformCoverageSummary, createVoicePlatformCoverageRoutes } from './platformCoverage';
18
+ export type { VoicePlatformCoverageEvidence, VoicePlatformCoverageRoutesOptions, VoicePlatformCoverageStatus, VoicePlatformCoverageSummary, VoicePlatformCoverageSummaryInput, VoicePlatformCoverageSurface } from './platformCoverage';
17
19
  export { buildVoiceLiveOpsControlState, createVoiceLiveOpsController, createVoiceLiveOpsRoutes, createVoiceMemoryLiveOpsControlStore, getVoiceLiveOpsControlStatus, VOICE_LIVE_OPS_ACTIONS } from './liveOps';
18
20
  export type { VoiceLiveOpsAction, VoiceLiveOpsActionInput, VoiceLiveOpsActionResult, VoiceLiveOpsControllerOptions, VoiceLiveOpsControlState, VoiceLiveOpsControlStatus, VoiceLiveOpsControlStore, VoiceLiveOpsRoutesOptions } from './liveOps';
19
21
  export { buildVoiceDeliveryRuntimeReport, createVoiceDeliveryRuntime, createVoiceDeliveryRuntimePresetConfig, createVoiceDeliveryRuntimeRoutes, renderVoiceDeliveryRuntimeHTML } from './deliveryRuntime';