From 63ea2314b2b90c42f2bf5707d00de7a8ab622a10 Mon Sep 17 00:00:00 2001 From: JJ Liebig Date: Sun, 13 Sep 2026 18:41:51 +0400 Subject: fix: detect kimi npm shim on windows (#4053) refs #3317 --- src/detect/mod.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src') diff --git a/src/detect/mod.rs b/src/detect/mod.rs index 0248d5ce..7326ec32 100644 --- a/src/detect/mod.rs +++ b/src/detect/mod.rs @@ -634,6 +634,15 @@ fn agent_name_from_known_package_path(path: &str) -> Option { ]) { return Some(agent_label(Agent::Pi).to_string()); } + if ends_with(&[ + "node_modules", + "@moonshot-ai", + "kimi-code", + "dist", + "main.mjs", + ]) { + return Some(agent_label(Agent::Kimi).to_string()); + } let components: Vec = raw_components .into_iter() @@ -1303,6 +1312,26 @@ mod tests { ); } + #[test] + fn identify_agent_in_job_detects_node_wrapped_kimi_package_cli() { + let job = crate::platform::ForegroundJob { + process_group_id: 123, + processes: vec![foreground_process( + 123, + "node.exe", + &[ + r"C:\Program Files\nodejs\node.exe", + r"C:\repro-3317-kimi-prefix\node_modules\@moonshot-ai\kimi-code\dist\main.mjs", + ], + )], + }; + + assert_eq!( + identify_agent_in_job(&job), + Some((Agent::Kimi, "kimi".to_string())) + ); + } + #[test] fn identify_agent_in_job_ignores_non_cli_pi_package_scripts() { for script in [ -- cgit v1.2.3