| 1 | package tool |
| 2 | |
| 3 | import "encoding/json" |
| 4 | |
| 5 | // EffectHint is a host-only, per-call effect preview. It is never serialized |
| 6 | // into a provider tool schema and must not change registration order. |
| 7 | type EffectHint struct { |
| 8 | Known bool |
| 9 | ReadOnly bool |
| 10 | Destructive bool |
| 11 | Privileged bool |
| 12 | UsesNetwork bool |
| 13 | ExecutesCode bool |
| 14 | Targets []string |
| 15 | } |
| 16 | |
| 17 | // EffectHintProvider is an optional host-only Tool capability. Tools that omit |
| 18 | // it are classified from parsed arguments, receipts, and static ReadOnly(). |
| 19 | type EffectHintProvider interface { |
| 20 | EffectHint(args json.RawMessage) EffectHint |
| 21 | } |
| 22 |