mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-26 06:26:19 +00:00
* fix(tenki): honour start_line and end_line in read_file The base Sandbox contract declares read_file(path, start_line, end_line), and the tools layer passes both keyword arguments on every ranged read — including the continuation path that a truncated read names with its start_line marker. TenkiSandbox.read_file accepted only path, so any ranged read through a Tenki sandbox raised TypeError and surfaced as "Unexpected error reading file"; a truncated read could not be continued. Slice the text the way the other providers do (e2b, opensandbox, boxlite): the full text when no range is given, otherwise the selected lines joined with newlines. * fix(tenki): clamp a negative start_line and pin the out-of-range read contract Mirror LocalSandbox.read_file and clamp the start line to at least 1 so a negative start_line cannot wrap around through Python's negative-index slicing. Also extend the ranged-read test with the two boundary cases the tools layer depends on: a start past EOF returns an empty string, and a negative start reads from the first line. * fix(tenki): clamp a negative end_line in read_file Mirror LocalSandbox.read_file for the symmetric range boundary: clamp a negative end_line to zero so Python's negative-index slicing cannot silently drop the last line. Pin the empty result in the existing ranged-read test.