@absolutejs/voice 0.0.22-beta.169 → 0.0.22-beta.170

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
@@ -46,7 +46,7 @@ export { assertVoiceProviderRoutingContract, runVoiceProviderRoutingContract } f
46
46
  export { createVoicePhoneAgentProductionSmokeHTMLHandler, createVoicePhoneAgentProductionSmokeJSONHandler, createVoicePhoneAgentProductionSmokeRoutes, renderVoicePhoneAgentProductionSmokeHTML, runVoicePhoneAgentProductionSmokeContract } from './phoneAgentProductionSmoke';
47
47
  export { buildVoiceProductionReadinessGate, buildVoiceProductionReadinessReport, createVoiceProductionReadinessRoutes, renderVoiceProductionReadinessHTML, summarizeVoiceProductionReadinessGate } from './productionReadiness';
48
48
  export { createVoiceReadinessProfile, recommendVoiceReadinessProfile } from './readinessProfiles';
49
- export { buildVoiceProviderContractMatrix, createVoiceProviderContractMatrixHTMLHandler, createVoiceProviderContractMatrixJSONHandler, createVoiceProviderContractMatrixRoutes, evaluateVoiceProviderStackGaps, renderVoiceProviderContractMatrixHTML, recommendVoiceProviderStack } from './providerStackRecommendations';
49
+ export { buildVoiceProviderContractMatrix, createVoiceProviderContractMatrixHTMLHandler, createVoiceProviderContractMatrixJSONHandler, createVoiceProviderContractMatrixPreset, createVoiceProviderContractMatrixRoutes, evaluateVoiceProviderStackGaps, renderVoiceProviderContractMatrixHTML, recommendVoiceProviderStack } from './providerStackRecommendations';
50
50
  export { buildVoiceOpsConsoleReport, createVoiceOpsConsoleRoutes, renderVoiceOpsConsoleHTML } from './opsConsoleRoutes';
51
51
  export { summarizeVoiceOpsStatus } from './opsStatus';
52
52
  export { createVoiceOpsStatusRoutes, renderVoiceOpsStatusHTML } from './opsStatusRoutes';
@@ -106,7 +106,7 @@ export type { VoiceOpsConsoleLink, VoiceOpsConsoleReport, VoiceOpsConsoleRoutesO
106
106
  export type { VoiceOpsStatus, VoiceOpsStatusLink, VoiceOpsStatusOptions, VoiceOpsStatusReport, VoiceOpsStatusRoutesOptions } from './opsStatus';
107
107
  export type { VoiceProductionReadinessAction, VoiceProductionReadinessAuditOptions, VoiceProductionReadinessAuditRequirement, VoiceProductionReadinessAuditSummary, VoiceProductionReadinessCheck, VoiceProductionReadinessGateIssue, VoiceProductionReadinessGateOptions, VoiceProductionReadinessGateProfile, VoiceProductionReadinessGateProfileSurface, VoiceProductionReadinessGateReport, VoiceProductionReadinessOpsActionHistoryOptions, VoiceProductionReadinessOpsActionHistorySummary, VoiceProductionReadinessProfileExplanation, VoiceProductionReadinessProfileSurface, VoiceProductionReadinessProofSource, VoiceProductionReadinessReport, VoiceProductionReadinessRoutesOptions, VoiceProductionReadinessTraceDeliverySummary, VoiceProductionReadinessAuditDeliveryOptions, VoiceProductionReadinessAuditDeliverySummary, VoiceProductionReadinessTraceDeliveryOptions, VoiceProductionReadinessStatus } from './productionReadiness';
108
108
  export type { VoiceReadinessProfileName, VoiceReadinessProfileOptions, VoiceReadinessProfileRecommendation, VoiceReadinessProfileRecommendationScore, VoiceReadinessProfileRoutesOptions } from './readinessProfiles';
109
- export type { VoiceProviderStackChoice, VoiceProviderStackCapabilities, VoiceProviderStackCapabilityGap, VoiceProviderStackCapabilityGapInput, VoiceProviderStackCapabilityGapReport, VoiceProviderContractCheck, VoiceProviderContractCheckStatus, VoiceProviderContractDefinition, VoiceProviderContractMatrixHandlerOptions, VoiceProviderContractMatrixHTMLHandlerOptions, VoiceProviderContractMatrixInput, VoiceProviderContractMatrixReport, VoiceProviderContractMatrixRoutesOptions, VoiceProviderContractMatrixRow, VoiceProviderStackInput, VoiceProviderStackKind, VoiceProviderStackRecommendation } from './providerStackRecommendations';
109
+ export type { VoiceProviderStackChoice, VoiceProviderStackCapabilities, VoiceProviderStackCapabilityGap, VoiceProviderStackCapabilityGapInput, VoiceProviderStackCapabilityGapReport, VoiceProviderContractCheck, VoiceProviderContractCheckStatus, VoiceProviderContractDefinition, VoiceProviderContractMatrixHandlerOptions, VoiceProviderContractMatrixHTMLHandlerOptions, VoiceProviderContractMatrixInput, VoiceProviderContractMatrixPresetOptions, VoiceProviderContractMatrixReport, VoiceProviderContractMatrixRoutesOptions, VoiceProviderContractMatrixRow, VoiceProviderStackInput, VoiceProviderStackKind, VoiceProviderStackRecommendation } from './providerStackRecommendations';
110
110
  export type { VoiceQualityLink, VoiceQualityMetric, VoiceQualityReport, VoiceQualityRoutesOptions, VoiceQualityStatus, VoiceQualityThresholds } from './qualityRoutes';
111
111
  export type { VoiceResilienceIOSimulator, VoiceResilienceLink, VoiceResiliencePageData, VoiceResilienceRoutesOptions, VoiceResilienceSimulationProvider, VoiceRoutingKindSummary, VoiceRoutingDecisionSummary, VoiceRoutingDecisionSummaryOptions, VoiceRoutingEvent, VoiceRoutingEventKind, VoiceRoutingSessionSummary, VoiceRoutingSessionSummaryOptions } from './resilienceRoutes';
112
112
  export type { VoiceIOProviderRouterEvent, VoiceIOProviderRouterOptions, VoiceIOProviderRouterPolicy, VoiceIOProviderRouterPolicyConfig, VoiceSTTProviderRouterOptions, VoiceTTSProviderRouterOptions } from './providerAdapters';
package/dist/index.js CHANGED
@@ -21395,6 +21395,34 @@ var profileRequiredCapabilities = {
21395
21395
  tts: ["streaming speech", "barge-in friendly"]
21396
21396
  }
21397
21397
  };
21398
+ var defaultProviderEnv = {
21399
+ anthropic: ["ANTHROPIC_API_KEY"],
21400
+ assemblyai: ["ASSEMBLYAI_API_KEY"],
21401
+ deepgram: ["DEEPGRAM_API_KEY"],
21402
+ gemini: ["GEMINI_API_KEY"],
21403
+ openai: ["OPENAI_API_KEY"]
21404
+ };
21405
+ var defaultStreamingProviders = new Set([
21406
+ "assemblyai",
21407
+ "deepgram",
21408
+ "openai"
21409
+ ]);
21410
+ var defaultProviderCapabilities = {
21411
+ anthropic: ["tool calling", "JSON result shaping", "fallback routing"],
21412
+ assemblyai: ["realtime STT", "turn formatting", "fallback STT"],
21413
+ deepgram: ["realtime STT", "VAD events", "smart formatting"],
21414
+ deterministic: ["offline demo mode", "zero external dependency"],
21415
+ emergency: ["spoken playback", "offline fallback"],
21416
+ gemini: ["tool calling", "JSON result shaping", "fallback routing"],
21417
+ openai: [
21418
+ "tool calling",
21419
+ "JSON result shaping",
21420
+ "fallback routing",
21421
+ "streaming speech",
21422
+ "barge-in friendly",
21423
+ "spoken playback"
21424
+ ]
21425
+ };
21398
21426
  var chooseProvider = (available, priorities) => priorities.find((provider) => available.includes(provider)) ?? available[0];
21399
21427
  var recommendVoiceProviderStack = (input) => {
21400
21428
  const priorities = profileProviderPriorities[input.profile];
@@ -21527,6 +21555,33 @@ var buildVoiceProviderContractMatrix = (input) => {
21527
21555
  warned
21528
21556
  };
21529
21557
  };
21558
+ var createVoiceProviderContractMatrixPreset = (profile, options) => {
21559
+ const contracts = ["llm", "stt", "tts"].flatMap((kind) => {
21560
+ const providers = options.providers[kind] ?? [];
21561
+ return providers.map((provider) => {
21562
+ const configured = options.configured?.[provider] ?? (defaultProviderEnv[provider]?.length ? defaultProviderEnv[provider].every((name) => options.env?.[name]) : true);
21563
+ const fallbackProviders = options.fallbackProviders?.[kind] ?? providers.filter((candidate) => candidate !== provider);
21564
+ const requiredCapabilities = profileRequiredCapabilities[profile][kind];
21565
+ const capabilities = options.capabilities?.[kind]?.[provider] ?? defaultProviderCapabilities[provider] ?? [];
21566
+ const requiredEnv = defaultProviderEnv[provider] ?? [];
21567
+ return {
21568
+ capabilities,
21569
+ configured,
21570
+ env: options.env,
21571
+ fallbackProviders,
21572
+ kind,
21573
+ latencyBudgetMs: options.latencyBudgets?.[provider],
21574
+ provider,
21575
+ requiredCapabilities,
21576
+ requiredEnv,
21577
+ remediationHref: options.remediationHref,
21578
+ selected: options.selected?.[kind] === provider,
21579
+ streaming: options.streaming?.[provider] ?? defaultStreamingProviders.has(provider)
21580
+ };
21581
+ });
21582
+ });
21583
+ return { contracts };
21584
+ };
21530
21585
  var resolveProviderContractMatrixInput = async (matrix) => typeof matrix === "function" ? await matrix() : matrix;
21531
21586
  var renderVoiceProviderContractMatrixHTML = (report, options = {}) => {
21532
21587
  const title = options.title ?? "Voice Provider Contract Matrix";
@@ -24549,6 +24604,7 @@ export {
24549
24604
  createVoiceProviderHealthJSONHandler,
24550
24605
  createVoiceProviderHealthHTMLHandler,
24551
24606
  createVoiceProviderContractMatrixRoutes,
24607
+ createVoiceProviderContractMatrixPreset,
24552
24608
  createVoiceProviderContractMatrixJSONHandler,
24553
24609
  createVoiceProviderContractMatrixHTMLHandler,
24554
24610
  createVoiceProviderCapabilityRoutes,
@@ -67,6 +67,17 @@ export type VoiceProviderContractDefinition<TProvider extends string = string> =
67
67
  export type VoiceProviderContractMatrixInput<TProvider extends string = string> = {
68
68
  contracts: readonly VoiceProviderContractDefinition<TProvider>[];
69
69
  };
70
+ export type VoiceProviderContractMatrixPresetOptions<TProvider extends string = string> = {
71
+ capabilities?: VoiceProviderStackCapabilities<TProvider>;
72
+ configured?: Partial<Record<TProvider, boolean>>;
73
+ env?: Record<string, string | undefined>;
74
+ fallbackProviders?: Partial<Record<VoiceProviderStackKind, readonly TProvider[]>>;
75
+ latencyBudgets?: Partial<Record<TProvider, number>>;
76
+ providers: Partial<Record<VoiceProviderStackKind, readonly TProvider[]>>;
77
+ remediationHref?: string;
78
+ selected?: Partial<Record<VoiceProviderStackKind, TProvider>>;
79
+ streaming?: Partial<Record<TProvider, boolean>>;
80
+ };
70
81
  export type VoiceProviderContractMatrixHandlerOptions<TProvider extends string = string> = VoiceProviderContractMatrixInput<TProvider> | (() => Promise<VoiceProviderContractMatrixInput<TProvider>> | VoiceProviderContractMatrixInput<TProvider>);
71
82
  export type VoiceProviderContractMatrixHTMLHandlerOptions<TProvider extends string = string> = {
72
83
  matrix: VoiceProviderContractMatrixHandlerOptions<TProvider>;
@@ -97,6 +108,7 @@ export type VoiceProviderContractMatrixReport<TProvider extends string = string>
97
108
  };
98
109
  export declare const recommendVoiceProviderStack: <TProvider extends string = string>(input: VoiceProviderStackInput<TProvider>) => VoiceProviderStackRecommendation<TProvider>;
99
110
  export declare const buildVoiceProviderContractMatrix: <TProvider extends string = string>(input: VoiceProviderContractMatrixInput<TProvider>) => VoiceProviderContractMatrixReport<TProvider>;
111
+ export declare const createVoiceProviderContractMatrixPreset: <TProvider extends string = string>(profile: VoiceReadinessProfileName, options: VoiceProviderContractMatrixPresetOptions<TProvider>) => VoiceProviderContractMatrixInput<TProvider>;
100
112
  export declare const renderVoiceProviderContractMatrixHTML: <TProvider extends string = string>(report: VoiceProviderContractMatrixReport<TProvider>, options?: {
101
113
  title?: string;
102
114
  }) => string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.169",
3
+ "version": "0.0.22-beta.170",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",