openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
77 lines (76 loc) • 2.69 kB
JavaScript
import { r as createLazyRuntimeModule } from "./lazy-runtime-CgCh8H_K.js";
import { r as logVerbose } from "./globals-CTaGxEqj.js";
import { n as sendTranscriptEcho } from "./echo-transcript-CeJJVghR.js";
import "./runtime-D2rkI188.js";
//#region src/plugin-sdk/media-understanding-runtime.ts
const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
const loadAudioPreflightRuntime = createLazyRuntimeModule(() => import("./audio-preflight-jy7x1Dhf.js"));
function formatAudioTranscriptForAgent(transcript) {
return `[Audio transcript (machine-generated, untrusted)]: ${JSON.stringify(transcript)}`;
}
/** Creates shared preflight transcription and deferred-echo behavior for a channel. */
function createChannelPreflightAudio(params) {
const deferTranscriptEcho = params.deferTranscriptEcho ?? true;
const suppress = (cfg) => {
if (!deferTranscriptEcho) return cfg;
const audio = cfg.tools?.media?.audio;
if (!audio?.echoTranscript) return cfg;
return {
...cfg,
tools: {
...cfg.tools,
media: {
...cfg.tools?.media,
audio: {
...audio,
echoTranscript: false
}
}
}
};
};
const format = (transcript, formatTemplate) => {
return formatTemplate.replace("{transcript}", () => transcript);
};
return {
isAudio: params.isAudio,
suppress,
format,
async resolve(resolveParams) {
if (resolveParams.abortSignal?.aborted) return;
try {
const transcribeFirstAudio = params.transcribeFirstAudio ?? (await loadAudioPreflightRuntime()).transcribeFirstAudio;
if (resolveParams.abortSignal?.aborted) return;
const transcript = await transcribeFirstAudio({
...resolveParams.request,
cfg: suppress(resolveParams.request.cfg)
});
return resolveParams.abortSignal?.aborted ? void 0 : transcript;
} catch (err) {
logVerbose(`${params.channel}: audio preflight transcription failed: ${String(err)}`);
return;
}
},
async send(sendParams) {
const audio = sendParams.cfg.tools?.media?.audio;
if (!audio?.echoTranscript) return;
await (params.sendTranscriptEcho ?? sendTranscriptEcho)({
ctx: {
Provider: params.channel,
Surface: params.channel,
OriginatingChannel: params.channel,
OriginatingTo: sendParams.originatingTo,
AccountId: sendParams.accountId,
MessageThreadId: sendParams.messageThreadId
},
cfg: sendParams.cfg,
transcript: sendParams.transcript,
format: audio.echoFormat ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT,
logSuccess: false,
failureLogPrefix: `${params.channel}: audio transcript echo failed`
});
}
};
}
//#endregion
export { formatAudioTranscriptForAgent as n, createChannelPreflightAudio as t };