pub struct SourceRead {
pub tool: String,
pub keys: Vec<String>,
pub join: Join,
pub text: String,
}Expand description
One earlier tool result the staged draft was written from.
Fields§
§tool: StringThe tool that produced it, by registry name. Shown, because “which tool said this” is half of how a reviewer weighs it.
keys: Vec<String>Which arguments joined it to the draft, so a coincidental match is visibly coincidental rather than presented as the source.
join: JoinWhether the call asked for the id or returned it. Rendered, because “the run asked for this” and “the run found this here” are different claims and a reviewer weighs them differently.
text: StringThe result, with the model-facing <untrusted-content> wrapper
removed. Truncated to MAX_CHARS, with a line saying so.
Implementations§
Source§impl SourceRead
impl SourceRead
Sourcepub fn heading(&self) -> String
pub fn heading(&self) -> String
The line every surface puts above the quoted bytes.
It says four things and each is needed: that this is not the draft, that it came from outside this machine, which tool fetched it, and how it was joined. A quoted block with no heading reads as more of the letter — which, for text an attacker may have written, is the one impression this must never leave.
One definition because there are three renderers — the CLI, the TUI and the web review pane. A heading that drifts between them is a reviewer told different things about the same bytes depending on where they happened to read them.
The lead is no longer “replying to”. That was true of the only case that existed when it was written and false the moment a draft that answers nothing got a source: a staged calendar delete is not replying to the listing it found the event in. This module special-cases no tool name anywhere, and the heading was quietly the exception.
Trait Implementations§
Source§impl Clone for SourceRead
impl Clone for SourceRead
Source§fn clone(&self) -> SourceRead
fn clone(&self) -> SourceRead
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more