HYVE NARRATOR · AUDIENCE-AWARE RENDER

NARRATOR

5 AUDIENCES · DETERMINISTIC RENDER · SOC TO EXECUTIVE

One structured event in. Five differently-toned reports out — each written for a specific audience. SOC analysts get indicator-rich telemetry. Executives get the bottom line. Legal gets the statutorily-relevant detail. Helpdesk gets reassurance. MSSP gets the multi-tenant ticket-grade summary.

Narrator is template-rendered, not LLM-prompted — same input always produces the same output. Auditors love it. Counsel signs off on it. SOCs trust it. Use it standalone or via Omega in HYVE Ether OS.

5
Audiences
Deterministic
Same input, same output
No hallucination
Template-rendered

One event. Five audiences. Five tones.

Same source event below — an outbound DNS block at 18:09:42 UTC — rendered for each audience.

INTEGRATE · RUST · PYTHON · TYPESCRIPT

Render once. Rendered five ways.

// Cargo.toml: hyve-narrator = "1.0"
use hyve_narrator::{NarratorClient, Audience, Event};
use serde_json::json;

fn main() -> anyhow::Result<()> {
    let narr = NarratorClient::local();
    let event: Event = serde_json::from_value(json!({
        "type": "outbound_blocked",
        "domain": "flagged.example.com",
        "ts": "2026-05-08T18:09:42Z",
        "pid": 14322,
    }))?;

    for audience in [Audience::Soc, Audience::Executive, Audience::Legal,
                     Audience::Helpdesk, Audience::Mssp] {
        let rendered = narr.render(&event, audience)?;
        println!("--- {audience:?} ---\n{}\n", rendered.text);
    }
    Ok(())
}