Class: RubynCode::IDE::Handlers::ApproveToolUseHandler
- Inherits:
-
Object
- Object
- RubynCode::IDE::Handlers::ApproveToolUseHandler
- Defined in:
- lib/rubyn_code/ide/handlers/approve_tool_use_handler.rb
Overview
Handles the “approveToolUse” JSON-RPC request.
The extension sends this after the user approves or denies a tool invocation surfaced with requiresApproval=true. All pending-approval state lives in the per-session ToolOutput adapter; this handler is a thin delegate so the server has something registered at the method name.
Instance Method Summary collapse
- #call(params) ⇒ Object
-
#initialize(server) ⇒ ApproveToolUseHandler
constructor
A new instance of ApproveToolUseHandler.
Constructor Details
#initialize(server) ⇒ ApproveToolUseHandler
Returns a new instance of ApproveToolUseHandler.
13 14 15 |
# File 'lib/rubyn_code/ide/handlers/approve_tool_use_handler.rb', line 13 def initialize(server) @server = server end |
Instance Method Details
#call(params) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rubyn_code/ide/handlers/approve_tool_use_handler.rb', line 17 def call(params) request_id = params['requestId'] approved = params['approved'] return { 'resolved' => false, 'error' => 'Missing requestId' } unless request_id adapter = @server.tool_output_adapter return { 'resolved' => false, 'error' => 'No active session' } unless adapter resolved = adapter.resolve_approval(request_id, approved ? true : false) return { 'resolved' => false, 'error' => "No pending request: #{request_id}" } unless resolved { 'resolved' => true, 'requestId' => request_id } end |