Files
AstrBot/astrbot/core/computer/olayer/filesystem.py
LIghtJUNction 4d1e0ef1be merge: resolve conflicts from upstream
Conflict resolution: accepted HEAD versions for all conflicted files.
2026-04-15 17:03:54 +08:00

69 lines
1.6 KiB
Python

"""File system component"""
from typing import Any, Protocol
class FileSystemComponent(Protocol):
async def create_file(
self,
path: str,
content: str = "",
mode: int = 0o644,
) -> dict[str, Any]:
"""Create a file with the specified content"""
...
async def read_file(
self,
path: str,
encoding: str = "utf-8",
offset: int | None = None,
limit: int | None = None,
) -> dict[str, Any]:
"""Read file content by line window"""
...
async def search_files(
self,
pattern: str,
path: str | None = None,
glob: str | None = None,
after_context: int | None = None,
before_context: int | None = None,
) -> dict[str, Any]:
"""Search file contents"""
...
async def edit_file(
self,
path: str,
old_string: str,
new_string: str,
replace_all: bool = False,
encoding: str = "utf-8",
) -> dict[str, Any]:
"""Edit file content by string replacement"""
...
async def write_file(
self,
path: str,
content: str,
mode: str = "w",
encoding: str = "utf-8",
) -> dict[str, Any]:
"""Write content to file"""
...
async def delete_file(self, path: str) -> dict[str, Any]:
"""Delete file or directory"""
...
async def list_dir(
self,
path: str = ".",
show_hidden: bool = False,
) -> dict[str, Any]:
"""List directory contents"""
...