toYaml method

String toYaml()

Implementation

String toYaml() {
  final buffer = StringBuffer()
    ..write('provider: $providerKind\n')
    ..write('model: $modelId\n')
    ..write('baseUrl: $baseUrl\n')
    ..write('mode: $mode\n')
    ..write('approvalMode: $approvalMode\n');
  if (allowedTools.isEmpty) {
    buffer.write('allowedTools: []\n');
  } else {
    buffer.write('allowedTools:\n');
    for (final tool in allowedTools) {
      buffer.write('  - $tool\n');
    }
  }
  if (promptOverrides.isNotEmpty) {
    // JSON-quoted values are valid yaml scalars and keep inline multi-line
    // prompt text round-trippable (same convention as the ttsr section).
    buffer.write('prompts:\n');
    for (final entry in promptOverrides.entries) {
      buffer.write('  ${entry.key}: ${jsonEncode(entry.value)}\n');
    }
  }
  final roles = modelRoles;
  if (roles != null) buffer.write(roles.toYaml());
  final ttsrConfig = ttsr;
  if (ttsrConfig != null) buffer.write(ttsrConfig.toYaml());
  return buffer.toString();
}