Buffers provider chunks and releases text only after scan_stream() has made
a final decision over the complete response. This conservative contract
prevents split payloads from reaching the consumer and makes cancellation
explicit. It trades token-by-token display for a release guarantee; callers
must send raw provider chunks only to $push().
Usage
stream_guard(
emit,
cancel = NULL,
policy = "enterprise_default",
reviewer = NULL,
checks = "rules",
overlap = 200L,
redaction = NULL,
scanners = scanner_options(),
show_tokens = FALSE,
show_stats = FALSE
)Arguments
- emit
Function receiving the final cleaned text after an allow/redact decision.
- cancel
Optional function called when the guard blocks or is cancelled.
- policy
A
shieldr_policyor built-in policy name.- reviewer
Optional reviewer function or object with
$chat().- checks
One of
"rules","nlp","llm", or"both".- overlap
Number of trailing characters from prior output to include when scanning the next chunk.
- redaction
Optional redaction strategy from
redaction_strategy().- scanners
Optional scanner configuration from
scanner_options().- show_tokens
Whether to attach token counts when
ellmeris available.- show_stats
Show construction time and available usage metrics.
