xuanzhu 0.8.2 → 0.8.4
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 +49 -12
- package/dist/cli.js +666 -640
- package/dist/skills/v2ray/SKILL.md +188 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -226,6 +226,7 @@ XZH_HOME=/path/to/dir xzh # 改用 /path/to/dir/config.json
|
|
|
226
226
|
"mouseCapture": true,
|
|
227
227
|
"confirmSensitiveRead": false,
|
|
228
228
|
"memoryMaxChars": 12000,
|
|
229
|
+
"globalMemoryMaxChars": 4000,
|
|
229
230
|
"maxParallelAgents": 4,
|
|
230
231
|
"intent": { "enabled": false },
|
|
231
232
|
"providers": {
|
|
@@ -246,7 +247,8 @@ XZH_HOME=/path/to/dir xzh # 改用 /path/to/dir/config.json
|
|
|
246
247
|
| `autoApprove` | `true` | 自动批准工具(`false` 时写文件/执行命令前询问) |
|
|
247
248
|
| `mouseCapture` | `true` | 接管鼠标:滚轮滚动 + 输出区拖拽选中复制(`/mouse` 切换) |
|
|
248
249
|
| `confirmSensitiveRead` | `false` | 读取凭据类文件(`.env`、`~/.ssh`、`config.json` 等)时是否确认 |
|
|
249
|
-
| `memoryMaxChars` | `12000` |
|
|
250
|
+
| `memoryMaxChars` | `12000` | **项目**长期记忆字符上限,超出即自动精简(`0` = 不限制长度,仍去重) |
|
|
251
|
+
| `globalMemoryMaxChars` | `4000` | **全局**长期记忆字符上限;全局记忆注入每个项目,默认更紧 |
|
|
250
252
|
| `maxParallelAgents` | `4` | 并行子代理数量上限(`1` = 串行,硬上限 16) |
|
|
251
253
|
| `intent.enabled` | `false` | 意图分析(每条消息先分析再处理) |
|
|
252
254
|
| `intent.prompt` | 内置模板 | 意图分析模板,占位符 `{{'用户发送过来的消息'}}` |
|
|
@@ -392,9 +394,9 @@ API Key 也可以来自环境变量,优先级低于配置文件:
|
|
|
392
394
|
| --- | --- | --- |
|
|
393
395
|
| `list_skills` | 列出玄猪可用的全部技能 | 否 |
|
|
394
396
|
| `load_skill` | 加载指定技能的完整指南 | 否 |
|
|
395
|
-
| `memory_read` |
|
|
396
|
-
| `memory_write` |
|
|
397
|
-
| `memory_compact` |
|
|
397
|
+
| `memory_read` | 读取项目 / 全局记忆(`target=project\|global\|all`;长期记忆 + 最近日志) | 否 |
|
|
398
|
+
| `memory_write` | 写入项目 / 全局记忆(`target` + `scope`),凭据值自动 AES-GCM 加密,长期记忆超限时自动精简 | 否 |
|
|
399
|
+
| `memory_compact` | 用精简后的完整内容重写项目 / 全局长期记忆(凭据值自动加密;把新结论并入主题小节 / 语义压缩) | 否 |
|
|
398
400
|
| `todo_write` | 创建 / 更新任务列表(每次提交完整列表) | 否 |
|
|
399
401
|
| `goal_complete` | 目标模式(`/goal`)下声明目标已全部完成(仅主代理可用) | 否 |
|
|
400
402
|
| `report_status` | 结构化上报受阻 / 需要用户决定 / 置信度低(仅主代理可用) | 否 |
|
|
@@ -791,14 +793,48 @@ AutoX.js 那侧也可用环境变量 `XZH_DEVICE_PORT` 指定端口。
|
|
|
791
793
|
- `.xuanzhu` **始终**位于当前项目路径之下,**不做任何向上查找**:在 `/a/b/c` 工作就只用
|
|
792
794
|
`/a/b/c/.xuanzhu`,即使 `/a` 或 `/a/b` 下已有 `.xuanzhu` 也不会复用
|
|
793
795
|
- **启动时**与 **`/switch` 切换目录时**,若该目录下尚无 `.xuanzhu`,会自动创建
|
|
794
|
-
- 因此每个项目目录各自拥有独立的记忆与规则;`~/.xzh`
|
|
795
|
-
|
|
796
|
-
- **查看 / 清空**:`/memory`
|
|
797
|
-
`/memory clear`
|
|
798
|
-
|
|
799
|
-
|
|
796
|
+
- 因此每个项目目录各自拥有独立的记忆与规则;`~/.xzh` 保存**全局配置、全局记忆、会话、日志与技能**,
|
|
797
|
+
不保存项目记忆
|
|
798
|
+
- **查看 / 清空**:`/memory` 显示项目记忆目录、长期记忆字符数与每日日志份数;
|
|
799
|
+
`/memory global` 查看全局记忆;`/memory clear [global]` 清空对应记忆。
|
|
800
|
+
清空**必须二次确认**:确认框默认停在「拒绝」,要按 `y`(或 ← → 切到「允许」再回车)才会执行,
|
|
801
|
+
一个回车不会误删。它只删对应 `memory/` 下的记忆文件,**不会**删除 `~/.xzh/sessions/` 的会话存档,
|
|
800
802
|
清空后系统提示词立即刷新(后续请求不再注入旧记忆)
|
|
801
803
|
|
|
804
|
+
### 全局记忆(跨项目)
|
|
805
|
+
|
|
806
|
+
除项目记忆外,`~/.xzh/memory/` 还有一份**全局记忆**,对所有项目生效:
|
|
807
|
+
|
|
808
|
+
| 路径 | 用途 |
|
|
809
|
+
| --- | --- |
|
|
810
|
+
| `~/.xzh/memory/MEMORY.md` | 跨项目长期记忆:用户偏好、环境约定、sudo 使用方式、本机代理地址等 |
|
|
811
|
+
| `~/.xzh/memory/YYYY-MM-DD.md` | 全局每日日志(可选) |
|
|
812
|
+
|
|
813
|
+
- 启动时先注入全局记忆,再注入项目记忆;全局记忆默认上限 `globalMemoryMaxChars=4000`,
|
|
814
|
+
超限自动去重/裁剪,仍超限时用 `memory_compact target=global` 语义精简。
|
|
815
|
+
- 当用户说「全局 / 所有项目 / 跨项目 / 以后都 / 统一用」时,玄猪会**自动捕获**消息里的
|
|
816
|
+
关键信息写入全局记忆;只属于当前项目的内容仍写项目记忆。模型也可以用
|
|
817
|
+
`memory_write target=global` 主动补充。
|
|
818
|
+
- **凭据自动加密**:对话中出现 `sudo 密码是 ...` / `token=...` 这类内容时,玄猪在写入记忆前
|
|
819
|
+
会用 **AES-256-GCM** 加密到 `~/.xzh/vault/`(目录 0700,`key` 与 `entries.json` 均 0600),
|
|
820
|
+
记忆里只保留 `[加密凭据 sec_xxx]` 引用,不出现明文。密钥与密文同机,这能保证
|
|
821
|
+
记忆/日志/模型上下文不含明文,但不防本地 root。
|
|
822
|
+
- 密码原文不要出现在回复里;模型只能看到加密引用。
|
|
823
|
+
- `memory_read` / `memory_write` / `memory_compact` 都支持 `target=project|global`
|
|
824
|
+
(`memory_read` 还支持 `all`)。
|
|
825
|
+
|
|
826
|
+
### 外网与本地代理
|
|
827
|
+
|
|
828
|
+
内置 `v2ray` 技能用于「需要外网但直连失败」的场景:探测本机已有的
|
|
829
|
+
v2ray / Clash / mihomo / sing-box **本地 SOCKS/HTTP 入站端口**,验证后**只对当前命令**
|
|
830
|
+
临时设置 `HTTP_PROXY` / `HTTPS_PROXY` / `ALL_PROXY`,不修改系统代理或全局配置;
|
|
831
|
+
成功后把本地端点写入全局记忆,下次优先复用。节点 UUID、订阅地址、密码不会被读取或记录。
|
|
832
|
+
|
|
833
|
+
- 触发方式:系统提示词要求外网失败时先 `load_skill v2ray`;`bash` 检测到
|
|
834
|
+
`Could not resolve host` / 连接超时等错误时也会追加提示。
|
|
835
|
+
- 代理只在单条命令的进程内生效,命令结束自动还原;`NO_PROXY` 始终包含
|
|
836
|
+
`127.0.0.1,localhost,::1`,不会把本地模型端点绕进代理。
|
|
837
|
+
|
|
802
838
|
> 技能与 CLI 为**全局通用**:技能位于 `~/.xzh/skills`(叠加内置),CLI 安装在系统,均不受项目限制。
|
|
803
839
|
|
|
804
840
|
## 初始化项目规范(`xzh init` / `/init`)
|
|
@@ -833,13 +869,14 @@ AutoX.js 那侧也可用环境变量 `XZH_DEVICE_PORT` 指定端口。
|
|
|
833
869
|
当任务涉及某个领域时,玄猪会先 `list_skills` 查看可用技能、再 `load_skill` 加载完整指南
|
|
834
870
|
(加载时自动安装并验证其依赖),然后借助 `bash` 执行指南中描述的命令。
|
|
835
871
|
|
|
836
|
-
随包内置
|
|
872
|
+
随包内置 20 个技能,常用如下:
|
|
837
873
|
|
|
838
874
|
| 技能 | 领域 | 依赖 |
|
|
839
875
|
| --- | --- | --- |
|
|
840
876
|
| `playwright` | 浏览器自动化、端到端测试、网页验证(**默认用系统已安装的 Chrome**,减少反爬拦截) | `playwright-cli`(`npm i -g @playwright/cli@latest`) |
|
|
841
877
|
| `officecli` | Word / Excel / PowerPoint 文档创建与读写 | `officecli`(单二进制,见技能内安装说明) |
|
|
842
878
|
| `autojs6` | **操作真实 Android 手机**:点击、滑动、输入、读界面、启动应用(脚本由设备桥推到手机上执行) | 无(手机需装 AutoJs6,见「手机设备桥」) |
|
|
879
|
+
| `v2ray` | **本机代理发现与临时使用**:外网直连失败时探测本机 v2ray / Clash / sing-box 入站端口,验证后只对当前命令生效,并把端点写入全局记忆 | 无(需用户已启动代理客户端) |
|
|
843
880
|
| `release` | **发版流程**:版本号 / CHANGELOG / 构建与测试 / `npm publish` / 等 registry 同步 / 推送 GitHub / 发布后校验(含逐步清单与踩坑) | 无(用 `npm` / `git`) |
|
|
844
881
|
| `github` / `gitlab` | 仓库、Issue、PR / MR | `gh` / `glab` |
|
|
845
882
|
| `jira` / `linear` | 项目管理 | 对应 CLI |
|
|
@@ -954,7 +991,7 @@ description: 一句话说明该技能的用途与适用场景
|
|
|
954
991
|
kitty / Ghostty 会把该 xterm 兼容序列映射成「所有按键都用转义码上报」而破坏普通输入,
|
|
955
992
|
故玄猪对这两类终端不发送请求,请改用 `Alt+Enter` 或在终端侧自行配置。
|
|
956
993
|
|
|
957
|
-
界面内命令:`/help`、`/clear`、`/tools`、`/context`、`/compact`、`/focus [文件]`、`/device`、`/image`(`/paste`)、`/copy [N|A-B|last|all]`、`/mouse`、`/reset`、`/undo`、`/resume [编号]`、`/cwd`、`/switch <目录>`、`/term`、`/model [编号|id|模型名]`、`/goal <目标>`(`/goal [status|continue|off]`)、`/memory [clear]`、`/init [--dry-run|--force]`、`/auto [on|off]`、`/intent [on|off]`、`/exit`。
|
|
994
|
+
界面内命令:`/help`、`/clear`、`/tools`、`/context`、`/compact`、`/focus [文件]`、`/device`、`/image`(`/paste`)、`/copy [N|A-B|last|all]`、`/mouse`、`/reset`、`/undo`、`/resume [编号]`、`/cwd`、`/switch <目录>`、`/term`、`/model [编号|id|模型名]`、`/goal <目标>`(`/goal [status|continue|off]`)、`/memory [global|clear [global]]`、`/init [--dry-run|--force]`、`/auto [on|off]`、`/intent [on|off]`、`/exit`。
|
|
958
995
|
|
|
959
996
|
### 选中与复制
|
|
960
997
|
|