Review staging merge conflict status

This commit is contained in:
Coffee
2026-03-16 17:07:26 +08:00
parent ff971d0f14
commit 2af70642de
7 changed files with 32 additions and 7 deletions
+1
View File
@@ -646,6 +646,7 @@ impl AppBuilder {
Arc::clone(&mcp_session_manager),
Arc::clone(&mcp_process_manager),
Some(Arc::clone(&self.session)),
self.config.llm.nearai.api_key.clone(),
ext_secrets,
Arc::clone(tools),
Some(Arc::clone(hooks)),
+1
View File
@@ -3366,6 +3366,7 @@ mod tests {
mcp_sm,
mcp_pm,
None,
None,
secrets,
tool_registry,
None,
+10 -1
View File
@@ -65,6 +65,7 @@ pub struct ExtensionManager {
mcp_session_manager: Arc<McpSessionManager>,
mcp_process_manager: Arc<crate::tools::mcp::process::McpProcessManager>,
nearai_session_manager: Option<Arc<crate::llm::SessionManager>>,
nearai_api_key: Option<secrecy::SecretString>,
/// Active MCP clients keyed by server name.
mcp_clients: RwLock<HashMap<String, Arc<McpClient>>>,
@@ -151,6 +152,7 @@ impl ExtensionManager {
mcp_session_manager: Arc<McpSessionManager>,
mcp_process_manager: Arc<crate::tools::mcp::process::McpProcessManager>,
nearai_session_manager: Option<Arc<crate::llm::SessionManager>>,
nearai_api_key: Option<secrecy::SecretString>,
secrets: Arc<dyn SecretsStore + Send + Sync>,
tool_registry: Arc<ToolRegistry>,
hooks: Option<Arc<HookRegistry>>,
@@ -174,6 +176,7 @@ impl ExtensionManager {
mcp_session_manager,
mcp_process_manager,
nearai_session_manager,
nearai_api_key,
mcp_clients: RwLock::new(HashMap::new()),
wasm_tool_runtime,
wasm_tools_dir,
@@ -2869,7 +2872,7 @@ impl ExtensionManager {
server.clone(),
&self.mcp_session_manager,
self.nearai_session_manager.clone(),
None,
self.nearai_api_key.clone(),
&self.mcp_process_manager,
Some(Arc::clone(&self.secrets)),
&self.user_id,
@@ -4612,6 +4615,7 @@ mod tests {
mcp,
Arc::new(McpProcessManager::new()),
None,
None,
secrets,
tools,
None, // hooks
@@ -4793,6 +4797,7 @@ mod tests {
Arc::new(McpSessionManager::new()),
Arc::new(McpProcessManager::new()),
None,
None,
Arc::new(InMemorySecretsStore::new(crypto)),
Arc::new(ToolRegistry::new()),
None,
@@ -4877,6 +4882,8 @@ mod tests {
let manager = ExtensionManager::new(
Arc::new(McpSessionManager::new()),
Arc::new(McpProcessManager::new()),
None,
None,
Arc::new(InMemorySecretsStore::new(crypto)),
Arc::new(ToolRegistry::new()),
None,
@@ -4886,6 +4893,7 @@ mod tests {
None,
"test".to_string(),
Some(db.clone() as Arc<dyn crate::db::Database>),
None,
Vec::new(),
);
@@ -5365,6 +5373,7 @@ mod tests {
mcp,
Arc::new(McpProcessManager::new()),
None,
None,
secrets,
tools,
None,
+1
View File
@@ -801,6 +801,7 @@ mod tests {
Arc::new(McpSessionManager::new()),
Arc::new(crate::tools::mcp::process::McpProcessManager::new()),
None,
None,
Arc::new(InMemorySecretsStore::new(crypto)),
Arc::new(ToolRegistry::new()),
None,
+3 -1
View File
@@ -905,7 +905,9 @@ mod tests {
.set_token(SecretString::from("sess_test_token"))
.await;
let client = McpClient::new_with_config(config).with_nearai_session_manager(nearai_session);
let client = McpClient::new_with_config(config)
.expect("valid MCP config")
.with_nearai_session_manager(nearai_session);
let headers = client.build_request_headers().await.expect("headers");
assert_eq!(
+15 -5
View File
@@ -20,6 +20,8 @@ pub enum McpFactoryError {
UnixNotSupported { name: String },
#[error("Invalid configuration for MCP server '{name}': {reason}")]
InvalidConfig { name: String, reason: String },
#[error("Missing runtime auth context for MCP server '{name}': {reason}")]
MissingRuntimeAuthContext { name: String, reason: String },
}
/// Create an `McpClient` from a server configuration, dispatching on the
@@ -81,12 +83,20 @@ pub async fn create_client_from_config(
}
EffectiveTransport::Http => {
if server.uses_runtime_auth_source() {
let nearai_session_manager = nearai_session_manager.ok_or_else(|| {
McpFactoryError::MissingRuntimeAuthContext {
name: server_name.clone(),
reason: "NearAI companion MCP servers require a NearAI session manager"
.to_string(),
}
})?;
return Ok(McpClient::new_with_config(server)
.with_nearai_session_manager(
nearai_session_manager.expect(
"NearAI companion MCP servers require a NearAI session manager",
),
)
.map_err(|e| McpFactoryError::InvalidConfig {
name: server_name.clone(),
reason: e.to_string(),
})?
.with_nearai_session_manager(nearai_session_manager)
.with_nearai_api_key(nearai_api_key)
.with_session_manager(Arc::clone(session_manager)));
}
+1
View File
@@ -204,6 +204,7 @@ async fn extension_manager_with_process_manager_constructs() {
Arc::new(McpSessionManager::new()),
Arc::new(McpProcessManager::new()),
None,
None,
secrets,
tools,
None,