






















@@ -65,6 +65,8 @@ type WakeMediaGenerationTaskCompletionParams = {
6565statsLine?: string;
6666};
676768+type MediaGenerationDirectCompletionDelivery = "config" | "disabled";
69+6870function touchMediaGenerationTaskRunContext(handle: MediaGenerationTaskHandle) {
6971registerAgentRunContext(handle.runId, {
7072sessionKey: handle.requesterSessionKey,
@@ -242,8 +244,14 @@ function buildMediaGenerationReplyInstruction(params: {
242244].join(" ");
243245}
244246245-function isAsyncMediaDirectSendEnabled(config: OpenClawConfig | undefined): boolean {
246-return config?.tools?.media?.asyncCompletion?.directSend === true;
247+function isAsyncMediaDirectSendEnabled(params: {
248+config: OpenClawConfig | undefined;
249+directCompletionDelivery: MediaGenerationDirectCompletionDelivery;
250+}): boolean {
251+if (params.directCompletionDelivery === "disabled") {
252+return false;
253+}
254+return params.config?.tools?.media?.asyncCompletion?.directSend === true;
247255}
248256249257async function maybeDeliverMediaGenerationResultDirectly(params: {
@@ -296,12 +304,18 @@ export async function wakeMediaGenerationTaskCompletion(params: {
296304announceType: string;
297305toolName: string;
298306completionLabel: string;
307+directCompletionDelivery: MediaGenerationDirectCompletionDelivery;
299308}) {
300309if (!params.handle) {
301310return;
302311}
303312const announceId = `${params.toolName}:${params.handle.taskId}:${params.status}`;
304-if (isAsyncMediaDirectSendEnabled(params.config)) {
313+if (
314+isAsyncMediaDirectSendEnabled({
315+config: params.config,
316+directCompletionDelivery: params.directCompletionDelivery,
317+})
318+) {
305319try {
306320const deliveredDirect = await maybeDeliverMediaGenerationResultDirectly({
307321handle: params.handle,
@@ -383,6 +397,7 @@ export function createMediaGenerationTaskLifecycle(params: {
383397eventSource: AgentInternalEvent["source"];
384398announceType: string;
385399completionLabel: string;
400+directCompletionDelivery?: MediaGenerationDirectCompletionDelivery;
386401}) {
387402return {
388403createTaskRun(runParams: CreateMediaGenerationTaskRunParams): MediaGenerationTaskHandle | null {
@@ -420,6 +435,7 @@ export function createMediaGenerationTaskLifecycle(params: {
420435announceType: params.announceType,
421436toolName: params.toolName,
422437completionLabel: params.completionLabel,
438+directCompletionDelivery: params.directCompletionDelivery ?? "config",
423439});
424440},
425441};
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。