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(legacylist[str])和v2(plainstr+encoding字段)格式向后兼容
错误码标准
| atom | 含义 |
|---|---|
:file_not_found | 路径不存在 |
:permission_denied | 权限不足 |
:is_directory | 期望文件得到目录 |
:invalid_path | 路径格式非法(含 traversal / 非绝对等) |
允许 backend 实现在不同错误场景下额外返回 string,但鼓励先映射到上述 4 个 atom。