aboutsummaryrefslogtreecommitdiff
path: root/src/integration/actions.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/integration/actions.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/integration/actions.rs')
-rw-r--r--src/integration/actions.rs49
1 files changed, 45 insertions, 4 deletions
diff --git a/src/integration/actions.rs b/src/integration/actions.rs
index ea732891..807ceeb6 100644
--- a/src/integration/actions.rs
+++ b/src/integration/actions.rs
@@ -3,10 +3,11 @@ use std::io;
use super::registry::{integration_target_label, integration_target_supported};
use super::targets::{
install_claude, install_codex, install_copilot, install_cursor, install_devin, install_droid,
- install_hermes, install_kilo, install_kimi, install_omp, install_opencode, install_pi,
- install_qodercli, uninstall_claude, uninstall_codex, uninstall_copilot, uninstall_cursor,
- uninstall_devin, uninstall_droid, uninstall_hermes, uninstall_kilo, uninstall_kimi,
- uninstall_omp, uninstall_opencode, uninstall_pi, uninstall_qodercli,
+ install_hermes, install_kilo, install_kimi, install_mastracode, install_omp, install_opencode,
+ install_pi, install_qodercli, uninstall_claude, uninstall_codex, uninstall_copilot,
+ uninstall_cursor, uninstall_devin, uninstall_droid, uninstall_hermes, uninstall_kilo,
+ uninstall_kimi, uninstall_mastracode, uninstall_omp, uninstall_opencode, uninstall_pi,
+ uninstall_qodercli,
};
use super::version::{agent_version_requirement, enforce_agent_version};
use super::{KIMI_MIN_VERSION, PI_EXTENSION_INSTALL_NAME};
@@ -190,6 +191,19 @@ fn install_target_inner(target: crate::api::schema::IntegrationTarget) -> io::Re
format!("updated cursor hooks at {}", installed.hooks_path.display()),
]
}
+ crate::api::schema::IntegrationTarget::Mastracode => {
+ let installed = install_mastracode()?;
+ vec![
+ format!(
+ "installed mastracode integration hook to {}",
+ installed.hook_path.display()
+ ),
+ format!(
+ "ensured mastracode hooks at {}",
+ installed.hooks_path.display()
+ ),
+ ]
+ }
};
if let Some(warning) = version_warning {
@@ -517,6 +531,33 @@ pub(crate) fn uninstall_target(
}
messages
}
+ crate::api::schema::IntegrationTarget::Mastracode => {
+ let result = uninstall_mastracode()?;
+ let mut messages = Vec::new();
+ if result.removed_hook_file {
+ messages.push(format!(
+ "removed mastracode hook at {}",
+ result.hook_path.display()
+ ));
+ } else {
+ messages.push(format!(
+ "no mastracode hook found at {}",
+ result.hook_path.display()
+ ));
+ }
+ if result.updated_hooks {
+ messages.push(format!(
+ "removed herdr mastracode hook entries from {}",
+ result.hooks_path.display()
+ ));
+ } else {
+ messages.push(format!(
+ "no herdr mastracode hook entries found in {}",
+ result.hooks_path.display()
+ ));
+ }
+ messages
+ }
};
crate::logging::integration_action("uninstall", integration_target_label(target), "ok");