Support Always Allow for MCP app messages

This commit is contained in:
Leo Shimonaka
2026-05-05 16:54:39 -07:00
parent d7de4dd3ac
commit dd6239a46d
30 changed files with 434 additions and 2 deletions
@@ -166,6 +166,14 @@ pub enum AppToolApproval {
Approve,
}
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, JsonSchema, TS)]
#[serde(rename_all = "snake_case")]
#[ts(export_to = "v2/")]
pub enum McpAppMessageApprovalMode {
Auto,
ApproveInThread,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
#[serde(rename_all = "snake_case")]
#[ts(export_to = "v2/")]
@@ -184,6 +192,7 @@ pub struct AppsDefaultConfig {
pub struct AppToolConfig {
pub enabled: Option<bool>,
pub approval_mode: Option<AppToolApproval>,
pub mcp_app_message_approval_mode: Option<McpAppMessageApprovalMode>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
@@ -46,11 +46,28 @@ pub enum McpServerStatusDetail {
ToolsAndAuthOnly,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
#[serde(tag = "type")]
#[ts(tag = "type")]
#[ts(export_to = "v2/")]
pub enum McpServerProvider {
#[serde(rename = "codex-apps")]
#[ts(rename = "codex-apps")]
CodexApps,
#[serde(rename = "mcp")]
#[ts(rename = "mcp")]
Mcp,
#[serde(rename = "plugin-mcp", rename_all = "camelCase")]
#[ts(rename = "plugin-mcp", rename_all = "camelCase")]
PluginMcp { plugin_id: String },
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
pub struct McpServerStatus {
pub name: String,
pub provider: McpServerProvider,
pub tools: std::collections::HashMap<String, McpTool>,
pub resources: Vec<McpResource>,
pub resource_templates: Vec<McpResourceTemplate>,