MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / commit_hook_event

Method commit_hook_event

atomic-agent/src/turn/orchestrator/provenance.rs:170–208  ·  view source on GitHub ↗
(&self, event: &TurnEvent, turn_number: u32)

Source from the content-addressed store, hash-verified

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,

Callers 3

handle_session_endMethod · 0.80
handle_turn_startMethod · 0.80
handle_tool_useMethod · 0.80

Calls 3

stable_journal_idFunction · 0.85
commit_journal_draftsMethod · 0.80

Tested by

no test coverage detected