feat: zcode thinking-mode 0.3.0(state历史+rollback+分写+校验收紧+34用例全绿+文档)
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
---
|
||||
description: 思考模式默认值(查看/设置/清除:不带参数时 set 用哪个档位、status 用哪个模型)
|
||||
argument-hint: [set --variant <档位>] [--model <模型名>] | clear
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行:
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" defaults $ARGUMENTS
|
||||
```
|
||||
|
||||
三种用法:
|
||||
|
||||
- `defaults`(不带参数)→ 看当前默认档位/默认模型,以及它们的来源
|
||||
- `defaults set --variant high [--model GLM-5.3]` → 写入落地文件
|
||||
- `defaults clear` → 删掉落地文件,回到内置兜底
|
||||
|
||||
**为什么要这个命令**:`plugin.json` 里的 `userConfig` 在设置界面能填,但宿主只把
|
||||
`${user_config.*}` 插值进 MCP server 字段与 hook,**命令正文拿不到** —— 所以脚本自己读
|
||||
`~/.zcode/zcode-thinking-mode.json` 这份落地文件,那两个配置项才有实际作用。
|
||||
|
||||
优先级:**命令行参数 > 环境变量(`ZCODE_THINKING_VARIANT` / `ZCODE_THINKING_MODEL`) > 默认值文件 > 内置兜底**。
|
||||
|
||||
设了之后:`set` 不带档位就用默认档位;`status`/`variants` 不带 `--model` 就用默认模型。
|
||||
|
||||
**把脚本输出原样展示给用户**,包含写入的文件路径与内容。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
@@ -0,0 +1,31 @@
|
||||
---
|
||||
description: 自检:安装是否完整、两个写入目标是否可写、node:sqlite 是否可用(只读)
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行(**只读,不改任何东西,不写档位**):
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" doctor $ARGUMENTS
|
||||
```
|
||||
|
||||
检查项(每项 `✓ ok` / `⚠ warn` / `✗ fail`,失败项附可执行的修复建议):
|
||||
|
||||
- **Node 版本 / node:sqlite** — 热档位那一半依赖 `node:sqlite`(需 Node ≥22.5);
|
||||
导入失败时热档位写不了,只能改模型配置
|
||||
- **模型配置** — 能否读到、JSON 是否合法、有几个模型声明了 `reasoning`
|
||||
- **热档位库** — 文件在不在、能否打开、有没有 `local_setting` 表(缺表说明不是有效的 session 库)
|
||||
- **当前热档位** — 库里现在的值;没有这行也会如实说明,不假装读到
|
||||
- **默认值** — 默认档位/默认模型及其来源(环境变量/文件/未设)
|
||||
- **写入能力** — 模型配置是否可写、能否在配置目录写备份、默认值目录是否存在
|
||||
|
||||
退出码:有 `fail` 时为 1。
|
||||
|
||||
用法场景:**用户说"切不了/切了没效果/报错"时先跑这个**,再把 `fail` 项与修复建议照实告诉他,
|
||||
不要自己猜。想知道"怎么回滚"也可以先跑它,备份可写性就在检查项里。
|
||||
|
||||
**把脚本输出原样展示给用户**。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
@@ -0,0 +1,19 @@
|
||||
---
|
||||
description: 查看思考模式切换历史(时间/旧值→新值/分写标记/备份路径)
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行:
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" history $ARGUMENTS
|
||||
```
|
||||
|
||||
每次 `set` 成功都会在历史文件(`~/.zcode/zcode-thinking-mode-state.json`,保留最近 50 条)
|
||||
追加一条:时间戳、旧热值→新热值、分写标记(`仅热`/`仅持久`/`热+持久`)、作用模型、备份路径。
|
||||
|
||||
**把脚本输出原样展示给用户**。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
description: 回滚到上次思考模式切换之前(热档位与持久默认都写回去)
|
||||
argument-hint: [--steps N]
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行:
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" rollback $ARGUMENTS
|
||||
```
|
||||
|
||||
- 按历史文件最新一条把**全局热档位**与**持久默认**(仅历史里记录过的模型)写回去
|
||||
- 回滚本身不删历史,可多次回滚;`--steps N` 可一次退 N 步
|
||||
- 写模型配置前同样留备份;热档位写失败时模型配置不动
|
||||
|
||||
**把脚本输出原样展示给用户**——含回滚目标时间、写回的两边值、备份路径与
|
||||
"当前会话补一行 `/effort <档位>` 即热切"提示,不要省略。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
description: 切换思考模式档位(low/max/high,可加 --model 只改单个模型,可加 --hot-only/--persist-only 分写)
|
||||
argument-hint: <low|max|high> [--model 模型名] [--hot-only|--persist-only]
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行:
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" set $ARGUMENTS
|
||||
```
|
||||
|
||||
- 不带 `--model` → 改**全部**带 reasoning 的模型(或默认值文件里指定的那个)
|
||||
- 不带档位参数 → 用默认值文件里的默认档位;两处都没有会明确报错,不会瞎猜一个档位就改配置
|
||||
- 校验是整批收紧的:档位不在全部目标的 variants 并集里(如 `ultra`)直接拒绝,两边都不写;
|
||||
目标里只要有一个模型不支持该档位,**整批中止**,不做部分切换
|
||||
- `--hot-only` 只写热档位(不碰模型配置);`--persist-only` 只写模型配置(不碰热档位);两者不能同时用
|
||||
- 改写模型配置前会在同目录留备份 `config.json.bak-<yyyyMMdd-HHmmss>`;
|
||||
回滚用 `/thinking:rollback`(按切换历史把两边写回去),或把备份拷回去
|
||||
|
||||
**把脚本输出原样展示给用户**——含热档位切换结果、持久默认改动、备份路径与"当前会话补一行 `/effort <档位>` 即热切"提示,不要省略。
|
||||
失败时把报错原文带上(尤其"模型 X 不支持档位 Y(可选:…)"),它已经说明了哪个模型、支持哪些档位。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
description: 查看各模型的思考模式现状(当前默认档位与可选档位)
|
||||
---
|
||||
|
||||
用 Bash(Windows 用 git-bash)运行:
|
||||
|
||||
```bash
|
||||
THINK_SCRIPT="${ZCODE_THINKING_SCRIPT:-$(find ~/.zcode/plugins -maxdepth 4 -name thinking.mjs -path '*thinking-mode*' 2>/dev/null | head -1)}"
|
||||
[ -n "$THINK_SCRIPT" ] || THINK_SCRIPT="$(find ~/.zcode -maxdepth 8 -type f -path '*thinking-mode/scripts/thinking.mjs' 2>/dev/null | head -1)"
|
||||
[ -n "$THINK_SCRIPT" ] || { echo "找不到 thinking.mjs:插件未安装或不在默认位置,可用 ZCODE_THINKING_SCRIPT 指定路径"; exit 1; }
|
||||
node "$THINK_SCRIPT" status $ARGUMENTS
|
||||
```
|
||||
|
||||
**把脚本输出原样展示给用户**。
|
||||
|
||||
用户附加要求:$ARGUMENTS
|
||||
Reference in New Issue
Block a user