fix: allow device-paired clients to retrieve TTS API keys (#14613)

* refactor: add config.get to READ_METHODS set

* refactor(gateway): scope talk secrets via talk.config

* fix: resolve rebase conflicts for talk scope refactor

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
This commit is contained in:
Sk Akram
2026-02-13 21:37:49 +05:30
committed by GitHub
parent c2f7b66d22
commit 4c86821aca
14 changed files with 264 additions and 6 deletions

View File

@@ -44,6 +44,10 @@ import {
AgentWaitParamsSchema,
type ChannelsLogoutParams,
ChannelsLogoutParamsSchema,
type TalkConfigParams,
TalkConfigParamsSchema,
type TalkConfigResult,
TalkConfigResultSchema,
type ChannelsStatusParams,
ChannelsStatusParamsSchema,
type ChannelsStatusResult,
@@ -300,6 +304,7 @@ export const validateWizardNextParams = ajv.compile<WizardNextParams>(WizardNext
export const validateWizardCancelParams = ajv.compile<WizardCancelParams>(WizardCancelParamsSchema);
export const validateWizardStatusParams = ajv.compile<WizardStatusParams>(WizardStatusParamsSchema);
export const validateTalkModeParams = ajv.compile<TalkModeParams>(TalkModeParamsSchema);
export const validateTalkConfigParams = ajv.compile<TalkConfigParams>(TalkConfigParamsSchema);
export const validateChannelsStatusParams = ajv.compile<ChannelsStatusParams>(
ChannelsStatusParamsSchema,
);
@@ -446,6 +451,8 @@ export {
WizardNextResultSchema,
WizardStartResultSchema,
WizardStatusResultSchema,
TalkConfigParamsSchema,
TalkConfigResultSchema,
ChannelsStatusParamsSchema,
ChannelsStatusResultSchema,
ChannelsLogoutParamsSchema,
@@ -532,6 +539,8 @@ export type {
WizardNextResult,
WizardStartResult,
WizardStatusResult,
TalkConfigParams,
TalkConfigResult,
TalkModeParams,
ChannelsStatusParams,
ChannelsStatusResult,

View File

@@ -9,6 +9,53 @@ export const TalkModeParamsSchema = Type.Object(
{ additionalProperties: false },
);
export const TalkConfigParamsSchema = Type.Object(
{
includeSecrets: Type.Optional(Type.Boolean()),
},
{ additionalProperties: false },
);
export const TalkConfigResultSchema = Type.Object(
{
config: Type.Object(
{
talk: Type.Optional(
Type.Object(
{
voiceId: Type.Optional(Type.String()),
voiceAliases: Type.Optional(Type.Record(Type.String(), Type.String())),
modelId: Type.Optional(Type.String()),
outputFormat: Type.Optional(Type.String()),
apiKey: Type.Optional(Type.String()),
interruptOnSpeech: Type.Optional(Type.Boolean()),
},
{ additionalProperties: false },
),
),
session: Type.Optional(
Type.Object(
{
mainKey: Type.Optional(Type.String()),
},
{ additionalProperties: false },
),
),
ui: Type.Optional(
Type.Object(
{
seamColor: Type.Optional(Type.String()),
},
{ additionalProperties: false },
),
),
},
{ additionalProperties: false },
),
},
{ additionalProperties: false },
);
export const ChannelsStatusParamsSchema = Type.Object(
{
probe: Type.Optional(Type.Boolean()),

View File

@@ -37,6 +37,8 @@ import {
} from "./agents-models-skills.js";
import {
ChannelsLogoutParamsSchema,
TalkConfigParamsSchema,
TalkConfigResultSchema,
ChannelsStatusParamsSchema,
ChannelsStatusResultSchema,
TalkModeParamsSchema,
@@ -191,6 +193,8 @@ export const ProtocolSchemas: Record<string, TSchema> = {
WizardStartResult: WizardStartResultSchema,
WizardStatusResult: WizardStatusResultSchema,
TalkModeParams: TalkModeParamsSchema,
TalkConfigParams: TalkConfigParamsSchema,
TalkConfigResult: TalkConfigResultSchema,
ChannelsStatusParams: ChannelsStatusParamsSchema,
ChannelsStatusResult: ChannelsStatusResultSchema,
ChannelsLogoutParams: ChannelsLogoutParamsSchema,

View File

@@ -35,6 +35,8 @@ import type {
} from "./agents-models-skills.js";
import type {
ChannelsLogoutParamsSchema,
TalkConfigParamsSchema,
TalkConfigResultSchema,
ChannelsStatusParamsSchema,
ChannelsStatusResultSchema,
TalkModeParamsSchema,
@@ -180,6 +182,8 @@ export type WizardNextResult = Static<typeof WizardNextResultSchema>;
export type WizardStartResult = Static<typeof WizardStartResultSchema>;
export type WizardStatusResult = Static<typeof WizardStatusResultSchema>;
export type TalkModeParams = Static<typeof TalkModeParamsSchema>;
export type TalkConfigParams = Static<typeof TalkConfigParamsSchema>;
export type TalkConfigResult = Static<typeof TalkConfigResultSchema>;
export type ChannelsStatusParams = Static<typeof ChannelsStatusParamsSchema>;
export type ChannelsStatusResult = Static<typeof ChannelsStatusResultSchema>;
export type ChannelsLogoutParams = Static<typeof ChannelsLogoutParamsSchema>;