@ljwei-stak/dsh-model-router 0.14.0-beta.4 → 0.14.0

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.
@@ -11604,7 +11604,7 @@ var xterm_default = `/**
11604
11604
  `;
11605
11605
 
11606
11606
  // .dsh-plugin/client/host-version.mjs
11607
- var ROUTER_CLIENT_VERSION = true ? "0.14.0-beta.4" : "";
11607
+ var ROUTER_CLIENT_VERSION = true ? "0.14.0" : "";
11608
11608
  var STALE_HOST_MESSAGE = "\u63D2\u4EF6\u540E\u53F0\u7248\u672C\u8F83\u65E7\uFF0C\u8BF7\u5B8C\u5168\u9000\u51FA\u5E76\u91CD\u542F Harness\uFF08\u5305\u62EC\u6258\u76D8\u56FE\u6807\uFF09\u540E\u518D\u4F7F\u7528\u3002";
11609
11609
  function isMissingRemoteMethod(message) {
11610
11610
  const value = String(message ?? "");
package/CHANGELOG.md CHANGED
@@ -1,11 +1,18 @@
1
1
  # Changelog
2
2
 
3
- ## 0.14.0-beta.4 — 2026-10-03
3
+ ## 0.14.0 — 2026-10-03
4
4
 
5
- Prerelease under the npm `next` tag only (`latest` stays 0.13.3). Quit Harness completely (including the tray icon) and start it again after updating.
5
+ Stable release under the npm `latest` tag. It folds in the 0.14.0-beta.1 – beta.4 prereleases (published under `next` only). **After updating, quit Harness completely (including the tray icon) and start it again**: Harness serves the new workbench UI at once, but the running Host keeps the plugin code it already imported, so the new Host methods are missing until a full restart. The workbench now warns when the Host and client versions differ.
6
+
7
+ ### Added
8
+ - **官方工具终端** workbench card: interactive sessions of the system shell (PowerShell on Windows, the login `$SHELL` elsewhere) or an installed official CLI (codex, claude, kimi, mcode, mimo, grok, gemini), in tabs, rendered with xterm.js 6 (bundled into `client.js`). Each CLI also has a fixed **登录** mode (`codex login`, `claude auth login`, …). Sessions start only after a confirmation showing the command, the absolute working directory, and that the terminal runs outside the Harness process sandbox with the user's own CLI login and environment.
9
+ - Host session manager (`shared/cli-terminal.mjs`) on the prebuilt N-API `@lydell/node-pty@1.2.0-beta.15` (optional dependency, per-platform binaries, no install scripts), with a pipe fallback and a clear limitation note when the PTY cannot load. Verified on Windows inside Harness Desktop (Electron 44 as Node).
10
+ - Typert remote methods `terminalInfo`, `terminalStart`, `terminalRead` (long poll), `terminalWrite`, `terminalResize`, `terminalStop`; every request is validated on both sides (`shared/cli-terminal-protocol.mjs`). The client unwraps both the Host and gateway `{ ok, value }` envelopes, never sends reads or writes for an invalid session id, and clamps resizes into the accepted 10–500 × 3–300 range.
11
+ - Session metadata (tool, mode, directory, start/end, duration, exit code, end reason) in `state.json` → `terminalSessions` and in the card's history. Input and output are never logged or stored. Sessions end on tab stop, panel close, plugin unload/reload, Host exit, after about 2 minutes without a reader, or after 6 hours; at most 4 at once.
12
+ - `list()` reports `hostVersion`, the plugin version the Host actually loaded. When it differs from the client's version (or is missing), the workbench shows "插件后台版本较旧,请完全退出并重启 Harness(包括托盘图标)后再使用。" and the terminal's 开始 is disabled for missing methods.
6
13
 
7
14
  ### Changed: official tools follow the vendors' latest releases
8
- - The plugin no longer pins Codex, Claude Code, Kimi Code, MiniMax Code, MiMo, Grok Build, Gemini CLI or ZCode versions. One-click installs use `<package>@latest` from `https://registry.npmjs.org/`; the MiniMax Windows fallback runs the official installer script as published (no hash, no `@0.5.5` patch); ZCode downloads the newest Windows installer linked from `https://zcode.z.ai/en/docs/install` (HTTPS, `cdn-zcode.z.ai` only, size cap).
15
+ - The plugin no longer pins Codex, Claude Code, Kimi Code, MiniMax Code, MiMo, Grok Build, Gemini CLI or ZCode versions. One-click installs use `<package>@latest` from `https://registry.npmjs.org/`; the MiniMax Windows fallback runs the official installer script as published; ZCode downloads the newest Windows installer linked from `https://zcode.z.ai/en/docs/install` (HTTPS, `cdn-zcode.z.ai` only, size cap).
9
16
  - 健康检查 no longer flags installs as "older"/mismatched. Each card shows the installed version and, when available, the latest version with an 有新版本 hint and an 更新到最新版 X button. Latest versions come from the npm registry `<package>/latest` documents and the ZCode download page, cached ~12 h in `model-router/latest-versions.json`; failures are non-fatal (stale value or "最新版本未知"; retried after 30 min). An install newer than the latest release is never downgraded.
10
17
  - The health card notes that new vendor versions are untested by the plugin. Parsers stay tolerant of output changes.
11
18
 
@@ -16,41 +23,7 @@ Prerelease under the npm `next` tag only (`latest` stays 0.13.3). Quit Harness c
16
23
  - Removed: the hash of MiniMax's official installer script (it now runs as published; only a sanity check that it is the official PowerShell script remains).
17
24
 
18
25
  ### Tests
19
- - New `tests/latest-versions.test.mjs`: latest lookup with mocked fetch (npm + ZCode page), 12 h cache, persistence, offline/stale fallback; npm attestation with an in-test tarball (cache hit, tamper, integrity mismatch, off-host tarball); ZCode signer-only acceptance and TOFU; Codex/Claude signer-only acceptance; installer URL validation. Pin assertions removed from existing tests.
20
-
21
- ## 0.14.0-beta.3 — 2026-10-03
22
-
23
- Prerelease under the npm `next` tag only (`latest` stays 0.13.3). **Quit Harness completely (including the tray icon) and start it again after updating**, or the Host keeps running the 0.14.0-beta.2 code.
24
-
25
- ### Fixed
26
- - 官方工具终端: a session (e.g. Kimi Code 登录) opened a black terminal and then failed with `typert gateway: modelRouterOfficialTools/terminalRead: wire field "request" failed boundary validation`; the footer read `undefined · undefined`. The Host methods answer with their own `{ ok, value }` envelope and the Typert gateway wraps that again, so the client receives `{ ok: true, value: { ok: true, value: result } }`. The terminal card read only the outer level, so the session id, command and directory were `undefined` and every `terminalRead` carried no `sessionId`, which the strict request codec rejects at the gateway. Host-side start failures (such as a missing CLI) were hidden the same way. The card now unwraps both levels (`unwrapTerminal`, `loadTerminalInfo`, `startTerminal`) and reports inner errors. The schemas were correct, and the gateway does not strip response fields.
27
- - The client never sends a read or write for an invalid session id, and it clamps resize requests from a collapsed panel into the accepted 10–500 × 3–300 range instead of failing validation.
28
-
29
- ### Tests
30
- - `tests/helpers/typert-gateway.mjs` copies Harness's gateway boundary (`assertExactArguments`, `decode`, `assertJsonValue`, `encodeRpcResult`, JSON wire). `tests/cli-terminal-gateway.test.mjs` sends the card's real payloads for all six terminal methods through it, through the real `OfficialToolsRemoteService` envelope and the real Host services.
31
-
32
- ## 0.14.0-beta.2 — 2026-10-03
33
-
34
- Prerelease under the npm `next` tag only (`latest` stays 0.13.3).
35
-
36
- **After installing or updating, quit Harness completely (including the tray icon) and start it again.** Harness serves the new workbench UI immediately, but the running Host keeps the plugin code it already imported, so new Host methods are missing until a full restart.
37
-
38
- ### Fixed
39
- - With 0.14.0-beta.1 installed into a running Harness, the 官方工具终端 card showed `transport failure for /api/modelRouterOfficialTools/terminalInfo: HTTP 404`. The Harness gateway only routes `/api/<namespace>/<method>` for descriptors the Host registered when it applied the plugin; the Host was still running the previous version's code. Nothing in the plugin's routes was wrong. The card now shows "插件后台版本较旧,请完全退出并重启 Harness(包括托盘图标)后再使用。" for a missing method and disables 开始.
40
-
41
- ### Added
42
- - `list()` reports `hostVersion`, the plugin version the Host actually loaded; the client embeds its own version at build time. When they differ (or the Host is too old to report one), the workbench shows the same restart advice at the top.
43
-
44
- ## 0.14.0-beta.1 — 2026-10-03
45
-
46
- Prerelease under the npm `next` tag (branch `feat/cli-terminal`).
47
-
48
- ### Added
49
- - **官方工具终端** workbench card: interactive sessions of the system shell (PowerShell on Windows) or an installed official CLI (codex, claude, kimi, mcode, mimo, grok, gemini), in tabs, rendered with xterm.js 6 (bundled into `client.js`). Each CLI also has a fixed **登录** mode (`codex login`, `claude auth login`, …). Sessions start only after a confirmation showing the command, the absolute working directory, and that the terminal runs outside the Harness process sandbox with the user's own CLI login and environment.
50
- - Host session manager (`shared/cli-terminal.mjs`) on the prebuilt N-API `@lydell/node-pty@1.2.0-beta.15` (new optional dependency, per-platform binaries, no install scripts), with a pipe fallback and a clear limitation note when the PTY cannot load. Verified on Windows inside Harness Desktop (Electron 44 as Node, pnpm 11 install).
51
- - Typert remote methods `terminalInfo`, `terminalStart`, `terminalRead` (long poll), `terminalWrite`, `terminalResize`, `terminalStop`; every request is validated on both sides (`shared/cli-terminal-protocol.mjs`).
52
- - Session metadata (tool, mode, directory, start/end, duration, exit code, end reason) in `state.json` → `terminalSessions` and in the card's history. Input and output are never logged or stored.
53
- - Sessions end on tab stop, panel close, plugin unload/reload, Host exit, after about 2 minutes without a reader, or after 6 hours; at most 4 at once.
26
+ - `tests/cli-terminal.test.mjs` (protocol, launch resolution, env, manager with a fake PTY, pipe fallback, real PTY on Linux, Host wiring, client transport); `tests/cli-terminal-gateway.test.mjs` with `tests/helpers/typert-gateway.mjs` (the card's real payloads through a copy of Harness's gateway boundary); `tests/latest-versions.test.mjs` (latest lookup with mocked fetch, cache, offline fallback; npm attestation; ZCode/Codex/Claude signer-only acceptance; ZCode first-use record; installer URL validation). Version-pin assertions removed.
54
27
 
55
28
  ## 0.13.3 — 2026-10-03
56
29
 
@@ -8,13 +8,13 @@
8
8
 
9
9
  | 需求 | 添加插件输入框 | 安装后的入口 |
10
10
  | --- | --- | --- |
11
- | 分析复杂度、按质量和费用选模型、调用官方工具 | `@ljwei-stak/dsh-model-router@0.13.3` | 模型路由 |
11
+ | 分析复杂度、按质量和费用选模型、调用官方工具 | `@ljwei-stak/dsh-model-router@0.14.0` | 模型路由 |
12
12
  | 剧情、立绘、音乐、存档、自由对话 | `@ljwei-stak/dsh-galgame@0.1.0` | Gal 模块 |
13
13
  | 两者都要 | 分别安装上面两个包 | 模型路由 + Gal 模块 |
14
14
 
15
15
  路由保留旧 npm 包名供原用户升级,包名中的 `galgame` 是历史名称;**路由 0.12.0 不含 GAL 入口或剧情美术**。GAL 不依赖路由,路由也不依赖 GAL。
16
16
 
17
- 本轮采用 npm **`next`** 标签发布。推荐填写精确版本,`@next` 会跟随后续预发布更新。不要省略版本号:`latest` 或镜像状态可能选择与当前宿主不兼容的旧包。
17
+ 路由正式版发布在 npm **`latest`** 标签,预发布版在 `next`。推荐填写精确版本。不要省略版本号:`latest` 或镜像状态可能选择与当前宿主不兼容的旧包。
18
18
 
19
19
  ## 2. 从 npm 安装
20
20
 
@@ -22,7 +22,7 @@
22
22
  2. 在“包名、GitHub 仓库地址或本地目录路径”输入框填一个完整包名,例如:
23
23
 
24
24
  ```text
25
- @ljwei-stak/dsh-model-router@0.13.3
25
+ @ljwei-stak/dsh-model-router@0.14.0
26
26
  ```
27
27
 
28
28
  只想安装 GAL 时填写:
@@ -38,7 +38,7 @@
38
38
  ```
39
39
 
40
40
  4. 核对预览的包名、版本和宿主兼容信息,安装并启用。有重启提示时重启桌面程序。
41
- 5. 检查插件详情与侧边栏:路由应为 **0.13.3 / 模型路由**;GAL 应为 **0.1.0 / Gal 模块**。仅装路由时没有 GAL 入口是预期行为。
41
+ 5. 检查插件详情与侧边栏:路由应为 **0.14.0 / 模型路由**;GAL 应为 **0.1.0 / Gal 模块**。仅装路由时没有 GAL 入口是预期行为。
42
42
 
43
43
  普通用户无需 `npm install -g`,该命令不会把插件注册到当前 Harness profile。
44
44
 
@@ -46,13 +46,13 @@
46
46
 
47
47
  进入对应 Release 下载 `.tgz`:
48
48
 
49
- - [模型路由 v0.13.3](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.3)
49
+ - [模型路由 Releases](https://github.com/Alice-Marx/dsh-model-router/releases)(也可运行 `npm pack @ljwei-stak/dsh-model-router@0.14.0` 获取同一安装包)
50
50
  - [独立 GAL v0.1.0](https://github.com/Alice-Marx/deepseek-harness-galgame/releases/tag/v0.1.0)
51
51
 
52
52
  在“添加插件”填写下载文件的**绝对路径**,例如:
53
53
 
54
54
  ```text
55
- D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz
55
+ D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz
56
56
  ```
57
57
 
58
58
  ```text
@@ -62,7 +62,7 @@ D:\Plugins\ljwei-stak-dsh-galgame-0.1.0.tgz
62
62
  如附有 `.sha256` 文件,用 PowerShell 计算并比较摘要:
63
63
 
64
64
  ```powershell
65
- Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz'
65
+ Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz'
66
66
  Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-galgame-0.1.0.tgz'
67
67
  ```
68
68
 
@@ -72,7 +72,7 @@ Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-galgame-0
72
72
 
73
73
  1. 在旧合并插件的 GAL 播放器导出需要保留的剧情进度,并备份整个 Harness profile。每份 JSON 仅保存**当前剧情状态**,不含所有手动槽、设置、已读记录或本地音乐;重要槽位可依次读档再导出。
74
74
  2. 在**同一个 profile**安装独立 `@ljwei-stak/dsh-galgame@0.1.0`。
75
- 3. 0.13.0 起包名改为 `@ljwei-stak/dsh-model-router`(旧包名最后版本为 0.13.0,内容相同,之后不再更新):在插件管理器卸载原 `@ljwei-stak/model-router-galgame`(保留 profile 与应用数据),再添加 `@ljwei-stak/dsh-model-router@0.13.3`。不要两个同时安装(条目 id 与工具名相同);条目 id 未变,路由设置与执行记录会保留。完成两项更新后再玩剧情,避免同时操作旧合并入口和新入口。
75
+ 3. 0.13.0 起包名改为 `@ljwei-stak/dsh-model-router`(旧包名最后版本为 0.13.0,内容相同,之后不再更新):在插件管理器卸载原 `@ljwei-stak/model-router-galgame`(保留 profile 与应用数据),再添加 `@ljwei-stak/dsh-model-router@0.14.0`。不要两个同时安装(条目 id 与工具名相同);条目 id 未变,路由设置与执行记录会保留。完成两项更新后再玩剧情,避免同时操作旧合并入口和新入口。
76
76
  4. 现在路由与 GAL 各有一个入口。独立 GAL 沿用旧存档 localStorage 键,核对当前进度和三槽;更换 profile 或进度未恢复时,先切换到匹配剧目,再导入 JSON 备份。
77
77
  5. 后续分别更新需要的插件;只用路由可以不启用或不安装 GAL。保留 profile 与应用数据,卸载插件时不要清理故事数据。
78
78
 
@@ -104,7 +104,7 @@ Claude、Codex、MiMo、Grok 支持只读或可编辑;Kimi、MiniMax、ZCode
104
104
  | 检查 | 预期 |
105
105
  | --- | --- |
106
106
  | 宿主版本 | 0.2.0-rc.1 或 0.2.0-rc.2;包括 `rc` 后缀。 |
107
- | 路由独立安装 | 0.13.3 详情、模型路由入口、目录和模型档案可用;不出现旧合并 GAL 入口。 |
107
+ | 路由独立安装 | 0.14.0 详情、模型路由入口、目录和模型档案可用;不出现旧合并 GAL 入口。 |
108
108
  | GAL 独立安装 | 0.1.0 详情、Gal 模块入口、标题与两部核心剧情可用;不要求安装路由。 |
109
109
  | 共同安装 | 两个入口各一份,路由工具和 GAL 播放器均能使用。 |
110
110
  | 存档迁移 | 同 profile 可读旧键;跨 profile 用匹配剧目 JSON 导入;旧篇目的数据不覆盖。 |
@@ -116,7 +116,7 @@ Claude、Codex、MiMo、Grok 支持只读或可编辑;Kimi、MiniMax、ZCode
116
116
 
117
117
  ## 8. 开发者从完整源码构建
118
118
 
119
- 路由仓库检出 `v0.13.3`;GAL 仓库检出 `v0.1.0`。使用 Node.js **22.19+** 与 pnpm,各自在根目录运行:
119
+ 路由仓库检出 `v0.14.0`;GAL 仓库检出 `v0.1.0`。使用 Node.js **22.19+** 与 pnpm,各自在根目录运行:
120
120
 
121
121
  ```powershell
122
122
  pnpm install --frozen-lockfile
package/MIGRATION.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  | 插件 | 安装输入 | 所属项目 |
6
6
  | --- | --- | --- |
7
- | 模型路由 | `@ljwei-stak/dsh-model-router@0.13.3`(0.12.0 起独立;0.13.0 起改名) | [路由仓库](https://github.com/Alice-Marx/dsh-model-router);旧包名 `@ljwei-stak/model-router-galgame` 最后版本为 0.13.0(与新包 0.13.0 内容相同),之后不再更新。 |
7
+ | 模型路由 | `@ljwei-stak/dsh-model-router@0.14.0`(0.12.0 起独立;0.13.0 起改名) | [路由仓库](https://github.com/Alice-Marx/dsh-model-router);旧包名 `@ljwei-stak/model-router-galgame` 最后版本为 0.13.0(与新包 0.13.0 内容相同),之后不再更新。 |
8
8
  | GAL | `@ljwei-stak/dsh-galgame@0.1.0` | [新 GAL 仓库](https://github.com/Alice-Marx/deepseek-harness-galgame);独立安装与更新。 |
9
9
 
10
10
  路由 0.12.0 只注册**模型路由**侧边栏入口。剧情引擎、角色美术、音乐、存档与自由模式全部归独立 GAL;两个插件互不依赖。
@@ -22,7 +22,7 @@
22
22
 
23
23
  1. **升级前备份**:旧 GAL 播放器导出需要保留的进度 JSON,并备份 Harness profile。JSON 保存当前剧情状态,不包含全部槽位、设置、已读记录或音乐;重要手动槽可依次读取后导出。
24
24
  2. 在**同一个 Harness profile**安装 `@ljwei-stak/dsh-galgame@0.1.0`。
25
- 3. 在官方插件管理器卸载原包 `@ljwei-stak/model-router-galgame`,再添加 `@ljwei-stak/dsh-model-router@0.13.3`。完成两项安装后再打开剧情,避免并行使用旧合并 GAL 与新 GAL 入口。
25
+ 3. 在官方插件管理器卸载原包 `@ljwei-stak/model-router-galgame`,再添加 `@ljwei-stak/dsh-model-router@0.14.0`。完成两项安装后再打开剧情,避免并行使用旧合并 GAL 与新 GAL 入口。
26
26
  4. 核对只有一个**模型路由**和一个**Gal 模块**入口。打开独立 GAL 检查当前进度、三槽及设置;同 profile 继续使用原 localStorage 键。
27
27
  5. 若使用不同 profile 或没有读到进度,在 GAL 选择匹配剧目,再导入保存的 JSON。导入上限 **2 MB**,确认后替换当前剧情进度。
28
28
 
@@ -48,6 +48,6 @@
48
48
  | 官方工具 | 路由插件维护七家固定来源安装与执行入口;ZCode 原厂安装器由用户选目录。 |
49
49
  | 执行团队 | 路由插件的 CLI 团队执行器按依赖顺序运行;官方 Harness Agent Teams 的成员、消息与生命周期由宿主管理。 |
50
50
  | 剧情与自由对话 | 独立 GAL 管理故事、立绘、音乐、设置和存档;自由模式经宿主模型服务调用,可能计费。 |
51
- | 更新 | 通过官方插件管理器分别安装各自的新版本;发布使用 npm `next`,推荐精确版本。 |
51
+ | 更新 | 通过官方插件管理器分别安装各自的新版本;路由正式版发布在 npm `latest`(预发布版在 `next`),推荐精确版本。 |
52
52
 
53
53
  登录、厂商实际模型和账单仍由账号持有人验收。完整步骤与安装后的检查见 [INSTALLATION_GUIDE.zh.md](INSTALLATION_GUIDE.zh.md),GAL 播放器教程见[独立仓库](https://github.com/Alice-Marx/deepseek-harness-galgame#readme)。
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  [简体中文说明](README.zh.md) · [Installation guide (Chinese)](INSTALLATION_GUIDE.zh.md) · [Migration guide](MIGRATION.md) · [GAL repository](https://github.com/Alice-Marx/deepseek-harness-galgame)
8
8
 
9
- > **Host compatibility:** both the router 0.13.3 and GAL 0.1.0 target DeepSeek Harness Desktop **0.2.0-rc.1 and 0.2.0-rc.2**. Use the exact installation versions below. Releases use npm's `next` tag while this host is a prerelease; a bare package name or a moving tag is not a version pin.
9
+ > **Host compatibility:** both the router 0.14.0 and GAL 0.1.0 target DeepSeek Harness Desktop **0.2.0-rc.1 and 0.2.0-rc.2**. Use the exact installation versions below. Stable router releases are published under npm's `latest` tag (prereleases under `next`); a bare package name or a moving tag is not a version pin.
10
10
 
11
11
  ![Diagram of the local routing plan and official-tool execution](docs/assets/routing-workflow.svg)
12
12
 
@@ -35,7 +35,7 @@ In **DeepSeek Harness Desktop → Plugins → Add plugin**, enter one exact pack
35
35
 
36
36
  | What you want | Installation input | Repository |
37
37
  | --- | --- | --- |
38
- | Model routing and official tools | `@ljwei-stak/dsh-model-router@0.13.3` | [Model Router](https://github.com/Alice-Marx/dsh-model-router) |
38
+ | Model routing and official tools | `@ljwei-stak/dsh-model-router@0.14.0` | [Model Router](https://github.com/Alice-Marx/dsh-model-router) |
39
39
  | GAL only, or GAL alongside the router | `@ljwei-stak/dsh-galgame@0.1.0` | [DeepSeek Harness GAL](https://github.com/Alice-Marx/deepseek-harness-galgame) |
40
40
 
41
41
  For npm installation, select the official **HTTPS** source `https://registry.npmjs.org/` if a mirror has not synchronized the exact version. Install, enable, and restart when prompted. Router details should show **0.13.0** and its sidebar **Model Router**; the separate GAL package adds **Gal Module**. Either package can be installed without the other. Global `npm install -g` does not register a plugin in your Desktop profile.
@@ -45,30 +45,30 @@ For npm installation, select the official **HTTPS** source `https://registry.npm
45
45
  The package was renamed in 0.13.0. The old name's last version is also 0.13.0, with identical content, so future updates only come under the new name. The plugin manager cannot update the old entry in place:
46
46
 
47
47
  1. Remove `@ljwei-stak/model-router-galgame` in the plugin manager (keep profile and application data).
48
- 2. Add `@ljwei-stak/dsh-model-router@0.13.3` and restart when prompted.
48
+ 2. Add `@ljwei-stak/dsh-model-router@0.14.0` and restart when prompted.
49
49
  3. Do not keep both installed: they share the profile entry id `model-router-galgame` and the `model_router_*` tool names. Because the entry id is unchanged, router settings saved in the profile and the run history in `~/.dsh/model-router/state.json` carry over.
50
50
 
51
51
  ### Upgrade from the combined 0.11.x plugin
52
52
 
53
53
  1. Before upgrading, use the old GAL player's **Export save** for each story progress you want to keep, and back up the Harness profile. A JSON export contains the current story state, not all slots, settings, read history, or local audio.
54
54
  2. Install `@ljwei-stak/dsh-galgame@0.1.0` in the **same profile**.
55
- 3. Remove the old `@ljwei-stak/model-router-galgame` plugin and add `@ljwei-stak/dsh-model-router@0.13.3` (see above). Finish both installations before continuing play; this removes the old combined GAL entry and leaves one entry from the independent GAL plugin.
55
+ 3. Remove the old `@ljwei-stak/model-router-galgame` plugin and add `@ljwei-stak/dsh-model-router@0.14.0` (see above). Finish both installations before continuing play; this removes the old combined GAL entry and leaves one entry from the independent GAL plugin.
56
56
  4. Open the new GAL entry and verify your progress. The standalone plugin retains the old localStorage keys in the same profile. For a different profile or a missing state, select the matching story and import the JSON backup.
57
57
 
58
58
  The standalone GAL core contains **Echo City: Main Saga** and **Old City Migration: The Unfinished Promise**. Previously separated stories remain in their source archive and are not shipped with either core plugin. See [migration notes](MIGRATION.md) for save limitations and older desktop integrations.
59
59
 
60
60
  ### Install a versioned release archive
61
61
 
62
- Download the `.tgz` attachment from the [router v0.13.0 release](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.3) or [GAL v0.1.0 release](https://github.com/Alice-Marx/deepseek-harness-galgame/releases/tag/v0.1.0). Enter the downloaded file's absolute path, for example:
62
+ Download the `.tgz` attachment from the [router releases](https://github.com/Alice-Marx/dsh-model-router/releases) (or run `npm pack @ljwei-stak/dsh-model-router@0.14.0`) or [GAL v0.1.0 release](https://github.com/Alice-Marx/deepseek-harness-galgame/releases/tag/v0.1.0). Enter the downloaded file's absolute path, for example:
63
63
 
64
64
  ```text
65
- D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz
65
+ D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz
66
66
  ```
67
67
 
68
68
  Where a checksum sidecar is supplied, compare it with:
69
69
 
70
70
  ```powershell
71
- Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz'
71
+ Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz'
72
72
  ```
73
73
 
74
74
  You can also extract the archive and enter its inner `package` directory, which contains `package.json` and `.dsh-plugin`. The download may be stored on your preferred drive; runtime data location is controlled by the Harness profile. Upgrade through the plugin manager without modifying `app.asar` or bypassing dependency checks.
@@ -77,7 +77,8 @@ You can also extract the archive and enter its inner `package` directory, which
77
77
 
78
78
  | Version | Intended host | Scope |
79
79
  | --- | --- | --- |
80
- | **Router 0.13.3** | **0.2.0-rc.1 / 0.2.0-rc.2** | Official CLI runs work on Harness Desktop for Windows (sandbox runner environment; Codex uses its own read-only sandbox). Restart Harness fully after updating. Exact npm version, `@next` or `@latest`. |
80
+ | **Router 0.14.0** | **0.2.0-rc.1 / 0.2.0-rc.2** | Interactive 官方工具终端 (shell and official CLIs, logins); official tools follow each vendor's latest release with an update hint, keeping signer checks. Restart Harness fully after updating. Exact npm version or `@latest`. |
81
+ | [Router 0.13.3](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.3) | 0.2.0-rc.1 / 0.2.0-rc.2 | Official CLI runs work on Harness Desktop for Windows (sandbox runner environment; Codex uses its own read-only sandbox). |
81
82
  | [Router 0.13.2](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.2) | 0.2.0-rc.1 / 0.2.0-rc.2 | Codex in non-Git workspaces; sandboxed CLI runs on Desktop for Windows still produced no output. |
82
83
  | [Router 0.13.1](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.1) | 0.2.0-rc.1 / 0.2.0-rc.2 | Fixed `cannot get property "credentials" without inject`; Codex refused non-Git workspaces on Windows. |
83
84
  | [Router 0.13.0](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.0) | 0.2.0-rc.1 / 0.2.0-rc.2 | Health check, cost control, subscription-first billing, run history; runs fail in the Harness (fixed in 0.13.1). |
@@ -411,7 +412,7 @@ Claude Code, Codex, MiMo Code, and Grok Build support read-only and approved edi
411
412
 
412
413
  The planned Harness model ID is not necessarily the vendor CLI's model name. A saved `cliModel`, or temporary `cliModelsJson` keyed by tool or work-package ID, can provide a known vendor CLI name. A package-specific temporary mapping takes priority over a tool mapping, then the saved profile. ZCode uses its configured default model. Most vendor CLIs do not provide a verifiable actual model ID in their results, so inspect vendor run records to confirm which model and price applied. The plugin's sequential CLI team runner is separate from Harness's built-in Agent Teams lifecycle.
413
414
 
414
- ### Interactive terminal (官方工具终端, 0.14.0-beta.3, npm `next`)
415
+ ### Interactive terminal (官方工具终端, since 0.14.0)
415
416
 
416
417
  The workbench has an **官方工具终端** card below the tool health check. It runs your system shell (PowerShell on Windows, your login `$SHELL` elsewhere) or one installed official CLI (`codex`, `claude`, `kimi`, `mcode`, `mimo`, `grok`, `gemini`) interactively, in tabs, with live output: multi-turn conversations, full-screen TUIs, and logins such as `codex login`, `claude auth login`, `kimi login`, `mcode login`, `mimo auth login`, `grok login` (choose **登录**).
417
418
 
package/README.zh.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  [English](README.md) · [安装与验证指南](INSTALLATION_GUIDE.zh.md) · [迁移说明](MIGRATION.md) · [独立 GAL 仓库](https://github.com/Alice-Marx/deepseek-harness-galgame)
8
8
 
9
- > **宿主版本:**模型路由 0.13.3 与 GAL 0.1.0 均声明支持 DeepSeek Harness Desktop **0.2.0-rc.1 和 0.2.0-rc.2**。宿主仍是预发布版本,本轮发布使用 npm `next` 标签;推荐精确版本安装,不要依赖裸包名或不断变化的标签。
9
+ > **宿主版本:**模型路由 0.14.0 与 GAL 0.1.0 均声明支持 DeepSeek Harness Desktop **0.2.0-rc.1 和 0.2.0-rc.2**。路由正式版发布在 npm `latest` 标签(预发布版在 `next`);推荐精确版本安装,不要依赖裸包名或不断变化的标签。
10
10
 
11
11
  ![本地规划、按难度选模型与官方工具执行流程](docs/assets/routing-workflow.svg)
12
12
 
@@ -34,12 +34,12 @@
34
34
 
35
35
  | 安装内容 | 输入框填写 | GitHub 仓库 |
36
36
  | --- | --- | --- |
37
- | 模型路由、模型档案与官方工具 | `@ljwei-stak/dsh-model-router@0.13.3` | [Model Router](https://github.com/Alice-Marx/dsh-model-router) |
37
+ | 模型路由、模型档案与官方工具 | `@ljwei-stak/dsh-model-router@0.14.0` | [Model Router](https://github.com/Alice-Marx/dsh-model-router) |
38
38
  | GAL 剧情、自由模式与播放器 | `@ljwei-stak/dsh-galgame@0.1.0` | [DeepSeek Harness GAL](https://github.com/Alice-Marx/deepseek-harness-galgame) |
39
39
 
40
40
  1. npm 安装源选择官方 **HTTPS** 地址 `https://registry.npmjs.org/`;国内镜像尚未同步时可改用此源或版本化 GitHub 安装包。
41
41
  2. 核对安装预览版本与宿主版本,安装并启用;有重启提示时重启。
42
- 3. 路由详情应为 **0.13.3**,侧边栏显示 **模型路由**;独立 GAL 详情应为 **0.1.0**,另显示 **Gal 模块**。
42
+ 3. 路由详情应为 **0.14.0**,侧边栏显示 **模型路由**;独立 GAL 详情应为 **0.1.0**,另显示 **Gal 模块**。
43
43
 
44
44
  普通使用不需要 `npm install -g`:全局 npm 安装不会注册到当前 Harness profile。路由与 GAL 都可以不安装另一插件而运行。
45
45
 
@@ -49,30 +49,30 @@
49
49
  0.13.0 起包名改为 `@ljwei-stak/dsh-model-router`。旧包名的最后版本同样是 0.13.0,内容相同,之后的更新只发布到新包名。插件管理器无法原地更新旧条目:
50
50
 
51
51
  1. 在插件管理器卸载 `@ljwei-stak/model-router-galgame`(保留 profile 与应用数据)。
52
- 2. 添加 `@ljwei-stak/dsh-model-router@0.13.3`,按提示重启。
52
+ 2. 添加 `@ljwei-stak/dsh-model-router@0.14.0`,按提示重启。
53
53
  3. 不要两个同时安装:二者使用相同的 profile 条目 id `model-router-galgame` 和相同的 `model_router_*` 工具名。条目 id 未变,所以 profile 中保存的路由设置以及 `~/.dsh/model-router/state.json` 里的执行记录会保留。
54
54
 
55
55
  ### 从合并版 0.11.x 升级
56
56
 
57
57
  1. **先备份**:旧版 GAL 中对需要保留的剧情进度使用“导出存档”,并备份 Harness profile。JSON 仅包含当前剧情状态,不包含全部手动槽、设置、已读记录与本地音乐。
58
58
  2. 在**同一个 profile**安装 `@ljwei-stak/dsh-galgame@0.1.0`。
59
- 3. 在插件管理器卸载原 `@ljwei-stak/model-router-galgame`,再添加 `@ljwei-stak/dsh-model-router@0.13.3`(见上文“从旧包名升级”)。完成两项安装后再游玩;旧合并插件的 GAL 入口随路由升级移除,只留下新 GAL 插件的入口。
59
+ 3. 在插件管理器卸载原 `@ljwei-stak/model-router-galgame`,再添加 `@ljwei-stak/dsh-model-router@0.14.0`(见上文“从旧包名升级”)。完成两项安装后再游玩;旧合并插件的 GAL 入口随路由升级移除,只留下新 GAL 插件的入口。
60
60
  4. 打开独立 GAL 检查进度。它保留原 localStorage 存档键;更换 profile 或没有读到旧进度时,先选择对应剧目,再导入备份 JSON。
61
61
 
62
62
  独立 GAL 核心只内置**《回声之城·正篇》**和**《旧城迁移篇:未写完的约定》**。此前分出的其他篇目保留在源代码归档,不随这两个核心插件发布。完整迁移步骤见[迁移说明](MIGRATION.md)。
63
63
 
64
64
  ### 使用 GitHub 安装包
65
65
 
66
- 从[路由 v0.13.0 Release](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.3)或[GAL v0.1.0 Release](https://github.com/Alice-Marx/deepseek-harness-galgame/releases/tag/v0.1.0)下载 `.tgz`,在添加插件输入框填写文件绝对路径,例如:
66
+ 从[路由 Releases](https://github.com/Alice-Marx/dsh-model-router/releases)(或运行 `npm pack @ljwei-stak/dsh-model-router@0.14.0`)或[GAL v0.1.0 Release](https://github.com/Alice-Marx/deepseek-harness-galgame/releases/tag/v0.1.0)下载 `.tgz`,在添加插件输入框填写文件绝对路径,例如:
67
67
 
68
68
  ```text
69
- D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz
69
+ D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz
70
70
  ```
71
71
 
72
72
  如附有 `.sha256` 校验文件,使用以下命令计算摘要并比较:
73
73
 
74
74
  ```powershell
75
- Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.13.3.tgz'
75
+ Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-router-0.14.0.tgz'
76
76
  ```
77
77
 
78
78
  也可解压并填写内层含 `package.json` 和 `.dsh-plugin` 的 `package` 目录。安装包可放到自选磁盘;运行数据位置由宿主 profile 决定。不要改 `app.asar` 或绕过依赖检查。
@@ -81,7 +81,8 @@ Get-FileHash -Algorithm SHA256 -LiteralPath 'D:\Plugins\ljwei-stak-dsh-model-rou
81
81
 
82
82
  | 版本 | 声明的宿主 | 功能范围 |
83
83
  | --- | --- | --- |
84
- | **模型路由 0.13.3** | **0.2.0-rc.1 / rc.2** | 修复 Windows 版 Harness Desktop 中官方 CLI 执行无输出(沙箱启动器环境;Codex 改用自带只读沙箱)。更新后请完全重启 Harness。推荐精确版本,也可用 `@next` / `@latest`。 |
84
+ | **模型路由 0.14.0** | **0.2.0-rc.1 / rc.2** | 新增官方工具终端(系统终端与官方 CLI、登录);官方工具跟随各厂商最新版并提示更新,保留签名校验。更新后请完全重启 Harness。推荐精确版本,也可用 `@latest`。 |
85
+ | [模型路由 0.13.3](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.3) | 0.2.0-rc.1 / rc.2 | 修复 Windows 版 Harness Desktop 中官方 CLI 执行无输出(沙箱启动器环境;Codex 改用自带只读沙箱)。 |
85
86
  | [模型路由 0.13.2](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.2) | 0.2.0-rc.1 / rc.2 | Codex 支持非 Git 工作区;Windows Desktop 中经沙箱的 CLI 执行仍无输出。 |
86
87
  | [模型路由 0.13.1](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.1) | 0.2.0-rc.1 / rc.2 | 修复 `cannot get property "credentials" without inject`;Windows 上 Codex 拒绝非 Git 工作区。 |
87
88
  | [模型路由 0.13.0](https://github.com/Alice-Marx/dsh-model-router/releases/tag/v0.13.0) | 0.2.0-rc.1 / rc.2 | 体检、成本控制、订阅优先、执行记录;在 Harness 中执行会失败(0.13.1 已修复)。 |
@@ -402,7 +403,7 @@ Claude 与 Codex 若本机已有经核验的签名入口,仍优先走原有沙
402
403
 
403
404
  Harness 目录中的模型 ID 未必是厂商 CLI 接受的名字。逐模型设置可填写 `cliModel`;团队执行时临时的“工作包映射 > 工具映射 > 保存映射”。ZCode 不能逐次切换模型。多数 CLI 不回报可核验的实际模型 ID,执行后要对照厂商运行记录、权限和账单。Windows Harness 沙箱的 ACL 文件效果报告为部分隔离,涉及敏感仓库时应先用测试环境验证。
404
405
 
405
- ### 官方工具终端(0.14.0-beta.3,npm `next`)
406
+ ### 官方工具终端(0.14.0 起)
406
407
 
407
408
  工作台“官方工具 · 体检”下方新增 **官方工具终端** 卡片:以标签页形式交互运行系统终端(Windows 为 PowerShell,其他系统为登录 `$SHELL`)或已安装的官方 CLI(`codex`、`claude`、`kimi`、`mcode`、`mimo`、`grok`、`gemini`),实时输出,可多轮对话、显示全屏界面,也可选 **登录** 直接运行 `codex login`、`claude auth login`、`kimi login`、`mcode login`、`mimo auth login`、`grok login`。
408
409
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ljwei-stak/dsh-model-router",
3
- "version": "0.14.0-beta.4",
3
+ "version": "0.14.0",
4
4
  "type": "module",
5
5
  "description": "Model Router for official DeepSeek Harness Desktop: cost-aware task routing, dependent work packages and official vendor CLI discovery, installation and execution. GAL is available separately as @ljwei-stak/dsh-galgame.",
6
6
  "repository": {