@absolutejs/voice 0.0.22-beta.8 → 0.0.22-beta.80

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.
Files changed (111) hide show
  1. package/README.md +205 -0
  2. package/dist/agent.d.ts +2 -0
  3. package/dist/angular/index.d.ts +6 -0
  4. package/dist/angular/index.js +833 -43
  5. package/dist/angular/voice-app-kit-status.service.d.ts +12 -0
  6. package/dist/angular/voice-ops-status.component.d.ts +15 -0
  7. package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
  8. package/dist/angular/voice-provider-status.service.d.ts +12 -0
  9. package/dist/angular/voice-routing-status.service.d.ts +11 -0
  10. package/dist/angular/voice-stream.service.d.ts +2 -0
  11. package/dist/angular/voice-turn-quality.service.d.ts +12 -0
  12. package/dist/angular/voice-workflow-status.service.d.ts +12 -0
  13. package/dist/appKit.d.ts +94 -0
  14. package/dist/assistantHealth.d.ts +81 -0
  15. package/dist/client/actions.d.ts +22 -0
  16. package/dist/client/appKitStatus.d.ts +19 -0
  17. package/dist/client/connection.d.ts +3 -0
  18. package/dist/client/htmxBootstrap.js +44 -2
  19. package/dist/client/index.d.ts +26 -0
  20. package/dist/client/index.js +1290 -2
  21. package/dist/client/opsStatusWidget.d.ts +40 -0
  22. package/dist/client/providerCapabilities.d.ts +19 -0
  23. package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
  24. package/dist/client/providerSimulationControls.d.ts +33 -0
  25. package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
  26. package/dist/client/providerStatus.d.ts +19 -0
  27. package/dist/client/providerStatusWidget.d.ts +32 -0
  28. package/dist/client/routingStatus.d.ts +19 -0
  29. package/dist/client/routingStatusWidget.d.ts +28 -0
  30. package/dist/client/turnQuality.d.ts +19 -0
  31. package/dist/client/turnQualityWidget.d.ts +32 -0
  32. package/dist/client/workflowStatus.d.ts +19 -0
  33. package/dist/diagnosticsRoutes.d.ts +44 -0
  34. package/dist/evalRoutes.d.ts +213 -0
  35. package/dist/handoff.d.ts +54 -0
  36. package/dist/handoffHealth.d.ts +94 -0
  37. package/dist/index.d.ts +56 -7
  38. package/dist/index.js +6919 -128
  39. package/dist/modelAdapters.d.ts +75 -0
  40. package/dist/opsConsoleRoutes.d.ts +77 -0
  41. package/dist/opsWebhook.d.ts +126 -0
  42. package/dist/outcomeContract.d.ts +112 -0
  43. package/dist/postgresStore.d.ts +2 -0
  44. package/dist/providerAdapters.d.ts +48 -0
  45. package/dist/providerCapabilities.d.ts +92 -0
  46. package/dist/providerHealth.d.ts +79 -0
  47. package/dist/qualityRoutes.d.ts +76 -0
  48. package/dist/queue.d.ts +61 -0
  49. package/dist/react/VoiceOpsStatus.d.ts +6 -0
  50. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  51. package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
  52. package/dist/react/VoiceProviderStatus.d.ts +6 -0
  53. package/dist/react/VoiceRoutingStatus.d.ts +6 -0
  54. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  55. package/dist/react/index.d.ts +13 -0
  56. package/dist/react/index.js +1884 -11
  57. package/dist/react/useVoiceAppKitStatus.d.ts +8 -0
  58. package/dist/react/useVoiceController.d.ts +2 -0
  59. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  60. package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
  61. package/dist/react/useVoiceProviderStatus.d.ts +8 -0
  62. package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
  63. package/dist/react/useVoiceStream.d.ts +2 -0
  64. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  65. package/dist/react/useVoiceWorkflowStatus.d.ts +8 -0
  66. package/dist/resilienceRoutes.d.ts +117 -0
  67. package/dist/sessionReplay.d.ts +175 -0
  68. package/dist/sqliteStore.d.ts +2 -0
  69. package/dist/svelte/createVoiceAppKitStatus.d.ts +8 -0
  70. package/dist/svelte/createVoiceOpsStatus.d.ts +9 -0
  71. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  72. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
  73. package/dist/svelte/createVoiceProviderStatus.d.ts +10 -0
  74. package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
  75. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  76. package/dist/svelte/createVoiceWorkflowStatus.d.ts +8 -0
  77. package/dist/svelte/index.d.ts +8 -0
  78. package/dist/svelte/index.js +1330 -3
  79. package/dist/telephony/contract.d.ts +61 -0
  80. package/dist/telephony/matrix.d.ts +97 -0
  81. package/dist/telephony/plivo.d.ts +154 -0
  82. package/dist/telephony/telnyx.d.ts +139 -0
  83. package/dist/telephony/twilio.d.ts +132 -0
  84. package/dist/telephonyOutcome.d.ts +201 -0
  85. package/dist/testing/index.d.ts +2 -0
  86. package/dist/testing/index.js +2541 -14
  87. package/dist/testing/ioProviderSimulator.d.ts +41 -0
  88. package/dist/testing/providerSimulator.d.ts +44 -0
  89. package/dist/toolContract.d.ts +130 -0
  90. package/dist/toolRuntime.d.ts +50 -0
  91. package/dist/trace.d.ts +1 -1
  92. package/dist/turnQuality.d.ts +94 -0
  93. package/dist/types.d.ts +84 -2
  94. package/dist/vue/VoiceOpsStatus.d.ts +30 -0
  95. package/dist/vue/VoiceProviderCapabilities.d.ts +51 -0
  96. package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
  97. package/dist/vue/VoiceProviderStatus.d.ts +51 -0
  98. package/dist/vue/VoiceRoutingStatus.d.ts +51 -0
  99. package/dist/vue/VoiceTurnQuality.d.ts +51 -0
  100. package/dist/vue/index.d.ts +13 -0
  101. package/dist/vue/index.js +1934 -25
  102. package/dist/vue/useVoiceAppKitStatus.d.ts +9 -0
  103. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  104. package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
  105. package/dist/vue/useVoiceProviderStatus.d.ts +9 -0
  106. package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
  107. package/dist/vue/useVoiceStream.d.ts +2 -0
  108. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  109. package/dist/vue/useVoiceWorkflowStatus.d.ts +9 -0
  110. package/dist/workflowContract.d.ts +91 -0
  111. package/package.json +1 -1
@@ -0,0 +1,76 @@
1
+ import { Elysia } from 'elysia';
2
+ import { type StoredVoiceTraceEvent, type VoiceTraceEventStore } from './trace';
3
+ export type VoiceQualityStatus = 'pass' | 'fail';
4
+ export type VoiceQualityThresholds = {
5
+ maxDuplicateTurnRate?: number;
6
+ maxEmptyTurnRate?: number;
7
+ maxHandoffFailureRate?: number;
8
+ maxMissingAssistantReplyRate?: number;
9
+ maxProviderAverageLatencyMs?: number;
10
+ maxProviderErrorRate?: number;
11
+ maxProviderFallbackRate?: number;
12
+ maxProviderTimeoutRate?: number;
13
+ };
14
+ export type VoiceQualityMetric = {
15
+ actual: number;
16
+ label: string;
17
+ pass: boolean;
18
+ threshold: number;
19
+ unit: 'count' | 'ms' | 'rate';
20
+ };
21
+ export type VoiceQualityReport = {
22
+ checkedAt: number;
23
+ eventCount: number;
24
+ metrics: Record<string, VoiceQualityMetric>;
25
+ status: VoiceQualityStatus;
26
+ thresholds: Required<VoiceQualityThresholds>;
27
+ };
28
+ export type VoiceQualityLink = {
29
+ href: string;
30
+ label: string;
31
+ };
32
+ export type VoiceQualityRoutesOptions = {
33
+ events?: StoredVoiceTraceEvent[];
34
+ headers?: HeadersInit;
35
+ links?: VoiceQualityLink[];
36
+ name?: string;
37
+ path?: string;
38
+ store?: VoiceTraceEventStore;
39
+ thresholds?: VoiceQualityThresholds;
40
+ };
41
+ export declare const evaluateVoiceQuality: (input: {
42
+ events?: StoredVoiceTraceEvent[];
43
+ store?: VoiceTraceEventStore;
44
+ thresholds?: VoiceQualityThresholds;
45
+ }) => Promise<VoiceQualityReport>;
46
+ export declare const renderVoiceQualityHTML: (report: VoiceQualityReport, options?: {
47
+ links?: VoiceQualityLink[];
48
+ }) => string;
49
+ export declare const createVoiceQualityRoutes: (options: VoiceQualityRoutesOptions) => Elysia<"", {
50
+ decorator: {};
51
+ store: {};
52
+ derive: {};
53
+ resolve: {};
54
+ }, {
55
+ typebox: {};
56
+ error: {};
57
+ }, {
58
+ schema: {};
59
+ standaloneSchema: {};
60
+ macro: {};
61
+ macroFn: {};
62
+ parser: {};
63
+ response: {};
64
+ }, {}, {
65
+ derive: {};
66
+ resolve: {};
67
+ schema: {};
68
+ standaloneSchema: {};
69
+ response: {};
70
+ }, {
71
+ derive: {};
72
+ resolve: {};
73
+ schema: {};
74
+ standaloneSchema: {};
75
+ response: {};
76
+ }>;
package/dist/queue.d.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import type { RedisClient } from 'bun';
2
2
  import type { VoiceIntegrationSink } from './opsSinks';
3
3
  import type { VoiceTraceRedactionConfig, VoiceTraceSink, VoiceTraceSinkDeliveryRecord, VoiceTraceSinkDeliveryStore, VoiceTraceSinkDeliveryQueueStatus } from './trace';
4
+ import type { VoiceTelephonyWebhookIdempotencyStore } from './telephonyOutcome';
5
+ import type { StoredVoiceHandoffDelivery, VoiceHandoffAdapter, VoiceHandoffDeliveryQueueStatus, VoiceHandoffDeliveryStore, VoiceSessionHandle, VoiceSessionRecord } from './types';
4
6
  import type { VoiceOpsTaskPriority, StoredVoiceOpsTask, StoredVoiceIntegrationEvent, VoiceIntegrationDeliveryStatus, VoiceIntegrationEventStore, VoiceIntegrationWebhookConfig, VoiceOpsTaskKind, VoiceOpsTaskStatus, VoiceOpsTaskStore } from './ops';
5
7
  export type VoiceOpsTaskLease = {
6
8
  expiresAt: number;
@@ -44,6 +46,13 @@ export type VoiceRedisIdempotencyStoreOptions = {
44
46
  ttlSeconds?: number;
45
47
  url?: string;
46
48
  };
49
+ export type VoiceRedisTelephonyWebhookIdempotencyClient = Pick<RedisClient, 'get' | 'set'>;
50
+ export type VoiceRedisTelephonyWebhookIdempotencyStoreOptions = {
51
+ client?: VoiceRedisTelephonyWebhookIdempotencyClient;
52
+ keyPrefix?: string;
53
+ ttlSeconds?: number;
54
+ url?: string;
55
+ };
47
56
  export type VoiceWebhookDeliveryWorkerOptions<TEvent extends StoredVoiceIntegrationEvent = StoredVoiceIntegrationEvent> = {
48
57
  deadLetters?: VoiceIntegrationEventStore<TEvent>;
49
58
  events: VoiceIntegrationEventStore<TEvent>;
@@ -159,6 +168,50 @@ export type VoiceTraceSinkDeliveryQueueSummary = {
159
168
  skipped: number;
160
169
  total: number;
161
170
  };
171
+ export type VoiceHandoffDeliveryWorkerOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown, TDelivery extends StoredVoiceHandoffDelivery<TContext, TSession, TResult> = StoredVoiceHandoffDelivery<TContext, TSession, TResult>> = {
172
+ adapters: VoiceHandoffAdapter<TContext, TSession, TResult>[];
173
+ api: VoiceSessionHandle<TContext, TSession, TResult>;
174
+ deadLetters?: VoiceHandoffDeliveryStore<TDelivery>;
175
+ deliveries: VoiceHandoffDeliveryStore<TDelivery>;
176
+ failMode?: 'record' | 'throw';
177
+ idempotency?: VoiceIdempotencyStore;
178
+ idempotencyTtlSeconds?: number;
179
+ leaseMs?: number;
180
+ leases: VoiceRedisTaskLeaseCoordinator;
181
+ maxFailures?: number;
182
+ onDeadLetter?: (delivery: TDelivery) => Promise<void> | void;
183
+ statuses?: VoiceHandoffDeliveryQueueStatus[];
184
+ workerId: string;
185
+ };
186
+ export type VoiceHandoffDeliveryWorkerResult = {
187
+ alreadyProcessed: number;
188
+ attempted: number;
189
+ deadLettered: number;
190
+ delivered: number;
191
+ failed: number;
192
+ skipped: number;
193
+ };
194
+ export type VoiceHandoffDeliveryWorkerLoopOptions<TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown, TDelivery extends StoredVoiceHandoffDelivery<TContext, TSession, TResult> = StoredVoiceHandoffDelivery<TContext, TSession, TResult>> = {
195
+ onError?: (error: unknown) => Promise<void> | void;
196
+ pollIntervalMs?: number;
197
+ worker: ReturnType<typeof createVoiceHandoffDeliveryWorker<TContext, TSession, TResult, TDelivery>>;
198
+ };
199
+ export type VoiceHandoffDeliveryWorkerLoop = {
200
+ isRunning: () => boolean;
201
+ start: () => void;
202
+ stop: () => void;
203
+ tick: () => Promise<VoiceHandoffDeliveryWorkerResult>;
204
+ };
205
+ export type VoiceHandoffDeliveryQueueSummary = {
206
+ byAction: Array<[StoredVoiceHandoffDelivery['action'], number]>;
207
+ deadLettered: number;
208
+ delivered: number;
209
+ failed: number;
210
+ pending: number;
211
+ retryEligible: number;
212
+ skipped: number;
213
+ total: number;
214
+ };
162
215
  export type VoiceOpsTaskWorkerOptions<TTask extends StoredVoiceOpsTask = StoredVoiceOpsTask> = {
163
216
  leaseMs?: number;
164
217
  leases: VoiceRedisTaskLeaseCoordinator;
@@ -252,11 +305,15 @@ export declare const summarizeVoiceIntegrationEvents: <TEvent extends StoredVoic
252
305
  export declare const summarizeVoiceTraceSinkDeliveries: <TDelivery extends VoiceTraceSinkDeliveryRecord = VoiceTraceSinkDeliveryRecord>(deliveries: TDelivery[], input?: {
253
306
  deadLetters?: VoiceTraceSinkDeliveryStore<TDelivery>;
254
307
  }) => Promise<VoiceTraceSinkDeliveryQueueSummary> | VoiceTraceSinkDeliveryQueueSummary;
308
+ export declare const summarizeVoiceHandoffDeliveries: <TDelivery extends StoredVoiceHandoffDelivery = StoredVoiceHandoffDelivery>(deliveries: TDelivery[], input?: {
309
+ deadLetters?: VoiceHandoffDeliveryStore<TDelivery>;
310
+ }) => Promise<VoiceHandoffDeliveryQueueSummary> | VoiceHandoffDeliveryQueueSummary;
255
311
  export declare const summarizeVoiceOpsTaskQueue: <TTask extends StoredVoiceOpsTask = StoredVoiceOpsTask>(tasks: TTask[], input?: {
256
312
  deadLetters?: VoiceOpsTaskStore<TTask>;
257
313
  }) => Promise<VoiceOpsTaskQueueSummary> | VoiceOpsTaskQueueSummary;
258
314
  export declare const createVoiceRedisTaskLeaseCoordinator: (options?: VoiceRedisTaskLeaseCoordinatorOptions) => VoiceRedisTaskLeaseCoordinator;
259
315
  export declare const createVoiceRedisIdempotencyStore: (options?: VoiceRedisIdempotencyStoreOptions) => VoiceIdempotencyStore;
316
+ export declare const createVoiceRedisTelephonyWebhookIdempotencyStore: <TResult = unknown>(options?: VoiceRedisTelephonyWebhookIdempotencyStoreOptions) => VoiceTelephonyWebhookIdempotencyStore<TResult>;
260
317
  export declare const createVoiceWebhookDeliveryWorker: <TEvent extends StoredVoiceIntegrationEvent = StoredVoiceIntegrationEvent>(options: VoiceWebhookDeliveryWorkerOptions<TEvent>) => {
261
318
  drain: () => Promise<VoiceWebhookDeliveryWorkerResult>;
262
319
  };
@@ -269,6 +326,10 @@ export declare const createVoiceTraceSinkDeliveryWorker: <TDelivery extends Voic
269
326
  drain: () => Promise<VoiceTraceSinkDeliveryWorkerResult>;
270
327
  };
271
328
  export declare const createVoiceTraceSinkDeliveryWorkerLoop: <TDelivery extends VoiceTraceSinkDeliveryRecord = VoiceTraceSinkDeliveryRecord>(options: VoiceTraceSinkDeliveryWorkerLoopOptions<TDelivery>) => VoiceTraceSinkDeliveryWorkerLoop;
329
+ export declare const createVoiceHandoffDeliveryWorker: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown, TDelivery extends StoredVoiceHandoffDelivery<TContext, TSession, TResult> = StoredVoiceHandoffDelivery<TContext, TSession, TResult>>(options: VoiceHandoffDeliveryWorkerOptions<TContext, TSession, TResult, TDelivery>) => {
330
+ drain: () => Promise<VoiceHandoffDeliveryWorkerResult>;
331
+ };
332
+ export declare const createVoiceHandoffDeliveryWorkerLoop: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown, TDelivery extends StoredVoiceHandoffDelivery<TContext, TSession, TResult> = StoredVoiceHandoffDelivery<TContext, TSession, TResult>>(options: VoiceHandoffDeliveryWorkerLoopOptions<TContext, TSession, TResult, TDelivery>) => VoiceHandoffDeliveryWorkerLoop;
272
333
  export declare const createVoiceOpsTaskWorker: <TTask extends StoredVoiceOpsTask = StoredVoiceOpsTask>(options: VoiceOpsTaskWorkerOptions<TTask>) => VoiceOpsTaskWorker<TTask>;
273
334
  export declare const createVoiceOpsTaskProcessorWorker: <TTask extends StoredVoiceOpsTask = StoredVoiceOpsTask>(options: VoiceOpsTaskProcessorWorkerOptions<TTask>) => {
274
335
  drain: () => Promise<VoiceOpsTaskProcessorWorkerResult>;
@@ -0,0 +1,6 @@
1
+ import { type VoiceOpsStatusWidgetOptions } from '../client/opsStatusWidget';
2
+ export type VoiceOpsStatusProps = VoiceOpsStatusWidgetOptions & {
3
+ className?: string;
4
+ path?: string;
5
+ };
6
+ export declare const VoiceOpsStatus: ({ className, path, ...options }: VoiceOpsStatusProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type VoiceProviderCapabilitiesWidgetOptions } from '../client/providerCapabilitiesWidget';
2
+ export type VoiceProviderCapabilitiesProps = VoiceProviderCapabilitiesWidgetOptions & {
3
+ className?: string;
4
+ path?: string;
5
+ };
6
+ export declare const VoiceProviderCapabilities: ({ className, path, ...options }: VoiceProviderCapabilitiesProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { VoiceProviderSimulationControlsOptions } from '../client/providerSimulationControls';
2
+ export type VoiceProviderSimulationControlsProps<TProvider extends string = string> = VoiceProviderSimulationControlsOptions<TProvider> & {
3
+ className?: string;
4
+ };
5
+ export declare const VoiceProviderSimulationControls: <TProvider extends string = string>({ className, ...options }: VoiceProviderSimulationControlsProps<TProvider>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type VoiceProviderStatusWidgetOptions } from '../client/providerStatusWidget';
2
+ export type VoiceProviderStatusProps = VoiceProviderStatusWidgetOptions & {
3
+ className?: string;
4
+ path?: string;
5
+ };
6
+ export declare const VoiceProviderStatus: ({ className, path, ...options }: VoiceProviderStatusProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type VoiceRoutingStatusWidgetOptions } from '../client/routingStatusWidget';
2
+ export type VoiceRoutingStatusProps = VoiceRoutingStatusWidgetOptions & {
3
+ className?: string;
4
+ path?: string;
5
+ };
6
+ export declare const VoiceRoutingStatus: ({ className, path, ...options }: VoiceRoutingStatusProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { type VoiceTurnQualityWidgetOptions } from '../client/turnQualityWidget';
2
+ export type VoiceTurnQualityProps = VoiceTurnQualityWidgetOptions & {
3
+ className?: string;
4
+ path?: string;
5
+ };
6
+ export declare const VoiceTurnQuality: ({ className, path, ...options }: VoiceTurnQualityProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,15 @@
1
+ export { VoiceOpsStatus } from './VoiceOpsStatus';
2
+ export { VoiceProviderSimulationControls } from './VoiceProviderSimulationControls';
3
+ export { VoiceProviderCapabilities } from './VoiceProviderCapabilities';
4
+ export { VoiceProviderStatus } from './VoiceProviderStatus';
5
+ export { VoiceRoutingStatus } from './VoiceRoutingStatus';
6
+ export { VoiceTurnQuality } from './VoiceTurnQuality';
7
+ export { useVoiceAppKitStatus } from './useVoiceAppKitStatus';
1
8
  export { useVoiceStream } from './useVoiceStream';
2
9
  export { useVoiceController } from './useVoiceController';
10
+ export { useVoiceProviderStatus } from './useVoiceProviderStatus';
11
+ export { useVoiceProviderCapabilities } from './useVoiceProviderCapabilities';
12
+ export { useVoiceProviderSimulationControls } from './useVoiceProviderSimulationControls';
13
+ export { useVoiceRoutingStatus } from './useVoiceRoutingStatus';
14
+ export { useVoiceTurnQuality } from './useVoiceTurnQuality';
15
+ export { useVoiceWorkflowStatus } from './useVoiceWorkflowStatus';