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/integration/actions.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/integration/actions.rs')
| -rw-r--r-- | src/integration/actions.rs | 49 |
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"); |
