Expose connector candidates from imported sessions (#33414)

## What changed

- Correlate MCP server attribution in imported session records with connector
  metadata, and persist normalized connector names in the session import ledger.
- Extend `externalAgentConfig/import/readHistories` with connector candidates,
  including each connector's display name, imported-session count, and detection
  source.

## Testing

- Cover connector detection through the session import and history-read flow.
- Verify candidate aggregation uses the latest import for each source session.

GitOrigin-RevId: 7f1f7f596925b2e6efcd17afd4490148e1ac9ff1
This commit is contained in:
charlesgong-openai
2026-07-15 20:06:16 +00:00
committed by copyberry
parent 8530440b91
commit 58e4ed17a0
21 changed files with 587 additions and 38 deletions
@@ -756,6 +756,23 @@ pub struct ExternalAgentConfigImportHistory {
#[ts(export_to = "v2/")]
pub struct ExternalAgentConfigImportHistoriesReadResponse {
pub data: Vec<ExternalAgentConfigImportHistory>,
pub connectors: Vec<ExternalAgentImportedConnectorCandidate>,
}
#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
pub enum ExternalAgentImportedConnectorSource {
RemoteMcpServersConfig,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]
#[serde(rename_all = "camelCase")]
#[ts(export_to = "v2/")]
pub struct ExternalAgentImportedConnectorCandidate {
pub name: String,
pub session_count: u32,
pub source: ExternalAgentImportedConnectorSource,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, JsonSchema, TS)]