feat(coding-agent): enabled bidirectional RPC tool execution with host-owned custom tools
- Added RPC host-owned custom tools framework enabling bidirectional tool execution between RPC client and host. - Added `set_host_tools` RPC command and `refreshRpcHostTools()` method for dynamic tool registry management. - Added RpcHostToolBridge and RpcHostToolAdapter classes with abort signal handling for cancellable tool execution. - Added `defineRpcClientTool` helper and customTools option to RpcClient for embedding host tool definitions. - Added comprehensive test suite covering RPC host tool execution, cancellation, and client-host communication.
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
# Changelog
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Simplified chunk edit operations: removed `append_child`, `prepend_child`, `append_sibling`, `prepend_sibling`, and `replace_body` ops in favor of unified `replace`, `before`, `after`, `prepend`, and `append` with region targeting (`@container`, `@prologue`, `@body`, `@epilogue`)
|
||||
@@ -9,6 +10,11 @@
|
||||
|
||||
### Added
|
||||
|
||||
- Host-owned custom tools support: RPC clients can now register custom tools via `setCustomTools()` and the RPC server will invoke them over the transport with `host_tool_call` requests
|
||||
- RPC host tool framework: `RpcHostToolBridge` for managing host tool execution, `RpcHostToolDefinition` for tool metadata, and bidirectional `host_tool_call`, `host_tool_cancel`, `host_tool_update`, and `host_tool_result` frames
|
||||
- RPC client tool API: `defineRpcClientTool()` helper, `RpcClientCustomTool` interface, and `RpcClientToolContext` for implementing host-side tool execution with update streaming and abort support
|
||||
- `set_host_tools` RPC command to replace the active set of host-owned tools before the next model call
|
||||
- `refreshRpcHostTools()` method on `AgentSession` to integrate host tools into the active tool registry with conflict detection and auto-activation of non-hidden tools
|
||||
- Instruction breakpoints support: `set_instruction_breakpoint` and `remove_instruction_breakpoint` debug actions for setting breakpoints at specific instruction addresses
|
||||
- Data breakpoints support: `data_breakpoint_info`, `set_data_breakpoint`, and `remove_data_breakpoint` debug actions for monitoring variable/memory access
|
||||
- Memory introspection: `read_memory` and `write_memory` debug actions for inspecting and modifying debugger memory
|
||||
|
||||
Reference in New Issue
Block a user