@zaofan/dsh-qqbot 1.5.9 → 1.5.12

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.
Files changed (60) hide show
  1. package/README.md +57 -0
  2. package/README.md.bak-1511-1790525690506 +310 -0
  3. package/README.md.bak-1512-1790529705004 +349 -0
  4. package/client/qqbot-settings.js +4876 -4780
  5. package/client/qqbot-settings.js.bak-apifix-1790512748500 +4846 -0
  6. package/client/qqbot-settings.js.bak-bind3-1790517775201 +4882 -0
  7. package/client/qqbot-settings.js.bak-clamp-195559 +4780 -0
  8. package/client/qqbot-settings.js.bak-ctxev-1790511964477 +4830 -0
  9. package/client/qqbot-settings.js.bak-ctxless-202526 +4785 -0
  10. package/client/qqbot-settings.js.bak-ctxui-1790511940536 +4824 -0
  11. package/client/qqbot-settings.js.bak-delegate-1790515486404 +4844 -0
  12. package/client/qqbot-settings.js.bak-fixctx2-1790512183370 +4844 -0
  13. package/client/qqbot-settings.js.bak-lmreset-1790522156560 +4873 -0
  14. package/client/qqbot-settings.js.bak-lmreset2-1790522188051 +4873 -0
  15. package/client/qqbot-settings.js.bak-movectx-1790512156480 +4838 -0
  16. package/client/qqbot-settings.js.bak-privacy-1790525734851 +4876 -0
  17. package/client/qqbot-settings.js.bak-save2-1790517095028 +4859 -0
  18. package/dist/config.d.ts +4 -0
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +3 -1
  21. package/dist/config.js.map +1 -1
  22. package/dist/features/contextless-store.d.ts +33 -0
  23. package/dist/features/contextless-store.d.ts.map +1 -0
  24. package/dist/features/contextless-store.js +253 -0
  25. package/dist/features/contextless-store.js.map +1 -0
  26. package/dist/features/contextless-trim.d.ts +47 -0
  27. package/dist/features/contextless-trim.d.ts.map +1 -0
  28. package/dist/features/contextless-trim.js +304 -0
  29. package/dist/features/contextless-trim.js.map +1 -0
  30. package/dist/features/local-embed.d.ts +8 -0
  31. package/dist/features/local-embed.d.ts.map +1 -1
  32. package/dist/features/local-embed.js +58 -7
  33. package/dist/features/local-embed.js.map +1 -1
  34. package/dist/features/qq-approval.d.ts.map +1 -1
  35. package/dist/features/qq-approval.js +14 -2
  36. package/dist/features/qq-approval.js.map +1 -1
  37. package/dist/features/qq-user-questions.d.ts +20 -0
  38. package/dist/features/qq-user-questions.d.ts.map +1 -1
  39. package/dist/features/qq-user-questions.js +97 -17
  40. package/dist/features/qq-user-questions.js.map +1 -1
  41. package/dist/gateway/bootstrap.d.ts.map +1 -1
  42. package/dist/gateway/bootstrap.js +11 -0
  43. package/dist/gateway/bootstrap.js.map +1 -1
  44. package/dist/model/model-resolver.d.ts +0 -14
  45. package/dist/model/model-resolver.d.ts.map +1 -1
  46. package/dist/model/model-resolver.js +23 -1
  47. package/dist/model/model-resolver.js.map +1 -1
  48. package/dist/model/prefs-store.d.ts +25 -1
  49. package/dist/model/prefs-store.d.ts.map +1 -1
  50. package/dist/model/prefs-store.js +70 -3
  51. package/dist/model/prefs-store.js.map +1 -1
  52. package/dist/session/session-manager.d.ts +6 -0
  53. package/dist/session/session-manager.d.ts.map +1 -1
  54. package/dist/session/session-manager.js +95 -0
  55. package/dist/session/session-manager.js.map +1 -1
  56. package/dist/transport/inbound.d.ts.map +1 -1
  57. package/dist/transport/inbound.js +20 -0
  58. package/dist/transport/inbound.js.map +1 -1
  59. package/package.json +2 -5
  60. package/settings-host.js +74 -0
@@ -0,0 +1,304 @@
1
+ /**
2
+ * contextless-trim.ts — 「无上下文模式」真正干活的部分(2026-09-27 重写 · 完整四事件版)
3
+ *
4
+ * 需求(主人):开启后该会话**每轮丢掉更早的对话历史**,只留系统规则 + 最近 N 条;
5
+ * web 记录照旧保留(只多一行「上下文已压缩」);**不调 LLM**。
6
+ *
7
+ * ── 走过的两条错路(都记在这里,别再踩)────────────────────────────
8
+ * 错路①:在 `agent/pre-step` 里裁 `decision.messages`。
9
+ * dsh-agent 的 runtime-types 写得很清楚:
10
+ * `@param payload.messages - messages removed from the inbox for this step`
11
+ * `PreStepDecision = { kind:'enter'; messages: UserMessage[] }`
12
+ * 即:pre-step 的 messages 是"本步从收件箱取出的**新消息**",不是"发给模型的完整上下文"。
13
+ * 在那儿裁剪 = 把用户刚发的话删掉(实测:模型只收到 system-reminder → 空转 → abort)。
14
+ * 错路②:只 append 一条带 `surfaceOp: replace` 的 user/message。
15
+ * 模型视野确实变小了,但 token-meter 的计费契约要求有一条**紧邻的**计费事件,
16
+ * 否则压力账本记 0 delta(占用不降、自动压缩反复触发)。
17
+ *
18
+ * ── 正解:照 dsh 自己的 compaction 协议写**四事件** ────────────────
19
+ * ① compaction/start { compactionId, turn }
20
+ * ② compaction/summary { compactionId, summary, shadowedRange, shadowedSeqs, shadowedTokenCount, provider, model }
21
+ * ▲ 必须**紧邻**在下一步之前(中间不能插任何事件)
22
+ * ③ user/message + surfaceOp{op:'replace',startSeq,endSeq} + sourceEventSeqs(含 start/summary/全部被影子节点)
23
+ * ④ compaction/end { compactionId, turn }
24
+ *
25
+ * ── 证据(源码/实测)─────────────────────────────────────────────
26
+ * · dsh-session `types.d.ts:445-462`:replace 是"The node's sourceEventSeqs must include every
27
+ * shadowed surface node",且 "Used by compaction; **any surface-replacing producer may use it**"
28
+ * → 第三方插件用 replace 是官方允许的。
29
+ * · dsh-compaction-basic `:888-902`:官方留了"模板/远端摘要器"的定制钩子
30
+ * → **非 LLM 摘要被明确支持**(类型 `llmStreamCall?: never`)。
31
+ * · dsh-token-meter `surface-projection.js:37-66` 的计费契约:
32
+ * ① summary 必须紧邻 replace;② shadowedRange 必须与 {startSeq,endSeq} 完全一致;
33
+ * ③ shadowedTokenCount 必须是**固定启发式价**之和(用错价会让压力账本永久漂移)。
34
+ * · dsh-session `surface.js:236-269`:sourceEventSeqs 非空、无重复、必须全部更早、
35
+ * 且必须覆盖全部被 shadow 的 surface 节点。
36
+ * · `surface.js:388-397`:node0 若是 system/message,只能被"恰好 1 个 system/message"替换
37
+ * → 故范围一律**从第一个非 system 节点开始**,绝不碰 node0。
38
+ * · `session.append` 会对 data 做 JSON 快照,**任何 `undefined` 属性都会抛错**
39
+ * → provider/model 给空串;可选字段用条件展开。
40
+ *
41
+ * ── web 端行为(主人关心的)───────────────────────────────────
42
+ * surface 是"模型视野",不是人类 transcript(surface.js:39-46 原文注释)。
43
+ * 被 shadow 的原消息**仍留在会话日志**,web 上照样能翻;只多出一行可折叠的
44
+ * 「上下文已压缩 · 约 N tokens」标记。**不存在"把历史从记录里删掉"的机制。**
45
+ */
46
+ import { randomUUID } from 'node:crypto';
47
+ import { traceContextless } from './contextless-store.js';
48
+ /** 参与"保留最近 N 条"计数的消息型事件(与 dsh 的 SurfaceEventType 对齐) */
49
+ const MESSAGE_TYPES = new Set(['user/message', 'assistant/message', 'system/message', 'developer/message']);
50
+ /** 替身文本(摘要器输出;web 的「上下文已压缩」折叠块显示它) */
51
+ const FIXED_SUMMARY_TEXT = '(更早的对话已按「无上下文模式」省略,仅保留最近若干条)';
52
+ /**
53
+ * 幂等标记(2026-09-27 修):记住每个 session **已压到哪个 seq**。
54
+ *
55
+ * ⚠️ 原实现用 replaceGeneration,被群聊 AI 抓到是 bug:
56
+ * replaceGeneration 在"压过一次"后就不变,于是"跳过: 同一 replaceGeneration 已压缩过"
57
+ * 会在之后每一轮都命中 → **新攒的历史被永久跳过**(实测 22:44:32 起全部跳过)。
58
+ * 改为按 seq 记账:只要本次要压的区间末尾 seq 比"上次压到的"更靠后,就允许再压。
59
+ */
60
+ const lastTrimmedEndSeq = new WeakMap();
61
+ /** 双保险:记住每个 session 上一次压缩的 turn,同一 turn 内不再重复压(step 缺失时兜底) */
62
+ const lastTrimmedTurn = new WeakMap();
63
+ function newId() {
64
+ try {
65
+ return randomUUID();
66
+ }
67
+ catch { /* fallthrough */ }
68
+ return 'ctxless-' + Date.now().toString(36) + '-' + Math.floor(Math.random() * 1e9).toString(36);
69
+ }
70
+ /** 拿不到宿主 tokenMeter 时的粗估:≈ 字符数 / 4 */
71
+ function roughTokens(value) {
72
+ try {
73
+ if (value === null || value === undefined)
74
+ return 0;
75
+ const text = typeof value === 'string' ? value : JSON.stringify(value);
76
+ return Math.max(1, Math.ceil((text?.length ?? 0) / 4));
77
+ }
78
+ catch {
79
+ return 0;
80
+ }
81
+ }
82
+ /** tool 相关事件(回退边界用,避免切断 tool-call/tool-result 配对) */
83
+ function isToolish(ev) {
84
+ const t = String(ev?.type ?? '');
85
+ return t === 'tool/result' || t === 'tool/call';
86
+ }
87
+ /** 从事件里读消息体(用于估价) */
88
+ function messageOf(sess, seq) {
89
+ const ev = sess.eventAt?.(seq);
90
+ try {
91
+ if (typeof sess.deriveEventMessage === 'function')
92
+ return sess.deriveEventMessage(ev) ?? ev;
93
+ }
94
+ catch { /* ignore */ }
95
+ return ev;
96
+ }
97
+ /**
98
+ * 把「最近 keepRecent 条消息」之前的历史整段替换成一句固定文本(四事件协议)。
99
+ *
100
+ * @param agent 目标 agent(取 agent.session)
101
+ * @param keepRecent 保留最近多少条消息(面板里的"带 @ 前 N 条";<=0 表示全清只留替身)
102
+ * @param logger 可选日志
103
+ * @param ctx 可选宿主上下文(用于拿 tokenMeter 估价)
104
+ * @returns 本次是否真的替换了
105
+ */
106
+ export async function trimHistoryForContextless(agent, keepRecent, logger, ctx,
107
+ /** 当前打开的轮次号(来自 agent/pre-step 的 payload.turn)。
108
+ * ⚠️ 绝不能传 undefined/null:我们在 pre-step 里执行,回合是开着的,
109
+ * 而 compaction/start、compaction/end 的 turn 必须与"开着的那个 turn"一致,
110
+ * 否则会话日志会以 SessionFormatError 写坏(实测把两个群的会话都写崩了)。 */
111
+ turn) {
112
+ const sess = agent?.session;
113
+ traceContextless('trim 被调用: keep=' + keepRecent + ' turn=' + String(turn) + ' agent=' + (agent ? 'yes' : 'no') + ' session=' + (sess ? 'yes' : 'no'));
114
+ let started = false; // 是否已 append compaction/start(失败时要补 end)
115
+ let compactionId = '';
116
+ const log = logger ?? ctx?.logger;
117
+ try {
118
+ const nodes = sess?.surface?.nodes;
119
+ if (!Array.isArray(nodes) || nodes.length === 0) {
120
+ log?.debug?.('[contextless] 跳过: 会话无 surface.nodes');
121
+ traceContextless('跳过: 无 surface.nodes');
122
+ return false;
123
+ }
124
+ if (typeof sess?.eventAt !== 'function' || typeof sess?.append !== 'function') {
125
+ log?.debug?.('[contextless] 跳过: session 缺 eventAt/append');
126
+ traceContextless('跳过: 缺 eventAt/append');
127
+ return false;
128
+ }
129
+ const keep = Math.max(0, Math.trunc(Number(keepRecent)) || 0);
130
+ // ① node0 若是 system/message 则永不纳入范围(surface.js:388 的保护)
131
+ const headSeq = nodes[0];
132
+ const headEv = headSeq === undefined ? undefined : sess.eventAt(headSeq);
133
+ // ⚠️⚠️ 2026-09-27 死保护:**绝不从 node0 开始**。
134
+ // dsh 的 surface node0 是"受保护的第一节点"(通常是 system/message):
135
+ // surface.js:388 assertSystemHeadRewrite 规定它只能被"恰好一个 system/message"替换。
136
+ // 人家原来写成 `headEv?.type === 'system/message' ? 1 : 0` —— 只要 node0 不是 system
137
+ // (例如它已经是上一次压缩的 checkpoint),firstIdx 就退化成 0,于是一次 replace 把
138
+ // 受保护 head 换掉 → 会话日志变成
139
+ // SessionFormatError: system/message requires a protected first surface head
140
+ // 实测把"月饼群"的会话写坏 5 次。现在无条件从 1 起,宁可少压一个节点,也绝不碰 node0。
141
+ const _headIsSystem = headEv?.type === 'system/message';
142
+ const firstIdx = 1;
143
+ if (!_headIsSystem && headSeq !== undefined) {
144
+ log?.debug?.('[contextless] 注意: node0 不是 system/message(而是 ' + String(headEv?.type) + '),仍从 1 起以保护 head');
145
+ }
146
+ // ② 定位保留段起点(从尾往前数最近 keep 条对话消息)
147
+ let keepIdxInNodes;
148
+ if (keep <= 0) {
149
+ if (nodes.length <= firstIdx + 1) {
150
+ log?.debug?.('[contextless] 跳过: 节点数不足(' + nodes.length + ')');
151
+ traceContextless('跳过: 节点数不足 ' + nodes.length);
152
+ return false;
153
+ }
154
+ keepIdxInNodes = nodes.length; // 全清(只留替身)
155
+ }
156
+ else {
157
+ const msgIdx = [];
158
+ for (let i = firstIdx; i < nodes.length; i++) {
159
+ const seqI = nodes[i];
160
+ if (seqI === undefined)
161
+ continue;
162
+ const ev = sess.eventAt(seqI);
163
+ if (ev && MESSAGE_TYPES.has(String(ev.type)))
164
+ msgIdx.push(i);
165
+ }
166
+ if (msgIdx.length <= keep + 1) {
167
+ log?.debug?.('[contextless] 跳过: 消息数 ' + msgIdx.length + ' <= 保留 ' + keep + '+1');
168
+ traceContextless('跳过: 消息数 ' + msgIdx.length + ' <= 保留 ' + keep + '+1');
169
+ return false;
170
+ }
171
+ const keepFromRaw = msgIdx[msgIdx.length - keep];
172
+ if (keepFromRaw === undefined)
173
+ return false;
174
+ keepIdxInNodes = keepFromRaw;
175
+ }
176
+ // ③ 回退到 tool 配对平衡的边界(surface 层不查,但 provider 会因孤立 tool 调用报错)
177
+ while (keepIdxInNodes > firstIdx + 1) {
178
+ const seqAt = nodes[keepIdxInNodes];
179
+ if (seqAt === undefined || !isToolish(sess.eventAt(seqAt)))
180
+ break;
181
+ keepIdxInNodes -= 1;
182
+ }
183
+ if (keepIdxInNodes <= firstIdx) {
184
+ log?.debug?.('[contextless] 跳过: 保留段起点已到头部');
185
+ traceContextless('跳过: 保留段起点已到头部');
186
+ return false;
187
+ }
188
+ const startRaw = nodes[firstIdx];
189
+ const endRaw = nodes[keepIdxInNodes - 1];
190
+ if (startRaw === undefined || endRaw === undefined)
191
+ return false;
192
+ const start = startRaw;
193
+ const end = endRaw;
194
+ const shadowedSeqs = nodes.slice(firstIdx, keepIdxInNodes);
195
+ if (shadowedSeqs.length === 0)
196
+ return false;
197
+ // ③.5 双保险:同一 turn 只压一次
198
+ if (typeof turn === 'number') {
199
+ const prevTurn = lastTrimmedTurn.get(sess);
200
+ if (typeof prevTurn === 'number' && prevTurn === turn) {
201
+ traceContextless('跳过: 同一 turn(' + turn + ') 已压缩过');
202
+ return false;
203
+ }
204
+ }
205
+ // ④ 幂等(按 seq):本次要压到的 end 不晚于"上次压到的"→ 说明没有新历史 → 跳过。
206
+ // 有新消息时 end 会变大 → 允许再压(这正是原 replaceGeneration 写法漏掉的情况)。
207
+ const trimmedTo = lastTrimmedEndSeq.get(sess);
208
+ if (typeof trimmedTo === 'number' && end <= trimmedTo) {
209
+ traceContextless('跳过: 已压到 seq ' + trimmedTo + ',本次 end=' + end + ' 没有更新的历史');
210
+ return false;
211
+ }
212
+ // ⑤ shadowedTokenCount = 固定启发式价之和(契约要求;用错价会让压力账本漂移)
213
+ // ⚠️ 2026-09-27 修:插件的 ctx 未必 inject 了 tokenMeter,直接访问会抛
214
+ // "cannot get property \"tokenMeter\" without inject"(实测把整轮清理打挂)。
215
+ // 所以整段包 try,拿不到就退回字符估算 —— 宁可价不准,也不能不干活。
216
+ let estimateFn;
217
+ try {
218
+ const tm = ctx?.tokenMeter;
219
+ if (tm && typeof tm.estimateMessage === 'function')
220
+ estimateFn = tm.estimateMessage.bind(tm);
221
+ }
222
+ catch {
223
+ estimateFn = undefined;
224
+ }
225
+ let shadowedTokenCount = 0;
226
+ for (const seq of shadowedSeqs) {
227
+ const msg = messageOf(sess, seq);
228
+ let got = NaN;
229
+ if (estimateFn) {
230
+ try {
231
+ got = Number(estimateFn(msg));
232
+ }
233
+ catch {
234
+ got = NaN;
235
+ }
236
+ }
237
+ shadowedTokenCount += Number.isFinite(got) && got > 0 ? Math.round(got) : roughTokens(msg);
238
+ }
239
+ if (!Number.isFinite(shadowedTokenCount) || shadowedTokenCount < 0)
240
+ shadowedTokenCount = 0;
241
+ compactionId = newId();
242
+ // ⑥ ① 开括号(standalone:turn 为 null —— 本函数只在回合空闲后运行)
243
+ const startEvent = sess.append('compaction/start', {
244
+ compactionId,
245
+ turn: typeof turn === 'number' ? turn : null,
246
+ });
247
+ started = true;
248
+ // ⑦ ② 计费事件
249
+ const summaryEvent = sess.append('compaction/summary', {
250
+ compactionId,
251
+ summary: [{ type: 'text', text: FIXED_SUMMARY_TEXT }],
252
+ shadowedRange: { start, end },
253
+ shadowedSeqs: [...shadowedSeqs],
254
+ shadowedTokenCount,
255
+ provider: '', // 类型必填 string;绝不能是 undefined(append 的 JSON 快照会抛)
256
+ model: '',
257
+ });
258
+ // ⚠️ ⑧ ③ 替换(必须**紧邻** summary,中间不能插任何 append)
259
+ const sources = [startEvent?.seq, summaryEvent?.seq, ...shadowedSeqs]
260
+ .filter((s) => typeof s === 'number' && Number.isFinite(s));
261
+ sess.append('user/message', {
262
+ id: newId(),
263
+ role: 'user',
264
+ content: [{ type: 'text', text: FIXED_SUMMARY_TEXT }],
265
+ source: { kind: 'compact-checkpoint', compactionId },
266
+ }, {
267
+ surfaceOp: { op: 'replace', startSeq: start, endSeq: end },
268
+ sourceEventSeqs: sources,
269
+ });
270
+ // ⑨ ④ 闭括号
271
+ sess.append('compaction/end', { compactionId, turn: typeof turn === 'number' ? turn : null });
272
+ started = false;
273
+ lastTrimmedEndSeq.set(sess, end); // 记账:已压到这个 seq
274
+ if (typeof turn === 'number')
275
+ lastTrimmedTurn.set(sess, turn);
276
+ traceContextless('✅ 成功: 替换 seq ' + start + '..' + end + '(' + shadowedSeqs.length + ' 节点 / ' + shadowedTokenCount + ' tokens),保留 ' + keep);
277
+ log?.info?.('[contextless] 已省略历史: 替换 seq ' + start + '..' + end
278
+ + '(' + shadowedSeqs.length + ' 个节点 / 约 ' + shadowedTokenCount + ' tokens)→ 保留最近 ' + keep + ' 条消息');
279
+ return true;
280
+ }
281
+ catch (err) {
282
+ // 失败必须补一条 compaction/end(带 error),否则该会话后续压缩会被 compaction-basic 判 busy 挡死
283
+ if (started && compactionId && typeof sess?.append === 'function') {
284
+ try {
285
+ sess.append('compaction/end', { compactionId, turn: typeof turn === 'number' ? turn : null, error: { message: err instanceof Error ? err.message : String(err) } });
286
+ }
287
+ catch { /* ignore */ }
288
+ }
289
+ traceContextless('❌ 失败: ' + (err instanceof Error ? (err.message + '\n' + (err.stack ?? '')) : String(err)));
290
+ log?.debug?.('[contextless] 省略历史失败(已忽略): ' + (err instanceof Error ? err.message : String(err)));
291
+ return false;
292
+ }
293
+ }
294
+ /**
295
+ * 回合空闲后执行清理(插件硬约束:回合中 append 会坏记录 —— inject.ts 的既有约定)。
296
+ * fire-and-forget,不阻塞调用方。
297
+ */
298
+ export function scheduleContextlessTrim(agent, keepRecent, logger, ctx) {
299
+ const wait = typeof agent?.whenIdle === 'function'
300
+ ? agent.whenIdle().catch(() => undefined)
301
+ : Promise.resolve();
302
+ void wait.then(() => trimHistoryForContextless(agent, keepRecent, logger, ctx)).catch(() => undefined);
303
+ }
304
+ //# sourceMappingURL=contextless-trim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextless-trim.js","sourceRoot":"","sources":["../../src/features/contextless-trim.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  import type { Logger } from '../types.js';
2
2
  /** 默认模型目录(用户级): {DSH_HOME|~/.dsh}/models/bge-small-zh */
3
+ /**
4
+ * 全局重置所有已缓存的 embedder(面板「🔄 重新检测」用)。
5
+ * 场景:某次加载失败会把该实例标记为不可用;用户想"立刻再试一次"而不重启进程时调用它。
6
+ * @returns 被重置的实例数
7
+ */
8
+ export declare function resetAllEmbedders(): number;
3
9
  export declare function defaultModelDir(): string;
4
10
  /** 检查模型资产是否齐全(纯本地, 不加载模型) */
5
11
  export declare function checkModelAssets(modelDir: string): {
@@ -20,6 +26,8 @@ export interface EmbedderStatus {
20
26
  loadMs?: number;
21
27
  }
22
28
  export interface LocalEmbedder {
29
+ /** 强制重置加载状态(失败退避 / 已加载实例都清掉),下次用到时重新加载 */
30
+ reset?: () => void;
23
31
  readonly modelDir: string;
24
32
  /** 当前状态(不触发加载) */
25
33
  status(): EmbedderStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"local-embed.d.ts","sourceRoot":"","sources":["../../src/features/local-embed.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,yDAAyD;AACzD,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYpG;AAED,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kBAAkB;IAClB,MAAM,IAAI,cAAc,CAAC;IACzB,WAAW;IACX,SAAS,IAAI,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAChE,sBAAsB;IACtB,MAAM,IAAI,IAAI,CAAC;CAChB;AAWD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAmFvH"}
1
+ {"version":3,"file":"local-embed.d.ts","sourceRoot":"","sources":["../../src/features/local-embed.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAQ1C,yDAAyD;AACzD;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAED,wBAAgB,eAAe,IAAI,MAAM,CAGxC;AAED,6BAA6B;AAC7B,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAYpG;AAED,MAAM,WAAW,cAAc;IAC7B,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kBAAkB;IAClB,MAAM,IAAI,cAAc,CAAC;IACzB,WAAW;IACX,SAAS,IAAI,OAAO,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxD,wCAAwC;IACxC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC;IAChE,sBAAsB;IACtB,MAAM,IAAI,IAAI,CAAC;CAChB;AAWD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CAqHvH"}
@@ -19,6 +19,25 @@ const QUERY_PREFIX = '为这个句子生成表示以用于检索相关文章:'
19
19
  /** 模型资产清单(任一缺失即不可用) */
20
20
  const ASSETS = ['onnx/model_quantized.onnx', 'tokenizer.json', 'config.json'];
21
21
  /** 默认模型目录(用户级): {DSH_HOME|~/.dsh}/models/bge-small-zh */
22
+ /**
23
+ * 全局重置所有已缓存的 embedder(面板「🔄 重新检测」用)。
24
+ * 场景:某次加载失败会把该实例标记为不可用;用户想"立刻再试一次"而不重启进程时调用它。
25
+ * @returns 被重置的实例数
26
+ */
27
+ export function resetAllEmbedders() {
28
+ let n = 0;
29
+ try {
30
+ for (const e of embedders.values()) {
31
+ try {
32
+ e.reset?.();
33
+ n++;
34
+ }
35
+ catch { /* 单个失败继续 */ }
36
+ }
37
+ }
38
+ catch { /* ignore */ }
39
+ return n;
40
+ }
22
41
  export function defaultModelDir() {
23
42
  const dshHome = (process.env.DSH_HOME && process.env.DSH_HOME.trim()) || join(homedir(), '.dsh');
24
43
  return join(dshHome, 'models', 'bge-small-zh');
@@ -51,16 +70,30 @@ export function createLocalEmbedder(opts = {}) {
51
70
  return cached;
52
71
  const logger = opts.logger;
53
72
  let extractor;
54
- let failed = false;
73
+ // ⚠️ 2026-09-27 修(主人反馈"智能回复失效、评分窗口只剩图片"):
74
+ // 原来是 `let failed = false` —— **一次加载失败就永久关闭**,之后 load() 永远直接返回 false,
75
+ // 所有评分静默变成 undefined(只有"无分也记录"的图片条目还留在 value-scores.jsonl 里,
76
+ // 看起来就像"模型坏了、文字消息完全不评分")。实测 22:49:33 之后一条有分数的记录都没有。
77
+ // 现在改成 `failedAt`(时间戳):退避期结束后**允许重新尝试**,并提供 reset() 供面板"重新检测"强制重载。
78
+ let failedAt = 0; // 0 = 从未失败
55
79
  let failureReason = '';
56
80
  let loading;
57
81
  let dims;
58
82
  let loadMs;
83
+ /** 失败后的退避窗口:这段时间内不重复尝试(避免每条消息都触发一次加载风暴) */
84
+ const RETRY_BACKOFF_MS = 60_000;
59
85
  async function load() {
60
86
  if (extractor)
61
87
  return true;
62
- if (failed)
63
- return false;
88
+ if (failedAt) {
89
+ const waited = Date.now() - failedAt;
90
+ if (waited < RETRY_BACKOFF_MS)
91
+ return false; // 退避中
92
+ // 退避结束 → 允许再试一次(清掉失败标记,让下面的加载流程跑起来)
93
+ failedAt = 0;
94
+ failureReason = '';
95
+ logger?.info('[im-qqbot] 智能回复:退避结束,重新尝试加载本地小模型…');
96
+ }
64
97
  if (loading)
65
98
  return loading;
66
99
  loading = (async () => {
@@ -81,7 +114,7 @@ export function createLocalEmbedder(opts = {}) {
81
114
  return true;
82
115
  }
83
116
  catch (e) {
84
- failed = true;
117
+ failedAt = Date.now();
85
118
  failureReason = e instanceof Error ? e.message : String(e);
86
119
  logger?.warn(`[im-qqbot] 智能回复不可用(本地小模型 ${modelDir}): ${failureReason}`);
87
120
  return false;
@@ -111,12 +144,28 @@ export function createLocalEmbedder(opts = {}) {
111
144
  return undefined;
112
145
  }
113
146
  }
147
+ /** 强制重置:清掉失败标记与已加载实例,下次用到时重新加载(面板「重新检测」调用) */
148
+ function reset() {
149
+ failedAt = 0;
150
+ failureReason = '';
151
+ extractor = undefined;
152
+ loading = undefined;
153
+ dims = undefined;
154
+ loadMs = undefined;
155
+ logger?.info('[im-qqbot] 智能回复:已重置本地小模型状态,下次使用会重新加载');
156
+ }
114
157
  const embedder = {
115
158
  modelDir,
159
+ reset,
116
160
  status() {
117
161
  const assets = checkModelAssets(modelDir);
118
- if (failed)
119
- return { available: false, modelDir, reason: failureReason, dims, loadMs };
162
+ if (failedAt) {
163
+ const left = Math.max(0, RETRY_BACKOFF_MS - (Date.now() - failedAt));
164
+ return {
165
+ available: false, modelDir, dims, loadMs,
166
+ reason: failureReason + (left > 0 ? '(' + Math.ceil(left / 1000) + ' 秒后自动重试;也可点「重新检测」立即重载)' : ''),
167
+ };
168
+ }
120
169
  if (extractor)
121
170
  return { available: true, modelDir, dims, loadMs };
122
171
  if (!assets.ok) {
@@ -125,7 +174,9 @@ export function createLocalEmbedder(opts = {}) {
125
174
  return { available: true, modelDir, reason: '待加载(首次使用时加载)' };
126
175
  },
127
176
  available() {
128
- if (opts.enabled === false || failed)
177
+ if (opts.enabled === false)
178
+ return false;
179
+ if (failedAt && Date.now() - failedAt < RETRY_BACKOFF_MS)
129
180
  return false;
130
181
  return extractor !== undefined || checkModelAssets(modelDir).ok;
131
182
  },
@@ -1 +1 @@
1
- {"version":3,"file":"local-embed.js","sourceRoot":"","sources":["../../src/features/local-embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-embed.js","sourceRoot":"","sources":["../../src/features/local-embed.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qq-approval.d.ts","sourceRoot":"","sources":["../../src/features/qq-approval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qq-approval.d.ts","sourceRoot":"","sources":["../../src/features/qq-approval.ts"],"names":[],"mappings":"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"}
@@ -102,7 +102,12 @@ export class QqApprovalController {
102
102
  try {
103
103
  // ① 按钮卡片优先: 按钮仅发起者本人可点(permission.specify_user_ids = 发起者 openid)
104
104
  const kb = approvalKeyboard(code);
105
- const ownerIds = record.scope === 'group' ? [record.senderId] : [];
105
+ // ⚠️ 2026-09-28 修:原来只把【发起者本人】放进可点名单,导致"别人发起审批时主人点不动"。
106
+ // 现在 = 发起者 + 主人白名单(config.groupAdmin.owners)。私聊场景仍不设限制(本就只有双方)。
107
+ const ownerExtra = this.manager.adminOwners();
108
+ const ownerIds = record.scope === 'group'
109
+ ? Array.from(new Set([record.senderId, ...ownerExtra].filter((x) => typeof x === 'string' && x.length > 0)))
110
+ : [];
106
111
  const kbRows = kb;
107
112
  for (const row of kbRows.content.rows) {
108
113
  for (const b of row.buttons) {
@@ -230,7 +235,14 @@ export class QqApprovalController {
230
235
  text: `主人已在 QQ ${allowed ? '批准' : '拒绝'}一次工具权限申请${toolName ? `(工具: ${toolName})` : ''}。`,
231
236
  }],
232
237
  source: {
233
- kind: 'plugin', plugin: 'qqbot-approval', form: 'notice',
238
+ // ⚠️ 2026-09-28 修:原为 `kind: 'plugin'` —— dsh 会话格式 V4 明确拒绝该值
239
+ // (dsh-session-format-v3-to-v4/lib/index.js:126:
240
+ // `value["kind"] === "plugin"` → 抛 "format v4 message requires a producer-owned source kind"),
241
+ // 表现为"主人点批准/拒绝后本轮运行失败"。
242
+ // 官方对第三方插件的默认 producer kind 是 `plugin:<插件名>`(见同文件 producerKind())。
243
+ // 这里改为自有的 producer kind,并把已淘汰的 `plugin` 字段去掉。
244
+ kind: 'plugin:qqbot-approval',
245
+ form: 'notice',
234
246
  summary: `主人${allowed ? '批准' : '拒绝'}了工具${toolName || ''}的权限申请`,
235
247
  },
236
248
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"qq-approval.js","sourceRoot":"","sources":["../../src/features/qq-approval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qq-approval.js","sourceRoot":"","sources":["../../src/features/qq-approval.ts"],"names":[],"mappings":"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"}