本地文件系统 backend。
适合:CLI / 开发工具 / 本机 Agent 运行。
不适合:Web 服务器 / 不可信负载(用 CMDC.Backend.State 或沙箱 backend)。
安全模式(virtual_mode)
virtual_mode: false(默认,行为兼容老Sandbox.Local): 绝对路径直接落到 OS,相对路径 joinroot_dir。0 安全保护。virtual_mode: true(生产推荐):所有路径作为虚拟绝对路径处理:- 禁止
../~traversal - 解析后的绝对路径必须在
root_dir内 - 写入用
O_NOFOLLOW防 symlink 跳出
- 禁止
后续版本会让
Sandbox.Local自动复用本 backend 并默认启用virtual_mode。
示例
backend = CMDC.Backend.Filesystem.new(root_dir: "/tmp/agent_workspace", virtual_mode: true)
CMDC.Backend.write(backend, "/notes.md", "hello") # → /tmp/agent_workspace/notes.md
CMDC.Backend.read(backend, "/notes.md")
Summary
Types
@type t() :: %CMDC.Backend.Filesystem{ max_file_size: pos_integer(), root_dir: Path.t(), virtual_mode: boolean() }