@absolutejs/voice 0.0.22-beta.14 → 0.0.22-beta.140

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 (160) hide show
  1. package/README.md +781 -5
  2. package/dist/agent.d.ts +24 -0
  3. package/dist/agentSquadContract.d.ts +64 -0
  4. package/dist/angular/index.d.ts +9 -0
  5. package/dist/angular/index.js +1418 -46
  6. package/dist/angular/voice-campaign-dialer-proof.service.d.ts +14 -0
  7. package/dist/angular/voice-controller.service.d.ts +1 -0
  8. package/dist/angular/voice-ops-status.component.d.ts +15 -0
  9. package/dist/angular/voice-ops-status.service.d.ts +12 -0
  10. package/dist/angular/voice-provider-capabilities.service.d.ts +12 -0
  11. package/dist/angular/voice-provider-status.service.d.ts +12 -0
  12. package/dist/angular/voice-routing-status.service.d.ts +11 -0
  13. package/dist/angular/voice-stream.service.d.ts +3 -0
  14. package/dist/angular/voice-trace-timeline.service.d.ts +12 -0
  15. package/dist/angular/voice-turn-latency.service.d.ts +13 -0
  16. package/dist/angular/voice-turn-quality.service.d.ts +12 -0
  17. package/dist/angular/voice-workflow-status.service.d.ts +12 -0
  18. package/dist/assistantHealth.d.ts +81 -0
  19. package/dist/audit.d.ts +128 -0
  20. package/dist/auditDeliveryRoutes.d.ts +85 -0
  21. package/dist/auditExport.d.ts +34 -0
  22. package/dist/auditRoutes.d.ts +66 -0
  23. package/dist/auditSinks.d.ts +133 -0
  24. package/dist/bargeInRoutes.d.ts +56 -0
  25. package/dist/campaign.d.ts +610 -0
  26. package/dist/campaignDialers.d.ts +90 -0
  27. package/dist/client/actions.d.ts +105 -0
  28. package/dist/client/bargeInMonitor.d.ts +7 -0
  29. package/dist/client/campaignDialerProof.d.ts +23 -0
  30. package/dist/client/connection.d.ts +3 -0
  31. package/dist/client/duplex.d.ts +1 -1
  32. package/dist/client/htmxBootstrap.js +747 -15
  33. package/dist/client/index.d.ts +40 -0
  34. package/dist/client/index.js +2162 -10
  35. package/dist/client/liveTurnLatency.d.ts +41 -0
  36. package/dist/client/opsStatus.d.ts +19 -0
  37. package/dist/client/opsStatusWidget.d.ts +40 -0
  38. package/dist/client/providerCapabilities.d.ts +19 -0
  39. package/dist/client/providerCapabilitiesWidget.d.ts +32 -0
  40. package/dist/client/providerSimulationControls.d.ts +33 -0
  41. package/dist/client/providerSimulationControlsWidget.d.ts +20 -0
  42. package/dist/client/providerStatus.d.ts +19 -0
  43. package/dist/client/providerStatusWidget.d.ts +32 -0
  44. package/dist/client/routingStatus.d.ts +19 -0
  45. package/dist/client/routingStatusWidget.d.ts +28 -0
  46. package/dist/client/traceTimeline.d.ts +19 -0
  47. package/dist/client/traceTimelineWidget.d.ts +32 -0
  48. package/dist/client/turnLatency.d.ts +22 -0
  49. package/dist/client/turnLatencyWidget.d.ts +33 -0
  50. package/dist/client/turnQuality.d.ts +19 -0
  51. package/dist/client/turnQualityWidget.d.ts +32 -0
  52. package/dist/client/workflowStatus.d.ts +19 -0
  53. package/dist/dataControl.d.ts +47 -0
  54. package/dist/demoReadyRoutes.d.ts +98 -0
  55. package/dist/diagnosticsRoutes.d.ts +44 -0
  56. package/dist/evalRoutes.d.ts +213 -0
  57. package/dist/fileStore.d.ts +11 -2
  58. package/dist/handoff.d.ts +54 -0
  59. package/dist/handoffHealth.d.ts +94 -0
  60. package/dist/index.d.ts +104 -9
  61. package/dist/index.js +17435 -4717
  62. package/dist/liveLatency.d.ts +78 -0
  63. package/dist/modelAdapters.d.ts +23 -2
  64. package/dist/openaiRealtime.d.ts +27 -0
  65. package/dist/openaiTTS.d.ts +18 -0
  66. package/dist/opsConsoleRoutes.d.ts +77 -0
  67. package/dist/opsStatus.d.ts +68 -0
  68. package/dist/opsStatusRoutes.d.ts +33 -0
  69. package/dist/opsWebhook.d.ts +126 -0
  70. package/dist/outcomeContract.d.ts +112 -0
  71. package/dist/phoneAgent.d.ts +62 -0
  72. package/dist/phoneAgentProductionSmoke.d.ts +115 -0
  73. package/dist/postgresStore.d.ts +13 -2
  74. package/dist/productionReadiness.d.ts +267 -0
  75. package/dist/providerAdapters.d.ts +48 -0
  76. package/dist/providerCapabilities.d.ts +92 -0
  77. package/dist/providerHealth.d.ts +79 -0
  78. package/dist/providerRoutingContract.d.ts +38 -0
  79. package/dist/qualityRoutes.d.ts +76 -0
  80. package/dist/queue.d.ts +61 -0
  81. package/dist/react/VoiceOpsStatus.d.ts +6 -0
  82. package/dist/react/VoiceProviderCapabilities.d.ts +6 -0
  83. package/dist/react/VoiceProviderSimulationControls.d.ts +5 -0
  84. package/dist/react/VoiceProviderStatus.d.ts +6 -0
  85. package/dist/react/VoiceRoutingStatus.d.ts +6 -0
  86. package/dist/react/VoiceTraceTimeline.d.ts +6 -0
  87. package/dist/react/VoiceTurnLatency.d.ts +6 -0
  88. package/dist/react/VoiceTurnQuality.d.ts +6 -0
  89. package/dist/react/index.d.ts +18 -0
  90. package/dist/react/index.js +2750 -14
  91. package/dist/react/useVoiceCampaignDialerProof.d.ts +10 -0
  92. package/dist/react/useVoiceController.d.ts +3 -0
  93. package/dist/react/useVoiceOpsStatus.d.ts +8 -0
  94. package/dist/react/useVoiceProviderCapabilities.d.ts +8 -0
  95. package/dist/react/useVoiceProviderSimulationControls.d.ts +10 -0
  96. package/dist/react/useVoiceProviderStatus.d.ts +8 -0
  97. package/dist/react/useVoiceRoutingStatus.d.ts +8 -0
  98. package/dist/react/useVoiceStream.d.ts +3 -0
  99. package/dist/react/useVoiceTraceTimeline.d.ts +8 -0
  100. package/dist/react/useVoiceTurnLatency.d.ts +9 -0
  101. package/dist/react/useVoiceTurnQuality.d.ts +8 -0
  102. package/dist/react/useVoiceWorkflowStatus.d.ts +8 -0
  103. package/dist/reconnectContract.d.ts +87 -0
  104. package/dist/resilienceRoutes.d.ts +142 -0
  105. package/dist/sessionReplay.d.ts +185 -0
  106. package/dist/simulationSuite.d.ts +120 -0
  107. package/dist/sqliteStore.d.ts +13 -2
  108. package/dist/svelte/createVoiceCampaignDialerProof.d.ts +9 -0
  109. package/dist/svelte/createVoiceOpsStatus.d.ts +9 -0
  110. package/dist/svelte/createVoiceProviderCapabilities.d.ts +10 -0
  111. package/dist/svelte/createVoiceProviderSimulationControls.d.ts +11 -0
  112. package/dist/svelte/createVoiceProviderStatus.d.ts +10 -0
  113. package/dist/svelte/createVoiceRoutingStatus.d.ts +10 -0
  114. package/dist/svelte/createVoiceTraceTimeline.d.ts +10 -0
  115. package/dist/svelte/createVoiceTurnLatency.d.ts +11 -0
  116. package/dist/svelte/createVoiceTurnQuality.d.ts +10 -0
  117. package/dist/svelte/createVoiceWorkflowStatus.d.ts +8 -0
  118. package/dist/svelte/index.d.ts +10 -0
  119. package/dist/svelte/index.js +2176 -202
  120. package/dist/telephony/contract.d.ts +61 -0
  121. package/dist/telephony/matrix.d.ts +97 -0
  122. package/dist/telephony/plivo.d.ts +254 -0
  123. package/dist/telephony/telnyx.d.ts +247 -0
  124. package/dist/telephony/twilio.d.ts +135 -2
  125. package/dist/telephonyOutcome.d.ts +201 -0
  126. package/dist/testing/index.d.ts +2 -0
  127. package/dist/testing/index.js +2973 -156
  128. package/dist/testing/ioProviderSimulator.d.ts +41 -0
  129. package/dist/testing/providerSimulator.d.ts +44 -0
  130. package/dist/toolContract.d.ts +130 -0
  131. package/dist/toolRuntime.d.ts +50 -0
  132. package/dist/trace.d.ts +1 -1
  133. package/dist/traceDeliveryRoutes.d.ts +86 -0
  134. package/dist/traceTimeline.d.ts +93 -0
  135. package/dist/turnLatency.d.ts +95 -0
  136. package/dist/turnQuality.d.ts +94 -0
  137. package/dist/types.d.ts +170 -4
  138. package/dist/vue/VoiceOpsStatus.d.ts +30 -0
  139. package/dist/vue/VoiceProviderCapabilities.d.ts +51 -0
  140. package/dist/vue/VoiceProviderSimulationControls.d.ts +88 -0
  141. package/dist/vue/VoiceProviderStatus.d.ts +51 -0
  142. package/dist/vue/VoiceRoutingStatus.d.ts +51 -0
  143. package/dist/vue/VoiceTurnLatency.d.ts +69 -0
  144. package/dist/vue/VoiceTurnQuality.d.ts +51 -0
  145. package/dist/vue/index.d.ts +17 -0
  146. package/dist/vue/index.js +2660 -31
  147. package/dist/vue/useVoiceCampaignDialerProof.d.ts +11 -0
  148. package/dist/vue/useVoiceController.d.ts +2 -1
  149. package/dist/vue/useVoiceOpsStatus.d.ts +9 -0
  150. package/dist/vue/useVoiceProviderCapabilities.d.ts +9 -0
  151. package/dist/vue/useVoiceProviderSimulationControls.d.ts +24 -0
  152. package/dist/vue/useVoiceProviderStatus.d.ts +9 -0
  153. package/dist/vue/useVoiceRoutingStatus.d.ts +8 -0
  154. package/dist/vue/useVoiceStream.d.ts +4 -1
  155. package/dist/vue/useVoiceTraceTimeline.d.ts +9 -0
  156. package/dist/vue/useVoiceTurnLatency.d.ts +10 -0
  157. package/dist/vue/useVoiceTurnQuality.d.ts +9 -0
  158. package/dist/vue/useVoiceWorkflowStatus.d.ts +9 -0
  159. package/dist/workflowContract.d.ts +91 -0
  160. package/package.json +1 -1
@@ -0,0 +1,11 @@
1
+ import { type VoiceCampaignDialerProofClientOptions } from '../client/campaignDialerProof';
2
+ import type { VoiceCampaignDialerProofReport, VoiceCampaignDialerProofStatus } from '../campaignDialers';
3
+ export declare function useVoiceCampaignDialerProof(path?: string, options?: VoiceCampaignDialerProofClientOptions): {
4
+ error: import("vue").ShallowRef<string | null, string | null>;
5
+ isLoading: import("vue").ShallowRef<boolean, boolean>;
6
+ refresh: () => Promise<VoiceCampaignDialerProofStatus | undefined>;
7
+ report: import("vue").ShallowRef<VoiceCampaignDialerProofReport | undefined, VoiceCampaignDialerProofReport | undefined>;
8
+ runProof: () => Promise<VoiceCampaignDialerProofReport>;
9
+ status: import("vue").ShallowRef<VoiceCampaignDialerProofStatus | undefined, VoiceCampaignDialerProofStatus | undefined>;
10
+ updatedAt: import("vue").ShallowRef<number | undefined, number | undefined>;
11
+ };
@@ -1,5 +1,5 @@
1
1
  import type { VoiceControllerOptions, VoiceTurnRecord } from '../types';
2
- export declare const useVoiceController: <TResult = unknown>(path: string, options?: VoiceControllerOptions) => {
2
+ export declare function useVoiceController<TResult = unknown>(path: string, options?: VoiceControllerOptions): {
3
3
  assistantAudio: import("vue").ShallowRef<{
4
4
  chunk: Uint8Array;
5
5
  format: import("..").AudioFormat;
@@ -19,6 +19,7 @@ export declare const useVoiceController: <TResult = unknown>(path: string, optio
19
19
  isConnected: import("vue").Ref<boolean, boolean>;
20
20
  isRecording: import("vue").Ref<boolean, boolean>;
21
21
  partial: import("vue").Ref<string, string>;
22
+ reconnect: import("vue").ShallowRef<import("..").VoiceReconnectClientState, import("..").VoiceReconnectClientState>;
22
23
  recordingError: import("vue").Ref<string | null, string | null>;
23
24
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
24
25
  sessionId: import("vue").Ref<string | null, string | null>;
@@ -0,0 +1,9 @@
1
+ import { type VoiceOpsStatusClientOptions } from '../client/opsStatus';
2
+ import type { VoiceOpsStatusReport } from '../opsStatus';
3
+ export declare function useVoiceOpsStatus(path?: string, options?: VoiceOpsStatusClientOptions): {
4
+ error: import("vue").Ref<string | null, string | null>;
5
+ isLoading: import("vue").Ref<boolean, boolean>;
6
+ refresh: () => Promise<VoiceOpsStatusReport | undefined>;
7
+ report: import("vue").ShallowRef<VoiceOpsStatusReport | undefined, VoiceOpsStatusReport | undefined>;
8
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,9 @@
1
+ import { type VoiceProviderCapabilitiesClientOptions } from '../client/providerCapabilities';
2
+ import type { VoiceProviderCapabilityReport } from '../providerCapabilities';
3
+ export declare function useVoiceProviderCapabilities<TProvider extends string = string>(path?: string, options?: VoiceProviderCapabilitiesClientOptions): {
4
+ error: import("vue").ShallowRef<string | null, string | null>;
5
+ isLoading: import("vue").ShallowRef<boolean, boolean>;
6
+ refresh: () => Promise<VoiceProviderCapabilityReport<TProvider> | undefined>;
7
+ report: import("vue").ShallowRef<VoiceProviderCapabilityReport<TProvider> | undefined, VoiceProviderCapabilityReport<TProvider> | undefined>;
8
+ updatedAt: import("vue").ShallowRef<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,24 @@
1
+ import { type VoiceProviderSimulationControlsOptions } from '../client/providerSimulationControls';
2
+ export declare function useVoiceProviderSimulationControls<TProvider extends string = string>(options: VoiceProviderSimulationControlsOptions<TProvider>): {
3
+ error: import("vue").Ref<string | null, string | null>;
4
+ isRunning: import("vue").Ref<boolean, boolean>;
5
+ lastResult: import("vue").Ref<{
6
+ fallbackProvider?: import("vue").UnwrapRef<TProvider> | undefined;
7
+ mode: import("../testing").VoiceIOProviderFailureSimulationMode;
8
+ provider: import("vue").UnwrapRef<TProvider>;
9
+ sessionId: string;
10
+ status: "simulated";
11
+ suppressedUntil?: number | undefined;
12
+ } | null, import("../testing").VoiceIOProviderFailureSimulationResult<TProvider> | {
13
+ fallbackProvider?: import("vue").UnwrapRef<TProvider> | undefined;
14
+ mode: import("../testing").VoiceIOProviderFailureSimulationMode;
15
+ provider: import("vue").UnwrapRef<TProvider>;
16
+ sessionId: string;
17
+ status: "simulated";
18
+ suppressedUntil?: number | undefined;
19
+ } | null>;
20
+ mode: import("vue").Ref<import("../testing").VoiceIOProviderFailureSimulationMode | null, import("../testing").VoiceIOProviderFailureSimulationMode | null>;
21
+ provider: [TProvider | null] extends [import("vue").Ref<any, any>] ? import("@vue/shared").IfAny<import("vue").Ref<any, any> & TProvider, import("vue").Ref<import("vue").Ref<any, any> & TProvider, import("vue").Ref<any, any> & TProvider>, import("vue").Ref<any, any> & TProvider> : import("vue").Ref<import("vue").UnwrapRef<TProvider> | null, TProvider | import("vue").UnwrapRef<TProvider> | null>;
22
+ run: (provider: TProvider, mode: import("../testing").VoiceIOProviderFailureSimulationMode) => Promise<import("../testing").VoiceIOProviderFailureSimulationResult<TProvider> | null>;
23
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
24
+ };
@@ -0,0 +1,9 @@
1
+ import { type VoiceProviderStatusClientOptions } from '../client/providerStatus';
2
+ import type { VoiceProviderHealthSummary } from '../providerHealth';
3
+ export declare function useVoiceProviderStatus<TProvider extends string = string>(path?: string, options?: VoiceProviderStatusClientOptions): {
4
+ error: import("vue").Ref<string | null, string | null>;
5
+ isLoading: import("vue").Ref<boolean, boolean>;
6
+ providers: import("vue").ShallowRef<VoiceProviderHealthSummary<TProvider>[], VoiceProviderHealthSummary<TProvider>[]>;
7
+ refresh: () => Promise<VoiceProviderHealthSummary<TProvider>[]>;
8
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,8 @@
1
+ import { type VoiceRoutingStatusClientOptions } from '../client/routingStatus';
2
+ export declare function useVoiceRoutingStatus(path?: string, options?: VoiceRoutingStatusClientOptions): {
3
+ decision: import("vue").ShallowRef<import("..").VoiceRoutingEvent | null, import("..").VoiceRoutingEvent | null>;
4
+ error: import("vue").Ref<string | null, string | null>;
5
+ isLoading: import("vue").Ref<boolean, boolean>;
6
+ refresh: () => Promise<import("..").VoiceRoutingEvent | null>;
7
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
8
+ };
@@ -1,5 +1,5 @@
1
1
  import type { VoiceConnectionOptions, VoiceTurnRecord } from '../types';
2
- export declare const useVoiceStream: <TResult = unknown>(path: string, options?: VoiceConnectionOptions) => {
2
+ export declare function useVoiceStream<TResult = unknown>(path: string, options?: VoiceConnectionOptions): {
3
3
  assistantAudio: import("vue").ShallowRef<{
4
4
  chunk: Uint8Array;
5
5
  format: import("..").AudioFormat;
@@ -12,11 +12,14 @@ export declare const useVoiceStream: <TResult = unknown>(path: string, options?:
12
12
  turnId?: string;
13
13
  }[]>;
14
14
  assistantTexts: import("vue").ShallowRef<string[], string[]>;
15
+ call: import("vue").ShallowRef<import("..").VoiceCallLifecycleState | null, import("..").VoiceCallLifecycleState | null>;
16
+ callControl: (message: Parameters<(message: Omit<import("..").VoiceClientCallControlMessage, "type">) => void>[0]) => void;
15
17
  close: () => void;
16
18
  endTurn: () => void;
17
19
  error: import("vue").Ref<string | null, string | null>;
18
20
  isConnected: import("vue").Ref<boolean, boolean>;
19
21
  partial: import("vue").Ref<string, string>;
22
+ reconnect: import("vue").ShallowRef<import("..").VoiceReconnectClientState, import("..").VoiceReconnectClientState>;
20
23
  sendAudio: (audio: Uint8Array | ArrayBuffer) => void;
21
24
  sessionId: import("vue").Ref<string | null, string | null>;
22
25
  status: import("vue").Ref<import("..").VoiceSessionStatus | "idle", import("..").VoiceSessionStatus | "idle">;
@@ -0,0 +1,9 @@
1
+ import { type VoiceTraceTimelineClientOptions } from '../client/traceTimeline';
2
+ import type { VoiceTraceTimelineReport } from '../traceTimeline';
3
+ export declare function useVoiceTraceTimeline(path?: string, options?: VoiceTraceTimelineClientOptions): {
4
+ error: import("vue").Ref<string | null, string | null>;
5
+ isLoading: import("vue").Ref<boolean, boolean>;
6
+ refresh: () => Promise<VoiceTraceTimelineReport | null>;
7
+ report: import("vue").ShallowRef<VoiceTraceTimelineReport | null, VoiceTraceTimelineReport | null>;
8
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,10 @@
1
+ import { type VoiceTurnLatencyClientOptions } from '../client/turnLatency';
2
+ import type { VoiceTurnLatencyReport } from '../turnLatency';
3
+ export declare function useVoiceTurnLatency(path?: string, options?: VoiceTurnLatencyClientOptions): {
4
+ error: import("vue").ShallowRef<string | null, string | null>;
5
+ isLoading: import("vue").ShallowRef<boolean, boolean>;
6
+ refresh: () => Promise<VoiceTurnLatencyReport | undefined>;
7
+ report: import("vue").ShallowRef<VoiceTurnLatencyReport | undefined, VoiceTurnLatencyReport | undefined>;
8
+ runProof: () => Promise<VoiceTurnLatencyReport | undefined>;
9
+ updatedAt: import("vue").ShallowRef<number | undefined, number | undefined>;
10
+ };
@@ -0,0 +1,9 @@
1
+ import { type VoiceTurnQualityClientOptions } from '../client/turnQuality';
2
+ import type { VoiceTurnQualityReport } from '../turnQuality';
3
+ export declare function useVoiceTurnQuality(path?: string, options?: VoiceTurnQualityClientOptions): {
4
+ error: import("vue").ShallowRef<string | null, string | null>;
5
+ isLoading: import("vue").ShallowRef<boolean, boolean>;
6
+ refresh: () => Promise<VoiceTurnQualityReport | undefined>;
7
+ report: import("vue").ShallowRef<VoiceTurnQualityReport | undefined, VoiceTurnQualityReport | undefined>;
8
+ updatedAt: import("vue").ShallowRef<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,9 @@
1
+ import { type VoiceWorkflowStatusClientOptions } from '../client/workflowStatus';
2
+ import type { VoiceScenarioEvalReport } from '../evalRoutes';
3
+ export declare function useVoiceWorkflowStatus(path?: string, options?: VoiceWorkflowStatusClientOptions): {
4
+ error: import("vue").Ref<string | null, string | null>;
5
+ isLoading: import("vue").Ref<boolean, boolean>;
6
+ refresh: () => Promise<VoiceScenarioEvalReport | undefined>;
7
+ report: import("vue").ShallowRef<VoiceScenarioEvalReport | undefined, VoiceScenarioEvalReport | undefined>;
8
+ updatedAt: import("vue").Ref<number | undefined, number | undefined>;
9
+ };
@@ -0,0 +1,91 @@
1
+ import type { VoiceScenarioEvalDefinition } from './evalRoutes';
2
+ import type { StoredVoiceTraceEvent, VoiceTraceEventStore } from './trace';
3
+ import type { VoiceOnTurnHandler, VoiceRouteResult, VoiceSessionRecord, VoiceTurnRecord } from './types';
4
+ export type VoiceWorkflowOutcome = 'complete' | 'transfer' | 'escalate' | 'voicemail' | 'no-answer';
5
+ export type VoiceWorkflowContractFieldMatch = 'boolean' | 'non-empty' | 'number' | 'string' | 'truthy';
6
+ export type VoiceWorkflowContractField = {
7
+ aliases?: string[];
8
+ label?: string;
9
+ match?: VoiceWorkflowContractFieldMatch;
10
+ path: string;
11
+ required?: boolean;
12
+ };
13
+ export type VoiceWorkflowContractDefinition<TResult = unknown> = {
14
+ description?: string;
15
+ fields?: VoiceWorkflowContractField[];
16
+ forbiddenHandoffActions?: string[];
17
+ id: string;
18
+ label?: string;
19
+ maxProviderErrors?: number;
20
+ maxSessionErrors?: number;
21
+ minSessions?: number;
22
+ minTurns?: number;
23
+ outcome?: VoiceWorkflowOutcome;
24
+ requiredAssistantIncludes?: string[];
25
+ requiredDisposition?: string;
26
+ requiredHandoffActions?: string[];
27
+ requiredLifecycleTypes?: string[];
28
+ requiredTranscriptIncludes?: string[];
29
+ scenarioId?: string;
30
+ validate?: (input: {
31
+ result: TResult | undefined;
32
+ routeResult: VoiceRouteResult<TResult>;
33
+ }) => VoiceWorkflowContractValidationIssue[];
34
+ };
35
+ export type VoiceWorkflowContractPresetName = 'appointment-booking' | 'lead-qualification' | 'support-triage' | 'transfer-handoff' | 'voicemail-callback';
36
+ export type VoiceWorkflowContractPresetOptions<TResult = unknown> = Partial<Omit<VoiceWorkflowContractDefinition<TResult>, 'fields' | 'id'>> & {
37
+ fields?: VoiceWorkflowContractField[];
38
+ id?: string;
39
+ };
40
+ export type VoiceWorkflowContractValidationIssue = {
41
+ code: string;
42
+ field?: string;
43
+ message: string;
44
+ };
45
+ export type VoiceWorkflowContractValidation = {
46
+ contractId: string;
47
+ issues: VoiceWorkflowContractValidationIssue[];
48
+ missingFields: string[];
49
+ outcome?: VoiceWorkflowOutcome;
50
+ pass: boolean;
51
+ requiredFields: string[];
52
+ };
53
+ export type VoiceWorkflowContract<TResult = unknown> = {
54
+ assertRouteResult: (routeResult: VoiceRouteResult<TResult>) => void;
55
+ definition: VoiceWorkflowContractDefinition<TResult>;
56
+ toScenarioEval: (overrides?: Partial<VoiceScenarioEvalDefinition>) => VoiceScenarioEvalDefinition;
57
+ validateRouteResult: (routeResult: VoiceRouteResult<TResult>) => VoiceWorkflowContractValidation;
58
+ };
59
+ export type VoiceWorkflowContractTracePayload = {
60
+ contractId: string;
61
+ issues: VoiceWorkflowContractValidationIssue[];
62
+ missingFields: string[];
63
+ outcome?: VoiceWorkflowOutcome;
64
+ requiredFields: string[];
65
+ status: 'pass' | 'fail';
66
+ };
67
+ export declare const validateVoiceWorkflowRouteResult: <TResult = unknown>(definition: VoiceWorkflowContractDefinition<TResult>, routeResult: VoiceRouteResult<TResult>) => VoiceWorkflowContractValidation;
68
+ export declare const createVoiceWorkflowScenario: <TResult = unknown>(definition: VoiceWorkflowContractDefinition<TResult>, overrides?: Partial<VoiceScenarioEvalDefinition>) => VoiceScenarioEvalDefinition;
69
+ export declare const createVoiceWorkflowContract: <TResult = unknown>(definition: VoiceWorkflowContractDefinition<TResult>) => VoiceWorkflowContract<TResult>;
70
+ export declare const createVoiceWorkflowContractPreset: <TResult = unknown>(name: VoiceWorkflowContractPresetName, options?: VoiceWorkflowContractPresetOptions<TResult>) => VoiceWorkflowContract<TResult>;
71
+ export declare const recordVoiceWorkflowContractTrace: (input: {
72
+ at?: number;
73
+ contractId?: string;
74
+ scenarioId?: string;
75
+ sessionId: string;
76
+ store: VoiceTraceEventStore;
77
+ traceId?: string;
78
+ turnId?: string;
79
+ validation: VoiceWorkflowContractValidation;
80
+ }) => Promise<StoredVoiceTraceEvent<VoiceWorkflowContractTracePayload>>;
81
+ export declare const createVoiceWorkflowContractHandler: <TContext = unknown, TSession extends VoiceSessionRecord = VoiceSessionRecord, TResult = unknown>(input: {
82
+ contract?: VoiceWorkflowContract<TResult> | VoiceWorkflowContractDefinition<TResult>;
83
+ handler: VoiceOnTurnHandler<TContext, TSession, TResult>;
84
+ resolveContract?: (args: {
85
+ context: TContext;
86
+ result: VoiceRouteResult<TResult>;
87
+ session: TSession;
88
+ turn: VoiceTurnRecord;
89
+ }) => VoiceWorkflowContract<TResult> | VoiceWorkflowContractDefinition<TResult> | undefined;
90
+ store?: VoiceTraceEventStore;
91
+ }) => VoiceOnTurnHandler<TContext, TSession, TResult>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.14",
3
+ "version": "0.0.22-beta.140",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",