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<TInput extends ToolInput> {
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',
}
}