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

Method query

core/src/context/static_provider.rs:44–75  ·  view source on GitHub ↗
(&self, query: &ContextQuery)

Source from the content-addressed store, hash-verified

42 }
43
44 async fn query(&self, query: &ContextQuery) -> anyhow::Result<ContextResult> {
45 let mut result = ContextResult::new(&self.name);
46 let max_results = query.max_results.max(1);
47 let max_tokens = query.max_tokens.max(1);
48 let mut total_tokens = 0usize;
49
50 for item in self.items.iter().take(max_results) {
51 let item_tokens = estimated_tokens(item);
52 if total_tokens + item_tokens > max_tokens {
53 result.truncated = true;
54
55 if result.items.is_empty() {
56 result.add_item(truncate_item(item, max_tokens));
57 }
58
59 break;
60 }
61
62 let mut item = item.clone();
63 if item.token_count == 0 {
64 item.token_count = item_tokens;
65 }
66 total_tokens += item_tokens;
67 result.add_item(item);
68 }
69
70 if self.items.len() > max_results {
71 result.truncated = true;
72 }
73
74 Ok(result)
75 }
76}
77
78fn estimated_tokens(item: &ContextItem) -> usize {

Callers 3

returns_static_itemsFunction · 0.45
respects_result_limitFunction · 0.45

Calls 6

truncate_itemFunction · 0.85
add_itemMethod · 0.80
estimated_tokensFunction · 0.70
is_emptyMethod · 0.45
cloneMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected