dsh-deepseek-web-login 0.4.2 → 0.5.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.
- package/CHANGELOG.md +27 -0
- package/lib/client.js +22 -0
- package/lib/client.js.map +1 -1
- package/lib/index.js +66 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/tools/panel-preview.mjs +8 -4
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
本项目遵循大致语义化版本;日期为本地时间。
|
|
4
4
|
|
|
5
|
+
## 0.5.0 — 2026-09-27
|
|
6
|
+
|
|
7
|
+
> 新增「允许并行调用工具」开关,并把默认改成**一次只发一个工具调用**。
|
|
8
|
+
|
|
9
|
+
### 新增
|
|
10
|
+
|
|
11
|
+
- **「允许并行调用工具」开关**(「防风控」页 → 请求节流):关掉后模型一轮只发一个工具调用、
|
|
12
|
+
等结果回来再决定下一步;打开则允许一轮最多 3 个,由 DSH 并行执行。
|
|
13
|
+
- 它改变的是**模型看到的协议指令** —— 属于「引导」而不是「强制」,不拦截也不改写模型发出的调用。
|
|
14
|
+
- ⚠️ 切换后**第一轮会全量重发一次**(协议文本变了,投喂链要重建),之后恢复正常。
|
|
15
|
+
|
|
16
|
+
### 变更(**破坏性语义变化**)
|
|
17
|
+
|
|
18
|
+
- 🔴 **默认改为「一次只发一个工具调用」**(即开关默认不勾)。0.4.2 及以前默认允许批量。
|
|
19
|
+
- 升级后**第一个任务的协议文本即变化** ⇒ 投喂链断一次(下一轮全量重发 + 新建网页端会话)。
|
|
20
|
+
- 之后每个任务**总耗时变长**:每个工具各占一轮请求(3 个工具约从 2 轮变 4 轮)。
|
|
21
|
+
- 想保留旧行为:设置页把「允许并行调用工具」勾上即可(= 显式 `serialToolCalls: false`)。
|
|
22
|
+
|
|
23
|
+
### 说明
|
|
24
|
+
|
|
25
|
+
- 工具在 DSH 侧执行(读文件、跑命令),**不产生任何 DeepSeek 请求** ⇒ 对网页端不可见。
|
|
26
|
+
别和「允许并发生成」混淆:后者是**同时对 DeepSeek 发两条请求**(实测会触发账号级限制),
|
|
27
|
+
前者只影响模型一轮里发几个工具调用。
|
|
28
|
+
- **请求密度本身基本不变**:闸门间隔按「上一次结束」时刻计算,而工具执行发生在其后
|
|
29
|
+
⇒ 工具耗时本就盖住了那段间隔。实测 827 个相邻请求间隔里 **99% 都 > 4s**(中位 18.3s)。
|
|
30
|
+
真正变化的是**总请求数**与**总耗时**。
|
|
31
|
+
|
|
5
32
|
## 0.4.2 — 2026-09-26
|
|
6
33
|
|
|
7
34
|
> 新增「Token 统计」页:本地的用量趋势与分布。以前 token 数只在上报途中被算一次就丢了。
|
package/lib/client.js
CHANGED
|
@@ -1642,6 +1642,26 @@ background:var(--bg2);white-space:pre-wrap;font-size:12px}
|
|
|
1642
1642
|
paintAutoSwitch();
|
|
1643
1643
|
saveGate({ autoSwitchMinutes: currentSwitchMinutes() });
|
|
1644
1644
|
});
|
|
1645
|
+
const serialRow = el("div", "dsw-gate-row");
|
|
1646
|
+
const serialLabel = el("label", "dsw-switch");
|
|
1647
|
+
const serialInput = el("input");
|
|
1648
|
+
serialInput.type = "checkbox";
|
|
1649
|
+
const serialTrack = el("span", "dsw-switch-track");
|
|
1650
|
+
serialLabel.append(serialInput, serialTrack, el("span", void 0, "允许并行调用工具"));
|
|
1651
|
+
serialRow.append(serialLabel);
|
|
1652
|
+
gateCard.append(serialRow);
|
|
1653
|
+
const serialHint = el("p", "dsw-hint", "");
|
|
1654
|
+
gateCard.append(serialHint);
|
|
1655
|
+
const paintSerialTools = () => {
|
|
1656
|
+
const batched = serialInput.checked;
|
|
1657
|
+
serialHint.textContent = batched ? "允许并行:模型可以一次发多个工具调用(同一批最多 3 个),DSH 会并行跑它们 —— 一轮请求推进多步,任务更快。工具在 DSH 侧执行、不发 DeepSeek 请求,所以对网页端不可见。切换后的第一轮会全量重发一次。" : "默认:一次只发一个工具调用,等结果回来再决定下一步 —— 后一步能用上前一步的真实结果,逐步反应更稳。代价是每个工具各占一轮请求,任务总耗时明显变长。切换后的第一轮会全量重发一次。";
|
|
1658
|
+
};
|
|
1659
|
+
serialInput.checked = false;
|
|
1660
|
+
paintSerialTools();
|
|
1661
|
+
serialInput.addEventListener("change", () => {
|
|
1662
|
+
paintSerialTools();
|
|
1663
|
+
saveGate({ serialToolCalls: !serialInput.checked });
|
|
1664
|
+
});
|
|
1645
1665
|
const cleanupRow = el("div", "dsw-gate-row");
|
|
1646
1666
|
cleanupRow.append(el("span", "dsw-gate-label", "会话清理"));
|
|
1647
1667
|
const cleanupBtns = {};
|
|
@@ -2327,6 +2347,8 @@ background:var(--bg2);white-space:pre-wrap;font-size:12px}
|
|
|
2327
2347
|
swRange.max = String(swBounds.max);
|
|
2328
2348
|
swRange.value = String(g.autoSwitchMinutes ?? g.autoSwitchDefault ?? 0);
|
|
2329
2349
|
paintAutoSwitch();
|
|
2350
|
+
serialInput.checked = g.serialToolCalls === false;
|
|
2351
|
+
paintSerialTools();
|
|
2330
2352
|
const mode = g.cleanup?.mode ?? "deferred";
|
|
2331
2353
|
for (const key of Object.keys(cleanupBtns)) cleanupBtns[key].classList.toggle("active", key === mode);
|
|
2332
2354
|
const showRanges = mode === "deferred";
|