Skip to content

Commit 3791c66

Browse files
author
root
committed
🤖 refactor: remove file_edit_insert tool
The file_edit_insert tool led to more issues than benefits (unreliable line offset calculations and edge cases). Standardize on file_edit_replace_string as the primary file editing tool. Changes: - Remove file_edit_insert tool and all references - Remove from tool definitions and type exports - Update UI components to only support replace_string and replace_lines - Update tests and tool policies - Update integration tests to use file_edit_replace_string All 987 unit tests pass; typecheck is clean.
1 parent c817e7d commit 3791c66

File tree

11 files changed

+11
-666
lines changed

11 files changed

+11
-666
lines changed

src/components/Messages/ToolMessage.tsx

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import type {
1313
BashToolResult,
1414
FileReadToolArgs,
1515
FileReadToolResult,
16-
FileEditInsertToolArgs,
17-
FileEditInsertToolResult,
1816
FileEditReplaceStringToolArgs,
1917
FileEditReplaceStringToolResult,
2018
FileEditReplaceLinesToolArgs,
@@ -61,11 +59,6 @@ function isFileEditReplaceLinesTool(
6159
return TOOL_DEFINITIONS.file_edit_replace_lines.schema.safeParse(args).success;
6260
}
6361

64-
function isFileEditInsertTool(toolName: string, args: unknown): args is FileEditInsertToolArgs {
65-
if (toolName !== "file_edit_insert") return false;
66-
return TOOL_DEFINITIONS.file_edit_insert.schema.safeParse(args).success;
67-
}
68-
6962
function isProposePlanTool(toolName: string, args: unknown): args is ProposePlanToolArgs {
7063
if (toolName !== "propose_plan") return false;
7164
return TOOL_DEFINITIONS.propose_plan.schema.safeParse(args).success;
@@ -134,19 +127,6 @@ export const ToolMessage: React.FC<ToolMessageProps> = ({ message, className, wo
134127
);
135128
}
136129

137-
if (isFileEditInsertTool(message.toolName, message.args)) {
138-
return (
139-
<div className={className}>
140-
<FileEditToolCall
141-
toolName="file_edit_insert"
142-
args={message.args}
143-
result={message.result as FileEditInsertToolResult | undefined}
144-
status={message.status}
145-
/>
146-
</div>
147-
);
148-
}
149-
150130
if (isProposePlanTool(message.toolName, message.args)) {
151131
return (
152132
<div className={className}>

src/components/tools/FileEditToolCall.tsx

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import React from "react";
22
import { parsePatch } from "diff";
33
import type {
4-
FileEditInsertToolArgs,
5-
FileEditInsertToolResult,
64
FileEditReplaceStringToolArgs,
75
FileEditReplaceStringToolResult,
86
FileEditReplaceLinesToolArgs,
@@ -24,18 +22,12 @@ import { TooltipWrapper, Tooltip } from "../Tooltip";
2422
import { DiffContainer, DiffRenderer, SelectableDiffRenderer } from "../shared/DiffRenderer";
2523
import { KebabMenu, type KebabMenuItem } from "../KebabMenu";
2624

27-
type FileEditOperationArgs =
28-
| FileEditReplaceStringToolArgs
29-
| FileEditReplaceLinesToolArgs
30-
| FileEditInsertToolArgs;
25+
type FileEditOperationArgs = FileEditReplaceStringToolArgs | FileEditReplaceLinesToolArgs;
3126

32-
type FileEditToolResult =
33-
| FileEditReplaceStringToolResult
34-
| FileEditReplaceLinesToolResult
35-
| FileEditInsertToolResult;
27+
type FileEditToolResult = FileEditReplaceStringToolResult | FileEditReplaceLinesToolResult;
3628

3729
interface FileEditToolCallProps {
38-
toolName: "file_edit_replace_string" | "file_edit_replace_lines" | "file_edit_insert";
30+
toolName: "file_edit_replace_string" | "file_edit_replace_lines";
3931
args: FileEditOperationArgs;
4032
result?: FileEditToolResult;
4133
status?: ToolStatus;

0 commit comments

Comments
 (0)