(&self, event: &TurnEvent, turn_number: u32)
| 168 | } |
| 169 | |
| 170 | pub(super) fn commit_hook_event(&self, event: &TurnEvent, turn_number: u32) -> AgentResult<()> { |
| 171 | self.migrate_legacy_accumulator( |
| 172 | &event.session_id, |
| 173 | turn_number, |
| 174 | event.timestamp.timestamp_millis(), |
| 175 | )?; |
| 176 | let discriminator = match event.event_type { |
| 177 | HookType::TurnStart => "goal".to_string(), |
| 178 | HookType::PreToolUse => format!( |
| 179 | "tool-before:{}", |
| 180 | event |
| 181 | .tool_use_id |
| 182 | .clone() |
| 183 | .unwrap_or_else(|| anonymous_tool_key(event)) |
| 184 | ), |
| 185 | HookType::PostToolUse => format!( |
| 186 | "tool-after:{}", |
| 187 | event |
| 188 | .tool_use_id |
| 189 | .clone() |
| 190 | .unwrap_or_else(|| anonymous_tool_key(event)) |
| 191 | ), |
| 192 | HookType::TurnEnd => "turn-end".to_string(), |
| 193 | HookType::SessionStart => "session-start".to_string(), |
| 194 | HookType::SessionEnd => "session-end".to_string(), |
| 195 | }; |
| 196 | let event_id = stable_journal_id(&event.session_id, turn_number, &discriminator); |
| 197 | let envelope = ProvenanceJournalEnvelope::from_turn_event(&event_id, turn_number, 1, event); |
| 198 | self.commit_journal_drafts( |
| 199 | &event.session_id, |
| 200 | turn_number, |
| 201 | vec![JournalDraft { |
| 202 | event_id, |
| 203 | timestamp_ms: envelope.timestamp_ms, |
| 204 | causal_parent_ids: Vec::new(), |
| 205 | event: envelope.event, |
| 206 | }], |
| 207 | ) |
| 208 | } |
| 209 | |
| 210 | pub(super) fn commit_turn_completion_events( |
| 211 | &self, |
no test coverage detected