File read, write, and edit operations for agent tools.
@type edit() :: %{old_text: String.t(), new_text: String.t()}
@spec diff(String.t(), String.t()) :: String.t()
@spec edit_file(String.t(), [edit() | map()], keyword()) :: {:ok, map()} | {:error, String.t()}
@spec language(Path.t()) :: String.t()
@spec read_file( String.t(), keyword() ) :: {:ok, Vibe.Files.ReadResult.t()} | {:error, String.t()}
@spec write_file(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, String.t()}