/**
 * 将工具调用输出/内容格式化为可读字符串。
 * 供 stream-event-handler、agent-stream-events 和 UI 组件共用。
 */
export function formatToolOutput(content: any): string {
  if (content === null || content === undefined) {
    return ''
  }
  if (typeof content === 'string') {
    return content
  }
  if (Array.isArray(content)) {
    const texts = content
      .filter((item: any) => item && item.type === 'text' && typeof item.text === 'string')
      .map((item: any) => item.text)
      .join('\n')
    if (texts) return texts
    try {
      return JSON.stringify(content, null, 2)
    } catch {
      return '[无法序列化的内容]'
    }
  }
  if (typeof content === 'object') {
    if (content.details?.content) {
      const dc = content.details.content
      return typeof dc === 'string' ? dc : JSON.stringify(dc)
    }
    if (content.text && typeof content.text === 'string') {
      return content.text
    }
    if (Array.isArray(content.content)) {
      const texts = content.content
        .filter((item: any) => item && item.type === 'text' && typeof item.text === 'string')
        .map((item: any) => item.text)
        .join('\n')
      if (texts) return texts
    }
    if (content.error && typeof content.error === 'string') return content.error
    if (content.message && typeof content.message === 'string') return content.message
    try {
      return JSON.stringify(content, null, 2)
    } catch {
      return '[无法序列化的内容]'
    }
  }
  try {
    return String(content)
  } catch {
    return '[无法转换的内容]'
  }
}