historyを返すプロトコル

This commit is contained in:
2026-04-12 03:37:49 +09:00
parent 29e1bc8253
commit 0332d446cd
9 changed files with 75 additions and 94 deletions
+23
View File
@@ -12,6 +12,7 @@ pub enum Method {
Run { input: String },
Resume,
Cancel,
GetHistory,
}
// ---------------------------------------------------------------------------
@@ -63,6 +64,9 @@ pub enum Event {
code: ErrorCode,
message: String,
},
History {
items: Vec<serde_json::Value>,
},
}
// ---------------------------------------------------------------------------
@@ -138,6 +142,25 @@ mod tests {
assert_eq!(parsed["data"]["result"], "limit_reached");
}
#[test]
fn method_get_history() {
let json = r#"{"method":"get_history"}"#;
let method: Method = serde_json::from_str(json).unwrap();
assert!(matches!(method, Method::GetHistory));
}
#[test]
fn event_history_format() {
let event = Event::History {
items: vec![serde_json::json!({"type": "message", "role": "user"})],
};
let json = serde_json::to_string(&event).unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["event"], "history");
assert!(parsed["data"]["items"].is_array());
assert_eq!(parsed["data"]["items"][0]["role"], "user");
}
#[test]
fn event_error_format() {
let event = Event::Error {