Skip to content

Commit 7f72ffc

Browse files
committed
generalized internal task-session bookkeeping variable names
Signed-off-by: Yuchen Zhang <yuchenz@nvidia.com>
1 parent f2c1000 commit 7f72ffc

1 file changed

Lines changed: 30 additions & 35 deletions

File tree

  • crates/cli/src/alignment

crates/cli/src/alignment/mod.rs

Lines changed: 30 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -110,15 +110,15 @@ pub(crate) struct SessionAlignmentState {
110110
aliases: HashMap<String, SessionAlias>,
111111
completed_aliases: HashMap<String, SessionAlias>,
112112
pending_subagents: HashMap<String, PendingSubagentStart>,
113-
hermes_task_sessions: HashMap<String, HashMap<String, String>>,
113+
task_sessions: HashMap<String, HashMap<String, String>>,
114114
}
115115

116116
impl SessionAlignmentState {
117117
pub(crate) fn clear(&mut self) {
118118
self.aliases.clear();
119119
self.completed_aliases.clear();
120120
self.pending_subagents.clear();
121-
self.hermes_task_sessions.clear();
121+
self.task_sessions.clear();
122122
}
123123

124124
pub(crate) fn alias_for_session(&self, session_id: &str) -> Option<SessionAlias> {
@@ -156,8 +156,8 @@ impl SessionAlignmentState {
156156
}
157157

158158
pub(crate) fn route_event(&mut self, event: NormalizedEvent) -> NormalizedEvent {
159-
self.record_hermes_task_session(&event);
160-
let event = self.route_hermes_task_event(event);
159+
self.record_task_session(&event);
160+
let event = self.route_task_session_event(event);
161161
let (event, finished_alias) = route_event_through_alias(event, &self.aliases);
162162
let session_id = event.session_id().to_string();
163163
if let Some(child_session_id) = finished_alias.as_ref() {
@@ -232,8 +232,8 @@ impl SessionAlignmentState {
232232
self.pending_subagents.retain(|child_session_id, pending| {
233233
child_session_id != session_id && pending.parent_session_id() != session_id
234234
});
235-
self.hermes_task_sessions.remove(session_id);
236-
prune_hermes_task_sessions(&mut self.hermes_task_sessions, session_id);
235+
self.task_sessions.remove(session_id);
236+
prune_task_sessions(&mut self.task_sessions, session_id);
237237
}
238238

239239
pub(crate) fn clear_for_ended_subagent(&mut self, parent_session_id: &str, subagent_id: &str) {
@@ -247,29 +247,29 @@ impl SessionAlignmentState {
247247
&& !(pending.parent_session_id() == parent_session_id
248248
&& pending.event.session_id == subagent_id)
249249
});
250-
self.hermes_task_sessions
250+
self.task_sessions
251251
.retain(|session_id, _| session_id != subagent_id);
252-
prune_hermes_task_sessions(&mut self.hermes_task_sessions, subagent_id);
252+
prune_task_sessions(&mut self.task_sessions, subagent_id);
253253
}
254254

255-
fn record_hermes_task_session(&mut self, event: &NormalizedEvent) {
255+
fn record_task_session(&mut self, event: &NormalizedEvent) {
256256
if normalized_event_agent_kind(event) != AgentKind::Hermes {
257257
return;
258258
}
259-
let Some(task_id) = hermes_task_id(event) else {
259+
let Some(task_id) = event_task_id(event) else {
260260
return;
261261
};
262262
let session_id = event.session_id();
263263
if session_id == task_id {
264264
return;
265265
}
266-
self.hermes_task_sessions
266+
self.task_sessions
267267
.entry(session_id.to_string())
268268
.or_default()
269269
.insert(task_id, session_id.to_string());
270270
}
271271

272-
fn route_hermes_task_event(&self, event: NormalizedEvent) -> NormalizedEvent {
272+
fn route_task_session_event(&self, event: NormalizedEvent) -> NormalizedEvent {
273273
let should_route = matches!(
274274
event,
275275
NormalizedEvent::ToolStarted(_) | NormalizedEvent::ToolEnded(_)
@@ -278,47 +278,42 @@ impl SessionAlignmentState {
278278
return event;
279279
}
280280

281-
let task_id = hermes_task_id(&event).unwrap_or_else(|| event.session_id().to_string());
282-
let session_scope = hermes_task_session_scope(&event);
283-
let Some(session_id) = self.hermes_session_for_task(&task_id, session_scope.as_deref())
284-
else {
281+
let task_id = event_task_id(&event).unwrap_or_else(|| event.session_id().to_string());
282+
let session_scope = event_task_session_scope(&event);
283+
let Some(session_id) = self.session_for_task(&task_id, session_scope.as_deref()) else {
285284
return event;
286285
};
287-
route_hermes_task_session_event(event, task_id, session_id)
286+
route_task_session_event(event, task_id, session_id)
288287
}
289288

290-
fn hermes_session_for_task(
291-
&self,
292-
task_id: &str,
293-
session_scope: Option<&str>,
294-
) -> Option<String> {
289+
fn session_for_task(&self, task_id: &str, session_scope: Option<&str>) -> Option<String> {
295290
if let Some(session_scope) = session_scope {
296291
return self
297-
.hermes_task_sessions
292+
.task_sessions
298293
.get(session_scope)
299294
.and_then(|tasks| tasks.get(task_id))
300295
.cloned();
301296
}
302297

303298
let mut matches = self
304-
.hermes_task_sessions
299+
.task_sessions
305300
.values()
306301
.filter_map(|tasks| tasks.get(task_id).cloned());
307302
let session_id = matches.next()?;
308303
matches.next().is_none().then_some(session_id)
309304
}
310305
}
311306

312-
fn prune_hermes_task_sessions(
313-
hermes_task_sessions: &mut HashMap<String, HashMap<String, String>>,
307+
fn prune_task_sessions(
308+
task_sessions: &mut HashMap<String, HashMap<String, String>>,
314309
session_id: &str,
315310
) {
316-
hermes_task_sessions.values_mut().for_each(|tasks| {
311+
task_sessions.values_mut().for_each(|tasks| {
317312
tasks.retain(|task_id, mapped_session_id| {
318313
task_id != session_id && mapped_session_id != session_id
319314
});
320315
});
321-
hermes_task_sessions.retain(|_, tasks| !tasks.is_empty());
316+
task_sessions.retain(|_, tasks| !tasks.is_empty());
322317
}
323318

324319
// Resolves the session id for a gateway request in precedence order:
@@ -684,14 +679,14 @@ fn route_tool_event(event: &mut ToolEvent, alias: &SessionAlias, metadata: Value
684679
event.metadata = merge_metadata(event.metadata.clone(), metadata);
685680
}
686681

687-
fn route_hermes_task_session_event(
682+
fn route_task_session_event(
688683
event: NormalizedEvent,
689684
task_id: String,
690685
session_id: String,
691686
) -> NormalizedEvent {
692687
let metadata = json!({
693688
"session_correlation_status": "task_session_alias",
694-
"session_correlation_source": "hermes_task_id",
689+
"session_correlation_source": "task_id",
695690
"hermes_task_id": task_id,
696691
"hermes_session_id": session_id,
697692
});
@@ -728,7 +723,7 @@ fn normalized_event_agent_kind(event: &NormalizedEvent) -> AgentKind {
728723
}
729724
}
730725

731-
fn hermes_task_id(event: &NormalizedEvent) -> Option<String> {
726+
fn event_task_id(event: &NormalizedEvent) -> Option<String> {
732727
match event {
733728
NormalizedEvent::AgentStarted(event)
734729
| NormalizedEvent::AgentEnded(event)
@@ -754,7 +749,7 @@ fn hermes_task_id(event: &NormalizedEvent) -> Option<String> {
754749
}
755750
}
756751

757-
fn hermes_task_session_scope(event: &NormalizedEvent) -> Option<String> {
752+
fn event_task_session_scope(event: &NormalizedEvent) -> Option<String> {
758753
match event {
759754
NormalizedEvent::AgentStarted(event)
760755
| NormalizedEvent::AgentEnded(event)
@@ -795,8 +790,8 @@ fn session_scope_from_llm_event(event: &LlmEvent) -> Option<String> {
795790
}
796791

797792
fn session_scope_from_payload_and_metadata(payload: &Value, metadata: &Value) -> Option<String> {
798-
json_string_at(payload, HERMES_SESSION_SCOPE_PATHS)
799-
.or_else(|| json_string_at(metadata, HERMES_SESSION_SCOPE_PATHS))
793+
json_string_at(payload, TASK_SESSION_SCOPE_PATHS)
794+
.or_else(|| json_string_at(metadata, TASK_SESSION_SCOPE_PATHS))
800795
}
801796

802797
const TASK_ID_PATHS: &[&[&str]] = &[
@@ -806,7 +801,7 @@ const TASK_ID_PATHS: &[&[&str]] = &[
806801
&["extra", "taskId"],
807802
];
808803

809-
const HERMES_SESSION_SCOPE_PATHS: &[&[&str]] = &[
804+
const TASK_SESSION_SCOPE_PATHS: &[&[&str]] = &[
810805
&["session_id"],
811806
&["sessionId"],
812807
&["session", "id"],

0 commit comments

Comments
 (0)