aboutsummaryrefslogtreecommitdiff
path: root/src/integration/mod.rs
diff options
context:
space:
mode:
authorCan Celik <ogulcancelik@gmail.com>2026-09-13 18:36:47 +0300
committerGitHub <noreply@github.com>2026-09-13 17:36:47 +0200
commitfc1cb77f0572948552377b23f7754a3016ac7dfa (patch)
tree5412b796aaaa00894fe628b2ffed8d747e6f452d /src/integration/mod.rs
parent3be35231497f33f38aeffd84df02642479995bc6 (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.rs30
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"),