agent-berth 2.2.1

Monitor and resume coding agents
Documentation
use super::*;
use crate::paths::Context;
use tempfile::tempdir;

#[test]
fn codex_originator_comes_from_the_hook_environment_unless_explicit() {
    for (environment, expected) in [
        (Some("Codex Desktop"), "Codex Desktop"),
        (Some("codex_work_desktop"), "codex_work_desktop"),
        (Some("codex-tui"), "codex-tui"),
        (None, "codex-cli"),
        (Some(""), "codex-cli"),
    ] {
        let mut payload = serde_json::json!({});
        enrich_codex_originator(&mut payload, environment);
        assert_eq!(payload["originator"], expected);
        let mut payload = serde_json::json!({"originator":"explicit"});
        enrich_codex_originator(&mut payload, environment);
        assert_eq!(payload["originator"], "explicit");
    }
}

#[test]
fn ipc_failure_is_success() {
    let root = tempdir().unwrap();
    let ctx = Context::for_test(root.path(), &root.path().join("agent-berth"));
    send_payload(
        &ctx,
        "claude".into(),
        serde_json::json!({"session_id":"s","hook_event_name":"Stop"}),
    )
    .unwrap();
}