refactor: reuse gateway talk provider schema fields

This commit is contained in:
Peter Steinberger 2026-03-13 16:36:39 +00:00
parent 7b8e48ffb6
commit e94ac57f80
1 changed files with 13 additions and 20 deletions

View File

@ -16,16 +16,17 @@ export const TalkConfigParamsSchema = Type.Object(
{ additionalProperties: false }, { additionalProperties: false },
); );
const TalkProviderConfigSchema = Type.Object( const talkProviderFieldSchemas = {
{
voiceId: Type.Optional(Type.String()), voiceId: Type.Optional(Type.String()),
voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())), voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())),
modelId: Type.Optional(Type.String()), modelId: Type.Optional(Type.String()),
outputFormat: Type.Optional(Type.String()), outputFormat: Type.Optional(Type.String()),
apiKey: Type.Optional(SecretInputSchema), apiKey: Type.Optional(SecretInputSchema),
}, };
{ additionalProperties: true },
); const TalkProviderConfigSchema = Type.Object(talkProviderFieldSchemas, {
additionalProperties: true,
});
const ResolvedTalkConfigSchema = Type.Object( const ResolvedTalkConfigSchema = Type.Object(
{ {
@ -37,11 +38,7 @@ const ResolvedTalkConfigSchema = Type.Object(
const LegacyTalkConfigSchema = Type.Object( const LegacyTalkConfigSchema = Type.Object(
{ {
voiceId: Type.Optional(Type.String()), ...talkProviderFieldSchemas,
voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())),
modelId: Type.Optional(Type.String()),
outputFormat: Type.Optional(Type.String()),
apiKey: Type.Optional(SecretInputSchema),
interruptOnSpeech: Type.Optional(Type.Boolean()), interruptOnSpeech: Type.Optional(Type.Boolean()),
silenceTimeoutMs: Type.Optional(Type.Integer({ minimum: 1 })), silenceTimeoutMs: Type.Optional(Type.Integer({ minimum: 1 })),
}, },
@ -53,11 +50,7 @@ const NormalizedTalkConfigSchema = Type.Object(
provider: Type.Optional(Type.String()), provider: Type.Optional(Type.String()),
providers: Type.Optional(Type.Record(Type.String(), TalkProviderConfigSchema)), providers: Type.Optional(Type.Record(Type.String(), TalkProviderConfigSchema)),
resolved: ResolvedTalkConfigSchema, resolved: ResolvedTalkConfigSchema,
voiceId: Type.Optional(Type.String()), ...talkProviderFieldSchemas,
voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())),
modelId: Type.Optional(Type.String()),
outputFormat: Type.Optional(Type.String()),
apiKey: Type.Optional(SecretInputSchema),
interruptOnSpeech: Type.Optional(Type.Boolean()), interruptOnSpeech: Type.Optional(Type.Boolean()),
silenceTimeoutMs: Type.Optional(Type.Integer({ minimum: 1 })), silenceTimeoutMs: Type.Optional(Type.Integer({ minimum: 1 })),
}, },