aboutsummaryrefslogtreecommitdiff
path: root/src/agent_resume.rs
diff options
context:
space:
mode:
authorWard Peeters <ward@coding-tech.com>2026-07-04 00:29:42 +0200
committerGitHub <noreply@github.com>2026-07-04 01:29:42 +0300
commitd0e333451bd794a419e96f28db925772950ea156 (patch)
tree1a6e5d3bd6ac40f8ef454058f069d30202327002 /src/agent_resume.rs
parentd5521e3d250498df4af552fff83fce3d5ef33810 (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.rs35
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,