@lemoncat7/dsh-partner 2.21.5 → 2.21.11

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 (124) hide show
  1. package/docs/THIRD_PARTY_LICENSES.md +1 -1
  2. package/docs/releases/2.21.10.md +5 -0
  3. package/docs/releases/2.21.11.md +7 -0
  4. package/docs/releases/2.21.6.md +6 -0
  5. package/docs/releases/2.21.7.md +11 -0
  6. package/docs/releases/2.21.8.md +9 -0
  7. package/docs/releases/2.21.9.md +6 -0
  8. package/lib/agent-runtime.d.ts +8 -1
  9. package/lib/agent-runtime.d.ts.map +1 -1
  10. package/lib/agent-runtime.js +62 -21
  11. package/lib/agent-runtime.js.map +1 -1
  12. package/lib/api.d.ts.map +1 -1
  13. package/lib/api.js +2 -1
  14. package/lib/api.js.map +1 -1
  15. package/lib/channels/direct/message-format.js +127 -127
  16. package/lib/channels/direct/message-format.js.map +1 -1
  17. package/lib/channels/qq/actions.js +1 -1
  18. package/lib/channels/qq/actions.js.map +1 -1
  19. package/lib/channels/qq/authority.d.ts +2 -1
  20. package/lib/channels/qq/authority.d.ts.map +1 -1
  21. package/lib/channels/qq/authority.js +4 -4
  22. package/lib/channels/qq/authority.js.map +1 -1
  23. package/lib/channels/qq/identity-binding.d.ts +1 -1
  24. package/lib/channels/qq/identity-binding.d.ts.map +1 -1
  25. package/lib/channels/qq/identity-binding.js +5 -3
  26. package/lib/channels/qq/identity-binding.js.map +1 -1
  27. package/lib/channels/qq/reply-tool.d.ts.map +1 -1
  28. package/lib/channels/qq/reply-tool.js +15 -4
  29. package/lib/channels/qq/reply-tool.js.map +1 -1
  30. package/lib/channels/qq/transport.js +1 -1
  31. package/lib/channels/qq/transport.js.map +1 -1
  32. package/lib/character/conversation-behavior.d.ts +3 -3
  33. package/lib/character/conversation-behavior.d.ts.map +1 -1
  34. package/lib/character/conversation-behavior.js +23 -22
  35. package/lib/character/conversation-behavior.js.map +1 -1
  36. package/lib/character/fatigue.d.ts +15 -0
  37. package/lib/character/fatigue.d.ts.map +1 -0
  38. package/lib/character/fatigue.js +37 -0
  39. package/lib/character/fatigue.js.map +1 -0
  40. package/lib/character/identity-guide.d.ts +38 -1
  41. package/lib/character/identity-guide.d.ts.map +1 -1
  42. package/lib/character/identity-guide.js +7 -1
  43. package/lib/character/identity-guide.js.map +1 -1
  44. package/lib/character/idle-contact.d.ts +1 -1
  45. package/lib/character/idle-contact.d.ts.map +1 -1
  46. package/lib/character/idle-contact.js +13 -2
  47. package/lib/character/idle-contact.js.map +1 -1
  48. package/lib/character/persona-templates.d.ts +23 -0
  49. package/lib/character/persona-templates.d.ts.map +1 -0
  50. package/lib/character/persona-templates.js +33 -0
  51. package/lib/character/persona-templates.js.map +1 -0
  52. package/lib/character/role-reference-data.d.ts.map +1 -0
  53. package/lib/character/role-reference-data.js.map +1 -0
  54. package/lib/character/sleep-service.d.ts +10 -1
  55. package/lib/character/sleep-service.d.ts.map +1 -1
  56. package/lib/character/sleep-service.js +156 -75
  57. package/lib/character/sleep-service.js.map +1 -1
  58. package/lib/character/sleep.d.ts +25 -3
  59. package/lib/character/sleep.d.ts.map +1 -1
  60. package/lib/character/sleep.js +15 -6
  61. package/lib/character/sleep.js.map +1 -1
  62. package/lib/client.d.ts.map +1 -1
  63. package/lib/client.js +3436 -3298
  64. package/lib/client.js.map +4 -4
  65. package/lib/collaboration/tool-discovery.d.ts +1 -1
  66. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  67. package/lib/collaboration/tool-discovery.js +4 -3
  68. package/lib/collaboration/tool-discovery.js.map +1 -1
  69. package/lib/companions/identity-tool.d.ts +1 -1
  70. package/lib/companions/identity-tool.d.ts.map +1 -1
  71. package/lib/companions/identity-tool.js +9 -7
  72. package/lib/companions/identity-tool.js.map +1 -1
  73. package/lib/companions/management-tool.d.ts +1 -1
  74. package/lib/companions/management-tool.d.ts.map +1 -1
  75. package/lib/companions/management-tool.js +3 -2
  76. package/lib/companions/management-tool.js.map +1 -1
  77. package/lib/companions/management.d.ts +28 -1
  78. package/lib/companions/management.d.ts.map +1 -1
  79. package/lib/companions/management.js +3 -2
  80. package/lib/companions/management.js.map +1 -1
  81. package/lib/execution/tool-access-adapter.d.ts +3 -0
  82. package/lib/execution/tool-access-adapter.d.ts.map +1 -1
  83. package/lib/execution/tool-access-adapter.js.map +1 -1
  84. package/lib/index.js +2 -3
  85. package/lib/index.js.map +1 -1
  86. package/lib/ui/channels-panel.d.ts.map +1 -1
  87. package/lib/ui/channels-panel.js +2 -1
  88. package/lib/ui/channels-panel.js.map +1 -1
  89. package/lib/ui/character-editor.d.ts +1 -1
  90. package/lib/ui/character-editor.d.ts.map +1 -1
  91. package/lib/ui/character-editor.js +2 -3
  92. package/lib/ui/character-editor.js.map +1 -1
  93. package/lib/ui/companion-deletion.js +1 -1
  94. package/lib/ui/companion-deletion.js.map +1 -1
  95. package/lib/ui/companion-vitals.d.ts +6 -0
  96. package/lib/ui/companion-vitals.d.ts.map +1 -0
  97. package/lib/ui/companion-vitals.js +44 -0
  98. package/lib/ui/companion-vitals.js.map +1 -0
  99. package/lib/ui/identity-editor.d.ts.map +1 -1
  100. package/lib/ui/identity-editor.js +2 -1
  101. package/lib/ui/identity-editor.js.map +1 -1
  102. package/lib/ui/persona-template.d.ts +5 -0
  103. package/lib/ui/persona-template.d.ts.map +1 -0
  104. package/lib/ui/persona-template.js +7 -0
  105. package/lib/ui/persona-template.js.map +1 -0
  106. package/lib/ui/push-draft.d.ts +4 -4
  107. package/lib/ui/qq-channel-settings.d.ts.map +1 -1
  108. package/lib/ui/qq-channel-settings.js +2 -1
  109. package/lib/ui/qq-channel-settings.js.map +1 -1
  110. package/lib/ui/qq-connection-guide.d.ts +2 -0
  111. package/lib/ui/qq-connection-guide.d.ts.map +1 -0
  112. package/lib/ui/qq-connection-guide.js +5 -0
  113. package/lib/ui/qq-connection-guide.js.map +1 -0
  114. package/lib/ui/role-reference.d.ts.map +1 -1
  115. package/lib/ui/role-reference.js +3 -2
  116. package/lib/ui/role-reference.js.map +1 -1
  117. package/lib/ui/sleep-editor.d.ts.map +1 -1
  118. package/lib/ui/sleep-editor.js +15 -5
  119. package/lib/ui/sleep-editor.js.map +1 -1
  120. package/package.json +8 -2
  121. package/lib/ui/role-reference-data.d.ts.map +0 -1
  122. package/lib/ui/role-reference-data.js.map +0 -1
  123. /package/lib/{ui → character}/role-reference-data.d.ts +0 -0
  124. /package/lib/{ui → character}/role-reference-data.js +0 -0
@@ -329,7 +329,7 @@ SOFTWARE.
329
329
 
330
330
  ## qq-bridge 聊天预设设计
331
331
 
332
- 角色 / 聊天行为分层和部分表达约束参考 Derpyu520/qq-bridge,提交 `a49877f4e58d04e47532d44b803360d0f001160d`。`src/ui/role-reference-data.ts` 收录该版本 `roles/小鲸鱼.md` 原文,供只读参考,不注入伙伴提示词。未引入其 QQ / SnowLuma 代码或依赖,也未复制第三方 QQ 收藏图片。
332
+ 角色 / 聊天行为分层和部分表达约束参考 Derpyu520/qq-bridge,提交 `a49877f4e58d04e47532d44b803360d0f001160d`。`src/character/role-reference-data.ts` 收录该版本 `roles/小鲸鱼.md` 原文。页面只读预览与人格创作工具按需读取同一份参考;不作为当前人格自动注入日常聊天。未引入其 QQ / SnowLuma 代码或依赖,也未复制第三方 QQ 收藏图片。
333
333
 
334
334
  MIT License
335
335
 
@@ -0,0 +1,5 @@
1
+ # 2.21.10
2
+
3
+ - 好感度读数统一在总览展示,移除角色聊天下重复的好感度面板与轮询,已有累计数据和设置不变。
4
+ - QQ 添加渠道、设置首页和连接页共用接入说明:先部署 SnowLuma 并登录 QQ,再填写正向 WebSocket / WS Access Token;提供部署文档与 AI 协助部署配置提示。
5
+ - 包含 2.21.9 的自然句式人格模板识别修复。
@@ -0,0 +1,7 @@
1
+ # 2.21.11
2
+
3
+ - QQ 接入说明移除部署环境专属的 appnet 地址示例。
4
+ - 支持 SnowLuma 语音生成返回的 multimedia.nt.qq.com.cn 精确域名;保留其他地址校验。区分发送前合成失败与发送结果未知,避免把私聊错误描述为不支持语音。
5
+ - QQ 工具入口明确当前私聊、群聊均可使用文字转语音。
6
+ - 每轮人格提醒跳过纯 Markdown 标题,携带实际角色内容。
7
+ - 闲时活动附带最近三次已确认的结束记录,引导重新考虑当前兴趣与可用能力,避免把上轮等待或失败机械沿用为本轮结论;仍可安静休息,不强制发消息或对外操作。
@@ -0,0 +1,6 @@
1
+ # 2.21.6
2
+
3
+ - 修复连续自主活动首轮误提示“QQ 账号未归属”:准备上下文时纳入宿主本轮接收、尚未提交到历史的消息,身份关系、好感度和权限提示使用同一份消息来源。消息拒绝、取消、替换以及同轮追加输入都会重新核验,不更改原始历史。
4
+ - 实际工具执行仍只依据已提交的消息和实时配置校验权限,不因上下文准备提前获得权限。自主活动与交流对象的关系绑定分别说明,群内自主活动不会冒用某个成员的关系。
5
+ - 移除插件内置的任务回复篇幅豁免和固定语气模板。语气、篇幅及相处方式由当前人格、适用关系、聊天偏好及本轮要求决定;保留投递协议、可见回复和工具权限约束。
6
+ - 不修改已保存的人格文本或聊天历史,不新增模型请求。
@@ -0,0 +1,11 @@
1
+ # 2.21.7
2
+
3
+ - 人格创作的 inspect 现在直接返回 qq-bridge 默认大肥鱼(原名“小鲸鱼”)完整参考、固定来源版本与改写指导。自己的身份工具、伙伴管理与页面弹窗共用一份资料;参考只在创作读取时返回,不作为当前人格注入日常聊天,不替换用户已有角色或关系。
4
+ - 修复长期不入睡:移除“一次模型判断后同一空闲不再检查”的门槛,按疲惫值每分钟本地抽样;后台记忆整理与观察归档不阻挡睡眠,实际对话、待办执行与会话准备仍阻挡自动入睡。
5
+ - 新增每伙伴独立的疲惫值(0–100):初始 30,清醒每小时约增加 5,实际睡眠每小时约恢复 15;重启、自然醒、短暂小睡及提前叫醒均保留剩余疲惫。界面展示紧凑的疲惫条。
6
+ - 自动入睡需要真实消息后空闲至少 3 分钟,疲惫达到 40 后每分钟按递增概率判断(1%–30%),醒来后至少 10 分钟不会再次自动入睡。自主活动不会反复重置真实消息的空闲计时;不新增睡眠判断模型请求。
7
+ - 私聊在睡眠中按人格给迷糊回应,按疲惫程度需要 1–4 次呼唤逐步醒来;10 秒内连发只计一次,10 分钟未继续则重新累计。紧急或明确立即唤醒请求、页面叫醒可以直接醒来,疲惫不清零。普通群消息不累计私聊唤醒次数。权限规则保持不变。
8
+ - 梦可缺席、分段及中断:入睡后延迟 5–15 分钟开始,每段完成后可能间隔 10–20 分钟继续,每次睡眠最多 4 段。被接收的消息打断正在生成的梦;未完成、截断、过期或取消的输出不保存,完成段保留。仍在睡眠时可以稍后接续;重启不重放未完成内容。
9
+ - 梦只读取当前会话范围内已有记忆,作为独立的想象与感受保存,不改写事实记忆,不清空聊天上下文。记忆关闭或没有可用记忆时可以睡眠而不做梦。
10
+
11
+ 验证:睡眠/疲惫/中断并发回归、真实宿主 pre-step 上下文时序、人格参考与权限隔离;手机/桌面、浅色/深色疲惫条与叫醒交互。
@@ -0,0 +1,9 @@
1
+ # 2.21.8
2
+
3
+ - 总览顶部显示好感度(分数、等级)与疲惫值(分数、清醒/睡眠状态),无需进入身份页。关闭功能时显示“已暂停”并保留数值。仅在总览打开且页面可见时刷新,单项请求失败保留上次读数并支持重试。
4
+ - 删除伙伴入口补齐字体、间距、边框、危险色及键盘焦点样式;确认删除使用统一的确认弹窗,保留原删除条件与保护。
5
+ - 基本身份、角色设定、关系设定分别提供共用的字段映射与通用参考模板,页面可展开查看,AI 可通过现有身份工具 reference 动作或 inspect includeReferences=true 按需取得。
6
+ - 人格创建请求或明确询问模板/大肥鱼参考时,在有身份编辑权限的当前用户轮次直接提供三份模板与 qq-bridge 完整原卡,明确与 dsh-cosplay 区分。普通身份读取、日常修改、闲时自主活动不自动附加参考;AI 自主优化不要求重新套版。
7
+ - 引用模板不自动改写当前人物、关系或工具权限,不增加常驻工具。伙伴管理 inspect 同样支持 includeReferences。
8
+
9
+ 验证:人格入口、权限与真实 pre-step 时序回归;总览刷新、部分失败、暂停状态、删除取消、三份模板展示,以及手机/桌面、浅色/深色浏览器检查。
@@ -0,0 +1,6 @@
1
+ # 2.21.9
2
+
3
+ - 修复包含“参考模板 / 参考模版”的自然句式没有在首轮提供人格参考的问题,包括“你现在应该能看点模版了吧,我需要你参考模版生成”。
4
+ - 明确不需要模板的请求不加载;普通修改、自主优化与未获身份权限的 QQ 用户仍不自动获得人格创作参考。
5
+ - 工具统一入口给出内置模板的准确调用示例,中文“参考模板”可直接查到身份工具;模板仍为三份通用示例和 qq-bridge 大肥鱼完整原卡。
6
+ - 不改动现有人格、关系或工具权限。
@@ -1,8 +1,10 @@
1
+ import type { SleepService } from './character/sleep-service.js';
1
2
  import type { ScheduledPartnerTask } from './scheduler/domain.js';
2
3
  import type { Context } from '@deepseek-ai/cordis';
3
4
  import type { Agent } from '@deepseek-ai/dsh-agent';
4
5
  import type { AgentDefaultModelConfig } from '@deepseek-ai/dsh-agent-default-model';
5
6
  import type { AgentPresetRegistry as AgentPresets } from '@deepseek-ai/dsh-agent-preset-registry';
7
+ import type { UserMessage } from '@deepseek-ai/dsh-llm';
6
8
  import type { SessionId } from '@deepseek-ai/dsh-session';
7
9
  import type { Session, SessionEvent } from '@deepseek-ai/dsh-session';
8
10
  import type { WorkspaceRegistry } from '@deepseek-ai/dsh-workspace';
@@ -103,6 +105,8 @@ export declare class PartnerAgentRuntime {
103
105
  private closed;
104
106
  private questionAnswerer;
105
107
  constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined, concerns?: PartnerConcernStore | undefined, composer?: PartnerAgentComposer | undefined);
108
+ private sleepService;
109
+ setSleepService(service: SleepService): void;
106
110
  setQuestionAnswerer(answerer: PartnerQuestionAnswerer): void;
107
111
  /** Cancel pending/claimed continuations as soon as another real input is admitted. */
108
112
  cancelPostReply(companionId: string, keepUserMessageId?: string): Promise<void>;
@@ -162,11 +166,14 @@ export declare class PartnerAgentRuntime {
162
166
  removeCompanionDirectory(companionId: string): Promise<void>;
163
167
  reloadCompanion(companionId: string): Promise<void>;
164
168
  /** Awaited by the host before prompt/tool assembly, never from a running tool. */
165
- prepareAgentTurn(agent: Agent, turn: number, signal: AbortSignal): Promise<void>;
169
+ prepareAgentTurn(agent: Agent, turn: number, signal: AbortSignal, messages?: readonly UserMessage[]): Promise<void>;
166
170
  /** Also used by assembly: never return a model-facing snapshot before setup. */
167
171
  prepareAgentAssembly(agent: Agent, signal: AbortSignal): Promise<boolean>;
168
172
  private readonly replyPresentations;
169
173
  private readonly contextRevisions;
174
+ private readonly admittedInputs;
175
+ /** Projection only: the host commits admitted input after prompt preparation. */
176
+ private inputEvents;
170
177
  private prepareConversationContext;
171
178
  /** Catch up visible legacy/interrupted turns before the final review; retries use stable IDs. */
172
179
  prepareRenewalMemory(companionId: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAIjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,wBAAwB,CAAA;AAChE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,KAAK,EAAE,mBAAmB,IAAI,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAKjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAA2C,MAAM,oBAAoB,CAAA;AAC1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,EAA8B,KAAK,kBAAkB,EAAE,KAAK,2BAA2B,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAChJ,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAE/E,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAMjF,OAAO,KAAK,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAA;AAQnE,OAAO,EAAyC,KAAK,aAAa,EAAC,MAAM,+BAA+B,CAAA;AACxG,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,IAAI,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAEpH,KAAK,cAAc,GAAG,OAAO,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzB,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AASD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG;QAAE,KAAK,EAAE,WAAW,CAAA;KAAE,EAAE,SAAS,EAAE,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAA;CACzG;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,KAAK,MAAM,IAAI,CAAA;AAiBzF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAA;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAC,CAAC,CAAA;IACnE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,8BAA8B,EAAE,gBAAgB,EAAE,CAAA;KAAC,CAAC,CAAA;IACpK,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7D,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,UAAU,EAAE,2BAA2B,EAAE,CAAA;IACzC,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,kBAAkB,EAAE,CAAA;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE9D,qBAAa,mBAAmB;IA0B5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IA/B5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA2B;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmC;IAC9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA6E;IAClH,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAmC;IAC3E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAY;IACzD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAY;IACjD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAY;IACpD,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAwB;IACnE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAwB;IAC7D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA2B;IAC1D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;IACvE,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,gBAAgB,CAAqC;gBAG1C,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,UAAU,CAAC,EAAE,uBAAuB,YAAA,EACpC,QAAQ,CAAC,EAAE,mBAAmB,YAAA,EAC9B,QAAQ,CAAC,EAAE,oBAAoB,YAAA;IA6ClD,mBAAmB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,IAAI;IAI5D,sFAAsF;IAChF,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9F,2FAA2F;IACrF,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBzF,kFAAkF;IAC5E,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,SAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C3E,0BAA0B,CAAC,MAAM,EAAC,WAAW,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,GAAE,OAAO,CAAC,OAAO,CAAC;IAUlG,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,EAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAY9I,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;YAUxG,eAAe;IAwBvB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IASxD,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAmCtE,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQhE,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CvF,YAAY,CAAC,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7E,cAAc,CAAC,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCxG,WAAW,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,SAAS,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAwDtL,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAIpC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IActD,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAS/G,cAAc,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAuB1E,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,SAAK;;;;;;;;;IAQjD,uBAAuB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAS5F,oBAAoB;IAa5B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAkBjE,mBAAmB;IA6C3B,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAerH,mGAAmG;IAC7F,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,0BAA0B,EAAE,kBAAkB,EAAE,EAAE,OAAO,EAAE,OAAO,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAe3O,oBAAoB;IAU5B,uBAAuB,CAC3B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAcV,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOlE,OAAO,CAAC,oBAAoB;IAUtB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMzD,kFAAkF;IAC5E,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtF,gFAAgF;IAC1E,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAgC/E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+B;IAClE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+B;YAClD,0BAA0B;IAqDxC,iGAAiG;IAC3F,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BxD,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B9E,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,MAAM,CAAC;QAAA,SAAS,CAAC,EAAC,MAAM,CAAA;KAAC,EAAE;IActF,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;YAE/B,gBAAgB;IAUxB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAuBd,0BAA0B;YAU1B,KAAK;YAkDL,qBAAqB;YAQrB,cAAc;IAwBtB,mBAAmB,IAAG,OAAO,CAAC,IAAI,CAAC;YAS3B,aAAa;YAwCb,aAAa;YAYb,WAAW;YAQX,gBAAgB;YAiDhB,oBAAoB;YAmDpB,aAAa;CAS5B;AAUD,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,GAC3C,cAAc,GAAG,SAAS,CAM5B;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GAAG,SAAS,YAAY,EAAE,CAY9I;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAoC;AAW1G,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,GAAE,uBAAuB,EAAO,EAAE,MAAM,GAAE,OAAO,uBAAuB,EAAE,SAAS,EAAO,EAAE,OAAO,GAAE,OAAO,oBAAoB,EAAE,mBAAmB,CAAC,SAAS,CAAM,GAAG,MAAM,CAkB9R;AA2BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAE7H;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,cAAc,CAOzF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACrB;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAMhH;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,2BAA2B,EAAE,CAiC5G;AAMD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACtB;AAoBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,MAAM,GAAG,SAAS,CAiB3H;AAoBD,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,kBAAkB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,aAAa,CAAC,EAAE,MAAM,GACrB,MAAM,CAgCR"}
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { personaReferenceRequested, renderPersonaReference } from './character/identity-guide.js';
1
2
  import { activityPolicyCurrent, postReplyAllowed, postReplyCurrent, postReplyProbability, POST_REPLY_PROMPT } from './character/post-reply.js';
2
3
  import { PARTNER_TOOL_ENTRIES } from './collaboration/tool-discovery.js';
3
4
  import { setReplyTiming } from './channels/qq/latency.js';
@@ -7,6 +8,7 @@ import { affectionEnabled, awardAffection, renderAffection } from './character/a
7
8
  import { affectionTurnEligible, currentAffectionAudience } from './character/affection-context.js';
8
9
  import { currentQqIdentityRelation, renderQqIdentityRelation } from './channels/qq/identity-binding.js';
9
10
  import { qqSettings, qqSessionTarget } from './channels/qq/settings.js';
11
+ import { fatigueValue } from './character/fatigue.js';
10
12
  import { renderSleepContext, isSleeping } from './character/sleep.js';
11
13
  import { questionOrigin } from './channels/question-origin.js';
12
14
  import { renderCharacterContext } from './character/domain.js';
@@ -113,7 +115,7 @@ export class PartnerAgentRuntime {
113
115
  const configuration = this.configurations.forSession(context.agent.session.id);
114
116
  if (configuration?.companion.toolDiscovery)
115
117
  return { ...assembly, tools: assembly.tools.filter(tool => PARTNER_TOOL_ENTRIES.some(name => name === tool.name)) };
116
- const access = resolveToolAccess({ agent: context.agent, state: this.store.snapshot() });
118
+ const access = resolveToolAccess({ agent: context.agent, state: this.store.snapshot(), ...(this.admittedInputs.get(context.agent)?.length ? { events: this.inputEvents(context.agent) } : {}) });
117
119
  return { ...assembly, tools: !access.sendTools ? [] : access.allowedTools ? assembly.tools.filter(tool => access.allowedTools.includes(tool.name)) : assembly.tools };
118
120
  };
119
121
  if (this.rebuildingAssemblies.has(context))
@@ -131,15 +133,33 @@ export class PartnerAgentRuntime {
131
133
  }
132
134
  }) : () => { };
133
135
  this.disposeConfigurationListener = typeof this.ctx.on === 'function'
134
- ? this.ctx.on('agent/pre-step', async ({ agent, turn, signal }, next) => {
135
- await this.prepareAgentTurn(agent, turn, signal);
136
- return next();
136
+ ? this.ctx.on('agent/pre-step', async ({ agent, turn, signal, messages }, next) => {
137
+ try {
138
+ await this.prepareAgentTurn(agent, turn, signal, messages);
139
+ const decision = await next();
140
+ if (decision.kind === 'reject') {
141
+ this.admittedInputs.delete(agent);
142
+ this.contextRevisions.delete(agent);
143
+ }
144
+ else if (decision.kind === 'enter') {
145
+ this.admittedInputs.set(agent, decision.messages);
146
+ await this.sleepService?.acceptInput(agent.session.id, decision.messages);
147
+ await this.prepareConversationContext(agent, signal);
148
+ }
149
+ return decision;
150
+ }
151
+ catch (error) {
152
+ this.admittedInputs.delete(agent);
153
+ this.contextRevisions.delete(agent);
154
+ throw error;
155
+ }
137
156
  }) : () => { };
138
157
  this.disposeAgentListener = typeof this.ctx.on === 'function'
139
158
  ? this.ctx.on('agent/disposed', ({ agent }) => {
140
159
  this.replyPresentations.get(agent)?.();
141
160
  this.replyPresentations.delete(agent);
142
161
  this.preparedTurns.delete(agent);
162
+ this.admittedInputs.delete(agent);
143
163
  this.characterContexts.get(agent.session.id)?.();
144
164
  this.characterContexts.delete(agent.session.id);
145
165
  this.contextRevisions.delete(agent);
@@ -151,6 +171,8 @@ export class PartnerAgentRuntime {
151
171
  })
152
172
  : () => { };
153
173
  }
174
+ sleepService;
175
+ setSleepService(service) { this.sleepService = service; }
154
176
  setQuestionAnswerer(answerer) {
155
177
  this.questionAnswerer = answerer;
156
178
  }
@@ -241,7 +263,7 @@ export class PartnerAgentRuntime {
241
263
  else if (!idleContactDue(this.store.snapshot(), companion, user, Date.now(), timeZone))
242
264
  return;
243
265
  const stableSeq = agent.session.seq;
244
- const message = createUserMessage({ content: [{ type: 'text', text: idleActivityPrompt(this.store.snapshot(), companion) + (continuation ? '\n' + POST_REPLY_PROMPT : '')
266
+ const message = createUserMessage({ content: [{ type: 'text', text: idleActivityPrompt(this.store.snapshot(), companion, agent.session.snapshotEvents()) + (continuation ? '\n' + POST_REPLY_PROMPT : '')
245
267
  }], source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'notice', summary: IDLE_CONTACT_NOTICE } });
246
268
  let claimed = false;
247
269
  await this.store.update(draft => {
@@ -714,6 +736,11 @@ export class PartnerAgentRuntime {
714
736
  }
715
737
  }
716
738
  async observeSessionEvent(session, event) {
739
+ if (event.type === 'turn/end') {
740
+ const agent = this.ctx?.agents?.get(session.id);
741
+ if (agent)
742
+ this.admittedInputs?.delete(agent);
743
+ }
717
744
  if (event.type === 'user/message' && event.data.source.kind === 'user') {
718
745
  const owner = this.store.snapshot().sessions.find(r => r.sessionId === session.id)?.companionId;
719
746
  if (owner) {
@@ -883,12 +910,12 @@ export class PartnerAgentRuntime {
883
910
  throw new Error('伙伴不存在');
884
911
  }
885
912
  /** Awaited by the host before prompt/tool assembly, never from a running tool. */
886
- async prepareAgentTurn(agent, turn, signal) {
913
+ async prepareAgentTurn(agent, turn, signal, messages = []) {
887
914
  if (this.closed)
888
915
  throw new Error('伙伴运行时已关闭');
889
- if (this.preparedTurns.get(agent) === turn)
890
- return;
891
- await this.prepareAgentAssembly(agent, signal);
916
+ this.admittedInputs.set(agent, messages);
917
+ if (this.preparedTurns.get(agent) !== turn)
918
+ await this.prepareAgentAssembly(agent, signal);
892
919
  await this.prepareConversationContext(agent, signal);
893
920
  this.preparedTurns.set(agent, turn);
894
921
  }
@@ -908,7 +935,7 @@ export class PartnerAgentRuntime {
908
935
  if (this.store.isCompanionRemoving(configuration.companion.id))
909
936
  throw new Error('伙伴正在删除,不能启动新轮次');
910
937
  signal.throwIfAborted();
911
- const access = resolveToolAccess({ agent, state: this.store.snapshot() });
938
+ const access = resolveToolAccess({ agent, state: this.store.snapshot(), ...(this.admittedInputs.get(agent)?.length ? { events: this.inputEvents(agent) } : {}) });
912
939
  let presentationChanged = false;
913
940
  const stableNative = configuration.companion.toolDiscovery || !!access.allowedTools;
914
941
  if (stableNative && !this.replyPresentations.has(agent) && typeof agent.ctx.tools?.presentAs === 'function') {
@@ -942,6 +969,18 @@ export class PartnerAgentRuntime {
942
969
  }
943
970
  replyPresentations = new Map();
944
971
  contextRevisions = new WeakMap();
972
+ admittedInputs = new WeakMap();
973
+ /** Projection only: the host commits admitted input after prompt preparation. */
974
+ inputEvents(agent) {
975
+ const events = agent.session.snapshotEvents();
976
+ const pending = this.admittedInputs?.get(agent) ?? [];
977
+ if (!pending.length)
978
+ return events;
979
+ const committed = new Set(events.flatMap(e => e.type === 'user/message' ? [e.data.id] : []));
980
+ return [...events, ...pending.filter(m => !committed.has(m.id)).map((data, index) => ({
981
+ type: 'user/message', data, seq: (agent.session.seq + index + 1), time: Date.now(), surfaceOp: 'append',
982
+ }))];
983
+ }
945
984
  async prepareConversationContext(agent, signal) {
946
985
  const config = this.configurations.forSession(agent.session.id);
947
986
  if (!config)
@@ -949,22 +988,25 @@ export class PartnerAgentRuntime {
949
988
  const { companion, route } = config;
950
989
  const state = this.store.snapshot();
951
990
  const relationEvents = state.channels?.some(c => c.platform === 'qq' && state.sessions.some(r => r.sessionId === agent.session.id && r.channelId === c.id))
952
- ? agent.session.snapshotEvents() : undefined;
991
+ ? this.inputEvents(agent) : undefined;
953
992
  const identityRelation = relationEvents ? currentQqIdentityRelation(agent.session.id, relationEvents, state.sessions, state.channels) : undefined;
954
- if (!identityRelation && !relationshipTextForIdentity(companion) && (!this.memory || !companion.automation.memory.enabled) && !companion.characterCard?.enabled && !renderSleepContext(companion, route.id)) {
993
+ const committedMessages = agent.session.deriveMessages?.() ?? [];
994
+ const committedIds = new Set(committedMessages.map(m => m.id));
995
+ const messages = [...committedMessages, ...(this.admittedInputs?.get(agent) ?? []).filter(m => !committedIds.has(m.id))];
996
+ const last = [...messages].reverse().find(m => m.role === 'user' && m.source.kind === 'user');
997
+ const query = last && last.role === 'user' ? textContent(last.content) : '';
998
+ if (!identityRelation && !relationshipTextForIdentity(companion) && (!this.memory || !companion.automation.memory.enabled) && !companion.characterCard?.enabled && !renderSleepContext(companion, route.id) && !personaReferenceRequested(query)) {
955
999
  this.characterContexts.get(agent.session.id)?.();
956
1000
  this.characterContexts.delete(agent.session.id);
957
1001
  this.contextRevisions.delete(agent);
958
1002
  return false;
959
1003
  }
960
- const messages = agent.session.deriveMessages();
961
- const last = [...messages].reverse().find(m => m.role === 'user' && m.source.kind === 'user');
962
- const query = last && last.role === 'user' ? textContent(last.content) : '';
963
- const events = relationEvents ?? agent.session.snapshotEvents();
1004
+ const events = relationEvents ?? this.inputEvents(agent);
964
1005
  const origin = [...events].reverse().find(e => e.type === 'user/message' && (e.data.source.kind === 'user' || isIdleContactNotice(e) || isInternalTaskNotice(e)));
965
1006
  const autonomous = Boolean(origin && isIdleContactNotice(origin));
966
1007
  const affectionAudience = currentAffectionAudience(state, companion.id, agent.session.id, events);
967
- const revision = `${JSON.stringify(identityRelation)}:${config.revision}:${last?.id ?? ''}:${autonomous && origin?.type === 'user/message' ? origin.data.id : ''}:${companion.sleepState?.dreams?.at(-1)?.id ?? ''}:${affectionAudience}:${companion.affection?.updatedAt ?? 0}`;
1008
+ const access = resolveToolAccess({ agent, state, events });
1009
+ const revision = `${JSON.stringify(access)}:${JSON.stringify(identityRelation)}:${config.revision}:${last?.id ?? ''}:${autonomous && origin?.type === 'user/message' ? origin.data.id : ''}:${JSON.stringify([companion.sleepState?.episode, companion.sleepState?.reception, Math.round(fatigueValue(companion))])}:${companion.sleepState?.dreams?.at(-1)?.id ?? ''}:${affectionAudience}:${companion.affection?.updatedAt ?? 0}`;
968
1010
  if (this.contextRevisions.get(agent) === revision)
969
1011
  return false;
970
1012
  const scope = conversationMemoryScope(route, this.store.snapshot().sessions);
@@ -979,16 +1021,15 @@ export class PartnerAgentRuntime {
979
1021
  }
980
1022
  signal.throwIfAborted();
981
1023
  const relationshipAllowed = !identityRelation || identityRelation.matched;
982
- const access = resolveToolAccess({ agent, state });
983
- const text = [access.allowedTools || !access.sendTools ? access.denialReason + ' 回复能力通过 partner_tools 查询和调用(未开启统一入口时使用原工具);语音能力为 partner_qq_reply;不能代办操作,不承诺使用私有能力。' : '',
1024
+ const text = [origin?.type === 'user/message' && origin.data.source.kind === 'user' && access.sendTools && (!access.allowedTools || access.allowedTools.includes('partner_identity')) && personaReferenceRequested(query) ? renderPersonaReference() : '', access.allowedTools || !access.sendTools ? access.denialReason + ' 回复能力通过 partner_tools 查询和调用(未开启统一入口时使用原工具);语音能力为 partner_qq_reply;不能代办操作,不承诺使用私有能力。' : '',
984
1025
  renderIdentityRelationship(companion, identityRelation ? { channel: 'qq', matched: identityRelation.matched } : { channel: 'default' }),
985
1026
  renderAffection(companion, affectionAudience),
986
1027
  renderCharacterContext(companion.characterCard, messages.slice(-6).filter(m => m.role === 'user' || m.role === 'assistant').map(m => textContent(m.content)).join('\n').slice(-12000), relationshipAllowed ? story : undefined),
987
1028
  recalled ? renderMemory(recalled.relevant, recalled.connections, recalled.scenes, recalled.history) : '',
988
1029
  recalled && relationshipAllowed ? renderProfile(recalled.profile) : '',
989
1030
  renderConversationTurn(companion.characterCard, consecutiveUserMessages, autonomous),
990
- renderQqIdentityRelation(identityRelation),
991
- renderSleepContext(companion, this.store.snapshot().sessions.filter(r => r.companionId === companion.id && r.sessionId === route.sessionId).map(r => r.id)),
1031
+ renderQqIdentityRelation(identityRelation, autonomous && access.sendTools && !access.allowedTools),
1032
+ renderSleepContext(companion, this.store.snapshot().sessions.filter(r => r.companionId === companion.id && r.sessionId === route.sessionId).map(r => r.id), autonomous ? undefined : last?.id),
992
1033
  ].filter(Boolean).join('\n\n');
993
1034
  this.characterContexts.get(agent.session.id)?.();
994
1035
  // A changing .section() appends an entire system prompt on in-history routes.