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 +52 -15
- package/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/setup.sh +105 -1
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ The result: AI agents that work *with* your development process, not around it.
|
|
|
57
57
|
[](https://github.com/marcusquinn/aidevops/commits/main)
|
|
58
58
|
|
|
59
59
|
<!-- Repository Stats -->
|
|
60
|
-
[](https://github.com/marcusquinn/aidevops/releases)
|
|
61
61
|
[](https://github.com/marcusquinn/aidevops)
|
|
62
62
|
[](https://github.com/marcusquinn/aidevops)
|
|
63
63
|
[](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
|
-
**
|
|
1147
|
+
**Recommended: [Worktrunk](https://worktrunk.dev)** (`wt`) - Git worktree management with shell integration, CI status, and PR links:
|
|
1128
1148
|
|
|
1129
1149
|
```bash
|
|
1130
|
-
#
|
|
1131
|
-
|
|
1132
|
-
#
|
|
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
|
-
#
|
|
1135
|
-
|
|
1154
|
+
# Create worktree + cd into it
|
|
1155
|
+
wt switch -c feature/my-feature
|
|
1136
1156
|
|
|
1137
|
-
#
|
|
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
|
|
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
|
-
|
|
1175
|
-
|
|
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.
|
|
1
|
+
2.60.1
|
package/aidevops.sh
CHANGED
package/package.json
CHANGED
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.
|
|
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
|