use axum::http::HeaderMap;
use serde_json::{Value, json};
use crate::adapters::{AdapterOutcome, CODEX_PAYLOAD_EXTRACTOR, ClassificationRules, classify};
use crate::model::AgentKind;
pub(crate) fn adapt(payload: Value, headers: &HeaderMap) -> AdapterOutcome {
let events = classify(
&payload,
headers,
&CODEX_PAYLOAD_EXTRACTOR,
&ClassificationRules {
kind: AgentKind::Codex,
agent_start: &["sessionStart", "session_start", "agentStarted"],
agent_end: &["sessionEnd", "session_end", "agentEnded"],
subagent_start: &["subagentStart", "subagent_start"],
subagent_end: &["subagentStop", "subagentEnd", "subagent_stop"],
tool_start: &["preToolUse", "toolStarted", "tool_start"],
tool_end: &["postToolUse", "toolEnded", "tool_end", "toolFailed"],
},
);
AdapterOutcome {
events,
response: json!({}),
}
}