From 6a94f10370f60aacd2381023474f7d061861c971 Mon Sep 17 00:00:00 2001 From: yumoqing Date: Tue, 1 Sep 2026 17:31:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(AgentIO):=20=E6=AD=A3=E6=96=87=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E5=9B=9E=E8=BD=A6=E7=9B=B4=E6=8E=A5=E5=8F=91=E9=80=81?= =?UTF-8?q?=E3=80=81Ctrl+=E5=9B=9E=E8=BD=A6=E6=8D=A2=E8=A1=8C=E2=80=94?= =?UTF-8?q?=E2=80=94UiText=E6=96=B0=E5=A2=9Eopt-in=E7=9A=84enter=5Fsends?= =?UTF-8?q?=E9=80=89=E9=A1=B9(=E9=BB=98=E8=AE=A4=E5=85=B3,=E4=B8=8D?= =?UTF-8?q?=E5=BD=B1=E5=93=8D=E5=85=B6=E4=BB=96=E8=A1=A8=E5=8D=95),submit?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E5=8A=9F=E8=83=BD=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bricks/agent_input.js | 6 ++++-- bricks/input.js | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/bricks/agent_input.js b/bricks/agent_input.js index 5af1df9..56a5d8b 100644 --- a/bricks/agent_input.js +++ b/bricks/agent_input.js @@ -17,11 +17,13 @@ bricks.AgentInput = class extends bricks.VBox { this.file_names = []; this.inputfilew.bind('changed', this.file_added.bind(this)); - // text input + // text input — 回车直接发送;Ctrl+回车换行(enter_sends 为 UiText 的 opt-in 选项) this.textw = new bricks.UiText({ name: 'prompt', - placeholder: opts.placeholder || '' + placeholder: opts.placeholder || '', + enter_sends: true }); + this.textw.bind('enter_send', this.input_finished.bind(this)); // model selector — 直接用 UiCode,不用 Form // session_id 自动注入:模型下拉按会话解析当前项目(多 tab 各自项目), diff --git a/bricks/input.js b/bricks/input.js index d1ae8d5..2e0e723 100644 --- a/bricks/input.js +++ b/bricks/input.js @@ -1064,7 +1064,12 @@ bricks.UiText =class extends bricks.UiType { break; case 'Enter': e.preventDefault(); // 阻止默认行为 - this.handle_enter(); + if (this.opts.enter_sends && !e.ctrlKey && !e.metaKey) { + // 回车直接发送(AgentIO 正文输入);Ctrl+回车 / Cmd+回车仍插入换行 + this.dispatch('enter_send'); + } else { + this.handle_enter(); + } break; case 'ArrowUp': case 'ArrowDown':