execute method
Execute the tool with the given input.
Implementation
@override
Future<ToolResult> execute(Map<String, dynamic> input) async {
final validation = validateInput(input);
if (!validation.isValid) return ToolResult.error(validation.error!);
final parsed = ValidateInput.fromJson(input);
String content;
if (parsed.content != null) {
content = parsed.content!;
} else {
final file = File(parsed.filePath!);
if (!await file.exists()) {
return ToolResult.error('File not found: ${parsed.filePath}');
}
content = await file.readAsString();
}
switch (parsed.validatorType) {
case 'json':
return _validateJson(content);
case 'yaml':
return _validateYaml(content);
case 'toml':
return _validateToml(content);
case 'xml':
return _validateXml(content);
case 'schema':
return _validateSchema(content);
default:
return ToolResult.error(
'Unsupported validator: ${parsed.validatorType}',
);
}
}