


























@@ -28,6 +28,7 @@ import {
2828buildTaskRunDetails,
2929normalizeMediaReferenceInputs,
3030readBooleanToolParam,
31+readGenerationTimeoutMs,
3132resolveCapabilityModelConfigForTool,
3233resolveGenerateAction,
3334resolveMediaToolLocalRoots,
@@ -98,6 +99,12 @@ const MusicGenerateToolSchema = Type.Object({
9899minimum: 1,
99100}),
100101),
102+timeoutMs: Type.Optional(
103+Type.Number({
104+description: "Optional provider request timeout in milliseconds.",
105+minimum: 1,
106+}),
107+),
101108format: Type.Optional(
102109Type.String({
103110description: 'Optional output format hint: "mp3" or "wav" when the provider supports it.',
@@ -336,6 +343,7 @@ async function executeMusicGenerationJob(params: {
336343filename?: string;
337344loadedReferenceImages: LoadedReferenceImage[];
338345taskHandle?: MusicGenerationTaskHandle | null;
346+timeoutMs?: number;
339347}): Promise<ExecutedMusicGeneration> {
340348if (params.taskHandle) {
341349recordMusicGenerationTaskProgress({
@@ -353,6 +361,7 @@ async function executeMusicGenerationJob(params: {
353361durationSeconds: params.durationSeconds,
354362format: params.format,
355363inputImages: params.loadedReferenceImages.map((entry) => entry.sourceImage),
364+timeoutMs: params.timeoutMs,
356365});
357366if (params.taskHandle) {
358367recordMusicGenerationTaskProgress({
@@ -437,6 +446,7 @@ async function executeMusicGenerationJob(params: {
437446 : {}),
438447 ...(!ignoredOverrideKeys.has("format") && params.format ? { format: params.format } : {}),
439448 ...(params.filename ? { filename: params.filename } : {}),
449+ ...(params.timeoutMs !== undefined ? { timeoutMs: params.timeoutMs } : {}),
440450 ...buildMediaReferenceDetails({
441451entries: params.loadedReferenceImages,
442452singleKey: "image",
@@ -520,6 +530,7 @@ export function createMusicGenerateTool(options?: {
520530});
521531const format = normalizeOutputFormat(readStringParam(args, "format"));
522532const filename = readStringParam(args, "filename");
533+const timeoutMs = readGenerationTimeoutMs(args);
523534const imageInputs = normalizeReferenceImageInputs(args);
524535const selectedProvider = resolveSelectedMusicGenerationProvider({
525536config: effectiveCfg,
@@ -564,6 +575,7 @@ export function createMusicGenerateTool(options?: {
564575 filename,
565576 loadedReferenceImages,
566577 taskHandle,
578+ timeoutMs,
567579});
568580completeMusicGenerationTaskRun({
569581handle: taskHandle,
@@ -627,6 +639,7 @@ export function createMusicGenerateTool(options?: {
627639 ...(typeof durationSeconds === "number" ? { durationSeconds } : {}),
628640 ...(format ? { format } : {}),
629641 ...(filename ? { filename } : {}),
642+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
630643},
631644};
632645}
@@ -644,6 +657,7 @@ export function createMusicGenerateTool(options?: {
644657 filename,
645658 loadedReferenceImages,
646659 taskHandle,
660+ timeoutMs,
647661});
648662completeMusicGenerationTaskRun({
649663handle: taskHandle,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。