aidevops 2.52.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/.agent/AGENTS.md +614 -0
- package/.agent/accounts.md +65 -0
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
- package/.agent/aidevops/api-integrations.md +335 -0
- package/.agent/aidevops/architecture.md +510 -0
- package/.agent/aidevops/configs.md +274 -0
- package/.agent/aidevops/docs.md +244 -0
- package/.agent/aidevops/extension.md +311 -0
- package/.agent/aidevops/mcp-integrations.md +340 -0
- package/.agent/aidevops/mcp-troubleshooting.md +162 -0
- package/.agent/aidevops/memory-patterns.md +172 -0
- package/.agent/aidevops/providers.md +217 -0
- package/.agent/aidevops/recommendations.md +321 -0
- package/.agent/aidevops/requirements.md +301 -0
- package/.agent/aidevops/resources.md +214 -0
- package/.agent/aidevops/security-requirements.md +174 -0
- package/.agent/aidevops/security.md +350 -0
- package/.agent/aidevops/service-links.md +400 -0
- package/.agent/aidevops/services.md +357 -0
- package/.agent/aidevops/setup.md +153 -0
- package/.agent/aidevops/troubleshooting.md +389 -0
- package/.agent/aidevops.md +124 -0
- package/.agent/build-plus.md +244 -0
- package/.agent/content/guidelines.md +109 -0
- package/.agent/content.md +87 -0
- package/.agent/health.md +59 -0
- package/.agent/legal.md +59 -0
- package/.agent/loop-state/full-loop.local.md +16 -0
- package/.agent/loop-state/ralph-loop.local.md +10 -0
- package/.agent/marketing.md +440 -0
- package/.agent/memory/README.md +260 -0
- package/.agent/onboarding.md +796 -0
- package/.agent/plan-plus.md +245 -0
- package/.agent/research.md +100 -0
- package/.agent/sales.md +333 -0
- package/.agent/scripts/101domains-helper.sh +701 -0
- package/.agent/scripts/add-missing-returns.sh +140 -0
- package/.agent/scripts/agent-browser-helper.sh +311 -0
- package/.agent/scripts/agno-setup.sh +712 -0
- package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
- package/.agent/scripts/aidevops-update-check.sh +71 -0
- package/.agent/scripts/ampcode-cli.sh +522 -0
- package/.agent/scripts/auto-version-bump.sh +156 -0
- package/.agent/scripts/autogen-helper.sh +512 -0
- package/.agent/scripts/beads-sync-helper.sh +596 -0
- package/.agent/scripts/closte-helper.sh +5 -0
- package/.agent/scripts/cloudron-helper.sh +321 -0
- package/.agent/scripts/codacy-cli-chunked.sh +581 -0
- package/.agent/scripts/codacy-cli.sh +442 -0
- package/.agent/scripts/code-audit-helper.sh +5 -0
- package/.agent/scripts/coderabbit-cli.sh +417 -0
- package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
- package/.agent/scripts/commands/code-simplifier.md +86 -0
- package/.agent/scripts/commands/full-loop.md +246 -0
- package/.agent/scripts/commands/postflight-loop.md +103 -0
- package/.agent/scripts/commands/recall.md +182 -0
- package/.agent/scripts/commands/remember.md +132 -0
- package/.agent/scripts/commands/save-todo.md +175 -0
- package/.agent/scripts/commands/session-review.md +154 -0
- package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
- package/.agent/scripts/context-builder-helper.sh +522 -0
- package/.agent/scripts/coolify-cli-helper.sh +674 -0
- package/.agent/scripts/coolify-helper.sh +380 -0
- package/.agent/scripts/crawl4ai-examples.sh +401 -0
- package/.agent/scripts/crawl4ai-helper.sh +1078 -0
- package/.agent/scripts/crewai-helper.sh +681 -0
- package/.agent/scripts/dev-browser-helper.sh +513 -0
- package/.agent/scripts/dns-helper.sh +396 -0
- package/.agent/scripts/domain-research-helper.sh +917 -0
- package/.agent/scripts/dspy-helper.sh +285 -0
- package/.agent/scripts/dspyground-helper.sh +291 -0
- package/.agent/scripts/eeat-score-helper.sh +1242 -0
- package/.agent/scripts/efficient-return-fix.sh +92 -0
- package/.agent/scripts/extract-opencode-prompts.sh +128 -0
- package/.agent/scripts/find-missing-returns.sh +113 -0
- package/.agent/scripts/fix-auth-headers.sh +104 -0
- package/.agent/scripts/fix-common-strings.sh +254 -0
- package/.agent/scripts/fix-content-type.sh +100 -0
- package/.agent/scripts/fix-error-messages.sh +130 -0
- package/.agent/scripts/fix-misplaced-returns.sh +74 -0
- package/.agent/scripts/fix-remaining-literals.sh +152 -0
- package/.agent/scripts/fix-return-statements.sh +41 -0
- package/.agent/scripts/fix-s131-default-cases.sh +249 -0
- package/.agent/scripts/fix-sc2155-simple.sh +102 -0
- package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
- package/.agent/scripts/fix-string-literals.sh +273 -0
- package/.agent/scripts/full-loop-helper.sh +773 -0
- package/.agent/scripts/generate-opencode-agents.sh +497 -0
- package/.agent/scripts/generate-opencode-commands.sh +1629 -0
- package/.agent/scripts/generate-skills.sh +366 -0
- package/.agent/scripts/git-platforms-helper.sh +640 -0
- package/.agent/scripts/gitea-cli-helper.sh +743 -0
- package/.agent/scripts/github-cli-helper.sh +702 -0
- package/.agent/scripts/gitlab-cli-helper.sh +682 -0
- package/.agent/scripts/gsc-add-user-helper.sh +325 -0
- package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
- package/.agent/scripts/hetzner-helper.sh +485 -0
- package/.agent/scripts/hostinger-helper.sh +229 -0
- package/.agent/scripts/keyword-research-helper.sh +1815 -0
- package/.agent/scripts/langflow-helper.sh +544 -0
- package/.agent/scripts/linkedin-automation.py +241 -0
- package/.agent/scripts/linter-manager.sh +599 -0
- package/.agent/scripts/linters-local.sh +434 -0
- package/.agent/scripts/list-keys-helper.sh +488 -0
- package/.agent/scripts/local-browser-automation.py +339 -0
- package/.agent/scripts/localhost-helper.sh +744 -0
- package/.agent/scripts/loop-common.sh +806 -0
- package/.agent/scripts/mainwp-helper.sh +728 -0
- package/.agent/scripts/markdown-formatter.sh +338 -0
- package/.agent/scripts/markdown-lint-fix.sh +311 -0
- package/.agent/scripts/mass-fix-returns.sh +58 -0
- package/.agent/scripts/mcp-diagnose.sh +167 -0
- package/.agent/scripts/mcp-inspector-helper.sh +449 -0
- package/.agent/scripts/memory-helper.sh +650 -0
- package/.agent/scripts/monitor-code-review.sh +255 -0
- package/.agent/scripts/onboarding-helper.sh +706 -0
- package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
- package/.agent/scripts/opencode-test-helper.sh +213 -0
- package/.agent/scripts/pagespeed-helper.sh +464 -0
- package/.agent/scripts/pandoc-helper.sh +362 -0
- package/.agent/scripts/postflight-check.sh +555 -0
- package/.agent/scripts/pre-commit-hook.sh +259 -0
- package/.agent/scripts/pre-edit-check.sh +169 -0
- package/.agent/scripts/qlty-cli.sh +356 -0
- package/.agent/scripts/quality-cli-manager.sh +525 -0
- package/.agent/scripts/quality-feedback-helper.sh +462 -0
- package/.agent/scripts/quality-fix.sh +263 -0
- package/.agent/scripts/quality-loop-helper.sh +1108 -0
- package/.agent/scripts/ralph-loop-helper.sh +836 -0
- package/.agent/scripts/ralph-upstream-check.sh +341 -0
- package/.agent/scripts/secretlint-helper.sh +847 -0
- package/.agent/scripts/servers-helper.sh +241 -0
- package/.agent/scripts/ses-helper.sh +619 -0
- package/.agent/scripts/session-review-helper.sh +404 -0
- package/.agent/scripts/setup-linters-wizard.sh +379 -0
- package/.agent/scripts/setup-local-api-keys.sh +330 -0
- package/.agent/scripts/setup-mcp-integrations.sh +472 -0
- package/.agent/scripts/shared-constants.sh +246 -0
- package/.agent/scripts/site-crawler-helper.sh +1487 -0
- package/.agent/scripts/snyk-helper.sh +940 -0
- package/.agent/scripts/sonarcloud-autofix.sh +193 -0
- package/.agent/scripts/sonarcloud-cli.sh +191 -0
- package/.agent/scripts/sonarscanner-cli.sh +455 -0
- package/.agent/scripts/spaceship-helper.sh +747 -0
- package/.agent/scripts/stagehand-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-setup.sh +441 -0
- package/.agent/scripts/stagehand-setup.sh +439 -0
- package/.agent/scripts/system-cleanup.sh +340 -0
- package/.agent/scripts/terminal-title-helper.sh +388 -0
- package/.agent/scripts/terminal-title-setup.sh +549 -0
- package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
- package/.agent/scripts/test-stagehand-integration.sh +309 -0
- package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
- package/.agent/scripts/todo-ready.sh +263 -0
- package/.agent/scripts/tool-version-check.sh +362 -0
- package/.agent/scripts/toon-helper.sh +469 -0
- package/.agent/scripts/twilio-helper.sh +917 -0
- package/.agent/scripts/updown-helper.sh +279 -0
- package/.agent/scripts/validate-mcp-integrations.sh +250 -0
- package/.agent/scripts/validate-version-consistency.sh +131 -0
- package/.agent/scripts/vaultwarden-helper.sh +597 -0
- package/.agent/scripts/vercel-cli-helper.sh +816 -0
- package/.agent/scripts/verify-mirrors.sh +169 -0
- package/.agent/scripts/version-manager.sh +831 -0
- package/.agent/scripts/webhosting-helper.sh +471 -0
- package/.agent/scripts/webhosting-verify.sh +238 -0
- package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
- package/.agent/scripts/worktree-helper.sh +595 -0
- package/.agent/scripts/worktree-sessions.sh +577 -0
- package/.agent/seo/dataforseo.md +215 -0
- package/.agent/seo/domain-research.md +532 -0
- package/.agent/seo/eeat-score.md +659 -0
- package/.agent/seo/google-search-console.md +366 -0
- package/.agent/seo/gsc-sitemaps.md +282 -0
- package/.agent/seo/keyword-research.md +521 -0
- package/.agent/seo/serper.md +278 -0
- package/.agent/seo/site-crawler.md +387 -0
- package/.agent/seo.md +236 -0
- package/.agent/services/accounting/quickfile.md +159 -0
- package/.agent/services/communications/telfon.md +470 -0
- package/.agent/services/communications/twilio.md +569 -0
- package/.agent/services/crm/fluentcrm.md +449 -0
- package/.agent/services/email/ses.md +399 -0
- package/.agent/services/hosting/101domains.md +378 -0
- package/.agent/services/hosting/closte.md +177 -0
- package/.agent/services/hosting/cloudflare.md +251 -0
- package/.agent/services/hosting/cloudron.md +478 -0
- package/.agent/services/hosting/dns-providers.md +335 -0
- package/.agent/services/hosting/domain-purchasing.md +344 -0
- package/.agent/services/hosting/hetzner.md +327 -0
- package/.agent/services/hosting/hostinger.md +287 -0
- package/.agent/services/hosting/localhost.md +419 -0
- package/.agent/services/hosting/spaceship.md +353 -0
- package/.agent/services/hosting/webhosting.md +330 -0
- package/.agent/social-media.md +69 -0
- package/.agent/templates/plans-template.md +114 -0
- package/.agent/templates/prd-template.md +129 -0
- package/.agent/templates/tasks-template.md +108 -0
- package/.agent/templates/todo-template.md +89 -0
- package/.agent/tools/ai-assistants/agno.md +471 -0
- package/.agent/tools/ai-assistants/capsolver.md +326 -0
- package/.agent/tools/ai-assistants/configuration.md +221 -0
- package/.agent/tools/ai-assistants/overview.md +209 -0
- package/.agent/tools/ai-assistants/status.md +171 -0
- package/.agent/tools/ai-assistants/windsurf.md +193 -0
- package/.agent/tools/ai-orchestration/autogen.md +406 -0
- package/.agent/tools/ai-orchestration/crewai.md +445 -0
- package/.agent/tools/ai-orchestration/langflow.md +405 -0
- package/.agent/tools/ai-orchestration/openprose.md +487 -0
- package/.agent/tools/ai-orchestration/overview.md +362 -0
- package/.agent/tools/ai-orchestration/packaging.md +647 -0
- package/.agent/tools/browser/agent-browser.md +464 -0
- package/.agent/tools/browser/browser-automation.md +400 -0
- package/.agent/tools/browser/chrome-devtools.md +282 -0
- package/.agent/tools/browser/crawl4ai-integration.md +422 -0
- package/.agent/tools/browser/crawl4ai-resources.md +277 -0
- package/.agent/tools/browser/crawl4ai-usage.md +416 -0
- package/.agent/tools/browser/crawl4ai.md +585 -0
- package/.agent/tools/browser/dev-browser.md +341 -0
- package/.agent/tools/browser/pagespeed.md +260 -0
- package/.agent/tools/browser/playwright.md +266 -0
- package/.agent/tools/browser/playwriter.md +310 -0
- package/.agent/tools/browser/stagehand-examples.md +456 -0
- package/.agent/tools/browser/stagehand-python.md +483 -0
- package/.agent/tools/browser/stagehand.md +421 -0
- package/.agent/tools/build-agent/agent-review.md +224 -0
- package/.agent/tools/build-agent/build-agent.md +784 -0
- package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
- package/.agent/tools/build-mcp/api-wrapper.md +445 -0
- package/.agent/tools/build-mcp/build-mcp.md +240 -0
- package/.agent/tools/build-mcp/deployment.md +401 -0
- package/.agent/tools/build-mcp/server-patterns.md +632 -0
- package/.agent/tools/build-mcp/transports.md +366 -0
- package/.agent/tools/code-review/auditing.md +383 -0
- package/.agent/tools/code-review/automation.md +219 -0
- package/.agent/tools/code-review/best-practices.md +203 -0
- package/.agent/tools/code-review/codacy.md +151 -0
- package/.agent/tools/code-review/code-simplifier.md +174 -0
- package/.agent/tools/code-review/code-standards.md +309 -0
- package/.agent/tools/code-review/coderabbit.md +101 -0
- package/.agent/tools/code-review/management.md +155 -0
- package/.agent/tools/code-review/qlty.md +248 -0
- package/.agent/tools/code-review/secretlint.md +565 -0
- package/.agent/tools/code-review/setup.md +250 -0
- package/.agent/tools/code-review/snyk.md +563 -0
- package/.agent/tools/code-review/tools.md +230 -0
- package/.agent/tools/content/summarize.md +353 -0
- package/.agent/tools/context/augment-context-engine.md +468 -0
- package/.agent/tools/context/context-builder-agent.md +76 -0
- package/.agent/tools/context/context-builder.md +375 -0
- package/.agent/tools/context/context7.md +371 -0
- package/.agent/tools/context/dspy.md +302 -0
- package/.agent/tools/context/dspyground.md +374 -0
- package/.agent/tools/context/llm-tldr.md +219 -0
- package/.agent/tools/context/osgrep.md +488 -0
- package/.agent/tools/context/prompt-optimization.md +338 -0
- package/.agent/tools/context/toon.md +292 -0
- package/.agent/tools/conversion/pandoc.md +304 -0
- package/.agent/tools/credentials/api-key-management.md +154 -0
- package/.agent/tools/credentials/api-key-setup.md +224 -0
- package/.agent/tools/credentials/environment-variables.md +180 -0
- package/.agent/tools/credentials/vaultwarden.md +382 -0
- package/.agent/tools/data-extraction/outscraper.md +974 -0
- package/.agent/tools/deployment/coolify-cli.md +388 -0
- package/.agent/tools/deployment/coolify-setup.md +353 -0
- package/.agent/tools/deployment/coolify.md +345 -0
- package/.agent/tools/deployment/vercel.md +390 -0
- package/.agent/tools/git/authentication.md +132 -0
- package/.agent/tools/git/gitea-cli.md +193 -0
- package/.agent/tools/git/github-actions.md +207 -0
- package/.agent/tools/git/github-cli.md +223 -0
- package/.agent/tools/git/gitlab-cli.md +190 -0
- package/.agent/tools/git/opencode-github-security.md +350 -0
- package/.agent/tools/git/opencode-github.md +328 -0
- package/.agent/tools/git/opencode-gitlab.md +252 -0
- package/.agent/tools/git/security.md +196 -0
- package/.agent/tools/git.md +207 -0
- package/.agent/tools/opencode/oh-my-opencode.md +375 -0
- package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
- package/.agent/tools/opencode/opencode.md +651 -0
- package/.agent/tools/social-media/bird.md +437 -0
- package/.agent/tools/task-management/beads.md +336 -0
- package/.agent/tools/terminal/terminal-title.md +251 -0
- package/.agent/tools/ui/shadcn.md +196 -0
- package/.agent/tools/ui/ui-skills.md +115 -0
- package/.agent/tools/wordpress/localwp.md +311 -0
- package/.agent/tools/wordpress/mainwp.md +391 -0
- package/.agent/tools/wordpress/scf.md +527 -0
- package/.agent/tools/wordpress/wp-admin.md +729 -0
- package/.agent/tools/wordpress/wp-dev.md +940 -0
- package/.agent/tools/wordpress/wp-preferred.md +398 -0
- package/.agent/tools/wordpress.md +95 -0
- package/.agent/workflows/branch/bugfix.md +63 -0
- package/.agent/workflows/branch/chore.md +95 -0
- package/.agent/workflows/branch/experiment.md +115 -0
- package/.agent/workflows/branch/feature.md +59 -0
- package/.agent/workflows/branch/hotfix.md +98 -0
- package/.agent/workflows/branch/refactor.md +92 -0
- package/.agent/workflows/branch/release.md +96 -0
- package/.agent/workflows/branch.md +347 -0
- package/.agent/workflows/bug-fixing.md +267 -0
- package/.agent/workflows/changelog.md +129 -0
- package/.agent/workflows/code-audit-remote.md +279 -0
- package/.agent/workflows/conversation-starter.md +69 -0
- package/.agent/workflows/error-feedback.md +578 -0
- package/.agent/workflows/feature-development.md +355 -0
- package/.agent/workflows/git-workflow.md +702 -0
- package/.agent/workflows/multi-repo-workspace.md +268 -0
- package/.agent/workflows/plans.md +709 -0
- package/.agent/workflows/postflight.md +604 -0
- package/.agent/workflows/pr.md +571 -0
- package/.agent/workflows/preflight.md +278 -0
- package/.agent/workflows/ralph-loop.md +773 -0
- package/.agent/workflows/release.md +498 -0
- package/.agent/workflows/session-manager.md +254 -0
- package/.agent/workflows/session-review.md +311 -0
- package/.agent/workflows/sql-migrations.md +631 -0
- package/.agent/workflows/version-bump.md +283 -0
- package/.agent/workflows/wiki-update.md +333 -0
- package/.agent/workflows/worktree.md +477 -0
- package/LICENSE +21 -0
- package/README.md +1446 -0
- package/VERSION +1 -0
- package/aidevops.sh +1746 -0
- package/bin/aidevops +21 -0
- package/package.json +75 -0
- package/scripts/npm-postinstall.js +60 -0
- package/setup.sh +2366 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
+
|
|
4
|
+
# Add Missing Return Statements
|
|
5
|
+
# Systematically add return 0 to functions missing explicit returns
|
|
6
|
+
#
|
|
7
|
+
# Author: AI DevOps Framework
|
|
8
|
+
# Version: 1.1.1
|
|
9
|
+
|
|
10
|
+
# Colors for output
|
|
11
|
+
readonly GREEN='\033[0;32m'
|
|
12
|
+
readonly BLUE='\033[0;34m'
|
|
13
|
+
readonly NC='\033[0m'
|
|
14
|
+
|
|
15
|
+
print_success() {
|
|
16
|
+
local _arg1="$1"
|
|
17
|
+
echo -e "${GREEN}✅ $_arg1${NC}"
|
|
18
|
+
return 0
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
print_info() {
|
|
22
|
+
local _arg1="$1"
|
|
23
|
+
echo -e "${BLUE}ℹ️ $_arg1${NC}"
|
|
24
|
+
return 0
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Add return statements to functions missing them
|
|
28
|
+
add_returns_to_file() {
|
|
29
|
+
local file="$1"
|
|
30
|
+
local temp_file
|
|
31
|
+
temp_file=$(mktemp)
|
|
32
|
+
local changes_made=0
|
|
33
|
+
|
|
34
|
+
print_info "Processing: $file"
|
|
35
|
+
|
|
36
|
+
# Create backup
|
|
37
|
+
cp "$file" "${file}.backup"
|
|
38
|
+
|
|
39
|
+
# Process file line by line
|
|
40
|
+
local in_function=0
|
|
41
|
+
local brace_count=0
|
|
42
|
+
local function_has_return=0
|
|
43
|
+
|
|
44
|
+
while IFS= read -r line; do
|
|
45
|
+
# Detect function start
|
|
46
|
+
if [[ $line =~ ^[a-zA-Z_][a-zA-Z0-9_]*\(\)[[:space:]]*\{ ]]; then
|
|
47
|
+
in_function=1
|
|
48
|
+
brace_count=1
|
|
49
|
+
function_has_return=0
|
|
50
|
+
echo "$line" >> "$temp_file"
|
|
51
|
+
continue
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
if [[ $in_function -eq 1 ]]; then
|
|
55
|
+
# Count braces
|
|
56
|
+
local open_braces
|
|
57
|
+
open_braces=$(echo "$line" | grep -o '{' | wc -l)
|
|
58
|
+
local close_braces
|
|
59
|
+
close_braces=$(echo "$line" | grep -o '}' | wc -l)
|
|
60
|
+
|
|
61
|
+
brace_count=$((brace_count + open_braces - close_braces))
|
|
62
|
+
|
|
63
|
+
# Check for return statements
|
|
64
|
+
if [[ $line =~ return[[:space:]]*[0-9]*[[:space:]]*$ ]] || [[ $line =~ exit[[:space:]]+[0-9]+ ]]; then
|
|
65
|
+
function_has_return=1
|
|
66
|
+
fi
|
|
67
|
+
|
|
68
|
+
# Function ends
|
|
69
|
+
if [[ $brace_count -eq 0 ]]; then
|
|
70
|
+
# Add return if missing
|
|
71
|
+
if [[ $function_has_return -eq 0 ]]; then
|
|
72
|
+
# Check if line is just closing brace
|
|
73
|
+
if [[ "$line" == *"}"* ]] && [[ "$line" != *[a-zA-Z0-9]* ]]; then
|
|
74
|
+
echo " return 0" >> "$temp_file"
|
|
75
|
+
echo "$line" >> "$temp_file"
|
|
76
|
+
else
|
|
77
|
+
# Line has content before brace
|
|
78
|
+
echo "${line%\}}" >> "$temp_file"
|
|
79
|
+
echo " return 0" >> "$temp_file"
|
|
80
|
+
echo "}" >> "$temp_file"
|
|
81
|
+
fi
|
|
82
|
+
changes_made=1
|
|
83
|
+
else
|
|
84
|
+
echo "$line" >> "$temp_file"
|
|
85
|
+
fi
|
|
86
|
+
in_function=0
|
|
87
|
+
else
|
|
88
|
+
echo "$line" >> "$temp_file"
|
|
89
|
+
fi
|
|
90
|
+
else
|
|
91
|
+
echo "$line" >> "$temp_file"
|
|
92
|
+
fi
|
|
93
|
+
done < "$file"
|
|
94
|
+
|
|
95
|
+
# Replace original file if changes were made
|
|
96
|
+
if [[ $changes_made -eq 1 ]]; then
|
|
97
|
+
mv "$temp_file" "$file"
|
|
98
|
+
print_success "Added return statements to: $file"
|
|
99
|
+
rm "${file}.backup"
|
|
100
|
+
return 0
|
|
101
|
+
else
|
|
102
|
+
rm "$temp_file"
|
|
103
|
+
mv "${file}.backup" "$file"
|
|
104
|
+
print_info "No return statements needed in: $file"
|
|
105
|
+
return 1
|
|
106
|
+
fi
|
|
107
|
+
return 0
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
# Main execution
|
|
111
|
+
main() {
|
|
112
|
+
local target="${1:-.}"
|
|
113
|
+
|
|
114
|
+
print_info "Adding missing return statements..."
|
|
115
|
+
|
|
116
|
+
local files_fixed=0
|
|
117
|
+
local files_processed=0
|
|
118
|
+
|
|
119
|
+
if [[ -f "$target" && "$target" == *.sh ]]; then
|
|
120
|
+
((files_processed++))
|
|
121
|
+
if add_returns_to_file "$target"; then
|
|
122
|
+
((files_fixed++))
|
|
123
|
+
fi
|
|
124
|
+
elif [[ -d "$target" ]]; then
|
|
125
|
+
find "$target" -name "*.sh" -type f | while read -r file; do
|
|
126
|
+
((files_processed++))
|
|
127
|
+
if add_returns_to_file "$file"; then
|
|
128
|
+
((files_fixed++))
|
|
129
|
+
fi
|
|
130
|
+
done
|
|
131
|
+
else
|
|
132
|
+
print_info "Invalid target: $target"
|
|
133
|
+
return 1
|
|
134
|
+
fi
|
|
135
|
+
|
|
136
|
+
print_success "Summary: $files_fixed/$files_processed files fixed"
|
|
137
|
+
return 0
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
main "$@"
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# shellcheck disable=SC2034,SC2155,SC2317,SC2329,SC2016,SC2181,SC1091,SC2154,SC2015,SC2086,SC2129,SC2030,SC2031,SC2119,SC2120,SC2001,SC2162,SC2088,SC2089,SC2090,SC2029,SC2006,SC2153
|
|
3
|
+
|
|
4
|
+
# Agent Browser Helper - Headless Browser Automation CLI for AI Agents
|
|
5
|
+
# Part of AI DevOps Framework
|
|
6
|
+
# Provides setup and management of agent-browser CLI
|
|
7
|
+
|
|
8
|
+
# Source shared constants and functions
|
|
9
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit
|
|
10
|
+
source "${SCRIPT_DIR}/shared-constants.sh"
|
|
11
|
+
|
|
12
|
+
# Colors for output
|
|
13
|
+
readonly BLUE='\033[0;34m'
|
|
14
|
+
readonly GREEN='\033[0;32m'
|
|
15
|
+
readonly YELLOW='\033[1;33m'
|
|
16
|
+
readonly RED='\033[0;31m'
|
|
17
|
+
readonly NC='\033[0m'
|
|
18
|
+
|
|
19
|
+
# Print functions
|
|
20
|
+
print_info() {
|
|
21
|
+
local msg="$1"
|
|
22
|
+
echo -e "${BLUE}[INFO]${NC} $msg"
|
|
23
|
+
return 0
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
print_success() {
|
|
27
|
+
local msg="$1"
|
|
28
|
+
echo -e "${GREEN}[SUCCESS]${NC} $msg"
|
|
29
|
+
return 0
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
print_warning() {
|
|
33
|
+
local msg="$1"
|
|
34
|
+
echo -e "${YELLOW}[WARNING]${NC} $msg"
|
|
35
|
+
return 0
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
print_error() {
|
|
39
|
+
local msg="$1"
|
|
40
|
+
echo -e "${RED}[ERROR]${NC} $msg" >&2
|
|
41
|
+
return 0
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# Check if agent-browser is installed
|
|
45
|
+
check_installed() {
|
|
46
|
+
if command -v agent-browser &> /dev/null; then
|
|
47
|
+
local version
|
|
48
|
+
version=$(agent-browser --version 2>/dev/null || echo "unknown")
|
|
49
|
+
print_success "agent-browser is installed: $version"
|
|
50
|
+
return 0
|
|
51
|
+
else
|
|
52
|
+
print_warning "agent-browser is not installed"
|
|
53
|
+
return 1
|
|
54
|
+
fi
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# Check if Chromium is installed
|
|
58
|
+
check_chromium() {
|
|
59
|
+
if agent-browser install --check 2>/dev/null; then
|
|
60
|
+
print_success "Chromium browser is installed"
|
|
61
|
+
return 0
|
|
62
|
+
else
|
|
63
|
+
print_warning "Chromium browser not found"
|
|
64
|
+
return 1
|
|
65
|
+
fi
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
# Install agent-browser globally
|
|
69
|
+
install_agent_browser() {
|
|
70
|
+
print_info "Installing agent-browser CLI..."
|
|
71
|
+
|
|
72
|
+
# Check for npm
|
|
73
|
+
if ! command -v npm &> /dev/null; then
|
|
74
|
+
print_error "npm is required. Please install Node.js first."
|
|
75
|
+
return 1
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
# Install globally
|
|
79
|
+
if npm install -g agent-browser; then
|
|
80
|
+
print_success "agent-browser installed successfully"
|
|
81
|
+
else
|
|
82
|
+
print_error "Failed to install agent-browser"
|
|
83
|
+
return 1
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
return 0
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
# Install Chromium browser
|
|
90
|
+
install_chromium() {
|
|
91
|
+
print_info "Installing Chromium browser..."
|
|
92
|
+
|
|
93
|
+
if ! check_installed; then
|
|
94
|
+
print_error "agent-browser must be installed first. Run: $0 install"
|
|
95
|
+
return 1
|
|
96
|
+
fi
|
|
97
|
+
|
|
98
|
+
# Detect platform for deps
|
|
99
|
+
local with_deps=""
|
|
100
|
+
if [[ "$(uname)" == "Linux" ]]; then
|
|
101
|
+
print_info "Linux detected - installing with system dependencies"
|
|
102
|
+
with_deps="--with-deps"
|
|
103
|
+
fi
|
|
104
|
+
|
|
105
|
+
if agent-browser install $with_deps; then
|
|
106
|
+
print_success "Chromium installed successfully"
|
|
107
|
+
else
|
|
108
|
+
print_error "Failed to install Chromium"
|
|
109
|
+
return 1
|
|
110
|
+
fi
|
|
111
|
+
|
|
112
|
+
return 0
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
# Full setup
|
|
116
|
+
setup() {
|
|
117
|
+
print_info "Setting up agent-browser..."
|
|
118
|
+
|
|
119
|
+
if ! check_installed; then
|
|
120
|
+
install_agent_browser || return 1
|
|
121
|
+
fi
|
|
122
|
+
|
|
123
|
+
if ! check_chromium 2>/dev/null; then
|
|
124
|
+
install_chromium || return 1
|
|
125
|
+
fi
|
|
126
|
+
|
|
127
|
+
print_success "agent-browser setup complete!"
|
|
128
|
+
echo ""
|
|
129
|
+
print_info "Quick start:"
|
|
130
|
+
echo " agent-browser open example.com"
|
|
131
|
+
echo " agent-browser snapshot"
|
|
132
|
+
echo " agent-browser click @e1"
|
|
133
|
+
echo " agent-browser close"
|
|
134
|
+
|
|
135
|
+
return 0
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# Show status
|
|
139
|
+
status() {
|
|
140
|
+
echo "=== Agent Browser Status ==="
|
|
141
|
+
echo ""
|
|
142
|
+
|
|
143
|
+
# Check installation
|
|
144
|
+
if check_installed; then
|
|
145
|
+
echo ""
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
# Check Chromium
|
|
149
|
+
check_chromium 2>/dev/null || true
|
|
150
|
+
echo ""
|
|
151
|
+
|
|
152
|
+
# Check active sessions
|
|
153
|
+
print_info "Active sessions:"
|
|
154
|
+
agent-browser session list 2>/dev/null || echo " (none or daemon not running)"
|
|
155
|
+
|
|
156
|
+
return 0
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
# List active sessions
|
|
160
|
+
sessions() {
|
|
161
|
+
print_info "Active browser sessions:"
|
|
162
|
+
agent-browser session list 2>/dev/null || echo "No active sessions"
|
|
163
|
+
return 0
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
# Close all sessions
|
|
167
|
+
close_all() {
|
|
168
|
+
print_info "Closing all browser sessions..."
|
|
169
|
+
|
|
170
|
+
# Get list of sessions and close each
|
|
171
|
+
local sessions
|
|
172
|
+
sessions=$(agent-browser session list 2>/dev/null | grep -E '^\s*\w+' | awk '{print $1}')
|
|
173
|
+
|
|
174
|
+
if [[ -z "$sessions" ]]; then
|
|
175
|
+
print_info "No active sessions to close"
|
|
176
|
+
return 0
|
|
177
|
+
fi
|
|
178
|
+
|
|
179
|
+
for session in $sessions; do
|
|
180
|
+
print_info "Closing session: $session"
|
|
181
|
+
AGENT_BROWSER_SESSION="$session" agent-browser close 2>/dev/null || true
|
|
182
|
+
done
|
|
183
|
+
|
|
184
|
+
print_success "All sessions closed"
|
|
185
|
+
return 0
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
# Run a quick demo
|
|
189
|
+
demo() {
|
|
190
|
+
print_info "Running agent-browser demo..."
|
|
191
|
+
|
|
192
|
+
if ! check_installed; then
|
|
193
|
+
print_error "agent-browser not installed. Run: $0 setup"
|
|
194
|
+
return 1
|
|
195
|
+
fi
|
|
196
|
+
|
|
197
|
+
echo ""
|
|
198
|
+
print_info "1. Opening example.com..."
|
|
199
|
+
agent-browser open https://example.com
|
|
200
|
+
|
|
201
|
+
echo ""
|
|
202
|
+
print_info "2. Getting snapshot (accessibility tree)..."
|
|
203
|
+
agent-browser snapshot -i
|
|
204
|
+
|
|
205
|
+
echo ""
|
|
206
|
+
print_info "3. Getting page title..."
|
|
207
|
+
agent-browser get title
|
|
208
|
+
|
|
209
|
+
echo ""
|
|
210
|
+
print_info "4. Taking screenshot..."
|
|
211
|
+
local screenshot_path="/tmp/agent-browser-demo.png"
|
|
212
|
+
agent-browser screenshot "$screenshot_path"
|
|
213
|
+
print_success "Screenshot saved to: $screenshot_path"
|
|
214
|
+
|
|
215
|
+
echo ""
|
|
216
|
+
print_info "5. Closing browser..."
|
|
217
|
+
agent-browser close
|
|
218
|
+
|
|
219
|
+
print_success "Demo complete!"
|
|
220
|
+
return 0
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
# Show help
|
|
224
|
+
show_help() {
|
|
225
|
+
cat << 'EOF'
|
|
226
|
+
Agent Browser Helper - Headless Browser Automation CLI for AI Agents
|
|
227
|
+
|
|
228
|
+
Usage: agent-browser-helper.sh <command>
|
|
229
|
+
|
|
230
|
+
Commands:
|
|
231
|
+
setup Full setup (install CLI + Chromium)
|
|
232
|
+
install Install agent-browser CLI only
|
|
233
|
+
chromium Install Chromium browser only
|
|
234
|
+
status Show installation and session status
|
|
235
|
+
sessions List active browser sessions
|
|
236
|
+
close-all Close all active sessions
|
|
237
|
+
demo Run a quick demonstration
|
|
238
|
+
help Show this help message
|
|
239
|
+
|
|
240
|
+
Examples:
|
|
241
|
+
# First-time setup
|
|
242
|
+
agent-browser-helper.sh setup
|
|
243
|
+
|
|
244
|
+
# Check status
|
|
245
|
+
agent-browser-helper.sh status
|
|
246
|
+
|
|
247
|
+
# Run demo
|
|
248
|
+
agent-browser-helper.sh demo
|
|
249
|
+
|
|
250
|
+
# Close all sessions
|
|
251
|
+
agent-browser-helper.sh close-all
|
|
252
|
+
|
|
253
|
+
Direct CLI Usage:
|
|
254
|
+
agent-browser open example.com # Navigate to URL
|
|
255
|
+
agent-browser snapshot # Get accessibility tree with refs
|
|
256
|
+
agent-browser click @e2 # Click by ref from snapshot
|
|
257
|
+
agent-browser fill @e3 "text" # Fill input by ref
|
|
258
|
+
agent-browser screenshot page.png # Take screenshot
|
|
259
|
+
agent-browser close # Close browser
|
|
260
|
+
|
|
261
|
+
Multi-Session:
|
|
262
|
+
agent-browser --session s1 open site-a.com
|
|
263
|
+
agent-browser --session s2 open site-b.com
|
|
264
|
+
agent-browser session list
|
|
265
|
+
|
|
266
|
+
For full documentation, see:
|
|
267
|
+
~/.aidevops/agents/tools/browser/agent-browser.md
|
|
268
|
+
https://github.com/vercel-labs/agent-browser
|
|
269
|
+
EOF
|
|
270
|
+
return 0
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
# Main entry point
|
|
274
|
+
main() {
|
|
275
|
+
local command="${1:-help}"
|
|
276
|
+
|
|
277
|
+
case "$command" in
|
|
278
|
+
setup)
|
|
279
|
+
setup
|
|
280
|
+
;;
|
|
281
|
+
install)
|
|
282
|
+
install_agent_browser
|
|
283
|
+
;;
|
|
284
|
+
chromium)
|
|
285
|
+
install_chromium
|
|
286
|
+
;;
|
|
287
|
+
status)
|
|
288
|
+
status
|
|
289
|
+
;;
|
|
290
|
+
sessions)
|
|
291
|
+
sessions
|
|
292
|
+
;;
|
|
293
|
+
close-all)
|
|
294
|
+
close_all
|
|
295
|
+
;;
|
|
296
|
+
demo)
|
|
297
|
+
demo
|
|
298
|
+
;;
|
|
299
|
+
help|--help|-h)
|
|
300
|
+
show_help
|
|
301
|
+
;;
|
|
302
|
+
*)
|
|
303
|
+
print_error "Unknown command: $command"
|
|
304
|
+
echo ""
|
|
305
|
+
show_help
|
|
306
|
+
return 1
|
|
307
|
+
;;
|
|
308
|
+
esac
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
main "$@"
|