用途:coder 是面向 agent 的受限文件系统操作界面,每个 coder::* 调用都限定在管理员配置的一个或多个允许根目录内。先调用 coder::info 可获知允许根、大小上限、响应预算、默认排除 glob 与不可访问 glob。相对路径以主根(索引 0)为基准解析;绝对路径仅当规范化后位于任一允许根内才被接受,否则返回 C215。包含 .. 的路径和逃逸符号链接会被拒绝。基于 glob 的不可访问列表(如 .env、*.pem、secrets/ 下内容)在目录列表中可见,但不可读写、不可搜索。
主要能力:覆盖读取—探索—编辑流程。coder::tree 递归快照(受 max_depth 与每目录上限约束,被截断目录需用 coder::list-folder 下钻);coder::list-folder 分页列目录;coder::search 按内容或路径做字面/正则搜索,支持 include/exclude glob 与上下文行;coder::read-file 支持 stat 探测、行窗口读取与带绝对行号的 numbered 模式;coder::create-file、coder::update-file、coder::delete-file 为批量变更,逐条隔离,单个坏路径不会中断其余操作;coder::move 支持重命名与移动,同根重命名按文件原子,跨根文件移动用复制加删除并支持回滚,跨根目录移动不支持。
使用方式:通过 iii worker add coder 添加,配置项位于 config.yaml。推荐先 coder::info 确认边界,再用 coder::tree 了解仓库结构。编辑可用“两步编辑法”:先 coder::search 带上下文定位,再 coder::update-file 用正则替换或按行更新,正则替换可设 dot_matches_newline 与 expect_matches 保证唯一匹配;替换串中的 $ 为捕获引用,需写 $$ 表示字面 $。读取建议先 stat 探测再拉取所需行窗口;超过 max_output_bytes 的整体读取会返回 C213 并附带大小与行数信息。批量读取共享 batch_read_budget_bytes。
适用场景:快速掌握陌生仓库结构、跨文件查找符号或 TODO、窗口化读取、定向编辑与批量重命名、脚手架新建、清理过期文件。
限制:不会启动任何进程,不用于构建、测试、格式化或运行 git,需改用 shell 工作器的 shell::exec / shell::exec_bg;写入不触发引擎触发器、不发出事件;访问被拒路径会以“未找到”形式返回,避免探测存在性。官方未提供收费与价格信息,暂未提供。