aidevops 2.59.0 → 2.60.1

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.
package/README.md CHANGED
@@ -57,7 +57,7 @@ The result: AI agents that work *with* your development process, not around it.
57
57
  [![GitHub commits since latest release](https://img.shields.io/github/commits-since/marcusquinn/aidevops/latest)](https://github.com/marcusquinn/aidevops/commits/main)
58
58
 
59
59
  <!-- Repository Stats -->
60
- [![Version](https://img.shields.io/badge/Version-2.59.0-blue)](https://github.com/marcusquinn/aidevops/releases)
60
+ [![Version](https://img.shields.io/badge/Version-2.60.1-blue)](https://github.com/marcusquinn/aidevops/releases)
61
61
  [![GitHub repo size](https://img.shields.io/github/repo-size/marcusquinn/aidevops?style=flat&color=blue)](https://github.com/marcusquinn/aidevops)
62
62
  [![Lines of code](https://img.shields.io/badge/Lines%20of%20Code-18%2C000%2B-brightgreen)](https://github.com/marcusquinn/aidevops)
63
63
  [![GitHub language count](https://img.shields.io/github/languages/count/marcusquinn/aidevops)](https://github.com/marcusquinn/aidevops)
@@ -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**
@@ -1124,17 +1144,32 @@ See `.agent/scripts/commands/full-loop.md` for complete documentation.
1124
1144
 
1125
1145
  Work on multiple branches simultaneously without stashing or switching. Each branch gets its own directory.
1126
1146
 
1127
- **Quick usage:**
1147
+ **Recommended: [Worktrunk](https://worktrunk.dev)** (`wt`) - Git worktree management with shell integration, CI status, and PR links:
1128
1148
 
1129
1149
  ```bash
1130
- # Create worktree for a new branch
1131
- ~/.aidevops/agents/scripts/worktree-helper.sh add feature/my-feature
1132
- # Creates: ~/Git/aidevops-feature-my-feature/
1150
+ # Install (macOS/Linux)
1151
+ brew install max-sixty/worktrunk/wt && wt config shell install
1152
+ # Restart your shell for shell integration to take effect
1133
1153
 
1134
- # List all worktrees
1135
- ~/.aidevops/agents/scripts/worktree-helper.sh list
1154
+ # Create worktree + cd into it
1155
+ wt switch -c feature/my-feature
1136
1156
 
1137
- # Clean up after merge
1157
+ # Create worktree + start any AI CLI (-x runs command after switch)
1158
+ wt switch -c -x claude feature/ai-task
1159
+
1160
+ # List worktrees with CI status and PR links
1161
+ wt list
1162
+
1163
+ # Merge + cleanup (squash/rebase options)
1164
+ wt merge
1165
+ ```
1166
+
1167
+ **Fallback** (no dependencies):
1168
+
1169
+ ```bash
1170
+ ~/.aidevops/agents/scripts/worktree-helper.sh add feature/my-feature
1171
+ # Creates: ~/Git/{repo}-feature-my-feature/ (cd there manually)
1172
+ ~/.aidevops/agents/scripts/worktree-helper.sh list
1138
1173
  ~/.aidevops/agents/scripts/worktree-helper.sh clean
1139
1174
  ```
1140
1175
 
@@ -1142,11 +1177,11 @@ Work on multiple branches simultaneously without stashing or switching. Each bra
1142
1177
  - Run tests on one branch while coding on another
1143
1178
  - Compare implementations side-by-side
1144
1179
  - No context switching or stash management
1145
- - Each OpenCode session can work on a different branch
1180
+ - Each AI session can work on a different branch
1146
1181
 
1147
1182
  **Worktree-first workflow:** The pre-edit check now **enforces** worktrees as the default when creating branches, keeping your main directory on `main`. This prevents uncommitted changes from blocking branch switches and ensures parallel sessions don't inherit wrong branch state.
1148
1183
 
1149
- See `.agent/workflows/worktree.md` for the complete guide.
1184
+ See `.agent/workflows/worktree.md` for the complete guide and `.agent/tools/git/worktrunk.md` for Worktrunk documentation.
1150
1185
 
1151
1186
  ### Session Management - Parallel AI Sessions
1152
1187
 
@@ -1170,9 +1205,11 @@ opencode --non-interactive --prompt "Continue with feature X" &
1170
1205
  # New terminal tab (macOS)
1171
1206
  osascript -e 'tell application "Terminal" to do script "cd ~/Git/project && opencode"'
1172
1207
 
1173
- # Worktree-based (isolated branch)
1174
- ~/.aidevops/agents/scripts/worktree-helper.sh add feature/next-feature
1175
- cd ../project-feature-next-feature && opencode
1208
+ # Worktree-based (isolated branch) - recommended
1209
+ wt switch -c -x opencode feature/next-feature # Worktrunk: create + start AI CLI
1210
+ # Or fallback:
1211
+ # ~/.aidevops/agents/scripts/worktree-helper.sh add feature/next-feature
1212
+ # cd ~/Git/{repo}-feature-next-feature && opencode
1176
1213
  ```
1177
1214
 
1178
1215
  **Session handoff pattern:**
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.59.0
1
+ 2.60.1
package/aidevops.sh CHANGED
@@ -3,7 +3,7 @@
3
3
  # AI DevOps Framework CLI
4
4
  # Usage: aidevops <command> [options]
5
5
  #
6
- # Version: 2.59.0
6
+ # Version: 2.60.1
7
7
 
8
8
  set -euo pipefail
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aidevops",
3
- "version": "2.59.0",
3
+ "version": "2.60.1",
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
@@ -3,7 +3,7 @@
3
3
  # AI Assistant Server Access Framework Setup Script
4
4
  # Helps developers set up the framework for their infrastructure
5
5
  #
6
- # Version: 2.59.0
6
+ # Version: 2.60.1
7
7
  #
8
8
  # Quick Install (one-liner):
9
9
  # bash <(curl -fsSL https://aidevops.dev/install)
@@ -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