CMDC.Backend.Results (cmdc v0.4.0)

Copy Markdown View Source

CMDC.Backend 标准 Result struct 集合。

对标 deepagents BackendProtocol 的 8 个 dataclass: ReadResult / WriteResult / EditResult / LsResult / GrepResult / GlobResult / FileUploadResponse / FileDownloadResponse,加 FileData typed map。

设计

  • 所有 Result struct 都有 :error 字段(成功为 nil,失败放原子或字符串)
  • 错误码用 atom 标准化::file_not_found / :permission_denied / :is_directory / :invalid_path (4 基础 + 允许 backend 在 metadata 中扩展自定义码)
  • @derive Jason.Encoder,便于 Web API / Postgres 序列化
  • FileData 是 typed map,支持 v1(legacy list[str])和 v2(plain str + encoding 字段)格式向后兼容

错误码标准

atom含义
:file_not_found路径不存在
:permission_denied权限不足
:is_directory期望文件得到目录
:invalid_path路径格式非法(含 traversal / 非绝对等)

允许 backend 实现在不同错误场景下额外返回 string,但鼓励先映射到上述 4 个 atom。

Summary

Functions

判断给定 reason 是否为标准错误码。

4 个标准错误码 atom 白名单。

Functions

standard_error?(reason)

@spec standard_error?(term()) :: boolean()

判断给定 reason 是否为标准错误码。

standard_errors()

@spec standard_errors() :: [atom()]

4 个标准错误码 atom 白名单。

Backend 实现优先映射到这 4 个,无法对应时再用 string。