import React from 'react'; import { MessageResponse } from '../../components/MessageResponse.js'; import { stringWidth } from '../../ink/stringWidth.js'; import { Text } from '../../ink.js'; import { truncateToWidthNoEllipsis } from '../../utils/format.js'; import type { Output } from './TaskStopTool.js'; export function renderToolUseMessage(): React.ReactNode { return ''; } const MAX_COMMAND_DISPLAY_LINES = 2; const MAX_COMMAND_DISPLAY_CHARS = 160; function truncateCommand(command: string): string { const lines = command.split('\n'); let truncated = command; if (lines.length > MAX_COMMAND_DISPLAY_LINES) { truncated = lines.slice(0, MAX_COMMAND_DISPLAY_LINES).join('\n'); } if (stringWidth(truncated) > MAX_COMMAND_DISPLAY_CHARS) { truncated = truncateToWidthNoEllipsis(truncated, MAX_COMMAND_DISPLAY_CHARS); } return truncated.trim(); } export function renderToolResultMessage(output: Output, _progressMessagesForMessage: unknown[], { verbose }: { verbose: boolean; }): React.ReactNode { if ("external" === 'ant') { return null; } const rawCommand = output.command ?? ''; const command = verbose ? rawCommand : truncateCommand(rawCommand); const suffix = command !== rawCommand ? '… · stopped' : ' · stopped'; return {command} {suffix} ; }