Interface: FrozenVoicePlan
Defined in: packages/agentos/src/io/speech/SpeechProviderResolver.ts:37
Configuration is captured before admission; model construction is deferred until the authenticated binding starts.
Properties
agent
readonlyagent:object
Defined in: packages/agentos/src/io/speech/SpeechProviderResolver.ts:38
agentId
agentId:
string=id
allowedToolRefs
allowedToolRefs:
string[]
createdAt
createdAt:
number=count
endpoint
endpoint:
object=EndpointSelectionSchema
endpoint.modelId
modelId:
string=id
endpoint.modelRevision
modelRevision:
string=revisionRef
endpoint.optionsRef?
optionaloptionsRef:string
endpoint.providerId
providerId:
string=id
language
language:
string
limits
limits:
object=VoiceCallLimitsSchema
limits.cleanupTimeoutMs
cleanupTimeoutMs:
number=positive
limits.maxDurationSeconds
maxDurationSeconds:
number=positive
limits.maxTurns
maxTurns:
number=positive
limits.reconnectGraceMs
reconnectGraceMs:
number=count
limits.setupTimeoutMs
setupTimeoutMs:
number=positive
limits.silenceTimeoutMs
silenceTimeoutMs:
number=positive
name
name:
string
prompt
prompt:
string
providerPolicy
providerPolicy:
object=VoiceProviderPolicySchema
providerPolicy.fallback
fallback:
"none"|"allowlisted"
providerPolicy.mode
mode:
"provider"|"local"|"hosted"
providerPolicy.providerIds
providerIds:
string[]
providerPolicy.purposes
purposes: (
"stt"|"tts"|"vad"|"endpoint"|"reasoning")[]
reasoning
reasoning: {
attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";fallbacks: ({attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";manifestDigest:string;modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"local";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; } | {attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";credentialRef?:string;endpointRef:string;endpointRevision:number;modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"registered_endpoint";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; })[];manifestDigest:string;modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"local";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; } | {attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";credentialRef?:string;endpointRef:string;endpointRevision:number;fallbacks: ({attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";manifestDigest:string;modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"local";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; } | {attemptLimits: {maxAttempts:number;perAttempt: {cached_input_token:number;input_token:number;output_token:number;reasoning_token:number;request:number; }; };cancellation:"native_abort"|"process_exit"|"unsupported";credentialRef?:string;endpointRef:string;endpointRevision:number;modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"registered_endpoint";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; })[];modelId:string;modelRevision:string;protocol: {id:"openai-chat-completions";version:1; };provider:"registered_endpoint";usageUnits: {cached_input_token:"token";input_token:"token";output_token:"token";reasoning_token:"token";reasoningInOutput:boolean; }; } =ReasoningConfigSchema
revision
revision:
number=positive
scopeId
scopeId:
string=id
state
state:
"active"|"archived"
stt
stt:
object=SpeechSelectionSchema
stt.codec
codec:
"mp3"|"opus"|"wav"|"pcm_s16le"|"pcm_f32le"
stt.credentialRef?
optionalcredentialRef:string
stt.mode
mode:
"streaming"|"batch"
stt.modelId
modelId:
string=id
stt.modelRevision
modelRevision:
string=revisionRef
stt.optionsRef?
optionaloptionsRef:string
stt.providerId
providerId:
string=id
stt.sampleRate
sampleRate:
number
transcriptPolicy
transcriptPolicy: {
mode:"none"; } | {deliveryTtlSeconds:number;mode:"delivery"; } | {mode:"retained";retentionSeconds:number; } =TranscriptPolicySchema
tts
tts:
object=SpeechSelectionSchema
tts.codec
codec:
"mp3"|"opus"|"wav"|"pcm_s16le"|"pcm_f32le"
tts.credentialRef?
optionalcredentialRef:string
tts.mode
mode:
"streaming"|"batch"
tts.modelId
modelId:
string=id
tts.modelRevision
modelRevision:
string=revisionRef
tts.optionsRef?
optionaloptionsRef:string
tts.providerId
providerId:
string=id
tts.sampleRate
sampleRate:
number
updatedAt
updatedAt:
number=count
vad
vad:
object=VadSelectionSchema
vad.modelId
modelId:
string=id
vad.modelRevision
modelRevision:
string=revisionRef
vad.optionsRef?
optionaloptionsRef:string
vad.providerId
providerId:
string=id
vad.threshold
threshold:
number
version
version:
1
voice
voice:
object=VoiceSelectionSchema
voice.id
id:
string
voice.revision
revision:
string=revisionRef
webhookRef
webhookRef:
string|null
Methods
open()
open(
budget,onSupplierUsage?):Promise<OpenedVoicePlan>
Defined in: packages/agentos/src/io/speech/SpeechProviderResolver.ts:39
Parameters
budget
onSupplierUsage?
VoiceSupplierUsageSink
Returns
Promise<OpenedVoicePlan>