diff options
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"), |
