MCPcopy Create free account
hub / github.com/AI45Lab/Code / resolve_context

Method resolve_context

core/src/agent/turn_context.rs:221–255  ·  view source on GitHub ↗

Resolve context from all providers for a given prompt Returns aggregated context results from all configured providers.

(
        &self,
        prompt: &str,
        session_id: Option<&str>,
    )

Source from the content-addressed store, hash-verified

219 ///
220 /// Returns aggregated context results from all configured providers.
221 pub(super) async fn resolve_context(
222 &self,
223 prompt: &str,
224 session_id: Option<&str>,
225 ) -> Vec<ContextResult> {
226 if self.config.context_providers.is_empty() {
227 return Vec::new();
228 }
229
230 let query = ContextQuery::new(prompt).with_session_id(session_id.unwrap_or(""));
231
232 let futures = self
233 .config
234 .context_providers
235 .iter()
236 .map(|p| p.query(&query));
237 let outcomes = join_all(futures).await;
238
239 outcomes
240 .into_iter()
241 .enumerate()
242 .filter_map(|(i, r)| match r {
243 Ok(result) if !result.is_empty() => Some(result),
244 Ok(_) => None,
245 Err(e) => {
246 tracing::warn!(
247 "Context provider '{}' failed: {}",
248 self.config.context_providers[i].name(),
249 e
250 );
251 None
252 }
253 })
254 .collect()
255 }
256
257 /// Detect if context perception is needed based on user prompt.
258 ///

Calls 3

is_emptyMethod · 0.45
with_session_idMethod · 0.45
queryMethod · 0.45

Tested by 1