|
2 | 2 | //! |
3 | 3 | //! This example shows how to connect to an agent and send requests. |
4 | 4 |
|
5 | | -use agent_client_protocol::{Agent, Client, ClientSideConnection}; |
6 | | -use agent_client_protocol_schema::{ |
7 | | - CreateTerminalRequest, CreateTerminalResponse, Error, ExtNotification, ExtRequest, ExtResponse, |
8 | | - InitializeRequest, KillTerminalCommandRequest, KillTerminalCommandResponse, NewSessionRequest, |
9 | | - PromptRequest, ReadTextFileRequest, ReadTextFileResponse, ReleaseTerminalRequest, |
10 | | - ReleaseTerminalResponse, RequestPermissionRequest, RequestPermissionResponse, Result, |
11 | | - SessionNotification, TerminalOutputRequest, TerminalOutputResponse, VERSION, |
12 | | - WaitForTerminalExitRequest, WaitForTerminalExitResponse, WriteTextFileRequest, |
13 | | - WriteTextFileResponse, |
| 5 | +use agent_client_protocol::{ |
| 6 | + Agent, Client, ClientSideConnection, CreateTerminalRequest, CreateTerminalResponse, Error, |
| 7 | + ExtNotification, ExtRequest, ExtResponse, InitializeRequest, KillTerminalCommandRequest, |
| 8 | + KillTerminalCommandResponse, NewSessionRequest, PromptRequest, ReadTextFileRequest, |
| 9 | + ReadTextFileResponse, ReleaseTerminalRequest, ReleaseTerminalResponse, |
| 10 | + RequestPermissionRequest, RequestPermissionResponse, Result, SessionNotification, |
| 11 | + TerminalOutputRequest, TerminalOutputResponse, V1, WaitForTerminalExitRequest, |
| 12 | + WaitForTerminalExitResponse, WriteTextFileRequest, WriteTextFileResponse, |
14 | 13 | }; |
15 | 14 | use futures::FutureExt; |
16 | | -use std::path::PathBuf; |
17 | 15 | use tokio_util::compat::{TokioAsyncReadCompatExt, TokioAsyncWriteCompatExt}; |
18 | 16 |
|
19 | 17 | // ANCHOR: client_impl |
@@ -127,35 +125,18 @@ async fn main() -> Result<()> { |
127 | 125 | // Now we can send requests using the connection |
128 | 126 | // ANCHOR: send_requests |
129 | 127 | // Initialize the agent |
130 | | - let init_response = connection |
131 | | - .initialize(InitializeRequest { |
132 | | - protocol_version: VERSION, |
133 | | - client_capabilities: Default::default(), |
134 | | - client_info: Default::default(), |
135 | | - meta: None, |
136 | | - }) |
137 | | - .await?; |
| 128 | + let init_response = connection.initialize(InitializeRequest::new(V1)).await?; |
138 | 129 |
|
139 | 130 | eprintln!("Agent initialized: {:?}", init_response.agent_info); |
140 | 131 |
|
141 | 132 | // Create a session |
142 | | - let session_response = connection |
143 | | - .new_session(NewSessionRequest { |
144 | | - mcp_servers: vec![], |
145 | | - cwd: PathBuf::from("/"), |
146 | | - meta: None, |
147 | | - }) |
148 | | - .await?; |
| 133 | + let session_response = connection.new_session(NewSessionRequest::new("/")).await?; |
149 | 134 |
|
150 | 135 | eprintln!("Session created: {}", session_response.session_id); |
151 | 136 |
|
152 | 137 | // Send a prompt |
153 | 138 | let prompt_response = connection |
154 | | - .prompt(PromptRequest { |
155 | | - session_id: session_response.session_id, |
156 | | - prompt: vec![], |
157 | | - meta: None, |
158 | | - }) |
| 139 | + .prompt(PromptRequest::new(session_response.session_id, vec![])) |
159 | 140 | .await?; |
160 | 141 |
|
161 | 142 | eprintln!("Prompt completed: {:?}", prompt_response.stop_reason); |
|
0 commit comments