Skip to main content

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}