pub struct EventParser { /* private fields */ }Expand description
Parser for extracting events from CLI output.
Implementations§
Source§impl EventParser
impl EventParser
Sourcepub fn with_source(self, source: impl Into<HatId>) -> Self
pub fn with_source(self, source: impl Into<HatId>) -> Self
Sets the source hat for parsed events.
Sourcepub fn parse(&self, output: &str) -> Vec<Event>
pub fn parse(&self, output: &str) -> Vec<Event>
Parses events from CLI output text.
Returns a list of parsed events.
Sourcepub fn parse_backpressure_evidence(
payload: &str,
) -> Option<BackpressureEvidence>
pub fn parse_backpressure_evidence( payload: &str, ) -> Option<BackpressureEvidence>
Parses backpressure evidence from build.done event payload.
Expected format:
tests: pass
lint: pass
typecheck: pass
audit: pass
coverage: pass
complexity: 7 # required (<=10)
duplication: pass # required
performance: pass # optional (regression blocks)
mutants: pass (82%) # optional, warning-only
specs: pass # optional (fail blocks)Note: ANSI escape codes are stripped before parsing to handle colorized CLI output.
Sourcepub fn parse_review_evidence(payload: &str) -> Option<ReviewEvidence>
pub fn parse_review_evidence(payload: &str) -> Option<ReviewEvidence>
Parses review evidence from review.done event payload.
Expected format (subset of backpressure evidence):
tests: pass
build: passNote: ANSI escape codes are stripped before parsing.
Sourcepub fn parse_quality_report(payload: &str) -> Option<QualityReport>
pub fn parse_quality_report(payload: &str) -> Option<QualityReport>
Parses quality report evidence from verify.* event payloads.
Expected format:
quality.tests: pass
quality.coverage: 82%
quality.lint: pass
quality.audit: pass
quality.mutation: 71%
quality.complexity: 7
quality.specs: pass # optional (fail blocks)Note: ANSI escape codes are stripped before parsing.
Sourcepub fn contains_promise(output: &str, promise: &str) -> bool
pub fn contains_promise(output: &str, promise: &str) -> bool
Checks if output contains the completion promise.
Per spec: The promise must appear in the agent’s final output,
not inside an <event> tag payload. This function:
- Returns false if the promise appears inside ANY event tag (prevents accidental completion when agents discuss the promise)
- Otherwise, checks that the promise is the final non-empty line in the stripped output (prevents prompt echo false positives)
Checks if the promise appears inside any event tag payload.