import { FileEditTool } from '../../tools/FileEditTool/FileEditTool' import { FileEditToolDiff } from '../permissions/FileEditPermissionRequest/FileEditToolDiff' import { Message } from '../Message' import { normalizeMessages, type NormalizedMessage, } from '../../utils/messages.js' import type { Tool } from '../../Tool' import { useTerminalSize } from '../../hooks/useTerminalSize' import { FileWriteTool } from '../../tools/FileWriteTool/FileWriteTool' import { FileWriteToolDiff } from '../permissions/FileWritePermissionRequest/FileWriteToolDiff' import type { AssistantMessage } from '../../query' import * as React from 'react' import { Box } from 'ink' type Props = { debug: boolean erroredToolUseIDs: Set inProgressToolUseIDs: Set message: AssistantMessage normalizedMessages: NormalizedMessage[] tools: Tool[] unresolvedToolUseIDs: Set verbose: boolean } export function BinaryFeedbackOption({ debug, erroredToolUseIDs, inProgressToolUseIDs, message, normalizedMessages, tools, unresolvedToolUseIDs, verbose, }: Props): React.ReactNode { const { columns } = useTerminalSize() return normalizeMessages([message]) .filter(_ => _.type !== 'progress') .map((_, index) => ( )) } function AdditionalContext({ message, verbose, }: { message: NormalizedMessage verbose: boolean }) { const { columns } = useTerminalSize() if (message.type !== 'assistant') { return null } const content = message.message.content[0]! switch (content.type) { case 'tool_use': switch (content.name) { case FileEditTool.name: { const input = FileEditTool.inputSchema.safeParse(content.input) if (!input.success) { return null } return ( ) } case FileWriteTool.name: { const input = FileWriteTool.inputSchema.safeParse(content.input) if (!input.success) { return null } return ( ) } default: return null } default: return null } }