aboutsummaryrefslogtreecommitdiff
path: root/src/agent_resume.rs
diff options
context:
space:
mode:
authorudirom <uromano@fireblocks.com>2026-06-08 03:26:11 +0300
committerGitHub <noreply@github.com>2026-06-08 03:26:11 +0300
commit5fe527d1be5622e506244ee726209fa72b0c7fd3 (patch)
tree1e358807422b797313c3efa00de26b798e8a87f3 /src/agent_resume.rs
parent27a028aeae0b2ecdd747c90aa34605fd7e810ef1 (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.rs19
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]