aws-runtime-bridge 1.9.61 → 1.9.65

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.
@@ -211,6 +211,13 @@ export declare class AcodeSdkAdapter extends EventEmitter implements BaseProvide
211
211
  * 取消数据流看门狗(已合并到 cancelSubmitTimeoutDetection,此方法保留兼容性)
212
212
  */
213
213
  private cancelDataFlowWatchdog;
214
+ /**
215
+ * 构建 ai_request 事件的 actionDetail,携带请求头和请求体,
216
+ * 供前端 DevTools 网络面板 Payload 页签展示。
217
+ * 格式与 terminal.ts 的 formatAiRequestDetail 保持一致:
218
+ * 模型/接口/方法等元信息 + "\n\n请求头:\n" + headers + "\n\n请求体:\n" + body
219
+ */
220
+ private formatAiRequestActionDetail;
214
221
  }
215
222
  export {};
216
223
  //# sourceMappingURL=AcodeSdkAdapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AcodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/AcodeSdkAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcodeSdkAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/AcodeSdkAdapter.ts"],"names":[],"mappings":"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"}
@@ -844,9 +844,11 @@ export class AcodeSdkAdapter extends EventEmitter {
844
844
  if (entry.adapterSession.status === "waiting_input") {
845
845
  entry.adapterSession.status = "thinking";
846
846
  }
847
+ const formattedDetail = this.formatAiRequestActionDetail(event.data);
847
848
  const aiRequestActionInfo = {
848
849
  actionType: "ai_request",
849
850
  actionLabel: "AI请求",
851
+ actionDetail: formattedDetail,
850
852
  };
851
853
  if (displayUsage) {
852
854
  aiRequestActionInfo.usage = displayUsage;
@@ -1923,4 +1925,62 @@ export class AcodeSdkAdapter extends EventEmitter {
1923
1925
  cancelDataFlowWatchdog(entry) {
1924
1926
  entry.watchdogLastDataFlowTime = Date.now();
1925
1927
  }
1928
+ /**
1929
+ * 构建 ai_request 事件的 actionDetail,携带请求头和请求体,
1930
+ * 供前端 DevTools 网络面板 Payload 页签展示。
1931
+ * 格式与 terminal.ts 的 formatAiRequestDetail 保持一致:
1932
+ * 模型/接口/方法等元信息 + "\n\n请求头:\n" + headers + "\n\n请求体:\n" + body
1933
+ */
1934
+ formatAiRequestActionDetail(data) {
1935
+ const AI_REQUEST_HEADERS_MARKER = "\n\n请求头:\n";
1936
+ const AI_REQUEST_BODY_MARKER = "\n\n请求体:\n";
1937
+ // 请求体最大 60KB,确保 actionDetail 总长不超过 MySQL TEXT 列 64KB 上限
1938
+ const MAX_REQUEST_BODY_CHARS = 60_000;
1939
+ const model = typeof data.model === "string" ? data.model : "";
1940
+ const endpoint = typeof data.endpoint === "string"
1941
+ ? data.endpoint
1942
+ : typeof data.requestUrl === "string"
1943
+ ? data.requestUrl
1944
+ : "";
1945
+ const requestMethod = typeof data.requestMethod === "string" ? data.requestMethod : "";
1946
+ const stream = typeof data.stream === "boolean" ? data.stream : undefined;
1947
+ const messageCount = typeof data.messageCount === "number" ? data.messageCount : undefined;
1948
+ const toolCount = typeof data.toolCount === "number" ? data.toolCount : undefined;
1949
+ const lastUserMessagePreview = typeof data.lastUserMessagePreview === "string"
1950
+ ? data.lastUserMessagePreview
1951
+ : "";
1952
+ const lines = [
1953
+ model ? `模型: ${model}` : undefined,
1954
+ endpoint ? `接口: ${endpoint}` : undefined,
1955
+ requestMethod ? `方法: ${requestMethod}` : undefined,
1956
+ stream !== undefined ? `流式: ${stream ? "是" : "否"}` : undefined,
1957
+ messageCount !== undefined
1958
+ ? `上下文消息: ${messageCount}`
1959
+ : undefined,
1960
+ toolCount !== undefined ? `可用工具: ${toolCount}` : undefined,
1961
+ lastUserMessagePreview
1962
+ ? `最后请求: ${lastUserMessagePreview}`
1963
+ : undefined,
1964
+ ].filter((line) => Boolean(line));
1965
+ // 请求头(过滤敏感字段,避免 Authorization / API Key 泄露到前端)
1966
+ const SENSITIVE_HEADER_PATTERN = /^(authorization|x-api-key|api-key|cookie|set-cookie|x-auth-token|token)$/i;
1967
+ const requestHeaders = data.requestHeaders;
1968
+ const headerLines = requestHeaders
1969
+ ? Object.entries(requestHeaders)
1970
+ .filter(([name]) => !SENSITIVE_HEADER_PATTERN.test(name))
1971
+ .map(([name, value]) => `${name}: ${value}`)
1972
+ .filter((line) => line.trim().length > 0)
1973
+ : [];
1974
+ const base = lines.join("\n") || "ACode 正在发送 AI 请求";
1975
+ const headerBlock = headerLines.length > 0
1976
+ ? `${AI_REQUEST_HEADERS_MARKER}${headerLines.join("\n")}`
1977
+ : "";
1978
+ // 请求体(截断保护)
1979
+ const rawBody = typeof data.requestBody === "string" ? data.requestBody : "";
1980
+ const body = rawBody.length > MAX_REQUEST_BODY_CHARS
1981
+ ? `${rawBody.slice(0, MAX_REQUEST_BODY_CHARS)}\n...(请求体过长,已截断)`
1982
+ : rawBody;
1983
+ const bodyBlock = body ? `${AI_REQUEST_BODY_MARKER}${body}` : "";
1984
+ return `${base}${headerBlock}${bodyBlock}`;
1985
+ }
1926
1986
  }
package/dist/index.js CHANGED
@@ -19,7 +19,6 @@ import { terminalRouter, sdkSessions } from "./routes/terminal.js";
19
19
  import { sessionsRouter } from "./routes/sessions.js";
20
20
  import { gitRouter } from "./routes/git.js";
21
21
  import { fileSnapshotRouter } from "./routes/file-snapshot.js";
22
- import { memoryRouter } from "./routes/memory.js";
23
22
  import { acodeTodosRouter } from "./routes/acode-todos.js";
24
23
  import { subAgentsRouter } from "./routes/sub-agents.js";
25
24
  import { fileBrowserRouter } from "./routes/file-browser.js";
@@ -307,7 +306,6 @@ app.use("/runtime", systemMetricsRouter);
307
306
  app.use("/runtime", eventsRouter);
308
307
  app.use("/runtime", gitRouter);
309
308
  app.use("/runtime", fileSnapshotRouter);
310
- app.use("/runtime", memoryRouter);
311
309
  app.use("/runtime", acodeTodosRouter);
312
310
  app.use("/runtime", subAgentsRouter);
313
311
  app.use("/runtime", aiSourcesRouter);
@@ -160,6 +160,9 @@ subAgentsRouter.get("/sub-agents/:agentId/:subId", validateToken, async (req, re
160
160
  // 优先内存
161
161
  const entry = subAgentManager.getSubAgent(subId);
162
162
  if (entry) {
163
+ // 运行中的 sub-agent 从独立 jsonl 事件文件读取已落盘的 tool 事件,
164
+ // 保证前端 loadHistoryEvents() 在 SSE 连接建立前也能展示历史事件。
165
+ const events = await subAgentStore.readEvents(agentId, subId).catch(() => undefined);
163
166
  res.json({
164
167
  ok: true,
165
168
  subAgent: {
@@ -173,6 +176,7 @@ subAgentsRouter.get("/sub-agents/:agentId/:subId", validateToken, async (req, re
173
176
  startedAt: entry.startedAt,
174
177
  contextSnapshot: entry.contextSnapshot,
175
178
  availableTools: entry.availableTools,
179
+ events,
176
180
  },
177
181
  });
178
182
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAIL,KAAK,UAAU,EAChB,MAAM,0BAA0B,CAAC;AA+BlC,OAAO,KAAK,EAOV,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,KAAK,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;CACzB;AAozCD,qBAAa,YAAa,SAAQ,YAAY;IAiGhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAhGnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,KAAK,CAwBX;IAEF,OAAO,CAAC,eAAe,CAAgC;IAEvD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAkC;IAEzE;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAkC;IAE9E,OAAO,CAAC,WAAW,CAAoC;IAEvD,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,cAAc,CAAS;IAE/B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB,CAA0B;IAEtD,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,4BAA4B;IAC5B,OAAO,CAAC,oBAAoB,CAA+C;IAC3E,0DAA0D;IAC1D,OAAO,CAAC,SAAS,CAA+B;IAChD,mCAAmC;IACnC,OAAO,CAAC,aAAa,CAAsB;IAC3C,oCAAoC;IACpC,OAAO,CAAC,iBAAiB,CAA8C;IACvE,uBAAuB;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAO;IAExD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAOlB;gBAEe,MAAM,EAAE,kBAAkB;IAevD,2CAA2C;IAC3C,iBAAiB,IAAI,MAAM,EAAE;IAI7B,OAAO,CAAC,cAAc;IAatB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAgB3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgN5B;;;;;;;;;;OAUG;YACW,aAAa;IA+C3B;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;;;;;;;OAQG;YACW,aAAa;IAuC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IA6C/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAO9B;;;;OAIG;IACG,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB5C;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAanC,OAAO,CAAC,gBAAgB;YAIV,aAAa;IA8O3B,oDAAoD;IAC9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAmG7B;;;OAGG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO;IAeV;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,6BAA6B;IAkBrC,uCAAuC;IACjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+C3B,OAAO,CAAC,kBAAkB;YAaZ,YAAY;IA6K1B;;;;;;;;;;;;;;;;;OAiBG;YACW,4BAA4B;YAgI5B,qBAAqB;YAmWrB,wBAAwB;YAsFxB,eAAe;YA0Vf,sBAAsB;IAmDpC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,oCAAoC;IAiCnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qCAAqC;IAiDpD;;;;;;;;;;;;;OAaG;YACW,qBAAqB;IAwCnC;;;;;;OAMG;YACW,gBAAgB;IA8B9B,gEAAgE;YAClD,uBAAuB;IAkCrC,kFAAkF;YACpE,uBAAuB;IAyCrC,qEAAqE;YACvD,oBAAoB;IAwElC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA4GjC;;;;;OAKG;YACW,0BAA0B;IA8KxC;;;;;;;;;;;;;;QAcI;YACU,+BAA+B;IAkG7C;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;;;;;;;;;;OAYG;YACW,qBAAqB;IAkBnC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;;OAGG;IACH,OAAO,CAAC,iBAAiB;YAQX,oCAAoC;IA0DlD,OAAO,CAAC,uBAAuB;IA8B/B;;;;;;;;OAQG;IACH,OAAO,CAAC,qCAAqC;YAW/B,iBAAiB;IA2C/B,OAAO,CAAC,kBAAkB;IA2B1B;;;;;OAKG;YACW,kBAAkB;IAgChC;;;OAGG;IACH,OAAO,CAAC,4BAA4B;YA4BtB,oBAAoB;CAuBnC"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -3189,9 +3189,17 @@ ${delegate.uris.map(uri => {
3189
3189
  const fileStatuses = fc.fileStatuses && fc.fileStatuses.length > 0 ? fc.fileStatuses : [];
3190
3190
  // 展示全部绑定文件:无变更的仅列路径不加标注,内容变更/文件找不到的在路径后标注状态
3191
3191
  const bound = fileStatuses.length > 0
3192
- ? fileStatuses.map(s => s.status === 'no_change'
3193
- ? ` · ${s.path}`
3194
- : ` · ${s.path}(${statusLabel[s.status] ?? s.status})`).join('\n')
3192
+ ? fileStatuses.map(s => {
3193
+ if (s.status === 'no_change')
3194
+ return ` · ${s.path}`;
3195
+ const label = statusLabel[s.status] ?? s.status;
3196
+ const md5Info = s.status === 'content_changed' && s.localMd5 && s.serverMd5
3197
+ ? ` 本地: ${s.localMd5} Server: ${s.serverMd5}`
3198
+ : s.status === 'not_found' && s.serverMd5
3199
+ ? ` Server: ${s.serverMd5}`
3200
+ : '';
3201
+ return ` · ${s.path}(${label}${md5Info})`;
3202
+ }).join('\n')
3195
3203
  : (fc.boundFiles && fc.boundFiles.length > 0
3196
3204
  ? fc.boundFiles.map(f => ` · ${f}`).join('\n')
3197
3205
  : ' 无(请通过 read_memory 查看 bound_files)');
@@ -14,6 +14,8 @@ export type BoundFileStatus = 'no_change' | 'content_changed' | 'not_found' | 'n
14
14
  export interface BoundFileStatusEntry {
15
15
  path: string;
16
16
  status: BoundFileStatus;
17
+ localMd5?: string;
18
+ serverMd5?: string;
17
19
  }
18
20
  export declare class McpServer {
19
21
  private server;
@@ -22,7 +24,6 @@ export declare class McpServer {
22
24
  private memoryStore;
23
25
  private roleMemoryStore;
24
26
  private sessionContextMemoryStore;
25
- private memoryStoresShareFile;
26
27
  private initialRoleName;
27
28
  /** 是否有真实的角色名(非 env 空值 fallback "default-role") */
28
29
  private hasRoleName;
@@ -30,52 +31,16 @@ export declare class McpServer {
30
31
  private contextManager;
31
32
  /** 子 Agent 模式:仅暴露 Memory 工具,拒绝非 Memory 工具调用 */
32
33
  private isSubAgent;
33
- /**
34
- * 内存级去重缓存:记录本轮已通知过的 listable memory 文件变更状态。
35
- * key = memoryId,value = 已通知时刻各绑定文件的 MD5 复合哈希。
36
- * 文件再次变更(MD5 变化)时仍会触发新通知。
37
- * 进程重启后自动清空(届时重新检测)。
38
- */
39
- private notifiedFileChangeMemoryIds;
40
- /**
41
- * Step1「memory 仍处于 updating 状态」提醒的冷却时间戳表。
42
- * key = memory URI,value = 上次发送「请继续更新」提醒的时间戳。
43
- * 用于避免 buildMemoryFileChangeNotification 在 polling 周期内对 sticky 的 updating
44
- * memory 每轮都裸发 _acodeAutoDelegate(进而导致运行层反复 spawn 相同子任务)。
45
- * 冷却窗口内不再发出该提醒;窗口到期后若 memory 仍未处理,才会重新委托。
46
- */
47
- private lastUpdatePendingNotifyAt;
48
- /** Step1「仍 updating」提醒的冷却窗口(5 分钟)。冷却期内不重复裸发 _acodeAutoDelegate。 */
49
- private static readonly UPDATE_PENDING_NOTIFY_COOLDOWN_MS;
50
- /**
51
- * 本地缓存 listable 记忆(recently_memory/agent_memory)的文件 MD5 map。
52
- * 服务端(Java 后端)不持久化 file_md5_map 字段,listByType 返回的记录该字段为 undefined。
53
- * 必须本地缓存才能让 checkMemoriesFileChanges 有正确的旧 MD5 做对比。
54
- */
55
- private listableMd5Cache;
56
34
  /**
57
35
  * 租约续期定时器 (v1.21.0)。
58
36
  * 每 60 秒续期一次当前 agent 持有的所有 updating memory 的租约。
59
37
  */
60
38
  private leaseRenewalTimer;
39
+ private activeLeaseUris;
61
40
  private static readonly LEASE_DURATION_MINUTES;
62
41
  private static readonly LEASE_RENEW_INTERVAL_MS;
63
- /**
64
- * claim 去重缓存 (v1.21.0)。
65
- * 避免 5s 后台定时器重复调 server claim 同一个 memory。
66
- * key = memory URI, value = 本地缓存的租约到期时间戳。
67
- * 仅缓存 claim 成功的 URI,在 lease 到期前不再调 server。
68
- */
69
- private claimedCache;
70
42
  /** profile 是否已同步(防止 activelySyncProfile 与 profileHandler 双重同步) */
71
43
  private profileSynced;
72
- /**
73
- * Memory 通知 null 结果缓存:key → expiresAt 时间戳。
74
- * 仅缓存 null(无通知)结果,避免 while(true) 每 30s 重复读盘。
75
- * 有通知时立即投递并清除缓存,不缓存非 null 结果。
76
- */
77
- private memoryNotificationNullCache;
78
- private static readonly MEMORY_NOTIFICATION_NULL_TTL_MS;
79
44
  /**
80
45
  * poll_message 单例控制:防止并发调用导致消息被第一个消费后第二个空等。
81
46
  * 当已有 poll 在进行时,后续调用直接等待同一个 Promise。
@@ -167,36 +132,27 @@ export declare class McpServer {
167
132
  private parseMemoryType;
168
133
  private isMemoryType;
169
134
  /**
170
- * 按记忆生命周期选择存储作用域。
171
- * 主流程:长期 project_memory 走角色级 store;recently_memory/agent_memory 走当前 Agent 实例级 store。
172
- */
173
- /**
174
- * 按记忆生命周期选择存储作用域。
175
- * 主流程:永久记忆(project_memory)始终走本地 roleMemoryStore(.agentswork),
176
- * 确保本地文件始终有副本,后续部署恢复时可通过 Local → Server 同步回 server。
177
- * recently_memory/agent_memory/session_context 始终走实例级 server store。
135
+ * 所有类型的记忆统一走服务端(Server 是唯一权威源)。
136
+ * 本地 roleMemoryStore 仅用于 project_memory 的备份写入与启动恢复。
178
137
  */
179
138
  private getMemoryStoreForType;
180
139
  /**
181
- * 在未显式指定类型时按两个作用域读取。
182
- * 主流程:先查角色级长期记忆 -> 再查实例级临时/近期记忆,保持旧工具参数可选语义。
140
+ * 读取记忆:直接走服务端(Server 是唯一权威源)。
183
141
  */
184
142
  private readMemoryFromScopedStores;
185
143
  /**
186
- * 在未显式指定类型时定位可更新/删除的存储。
187
- * 主流程:按读取优先级查找记录 -> 返回命中的 store 与规范化类型,避免跨作用域误写。
144
+ * 将 project_memory 异步备份到本地文件(纯灾备,不作为读取源)。
188
145
  */
189
- private findMemoryStoreForMutation;
146
+ private backupProjectMemoryToLocal;
190
147
  /**
191
- * 合并角色级长期记忆与实例级短期记忆容量统计。
192
- * 主流程:实例 store 负责 listable 限额;角色 store 只贡献长期 memory 数量。
148
+ * 删除 project_memory 的本地备份文件。
193
149
  */
194
- private combineMemoryStats;
150
+ private removeProjectMemoryLocalBackup;
195
151
  /**
196
- * 上报当前合并后的记忆统计。
197
- * 主流程:读取实例级与角色级统计 -> 合并长期 memory count -> 通过 server 广播给 Dashboard。
152
+ * 定位可更新/删除的存储:统一走服务端。
198
153
  */
199
- private reportCombinedMemoryStats;
154
+ private findMemoryStoreForMutation;
155
+ private reportMemoryStatsToServer;
200
156
  /**
201
157
  * 系统提示词由 runtime adapter 在会话创建时注入,MCP 层面不再负责返回。
202
158
  * 详见 startListeningInternal -> profileHandler 中的合并注入逻辑。
@@ -248,7 +204,7 @@ export declare class McpServer {
248
204
  private handleDeleteMemory;
249
205
  /**
250
206
  * 删除单条记忆的内部辅助方法。
251
- * - skipStats=true 时跳过 reportCombinedMemoryStats 调用,由批量调用方统一上报一次。
207
+ * - skipStats=true 时跳过 reportMemoryStatsToServer 调用,由批量调用方统一上报一次。
252
208
  * - 返回 true/false 表示是否实际删除(与 store.deleteMemory 一致)。
253
209
  */
254
210
  private deleteMemorySingle;
@@ -354,13 +310,6 @@ export declare class McpServer {
354
310
  * @returns 若生成了通知并已前置,返回 true;否则返回 false。
355
311
  */
356
312
  private prependMemoryNotification;
357
- /**
358
- * 带 null 结果缓存的 Memory 通知构建。
359
- * 主流程:查缓存 → 命中且未过期则返回 null → 未命中则调 buildFn →
360
- * 结果为 null 则写入缓存(TTL 60s)→ 结果非 null 则清除缓存并返回。
361
- * 目的:while(true) 每 30s 轮询时避免重复读盘,有通知时立即投递不受缓存影响。
362
- */
363
- private getCachedMemoryNotification;
364
313
  private handlePollMessage;
365
314
  /**
366
315
  * poll_message 主循环逻辑。
@@ -383,6 +332,7 @@ export declare class McpServer {
383
332
  /**
384
333
  * 检查本地非紧急通知(memory过期回忆、文件变更、容量整理),返回所有命中的通知。
385
334
  * Task 不在此方法中检查,因为 Task 通过服务端 hydrate 以消息形式返回。
335
+ * @param includeFileChange 是否包含文件变更检测,默认 true;循环轮询时传 false 以跳过。
386
336
  */
387
337
  private checkAllLocalNonUrgentNotifications;
388
338
  private buildPollResult;
@@ -419,10 +369,6 @@ export declare class McpServer {
419
369
  * 3. 检查永久记忆的文件变更,先走 Server 原子 claim,再标记本地
420
370
  */
421
371
  private buildMemoryFileChangeNotification;
422
- /**
423
- * 检查指定 URI 是否在 claim 去重缓存内 (v1.21.0)。
424
- * 在 lease 有效期内不再重复 claim。
425
- */
426
372
  private isClaimCached;
427
373
  /**
428
374
  * 计算某条记忆全部绑定文件的逐文件状态(纯计算,不修改任何状态)。
@@ -442,12 +388,7 @@ export declare class McpServer {
442
388
  * Memory 增强功能 (v1.6.0)
443
389
  */
444
390
  private calculateFileMd5;
445
- /**
446
- * 构建 Memory 文件变更通知的复合去重键。
447
- * 基于 memoryId + 当前各绑定文件的 MD5 生成,当任意绑定文件内容变化时复合键也随之变化,
448
- * 从而确保真实文件变更不会因简单 memoryId 去重而静默吞掉。
449
- */
450
- private buildMemoryChangeNotificationKey;
391
+ private verifyFileNotExist;
451
392
  private handleGetMessage;
452
393
  /**
453
394
  * 从服务端补拉未读消息并写入本地缓冲。
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}