aidevops 2.55.0 → 2.56.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.
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.55.0-blue)](https://github.com/marcusquinn/aidevops/releases)
60
+ [![Version](https://img.shields.io/badge/Version-2.56.0-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)
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.55.0
1
+ 2.56.0
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.55.0
6
+ # Version: 2.56.0
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.55.0",
3
+ "version": "2.56.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
@@ -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.55.0
6
+ # Version: 2.56.0
7
7
  #
8
8
  # Quick Install (one-liner):
9
9
  # bash <(curl -fsSL https://aidevops.dev/install)
@@ -1836,12 +1836,12 @@ add_opencode_plugin() {
1836
1836
 
1837
1837
  # Check if plugin array exists and if plugin is already configured
1838
1838
  local has_plugin_array
1839
- has_plugin_array=$(jq -e '.plugin' "$opencode_config" 2>/dev/null && echo "true" || echo "false")
1839
+ has_plugin_array=$(jq -e '.plugin' "$opencode_config" >/dev/null 2>&1 && echo "true" || echo "false")
1840
1840
 
1841
1841
  if [[ "$has_plugin_array" == "true" ]]; then
1842
1842
  # Check if plugin is already in the array
1843
1843
  local plugin_exists
1844
- plugin_exists=$(jq -e --arg p "$plugin_name" '.plugin | map(select(startswith($p))) | length > 0' "$opencode_config" 2>/dev/null && echo "true" || echo "false")
1844
+ plugin_exists=$(jq -e --arg p "$plugin_name" '.plugin | map(select(startswith($p))) | length > 0' "$opencode_config" >/dev/null 2>&1 && echo "true" || echo "false")
1845
1845
 
1846
1846
  if [[ "$plugin_exists" == "true" ]]; then
1847
1847
  # Update existing plugin to latest version
@@ -1965,12 +1965,12 @@ setup_oh_my_opencode() {
1965
1965
 
1966
1966
  # Check if plugin array exists
1967
1967
  local has_plugin_array
1968
- has_plugin_array=$(jq -e '.plugin' "$opencode_config" 2>/dev/null && echo "true" || echo "false")
1968
+ has_plugin_array=$(jq -e '.plugin' "$opencode_config" >/dev/null 2>&1 && echo "true" || echo "false")
1969
1969
 
1970
1970
  if [[ "$has_plugin_array" == "true" ]]; then
1971
1971
  # Check if plugin is already in the array
1972
1972
  local plugin_exists
1973
- plugin_exists=$(jq -e --arg p "$plugin_name" '.plugin | map(select(. == $p or startswith($p + "@"))) | length > 0' "$opencode_config" 2>/dev/null && echo "true" || echo "false")
1973
+ plugin_exists=$(jq -e --arg p "$plugin_name" '.plugin | map(select(. == $p or startswith($p + "@"))) | length > 0' "$opencode_config" >/dev/null 2>&1 && echo "true" || echo "false")
1974
1974
 
1975
1975
  if [[ "$plugin_exists" == "true" ]]; then
1976
1976
  print_info "Oh-My-OpenCode already configured"
@@ -2112,6 +2112,72 @@ setup_seo_mcps() {
2112
2112
  return 0
2113
2113
  }
2114
2114
 
2115
+ # Setup Google Analytics MCP (disabled by default)
2116
+ setup_google_analytics_mcp() {
2117
+ print_info "Setting up Google Analytics MCP..."
2118
+
2119
+ local opencode_config="$HOME/.config/opencode/opencode.json"
2120
+
2121
+ # Check if opencode.json exists
2122
+ if [[ ! -f "$opencode_config" ]]; then
2123
+ print_warning "OpenCode config not found at $opencode_config - skipping Google Analytics MCP"
2124
+ return 0
2125
+ fi
2126
+
2127
+ # Check if jq is available
2128
+ if ! command -v jq &> /dev/null; then
2129
+ print_warning "jq not found - cannot add Google Analytics MCP to config"
2130
+ print_info "Install jq and re-run setup, or manually add the MCP config"
2131
+ return 0
2132
+ fi
2133
+
2134
+ # Check if pipx is available
2135
+ if ! command -v pipx &> /dev/null; then
2136
+ print_warning "pipx not found - Google Analytics MCP requires pipx"
2137
+ print_info "Install pipx: brew install pipx (macOS) or pip install pipx"
2138
+ print_info "Then re-run setup to add Google Analytics MCP"
2139
+ return 0
2140
+ fi
2141
+
2142
+ # Check if google-analytics-mcp already exists in config
2143
+ if jq -e '.mcp["google-analytics-mcp"]' "$opencode_config" > /dev/null 2>&1; then
2144
+ print_info "Google Analytics MCP already configured in OpenCode"
2145
+ return 0
2146
+ fi
2147
+
2148
+ # Add google-analytics-mcp to opencode.json (disabled by default)
2149
+ local tmp_config
2150
+ tmp_config=$(mktemp)
2151
+
2152
+ if jq '.mcp["google-analytics-mcp"] = {
2153
+ "type": "local",
2154
+ "command": ["pipx", "run", "analytics-mcp"],
2155
+ "environment": {
2156
+ "GOOGLE_APPLICATION_CREDENTIALS": "",
2157
+ "GOOGLE_PROJECT_ID": ""
2158
+ },
2159
+ "enabled": false
2160
+ }' "$opencode_config" > "$tmp_config" 2>/dev/null; then
2161
+ mv "$tmp_config" "$opencode_config"
2162
+ print_success "Added Google Analytics MCP to OpenCode (disabled by default)"
2163
+ print_info "To enable: Set credentials and change enabled to true in opencode.json"
2164
+ print_info "Or use the google-analytics subagent which enables it automatically"
2165
+ else
2166
+ rm -f "$tmp_config"
2167
+ print_warning "Failed to add Google Analytics MCP to config"
2168
+ fi
2169
+
2170
+ # Show setup instructions
2171
+ print_info "Google Analytics MCP setup:"
2172
+ print_info " 1. Enable Google Analytics Admin & Data APIs in Google Cloud Console"
2173
+ print_info " 2. Configure ADC: gcloud auth application-default login --scopes https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform"
2174
+ print_info " 3. Update GOOGLE_APPLICATION_CREDENTIALS path in opencode.json"
2175
+ print_info " 4. Set GOOGLE_PROJECT_ID in opencode.json"
2176
+ print_info "Documentation: ~/.aidevops/agents/services/analytics/google-analytics.md"
2177
+
2178
+ return 0
2179
+ }
2180
+
2115
2181
  # Check for tool updates after setup
2116
2182
  check_tool_updates() {
2117
2183
  print_info "Checking for tool updates..."
@@ -2262,6 +2328,7 @@ main() {
2262
2328
  confirm_step "Setup osgrep (local semantic search)" && setup_osgrep
2263
2329
  confirm_step "Setup Beads task management" && setup_beads
2264
2330
  confirm_step "Setup SEO MCP servers (DataForSEO, Serper)" && setup_seo_mcps
2331
+ confirm_step "Setup Google Analytics MCP" && setup_google_analytics_mcp
2265
2332
  confirm_step "Setup browser automation tools" && setup_browser_tools
2266
2333
  confirm_step "Setup AI orchestration frameworks info" && setup_ai_orchestration
2267
2334
  confirm_step "Setup OpenCode plugins" && setup_opencode_plugins