aidevops 2.100.8 → 2.100.10
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/VERSION +1 -1
- package/aidevops.sh +1 -1
- package/package.json +1 -1
- package/setup.sh +111 -42
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.100.
|
|
1
|
+
2.100.10
|
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.100.
|
|
6
|
+
# Version: 2.100.10
|
|
7
7
|
#
|
|
8
8
|
# Quick Install (one-liner):
|
|
9
9
|
# bash <(curl -fsSL https://aidevops.dev/install)
|
|
@@ -1075,7 +1075,8 @@ setup_worktrunk() {
|
|
|
1075
1075
|
print_info "Shell integration not detected"
|
|
1076
1076
|
read -r -p "Install Worktrunk shell integration (enables 'wt switch' to change directories)? [Y/n]: " install_shell
|
|
1077
1077
|
if [[ "$install_shell" =~ ^[Yy]?$ ]]; then
|
|
1078
|
-
|
|
1078
|
+
print_info "Installing shell integration..."
|
|
1079
|
+
if wt config shell install; then
|
|
1079
1080
|
print_success "Shell integration installed"
|
|
1080
1081
|
print_info "Restart your terminal or run: source $shell_rc"
|
|
1081
1082
|
else
|
|
@@ -1107,8 +1108,10 @@ setup_worktrunk() {
|
|
|
1107
1108
|
|
|
1108
1109
|
if [[ "$install_wt" =~ ^[Yy]?$ ]]; then
|
|
1109
1110
|
if run_with_spinner "Installing Worktrunk via Homebrew" brew install max-sixty/worktrunk/wt; then
|
|
1110
|
-
# Install shell integration
|
|
1111
|
-
|
|
1111
|
+
# Install shell integration (don't use spinner - command is fast and may need interaction)
|
|
1112
|
+
print_info "Installing shell integration..."
|
|
1113
|
+
if wt config shell install; then
|
|
1114
|
+
print_success "Shell integration installed"
|
|
1112
1115
|
print_info "Restart your terminal or source your shell config"
|
|
1113
1116
|
else
|
|
1114
1117
|
print_warning "Shell integration failed - run manually: wt config shell install"
|
|
@@ -1135,8 +1138,10 @@ setup_worktrunk() {
|
|
|
1135
1138
|
|
|
1136
1139
|
if [[ "$install_wt" =~ ^[Yy]?$ ]]; then
|
|
1137
1140
|
if run_with_spinner "Installing Worktrunk via Cargo" cargo install worktrunk; then
|
|
1138
|
-
# Install shell integration
|
|
1139
|
-
|
|
1141
|
+
# Install shell integration (don't use spinner - command is fast and may need interaction)
|
|
1142
|
+
print_info "Installing shell integration..."
|
|
1143
|
+
if wt config shell install; then
|
|
1144
|
+
print_success "Shell integration installed"
|
|
1140
1145
|
print_info "Restart your terminal or source your shell config"
|
|
1141
1146
|
else
|
|
1142
1147
|
print_warning "Shell integration failed - run manually: wt config shell install"
|
|
@@ -1892,15 +1897,24 @@ deploy_aidevops_agents() {
|
|
|
1892
1897
|
if [[ -f "$plan_reminder" && -f "$plan_plus" ]]; then
|
|
1893
1898
|
# Check if plan-plus.md has the placeholder marker
|
|
1894
1899
|
if grep -q "OPENCODE-PLAN-REMINDER-INJECT" "$plan_plus"; then
|
|
1895
|
-
# Replace placeholder with extracted content
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1900
|
+
# Replace placeholder with extracted content using sed
|
|
1901
|
+
# (awk -v doesn't handle multi-line content with special chars well)
|
|
1902
|
+
local tmp_file
|
|
1903
|
+
tmp_file=$(mktemp)
|
|
1904
|
+
local in_placeholder=false
|
|
1905
|
+
while IFS= read -r line || [[ -n "$line" ]]; do
|
|
1906
|
+
if [[ "$line" == *"OPENCODE-PLAN-REMINDER-INJECT-START"* ]]; then
|
|
1907
|
+
echo "$line" >> "$tmp_file"
|
|
1908
|
+
cat "$plan_reminder" >> "$tmp_file"
|
|
1909
|
+
in_placeholder=true
|
|
1910
|
+
elif [[ "$line" == *"OPENCODE-PLAN-REMINDER-INJECT-END"* ]]; then
|
|
1911
|
+
echo "$line" >> "$tmp_file"
|
|
1912
|
+
in_placeholder=false
|
|
1913
|
+
elif [[ "$in_placeholder" == false ]]; then
|
|
1914
|
+
echo "$line" >> "$tmp_file"
|
|
1915
|
+
fi
|
|
1916
|
+
done < "$plan_plus"
|
|
1917
|
+
mv "$tmp_file" "$plan_plus"
|
|
1904
1918
|
print_info "Injected OpenCode plan-reminder into Plan+"
|
|
1905
1919
|
fi
|
|
1906
1920
|
fi
|
|
@@ -2615,7 +2629,7 @@ setup_osgrep() {
|
|
|
2615
2629
|
if ! command -v node &> /dev/null; then
|
|
2616
2630
|
print_warning "Node.js not found - osgrep setup skipped"
|
|
2617
2631
|
print_info "Install Node.js 18+ to enable osgrep"
|
|
2618
|
-
return
|
|
2632
|
+
return 0
|
|
2619
2633
|
fi
|
|
2620
2634
|
|
|
2621
2635
|
local node_version
|
|
@@ -2623,31 +2637,58 @@ setup_osgrep() {
|
|
|
2623
2637
|
if [[ $node_version -lt 18 ]]; then
|
|
2624
2638
|
print_warning "Node.js 18+ required for osgrep, found v$node_version"
|
|
2625
2639
|
print_info "Install: brew install node@18 (macOS) or nvm install 18"
|
|
2626
|
-
return
|
|
2640
|
+
return 0
|
|
2627
2641
|
fi
|
|
2628
2642
|
|
|
2629
2643
|
# Check if osgrep is installed
|
|
2630
2644
|
if ! command -v osgrep &> /dev/null; then
|
|
2631
|
-
|
|
2632
|
-
print_info "
|
|
2633
|
-
|
|
2634
|
-
|
|
2645
|
+
echo ""
|
|
2646
|
+
print_info "osgrep provides 100% local semantic search (no cloud, no auth)"
|
|
2647
|
+
echo " • Search code by meaning, not just keywords"
|
|
2648
|
+
echo " • Works offline with ~150MB local embedding models"
|
|
2649
|
+
echo " • Supports: OpenCode, Cursor, Claude Code, Zed, Gemini CLI"
|
|
2650
|
+
echo ""
|
|
2651
|
+
|
|
2652
|
+
read -r -p "Install osgrep CLI? [Y/n]: " install_osgrep
|
|
2653
|
+
if [[ "$install_osgrep" =~ ^[Yy]?$ ]]; then
|
|
2654
|
+
if run_with_spinner "Installing osgrep CLI" npm install -g osgrep; then
|
|
2655
|
+
print_info "Now downloading embedding models (~150MB)..."
|
|
2656
|
+
# osgrep setup is interactive, don't use spinner
|
|
2657
|
+
if osgrep setup; then
|
|
2658
|
+
print_success "osgrep installed and configured"
|
|
2659
|
+
else
|
|
2660
|
+
print_warning "Model download failed - run manually: osgrep setup"
|
|
2661
|
+
fi
|
|
2662
|
+
else
|
|
2663
|
+
print_warning "Installation failed - try manually: npm install -g osgrep"
|
|
2664
|
+
return 0
|
|
2665
|
+
fi
|
|
2666
|
+
else
|
|
2667
|
+
print_info "Skipped osgrep installation"
|
|
2668
|
+
print_info "Install later: npm install -g osgrep && osgrep setup"
|
|
2669
|
+
return 0
|
|
2670
|
+
fi
|
|
2635
2671
|
fi
|
|
2636
2672
|
|
|
2637
2673
|
# Check if models are downloaded
|
|
2638
2674
|
if [[ ! -d "$HOME/.osgrep" ]]; then
|
|
2639
2675
|
print_warning "osgrep models not yet downloaded"
|
|
2640
|
-
|
|
2641
|
-
|
|
2676
|
+
read -r -p "Download embedding models now (~150MB)? [Y/n]: " download_models
|
|
2677
|
+
if [[ "$download_models" =~ ^[Yy]?$ ]]; then
|
|
2678
|
+
if osgrep setup; then
|
|
2679
|
+
print_success "osgrep models downloaded"
|
|
2680
|
+
else
|
|
2681
|
+
print_warning "Model download failed - run manually: osgrep setup"
|
|
2682
|
+
fi
|
|
2683
|
+
else
|
|
2684
|
+
print_info "Download later: osgrep setup"
|
|
2685
|
+
fi
|
|
2642
2686
|
else
|
|
2643
|
-
print_success "osgrep CLI
|
|
2687
|
+
print_success "osgrep CLI installed and configured"
|
|
2644
2688
|
fi
|
|
2645
2689
|
|
|
2646
|
-
# Note about Claude Code integration
|
|
2647
|
-
print_info "osgrep provides 100% local semantic search (no cloud, no auth)"
|
|
2648
|
-
print_info "For Claude Code: osgrep install-claude-code"
|
|
2649
|
-
print_info "Supported tools: OpenCode, Cursor, Gemini CLI, Claude Code, Zed"
|
|
2650
2690
|
print_info "Verification: 'Search for authentication handling in this codebase'"
|
|
2691
|
+
return 0
|
|
2651
2692
|
}
|
|
2652
2693
|
|
|
2653
2694
|
# Setup Beads - Task Graph Visualization
|
|
@@ -2721,25 +2762,53 @@ setup_beads_ui() {
|
|
|
2721
2762
|
|
|
2722
2763
|
local installed_count=0
|
|
2723
2764
|
|
|
2724
|
-
# beads_viewer (Python) - use pipx for isolated install
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2765
|
+
# beads_viewer (Python) - use pipx for isolated install (recommended)
|
|
2766
|
+
# pip install --user often fails on macOS due to PEP 668 (externally-managed-environment)
|
|
2767
|
+
read -r -p " Install beads_viewer (Python TUI with graph analytics)? [Y/n]: " install_viewer
|
|
2768
|
+
if [[ "$install_viewer" =~ ^[Yy]?$ ]]; then
|
|
2769
|
+
if command -v pipx &> /dev/null; then
|
|
2770
|
+
# pipx available - use it (best option)
|
|
2771
|
+
if run_with_spinner "Installing beads_viewer via pipx" pipx install beads-viewer; then
|
|
2772
|
+
print_info "Run: beads-viewer"
|
|
2773
|
+
((installed_count++))
|
|
2774
|
+
else
|
|
2775
|
+
print_warning "pipx install failed - try manually: pipx install beads-viewer"
|
|
2776
|
+
fi
|
|
2777
|
+
elif command -v brew &> /dev/null; then
|
|
2778
|
+
# macOS with Homebrew - offer to install pipx first
|
|
2779
|
+
print_info "pipx recommended for Python CLI tools (isolated environments)"
|
|
2780
|
+
read -r -p " Install pipx first? [Y/n]: " install_pipx
|
|
2781
|
+
if [[ "$install_pipx" =~ ^[Yy]?$ ]]; then
|
|
2782
|
+
if run_with_spinner "Installing pipx" brew install pipx; then
|
|
2783
|
+
# Ensure pipx is in PATH
|
|
2784
|
+
pipx ensurepath > /dev/null 2>&1
|
|
2785
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
2786
|
+
if run_with_spinner "Installing beads_viewer via pipx" pipx install beads-viewer; then
|
|
2787
|
+
print_info "Run: beads-viewer"
|
|
2788
|
+
((installed_count++))
|
|
2789
|
+
else
|
|
2790
|
+
print_warning "Installation failed - try manually: pipx install beads-viewer"
|
|
2791
|
+
fi
|
|
2732
2792
|
else
|
|
2733
|
-
|
|
2793
|
+
print_warning "pipx installation failed"
|
|
2734
2794
|
fi
|
|
2735
2795
|
else
|
|
2796
|
+
print_info "Skipped beads_viewer (requires pipx)"
|
|
2797
|
+
print_info "Install later: brew install pipx && pipx install beads-viewer"
|
|
2798
|
+
fi
|
|
2799
|
+
else
|
|
2800
|
+
# No pipx, no brew - try pip as last resort
|
|
2801
|
+
print_warning "pipx not found - trying pip (may fail on macOS)"
|
|
2802
|
+
if command -v pip3 &> /dev/null; then
|
|
2736
2803
|
if run_with_spinner "Installing beads_viewer" pip3 install --user beads-viewer; then
|
|
2737
|
-
|
|
2738
|
-
elif run_with_spinner "Installing beads_viewer" pip install --user beads-viewer; then
|
|
2804
|
+
print_info "Run: beads-viewer"
|
|
2739
2805
|
((installed_count++))
|
|
2740
2806
|
else
|
|
2741
|
-
|
|
2807
|
+
print_warning "pip install failed - install pipx first"
|
|
2808
|
+
print_info "Linux: pip install pipx && pipx install beads-viewer"
|
|
2742
2809
|
fi
|
|
2810
|
+
else
|
|
2811
|
+
print_warning "Neither pipx nor pip3 found"
|
|
2743
2812
|
fi
|
|
2744
2813
|
fi
|
|
2745
2814
|
fi
|
|
@@ -3612,8 +3681,8 @@ echo " aidevops uninstall - Remove aidevops"
|
|
|
3612
3681
|
read -r -p "Launch OpenCode with /onboarding now? [Y/n]: " launch_onboarding
|
|
3613
3682
|
if [[ "$launch_onboarding" =~ ^[Yy]?$ || "$launch_onboarding" == "Y" ]]; then
|
|
3614
3683
|
echo ""
|
|
3615
|
-
echo "Starting OpenCode..."
|
|
3616
|
-
opencode --prompt "/onboarding"
|
|
3684
|
+
echo "Starting OpenCode with Onboarding agent..."
|
|
3685
|
+
opencode --agent Onboarding --prompt "/onboarding"
|
|
3617
3686
|
else
|
|
3618
3687
|
echo ""
|
|
3619
3688
|
echo "You can run /onboarding anytime in OpenCode to configure services."
|