xuanzhu 0.1.7 → 0.1.8
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 +44 -12
- package/dist/cli.js +183 -171
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,7 +27,8 @@ xzh # 启动
|
|
|
27
27
|
- **多模型支持**:DeepSeek、Anthropic Claude、OpenAI、Google Gemini、智谱 GLM、通义千问、Groq、Ollama,以及任意 OpenAI 兼容端点。
|
|
28
28
|
- **内置工具**:读取 / 写入 / 编辑文件、列目录、glob 查找、grep 搜索、执行 shell 命令。
|
|
29
29
|
- **流式响应**:实时渲染 Markdown,支持代码块,中文对齐正确。
|
|
30
|
-
- **默认全自动**:`autoApprove` 默认为 `true
|
|
30
|
+
- **默认全自动**:`autoApprove` 默认为 `true`,**所有工具都直接执行、不做任何确认** —— 包括写文件、执行命令、读取工作区之外的文件,以及读取凭据类文件(`~/.ssh`、`.env`、`~/.xzh/config.json` 等)。开箱即用,不打断。`/auto off` 可切换为写文件与执行命令逐项确认。
|
|
31
|
+
- 如果希望读取凭据类文件时确认一次(防止密钥被读进上下文后转交给模型服务商),把 `confirmSensitiveRead` 设为 `true`,默认关闭。
|
|
31
32
|
- **多轮自主执行**:自动串联工具调用完成任务,可随时 `Ctrl+C` 中断。
|
|
32
33
|
|
|
33
34
|
## 环境要求
|
|
@@ -309,7 +310,7 @@ API Key 也可以来自环境变量,优先级低于配置文件:
|
|
|
309
310
|
| --- | --- |
|
|
310
311
|
| `.xuanzhu/memory/MEMORY.md` | 长期记忆:稳定的项目结论与约定,启动时会注入系统提示词(节选) |
|
|
311
312
|
| `.xuanzhu/memory/YYYY-MM-DD.md` | 每日日志:按天追加的过程记录 |
|
|
312
|
-
| `.xuanzhu/rules.md` | 项目规则,内容作为「项目级指令」注入系统提示词。**首次初始化时若项目根已有 `AGENTS.md
|
|
313
|
+
| `.xuanzhu/rules.md` | 项目规则,内容作为「项目级指令」注入系统提示词。**首次初始化时若项目根已有 `AGENTS.md`**,则写入一条「必须严格按照 `AGENTS.md` 执行」的指令(而非复制其内容)—— 这样 `AGENTS.md` 始终是唯一真实来源,你改完它模型下次读取即是新版 |
|
|
313
314
|
|
|
314
315
|
记忆由玄猪自行维护:
|
|
315
316
|
|
|
@@ -399,8 +400,8 @@ description: 一句话说明该技能的用途与适用场景
|
|
|
399
400
|
| 按键 | 作用 |
|
|
400
401
|
| --- | --- |
|
|
401
402
|
| `Enter` | 提交输入 |
|
|
402
|
-
| `
|
|
403
|
-
| `Ctrl+
|
|
403
|
+
| `Alt+Enter` | 输入换行(终端原生编码,任何终端都可用) |
|
|
404
|
+
| `Ctrl+Enter` / `Shift+Enter` | 输入换行(需终端支持扩展键盘协议,见下) |
|
|
404
405
|
| `↑` / `↓` | 浏览历史输入(终端面板内为命令历史) |
|
|
405
406
|
| `Tab` | 终端面板内补全:命令名(PATH)或文件路径 |
|
|
406
407
|
| `PgUp` / `PgDn` | 上翻 / 下翻一页(左栏对话区、右栏终端输出) |
|
|
@@ -437,22 +438,53 @@ description: 一句话说明该技能的用途与适用场景
|
|
|
437
438
|
|
|
438
439
|
其他终端:xterm / VTE 系(gnome-terminal 等)由本程序自动协商,开箱可用;
|
|
439
440
|
kitty / Ghostty 会把该 xterm 兼容序列映射成「所有按键都用转义码上报」而破坏普通输入,
|
|
440
|
-
故玄猪对这两类终端不发送请求,请改用 `
|
|
441
|
+
故玄猪对这两类终端不发送请求,请改用 `Alt+Enter` 或在终端侧自行配置。
|
|
441
442
|
|
|
442
443
|
界面内命令:`/help`、`/clear`、`/copy [N|all]`、`/mouse`、`/reset`、`/cwd`、`/switch <目录>`、`/term`、`/model`、`/auto [on|off]`、`/intent [on|off]`、`/exit`。
|
|
443
444
|
|
|
444
|
-
###
|
|
445
|
+
### 选中与复制
|
|
445
446
|
|
|
446
|
-
|
|
447
|
+
在输出区**按住左键拖拽**,拖过要复制的行,**松开即写入系统剪贴板** —— 滚轮同时可用,互不影响。
|
|
447
448
|
|
|
448
449
|
| 方式 | 说明 |
|
|
449
450
|
| --- | --- |
|
|
450
|
-
|
|
|
451
|
-
|
|
|
452
|
-
| `/copy` |
|
|
451
|
+
| **在输出区拖拽** | 玄猪自己实现的选择(按整行)。松开即复制,不需按键、不占 `/mouse` |
|
|
452
|
+
| 按住 **Shift** 拖拽 | 使用**终端原生**框选(多数终端用 Shift 绕过应用级捕获),需要精确到字符时用 |
|
|
453
|
+
| `/copy [N\|A-B\|last\|all]` | 主动复制输出区。支持 `/copy 100`(最近 100 行)、`/copy 100-200`(行号范围)、`/copy last`(最近一次对话)、`/copy all`(全部) |
|
|
454
|
+
| `/mouse` | 把鼠标**完全交还终端**(改用终端原生框选与右键菜单,滚动输出区改用 `PgUp`/`PgDn`)。切换结果会写回配置 |
|
|
455
|
+
|
|
456
|
+
> **为什么拖拽选择要自己实现**:终端协议里的 `?1000h` 是**整体开关** ——
|
|
457
|
+
> 开启后终端把所有鼠标事件都交给程序,原生选择随之失效;关闭后滚轮又没用了
|
|
458
|
+
> (玄猪跑在**备用屏**上,终端没有回滚历史可滚)。既然事件已经在程序手里,
|
|
459
|
+
> 就由玄猪自己记录选区并写剪贴板,从而让「滚轮滚动」与「选中复制」并存。
|
|
460
|
+
>
|
|
461
|
+
> 选择按**整行**进行:输出区的长行会折行、还含 ANSI 颜色与宽字符,做字符级映射的
|
|
462
|
+
> 复杂度远高于收益,而实际要复制的基本都是整段内容。复制的是**原始逻辑行**
|
|
463
|
+
> (不是屏幕上折行后的样子),所以长行不会被截断。
|
|
464
|
+
>
|
|
465
|
+
> 以上都依赖终端支持 **OSC 52**。少数终端(如默认配置的 GNOME Terminal)出于安全会忽略它,
|
|
466
|
+
> 此时粘贴出来是空的 —— 请改用 Shift+拖拽,或终端自带的复制方式。
|
|
467
|
+
|
|
468
|
+
### 换行键为何有时不生效
|
|
469
|
+
|
|
470
|
+
玄猪通过终端协议请求「带修饰键的 Enter」(默认为 xterm 的 `modifyOtherKeys`),
|
|
471
|
+
但**部分终端并不实现它**——最典型是基于 xterm.js 的 IDE 内置终端(VS Code / CodeBuddy)。
|
|
472
|
+
这类终端会把 `Ctrl+Enter`、`Shift+Enter` 编成与普通 `Enter` **完全相同的字节**,
|
|
473
|
+
程序无从区分,因此无法把它们当作换行。
|
|
474
|
+
|
|
475
|
+
**`Alt+Enter` 走终端原生编码,任何终端都可用**,是最可靠的换行方式。
|
|
476
|
+
|
|
477
|
+
想弄清你的终端到底发了什么、或试用另一种上报协议:
|
|
453
478
|
|
|
454
|
-
|
|
455
|
-
|
|
479
|
+
```bash
|
|
480
|
+
# 诊断:把终端送来的原始字节记到 ~/.xzh/keys.log
|
|
481
|
+
XZH_DEBUG_KEYS=1 xzh
|
|
482
|
+
# 按几下 Ctrl+Enter / Shift+Enter,退出后查看
|
|
483
|
+
cat ~/.xzh/keys.log
|
|
484
|
+
|
|
485
|
+
# 备选协议:改用 kitty 键盘协议上报修饰键(部分终端据此可用 Shift+Enter)
|
|
486
|
+
XZH_KITTY_KEYS=1 xzh
|
|
487
|
+
```
|
|
456
488
|
|
|
457
489
|
默认开启自动批准(`autoApprove: true`),所有工具——包括写文件与执行命令——都会直接执行、不再询问;
|
|
458
490
|
执行 `/auto off` 可切换为逐项确认,设置会持久保存到配置文件。
|