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); }