Some checks failed
Release / build (push) Failing after 22s
- 使用 ProcessDirect 替代 ChatStream,支持工具调用结果显示 - 新增 project.config.yml 统一配置(Logo、用户前缀、流式延迟、Markdown等) - Markdown 渲染支持自动终端宽度换行 - 按行输出文本,每行延迟可配置 - 简化状态栏,只显示耗时(图标颜色 #f0c75e,文字颜色 #2b2e32) - spinner 动画右移两个字符 - 用户输入前缀可配置化
3.5 KiB
3.5 KiB
hxclaw AI 行为指南
开发规范
设计原则
- 面向对象 + 设计模式:所有功能拆分成模块,模块可复用
- 模块化:每个功能独立成包,包内高内聚,包间低耦合
- 设计模式:常用单例、工厂、策略模式
代码要求
- 注释:全局使用中文注释,注释内容详细,说明意图和实现逻辑
- 测试:所有代码需编写单元测试和功能测试,通过后才可交付
- 命名:变量、函数、文件名使用英文,注释使用中文
交流规范
- 语言:全程使用中文回答和思考
- 问题处理:一个问题若超过3次尝试仍无法解决,立即停止,告诉用户遇到的问题,询问用户接下来怎么办
- 进度同步:每次开始编写代码前,更新讨论记录和其他文档
项目背景
定位
- hxclaw 是 picoclaw 的 CLI 增强工具
- 提供流式输出和 Markdown 终端渲染
- 作为独立二进制,与 picoclaw 共存
技术栈
- 语言:Go 1.21+
- 依赖:通过 go.mod replace 复用 picoclaw
- 终端库:charmbracelet/lipgloss
- 测试:Go 标准测试框架
当前任务
v0.1.0 目标
实现流式输出功能:
- 创建 go.mod 配置依赖
- 实现 main.go 入口
- 实现流式 Provider 调用
- 实时打印 token
- 处理非流式 Provider 回退
- Markdown 终端渲染(glamour)
实现进度
v0.1.0 已完成功能
-
流式输出(新流程)
- 等待 AI 返回完整响应
- Markdown 转译
- 模拟流式输出(从配置读取速度)
- 效果更好,无残留问题
-
Markdown 渲染
- 使用 glamour 库渲染 Markdown
- 支持多种主题(dark, light, dracula, tokyo-night 等)
- 通过 project.config.yml 配置主题
-
项目配置
- 通过 project.config.yml 统一管理配置项
- 支持流式速度、渲染主题、Logo 等配置
项目配置
project.config.yml
配置文件位于项目根目录:
# hxclaw 项目配置文件
# 模拟流式输出配置
streaming:
simulated_speed_ms: 30 # 模拟流式输出速度(毫秒/字符)
# Markdown 渲染配置
markdown:
glamour_style: dark # 渲染主题:dark, light, dracula, tokyo-night 等
# UI 配置
ui:
logo: "🦐"
配置加载优先级:
- 环境变量
HXCLAW_CONFIG指定路径 - 项目根目录
project.config.yml
依赖管理
Go 依赖
charm.land/glamour/v2- Markdown 渲染charm.land/lipgloss/v2- 终端样式charm.land/x/term- 终端控制github.com/muesli/termenv- 终端环境工具gopkg.in/yaml.v3- 配置文件解析
配置文件
cmd/hxclaw/main.go- 主入口逻辑cmd/hxclaw/internal/markdown.go- Markdown 渲染器cmd/hxclaw/internal/helpers.go- 辅助函数cmd/hxclaw/internal/config.go- 项目配置加载
已知问题
- 重绘残留:某些情况下有轻微文本重复(可接受)
- 终端兼容性:termenv 在某些终端可能不完全工作
待优化
- 优化重绘逻辑,解决残留问题(已通过新流程解决)
- 添加更多主题支持
- 添加命令行参数支持主题选择
构建命令
picoclaw GitHub地址:https://github.com/sipeed/picoclaw.git
go build -o hxclaw ./cmd/hxclaw
生成的可执行文件位于项目根目录。
注意事项
- 不要修改 picoclaw 源码
- 保持代码独立,便于后续版本同步
- 优先实现核心功能,再考虑增强功能
- 文档和代码同步更新