import type { ToolInput } from './useFilePermissionDialog.js' export interface FileEdit { old_string: string new_string: string replace_all?: boolean } export interface IDEDiffConfig { filePath: string edits?: FileEdit[] editMode?: 'single' | 'multiple' } export interface IDEDiffChangeInput { file_path: string edits: FileEdit[] } export interface IDEDiffSupport { getConfig(input: TInput): IDEDiffConfig applyChanges(input: TInput, modifiedEdits: FileEdit[]): TInput } export function createSingleEditDiffConfig( filePath: string, oldString: string, newString: string, replaceAll?: boolean, ): IDEDiffConfig { return { filePath, edits: [ { old_string: oldString, new_string: newString, replace_all: replaceAll, }, ], editMode: 'single', } }