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.
- package/dist/adapter/AcodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/AcodeSdkAdapter.js +41 -10
- package/dist/routes/sub-agents.js +1 -1
- package/dist/routes/terminal.d.ts +17 -0
- package/dist/routes/terminal.d.ts.map +1 -1
- package/dist/routes/terminal.js +131 -7
- package/dist/services/agent-event-store.d.ts +1 -0
- package/dist/services/agent-event-store.d.ts.map +1 -1
- package/dist/services/agent-event-store.js +23 -10
- package/dist/services/session-output.d.ts +1 -1
- package/dist/services/session-output.d.ts.map +1 -1
- package/dist/services/session-output.js +57 -16
- package/package/acode/dist/sub-agent-manager.d.ts.map +1 -1
- package/package/acode/dist/sub-agent-manager.js +9 -0
- package/package/acode/dist/sub-agent-types.d.ts +1 -1
- package/package/acode/dist/sub-agent-types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +6 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.js +69 -7
- package/package/aws-client-agent-mcp/dist/mcp-server.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js +84 -0
- package/package/aws-client-agent-mcp/dist/mcp-server.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-store.js +21 -8
- package/package/aws-client-agent-mcp/dist/memory-store.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/memory-tools.js +18 -2
- package/package/aws-client-agent-mcp/dist/memory-tools.js.map +1 -1
- 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
|
|
1021
|
-
|
|
1022
|
-
|
|
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
|
|
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
|
-
|
|
1104
|
+
if (!skipStats) {
|
|
1105
|
+
await this.reportCombinedMemoryStats();
|
|
1106
|
+
}
|
|
1045
1107
|
}
|
|
1046
|
-
return
|
|
1108
|
+
return deleted;
|
|
1047
1109
|
}
|
|
1048
1110
|
/**
|
|
1049
1111
|
* 搜索本地记忆与子 Agent 记忆(父子 Agent 可见性)。
|