export interface AgentHistoryMessage {
  id: string
  is_ai: boolean
  content: string
  answer_to_message_id: string | null
}

export interface AgentHistoryTurn {
  user: string
  assistant: string
}

/** Build the small conversation window expected by the existing Logistics Bot. */
export function buildAgentHistory(
  messages: AgentHistoryMessage[],
  maxTurns = 2,
): AgentHistoryTurn[] {
  const questions = new Map(
    messages.filter((message) => !message.is_ai).map((message) => [message.id, message.content]),
  )
  const turns: AgentHistoryTurn[] = []
  let latestUnpairedQuestion: AgentHistoryMessage | null = null

  for (const message of messages) {
    if (!message.is_ai) {
      latestUnpairedQuestion = message
      continue
    }
    const question = message.answer_to_message_id
      ? questions.get(message.answer_to_message_id)
      : latestUnpairedQuestion?.content
    if (!question) continue
    turns.push({ user: question, assistant: message.content })
    latestUnpairedQuestion = null
  }

  return turns.slice(-Math.max(0, maxTurns))
}
