import type { ChatMessage } from '../../agent';

/**
 * v2.2.69 — chatHistory 의 마지막 user 턴에서 사용자가 무슨 주제를 다루고
 * 있었는지 한 줄로 뽑아 모드 전환 bridge 의 "이전 맥락" 문장에 쓴다.
 *
 * 비어 있으면 빈 문자열. 너무 길면 120자 cap (bridge 문장은 짧아야 의미 있음).
 *
 * agent.ts 의 private 메서드를 추출 — 옛 버전은 `this.chatHistory` 를 직접 읽어
 * stateful 했지만, history 를 명시 arg 로 받게 만들어 stateless 화. 호출자가
 * 이미 자기 history 를 들고 있으니 의존 방향이 자연스럽다.
 */
export function buildLastTopicLine(history: ChatMessage[]): string {
    const recent = history.filter(m => !m.internal && (m.role === 'user' || m.role === 'assistant'));
    if (recent.length === 0) return '';
    const lastUser = [...recent].reverse().find(m => m.role === 'user');
    if (!lastUser || typeof lastUser.content !== 'string') return '';
    return lastUser.content.replace(/\s+/g, ' ').trim().slice(0, 120);
}
