chore: plugin/uninstall endpoint (#14111)

add `plugin/uninstall` app-server endpoint to fully rm plugin from
plugins cache dir and rm entry from user config file.

plugin-enablement is session-scoped, so uninstalls are only picked up in
new sessions (like installs).

added tests.
This commit is contained in:
sayan-oai
2026-03-09 12:40:25 -07:00
committed by GitHub
parent 0334ddeccb
commit 6ad448b658
19 changed files with 414 additions and 1 deletions

View File

@@ -41,6 +41,7 @@ use codex_app_server_protocol::MockExperimentalMethodParams;
use codex_app_server_protocol::ModelListParams;
use codex_app_server_protocol::PluginInstallParams;
use codex_app_server_protocol::PluginListParams;
use codex_app_server_protocol::PluginUninstallParams;
use codex_app_server_protocol::RequestId;
use codex_app_server_protocol::ReviewStartParams;
use codex_app_server_protocol::ServerRequest;
@@ -454,6 +455,15 @@ impl McpProcess {
self.send_request("plugin/install", params).await
}
/// Send a `plugin/uninstall` JSON-RPC request.
pub async fn send_plugin_uninstall_request(
&mut self,
params: PluginUninstallParams,
) -> anyhow::Result<i64> {
let params = Some(serde_json::to_value(params)?);
self.send_request("plugin/uninstall", params).await
}
/// Send a `plugin/list` JSON-RPC request.
pub async fn send_plugin_list_request(
&mut self,