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

Function resolve_session_memory

core/src/agent_api/session_config.rs:89–125  ·  view source on GitHub ↗
(opts: &SessionOptions)

Source from the content-addressed store, hash-verified

87}
88
89pub(super) fn resolve_session_memory(opts: &SessionOptions) -> ResolvedSessionMemory {
90 let mut init_warning = None;
91 let store = if let Some(ref store) = opts.memory_store {
92 Some(Arc::clone(store))
93 } else if let Some(ref dir) = opts.file_memory_dir {
94 match tokio::runtime::Handle::try_current() {
95 Ok(handle) => {
96 let dir = dir.clone();
97 match tokio::task::block_in_place(|| {
98 handle.block_on(a3s_memory::FileMemoryStore::new(dir))
99 }) {
100 Ok(store) => Some(Arc::new(store) as Arc<dyn a3s_memory::MemoryStore>),
101 Err(e) => {
102 let msg = format!("Failed to create file memory store: {}", e);
103 tracing::warn!("{}", msg);
104 init_warning = Some(msg);
105 None
106 }
107 }
108 }
109 Err(_) => {
110 let msg = "No async runtime available for file memory store - memory disabled"
111 .to_string();
112 tracing::warn!("{}", msg);
113 init_warning = Some(msg);
114 None
115 }
116 }
117 } else {
118 None
119 };
120
121 ResolvedSessionMemory {
122 memory: store.map(|s| Arc::new(crate::memory::AgentMemory::new(s))),
123 init_warning,
124 }
125}
126
127#[cfg(test)]
128mod tests {

Callers 1

build_agent_sessionFunction · 0.85

Calls 2

block_onMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected