@absolutejs/voice 0.0.22-beta.292 → 0.0.22-beta.293

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/README.md CHANGED
@@ -3941,6 +3941,55 @@ const summaryModel = createVoiceProviderRouter({
3941
3941
  });
3942
3942
  ```
3943
3943
 
3944
+ Mount `createVoiceProviderOrchestrationRoutes(...)` and pass the report into production readiness when provider policy should be deploy-gated. This proves that required surfaces have enough providers, explicit fallback order, circuit-breaker settings, timeout budgets, and cost/latency/quality bounds.
3945
+
3946
+ ```ts
3947
+ import {
3948
+ buildVoiceProviderOrchestrationReport,
3949
+ createVoiceProviderOrchestrationRoutes,
3950
+ createVoiceProductionReadinessRoutes
3951
+ } from '@absolutejs/voice';
3952
+
3953
+ const providerOrchestration = () =>
3954
+ buildVoiceProviderOrchestrationReport({
3955
+ profile: providerProfile,
3956
+ requirements: {
3957
+ 'live-call': {
3958
+ minProviders: 2,
3959
+ requireBudgetPolicy: true,
3960
+ requireCircuitBreaker: true,
3961
+ requireFallback: true,
3962
+ requireTimeoutBudget: true
3963
+ }
3964
+ }
3965
+ });
3966
+
3967
+ app
3968
+ .use(
3969
+ createVoiceProviderOrchestrationRoutes({
3970
+ profile: providerProfile,
3971
+ requirements: {
3972
+ 'live-call': {
3973
+ minProviders: 2,
3974
+ requireBudgetPolicy: true,
3975
+ requireCircuitBreaker: true,
3976
+ requireFallback: true,
3977
+ requireTimeoutBudget: true
3978
+ }
3979
+ }
3980
+ })
3981
+ )
3982
+ .use(
3983
+ createVoiceProductionReadinessRoutes({
3984
+ store: runtime.traces,
3985
+ providerOrchestration,
3986
+ links: {
3987
+ providerOrchestration: '/voice/provider-orchestration'
3988
+ }
3989
+ })
3990
+ );
3991
+ ```
3992
+
3944
3993
  Budget filters are strict. If you pass `maxCost`, `maxLatencyMs`, or `minQuality`, providers outside those limits are removed before ranking, even if they were selected by the request.
3945
3994
 
3946
3995
  ```ts
package/dist/index.d.ts CHANGED
@@ -51,6 +51,7 @@ export { createOpenAIRealtimeAdapter } from './openaiRealtime';
51
51
  export { createOpenAIVoiceTTS } from './openaiTTS';
52
52
  export { createVoiceProviderHealthHTMLHandler, createVoiceProviderHealthJSONHandler, createVoiceProviderHealthRoutes, renderVoiceProviderHealthHTML, summarizeVoiceProviderHealth } from './providerHealth';
53
53
  export { createVoiceProviderCapabilityHTMLHandler, createVoiceProviderCapabilityJSONHandler, createVoiceProviderCapabilityRoutes, renderVoiceProviderCapabilityHTML, summarizeVoiceProviderCapabilities } from './providerCapabilities';
54
+ export { buildVoiceProviderOrchestrationReport, createVoiceProviderOrchestrationRoutes, renderVoiceProviderOrchestrationHTML, renderVoiceProviderOrchestrationMarkdown } from './providerOrchestration';
54
55
  export { assertVoiceProviderRoutingContractEvidence, assertVoiceProviderRoutingContract, evaluateVoiceProviderRoutingContractEvidence, runVoiceProviderRoutingContract } from './providerRoutingContract';
55
56
  export { assertVoiceProviderSloEvidence, buildVoiceProviderSloReport, createVoiceProviderSloRoutes, evaluateVoiceProviderSloEvidence, renderVoiceProviderSloHTML, renderVoiceProviderSloMarkdown } from './providerSlo';
56
57
  export { createVoicePhoneAgentProductionSmokeHTMLHandler, createVoicePhoneAgentProductionSmokeJSONHandler, createVoicePhoneAgentProductionSmokeRoutes, renderVoicePhoneAgentProductionSmokeHTML, runVoicePhoneAgentProductionSmokeContract } from './phoneAgentProductionSmoke';
@@ -111,6 +112,7 @@ export type { OpenAIVoiceTTSOptions, OpenAIVoiceTTSVoice } from './openaiTTS';
111
112
  export type { OpenAIRealtimeAdapterOptions, OpenAIRealtimeModel, OpenAIRealtimeNoiseReduction, OpenAIRealtimeResponseMode, OpenAIRealtimeTranscriptionModel, OpenAIRealtimeVoice } from './openaiRealtime';
112
113
  export type { VoiceProviderHealthStatus, VoiceProviderHealthSummary, VoiceProviderHealthSummaryOptions } from './providerHealth';
113
114
  export type { VoiceProviderCapabilityDefinition, VoiceProviderCapabilityHandlerOptions, VoiceProviderCapabilityHTMLHandlerOptions, VoiceProviderCapabilityKind, VoiceProviderCapabilityOptions, VoiceProviderCapabilityReport, VoiceProviderCapabilityRoutesOptions, VoiceProviderCapabilitySummary } from './providerCapabilities';
115
+ export type { VoiceProviderOrchestrationIssue, VoiceProviderOrchestrationReport, VoiceProviderOrchestrationReportOptions, VoiceProviderOrchestrationRequirement, VoiceProviderOrchestrationRoutesOptions, VoiceProviderOrchestrationStatus, VoiceProviderOrchestrationSurfaceReport } from './providerOrchestration';
114
116
  export type { VoiceProviderRoutingContractAssertionInput, VoiceProviderRoutingContractAssertionReport, VoiceProviderRoutingContractDefinition, VoiceProviderRoutingContractIssue, VoiceProviderRoutingContractReport, VoiceProviderRoutingContractRunOptions, VoiceProviderRoutingExpectation, VoiceProviderRoutingStatus } from './providerRoutingContract';
115
117
  export type { VoiceProviderSloAssertionInput, VoiceProviderSloAssertionReport, VoiceProviderSloIssue, VoiceProviderSloKindReport, VoiceProviderSloMetric, VoiceProviderSloReport, VoiceProviderSloReportOptions, VoiceProviderSloRoutesOptions, VoiceProviderSloSessionReport, VoiceProviderSloStatus, VoiceProviderSloThresholdConfig, VoiceProviderSloThresholds } from './providerSlo';
116
118
  export type { VoiceTurnLatencyHTMLHandlerOptions, VoiceTurnLatencyItem, VoiceTurnLatencyOptions, VoiceTurnLatencyReport, VoiceTurnLatencyRoutesOptions, VoiceTurnLatencyStage, VoiceTurnLatencyStatus } from './turnLatency';