oneiros_model/protocol/
memory.rs1use serde::{Deserialize, Serialize};
2
3use crate::*;
4
5#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
6pub struct SelectMemoryById {
7 pub id: MemoryId,
8}
9
10#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
13pub struct AddMemoryRequest {
14 pub agent: AgentName,
15 pub level: LevelName,
16 pub content: Content,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
20pub struct GetMemoryRequest {
21 pub id: MemoryId,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
25pub struct ListMemoriesRequest {
26 #[serde(default)]
27 pub agent: Option<AgentName>,
28 #[serde(default)]
29 pub level: Option<LevelName>,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
35#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
36pub enum MemoryEvents {
37 MemoryAdded(Memory),
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
41#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
42pub enum MemoryRequests {
43 AddMemory(AddMemoryRequest),
44 GetMemory(GetMemoryRequest),
45 ListMemories(ListMemoriesRequest),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize, schemars::JsonSchema)]
49#[serde(rename_all = "kebab-case", tag = "type", content = "data")]
50pub enum MemoryResponses {
51 MemoryAdded(Memory),
52 MemoryFound(Memory),
53 MemoriesListed(Vec<Memory>),
54}