diff options
| author | Can Celik <ogulcancelik@gmail.com> | 2026-09-13 18:36:47 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-13 17:36:47 +0200 |
| commit | fc1cb77f0572948552377b23f7754a3016ac7dfa (patch) | |
| tree | 5412b796aaaa00894fe628b2ffed8d747e6f452d /src/integration/mod.rs | |
| parent | 3be35231497f33f38aeffd84df02642479995bc6 (diff) | |
feat: add Letta Code detection and restore (#3107)
refs #3106
Co-authored-by: Cameron <cameron@pfiffer.org>
Diffstat (limited to 'src/integration/mod.rs')
| -rw-r--r-- | src/integration/mod.rs | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/integration/mod.rs b/src/integration/mod.rs index a40ad970..97163da5 100644 --- a/src/integration/mod.rs +++ b/src/integration/mod.rs @@ -10,17 +10,27 @@ mod targets; mod types; mod version; -pub(crate) use actions::{install_target, uninstall_target}; +pub(crate) use actions::{ + install_experimental_letta, install_target, uninstall_experimental_letta, uninstall_target, +}; #[cfg(test)] pub(crate) use env::integration_env_lock; pub(crate) use env::{ apply_pane_base_env, HERDR_PANE_ID_ENV_VAR, HERDR_TAB_ID_ENV_VAR, HERDR_WORKSPACE_ID_ENV_VAR, }; pub(crate) use registry::{ - installed_integration_statuses, integration_recommendations, integration_target_label, - print_outdated_update_notice, + experimental_letta_integration_status, installed_integration_statuses, + integration_recommendations, integration_target_label, print_outdated_update_notice, +}; +pub(crate) use types::{ + ExperimentalIntegrationStatus, IntegrationRecommendation, IntegrationStatus, + IntegrationStatusKind, }; -pub(crate) use types::{IntegrationRecommendation, IntegrationStatus, IntegrationStatusKind}; + +/// CLI labels for experimental integrations that are intentionally not part of +/// the frozen client endpoint `IntegrationTarget` enum. Empty this list once the +/// agent registry provides first-class target registration. +pub(crate) const EXPERIMENTAL_INTEGRATION_TARGET_LABELS: &[&str] = &["letta"]; const PI_EXTENSION_INSTALL_NAME: &str = "herdr-agent-state.ts"; const PI_EXTENSION_ASSET: &str = include_str!("assets/pi/herdr-agent-state.ts"); @@ -207,6 +217,18 @@ const QWEN_HOOK_ASSET: &str = if cfg!(windows) { }; const QWEN_INTEGRATION_VERSION: u32 = 1; const QWEN_HOOK_EVENTS: [(&str, &str); 1] = [("SessionStart", "session")]; +const LETTA_HOOK_INSTALL_NAME: &str = if cfg!(windows) { + "herdr-agent-session.ps1" +} else { + "herdr-agent-session.sh" +}; +const LETTA_HOOK_ASSET: &str = if cfg!(windows) { + include_str!("assets/letta/herdr-agent-session.ps1") +} else { + include_str!("assets/letta/herdr-agent-session.sh") +}; +const LETTA_INTEGRATION_VERSION: u32 = 1; +const LETTA_HOOK_TIMEOUT_MS: u64 = 10_000; const QODERCLI_REMOVED_LIFECYCLE_HOOK_EVENTS: [(&str, &str); 12] = [ ("SessionStart", "idle"), ("UserPromptSubmit", "working"), |
