Class: AgentClientProtocol::Client::Connection
- Inherits:
-
Object
- Object
- AgentClientProtocol::Client::Connection
- Defined in:
- lib/agent_client_protocol/client/connection.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
readonly
Returns the value of attribute conn.
Instance Method Summary collapse
- #authenticate(method_id:) ⇒ Object
- #cancel(session_id:) ⇒ Object
- #close ⇒ Object
- #closed? ⇒ Boolean
-
#initialize(handler, reader, writer) ⇒ Connection
constructor
A new instance of Connection.
-
#initialize_agent(protocol_version:, client_capabilities: nil, client_info: nil) ⇒ Object
--- Agent-calling methods (client sends to agent) ---.
-
#listen ⇒ Object
--- Lifecycle ---.
- #load_session(cwd:, session_id:, mcp_servers: []) ⇒ Object
- #new_session(cwd:, mcp_servers: []) ⇒ Object
- #prompt(session_id:, prompt:) ⇒ Object
- #set_config_option(session_id:, config_id:, value:) ⇒ Object
- #set_session_mode(session_id:, mode_id:) ⇒ Object
Constructor Details
#initialize(handler, reader, writer) ⇒ Connection
Returns a new instance of Connection.
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/agent_client_protocol/client/connection.rb', line 10 def initialize(handler, reader, writer) @handler = handler router = Client.build_router(handler) @conn = AgentClientProtocol::Connection.new( reader: reader, writer: writer, handler: router.method(:call) ) handler.on_connect(self) end |
Instance Attribute Details
#conn ⇒ Object (readonly)
Returns the value of attribute conn.
8 9 10 |
# File 'lib/agent_client_protocol/client/connection.rb', line 8 def conn @conn end |
Instance Method Details
#authenticate(method_id:) ⇒ Object
72 73 74 75 76 |
# File 'lib/agent_client_protocol/client/connection.rb', line 72 def authenticate(method_id:) params = Schema::AuthenticateRequest.new(method_id: method_id) result = @conn.send_request("authenticate", params.to_h) Schema::AuthenticateResponse.from_hash(result) end |
#cancel(session_id:) ⇒ Object
67 68 69 70 |
# File 'lib/agent_client_protocol/client/connection.rb', line 67 def cancel(session_id:) params = Schema::CancelNotification.new(session_id: session_id) @conn.send_notification("session/cancel", params.to_h) end |
#close ⇒ Object
103 104 105 |
# File 'lib/agent_client_protocol/client/connection.rb', line 103 def close @conn.close end |
#closed? ⇒ Boolean
107 108 109 |
# File 'lib/agent_client_protocol/client/connection.rb', line 107 def closed? @conn.closed? end |
#initialize_agent(protocol_version:, client_capabilities: nil, client_info: nil) ⇒ Object
--- Agent-calling methods (client sends to agent) ---
23 24 25 26 27 28 29 30 31 |
# File 'lib/agent_client_protocol/client/connection.rb', line 23 def initialize_agent(protocol_version:, client_capabilities: nil, client_info: nil) params = Schema::InitializeRequest.new( protocol_version: protocol_version, client_capabilities: client_capabilities, client_info: client_info ) result = @conn.send_request("initialize", params.to_h) Schema::InitializeResponse.from_hash(result) end |
#listen ⇒ Object
--- Lifecycle ---
99 100 101 |
# File 'lib/agent_client_protocol/client/connection.rb', line 99 def listen @conn.listen end |
#load_session(cwd:, session_id:, mcp_servers: []) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/agent_client_protocol/client/connection.rb', line 39 def load_session(cwd:, session_id:, mcp_servers: []) params = Schema::LoadSessionRequest.new( cwd: cwd, session_id: session_id, mcp_servers: mcp_servers ) result = @conn.send_request("session/load", params.to_h) Schema::LoadSessionResponse.from_hash(result) end |
#new_session(cwd:, mcp_servers: []) ⇒ Object
33 34 35 36 37 |
# File 'lib/agent_client_protocol/client/connection.rb', line 33 def new_session(cwd:, mcp_servers: []) params = Schema::NewSessionRequest.new(cwd: cwd, mcp_servers: mcp_servers) result = @conn.send_request("session/new", params.to_h) Schema::NewSessionResponse.from_hash(result) end |
#prompt(session_id:, prompt:) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/agent_client_protocol/client/connection.rb', line 49 def prompt(session_id:, prompt:) prompt_blocks = case prompt when String [Schema::TextContent.new(text: prompt).to_h] when Array prompt.map { |b| b.is_a?(Schema::BaseModel) ? b.to_h : b } else [prompt.is_a?(Schema::BaseModel) ? prompt.to_h : prompt] end params = Schema::PromptRequest.new( session_id: session_id, prompt: prompt_blocks ) result = @conn.send_request("session/prompt", params.to_h) Schema::PromptResponse.from_hash(result) end |
#set_config_option(session_id:, config_id:, value:) ⇒ Object
87 88 89 90 91 92 93 94 95 |
# File 'lib/agent_client_protocol/client/connection.rb', line 87 def set_config_option(session_id:, config_id:, value:) params = Schema::SetSessionConfigOptionRequest.new( session_id: session_id, config_id: config_id, value: value ) result = @conn.send_request("session/set_config_option", params.to_h) Schema::SetSessionConfigOptionResponse.from_hash(result) end |
#set_session_mode(session_id:, mode_id:) ⇒ Object
78 79 80 81 82 83 84 85 |
# File 'lib/agent_client_protocol/client/connection.rb', line 78 def set_session_mode(session_id:, mode_id:) params = Schema::SetSessionModeRequest.new( session_id: session_id, mode_id: mode_id ) result = @conn.send_request("session/set_mode", params.to_h) Schema::SetSessionModeResponse.from_hash(result) end |