fn triage_value_has_work(value: &serde_json::Value) -> Option<bool> {
value
.get("has_work")
.and_then(serde_json::Value::as_bool)
.or_else(|| {
value
.pointer("/structured_handoff/has_work")
.and_then(serde_json::Value::as_bool)
})
.or_else(|| {
value
.pointer("/content/has_work")
.and_then(serde_json::Value::as_bool)
})
.or_else(|| {
value
.pointer("/content/structured_handoff/has_work")
.and_then(serde_json::Value::as_bool)
})
.or_else(|| {
value
.pointer("/content/data/has_work")
.and_then(serde_json::Value::as_bool)
})
}
fn triage_output_has_work(output: &serde_json::Value) -> Option<bool> {
triage_value_has_work(output).or_else(|| {
[
output.pointer("/content/text"),
output.pointer("/content/raw_assistant_text"),
output.pointer("/content/raw_text"),
output.get("text"),
]
.into_iter()
.flatten()
.filter_map(serde_json::Value::as_str)
.find_map(|text| {
crate::app::state::automation::extraction::extract_structured_handoff_json(text)
.as_ref()
.and_then(triage_value_has_work)
})
})
}