feat(files-mcp): add Pydantic models and pure fs_ops layer
Adds files_mcp/models.py (FileEntry, OperationResult) and files_mcp/core/fs_ops.py with 9 pure file operations on already-resolved Path objects: create/read/update/delete/list_dir/stat/search/move/copy. All writes go through tempfile.mkstemp + os.replace for atomicity; read enforces utf-8 + 1MB cap; create/update enforce strict presence semantics (create: absent or overwrite; update: present). 39 unit tests in tests/unit/test_fs_ops.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# coding=utf-8
|
||||
"""
|
||||
@Time :2026/6/30
|
||||
@Author :tao.chen
|
||||
"""
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class FileEntry(BaseModel):
|
||||
path: str # absolute, resolved, inside sandbox
|
||||
name: str
|
||||
type: Literal["file", "directory", "symlink", "other"]
|
||||
size: int # bytes; 0 for directories
|
||||
mtime: float # unix seconds
|
||||
mode: int # st_mode (octal, e.g. 0o644)
|
||||
|
||||
|
||||
class OperationResult(BaseModel):
|
||||
path: str
|
||||
status: str # "CREATED" | "UPDATED" | "DELETED" | "MOVED" | "COPIED"
|
||||
size: int | None # None for delete/move
|
||||
Reference in New Issue
Block a user