feat(task): add task support (SEP-1686) (#536)

Signed-off-by: jokemanfire <hu.dingyang@zte.com.cn>
This commit is contained in:
jokemanfire 2025-12-22 22:01:00 +08:00 • committed by GitHub
commit 621c9f619e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 1922 additions and 57 deletions

View file

@ -49,6 +49,7 @@ async fn main() -> Result<()> {
.call_tool(CallToolRequestParam {
name: "git_status".into(),
arguments: serde_json::json!({ "repo_path": "." }).as_object().cloned(),
task: None,
})
.await?;
}

View file

@ -40,6 +40,7 @@ async fn main() -> Result<()> {
.call_tool(CallToolRequestParam {
name: "echo".into(),
arguments: Some(object!({ "message": "hi from rmcp" })),
task: None,
})
.await?;
tracing::info!("Tool result for echo: {tool_result:#?}");
@ -49,6 +50,7 @@ async fn main() -> Result<()> {
.call_tool(CallToolRequestParam {
name: "longRunningOperation".into(),
arguments: Some(object!({ "duration": 3, "steps": 1 })),
task: None,
})
.await?;
tracing::info!("Tool result for longRunningOperation: {tool_result:#?}");

View file

@ -42,6 +42,7 @@ async fn main() -> Result<(), RmcpError> {
.call_tool(CallToolRequestParam {
name: "git_status".into(),
arguments: serde_json::json!({ "repo_path": "." }).as_object().cloned(),
task: None,
})
.await?;
tracing::info!("Tool result: {tool_result:#?}");

View file

@ -184,6 +184,7 @@ async fn test_stdio_transport(records: u32) -> Result<()> {
.call_tool(CallToolRequestParam {
name: "stream_processor".into(),
arguments: None,
task: None,
})
.await?;
@ -238,6 +239,7 @@ async fn test_http_transport(http_url: &str, records: u32) -> Result<()> {
.call_tool(CallToolRequestParam {
name: "stream_processor".into(),
arguments: None,
task: None,
})
.await?;

View file

@ -106,6 +106,7 @@ async fn main() -> Result<()> {
arguments: Some(object!({
"question": "Hello world"
})),
task: None,
})
.await
{

View file

@ -44,6 +44,7 @@ async fn main() -> Result<()> {
.call_tool(CallToolRequestParam {
name: "increment".into(),
arguments: serde_json::json!({}).as_object().cloned(),
task: None,
})
.await?;
tracing::info!("Tool result: {tool_result:#?}");