#[tokio::test]
#[ignore] async fn full_agent_workflow() {
use dk_agent_sdk::{AgentClient, Change, Depth};
let mut client = AgentClient::connect("http://[::1]:50051", "dk-alpha-token")
.await
.expect("failed to connect to server");
let mut session = client
.init("test-sdk-repo", "add hello world function")
.await
.expect("failed to init session");
println!(
"Connected: session={}, changeset={}",
session.session_id, session.changeset_id
);
assert!(!session.session_id.is_empty());
assert!(!session.changeset_id.is_empty());
let ctx = session
.context("main function", Depth::Signatures, 1000)
.await
.expect("context failed");
println!(
"Context: {} symbols, ~{} tokens",
ctx.symbols.len(),
ctx.estimated_tokens
);
let result = session
.submit(vec![Change::Add {
path: "src/hello.rs".to_string(),
content: "pub fn hello() -> &'static str {\n \"Hello from dk-agent-sdk!\"\n}\n"
.to_string(),
}])
.await
.expect("submit failed");
println!(
"Submitted: changeset={}, status={}",
result.changeset_id, result.status
);
assert!(!result.changeset_id.is_empty());
let steps = session.verify().await.expect("verify failed");
for step in &steps {
println!(
" verify step {}: {} = {}",
step.step_order, step.step_name, step.status
);
}
assert!(
!steps.is_empty(),
"should have at least one verification step"
);
println!("\nTest complete -- SDK workflow verified!");
}