[plugins] Inject remote_plugin_id into install elicitations (#26409)

Summary
- Propagate cached remote plugin IDs through Codex plugin discovery.
- Inject `remote_plugin_id` and connector IDs into
`request_plugin_install` elicitation `_meta` from the resolved plugin.
- Keep the remote plugin ID out of the model-facing tool schema,
arguments, and result.

Validation
- `just test -p codex-tools`
- `just test -p codex-core-plugins`
- `just test -p codex-core
list_tool_suggest_discoverable_plugins_includes_cached_remote_global_plugins`
- `just fix -p codex-tools`
- `just fix -p codex-core-plugins`
- `just fix -p codex-core`
- `git diff --check`
- `just test -p codex-core` was also attempted: 2,581 passed, 55 failed,
and 1 timed out across unrelated sandbox/environment-sensitive
integration tests.
This commit is contained in:
Alex Daley
2026-06-10 12:01:03 -07:00
committed by GitHub
Unverified
parent 72667f4f41
commit 020bf49346
9 changed files with 58 additions and 18 deletions
@@ -68,6 +68,7 @@ pub struct ToolSuggestPluginDiscoveryInput {
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct ToolSuggestDiscoverablePlugin {
pub id: String,
pub remote_plugin_id: Option<String>,
pub name: String,
pub description: Option<String>,
pub has_skills: bool,
@@ -162,6 +163,7 @@ impl PluginsManager {
discoverable_plugins.push(ToolSuggestDiscoverablePlugin {
id: plugin.config_name,
remote_plugin_id: None,
name: plugin.display_name,
description: plugin.description,
has_skills: plugin.has_skills,
@@ -217,6 +219,7 @@ impl PluginsManager {
discoverable_plugins.push(ToolSuggestDiscoverablePlugin {
id: plugin.config_id,
remote_plugin_id: Some(plugin.remote_plugin_id),
name: plugin.name,
description: plugin.description,
has_skills: plugin.has_skills,