<!-- codsh-publication:grok-cli-dsh-rewrite:ticket-14 --> ## Parent https://github.com/Blackman99/codsh/issues/132 **Ticket:** 14 **Status:** ready-for-agent **User Stories:** 33, 57(见父规格) ## What to build 自动化消费者无需改写解析逻辑即可读取兼容 JSON 和流式输出,包含工具、错误、取消及可得用量。 ## Acceptance criteria - [ ] 对固定版本所有公开输出格式建立外部消费者测试,验证字段、事件顺序、部分消息选项和终止事件。 - [ ] 工具参数/结果、推理、用量与费用缺失状态不被误转换;stdout 每条输出均合法且无日志混入。 - [ ] 中断、截断、模型错误及无交互审批不会永久挂起或返回虚假成功。 - [ ] 与纯文本入口相同操作产生一致 dsh 副作用和会话状态,适用文档/发布元数据同步。 ## Blocked by - #145 — Ticket 13: 命令行与纯文本自动化兼容 ## Delivery contract 用户于2026-09-20批准当前测试与任务拆分。按父规格的已安装产物/真实终端和公开协议测试验收;实际实现须带适用的文档、Changeset及必要检查。ready-for-agent表示任务已定义,不表示前置任务已完成,也不授权自动开始本轮实施、购买付费资源或发布软件版本。
Activity
Blackman99 commentedon Sep 24, 2026
Ticket 14 / #146 已合入
rewrite/grok-dsh-20260920的590f9bf。--output-format接受 plain、json、streaming-json、streaming-messages-json。工具参数、结果和推理从 dsh 原样复制。dsh 没有送来用量时,终止对象写usage_absent,不编造 token 或费用。部分消息在没有用量时也不写全零账单。dsh 没有广告工具时,init 的 tools 是空列表。截断和模型错误以退出码 1 结束,不报
end_turn。非交互审批被拒绝时,三种 JSON 都是错误对象,进程退出 1,文件保持不变。SIGINT 为 130。同一编辑走纯文本和 JSON 时,写入的文件和保存的会话一致。验证:合并后的
scripts/rust-plain-json-test.py全部通过。