@@ -798,6 +798,12 @@ class MemoryDetail(BaseModel):
798798 model_config = {"extra" : "allow" }
799799
800800
801+ class FileDetail (BaseModel ):
802+ """Individual file detail model based on actual API response."""
803+
804+ model_config = {"extra" : "allow" }
805+
806+
801807class GetMessagesData (BaseModel ):
802808 """Data model for get messages response based on actual API."""
803809
@@ -806,6 +812,12 @@ class GetMessagesData(BaseModel):
806812 )
807813
808814
815+ class GetCreateKnowledgebaseData (BaseModel ):
816+ """Data model for create knowledgebase response based on actual API."""
817+
818+ id : str = Field (..., description = "Knowledgebase id" )
819+
820+
809821class SearchMemoryData (BaseModel ):
810822 """Data model for search memory response based on actual API."""
811823
@@ -815,12 +827,63 @@ class SearchMemoryData(BaseModel):
815827 message_detail_list : list [MessageDetail ] | None = Field (
816828 None , alias = "message_detail_list" , description = "List of message details (usually None)"
817829 )
830+ preference_detail_list : list [MessageDetail ] | None = Field (
831+ None ,
832+ alias = "preference_detail_list" ,
833+ description = "List of preference details (usually None)" ,
834+ )
835+ tool_memory_detail_list : list [MessageDetail ] | None = Field (
836+ None ,
837+ alias = "tool_memory_detail_list" ,
838+ description = "List of tool_memor details (usually None)" ,
839+ )
840+ preference_note : str = Field (
841+ None , alias = "preference_note" , description = "String of preference_note"
842+ )
843+
844+
845+ class GetKnowledgebaseFileData (BaseModel ):
846+ """Data model for search memory response based on actual API."""
847+
848+ file_detail_list : list [FileDetail ] = Field (
849+ default_factory = list , alias = "file_detail_list" , description = "List of files details"
850+ )
851+
852+
853+ class GetMemoryData (BaseModel ):
854+ """Data model for search memory response based on actual API."""
855+
856+ memory_detail_list : list [MemoryDetail ] = Field (
857+ default_factory = list , alias = "memory_detail_list" , description = "List of memory details"
858+ )
859+ message_detail_list : list [MessageDetail ] | None = Field (
860+ None , alias = "message_detail_list" , description = "List of message details (usually None)"
861+ )
818862
819863
820864class AddMessageData (BaseModel ):
821865 """Data model for add message response based on actual API."""
822866
823867 success : bool = Field (..., description = "Operation success status" )
868+ task_id : str = Field (..., description = "Operation task_id" )
869+ status : str = Field (..., description = "Operation task status" )
870+
871+
872+ class DeleteMessageData (BaseModel ):
873+ """Data model for delete Message based on actual API."""
874+
875+ success : bool = Field (..., description = "Operation success status" )
876+
877+ class ChatMessageData (BaseModel ):
878+ """Data model for chat Message based on actual API."""
879+
880+ response : str = Field (..., description = "Operation response" )
881+
882+
883+ class GetTaskStatusMessageData (BaseModel ):
884+ """Data model for task status Message based on actual API."""
885+
886+ status : str = Field (..., description = "Operation task status" )
824887
825888
826889# ─── MemOS Response Models (Similar to OpenAI ChatCompletion) ──────────────────
@@ -851,6 +914,129 @@ def memories(self) -> list[MemoryDetail]:
851914 """Convenient access to memory list."""
852915 return self .data .memory_detail_list
853916
917+ @property
918+ def preferences (self ) -> list [MemoryDetail ]:
919+ """Convenient access to preference list."""
920+ return self .data .preference_detail_list
921+
922+ @property
923+ def tool_memories (self ) -> list [MemoryDetail ]:
924+ """Convenient access to tool_memory list."""
925+ return self .data .tool_memory_detail_list
926+
927+
928+ class MemOSDeleteKnowledgebaseResponse (BaseModel ):
929+ """Response model for delete knowledgebase operation based on actual API."""
930+
931+ code : int = Field (..., description = "Response status code" )
932+ message : str = Field (..., description = "Response message" )
933+ data : DeleteMessageData = Field (..., description = "delete results data" )
934+
935+ @property
936+ def success (self ) -> bool :
937+ """Convenient access to success status."""
938+ return self .data .success
939+
940+
941+ class MemOSDeleteMemoryResponse (BaseModel ):
942+ """Response model for delete knowledgebase operation based on actual API."""
943+
944+ code : int = Field (..., description = "Response status code" )
945+ message : str = Field (..., description = "Response message" )
946+ data : DeleteMessageData = Field (..., description = "delete results data" )
947+
948+ @property
949+ def success (self ) -> bool :
950+ """Convenient access to success status."""
951+ return self .data .success
952+
953+ class MemOSChatResponse (BaseModel ):
954+ """Response model for chat operation based on actual API."""
955+
956+ code : int = Field (..., description = "Response status code" )
957+ message : str = Field (..., description = "Response message" )
958+ data : ChatMessageData = Field (..., description = "chat results data" )
959+
960+ @property
961+ def response (self ) -> str :
962+ """Convenient access to success status."""
963+ return self .data .response
964+
965+
966+ class MemOSGetTaskStatusResponse (BaseModel ):
967+ """Response model for get task status operation based on actual API."""
968+
969+ code : int = Field (..., description = "Response status code" )
970+ message : str = Field (..., description = "Response message" )
971+ data : list [GetTaskStatusMessageData ] = Field (..., description = "delete results data" )
972+
973+ @property
974+ def data (self ) -> list [GetTaskStatusMessageData ]:
975+ """Convenient access to task status."""
976+ return self .data
977+
978+
979+ class MemOSCreateKnowledgebaseResponse (BaseModel ):
980+ """Response model for create knowledgebase operation based on actual API."""
981+
982+ code : int = Field (..., description = "Response status code" )
983+ message : str = Field (..., description = "Response message" )
984+ data : GetCreateKnowledgebaseData = Field (..., description = "Messages data" )
985+
986+ @property
987+ def knowledgebase_id (self ) -> str :
988+ """Convenient access to knowledgebase id."""
989+ return self .data .id
990+
991+
992+ class MemOSAddKnowledgebaseFileResponse (BaseModel ):
993+ """Response model for add knowledgebase-file operation based on actual API."""
994+
995+ code : int = Field (..., description = "Response status code" )
996+ message : str = Field (..., description = "Response message" )
997+ data : list [dict [str , Any ]]
998+
999+ @property
1000+ def memories (self ) -> list [dict [str , Any ]]:
1001+ """Convenient access to memory list."""
1002+ return self .data
1003+
1004+
1005+ class MemOSGetMemoryResponse (BaseModel ):
1006+ """Response model for get memory operation based on actual API."""
1007+
1008+ code : int = Field (..., description = "Response status code" )
1009+ message : str = Field (..., description = "Response message" )
1010+ data : SearchMemoryData = Field (..., description = "Get results data" )
1011+
1012+ @property
1013+ def memories (self ) -> list [MemoryDetail ]:
1014+ """Convenient access to memory list."""
1015+ return self .data .memory_detail_list
1016+
1017+ @property
1018+ def preferences (self ) -> list [MemoryDetail ]:
1019+ """Convenient access to preference list."""
1020+ return self .data .preference_detail_list
1021+
1022+ @property
1023+ def tool_memories (self ) -> list [MemoryDetail ]:
1024+ """Convenient access to tool_memory list."""
1025+ return self .data .tool_memory_detail_list
1026+
1027+
1028+ class MemOSGetKnowledgebaseFileResponse (BaseModel ):
1029+ """Response model for get KnowledgebaseFile operation based on actual API."""
1030+
1031+ code : int = Field (..., description = "Response status code" )
1032+ message : str = Field (..., description = "Response message" )
1033+ data : GetKnowledgebaseFileData = Field (..., description = "Get results data" )
1034+
1035+ @property
1036+ def files (self ) -> list [FileDetail ]:
1037+ """Convenient access to file list."""
1038+ return self .data .file_detail_list
1039+
8541040
8551041class MemOSAddResponse (BaseModel ):
8561042 """Response model for add message operation based on actual API."""
@@ -864,6 +1050,39 @@ def success(self) -> bool:
8641050 """Convenient access to success status."""
8651051 return self .data .success
8661052
1053+ @property
1054+ def task_id (self ) -> str :
1055+ """Convenient access to task_id status."""
1056+ return self .data .task_id
1057+
1058+ @property
1059+ def status (self ) -> str :
1060+ """Convenient access to status status."""
1061+ return self .data .status
1062+
1063+
1064+ class MemOSAddFeedBackResponse (BaseModel ):
1065+ """Response model for add feedback operation based on actual API."""
1066+
1067+ code : int = Field (..., description = "Response status code" )
1068+ message : str = Field (..., description = "Response message" )
1069+ data : AddMessageData = Field (..., description = "Add operation data" )
1070+
1071+ @property
1072+ def success (self ) -> bool :
1073+ """Convenient access to success status."""
1074+ return self .data .success
1075+
1076+ @property
1077+ def task_id (self ) -> str :
1078+ """Convenient access to task_id status."""
1079+ return self .data .task_id
1080+
1081+ @property
1082+ def status (self ) -> str :
1083+ """Convenient access to status status."""
1084+ return self .data .status
1085+
8671086
8681087# ─── Scheduler Status Models ───────────────────────────────────────────────────
8691088
0 commit comments