openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
24 lines (23 loc) • 1.12 kB
JavaScript
import { so as validateTalkModeParams } from "./src-D6kL8tMP.mjs";
import { t as ErrorCodes } from "./gateway-error-details-gTekQWj2.mjs";
import { d as errorShape } from "./error-codes-D0WRV4Bq.mjs";
import { t as assertValidParams } from "./validation-UW_NLjlV.mjs";
//#region src/gateway/talk/handlers/mode.ts
/** Broadcasts Talk mode changes independently of speech and realtime provider loading. */
const talkModeHandlers = { "talk.mode": async ({ params, respond, context, client, isWebchatConnect, sessionMutationCommitGuard }) => {
if (client && isWebchatConnect(client.connect) && !await context.hasConnectedTalkNode()) {
respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, "talk disabled: no connected Talk-capable nodes"));
return;
}
if (!assertValidParams(params, validateTalkModeParams, "talk.mode", respond)) return;
const payload = {
enabled: params.enabled,
phase: params.phase ?? null,
ts: Date.now()
};
sessionMutationCommitGuard?.();
context.broadcast("talk.mode", payload, { dropIfSlow: true });
respond(true, payload, void 0);
} };
//#endregion
export { talkModeHandlers };