| 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', | |
| } | |
| } | |