diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-28 05:06:04 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-05-28 05:06:27 +0300 |
| commit | 2d8b4e2db4642dede084801c03516046f205626b (patch) | |
| tree | 909338388764efbaa8bc487f90e5e9f6d8a323a6 /src/app | |
| parent | 986e4a17767a3d4838e340b92cb2db9e6012acc4 (diff) | |
feat: expose agent session refs in api
Diffstat (limited to 'src/app')
| -rw-r--r-- | src/app/agents.rs | 1 | ||||
| -rw-r--r-- | src/app/creation.rs | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/app/agents.rs b/src/app/agents.rs index 8868fb9c..55ee15df 100644 --- a/src/app/agents.rs +++ b/src/app/agents.rs @@ -417,6 +417,7 @@ impl App { agent_status: pane.agent_status, custom_status: pane.custom_status, state_labels: pane.state_labels, + agent_session: pane.agent_session, workspace_id: pane.workspace_id, tab_id: pane.tab_id, pane_id: pane.pane_id, diff --git a/src/app/creation.rs b/src/app/creation.rs index aa727dd5..d483eb1a 100644 --- a/src/app/creation.rs +++ b/src/app/creation.rs @@ -295,6 +295,7 @@ impl App { agent_status: pane_agent_status(terminal.state, pane.seen), custom_status: presentation.custom_status, state_labels: presentation.state_labels, + agent_session: terminal_agent_session_info(terminal), revision: terminal.revision, }) } @@ -345,3 +346,28 @@ impl App { } } } + +fn terminal_agent_session_info( + terminal: &crate::terminal::TerminalState, +) -> Option<crate::api::schema::AgentSessionInfo> { + if let Some(authority) = terminal.hook_authority.as_ref() { + if let Some(session_ref) = authority.session_ref.as_ref() { + return Some(crate::api::schema::AgentSessionInfo { + source: authority.source.clone(), + agent: authority.agent_label.clone(), + kind: session_ref.kind, + value: session_ref.value.clone(), + }); + } + } + + terminal + .persisted_agent_session + .as_ref() + .map(|session| crate::api::schema::AgentSessionInfo { + source: session.source.clone(), + agent: session.agent.clone(), + kind: session.session_ref.kind, + value: session.session_ref.value.clone(), + }) +} |
