diff options
| author | udirom <uromano@fireblocks.com> | 2026-06-08 03:26:11 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-06-08 03:26:11 +0300 |
| commit | 5fe527d1be5622e506244ee726209fa72b0c7fd3 (patch) | |
| tree | 1e358807422b797313c3efa00de26b798e8a87f3 /src/agent_resume.rs | |
| parent | 27a028aeae0b2ecdd747c90aa34605fd7e810ef1 (diff) | |
feat: add cursor agent cli integration for session restore (#506)
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/agent_resume.rs')
| -rw-r--r-- | src/agent_resume.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/agent_resume.rs b/src/agent_resume.rs index 5c852dfa..d166aed2 100644 --- a/src/agent_resume.rs +++ b/src/agent_resume.rs @@ -74,6 +74,7 @@ pub fn is_reserved_native_state_source(source: &str, agent: &str) -> bool { (source, agent), ("herdr:claude", "claude") | ("herdr:codex", "codex") + | ("herdr:cursor", "cursor") | ("herdr:droid", "droid") | ("herdr:opencode", "opencode") ) @@ -139,6 +140,13 @@ pub fn plan(source: &str, agent: &str, session_ref: &AgentSessionRef) -> Option< session_ref.value.clone(), ] } + ("herdr:cursor", "cursor", AgentSessionRefKind::Id) => { + vec![ + "cursor-agent".into(), + "--resume".into(), + session_ref.value.clone(), + ] + } _ => return None, }; @@ -166,6 +174,7 @@ fn is_official_agent_source(source: &str, agent: &str) -> bool { | ("herdr:pi", "pi") | ("herdr:hermes", "hermes") | ("herdr:opencode", "opencode") + | ("herdr:cursor", "cursor") ) } @@ -265,6 +274,16 @@ mod tests { .argv, vec!["opencode", "--session", "opencode-session"] ); + assert_eq!( + plan( + "herdr:cursor", + "cursor", + &AgentSessionRef::id("cursor-session").unwrap() + ) + .unwrap() + .argv, + vec!["cursor-agent", "--resume", "cursor-session"] + ); } #[test] |
