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.
Files changed (329) hide show
  1. package/.agent/AGENTS.md +614 -0
  2. package/.agent/accounts.md +65 -0
  3. package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
  4. package/.agent/aidevops/api-integrations.md +335 -0
  5. package/.agent/aidevops/architecture.md +510 -0
  6. package/.agent/aidevops/configs.md +274 -0
  7. package/.agent/aidevops/docs.md +244 -0
  8. package/.agent/aidevops/extension.md +311 -0
  9. package/.agent/aidevops/mcp-integrations.md +340 -0
  10. package/.agent/aidevops/mcp-troubleshooting.md +162 -0
  11. package/.agent/aidevops/memory-patterns.md +172 -0
  12. package/.agent/aidevops/providers.md +217 -0
  13. package/.agent/aidevops/recommendations.md +321 -0
  14. package/.agent/aidevops/requirements.md +301 -0
  15. package/.agent/aidevops/resources.md +214 -0
  16. package/.agent/aidevops/security-requirements.md +174 -0
  17. package/.agent/aidevops/security.md +350 -0
  18. package/.agent/aidevops/service-links.md +400 -0
  19. package/.agent/aidevops/services.md +357 -0
  20. package/.agent/aidevops/setup.md +153 -0
  21. package/.agent/aidevops/troubleshooting.md +389 -0
  22. package/.agent/aidevops.md +124 -0
  23. package/.agent/build-plus.md +244 -0
  24. package/.agent/content/guidelines.md +109 -0
  25. package/.agent/content.md +87 -0
  26. package/.agent/health.md +59 -0
  27. package/.agent/legal.md +59 -0
  28. package/.agent/loop-state/full-loop.local.md +16 -0
  29. package/.agent/loop-state/ralph-loop.local.md +10 -0
  30. package/.agent/marketing.md +440 -0
  31. package/.agent/memory/README.md +260 -0
  32. package/.agent/onboarding.md +796 -0
  33. package/.agent/plan-plus.md +245 -0
  34. package/.agent/research.md +100 -0
  35. package/.agent/sales.md +333 -0
  36. package/.agent/scripts/101domains-helper.sh +701 -0
  37. package/.agent/scripts/add-missing-returns.sh +140 -0
  38. package/.agent/scripts/agent-browser-helper.sh +311 -0
  39. package/.agent/scripts/agno-setup.sh +712 -0
  40. package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
  41. package/.agent/scripts/aidevops-update-check.sh +71 -0
  42. package/.agent/scripts/ampcode-cli.sh +522 -0
  43. package/.agent/scripts/auto-version-bump.sh +156 -0
  44. package/.agent/scripts/autogen-helper.sh +512 -0
  45. package/.agent/scripts/beads-sync-helper.sh +596 -0
  46. package/.agent/scripts/closte-helper.sh +5 -0
  47. package/.agent/scripts/cloudron-helper.sh +321 -0
  48. package/.agent/scripts/codacy-cli-chunked.sh +581 -0
  49. package/.agent/scripts/codacy-cli.sh +442 -0
  50. package/.agent/scripts/code-audit-helper.sh +5 -0
  51. package/.agent/scripts/coderabbit-cli.sh +417 -0
  52. package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
  53. package/.agent/scripts/commands/code-simplifier.md +86 -0
  54. package/.agent/scripts/commands/full-loop.md +246 -0
  55. package/.agent/scripts/commands/postflight-loop.md +103 -0
  56. package/.agent/scripts/commands/recall.md +182 -0
  57. package/.agent/scripts/commands/remember.md +132 -0
  58. package/.agent/scripts/commands/save-todo.md +175 -0
  59. package/.agent/scripts/commands/session-review.md +154 -0
  60. package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
  61. package/.agent/scripts/context-builder-helper.sh +522 -0
  62. package/.agent/scripts/coolify-cli-helper.sh +674 -0
  63. package/.agent/scripts/coolify-helper.sh +380 -0
  64. package/.agent/scripts/crawl4ai-examples.sh +401 -0
  65. package/.agent/scripts/crawl4ai-helper.sh +1078 -0
  66. package/.agent/scripts/crewai-helper.sh +681 -0
  67. package/.agent/scripts/dev-browser-helper.sh +513 -0
  68. package/.agent/scripts/dns-helper.sh +396 -0
  69. package/.agent/scripts/domain-research-helper.sh +917 -0
  70. package/.agent/scripts/dspy-helper.sh +285 -0
  71. package/.agent/scripts/dspyground-helper.sh +291 -0
  72. package/.agent/scripts/eeat-score-helper.sh +1242 -0
  73. package/.agent/scripts/efficient-return-fix.sh +92 -0
  74. package/.agent/scripts/extract-opencode-prompts.sh +128 -0
  75. package/.agent/scripts/find-missing-returns.sh +113 -0
  76. package/.agent/scripts/fix-auth-headers.sh +104 -0
  77. package/.agent/scripts/fix-common-strings.sh +254 -0
  78. package/.agent/scripts/fix-content-type.sh +100 -0
  79. package/.agent/scripts/fix-error-messages.sh +130 -0
  80. package/.agent/scripts/fix-misplaced-returns.sh +74 -0
  81. package/.agent/scripts/fix-remaining-literals.sh +152 -0
  82. package/.agent/scripts/fix-return-statements.sh +41 -0
  83. package/.agent/scripts/fix-s131-default-cases.sh +249 -0
  84. package/.agent/scripts/fix-sc2155-simple.sh +102 -0
  85. package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
  86. package/.agent/scripts/fix-string-literals.sh +273 -0
  87. package/.agent/scripts/full-loop-helper.sh +773 -0
  88. package/.agent/scripts/generate-opencode-agents.sh +497 -0
  89. package/.agent/scripts/generate-opencode-commands.sh +1629 -0
  90. package/.agent/scripts/generate-skills.sh +366 -0
  91. package/.agent/scripts/git-platforms-helper.sh +640 -0
  92. package/.agent/scripts/gitea-cli-helper.sh +743 -0
  93. package/.agent/scripts/github-cli-helper.sh +702 -0
  94. package/.agent/scripts/gitlab-cli-helper.sh +682 -0
  95. package/.agent/scripts/gsc-add-user-helper.sh +325 -0
  96. package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
  97. package/.agent/scripts/hetzner-helper.sh +485 -0
  98. package/.agent/scripts/hostinger-helper.sh +229 -0
  99. package/.agent/scripts/keyword-research-helper.sh +1815 -0
  100. package/.agent/scripts/langflow-helper.sh +544 -0
  101. package/.agent/scripts/linkedin-automation.py +241 -0
  102. package/.agent/scripts/linter-manager.sh +599 -0
  103. package/.agent/scripts/linters-local.sh +434 -0
  104. package/.agent/scripts/list-keys-helper.sh +488 -0
  105. package/.agent/scripts/local-browser-automation.py +339 -0
  106. package/.agent/scripts/localhost-helper.sh +744 -0
  107. package/.agent/scripts/loop-common.sh +806 -0
  108. package/.agent/scripts/mainwp-helper.sh +728 -0
  109. package/.agent/scripts/markdown-formatter.sh +338 -0
  110. package/.agent/scripts/markdown-lint-fix.sh +311 -0
  111. package/.agent/scripts/mass-fix-returns.sh +58 -0
  112. package/.agent/scripts/mcp-diagnose.sh +167 -0
  113. package/.agent/scripts/mcp-inspector-helper.sh +449 -0
  114. package/.agent/scripts/memory-helper.sh +650 -0
  115. package/.agent/scripts/monitor-code-review.sh +255 -0
  116. package/.agent/scripts/onboarding-helper.sh +706 -0
  117. package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
  118. package/.agent/scripts/opencode-test-helper.sh +213 -0
  119. package/.agent/scripts/pagespeed-helper.sh +464 -0
  120. package/.agent/scripts/pandoc-helper.sh +362 -0
  121. package/.agent/scripts/postflight-check.sh +555 -0
  122. package/.agent/scripts/pre-commit-hook.sh +259 -0
  123. package/.agent/scripts/pre-edit-check.sh +169 -0
  124. package/.agent/scripts/qlty-cli.sh +356 -0
  125. package/.agent/scripts/quality-cli-manager.sh +525 -0
  126. package/.agent/scripts/quality-feedback-helper.sh +462 -0
  127. package/.agent/scripts/quality-fix.sh +263 -0
  128. package/.agent/scripts/quality-loop-helper.sh +1108 -0
  129. package/.agent/scripts/ralph-loop-helper.sh +836 -0
  130. package/.agent/scripts/ralph-upstream-check.sh +341 -0
  131. package/.agent/scripts/secretlint-helper.sh +847 -0
  132. package/.agent/scripts/servers-helper.sh +241 -0
  133. package/.agent/scripts/ses-helper.sh +619 -0
  134. package/.agent/scripts/session-review-helper.sh +404 -0
  135. package/.agent/scripts/setup-linters-wizard.sh +379 -0
  136. package/.agent/scripts/setup-local-api-keys.sh +330 -0
  137. package/.agent/scripts/setup-mcp-integrations.sh +472 -0
  138. package/.agent/scripts/shared-constants.sh +246 -0
  139. package/.agent/scripts/site-crawler-helper.sh +1487 -0
  140. package/.agent/scripts/snyk-helper.sh +940 -0
  141. package/.agent/scripts/sonarcloud-autofix.sh +193 -0
  142. package/.agent/scripts/sonarcloud-cli.sh +191 -0
  143. package/.agent/scripts/sonarscanner-cli.sh +455 -0
  144. package/.agent/scripts/spaceship-helper.sh +747 -0
  145. package/.agent/scripts/stagehand-helper.sh +321 -0
  146. package/.agent/scripts/stagehand-python-helper.sh +321 -0
  147. package/.agent/scripts/stagehand-python-setup.sh +441 -0
  148. package/.agent/scripts/stagehand-setup.sh +439 -0
  149. package/.agent/scripts/system-cleanup.sh +340 -0
  150. package/.agent/scripts/terminal-title-helper.sh +388 -0
  151. package/.agent/scripts/terminal-title-setup.sh +549 -0
  152. package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
  153. package/.agent/scripts/test-stagehand-integration.sh +309 -0
  154. package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
  155. package/.agent/scripts/todo-ready.sh +263 -0
  156. package/.agent/scripts/tool-version-check.sh +362 -0
  157. package/.agent/scripts/toon-helper.sh +469 -0
  158. package/.agent/scripts/twilio-helper.sh +917 -0
  159. package/.agent/scripts/updown-helper.sh +279 -0
  160. package/.agent/scripts/validate-mcp-integrations.sh +250 -0
  161. package/.agent/scripts/validate-version-consistency.sh +131 -0
  162. package/.agent/scripts/vaultwarden-helper.sh +597 -0
  163. package/.agent/scripts/vercel-cli-helper.sh +816 -0
  164. package/.agent/scripts/verify-mirrors.sh +169 -0
  165. package/.agent/scripts/version-manager.sh +831 -0
  166. package/.agent/scripts/webhosting-helper.sh +471 -0
  167. package/.agent/scripts/webhosting-verify.sh +238 -0
  168. package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
  169. package/.agent/scripts/worktree-helper.sh +595 -0
  170. package/.agent/scripts/worktree-sessions.sh +577 -0
  171. package/.agent/seo/dataforseo.md +215 -0
  172. package/.agent/seo/domain-research.md +532 -0
  173. package/.agent/seo/eeat-score.md +659 -0
  174. package/.agent/seo/google-search-console.md +366 -0
  175. package/.agent/seo/gsc-sitemaps.md +282 -0
  176. package/.agent/seo/keyword-research.md +521 -0
  177. package/.agent/seo/serper.md +278 -0
  178. package/.agent/seo/site-crawler.md +387 -0
  179. package/.agent/seo.md +236 -0
  180. package/.agent/services/accounting/quickfile.md +159 -0
  181. package/.agent/services/communications/telfon.md +470 -0
  182. package/.agent/services/communications/twilio.md +569 -0
  183. package/.agent/services/crm/fluentcrm.md +449 -0
  184. package/.agent/services/email/ses.md +399 -0
  185. package/.agent/services/hosting/101domains.md +378 -0
  186. package/.agent/services/hosting/closte.md +177 -0
  187. package/.agent/services/hosting/cloudflare.md +251 -0
  188. package/.agent/services/hosting/cloudron.md +478 -0
  189. package/.agent/services/hosting/dns-providers.md +335 -0
  190. package/.agent/services/hosting/domain-purchasing.md +344 -0
  191. package/.agent/services/hosting/hetzner.md +327 -0
  192. package/.agent/services/hosting/hostinger.md +287 -0
  193. package/.agent/services/hosting/localhost.md +419 -0
  194. package/.agent/services/hosting/spaceship.md +353 -0
  195. package/.agent/services/hosting/webhosting.md +330 -0
  196. package/.agent/social-media.md +69 -0
  197. package/.agent/templates/plans-template.md +114 -0
  198. package/.agent/templates/prd-template.md +129 -0
  199. package/.agent/templates/tasks-template.md +108 -0
  200. package/.agent/templates/todo-template.md +89 -0
  201. package/.agent/tools/ai-assistants/agno.md +471 -0
  202. package/.agent/tools/ai-assistants/capsolver.md +326 -0
  203. package/.agent/tools/ai-assistants/configuration.md +221 -0
  204. package/.agent/tools/ai-assistants/overview.md +209 -0
  205. package/.agent/tools/ai-assistants/status.md +171 -0
  206. package/.agent/tools/ai-assistants/windsurf.md +193 -0
  207. package/.agent/tools/ai-orchestration/autogen.md +406 -0
  208. package/.agent/tools/ai-orchestration/crewai.md +445 -0
  209. package/.agent/tools/ai-orchestration/langflow.md +405 -0
  210. package/.agent/tools/ai-orchestration/openprose.md +487 -0
  211. package/.agent/tools/ai-orchestration/overview.md +362 -0
  212. package/.agent/tools/ai-orchestration/packaging.md +647 -0
  213. package/.agent/tools/browser/agent-browser.md +464 -0
  214. package/.agent/tools/browser/browser-automation.md +400 -0
  215. package/.agent/tools/browser/chrome-devtools.md +282 -0
  216. package/.agent/tools/browser/crawl4ai-integration.md +422 -0
  217. package/.agent/tools/browser/crawl4ai-resources.md +277 -0
  218. package/.agent/tools/browser/crawl4ai-usage.md +416 -0
  219. package/.agent/tools/browser/crawl4ai.md +585 -0
  220. package/.agent/tools/browser/dev-browser.md +341 -0
  221. package/.agent/tools/browser/pagespeed.md +260 -0
  222. package/.agent/tools/browser/playwright.md +266 -0
  223. package/.agent/tools/browser/playwriter.md +310 -0
  224. package/.agent/tools/browser/stagehand-examples.md +456 -0
  225. package/.agent/tools/browser/stagehand-python.md +483 -0
  226. package/.agent/tools/browser/stagehand.md +421 -0
  227. package/.agent/tools/build-agent/agent-review.md +224 -0
  228. package/.agent/tools/build-agent/build-agent.md +784 -0
  229. package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
  230. package/.agent/tools/build-mcp/api-wrapper.md +445 -0
  231. package/.agent/tools/build-mcp/build-mcp.md +240 -0
  232. package/.agent/tools/build-mcp/deployment.md +401 -0
  233. package/.agent/tools/build-mcp/server-patterns.md +632 -0
  234. package/.agent/tools/build-mcp/transports.md +366 -0
  235. package/.agent/tools/code-review/auditing.md +383 -0
  236. package/.agent/tools/code-review/automation.md +219 -0
  237. package/.agent/tools/code-review/best-practices.md +203 -0
  238. package/.agent/tools/code-review/codacy.md +151 -0
  239. package/.agent/tools/code-review/code-simplifier.md +174 -0
  240. package/.agent/tools/code-review/code-standards.md +309 -0
  241. package/.agent/tools/code-review/coderabbit.md +101 -0
  242. package/.agent/tools/code-review/management.md +155 -0
  243. package/.agent/tools/code-review/qlty.md +248 -0
  244. package/.agent/tools/code-review/secretlint.md +565 -0
  245. package/.agent/tools/code-review/setup.md +250 -0
  246. package/.agent/tools/code-review/snyk.md +563 -0
  247. package/.agent/tools/code-review/tools.md +230 -0
  248. package/.agent/tools/content/summarize.md +353 -0
  249. package/.agent/tools/context/augment-context-engine.md +468 -0
  250. package/.agent/tools/context/context-builder-agent.md +76 -0
  251. package/.agent/tools/context/context-builder.md +375 -0
  252. package/.agent/tools/context/context7.md +371 -0
  253. package/.agent/tools/context/dspy.md +302 -0
  254. package/.agent/tools/context/dspyground.md +374 -0
  255. package/.agent/tools/context/llm-tldr.md +219 -0
  256. package/.agent/tools/context/osgrep.md +488 -0
  257. package/.agent/tools/context/prompt-optimization.md +338 -0
  258. package/.agent/tools/context/toon.md +292 -0
  259. package/.agent/tools/conversion/pandoc.md +304 -0
  260. package/.agent/tools/credentials/api-key-management.md +154 -0
  261. package/.agent/tools/credentials/api-key-setup.md +224 -0
  262. package/.agent/tools/credentials/environment-variables.md +180 -0
  263. package/.agent/tools/credentials/vaultwarden.md +382 -0
  264. package/.agent/tools/data-extraction/outscraper.md +974 -0
  265. package/.agent/tools/deployment/coolify-cli.md +388 -0
  266. package/.agent/tools/deployment/coolify-setup.md +353 -0
  267. package/.agent/tools/deployment/coolify.md +345 -0
  268. package/.agent/tools/deployment/vercel.md +390 -0
  269. package/.agent/tools/git/authentication.md +132 -0
  270. package/.agent/tools/git/gitea-cli.md +193 -0
  271. package/.agent/tools/git/github-actions.md +207 -0
  272. package/.agent/tools/git/github-cli.md +223 -0
  273. package/.agent/tools/git/gitlab-cli.md +190 -0
  274. package/.agent/tools/git/opencode-github-security.md +350 -0
  275. package/.agent/tools/git/opencode-github.md +328 -0
  276. package/.agent/tools/git/opencode-gitlab.md +252 -0
  277. package/.agent/tools/git/security.md +196 -0
  278. package/.agent/tools/git.md +207 -0
  279. package/.agent/tools/opencode/oh-my-opencode.md +375 -0
  280. package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
  281. package/.agent/tools/opencode/opencode.md +651 -0
  282. package/.agent/tools/social-media/bird.md +437 -0
  283. package/.agent/tools/task-management/beads.md +336 -0
  284. package/.agent/tools/terminal/terminal-title.md +251 -0
  285. package/.agent/tools/ui/shadcn.md +196 -0
  286. package/.agent/tools/ui/ui-skills.md +115 -0
  287. package/.agent/tools/wordpress/localwp.md +311 -0
  288. package/.agent/tools/wordpress/mainwp.md +391 -0
  289. package/.agent/tools/wordpress/scf.md +527 -0
  290. package/.agent/tools/wordpress/wp-admin.md +729 -0
  291. package/.agent/tools/wordpress/wp-dev.md +940 -0
  292. package/.agent/tools/wordpress/wp-preferred.md +398 -0
  293. package/.agent/tools/wordpress.md +95 -0
  294. package/.agent/workflows/branch/bugfix.md +63 -0
  295. package/.agent/workflows/branch/chore.md +95 -0
  296. package/.agent/workflows/branch/experiment.md +115 -0
  297. package/.agent/workflows/branch/feature.md +59 -0
  298. package/.agent/workflows/branch/hotfix.md +98 -0
  299. package/.agent/workflows/branch/refactor.md +92 -0
  300. package/.agent/workflows/branch/release.md +96 -0
  301. package/.agent/workflows/branch.md +347 -0
  302. package/.agent/workflows/bug-fixing.md +267 -0
  303. package/.agent/workflows/changelog.md +129 -0
  304. package/.agent/workflows/code-audit-remote.md +279 -0
  305. package/.agent/workflows/conversation-starter.md +69 -0
  306. package/.agent/workflows/error-feedback.md +578 -0
  307. package/.agent/workflows/feature-development.md +355 -0
  308. package/.agent/workflows/git-workflow.md +702 -0
  309. package/.agent/workflows/multi-repo-workspace.md +268 -0
  310. package/.agent/workflows/plans.md +709 -0
  311. package/.agent/workflows/postflight.md +604 -0
  312. package/.agent/workflows/pr.md +571 -0
  313. package/.agent/workflows/preflight.md +278 -0
  314. package/.agent/workflows/ralph-loop.md +773 -0
  315. package/.agent/workflows/release.md +498 -0
  316. package/.agent/workflows/session-manager.md +254 -0
  317. package/.agent/workflows/session-review.md +311 -0
  318. package/.agent/workflows/sql-migrations.md +631 -0
  319. package/.agent/workflows/version-bump.md +283 -0
  320. package/.agent/workflows/wiki-update.md +333 -0
  321. package/.agent/workflows/worktree.md +477 -0
  322. package/LICENSE +21 -0
  323. package/README.md +1446 -0
  324. package/VERSION +1 -0
  325. package/aidevops.sh +1746 -0
  326. package/bin/aidevops +21 -0
  327. package/package.json +75 -0
  328. package/scripts/npm-postinstall.js +60 -0
  329. 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 "$@"