aws-runtime-bridge 1.9.185 → 1.9.189

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 (85) hide show
  1. package/CHANGELOG.md +1767 -1640
  2. package/README.md +256 -256
  3. package/dist/adapter/AcodeSdkAdapter.js +3 -3
  4. package/dist/adapter/types.js +1 -1
  5. package/dist/browser/browser-pool.d.ts +2 -0
  6. package/dist/browser/browser-pool.js +1 -1
  7. package/dist/config.d.ts +12 -0
  8. package/dist/config.js +2 -2
  9. package/dist/index.js +1 -1
  10. package/dist/remote-desktop/win32-api.js +1 -1
  11. package/dist/routes/background-tasks.js +4 -4
  12. package/dist/routes/dashboard.js +17 -17
  13. package/dist/routes/file-browser.js +1 -1
  14. package/dist/routes/terminal.js +19 -19
  15. package/dist/services/acode-bg-manager.js +1 -1
  16. package/dist/services/auto-register.js +1 -1
  17. package/dist/services/instance-features.d.ts +9 -0
  18. package/dist/services/instance-features.js +1 -1
  19. package/dist/services/launch-manager.d.ts +33 -0
  20. package/dist/services/launch-manager.js +7 -7
  21. package/dist/services/launch-streams.d.ts +2 -0
  22. package/dist/services/launch-streams.js +4 -4
  23. package/dist/services/panel-auth.d.ts +4 -0
  24. package/dist/services/panel-auth.js +1 -1
  25. package/dist/services/plugin-handler-adapter.js +2 -2
  26. package/dist/services/port-detector.js +5 -5
  27. package/dist/services/workspace-files.d.ts +4 -0
  28. package/dist/services/workspace-files.js +1 -1
  29. package/dist/utils/dynamic-import.d.ts +31 -0
  30. package/dist/utils/dynamic-import.js +2 -0
  31. package/dist/utils/sdk-package-loader.js +1 -1
  32. package/node_modules/playwright/cli.js +0 -0
  33. package/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +0 -0
  34. package/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +0 -0
  35. package/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +0 -0
  36. package/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +0 -0
  37. package/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +0 -0
  38. package/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +0 -0
  39. package/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +0 -0
  40. package/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +0 -0
  41. package/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +0 -0
  42. package/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +0 -0
  43. package/node_modules/playwright-core/cli.js +0 -0
  44. package/node_modules/playwright-core/lib/webp_codec.wasm +0 -0
  45. package/node_modules/playwright-core/lib/xdg-open +0 -0
  46. package/package/acode/dist/await-complete-tool.js +3 -3
  47. package/package/acode/dist/mcpToolNames.js +1 -1
  48. package/package/acode/dist/runtime.d.ts +9 -0
  49. package/package/acode/dist/runtime.js +20 -21
  50. package/package/acode/dist/sub-agent-manager.d.ts +33 -0
  51. package/package/acode/dist/sub-agent-manager.js +9 -1
  52. package/package/acode/dist/sub-agent-tools.d.ts +4 -0
  53. package/package/acode/dist/sub-agent-tools.js +27 -12
  54. package/package/acode/dist/subagent-handback.d.ts +16 -0
  55. package/package/acode/dist/subagent-handback.js +7 -0
  56. package/package/acode/dist/tool-allocation.js +1 -1
  57. package/package/acode/package.json +38 -38
  58. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +14 -5
  59. package/package/aws-client-agent-mcp/dist/agent-client.js +1 -1
  60. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +31 -1
  61. package/package/aws-client-agent-mcp/dist/mcp-server.js +16 -16
  62. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +23 -1
  63. package/package/aws-client-agent-mcp/dist/mcp-tools.js +35 -19
  64. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +10 -0
  65. package/package/aws-client-agent-mcp/dist/message-buffer.js +1 -1
  66. package/package/aws-client-agent-mcp/dist/status-reporter.js +1 -1
  67. package/package/aws-client-agent-mcp/dist/tool-groups.js +2 -2
  68. package/package/aws-client-agent-mcp/dist/types.d.ts +84 -6
  69. package/package/aws-client-agent-mcp/package.json +53 -53
  70. package/package.json +134 -132
  71. /package/package/acode/dist/grammars/{grammars/tree-sitter-bash.wasm → tree-sitter-bash.wasm} +0 -0
  72. /package/package/acode/dist/grammars/{grammars/tree-sitter-c-sharp.wasm → tree-sitter-c-sharp.wasm} +0 -0
  73. /package/package/acode/dist/grammars/{grammars/tree-sitter-c.wasm → tree-sitter-c.wasm} +0 -0
  74. /package/package/acode/dist/grammars/{grammars/tree-sitter-cpp.wasm → tree-sitter-cpp.wasm} +0 -0
  75. /package/package/acode/dist/grammars/{grammars/tree-sitter-go.wasm → tree-sitter-go.wasm} +0 -0
  76. /package/package/acode/dist/grammars/{grammars/tree-sitter-java.wasm → tree-sitter-java.wasm} +0 -0
  77. /package/package/acode/dist/grammars/{grammars/tree-sitter-javascript.wasm → tree-sitter-javascript.wasm} +0 -0
  78. /package/package/acode/dist/grammars/{grammars/tree-sitter-jsx.wasm → tree-sitter-jsx.wasm} +0 -0
  79. /package/package/acode/dist/grammars/{grammars/tree-sitter-lua.wasm → tree-sitter-lua.wasm} +0 -0
  80. /package/package/acode/dist/grammars/{grammars/tree-sitter-php.wasm → tree-sitter-php.wasm} +0 -0
  81. /package/package/acode/dist/grammars/{grammars/tree-sitter-python.wasm → tree-sitter-python.wasm} +0 -0
  82. /package/package/acode/dist/grammars/{grammars/tree-sitter-ruby.wasm → tree-sitter-ruby.wasm} +0 -0
  83. /package/package/acode/dist/grammars/{grammars/tree-sitter-rust.wasm → tree-sitter-rust.wasm} +0 -0
  84. /package/package/acode/dist/grammars/{grammars/tree-sitter-tsx.wasm → tree-sitter-tsx.wasm} +0 -0
  85. /package/package/acode/dist/grammars/{grammars/tree-sitter-typescript.wasm → tree-sitter-typescript.wasm} +0 -0
@@ -115,6 +115,16 @@ export declare class MessageBuffer {
115
115
 
116
116
 
117
117
 
118
+ forgetSeen(messages: (DirectMessage | GroupMessage)[]): void;
119
+
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+
118
128
 
119
129
 
120
130
 
@@ -1,2 +1,2 @@
1
- import{logger as r}from"./logger.js";import{meetingDebugFingerprint as h,meetingDebugFingerprints as c,meetingDebugLog as f}from"./meeting-debug-log.js";const u=500;function a(n){if(n.msgId===void 0||n.msgId===null)return;const e=n.channel;if(e==="meeting")return`meeting:${n.msgId}`;if(e==="meeting_invite")return`meeting_invite:${n.msgId}`;if(e==="notification")return`notification:${n.msgId}`;if(typeof n.msgId=="number"){const s=n.roomId;return`group:${typeof s=="string"?s:""}:${n.msgId}`}return n.msgId}class M{buffer=[];resolvers=[];onMessageArrived=null;isPolling=!1;seenMsgIds=new Map;setOnMessageArrived(e){this.onMessageArrived=e}setIsPolling(e){this.isPolling=e}markSeen(e){const s=a(e);s!==void 0&&(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds())}isDuplicate(e){const s=a(e);return s===void 0?!1:this.seenMsgIds.has(s)?!0:(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds(),!1)}cleanupSeenMsgIds(){if(this.seenMsgIds.size<=u)return;let e=0;const s=this.seenMsgIds.size-u;for(const t of this.seenMsgIds.keys()){if(e>=s)break;this.seenMsgIds.delete(t),e++}}push(e){if(this.isDuplicate(e)){r.info(`[MessageBuffer] \u5FFD\u7565\u91CD\u590D\u6D88\u606F\uFF0CmsgId: ${e.msgId}`);const s=e.channel;(s==="meeting"||s==="meeting_invite")&&f("buffer.push.duplicate-blocked",`${h(e)} content=${String(e.content??"").slice(0,120)}`);return}this.buffer.push(e),r.debug(`[MessageBuffer] \u6D88\u606F\u5165\u7F13\u51B2\u533A\uFF0C\u5F53\u524D\u6570\u91CF: ${this.buffer.length}`);{const s=e.channel;(s==="meeting"||s==="meeting_invite")&&f("buffer.push.enqueued",`${h(e)} content=${String(e.content??"").slice(0,120)}`)}this.isPolling&&this.onMessageArrived&&(r.debug("[MessageBuffer] \u68C0\u6D4B\u5230 poll \u7B49\u5F85\u4E2D\uFF0C\u89E6\u53D1\u6D88\u606F\u5230\u8FBE\u56DE\u8C03"),this.onMessageArrived()),this.tryDispatch()}setProfileMessage(e){r.info(`[MessageBuffer] \u6536\u5230 Profile \u63A8\u9001\uFF0CdisplayName: ${e.displayName}\u3002\u8EAB\u4EFD\u4FE1\u606F\u8BF7\u901A\u8FC7 get_profile \u83B7\u53D6\u3002`)}removeProfileMessage(){r.info("[MessageBuffer] removeProfileMessage \u88AB\u8C03\u7528\uFF0C\u5F53\u524D\u65E0\u9700\u79FB\u9664\u672A\u8BFB\u8EAB\u4EFD\u6D88\u606F")}hasProfileMessage(){return!1}wakeUpWaiters(){if(f("buffer.wakeUpWaiters",`bufferSize=${this.buffer.length} waiters=${this.resolvers.length}`),this.tryDispatch(),this.buffer.length===0&&this.resolvers.length>0){const e=this.resolvers.shift();e&&(this.updatePollingState(),r.info("[MessageBuffer] wakeUpWaiters: \u5524\u9192 poll \u8D70 hydrate \u91CD\u67E5"),e({directMessages:[],groupMessages:[]}))}}getProfileMessage(){return null}updatePollingState(){this.isPolling=this.resolvers.length>0}poll(e){if(r.debug(`[MessageBuffer] poll() \u88AB\u8C03\u7528\uFF0Cbuffer: ${this.buffer.length}${e?`\uFF0C\u8D85\u65F6: ${e}ms`:""}`),this.buffer.length>0){const s=this.consumeAll();return r.info(`[MessageBuffer] poll \u7ACB\u5373\u8FD4\u56DE\uFF0C\u79C1\u804A: ${s.directMessages.length}\uFF0C\u7FA4\u804A: ${s.groupMessages.length}`),Promise.resolve(s)}return this.resolvers.length===0&&(this.isPolling=!0),new Promise(s=>{let t=null,i=!1;const g=l=>{if(i)return;i=!0;const o=this.resolvers.indexOf(g);o>-1&&this.resolvers.splice(o,1),t&&(clearTimeout(t),t=null),this.updatePollingState(),r.info(`[MessageBuffer] poll \u6536\u5230\u6D88\u606F\uFF0C\u79C1\u804A: ${l.directMessages.length}\uFF0C\u7FA4\u804A: ${l.groupMessages.length}`),s(l)};this.resolvers.push(g),this.tryDispatch(),e&&e>0&&(t=setTimeout(()=>{if(i)return;i=!0;const l=this.resolvers.indexOf(g);l>-1&&this.resolvers.splice(l,1),this.updatePollingState(),r.info(`[MessageBuffer] poll \u8D85\u65F6\uFF08${e}ms\uFF09\uFF0C\u8FD4\u56DE\u7A7A\u6D88\u606F`),s({directMessages:[],groupMessages:[]})},e))})}get(){if(this.buffer.length>0){const e=this.consumeAll();return r.info(`[MessageBuffer] get \u8FD4\u56DE\u6D88\u606F\uFF0C\u79C1\u804A: ${e.directMessages.length}\uFF0C\u7FA4\u804A: ${e.groupMessages.length}`),e}return{directMessages:[],groupMessages:[]}}takeForceDirectMessages(){const e=[],s=[];for(const t of this.buffer)this.isDirectMessage(t)&&t.force===!0?(this.markSeen(t),e.push(t)):s.push(t);return this.buffer=s,e.length>0&&(r.info(`[MessageBuffer] takeForceDirectMessages \u53D6\u8D70\u5F3A\u5236\u79C1\u4FE1 ${e.length} \u6761\uFF0C\u5269\u4F59 ${s.length} \u6761`),this.tryDispatch()),{directMessages:e,groupMessages:[]}}requeue(e){const s=[...e.directMessages,...e.groupMessages];s.length!==0&&(this.buffer.unshift(...s),r.info(`[MessageBuffer] requeue \u56DE\u6EDA\u672A\u4EA4\u4ED8\u6D88\u606F ${s.length} \u6761\uFF08\u79C1\u804A ${e.directMessages.length}\uFF0C\u7FA4\u804A ${e.groupMessages.length}\uFF09\uFF0C\u5F53\u524D\u6570\u91CF: ${this.buffer.length}`),this.tryDispatch())}size(){return this.buffer.length}clear(){this.buffer=[];for(const e of this.resolvers)e({directMessages:[],groupMessages:[]});this.resolvers=[],this.isPolling=!1,this.seenMsgIds.clear()}tryDispatch(){for(;this.resolvers.length>0&&this.buffer.length>0;){const e=this.resolvers.shift();if(e){const s=this.consumeAll();e(s)}}this.updatePollingState()}consumeAll(){const e=[],s=[];for(;this.buffer.length>0;){const i=this.buffer.shift();i&&(this.markSeen(i),this.isDirectMessage(i)?e.push(i):s.push(i))}const t=e.filter(i=>i.channel==="meeting"||i.channel==="meeting_invite");return t.length>0&&f("buffer.consumeAll",`consumed=${c(t)} dm=${e.length} gm=${s.length}`),{directMessages:e,groupMessages:s}}isDirectMessage(e){const s=e.channel;return s==="meeting"||s==="meeting_invite"?!0:typeof e.msgId=="string"}}export{M as MessageBuffer};
1
+ import{logger as n}from"./logger.js";import{meetingDebugFingerprint as u,meetingDebugFingerprints as c,meetingDebugLog as l}from"./meeting-debug-log.js";const a=500;function o(r){if(r.msgId===void 0||r.msgId===null)return;const e=r.channel;if(e==="meeting")return`meeting:${r.msgId}`;if(e==="meeting_invite")return`meeting_invite:${r.msgId}`;if(e==="notification")return`notification:${r.msgId}`;if(typeof r.msgId=="number"){const s=r.roomId;return`group:${typeof s=="string"?s:""}:${r.msgId}`}return r.msgId}class M{buffer=[];resolvers=[];onMessageArrived=null;isPolling=!1;seenMsgIds=new Map;setOnMessageArrived(e){this.onMessageArrived=e}setIsPolling(e){this.isPolling=e}markSeen(e){const s=o(e);s!==void 0&&(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds())}isDuplicate(e){const s=o(e);return s===void 0?!1:this.seenMsgIds.has(s)?!0:(this.seenMsgIds.set(s,Date.now()),this.cleanupSeenMsgIds(),!1)}cleanupSeenMsgIds(){if(this.seenMsgIds.size<=a)return;let e=0;const s=this.seenMsgIds.size-a;for(const t of this.seenMsgIds.keys()){if(e>=s)break;this.seenMsgIds.delete(t),e++}}push(e){if(this.isDuplicate(e)){n.info(`[MessageBuffer] \u5FFD\u7565\u91CD\u590D\u6D88\u606F\uFF0CmsgId: ${e.msgId}`);const s=e.channel;(s==="meeting"||s==="meeting_invite")&&l("buffer.push.duplicate-blocked",`${u(e)} content=${String(e.content??"").slice(0,120)}`);return}this.buffer.push(e),n.debug(`[MessageBuffer] \u6D88\u606F\u5165\u7F13\u51B2\u533A\uFF0C\u5F53\u524D\u6570\u91CF: ${this.buffer.length}`);{const s=e.channel;(s==="meeting"||s==="meeting_invite")&&l("buffer.push.enqueued",`${u(e)} content=${String(e.content??"").slice(0,120)}`)}this.isPolling&&this.onMessageArrived&&(n.debug("[MessageBuffer] \u68C0\u6D4B\u5230 poll \u7B49\u5F85\u4E2D\uFF0C\u89E6\u53D1\u6D88\u606F\u5230\u8FBE\u56DE\u8C03"),this.onMessageArrived()),this.tryDispatch()}setProfileMessage(e){n.info(`[MessageBuffer] \u6536\u5230 Profile \u63A8\u9001\uFF0CdisplayName: ${e.displayName}\u3002\u8EAB\u4EFD\u4FE1\u606F\u8BF7\u901A\u8FC7 get_profile \u83B7\u53D6\u3002`)}removeProfileMessage(){n.info("[MessageBuffer] removeProfileMessage \u88AB\u8C03\u7528\uFF0C\u5F53\u524D\u65E0\u9700\u79FB\u9664\u672A\u8BFB\u8EAB\u4EFD\u6D88\u606F")}hasProfileMessage(){return!1}wakeUpWaiters(){if(l("buffer.wakeUpWaiters",`bufferSize=${this.buffer.length} waiters=${this.resolvers.length}`),this.tryDispatch(),this.buffer.length===0&&this.resolvers.length>0){const e=this.resolvers.shift();e&&(this.updatePollingState(),n.info("[MessageBuffer] wakeUpWaiters: \u5524\u9192 poll \u8D70 hydrate \u91CD\u67E5"),e({directMessages:[],groupMessages:[]}))}}getProfileMessage(){return null}updatePollingState(){this.isPolling=this.resolvers.length>0}poll(e){if(n.debug(`[MessageBuffer] poll() \u88AB\u8C03\u7528\uFF0Cbuffer: ${this.buffer.length}${e?`\uFF0C\u8D85\u65F6: ${e}ms`:""}`),this.buffer.length>0){const s=this.consumeAll();return n.info(`[MessageBuffer] poll \u7ACB\u5373\u8FD4\u56DE\uFF0C\u79C1\u804A: ${s.directMessages.length}\uFF0C\u7FA4\u804A: ${s.groupMessages.length}`),Promise.resolve(s)}return this.resolvers.length===0&&(this.isPolling=!0),new Promise(s=>{let t=null,i=!1;const g=f=>{if(i)return;i=!0;const h=this.resolvers.indexOf(g);h>-1&&this.resolvers.splice(h,1),t&&(clearTimeout(t),t=null),this.updatePollingState(),n.info(`[MessageBuffer] poll \u6536\u5230\u6D88\u606F\uFF0C\u79C1\u804A: ${f.directMessages.length}\uFF0C\u7FA4\u804A: ${f.groupMessages.length}`),s(f)};this.resolvers.push(g),this.tryDispatch(),e&&e>0&&(t=setTimeout(()=>{if(i)return;i=!0;const f=this.resolvers.indexOf(g);f>-1&&this.resolvers.splice(f,1),this.updatePollingState(),n.info(`[MessageBuffer] poll \u8D85\u65F6\uFF08${e}ms\uFF09\uFF0C\u8FD4\u56DE\u7A7A\u6D88\u606F`),s({directMessages:[],groupMessages:[]})},e))})}get(){if(this.buffer.length>0){const e=this.consumeAll();return n.info(`[MessageBuffer] get \u8FD4\u56DE\u6D88\u606F\uFF0C\u79C1\u804A: ${e.directMessages.length}\uFF0C\u7FA4\u804A: ${e.groupMessages.length}`),e}return{directMessages:[],groupMessages:[]}}takeForceDirectMessages(){const e=[],s=[];for(const t of this.buffer)this.isDirectMessage(t)&&t.force===!0?(this.markSeen(t),e.push(t)):s.push(t);return this.buffer=s,e.length>0&&(n.info(`[MessageBuffer] takeForceDirectMessages \u53D6\u8D70\u5F3A\u5236\u79C1\u4FE1 ${e.length} \u6761\uFF0C\u5269\u4F59 ${s.length} \u6761`),this.tryDispatch()),{directMessages:e,groupMessages:[]}}forgetSeen(e){for(const s of e){const t=o(s);t!==void 0&&this.seenMsgIds.delete(t)}}requeue(e){const s=[...e.directMessages,...e.groupMessages];s.length!==0&&(this.buffer.unshift(...s),n.info(`[MessageBuffer] requeue \u56DE\u6EDA\u672A\u4EA4\u4ED8\u6D88\u606F ${s.length} \u6761\uFF08\u79C1\u804A ${e.directMessages.length}\uFF0C\u7FA4\u804A ${e.groupMessages.length}\uFF09\uFF0C\u5F53\u524D\u6570\u91CF: ${this.buffer.length}`),this.tryDispatch())}size(){return this.buffer.length}clear(){this.buffer=[];for(const e of this.resolvers)e({directMessages:[],groupMessages:[]});this.resolvers=[],this.isPolling=!1,this.seenMsgIds.clear()}tryDispatch(){for(;this.resolvers.length>0&&this.buffer.length>0;){const e=this.resolvers.shift();if(e){const s=this.consumeAll();e(s)}}this.updatePollingState()}consumeAll(){const e=[],s=[];for(;this.buffer.length>0;){const i=this.buffer.shift();i&&(this.markSeen(i),this.isDirectMessage(i)?e.push(i):s.push(i))}const t=e.filter(i=>i.channel==="meeting"||i.channel==="meeting_invite");return t.length>0&&l("buffer.consumeAll",`consumed=${c(t)} dm=${e.length} gm=${s.length}`),{directMessages:e,groupMessages:s}}isDirectMessage(e){const s=e.channel;return s==="meeting"||s==="meeting_invite"?!0:typeof e.msgId=="string"}}export{M as MessageBuffer};
2
2
 
@@ -1,4 +1,4 @@
1
- import{EventEmitter as _}from"node:events";import{logger as h}from"./logger.js";const d="[temp clipboard paste file]",g=/[A-Z]:(?:\\\\|\\)[^\r\n"'`]*?(?:\\\\|\\)mini-term-clipboard(?:\\\\|\\)paste-\d+\.txt/gi,A=/\/[^\r\n"'`]*?\/mini-term-clipboard\/paste-\d+\.txt/gi,S=/mini-term-clipboard[\\/]paste-\d+\.txt/gi,w=new Set(["aws-mcp","agents-work-studio"]),f=500;function p(c){return c.replace(g,d).replace(A,d).replace(S,d)}const y=/^(password|passwd|secret|token|api[-_]?key|access[-_]?key|private[-_]?key|authorization|credential)/i;function m(c,e=0){if(e>8)return c;if(Array.isArray(c))return c.map(t=>m(t,e+1));if(c!==null&&typeof c=="object"){const t={};for(const[r,i]of Object.entries(c))typeof i=="string"&&y.test(r)?t[r]="[redacted]":t[r]=m(i,e+1);return t}return c}class u 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,void 0,this.formatToolInput(t))}reportToolResult(e){this.updateStatus("tool_using",this.currentAction?.type,this.currentAction?.label,this.currentAction?.detail,this.formatToolResult(e),this.currentAction?.input)}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.currentAction?.input),this.clearAction()}static KNOWN_MCP_TOOLS={get_colleague:"aws-mcp",list_colleague_events:"aws-mcp",get_group_rooms:"aws-mcp",list_project_members:"aws-mcp",get_profile:"aws-mcp",hire_colleague:"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",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=u.KNOWN_MCP_TOOLS[t.toLowerCase()];return r&&w.has(e.toLowerCase())?r:e}static formatMcpDetail(e,t){return e?t?`${u.canonicalizeMcpServer(e,t)}/${t}`:e:t}parseToolAction(e,t){const r=e.toLowerCase(),i=r.replace(/[_-]/g,""),a=(...n)=>{for(const s of n){if(typeof s=="string"&&s.trim())return p(s);if(Array.isArray(s)&&s.length>0){const l=s[0];if(typeof l=="string"&&l.trim())return p(l)}}};if(r.includes("skill")||r.includes("disclose"))return{type:"skill",label:"Calling skill",detail:t?.name?p(String(t.name)):void 0};const o=u.KNOWN_MCP_TOOLS[r];if(o)return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(o,e)};if(r.startsWith("mcp__")){const n=e.split("__"),s=n[1]||"",l=n.slice(2).join("__");return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(s,l)}}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("__"),s=n[0],l=n.slice(1).join("__");return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(s,l)}}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>f?`${n.substring(0,f)}...\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,o){this.currentStatus=e,t&&(this.currentAction={type:t,label:r,detail:i,input:o});const n={agentId:this.config.agentId,status:e,actionType:t??void 0,actionLabel:t?this.currentAction?.label:void 0,actionDetail:t?this.currentAction?.detail:void 0,actionInput:t?this.currentAction?.input:void 0,actionResult:a,timestamp:new Date().toISOString()};h.info(`[StatusReporter] \u72B6\u6001\u66F4\u65B0: ${e}${r?` - ${r}`:""}`),this.config.sendStatusUpdate(n)}clearAction(){this.currentAction=null}formatToolInput(e){if(!(!e||Object.keys(e).length===0))try{const t=p(JSON.stringify(m(e),null,2)),r=6e3;return t.length<=r?t:`${t.slice(0,r)}
1
+ import{EventEmitter as _}from"node:events";import{logger as h}from"./logger.js";const d="[temp clipboard paste file]",g=/[A-Z]:(?:\\\\|\\)[^\r\n"'`]*?(?:\\\\|\\)mini-term-clipboard(?:\\\\|\\)paste-\d+\.txt/gi,A=/\/[^\r\n"'`]*?\/mini-term-clipboard\/paste-\d+\.txt/gi,S=/mini-term-clipboard[\\/]paste-\d+\.txt/gi,w=new Set(["aws-mcp","agents-work-studio"]),f=500;function p(c){return c.replace(g,d).replace(A,d).replace(S,d)}const y=/^(password|passwd|secret|token|api[-_]?key|access[-_]?key|private[-_]?key|authorization|credential)/i;function m(c,e=0){if(e>8)return c;if(Array.isArray(c))return c.map(t=>m(t,e+1));if(c!==null&&typeof c=="object"){const t={};for(const[r,i]of Object.entries(c))typeof i=="string"&&y.test(r)?t[r]="[redacted]":t[r]=m(i,e+1);return t}return c}class u 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,void 0,this.formatToolInput(t))}reportToolResult(e){this.updateStatus("tool_using",this.currentAction?.type,this.currentAction?.label,this.currentAction?.detail,this.formatToolResult(e),this.currentAction?.input)}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.currentAction?.input),this.clearAction()}static KNOWN_MCP_TOOLS={get_colleague:"aws-mcp",list_colleague_events:"aws-mcp",get_group_rooms:"aws-mcp",list_project_members:"aws-mcp",get_profile:"aws-mcp",hire_colleague:"aws-mcp",send_group:"aws-mcp",send_private:"aws-mcp",get_send_status:"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",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=u.KNOWN_MCP_TOOLS[t.toLowerCase()];return r&&w.has(e.toLowerCase())?r:e}static formatMcpDetail(e,t){return e?t?`${u.canonicalizeMcpServer(e,t)}/${t}`:e:t}parseToolAction(e,t){const r=e.toLowerCase(),i=r.replace(/[_-]/g,""),a=(...n)=>{for(const s of n){if(typeof s=="string"&&s.trim())return p(s);if(Array.isArray(s)&&s.length>0){const l=s[0];if(typeof l=="string"&&l.trim())return p(l)}}};if(r.includes("skill")||r.includes("disclose"))return{type:"skill",label:"Calling skill",detail:t?.name?p(String(t.name)):void 0};const o=u.KNOWN_MCP_TOOLS[r];if(o)return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(o,e)};if(r.startsWith("mcp__")){const n=e.split("__"),s=n[1]||"",l=n.slice(2).join("__");return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(s,l)}}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("__"),s=n[0],l=n.slice(1).join("__");return{type:"mcp",label:"Calling MCP",detail:u.formatMcpDetail(s,l)}}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>f?`${n.substring(0,f)}...\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,o){this.currentStatus=e,t&&(this.currentAction={type:t,label:r,detail:i,input:o});const n={agentId:this.config.agentId,status:e,actionType:t??void 0,actionLabel:t?this.currentAction?.label:void 0,actionDetail:t?this.currentAction?.detail:void 0,actionInput:t?this.currentAction?.input:void 0,actionResult:a,timestamp:new Date().toISOString()};h.info(`[StatusReporter] \u72B6\u6001\u66F4\u65B0: ${e}${r?` - ${r}`:""}`),this.config.sendStatusUpdate(n)}clearAction(){this.currentAction=null}formatToolInput(e){if(!(!e||Object.keys(e).length===0))try{const t=p(JSON.stringify(m(e),null,2)),r=6e3;return t.length<=r?t:`${t.slice(0,r)}
2
2
  ...(input too long, truncated)`}catch{return}}formatToolResult(e){let t;try{t=typeof e=="string"?e:JSON.stringify(e,null,2)}catch(o){t=`[Unable to serialize tool result: ${o instanceof Error?o.message:String(o)}]`}const r=t||String(e),i=4e3,a=p(r);return a.length<=i?a:`${a.slice(0,i)}
3
3
  ...(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,actionInput:this.currentAction?.input,timestamp:new Date().toISOString()}}}export{u as StatusReporter,p as redactTransientClipboardPastePaths};
4
4
 
@@ -1,3 +1,3 @@
1
- import{DEBUG_LOG_TOOL_NAMES as s,DRAW_TOOL_NAMES as i,EMAIL_TOOL_NAMES as n,FILE_CHANGES_HISTORY_TOOL_NAMES as u,HIRE_TOOL_NAMES as d,LAUNCH_CONFIG_TOOL_NAMES as c,ABILITY_DEV_TOOL_NAMES as f,ABILITY_MARKET_TOOL_NAMES as p,MEETING_TOOL_NAMES as y,OFFICE_TOOL_NAMES as m,PENCIL_TOOL_NAMES as b,TASK_TOOL_NAMES as _,AGENT_OBSERVE_TOOL_NAMES as S}from"./mcp-tools.js";const O=new Set(["disabled","collapsed","expanded"]);function k(e){if(e===!0)return"expanded";if(e===!1)return"disabled";if(typeof e=="string"&&O.has(e))return e}const a=[{key:"launch",label:"\u542F\u52A8\u9879\u7BA1\u7406",featureKey:"agentSys.launchItem",toolNames:c,collapsible:!0,defaultState:"collapsed",summary:"\u7BA1\u7406\u9879\u76EE\u4E2D\u4E1A\u52A1\u7A0B\u5E8F\u7684\u8D77\u505C\uFF0C\u82E5\u540E\u9762\u9700\u8981\u542F\u52A8\u9879\u76EE\u5E94\u4F7F\u7528\u6B64\u5DE5\u5177"},{key:"hire",label:"\u62DB\u8058\u5DE5\u5177",featureKey:"agentSys.hire",toolNames:d,collapsible:!0,defaultState:"collapsed",summary:"\u62DB\u8058\u65B0\u7684\u540C\u4E8B Agent\uFF08\u5355\u4E2A\u6216\u6279\u91CF\uFF09"},{key:"abilityMarket",label:"\u80FD\u529B\u5E02\u573A",featureKey:"agentSys.skillInstall",toolNames:p,collapsible:!0,defaultState:"collapsed",summary:"\u6D4F\u89C8\u80FD\u529B\u5E02\u573A\u5E76\u628A MCP\u3001Skill\u3001Plugin \u5B89\u88C5/\u5378\u8F7D\u5230\u81EA\u8EAB\u6240\u5728\u89D2\u8272\u5B9E\u4F8B\u6216\u5168\u5C40\u914D\u7F6E\u6A21\u677F\uFF08scope\uFF09\uFF0C\u6D4F\u89C8\u65F6\u53EF\u62FF\u5230\u73AF\u5883\u53D8\u91CF\u5951\u7EA6\uFF08envSchema\uFF09\uFF0C\u5B89\u88C5\u65F6\u901A\u8FC7 env \u914D\u7F6E\uFF08\u8303\u56F4=\u5F53\u524D\u5B9E\u4F8B\uFF09\uFF1B\u5B89\u88C5\u5B8C\u6210\u5373\u8FD4\u56DE\u5DE5\u5177\u6E05\u5355\u4E0E\u8C03\u7528\u65B9\u5F0F"},{key:"abilityDev",label:"\u80FD\u529B\u5F00\u53D1\uFF08MCP/\u63D2\u4EF6/Skill\uFF09",featureKey:"agentSys.abilityDev",toolNames:f,collapsible:!0,defaultState:"collapsed",summary:"\u5728\u81EA\u5DF1\u4F1A\u8BDD\u5DE5\u4F5C\u533A\u5185\u81EA\u7814 MCP/\u63D2\u4EF6/Skill\uFF1A\u7528 ability_dev_ide \u8BFB\u7F16\u5199\u89C4\u8303\uFF08action=guide\uFF09\u5E76\u4E34\u65F6\u6302\u8F7D\u8C03\u8BD5\u4E0E\u6392\u969C\uFF08action=mount/unmount/list/logs\uFF0C\u4E0D\u6301\u4E45\u5316\u3001\u6587\u4EF6\u53D8\u66F4\u81EA\u52A8\u91CD\u8F7D\uFF09\uFF0C\u8C03\u8BD5\u901A\u8FC7\u540E\u8F6C\u6B63\uFF08formal_ability\uFF0C\u9ED8\u8BA4\u5165\u5168\u5C40\u914D\u7F6E\u6A21\u677F\u4E14\u521D\u59CB\u5316\u5173\u95ED\uFF09\uFF1B\u67E5\u770B\u81EA\u8EAB\u5168\u90E8\u80FD\u529B\u7528 list_my_abilities"},{key:"pencil",label:"\u8BBE\u8BA1\u753B\u5E03(pencil)",featureKey:"pencil",toolNames:b,collapsible:!0,defaultState:"collapsed",summary:"UI design editor. Open-source Figma alternative."},{key:"draw",label:"\u7ED8\u56FE",featureKey:"draw",toolNames:i,collapsible:!0,defaultState:"collapsed",summary:"\u7ED8\u5236 draw.io \u6D41\u7A0B\u56FE / \u6CF3\u9053\u56FE\uFF0C\u5BFC\u51FA XML"},{key:"office",label:"Office \u6587\u4EF6",featureKey:"office",toolNames:m,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA\u4E0E\u7F16\u8F91 Word/Excel/PowerPoint\uFF08docx/xlsx/pptx\uFF0CApache POI \u683C\u5F0F\u5C42\uFF09\uFF1AWord \u652F\u6301 run/\u5355\u5143\u683C\u7EA7\u7CBE\u51C6\u7F16\u8F91\u3001\u6279\u6CE8\u3001\u4FEE\u8BA2\u3001\u516C\u5F0F\u3001\u76EE\u5F55\u9875\u7801\u3001\u4E09\u7EBF\u8868\u3001\u6807\u9898\u7F16\u53F7\u4E0E\u683C\u5F0F\u89C4\u8303\u68C0\u67E5/\u4E00\u952E\u4FEE\u6B63\uFF1B\u6821\u9A8C\u3001\u751F\u6210 HTML \u9884\u89C8\u3001\u5728 Dashboard \u9762\u677F\u4E2D\u5B9E\u65F6\u67E5\u770B\uFF0C\u53EF\u53D1\u6D88\u606F\u5361\u7247\u5206\u4EAB\u6587\u4EF6\uFF1B\u6587\u6863\u81EA\u52A8\u767B\u8BB0\u4E3A\u4E91\u6587\u6863\uFF0C\u652F\u6301\u5217\u51FA/\u5206\u4EAB\u7ED9\u5176\u4ED6 Agent \u534F\u4F5C\uFF08read|write\uFF09\u4E0E\u8FFD\u8D76\u53D8\u66F4"},{key:"task",label:"\u6D41\u7A0B\u4EFB\u52A1",featureKey:"collaboration.task",toolNames:_,collapsible:!0,defaultState:"collapsed",summary:"\u5904\u7406\u6D41\u7A0B\u7EBF\u4EFB\u52A1\uFF1A\u67E5\u770B\u5F53\u524D\u4EFB\u52A1\u3001\u63D0\u4EA4\u6267\u884C\u7ED3\u679C\u3001\u56DE\u9000\u4EFB\u52A1\u3001\u7ED9\u6D41\u7A0B\u5B9E\u4F8B\u7559\u8A00"},{key:"meeting",label:"\u4F1A\u8BAE",featureKey:"collaboration.meeting",toolNames:y,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA/\u52A0\u5165\u4F1A\u8BAE\u3001\u53D1\u8A00\u3001\u67E5\u770B\u4F1A\u8BAE\u4FE1\u606F\u3001\u79BB\u5F00/\u7ED3\u675F\u4F1A\u8BAE"},{key:"debug",label:"\u8C03\u8BD5\u65E5\u5FD7",featureKey:"collaboration.debug",toolNames:s,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u6761\u4EF6\u5206\u9875\u67E5\u8BE2 Debug \u65E5\u5FD7\u4E0E\u83B7\u53D6\u65E5\u5FD7\u4E0A\u62A5\u914D\u7F6E"},{key:"fileHistory",label:"\u6587\u4EF6\u53D8\u66F4\u5386\u53F2",featureKey:"collaboration.fileHistory",toolNames:u,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u89D2\u8272/\u5B9E\u4F8B/\u6587\u4EF6\u8DEF\u5F84\u8FC7\u6EE4\u67E5\u8BE2\u6587\u4EF6\u53D8\u66F4\u5386\u53F2"},{key:"agentObserve",label:"\u540C\u4E8B\u52A8\u6001\u89C2\u5BDF",featureKey:"collaboration.agentObserve",toolNames:S,collapsible:!0,defaultState:"collapsed",summary:"\u5206\u9875\u67E5\u770B\u6307\u5B9A\u540C\u4E8B\u7684\u884C\u4E3A\u65F6\u95F4\u7EBF\uFF08\u8BFB\u4E86\u54EA\u4E9B\u6587\u4EF6\u3001\u6267\u884C\u4E86\u4EC0\u4E48\u547D\u4EE4\u3001\u8C03\u7528\u4E86\u54EA\u4E9B\u5DE5\u5177\uFF09\uFF0C\u7528\u4E8E\u4E86\u89E3\u540C\u4E8B\u5F53\u524D\u8FDB\u5C55\u3001\u5224\u65AD\u662F\u5426\u9700\u8981\u7B49\u5F85\u6216\u63A5\u624B"},{key:"email",label:"\u90AE\u7BB1",featureKey:"email",toolNames:n,collapsible:!0,defaultState:"collapsed",summary:"\u6536\u53D1\u89D2\u8272\u5B9E\u4F8B\u57DF\u540D\u90AE\u7BB1\uFF08xxxxx@\u57DF\u540D\uFF09\uFF1A\u53D1\u4FE1\u3001\u5217\u90AE\u4EF6\u3001\u8BFB\u6B63\u6587\u4E0E\u9644\u4EF6\u3001\u56DE\u4FE1\u4FDD\u6301\u7EBF\u7A0B\u3001\u786E\u8BA4\u4E1A\u52A1\u6D88\u8D39"}],N=new Map(a.map(e=>[e.key,e])),E=(()=>{const e=new Map;for(const l of a)for(const t of l.toolNames)e.set(t,l);return e})();function x(e){return N.get(e)}const r=[{key:"browser",label:"\u6D4F\u89C8\u5668\u64CD\u4F5C",featureKey:"browser",defaultState:"collapsed",summary:"\u542F\u52A8\u6D4F\u89C8\u5668\u4F1A\u8BDD\u3001\u5BFC\u822A\u3001\u622A\u56FE\u4E0E\u9875\u9762\u4EA4\u4E92"},{key:"desktop",label:"\u684C\u9762\u64CD\u4F5C",featureKey:"desktop",defaultState:"disabled",summary:"\u622A\u5C4F\u3001\u9F20\u6807\u952E\u76D8\u63A7\u5236\u4E0E UI \u81EA\u52A8\u5316\uFF08Computer Use\uFF09"}];function L(e){return r.find(l=>l.key===e)}function M(e){return E.get(e)}function g(e){const l=a.find(o=>o.featureKey===e);return l?l.defaultState:r.find(o=>o.featureKey===e)?.defaultState}function I(e){return r.find(l=>e.startsWith(`${l.key}_`))}function K(){return a.filter(e=>e.collapsible).map(e=>e.key)}const T="ACODE_TOOL_GROUPS_V1:";function G(){const e=a.filter(l=>l.collapsible).map(l=>({key:l.key,label:l.label,toolNames:[...l.toolNames]}));return`${T}${JSON.stringify({groups:e})}`}function P(e,l,t){return e.featureKey&&l==="disabled"?"disabled":e.collapsible&&l==="collapsed"&&!t?"collapsed":"expanded"}function C(e){return e.length===0?void 0:["## \u6309\u9700\u5DE5\u5177\u96C6","","\u4EE5\u4E0B\u5DE5\u5177\u96C6\u9ED8\u8BA4\u6536\u8D77\u4EE5\u4FDD\u6301\u5DE5\u5177\u5217\u8868\u7A33\u5B9A\u5E76\u8282\u7701\u4E0A\u4E0B\u6587\u3002\u5F53\u4EFB\u52A1\u9700\u8981\u65F6\uFF0C\u5148\u8C03\u7528 expand_tools \u5C55\u5F00\uFF0C","\u5DE5\u5177\u5B9A\u4E49\uFF08\u540D\u79F0/\u8BF4\u660E/\u53C2\u6570 schema\uFF09\u968F expand_tools \u7684\u8FD4\u56DE\u7ED3\u679C\u4E0B\u53D1\uFF0C\u5F53\u8F6E\u5373\u53EF\u7ECF call_tool \u8C03\u7528\uFF1A",'call_tool({ name: "<\u5DE5\u5177\u540D>", arguments: {...} })',"",...e.map(t=>`- ${t.key}\uFF08${t.label}\uFF09\uFF1A${t.summary}`),"",'\u793A\u4F8B\uFF1Aexpand_tools({ group: "pencil" })'].join(`
2
- `)}export{r as BRIDGE_LAZY_CAPABILITIES,a as TOOL_GROUPS,T as TOOL_GROUP_MANIFEST_PREFIX,G as buildToolGroupManifest,C as buildToolGroupPrompt,K as collapsibleToolGroupKeys,g as defaultStateForFeatureKey,I as findBridgeCapabilityByToolName,L as findBridgeLazyCapability,x as findToolGroup,M as findToolGroupByToolName,k as normalizeFeatureState,P as resolveToolGroupState};
1
+ import{DEBUG_LOG_TOOL_NAMES as s,DRAW_TOOL_NAMES as i,EMAIL_TOOL_NAMES as n,FILE_CHANGES_HISTORY_TOOL_NAMES as u,HIRE_TOOL_NAMES as d,LAUNCH_CONFIG_TOOL_NAMES as c,ABILITY_DEV_TOOL_NAMES as p,ABILITY_MARKET_TOOL_NAMES as f,MEETING_TOOL_NAMES as y,OFFICE_TOOL_NAMES as m,PENCIL_TOOL_NAMES as b,TASK_TOOL_NAMES as _,AGENT_OBSERVE_TOOL_NAMES as S,VOICE_TOOL_NAMES as O}from"./mcp-tools.js";const N=new Set(["disabled","collapsed","expanded"]);function x(e){if(e===!0)return"expanded";if(e===!1)return"disabled";if(typeof e=="string"&&N.has(e))return e}const a=[{key:"launch",label:"\u542F\u52A8\u9879\u7BA1\u7406",featureKey:"agentSys.launchItem",toolNames:c,collapsible:!0,defaultState:"collapsed",summary:"\u7BA1\u7406\u9879\u76EE\u4E2D\u4E1A\u52A1\u7A0B\u5E8F\u7684\u8D77\u505C\uFF0C\u82E5\u540E\u9762\u9700\u8981\u542F\u52A8\u9879\u76EE\u5E94\u4F7F\u7528\u6B64\u5DE5\u5177"},{key:"hire",label:"\u62DB\u8058\u5DE5\u5177",featureKey:"agentSys.hire",toolNames:d,collapsible:!0,defaultState:"collapsed",summary:"\u62DB\u8058\u65B0\u7684\u540C\u4E8B Agent\uFF08\u5355\u4E2A\u6216\u6279\u91CF\uFF09"},{key:"abilityMarket",label:"\u80FD\u529B\u5E02\u573A",featureKey:"agentSys.skillInstall",toolNames:f,collapsible:!0,defaultState:"collapsed",summary:"\u6D4F\u89C8\u80FD\u529B\u5E02\u573A\u5E76\u628A MCP\u3001Skill\u3001Plugin \u5B89\u88C5/\u5378\u8F7D\u5230\u81EA\u8EAB\u6240\u5728\u89D2\u8272\u5B9E\u4F8B\u6216\u5168\u5C40\u914D\u7F6E\u6A21\u677F\uFF08scope\uFF09\uFF0C\u6D4F\u89C8\u65F6\u53EF\u62FF\u5230\u73AF\u5883\u53D8\u91CF\u5951\u7EA6\uFF08envSchema\uFF09\uFF0C\u5B89\u88C5\u65F6\u901A\u8FC7 env \u914D\u7F6E\uFF08\u8303\u56F4=\u5F53\u524D\u5B9E\u4F8B\uFF09\uFF1B\u5B89\u88C5\u5B8C\u6210\u5373\u8FD4\u56DE\u5DE5\u5177\u6E05\u5355\u4E0E\u8C03\u7528\u65B9\u5F0F"},{key:"abilityDev",label:"\u80FD\u529B\u5F00\u53D1\uFF08MCP/\u63D2\u4EF6/Skill\uFF09",featureKey:"agentSys.abilityDev",toolNames:p,collapsible:!0,defaultState:"collapsed",summary:"\u5728\u81EA\u5DF1\u4F1A\u8BDD\u5DE5\u4F5C\u533A\u5185\u81EA\u7814 MCP/\u63D2\u4EF6/Skill\uFF1A\u7528 ability_dev_ide \u8BFB\u7F16\u5199\u89C4\u8303\uFF08action=guide\uFF09\u5E76\u4E34\u65F6\u6302\u8F7D\u8C03\u8BD5\u4E0E\u6392\u969C\uFF08action=mount/unmount/list/logs\uFF0C\u4E0D\u6301\u4E45\u5316\u3001\u6587\u4EF6\u53D8\u66F4\u81EA\u52A8\u91CD\u8F7D\uFF09\uFF0C\u8C03\u8BD5\u901A\u8FC7\u540E\u8F6C\u6B63\uFF08formal_ability\uFF0C\u9ED8\u8BA4\u5165\u5168\u5C40\u914D\u7F6E\u6A21\u677F\u4E14\u521D\u59CB\u5316\u5173\u95ED\uFF09\uFF1B\u67E5\u770B\u81EA\u8EAB\u5168\u90E8\u80FD\u529B\u7528 list_my_abilities"},{key:"pencil",label:"\u8BBE\u8BA1\u753B\u5E03(pencil)",featureKey:"pencil",toolNames:b,collapsible:!0,defaultState:"collapsed",summary:"UI design editor. Open-source Figma alternative."},{key:"draw",label:"\u7ED8\u56FE",featureKey:"draw",toolNames:i,collapsible:!0,defaultState:"collapsed",summary:"\u7ED8\u5236 draw.io \u6D41\u7A0B\u56FE / \u6CF3\u9053\u56FE\uFF0C\u5BFC\u51FA XML"},{key:"office",label:"Office \u6587\u4EF6",featureKey:"office",toolNames:m,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA\u4E0E\u7F16\u8F91 Word/Excel/PowerPoint\uFF08docx/xlsx/pptx\uFF0CApache POI \u683C\u5F0F\u5C42\uFF09\uFF1AWord \u652F\u6301 run/\u5355\u5143\u683C\u7EA7\u7CBE\u51C6\u7F16\u8F91\u3001\u6279\u6CE8\u3001\u4FEE\u8BA2\u3001\u516C\u5F0F\u3001\u76EE\u5F55\u9875\u7801\u3001\u4E09\u7EBF\u8868\u3001\u6807\u9898\u7F16\u53F7\u4E0E\u683C\u5F0F\u89C4\u8303\u68C0\u67E5/\u4E00\u952E\u4FEE\u6B63\uFF1B\u6821\u9A8C\u3001\u751F\u6210 HTML \u9884\u89C8\u3001\u5728 Dashboard \u9762\u677F\u4E2D\u5B9E\u65F6\u67E5\u770B\uFF0C\u53EF\u53D1\u6D88\u606F\u5361\u7247\u5206\u4EAB\u6587\u4EF6\uFF1B\u6587\u6863\u81EA\u52A8\u767B\u8BB0\u4E3A\u4E91\u6587\u6863\uFF0C\u652F\u6301\u5217\u51FA/\u5206\u4EAB\u7ED9\u5176\u4ED6 Agent \u534F\u4F5C\uFF08read|write\uFF09\u4E0E\u8FFD\u8D76\u53D8\u66F4"},{key:"task",label:"\u6D41\u7A0B\u4EFB\u52A1",featureKey:"collaboration.task",toolNames:_,collapsible:!0,defaultState:"collapsed",summary:"\u5904\u7406\u6D41\u7A0B\u7EBF\u4EFB\u52A1\uFF1A\u67E5\u770B\u5F53\u524D\u4EFB\u52A1\u3001\u63D0\u4EA4\u6267\u884C\u7ED3\u679C\u3001\u56DE\u9000\u4EFB\u52A1\u3001\u7ED9\u6D41\u7A0B\u5B9E\u4F8B\u7559\u8A00"},{key:"meeting",label:"\u4F1A\u8BAE",featureKey:"collaboration.meeting",toolNames:y,collapsible:!0,defaultState:"collapsed",summary:"\u521B\u5EFA/\u52A0\u5165\u4F1A\u8BAE\u3001\u53D1\u8A00\u3001\u67E5\u770B\u4F1A\u8BAE\u4FE1\u606F\u3001\u79BB\u5F00/\u7ED3\u675F\u4F1A\u8BAE"},{key:"debug",label:"\u8C03\u8BD5\u65E5\u5FD7",featureKey:"collaboration.debug",toolNames:s,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u6761\u4EF6\u5206\u9875\u67E5\u8BE2 Debug \u65E5\u5FD7\u4E0E\u83B7\u53D6\u65E5\u5FD7\u4E0A\u62A5\u914D\u7F6E"},{key:"fileHistory",label:"\u6587\u4EF6\u53D8\u66F4\u5386\u53F2",featureKey:"collaboration.fileHistory",toolNames:u,collapsible:!0,defaultState:"collapsed",summary:"\u6309\u89D2\u8272/\u5B9E\u4F8B/\u6587\u4EF6\u8DEF\u5F84\u8FC7\u6EE4\u67E5\u8BE2\u6587\u4EF6\u53D8\u66F4\u5386\u53F2"},{key:"agentObserve",label:"\u540C\u4E8B\u52A8\u6001\u89C2\u5BDF",featureKey:"collaboration.agentObserve",toolNames:S,collapsible:!0,defaultState:"collapsed",summary:"\u5206\u9875\u67E5\u770B\u6307\u5B9A\u540C\u4E8B\u7684\u884C\u4E3A\u65F6\u95F4\u7EBF\uFF08\u8BFB\u4E86\u54EA\u4E9B\u6587\u4EF6\u3001\u6267\u884C\u4E86\u4EC0\u4E48\u547D\u4EE4\u3001\u8C03\u7528\u4E86\u54EA\u4E9B\u5DE5\u5177\uFF09\uFF0C\u7528\u4E8E\u4E86\u89E3\u540C\u4E8B\u5F53\u524D\u8FDB\u5C55\u3001\u5224\u65AD\u662F\u5426\u9700\u8981\u7B49\u5F85\u6216\u63A5\u624B"},{key:"voice",label:"\u8BED\u97F3\u8868\u8FBE\uFF08ASR/TTS \u6307\u5357\uFF09",featureKey:"collaboration.voice",toolNames:O,collapsible:!0,defaultState:"collapsed",summary:"\u67E5\u8BE2\u5F53\u524D\u53EF\u7528\u7684\u60C5\u611F\u65B9\u8A00\uFF08\u4F20\u7EDF\u679A\u4E3E / \u81EA\u7136\u8BED\u8A00\u98CE\u683C\uFF09\u4E0E\u97F3\u8272\u76EE\u5F55\uFF0C\u4EE5\u53CA\u591A\u89D2\u8272\u5BF9\u8BDD\u3001\u505C\u987F\u3001ASR \u8F6C\u5199\u7684\u6B63\u786E\u5199\u6CD5\uFF1B\u53D1\u9001\u6D88\u606F\u672C\u8EAB\u4ECD\u7528 send_private / send_group"},{key:"email",label:"\u90AE\u7BB1",featureKey:"email",toolNames:n,collapsible:!0,defaultState:"collapsed",summary:"\u6536\u53D1\u89D2\u8272\u5B9E\u4F8B\u57DF\u540D\u90AE\u7BB1\uFF08xxxxx@\u57DF\u540D\uFF09\uFF1A\u53D1\u4FE1\u3001\u5217\u90AE\u4EF6\u3001\u8BFB\u6B63\u6587\u4E0E\u9644\u4EF6\u3001\u56DE\u4FE1\u4FDD\u6301\u7EBF\u7A0B\u3001\u786E\u8BA4\u4E1A\u52A1\u6D88\u8D39"}],T=new Map(a.map(e=>[e.key,e])),E=(()=>{const e=new Map;for(const l of a)for(const t of l.toolNames)e.set(t,l);return e})();function L(e){return T.get(e)}const r=[{key:"browser",label:"\u6D4F\u89C8\u5668\u64CD\u4F5C",featureKey:"browser",defaultState:"collapsed",summary:"\u542F\u52A8\u6D4F\u89C8\u5668\u4F1A\u8BDD\u3001\u5BFC\u822A\u3001\u622A\u56FE\u4E0E\u9875\u9762\u4EA4\u4E92"},{key:"desktop",label:"\u684C\u9762\u64CD\u4F5C",featureKey:"desktop",defaultState:"disabled",summary:"\u622A\u5C4F\u3001\u9F20\u6807\u952E\u76D8\u63A7\u5236\u4E0E UI \u81EA\u52A8\u5316\uFF08Computer Use\uFF09"}];function M(e){return r.find(l=>l.key===e)}function g(e){return E.get(e)}function I(e){const l=a.find(o=>o.featureKey===e);return l?l.defaultState:r.find(o=>o.featureKey===e)?.defaultState}function K(e){return r.find(l=>e.startsWith(`${l.key}_`))}function G(){return a.filter(e=>e.collapsible).map(e=>e.key)}const A="ACODE_TOOL_GROUPS_V1:";function C(){const e=a.filter(l=>l.collapsible).map(l=>({key:l.key,label:l.label,toolNames:[...l.toolNames]}));return`${A}${JSON.stringify({groups:e})}`}function P(e,l,t){return e.featureKey&&l==="disabled"?"disabled":e.collapsible&&l==="collapsed"&&!t?"collapsed":"expanded"}function R(e){return e.length===0?void 0:["## \u6309\u9700\u5DE5\u5177\u96C6","","\u4EE5\u4E0B\u5DE5\u5177\u96C6\u9ED8\u8BA4\u6536\u8D77\u4EE5\u4FDD\u6301\u5DE5\u5177\u5217\u8868\u7A33\u5B9A\u5E76\u8282\u7701\u4E0A\u4E0B\u6587\u3002\u5F53\u4EFB\u52A1\u9700\u8981\u65F6\uFF0C\u5148\u8C03\u7528 expand_tools \u5C55\u5F00\uFF0C","\u5DE5\u5177\u5B9A\u4E49\uFF08\u540D\u79F0/\u8BF4\u660E/\u53C2\u6570 schema\uFF09\u968F expand_tools \u7684\u8FD4\u56DE\u7ED3\u679C\u4E0B\u53D1\uFF0C\u5F53\u8F6E\u5373\u53EF\u7ECF call_tool \u8C03\u7528\uFF1A",'call_tool({ name: "<\u5DE5\u5177\u540D>", arguments: {...} })',"",...e.map(t=>`- ${t.key}\uFF08${t.label}\uFF09\uFF1A${t.summary}`),"",'\u793A\u4F8B\uFF1Aexpand_tools({ group: "pencil" })'].join(`
2
+ `)}export{r as BRIDGE_LAZY_CAPABILITIES,a as TOOL_GROUPS,A as TOOL_GROUP_MANIFEST_PREFIX,C as buildToolGroupManifest,R as buildToolGroupPrompt,G as collapsibleToolGroupKeys,I as defaultStateForFeatureKey,K as findBridgeCapabilityByToolName,M as findBridgeLazyCapability,L as findToolGroup,g as findToolGroupByToolName,x as normalizeFeatureState,P as resolveToolGroupState};
3
3
 
@@ -474,12 +474,61 @@ export interface CurrentActionSnapshot {
474
474
  export interface SendMessageResult {
475
475
  msgId: string | number;
476
476
  timestamp: string;
477
+
478
+
479
+
480
+
481
+
482
+ voice?: VoiceResultInfo;
483
+ }
484
+
485
+ export interface VoiceResultInfo {
486
+
487
+ ok?: boolean;
488
+
489
+ state?: string;
490
+
491
+ ticket?: string;
492
+
493
+ durationMs?: number;
494
+
495
+ emotion?: string;
496
+
497
+ speaker?: number;
498
+
499
+ url?: string;
500
+
501
+ provider?: string;
502
+
503
+ protocol?: string;
504
+
505
+ emotionApplied?: boolean;
506
+
507
+ dialect?: string;
508
+
509
+ voiceId?: string;
510
+
511
+ label?: string;
512
+
513
+ degradedFrom?: string;
514
+
515
+ reason?: string;
516
+
517
+ hint?: string;
518
+
519
+ available?: Record<string, unknown>;
477
520
  }
478
521
  export interface SendDmResult {
479
522
  msgId?: string;
480
523
  timestamp?: string;
481
524
  reply?: DirectMessage;
482
525
 
526
+
527
+
528
+
529
+
530
+ voice?: VoiceResultInfo;
531
+
483
532
  priority?: "normal" | "force" | "interrupt" | string;
484
533
 
485
534
  deliveryState?: "pending" | "queued" | "injected" | "consumed" | "timeout" | string;
@@ -497,6 +546,23 @@ export interface SendDmResult {
497
546
  autoCorrelated?: boolean;
498
547
  success?: boolean;
499
548
  }
549
+
550
+ export interface SendStatusItem {
551
+ ticket: string;
552
+ state: string;
553
+ channel?: string;
554
+ roomId?: string;
555
+ projectId?: string;
556
+ targetId?: string;
557
+ msgId?: string;
558
+ error?: string;
559
+ fallbackMsgId?: string;
560
+ hint?: string;
561
+ createdAt?: string;
562
+ updatedAt?: string;
563
+
564
+ voice?: VoiceResultInfo;
565
+ }
500
566
  export interface WebSocketMessage<T = unknown> {
501
567
  type: "GROUP_MSG" | "DM_MSG" | "MEETING_MSG" | "ONLINE_CHANGE" | "DM_REPLY" | "HEARTBEAT" | "PROFILE_INFO" | "AGENT_CONFIG" | "AGENT_STATUS" | "MCP_NODE_LOG" | "MCP_NODE_LOG_BATCH" | "LOG_ACK" | "MESSAGE_ACK" | "TERMINAL_OUTPUT" | "TERMINAL_STATUS" | "GROUP_READ_RECEIPT" | "DM_READ_RECEIPT" | "AGENT_EVENTS_DELTA" | "SYSTEM_NOTIFY";
502
568
  data: T;
@@ -665,7 +731,7 @@ export interface SendPrivateArgs {
665
731
 
666
732
  reason?: string;
667
733
 
668
- voice?: VoiceSendOptions;
734
+ voice?: VoiceArg;
669
735
  }
670
736
 
671
737
 
@@ -673,17 +739,27 @@ export interface SendPrivateArgs {
673
739
 
674
740
 
675
741
 
742
+
743
+
744
+
676
745
  export interface VoiceSendOptions {
677
746
 
678
- emotion?: "neutral" | "happy" | "excited" | "calm" | "sad" | "serious";
747
+
748
+
749
+
750
+ emotion?: string;
679
751
 
680
- speaker?: number | string;
752
+ dialect?: "traditional" | "natural";
681
753
 
754
+ voiceId?: string;
755
+
756
+ speaker?: number | string;
757
+ }
682
758
 
683
759
 
684
760
 
685
- async?: boolean;
686
- }
761
+
762
+ export type VoiceArg = boolean | VoiceSendOptions;
687
763
 
688
764
  export interface SendGroupArgs {
689
765
  content: string;
@@ -696,7 +772,9 @@ export interface SendGroupArgs {
696
772
 
697
773
  replyTo?: ReplyToRef[];
698
774
 
699
- voice?: VoiceSendOptions;
775
+ voice?: VoiceArg;
776
+
777
+ mentions?: string[];
700
778
  }
701
779
 
702
780
  export interface GetDmHistoryArgs {
@@ -1,53 +1,53 @@
1
- {
2
- "name": "aws-client-agent-mcp",
3
- "version": "1.0.0",
4
- "description": "AgentsWorkStudio - Agent MCP Client,编程Agent与调度中心的通信桥梁",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "aws-client-agent-mcp": "dist/index.js"
9
- },
10
- "files": [
11
- "dist",
12
- "README.md"
13
- ],
14
- "scripts": {
15
- "build": "tsc && node ../../scripts/minify-dist.mjs",
16
- "dev": "tsc --watch",
17
- "start": "node dist/index.js",
18
- "test": "npm run build && tsc -p tsconfig.test.json && node --test --test-force-exit --test-timeout=60000 \"dist-test/**/*.test.js\"",
19
- "prepare": "npm run build",
20
- "lint": "eslint src --max-warnings 0",
21
- "lint:fix": "eslint src --fix",
22
- "format": "prettier --write \"src/**/*.ts\"",
23
- "format:check": "prettier --check \"src/**/*.ts\""
24
- },
25
- "keywords": [
26
- "mcp",
27
- "agent",
28
- "websocket",
29
- "collaboration",
30
- "ai"
31
- ],
32
- "author": "AgentsWorkStudio",
33
- "license": "MIT",
34
- "dependencies": {
35
- "@modelcontextprotocol/sdk": "^1.27.1",
36
- "aws-runtime-bridge": "file:../..",
37
- "temml": "^0.13.5",
38
- "ws": "^8.14.2",
39
- "yaml": "^2.3.4"
40
- },
41
- "devDependencies": {
42
- "@eslint/js": "^9.0.0",
43
- "@types/node": "^20.10.4",
44
- "@types/ws": "^8.5.10",
45
- "eslint": "^9.0.0",
46
- "prettier": "^3.2.0",
47
- "typescript": "^5.3.3",
48
- "typescript-eslint": "^8.0.0"
49
- },
50
- "engines": {
51
- "node": ">=18.0.0"
52
- }
53
- }
1
+ {
2
+ "name": "aws-client-agent-mcp",
3
+ "version": "1.0.0",
4
+ "description": "AgentsWorkStudio - Agent MCP Client,编程Agent与调度中心的通信桥梁",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "aws-client-agent-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc && node ../../scripts/minify-dist.mjs",
16
+ "dev": "tsc --watch",
17
+ "start": "node dist/index.js",
18
+ "test": "npm run build && tsc -p tsconfig.test.json && node --test --test-force-exit --test-timeout=60000 \"dist-test/**/*.test.js\"",
19
+ "prepare": "npm run build",
20
+ "lint": "eslint src --max-warnings 0",
21
+ "lint:fix": "eslint src --fix",
22
+ "format": "prettier --write \"src/**/*.ts\"",
23
+ "format:check": "prettier --check \"src/**/*.ts\""
24
+ },
25
+ "keywords": [
26
+ "mcp",
27
+ "agent",
28
+ "websocket",
29
+ "collaboration",
30
+ "ai"
31
+ ],
32
+ "author": "AgentsWorkStudio",
33
+ "license": "MIT",
34
+ "dependencies": {
35
+ "@modelcontextprotocol/sdk": "^1.27.1",
36
+ "aws-runtime-bridge": "file:../..",
37
+ "temml": "^0.13.5",
38
+ "ws": "^8.14.2",
39
+ "yaml": "^2.3.4"
40
+ },
41
+ "devDependencies": {
42
+ "@eslint/js": "^9.0.0",
43
+ "@types/node": "^20.10.4",
44
+ "@types/ws": "^8.5.10",
45
+ "eslint": "^9.0.0",
46
+ "prettier": "^3.2.0",
47
+ "typescript": "^5.3.3",
48
+ "typescript-eslint": "^8.0.0"
49
+ },
50
+ "engines": {
51
+ "node": ">=18.0.0"
52
+ }
53
+ }