1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use async_trait;
use Value;
/// Decision returned by a [`ToolApprovalHandler`] for a pending tool call.
/// Gate that is consulted before every tool execution.
///
/// Implement this trait to add interactive prompts, pattern-based allow/deny
/// rules, or any other approval policy. The agent calls
/// [`approve`](Self::approve) with the tool name and its JSON arguments;
/// execution only proceeds on `Approved` or `ApprovedForSession`.
///
/// Implementations must be `Send + Sync` because the agent executes tools
/// concurrently.