aidevops 2.110.10 → 2.110.12
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 +3 -2
- package/package.json +1 -1
- package/setup.sh +212 -21
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.110.
|
|
1
|
+
2.110.12
|
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.110.
|
|
6
|
+
# Version: 2.110.12
|
|
7
7
|
|
|
8
8
|
set -euo pipefail
|
|
9
9
|
|
|
@@ -1107,7 +1107,8 @@ EOF
|
|
|
1107
1107
|
if ! command -v bd &> /dev/null; then
|
|
1108
1108
|
print_warning "Beads CLI (bd) not installed"
|
|
1109
1109
|
echo " Install with: brew install steveyegge/beads/bd"
|
|
1110
|
-
echo " Or:
|
|
1110
|
+
echo " Or download: https://github.com/steveyegge/beads/releases"
|
|
1111
|
+
echo " Or via Go: go install github.com/steveyegge/beads/cmd/bd@latest"
|
|
1111
1112
|
else
|
|
1112
1113
|
# Initialize Beads in the project
|
|
1113
1114
|
if [[ ! -d "$project_root/.beads" ]]; then
|
package/package.json
CHANGED
package/setup.sh
CHANGED
|
@@ -4,7 +4,7 @@ set -euo pipefail
|
|
|
4
4
|
# AI Assistant Server Access Framework Setup Script
|
|
5
5
|
# Helps developers set up the framework for their infrastructure
|
|
6
6
|
#
|
|
7
|
-
# Version: 2.110.
|
|
7
|
+
# Version: 2.110.12
|
|
8
8
|
#
|
|
9
9
|
# Quick Install:
|
|
10
10
|
# npm install -g aidevops && aidevops update (recommended)
|
|
@@ -1236,6 +1236,89 @@ install_packages() {
|
|
|
1236
1236
|
esac
|
|
1237
1237
|
}
|
|
1238
1238
|
|
|
1239
|
+
# Offer to install Homebrew (Linuxbrew) on Linux when brew is not available
|
|
1240
|
+
# Many tools in the aidevops ecosystem (Beads, Worktrunk, bv) are distributed
|
|
1241
|
+
# via Homebrew taps. On macOS, brew is almost always present. On Linux, this
|
|
1242
|
+
# function offers to install it so those tools can be installed automatically.
|
|
1243
|
+
# Returns: 0 if brew is now available, 1 if user declined or install failed
|
|
1244
|
+
ensure_homebrew() {
|
|
1245
|
+
# Already available
|
|
1246
|
+
if command -v brew &> /dev/null; then
|
|
1247
|
+
return 0
|
|
1248
|
+
fi
|
|
1249
|
+
|
|
1250
|
+
# Only offer on Linux (macOS users should install Homebrew themselves)
|
|
1251
|
+
if [[ "$(uname)" == "Darwin" ]]; then
|
|
1252
|
+
print_warning "Homebrew not found. Install from https://brew.sh"
|
|
1253
|
+
return 1
|
|
1254
|
+
fi
|
|
1255
|
+
|
|
1256
|
+
# Non-interactive mode: skip
|
|
1257
|
+
if [[ "$NON_INTERACTIVE" == "true" ]]; then
|
|
1258
|
+
return 1
|
|
1259
|
+
fi
|
|
1260
|
+
|
|
1261
|
+
echo ""
|
|
1262
|
+
print_info "Homebrew (Linuxbrew) is not installed."
|
|
1263
|
+
print_info "Several optional tools (Beads CLI, Worktrunk, bv) install via Homebrew taps."
|
|
1264
|
+
echo ""
|
|
1265
|
+
read -r -p "Install Homebrew for Linux? [Y/n]: " install_brew
|
|
1266
|
+
|
|
1267
|
+
if [[ ! "$install_brew" =~ ^[Yy]?$ ]]; then
|
|
1268
|
+
print_info "Skipped Homebrew installation"
|
|
1269
|
+
return 1
|
|
1270
|
+
fi
|
|
1271
|
+
|
|
1272
|
+
print_info "Installing Homebrew (Linuxbrew)..."
|
|
1273
|
+
|
|
1274
|
+
# Prerequisites for Linuxbrew
|
|
1275
|
+
if command -v apt-get &> /dev/null; then
|
|
1276
|
+
sudo apt-get update -qq
|
|
1277
|
+
sudo apt-get install -y -qq build-essential procps curl file git
|
|
1278
|
+
elif command -v dnf &> /dev/null; then
|
|
1279
|
+
sudo dnf groupinstall -y 'Development Tools'
|
|
1280
|
+
sudo dnf install -y procps-ng curl file git
|
|
1281
|
+
elif command -v yum &> /dev/null; then
|
|
1282
|
+
sudo yum groupinstall -y 'Development Tools'
|
|
1283
|
+
sudo yum install -y procps-ng curl file git
|
|
1284
|
+
fi
|
|
1285
|
+
|
|
1286
|
+
# Install Homebrew using verified_install pattern
|
|
1287
|
+
if verified_install "Homebrew" "https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh"; then
|
|
1288
|
+
# Add Homebrew to PATH for this session
|
|
1289
|
+
local brew_prefix="/home/linuxbrew/.linuxbrew"
|
|
1290
|
+
if [[ -x "$brew_prefix/bin/brew" ]]; then
|
|
1291
|
+
eval "$("$brew_prefix/bin/brew" shellenv)"
|
|
1292
|
+
fi
|
|
1293
|
+
|
|
1294
|
+
# Persist to shell rc files
|
|
1295
|
+
local brew_line="eval \"\$($brew_prefix/bin/brew shellenv)\""
|
|
1296
|
+
local rc_file
|
|
1297
|
+
while IFS= read -r rc_file; do
|
|
1298
|
+
[[ -z "$rc_file" ]] && continue
|
|
1299
|
+
if ! grep -q 'linuxbrew' "$rc_file" 2>/dev/null; then
|
|
1300
|
+
{
|
|
1301
|
+
echo ""
|
|
1302
|
+
echo "# Homebrew (Linuxbrew) - added by aidevops setup"
|
|
1303
|
+
echo "$brew_line"
|
|
1304
|
+
} >> "$rc_file"
|
|
1305
|
+
fi
|
|
1306
|
+
done < <(get_all_shell_rcs)
|
|
1307
|
+
|
|
1308
|
+
if command -v brew &> /dev/null; then
|
|
1309
|
+
print_success "Homebrew installed and added to PATH"
|
|
1310
|
+
return 0
|
|
1311
|
+
else
|
|
1312
|
+
print_warning "Homebrew installed but not yet in PATH. Restart your shell or run:"
|
|
1313
|
+
echo " $brew_line"
|
|
1314
|
+
return 1
|
|
1315
|
+
fi
|
|
1316
|
+
else
|
|
1317
|
+
print_warning "Homebrew installation failed"
|
|
1318
|
+
return 1
|
|
1319
|
+
fi
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1239
1322
|
# Check system requirements
|
|
1240
1323
|
check_requirements() {
|
|
1241
1324
|
print_info "Checking system requirements..."
|
|
@@ -2989,7 +3072,7 @@ deploy_plugins() {
|
|
|
2989
3072
|
while IFS= read -r disabled_ns; do
|
|
2990
3073
|
[[ -z "$disabled_ns" ]] && continue
|
|
2991
3074
|
if [[ -d "$target_dir/$disabled_ns" ]]; then
|
|
2992
|
-
rm -rf "$target_dir/$disabled_ns"
|
|
3075
|
+
rm -rf "${target_dir:?}/${disabled_ns:?}"
|
|
2993
3076
|
print_info " Removed disabled plugin directory: $disabled_ns"
|
|
2994
3077
|
fi
|
|
2995
3078
|
done < <(jq -r '.plugins[] | select(.enabled == false) | .namespace // empty' "$plugins_file" 2>/dev/null)
|
|
@@ -3535,7 +3618,8 @@ setup_nodejs_env() {
|
|
|
3535
3618
|
return
|
|
3536
3619
|
fi
|
|
3537
3620
|
|
|
3538
|
-
local node_version
|
|
3621
|
+
local node_version
|
|
3622
|
+
node_version=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
|
|
3539
3623
|
if [[ $node_version -lt 18 ]]; then
|
|
3540
3624
|
print_warning "Node.js 18+ required for DSPyGround, found v$node_version - DSPyGround setup skipped"
|
|
3541
3625
|
return
|
|
@@ -3811,7 +3895,8 @@ setup_augment_context_engine() {
|
|
|
3811
3895
|
return
|
|
3812
3896
|
fi
|
|
3813
3897
|
|
|
3814
|
-
local node_version
|
|
3898
|
+
local node_version
|
|
3899
|
+
node_version=$(node --version | cut -d'v' -f2 | cut -d'.' -f1)
|
|
3815
3900
|
if [[ $node_version -lt 22 ]]; then
|
|
3816
3901
|
print_warning "Node.js 22+ required for Augment Context Engine, found v$node_version"
|
|
3817
3902
|
print_info "Install: brew install node@22 (macOS) or nvm install 22"
|
|
@@ -3913,6 +3998,106 @@ setup_osgrep() {
|
|
|
3913
3998
|
return 0
|
|
3914
3999
|
}
|
|
3915
4000
|
|
|
4001
|
+
# Install Beads CLI from GitHub release binary
|
|
4002
|
+
# Downloads the prebuilt binary for the current platform from GitHub releases.
|
|
4003
|
+
# Returns: 0 on success, 1 on failure
|
|
4004
|
+
install_beads_binary() {
|
|
4005
|
+
local os arch tarball_name
|
|
4006
|
+
os=$(uname -s | tr '[:upper:]' '[:lower:]')
|
|
4007
|
+
arch=$(uname -m)
|
|
4008
|
+
|
|
4009
|
+
# Map architecture names to Beads release naming convention
|
|
4010
|
+
case "$arch" in
|
|
4011
|
+
x86_64|amd64) arch="amd64" ;;
|
|
4012
|
+
aarch64|arm64) arch="arm64" ;;
|
|
4013
|
+
*)
|
|
4014
|
+
print_warning "Unsupported architecture for Beads binary download: $arch"
|
|
4015
|
+
return 1
|
|
4016
|
+
;;
|
|
4017
|
+
esac
|
|
4018
|
+
|
|
4019
|
+
# Get latest version tag from GitHub API
|
|
4020
|
+
local latest_version
|
|
4021
|
+
latest_version=$(curl -fsSL "https://api.github.com/repos/steveyegge/beads/releases/latest" 2>/dev/null \
|
|
4022
|
+
| grep '"tag_name"' | head -1 | sed 's/.*"tag_name": *"v\{0,1\}\([^"]*\)".*/\1/')
|
|
4023
|
+
|
|
4024
|
+
if [[ -z "$latest_version" ]]; then
|
|
4025
|
+
print_warning "Could not determine latest Beads version from GitHub"
|
|
4026
|
+
return 1
|
|
4027
|
+
fi
|
|
4028
|
+
|
|
4029
|
+
tarball_name="beads_${latest_version}_${os}_${arch}.tar.gz"
|
|
4030
|
+
local download_url="https://github.com/steveyegge/beads/releases/download/v${latest_version}/${tarball_name}"
|
|
4031
|
+
|
|
4032
|
+
print_info "Downloading Beads CLI v${latest_version} (${os}/${arch})..."
|
|
4033
|
+
|
|
4034
|
+
local tmp_dir
|
|
4035
|
+
tmp_dir=$(mktemp -d)
|
|
4036
|
+
# shellcheck disable=SC2064
|
|
4037
|
+
trap "rm -rf '$tmp_dir'" RETURN
|
|
4038
|
+
|
|
4039
|
+
if ! curl -fsSL "$download_url" -o "$tmp_dir/$tarball_name" 2>/dev/null; then
|
|
4040
|
+
print_warning "Failed to download Beads binary from $download_url"
|
|
4041
|
+
return 1
|
|
4042
|
+
fi
|
|
4043
|
+
|
|
4044
|
+
# Extract and install
|
|
4045
|
+
if ! tar -xzf "$tmp_dir/$tarball_name" -C "$tmp_dir" 2>/dev/null; then
|
|
4046
|
+
print_warning "Failed to extract Beads binary"
|
|
4047
|
+
return 1
|
|
4048
|
+
fi
|
|
4049
|
+
|
|
4050
|
+
# Find the bd binary in the extracted files
|
|
4051
|
+
local bd_binary
|
|
4052
|
+
bd_binary=$(find "$tmp_dir" -name "bd" -type f 2>/dev/null | head -1)
|
|
4053
|
+
if [[ -z "$bd_binary" ]]; then
|
|
4054
|
+
print_warning "bd binary not found in downloaded archive"
|
|
4055
|
+
return 1
|
|
4056
|
+
fi
|
|
4057
|
+
|
|
4058
|
+
# Install to a writable location
|
|
4059
|
+
local install_dir="/usr/local/bin"
|
|
4060
|
+
if [[ ! -w "$install_dir" ]]; then
|
|
4061
|
+
if command -v sudo &> /dev/null; then
|
|
4062
|
+
sudo install -m 755 "$bd_binary" "$install_dir/bd"
|
|
4063
|
+
else
|
|
4064
|
+
# Fallback to user-local bin
|
|
4065
|
+
install_dir="$HOME/.local/bin"
|
|
4066
|
+
mkdir -p "$install_dir"
|
|
4067
|
+
install -m 755 "$bd_binary" "$install_dir/bd"
|
|
4068
|
+
# Ensure ~/.local/bin is in PATH
|
|
4069
|
+
if ! echo "$PATH" | grep -q "$HOME/.local/bin"; then
|
|
4070
|
+
export PATH="$HOME/.local/bin:$PATH"
|
|
4071
|
+
print_info "Added ~/.local/bin to PATH for this session"
|
|
4072
|
+
fi
|
|
4073
|
+
fi
|
|
4074
|
+
else
|
|
4075
|
+
install -m 755 "$bd_binary" "$install_dir/bd"
|
|
4076
|
+
fi
|
|
4077
|
+
|
|
4078
|
+
if command -v bd &> /dev/null; then
|
|
4079
|
+
print_success "Beads CLI installed via binary download (v${latest_version})"
|
|
4080
|
+
return 0
|
|
4081
|
+
else
|
|
4082
|
+
print_warning "Beads binary installed to $install_dir/bd but not found in PATH"
|
|
4083
|
+
return 1
|
|
4084
|
+
fi
|
|
4085
|
+
}
|
|
4086
|
+
|
|
4087
|
+
# Install Beads CLI via Go
|
|
4088
|
+
# Returns: 0 on success, 1 on failure
|
|
4089
|
+
install_beads_go() {
|
|
4090
|
+
if ! command -v go &> /dev/null; then
|
|
4091
|
+
return 1
|
|
4092
|
+
fi
|
|
4093
|
+
if run_with_spinner "Installing Beads via Go" go install github.com/steveyegge/beads/cmd/bd@latest; then
|
|
4094
|
+
print_info "Ensure \$GOPATH/bin is in your PATH"
|
|
4095
|
+
return 0
|
|
4096
|
+
fi
|
|
4097
|
+
print_warning "Go installation failed"
|
|
4098
|
+
return 1
|
|
4099
|
+
}
|
|
4100
|
+
|
|
3916
4101
|
# Setup Beads - Task Graph Visualization
|
|
3917
4102
|
setup_beads() {
|
|
3918
4103
|
print_info "Setting up Beads (task graph visualization)..."
|
|
@@ -3929,30 +4114,36 @@ setup_beads() {
|
|
|
3929
4114
|
: # Success message handled by spinner
|
|
3930
4115
|
else
|
|
3931
4116
|
print_warning "Homebrew tap installation failed, trying alternative..."
|
|
3932
|
-
|
|
3933
|
-
if command -v go &> /dev/null; then
|
|
3934
|
-
if run_with_spinner "Installing Beads via Go" go install github.com/steveyegge/beads/cmd/bd@latest; then
|
|
3935
|
-
print_info "Ensure \$GOPATH/bin is in your PATH"
|
|
3936
|
-
else
|
|
3937
|
-
print_warning "Go installation failed"
|
|
3938
|
-
fi
|
|
3939
|
-
fi
|
|
4117
|
+
install_beads_binary || install_beads_go
|
|
3940
4118
|
fi
|
|
3941
4119
|
elif command -v go &> /dev/null; then
|
|
3942
4120
|
if run_with_spinner "Installing Beads via Go" go install github.com/steveyegge/beads/cmd/bd@latest; then
|
|
3943
4121
|
print_info "Ensure \$GOPATH/bin is in your PATH"
|
|
3944
4122
|
else
|
|
3945
|
-
print_warning "Go installation failed"
|
|
4123
|
+
print_warning "Go installation failed, trying binary download..."
|
|
4124
|
+
install_beads_binary
|
|
3946
4125
|
fi
|
|
3947
4126
|
else
|
|
3948
|
-
#
|
|
3949
|
-
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
4127
|
+
# No brew, no Go -- try binary download first, then offer Homebrew install
|
|
4128
|
+
if ! install_beads_binary; then
|
|
4129
|
+
# Binary download failed -- offer to install Homebrew (Linux only)
|
|
4130
|
+
if ensure_homebrew; then
|
|
4131
|
+
# Homebrew now available, retry via tap
|
|
4132
|
+
if run_with_spinner "Installing Beads via Homebrew" brew install steveyegge/beads/bd; then
|
|
4133
|
+
: # Success
|
|
4134
|
+
else
|
|
4135
|
+
print_warning "Homebrew tap installation failed"
|
|
4136
|
+
fi
|
|
4137
|
+
else
|
|
4138
|
+
print_warning "Beads CLI (bd) not installed"
|
|
4139
|
+
echo ""
|
|
4140
|
+
echo " Install options:"
|
|
4141
|
+
echo " Binary download: https://github.com/steveyegge/beads/releases"
|
|
4142
|
+
echo " macOS/Linux (Homebrew): brew install steveyegge/beads/bd"
|
|
4143
|
+
echo " Go: go install github.com/steveyegge/beads/cmd/bd@latest"
|
|
4144
|
+
echo ""
|
|
4145
|
+
fi
|
|
4146
|
+
fi
|
|
3956
4147
|
fi
|
|
3957
4148
|
fi
|
|
3958
4149
|
|