generateToolSpecRegistry function

String generateToolSpecRegistry(
  1. List<Map<String, dynamic>> codeModeTools
)

Generates the static const _codeModeToolSpecs declaration.

Implementation

String generateToolSpecRegistry(List<Map<String, dynamic>> codeModeTools) {
  final entries = codeModeTools
      .map((t) {
        final name = t['name'] as String;
        final desc = escapeDartString(
          t['description'] as String? ?? 'Tool $name',
        );
        final params = t['parameters'] as List<Map<String, dynamic>>? ?? [];
        final paramEntries = params
            .map((p) {
              final paramName = p['name'] as String;
              final paramType = jsType(p['type'] as String);
              final required = p['isOptional'] != true;
              return "<String, dynamic>{'name': '$paramName', 'type': '$paramType', 'required': $required}";
            })
            .join(', ');
        return "<String, dynamic>{'name': '$name', 'description': '$desc', 'parameters': <Map<String, dynamic>>[$paramEntries]}";
      })
      .join(', ');
  return '  static const _codeModeToolSpecs = <Map<String, dynamic>>[$entries];';
}