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,401 @@
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
+ # Crawl4AI Examples Script
5
+ # Demonstrates various Crawl4AI usage patterns for AI assistants
6
+ #
7
+ # This script provides practical examples of using Crawl4AI for:
8
+ # - Basic web crawling and content extraction
9
+ # - Structured data extraction with CSS selectors
10
+ # - Batch processing multiple URLs
11
+ # - Content analysis workflows
12
+ #
13
+ # Usage: ./crawl4ai-examples.sh [example]
14
+ # Examples:
15
+ # basic-crawl - Basic web crawling example
16
+ # structured - Structured data extraction
17
+ # batch-process - Batch processing multiple URLs
18
+ # content-analysis - Complete content analysis workflow
19
+ # captcha-demo - CAPTCHA solving demonstration (requires CapSolver API key)
20
+ # all - Run all examples
21
+ #
22
+ # Author: AI DevOps Framework
23
+ # Version: 1.0.0
24
+ # License: MIT
25
+
26
+ # Colors for output
27
+ readonly GREEN='\033[0;32m'
28
+ readonly BLUE='\033[0;34m'
29
+ readonly YELLOW='\033[1;33m'
30
+ readonly RED='\033[0;31m'
31
+ readonly PURPLE='\033[0;35m'
32
+ readonly NC='\033[0m' # No Color
33
+
34
+ # Constants
35
+ readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit
36
+ readonly FRAMEWORK_ROOT="$SCRIPT_DIR/../.."
37
+ readonly CRAWL4AI_HELPER="$FRAMEWORK_ROOT/.agent/scripts/crawl4ai-helper.sh"
38
+ readonly OUTPUT_DIR="$HOME/.agent/tmp/crawl4ai-examples"
39
+ readonly TEST_URL_HTML="https://httpbin.org/html"
40
+
41
+ # Print functions
42
+ print_success() {
43
+ local message="$1"
44
+ echo -e "${GREEN}✅ $message${NC}"
45
+ return 0
46
+ }
47
+
48
+ print_info() {
49
+ local message="$1"
50
+ echo -e "${BLUE}ℹ️ $message${NC}"
51
+ return 0
52
+ }
53
+
54
+ print_warning() {
55
+ local message="$1"
56
+ echo -e "${YELLOW}⚠️ $message${NC}"
57
+ return 0
58
+ }
59
+
60
+ print_error() {
61
+ local message="$1"
62
+ echo -e "${RED}❌ $message${NC}"
63
+ return 0
64
+ }
65
+
66
+ print_header() {
67
+ local message="$1"
68
+ echo -e "${PURPLE}🚀 $message${NC}"
69
+ return 0
70
+ }
71
+
72
+ # Setup output directory
73
+ setup_output_dir() {
74
+ if [[ ! -d "$OUTPUT_DIR" ]]; then
75
+ mkdir -p "$OUTPUT_DIR"
76
+ print_success "Created output directory: $OUTPUT_DIR"
77
+ fi
78
+ return 0
79
+ }
80
+
81
+ # Check if Crawl4AI is available
82
+ check_crawl4ai() {
83
+ if [[ ! -f "$CRAWL4AI_HELPER" ]]; then
84
+ print_error "Crawl4AI helper script not found at $CRAWL4AI_HELPER"
85
+ return 1
86
+ fi
87
+
88
+ # Check if Docker container is running
89
+ if ! docker ps -q -f name="crawl4ai" | grep -q .; then
90
+ print_warning "Crawl4AI Docker container is not running"
91
+ print_info "Starting Docker container..."
92
+ if ! "$CRAWL4AI_HELPER" docker-start; then
93
+ print_error "Failed to start Crawl4AI Docker container"
94
+ return 1
95
+ fi
96
+ sleep 5 # Wait for container to be ready
97
+ fi
98
+
99
+ return 0
100
+ }
101
+
102
+ # Example 1: Basic web crawling
103
+ example_basic_crawl() {
104
+ print_header "Example 1: Basic Web Crawling"
105
+
106
+ local url="$TEST_URL_HTML"
107
+ local output_file="$OUTPUT_DIR/basic-crawl.json"
108
+
109
+ print_info "Crawling: $url"
110
+ if "$CRAWL4AI_HELPER" crawl "$url" markdown "$output_file"; then
111
+ print_success "Basic crawl completed"
112
+ print_info "Output saved to: $output_file"
113
+
114
+ # Show markdown content
115
+ if command -v jq &> /dev/null; then
116
+ local markdown_content
117
+ markdown_content=$(jq -r '.results[0].markdown' "$output_file" 2>/dev/null)
118
+ if [[ -n "$markdown_content" && "$markdown_content" != "null" ]]; then
119
+ print_info "Extracted markdown (first 200 chars):"
120
+ echo "${markdown_content:0:200}..."
121
+ fi
122
+ fi
123
+ else
124
+ print_error "Basic crawl failed"
125
+ return 1
126
+ fi
127
+
128
+ return 0
129
+ }
130
+
131
+ # Example 2: Structured data extraction
132
+ example_structured_extraction() {
133
+ print_header "Example 2: Structured Data Extraction"
134
+
135
+ local url="$TEST_URL_HTML"
136
+ local schema='{"title": "h1", "content": "p", "links": {"selector": "a", "type": "attribute", "attribute": "href"}}'
137
+ local output_file="$OUTPUT_DIR/structured-extraction.json"
138
+
139
+ print_info "Extracting structured data from: $url"
140
+ print_info "Schema: $schema"
141
+
142
+ if "$CRAWL4AI_HELPER" extract "$url" "$schema" "$output_file"; then
143
+ print_success "Structured extraction completed"
144
+ print_info "Output saved to: $output_file"
145
+
146
+ # Show extracted data
147
+ if command -v jq &> /dev/null; then
148
+ local extracted_content
149
+ extracted_content=$(jq -r '.results[0].extracted_content' "$output_file" 2>/dev/null)
150
+ if [[ -n "$extracted_content" && "$extracted_content" != "null" ]]; then
151
+ print_info "Extracted data:"
152
+ echo "$extracted_content" | jq '.' 2>/dev/null || echo "$extracted_content"
153
+ fi
154
+ fi
155
+ else
156
+ print_error "Structured extraction failed"
157
+ return 1
158
+ fi
159
+
160
+ return 0
161
+ }
162
+
163
+ # Example 3: Batch processing
164
+ example_batch_processing() {
165
+ print_header "Example 3: Batch Processing Multiple URLs"
166
+
167
+ local urls=(
168
+ "$TEST_URL_HTML"
169
+ "https://httpbin.org/json"
170
+ "https://httpbin.org/xml"
171
+ )
172
+
173
+ print_info "Processing ${#urls[@]} URLs..."
174
+
175
+ local i=1
176
+ for url in "${urls[@]}"; do
177
+ local output_file="$OUTPUT_DIR/batch-$i.json"
178
+ print_info "[$i/${#urls[@]}] Processing: $url"
179
+
180
+ if "$CRAWL4AI_HELPER" crawl "$url" markdown "$output_file"; then
181
+ print_success "Processed: $url"
182
+ else
183
+ print_warning "Failed to process: $url"
184
+ fi
185
+
186
+ ((i++))
187
+ sleep 1 # Rate limiting
188
+ done
189
+
190
+ print_success "Batch processing completed"
191
+ return 0
192
+ }
193
+
194
+ # Example 4: Content analysis workflow
195
+ example_content_analysis() {
196
+ print_header "Example 4: Complete Content Analysis Workflow"
197
+
198
+ local url="$TEST_URL_HTML"
199
+ local timestamp
200
+ timestamp=$(date +%Y%m%d_%H%M%S)
201
+
202
+ # Step 1: Basic crawl
203
+ print_info "Step 1: Basic content crawl"
204
+ local raw_output="$OUTPUT_DIR/analysis-raw-$timestamp.json"
205
+ if ! "$CRAWL4AI_HELPER" crawl "$url" markdown "$raw_output"; then
206
+ print_error "Failed to crawl content"
207
+ return 1
208
+ fi
209
+
210
+ # Step 2: Structured extraction
211
+ print_info "Step 2: Structured data extraction"
212
+ local structured_schema='{"title": "h1", "headings": "h2, h3", "paragraphs": "p", "links": {"selector": "a", "type": "attribute", "attribute": "href"}}'
213
+ local structured_output="$OUTPUT_DIR/analysis-structured-$timestamp.json"
214
+ if ! "$CRAWL4AI_HELPER" extract "$url" "$structured_schema" "$structured_output"; then
215
+ print_error "Failed to extract structured data"
216
+ return 1
217
+ fi
218
+
219
+ # Step 3: Analysis summary
220
+ print_info "Step 3: Generating analysis summary"
221
+ local summary_file="$OUTPUT_DIR/analysis-summary-$timestamp.txt"
222
+
223
+ cat > "$summary_file" << EOF
224
+ Content Analysis Summary
225
+ ========================
226
+ Timestamp: $(date)
227
+ URL: $url
228
+
229
+ Files Generated:
230
+ - Raw content: $raw_output
231
+ - Structured data: $structured_output
232
+
233
+ Analysis Complete!
234
+ EOF
235
+
236
+ print_success "Content analysis workflow completed"
237
+ print_info "Summary saved to: $summary_file"
238
+
239
+ return 0
240
+ }
241
+
242
+ # Example 5: CAPTCHA solving demonstration
243
+ example_captcha_demo() {
244
+ local _arg3="$3"
245
+ print_header "Example 5: CAPTCHA Solving Demonstration"
246
+
247
+ # Check if CapSolver API key is set
248
+ if [[ -z "$CAPSOLVER_API_KEY" ]]; then
249
+ print_warning "CAPSOLVER_API_KEY not set - this is a demonstration only"
250
+ print_info "To run actual CAPTCHA solving:"
251
+ print_info "1. Get API key: https://dashboard.capsolver.com/dashboard/overview"
252
+ print_info "2. Set: export CAPSOLVER_API_KEY='CAP-xxxxxxxxxxxxxxxxxxxxx'"
253
+ print_info "3. Run: $CRAWL4AI_HELPER captcha-crawl <url> <type> <site_key>"
254
+ print_info ""
255
+ print_info "📋 Supported CAPTCHA Types:"
256
+ print_info "• recaptcha_v2 - reCAPTCHA v2 checkbox ($0.5/1000)"
257
+ print_info "• recaptcha_v3 - reCAPTCHA v3 invisible ($0.5/1000)"
258
+ print_info "• turnstile - Cloudflare Turnstile ($_arg3/1000)"
259
+ print_info "• aws_waf - AWS WAF bypass (contact for pricing)"
260
+ print_info "• geetest - GeeTest v3/v4 ($0.5/1000)"
261
+ print_info ""
262
+ print_info "📚 Example Commands:"
263
+ print_info "$CRAWL4AI_HELPER captcha-crawl https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php recaptcha_v2 6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
264
+ print_info "$CRAWL4AI_HELPER captcha-crawl https://clifford.io/demo/cloudflare-turnstile turnstile 0x4AAAAAAAGlwMzq_9z6S9Mh"
265
+ return 0
266
+ fi
267
+
268
+ print_info "CapSolver API key detected - running live demonstration"
269
+
270
+ # Demo URLs and configurations
271
+ local demo_configs=(
272
+ "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php|recaptcha_v2|6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9|reCAPTCHA v2 Demo"
273
+ "https://clifford.io/demo/cloudflare-turnstile|turnstile|0x4AAAAAAAGlwMzq_9z6S9Mh|Cloudflare Turnstile Demo"
274
+ )
275
+
276
+ local i=1
277
+ for config in "${demo_configs[@]}"; do
278
+ IFS='|' read -r url captcha_type site_key description <<< "$config"
279
+
280
+ print_info "[$i/${#demo_configs[@]}] Testing: $description"
281
+ print_info "URL: $url"
282
+ print_info "Type: $captcha_type"
283
+
284
+ local output_file="$OUTPUT_DIR/captcha-demo-$i.json"
285
+
286
+ if "$CRAWL4AI_HELPER" captcha-crawl "$url" "$captcha_type" "$site_key" "$output_file"; then
287
+ print_success "CAPTCHA demo $i completed successfully"
288
+ if [[ -f "$output_file" ]]; then
289
+ print_info "Results saved to: $output_file"
290
+ fi
291
+ else
292
+ print_warning "CAPTCHA demo $i failed - this may be due to site changes or API limits"
293
+ fi
294
+
295
+ ((i++))
296
+
297
+ # Add delay between requests to respect rate limits
298
+ if [[ $i -le ${#demo_configs[@]} ]]; then
299
+ print_info "Waiting 10 seconds before next demo..."
300
+ sleep 10
301
+ fi
302
+ done
303
+
304
+ print_success "CAPTCHA solving demonstration completed"
305
+ print_info ""
306
+ print_info "💡 Tips for Production Use:"
307
+ print_info "• Monitor your CapSolver balance regularly"
308
+ print_info "• Use package deals for high-volume operations (up to 60% savings)"
309
+ print_info "• Implement proper error handling for failed CAPTCHA attempts"
310
+ print_info "• Respect website rate limits even with CAPTCHA solving"
311
+
312
+ return 0
313
+ }
314
+
315
+ # Show help
316
+ show_help() {
317
+ local script_name="$0"
318
+ echo "Crawl4AI Examples Script"
319
+ echo "Usage: $script_name [example]"
320
+ echo ""
321
+ echo "Examples:"
322
+ echo " basic-crawl - Basic web crawling example"
323
+ echo " structured - Structured data extraction"
324
+ echo " batch-process - Batch processing multiple URLs"
325
+ echo " content-analysis - Complete content analysis workflow"
326
+ echo " captcha-demo - CAPTCHA solving demonstration"
327
+ echo " all - Run all examples"
328
+ echo " help - Show this help message"
329
+ echo ""
330
+ echo "Output Directory: $OUTPUT_DIR"
331
+ echo ""
332
+ echo "Prerequisites:"
333
+ echo " - Crawl4AI Docker container running"
334
+ echo " - Internet connection for test URLs"
335
+ echo ""
336
+ echo "To start Crawl4AI:"
337
+ echo " $CRAWL4AI_HELPER docker-start"
338
+ return 0
339
+ }
340
+
341
+ # Main function
342
+ main() {
343
+ local example="${1:-help}"
344
+
345
+ # Setup
346
+ setup_output_dir
347
+
348
+ case "$example" in
349
+ "basic-crawl")
350
+ if check_crawl4ai; then
351
+ example_basic_crawl
352
+ fi
353
+ ;;
354
+ "structured")
355
+ if check_crawl4ai; then
356
+ example_structured_extraction
357
+ fi
358
+ ;;
359
+ "batch-process")
360
+ if check_crawl4ai; then
361
+ example_batch_processing
362
+ fi
363
+ ;;
364
+ "content-analysis")
365
+ if check_crawl4ai; then
366
+ example_content_analysis
367
+ fi
368
+ ;;
369
+ "captcha-demo")
370
+ if check_crawl4ai; then
371
+ example_captcha_demo
372
+ fi
373
+ ;;
374
+ "all")
375
+ if check_crawl4ai; then
376
+ example_basic_crawl
377
+ echo ""
378
+ example_structured_extraction
379
+ echo ""
380
+ example_batch_processing
381
+ echo ""
382
+ example_content_analysis
383
+ echo ""
384
+ example_captcha_demo
385
+ fi
386
+ ;;
387
+ "help"|"-h"|"--help"|"")
388
+ show_help
389
+ ;;
390
+ *)
391
+ print_error "Unknown example: $example"
392
+ show_help
393
+ return 1
394
+ ;;
395
+ esac
396
+ return 0
397
+ }
398
+
399
+ main "$@"
400
+
401
+ exit 0