/** * Derive a durable thread title from the first prompt line (QA-048). * * The old `firstLine.slice(0, 60)` counted UTF-16 code units, so it could split * a supplementary scalar between its surrogates — a lone `\ud83d` then serializes * to JSON that Foundation's JSONDecoder rejects, breaking the whole macOS thread * list. It also cut mid-word with no omission cue. This segments on extended * grapheme clusters (Intl.Segmenter) so an emoji/ZWJ sequence/combining mark is * never split, and appends an ellipsis when the source overflows. * * Producer-only + migration-safe: this runs solely when a thread has no title * yet (its first turn); titles already stored are never re-derived. */ export declare function deriveThreadTitle(prompt: string): string; //# sourceMappingURL=thread-title.d.ts.map