CMDC.Backend.Filesystem (cmdc v0.5.3)

Copy Markdown View Source

本地文件系统 backend。

适合:CLI / 开发工具 / 本机 Agent 运行。 不适合:Web 服务器 / 不可信负载(用 CMDC.Backend.State 或沙箱 backend)。

安全模式(virtual_mode)

  • virtual_mode: false(默认,行为兼容老 Sandbox.Local): 绝对路径直接落到 OS,相对路径 join root_dir0 安全保护

  • 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

Functions

构建 Filesystem backend。

Types

t()

@type t() :: %CMDC.Backend.Filesystem{
  max_file_size: pos_integer(),
  root_dir: Path.t(),
  virtual_mode: boolean()
}

Functions

new(opts)

@spec new(keyword()) :: t()

构建 Filesystem backend。

选项

  • :root_dir — 根目录(必填)
  • :virtual_mode — 安全模式开关(默认 false生产推荐 true
  • :max_file_size — 文件大小上限(grep python fallback 用,默认 10MB)