89 lines
2.4 KiB
Bash
Executable File
89 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Validate that all agent references in commands exist
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PLUGIN_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
|
|
if [ $# -eq 0 ]; then
|
|
echo "Usage: $0 <plugin-path>"
|
|
echo "Example: $0 plugins/domain-plugin-builder"
|
|
exit 1
|
|
fi
|
|
|
|
PLUGIN_PATH="$1"
|
|
|
|
if [ ! -d "$PLUGIN_PATH" ]; then
|
|
echo "❌ Error: Plugin directory not found: $PLUGIN_PATH"
|
|
exit 1
|
|
fi
|
|
|
|
echo "🔍 Validating agent references in: $PLUGIN_PATH"
|
|
echo ""
|
|
|
|
# Extract all agent references from commands
|
|
AGENT_REFS=$(grep -rh 'subagent_type="[^"]*"' "$PLUGIN_PATH/commands/" 2>/dev/null | \
|
|
grep -o 'subagent_type="[^"]*"' | \
|
|
sed 's/subagent_type="//; s/"$//' | \
|
|
sed 's/.*://' | \
|
|
sort -u)
|
|
|
|
if [ -z "$AGENT_REFS" ]; then
|
|
echo "✅ No agent references found in commands"
|
|
exit 0
|
|
fi
|
|
|
|
TOTAL=0
|
|
VALID=0
|
|
INVALID=0
|
|
MISSING_AGENTS=()
|
|
|
|
echo "📋 Checking agent references..."
|
|
echo ""
|
|
|
|
for agent in $AGENT_REFS; do
|
|
TOTAL=$((TOTAL + 1))
|
|
AGENT_FILE="$PLUGIN_PATH/agents/${agent}.md"
|
|
|
|
if [ -f "$AGENT_FILE" ]; then
|
|
echo " ✅ $agent"
|
|
VALID=$((VALID + 1))
|
|
else
|
|
echo " ❌ $agent (MISSING: $AGENT_FILE)"
|
|
INVALID=$((INVALID + 1))
|
|
MISSING_AGENTS+=("$agent")
|
|
fi
|
|
done
|
|
|
|
echo ""
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "📊 Summary:"
|
|
echo " Total agent references: $TOTAL"
|
|
echo " Valid: $VALID"
|
|
echo " Invalid: $INVALID"
|
|
echo ""
|
|
|
|
if [ $INVALID -gt 0 ]; then
|
|
echo "❌ VALIDATION FAILED"
|
|
echo ""
|
|
echo "Commands reference non-existent agents:"
|
|
for agent in "${MISSING_AGENTS[@]}"; do
|
|
echo " - $agent (referenced in commands but agents/$agent.md doesn't exist)"
|
|
done
|
|
echo ""
|
|
echo "🔧 FIX THIS BY:"
|
|
echo " 1. Check which commands reference these agents:"
|
|
echo " grep -r 'subagent_type=\".*:$agent\"' $PLUGIN_PATH/commands/"
|
|
echo ""
|
|
echo " 2. Update commands to use ACTUAL agent names from agents/ directory:"
|
|
echo " ls $PLUGIN_PATH/agents/"
|
|
echo ""
|
|
echo " 3. Fix the subagent_type in commands to match real agent filenames"
|
|
echo ""
|
|
echo "❌ DO NOT create new agents to match wrong command references!"
|
|
echo "✅ FIX the commands to use correct existing agent names!"
|
|
exit 1
|
|
else
|
|
echo "✅ ALL AGENT REFERENCES VALID"
|
|
exit 0
|
|
fi
|