From 5668ac4c22c297ccd32cf31c30b98575b734bc9a Mon Sep 17 00:00:00 2001 From: PiX <69745008+pixincreate@users.noreply.github.com> Date: Fri, 3 Jul 2026 09:17:04 +0530 Subject: [PATCH] feat: add missing supported tools --- src/tools.rs | 57 ++++++++++++++++++++++++++++++++++++++++++ tests/tools_test.rs | 60 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) diff --git a/src/tools.rs b/src/tools.rs index 86e2ac5..cdc548f 100644 --- a/src/tools.rs +++ b/src/tools.rs @@ -4,6 +4,7 @@ use std::sync::LazyLock; static ALL_TOOLS_VEC: LazyLock> = LazyLock::new(|| { vec![ Tool::new("adal", ".adal", ".adal/skills", None), + Tool::new("aider-desk", ".aider-desk", ".aider-desk/skills", None), Tool::new("amp", ".config/agents", ".config/agents/skills", None), Tool::new( "antigravity", @@ -11,26 +12,68 @@ static ALL_TOOLS_VEC: LazyLock> = LazyLock::new(|| { ".gemini/antigravity/skills", None, ), + Tool::new( + "antigravity-cli", + ".gemini/antigravity-cli", + ".gemini/antigravity-cli/skills", + None, + ), + Tool::new( + "antigravity-ide", + ".gemini/antigravity-ide", + ".gemini/antigravity-ide/skills", + None, + ), + Tool::new("astrbot", ".astrbot", ".astrbot/data/skills", None), + Tool::new("autohand-code", ".autohand", ".autohand/skills", None), Tool::new("augment", ".augment", ".augment/skills", None), + Tool::new("bob", ".bob", ".bob/skills", None), Tool::new( "claude", ".claude", ".claude/skills", Some(".claude/commands"), ), + Tool::new( + "claude-code", + ".claude", + ".claude/skills", + Some(".claude/commands"), + ), Tool::new("cline", ".cline", ".cline/skills", None), + Tool::new( + "codearts-agent", + ".codeartsdoer", + ".codeartsdoer/skills", + None, + ), Tool::new("codebuddy", ".codebuddy", ".codebuddy/skills", None), + Tool::new("codemaker", ".codemaker", ".codemaker/skills", None), + Tool::new("codestudio", ".codestudio", ".codestudio/skills", None), Tool::new("codex", ".codex", ".codex/skills", Some(".codex/commands")), Tool::new("command-code", ".commandcode", ".commandcode/skills", None), Tool::new("continue", ".continue", ".continue/skills", None), Tool::new("cortex", ".snowflake/cortex", ".cortex/skills", None), Tool::new("crush", ".config/crush", ".config/crush/skills", None), Tool::new("cursor", ".cursor", ".cursor/skills", None), + Tool::new( + "deepagents", + ".deepagents", + ".deepagents/agent/skills", + None, + ), + Tool::new("devin", ".config/devin", ".config/devin/skills", None), + Tool::new("dexto", ".dexto", ".agents/skills", None), Tool::new("droid", ".factory", ".factory/skills", None), + Tool::new("firebender", ".firebender", ".firebender/skills", None), + Tool::new("forgecode", ".forge", ".forge/skills", None), Tool::new("gemini-cli", ".gemini", ".gemini/skills", None), Tool::new("github-copilot", ".copilot", ".copilot/skills", None), Tool::new("goose", ".config/goose", ".config/goose/skills", None), + Tool::new("hermes-agent", ".hermes", ".hermes/skills", None), Tool::new("iflow-cli", ".iflow", ".iflow/skills", None), + Tool::new("inference-sh", ".inferencesh", ".inferencesh/skills", None), + Tool::new("jazz", ".jazz", ".jazz/skills", None), Tool::new("junie", ".junie", ".junie/skills", None), Tool::new( "kilo", @@ -39,13 +82,18 @@ static ALL_TOOLS_VEC: LazyLock> = LazyLock::new(|| { Some(".kilocode/commands"), ), Tool::new("kimi-cli", ".config/agents", ".config/agents/skills", None), + Tool::new("kimi-code-cli", ".kimi-code", ".agents/skills", None), Tool::new("kiro-cli", ".kiro", ".kiro/skills", None), Tool::new("kode", ".kode", ".kode/skills", None), + Tool::new("lingma", ".lingma", ".lingma/skills", None), + Tool::new("loaf", ".loaf", ".agents/skills", None), Tool::new("mcpjam", ".mcpjam", ".mcpjam/skills", None), Tool::new("mistral-vibe", ".vibe", ".vibe/skills", None), Tool::new("moltbot", ".moltbot", ".moltbot/skills", None), + Tool::new("moxby", ".moxby", ".moxby/skills", None), Tool::new("mux", ".mux", ".mux/skills", None), Tool::new("neovate", ".neovate", ".neovate/skills", None), + Tool::new("ona", ".ona", ".ona/skills", None), Tool::new( "opencode", ".config/opencode", @@ -57,18 +105,27 @@ static ALL_TOOLS_VEC: LazyLock> = LazyLock::new(|| { Tool::new("pi", ".pi/agent", ".pi/agent/skills", None), Tool::new("pochi", ".pochi", ".pochi/skills", None), Tool::new("qoder", ".qoder", ".qoder/skills", None), + Tool::new("qoder-cn", ".qoder-cn", ".qoder-cn/skills", None), Tool::new("qwen-code", ".qwen", ".qwen/skills", None), + Tool::new("reasonix", ".reasonix", ".reasonix/skills", None), Tool::new("replit", ".config/agents", ".config/agents/skills", None), + Tool::new("rovodev", ".rovodev", ".rovodev/skills", None), Tool::new("roo", ".roo", ".roo/skills", None), + Tool::new("tabnine-cli", ".tabnine", ".tabnine/agent/skills", None), + Tool::new("terramind", ".terramind", ".terramind/skills", None), + Tool::new("tinycloud", ".tinycloud", ".tinycloud/skills", None), Tool::new("trae", ".trae", ".trae/skills", None), Tool::new("trae-cn", ".trae-cn", ".trae-cn/skills", None), + Tool::new("warp", ".warp", ".agents/skills", None), Tool::new( "windsurf", ".codeium/windsurf", ".codeium/windsurf/skills", None, ), + Tool::new("zed", ".config/zed", ".agents/skills", None), Tool::new("zencoder", ".zencoder", ".zencoder/skills", None), + Tool::new("zenflow", ".zencoder", ".zencoder/skills", None), ] }); diff --git a/tests/tools_test.rs b/tests/tools_test.rs index 1d4109f..9f3d8d9 100644 --- a/tests/tools_test.rs +++ b/tests/tools_test.rs @@ -78,6 +78,49 @@ fn test_common_tools_exist() { assert!(names.contains(&"neovate")); } +#[test] +fn test_external_supported_tools_exist() { + let tools = all_tools(); + let names: Vec<_> = tools.iter().map(|t| t.name).collect(); + + for name in [ + "aider-desk", + "antigravity-cli", + "antigravity-ide", + "astrbot", + "autohand-code", + "bob", + "claude-code", + "codearts-agent", + "codemaker", + "codestudio", + "deepagents", + "devin", + "dexto", + "firebender", + "forgecode", + "hermes-agent", + "inference-sh", + "jazz", + "kimi-code-cli", + "lingma", + "loaf", + "moxby", + "ona", + "qoder-cn", + "reasonix", + "rovodev", + "tabnine-cli", + "terramind", + "tinycloud", + "warp", + "zed", + "zenflow", + ] { + assert!(names.contains(&name), "missing tool: {name}"); + } +} + #[test] fn test_supported_list_paths_match_registry() { let amp = get_tool("amp").unwrap(); @@ -119,4 +162,21 @@ fn test_supported_list_paths_match_registry() { let windsurf = get_tool("windsurf").unwrap(); assert!(windsurf.config_path.ends_with(".codeium/windsurf")); assert!(windsurf.skills_path.ends_with(".codeium/windsurf/skills")); + + let claude_code = get_tool("claude-code").unwrap(); + assert!(claude_code.config_path.ends_with(".claude")); + assert!(claude_code.skills_path.ends_with(".claude/skills")); + assert!(claude_code.commands_path.is_some()); + + let devin = get_tool("devin").unwrap(); + assert!(devin.config_path.ends_with(".config/devin")); + assert!(devin.skills_path.ends_with(".config/devin/skills")); + + let tabnine_cli = get_tool("tabnine-cli").unwrap(); + assert!(tabnine_cli.config_path.ends_with(".tabnine")); + assert!(tabnine_cli.skills_path.ends_with(".tabnine/agent/skills")); + + let zed = get_tool("zed").unwrap(); + assert!(zed.config_path.ends_with(".config/zed")); + assert!(zed.skills_path.ends_with(".agents/skills")); }