Module: AgentClientProtocol::Client
- Defined in:
- lib/agent_client_protocol.rb,
lib/agent_client_protocol/client/router.rb,
lib/agent_client_protocol/client/connection.rb
Defined Under Namespace
Classes: Connection
Constant Summary collapse
- S =
Schema
Class Method Summary collapse
Class Method Details
.build_router(handler) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/agent_client_protocol/client/router.rb', line 9 def build_router(handler) router = AgentClientProtocol::Router.new router.on_notification("session/update", request_class: S::SessionNotification) do |params| handler.session_update(session_id: params.session_id, update: params.update) end router.on_request("session/request_permission", request_class: S::RequestPermissionRequest) do |params| handler.( session_id: params.session_id, tool_call: params.tool_call, options: params. ) end router.on_request("fs/read_text_file", request_class: S::ReadTextFileRequest, optional: true) do |params| handler.read_text_file( session_id: params.session_id, path: params.path, line: params.line, limit: params.limit ) end router.on_request("fs/write_text_file", request_class: S::WriteTextFileRequest, optional: true) do |params| handler.write_text_file( session_id: params.session_id, path: params.path, content: params.content ) end router.on_request("terminal/create", request_class: S::CreateTerminalRequest, optional: true) do |params| handler.create_terminal( session_id: params.session_id, command: params.command, args: params.args, cwd: params.cwd, env: params.env ) end router.on_request("terminal/output", request_class: S::TerminalOutputRequest, optional: true) do |params| handler.terminal_output( session_id: params.session_id, terminal_id: params.terminal_id ) end router.on_request("terminal/release", request_class: S::ReleaseTerminalRequest, optional: true) do |params| handler.release_terminal( session_id: params.session_id, terminal_id: params.terminal_id ) end router.on_request("terminal/wait_for_exit", request_class: S::WaitForTerminalExitRequest, optional: true) do |params| handler.wait_for_terminal_exit( session_id: params.session_id, terminal_id: params.terminal_id ) end router.on_request("terminal/kill", request_class: S::KillTerminalCommandRequest, optional: true) do |params| handler.kill_terminal( session_id: params.session_id, terminal_id: params.terminal_id ) end router.on_ext_method { |method, params| handler.ext_method(method, params) } router.on_ext_notification { |method, params| handler.ext_notification(method, params) } router end |