Files
iAs/tools/memories/src/main.rs
T

38 lines
2.0 KiB
Rust

//! memories — 长期记忆管理(通过主进程 DB 代理)
fn main() {
let input: serde_json::Value = serde_json::from_reader(std::io::stdin()).unwrap();
let mode = std::env::args().nth(2).unwrap_or_else(|| "list".to_string());
let params = &input["params"];
if input.get("db_response").is_none() {
// 发出 DB 请求
match mode.as_str() {
"list" => println!("{}", serde_json::json!({"type":"db","operation":"read_memories","desc":"读取记忆"})),
"add" => {
let c = params["content"].as_str().unwrap_or("");
if c.is_empty() { println!(r#"{{"type":"result","content":"缺少content"}}"#); return; }
println!("{}", serde_json::json!({"type":"db","operation":"write_memory","params":{"content":c},"desc":format!("记录: {c}")}));
}
"get" => {
let id = params["memory_id"].as_u64().unwrap_or(0);
println!("{}", serde_json::json!({"type":"db","operation":"read_memories","params":{"memory_id":id},"desc":"读取记忆"}));
}
"delete" => {
let id = params["memory_id"].as_u64().unwrap_or(0);
println!("{}", serde_json::json!({"type":"db","operation":"delete_memory","params":{"memory_id":id},"desc":format!("删除记忆 {id}")}));
}
"update" => {
let id = params["memory_id"].as_u64().unwrap_or(0);
let c = params["content"].as_str().unwrap_or("");
println!("{}", serde_json::json!({"type":"db","operation":"update_memory","params":{"memory_id":id,"content":c},"desc":format!("更新记忆 {id}")}));
}
_ => println!(r#"{{"type":"result","content":"未知操作"}}"#),
}
} else {
// 处理 DB 响应
let result = input["db_response"]["result"].as_str().unwrap_or("");
println!("{}", serde_json::json!({"type":"result","content":result}));
}
}