dskcode 0.1.26 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,8 +14,14 @@
14
14
  - **终端原生交互** — `dskcode chat` 进入交互式对话,在终端中直接与 AI 协作编码 ✅
15
15
  - **一次性任务执行** — `dskcode run` 让 AI 自动完成任务 ✅
16
16
  - **DeepSeek 深度集成** — 原生 DeepSeek API 支持,Prefix Cache 感知,成本透明 ✅
17
- - **模型支持** — 仅支持 **DeepSeek-V4-Flash**(默认)和 **DeepSeek-V4-Pro** 两个模型 ✅
18
- - **工具系统** — 8 个内置工具(read_file / write_file / edit_file / bash / glob / grep / ls / fetch),Agent 可读写文件、执行命令、搜索代码 ✅
17
+ - **模型支持** — 支持 **DeepSeek-V4-Flash**(默认)和 **DeepSeek-V4-Pro** 两个模型 ✅
18
+ - **工具系统** — 10 个内置工具(read_file / write_file / edit_file / multi_edit / delete_range / bash / glob / grep / ls / fetch),Agent 可读写文件、执行命令、搜索代码 ✅
19
+ - **文件回退(/rewind)** — 每轮对话自动生成 git stash 检查点,**`/rewind 1` 一键撤回最新修改**,也可选择模式的回到任意历史状态 ✅
20
+ - **/rewind 提示** — 对话结束后 2s 在原状态栏位置自动出现「↩ /rewind 1 可撤回本次修改」,直到下一轮对话开始 ✅
21
+ - **计划模式** — `/plan` 切换到计划模式(紫色主题),让 AI 先分析再编码,适合复杂任务 ✅
22
+ - **高级设置** — `/thinking` 切换深度思考、`/effort` 切换推理等级 High/Max、`/toolchoice` 控制工具调用策略 ✅
23
+ - **会话持久化** — 对话自动保存到磁盘,Session.resume 恢复历史会话,支持 rewind 回退到任意对话节点 ✅
24
+ - **命令提示轮播** — 输入框上方自动轮播可用命令提示,底部命令提示条混洗展示 ✅
19
25
  - **MCP 插件** — 通过 Model Context Protocol 扩展任意外部工具 ⚡ 骨架就绪
20
26
  - **项目记忆** — AGENTS.md 注入系统提示词 ❌ 持久化未完成
21
27
  - **权限控制** — 三级审批策略(Allow / Ask / Deny),安全可控 ❌ 未开始
@@ -77,6 +83,33 @@ npx dskcode chat
77
83
  | `--config <path>` | 指定配置文件路径 |
78
84
  | `-h, --help` | 显示帮助信息 |
79
85
 
86
+ ## 交互式 Chat 命令
87
+
88
+ 在 `dskcode chat` 会话中输入以下命令(按 `/help` 查看所有可用命令):
89
+
90
+ | 命令 | 说明 |
91
+ |------|------|
92
+ | `/rewind` | 进入选择模式 ↑↓ 选择检查点回退;`/rewind 1` 直接撤回最新一轮(1=最新,2=上一次…) |
93
+ | `/plan` | 切换为计划模式(紫色主题),AI 先分析需求再逐步编码 |
94
+ | `/code` | 切换回代码模式 |
95
+ | `/thinking` | 切换深度思考(DeepSeek 原生推理能力) |
96
+ | `/effort` | 切换推理等级 High / Max |
97
+ | `/toolchoice` | 切换工具调用策略(auto / required / none) |
98
+ | `/model` | 切换模型(DeepSeek-V4-Flash / DeepSeek-V4-Pro) |
99
+ | `/clear` | 清空当前对话历史 |
100
+ | `/help` | 查看所有可用命令 |
101
+ | `/version` | 显示版本信息 |
102
+ | `/game` | 启动内置小游戏 |
103
+ | `/stock` | 跳转到股票行情 |
104
+
105
+ 对话结束后若 AI 修改了文件,2 秒后原 spinner 位置会自动出现提示:
106
+
107
+ ```
108
+ ↩ /rewind 1 可撤回本次修改
109
+ ```
110
+
111
+ 该提示一直保留到下一轮对话开始,方便随时撤回最新一轮文件修改。
112
+
80
113
  ## 配置
81
114
 
82
115
  dskcode 使用 JSON 格式的配置文件,支持多层级合并:
@@ -229,28 +262,30 @@ dskcode stock 000001 399006
229
262
  | 04 | Provider 抽象层 | Provider 接口、DeepSeek 适配器、工厂注册 | ✅ 已完成 |
230
263
  | 05 | LLM API 客户端 | 流式补全(SSE)、AbortController、超时重试 | ✅ 已完成 |
231
264
  | 06 | Token 计价与成本追踪 | CostTracker 三层统计、Prefix Cache 半价 | ✅ 已完成 |
232
- | 07 | Agent 主循环 | 消息编排、工具调用循环、轮次控制 | ✅ 已完成 |
233
- | 08 | 工具系统 | Tool 接口、Registry、8 个内置工具 | ✅ 已完成 |
265
+ | 07 | Agent 主循环 | 消息编排、工具调用循环、轮次控制、/plan 计划模式 | ✅ 已完成 |
266
+ | 08 | 工具系统 | Tool 接口、Registry、10 个内置工具 | ✅ 已完成 |
234
267
  | 09 | MCP 插件系统 | stdio JSON-RPC、子进程管理 | ⚡ 骨架就绪 |
235
268
  | 10 | 权限控制 | Allow/Ask/Deny 三级策略、交互式审批 | ❌ 未开始 |
236
- | 11 | 会话管理与项目记忆 | 对话持久化、AGENTS.md 注入 | 未开始 |
237
- | 12 | 终端交互 | 打字机效果、spinner、代码块高亮 | ✅ 已完成 |
269
+ | 11 | 会话管理与检查点 | 会话持久化与恢复、git stash 检查点、/rewind 回退 | 已完成 |
270
+ | 12 | 终端交互 | 打字机效果、spinner、代码块高亮、工具调用可视化、命令提示轮播、rewind 提示 | ✅ 已完成 |
238
271
  | 13 | 管道模式 | stdin/stdout 集成、非交互模式、JSON 输出 | ❌ 未开始 |
239
272
  | 14 | 配置向导 | `dskcode setup` 交互式配置、API Key 管理 | ❌ 未开始 |
240
273
  | 15 | 构建发布与 CI/CD | tsup 打包、npm publish、GitHub Actions | ✅ 已完成 |
241
274
 
242
- ### 内置工具详情(第 08 章)
275
+ ### 内置工具详情
243
276
 
244
277
  | 工具 | 说明 | 状态 |
245
278
  |------|------|------|
246
- | `read_file` | 读取文件,支持行号范围 | ✅ |
279
+ | `read_file` | 读取文件,支持行号范围,自动拒绝二进制文件 | ✅ |
247
280
  | `write_file` | 写入/创建文件,自动创建中间目录 | ✅ |
248
- | `edit_file` | 精确文本替换,唯一匹配校验 | ✅ |
249
- | `bash` | 执行 shell 命令,超时控制 | ✅ |
250
- | `glob` | 文件路径模式搜索(`*` / `**` / `?`) | ✅ |
251
- | `grep` | 文件内容正则搜索,扩展名过滤 | ✅ |
281
+ | `edit_file` | 精确文本替换,唯一匹配校验,自动保留原 EOL | ✅ |
282
+ | `multi_edit` | 原子批量替换,一处失败全部回滚,支持 replaceAll | ✅ |
283
+ | `delete_range` | 按行锚点删除文件中的行范围 | ✅ |
284
+ | `bash` | 执行 shell 命令,超时控制,Windows 兼容 | ✅ |
285
+ | `glob` | 文件路径模式搜索(`*` / `**` / `?`),自动跳过 node_modules /.git | ✅ |
286
+ | `grep` | 文件内容正则搜索,大小写控制,扩展名过滤 | ✅ |
252
287
  | `ls` | 目录列表,类型标记,隐藏文件控制 | ✅ |
253
- | `fetch` | HTTP 请求(GET/POST/PUT/DELETE | ✅ |
288
+ | `fetch` | HTTP 请求(GET/POST/PUT/DELETE),自定义请求头 | ✅ |
254
289
 
255
290
  ## 架构
256
291
 
@@ -259,13 +294,16 @@ src/
259
294
  ├── index.ts # 入口,shebang + 异常处理
260
295
  ├── cli/ # commander 命令路由
261
296
  ├── config/ # JSON 配置加载与合并
262
- ├── provider/ # LLM Provider 接口(DeepSeek
263
- ├── tool/ # 内置工具(Registry + 8 个内置工具)
297
+ ├── provider/ # LLM Provider 接口(DeepSeek)+ CostTracker
298
+ ├── tool/ # 内置工具(Registry + 10 个内置工具)
264
299
  ├── plugin/ # MCP 插件管理器(骨架就绪)
265
- ├── agent/ # Agent 会话循环
300
+ ├── agent/ # Agent 会话循环 + 检查点(Checkpoint)
301
+ ├── checkpoint/ # git stash 驱动的文件状态检查点(/rewind 基础)
302
+ ├── session-store/ # 会话持久化与恢复
266
303
  ├── stock/ # 股票行情(交互式终端 + asciichart)
267
304
  ├── game/ # 内置小游戏
268
305
  ├── types/ # 共享类型定义
306
+ ├── utils/ # 工具函数(渐变、模型工具等)
269
307
  └── ui/ # Ink 交互式终端 UI
270
308
  ```
271
309