SciDER / scider /tools /github /read_readme /__init__.py
leonardklin's picture
Upload 355 files
1499363 verified
Raw
History Blame Contribute Delete
1.21 kB
"""ReadReadmeTool — read README.md from a repository."""
from __future__ import annotations
import os
from pathlib import Path
from pydantic import BaseModel, Field
from ...base import BaseTool, ToolContext
class ReadReadmeInput(BaseModel):
repo_dir: str = Field(description="Local directory where repository was cloned.")
class ReadReadmeTool(BaseTool):
name = "read_readme"
description = "Read README.md from a repository directory."
input_schema = ReadReadmeInput
_always_read_only = True
def call(self, context: ToolContext, *, repo_dir: str) -> str:
try:
repo_path = Path(os.path.expandvars(repo_dir)).expanduser()
if not repo_path.exists():
return f"Error: Repository directory '{repo_dir}' does not exist"
candidates = ["README.md", "readme.md", "Readme.md", "README.MD"]
for filename in candidates:
file_path = repo_path / filename
if file_path.exists():
return file_path.read_text(errors="ignore")
return "No README.md file found in the repository."
except Exception as e:
return f"Error reading README: {e}"