Skip to content

Commit 9716bfb

Browse files
committed
Match Taiga's concise response format for str_replace_editor tool
- str_replace now returns concise success message without dumping file content - create command returns simple success message without showing file content - view command unchanged (still shows full content as that's its purpose) - Updated all tests to match new response format - Reduces token usage and matches expected Taiga behavior
1 parent bc04836 commit 9716bfb

File tree

3 files changed

+17
-43
lines changed

3 files changed

+17
-43
lines changed

src/tools/str_replace_editor.jl

Lines changed: 10 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -217,33 +217,13 @@ function execute(tool::StrReplaceEditorTool, params::Dict)
217217
end
218218
end
219219

220-
# Show the result with line numbers
221-
lines = split(new_content, '\n')
222-
223-
# Find lines that were changed
224-
changed_lines = Int[]
225-
for (i, line) in enumerate(lines)
226-
if occursin(new_str, line)
227-
push!(changed_lines, i)
228-
end
229-
end
230-
231-
# Show context around changed lines
232-
result_lines = String[]
233-
for line_num in changed_lines
234-
start_line = max(1, line_num - 2)
235-
end_line = min(length(lines), line_num + 2)
236-
237-
for i in start_line:end_line
238-
prefix = i == line_num ? ">>> " : " "
239-
push!(result_lines, "$prefix$i\t$(lines[i])")
240-
end
241-
push!(result_lines, "")
220+
# Return concise message like Taiga
221+
if occurrences == 1
222+
message = "The file $path has been edited successfully."
223+
else
224+
message = "The file $path has been edited successfully. Made $occurrences replacements."
242225
end
243-
244-
result = join(result_lines, "\n")
245-
message = "Replaced $occurrences occurrence(s) in $path\n\n$result"
246-
226+
247227
return create_content_response(message, is_error=false)
248228

249229
elseif command == "create"
@@ -279,13 +259,10 @@ function execute(tool::StrReplaceEditorTool, params::Dict)
279259
end
280260
end
281261

282-
# Show created file with line numbers
283-
lines = split(file_text, '\n')
284-
numbered_lines = [string(i, "\t", line) for (i, line) in enumerate(lines)]
285-
content = join(numbered_lines, "\n")
286-
287-
message = "Created file: $path\n\n$content"
288-
262+
# Return concise message like Taiga
263+
num_lines = count(c -> c == '\n', file_text) + 1
264+
message = "File created successfully at $path"
265+
289266
return create_content_response(message, is_error=false)
290267

291268
else

test/test_str_replace_editor.jl

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,8 @@
2424

2525
@test haskey(result, "content")
2626
text = result["content"][1]["text"]
27-
@test occursin("Created file", text)
28-
@test occursin("1\tLine 1", text)
29-
@test occursin("2\tLine 2", text)
30-
@test occursin("3\tLine 3", text)
27+
@test occursin("File created successfully", text)
28+
@test occursin("test.txt", text)
3129

3230
# Verify file was actually created
3331
@test isfile(joinpath(tmpdir, "test.txt"))
@@ -75,9 +73,8 @@
7573

7674
@test haskey(result, "content")
7775
text = result["content"][1]["text"]
78-
@test occursin("Replaced 2 occurrence(s)", text)
79-
@test occursin("Hi World", text)
80-
@test occursin("Hi again", text)
76+
@test occursin("edited successfully", text)
77+
@test occursin("2 replacements", text)
8178

8279
# Verify file was modified
8380
content = read(test_file, String)
@@ -105,7 +102,7 @@
105102
))
106103

107104
@test haskey(result, "content")
108-
@test occursin("Created file", result["content"][1]["text"])
105+
@test occursin("File created successfully", result["content"][1]["text"])
109106

110107
# Verify file and directories were created
111108
@test isdir(joinpath(tmpdir, "subdir"))

test/test_view_range.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@
107107
"view_range" => [1, 2] # Should be ignored
108108
))
109109
@test !result["isError"]
110-
@test occursin("Replaced 1 occurrence", result["content"][1]["text"])
110+
@test occursin("edited successfully", result["content"][1]["text"])
111111

112112
# view_range should be ignored for create
113113
result = execute(tool, Dict(
@@ -117,7 +117,7 @@
117117
"view_range" => [1, 2] # Should be ignored
118118
))
119119
@test !result["isError"]
120-
@test occursin("Created file", result["content"][1]["text"])
120+
@test occursin("File created successfully", result["content"][1]["text"])
121121
end
122122

123123
# Clean up

0 commit comments

Comments
 (0)