diff --git a/interactive-install-claude.sh b/interactive-install-claude.sh index 842dc19..2e9b17f 100755 --- a/interactive-install-claude.sh +++ b/interactive-install-claude.sh @@ -594,6 +594,49 @@ create_directories() { log_success "Directories created" } +fetch_latest_agents() { + log_info "Checking for agent updates from GitHub..." + + local GITHUB_REPO="https://github.com/contains-studio/agents" + local TEMP_AGENT_DIR="/tmp/claude-agents-latest-$RANDOM" + local UPDATE_FOUND=false + + # Create temp directory + mkdir -p "$TEMP_AGENT_DIR" + + # Try to clone using git + if command -v git &> /dev/null; then + if git clone --depth 1 --quiet "$GITHUB_REPO" "$TEMP_AGENT_DIR" 2>/dev/null; then + UPDATE_FOUND=true + log_success "Fetched latest agents from GitHub" + + # Copy updated agents to source directory + for category in engineering marketing product studio-operations project-management testing design bonus; do + if [ -d "$TEMP_AGENT_DIR/$category" ]; then + mkdir -p "$SCRIPT_DIR/agents/$category" + cp -f "$TEMP_AGENT_DIR/$category"/*.md "$SCRIPT_DIR/agents/$category/" 2>/dev/null || true + fi + done + + # Update README if present + if [ -f "$TEMP_AGENT_DIR/README.md" ]; then + cp -f "$TEMP_AGENT_DIR/README.md" "$SCRIPT_DIR/agents/README.md" 2>/dev/null || true + fi + + log_info "Local agents updated from GitHub" + else + log_warning "Failed to fetch from GitHub (using local agents)" + fi + else + log_warning "Git not found (using local agents)" + fi + + # Cleanup + rm -rf "$TEMP_AGENT_DIR" + + return 0 +} + install_agents() { if [ $SELECTED_AGENTS -eq 0 ]; then return @@ -1055,6 +1098,7 @@ perform_installation() { echo "" create_directories + fetch_latest_agents install_agents install_settings install_local_settings diff --git a/sync-agents.sh b/sync-agents.sh index 019d552..6fded32 100755 --- a/sync-agents.sh +++ b/sync-agents.sh @@ -137,6 +137,25 @@ sync_agents() { # Summary local total_changes=$((${#new_agents[@]} + ${#updated_agents[@]})) log "INFO" "Sync complete: ${#new_agents[@]} new, ${#updated_agents[@]} updated, ${#custom_agents[@]} preserved" + + # If REPO_AGENTS_DIR is set, also update repository agents + if [[ -n "${REPO_AGENTS_DIR:-}" && -d "$REPO_AGENTS_DIR" ]]; then + print_msg "$BLUE" "📦 Updating repository agents directory..." + + for category in engineering marketing product studio-operations project-management testing design bonus; do + if [ -d "$AGENTS_DIR/$category" ]; then + mkdir -p "$REPO_AGENTS_DIR/$category" + cp -f "$AGENTS_DIR/$category"/*.md "$REPO_AGENTS_DIR/$category/" 2>/dev/null || true + fi + done + + if [ -f "$AGENTS_DIR/README.md" ]; then + cp -f "$AGENTS_DIR/README.md" "$REPO_AGENTS_DIR/README.md" 2>/dev/null || true + fi + + print_msg "$GREEN" "✓ Repository agents updated" + log "INFO" "Repository agents updated at $REPO_AGENTS_DIR" + fi } # Commit to git