aidevops 2.59.0 → 2.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +22 -2
  2. package/VERSION +1 -1
  3. package/package.json +1 -1
  4. package/setup.sh +104 -0
package/README.md CHANGED
@@ -445,13 +445,33 @@ See `.agent/aidevops/architecture.md` for detailed implementation notes and refe
445
445
 
446
446
  ```bash
447
447
  # Install dependencies (auto-detected by setup.sh)
448
- brew install sshpass jq curl mkcert dnsmasq # macOS
449
- sudo apt-get install sshpass jq curl dnsmasq # Ubuntu/Debian
448
+ brew install sshpass jq curl mkcert dnsmasq fd ripgrep # macOS
449
+ sudo apt-get install sshpass jq curl dnsmasq fd-find ripgrep # Ubuntu/Debian
450
450
 
451
451
  # Generate SSH key
452
452
  ssh-keygen -t ed25519 -C "your-email@domain.com"
453
453
  ```
454
454
 
455
+ ### **File Discovery Tools**
456
+
457
+ AI agents use fast file discovery tools for efficient codebase navigation:
458
+
459
+ | Tool | Purpose | Speed |
460
+ |------|---------|-------|
461
+ | `fd` | Fast file finder (replaces `find`) | ~10x faster |
462
+ | `ripgrep` | Fast content search (replaces `grep`) | ~10x faster |
463
+
464
+ Both tools respect `.gitignore` by default and are written in Rust for maximum performance.
465
+
466
+ **Preference order for file discovery:**
467
+
468
+ 1. `git ls-files '*.md'` - Instant, git-tracked files only
469
+ 2. `fd -e md` - Fast, respects .gitignore
470
+ 3. `rg --files -g '*.md'` - Fast, respects .gitignore
471
+ 4. Built-in glob tools - Fallback when bash unavailable
472
+
473
+ The setup script offers to install these tools automatically.
474
+
455
475
  ## **Comprehensive Service Coverage**
456
476
 
457
477
  ### **Infrastructure & Hosting**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.59.0
1
+ 2.60.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.59.0",
3
+ "version": "2.60.0",
4
4
  "description": "AI DevOps Framework - AI-assisted development workflows, code quality, and deployment automation",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/setup.sh CHANGED
@@ -562,6 +562,109 @@ setup_git_clis() {
562
562
  return 0
563
563
  }
564
564
 
565
+ # Setup file discovery tools (fd, ripgrep) for efficient file searching
566
+ setup_file_discovery_tools() {
567
+ print_info "Setting up file discovery tools..."
568
+
569
+ local missing_tools=()
570
+ local missing_packages=()
571
+ local missing_names=()
572
+
573
+ # Check for fd (fd-find)
574
+ if ! command -v fd >/dev/null 2>&1; then
575
+ missing_tools+=("fd")
576
+ missing_packages+=("fd")
577
+ missing_names+=("fd (fast file finder)")
578
+ else
579
+ local fd_version
580
+ fd_version=$(fd --version 2>/dev/null | head -1 || echo "unknown")
581
+ print_success "fd found: $fd_version"
582
+ fi
583
+
584
+ # Check for ripgrep
585
+ if ! command -v rg >/dev/null 2>&1; then
586
+ missing_tools+=("rg")
587
+ missing_packages+=("ripgrep")
588
+ missing_names+=("ripgrep (fast content search)")
589
+ else
590
+ local rg_version
591
+ rg_version=$(rg --version 2>/dev/null | head -1 || echo "unknown")
592
+ print_success "ripgrep found: $rg_version"
593
+ fi
594
+
595
+ # Offer to install missing tools
596
+ if [[ ${#missing_tools[@]} -gt 0 ]]; then
597
+ print_warning "Missing file discovery tools: ${missing_names[*]}"
598
+ echo ""
599
+ echo " These tools provide 10x faster file discovery than built-in glob:"
600
+ echo " fd - Fast alternative to 'find', respects .gitignore"
601
+ echo " ripgrep - Fast alternative to 'grep', respects .gitignore"
602
+ echo ""
603
+ echo " AI agents use these for efficient codebase navigation."
604
+ echo ""
605
+
606
+ local pkg_manager
607
+ pkg_manager=$(detect_package_manager)
608
+
609
+ if [[ "$pkg_manager" != "unknown" ]]; then
610
+ read -r -p "Install file discovery tools (${missing_packages[*]}) using $pkg_manager? (y/n): " install_fd_tools
611
+
612
+ if [[ "$install_fd_tools" == "y" ]]; then
613
+ print_info "Installing ${missing_packages[*]}..."
614
+
615
+ # Handle package name differences across package managers
616
+ local actual_packages=()
617
+ for pkg in "${missing_packages[@]}"; do
618
+ case "$pkg_manager" in
619
+ apt)
620
+ # Debian/Ubuntu uses fd-find instead of fd
621
+ if [[ "$pkg" == "fd" ]]; then
622
+ actual_packages+=("fd-find")
623
+ else
624
+ actual_packages+=("$pkg")
625
+ fi
626
+ ;;
627
+ *)
628
+ actual_packages+=("$pkg")
629
+ ;;
630
+ esac
631
+ done
632
+
633
+ if install_packages "$pkg_manager" "${actual_packages[@]}"; then
634
+ print_success "File discovery tools installed"
635
+
636
+ # On Debian/Ubuntu, fd is installed as fdfind - create alias
637
+ if [[ "$pkg_manager" == "apt" ]] && command -v fdfind >/dev/null 2>&1 && ! command -v fd >/dev/null 2>&1; then
638
+ print_info "Note: On Debian/Ubuntu, fd is installed as 'fdfind'"
639
+ echo " Consider adding to your shell config: alias fd=fdfind"
640
+ fi
641
+ else
642
+ print_warning "Failed to install some file discovery tools (non-critical)"
643
+ fi
644
+ else
645
+ print_info "Skipped file discovery tools installation"
646
+ echo ""
647
+ echo " Manual installation:"
648
+ echo " macOS: brew install fd ripgrep"
649
+ echo " Ubuntu/Debian: sudo apt install fd-find ripgrep"
650
+ echo " Fedora: sudo dnf install fd-find ripgrep"
651
+ echo " Arch: sudo pacman -S fd ripgrep"
652
+ fi
653
+ else
654
+ echo ""
655
+ echo " Manual installation:"
656
+ echo " macOS: brew install fd ripgrep"
657
+ echo " Ubuntu/Debian: sudo apt install fd-find ripgrep"
658
+ echo " Fedora: sudo dnf install fd-find ripgrep"
659
+ echo " Arch: sudo pacman -S fd ripgrep"
660
+ fi
661
+ else
662
+ print_success "All file discovery tools installed!"
663
+ fi
664
+
665
+ return 0
666
+ }
667
+
565
668
  # Setup Worktrunk - Git worktree management for parallel AI agent workflows
566
669
  setup_worktrunk() {
567
670
  print_info "Setting up Worktrunk (git worktree management)..."
@@ -2439,6 +2542,7 @@ main() {
2439
2542
  confirm_step "Check optional dependencies (bun, node, python)" && check_optional_deps
2440
2543
  confirm_step "Setup recommended tools (Tabby, Zed, etc.)" && setup_recommended_tools
2441
2544
  confirm_step "Setup Git CLIs (gh, glab, tea)" && setup_git_clis
2545
+ confirm_step "Setup file discovery tools (fd, ripgrep)" && setup_file_discovery_tools
2442
2546
  confirm_step "Setup Worktrunk (git worktree management)" && setup_worktrunk
2443
2547
  confirm_step "Setup SSH key" && setup_ssh_key
2444
2548
  confirm_step "Setup configuration files" && setup_configs