mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-15 16:14:43 +00:00
feat(block-reply): deliver intermediate text during tool iterations with 2-tier config (#55)
Add block.reply event that delivers intermediate assistant text to non-streaming channels during multi-tool iterations. Includes 2-tier config toggle: gateway-level default (disabled) + per-channel override (inherit/on/off). Backend: - Emit block.reply events from agent loop between tool iterations - Add BlockReply *bool to GatewayConfig and all 6 channel config structs - Add BlockReplyChannel interface with ResolveBlockReply() resolution - Guard delivery in HandleAgentEvent by RunContext.BlockReplyEnabled - Resolve config at RegisterRun time, pass to consumer goroutine - Conditional dedup: skip final message if identical to last block reply UI: - Gateway settings: Switch toggle for global default - Per-channel: tri-state select (Inherit from gateway / Enabled / Disabled) - Protocol: BLOCK_REPLY constant in AgentEventTypes - Form: coerceBoolSelects for proper JSON boolean serialization
This commit is contained in:
1 parent
3dfdc8ca39
commit
faa47abfb6
23 files changed
+226
-32
No files matched your search
@@ -72,6 +72,7 @@ const (
|
||||
AgentEventRunRetrying = "run.retrying"
|
||||
AgentEventToolCall = "tool.call"
|
||||
AgentEventToolResult = "tool.result"
|
||||
AgentEventBlockReply = "block.reply"
|
||||
)
|
||||
|
||||
// Chat event subtypes (in payload.type)
|
||||
|
||||
Reference in new issue
Block a user