vigil_types/invocation.rs
1//! ToolInvocation:一次工具调用请求(进入 firewall 前的原始形态)。
2
3use serde::{Deserialize, Serialize};
4
5/// 一次工具调用请求。
6///
7/// 生命周期:client → MCP Hub → ToolInvocation → Firewall → DecisionRecord → Execute。
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
9pub struct ToolInvocation {
10 /// 唯一 id(UUIDv4 文本)。
11 pub invocation_id: String,
12 /// 归属 session。
13 pub session_id: String,
14 /// 目标 server。
15 pub server_id: String,
16 /// upstream 工具名。
17 pub tool_name: String,
18 /// 原始参数(来自 MCP `tools/call` 的 `arguments` 字段)。
19 pub args: serde_json::Value,
20 /// 调用时 pin 的 descriptor hash;若漂移则本次调用需重新审批。
21 pub descriptor_hash: String,
22 /// 请求到达时间(Unix epoch 秒)。
23 pub requested_at: i64,
24}