Max Turnの実装

This commit is contained in:
2026-04-11 03:16:36 +09:00
parent 60505f206b
commit 0fe05e502e
11 changed files with 119 additions and 5 deletions
+22
View File
@@ -60,6 +60,9 @@ pub enum Event {
input_tokens: Option<u64>,
output_tokens: Option<u64>,
},
RunEnd {
result: RunResult,
},
Error {
code: ErrorCode,
message: String,
@@ -83,6 +86,14 @@ pub enum TurnResult {
Paused,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum RunResult {
Finished,
Paused,
LimitReached,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ErrorCode {
@@ -126,6 +137,17 @@ mod tests {
assert_eq!(parsed["data"]["text"], "Hello");
}
#[test]
fn event_run_end_format() {
let event = Event::RunEnd {
result: RunResult::LimitReached,
};
let json = event.to_json_line().unwrap();
let parsed: serde_json::Value = serde_json::from_str(&json).unwrap();
assert_eq!(parsed["event"], "run_end");
assert_eq!(parsed["data"]["result"], "limit_reached");
}
#[test]
fn event_error_format() {
let event = Event::Error {