@zaofan/dsh-qqbot 1.1.3 → 1.1.5

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 (105) hide show
  1. package/README.md +25 -4
  2. package/README_EN.md +13 -1
  3. package/client/qqbot-settings.js +7 -2
  4. package/dist/channel-tools.d.ts.map +1 -1
  5. package/dist/channel-tools.js +29 -3
  6. package/dist/channel-tools.js.map +1 -1
  7. package/dist/commands/botplay.js +2 -2
  8. package/dist/commands/botplay.js.map +1 -1
  9. package/dist/commands/model.d.ts.map +1 -1
  10. package/dist/commands/model.js +4 -1
  11. package/dist/commands/model.js.map +1 -1
  12. package/dist/commands/outmode.d.ts.map +1 -1
  13. package/dist/commands/outmode.js +4 -1
  14. package/dist/commands/outmode.js.map +1 -1
  15. package/dist/commands/session.d.ts +4 -2
  16. package/dist/commands/session.d.ts.map +1 -1
  17. package/dist/commands/session.js +27 -10
  18. package/dist/commands/session.js.map +1 -1
  19. package/dist/config.d.ts +2 -0
  20. package/dist/config.d.ts.map +1 -1
  21. package/dist/config.js +8 -6
  22. package/dist/config.js.map +1 -1
  23. package/dist/features/botplay.d.ts +7 -5
  24. package/dist/features/botplay.d.ts.map +1 -1
  25. package/dist/features/botplay.js +27 -12
  26. package/dist/features/botplay.js.map +1 -1
  27. package/dist/features/group-hub.d.ts +6 -0
  28. package/dist/features/group-hub.d.ts.map +1 -1
  29. package/dist/features/group-hub.js +48 -8
  30. package/dist/features/group-hub.js.map +1 -1
  31. package/dist/features/group-join-request.d.ts.map +1 -1
  32. package/dist/features/group-join-request.js +47 -2
  33. package/dist/features/group-join-request.js.map +1 -1
  34. package/dist/features/history-store.d.ts +2 -2
  35. package/dist/features/history-store.d.ts.map +1 -1
  36. package/dist/features/history-store.js +15 -3
  37. package/dist/features/history-store.js.map +1 -1
  38. package/dist/features/outbound-mode-switch.d.ts +4 -4
  39. package/dist/features/outbound-mode-switch.d.ts.map +1 -1
  40. package/dist/features/outbound-mode-switch.js +27 -9
  41. package/dist/features/outbound-mode-switch.js.map +1 -1
  42. package/dist/features/poll-join-requests.d.ts.map +1 -1
  43. package/dist/features/poll-join-requests.js +42 -27
  44. package/dist/features/poll-join-requests.js.map +1 -1
  45. package/dist/features/preset-switcher.d.ts +4 -4
  46. package/dist/features/preset-switcher.d.ts.map +1 -1
  47. package/dist/features/preset-switcher.js +17 -8
  48. package/dist/features/preset-switcher.js.map +1 -1
  49. package/dist/features/qq-approval.d.ts +9 -4
  50. package/dist/features/qq-approval.d.ts.map +1 -1
  51. package/dist/features/qq-approval.js +26 -14
  52. package/dist/features/qq-approval.js.map +1 -1
  53. package/dist/features/schedule-store.d.ts +4 -4
  54. package/dist/features/schedule-store.d.ts.map +1 -1
  55. package/dist/features/schedule-store.js +18 -4
  56. package/dist/features/schedule-store.js.map +1 -1
  57. package/dist/features/sticker-gate.d.ts +4 -4
  58. package/dist/features/sticker-gate.d.ts.map +1 -1
  59. package/dist/features/sticker-gate.js +20 -4
  60. package/dist/features/sticker-gate.js.map +1 -1
  61. package/dist/features/sticker-store.d.ts +5 -3
  62. package/dist/features/sticker-store.d.ts.map +1 -1
  63. package/dist/features/sticker-store.js +21 -3
  64. package/dist/features/sticker-store.js.map +1 -1
  65. package/dist/gateway/bootstrap.d.ts.map +1 -1
  66. package/dist/gateway/bootstrap.js +18 -14
  67. package/dist/gateway/bootstrap.js.map +1 -1
  68. package/dist/gateway/debounce.d.ts.map +1 -1
  69. package/dist/gateway/debounce.js +9 -24
  70. package/dist/gateway/debounce.js.map +1 -1
  71. package/dist/gateway/middleware-setup.js +2 -2
  72. package/dist/gateway/middleware-setup.js.map +1 -1
  73. package/dist/index.d.ts.map +1 -1
  74. package/dist/index.js +4 -2
  75. package/dist/index.js.map +1 -1
  76. package/dist/middleware/media-history.d.ts.map +1 -1
  77. package/dist/middleware/media-history.js +4 -1
  78. package/dist/middleware/media-history.js.map +1 -1
  79. package/dist/model/model-resolver.d.ts +24 -12
  80. package/dist/model/model-resolver.d.ts.map +1 -1
  81. package/dist/model/model-resolver.js +89 -20
  82. package/dist/model/model-resolver.js.map +1 -1
  83. package/dist/model/settings-reader.d.ts +6 -0
  84. package/dist/model/settings-reader.d.ts.map +1 -1
  85. package/dist/model/settings-reader.js +15 -2
  86. package/dist/model/settings-reader.js.map +1 -1
  87. package/dist/session/session-manager.d.ts +41 -8
  88. package/dist/session/session-manager.d.ts.map +1 -1
  89. package/dist/session/session-manager.js +210 -64
  90. package/dist/session/session-manager.js.map +1 -1
  91. package/dist/session/workspace-attach.d.ts +17 -18
  92. package/dist/session/workspace-attach.d.ts.map +1 -1
  93. package/dist/session/workspace-attach.js +162 -13
  94. package/dist/session/workspace-attach.js.map +1 -1
  95. package/dist/setup.d.ts +2 -2
  96. package/dist/setup.js +2 -2
  97. package/dist/shared/mention-clean.d.ts +18 -0
  98. package/dist/shared/mention-clean.d.ts.map +1 -0
  99. package/dist/shared/mention-clean.js +42 -0
  100. package/dist/shared/mention-clean.js.map +1 -0
  101. package/dist/transport/inbound.d.ts.map +1 -1
  102. package/dist/transport/inbound.js +3 -1
  103. package/dist/transport/inbound.js.map +1 -1
  104. package/package.json +1 -1
  105. package/settings-host.js +7 -1
@@ -16,6 +16,7 @@ import { createHash, randomUUID } from 'node:crypto';
16
16
  import { SessionId } from '@deepseek-ai/dsh-session';
17
17
  import { FIXED_CHANNEL_CONTEXT } from '../config.js';
18
18
  import { dataRootOf, stickerDirOf } from '../gateway/data-root.js';
19
+ import { SettingsReader } from '../model/settings-reader.js';
19
20
  import { ModelResolver } from '../model/model-resolver.js';
20
21
  import { IdleEvictor } from './idle-evictor.js';
21
22
  import { apply as mountChannelTools } from '../channel-tools.js';
@@ -23,7 +24,7 @@ import { createGroupAdmin } from '../api/group-admin.js';
23
24
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
24
25
  import { appendFileSync } from 'node:fs';
25
26
  import { join } from 'node:path';
26
- import { attachSessionToWorkspace } from './workspace-attach.js';
27
+ import { attachSessionToWorkspace, unarchiveSession } from './workspace-attach.js';
27
28
  /** 通道工具注册诊断: 默认关闭; 设环境变量 QQBOT_DIAG_FILE 启用 */
28
29
  const SM_DIAG_FILE = process.env.QQBOT_DIAG_FILE || '';
29
30
  function diagSm(line) {
@@ -48,6 +49,8 @@ export class SessionManager {
48
49
  channelSender;
49
50
  /** 最近一次 setup 收到的 agent ctx(工具自愈用;getOrCreate 完成后读走并清空) */
50
51
  lastSetupCtx;
52
+ /** 群守则热更新: 每次 system prompt 渲染现读 settings.yaml(SettingsReader fresh 模式) */
53
+ liveSettingsReader;
51
54
  /** 注入 QQ 通道发送能力(供通道工具);bootstrap 调用 */
52
55
  installChannelSender(sender) {
53
56
  this.channelSender = sender;
@@ -102,6 +105,9 @@ export class SessionManager {
102
105
  record.agent.cancel({ kind: 'user' });
103
106
  void record.handle.dispose().catch(() => { });
104
107
  });
108
+ // 2026-09-11 主人定: 被归档的 QQ 会话在**被消息触发时**自动拉回可见(见 workspace-attach.ts)。
109
+ // 这里不装任何守卫/拦截/定时器 —— 纯触发式, 落点在 getOrCreate 的两条路径上:
110
+ // ① 命中已有活跃记录 → unarchiveSession(); ② 新建/恢复 → attachSessionToWorkspace()。
105
111
  }
106
112
  /**
107
113
  * 动态获取 sessions 服务(fork 能力,可选)
@@ -116,21 +122,42 @@ export class SessionManager {
116
122
  }
117
123
  // ── 模型相关(委托给 ModelResolver) ──
118
124
  getEffectiveModel(scope, peerId) {
119
- return this.modelResolver.getEffectiveRoute(this.sessionKey(scope, peerId));
125
+ const key = this.sessionKey(scope, peerId);
126
+ const rec = this.sessions.get(key);
127
+ // 2026-09-11: 优先读宿主 agent 实际生效模型 —— web 会话级模型设置会改宿主
128
+ // agent.options.provider/model(推理真用那个); 探测失败(fail-soft)回落配置链。
129
+ if (rec?.agent) {
130
+ try {
131
+ const o = rec.agent.options;
132
+ if (o?.provider && o?.model)
133
+ return { provider: o.provider, model: o.model };
134
+ }
135
+ catch { /* fail-soft */ }
136
+ }
137
+ // 2026-09-11: 模型偏好绑定会话 —— 取当前会话的 sessionId 查 override
138
+ const sid = rec?.sessionId ?? this.currentSessionId(key);
139
+ return this.modelResolver.getEffectiveRoute(key, sid);
120
140
  }
121
141
  /**
122
142
  * 切换模型(fork + 重建,对齐 dsh-TUI 的 switchModel)
143
+ * ⚠️ 2026-09-11 主人定: 模型偏好改为绑定会话(sessionId)——override 存到 fork 后的
144
+ * 新会话 id, 使新会话/新档不再继承 peer 级旧偏好(修复"新建会话默认火山")。
123
145
  */
124
146
  async setModelOverride(scope, peerId, route) {
125
147
  const key = this.sessionKey(scope, peerId);
126
- this.modelResolver.setOverride(key, route);
127
148
  const record = this.sessions.get(key);
128
149
  if (!record) {
129
- this.logger.info(`model pref saved (no active session): key=${key} → ${route.provider}/${route.model}`);
150
+ // 无活跃会话:挂到当前/派生 sessionId(下次 create/resume 会命中)
151
+ const sid = this.currentSessionId(key);
152
+ this.modelResolver.setOverride(key, sid, route);
153
+ this.logger.info(`model pref saved (no active session): key=${key} sid=${sid} → ${route.provider}/${route.model}`);
130
154
  return;
131
155
  }
132
156
  // fork 旧会话历史作为 seed → 子会话保留上下文继续聊(换模型不丢记忆)
133
157
  await this.forkCurrentSession(key, record, route, true);
158
+ // fork 后 record.sessionId = childId;override 挂到新会话(会话级绑定)
159
+ this.modelResolver.setOverride(key, record.sessionId, route);
160
+ this.logger.info(`model pref saved (forked): key=${key} sid=${record.sessionId} → ${route.provider}/${route.model}`);
134
161
  }
135
162
  /**
136
163
  * 开新会话(2026-09-08 修 /bot-new 假实现; 同日加 preset 切换):
@@ -139,12 +166,34 @@ export class SessionManager {
139
166
  * false = 全新空档(不继承旧上下文, 旧会话存档可回看)。
140
167
  * presetId 给定时: 记录该会话的 preset 覆盖并用于新档(如 /new code 切人格);
141
168
  * 不传则沿用当前生效 preset(config 或之前会话覆盖)。
169
+ * 无活跃记录(会话损坏/重启后没聊过)时不再失败: 轮换 sessionId 直接另起新档。
170
+ * @returns 'forked'=从当前会话 fork 出新档 | 'rotated'=无活跃记录另起全新档 | 'failed'=创建失败
142
171
  */
143
- async startNewSession(scope, peerId, inherit = false, presetId) {
172
+ async startNewSession(scope, peerId, inherit = false, presetId, fallback) {
144
173
  const key = this.sessionKey(scope, peerId);
145
174
  const record = this.sessions.get(key);
146
- if (!record)
147
- return false;
175
+ // 2026-09-11 主人反馈「炸了的会话在 QQ 上没法弃号重开」:
176
+ // 会话在磁盘上损坏(历史加载失败)时内存里没有活跃记录, 原实现在此直接 return false →
177
+ // QQ 侧 /bot-new 只会回「当前没有活跃会话, 无需开新」, 主人无路可走。
178
+ // 现改为: 轮换 sessionId 直接另起新档(坏档文件原样保留在磁盘, 不删也不修)。
179
+ if (!record) {
180
+ if (presetId) {
181
+ try {
182
+ this.modelResolver.setSessionPreset(key, presetId);
183
+ }
184
+ catch { /* ignore */ }
185
+ }
186
+ const replyTarget = fallback?.replyTarget ?? { scope, targetId: peerId };
187
+ try {
188
+ await this.getOrCreate(scope, peerId, fallback?.senderId ?? '', replyTarget, { forceNew: true });
189
+ this.logger.info(`startNewSession: 无活跃记录 → 已另起新档 key=${key}${presetId ? ` preset=${presetId}` : ''}`);
190
+ return 'rotated';
191
+ }
192
+ catch (err) {
193
+ this.logger.warn(`startNewSession(rotated) failed: key=${key} err=${err instanceof Error ? err.message : String(err)}`);
194
+ return 'failed';
195
+ }
196
+ }
148
197
  // preset 覆盖: 显式给出则落盘(重启后恢复同 preset)
149
198
  if (presetId) {
150
199
  try {
@@ -152,9 +201,9 @@ export class SessionManager {
152
201
  }
153
202
  catch { /* ignore */ }
154
203
  }
155
- const route = this.modelResolver.getEffectiveRoute(key);
204
+ const route = this.modelResolver.getEffectiveRoute(key, record.sessionId);
156
205
  await this.forkCurrentSession(key, record, route, inherit);
157
- return true;
206
+ return 'forked';
158
207
  }
159
208
  /** 当前会话生效 preset: 会话覆盖(/new 指定) > config.preset */
160
209
  effectivePreset(key) {
@@ -329,10 +378,12 @@ export class SessionManager {
329
378
  }
330
379
  clearModelOverride(scope, peerId) {
331
380
  const key = this.sessionKey(scope, peerId);
332
- this.modelResolver.clearOverride(key);
381
+ const rec = this.sessions.get(key);
382
+ const sid = rec?.sessionId ?? this.currentSessionId(key);
383
+ this.modelResolver.clearOverride(key, sid);
333
384
  this.modelResolver.clearSessionId(key);
334
385
  }
335
- listAvailableModels() {
386
+ async listAvailableModels() {
336
387
  return this.modelResolver.listModels();
337
388
  }
338
389
  listProviders() {
@@ -488,7 +539,7 @@ export class SessionManager {
488
539
  }
489
540
  }
490
541
  /** 获取或恢复或创建会话(get → resume → create) */
491
- async getOrCreate(scope, peerId, senderId, replyTarget) {
542
+ async getOrCreate(scope, peerId, senderId, replyTarget, opts) {
492
543
  const key = this.sessionKey(scope, peerId);
493
544
  const wantCwd = this.config.cwd || process.cwd();
494
545
  const prevCfg = this.modelResolver.getSessionCfg(key);
@@ -504,7 +555,7 @@ export class SessionManager {
504
555
  this.logger.info(`getOrCreate: cwd 已变更, fork 热迁移(继承历史): key=${key} old=${prevCfg.cwd ?? '(未记录)'} new=${wantCwd}`);
505
556
  // forkCurrentSession 内部用 this.config.cwd(新值)建子会话并继承历史 seed;
506
557
  // fork 后 active 记录的 sessionId/agent 已被替换为新档, 直接补 target 返回即可。
507
- await this.forkCurrentSession(key, active, this.modelResolver.getEffectiveRoute(key), true);
558
+ await this.forkCurrentSession(key, active, this.modelResolver.getEffectiveRoute(key, active.sessionId), true);
508
559
  active.replyTarget = replyTarget;
509
560
  active.lastActivity = Date.now();
510
561
  return active;
@@ -522,10 +573,30 @@ export class SessionManager {
522
573
  this.modelResolver.setSessionCfg(key, { cwd: wantCwd });
523
574
  }
524
575
  catch { /* ignore */ }
576
+ // 2026-09-11 主人定「触发会话时反归档」: 这条消息把该会话激活了 → 顺带把它从归档里拉回可见。
577
+ // (主人主动归档的会话保持归档, 只有真的被消息用到才回来; 幂等 + fail-soft, 不阻塞主链)
578
+ void unarchiveSession(this.ctx, existing.sessionId, this.logger);
525
579
  return existing;
526
580
  }
527
- const route = this.modelResolver.getEffectiveRoute(key);
581
+ // 2026-09-11 主人反馈「炸了的会话在 QQ 上没法弃号重开」: 磁盘会话损坏(历史加载失败)时
582
+ // resume 必失败, 且 sessionId 是 sessionKey 确定性派生的(重试还是同一个坏档)。
583
+ // forceNew → 先把本 peer 的 sessionId 轮换成全新随机 id(断开坏档, 旧档文件原样保留),
584
+ // 后面走标准创建链: resume 命中不到 → 落到 create, 得到干净新档; 下次入站也 resume 新档。
585
+ if (opts?.forceNew) {
586
+ const rotated = SessionId(randomUUID());
587
+ try {
588
+ this.modelResolver.setSessionId(key, rotated);
589
+ }
590
+ catch { /* ignore */ }
591
+ try {
592
+ this.modelResolver.setSessionCfg(key, { cwd: wantCwd });
593
+ }
594
+ catch { /* ignore */ }
595
+ this.logger.info(`getOrCreate(forceNew): 弃档重开 key=${key} new=${rotated}`);
596
+ }
597
+ // 2026-09-11: 先定 sessionId, 再按「会话级」查模型路由 —— 新会话(sessionId 无 override)回落全局默认
528
598
  const sessionId = SessionId(this.currentSessionId(key));
599
+ const route = this.modelResolver.getEffectiveRoute(key, sessionId);
529
600
  this.logger.info(`getOrCreate: key=${key} route=${route ? `${route.provider}/${route.model}` : 'host-default'} sessionId=${sessionId}`);
530
601
  let agent;
531
602
  let handle;
@@ -534,13 +605,20 @@ export class SessionManager {
534
605
  if (live) {
535
606
  agent = live;
536
607
  this.logger.info(`reusing live agent: key=${key}`);
608
+ // 2026-09-11 主人反馈修正: 「web 上改了模型, 重启后不应回退」。
609
+ // live agent 通常带宿主/ web 设置的模型(会话持久化恢复) → **无 QQ override 时尊重它**,
610
+ // 避免 QQ 默认路由(官方)把 web 设置覆盖回退。
611
+ // 仅当 QQ 侧 /bot-model 明确设过 override 时, 才用 QQ 设置覆盖(QQ 优先, 双向持久)。
612
+ if (this.modelResolver.hasOverride(key, sessionId)) {
613
+ this.applyModelRoute(agent, route, 'live-override');
614
+ }
537
615
  }
538
616
  else {
539
617
  // preset 只解析一次:resume/create 共用同一组合(会话覆盖 > config), 避免重复 resolve/mount 目录
540
618
  const composed = await this.composePreset(this.effectivePreset(key));
541
619
  agentPreset = composed.agentPreset;
542
620
  try {
543
- const resumeRoute = this.modelResolver.getResumeRoute(key);
621
+ const resumeRoute = this.modelResolver.getResumeRoute(key, sessionId);
544
622
  const resumed = await this.agents.resume({
545
623
  resumeSessionId: sessionId,
546
624
  ...(resumeRoute ? { agentOptions: resumeRoute } : {}),
@@ -597,6 +675,26 @@ export class SessionManager {
597
675
  void attachSessionToWorkspace(this.ctx, this.config.cwd, sessionId, this.logger);
598
676
  return record;
599
677
  }
678
+ /**
679
+ * 2026-09-11: 把 QQ 侧 override 路由应用到 agent.options。
680
+ * 仅当 QQ 侧 /bot-model 明确设过 override 时调用(QQ 设置优先, 持久生效);
681
+ * 无 override 时**不覆盖** —— 尊重宿主/ web 设置的模型(重启后不回退)。
682
+ */
683
+ applyModelRoute(agent, route, label) {
684
+ if (!route)
685
+ return;
686
+ const liveOpts = agent.options;
687
+ if (!liveOpts)
688
+ return;
689
+ if (liveOpts.provider !== route.provider || liveOpts.model !== route.model) {
690
+ agent.options = {
691
+ ...liveOpts,
692
+ provider: route.provider,
693
+ model: route.model,
694
+ };
695
+ this.logger.info(`getOrCreate: ${label} 模型覆盖 ${liveOpts.provider}/${liveOpts.model} -> ${route.provider}/${route.model}`);
696
+ }
697
+ }
600
698
  /**
601
699
  * 通道工具自愈 + 固化(2026-09-05 升级): 每次消息都全量幂等注册 channel-tools(静态 import,
602
700
  * 进程加载的就是最新 dist) → 重启后"恢复"会话的第一条消息也会自动把 reply_gate 等正式工具
@@ -688,62 +786,110 @@ export class SessionManager {
688
786
  }
689
787
  return `✅ 工具热刷新完成: ${ok} 个会话成功${fail > 0 ? `, ${fail} 个失败(见日志)` : ''}。新工具下一条消息即可用。`;
690
788
  }
789
+ /** cwd 分流(通用, 不写死实例名): 只对本实例配置的 cwd 匹配的 agent 注入本实例群守则。
790
+ * 每个实例在 patch 里配自己的 cwd + settingsNs, 即自动分流;
791
+ * 其他实例/项目(web、别的 cwd)的 agent 一律不注入, 避免群守则污染非本 bot 会话。 */
792
+ nsForCwd(cwd) {
793
+ const selfCwd = String(this.config.cwd ?? '').trim().replace(/[\\/]+$/, '');
794
+ const ns = String(this.config.settingsNs ?? '').trim() || 'im-qqbot';
795
+ if (!selfCwd)
796
+ return ns; // 未配 cwd → 对本实例所有 agent 注入(保守)
797
+ const norm = String(cwd ?? '').replace(/[\\/]+$/, '');
798
+ if (norm === selfCwd || norm.startsWith(selfCwd + '\\') || norm.startsWith(selfCwd + '/'))
799
+ return ns;
800
+ return '';
801
+ }
802
+ /** 群守则热更新: 现读 settings.yaml 对应 ns 的 groupPrompt; 读失败仅回退本实例 ns 的内存 config。 */
803
+ readLiveGroupPromptForNs(ns) {
804
+ try {
805
+ const reader = (this.liveSettingsReader ??= new SettingsReader());
806
+ const gp = reader.readGroupPrompt(ns, true);
807
+ if (gp)
808
+ return gp;
809
+ }
810
+ catch { /* 读失败回退内存 */ }
811
+ const selfNs = String(this.config.settingsNs ?? '').trim() || 'im-qqbot';
812
+ return ns === selfNs ? (this.config.groupPrompt?.trim() || '') : '';
813
+ }
691
814
  /**
692
- * 守则/身份 context 注册自愈(幂等): 每次消息处理路径都会调用。
693
- * 用 record.agent.ctx(恒有, 不依赖 setup; 重启恢复会话也覆盖)。
694
- * 注册方式照审批 approval:policy: ctx.inject(['systemPrompt']) → systemPrompt.context;
695
- * text 每次渲染现读 live config(空串不贡献、热更新)。
815
+ * 群守则/固定规则 pre-step 直注(幂等): 每次消息入站调用, 全局只装一次注入器。
816
+ *
817
+ * 2026-09-11 考古定稿(参考 deepseek-harness/packages/context/agent-instructions):
818
+ * - dsh 0.1.5 的 persona 是 complete section → assemble 只保留 persona,
819
+ * 运行时注册的 section 全被丢弃(system/message 只有人设, 实证);
820
+ * - context() 快照链路(assemble → RuntimeContextProjection.project)实际不记录;
821
+ * - 官方 agent-instructions 用 ctx.on('agent/pre-step') 把带来源 user/message
822
+ * 折入 decision.messages(紧随 claimed batch 之后) → 直接进模型请求, 绕开 assemble。
823
+ *
824
+ * 本实现:
825
+ * - 宿主根 ctx 监听 agent/pre-step; cwd 分流(只对本实例 config.cwd 匹配的 agent 注入本实例群守则);
826
+ * - 每回合现读 settings.yaml(热更新); 固定通道规则 + 群守则 拼成一条 <system-reminder> user/message;
827
+ * - 去重靠 KV cache: 本次 messages 或会话 surface 已有同 ns+同内容 → 不重复注入;
828
+ * 热更新内容变化 → 注入新版(历史保留旧版, 后续回合靠新版 KV cache)。
696
829
  */
697
- async ensureGroupRules(record) {
698
- const agentId = record.agent?.id;
699
- const mounted = this.__rulesMounted;
700
- if (!agentId || (mounted && mounted.has(agentId)))
830
+ async ensureGroupRules(_record) {
831
+ const hostCtx = (this.ctx.root ?? this.ctx);
832
+ if (!hostCtx?.on || this.__rulesMounted)
701
833
  return;
702
- if (!mounted)
703
- this.__rulesMounted = new Set();
704
- const agentCtx = record.agent.ctx ?? record.agentCtx;
705
- if (!agentCtx) {
706
- console.log('[qqbot-rules] skip (no ctx)');
707
- return;
708
- }
709
- try {
710
- const anyCtx = agentCtx;
711
- console.log(`[qqbot-rules] ensure agent=${agentId} inject=${typeof anyCtx.inject} sp=${typeof anyCtx.systemPrompt} eff=${typeof anyCtx.effect}`);
712
- const doReg = (sp) => {
713
- if (sp && typeof sp.context === 'function') {
714
- // 通道固定上下文(与群守则无关, 无条件注入; 覆盖 @方法/富媒体等基础规则)
715
- sp.context({
716
- name: 'qqbot:fixed-channel-rules',
717
- order: 115,
718
- text: () => FIXED_CHANNEL_CONTEXT,
719
- });
720
- sp.context({
721
- name: 'qqbot:group-rules',
722
- order: 116,
723
- text: () => this.config.groupPrompt?.trim() || '',
724
- });
725
- this.__rulesMounted = (this.__rulesMounted || new Set()).add(agentId);
726
- console.log(`[qqbot-rules] contexts registered agent=${agentId} (fixed + group)`);
834
+ this.__rulesMounted = true;
835
+ hostCtx.on('agent/pre-step', async (payload, next) => {
836
+ const decision = await next();
837
+ try {
838
+ const p = payload;
839
+ const agent = p?.agent;
840
+ const cwd = String(agent?.session?.header?.cwd ?? '');
841
+ const ns = this.nsForCwd(cwd);
842
+ if (!ns)
843
+ return decision; // 非本 bot agent, 不注入
844
+ const dec = decision;
845
+ if (dec?.kind !== 'enter' || !Array.isArray(dec.messages))
846
+ return decision;
847
+ const rules = this.readLiveGroupPromptForNs(ns);
848
+ const body = [FIXED_CHANNEL_CONTEXT.trim(), rules.trim()].filter(Boolean).join('\n\n');
849
+ if (!body)
850
+ return decision;
851
+ const text = `<system-reminder>\n${body}\n</system-reminder>`;
852
+ const desired = {
853
+ role: 'user',
854
+ id: randomUUID(),
855
+ content: [{ type: 'text', text }],
856
+ source: { kind: 'qqbot:group-rules', form: 'instructions', ns },
857
+ };
858
+ // 去重(靠 KV cache): 本次 messages 已含同 ns+同内容 → 不重复
859
+ const inBatch = dec.messages.some((m) => {
860
+ const mm = m;
861
+ return mm?.source?.kind === 'qqbot:group-rules' && mm.source.ns === ns && mm.content?.[0]?.text === text;
862
+ });
863
+ if (!inBatch && agent?.session?.surface?.nodes && agent.session.eventAt) {
864
+ // 会话 surface 历史已有同 ns+同内容 → 靠 KV cache, 不重复注入
865
+ for (const seq of agent.session.surface.nodes) {
866
+ const ev = agent.session.eventAt(seq);
867
+ if (ev?.type === 'user/message'
868
+ && ev.data?.source?.kind === 'qqbot:group-rules'
869
+ && ev.data.source.ns === ns
870
+ && ev.data.content?.[0]?.text === text) {
871
+ return decision;
872
+ }
873
+ }
727
874
  }
728
- else {
729
- console.log(`[qqbot-rules] context unavailable sp=${typeof sp}`);
875
+ if (inBatch)
876
+ return decision;
877
+ const claimed = Array.isArray(p.messages) ? p.messages : [];
878
+ let lastClaimedIndex = -1;
879
+ for (let i = dec.messages.length - 1; i >= 0; i--) {
880
+ if (claimed.includes(dec.messages[i])) {
881
+ lastClaimedIndex = i;
882
+ break;
883
+ }
730
884
  }
731
- };
732
- if (typeof anyCtx.inject === 'function') {
733
- anyCtx.inject(['systemPrompt'], (scope) => {
734
- doReg(scope?.systemPrompt);
735
- });
736
- }
737
- else if (typeof anyCtx.effect === 'function') {
738
- anyCtx.effect(() => doReg(anyCtx.systemPrompt), 'qqbot-rules.register');
885
+ const at = Math.max(0, lastClaimedIndex + 1);
886
+ const entered = [...dec.messages.slice(0, at), desired, ...dec.messages.slice(at)];
887
+ return { ...dec, messages: entered };
739
888
  }
740
- else {
741
- doReg(anyCtx.systemPrompt);
889
+ catch {
890
+ return decision;
742
891
  }
743
- }
744
- catch (e) {
745
- console.log(`[qqbot-rules] error: ${e instanceof Error ? e.message : String(e)}`);
746
- }
892
+ });
747
893
  }
748
894
  findBySessionId(sessionId) {
749
895
  for (const record of this.sessions.values()) {
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,21 @@
1
- /**
2
- * workspace-attach.ts — 把 QQ 会话挂到其 cwd 对应的工作区分组(修复侧边栏归属)
3
- *
4
- * 移植自上游 PR tencent-connect/dsh-qqbot#21(workspace-attach)。
5
- * 问题: Web 侧边栏按工作区成员列表展示会话, 宿主只在客户端 session.create
6
- * RPC 路径调用 workspace.attachSession(dsh-host-apiproxy), dsh-workspace 的
7
- * "认领遗漏会话"(bootstrap) 仅在首次初始化执行——插件创建的 QQ 会话两条路径
8
- * 都不经过 → 不在任何工作区成员列表, 刷新后只能落 Ungrouped(且闲置回收后
9
- * 从侧边栏消失的另一主因是宿主帧语义, 见 deepseek-harness#4045, 本文件不处理)。
10
- *
11
- * 做法: 在 SessionManager.getOrCreate 创建/恢复会话后调用, 把会话挂到其 cwd
12
- * 对应的 workspace(registry.create(cwd) 幂等取回 → workspace.attachSession 幂等)。
13
- * - 幂等: 创建与恢复路径都安全调用; 老会话在下一次消息恢复时自动补挂。
14
- * - 全 fail-soft: workspaceRegistry 未挂载(如 headless)或任何一步失败 →
15
- * 静默降级(仅日志), 绝不影响消息处理主链。
16
- *
17
- * ⚠️ 本地手改功能(fork 新增, 移植上游): 维护清单见工作区根《插件改动维护注意事项.md》。
18
- */
19
1
  import type { Context } from '@deepseek-ai/cordis';
20
2
  import type { Logger } from '../types.js';
3
+ /**
4
+ * 把一个会话从「归档」里拉回可见(幂等; 不在归档集合里就是 no-op)。
5
+ * 走宿主同一条持久化链 → 侧边栏热刷新, 不需要重启宿主。
6
+ * @returns true = 本次真的摘掉了(之前处于归档)
7
+ */
8
+ export declare function unarchiveSession(ctx: Context, sessionId: string, logger: Logger): Promise<boolean>;
9
+ /** 供诊断: 反归档统计(有多少次真的把会话从归档里拉回可见) */
10
+ export declare function workspaceAttachState(): {
11
+ unarchived: number;
12
+ lastUnarchivedId: string;
13
+ lastUnarchivedAt: number;
14
+ lastError: string;
15
+ };
16
+ /**
17
+ * 会话可用性总入口: 挂到工作区 + 保证不在归档里(两者都幂等 + fail-soft)。
18
+ * SessionManager.getOrCreate **创建/恢复**会话后调用, fire-and-forget 不阻塞主链。
19
+ */
21
20
  export declare function attachSessionToWorkspace(ctx: Context, cwd: string | undefined, sessionId: string, logger: Logger): Promise<void>;
22
21
  //# sourceMappingURL=workspace-attach.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-attach.d.ts","sourceRoot":"","sources":["../../src/session/workspace-attach.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAiBf"}
1
+ {"version":3,"file":"workspace-attach.d.ts","sourceRoot":"","sources":["../../src/session/workspace-attach.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AA0E1C;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA0BxG;AAED,oCAAoC;AACpC,wBAAgB,oBAAoB,IAAI;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAEA;AAMD;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAmBf"}