aws-runtime-bridge 1.9.56 → 1.9.58

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 (29) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
  2. package/dist/adapter/AcodeSdkAdapter.js +41 -10
  3. package/dist/routes/sub-agents.js +1 -1
  4. package/dist/routes/terminal.d.ts +17 -0
  5. package/dist/routes/terminal.d.ts.map +1 -1
  6. package/dist/routes/terminal.js +131 -7
  7. package/dist/services/agent-event-store.d.ts +1 -0
  8. package/dist/services/agent-event-store.d.ts.map +1 -1
  9. package/dist/services/agent-event-store.js +23 -10
  10. package/dist/services/session-output.d.ts +1 -1
  11. package/dist/services/session-output.d.ts.map +1 -1
  12. package/dist/services/session-output.js +57 -16
  13. package/package/acode/dist/sub-agent-manager.d.ts.map +1 -1
  14. package/package/acode/dist/sub-agent-manager.js +9 -0
  15. package/package/acode/dist/sub-agent-types.d.ts +1 -1
  16. package/package/acode/dist/sub-agent-types.d.ts.map +1 -1
  17. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +6 -0
  18. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
  19. package/package/aws-client-agent-mcp/dist/mcp-server.js +69 -7
  20. package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
  21. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +84 -0
  22. package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
  23. package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
  24. package/package/aws-client-agent-mcp/dist/memory-store.js +21 -8
  25. package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
  26. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
  27. package/package/aws-client-agent-mcp/dist/memory-tools.js +18 -2
  28. package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
  29. package/package.json +1 -1
@@ -452,6 +452,7 @@ export class SubAgentManager {
452
452
  entry.contextSnapshot.currentTool = "[submitting]";
453
453
  entry.contextSnapshot.updatedAt = new Date().toISOString();
454
454
  entry.availableTools = entry.runtime.getAvailableTools();
455
+ this.emitEvent(entry.subId, "progress", { snapshot: { ...entry.contextSnapshot } });
455
456
  // 第一轮:使用初始 prompt
456
457
  // ★ 超时兜底:submit 内部 fetch/performCompaction 已有 withTimeout,
457
458
  // 但 hookBus.dispatch/materializeImageContent 等无保护,整体 10min 兜底。
@@ -830,6 +831,7 @@ export class SubAgentManager {
830
831
  // loadAcodeCommands 等)时前端 snapshot 永远显示 0/0/"-",与"子 agent 从未运行"
831
832
  // 无法区分。加上阶段标记后可定位卡点位置。
832
833
  snapshot.currentTool = "[starting]";
834
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
833
835
  break;
834
836
  case "startup_phase":
835
837
  // ★ 可见性修正:start() 内部细分阶段标记(session_started 之前 emit)。
@@ -838,6 +840,7 @@ export class SubAgentManager {
838
840
  // 前端可精确定位卡点(currentTool 显示 "[startup:<phase>]"),
839
841
  // 而非笼统的 "-"。
840
842
  snapshot.currentTool = `[startup:${event.data?.phase ?? "unknown"}]`;
843
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
841
844
  break;
842
845
  case "mcp_status":
843
846
  // runtime 发射的 mcp_status 使用 action 字段(而非 phase)
@@ -853,6 +856,7 @@ export class SubAgentManager {
853
856
  // ★ 可见性修正:start() 阶段 emit 的 mcp_status(无 action 字段,是连接状态报告),
854
857
  // 标记 MCP 初始化阶段。位于 session_started 之后、skill_status 之前。
855
858
  snapshot.currentTool = "[mcp_init]";
859
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
856
860
  }
857
861
  break;
858
862
  case "skill_status":
@@ -861,6 +865,7 @@ export class SubAgentManager {
861
865
  // 若卡在此区间,前端会显示 "[skill_loaded]",可定位为 submit 早期卡死
862
866
  // (如 hookBus.dispatch("UserPromptSubmit")、materializeImageContent 等)。
863
867
  snapshot.currentTool = "[skill_loaded]";
868
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
864
869
  break;
865
870
  case "ai_request":
866
871
  // estimatedContextTokens 是请求前的上下文估算,可作为 input 近似值
@@ -871,6 +876,7 @@ export class SubAgentManager {
871
876
  // 否则子 agent 卡在 fetch 时 snapshot.currentTool 仍为 undefined,前端显示"-",
872
877
  // 与"子 agent 从未运行"无法区分。
873
878
  snapshot.currentTool = "[model_request]";
879
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
874
880
  break;
875
881
  case "context_compaction":
876
882
  // ★ 可见性修正:标记当前处于上下文压缩阶段。
@@ -879,11 +885,13 @@ export class SubAgentManager {
879
885
  // 前端 snapshot 会显示全 0。标记 currentTool 为压缩阶段,让"卡在压缩"可见。
880
886
  if (event.data?.action === "start") {
881
887
  snapshot.currentTool = "[context_compaction]";
888
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
882
889
  }
883
890
  else if (event.data?.action === "end") {
884
891
  // 压缩结束后清除标记,后续 ai_request 会覆盖
885
892
  if (snapshot.currentTool === "[context_compaction]") {
886
893
  snapshot.currentTool = undefined;
894
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
887
895
  }
888
896
  }
889
897
  break;
@@ -892,6 +900,7 @@ export class SubAgentManager {
892
900
  if (event.data?.usage) {
893
901
  snapshot.tokenUsage.input = (event.data.usage.inputTokens ?? snapshot.tokenUsage.input);
894
902
  snapshot.tokenUsage.output = (event.data.usage.outputTokens ?? snapshot.tokenUsage.output);
903
+ this.emitEvent(subId, "progress", { snapshot: { ...snapshot } });
895
904
  }
896
905
  else if (event.data?.failed || event.data?.aborted) {
897
906
  // 失败/中止路径不携带 usage,重置 output 避免残留上一轮值
@@ -68,7 +68,7 @@ export interface SubAgentDocument {
68
68
  /** Sub agent 运行时事件(SSE 推送) */
69
69
  export interface SubAgentEvent {
70
70
  /** 事件类型 */
71
- type: "spawned" | "running" | "tool_start" | "tool_end" | "delta" | "completed" | "failed" | "cancelled";
71
+ type: "spawned" | "running" | "tool_start" | "tool_end" | "delta" | "progress" | "completed" | "failed" | "cancelled";
72
72
  /** sub-agent ID */
73
73
  subId: string;
74
74
  /** 事件时间戳(ISO) */
@@ -1 +1 @@
1
- {"version":3,"file":"sub-agent-types.d.ts","sourceRoot":"","sources":["../src/sub-agent-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2BAA2B;AAC3B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,oBAAoB;AACpB,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,sEAAsE;IACtE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,IAAI,EACA,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,OAAO,GACP,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;IAChB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC,CAAC;CACH"}
1
+ {"version":3,"file":"sub-agent-types.d.ts","sourceRoot":"","sources":["../src/sub-agent-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,2BAA2B;AAC3B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAEjD,oBAAoB;AACpB,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,SAAS,GACT,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;AAEhB,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB;IAClB,UAAU,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,eAAe,CAAC,EAAE,uBAAuB,CAAC;IAC1C,sEAAsE;IACtE,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,0CAA0C;IAC1C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,0BAA0B;AAC1B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,WAAW;IACX,IAAI,EACA,SAAS,GACT,SAAS,GACT,YAAY,GACZ,UAAU,GACV,OAAO,GACP,UAAU,GACV,WAAW,GACX,QAAQ,GACR,WAAW,CAAC;IAChB,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,uBAAuB,CAAC;KACpC,CAAC;CACH"}
@@ -233,6 +233,12 @@ export declare class McpServer {
233
233
  * 主流程:按 uri 删除;如果传入 memory_type,则先校验分类,最后返回 deleted 布尔值。
234
234
  */
235
235
  private handleDeleteMemory;
236
+ /**
237
+ * 删除单条记忆的内部辅助方法。
238
+ * - skipStats=true 时跳过 reportCombinedMemoryStats 调用,由批量调用方统一上报一次。
239
+ * - 返回 true/false 表示是否实际删除(与 store.deleteMemory 一致)。
240
+ */
241
+ private deleteMemorySingle;
236
242
  /**
237
243
  * 搜索本地记忆与子 Agent 记忆(父子 Agent 可见性)。
238
244
  * 主流程:解析 scope -> own(默认)仅搜自己 -> children仅搜子Agent的file-scoped记忆 -> all合并。
@@ -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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"}
@@ -1017,10 +1017,71 @@ export class McpServer {
1017
1017
  * 主流程:按 uri 删除;如果传入 memory_type,则先校验分类,最后返回 deleted 布尔值。
1018
1018
  */
1019
1019
  async handleDeleteMemory(args) {
1020
- const input = {
1021
- uri: this.getRequiredString(args, "uri"),
1022
- memory_type: this.getOptionalMemoryType(args),
1020
+ const singleUri = typeof args.uri === "string" ? args.uri : undefined;
1021
+ const memoriesArray = Array.isArray(args.memories)
1022
+ ? args.memories
1023
+ : undefined;
1024
+ // uri 与 memories 互斥校验
1025
+ if (singleUri && memoriesArray && memoriesArray.length > 0) {
1026
+ throw new Error("delete_memory 不支持同时传入 uri 和 memories,请二选一");
1027
+ }
1028
+ if (!singleUri && (!memoriesArray || memoriesArray.length === 0)) {
1029
+ throw new Error("delete_memory 需要 uri 或 memories 参数");
1030
+ }
1031
+ // 单条路径:保持原返回结构 { deleted: boolean },向后兼容
1032
+ if (singleUri) {
1033
+ const memory_type = this.getOptionalMemoryType(args);
1034
+ const deleted = await this.deleteMemorySingle(singleUri, memory_type);
1035
+ return { deleted };
1036
+ }
1037
+ // 批量路径:逐条删除,每条独立 memory_type
1038
+ let deletedCount = 0;
1039
+ const notFound = [];
1040
+ const failed = [];
1041
+ for (let i = 0; i < memoriesArray.length; i++) {
1042
+ const item = memoriesArray[i];
1043
+ if (typeof item !== "object" || item === null) {
1044
+ failed.push({ uri: String(item), reason: `memories[${i}] 不是对象` });
1045
+ continue;
1046
+ }
1047
+ const obj = item;
1048
+ const uri = typeof obj.uri === "string" ? obj.uri : "";
1049
+ if (!uri) {
1050
+ failed.push({ uri: "", reason: `memories[${i}].uri 缺失` });
1051
+ continue;
1052
+ }
1053
+ const memory_type = typeof obj.memory_type === "string"
1054
+ ? this.parseMemoryType(obj.memory_type)
1055
+ : undefined;
1056
+ try {
1057
+ const deleted = await this.deleteMemorySingle(uri, memory_type, /* skipStats */ true);
1058
+ if (deleted) {
1059
+ deletedCount++;
1060
+ }
1061
+ else {
1062
+ notFound.push(uri);
1063
+ }
1064
+ }
1065
+ catch (e) {
1066
+ failed.push({ uri, reason: e instanceof Error ? e.message : String(e) });
1067
+ }
1068
+ }
1069
+ if (deletedCount > 0) {
1070
+ await this.reportCombinedMemoryStats();
1071
+ }
1072
+ return {
1073
+ deleted: deletedCount,
1074
+ not_found: notFound,
1075
+ failed,
1023
1076
  };
1077
+ }
1078
+ /**
1079
+ * 删除单条记忆的内部辅助方法。
1080
+ * - skipStats=true 时跳过 reportCombinedMemoryStats 调用,由批量调用方统一上报一次。
1081
+ * - 返回 true/false 表示是否实际删除(与 store.deleteMemory 一致)。
1082
+ */
1083
+ async deleteMemorySingle(uri, memory_type, skipStats = false) {
1084
+ const input = { uri, memory_type };
1024
1085
  const target = await this.findMemoryStoreForMutation(input);
1025
1086
  const effectiveType = target.memory_type ?? input.memory_type;
1026
1087
  const deleted = await target.store.deleteMemory({
@@ -1032,18 +1093,19 @@ export class McpServer {
1032
1093
  // TS 侧无需任何本地元数据清理。
1033
1094
  // Dual-write permanent memory delete to server
1034
1095
  // 当 target.store 已是服务端时跳过,避免重复删除。
1035
- // 必须在 reportCombinedMemoryStats 之前完成,确保上报时 server 端统计已同步。
1036
1096
  if (effectiveType === "project_memory" && target.store !== this.memoryStore) {
1037
1097
  try {
1038
- await this.memoryStore.deleteMemory({ uri: input.uri, memory_type: "project_memory" });
1098
+ await this.memoryStore.deleteMemory({ uri, memory_type: "project_memory" });
1039
1099
  }
1040
1100
  catch (e) {
1041
1101
  logger.warn("[McpServer] Failed to sync permanent memory delete to server:", e);
1042
1102
  }
1043
1103
  }
1044
- await this.reportCombinedMemoryStats();
1104
+ if (!skipStats) {
1105
+ await this.reportCombinedMemoryStats();
1106
+ }
1045
1107
  }
1046
- return { deleted };
1108
+ return deleted;
1047
1109
  }
1048
1110
  /**
1049
1111
  * 搜索本地记忆与子 Agent 记忆(父子 Agent 可见性)。