hatchery-session-events 0.2.40

Session event layer: per-provider live PTY parsers (pluggable trait) that turn the terminal byte stream into typed events, plus an ACP adapter behind the same event type
Documentation
use super::common::*;
use super::{Parsed, ProviderParser};
use crate::event::PromptKind;

pub struct GrokParser;

const PROFILE: Profile = Profile {
    answer_markers: &['●', '•'],
    thought_markers: &[],
    result_markers: &['⎿', '└'],
    tool_verbs: &["Ran", "Edited", "Read"],
    working_needles: &["Waiting for approval"],
    banner_needles: &["Welcome to Grok"],
    prompts: &[("Approve in your browser", PromptKind::Login, true)],
};

impl ProviderParser for GrokParser {
    fn provider(&self) -> &'static str { "grok" }
    fn parse(&mut self, rows: &[String]) -> Parsed { scan(rows, &PROFILE) }
}