diff options
Diffstat (limited to 'crates/atuin-ai/src/driver.rs')
| -rw-r--r-- | crates/atuin-ai/src/driver.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/crates/atuin-ai/src/driver.rs b/crates/atuin-ai/src/driver.rs index ddb839b7..82d666ef 100644 --- a/crates/atuin-ai/src/driver.rs +++ b/crates/atuin-ai/src/driver.rs @@ -492,6 +492,7 @@ fn execute_effect(effect: &Effect, ctx: DriverContext) { messages.clone(), session_id.clone(), &app.capabilities, + app.daemon_enabled, fsm.ctx.invocation_id.clone(), ); tokio::spawn(async move { @@ -570,7 +571,6 @@ fn execute_effect(effect: &Effect, ctx: DriverContext) { Effect::ExecuteTool { tool_id, tool } => { let tool_id = tool_id.clone(); - let tool = tool.clone(); let tx = tx.clone(); let db = io.app_ctx.history_db.clone(); @@ -731,8 +731,9 @@ fn execute_effect(effect: &Effect, ctx: DriverContext) { preview: None, })); } - ClientToolCall::AtuinHistory(_) => { + ClientToolCall::AtuinHistory(tool) => { // History search needs async DB access + let tool = tool.clone(); tokio::spawn(async move { let outcome = tool.execute(&db).await; let _ = tx.send(DriverEvent::Fsm(Event::ToolExecutionDone { @@ -742,6 +743,17 @@ fn execute_effect(effect: &Effect, ctx: DriverContext) { })); }); } + ClientToolCall::AtuinOutput(tool) => { + let tool = tool.clone(); + tokio::spawn(async move { + let outcome = tool.execute().await; + let _ = tx.send(DriverEvent::Fsm(Event::ToolExecutionDone { + tool_id, + outcome, + preview: None, + })); + }); + } ClientToolCall::LoadSkill(skill_call) => { let skill_name = skill_call.name.clone(); let registry = io.skill_registry.clone(); |
