toYaml method

String toYaml()

Serializes a tools: block: flat keys sorted, mcp:<server> keys rendered as a nested mcp: map. An empty config serializes to ''.

Implementation

String toYaml() {
  if (isEmpty) return '';
  final buffer = StringBuffer('tools:');
  for (final key in _flatKeys.toList()..sort()) {
    buffer.write('\n  $key: ${tools[key]}');
  }
  final servers =
      tools.keys
          .where((key) => key.startsWith(_mcpPrefix))
          .map((key) => key.substring(_mcpPrefix.length))
          .toList()
        ..sort();
  if (servers.isNotEmpty) {
    buffer.write('\n  mcp:');
    for (final server in servers) {
      buffer.write('\n    $server: ${tools['$_mcpPrefix$server']}');
    }
  }
  return buffer.toString();
}