aws-runtime-bridge 1.9.120 → 1.9.124

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/dist/adapter/AcodeSdkAdapter.d.ts +18 -0
  2. package/dist/adapter/AcodeSdkAdapter.js +5 -5
  3. package/dist/adapter/types.d.ts +4 -0
  4. package/dist/adapter/types.js +1 -1
  5. package/dist/browser/browser-ws-bridge.js +3 -3
  6. package/dist/browser/built-in-browser-tools.js +1 -1
  7. package/dist/desktop/built-in-desktop-tools.d.ts +49 -0
  8. package/dist/desktop/built-in-desktop-tools.js +2 -0
  9. package/dist/desktop/desktop-mcp-client.d.ts +47 -0
  10. package/dist/desktop/desktop-mcp-client.js +3 -0
  11. package/dist/index.js +1 -1
  12. package/dist/remote-desktop/index.js +2 -2
  13. package/dist/routes/dashboard.js +521 -17
  14. package/dist/routes/git.d.ts +39 -0
  15. package/dist/routes/git.js +33 -25
  16. package/dist/routes/instance.js +1 -1
  17. package/dist/routes/jdks.d.ts +2 -0
  18. package/dist/routes/jdks.js +2 -0
  19. package/dist/routes/launch.d.ts +6 -0
  20. package/dist/routes/launch.js +30 -0
  21. package/dist/routes/pty.js +3 -3
  22. package/dist/routes/runtime-binding.js +1 -1
  23. package/dist/routes/terminal.js +30 -30
  24. package/dist/services/access-control.d.ts +18 -0
  25. package/dist/services/access-control.js +5 -0
  26. package/dist/services/agent-process-manager.js +1 -1
  27. package/dist/services/auto-register.js +1 -1
  28. package/dist/services/change-cache-retention.d.ts +5 -0
  29. package/dist/services/change-cache-retention.js +2 -0
  30. package/dist/services/desktop-mcp-manager.d.ts +47 -0
  31. package/dist/services/desktop-mcp-manager.js +2 -0
  32. package/dist/services/instance-features.d.ts +6 -0
  33. package/dist/services/instance-features.js +1 -1
  34. package/dist/services/jdk-scanner.d.ts +20 -0
  35. package/dist/services/jdk-scanner.js +2 -0
  36. package/dist/services/launch-manager.d.ts +181 -0
  37. package/dist/services/launch-manager.js +12 -0
  38. package/dist/services/launch-metrics.d.ts +89 -0
  39. package/dist/services/launch-metrics.js +4 -0
  40. package/dist/services/launch-streams.d.ts +24 -0
  41. package/dist/services/launch-streams.js +11 -0
  42. package/dist/services/mcp-launch-binding-queue.js +1 -1
  43. package/dist/services/panel-auth.d.ts +11 -1
  44. package/dist/services/panel-auth.js +1 -1
  45. package/dist/services/panel-env.d.ts +5 -0
  46. package/dist/services/panel-env.js +2 -0
  47. package/dist/services/port-detector.d.ts +3 -0
  48. package/dist/services/port-detector.js +6 -0
  49. package/dist/services/runtime-lifecycle-policy.d.ts +1 -0
  50. package/dist/services/runtime-lifecycle-policy.js +1 -1
  51. package/dist/services/system-metrics.js +1 -1
  52. package/dist/services/tunnel-client.d.ts +4 -0
  53. package/dist/services/tunnel-client.js +1 -1
  54. package/dist/services/workspace-files.d.ts +3 -0
  55. package/dist/services/workspace-files.js +1 -1
  56. package/dist/services/workspaceTaskChangeWatcher.d.ts +2 -0
  57. package/dist/services/workspaceTaskChangeWatcher.js +3 -3
  58. package/dist/utils/config-write-queue.d.ts +3 -0
  59. package/dist/utils/config-write-queue.js +2 -0
  60. package/package/acode/dist/built-in-file-tools.d.ts +2 -0
  61. package/package/acode/dist/runtime.d.ts +20 -0
  62. package/package/acode/dist/runtime.js +27 -27
  63. package/package/acode/dist/sub-agent-manager.d.ts +4 -0
  64. package/package/acode/dist/sub-agent-manager.js +1 -1
  65. package/package/acode/dist/sub-agent-tools.d.ts +6 -0
  66. package/package/acode/dist/sub-agent-tools.js +39 -10
  67. package/package/acode/dist/sub-agent-types.d.ts +2 -0
  68. package/package/acode/dist/tool-allocation.d.ts +55 -0
  69. package/package/acode/dist/tool-allocation.js +2 -0
  70. package/package/acode/dist/types.d.ts +6 -0
  71. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +24 -0
  72. package/package/aws-client-agent-mcp/dist/agent-client.js +1 -1
  73. package/package/aws-client-agent-mcp/dist/agent-client.test.js +19 -5
  74. package/package/aws-client-agent-mcp/dist/context-manager.test.js +6 -6
  75. package/package/aws-client-agent-mcp/dist/http-client.d.ts +2 -0
  76. package/package/aws-client-agent-mcp/dist/http-client.js +1 -1
  77. package/package/aws-client-agent-mcp/dist/index.js +1 -1
  78. package/package/aws-client-agent-mcp/dist/launch-config-tools.test.d.ts +1 -0
  79. package/package/aws-client-agent-mcp/dist/launch-config-tools.test.js +106 -0
  80. package/package/aws-client-agent-mcp/dist/logger.d.ts +4 -0
  81. package/package/aws-client-agent-mcp/dist/logger.js +2 -2
  82. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +21 -0
  83. package/package/aws-client-agent-mcp/dist/mcp-server.js +25 -25
  84. package/package/aws-client-agent-mcp/dist/mcp-server.test.js +24 -16
  85. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +20 -0
  86. package/package/aws-client-agent-mcp/dist/mcp-tools.js +8 -8
  87. package/package/aws-client-agent-mcp/dist/mcp-tools.test.js +55 -1
  88. package/package/aws-client-agent-mcp/dist/memory-store.test.js +5 -1
  89. package/package/aws-client-agent-mcp/dist/parent-lifecycle.d.ts +10 -0
  90. package/package/aws-client-agent-mcp/dist/parent-lifecycle.js +2 -0
  91. package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.d.ts +1 -0
  92. package/package/aws-client-agent-mcp/dist/parent-lifecycle.test.js +81 -0
  93. package/package/aws-client-agent-mcp/dist/status-reporter.js +1 -1
  94. package/package/aws-client-agent-mcp/dist/types.d.ts +4 -0
  95. package/package/aws-client-agent-mcp/dist/watchdog-worker.d.ts +1 -0
  96. package/package/aws-client-agent-mcp/dist/watchdog-worker.js +3 -0
  97. package/package/aws-client-agent-mcp/dist/watchdog.d.ts +17 -0
  98. package/package/aws-client-agent-mcp/dist/watchdog.js +2 -0
  99. package/package/aws-client-agent-mcp/dist/watchdog.test.d.ts +1 -0
  100. package/package/aws-client-agent-mcp/dist/watchdog.test.js +124 -0
  101. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +4 -0
  102. package/package/aws-client-agent-mcp/dist/websocket-client.js +1 -1
  103. package/package/aws-client-agent-mcp/dist/websocket-client.test.js +83 -6
  104. package/package/aws-client-agent-mcp/package.json +1 -1
  105. package/package.json +2 -1
@@ -35,7 +35,7 @@ async function withMemoryServer(callback) {
35
35
  return await callback(server);
36
36
  }
37
37
  finally {
38
- await rm(dir, { recursive: true, force: true });
38
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
39
39
  }
40
40
  }
41
41
  async function withScopedMemoryServers(callback) {
@@ -50,7 +50,7 @@ async function withScopedMemoryServers(callback) {
50
50
  return await callback(firstServer, secondServer);
51
51
  }
52
52
  finally {
53
- await rm(dir, { recursive: true, force: true });
53
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
54
54
  }
55
55
  }
56
56
  function getHandleToolCall(server) {
@@ -782,7 +782,7 @@ describe("McpServer memory store paths", () => {
782
782
  assert.equal(paths.instancePath, path.join(dir, ".agentswork", "memory", "server-managed"));
783
783
  }
784
784
  finally {
785
- await rm(dir, { recursive: true, force: true });
785
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
786
786
  }
787
787
  });
788
788
  it("falls back to a default role memory directory when role name is blank", async () => {
@@ -799,7 +799,7 @@ describe("McpServer memory store paths", () => {
799
799
  assert.equal(paths.rolePath, path.join(dir, ".agentswork", "memory", "memory", "default-role"));
800
800
  }
801
801
  finally {
802
- await rm(dir, { recursive: true, force: true });
802
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
803
803
  }
804
804
  });
805
805
  });
@@ -969,30 +969,38 @@ describe("McpServer memory tools", () => {
969
969
  }), /Invalid memory_type/);
970
970
  });
971
971
  });
972
- it("scopes long-term memory to role and listable memory to agent instance", async () => {
972
+ it("stores memories in the instance store and isolates them between agent instances", async () => {
973
973
  await withScopedMemoryServers(async (firstServer, secondServer) => {
974
974
  const firstHandleToolCall = getHandleToolCall(firstServer);
975
975
  const secondHandleToolCall = getHandleToolCall(secondServer);
976
976
  await firstHandleToolCall.call(firstServer, "create_memory", {
977
977
  memory_type: "project_memory",
978
978
  uri: "core://role/shared-profile",
979
- content: "shared role knowledge",
979
+ content: "long-term memory of instance one",
980
980
  });
981
981
  await firstHandleToolCall.call(firstServer, "create_memory", {
982
982
  memory_type: "agent_memory",
983
983
  uri: "recent://instance/private-context",
984
984
  content: "agent one private context",
985
985
  });
986
- const roleMemory = await secondHandleToolCall.call(secondServer, "read_memory", {
986
+ // 当前架构:记忆统一落在实例 store(跨实例共享由服务端 ServerMemoryStore 承担),
987
+ // 另一个实例本地读不到第一条实例的任何记忆
988
+ const roleMemoryFromSecond = await secondHandleToolCall.call(secondServer, "read_memory", {
987
989
  uri: "core://role/shared-profile",
988
990
  memory_type: "project_memory",
989
991
  });
990
- const recentMemory = await secondHandleToolCall.call(secondServer, "read_memory", {
992
+ const recentMemoryFromSecond = await secondHandleToolCall.call(secondServer, "read_memory", {
991
993
  uri: "recent://instance/private-context",
992
994
  memory_type: "agent_memory",
993
995
  });
994
- assert.equal(roleMemory.content, "shared role knowledge");
995
- assert.equal(recentMemory, null);
996
+ assert.equal(roleMemoryFromSecond, null);
997
+ assert.equal(recentMemoryFromSecond, null);
998
+ // 写入实例自己可以正常读回
999
+ const ownRoleMemory = await firstHandleToolCall.call(firstServer, "read_memory", {
1000
+ uri: "core://role/shared-profile",
1001
+ memory_type: "project_memory",
1002
+ });
1003
+ assert.equal(ownRoleMemory.content, "long-term memory of instance one");
996
1004
  });
997
1005
  });
998
1006
  it("returns memory stats through MCP dispatch", async () => {
@@ -1052,13 +1060,13 @@ describe("McpServer memory tools", () => {
1052
1060
  it("reports existing combined memory stats after auto registration", async () => {
1053
1061
  await withMemoryServer(async (server) => {
1054
1062
  const reportedStats = [];
1055
- const roleMemoryStore = Reflect.get(server, "roleMemoryStore");
1056
- await roleMemoryStore.createMemory({
1063
+ // 当前架构:统计只来自实例 store(roleMemoryStore 合并统计已随双库架构移除)
1064
+ const instanceStore = Reflect.get(server, "memoryStore");
1065
+ await instanceStore.createMemory({
1057
1066
  memory_type: "project_memory",
1058
1067
  uri: "project://test-aws/existing-permanent-memory",
1059
1068
  content: "existing role memory should be visible on dashboard startup",
1060
1069
  });
1061
- // hasRoleName=true 使 reportCombinedMemoryStats 合并 roleMemoryStore 统计;
1062
1070
  // profileSynced=true 阻止 activelySyncProfile 异步调用 getProfile(mock 缺失该方法);
1063
1071
  // maybeSyncPermanentMemoryToServer 覆盖为空函数避免异步操作干扰 tmpdir cleanup。
1064
1072
  Reflect.set(server, "hasRoleName", true);
@@ -1456,7 +1464,7 @@ describe("McpServer memory tools", () => {
1456
1464
  else {
1457
1465
  process.env.AWS_WORKSPACE_PATH = previousWorkspacePath;
1458
1466
  }
1459
- await rm(dir, { recursive: true, force: true });
1467
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
1460
1468
  }
1461
1469
  });
1462
1470
  it("rejects create_memory with mixed existing and non-existent bound files", async () => {
@@ -1483,7 +1491,7 @@ describe("McpServer memory tools", () => {
1483
1491
  else {
1484
1492
  process.env.AWS_WORKSPACE_PATH = previousWorkspacePath;
1485
1493
  }
1486
- await rm(dir, { recursive: true, force: true });
1494
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
1487
1495
  }
1488
1496
  });
1489
1497
  it("allows update_memory without bound_files when existing bound files are absent", async () => {
@@ -1532,7 +1540,7 @@ describe("McpServer memory tools", () => {
1532
1540
  else {
1533
1541
  process.env.AWS_WORKSPACE_PATH = previousWorkspacePath;
1534
1542
  }
1535
- await rm(dir, { recursive: true, force: true });
1543
+ await rm(dir, { recursive: true, force: true, maxRetries: 10, retryDelay: 100 });
1536
1544
  }
1537
1545
  });
1538
1546
  });
@@ -46,4 +46,24 @@ export declare const QUERY_FILE_CHANGES_HISTORY_TOOL: Tool;
46
46
 
47
47
  export declare const MEMORY_TOOL_NAMES: ReadonlySet<string>;
48
48
 
49
+ export declare const LAUNCH_CONFIG_LIST_TOOL: Tool;
50
+
51
+ export declare const LAUNCH_CONFIG_CREATE_TOOL: Tool;
52
+
53
+ export declare const LAUNCH_CONFIG_UPDATE_TOOL: Tool;
54
+
55
+ export declare const LAUNCH_CONFIG_DELETE_TOOL: Tool;
56
+
57
+ export declare const LAUNCH_CONFIG_START_TOOL: Tool;
58
+
59
+ export declare const LAUNCH_CONFIG_RESTART_TOOL: Tool;
60
+
61
+ export declare const LAUNCH_CONFIG_STOP_TOOL: Tool;
62
+
63
+ export declare const LAUNCH_CONFIG_LOGS_TOOL: Tool;
64
+
65
+ export declare const LAUNCH_CONFIG_STATUS_TOOL: Tool;
66
+
67
+ export declare const LAUNCH_CONFIG_TOOL_NAMES: ReadonlySet<string>;
68
+
49
69
  export declare const MCP_TOOLS: Tool[];
@@ -1,24 +1,24 @@
1
- import{CREATE_MEMORY_TOOL as e,DELETE_MEMORY_TOOL as t,GET_MEMORY_STATS_TOOL as r,LIST_MEMORIES_TOOL as i,READ_MEMORY_TOOL as n,SEARCH_MEMORY_TOOL as s,UPDATE_MEMORY_TOOL as p,LIST_MEMORIES_BY_FILE_TOOL as o,ABANDON_MEMORY_UPDATE_TOOL as a,MEMORY_RECURRENCE_TOOL as c,MEMORY_RECURRENCE_COMPLETE_TOOL as d}from"./memory-tools.js";import{CREATE_MEMORY_TOOL as Y,DELETE_MEMORY_TOOL as G,GET_MEMORY_STATS_TOOL as f,LIST_MEMORIES_TOOL as H,READ_MEMORY_TOOL as K,SEARCH_MEMORY_TOOL as w,UPDATE_MEMORY_TOOL as B,LIST_MEMORIES_BY_FILE_TOOL as F,ABANDON_MEMORY_UPDATE_TOOL as J,MEMORY_RECURRENCE_TOOL as V,MEMORY_RECURRENCE_COMPLETE_TOOL as W}from"./memory-tools.js";const _={name:"get_colleague",description:"\u83B7\u53D6\u5F53\u524D Agent \u53EF\u89C1\u7684\u540C\u4E8B Agent \u5217\u8868\uFF0C\u5305\u542B\u5728\u7EBF\u548C\u79BB\u7EBF\u72B6\u6001\u3002\u6BCF\u4E2A\u540C\u4E8B\u8FD4\u56DE id\u3001\u89D2\u8272ID\uFF08roleId\uFF09\u3001\u89D2\u8272\u540D\u79F0\uFF08roleName\uFF09\u3001\u9879\u76EEID\uFF1B\u914D\u5408 query_file_changes_history \u53EF\u6309\u540C\u4E8B\u7684 roleId/agentId \u8FC7\u6EE4\u67E5\u8BE2\u5176\u6587\u4EF6\u53D8\u66F4\u5386\u53F2\u3002",inputSchema:{type:"object",properties:{},required:[]}},m={name:"get_group_rooms",description:"\u83B7\u53D6\u5F53\u524D Agent \u5728\u5173\u7CFB\u56FE\u4E2D\u53EF\u53D1\u73B0\u7684\u7FA4\u7EC4\u5217\u8868\uFF0C\u5305\u62EC\u9879\u76EE\u516C\u5171\u7FA4\u804A\u4EE5\u53CA\u81EA\u5DF1\u6240\u5728\u7684\u5C0F\u7EC4\u7FA4\u3002",inputSchema:{type:"object",properties:{},required:[]}},E={name:"get_profile",description:`\u83B7\u53D6\u5F53\u524D Agent \u7684\u4E2A\u4EBA\u4FE1\u606F\uFF0C\u5305\u62EC ID\u3001\u89D2\u8272 ID/\u540D\u79F0\u3001\u663E\u793A\u540D\u79F0\u3001\u63D0\u793A\u8BCD\u7B49\u3002
1
+ import{CREATE_MEMORY_TOOL as e,DELETE_MEMORY_TOOL as t,GET_MEMORY_STATS_TOOL as i,LIST_MEMORIES_TOOL as n,READ_MEMORY_TOOL as r,SEARCH_MEMORY_TOOL as o,UPDATE_MEMORY_TOOL as p,LIST_MEMORIES_BY_FILE_TOOL as s,ABANDON_MEMORY_UPDATE_TOOL as c,MEMORY_RECURRENCE_TOOL as a,MEMORY_RECURRENCE_COMPLETE_TOOL as d}from"./memory-tools.js";import{CREATE_MEMORY_TOOL as V,DELETE_MEMORY_TOOL as W,GET_MEMORY_STATS_TOOL as $,LIST_MEMORIES_TOOL as Q,READ_MEMORY_TOOL as z,SEARCH_MEMORY_TOOL as X,UPDATE_MEMORY_TOOL as Z,LIST_MEMORIES_BY_FILE_TOOL as ee,ABANDON_MEMORY_UPDATE_TOOL as te,MEMORY_RECURRENCE_TOOL as ie,MEMORY_RECURRENCE_COMPLETE_TOOL as ne}from"./memory-tools.js";const _={name:"get_colleague",description:"\u83B7\u53D6\u5F53\u524D Agent \u53EF\u89C1\u7684\u540C\u4E8B Agent \u5217\u8868\uFF0C\u5305\u542B\u5728\u7EBF\u548C\u79BB\u7EBF\u72B6\u6001\u3002\u6BCF\u4E2A\u540C\u4E8B\u8FD4\u56DE id\u3001\u89D2\u8272ID\uFF08roleId\uFF09\u3001\u89D2\u8272\u540D\u79F0\uFF08roleName\uFF09\u3001\u9879\u76EEID\uFF1B\u914D\u5408 query_file_changes_history \u53EF\u6309\u540C\u4E8B\u7684 roleId/agentId \u8FC7\u6EE4\u67E5\u8BE2\u5176\u6587\u4EF6\u53D8\u66F4\u5386\u53F2\u3002",inputSchema:{type:"object",properties:{},required:[]}},g={name:"get_group_rooms",description:"\u83B7\u53D6\u5F53\u524D Agent \u5728\u5173\u7CFB\u56FE\u4E2D\u53EF\u53D1\u73B0\u7684\u7FA4\u7EC4\u5217\u8868\uFF0C\u5305\u62EC\u9879\u76EE\u516C\u5171\u7FA4\u804A\u4EE5\u53CA\u81EA\u5DF1\u6240\u5728\u7684\u5C0F\u7EC4\u7FA4\u3002",inputSchema:{type:"object",properties:{},required:[]}},m={name:"get_profile",description:`\u83B7\u53D6\u5F53\u524D Agent \u7684\u4E2A\u4EBA\u4FE1\u606F\uFF0C\u5305\u62EC ID\u3001\u89D2\u8272 ID/\u540D\u79F0\u3001\u663E\u793A\u540D\u79F0\u3001\u63D0\u793A\u8BCD\u7B49\u3002
2
2
 
3
3
  \u3010\u7CFB\u7EDF\u63D0\u793A\u8BCD\u5206\u5C42\u7ED3\u6784\u3011
4
4
  \u8FD4\u56DE\u7684 prompt \u5B57\u6BB5\u662F\u89D2\u8272/\u5B9E\u4F8B\u63D0\u793A\u8BCD\uFF08System 2\uFF09\uFF0CglobalAgentPrompt \u662F\u5168\u5C40\u7CFB\u7EDF\u63D0\u793A\u8BCD\uFF08System 1\uFF09\u3002
5
5
  \u4E09\u5C42\u63D0\u793A\u8BCD\uFF08\u5168\u5C40\u2192\u89D2\u8272\u2192\u8BB0\u5FC6\uFF09\u7531 runtime adapter \u5728\u4F1A\u8BDD\u521B\u5EFA\u65F6\u6CE8\u5165\uFF0C
6
6
  ACode \u76F4\u63A5\u6CE8\u5165\u4E3A\u524D\u4E09\u6761 system role \u6D88\u606F\uFF0COpenCode/Claude \u5408\u5E76\u4E3A\u4E00\u6761 system prompt\u3002
7
- MCP \u5DE5\u5177\uFF08poll_message/get_message\uFF09\u4E0D\u518D\u8FD4\u56DE systemMessages\u3002`,inputSchema:{type:"object",properties:{},required:[]}},y={name:"hire_colleague",description:"\u5411\u4EBA\u4E8B\u90E8\u53D1\u8D77\u62DB\u8058\u540C\u4E8B\u8BF7\u6C42\uFF0C\u76F4\u63A5\u6309\u521B\u5EFA\u89D2\u8272\u5B9E\u4F8B\u6240\u9700\u53C2\u6570\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684 Agent \u540C\u4E8B\u3002",inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF0C\u4E0D\u4F20\u65F6\u7531\u670D\u52A1\u7AEF\u6309\u9ED8\u8BA4\u903B\u8F91\u5904\u7406\u3002"},roleName:{type:"string",description:"\u89D2\u8272\u540D\u3002\u4E0E newRoleName \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\u6309\u670D\u52A1\u7AEF\u73B0\u6709\u521B\u5EFA\u89C4\u5219\u5904\u7406\u3002"},newRoleName:{type:"string",description:"\u65B0\u89D2\u8272\u540D\u3002\u7528\u4E8E\u9700\u8981\u663E\u5F0F\u521B\u5EFA\u65B0\u89D2\u8272\u5B9E\u4F8B\u65F6\u4F20\u5165\u3002"},displayName:{type:"string",description:"\u65B0\u540C\u4E8B\u663E\u793A\u540D\u3002"},prompt:{type:"string",description:"\u65B0\u540C\u4E8B\u804C\u8D23\u8BF4\u660E\u6216\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002"},workspacePath:{type:"string",description:"\u65B0\u540C\u4E8B\u5DE5\u4F5C\u76EE\u5F55\u3002"},myYmlPath:{type:"string",description:"my.yml \u8DEF\u5F84\uFF0C\u53EF\u9009\u3002"},myYmlContent:{type:"string",description:"my.yml \u5185\u5BB9\uFF0C\u53EF\u9009\u3002"},runtimeSkillEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 skill\u3002"},runtimeMcpEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 MCP\u3002"},runtimeCcSwitchEnabledTools:{type:"string",description:"\u521D\u59CB\u5316\u542F\u7528\u7684\u5DE5\u5177\u5217\u8868 JSON \u5B57\u7B26\u4E32\u3002"}},required:["workspacePath"]}},O={name:"hire_colleagues_batch",description:"\u5411\u4EBA\u4E8B\u90E8\u53D1\u8D77\u6279\u91CF\u62DB\u8058\u540C\u4E8B\u8BF7\u6C42\uFF0C\u4E00\u6B21\u63D0\u4EA4\u591A\u4E2A\u5F85\u5BA1\u6279\u62DB\u8058\u9879\uFF0C\u7531\u5BA1\u6279\u4EBA\u9010\u9879\u6279\u51C6\u6216\u62D2\u7EDD\u540E\u7EDF\u4E00\u8FD4\u56DE\u7ED3\u679C\u3002",inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF0C\u4E0D\u4F20\u65F6\u7531\u670D\u52A1\u7AEF\u6309\u9ED8\u8BA4\u903B\u8F91\u5904\u7406\u3002"},items:{type:"array",description:"\u5F85\u6279\u91CF\u62DB\u8058\u7684\u540C\u4E8B\u5217\u8868\u3002\u6BCF\u4E00\u9879\u5BF9\u5E94\u4E00\u4E2A\u5F85\u5BA1\u6279\u7684\u62DB\u8058\u8BF7\u6C42\u3002",items:{type:"object",properties:{roleName:{type:"string",description:"\u89D2\u8272\u540D\u3002\u4E0E newRoleName \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\u6309\u670D\u52A1\u7AEF\u73B0\u6709\u521B\u5EFA\u89C4\u5219\u5904\u7406\u3002"},newRoleName:{type:"string",description:"\u65B0\u89D2\u8272\u540D\u3002\u7528\u4E8E\u9700\u8981\u663E\u5F0F\u521B\u5EFA\u65B0\u89D2\u8272\u5B9E\u4F8B\u65F6\u4F20\u5165\u3002"},displayName:{type:"string",description:"\u65B0\u540C\u4E8B\u663E\u793A\u540D\u3002"},prompt:{type:"string",description:"\u65B0\u540C\u4E8B\u804C\u8D23\u8BF4\u660E\u6216\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002"},workspacePath:{type:"string",description:"\u65B0\u540C\u4E8B\u5DE5\u4F5C\u76EE\u5F55\u3002"},myYmlPath:{type:"string",description:"my.yml \u8DEF\u5F84\uFF0C\u53EF\u9009\u3002"},myYmlContent:{type:"string",description:"my.yml \u5185\u5BB9\uFF0C\u53EF\u9009\u3002"},runtimeSkillEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 skill\u3002"},runtimeMcpEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 MCP\u3002"},runtimeCcSwitchEnabledTools:{type:"string",description:"\u521D\u59CB\u5316\u542F\u7528\u7684\u5DE5\u5177\u5217\u8868 JSON \u5B57\u7B26\u4E32\u3002"}},required:["workspacePath"]},minItems:1}},required:["items"]}},g={name:"send_group",description:"\u5411\u516C\u5171\u7FA4\u804A\u53D1\u9001\u6D88\u606F\uFF0C\u6240\u6709\u5728\u7EBF\u53C2\u4E0E\u8005\u90FD\u80FD\u6536\u5230\u3002\u56DE\u590D\u7FA4\u6D88\u606F\u65F6\u5EFA\u8BAE\u4F20\u5165\u6D88\u606F\u4E2D\u7684 projectId\uFF0C\u786E\u4FDD\u56DE\u590D\u5230\u6B63\u786E\u7684\u9879\u76EE\u7FA4\u804A\u3002",inputSchema:{type:"object",properties:{content:{type:"string",description:"\u6D88\u606F\u5185\u5BB9"},projectId:{type:"string",description:"\u76EE\u6807\u9879\u76EE ID\uFF08\u53EF\u9009\uFF09\u3002\u4E0D\u4F20\u5219\u4F7F\u7528 Agent \u6240\u5C5E\u9879\u76EE\uFF08\u7531\u670D\u52A1\u7AEF\u51B3\u5B9A\uFF09\u3002\u56DE\u590D\u7FA4\u6D88\u606F\u65F6\u5E94\u4F20\u5165\u6D88\u606F\u4E2D\u7684 projectId\uFF0C\u786E\u4FDD\u56DE\u590D\u5230\u6B63\u786E\u7684\u9879\u76EE\u7FA4\u804A\u3002"},roomId:{type:"string",description:"\u76EE\u6807\u7FA4\u804A\u623F\u95F4 ID\uFF08\u53EF\u9009\uFF09\u3002\u5F53\u56DE\u590D get_group_rooms \u6216\u7FA4\u6D88\u606F\u4E2D\u7684\u5C0F\u7EC4\u7FA4\u65F6\uFF0C\u4F18\u5148\u4F20\u5165 roomId\uFF0C\u907F\u514D\u8BEF\u53D1\u5230\u9879\u76EE\u516C\u5171\u7FA4\u3002"}},required:["content"]}},u={name:"send_private",description:"\u53D1\u9001\u79C1\u4FE1\u7ED9\u6307\u5B9A\u7528\u6237\u3002\u652F\u6301\u4E24\u79CD\u6A21\u5F0F\uFF1A\u901A\u77E5\u5F0F\uFF08waitReply=false\uFF09\u548C\u8C03\u7528\u5F0F\uFF08waitReply=true\uFF0C\u963B\u585E\u7B49\u5F85\u56DE\u590D\uFF09\u3002",inputSchema:{type:"object",properties:{targetId:{type:"string",description:"\u76EE\u6807\u7528\u6237ID"},content:{type:"string",description:"\u6D88\u606F\u5185\u5BB9"},waitReply:{type:"boolean",description:"\u662F\u5426\u7B49\u5F85\u5BF9\u65B9\u56DE\u590D\uFF08\u8C03\u7528\u5F0F\uFF09\u3002\u4E3Atrue\u65F6\u4F1A\u963B\u585E\u7B49\u5F85\u56DE\u590D\uFF0C\u9ED8\u8BA4\u6C38\u4E45\u963B\u585E\u76F4\u5230\u6536\u5230\u56DE\u590D"},replyToCallId:{type:"string",description:"\u56DE\u590D\u7684\u8C03\u7528ID\uFF08\u7528\u4E8E\u56DE\u590D\u8C03\u7528\u5F0F\u6D88\u606F\uFF09"},timeoutMs:{type:"number",description:"\u7B49\u5F85\u56DE\u590D\u7684\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF0C\u53EF\u9009\uFF09\u3002\u672A\u6307\u5B9A\u6216\u22640\u65F6\u6C38\u4E45\u963B\u585E\u7B49\u5F85\uFF0C>0\u65F6\u6309\u6307\u5B9A\u65F6\u95F4\u8D85\u65F6"}},required:["targetId","content"]}},T={name:"poll_message",description:`\u83B7\u53D6\u672A\u8BFB\u6D88\u606F\uFF08\u5305\u62EC\u7FA4\u6D88\u606F\u548C\u79C1\u4FE1\uFF09\uFF0C\u6301\u7EED\u963B\u585E\u7B49\u5F85\u76F4\u5230\u6709\u65B0\u6D88\u606F\uFF0C\u8FD9\u662F\u83B7\u53D6\u6D88\u606F\u7684\u4E3B\u8981\u63A5\u53E3\u3002
7
+ MCP \u5DE5\u5177\uFF08poll_message/get_message\uFF09\u4E0D\u518D\u8FD4\u56DE systemMessages\u3002`,inputSchema:{type:"object",properties:{},required:[]}},y={name:"hire_colleague",description:"\u5411\u4EBA\u4E8B\u90E8\u53D1\u8D77\u62DB\u8058\u540C\u4E8B\u8BF7\u6C42\uFF0C\u76F4\u63A5\u6309\u521B\u5EFA\u89D2\u8272\u5B9E\u4F8B\u6240\u9700\u53C2\u6570\u521B\u5EFA\u4E00\u4E2A\u65B0\u7684 Agent \u540C\u4E8B\u3002",inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF0C\u4E0D\u4F20\u65F6\u7531\u670D\u52A1\u7AEF\u6309\u9ED8\u8BA4\u903B\u8F91\u5904\u7406\u3002"},roleName:{type:"string",description:"\u89D2\u8272\u540D\u3002\u4E0E newRoleName \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\u6309\u670D\u52A1\u7AEF\u73B0\u6709\u521B\u5EFA\u89C4\u5219\u5904\u7406\u3002"},newRoleName:{type:"string",description:"\u65B0\u89D2\u8272\u540D\u3002\u7528\u4E8E\u9700\u8981\u663E\u5F0F\u521B\u5EFA\u65B0\u89D2\u8272\u5B9E\u4F8B\u65F6\u4F20\u5165\u3002"},displayName:{type:"string",description:"\u65B0\u540C\u4E8B\u663E\u793A\u540D\u3002"},prompt:{type:"string",description:"\u65B0\u540C\u4E8B\u804C\u8D23\u8BF4\u660E\u6216\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002"},workspacePath:{type:"string",description:"\u65B0\u540C\u4E8B\u5DE5\u4F5C\u76EE\u5F55\u3002"},myYmlPath:{type:"string",description:"my.yml \u8DEF\u5F84\uFF0C\u53EF\u9009\u3002"},myYmlContent:{type:"string",description:"my.yml \u5185\u5BB9\uFF0C\u53EF\u9009\u3002"},runtimeSkillEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 skill\u3002"},runtimeMcpEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 MCP\u3002"},runtimeCcSwitchEnabledTools:{type:"string",description:"\u521D\u59CB\u5316\u542F\u7528\u7684\u5DE5\u5177\u5217\u8868 JSON \u5B57\u7B26\u4E32\u3002"}},required:["workspacePath"]}},u={name:"hire_colleagues_batch",description:"\u5411\u4EBA\u4E8B\u90E8\u53D1\u8D77\u6279\u91CF\u62DB\u8058\u540C\u4E8B\u8BF7\u6C42\uFF0C\u4E00\u6B21\u63D0\u4EA4\u591A\u4E2A\u5F85\u5BA1\u6279\u62DB\u8058\u9879\uFF0C\u7531\u5BA1\u6279\u4EBA\u9010\u9879\u6279\u51C6\u6216\u62D2\u7EDD\u540E\u7EDF\u4E00\u8FD4\u56DE\u7ED3\u679C\u3002",inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF0C\u4E0D\u4F20\u65F6\u7531\u670D\u52A1\u7AEF\u6309\u9ED8\u8BA4\u903B\u8F91\u5904\u7406\u3002"},items:{type:"array",description:"\u5F85\u6279\u91CF\u62DB\u8058\u7684\u540C\u4E8B\u5217\u8868\u3002\u6BCF\u4E00\u9879\u5BF9\u5E94\u4E00\u4E2A\u5F85\u5BA1\u6279\u7684\u62DB\u8058\u8BF7\u6C42\u3002",items:{type:"object",properties:{roleName:{type:"string",description:"\u89D2\u8272\u540D\u3002\u4E0E newRoleName \u4E8C\u9009\u4E00\uFF0C\u4F18\u5148\u6309\u670D\u52A1\u7AEF\u73B0\u6709\u521B\u5EFA\u89C4\u5219\u5904\u7406\u3002"},newRoleName:{type:"string",description:"\u65B0\u89D2\u8272\u540D\u3002\u7528\u4E8E\u9700\u8981\u663E\u5F0F\u521B\u5EFA\u65B0\u89D2\u8272\u5B9E\u4F8B\u65F6\u4F20\u5165\u3002"},displayName:{type:"string",description:"\u65B0\u540C\u4E8B\u663E\u793A\u540D\u3002"},prompt:{type:"string",description:"\u65B0\u540C\u4E8B\u804C\u8D23\u8BF4\u660E\u6216\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3002"},workspacePath:{type:"string",description:"\u65B0\u540C\u4E8B\u5DE5\u4F5C\u76EE\u5F55\u3002"},myYmlPath:{type:"string",description:"my.yml \u8DEF\u5F84\uFF0C\u53EF\u9009\u3002"},myYmlContent:{type:"string",description:"my.yml \u5185\u5BB9\uFF0C\u53EF\u9009\u3002"},runtimeSkillEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 skill\u3002"},runtimeMcpEnabled:{type:"boolean",description:"\u662F\u5426\u542F\u7528 MCP\u3002"},runtimeCcSwitchEnabledTools:{type:"string",description:"\u521D\u59CB\u5316\u542F\u7528\u7684\u5DE5\u5177\u5217\u8868 JSON \u5B57\u7B26\u4E32\u3002"}},required:["workspacePath"]},minItems:1}},required:["items"]}},O={name:"send_group",description:"\u5411\u516C\u5171\u7FA4\u804A\u53D1\u9001\u6D88\u606F\uFF0C\u6240\u6709\u5728\u7EBF\u53C2\u4E0E\u8005\u90FD\u80FD\u6536\u5230\u3002\u56DE\u590D\u7FA4\u6D88\u606F\u65F6\u5EFA\u8BAE\u4F20\u5165\u6D88\u606F\u4E2D\u7684 projectId\uFF0C\u786E\u4FDD\u56DE\u590D\u5230\u6B63\u786E\u7684\u9879\u76EE\u7FA4\u804A\u3002",inputSchema:{type:"object",properties:{content:{type:"string",description:"\u6D88\u606F\u5185\u5BB9"},projectId:{type:"string",description:"\u76EE\u6807\u9879\u76EE ID\uFF08\u53EF\u9009\uFF09\u3002\u4E0D\u4F20\u5219\u4F7F\u7528 Agent \u6240\u5C5E\u9879\u76EE\uFF08\u7531\u670D\u52A1\u7AEF\u51B3\u5B9A\uFF09\u3002\u56DE\u590D\u7FA4\u6D88\u606F\u65F6\u5E94\u4F20\u5165\u6D88\u606F\u4E2D\u7684 projectId\uFF0C\u786E\u4FDD\u56DE\u590D\u5230\u6B63\u786E\u7684\u9879\u76EE\u7FA4\u804A\u3002"},roomId:{type:"string",description:"\u76EE\u6807\u7FA4\u804A\u623F\u95F4 ID\uFF08\u53EF\u9009\uFF09\u3002\u5F53\u56DE\u590D get_group_rooms \u6216\u7FA4\u6D88\u606F\u4E2D\u7684\u5C0F\u7EC4\u7FA4\u65F6\uFF0C\u4F18\u5148\u4F20\u5165 roomId\uFF0C\u907F\u514D\u8BEF\u53D1\u5230\u9879\u76EE\u516C\u5171\u7FA4\u3002"}},required:["content"]}},E={name:"send_private",description:"\u53D1\u9001\u79C1\u4FE1\u7ED9\u6307\u5B9A\u7528\u6237\u3002\u652F\u6301\u4E24\u79CD\u6A21\u5F0F\uFF1A\u901A\u77E5\u5F0F\uFF08waitReply=false\uFF09\u548C\u8C03\u7528\u5F0F\uFF08waitReply=true\uFF0C\u963B\u585E\u7B49\u5F85\u56DE\u590D\uFF09\u3002",inputSchema:{type:"object",properties:{targetId:{type:"string",description:"\u76EE\u6807\u7528\u6237ID"},content:{type:"string",description:"\u6D88\u606F\u5185\u5BB9"},waitReply:{type:"boolean",description:"\u662F\u5426\u7B49\u5F85\u5BF9\u65B9\u56DE\u590D\uFF08\u8C03\u7528\u5F0F\uFF09\u3002\u4E3Atrue\u65F6\u4F1A\u963B\u585E\u7B49\u5F85\u56DE\u590D\uFF0C\u9ED8\u8BA4\u6C38\u4E45\u963B\u585E\u76F4\u5230\u6536\u5230\u56DE\u590D"},replyToCallId:{type:"string",description:"\u56DE\u590D\u7684\u8C03\u7528ID\uFF08\u7528\u4E8E\u56DE\u590D\u8C03\u7528\u5F0F\u6D88\u606F\uFF09"},timeoutMs:{type:"number",description:"\u7B49\u5F85\u56DE\u590D\u7684\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF0C\u53EF\u9009\uFF09\u3002\u672A\u6307\u5B9A\u6216\u22640\u65F6\u6C38\u4E45\u963B\u585E\u7B49\u5F85\uFF0C>0\u65F6\u6309\u6307\u5B9A\u65F6\u95F4\u8D85\u65F6"}},required:["targetId","content"]}},l={name:"poll_message",description:`\u83B7\u53D6\u672A\u8BFB\u6D88\u606F\uFF08\u5305\u62EC\u7FA4\u6D88\u606F\u548C\u79C1\u4FE1\uFF09\uFF0C\u6301\u7EED\u963B\u585E\u7B49\u5F85\u76F4\u5230\u6709\u65B0\u6D88\u606F\uFF0C\u8FD9\u662F\u83B7\u53D6\u6D88\u606F\u7684\u4E3B\u8981\u63A5\u53E3\u3002
8
8
 
9
9
  \u3010\u8FD4\u56DE\u503C\u8BF4\u660E\u3011
10
10
  - directMessages: \u79C1\u4FE1\u6D88\u606F
11
11
  - groupMessages: \u7FA4\u804A\u6D88\u606F
12
12
 
13
13
  \u7CFB\u7EDF\u63D0\u793A\u8BCD\uFF08\u5168\u5C40\u63D0\u793A\u8BCD + \u89D2\u8272\u63D0\u793A\u8BCD + \u542F\u52A8\u8BB0\u5FC6\uFF09\u5DF2\u7531 runtime adapter
14
- \u5728\u4F1A\u8BDD\u521B\u5EFA\u65F6\u6CE8\u5165\uFF0C\u65E0\u9700\u901A\u8FC7 MCP \u83B7\u53D6\u3002`,inputSchema:{type:"object",properties:{},required:[]}},l={name:"get_message",description:`\u83B7\u53D6\u672A\u8BFB\u6D88\u606F\uFF08\u975E\u963B\u585E\uFF09\uFF0C\u4ECE\u6D88\u606F\u7F13\u51B2\u533A\u83B7\u53D6\u6D88\u606F\uFF0C\u7ACB\u5373\u8FD4\u56DE\uFF0C\u82E5\u5F53\u524D\u6CA1\u6709\u4EFB\u52A1\u5E94\u4F7F\u7528 poll_message\u3002
14
+ \u5728\u4F1A\u8BDD\u521B\u5EFA\u65F6\u6CE8\u5165\uFF0C\u65E0\u9700\u901A\u8FC7 MCP \u83B7\u53D6\u3002`,inputSchema:{type:"object",properties:{},required:[]}},I={name:"get_message",description:`\u83B7\u53D6\u672A\u8BFB\u6D88\u606F\uFF08\u975E\u963B\u585E\uFF09\uFF0C\u4ECE\u6D88\u606F\u7F13\u51B2\u533A\u83B7\u53D6\u6D88\u606F\uFF0C\u7ACB\u5373\u8FD4\u56DE\uFF0C\u82E5\u5F53\u524D\u6CA1\u6709\u4EFB\u52A1\u5E94\u4F7F\u7528 poll_message\u3002
15
15
 
16
16
  \u3010\u8FD4\u56DE\u503C\u8BF4\u660E\u3011
17
17
  - directMessages: \u79C1\u4FE1\u6D88\u606F
18
18
  - groupMessages: \u7FA4\u804A\u6D88\u606F
19
19
 
20
- \u7CFB\u7EDF\u63D0\u793A\u8BCD\u5DF2\u7531 runtime adapter \u5728\u4F1A\u8BDD\u521B\u5EFA\u65F6\u6CE8\u5165\uFF0C\u65E0\u9700\u901A\u8FC7 MCP \u83B7\u53D6\u3002`,inputSchema:{type:"object",properties:{},required:[]}},I={name:"get_dm_history",description:"\u83B7\u53D6\u79C1\u4FE1\u5386\u53F2\u6D88\u606F\u3002\u53EF\u4EE5\u83B7\u53D6\u4E0E\u7279\u5B9A\u7528\u6237\u7684\u5BF9\u8BDD\u5386\u53F2\uFF0C\u6216\u83B7\u53D6\u6240\u6709\u79C1\u4FE1\u5386\u53F2\u3002",inputSchema:{type:"object",properties:{targetUserId:{type:"string",description:"\u76EE\u6807\u7528\u6237ID\uFF08\u53EF\u9009\uFF09\u3002\u5982\u679C\u4E0D\u6307\u5B9A\uFF0C\u5219\u8FD4\u56DE\u6240\u6709\u79C1\u4FE1\u5386\u53F2\u3002"},limit:{type:"number",description:"\u83B7\u53D6\u6700\u8FD1\u5386\u53F2\u6D88\u606F\u7684\u6570\u91CF\uFF08\u9ED8\u8BA450\uFF09"},since:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\uFF0C\u53EF\u9009\uFF09\u3002\u65E9\u4E8E\u8BE5\u65F6\u95F4\u7684\u6D88\u606F\u5C06\u4E0D\u4F1A\u88AB\u8FD4\u56DE\u3002"}},required:[]}},R={name:"get_group_history",description:"\u83B7\u53D6\u516C\u5171\u7FA4\u804A\u7684\u5386\u53F2\u6D88\u606F\u3002",inputSchema:{type:"object",properties:{limit:{type:"number",description:"\u83B7\u53D6\u6700\u8FD1\u5386\u53F2\u6D88\u606F\u7684\u6570\u91CF\uFF08\u9ED8\u8BA450\uFF09"},since:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\uFF0C\u53EF\u9009\uFF09\u3002\u65E9\u4E8E\u8BE5\u65F6\u95F4\u7684\u6D88\u606F\u5C06\u4E0D\u4F1A\u88AB\u8FD4\u56DE\u3002"}},required:[]}},A={name:"my_task",description:"\u83B7\u53D6\u5F53\u524D Agent \u5DF2\u901A\u8FC7 poll_message \u540E\u53F0\u9759\u9ED8\u62A2\u5360\u6216\u6B63\u5728\u5904\u7406\u7684\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5217\u8868\u3002\u6B64\u5DE5\u5177\u53EA\u8BFB\u53D6\u5DF2\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u4EFB\u52A1\u8BE6\u60C5\uFF0C\u4E0D\u4F1A\u4E3B\u52A8\u62A2\u5360\u65B0\u7684\u5F85\u5904\u7406\u8282\u70B9\u3002\u6536\u5230\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5206\u914D\u901A\u77E5\u540E\uFF0C\u8C03\u7528\u6B64\u5DE5\u5177\u83B7\u53D6\u4EFB\u52A1\u6307\u4EE4\u3001\u524D\u5E8F\u8282\u70B9\u8F93\u51FA\u3001requiredOutput \u8F93\u51FA\u5951\u7EA6\u7B49\uFF1B\u5B8C\u6210\u540E\u5FC5\u987B\u6309 requiredOutput \u4F7F\u7528 submit_task_result \u63D0\u4EA4\u7ED3\u679C\uFF0C\u63D0\u4EA4\u65F6\u8BF7\u4E00\u5E76\u4F20\u5165 changeLog\uFF08\u672C\u6B21\u5904\u7406\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF0C\u5305\u542B operation \u4E0E path\uFF09\uFF0C\u7528\u4E8E AI \u56DE\u9000\u3002\u82E5 requiredOutput \u7684\u76EE\u6807\u662F HUMAN \u8282\u70B9\uFF0C\u63D0\u4EA4\u7ED9\u8BE5\u5206\u652F\u7684 output \u5FC5\u987B\u5305\u542B questions \u6570\u7EC4\u4E14\u81F3\u5C11\u4E00\u4E2A\u9898\u76EE\u5E26 question \u5B57\u6BB5\u3002",inputSchema:{type:"object",properties:{},required:[]}},L={name:"create_task_instance_comment",description:"\u4E3A\u5F53\u524D\u6B63\u5728\u5904\u7406\u7684\u6D41\u7A0B\u7EBF\u5B9E\u4F8B\u521B\u5EFA\u4E00\u6761\u5B9E\u4F8B\u7EA7\u7559\u8A00\u3002\u4EC5\u5141\u8BB8\u7531\u540E\u53F0\u9759\u9ED8\u62A2\u5360\u540E\u6B63\u5728\u5904\u7406\u8BE5\u5B9E\u4F8B\u8282\u70B9\u7684 Agent \u8C03\u7528\uFF1B\u5F53\u9700\u8981\u544A\u77E5\u540E\u7EED\u8282\u70B9\u9700\u8981\u6CE8\u610F\u7684\u70B9\u65F6\u4F7F\u7528\u7559\u8A00\u8FDB\u884C\u7559\u8A00\uFF1B\u7559\u8A00\u4F1A\u5728\u5B9E\u4F8B\u5217\u8868\u201C\u67E5\u770B\u7559\u8A00\u201D\u548C\u540E\u7EED my_task \u8FD4\u56DE\u4E2D\u5C55\u793A\u3002",inputSchema:{type:"object",properties:{taskInstanceId:{type:"string",description:"\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5B9E\u4F8BID\uFF08\u4ECE my_task \u8FD4\u56DE\u4E2D\u83B7\u53D6\uFF09"},content:{type:"string",description:"\u7559\u8A00\u5185\u5BB9"}},required:["taskInstanceId","content"]}},S={name:"submit_task_result",description:`\u63D0\u4EA4\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u7684\u6267\u884C\u7ED3\u679C\u3002\u5B8C\u6210\u4EFB\u52A1\u540E\u8C03\u7528\u6B64\u5DE5\u5177\uFF0C\u8F93\u51FA\u5C06\u4F20\u9012\u7ED9\u4E0B\u4E00\u4E2A\u8282\u70B9\u3002outputPayload \u5FC5\u987B\u9075\u5FAA my_task \u8FD4\u56DE\u7684 requiredOutput\uFF1A\u6709\u540E\u7EE7\u5206\u652F\u65F6\u5FC5\u987B\u662F JSON \u6570\u7EC4\uFF0C\u6BCF\u9879\u5305\u542B targetNodeId \u548C output\u3002\u82E5\u76EE\u6807\u5206\u652F\u662F HUMAN \u8282\u70B9\uFF0Coutput \u5FC5\u987B\u662F JSON \u5BF9\u8C61\u5E76\u5305\u542B\u975E\u7A7A questions \u6570\u7EC4\uFF0Cquestions \u81F3\u5C11\u4E00\u4E2A\u9898\u76EE\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 question \u5B57\u6BB5\u3002
21
- \u63D0\u4EA4\u65F6\u8BF7\u4E00\u5E76\u4F20\u5165 changeLog\uFF08\u672C\u6B21\u4EFB\u52A1\u5904\u7406\u671F\u95F4\u4EA7\u751F\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF09\uFF0C\u7528\u4E8E\u300CAI \u56DE\u9000\u300D\u7CBE\u786E\u8FD8\u539F\uFF1A\u6BCF\u9879\u5305\u542B operation(CREATE|UPDATE|DELETE|READ)\u3001path(\u76F8\u5BF9\u5DE5\u4F5C\u533A\u8DEF\u5F84)\u3001\u53EF\u9009 targetType/summary/beforeHash/afterHash/metadata\u3002\u672A\u8BB0\u5F55\u53D8\u66F4\u4F1A\u5BFC\u81F4 AI \u56DE\u9000\u7F3A\u5C11\u4F9D\u636E\u3002`,inputSchema:{type:"object",properties:{nodeId:{type:"string",description:"\u4EFB\u52A1\u8282\u70B9ID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6\uFF09"},outputPayload:{type:"string",description:'\u4EFB\u52A1\u6267\u884C\u7ED3\u679C\u7684 JSON \u5B57\u7B26\u4E32\u3002\u5FC5\u987B\u6309 my_task.requiredOutput \u9009\u62E9\u76EE\u6807\u5206\u652F\uFF0C\u4F8B\u5982 [{"targetNodeId":"<\u76EE\u6807\u8282\u70B9\u6A21\u677FID>","output":{...}}]\uFF1B\u63D0\u4EA4\u5230 HUMAN \u8282\u70B9\u65F6 output \u5FC5\u987B\u5F62\u5982 {"questions":[{"question":"\u8BF7\u786E\u8BA4...","options":[{"label":"\u901A\u8FC7"}]}]}\u3002'},changeLog:{type:"array",description:"\u53EF\u9009\u3002\u672C\u6B21\u4EFB\u52A1\u5904\u7406\u671F\u95F4\u4EA7\u751F\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF0C\u7528\u4E8E AI \u56DE\u9000\u3002\u6BCF\u9879: { operation: 'CREATE'|'UPDATE'|'DELETE'|'READ', targetType?: string, path: string, summary?: string, beforeHash?: string, afterHash?: string, metadata?: string }\u3002\u5EFA\u8BAE\u5728\u5B8C\u6210\u4EFB\u52A1\u3001\u8C03\u7528 submit_task_result \u65F6\u4E00\u5E76\u63D0\u4EA4\u3002",items:{type:"object",properties:{operation:{type:"string",enum:["CREATE","UPDATE","DELETE","READ"],description:"\u53D8\u66F4\u64CD\u4F5C\u7C7B\u578B"},targetType:{type:"string",description:"\u53D8\u66F4\u76EE\u6807\u7C7B\u578B\uFF0C\u7F3A\u7701\u89C6\u4E3A FILE"},path:{type:"string",description:"\u53D8\u66F4\u6587\u4EF6/\u8D44\u6E90\u7684\u76F8\u5BF9\u8DEF\u5F84"},summary:{type:"string",description:"\u53D8\u66F4\u6458\u8981\u8BF4\u660E"},beforeHash:{type:"string",description:"\u53D8\u66F4\u524D\u5185\u5BB9 hash\uFF08\u5DEE\u5F02\u56DE\u9000\u7528\uFF09"},afterHash:{type:"string",description:"\u53D8\u66F4\u540E\u5185\u5BB9 hash\uFF08\u5DEE\u5F02\u56DE\u9000\u7528\uFF09"},metadata:{type:"string",description:"\u9644\u52A0\u5143\u6570\u636E JSON \u5B57\u7B26\u4E32\uFF08\u5982 cacheKey\uFF09"}},required:["operation","path"]}}},required:["nodeId","outputPayload"]}},M={name:"start_task_rollback",description:"\u5C06\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u6D41\u7A0B\u7EBF AI \u56DE\u9000\u4EFB\u52A1\u6807\u8BB0\u4E3A\u56DE\u9000\u4E2D\u3002\u6536\u5230\u56DE\u9000\u59D4\u6258\u540E\uFF0C\u5F00\u59CB\u5B9E\u9645\u56DE\u9000\u524D\u8C03\u7528\u3002",inputSchema:{type:"object",properties:{rollbackTaskId:{type:"string",description:"AI \u56DE\u9000\u4EFB\u52A1ID\uFF08\u4ECE\u56DE\u9000\u59D4\u6258\u6D88\u606F\u4E2D\u83B7\u53D6\uFF09\u3002"}},required:["rollbackTaskId"]}},D={name:"finish_task_rollback",description:"\u5C06\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u6D41\u7A0B\u7EBF AI \u56DE\u9000\u4EFB\u52A1\u6807\u8BB0\u4E3A\u5DF2\u56DE\u9000\uFF0C\u5E76\u8BB0\u5F55\u56DE\u9000\u7ED3\u679C\u3002\u5B8C\u6210\u56DE\u9000\u540E\u8C03\u7528\u3002",inputSchema:{type:"object",properties:{rollbackTaskId:{type:"string",description:"AI \u56DE\u9000\u4EFB\u52A1ID\uFF08\u4ECE\u56DE\u9000\u59D4\u6258\u6D88\u606F\u4E2D\u83B7\u53D6\uFF09\u3002"},resultMessage:{type:"string",description:"\u56DE\u9000\u7ED3\u679C\u8BF4\u660E\uFF08\u53EF\u9009\uFF09\u3002"}},required:["rollbackTaskId"]}},b={name:"reject_task",description:"\u62D2\u7EDD\u5BF9\u524D\u5E8F\u8282\u70B9\u8F93\u51FA\u7684\u4EFB\u52A1\uFF0C\u4EFB\u52A1\u5C06\u56DE\u9000\u5230\u524D\u4E00\u4E2A\u8282\u70B9\u91CD\u65B0\u6267\u884C\u3002\u9002\u7528\u4E8E\u524D\u5E8F\u8F93\u51FA\u4E0D\u6EE1\u8DB3\u8981\u6C42\u6216\u65E0\u6CD5\u7EE7\u7EED\u6267\u884C\u7684\u573A\u666F\u3002",inputSchema:{type:"object",properties:{nodeId:{type:"string",description:"\u4EFB\u52A1\u8282\u70B9ID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6\uFF09"},reason:{type:"string",description:"\u62D2\u7EDD\u539F\u56E0"}},required:["nodeId","reason"]}},h={name:"terminate_task",description:"\u7EC8\u6B62\u6574\u4E2A\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u3002\u7EC8\u6B62\u540E\u4EFB\u52A1\u72B6\u6001\u53D8\u4E3A TERMINATED\uFF08\u5DF2\u7EC8\u6B62\uFF09\uFF0C\u6240\u6709\u672A\u5B8C\u6210\u7684\u8282\u70B9\u4E5F\u5C06\u88AB\u7EC8\u6B62\uFF0C\u4EFB\u52A1\u4E0D\u518D\u8FDB\u884C\u540E\u7EED\u6D41\u8F6C\u3002\u9002\u7528\u4E8E\u4EFB\u52A1\u65E0\u6CD5\u7EE7\u7EED\u6267\u884C\u6216\u9700\u8981\u5F3A\u5236\u505C\u6B62\u7684\u573A\u666F\u3002\u6CE8\u610F\uFF1A\u7EC8\u6B62\u64CD\u4F5C\u4E0D\u53EF\u9006\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\u3002",inputSchema:{type:"object",properties:{taskInstanceId:{type:"string",description:"\u4EFB\u52A1\u5B9E\u4F8BID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6 taskInstanceId\uFF09"},reason:{type:"string",description:"\u7EC8\u6B62\u539F\u56E0"}},required:["taskInstanceId","reason"]}},N={name:"get_debug_log_config",description:`\u83B7\u53D6 Agent Debug \u65E5\u5FD7\u7CFB\u7EDF\u7684\u5199\u5165\u914D\u7F6E\u3002\u8FD4\u56DE\u5199\u5165\u7AEF\u70B9 URL\u3001\u5F53\u524D Agent \u6240\u5C5E\u9879\u76EE\u540D\u3001\u4EE5\u53CA\u65E5\u5FD7\u5199\u5165\u5BC6\u94A5\uFF08logWriteKey\uFF09\u3002
20
+ \u7CFB\u7EDF\u63D0\u793A\u8BCD\u5DF2\u7531 runtime adapter \u5728\u4F1A\u8BDD\u521B\u5EFA\u65F6\u6CE8\u5165\uFF0C\u65E0\u9700\u901A\u8FC7 MCP \u83B7\u53D6\u3002`,inputSchema:{type:"object",properties:{},required:[]}},T={name:"get_dm_history",description:"\u83B7\u53D6\u79C1\u4FE1\u5386\u53F2\u6D88\u606F\u3002\u53EF\u4EE5\u83B7\u53D6\u4E0E\u7279\u5B9A\u7528\u6237\u7684\u5BF9\u8BDD\u5386\u53F2\uFF0C\u6216\u83B7\u53D6\u6240\u6709\u79C1\u4FE1\u5386\u53F2\u3002",inputSchema:{type:"object",properties:{targetUserId:{type:"string",description:"\u76EE\u6807\u7528\u6237ID\uFF08\u53EF\u9009\uFF09\u3002\u5982\u679C\u4E0D\u6307\u5B9A\uFF0C\u5219\u8FD4\u56DE\u6240\u6709\u79C1\u4FE1\u5386\u53F2\u3002"},limit:{type:"number",description:"\u83B7\u53D6\u6700\u8FD1\u5386\u53F2\u6D88\u606F\u7684\u6570\u91CF\uFF08\u9ED8\u8BA450\uFF09"},since:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\uFF0C\u53EF\u9009\uFF09\u3002\u65E9\u4E8E\u8BE5\u65F6\u95F4\u7684\u6D88\u606F\u5C06\u4E0D\u4F1A\u88AB\u8FD4\u56DE\u3002"}},required:[]}},A={name:"get_group_history",description:"\u83B7\u53D6\u516C\u5171\u7FA4\u804A\u7684\u5386\u53F2\u6D88\u606F\u3002",inputSchema:{type:"object",properties:{limit:{type:"number",description:"\u83B7\u53D6\u6700\u8FD1\u5386\u53F2\u6D88\u606F\u7684\u6570\u91CF\uFF08\u9ED8\u8BA450\uFF09"},since:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF08ISO 8601 \u683C\u5F0F\uFF0C\u53EF\u9009\uFF09\u3002\u65E9\u4E8E\u8BE5\u65F6\u95F4\u7684\u6D88\u606F\u5C06\u4E0D\u4F1A\u88AB\u8FD4\u56DE\u3002"}},required:[]}},L={name:"my_task",description:"\u83B7\u53D6\u5F53\u524D Agent \u5DF2\u901A\u8FC7 poll_message \u540E\u53F0\u9759\u9ED8\u62A2\u5360\u6216\u6B63\u5728\u5904\u7406\u7684\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5217\u8868\u3002\u6B64\u5DE5\u5177\u53EA\u8BFB\u53D6\u5DF2\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u4EFB\u52A1\u8BE6\u60C5\uFF0C\u4E0D\u4F1A\u4E3B\u52A8\u62A2\u5360\u65B0\u7684\u5F85\u5904\u7406\u8282\u70B9\u3002\u6536\u5230\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5206\u914D\u901A\u77E5\u540E\uFF0C\u8C03\u7528\u6B64\u5DE5\u5177\u83B7\u53D6\u4EFB\u52A1\u6307\u4EE4\u3001\u524D\u5E8F\u8282\u70B9\u8F93\u51FA\u3001requiredOutput \u8F93\u51FA\u5951\u7EA6\u7B49\uFF1B\u5B8C\u6210\u540E\u5FC5\u987B\u6309 requiredOutput \u4F7F\u7528 submit_task_result \u63D0\u4EA4\u7ED3\u679C\uFF0C\u63D0\u4EA4\u65F6\u8BF7\u4E00\u5E76\u4F20\u5165 changeLog\uFF08\u672C\u6B21\u5904\u7406\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF0C\u5305\u542B operation \u4E0E path\uFF09\uFF0C\u7528\u4E8E AI \u56DE\u9000\u3002\u82E5 requiredOutput \u7684\u76EE\u6807\u662F HUMAN \u8282\u70B9\uFF0C\u63D0\u4EA4\u7ED9\u8BE5\u5206\u652F\u7684 output \u5FC5\u987B\u5305\u542B questions \u6570\u7EC4\u4E14\u81F3\u5C11\u4E00\u4E2A\u9898\u76EE\u5E26 question \u5B57\u6BB5\u3002",inputSchema:{type:"object",properties:{},required:[]}},R={name:"create_task_instance_comment",description:"\u4E3A\u5F53\u524D\u6B63\u5728\u5904\u7406\u7684\u6D41\u7A0B\u7EBF\u5B9E\u4F8B\u521B\u5EFA\u4E00\u6761\u5B9E\u4F8B\u7EA7\u7559\u8A00\u3002\u4EC5\u5141\u8BB8\u7531\u540E\u53F0\u9759\u9ED8\u62A2\u5360\u540E\u6B63\u5728\u5904\u7406\u8BE5\u5B9E\u4F8B\u8282\u70B9\u7684 Agent \u8C03\u7528\uFF1B\u5F53\u9700\u8981\u544A\u77E5\u540E\u7EED\u8282\u70B9\u9700\u8981\u6CE8\u610F\u7684\u70B9\u65F6\u4F7F\u7528\u7559\u8A00\u8FDB\u884C\u7559\u8A00\uFF1B\u7559\u8A00\u4F1A\u5728\u5B9E\u4F8B\u5217\u8868\u201C\u67E5\u770B\u7559\u8A00\u201D\u548C\u540E\u7EED my_task \u8FD4\u56DE\u4E2D\u5C55\u793A\u3002",inputSchema:{type:"object",properties:{taskInstanceId:{type:"string",description:"\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u5B9E\u4F8BID\uFF08\u4ECE my_task \u8FD4\u56DE\u4E2D\u83B7\u53D6\uFF09"},content:{type:"string",description:"\u7559\u8A00\u5185\u5BB9"}},required:["taskInstanceId","content"]}},h={name:"submit_task_result",description:`\u63D0\u4EA4\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u7684\u6267\u884C\u7ED3\u679C\u3002\u5B8C\u6210\u4EFB\u52A1\u540E\u8C03\u7528\u6B64\u5DE5\u5177\uFF0C\u8F93\u51FA\u5C06\u4F20\u9012\u7ED9\u4E0B\u4E00\u4E2A\u8282\u70B9\u3002outputPayload \u5FC5\u987B\u9075\u5FAA my_task \u8FD4\u56DE\u7684 requiredOutput\uFF1A\u6709\u540E\u7EE7\u5206\u652F\u65F6\u5FC5\u987B\u662F JSON \u6570\u7EC4\uFF0C\u6BCF\u9879\u5305\u542B targetNodeId \u548C output\u3002\u82E5\u76EE\u6807\u5206\u652F\u662F HUMAN \u8282\u70B9\uFF0Coutput \u5FC5\u987B\u662F JSON \u5BF9\u8C61\u5E76\u5305\u542B\u975E\u7A7A questions \u6570\u7EC4\uFF0Cquestions \u81F3\u5C11\u4E00\u4E2A\u9898\u76EE\u5FC5\u987B\u5305\u542B\u5B57\u7B26\u4E32 question \u5B57\u6BB5\u3002
21
+ \u63D0\u4EA4\u65F6\u8BF7\u4E00\u5E76\u4F20\u5165 changeLog\uFF08\u672C\u6B21\u4EFB\u52A1\u5904\u7406\u671F\u95F4\u4EA7\u751F\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF09\uFF0C\u7528\u4E8E\u300CAI \u56DE\u9000\u300D\u7CBE\u786E\u8FD8\u539F\uFF1A\u6BCF\u9879\u5305\u542B operation(CREATE|UPDATE|DELETE|READ)\u3001path(\u76F8\u5BF9\u5DE5\u4F5C\u533A\u8DEF\u5F84)\u3001\u53EF\u9009 targetType/summary/beforeHash/afterHash/metadata\u3002\u672A\u8BB0\u5F55\u53D8\u66F4\u4F1A\u5BFC\u81F4 AI \u56DE\u9000\u7F3A\u5C11\u4F9D\u636E\u3002`,inputSchema:{type:"object",properties:{nodeId:{type:"string",description:"\u4EFB\u52A1\u8282\u70B9ID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6\uFF09"},outputPayload:{type:"string",description:'\u4EFB\u52A1\u6267\u884C\u7ED3\u679C\u7684 JSON \u5B57\u7B26\u4E32\u3002\u5FC5\u987B\u6309 my_task.requiredOutput \u9009\u62E9\u76EE\u6807\u5206\u652F\uFF0C\u4F8B\u5982 [{"targetNodeId":"<\u76EE\u6807\u8282\u70B9\u6A21\u677FID>","output":{...}}]\uFF1B\u63D0\u4EA4\u5230 HUMAN \u8282\u70B9\u65F6 output \u5FC5\u987B\u5F62\u5982 {"questions":[{"question":"\u8BF7\u786E\u8BA4...","options":[{"label":"\u901A\u8FC7"}]}]}\u3002'},changeLog:{type:"array",description:"\u53EF\u9009\u3002\u672C\u6B21\u4EFB\u52A1\u5904\u7406\u671F\u95F4\u4EA7\u751F\u7684\u6587\u4EF6/\u5185\u5BB9\u53D8\u66F4\u65E5\u5FD7\uFF0C\u7528\u4E8E AI \u56DE\u9000\u3002\u6BCF\u9879: { operation: 'CREATE'|'UPDATE'|'DELETE'|'READ', targetType?: string, path: string, summary?: string, beforeHash?: string, afterHash?: string, metadata?: string }\u3002\u5EFA\u8BAE\u5728\u5B8C\u6210\u4EFB\u52A1\u3001\u8C03\u7528 submit_task_result \u65F6\u4E00\u5E76\u63D0\u4EA4\u3002",items:{type:"object",properties:{operation:{type:"string",enum:["CREATE","UPDATE","DELETE","READ"],description:"\u53D8\u66F4\u64CD\u4F5C\u7C7B\u578B"},targetType:{type:"string",description:"\u53D8\u66F4\u76EE\u6807\u7C7B\u578B\uFF0C\u7F3A\u7701\u89C6\u4E3A FILE"},path:{type:"string",description:"\u53D8\u66F4\u6587\u4EF6/\u8D44\u6E90\u7684\u76F8\u5BF9\u8DEF\u5F84"},summary:{type:"string",description:"\u53D8\u66F4\u6458\u8981\u8BF4\u660E"},beforeHash:{type:"string",description:"\u53D8\u66F4\u524D\u5185\u5BB9 hash\uFF08\u5DEE\u5F02\u56DE\u9000\u7528\uFF09"},afterHash:{type:"string",description:"\u53D8\u66F4\u540E\u5185\u5BB9 hash\uFF08\u5DEE\u5F02\u56DE\u9000\u7528\uFF09"},metadata:{type:"string",description:"\u9644\u52A0\u5143\u6570\u636E JSON \u5B57\u7B26\u4E32\uFF08\u5982 cacheKey\uFF09"}},required:["operation","path"]}}},required:["nodeId","outputPayload"]}},S={name:"start_task_rollback",description:"\u5C06\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u6D41\u7A0B\u7EBF AI \u56DE\u9000\u4EFB\u52A1\u6807\u8BB0\u4E3A\u56DE\u9000\u4E2D\u3002\u6536\u5230\u56DE\u9000\u59D4\u6258\u540E\uFF0C\u5F00\u59CB\u5B9E\u9645\u56DE\u9000\u524D\u8C03\u7528\u3002",inputSchema:{type:"object",properties:{rollbackTaskId:{type:"string",description:"AI \u56DE\u9000\u4EFB\u52A1ID\uFF08\u4ECE\u56DE\u9000\u59D4\u6258\u6D88\u606F\u4E2D\u83B7\u53D6\uFF09\u3002"}},required:["rollbackTaskId"]}},b={name:"finish_task_rollback",description:"\u5C06\u5206\u914D\u7ED9\u5F53\u524D Agent \u7684\u6D41\u7A0B\u7EBF AI \u56DE\u9000\u4EFB\u52A1\u6807\u8BB0\u4E3A\u5DF2\u56DE\u9000\uFF0C\u5E76\u8BB0\u5F55\u56DE\u9000\u7ED3\u679C\u3002\u5B8C\u6210\u56DE\u9000\u540E\u8C03\u7528\u3002",inputSchema:{type:"object",properties:{rollbackTaskId:{type:"string",description:"AI \u56DE\u9000\u4EFB\u52A1ID\uFF08\u4ECE\u56DE\u9000\u59D4\u6258\u6D88\u606F\u4E2D\u83B7\u53D6\uFF09\u3002"},resultMessage:{type:"string",description:"\u56DE\u9000\u7ED3\u679C\u8BF4\u660E\uFF08\u53EF\u9009\uFF09\u3002"}},required:["rollbackTaskId"]}},D={name:"reject_task",description:"\u62D2\u7EDD\u5BF9\u524D\u5E8F\u8282\u70B9\u8F93\u51FA\u7684\u4EFB\u52A1\uFF0C\u4EFB\u52A1\u5C06\u56DE\u9000\u5230\u524D\u4E00\u4E2A\u8282\u70B9\u91CD\u65B0\u6267\u884C\u3002\u9002\u7528\u4E8E\u524D\u5E8F\u8F93\u51FA\u4E0D\u6EE1\u8DB3\u8981\u6C42\u6216\u65E0\u6CD5\u7EE7\u7EED\u6267\u884C\u7684\u573A\u666F\u3002",inputSchema:{type:"object",properties:{nodeId:{type:"string",description:"\u4EFB\u52A1\u8282\u70B9ID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6\uFF09"},reason:{type:"string",description:"\u62D2\u7EDD\u539F\u56E0"}},required:["nodeId","reason"]}},M={name:"terminate_task",description:"\u7EC8\u6B62\u6574\u4E2A\u6D41\u7A0B\u7EBF\u4EFB\u52A1\u3002\u7EC8\u6B62\u540E\u4EFB\u52A1\u72B6\u6001\u53D8\u4E3A TERMINATED\uFF08\u5DF2\u7EC8\u6B62\uFF09\uFF0C\u6240\u6709\u672A\u5B8C\u6210\u7684\u8282\u70B9\u4E5F\u5C06\u88AB\u7EC8\u6B62\uFF0C\u4EFB\u52A1\u4E0D\u518D\u8FDB\u884C\u540E\u7EED\u6D41\u8F6C\u3002\u9002\u7528\u4E8E\u4EFB\u52A1\u65E0\u6CD5\u7EE7\u7EED\u6267\u884C\u6216\u9700\u8981\u5F3A\u5236\u505C\u6B62\u7684\u573A\u666F\u3002\u6CE8\u610F\uFF1A\u7EC8\u6B62\u64CD\u4F5C\u4E0D\u53EF\u9006\uFF0C\u8BF7\u8C28\u614E\u4F7F\u7528\u3002",inputSchema:{type:"object",properties:{taskInstanceId:{type:"string",description:"\u4EFB\u52A1\u5B9E\u4F8BID\uFF08\u4ECE my_task \u8FD4\u56DE\u7684\u4EFB\u52A1\u4FE1\u606F\u4E2D\u83B7\u53D6 taskInstanceId\uFF09"},reason:{type:"string",description:"\u7EC8\u6B62\u539F\u56E0"}},required:["taskInstanceId","reason"]}},C={name:"get_debug_log_config",description:`\u83B7\u53D6 Agent Debug \u65E5\u5FD7\u7CFB\u7EDF\u7684\u5199\u5165\u914D\u7F6E\u3002\u8FD4\u56DE\u5199\u5165\u7AEF\u70B9 URL\u3001\u5F53\u524D Agent \u6240\u5C5E\u9879\u76EE\u540D\u3001\u4EE5\u53CA\u65E5\u5FD7\u5199\u5165\u5BC6\u94A5\uFF08logWriteKey\uFF09\u3002
22
22
 
23
23
  ## \u5982\u4F55\u5199\u5165\u65E5\u5FD7
24
24
  \u4E1A\u52A1\u9879\u76EE\u8FD0\u884C\u65F6\u901A\u8FC7 HTTP POST \u8BF7\u6C42\u5199\u5165\u65E5\u5FD7\uFF1A
@@ -32,11 +32,11 @@ MCP \u5DE5\u5177\uFF08poll_message/get_message\uFF09\u4E0D\u518D\u8FD4\u56DE sys
32
32
  - detail (\u53EF\u9009): \u65E5\u5FD7\u8BE6\u60C5\u5185\u5BB9
33
33
 
34
34
  \u5F53 logWriteKey \u975E\u7A7A\u65F6\uFF0C\u4F7F\u7528\u8BE5 key \u5373\u53EF\u76F4\u63A5\u5199\u5165\u65E5\u5FD7\uFF0C\u65E0\u9700\u9879\u76EE\u6210\u5458\u6743\u9650\u3002
35
- \u5F53 logWriteKey \u4E3A\u7A7A\u65F6\uFF0C\u9700\u4F7F\u7528\u9879\u76EE\u6210\u5458\u7684 API Key\uFF08\u9700\u9879\u76EE\u6210\u5458\u6743\u9650\uFF09\u3002`,inputSchema:{type:"object",properties:{},required:[]}},P={name:"query_debug_logs",description:`\u5206\u9875\u67E5\u8BE2 Agent Debug \u65E5\u5FD7\uFF08\u6309\u65F6\u95F4\u5012\u5E8F\uFF09\u3002\u7528\u4E8E\u6392\u67E5\u4E1A\u52A1\u9879\u76EE\u8FD0\u884C\u65F6\u95EE\u9898\u3002
35
+ \u5F53 logWriteKey \u4E3A\u7A7A\u65F6\uFF0C\u9700\u4F7F\u7528\u9879\u76EE\u6210\u5458\u7684 API Key\uFF08\u9700\u9879\u76EE\u6210\u5458\u6743\u9650\uFF09\u3002`,inputSchema:{type:"object",properties:{},required:[]}},N={name:"query_debug_logs",description:`\u5206\u9875\u67E5\u8BE2 Agent Debug \u65E5\u5FD7\uFF08\u6309\u65F6\u95F4\u5012\u5E8F\uFF09\u3002\u7528\u4E8E\u6392\u67E5\u4E1A\u52A1\u9879\u76EE\u8FD0\u884C\u65F6\u95EE\u9898\u3002
36
36
 
37
- \u8FD4\u56DE\u5B57\u6BB5\uFF1Aid\u3001projectId\u3001businessLine\u3001module\u3001level\u3001detail\u3001createdAt\u3002`,inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF08\u5FC5\u586B\uFF09"},businessLine:{type:"string",description:"\u4E1A\u52A1\u7EBF\u540D\u79F0\uFF08\u5FC5\u586B\uFF09"},module:{type:"string",description:"\u6A21\u5757\u540D\uFF08\u53EF\u9009\uFF09"},level:{type:"string",description:"\u65E5\u5FD7\u7EA7\u522B\uFF1ADEBUG / INFO / WARN / ERROR\uFF08\u53EF\u9009\uFF09",enum:["DEBUG","INFO","WARN","ERROR"]},startTime:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-01T00:00:00\uFF08\u53EF\u9009\uFF09"},endTime:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-02T00:00:00\uFF08\u53EF\u9009\uFF09"},offset:{type:"number",description:"\u504F\u79FB\u91CF\uFF0C\u9ED8\u8BA4 0"},limit:{type:"number",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20\uFF0C\u6700\u5927 200"}},required:["projectId","businessLine"]}},C={name:"query_file_changes_history",description:`\u5206\u9875\u67E5\u8BE2\u6587\u4EF6\u53D8\u66F4\u5386\u53F2\uFF08\u6309\u65F6\u95F4\u5012\u5E8F\uFF09\u3002\u7528\u4E8E\u4E86\u89E3\u5176\u5B83 Agent \u5BF9\u6587\u4EF6\u505A\u8FC7\u54EA\u4E9B\u4FEE\u6539\u3001\u4FEE\u6539\u539F\u56E0\u4E0E\u5F53\u524D\u72B6\u6001\uFF0C\u652F\u6301\u6309 \u89D2\u8272/\u5B9E\u4F8B/\u6587\u4EF6\u540D/\u76F8\u5BF9\u8DEF\u5F84/\u64CD\u4F5C/\u72B6\u6001/\u4EFB\u52A1\u5B9E\u4F8B/\u65F6\u95F4\u8303\u56F4 \u8FC7\u6EE4\u3002
37
+ \u8FD4\u56DE\u5B57\u6BB5\uFF1Aid\u3001projectId\u3001businessLine\u3001module\u3001level\u3001detail\u3001createdAt\u3002`,inputSchema:{type:"object",properties:{projectId:{type:"string",description:"\u9879\u76EE ID\uFF08\u5FC5\u586B\uFF09"},businessLine:{type:"string",description:"\u4E1A\u52A1\u7EBF\u540D\u79F0\uFF08\u5FC5\u586B\uFF09"},module:{type:"string",description:"\u6A21\u5757\u540D\uFF08\u53EF\u9009\uFF09"},level:{type:"string",description:"\u65E5\u5FD7\u7EA7\u522B\uFF1ADEBUG / INFO / WARN / ERROR\uFF08\u53EF\u9009\uFF09",enum:["DEBUG","INFO","WARN","ERROR"]},startTime:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-01T00:00:00\uFF08\u53EF\u9009\uFF09"},endTime:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-02T00:00:00\uFF08\u53EF\u9009\uFF09"},offset:{type:"number",description:"\u504F\u79FB\u91CF\uFF0C\u9ED8\u8BA4 0"},limit:{type:"number",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20\uFF0C\u6700\u5927 200"}},required:["projectId","businessLine"]}},f={name:"query_file_changes_history",description:`\u5206\u9875\u67E5\u8BE2\u6587\u4EF6\u53D8\u66F4\u5386\u53F2\uFF08\u6309\u65F6\u95F4\u5012\u5E8F\uFF09\u3002\u7528\u4E8E\u4E86\u89E3\u5176\u5B83 Agent \u5BF9\u6587\u4EF6\u505A\u8FC7\u54EA\u4E9B\u4FEE\u6539\u3001\u4FEE\u6539\u539F\u56E0\u4E0E\u5F53\u524D\u72B6\u6001\uFF0C\u652F\u6301\u6309 \u89D2\u8272/\u5B9E\u4F8B/\u6587\u4EF6\u540D/\u76F8\u5BF9\u8DEF\u5F84/\u64CD\u4F5C/\u72B6\u6001/\u4EFB\u52A1\u5B9E\u4F8B/\u65F6\u95F4\u8303\u56F4 \u8FC7\u6EE4\u3002
38
38
 
39
39
  \u67E5\u8BE2\u8303\u56F4\u81EA\u52A8\u9650\u5B9A\u4E3A\u5F53\u524D Agent \u6240\u5C5E\u9879\u76EE\uFF08\u65E0\u9700\u4F20 projectId\uFF09\u3002agentId \u4E0D\u4F20\u8868\u793A\u67E5\u8BE2\u5F53\u524D\u9879\u76EE\u4E0B\u6240\u6709 Agent \u7684\u53D8\u66F4\u8BB0\u5F55\uFF0C\u4F20\u5176\u5B83 Agent \u5B9E\u4F8B ID \u65F6\u4EC5\u9650\u540C\u9879\u76EE\u5185\uFF08\u670D\u52A1\u7AEF\u6821\u9A8C\uFF0C\u9879\u76EE\u5916 Agent \u4F1A\u88AB\u62D2\u7EDD\uFF09\u3002
40
40
 
41
- \u8FD4\u56DE\u5B57\u6BB5\uFF1Aid\u3001projectId\u3001roleName\u3001instanceName\u3001agentId\u3001operation\uFF08CREATE/UPDATE/DELETE\uFF09\u3001targetPath\u3001fullPath\u3001reason\u3001status\uFF08APPLIED/REVERTED/REVERT_FAILED\uFF09\u3001createdAt\u3001revertedAt\u3001revertedBy\u3002`,inputSchema:{type:"object",properties:{roleId:{type:"string",description:"\u89D2\u8272\u5B9A\u4E49 ID\uFF08\u53EF\u9009\uFF09"},agentId:{type:"string",description:"Agent \u5B9E\u4F8B ID\uFF08\u53EF\u9009\uFF1B\u4E0D\u4F20=\u67E5\u8BE2\u5F53\u524D\u9879\u76EE\u4E0B\u6240\u6709 Agent\uFF1B\u4F20\u5176\u5B83 Agent \u65F6\u670D\u52A1\u7AEF\u6821\u9A8C\u5176\u4E0E\u8C03\u7528\u8005\u540C\u9879\u76EE\uFF09"},fileName:{type:"string",description:"\u6587\u4EF6\u540D\uFF08\u53EF\u9009\uFF0C\u6309 basename \u6A21\u7CCA\u5339\u914D\uFF09"},filePath:{type:"string",description:"\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF08\u53EF\u9009\uFF0C\u6309\u8D26\u672C\u8BB0\u5F55\u7684\u76F8\u5BF9\u8DEF\u5F84 targetPath \u5339\u914D\uFF0C\u542B\u76EE\u5F55\u524D\u7F00\u5339\u914D\uFF09\u3002\u652F\u6301 ./xx\u3001xx\u3001@/xx\u3001/xx \u7B49\u4EF7\u5199\u6CD5\uFF08@ \u89C6\u4E3A\u5DE5\u4F5C\u533A\u6839\u8DEF\u5F84\u522B\u540D\uFF09\u3002\u793A\u4F8B\uFF1A@/src/main.ts \u7CBE\u786E\u5339\u914D src/main.ts\uFF1B@/src \u5339\u914D src/ \u76EE\u5F55\u53CA\u5176\u4E0B\u6240\u6709\u6587\u4EF6\u7684\u53D8\u66F4\u3002\u4E0E fileName \u6B63\u4EA4\uFF1AfileName \u6309\u6587\u4EF6\u540D\u6A21\u7CCA\uFF0CfilePath \u6309\u76F8\u5BF9\u8DEF\u5F84\u5339\u914D\u3002"},operation:{type:"string",description:"\u64CD\u4F5C\u7C7B\u578B\uFF1ACREATE / UPDATE / DELETE\uFF08\u53EF\u9009\uFF09",enum:["CREATE","UPDATE","DELETE"]},status:{type:"string",description:"\u8BB0\u5F55\u72B6\u6001\uFF1AAPPLIED\uFF08\u5DF2\u751F\u6548\uFF09/ REVERTED\uFF08\u5DF2\u64A4\u9500\uFF09/ REVERT_FAILED\uFF08\u64A4\u9500\u5931\u8D25\uFF09\uFF08\u53EF\u9009\uFF09",enum:["APPLIED","REVERTED","REVERT_FAILED"]},taskInstanceId:{type:"string",description:"\u4EFB\u52A1\u5B9E\u4F8B ID\uFF08\u53EF\u9009\uFF09"},startTime:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-01T00:00:00\uFF08\u53EF\u9009\uFF09"},endTime:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-02T00:00:00\uFF08\u53EF\u9009\uFF09"},page:{type:"number",description:"\u9875\u7801\uFF0C\u9ED8\u8BA4 1"},pageSize:{type:"number",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20"}},required:[]}},q=new Set(["create_memory","read_memory","update_memory","delete_memory","search_memory","list_memories","get_memory_stats","list_memories_by_file","memory_recurrence","memory_recurrence_complete"]),j=[_,m,E,y,O,g,u,T,l,I,R,A,L,S,M,D,b,h,e,n,p,t,s,i,r,o,a,c,d,N,P,C];export{J as ABANDON_MEMORY_UPDATE_TOOL,Y as CREATE_MEMORY_TOOL,L as CREATE_TASK_INSTANCE_COMMENT_TOOL,G as DELETE_MEMORY_TOOL,D as FINISH_TASK_ROLLBACK_TOOL,_ as GET_COLLEAGUE_TOOL,N as GET_DEBUG_LOG_CONFIG_TOOL,I as GET_DM_HISTORY_TOOL,R as GET_GROUP_HISTORY_TOOL,m as GET_GROUP_ROOMS_TOOL,f as GET_MEMORY_STATS_TOOL,l as GET_MESSAGE_TOOL,E as GET_PROFILE_TOOL,O as HIRE_COLLEAGUES_BATCH_TOOL,y as HIRE_COLLEAGUE_TOOL,F as LIST_MEMORIES_BY_FILE_TOOL,H as LIST_MEMORIES_TOOL,j as MCP_TOOLS,W as MEMORY_RECURRENCE_COMPLETE_TOOL,V as MEMORY_RECURRENCE_TOOL,q as MEMORY_TOOL_NAMES,A as MY_TASK_TOOL,T as POLL_MESSAGE_TOOL,P as QUERY_DEBUG_LOGS_TOOL,C as QUERY_FILE_CHANGES_HISTORY_TOOL,K as READ_MEMORY_TOOL,b as REJECT_TASK_TOOL,w as SEARCH_MEMORY_TOOL,g as SEND_GROUP_TOOL,u as SEND_PRIVATE_TOOL,M as START_TASK_ROLLBACK_TOOL,S as SUBMIT_TASK_RESULT_TOOL,h as TERMINATE_TASK_TOOL,B as UPDATE_MEMORY_TOOL};
41
+ \u8FD4\u56DE\u5B57\u6BB5\uFF1Aid\u3001projectId\u3001roleName\u3001instanceName\u3001agentId\u3001operation\uFF08CREATE/UPDATE/DELETE\uFF09\u3001targetPath\u3001fullPath\u3001reason\u3001status\uFF08APPLIED/REVERTED/REVERT_FAILED\uFF09\u3001createdAt\u3001revertedAt\u3001revertedBy\u3002`,inputSchema:{type:"object",properties:{roleId:{type:"string",description:"\u89D2\u8272\u5B9A\u4E49 ID\uFF08\u53EF\u9009\uFF09"},agentId:{type:"string",description:"Agent \u5B9E\u4F8B ID\uFF08\u53EF\u9009\uFF1B\u4E0D\u4F20=\u67E5\u8BE2\u5F53\u524D\u9879\u76EE\u4E0B\u6240\u6709 Agent\uFF1B\u4F20\u5176\u5B83 Agent \u65F6\u670D\u52A1\u7AEF\u6821\u9A8C\u5176\u4E0E\u8C03\u7528\u8005\u540C\u9879\u76EE\uFF09"},fileName:{type:"string",description:"\u6587\u4EF6\u540D\uFF08\u53EF\u9009\uFF0C\u6309 basename \u6A21\u7CCA\u5339\u914D\uFF09"},filePath:{type:"string",description:"\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF08\u53EF\u9009\uFF0C\u6309\u8D26\u672C\u8BB0\u5F55\u7684\u76F8\u5BF9\u8DEF\u5F84 targetPath \u5339\u914D\uFF0C\u542B\u76EE\u5F55\u524D\u7F00\u5339\u914D\uFF09\u3002\u652F\u6301 ./xx\u3001xx\u3001@/xx\u3001/xx \u7B49\u4EF7\u5199\u6CD5\uFF08@ \u89C6\u4E3A\u5DE5\u4F5C\u533A\u6839\u8DEF\u5F84\u522B\u540D\uFF09\u3002\u793A\u4F8B\uFF1A@/src/main.ts \u7CBE\u786E\u5339\u914D src/main.ts\uFF1B@/src \u5339\u914D src/ \u76EE\u5F55\u53CA\u5176\u4E0B\u6240\u6709\u6587\u4EF6\u7684\u53D8\u66F4\u3002\u4E0E fileName \u6B63\u4EA4\uFF1AfileName \u6309\u6587\u4EF6\u540D\u6A21\u7CCA\uFF0CfilePath \u6309\u76F8\u5BF9\u8DEF\u5F84\u5339\u914D\u3002"},operation:{type:"string",description:"\u64CD\u4F5C\u7C7B\u578B\uFF1ACREATE / UPDATE / DELETE\uFF08\u53EF\u9009\uFF09",enum:["CREATE","UPDATE","DELETE"]},status:{type:"string",description:"\u8BB0\u5F55\u72B6\u6001\uFF1AAPPLIED\uFF08\u5DF2\u751F\u6548\uFF09/ REVERTED\uFF08\u5DF2\u64A4\u9500\uFF09/ REVERT_FAILED\uFF08\u64A4\u9500\u5931\u8D25\uFF09\uFF08\u53EF\u9009\uFF09",enum:["APPLIED","REVERTED","REVERT_FAILED"]},taskInstanceId:{type:"string",description:"\u4EFB\u52A1\u5B9E\u4F8B ID\uFF08\u53EF\u9009\uFF09"},startTime:{type:"string",description:"\u8D77\u59CB\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-01T00:00:00\uFF08\u53EF\u9009\uFF09"},endTime:{type:"string",description:"\u7ED3\u675F\u65F6\u95F4\uFF0CISO \u683C\u5F0F\u5982 2026-08-02T00:00:00\uFF08\u53EF\u9009\uFF09"},page:{type:"number",description:"\u9875\u7801\uFF0C\u9ED8\u8BA4 1"},pageSize:{type:"number",description:"\u6BCF\u9875\u6761\u6570\uFF0C\u9ED8\u8BA4 20"}},required:[]}},v=new Set(["create_memory","read_memory","update_memory","delete_memory","search_memory","list_memories","get_memory_stats","list_memories_by_file","memory_recurrence","memory_recurrence_complete"]),P={name:"launch_config_list",description:"\u67E5\u8BE2\u5F53\u524D Agent \u6240\u5C5E\u9879\u76EE\u4E0B\u7684\u542F\u52A8\u9879\uFF08\u7C7B IDEA Run Configuration\uFF09\u5217\u8868\u3002\u6BCF\u4E2A\u542F\u52A8\u9879\u542B id\u3001name\u3001type\uFF08generic/java/python/node/go/php\uFF09\u3001command\u3001cwd\u3001env\u3001jdkId\u3001groupId\u3001sortOrder\u3002\u67E5\u8BE2\u8303\u56F4\u81EA\u52A8\u9650\u5B9A\u4E3A\u5F53\u524D\u9879\u76EE\uFF0C\u65E0\u9700\u4F20 projectId\u3002",inputSchema:{type:"object",properties:{},required:[]}},j={name:"launch_config_create",description:"\u5728\u5F53\u524D Agent \u6240\u5C5E\u9879\u76EE\u4E0B\u65B0\u5EFA\u542F\u52A8\u9879\uFF08\u7C7B IDEA Run Configuration\uFF09\u3002\u521B\u5EFA\u524D\u5EFA\u8BAE\u5148 launch_config_list \u67E5\u770B\u73B0\u6709\u914D\u7F6E\u4E0E\u547D\u540D\u4E60\u60EF\u3002\u9879\u76EE\u8303\u56F4\u81EA\u52A8\u63A8\u5BFC\uFF0C\u65E0\u9700\u4F20 projectId\u3002cwd\uFF08\u5DE5\u4F5C\u76EE\u5F55\uFF09\u4E3A\u5FC5\u586B\u9879\uFF0C\u7F3A\u5931\u5C06\u521B\u5EFA\u5931\u8D25\u2014\u2014\u8BF7\u4F20\u5165\u9879\u76EE\u5B9E\u9645\u4EE3\u7801/\u6784\u5EFA\u76EE\u5F55\u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u5982 D:/code/xxx/backend\uFF1B\u4E0D\u786E\u5B9A\u65F6\u53EF\u7528\u5DE5\u4F5C\u533A\u7EDD\u5BF9\u8DEF\u5F84\u3002\u521B\u5EFA\u6210\u529F\u540E\u8FD4\u56DE\u65B0\u542F\u52A8\u9879\u5B8C\u6574\u4FE1\u606F\uFF08\u542B id\uFF09\u3002",inputSchema:{type:"object",properties:{name:{type:"string",description:"\u542F\u52A8\u9879\u540D\u79F0\uFF08\u5FC5\u586B\uFF0C\u9879\u76EE\u5185\u552F\u4E00\uFF0C\u2264128 \u5B57\u7B26\uFF09"},type:{type:"string",description:"\u542F\u52A8\u9879\u7C7B\u578B\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 generic\uFF09\uFF1Ageneric / java / python / node / go / php",enum:["generic","java","python","node","go","php"]},command:{type:"string",description:"\u542F\u52A8\u547D\u4EE4\uFF08\u5FC5\u586B\uFF0C\u22648192 \u5B57\u7B26\uFF09\u3002\u652F\u6301\u5360\u4F4D\u7B26 ${WORKSPACE}\uFF08\u9879\u76EE\u5DE5\u4F5C\u533A\uFF09\u3001${JAVA_HOME}\uFF08\u6240\u9009 JDK\uFF09\u3001${VAR}\uFF08env \u4E2D\u5B9A\u4E49\u7684\u53D8\u91CF\uFF09\u3002\u793A\u4F8B\uFF1Anpm run dev\u3001python main.py\u3001mvn spring-boot:run"},cwd:{type:"string",description:"\u5DE5\u4F5C\u76EE\u5F55\uFF08\u5FC5\u586B\uFF0C\u2264512 \u5B57\u7B26\uFF09\u2014\u2014\u9879\u76EE\u5B9E\u9645\u4EE3\u7801/\u6784\u5EFA\u76EE\u5F55\u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u5982 D:/code/xxx/backend"},env:{type:"object",description:"\u989D\u5916\u73AF\u5883\u53D8\u91CF\uFF08\u53EF\u9009\uFF0C\u226464 \u9879\uFF09\uFF0C\u989D\u5916\u5C5E\u6027\uFF1A\u5B57\u7B26\u4E32\u503C",additionalProperties:{type:"string"}},jdkId:{type:"string",description:"\u9009\u4E2D\u7684 JDK ID\uFF08type=java \u65F6\u6709\u6548\uFF0C\u53EF\u9009\uFF09"},groupId:{type:"string",description:"\u6240\u5C5E\u542F\u52A8\u9879\u5206\u7EC4 ID\uFF08\u53EF\u9009\uFF0Cnull/\u7A7A=\u672A\u5206\u7EC4\uFF09"},sortOrder:{type:"number",description:"\u6392\u5E8F\u6743\u91CD\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4\u8FFD\u52A0\u5230\u6240\u5728\u5BB9\u5668\u672B\u5C3E\uFF09"},readinessPattern:{type:"string",description:'\u5C31\u7EEA\u65E5\u5FD7\u6B63\u5219\uFF08\u53EF\u9009\uFF0C\u2264512 \u5B57\u7B26\uFF0CJS RegExp \u8BED\u6CD5\uFF09\u3002\u8BBE\u7F6E\u540E wait_timeout_ms \u7B49\u5F85\u7684 ready \u4FE1\u53F7\u6539\u4E3A"\u8F93\u51FA\u884C\u547D\u4E2D\u8BE5\u6B63\u5219"\uFF08\u9002\u914D\u4E0D\u76D1\u542C\u7AEF\u53E3\u7684\u5E38\u9A7B\u8FDB\u7A0B\uFF0C\u5982 worker/\u6D88\u8D39\u8005\uFF09\u3002\u793A\u4F8B\uFF1A^Server ready|^Build (SUCCESS|successful)\u3002\u7559\u7A7A=\u7AEF\u53E3\u76D1\u542C\u63A2\u6D4B'}},required:["name","command","cwd"]}},x={name:"launch_config_update",description:"\u66F4\u65B0\u542F\u52A8\u9879\uFF08\u540D\u79F0/\u7C7B\u578B/\u547D\u4EE4/\u5DE5\u4F5C\u76EE\u5F55/\u73AF\u5883\u53D8\u91CF/JDK/\u5206\u7EC4/\u6392\u5E8F\uFF09\u3002\u672A\u4F20\u5B57\u6BB5\u4FDD\u6301\u539F\u503C\uFF1B\u4FEE\u6539\u540D\u79F0\u65F6\u9879\u76EE\u5185\u4E0D\u80FD\u91CD\u540D\u3002\u76EE\u6807\u542F\u52A8\u9879\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u9879\u76EE\uFF08\u670D\u52A1\u7AEF\u6821\u9A8C\uFF09\u3002\u8FD0\u884C\u4E2D\u7684\u542F\u52A8\u9879\uFF1A\u4FEE\u6539\u914D\u7F6E\u4E0D\u4F1A\u5F71\u54CD\u5DF2\u8FD0\u884C\u8FDB\u7A0B\uFF0C\u9700\u91CD\u542F\u540E\u751F\u6548\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5FC5\u586B\uFF09"},name:{type:"string",description:"\u542F\u52A8\u9879\u540D\u79F0\uFF08\u53EF\u9009\uFF0C\u2264128 \u5B57\u7B26\uFF09"},type:{type:"string",description:"\u542F\u52A8\u9879\u7C7B\u578B\uFF08\u53EF\u9009\uFF09\uFF1Ageneric / java / python / node / go / php",enum:["generic","java","python","node","go","php"]},command:{type:"string",description:"\u542F\u52A8\u547D\u4EE4\uFF08\u53EF\u9009\uFF0C\u22648192 \u5B57\u7B26\uFF09"},cwd:{type:"string",description:"\u5DE5\u4F5C\u76EE\u5F55\uFF08\u53EF\u9009\uFF09"},env:{type:"object",description:"\u989D\u5916\u73AF\u5883\u53D8\u91CF\uFF08\u53EF\u9009\uFF0C\u6574\u4F53\u8986\u76D6\u539F env\uFF09",additionalProperties:{type:"string"}},jdkId:{type:"string",description:"\u9009\u4E2D\u7684 JDK ID\uFF08type=java \u65F6\u6709\u6548\uFF0C\u53EF\u9009\uFF09"},groupId:{type:"string",description:"\u6240\u5C5E\u542F\u52A8\u9879\u5206\u7EC4 ID\uFF08\u53EF\u9009\uFF09"},clearGroupId:{type:"boolean",description:"\u663E\u5F0F\u6E05\u9664\u5206\u7EC4\uFF08\u79FB\u56DE\u9ED8\u8BA4\u5206\u7EC4\uFF0C\u53EF\u9009\uFF1B\u4E0D\u80FD\u4E0E groupId \u540C\u65F6\u4F20\uFF09"},sortOrder:{type:"number",description:"\u6392\u5E8F\u6743\u91CD\uFF08\u53EF\u9009\uFF09"},readinessPattern:{type:"string",description:"\u5C31\u7EEA\u65E5\u5FD7\u6B63\u5219\uFF08\u53EF\u9009\uFF0CJS RegExp \u8BED\u6CD5\uFF09\uFF1A\u8BBE\u7F6E\u540E\u542F\u52A8\u7B49\u5F85\u7684 ready \u4FE1\u53F7\u4E3A\u8F93\u51FA\u884C\u547D\u4E2D\u6B63\u5219\uFF08\u9002\u914D\u4E0D\u76D1\u542C\u7AEF\u53E3\u7684\u8FDB\u7A0B\uFF09\u3002\u7559\u7A7A=\u7AEF\u53E3\u76D1\u542C\u63A2\u6D4B"},clearReadinessPattern:{type:"boolean",description:"\u663E\u5F0F\u6E05\u9664\u5C31\u7EEA\u6B63\u5219\uFF0C\u6062\u590D\u7AEF\u53E3\u63A2\u6D4B\uFF08\u53EF\u9009\uFF1B\u4E0D\u80FD\u4E0E readinessPattern \u540C\u65F6\u4F20\uFF09"}},required:["configId"]}},k={name:"launch_config_delete",description:"\u5220\u9664\u542F\u52A8\u9879\u914D\u7F6E\u3002\u76EE\u6807\u542F\u52A8\u9879\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u9879\u76EE\uFF08\u670D\u52A1\u7AEF\u6821\u9A8C\uFF09\u3002\u6CE8\u610F\uFF1A\u82E5\u8BE5\u542F\u52A8\u9879\u6B63\u5728\u8FD0\u884C\uFF0C\u8BF7\u5148 launch_config_stop \u505C\u6B62\u8FDB\u7A0B\u518D\u5220\u9664\uFF08\u5220\u9664\u914D\u7F6E\u4E0D\u4F1A\u81EA\u52A8\u505C\u6B62\u5DF2\u8FD0\u884C\u8FDB\u7A0B\uFF09\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5FC5\u586B\uFF09"}},required:["configId"]}},U={name:"launch_config_start",description:"\u542F\u52A8\u542F\u52A8\u9879\uFF0C\u5728\u8C03\u7528\u8005\u6240\u5728 runtime-bridge \u673A\u5668\u4E0A\u62C9\u8D77\u8FDB\u7A0B\u3002\u652F\u6301\u5355\u9879\uFF08configId\uFF09\u4E0E\u6279\u91CF\uFF08configIds \u6570\u7EC4\uFF0C\u4E00\u6B21\u5E76\u884C\u62C9\u8D77\u591A\u4E2A\uFF09\uFF1A\u6279\u91CF\u65F6\u9010\u9879\u4EE5\u914D\u7F6E\u4E3A\u51C6\u5E76\u884C\u542F\u52A8\uFF0C\u5355\u9879\u5931\u8D25\u4E0D\u5F71\u54CD\u5176\u4F59\u9879\uFF0C\u8FD4\u56DE\u9010\u9879\u7ED3\u679C\u4E0E\u6C47\u603B\uFF08ready/exited/timeout/failed \u8BA1\u6570\uFF09\uFF1B\u5EFA\u8BAE\u542F\u52A8\u524D\u5148 launch_config_status \u786E\u8BA4\u672A\u5728\u8FD0\u884C\u3002\u9ED8\u8BA4\u4E0D\u7B49\u5F85\u7ACB\u5373\u8FD4\u56DE\uFF1B\u4F20 wait_timeout_ms > 0 \u65F6\u963B\u585E\u7B49\u5F85\u542F\u52A8\u7ED3\u679C\uFF08\u5355\u9879\u8FD4\u56DE wait \u5B57\u6BB5\uFF0C\u6279\u91CF\u5BF9\u5168\u90E8\u6210\u529F\u9879\u5E76\u884C\u7B49\u5F85\u3001\u6574\u4F53\u8FD4\u56DE\u65F6\u95F4\u2248\u6700\u6162\u4E00\u9879\uFF09\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5355\u9879\u542F\u52A8\u65F6\u5FC5\u586B\uFF1B\u4E0E configIds \u4E8C\u9009\u4E00\uFF09"},configIds:{type:"array",items:{type:"string"},description:"\u6279\u91CF\u542F\u52A8\uFF1A\u542F\u52A8\u9879 ID \u6570\u7EC4\uFF081-20 \u4E2A\uFF0C\u81EA\u52A8\u53BB\u91CD\uFF1B\u4E0E configId \u4E8C\u9009\u4E00\uFF0C\u4F20\u4E86\u4F18\u5148\u8D70\u6279\u91CF\uFF09\u3002\u6279\u91CF\u6A21\u5F0F\u4EE5\u5404\u9879\u914D\u7F6E\u4E3A\u51C6\u542F\u52A8\uFF0C\u5FFD\u7565 command/cwd/env/readinessPattern \u8986\u76D6\u53C2\u6570\uFF1BworkspacePath/jdkPath \u4E0E wait_timeout_ms \u5BF9\u5168\u90E8\u9879\u751F\u6548"},command:{type:"string",description:"\u542F\u52A8\u547D\u4EE4\u8986\u76D6\uFF08\u53EF\u9009\uFF0C\u4EC5\u5355\u9879\u6A21\u5F0F\uFF09"},cwd:{type:"string",description:"\u5DE5\u4F5C\u76EE\u5F55\u8986\u76D6\uFF08\u53EF\u9009\uFF0C\u4EC5\u5355\u9879\u6A21\u5F0F\uFF09"},env:{type:"object",description:"\u73AF\u5883\u53D8\u91CF\u8986\u76D6\uFF08\u53EF\u9009\uFF0C\u6574\u4F53\u8986\u76D6\u914D\u7F6E env\uFF1B\u4EC5\u5355\u9879\u6A21\u5F0F\uFF09",additionalProperties:{type:"string"}},jdkPath:{type:"string",description:"JDK \u8DEF\u5F84\uFF08type=java \u65F6\u6709\u6548\uFF0C\u53EF\u9009\uFF1B\u5355\u9879=\u8BE5\u9879\u8986\u76D6\uFF0C\u6279\u91CF=\u5168\u90E8\u9879\u751F\u6548\uFF09"},workspacePath:{type:"string",description:"\u9879\u76EE\u5DE5\u4F5C\u533A\u8DEF\u5F84\uFF08\u53EF\u9009\uFF1B\u5355\u9879=\u8BE5\u9879\u8986\u76D6\uFF0C\u6279\u91CF=\u5168\u90E8\u9879\u751F\u6548\uFF09"},readinessPattern:{type:"string",description:"\u5C31\u7EEA\u65E5\u5FD7\u6B63\u5219\u8986\u76D6\uFF08\u53EF\u9009\uFF0C\u4EC5\u5355\u9879\u6A21\u5F0F\uFF0CJS RegExp \u8BED\u6CD5\uFF09\uFF1A\u8BBE\u7F6E\u540E\u542F\u52A8\u7B49\u5F85\u7684 ready \u4FE1\u53F7\u4E3A\u8F93\u51FA\u884C\u547D\u4E2D\u6B63\u5219\uFF08\u9002\u914D\u4E0D\u76D1\u542C\u7AEF\u53E3\u7684\u8FDB\u7A0B\uFF09\u3002\u7559\u7A7A=\u4EE5\u542F\u52A8\u9879\u914D\u7F6E\u4E3A\u51C6\uFF08\u9ED8\u8BA4\u7AEF\u53E3\u76D1\u542C\u63A2\u6D4B\uFF09"},wait_timeout_ms:{type:"number",description:"\u963B\u585E\u7B49\u5F85\u542F\u52A8\u7ED3\u679C\u7684\u8D85\u65F6\u6BEB\u79D2\u6570\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 0=\u4E0D\u7B49\u5F85\uFF0Cspawn \u540E\u7ACB\u5373\u8FD4\u56DE\uFF09\u3002>0 \u65F6\u672C\u6B21\u8C03\u7528\u963B\u585E\uFF0C\u76F4\u5230\u4EE5\u4E0B\u4FE1\u53F7\u6700\u5148\u5230\u8FBE\u5E76\u5728 wait \u5B57\u6BB5\u8FD4\u56DE\uFF1Aready=\u8FDB\u7A0B\u6811\u63A2\u6D4B\u5230\u76D1\u542C\u7AEF\u53E3\uFF08\u5E38\u9A7B\u670D\u52A1\u542F\u52A8\u6210\u529F\uFF0C\u9644 ports\uFF09\uFF0C\u6216\u8F93\u51FA\u884C\u547D\u4E2D\u5C31\u7EEA\u6B63\u5219\uFF08readinessPattern\uFF0C\u89C1\u4E0A\uFF09\uFF1Bexited=\u8FDB\u7A0B\u9000\u51FA\uFF08\u4E00\u6B21\u6027\u547D\u4EE4\u5B8C\u6210\u6216\u542F\u52A8\u5FEB\u901F\u5931\u8D25\uFF0CexitCode=0 \u4E3A\u6210\u529F\uFF0C\u975E 0 \u68C0\u67E5 logTail \u5B9A\u4F4D\u539F\u56E0\uFF09\uFF1Bstopped=\u7B49\u5F85\u671F\u95F4\u88AB\u505C\u6B62\uFF1Btimeout=\u8D85\u65F6\uFF0C\u8FDB\u7A0B\u4ECD\u5728\u8FD0\u884C\uFF08\u4E0D\u7B97\u9519\u8BEF\uFF0C\u6309 logTail \u81EA\u884C\u5224\u65AD\u6216\u7A0D\u540E launch_config_logs \u8F6E\u8BE2\uFF09\u3002\u4E0A\u9650 300000\uFF085 \u5206\u949F\uFF09\uFF0C\u6162\u542F\u52A8\u670D\u52A1\uFF08\u5982 Spring Boot\uFF09\u5EFA\u8BAE 60000-120000\u3002\u6279\u91CF\u6A21\u5F0F\u5BF9\u5168\u90E8\u6210\u529F\u9879\u5E76\u884C\u7B49\u5F85\uFF08\u6BCF\u9879\u72EC\u7ACB\u8BA1\u65F6\uFF09\u3002"}},required:[]}},q={name:"launch_config_restart",description:"\u91CD\u542F\u542F\u52A8\u9879\uFF08bridge \u5185\u539F\u5B50\u6267\u884C\u300C\u505C\u6B62\u65E7\u8FDB\u7A0B + \u91CD\u65B0\u62C9\u8D77\u300D\uFF0C\u4EE3\u7406\u5230\u8C03\u7528\u8005\u6240\u5728 runtime-bridge\uFF09\u3002\u76F8\u6BD4\u5148 launch_config_stop \u518D launch_config_start\uFF0C\u4E0D\u5B58\u5728 stop \u8BF7\u6C42\u4E22\u5931\u5BFC\u81F4 start \u649E\u4E0A\u4ECD\u5728\u8FD0\u884C\u65E7\u8FDB\u7A0B\u7684\u7ADE\u6001\u3002\u672A\u8FD0\u884C\u65F6\u7B49\u4EF7\u4E8E\u76F4\u63A5 start\u3002\u8986\u76D6\u53C2\u6570\uFF08command/cwd/env \u7B49\uFF09\u4E0E\u542F\u52A8\u7B49\u5F85\u8BED\u4E49\u540C launch_config_start\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5FC5\u586B\uFF09"},command:{type:"string",description:"\u542F\u52A8\u547D\u4EE4\u8986\u76D6\uFF08\u53EF\u9009\uFF09"},cwd:{type:"string",description:"\u5DE5\u4F5C\u76EE\u5F55\u8986\u76D6\uFF08\u53EF\u9009\uFF09"},env:{type:"object",description:"\u73AF\u5883\u53D8\u91CF\u8986\u76D6\uFF08\u53EF\u9009\uFF0C\u6574\u4F53\u8986\u76D6\u914D\u7F6E env\uFF09",additionalProperties:{type:"string"}},jdkPath:{type:"string",description:"JDK \u8DEF\u5F84\uFF08type=java \u65F6\u6709\u6548\uFF0C\u53EF\u9009\uFF09"},workspacePath:{type:"string",description:"\u9879\u76EE\u5DE5\u4F5C\u533A\u8DEF\u5F84\uFF08\u53EF\u9009\uFF09"},readinessPattern:{type:"string",description:"\u5C31\u7EEA\u65E5\u5FD7\u6B63\u5219\u8986\u76D6\uFF08\u53EF\u9009\uFF0CJS RegExp \u8BED\u6CD5\uFF09\uFF1A\u8BBE\u7F6E\u540E\u65B0\u8FDB\u7A0B\u542F\u52A8\u7B49\u5F85\u7684 ready \u4FE1\u53F7\u4E3A\u8F93\u51FA\u884C\u547D\u4E2D\u6B63\u5219\u3002\u7559\u7A7A=\u4EE5\u542F\u52A8\u9879\u914D\u7F6E\u4E3A\u51C6\uFF08\u9ED8\u8BA4\u7AEF\u53E3\u76D1\u542C\u63A2\u6D4B\uFF09"},wait_timeout_ms:{type:"number",description:"\u963B\u585E\u7B49\u5F85\u65B0\u8FDB\u7A0B\u542F\u52A8\u7ED3\u679C\u7684\u8D85\u65F6\u6BEB\u79D2\u6570\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 0=\u4E0D\u7B49\u5F85\uFF09\u3002\u8BED\u4E49\u540C launch_config_start\uFF1Aready=\u7AEF\u53E3\u5C31\u7EEA\u6216\u65E5\u5FD7\u547D\u4E2D\u5C31\u7EEA\u6B63\u5219 / exited=\u8FDB\u7A0B\u9000\u51FA / timeout=\u8D85\u65F6\uFF08\u8FDB\u7A0B\u4ECD\u5728\u8FD0\u884C\uFF0C\u975E\u9519\u8BEF\uFF09\u3002"}},required:["configId"]}},G={name:"launch_config_stop",description:"\u505C\u6B62\u542F\u52A8\u9879\u8FDB\u7A0B\uFF08\u542B\u8FDB\u7A0B\u6811\uFF0C\u4EE3\u7406\u5230\u8C03\u7528\u8005\u6240\u5728 runtime-bridge\uFF09\u3002\u76EE\u6807\u542F\u52A8\u9879\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u9879\u76EE\uFF08\u670D\u52A1\u7AEF\u6821\u9A8C\uFF09\u3002\u82E5\u8FDB\u7A0B\u5DF2\u9000\u51FA\uFF0C\u8FD4\u56DE\u5DF2\u505C\u6B62/\u65E0\u8FD0\u884C\u8FDB\u7A0B\u7684\u72B6\u6001\uFF0C\u4E0D\u62A5\u9519\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5FC5\u586B\uFF09"}},required:["configId"]}},w={name:"launch_config_logs",description:"\u589E\u91CF\u62C9\u53D6\u542F\u52A8\u9879\u8FD0\u884C\u65E5\u5FD7\uFF08\u6700\u8FD1 200 \u6761\u73AF\u5F62\u7F13\u51B2\uFF0C\u4EE3\u7406\u5230\u8C03\u7528\u8005\u6240\u5728 runtime-bridge\uFF09\u3002\u9996\u6B21\u8C03\u7528\u4E0D\u4F20 since \u83B7\u53D6\u5168\u90E8\u7F13\u51B2\u65E5\u5FD7\uFF1B\u540E\u7EED\u6BCF\u6B21\u628A\u8FD4\u56DE\u7684 nextSince \u4F5C\u4E3A since \u7EED\u62C9\u589E\u91CF\u3002\u8FD4\u56DE\u5B57\u6BB5\uFF1Alines\uFF08\u65E5\u5FD7\u884C\uFF09\u3001nextSince\uFF08\u4E0B\u6B21\u6E38\u6807\uFF09\u3001running\uFF08\u8FDB\u7A0B\u662F\u5426\u8FD0\u884C\u4E2D\uFF09\u3002\u76EE\u6807\u542F\u52A8\u9879\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u9879\u76EE\uFF08\u670D\u52A1\u7AEF\u6821\u9A8C\uFF09\u3002",inputSchema:{type:"object",properties:{configId:{type:"string",description:"\u542F\u52A8\u9879 ID\uFF08\u5FC5\u586B\uFF09"},since:{type:"number",description:"\u65E5\u5FD7\u6E38\u6807\uFF08\u53EF\u9009\uFF0C\u9ED8\u8BA4 0 = \u4ECE\u5934\u62C9\u53D6\uFF09"}},required:["configId"]}},H={name:"launch_config_status",description:"\u67E5\u8BE2\u8C03\u7528\u8005\u6240\u5728 bridge \u673A\u5668\u4E0A\u5F53\u524D\u9879\u76EE\u7684\u5168\u90E8\u542F\u52A8\u9879\u8FD0\u884C\u72B6\u6001\u3002\u8FD4\u56DE runs \u6570\u7EC4\uFF1A\u6BCF\u9879\u542B configId\u3001status\uFF08running/exited/stopped\uFF09\u3001pid\u3001startTime\u3001command \u7B49\u3002\u4EC5\u8FD4\u56DE\u5F53\u524D\u9879\u76EE\u914D\u7F6E\u7684\u542F\u52A8\u9879\uFF08\u670D\u52A1\u7AEF\u6309\u9879\u76EE\u8FC7\u6EE4\uFF09\u3002",inputSchema:{type:"object",properties:{},required:[]}},F=new Set(["launch_config_list","launch_config_create","launch_config_update","launch_config_delete","launch_config_start","launch_config_restart","launch_config_stop","launch_config_logs","launch_config_status"]),K=[_,g,m,y,u,O,E,l,I,T,A,L,R,h,S,b,D,M,e,r,p,t,o,n,i,s,c,a,d,C,N,f,P,j,x,k,U,q,G,w,H];export{te as ABANDON_MEMORY_UPDATE_TOOL,V as CREATE_MEMORY_TOOL,R as CREATE_TASK_INSTANCE_COMMENT_TOOL,W as DELETE_MEMORY_TOOL,b as FINISH_TASK_ROLLBACK_TOOL,_ as GET_COLLEAGUE_TOOL,C as GET_DEBUG_LOG_CONFIG_TOOL,T as GET_DM_HISTORY_TOOL,A as GET_GROUP_HISTORY_TOOL,g as GET_GROUP_ROOMS_TOOL,$ as GET_MEMORY_STATS_TOOL,I as GET_MESSAGE_TOOL,m as GET_PROFILE_TOOL,u as HIRE_COLLEAGUES_BATCH_TOOL,y as HIRE_COLLEAGUE_TOOL,j as LAUNCH_CONFIG_CREATE_TOOL,k as LAUNCH_CONFIG_DELETE_TOOL,P as LAUNCH_CONFIG_LIST_TOOL,w as LAUNCH_CONFIG_LOGS_TOOL,q as LAUNCH_CONFIG_RESTART_TOOL,U as LAUNCH_CONFIG_START_TOOL,H as LAUNCH_CONFIG_STATUS_TOOL,G as LAUNCH_CONFIG_STOP_TOOL,F as LAUNCH_CONFIG_TOOL_NAMES,x as LAUNCH_CONFIG_UPDATE_TOOL,ee as LIST_MEMORIES_BY_FILE_TOOL,Q as LIST_MEMORIES_TOOL,K as MCP_TOOLS,ne as MEMORY_RECURRENCE_COMPLETE_TOOL,ie as MEMORY_RECURRENCE_TOOL,v as MEMORY_TOOL_NAMES,L as MY_TASK_TOOL,l as POLL_MESSAGE_TOOL,N as QUERY_DEBUG_LOGS_TOOL,f as QUERY_FILE_CHANGES_HISTORY_TOOL,z as READ_MEMORY_TOOL,D as REJECT_TASK_TOOL,X as SEARCH_MEMORY_TOOL,O as SEND_GROUP_TOOL,E as SEND_PRIVATE_TOOL,S as START_TASK_ROLLBACK_TOOL,h as SUBMIT_TASK_RESULT_TOOL,M as TERMINATE_TASK_TOOL,Z as UPDATE_MEMORY_TOOL};
42
42
 
@@ -1,6 +1,6 @@
1
1
  import assert from "node:assert/strict";
2
2
  import { describe, it } from "node:test";
3
- import { CREATE_TASK_INSTANCE_COMMENT_TOOL, MCP_TOOLS, QUERY_FILE_CHANGES_HISTORY_TOOL, UPDATE_MEMORY_TOOL } from "./mcp-tools.js";
3
+ import { CREATE_TASK_INSTANCE_COMMENT_TOOL, MCP_TOOLS, QUERY_FILE_CHANGES_HISTORY_TOOL, UPDATE_MEMORY_TOOL, LAUNCH_CONFIG_TOOL_NAMES } from "./mcp-tools.js";
4
4
  describe("create_task_instance_comment tool", () => {
5
5
  it("documents that follow-up node notes should be left as task comments", () => {
6
6
  assert.match(CREATE_TASK_INSTANCE_COMMENT_TOOL.description ?? "", /当需要告知后续节点需要注意的点时使用留言进行留言/);
@@ -48,6 +48,60 @@ describe("query_file_changes_history tool", () => {
48
48
  }
49
49
  });
50
50
  });
51
+ describe("launch_config_* 启动项工具组", () => {
52
+ it("9 个工具全部注册在 MCP_TOOLS,工具名集合与之一致", () => {
53
+ const names = MCP_TOOLS.map((tool) => tool.name);
54
+ const expected = [
55
+ "launch_config_list",
56
+ "launch_config_create",
57
+ "launch_config_update",
58
+ "launch_config_delete",
59
+ "launch_config_start",
60
+ "launch_config_restart",
61
+ "launch_config_stop",
62
+ "launch_config_logs",
63
+ "launch_config_status",
64
+ ];
65
+ for (const toolName of expected) {
66
+ assert.equal(names.includes(toolName), true, `${toolName} should be in MCP_TOOLS`);
67
+ }
68
+ assert.deepEqual([...LAUNCH_CONFIG_TOOL_NAMES].sort(), [...expected].sort());
69
+ });
70
+ it("工具参数不接收 projectId(项目范围由服务端从调用者身份推导)", () => {
71
+ for (const toolName of [...LAUNCH_CONFIG_TOOL_NAMES]) {
72
+ const tool = MCP_TOOLS.find((t) => t.name === toolName);
73
+ assert.ok(tool, `${toolName} should exist`);
74
+ assert.equal("projectId" in (tool.inputSchema.properties ?? {}), false, `${toolName} 不应包含 projectId 参数`);
75
+ }
76
+ });
77
+ it("launch_config_start 声明 wait_timeout_ms 与 configIds(批量启动,默认 0 不等待)", () => {
78
+ const tool = MCP_TOOLS.find((t) => t.name === "launch_config_start");
79
+ assert.ok(tool);
80
+ const schema = tool.inputSchema;
81
+ const param = schema.properties?.wait_timeout_ms;
82
+ assert.ok(param, "wait_timeout_ms should be declared");
83
+ assert.equal(param.type, "number");
84
+ // 批量参数:字符串数组(与 configId 二选一)
85
+ const configIds = schema.properties?.configIds;
86
+ assert.ok(configIds, "configIds should be declared");
87
+ assert.equal(configIds.type, "array");
88
+ // configId 与 configIds 二选一:均不强制必填
89
+ assert.deepEqual(tool.inputSchema.required ?? [], []);
90
+ // 就绪正则覆盖:单项模式支持(server 侧 handleStart 读取透传)
91
+ const pattern = schema.properties?.readinessPattern;
92
+ assert.ok(pattern, "readinessPattern should be declared");
93
+ assert.equal(pattern.type, "string");
94
+ });
95
+ it("launch_config_restart 声明 readinessPattern 覆盖(与 start 的覆盖参数集对齐)", () => {
96
+ const tool = MCP_TOOLS.find((t) => t.name === "launch_config_restart");
97
+ assert.ok(tool);
98
+ const schema = tool.inputSchema;
99
+ for (const overrideParam of ["command", "cwd", "env", "jdkPath", "workspacePath", "readinessPattern", "wait_timeout_ms"]) {
100
+ assert.ok(schema.properties?.[overrideParam], `${overrideParam} should be declared`);
101
+ }
102
+ assert.deepEqual(tool.inputSchema.required ?? [], ["configId"]);
103
+ });
104
+ });
51
105
  function assertNoForbiddenTopLevelSchemaKeyword(schema) {
52
106
  const forbiddenTopLevelKeywords = ["oneOf", "anyOf", "allOf", "enum", "const", "not"];
53
107
  for (const keyword of forbiddenTopLevelKeywords) {
@@ -109,7 +109,11 @@ describe('MemoryStore', () => {
109
109
  const recentList = await store.listByType('agent_memory');
110
110
  assert.equal(recentList.length, 1);
111
111
  assert.equal(recentList[0]?.memory_type, 'agent_memory');
112
- await assert.rejects(() => store.listByType('project_memory'), /Invalid memory_type/);
112
+ // project_memory 已放开列举限制(文件变更检测需枚举永久记忆),应正常返回
113
+ const projectList = await store.listByType('project_memory');
114
+ assert.equal(projectList.length, 1);
115
+ assert.equal(projectList[0]?.memory_type, 'project_memory');
116
+ await assert.rejects(() => store.listByType('invalid_type'), /Invalid memory_type/);
113
117
  }
114
118
  finally {
115
119
  await rm(dir, { recursive: true, force: true });
@@ -0,0 +1,10 @@
1
+
2
+ import type { Readable } from 'node:stream';
3
+ export interface ParentExitWatcher {
4
+
5
+ dispose(): void;
6
+ }
7
+
8
+ export declare function watchParentLifecycle(): void;
9
+
10
+ export declare function createParentExitWatcher(stdin: Readable | null | undefined, exitFn: (code: number) => void): ParentExitWatcher;
@@ -0,0 +1,2 @@
1
+ import{appendStartupLogLine as i}from"./logger.js";let n=!1;function a(){n||(n=!0,f(process.stdin,()=>process.exit(0)))}function f(o,s){const e=o;if(!e||e.isTTY)return{dispose:()=>{}};let t=!1;const r=()=>{t||(t=!0,i("warn","[ParentLifecycle] \u7236\u8FDB\u7A0B stdin \u901A\u9053\u5DF2\u5173\u95ED\uFF08\u7236\u8FDB\u7A0B\u9000\u51FA\uFF09\uFF0CMCP node \u5373\u5C06\u9000\u51FA"),s(0))};return e.on("end",r),e.on("close",r),e.on("error",r),{dispose:()=>{e.off("end",r),e.off("close",r),e.off("error",r)}}}export{f as createParentExitWatcher,a as watchParentLifecycle};
2
+
@@ -0,0 +1,81 @@
1
+ import assert from 'node:assert/strict';
2
+ import { EventEmitter } from 'node:events';
3
+ import { describe, it } from 'node:test';
4
+ import { createParentExitWatcher } from './parent-lifecycle.js';
5
+ class FakeStdin extends EventEmitter {
6
+ isTTY;
7
+ }
8
+ describe('createParentExitWatcher', () => {
9
+ it('exits with code 0 when stdin receives EOF (end)', () => {
10
+ const stdin = new FakeStdin();
11
+ let exitCode = null;
12
+ createParentExitWatcher(stdin, (code) => {
13
+ exitCode = code;
14
+ });
15
+ stdin.emit('end');
16
+ assert.equal(exitCode, 0);
17
+ });
18
+ it('exits on close', () => {
19
+ const stdin = new FakeStdin();
20
+ let exitCode = null;
21
+ createParentExitWatcher(stdin, (code) => {
22
+ exitCode = code;
23
+ });
24
+ stdin.emit('close');
25
+ assert.equal(exitCode, 0);
26
+ });
27
+ it('exits on stream error', () => {
28
+ const stdin = new FakeStdin();
29
+ let exitCode = null;
30
+ createParentExitWatcher(stdin, (code) => {
31
+ exitCode = code;
32
+ });
33
+ stdin.emit('error', new Error('pipe broken'));
34
+ assert.equal(exitCode, 0);
35
+ });
36
+ it('exits only once when end and close both fire', () => {
37
+ const stdin = new FakeStdin();
38
+ let exitCount = 0;
39
+ createParentExitWatcher(stdin, () => {
40
+ exitCount += 1;
41
+ });
42
+ stdin.emit('end');
43
+ stdin.emit('close');
44
+ assert.equal(exitCount, 1);
45
+ });
46
+ it('does not watch a TTY stdin (interactive/degraded mode)', () => {
47
+ const stdin = new FakeStdin();
48
+ stdin.isTTY = true;
49
+ // EventEmitter 无 error 监听器时 emit('error') 会抛出,这里静默掉
50
+ stdin.on('error', () => { });
51
+ let exitCount = 0;
52
+ createParentExitWatcher(stdin, () => {
53
+ exitCount += 1;
54
+ });
55
+ stdin.emit('end');
56
+ stdin.emit('close');
57
+ stdin.emit('error', new Error('x'));
58
+ assert.equal(exitCount, 0);
59
+ });
60
+ it('does not throw when stdin is absent', () => {
61
+ let exitCount = 0;
62
+ const watcher = createParentExitWatcher(null, () => {
63
+ exitCount += 1;
64
+ });
65
+ assert.equal(exitCount, 0);
66
+ watcher.dispose();
67
+ });
68
+ it('dispose removes all listeners', () => {
69
+ const stdin = new FakeStdin();
70
+ stdin.on('error', () => { });
71
+ let exitCount = 0;
72
+ const watcher = createParentExitWatcher(stdin, () => {
73
+ exitCount += 1;
74
+ });
75
+ watcher.dispose();
76
+ stdin.emit('end');
77
+ stdin.emit('close');
78
+ stdin.emit('error', new Error('x'));
79
+ assert.equal(exitCount, 0);
80
+ });
81
+ });
@@ -1,3 +1,3 @@
1
- import{EventEmitter as m}from"node:events";import{logger as _}from"./logger.js";const u="[temp clipboard paste file]",f=/[A-Z]:(?:\\\\|\\)[^\r\n"'`]*?(?:\\\\|\\)mini-term-clipboard(?:\\\\|\\)paste-\d+\.txt/gi,h=/\/[^\r\n"'`]*?\/mini-term-clipboard\/paste-\d+\.txt/gi,g=/mini-term-clipboard[\\/]paste-\d+\.txt/gi,w=new Set(["aws-mcp","agents-work-studio"]);function p(d){return d.replace(f,u).replace(h,u).replace(g,u)}class o extends m{config;currentStatus="stopped";currentAction=null;constructor(e){super(),this.config=e}reportStarting(){this.updateStatus("starting")}reportRunning(){this.updateStatus("running")}reportWaitingInput(){this.updateStatus("waiting_input"),this.clearAction()}reportThinking(){this.updateStatus("thinking"),this.clearAction()}reportStopped(){this.updateStatus("stopped"),this.clearAction()}reportError(){this.updateStatus("error"),this.clearAction()}reportToolUse(e,t){const r=this.parseToolAction(e,t);this.updateStatus("tool_using",r.type,r.label,r.detail)}reportToolResult(e){this.updateStatus("tool_using",this.currentAction?.type,this.currentAction?.label,this.currentAction?.detail,this.formatToolResult(e))}reportToolError(e){const t=e instanceof Error?e.message:String(e);this.updateStatus("error",this.currentAction?.type,this.currentAction?.label||"Tool call failed",this.currentAction?.detail,t),this.clearAction()}static KNOWN_MCP_TOOLS={get_colleague:"aws-mcp",get_group_rooms:"aws-mcp",get_profile:"aws-mcp",hire_colleague:"aws-mcp",hire_colleagues_batch:"aws-mcp",send_group:"aws-mcp",send_private:"aws-mcp",poll_message:"aws-mcp",get_message:"aws-mcp",get_dm_history:"aws-mcp",get_group_history:"aws-mcp",my_task:"aws-mcp",create_task_instance_comment:"aws-mcp",submit_task_result:"aws-mcp",start_task_rollback:"aws-mcp",finish_task_rollback:"aws-mcp",reject_task:"aws-mcp",terminate_task:"aws-mcp",create_memory:"aws-mcp",read_memory:"aws-mcp",update_memory:"aws-mcp",delete_memory:"aws-mcp",search_memory:"aws-mcp",list_memories:"aws-mcp"};static canonicalizeMcpServer(e,t){const r=o.KNOWN_MCP_TOOLS[t.toLowerCase()];return r&&w.has(e.toLowerCase())?r:e}static formatMcpDetail(e,t){return e?t?`${o.canonicalizeMcpServer(e,t)}/${t}`:e:t}parseToolAction(e,t){const r=e.toLowerCase(),i=r.replace(/[_-]/g,""),n=(...l)=>{for(const a of l){if(typeof a=="string"&&a.trim())return p(a);if(Array.isArray(a)&&a.length>0){const s=a[0];if(typeof s=="string"&&s.trim())return p(s)}}};if(r.includes("skill")||r.includes("disclose"))return{type:"skill",label:"Calling skill",detail:t?.name?p(String(t.name)):void 0};const c=o.KNOWN_MCP_TOOLS[r];if(c)return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(c,e)};if(r.startsWith("mcp__")){const l=e.split("__"),a=l[1]||"",s=l.slice(2).join("__");return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(a,s)}}if(r.startsWith("mcp_")||r.includes("_mcp_"))return{type:"mcp",label:"Calling MCP",detail:e.replace(/^mcp_/,"").replace(/_/g," ")};if(r.includes("-mcp__")){const l=e.split("__"),a=l[0],s=l.slice(1).join("__");return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(a,s)}}return i==="edit"||i==="editfile"||i==="strreplace"||i==="editcode"||i==="applypatch"||i==="multiedit"?{type:"edit_file",label:"\u7F16\u8F91\u6587\u4EF6",detail:n(t?.path,t?.file_path,t?.filePath,t?.target_file,t?.targetFile)}:i==="write"||i==="writefile"||i==="fswrite"?{type:"write_file",label:"\u5199\u5165\u6587\u4EF6",detail:n(t?.path,t?.file_path,t?.filePath,t?.target_file,t?.targetFile)}:i==="read"||i==="readfile"||i==="readcode"||i==="readmultiplefiles"?{type:"read_file",label:"\u8BFB\u53D6\u6587\u4EF6",detail:n(t?.path,t?.file_path,t?.filePath,t?.paths,t?.target_file,t?.targetFile)}:i==="bash"||i==="execute"||i==="shell"||i==="pwsh"||i==="executepwsh"||i==="controlpwshprocess"||i==="runcommand"?{type:"bash",label:"\u6267\u884C\u547D\u4EE4",detail:n(t?.command,t?.cmd,t?.argv)?.substring(0,50)}:i==="search"||i==="grep"||i==="find"||i==="glob"||i==="grepsearch"||i==="filesearch"?{type:"search",label:"\u641C\u7D22\u6587\u4EF6",detail:t?.query?p(String(t.query)):void 0}:r.includes("web")||r.includes("fetch")||r.includes("http")?{type:"web",label:"\u7F51\u7EDC\u8BF7\u6C42",detail:t?.url?p(String(t.url)):void 0}:{type:"tool_using",label:"Calling tool",detail:e}}updateStatus(e,t,r,i,n){this.currentStatus=e,t&&(this.currentAction={type:t,label:r,detail:i});const c={agentId:this.config.agentId,status:e,actionType:t??void 0,actionLabel:t?this.currentAction?.label:void 0,actionDetail:t?this.currentAction?.detail:void 0,actionResult:n,timestamp:new Date().toISOString()};_.info(`[StatusReporter] \u72B6\u6001\u66F4\u65B0: ${e}${r?` - ${r}`:""}`),this.config.sendStatusUpdate(c)}clearAction(){this.currentAction=null}formatToolResult(e){let t;try{t=typeof e=="string"?e:JSON.stringify(e,null,2)}catch(c){t=`[Unable to serialize tool result: ${c instanceof Error?c.message:String(c)}]`}const r=t||String(e),i=4e3,n=p(r);return n.length<=i?n:`${n.slice(0,i)}
1
+ import{EventEmitter as _}from"node:events";import{logger as f}from"./logger.js";const u="[temp clipboard paste file]",h=/[A-Z]:(?:\\\\|\\)[^\r\n"'`]*?(?:\\\\|\\)mini-term-clipboard(?:\\\\|\\)paste-\d+\.txt/gi,g=/\/[^\r\n"'`]*?\/mini-term-clipboard\/paste-\d+\.txt/gi,A=/mini-term-clipboard[\\/]paste-\d+\.txt/gi,w=new Set(["aws-mcp","agents-work-studio"]),d=500;function p(m){return m.replace(h,u).replace(g,u).replace(A,u)}class o extends _{config;currentStatus="stopped";currentAction=null;constructor(e){super(),this.config=e}reportStarting(){this.updateStatus("starting")}reportRunning(){this.updateStatus("running")}reportWaitingInput(){this.updateStatus("waiting_input"),this.clearAction()}reportThinking(){this.updateStatus("thinking"),this.clearAction()}reportStopped(){this.updateStatus("stopped"),this.clearAction()}reportError(){this.updateStatus("error"),this.clearAction()}reportToolUse(e,t){const r=this.parseToolAction(e,t);this.updateStatus("tool_using",r.type,r.label,r.detail)}reportToolResult(e){this.updateStatus("tool_using",this.currentAction?.type,this.currentAction?.label,this.currentAction?.detail,this.formatToolResult(e))}reportToolError(e){const t=e instanceof Error?e.message:String(e);this.updateStatus("error",this.currentAction?.type,this.currentAction?.label||"Tool call failed",this.currentAction?.detail,t),this.clearAction()}static KNOWN_MCP_TOOLS={get_colleague:"aws-mcp",get_group_rooms:"aws-mcp",get_profile:"aws-mcp",hire_colleague:"aws-mcp",hire_colleagues_batch:"aws-mcp",send_group:"aws-mcp",send_private:"aws-mcp",poll_message:"aws-mcp",get_message:"aws-mcp",get_dm_history:"aws-mcp",get_group_history:"aws-mcp",my_task:"aws-mcp",create_task_instance_comment:"aws-mcp",submit_task_result:"aws-mcp",start_task_rollback:"aws-mcp",finish_task_rollback:"aws-mcp",reject_task:"aws-mcp",terminate_task:"aws-mcp",create_memory:"aws-mcp",read_memory:"aws-mcp",update_memory:"aws-mcp",delete_memory:"aws-mcp",search_memory:"aws-mcp",list_memories:"aws-mcp"};static canonicalizeMcpServer(e,t){const r=o.KNOWN_MCP_TOOLS[t.toLowerCase()];return r&&w.has(e.toLowerCase())?r:e}static formatMcpDetail(e,t){return e?t?`${o.canonicalizeMcpServer(e,t)}/${t}`:e:t}parseToolAction(e,t){const r=e.toLowerCase(),i=r.replace(/[_-]/g,""),a=(...n)=>{for(const c of n){if(typeof c=="string"&&c.trim())return p(c);if(Array.isArray(c)&&c.length>0){const s=c[0];if(typeof s=="string"&&s.trim())return p(s)}}};if(r.includes("skill")||r.includes("disclose"))return{type:"skill",label:"Calling skill",detail:t?.name?p(String(t.name)):void 0};const l=o.KNOWN_MCP_TOOLS[r];if(l)return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(l,e)};if(r.startsWith("mcp__")){const n=e.split("__"),c=n[1]||"",s=n.slice(2).join("__");return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(c,s)}}if(r.startsWith("mcp_")||r.includes("_mcp_"))return{type:"mcp",label:"Calling MCP",detail:e.replace(/^mcp_/,"").replace(/_/g," ")};if(r.includes("-mcp__")){const n=e.split("__"),c=n[0],s=n.slice(1).join("__");return{type:"mcp",label:"Calling MCP",detail:o.formatMcpDetail(c,s)}}if(i==="edit"||i==="editfile"||i==="strreplace"||i==="editcode"||i==="applypatch"||i==="multiedit")return{type:"edit_file",label:"\u7F16\u8F91\u6587\u4EF6",detail:a(t?.path,t?.file_path,t?.filePath,t?.target_file,t?.targetFile)};if(i==="write"||i==="writefile"||i==="fswrite")return{type:"write_file",label:"\u5199\u5165\u6587\u4EF6",detail:a(t?.path,t?.file_path,t?.filePath,t?.target_file,t?.targetFile)};if(i==="read"||i==="readfile"||i==="readcode"||i==="readmultiplefiles")return{type:"read_file",label:"\u8BFB\u53D6\u6587\u4EF6",detail:a(t?.path,t?.file_path,t?.filePath,t?.paths,t?.target_file,t?.targetFile)};if(i==="bash"||i==="execute"||i==="shell"||i==="pwsh"||i==="executepwsh"||i==="controlpwshprocess"||i==="runcommand"){const n=a(t?.command,t?.cmd,t?.argv);return{type:"bash",label:"\u6267\u884C\u547D\u4EE4",detail:n&&n.length>d?`${n.substring(0,d)}...\uFF08\u5185\u5BB9\u8FC7\u957F\uFF0C\u5DF2\u622A\u65AD\uFF09`:n}}return i==="search"||i==="grep"||i==="find"||i==="glob"||i==="grepsearch"||i==="filesearch"?{type:"search",label:"\u641C\u7D22\u6587\u4EF6",detail:t?.query?p(String(t.query)):void 0}:r.includes("web")||r.includes("fetch")||r.includes("http")?{type:"web",label:"\u7F51\u7EDC\u8BF7\u6C42",detail:t?.url?p(String(t.url)):void 0}:{type:"tool_using",label:"Calling tool",detail:e}}updateStatus(e,t,r,i,a){this.currentStatus=e,t&&(this.currentAction={type:t,label:r,detail:i});const l={agentId:this.config.agentId,status:e,actionType:t??void 0,actionLabel:t?this.currentAction?.label:void 0,actionDetail:t?this.currentAction?.detail:void 0,actionResult:a,timestamp:new Date().toISOString()};f.info(`[StatusReporter] \u72B6\u6001\u66F4\u65B0: ${e}${r?` - ${r}`:""}`),this.config.sendStatusUpdate(l)}clearAction(){this.currentAction=null}formatToolResult(e){let t;try{t=typeof e=="string"?e:JSON.stringify(e,null,2)}catch(l){t=`[Unable to serialize tool result: ${l instanceof Error?l.message:String(l)}]`}const r=t||String(e),i=4e3,a=p(r);return a.length<=i?a:`${a.slice(0,i)}
2
2
  ...(result too long, truncated)`}getCurrentStatus(){return{agentId:this.config.agentId,status:this.currentStatus,actionType:this.currentAction?.type,actionLabel:this.currentAction?.label,actionDetail:this.currentAction?.detail,timestamp:new Date().toISOString()}}}export{o as StatusReporter,p as redactTransientClipboardPastePaths};
3
3
 
@@ -175,6 +175,8 @@ export interface GroupMessage {
175
175
  senderName: string;
176
176
  projectId?: string;
177
177
  roomId?: string;
178
+
179
+ _awsServerMessage?: boolean;
178
180
  content: string;
179
181
  timestamp: string;
180
182
 
@@ -202,6 +204,8 @@ export interface DirectMessage {
202
204
  msgId: string;
203
205
  _msgId?: string;
204
206
  _requireAck?: boolean;
207
+
208
+ _awsServerMessage?: boolean;
205
209
  callId?: string;
206
210
  senderId: string;
207
211
  senderName: string;
@@ -0,0 +1,3 @@
1
+ import h from"node:fs";import{workerData as I}from"node:worker_threads";const e=I,s=new BigInt64Array(e.buffer),c=e.staleThresholdMs,a=e.checkIntervalMs,g=3;function i(t){if(e.logFilePath)try{h.appendFileSync(e.logFilePath,`${new Date().toISOString()} [ERROR] ${t}
2
+ `,"utf8")}catch{}}let l=Date.now();setInterval(()=>{const t=Date.now(),f=t-l;l=t;const o=Number(Atomics.load(s,0));if(o===0)return;const n=t-o;if(!(n<=c)){if(f>a*g){Atomics.store(s,0,BigInt(t));return}i(`[Watchdog] \u4E8B\u4EF6\u5FAA\u73AF\u7591\u4F3C\u51BB\u7ED3\uFF08tick \u5DF2\u8FC7\u671F ${n}ms > ${c}ms\uFF09\uFF0C\u5F3A\u5236\u7EC8\u6B62\u8FDB\u7A0B`);try{process.kill(process.pid,"SIGKILL")}catch(r){i(`[Watchdog] SIGKILL \u5931\u8D25: ${r instanceof Error?r.message:String(r)}`)}}},a);
3
+
@@ -0,0 +1,17 @@
1
+ export interface WatchdogOptions {
2
+
3
+ tickMs?: number;
4
+
5
+ staleThresholdMs?: number;
6
+
7
+ checkIntervalMs?: number;
8
+ }
9
+ export interface ResolvedWatchdogOptions {
10
+ tickMs: number;
11
+ staleThresholdMs: number;
12
+ checkIntervalMs: number;
13
+ }
14
+
15
+ export declare function resolveWatchdogOptions(options?: WatchdogOptions, env?: NodeJS.ProcessEnv): ResolvedWatchdogOptions;
16
+
17
+ export declare function startEventLoopWatchdog(options?: WatchdogOptions): void;