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,321 @@
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
+ # Stagehand Helper - AI Browser Automation Framework Integration
5
+ # Part of AI DevOps Framework
6
+ # Provides local setup and usage of Stagehand for browser automation
7
+
8
+ # Source shared constants and functions
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
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
+ # Stagehand-specific constants
45
+ readonly STAGEHAND_CONFIG_DIR="${HOME}/.aidevops/stagehand"
46
+ readonly STAGEHAND_EXAMPLES_DIR="${STAGEHAND_CONFIG_DIR}/examples"
47
+ readonly STAGEHAND_LOGS_DIR="${STAGEHAND_CONFIG_DIR}/logs"
48
+ readonly STAGEHAND_CACHE_DIR="${STAGEHAND_CONFIG_DIR}/cache"
49
+
50
+ # Create necessary directories
51
+ create_stagehand_directories() {
52
+ local directories=(
53
+ "$STAGEHAND_CONFIG_DIR"
54
+ "$STAGEHAND_EXAMPLES_DIR"
55
+ "$STAGEHAND_LOGS_DIR"
56
+ "$STAGEHAND_CACHE_DIR"
57
+ )
58
+
59
+ for dir in "${directories[@]}"; do
60
+ mkdir -p "$dir"
61
+ done
62
+
63
+ print_success "Created Stagehand directories"
64
+ return 0
65
+ }
66
+
67
+ # Install Stagehand and dependencies
68
+ install_stagehand() {
69
+ print_info "Installing Stagehand AI Browser Automation Framework..."
70
+
71
+ # Check for Bun (preferred) or Node.js
72
+ local use_bun=false
73
+ if command -v bun &> /dev/null; then
74
+ use_bun=true
75
+ print_success "Using Bun $(bun --version)"
76
+ elif command -v node &> /dev/null; then
77
+ if ! command -v npm &> /dev/null; then
78
+ print_error "npm is required but not installed. Please install npm or Bun."
79
+ return 1
80
+ fi
81
+ print_info "Using Node.js (install Bun for faster setup: curl -fsSL https://bun.sh/install | bash)"
82
+ else
83
+ print_error "Bun or Node.js is required. Install Bun: curl -fsSL https://bun.sh/install | bash"
84
+ return 1
85
+ fi
86
+
87
+ # Create project directory
88
+ create_stagehand_directories
89
+
90
+ # Initialize project if needed
91
+ if [[ ! -f "${STAGEHAND_CONFIG_DIR}/package.json" ]]; then
92
+ print_info "Initializing project..."
93
+ cd "$STAGEHAND_CONFIG_DIR" || return 1
94
+ if [[ "$use_bun" == "true" ]]; then
95
+ bun init -y > /dev/null 2>&1
96
+ else
97
+ npm init -y > /dev/null 2>&1
98
+ fi
99
+ fi
100
+
101
+ # Install Stagehand
102
+ print_info "Installing @browserbasehq/stagehand..."
103
+ cd "$STAGEHAND_CONFIG_DIR" || return 1
104
+ if [[ "$use_bun" == "true" ]]; then
105
+ bun add @browserbasehq/stagehand
106
+ else
107
+ # NOSONAR - npm scripts required for Playwright browser automation binaries
108
+ npm install @browserbasehq/stagehand
109
+ fi
110
+
111
+ # Install additional dependencies for better functionality
112
+ print_info "Installing additional dependencies..."
113
+ if [[ "$use_bun" == "true" ]]; then
114
+ bun add zod dotenv
115
+ else
116
+ # NOSONAR - npm scripts required for dependency compilation
117
+ npm install zod dotenv
118
+ fi
119
+
120
+ print_success "Stagehand installation completed"
121
+ return 0
122
+ }
123
+
124
+ # Create example Stagehand script
125
+ create_example_script() {
126
+ local example_file="${STAGEHAND_EXAMPLES_DIR}/basic-example.js"
127
+
128
+ cat > "$example_file" << 'EOF'
129
+ // Basic Stagehand Example
130
+ // AI-powered browser automation with natural language
131
+
132
+ import { Stagehand } from "@browserbasehq/stagehand";
133
+ import { z } from "zod";
134
+
135
+ async function main() {
136
+ // Initialize Stagehand
137
+ const stagehand = new Stagehand({
138
+ env: "LOCAL", // Use local browser
139
+ verbose: 1,
140
+ debugDom: true
141
+ });
142
+
143
+ try {
144
+ // Initialize browser context
145
+ await stagehand.init();
146
+
147
+ // Navigate to a website
148
+ await stagehand.page.goto("https://example.com");
149
+
150
+ // Use natural language to interact with the page
151
+ await stagehand.act("click on the 'More information...' link");
152
+
153
+ // Extract structured data from the page
154
+ const pageInfo = await stagehand.extract(
155
+ "extract the page title and main heading",
156
+ z.object({
157
+ title: z.string().describe("The page title"),
158
+ heading: z.string().describe("The main heading text")
159
+ })
160
+ );
161
+
162
+ console.log("Extracted data:", pageInfo);
163
+
164
+ // Use observe to discover available actions
165
+ const actions = await stagehand.observe("find all clickable buttons");
166
+ console.log("Available actions:", actions);
167
+
168
+ } catch (error) {
169
+ console.error("Error during automation:", error);
170
+ } finally {
171
+ // Clean up
172
+ await stagehand.close();
173
+ }
174
+ return 0
175
+ }
176
+
177
+ // Run the example
178
+ main().catch(console.error);
179
+ EOF
180
+
181
+ print_success "Created basic example script at: $example_file"
182
+ return 0
183
+ }
184
+
185
+ # Create environment configuration
186
+ create_env_config() {
187
+ local env_file="${STAGEHAND_CONFIG_DIR}/.env"
188
+
189
+ if [[ -f "$env_file" ]]; then
190
+ print_info "Environment file already exists: $env_file"
191
+ return 0
192
+ fi
193
+
194
+ cat > "$env_file" << 'EOF'
195
+ # Stagehand Configuration
196
+ # Copy this file and customize for your needs
197
+
198
+ # OpenAI API Key (for AI-powered actions)
199
+ OPENAI_API_KEY=your_openai_api_key_here
200
+
201
+ # Anthropic API Key (alternative AI provider)
202
+ ANTHROPIC_API_KEY=your_anthropic_api_key_here
203
+
204
+ # Browserbase credentials (optional, for cloud browsers)
205
+ BROWSERBASE_API_KEY=your_browserbase_api_key_here
206
+ BROWSERBASE_PROJECT_ID=your_browserbase_project_id_here
207
+
208
+ # Browser configuration
209
+ STAGEHAND_ENV=LOCAL
210
+ STAGEHAND_HEADLESS=false
211
+ STAGEHAND_VERBOSE=1
212
+ STAGEHAND_DEBUG_DOM=true
213
+
214
+ # Logging
215
+ STAGEHAND_LOG_LEVEL=info
216
+ STAGEHAND_LOG_FILE=stagehand.log
217
+ EOF
218
+
219
+ print_success "Created environment configuration at: $env_file"
220
+ print_info "Please edit $env_file to add your API keys"
221
+ return 0
222
+ }
223
+
224
+ # Show help information
225
+ show_help() {
226
+ cat << EOF
227
+ Stagehand Helper - AI Browser Automation Framework Integration
228
+
229
+ USAGE:
230
+ $0 [COMMAND] [OPTIONS]
231
+
232
+ COMMANDS:
233
+ help Show this help message
234
+ install Install Stagehand and dependencies
235
+ setup Complete setup (install + configure)
236
+ create-example Create basic example script
237
+ run-example Run the basic example script
238
+ status Check Stagehand installation status
239
+ logs Show recent Stagehand logs
240
+ clean Clean cache and temporary files
241
+
242
+ EXAMPLES:
243
+ $0 install # Install Stagehand
244
+ $0 setup # Complete setup
245
+ $0 run-example # Run basic example
246
+ $0 status # Check installation
247
+
248
+ DOCUMENTATION:
249
+ For detailed documentation, see: .agent/STAGEHAND.md
250
+ Official docs: https://docs.stagehand.dev
251
+ GitHub: https://github.com/browserbase/stagehand
252
+
253
+ EOF
254
+ return 0
255
+ }
256
+
257
+ # Main function
258
+ main() {
259
+ local command="${1:-help}"
260
+
261
+ case "$command" in
262
+ "help")
263
+ show_help
264
+ ;;
265
+ "install")
266
+ install_stagehand
267
+ ;;
268
+ "setup")
269
+ install_stagehand && create_env_config && create_example_script
270
+ ;;
271
+ "create-example")
272
+ create_stagehand_directories && create_example_script
273
+ ;;
274
+ "run-example")
275
+ if [[ -f "${STAGEHAND_EXAMPLES_DIR}/basic-example.js" ]]; then
276
+ cd "$STAGEHAND_CONFIG_DIR" || return 1
277
+ node "${STAGEHAND_EXAMPLES_DIR}/basic-example.js"
278
+ else
279
+ print_error "Example script not found. Run '$0 create-example' first."
280
+ return 1
281
+ fi
282
+ ;;
283
+ "status")
284
+ if [[ -d "$STAGEHAND_CONFIG_DIR" ]] && [[ -f "${STAGEHAND_CONFIG_DIR}/package.json" ]]; then
285
+ print_success "Stagehand is installed at: $STAGEHAND_CONFIG_DIR"
286
+ if command -v node &> /dev/null; then
287
+ print_info "Node.js version: $(node --version)"
288
+ fi
289
+ if command -v npm &> /dev/null; then
290
+ print_info "npm version: $(npm --version)"
291
+ fi
292
+ else
293
+ print_error "Stagehand is not installed. Run '$0 install' first."
294
+ return 1
295
+ fi
296
+ ;;
297
+ "logs")
298
+ if [[ -f "${STAGEHAND_LOGS_DIR}/stagehand.log" ]]; then
299
+ tail -n 50 "${STAGEHAND_LOGS_DIR}/stagehand.log"
300
+ else
301
+ print_info "No log files found"
302
+ fi
303
+ ;;
304
+ "clean")
305
+ print_info "Cleaning Stagehand cache and temporary files..."
306
+ rm -rf "${STAGEHAND_CACHE_DIR:?}"/*
307
+ rm -rf "${STAGEHAND_LOGS_DIR:?}"/*
308
+ print_success "Cleanup completed"
309
+ ;;
310
+ *)
311
+ print_error "$ERROR_UNKNOWN_COMMAND $command"
312
+ show_help
313
+ return 1
314
+ ;;
315
+ esac
316
+
317
+ return 0
318
+ }
319
+
320
+ # Execute main function with all arguments
321
+ main "$@"
@@ -0,0 +1,321 @@
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
+ # Stagehand Python Helper - AI Browser Automation Framework Integration
5
+ # Part of AI DevOps Framework
6
+ # Provides local setup and usage of Stagehand Python for browser automation
7
+
8
+ # Source shared constants and functions
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
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
+ # Stagehand Python-specific constants
45
+ readonly STAGEHAND_PYTHON_CONFIG_DIR="${HOME}/.aidevops/stagehand-python"
46
+ readonly STAGEHAND_PYTHON_EXAMPLES_DIR="${STAGEHAND_PYTHON_CONFIG_DIR}/examples"
47
+ readonly STAGEHAND_PYTHON_LOGS_DIR="${STAGEHAND_PYTHON_CONFIG_DIR}/logs"
48
+ readonly STAGEHAND_PYTHON_CACHE_DIR="${STAGEHAND_PYTHON_CONFIG_DIR}/cache"
49
+ readonly STAGEHAND_PYTHON_VENV_DIR="${STAGEHAND_PYTHON_CONFIG_DIR}/.venv"
50
+
51
+ # Create necessary directories
52
+ create_stagehand_python_directories() {
53
+ local directories=(
54
+ "$STAGEHAND_PYTHON_CONFIG_DIR"
55
+ "$STAGEHAND_PYTHON_EXAMPLES_DIR"
56
+ "$STAGEHAND_PYTHON_LOGS_DIR"
57
+ "$STAGEHAND_PYTHON_CACHE_DIR"
58
+ )
59
+
60
+ for dir in "${directories[@]}"; do
61
+ mkdir -p "$dir"
62
+ done
63
+
64
+ print_success "Created Stagehand Python directories"
65
+ return 0
66
+ }
67
+
68
+ # Check Python installation and version
69
+ check_python_requirements() {
70
+ print_info "Checking Python requirements..."
71
+
72
+ # Check for Python 3.8+
73
+ if command -v python3 &> /dev/null; then
74
+ local python_version
75
+ python_version=$(python3 --version | cut -d' ' -f2)
76
+ print_success "Python 3 found: $python_version"
77
+
78
+ # Check if version is 3.8+
79
+ local major minor
80
+ major=$(echo "$python_version" | cut -d'.' -f1)
81
+ minor=$(echo "$python_version" | cut -d'.' -f2)
82
+
83
+ if [[ "$major" -ge 3 ]] && [[ "$minor" -ge 8 ]]; then
84
+ print_success "Python version is compatible (3.8+)"
85
+ else
86
+ print_error "Python 3.8+ is required. Found: $python_version"
87
+ return 1
88
+ fi
89
+ else
90
+ print_error "Python 3 is not installed. Please install Python 3.8+ first."
91
+ return 1
92
+ fi
93
+
94
+ # Check for pip
95
+ if command -v pip3 &> /dev/null; then
96
+ local pip_version
97
+ pip_version=$(pip3 --version | cut -d' ' -f2)
98
+ print_success "pip3 found: $pip_version"
99
+ else
100
+ print_error "pip3 is not installed. Please install pip3 first."
101
+ return 1
102
+ fi
103
+
104
+ return 0
105
+ }
106
+
107
+ # Install Stagehand Python with virtual environment
108
+ install_stagehand_python() {
109
+ print_info "Installing Stagehand Python AI Browser Automation Framework..."
110
+
111
+ # Check requirements first
112
+ if ! check_python_requirements; then
113
+ return 1
114
+ fi
115
+
116
+ # Create directories
117
+ create_stagehand_python_directories
118
+
119
+ cd "$STAGEHAND_PYTHON_CONFIG_DIR" || return 1
120
+
121
+ # Check if uv is available (recommended)
122
+ if command -v uv &> /dev/null; then
123
+ print_info "Using uv for faster installation..."
124
+
125
+ # Create virtual environment with uv
126
+ print_info "Creating virtual environment with uv..."
127
+ uv venv .venv
128
+
129
+ # Activate virtual environment
130
+ # shellcheck source=/dev/null
131
+ source .venv/bin/activate
132
+
133
+ # Install Stagehand with uv
134
+ print_info "Installing stagehand with uv..."
135
+ uv pip install stagehand
136
+
137
+ # Install additional dependencies
138
+ print_info "Installing additional dependencies..."
139
+ uv pip install python-dotenv pydantic playwright
140
+
141
+ else
142
+ print_info "Using pip for installation..."
143
+
144
+ # Create virtual environment with venv
145
+ print_info "Creating virtual environment..."
146
+ python3 -m venv .venv
147
+
148
+ # Activate virtual environment
149
+ # shellcheck source=/dev/null
150
+ source .venv/bin/activate
151
+
152
+ # Upgrade pip
153
+ pip install --upgrade pip
154
+
155
+ # Install Stagehand
156
+ print_info "Installing stagehand..."
157
+ pip install stagehand
158
+
159
+ # Install additional dependencies
160
+ print_info "Installing additional dependencies..."
161
+ pip install python-dotenv pydantic playwright
162
+ fi
163
+
164
+ # Install Playwright browsers
165
+ print_info "Installing Playwright browsers..."
166
+ playwright install
167
+
168
+ print_success "Stagehand Python installation completed"
169
+ print_info "Virtual environment created at: $STAGEHAND_PYTHON_VENV_DIR"
170
+ return 0
171
+ }
172
+
173
+ # Create Python environment configuration
174
+ create_python_env_config() {
175
+ local env_file="${STAGEHAND_PYTHON_CONFIG_DIR}/.env"
176
+
177
+ if [[ -f "$env_file" ]]; then
178
+ print_info "Environment file already exists: $env_file"
179
+ return 0
180
+ fi
181
+
182
+ cat > "$env_file" << 'EOF'
183
+ # Stagehand Python Configuration
184
+ # Copy this file and customize for your needs
185
+
186
+ # AI Model Configuration (choose one)
187
+ OPENAI_API_KEY=your_openai_api_key_here
188
+ ANTHROPIC_API_KEY=your_anthropic_api_key_here
189
+ GOOGLE_API_KEY=your_google_api_key_here
190
+
191
+ # Browserbase Configuration (optional, for cloud browsers)
192
+ BROWSERBASE_API_KEY=your_browserbase_api_key_here
193
+ BROWSERBASE_PROJECT_ID=your_browserbase_project_id_here
194
+
195
+ # Stagehand Configuration
196
+ STAGEHAND_ENV=LOCAL
197
+ STAGEHAND_HEADLESS=false
198
+ STAGEHAND_VERBOSE=1
199
+ STAGEHAND_DEBUG_DOM=true
200
+
201
+ # Model Configuration
202
+ MODEL_NAME=google/gemini-2.5-flash-preview-05-20
203
+ MODEL_API_KEY=${GOOGLE_API_KEY}
204
+
205
+ # Logging Configuration
206
+ LOG_LEVEL=INFO
207
+ LOG_FILE=stagehand-python.log
208
+ EOF
209
+
210
+ print_success "Created Python environment configuration at: $env_file"
211
+ print_info "Please edit $env_file to add your API keys"
212
+ return 0
213
+ }
214
+
215
+ # Show help information
216
+ show_help() {
217
+ cat << EOF
218
+ Stagehand Python Helper - AI Browser Automation Framework Integration
219
+
220
+ USAGE:
221
+ $0 [COMMAND] [OPTIONS]
222
+
223
+ COMMANDS:
224
+ help Show this help message
225
+ install Install Stagehand Python and dependencies
226
+ setup Complete setup (install + configure + examples)
227
+ create-examples Create Python example scripts
228
+ run-example [NAME] Run a specific example script
229
+ status Check Stagehand Python installation status
230
+ activate Show activation command for virtual environment
231
+ logs Show recent Stagehand Python logs
232
+ clean Clean cache and temporary files
233
+ test Run basic functionality test
234
+
235
+ EXAMPLES:
236
+ $0 install # Install Stagehand Python
237
+ $0 setup # Complete setup
238
+ $0 activate # Show venv activation command
239
+ $0 run-example basic # Run basic example
240
+ $0 status # Check installation
241
+
242
+ VIRTUAL ENVIRONMENT:
243
+ To activate the virtual environment manually:
244
+ source ~/.aidevops/stagehand-python/.venv/bin/activate
245
+
246
+ DOCUMENTATION:
247
+ For detailed documentation, see: .agent/STAGEHAND-PYTHON.md
248
+ Official docs: https://docs.stagehand.dev
249
+ GitHub: https://github.com/browserbase/stagehand-python
250
+
251
+ EOF
252
+ return 0
253
+ }
254
+
255
+ # Main function
256
+ main() {
257
+ local command="${1:-help}"
258
+
259
+ case "$command" in
260
+ "help")
261
+ show_help
262
+ ;;
263
+ "install")
264
+ install_stagehand_python
265
+ ;;
266
+ "setup")
267
+ install_stagehand_python && create_python_env_config
268
+ ;;
269
+ "create-examples")
270
+ create_stagehand_python_directories
271
+ print_info "Python examples will be created by the setup script"
272
+ ;;
273
+ "status")
274
+ if [[ -d "$STAGEHAND_PYTHON_VENV_DIR" ]] && [[ -f "${STAGEHAND_PYTHON_VENV_DIR}/bin/activate" ]]; then
275
+ print_success "Stagehand Python is installed at: $STAGEHAND_PYTHON_CONFIG_DIR"
276
+ print_info "Virtual environment: $STAGEHAND_PYTHON_VENV_DIR"
277
+ if command -v python3 &> /dev/null; then
278
+ print_info "Python version: $(python3 --version)"
279
+ fi
280
+ if [[ -f "${STAGEHAND_PYTHON_VENV_DIR}/bin/python" ]]; then
281
+ print_info "Virtual env Python: $(${STAGEHAND_PYTHON_VENV_DIR}/bin/python --version)"
282
+ fi
283
+ else
284
+ print_error "Stagehand Python is not installed. Run '$0 install' first."
285
+ return 1
286
+ fi
287
+ ;;
288
+ "activate")
289
+ if [[ -f "${STAGEHAND_PYTHON_VENV_DIR}/bin/activate" ]]; then
290
+ print_info "To activate the virtual environment, run:"
291
+ echo "source ${STAGEHAND_PYTHON_VENV_DIR}/bin/activate"
292
+ else
293
+ print_error "Virtual environment not found. Run '$0 install' first."
294
+ return 1
295
+ fi
296
+ ;;
297
+ "logs")
298
+ if [[ -f "${STAGEHAND_PYTHON_LOGS_DIR}/stagehand-python.log" ]]; then
299
+ tail -n 50 "${STAGEHAND_PYTHON_LOGS_DIR}/stagehand-python.log"
300
+ else
301
+ print_info "No log files found"
302
+ fi
303
+ ;;
304
+ "clean")
305
+ print_info "Cleaning Stagehand Python cache and temporary files..."
306
+ rm -rf "${STAGEHAND_PYTHON_CACHE_DIR:?}"/*
307
+ rm -rf "${STAGEHAND_PYTHON_LOGS_DIR:?}"/*
308
+ print_success "Cleanup completed"
309
+ ;;
310
+ *)
311
+ print_error "$ERROR_UNKNOWN_COMMAND $command"
312
+ show_help
313
+ return 1
314
+ ;;
315
+ esac
316
+
317
+ return 0
318
+ }
319
+
320
+ # Execute main function with all arguments
321
+ main "$@"