import { Box, Text } from 'ink' import React, { useMemo } from 'react' import { UnaryEvent } from '../../../hooks/usePermissionRequestLogging' import { savePermission } from '../../../permissions' import { BashTool } from '../../../tools/BashTool/BashTool' import { getTheme } from '../../../utils/theme' import { usePermissionRequestLogging } from '../hooks' import { type ToolUseConfirm, toolUseConfirmGetPrefix, } from '../PermissionRequest.js' import { PermissionRequestTitle } from '../PermissionRequestTitle' import { logUnaryPermissionEvent } from '../utils' import { Select } from '../../CustomSelect/select' import { toolUseOptions } from '../toolUseOptions' type Props = { toolUseConfirm: ToolUseConfirm onDone(): void } export function BashPermissionRequest({ toolUseConfirm, onDone, }: Props): React.ReactNode { const theme = getTheme() // ok to use parse since we've already validated args earliers const { command } = BashTool.inputSchema.parse(toolUseConfirm.input) const unaryEvent = useMemo( () => ({ completion_type: 'tool_use_single', language_name: 'none' }), [], ) usePermissionRequestLogging(toolUseConfirm, unaryEvent) return ( {BashTool.renderToolUseMessage({ command })} {toolUseConfirm.description} Do you want to proceed?