mirror of
https://github.com/msitarzewski/agency-agents.git
synced 2026-07-06 16:28:56 +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
+39
-3
@@ -22,6 +22,7 @@
|
||||
# codex — Codex custom agent TOML files (~/.codex/agents/*.toml)
|
||||
# osaurus — Osaurus skill files (~/.osaurus/skills/<name>/SKILL.md)
|
||||
# hermes — Hermes lazy-router plugin (one plugin + on-disk agent index)
|
||||
# vibe — Mistral Vibe agent TOML + prompt files (~/.vibe/agents/*.toml + ~/.vibe/prompts/*.md)
|
||||
# all — All tools (default)
|
||||
#
|
||||
# Output is written to integrations/<tool>/ relative to the repo root.
|
||||
@@ -457,6 +458,40 @@ ${body}
|
||||
HEREDOC
|
||||
}
|
||||
|
||||
convert_vibe() {
|
||||
local file="$1"
|
||||
local name description slug outdir agent_file prompt_file body
|
||||
|
||||
name="$(get_field "name" "$file")"
|
||||
description="$(get_field "description" "$file")"
|
||||
slug="$(slugify "$name")"
|
||||
body="$(get_body "$file")"
|
||||
|
||||
# Mistral Vibe uses two files per agent:
|
||||
# 1. A TOML configuration file in ~/.vibe/agents/<slug>.toml
|
||||
# 2. A markdown prompt file in ~/.vibe/prompts/<slug>.md
|
||||
|
||||
outdir="$OUT_DIR/vibe"
|
||||
agent_file="$outdir/agents/${slug}.toml"
|
||||
prompt_file="$outdir/prompts/${slug}.md"
|
||||
mkdir -p "$outdir/agents" "$outdir/prompts"
|
||||
|
||||
# Write the TOML agent configuration
|
||||
cat > "$agent_file" <<HEREDOC
|
||||
agent_type = "agent"
|
||||
system_prompt_id = "${slug}"
|
||||
HEREDOC
|
||||
|
||||
# Write the markdown prompt file
|
||||
cat > "$prompt_file" <<HEREDOC
|
||||
# ${name}
|
||||
|
||||
${description}
|
||||
|
||||
${body}
|
||||
HEREDOC
|
||||
}
|
||||
|
||||
# Aider and Windsurf are single-file formats — accumulate into temp files
|
||||
# then write at the end.
|
||||
AIDER_TMP="$(mktemp)"
|
||||
@@ -575,6 +610,7 @@ run_conversions() {
|
||||
qwen) convert_qwen "$file" ;;
|
||||
kimi) convert_kimi "$file" ;;
|
||||
osaurus) convert_osaurus "$file" ;;
|
||||
vibe) convert_vibe "$file" ;;
|
||||
aider) accumulate_aider "$file" ;;
|
||||
windsurf) accumulate_windsurf "$file" ;;
|
||||
esac
|
||||
@@ -605,7 +641,7 @@ main() {
|
||||
esac
|
||||
done
|
||||
|
||||
local valid_tools=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi" "codex" "osaurus" "hermes" "all")
|
||||
local valid_tools=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi" "codex" "osaurus" "hermes" "vibe" "all")
|
||||
local valid=false
|
||||
for t in "${valid_tools[@]}"; do [[ "$t" == "$tool" ]] && valid=true && break; done
|
||||
if ! $valid; then
|
||||
@@ -624,7 +660,7 @@ main() {
|
||||
|
||||
local tools_to_run=()
|
||||
if [[ "$tool" == "all" ]]; then
|
||||
tools_to_run=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi" "codex" "osaurus" "hermes")
|
||||
tools_to_run=("antigravity" "gemini-cli" "opencode" "cursor" "aider" "windsurf" "openclaw" "qwen" "kimi" "codex" "osaurus" "hermes" "vibe")
|
||||
else
|
||||
tools_to_run=("$tool")
|
||||
fi
|
||||
@@ -635,7 +671,7 @@ main() {
|
||||
|
||||
if $use_parallel && [[ "$tool" == "all" ]]; then
|
||||
# Tools that write to separate dirs can run in parallel; buffer output so each tool's output stays together
|
||||
local parallel_tools=(antigravity gemini-cli opencode cursor openclaw qwen codex osaurus hermes)
|
||||
local parallel_tools=(antigravity gemini-cli opencode cursor openclaw qwen codex osaurus hermes vibe)
|
||||
local parallel_out_dir
|
||||
parallel_out_dir="$(mktemp -d)"
|
||||
info "Converting: ${#parallel_tools[@]}/${n_tools} tools in parallel (output buffered per tool)..."
|
||||
|
||||
Reference in New Issue
Block a user