MCPcopy Create free account
hub / github.com/MemTensor/MemOS / SingleCubeView

Class SingleCubeView

src/memos/multi_mem_cube/single_cube.py:48–846  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46
47@dataclass
48class SingleCubeView(MemCubeView):
49 cube_id: str
50 naive_mem_cube: NaiveMemCube
51 mem_reader: SimpleStructMemReader
52 mem_scheduler: OptimizedScheduler
53 logger: Any
54 searcher: Any
55 feedback_server: Any | None = None
56 deepsearch_agent: Any | None = None
57
58 @timed
59 def add_memories(self, add_req: APIADDRequest) -> list[dict[str, Any]]:
60 """
61 This is basically your current handle_add_memories logic,
62 but scoped to a single cube_id.
63 """
64 sync_mode = add_req.async_mode or self._get_sync_mode()
65 self.logger.info(
66 f"[DIAGNOSTIC] single_cube.add_memories called for cube_id: {self.cube_id}. sync_mode: {sync_mode}. Request: {add_req.model_dump_json(indent=2)}"
67 )
68 user_context = UserContext(
69 user_id=add_req.user_id,
70 mem_cube_id=self.cube_id,
71 session_id=add_req.session_id or "default_session",
72 manager_user_id=add_req.manager_user_id,
73 project_id=add_req.project_id,
74 )
75
76 target_session_id = add_req.session_id or "default_session"
77 self.logger.info(
78 f"[SingleCubeView] cube={self.cube_id} "
79 f"Processing add with mode={sync_mode}, session={target_session_id}"
80 )
81
82 all_memories = self._process_text_mem(add_req, user_context, sync_mode)
83
84 self.logger.info(f"[SingleCubeView] cube={self.cube_id} total_results={len(all_memories)}")
85
86 return all_memories
87
88 @timed
89 def search_memories(self, search_req: APISearchRequest) -> dict[str, Any]:
90 """
91 Unified memory search handling (text + preference memories).
92 Preference memories are now searched through the same _search_text flow.
93 """
94 cube_filter = resolve_filter_for_cube(search_req.filter, self.cube_id)
95 if cube_filter is not search_req.filter:
96 import copy
97
98 search_req = copy.copy(search_req)
99 search_req.filter = cube_filter
100
101 # Create UserContext object
102 user_context = UserContext(
103 user_id=search_req.user_id,
104 mem_cube_id=self.cube_id,
105 session_id=search_req.session_id or "default_session",

Callers 8

_build_cube_viewMethod · 0.90
_build_cube_viewMethod · 0.90
_build_cube_viewMethod · 0.90
single_cube_viewFunction · 0.90
load_cube.pyFile · 0.90
dump_cube.pyFile · 0.90

Calls

no outgoing calls

Tested by 3

single_cube_viewFunction · 0.72