Skip to content

Commit 42a183e

Browse files
authored
Merge pull request #4 from nikomatsakis/adopt-acp
Adopt acp
2 parents d852ddf + d8ea222 commit 42a183e

9 files changed

Lines changed: 23 additions & 14 deletions

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
/target/
2-
Cargo.lock
2+
Cargo.lock
3+
.kiro
4+
.claude
5+
.agents
6+

Cargo.toml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "acpr"
3-
version = "0.1.0"
3+
version = "0.3.0"
44
edition = "2024"
55
description = "Run agents from the ACP registry"
66
license = "MIT OR Apache-2.0"
@@ -23,8 +23,8 @@ name = "simple"
2323
path = "examples/simple.rs"
2424

2525
[[example]]
26-
name = "sacp_integration"
27-
path = "examples/sacp_integration.rs"
26+
name = "acp_integration"
27+
path = "examples/acp_integration.rs"
2828

2929
[[example]]
3030
name = "complete_interface"
@@ -44,8 +44,7 @@ clap = { version = "4", features = ["derive"] }
4444
dirs = "6.0.0"
4545
flate2 = "1.1.9"
4646
reqwest = { version = "0.13.2", features = ["json"] }
47-
sacp = "11.0.0"
48-
sacp-tokio = "11.0.0"
47+
agent-client-protocol = "0.11"
4948
serde = { version = "1.0.228", features = ["derive"] }
5049
serde_json = "1.0.149"
5150
tar = "0.4.45"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use acpr::Acpr;
2-
use sacp::{Client, DynConnectTo};
2+
use agent_client_protocol::{Client, DynConnectTo};
33

44
#[tokio::main]
55
async fn main() -> Result<(), Box<dyn std::error::Error>> {

examples/bytestreams_integration.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use acpr::Acpr;
2-
use sacp::ByteStreams;
2+
use agent_client_protocol::ByteStreams;
33
use tokio_util::compat::{TokioAsyncReadCompatExt, TokioAsyncWriteCompatExt};
44

55
#[tokio::main]

examples/client_connection.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use acpr::Acpr;
2-
use sacp::Client;
2+
use agent_client_protocol::Client;
33

44
#[tokio::main]
55
async fn main() -> Result<(), Box<dyn std::error::Error>> {

examples/complete_interface.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use acpr::{self, Acpr};
2-
use sacp::{Client, DynConnectTo};
2+
use agent_client_protocol::{Client, DynConnectTo};
33

44
#[tokio::main]
55
async fn main() -> Result<(), Box<dyn std::error::Error>> {

fastagent.jsonl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{"level":"WARNING","timestamp":"2026-04-27T21:30:41.464779","namespace":"fast_agent.skills.registry","message":"Failed to parse skill manifest","data":{"data":{"path":"/Users/nikomat/dev/acpr/.agents/skills/rust-best-practice/SKILL.md","error":"while parsing a block mapping\n in \"<unicode string>\", line 2, column 1\ndid not find expected key\n in \"<unicode string>\", line 3, column 25"}}}
2+
{"level":"WARNING","timestamp":"2026-04-27T21:30:41.465904","namespace":"fast_agent.skills.registry","message":"Failed to parse skill manifest","data":{"data":{"path":"/Users/nikomat/dev/acpr/.claude/skills/rust-best-practice/SKILL.md","error":"while parsing a block mapping\n in \"<unicode string>\", line 2, column 1\ndid not find expected key\n in \"<unicode string>\", line 3, column 25"}}}
3+
{"level":"WARNING","timestamp":"2026-04-27T21:30:41.465914","namespace":"fast_agent.skills.registry","message":"Duplicate skill manifest","data":{"data":{"warning":"Duplicate skill 'find-crate-source' from /Users/nikomat/dev/acpr/.claude/skills/find-crate-source/SKILL.md overrides /Users/nikomat/dev/acpr/.agents/skills/find-crate-source/SKILL.md"}}}

src/lib.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub mod registry;
44
pub use cli::*;
55
pub use registry::*;
66

7-
use sacp::{Agent as SacpAgent, ByteStreams, Client, ConnectTo};
7+
use agent_client_protocol::{Agent as AcpAgent, ByteStreams, Client, ConnectTo};
88
use std::path::PathBuf;
99
use tokio::io::{AsyncRead, AsyncReadExt, AsyncWrite, AsyncWriteExt};
1010
use tokio::process::Command;
@@ -209,7 +209,10 @@ impl Acpr {
209209

210210
/// Implement ConnectTo<Client> so Acpr can act as an ACP agent
211211
impl ConnectTo<Client> for Acpr {
212-
async fn connect_to(self, client: impl ConnectTo<SacpAgent>) -> Result<(), sacp::Error> {
212+
async fn connect_to(
213+
self,
214+
client: impl ConnectTo<AcpAgent>,
215+
) -> Result<(), agent_client_protocol::Error> {
213216
debug!("ConnectTo: creating duplex streams");
214217
let (client_stdin, agent_stdin) = tokio::io::duplex(8192);
215218
let (agent_stdout, client_stdout) = tokio::io::duplex(8192);
@@ -223,7 +226,7 @@ impl ConnectTo<Client> for Acpr {
223226
debug!("ConnectTo: starting agent process");
224227
self.run_with_streams(agent_stdin, agent_stdout)
225228
.await
226-
.map_err(|e| sacp::Error::internal_error().data(e.to_string()))
229+
.map_err(|e| agent_client_protocol::Error::internal_error().data(e.to_string()))
227230
},
228231
async {
229232
debug!("ConnectTo: starting sacp client connection");

tests/integration_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ async fn test_agent_sacp_integration(agent_name: &str) -> Result<(), Box<dyn std
159159
.try_init();
160160

161161
use acpr::Acpr;
162-
use sacp::{
162+
use agent_client_protocol::{
163163
Client,
164164
schema::{InitializeRequest, ProtocolVersion},
165165
};

0 commit comments

Comments
 (0)