formatValidationError function
String
formatValidationError({
- required String toolName,
- required List<
ValidationIssue> issues, - String? fallbackMessage,
Converts validation errors into a human-readable and LLM-friendly error message.
Implementation
String formatValidationError({
required String toolName,
required List<ValidationIssue> issues,
String? fallbackMessage,
}) {
final errorParts = <String>[];
for (final issue in issues) {
switch (issue) {
case MissingParamIssue(:final param):
errorParts.add('The required parameter `$param` is missing');
case UnexpectedParamIssue(:final param):
errorParts.add('An unexpected parameter `$param` was provided');
case TypeMismatchIssue(:final param, :final expected, :final received):
errorParts.add(
'The parameter `$param` type is expected as `$expected` '
'but provided as `$received`',
);
}
}
if (errorParts.isEmpty) {
return fallbackMessage ?? 'Validation failed for $toolName';
}
final issueWord = errorParts.length > 1 ? 'issues' : 'issue';
return '$toolName failed due to the following $issueWord:\n'
'${errorParts.join('\n')}';
}