mirror of
https://github.com/msitarzewski/agency-agents.git
synced 2026-07-14 03:55:17 +03:00
Add Mistral Vibe support for Agency agents (#658)
* Add Mistral Vibe support for Agency agents - Add Mistral Vibe entry to tools.json with proper configuration (id, label, kebab, format, installKind, dest, detection, version) - Implement convert_vibe() function in convert.sh for Mistral Vibe's format - Generates TOML agent configuration files (~/.vibe/agents/<slug>.toml) - Generates markdown prompt files (~/.vibe/prompts/<slug>.md) - Each agent gets agent_type and system_prompt_id (no hardcoded active_model) - Add install_vibe() function in install.sh with full feature support - Copies both agent TOML and prompt MD files - Supports division/agent filtering and environment variable overrides - Uses VIBE_HOME environment variable for custom install paths - Add Mistral Vibe detection and tool labeling - Add Mistral Vibe to all necessary case statements and arrays - Update README.md to document Mistral Vibe support - All changes validated with scripts/check-tools.sh Mistral Vibe uses a two-file approach per agent: - ~/.vibe/agents/<slug>.toml for agent configuration - ~/.vibe/prompts/<slug>.md for system prompts Users can specify active_model in their agent TOML files or rely on their Vibe configuration default model. Usage: ./scripts/install.sh --tool vibe [--division X] [--agent Y] Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> * Address PR #658 review feedback: add .gitignore, README, and fix icon - Add integrations/vibe/README.md documenting the Mistral Vibe integration - Update .gitignore to ignore integrations/vibe/agents/ and prompts/ - Update convert.sh usage() to include vibe in the tool list - Fix tools.json: change vibe icon from 'mistral' to null (no mistral.svg) - Bonus: update vibe accent color from #FF69B4 to #FA520F (Mistral brand orange) Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai> --------- Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
committed by
GitHub
parent
ac0fb2e563
commit
90ae2b27d1
+42
-3
@@ -25,6 +25,7 @@
|
||||
# codex -- Copy custom agent TOML files to ~/.codex/agents/
|
||||
# osaurus -- Copy skills to ~/.osaurus/skills/
|
||||
# hermes -- Copy lazy-router plugin to ~/.hermes/plugins/ and enable it
|
||||
# vibe -- Copy agents and prompts to ~/.vibe/agents/ and ~/.vibe/prompts/
|
||||
# all -- Install for all detected tools (default)
|
||||
#
|
||||
# Selection (compose freely; empty = everything):
|
||||
@@ -49,7 +50,7 @@
|
||||
#
|
||||
# Env: CLAUDE_CONFIG_DIR, COPILOT_AGENT_DIR, CURSOR_RULES_DIR, GEMINI_AGENTS_DIR,
|
||||
# OPENCODE_AGENTS_DIR, OPENCLAW_DIR, QWEN_AGENTS_DIR, CODEX_AGENTS_DIR,
|
||||
# OSAURUS_SKILLS_DIR, HERMES_HOME, HERMES_PLUGIN_DIR
|
||||
# OSAURUS_SKILLS_DIR, HERMES_HOME, HERMES_PLUGIN_DIR, VIBE_HOME
|
||||
# override default install paths (checked before hardcoded defaults).
|
||||
#
|
||||
# --- USAGE-END --- (sentinel for usage(); do not remove)
|
||||
@@ -128,7 +129,7 @@ INTEGRATIONS="$REPO_ROOT/integrations"
|
||||
# shellcheck source=lib.sh
|
||||
. "$SCRIPT_DIR/lib.sh"
|
||||
|
||||
ALL_TOOLS=(claude-code copilot antigravity gemini-cli opencode openclaw cursor aider windsurf qwen kimi codex osaurus hermes)
|
||||
ALL_TOOLS=(claude-code copilot antigravity gemini-cli opencode openclaw cursor aider windsurf qwen kimi codex osaurus hermes vibe)
|
||||
|
||||
# Directories scanned for installable agents. Intentionally includes strategy/
|
||||
# (its frontmatter-less NEXUS docs are filtered out by is_agent_file at scan time);
|
||||
@@ -264,6 +265,7 @@ resolve_dest() {
|
||||
codex) var="CODEX_AGENTS_DIR" ;;
|
||||
osaurus) var="OSAURUS_SKILLS_DIR" ;;
|
||||
hermes) var="HERMES_PLUGIN_DIR" ;;
|
||||
vibe) var="VIBE_HOME" ;;
|
||||
esac
|
||||
if [[ -n "$var" && -n "${!var:-}" ]]; then printf '%s' "${!var}"; else printf '%s' "$def"; fi
|
||||
}
|
||||
@@ -276,7 +278,7 @@ resolve_tool_path() {
|
||||
opencode) bin="opencode" ;; openclaw) bin="openclaw" ;; cursor) bin="cursor" ;;
|
||||
aider) bin="aider" ;; windsurf) bin="windsurf" ;; qwen) bin="qwen" ;;
|
||||
kimi) bin="kimi" ;; codex) bin="codex" ;; antigravity) bin="" ;;
|
||||
osaurus) bin="osaurus" ;; hermes) bin="hermes" ;;
|
||||
osaurus) bin="osaurus" ;; hermes) bin="hermes" ;; vibe) bin="vibe" ;;
|
||||
esac
|
||||
[[ -n "$bin" ]] && command -v "$bin" 2>/dev/null
|
||||
}
|
||||
@@ -375,6 +377,7 @@ detect_kimi() { command -v kimi >/dev/null 2>&1; }
|
||||
detect_codex() { command -v codex >/dev/null 2>&1 || [[ -d "${HOME}/.codex" ]]; }
|
||||
detect_osaurus() { command -v osaurus >/dev/null 2>&1 || [[ -d "${HOME}/.osaurus" ]]; }
|
||||
detect_hermes() { command -v hermes >/dev/null 2>&1 || [[ -d "${HERMES_HOME:-${HOME}/.hermes}" ]]; }
|
||||
detect_vibe() { command -v vibe >/dev/null 2>&1 || [[ -d "${VIBE_HOME:-${HOME}/.vibe}" ]]; }
|
||||
|
||||
is_detected() {
|
||||
case "$1" in
|
||||
@@ -392,6 +395,7 @@ is_detected() {
|
||||
codex) detect_codex ;;
|
||||
osaurus) detect_osaurus ;;
|
||||
hermes) detect_hermes ;;
|
||||
vibe) detect_vibe ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
@@ -413,6 +417,7 @@ tool_label() {
|
||||
codex) printf "%-14s %s" "Codex" "(~/.codex/agents)" ;;
|
||||
osaurus) printf "%-14s %s" "Osaurus" "(~/.osaurus/skills)" ;;
|
||||
hermes) printf "%-14s %s" "Hermes" "(~/.hermes/plugins)" ;;
|
||||
vibe) printf "%-14s %s" "Mistral Vibe" "(~/.vibe/agents)" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -930,6 +935,39 @@ install_codex() {
|
||||
ok "Codex: $count agents -> $dest"
|
||||
}
|
||||
|
||||
install_vibe() {
|
||||
local src_agents="$INTEGRATIONS/vibe/agents"
|
||||
local src_prompts="$INTEGRATIONS/vibe/prompts"
|
||||
local dest; dest="$(resolve_dest vibe "${HOME}/.vibe")"
|
||||
local count=0
|
||||
|
||||
[[ -d "$src_agents" && -d "$src_prompts" ]] || { err "integrations/vibe missing. Run convert.sh first."; return 1; }
|
||||
|
||||
mkdir -p "$dest/agents" "$dest/prompts"
|
||||
|
||||
local agent_file prompt_file slug
|
||||
|
||||
while IFS= read -r -d '' agent_file; do
|
||||
slug="$(basename "$agent_file" .toml)"
|
||||
slug_allowed "$slug" || continue
|
||||
|
||||
# Find the corresponding prompt file
|
||||
prompt_file="$src_prompts/$slug.md"
|
||||
|
||||
[[ -f "$prompt_file" ]] || continue
|
||||
|
||||
install_file "$agent_file" "$dest/agents/"
|
||||
install_file "$prompt_file" "$dest/prompts/"
|
||||
incr count
|
||||
done < <(find "$src_agents" -maxdepth 1 -name "*.toml" -print0)
|
||||
|
||||
ok "Mistral Vibe: $count agents -> $dest/agents/ and $dest/prompts/"
|
||||
}
|
||||
|
||||
vibe_home_dir() {
|
||||
printf '%s\n' "${VIBE_HOME:-${HOME}/.vibe}"
|
||||
}
|
||||
|
||||
hermes_home_dir() {
|
||||
printf '%s\n' "${HERMES_HOME:-${HOME}/.hermes}"
|
||||
}
|
||||
@@ -1074,6 +1112,7 @@ install_tool() {
|
||||
codex) install_codex ;;
|
||||
osaurus) install_osaurus ;;
|
||||
hermes) install_hermes ;;
|
||||
vibe) install_vibe ;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user