migrate ai format conversion to responses adapters

This commit is contained in:
fawney19
2026-04-26 20:32:55 +08:00
parent e36fb8c07a
commit 5b914aa78c
183 changed files with 13539 additions and 3401 deletions

View File

@@ -132,10 +132,16 @@ pub struct ExecutionStreamTerminalSummary {
pub model: Option<String>,
#[serde(default)]
pub observed_finish: bool,
#[serde(default, skip_serializing_if = "is_zero_u64")]
pub unknown_event_count: u64,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub parser_error: Option<String>,
}
fn is_zero_u64(value: &u64) -> bool {
*value == 0
}
fn as_i64(value: &serde_json::Value, default: i64) -> i64 {
value
.as_i64()
@@ -149,7 +155,7 @@ fn as_f64(value: &serde_json::Value, default: f64) -> f64 {
#[cfg(test)]
mod tests {
use super::StandardizedUsage;
use super::{ExecutionStreamTerminalSummary, StandardizedUsage};
#[test]
fn standardized_usage_prefers_more_complete_candidate() {
@@ -193,4 +199,18 @@ mod tests {
Some(serde_json::json!("value"))
);
}
#[test]
fn stream_terminal_summary_skips_zero_unknown_event_count() {
let default_summary =
serde_json::to_value(ExecutionStreamTerminalSummary::default()).expect("serialize");
assert!(default_summary.get("unknown_event_count").is_none());
let summary = ExecutionStreamTerminalSummary {
unknown_event_count: 2,
..ExecutionStreamTerminalSummary::default()
};
let encoded = serde_json::to_value(summary).expect("serialize");
assert_eq!(encoded["unknown_event_count"], 2);
}
}