diff options
| author | Ward Peeters <ward@coding-tech.com> | 2026-07-04 00:29:42 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-04 01:29:42 +0300 |
| commit | d0e333451bd794a419e96f28db925772950ea156 (patch) | |
| tree | 1a6e5d3bd6ac40f8ef454058f069d30202327002 /src/agent_resume.rs | |
| parent | d5521e3d250498df4af552fff83fce3d5ef33810 (diff) | |
feat: add mastracode integration (#788)
* feat: add mastracode integration
refs #337
Co-authored-by: Mastra Code (openai/gpt-5.5) <noreply@mastra.ai>
Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
Diffstat (limited to 'src/agent_resume.rs')
| -rw-r--r-- | src/agent_resume.rs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/agent_resume.rs b/src/agent_resume.rs index 5c1001cb..facb9cf1 100644 --- a/src/agent_resume.rs +++ b/src/agent_resume.rs @@ -140,6 +140,13 @@ pub fn plan(source: &str, agent: &str, session_ref: &AgentSessionRef) -> Option< ("herdr:kimi", "kimi", AgentSessionRefKind::Id) => { vec!["kimi".into(), "--session".into(), session_ref.value.clone()] } + ("herdr:mastracode", "mastracode", AgentSessionRefKind::Id) => { + vec![ + "mastracode".into(), + "--thread".into(), + session_ref.value.clone(), + ] + } ("herdr:pi", "pi", AgentSessionRefKind::Path | AgentSessionRefKind::Id) => { vec!["pi".into(), "--session".into(), session_ref.value.clone()] } @@ -206,6 +213,7 @@ fn is_official_agent_source(source: &str, agent: &str) -> bool { | ("herdr:droid", "droid") | ("herdr:kimi", "kimi") | ("herdr:omp", "omp") + | ("herdr:mastracode", "mastracode") | ("herdr:pi", "pi") | ("herdr:hermes", "hermes") | ("herdr:opencode", "opencode") @@ -316,6 +324,16 @@ mod tests { ); assert_eq!( plan( + "herdr:mastracode", + "mastracode", + &AgentSessionRef::id("mastracode-session").unwrap() + ) + .unwrap() + .argv, + vec!["mastracode", "--thread", "mastracode-session"] + ); + assert_eq!( + plan( "herdr:pi", "pi", &AgentSessionRef::path(&pi_session).unwrap() @@ -490,6 +508,16 @@ mod tests { assert_eq!(session_ref.kind, AgentSessionRefKind::Id); assert_eq!(session_ref.value, "kimi-id"); + let session_ref = session_ref_from_report( + "herdr:mastracode", + "mastracode", + Some("mastracode-id".into()), + None, + ) + .unwrap(); + assert_eq!(session_ref.kind, AgentSessionRefKind::Id); + assert_eq!(session_ref.value, "mastracode-id"); + let session_ref = session_ref_from_report("herdr:kilo", "kilo", Some("kilo-id".into()), None).unwrap(); assert_eq!(session_ref.kind, AgentSessionRefKind::Id); @@ -592,6 +620,13 @@ mod tests { ) .is_none()); assert!(session_ref_from_snapshot( + "herdr:mastracode", + "mastracode", + AgentSessionRefKind::Id, + "mastracode-session" + ) + .is_some()); + assert!(session_ref_from_snapshot( "herdr:hermes", "hermes", AgentSessionRefKind::Id, |
