mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
020bf49346
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.
71 lines
2.4 KiB
Rust
71 lines
2.4 KiB
Rust
use super::*;
|
|
use codex_app_server_protocol::AppInfo;
|
|
use pretty_assertions::assert_eq;
|
|
use serde_json::json;
|
|
|
|
#[test]
|
|
fn discoverable_tool_enums_use_expected_wire_names() {
|
|
assert_eq!(
|
|
json!({
|
|
"tool_type": DiscoverableToolType::Connector,
|
|
"action_type": DiscoverableToolAction::Install,
|
|
}),
|
|
json!({
|
|
"tool_type": "connector",
|
|
"action_type": "install",
|
|
})
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn filter_request_plugin_install_discoverable_tools_for_codex_tui_omits_plugins() {
|
|
let discoverable_tools = vec![
|
|
DiscoverableTool::Connector(Box::new(AppInfo {
|
|
id: "connector_google_calendar".to_string(),
|
|
name: "Google Calendar".to_string(),
|
|
description: Some("Plan events and schedules.".to_string()),
|
|
logo_url: None,
|
|
logo_url_dark: None,
|
|
distribution_channel: None,
|
|
branding: None,
|
|
app_metadata: None,
|
|
labels: None,
|
|
install_url: Some("https://example.test/google-calendar".to_string()),
|
|
is_accessible: false,
|
|
is_enabled: true,
|
|
plugin_display_names: Vec::new(),
|
|
})),
|
|
DiscoverableTool::Plugin(Box::new(DiscoverablePluginInfo {
|
|
id: "slack@openai-curated".to_string(),
|
|
remote_plugin_id: None,
|
|
name: "Slack".to_string(),
|
|
description: Some("Search Slack messages".to_string()),
|
|
has_skills: true,
|
|
mcp_server_names: vec!["slack".to_string()],
|
|
app_connector_ids: vec!["connector_slack".to_string()],
|
|
})),
|
|
];
|
|
|
|
assert_eq!(
|
|
filter_request_plugin_install_discoverable_tools_for_client(
|
|
discoverable_tools,
|
|
Some("codex-tui"),
|
|
),
|
|
vec![DiscoverableTool::Connector(Box::new(AppInfo {
|
|
id: "connector_google_calendar".to_string(),
|
|
name: "Google Calendar".to_string(),
|
|
description: Some("Plan events and schedules.".to_string()),
|
|
logo_url: None,
|
|
logo_url_dark: None,
|
|
distribution_channel: None,
|
|
branding: None,
|
|
app_metadata: None,
|
|
labels: None,
|
|
install_url: Some("https://example.test/google-calendar".to_string()),
|
|
is_accessible: false,
|
|
is_enabled: true,
|
|
plugin_display_names: Vec::new(),
|
|
}))]
|
|
);
|
|
}
|