formatToolSchema function
Format a tool schema for display.
Implementation
String formatToolSchema(String toolName) {
final schema = _schemas[toolName];
if (schema == null) return 'Unknown tool: $toolName';
final buffer = StringBuffer();
buffer.writeln('Tool: ${schema['name']}');
buffer.writeln('Description: ${schema['description']}');
final inputSchema = schema['input_schema'] as Map<String, dynamic>? ?? {};
final properties = inputSchema['properties'] as Map<String, dynamic>? ?? {};
final required = (inputSchema['required'] as List?)?.cast<String>() ?? [];
if (properties.isNotEmpty) {
buffer.writeln('Parameters:');
for (final entry in properties.entries) {
final prop = entry.value as Map<String, dynamic>;
final isRequired = required.contains(entry.key);
final type = prop['type'] ?? 'any';
buffer.write(' ${entry.key} ($type)');
if (isRequired) buffer.write(' [required]');
if (prop['description'] != null) {
buffer.write(' — ${prop['description']}');
}
buffer.writeln();
}
}
return buffer.toString();
}