generateSessionTitle function

Future<String?> generateSessionTitle(
  1. String description
)

Generate a sentence-case session title from a description or first message. Returns null on error or if Haiku returns unparseable output.

Implementation

Future<String?> generateSessionTitle(String description) async {
  final trimmed = description.trim();
  if (trimmed.isEmpty) return null;

  if (_queryHaiku == null) return null;

  try {
    final result = await _queryHaiku!(
      systemPrompt: _sessionTitlePrompt,
      userPrompt: trimmed,
    );
    if (result == null) return null;
    final parsed = jsonDecode(result) as Map<String, dynamic>?;
    final title = (parsed?['title'] as String?)?.trim();
    return (title != null && title.isNotEmpty) ? title : null;
  } catch (_) {
    return null;
  }
}