files: fit the API to how agents actually call it master
Session traces showed agents tripping on the same shapes: - read, ls, edit, and write were synchronous while find and paths were async, and agents awaited the wrong ones. Ready results may now be awaited or used directly; an unawaited search says to await it instead of printing a coroutine, and slicing it applies after the await. - read's limit was a character budget that every model took for a line count; one asked for lines 144-400, got six, and fell back to sed. limit now counts lines and max_chars is the separate budget, and a stopped read says which one stopped it and where to resume. - agents shelled out to grep for surrounding lines and multiple paths. find takes a list of paths and context=N. - read accepts its line range positionally.