fix(api): normalize empty workflow tool file lists (#37125)

This commit is contained in:
Popper Li
2026-06-07 10:52:53 +08:00
committed by GitHub
parent 76fb1b6ea8
commit fad5656b2e
2 changed files with 60 additions and 0 deletions
+13
View File
@@ -363,11 +363,24 @@ class WorkflowTool(Tool):
files.append(file_dict)
except Exception:
logger.exception("Failed to transform file %s", file)
elif parameter.type == ToolParameter.ToolParameterType.FILES:
value = tool_parameters.get(parameter.name)
if not parameter.required and self._is_empty_files_parameter_value(value):
value = []
parameters_result[parameter.name] = value
else:
parameters_result[parameter.name] = tool_parameters.get(parameter.name)
return parameters_result, files
@staticmethod
def _is_empty_files_parameter_value(value: Any) -> bool:
"""Identify empty optional file-list placeholders before workflow input validation."""
if value is None or value == "":
return True
return isinstance(value, list) and all(item is None or item == "" for item in value)
def _extract_files(self, outputs: dict[str, Any]) -> tuple[dict[str, Any], list[File]]:
"""
extract files from the result