aidevops 2.52.1 → 2.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +15 -9
- package/package.json +4 -4
- package/scripts/npm-postinstall.js +6 -7
- package/setup.sh +1 -1
- package/templates/deploy-templates.sh +144 -0
- package/templates/home/.agent/README.md +33 -0
- package/templates/home/AGENTS.md +96 -0
- package/templates/home/git/.agent/README.md +48 -0
- package/templates/home/git/AGENTS.md +97 -0
- package/templates/standard-functions.sh +179 -0
- package/templates/wordpress-performance-workflow.md +217 -0
- package/.agent/AGENTS.md +0 -614
- package/.agent/accounts.md +0 -65
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +0 -456
- package/.agent/aidevops/api-integrations.md +0 -335
- package/.agent/aidevops/architecture.md +0 -510
- package/.agent/aidevops/configs.md +0 -274
- package/.agent/aidevops/docs.md +0 -244
- package/.agent/aidevops/extension.md +0 -311
- package/.agent/aidevops/mcp-integrations.md +0 -340
- package/.agent/aidevops/mcp-troubleshooting.md +0 -162
- package/.agent/aidevops/memory-patterns.md +0 -172
- package/.agent/aidevops/providers.md +0 -217
- package/.agent/aidevops/recommendations.md +0 -321
- package/.agent/aidevops/requirements.md +0 -301
- package/.agent/aidevops/resources.md +0 -214
- package/.agent/aidevops/security-requirements.md +0 -174
- package/.agent/aidevops/security.md +0 -350
- package/.agent/aidevops/service-links.md +0 -400
- package/.agent/aidevops/services.md +0 -357
- package/.agent/aidevops/setup.md +0 -153
- package/.agent/aidevops/troubleshooting.md +0 -389
- package/.agent/aidevops.md +0 -124
- package/.agent/build-plus.md +0 -244
- package/.agent/content/guidelines.md +0 -109
- package/.agent/content.md +0 -87
- package/.agent/health.md +0 -59
- package/.agent/legal.md +0 -59
- package/.agent/loop-state/full-loop.local.md +0 -16
- package/.agent/loop-state/ralph-loop.local.md +0 -10
- package/.agent/marketing.md +0 -440
- package/.agent/memory/README.md +0 -260
- package/.agent/onboarding.md +0 -796
- package/.agent/plan-plus.md +0 -245
- package/.agent/research.md +0 -100
- package/.agent/sales.md +0 -333
- package/.agent/scripts/101domains-helper.sh +0 -701
- package/.agent/scripts/add-missing-returns.sh +0 -140
- package/.agent/scripts/agent-browser-helper.sh +0 -311
- package/.agent/scripts/agno-setup.sh +0 -712
- package/.agent/scripts/ahrefs-mcp-wrapper.js +0 -168
- package/.agent/scripts/aidevops-update-check.sh +0 -71
- package/.agent/scripts/ampcode-cli.sh +0 -522
- package/.agent/scripts/auto-version-bump.sh +0 -156
- package/.agent/scripts/autogen-helper.sh +0 -512
- package/.agent/scripts/beads-sync-helper.sh +0 -596
- package/.agent/scripts/closte-helper.sh +0 -5
- package/.agent/scripts/cloudron-helper.sh +0 -321
- package/.agent/scripts/codacy-cli-chunked.sh +0 -581
- package/.agent/scripts/codacy-cli.sh +0 -442
- package/.agent/scripts/code-audit-helper.sh +0 -5
- package/.agent/scripts/coderabbit-cli.sh +0 -417
- package/.agent/scripts/coderabbit-pro-analysis.sh +0 -238
- package/.agent/scripts/commands/code-simplifier.md +0 -86
- package/.agent/scripts/commands/full-loop.md +0 -246
- package/.agent/scripts/commands/postflight-loop.md +0 -103
- package/.agent/scripts/commands/recall.md +0 -182
- package/.agent/scripts/commands/remember.md +0 -132
- package/.agent/scripts/commands/save-todo.md +0 -175
- package/.agent/scripts/commands/session-review.md +0 -154
- package/.agent/scripts/comprehensive-quality-fix.sh +0 -106
- package/.agent/scripts/context-builder-helper.sh +0 -522
- package/.agent/scripts/coolify-cli-helper.sh +0 -674
- package/.agent/scripts/coolify-helper.sh +0 -380
- package/.agent/scripts/crawl4ai-examples.sh +0 -401
- package/.agent/scripts/crawl4ai-helper.sh +0 -1078
- package/.agent/scripts/crewai-helper.sh +0 -681
- package/.agent/scripts/dev-browser-helper.sh +0 -513
- package/.agent/scripts/dns-helper.sh +0 -396
- package/.agent/scripts/domain-research-helper.sh +0 -917
- package/.agent/scripts/dspy-helper.sh +0 -285
- package/.agent/scripts/dspyground-helper.sh +0 -291
- package/.agent/scripts/eeat-score-helper.sh +0 -1242
- package/.agent/scripts/efficient-return-fix.sh +0 -92
- package/.agent/scripts/extract-opencode-prompts.sh +0 -128
- package/.agent/scripts/find-missing-returns.sh +0 -113
- package/.agent/scripts/fix-auth-headers.sh +0 -104
- package/.agent/scripts/fix-common-strings.sh +0 -254
- package/.agent/scripts/fix-content-type.sh +0 -100
- package/.agent/scripts/fix-error-messages.sh +0 -130
- package/.agent/scripts/fix-misplaced-returns.sh +0 -74
- package/.agent/scripts/fix-remaining-literals.sh +0 -152
- package/.agent/scripts/fix-return-statements.sh +0 -41
- package/.agent/scripts/fix-s131-default-cases.sh +0 -249
- package/.agent/scripts/fix-sc2155-simple.sh +0 -102
- package/.agent/scripts/fix-shellcheck-critical.sh +0 -187
- package/.agent/scripts/fix-string-literals.sh +0 -273
- package/.agent/scripts/full-loop-helper.sh +0 -773
- package/.agent/scripts/generate-opencode-agents.sh +0 -497
- package/.agent/scripts/generate-opencode-commands.sh +0 -1629
- package/.agent/scripts/generate-skills.sh +0 -366
- package/.agent/scripts/git-platforms-helper.sh +0 -640
- package/.agent/scripts/gitea-cli-helper.sh +0 -743
- package/.agent/scripts/github-cli-helper.sh +0 -702
- package/.agent/scripts/gitlab-cli-helper.sh +0 -682
- package/.agent/scripts/gsc-add-user-helper.sh +0 -325
- package/.agent/scripts/gsc-sitemap-helper.sh +0 -678
- package/.agent/scripts/hetzner-helper.sh +0 -485
- package/.agent/scripts/hostinger-helper.sh +0 -229
- package/.agent/scripts/keyword-research-helper.sh +0 -1815
- package/.agent/scripts/langflow-helper.sh +0 -544
- package/.agent/scripts/linkedin-automation.py +0 -241
- package/.agent/scripts/linter-manager.sh +0 -599
- package/.agent/scripts/linters-local.sh +0 -434
- package/.agent/scripts/list-keys-helper.sh +0 -488
- package/.agent/scripts/local-browser-automation.py +0 -339
- package/.agent/scripts/localhost-helper.sh +0 -744
- package/.agent/scripts/loop-common.sh +0 -806
- package/.agent/scripts/mainwp-helper.sh +0 -728
- package/.agent/scripts/markdown-formatter.sh +0 -338
- package/.agent/scripts/markdown-lint-fix.sh +0 -311
- package/.agent/scripts/mass-fix-returns.sh +0 -58
- package/.agent/scripts/mcp-diagnose.sh +0 -167
- package/.agent/scripts/mcp-inspector-helper.sh +0 -449
- package/.agent/scripts/memory-helper.sh +0 -650
- package/.agent/scripts/monitor-code-review.sh +0 -255
- package/.agent/scripts/onboarding-helper.sh +0 -706
- package/.agent/scripts/opencode-github-setup-helper.sh +0 -797
- package/.agent/scripts/opencode-test-helper.sh +0 -213
- package/.agent/scripts/pagespeed-helper.sh +0 -464
- package/.agent/scripts/pandoc-helper.sh +0 -362
- package/.agent/scripts/postflight-check.sh +0 -555
- package/.agent/scripts/pre-commit-hook.sh +0 -259
- package/.agent/scripts/pre-edit-check.sh +0 -169
- package/.agent/scripts/qlty-cli.sh +0 -356
- package/.agent/scripts/quality-cli-manager.sh +0 -525
- package/.agent/scripts/quality-feedback-helper.sh +0 -462
- package/.agent/scripts/quality-fix.sh +0 -263
- package/.agent/scripts/quality-loop-helper.sh +0 -1108
- package/.agent/scripts/ralph-loop-helper.sh +0 -836
- package/.agent/scripts/ralph-upstream-check.sh +0 -341
- package/.agent/scripts/secretlint-helper.sh +0 -847
- package/.agent/scripts/servers-helper.sh +0 -241
- package/.agent/scripts/ses-helper.sh +0 -619
- package/.agent/scripts/session-review-helper.sh +0 -404
- package/.agent/scripts/setup-linters-wizard.sh +0 -379
- package/.agent/scripts/setup-local-api-keys.sh +0 -330
- package/.agent/scripts/setup-mcp-integrations.sh +0 -472
- package/.agent/scripts/shared-constants.sh +0 -246
- package/.agent/scripts/site-crawler-helper.sh +0 -1487
- package/.agent/scripts/snyk-helper.sh +0 -940
- package/.agent/scripts/sonarcloud-autofix.sh +0 -193
- package/.agent/scripts/sonarcloud-cli.sh +0 -191
- package/.agent/scripts/sonarscanner-cli.sh +0 -455
- package/.agent/scripts/spaceship-helper.sh +0 -747
- package/.agent/scripts/stagehand-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-setup.sh +0 -441
- package/.agent/scripts/stagehand-setup.sh +0 -439
- package/.agent/scripts/system-cleanup.sh +0 -340
- package/.agent/scripts/terminal-title-helper.sh +0 -388
- package/.agent/scripts/terminal-title-setup.sh +0 -549
- package/.agent/scripts/test-stagehand-both-integration.sh +0 -317
- package/.agent/scripts/test-stagehand-integration.sh +0 -309
- package/.agent/scripts/test-stagehand-python-integration.sh +0 -341
- package/.agent/scripts/todo-ready.sh +0 -263
- package/.agent/scripts/tool-version-check.sh +0 -362
- package/.agent/scripts/toon-helper.sh +0 -469
- package/.agent/scripts/twilio-helper.sh +0 -917
- package/.agent/scripts/updown-helper.sh +0 -279
- package/.agent/scripts/validate-mcp-integrations.sh +0 -250
- package/.agent/scripts/validate-version-consistency.sh +0 -131
- package/.agent/scripts/vaultwarden-helper.sh +0 -597
- package/.agent/scripts/vercel-cli-helper.sh +0 -816
- package/.agent/scripts/verify-mirrors.sh +0 -169
- package/.agent/scripts/version-manager.sh +0 -831
- package/.agent/scripts/webhosting-helper.sh +0 -471
- package/.agent/scripts/webhosting-verify.sh +0 -238
- package/.agent/scripts/wordpress-mcp-helper.sh +0 -508
- package/.agent/scripts/worktree-helper.sh +0 -595
- package/.agent/scripts/worktree-sessions.sh +0 -577
- package/.agent/seo/dataforseo.md +0 -215
- package/.agent/seo/domain-research.md +0 -532
- package/.agent/seo/eeat-score.md +0 -659
- package/.agent/seo/google-search-console.md +0 -366
- package/.agent/seo/gsc-sitemaps.md +0 -282
- package/.agent/seo/keyword-research.md +0 -521
- package/.agent/seo/serper.md +0 -278
- package/.agent/seo/site-crawler.md +0 -387
- package/.agent/seo.md +0 -236
- package/.agent/services/accounting/quickfile.md +0 -159
- package/.agent/services/communications/telfon.md +0 -470
- package/.agent/services/communications/twilio.md +0 -569
- package/.agent/services/crm/fluentcrm.md +0 -449
- package/.agent/services/email/ses.md +0 -399
- package/.agent/services/hosting/101domains.md +0 -378
- package/.agent/services/hosting/closte.md +0 -177
- package/.agent/services/hosting/cloudflare.md +0 -251
- package/.agent/services/hosting/cloudron.md +0 -478
- package/.agent/services/hosting/dns-providers.md +0 -335
- package/.agent/services/hosting/domain-purchasing.md +0 -344
- package/.agent/services/hosting/hetzner.md +0 -327
- package/.agent/services/hosting/hostinger.md +0 -287
- package/.agent/services/hosting/localhost.md +0 -419
- package/.agent/services/hosting/spaceship.md +0 -353
- package/.agent/services/hosting/webhosting.md +0 -330
- package/.agent/social-media.md +0 -69
- package/.agent/templates/plans-template.md +0 -114
- package/.agent/templates/prd-template.md +0 -129
- package/.agent/templates/tasks-template.md +0 -108
- package/.agent/templates/todo-template.md +0 -89
- package/.agent/tools/ai-assistants/agno.md +0 -471
- package/.agent/tools/ai-assistants/capsolver.md +0 -326
- package/.agent/tools/ai-assistants/configuration.md +0 -221
- package/.agent/tools/ai-assistants/overview.md +0 -209
- package/.agent/tools/ai-assistants/status.md +0 -171
- package/.agent/tools/ai-assistants/windsurf.md +0 -193
- package/.agent/tools/ai-orchestration/autogen.md +0 -406
- package/.agent/tools/ai-orchestration/crewai.md +0 -445
- package/.agent/tools/ai-orchestration/langflow.md +0 -405
- package/.agent/tools/ai-orchestration/openprose.md +0 -487
- package/.agent/tools/ai-orchestration/overview.md +0 -362
- package/.agent/tools/ai-orchestration/packaging.md +0 -647
- package/.agent/tools/browser/agent-browser.md +0 -464
- package/.agent/tools/browser/browser-automation.md +0 -400
- package/.agent/tools/browser/chrome-devtools.md +0 -282
- package/.agent/tools/browser/crawl4ai-integration.md +0 -422
- package/.agent/tools/browser/crawl4ai-resources.md +0 -277
- package/.agent/tools/browser/crawl4ai-usage.md +0 -416
- package/.agent/tools/browser/crawl4ai.md +0 -585
- package/.agent/tools/browser/dev-browser.md +0 -341
- package/.agent/tools/browser/pagespeed.md +0 -260
- package/.agent/tools/browser/playwright.md +0 -266
- package/.agent/tools/browser/playwriter.md +0 -310
- package/.agent/tools/browser/stagehand-examples.md +0 -456
- package/.agent/tools/browser/stagehand-python.md +0 -483
- package/.agent/tools/browser/stagehand.md +0 -421
- package/.agent/tools/build-agent/agent-review.md +0 -224
- package/.agent/tools/build-agent/build-agent.md +0 -784
- package/.agent/tools/build-mcp/aidevops-plugin.md +0 -476
- package/.agent/tools/build-mcp/api-wrapper.md +0 -445
- package/.agent/tools/build-mcp/build-mcp.md +0 -240
- package/.agent/tools/build-mcp/deployment.md +0 -401
- package/.agent/tools/build-mcp/server-patterns.md +0 -632
- package/.agent/tools/build-mcp/transports.md +0 -366
- package/.agent/tools/code-review/auditing.md +0 -383
- package/.agent/tools/code-review/automation.md +0 -219
- package/.agent/tools/code-review/best-practices.md +0 -203
- package/.agent/tools/code-review/codacy.md +0 -151
- package/.agent/tools/code-review/code-simplifier.md +0 -174
- package/.agent/tools/code-review/code-standards.md +0 -309
- package/.agent/tools/code-review/coderabbit.md +0 -101
- package/.agent/tools/code-review/management.md +0 -155
- package/.agent/tools/code-review/qlty.md +0 -248
- package/.agent/tools/code-review/secretlint.md +0 -565
- package/.agent/tools/code-review/setup.md +0 -250
- package/.agent/tools/code-review/snyk.md +0 -563
- package/.agent/tools/code-review/tools.md +0 -230
- package/.agent/tools/content/summarize.md +0 -353
- package/.agent/tools/context/augment-context-engine.md +0 -468
- package/.agent/tools/context/context-builder-agent.md +0 -76
- package/.agent/tools/context/context-builder.md +0 -375
- package/.agent/tools/context/context7.md +0 -371
- package/.agent/tools/context/dspy.md +0 -302
- package/.agent/tools/context/dspyground.md +0 -374
- package/.agent/tools/context/llm-tldr.md +0 -219
- package/.agent/tools/context/osgrep.md +0 -488
- package/.agent/tools/context/prompt-optimization.md +0 -338
- package/.agent/tools/context/toon.md +0 -292
- package/.agent/tools/conversion/pandoc.md +0 -304
- package/.agent/tools/credentials/api-key-management.md +0 -154
- package/.agent/tools/credentials/api-key-setup.md +0 -224
- package/.agent/tools/credentials/environment-variables.md +0 -180
- package/.agent/tools/credentials/vaultwarden.md +0 -382
- package/.agent/tools/data-extraction/outscraper.md +0 -974
- package/.agent/tools/deployment/coolify-cli.md +0 -388
- package/.agent/tools/deployment/coolify-setup.md +0 -353
- package/.agent/tools/deployment/coolify.md +0 -345
- package/.agent/tools/deployment/vercel.md +0 -390
- package/.agent/tools/git/authentication.md +0 -132
- package/.agent/tools/git/gitea-cli.md +0 -193
- package/.agent/tools/git/github-actions.md +0 -207
- package/.agent/tools/git/github-cli.md +0 -223
- package/.agent/tools/git/gitlab-cli.md +0 -190
- package/.agent/tools/git/opencode-github-security.md +0 -350
- package/.agent/tools/git/opencode-github.md +0 -328
- package/.agent/tools/git/opencode-gitlab.md +0 -252
- package/.agent/tools/git/security.md +0 -196
- package/.agent/tools/git.md +0 -207
- package/.agent/tools/opencode/oh-my-opencode.md +0 -375
- package/.agent/tools/opencode/opencode-anthropic-auth.md +0 -446
- package/.agent/tools/opencode/opencode.md +0 -651
- package/.agent/tools/social-media/bird.md +0 -437
- package/.agent/tools/task-management/beads.md +0 -336
- package/.agent/tools/terminal/terminal-title.md +0 -251
- package/.agent/tools/ui/shadcn.md +0 -196
- package/.agent/tools/ui/ui-skills.md +0 -115
- package/.agent/tools/wordpress/localwp.md +0 -311
- package/.agent/tools/wordpress/mainwp.md +0 -391
- package/.agent/tools/wordpress/scf.md +0 -527
- package/.agent/tools/wordpress/wp-admin.md +0 -729
- package/.agent/tools/wordpress/wp-dev.md +0 -940
- package/.agent/tools/wordpress/wp-preferred.md +0 -398
- package/.agent/tools/wordpress.md +0 -95
- package/.agent/workflows/branch/bugfix.md +0 -63
- package/.agent/workflows/branch/chore.md +0 -95
- package/.agent/workflows/branch/experiment.md +0 -115
- package/.agent/workflows/branch/feature.md +0 -59
- package/.agent/workflows/branch/hotfix.md +0 -98
- package/.agent/workflows/branch/refactor.md +0 -92
- package/.agent/workflows/branch/release.md +0 -96
- package/.agent/workflows/branch.md +0 -347
- package/.agent/workflows/bug-fixing.md +0 -267
- package/.agent/workflows/changelog.md +0 -129
- package/.agent/workflows/code-audit-remote.md +0 -279
- package/.agent/workflows/conversation-starter.md +0 -69
- package/.agent/workflows/error-feedback.md +0 -578
- package/.agent/workflows/feature-development.md +0 -355
- package/.agent/workflows/git-workflow.md +0 -702
- package/.agent/workflows/multi-repo-workspace.md +0 -268
- package/.agent/workflows/plans.md +0 -709
- package/.agent/workflows/postflight.md +0 -604
- package/.agent/workflows/pr.md +0 -571
- package/.agent/workflows/preflight.md +0 -278
- package/.agent/workflows/ralph-loop.md +0 -773
- package/.agent/workflows/release.md +0 -498
- package/.agent/workflows/session-manager.md +0 -254
- package/.agent/workflows/session-review.md +0 -311
- package/.agent/workflows/sql-migrations.md +0 -631
- package/.agent/workflows/version-bump.md +0 -283
- package/.agent/workflows/wiki-update.md +0 -333
- package/.agent/workflows/worktree.md +0 -477
|
@@ -1,400 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Browser automation tool selection and usage guide
|
|
3
|
-
mode: subagent
|
|
4
|
-
tools:
|
|
5
|
-
read: true
|
|
6
|
-
write: false
|
|
7
|
-
edit: false
|
|
8
|
-
bash: true
|
|
9
|
-
glob: true
|
|
10
|
-
grep: true
|
|
11
|
-
webfetch: true
|
|
12
|
-
task: true
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Browser Automation - Tool Selection Guide
|
|
16
|
-
|
|
17
|
-
<!-- AI-CONTEXT-START -->
|
|
18
|
-
|
|
19
|
-
## Default Tool: Agent-Browser
|
|
20
|
-
|
|
21
|
-
**ALWAYS use agent-browser first** for any browser automation task. It's CLI-first, AI-optimized, and requires no server setup.
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
# Setup (one-time)
|
|
25
|
-
~/.aidevops/agents/scripts/agent-browser-helper.sh setup
|
|
26
|
-
|
|
27
|
-
# Basic workflow
|
|
28
|
-
agent-browser open example.com
|
|
29
|
-
agent-browser snapshot -i # Get interactive elements with refs
|
|
30
|
-
agent-browser click @e2 # Click by ref
|
|
31
|
-
agent-browser close
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**Why agent-browser is default**:
|
|
35
|
-
- **Zero setup**: No daemon to start, just run commands
|
|
36
|
-
- **AI-optimized**: Snapshot + ref pattern for deterministic element targeting
|
|
37
|
-
- **Multi-session**: Isolated browser instances with `--session`
|
|
38
|
-
- **Visual debugging**: Screenshots and DevTools for self-diagnosis
|
|
39
|
-
|
|
40
|
-
## Visual Debugging (Don't Ask User - Check Yourself)
|
|
41
|
-
|
|
42
|
-
**CRITICAL**: Before asking the user what they see, use these tools to check yourself:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
# Take screenshot to see current state
|
|
46
|
-
agent-browser screenshot /tmp/current-state.png
|
|
47
|
-
|
|
48
|
-
# Get page info
|
|
49
|
-
agent-browser get title
|
|
50
|
-
agent-browser get url
|
|
51
|
-
|
|
52
|
-
# Check for errors
|
|
53
|
-
agent-browser errors
|
|
54
|
-
|
|
55
|
-
# View console messages
|
|
56
|
-
agent-browser console
|
|
57
|
-
|
|
58
|
-
# Get element state
|
|
59
|
-
agent-browser is visible @e5
|
|
60
|
-
agent-browser is enabled @e5
|
|
61
|
-
|
|
62
|
-
# Headed mode for complex debugging
|
|
63
|
-
agent-browser open example.com --headed
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**Self-diagnosis workflow**:
|
|
67
|
-
1. Action fails or unexpected result
|
|
68
|
-
2. Take screenshot: `agent-browser screenshot /tmp/debug.png`
|
|
69
|
-
3. Check errors: `agent-browser errors`
|
|
70
|
-
4. Get snapshot: `agent-browser snapshot -i`
|
|
71
|
-
5. Analyze and retry - only ask user if truly stuck
|
|
72
|
-
|
|
73
|
-
## Tool Selection Decision Tree
|
|
74
|
-
|
|
75
|
-
```text
|
|
76
|
-
Need browser automation?
|
|
77
|
-
│
|
|
78
|
-
├─► Default choice ──► agent-browser (CLI-first, AI-optimized)
|
|
79
|
-
│
|
|
80
|
-
├─► Need TypeScript API / stateful pages? ──► dev-browser
|
|
81
|
-
│
|
|
82
|
-
├─► Need existing browser session/cookies? ──► Playwriter
|
|
83
|
-
│
|
|
84
|
-
├─► Need natural language control? ──► Stagehand
|
|
85
|
-
│
|
|
86
|
-
└─► Need web crawling/extraction? ──► Crawl4AI
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
## Quick Reference
|
|
90
|
-
|
|
91
|
-
| Tool | Best For | Setup |
|
|
92
|
-
|------|----------|-------|
|
|
93
|
-
| **agent-browser** (DEFAULT) | CLI automation, AI agents, CI/CD, multi-session | `agent-browser-helper.sh setup` |
|
|
94
|
-
| **dev-browser** | TypeScript API, stateful pages, dev testing | `dev-browser-helper.sh setup` |
|
|
95
|
-
| **playwriter** | Existing sessions, bypass detection | Chrome extension + MCP |
|
|
96
|
-
| **stagehand** | Natural language automation | `stagehand-helper.sh setup` |
|
|
97
|
-
| **crawl4ai** | Web scraping, content extraction | `crawl4ai-helper.sh setup` |
|
|
98
|
-
| **playwright** | Cross-browser testing | MCP integration |
|
|
99
|
-
|
|
100
|
-
**Full docs**: `tools/browser/agent-browser.md` (default), `tools/browser/dev-browser.md`, `tools/browser/playwriter.md`, etc.
|
|
101
|
-
|
|
102
|
-
**Ethical Rules**: Respect ToS, rate limit (2-5s delays), no spam, legitimate use only
|
|
103
|
-
<!-- AI-CONTEXT-END -->
|
|
104
|
-
|
|
105
|
-
## Session Persistence (Cookies, Storage, Auth State)
|
|
106
|
-
|
|
107
|
-
### Why Persist Sessions?
|
|
108
|
-
|
|
109
|
-
- **Avoid repeated logins**: Save auth state once, reuse across sessions
|
|
110
|
-
- **Maintain context**: Keep shopping carts, preferences, form data
|
|
111
|
-
- **Faster automation**: Skip login flows in subsequent runs
|
|
112
|
-
|
|
113
|
-
### Saving Auth State
|
|
114
|
-
|
|
115
|
-
After logging in, save the complete browser state:
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
# Login to a site
|
|
119
|
-
agent-browser open https://app.example.com/login
|
|
120
|
-
agent-browser snapshot -i
|
|
121
|
-
agent-browser fill @e3 "user@example.com"
|
|
122
|
-
agent-browser fill @e4 "password"
|
|
123
|
-
agent-browser click @e5
|
|
124
|
-
agent-browser wait --url "**/dashboard"
|
|
125
|
-
|
|
126
|
-
# Save auth state (cookies + localStorage + sessionStorage)
|
|
127
|
-
agent-browser state save ~/.aidevops/.agent-workspace/auth/example-com.json
|
|
128
|
-
agent-browser close
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Loading Auth State
|
|
132
|
-
|
|
133
|
-
Restore saved state in new sessions:
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# Start new session with saved auth
|
|
137
|
-
agent-browser open https://app.example.com
|
|
138
|
-
agent-browser state load ~/.aidevops/.agent-workspace/auth/example-com.json
|
|
139
|
-
agent-browser reload # Apply loaded state
|
|
140
|
-
# Now logged in without re-entering credentials
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Cookie Management
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
# View all cookies
|
|
147
|
-
agent-browser cookies
|
|
148
|
-
|
|
149
|
-
# Set a specific cookie
|
|
150
|
-
agent-browser cookies set "session_id" "abc123"
|
|
151
|
-
|
|
152
|
-
# Set cookie with options
|
|
153
|
-
agent-browser cookies set "auth_token" "xyz789" --domain ".example.com" --path "/" --secure
|
|
154
|
-
|
|
155
|
-
# Clear all cookies
|
|
156
|
-
agent-browser cookies clear
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### LocalStorage & SessionStorage
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# View all localStorage
|
|
163
|
-
agent-browser storage local
|
|
164
|
-
|
|
165
|
-
# Get specific key
|
|
166
|
-
agent-browser storage local "user_preferences"
|
|
167
|
-
|
|
168
|
-
# Set value
|
|
169
|
-
agent-browser storage local set "theme" "dark"
|
|
170
|
-
agent-browser storage local set "api_token" "bearer_xyz123"
|
|
171
|
-
|
|
172
|
-
# Clear localStorage
|
|
173
|
-
agent-browser storage local clear
|
|
174
|
-
|
|
175
|
-
# Same commands work for sessionStorage
|
|
176
|
-
agent-browser storage session
|
|
177
|
-
agent-browser storage session set "temp_data" "value"
|
|
178
|
-
agent-browser storage session clear
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### Multi-Session with Shared Auth
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
# Session 1: Login and save state
|
|
185
|
-
agent-browser --session login open https://app.example.com/login
|
|
186
|
-
# ... perform login ...
|
|
187
|
-
agent-browser --session login state save ~/.aidevops/.agent-workspace/auth/app.json
|
|
188
|
-
agent-browser --session login close
|
|
189
|
-
|
|
190
|
-
# Session 2: Use saved auth for task A
|
|
191
|
-
agent-browser --session taskA open https://app.example.com
|
|
192
|
-
agent-browser --session taskA state load ~/.aidevops/.agent-workspace/auth/app.json
|
|
193
|
-
agent-browser --session taskA reload
|
|
194
|
-
# ... perform task A ...
|
|
195
|
-
|
|
196
|
-
# Session 3: Use same auth for task B (parallel)
|
|
197
|
-
agent-browser --session taskB open https://app.example.com
|
|
198
|
-
agent-browser --session taskB state load ~/.aidevops/.agent-workspace/auth/app.json
|
|
199
|
-
agent-browser --session taskB reload
|
|
200
|
-
# ... perform task B ...
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Auth State Best Practices
|
|
204
|
-
|
|
205
|
-
| Practice | Why |
|
|
206
|
-
|----------|-----|
|
|
207
|
-
| Store in `~/.aidevops/.agent-workspace/auth/` | Gitignored, secure location |
|
|
208
|
-
| Name by domain | `github-com.json`, `app-example-com.json` |
|
|
209
|
-
| Refresh periodically | Sessions expire, re-login and re-save |
|
|
210
|
-
| Don't commit auth files | Contains sensitive tokens |
|
|
211
|
-
| Use `--session` for isolation | Prevent cross-contamination |
|
|
212
|
-
|
|
213
|
-
### Injecting Cookies/Tokens Programmatically
|
|
214
|
-
|
|
215
|
-
For CI/CD or scripts where you have tokens from environment:
|
|
216
|
-
|
|
217
|
-
```bash
|
|
218
|
-
# Set auth cookie from environment variable
|
|
219
|
-
agent-browser open https://api.example.com
|
|
220
|
-
agent-browser cookies set "auth_token" "$AUTH_TOKEN" --domain ".example.com" --secure --httponly
|
|
221
|
-
agent-browser reload
|
|
222
|
-
|
|
223
|
-
# Or inject into localStorage
|
|
224
|
-
agent-browser storage local set "access_token" "$ACCESS_TOKEN"
|
|
225
|
-
agent-browser storage local set "refresh_token" "$REFRESH_TOKEN"
|
|
226
|
-
agent-browser reload
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## Agent-Browser Usage (Default)
|
|
230
|
-
|
|
231
|
-
### Quick Start
|
|
232
|
-
|
|
233
|
-
```bash
|
|
234
|
-
# 1. Setup (one-time)
|
|
235
|
-
~/.aidevops/agents/scripts/agent-browser-helper.sh setup
|
|
236
|
-
|
|
237
|
-
# 2. Basic workflow
|
|
238
|
-
agent-browser open https://example.com
|
|
239
|
-
agent-browser snapshot -i # Interactive elements only
|
|
240
|
-
agent-browser click @e1 # Click by ref
|
|
241
|
-
agent-browser screenshot page.png
|
|
242
|
-
agent-browser close
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
### Snapshot + Ref Pattern (AI-Optimized)
|
|
246
|
-
|
|
247
|
-
This is the **recommended workflow for AI agents**:
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
# 1. Navigate and get snapshot
|
|
251
|
-
agent-browser open https://news.ycombinator.com
|
|
252
|
-
agent-browser snapshot -i --json
|
|
253
|
-
|
|
254
|
-
# Output includes refs:
|
|
255
|
-
# - link "Hacker News" [ref=e2]
|
|
256
|
-
# - link "new" [ref=e3]
|
|
257
|
-
# - textbox [ref=e224]
|
|
258
|
-
|
|
259
|
-
# 2. Use refs for deterministic interaction
|
|
260
|
-
agent-browser click @e3 # Click "new" link
|
|
261
|
-
agent-browser fill @e224 "search term" # Fill search box
|
|
262
|
-
|
|
263
|
-
# 3. Get new snapshot after page change
|
|
264
|
-
agent-browser snapshot -i
|
|
265
|
-
```
|
|
266
|
-
|
|
267
|
-
### Common Patterns
|
|
268
|
-
|
|
269
|
-
**Form submission**:
|
|
270
|
-
|
|
271
|
-
```bash
|
|
272
|
-
agent-browser open https://example.com/contact
|
|
273
|
-
agent-browser snapshot -i
|
|
274
|
-
agent-browser fill @e1 "John Doe"
|
|
275
|
-
agent-browser fill @e2 "john@example.com"
|
|
276
|
-
agent-browser fill @e3 "Hello, this is my message"
|
|
277
|
-
agent-browser click @e4 # Submit button
|
|
278
|
-
agent-browser wait --text "Thank you"
|
|
279
|
-
agent-browser screenshot /tmp/success.png
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
**Multi-page workflow**:
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
agent-browser open https://shop.example.com
|
|
286
|
-
agent-browser snapshot -i
|
|
287
|
-
agent-browser click @e5 # Product link
|
|
288
|
-
agent-browser wait --load networkidle
|
|
289
|
-
agent-browser snapshot -i
|
|
290
|
-
agent-browser click @e3 # Add to cart
|
|
291
|
-
agent-browser click @e8 # Checkout
|
|
292
|
-
agent-browser state save ~/.aidevops/.agent-workspace/auth/shop-cart.json
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
**Full documentation**: `tools/browser/agent-browser.md`
|
|
296
|
-
|
|
297
|
-
## Alternative Tools
|
|
298
|
-
|
|
299
|
-
Use these when agent-browser doesn't fit the use case:
|
|
300
|
-
|
|
301
|
-
### Dev-Browser - TypeScript API
|
|
302
|
-
|
|
303
|
-
**Stateful browser automation with persistent Playwright server**
|
|
304
|
-
|
|
305
|
-
```bash
|
|
306
|
-
# Setup and start
|
|
307
|
-
bash ~/.aidevops/agents/scripts/dev-browser-helper.sh setup
|
|
308
|
-
bash ~/.aidevops/agents/scripts/dev-browser-helper.sh start
|
|
309
|
-
|
|
310
|
-
# Use TypeScript API
|
|
311
|
-
cd ~/.aidevops/dev-browser/skills/dev-browser && bun x tsx <<'EOF'
|
|
312
|
-
import { connect, waitForPageLoad } from "@/client.js";
|
|
313
|
-
const client = await connect("http://localhost:9222");
|
|
314
|
-
const page = await client.page("main");
|
|
315
|
-
await page.goto("http://localhost:3000");
|
|
316
|
-
await waitForPageLoad(page);
|
|
317
|
-
console.log({ title: await page.title(), url: page.url() });
|
|
318
|
-
await client.disconnect();
|
|
319
|
-
EOF
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
**When to use**: TypeScript projects, stateful page interactions, dev testing with hot reload.
|
|
323
|
-
|
|
324
|
-
See `tools/browser/dev-browser.md` for full documentation.
|
|
325
|
-
|
|
326
|
-
### Playwriter - Chrome Extension MCP
|
|
327
|
-
|
|
328
|
-
**Browser automation via Chrome extension with full Playwright API**
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
# 1. Install Chrome extension
|
|
332
|
-
# https://chromewebstore.google.com/detail/playwriter-mcp/jfeammnjpkecdekppnclgkkffahnhfhe
|
|
333
|
-
|
|
334
|
-
# 2. Add to MCP config (OpenCode)
|
|
335
|
-
# "playwriter": { "type": "local", "command": ["npx", "playwriter@latest"] }
|
|
336
|
-
|
|
337
|
-
# 3. Click extension icon on tabs to control (turns green)
|
|
338
|
-
```
|
|
339
|
-
|
|
340
|
-
**When to use**: Reuse existing browser sessions, bypass automation detection, work alongside AI with your extensions.
|
|
341
|
-
|
|
342
|
-
See `tools/browser/playwriter.md` for full documentation.
|
|
343
|
-
|
|
344
|
-
### Stagehand - Natural Language Automation
|
|
345
|
-
|
|
346
|
-
**AI-powered browser automation with natural language control**
|
|
347
|
-
|
|
348
|
-
```bash
|
|
349
|
-
# Setup
|
|
350
|
-
bash ~/.aidevops/agents/scripts/stagehand-helper.sh setup
|
|
351
|
-
|
|
352
|
-
# Natural language actions
|
|
353
|
-
await stagehand.act("click the login button")
|
|
354
|
-
await stagehand.act("fill in the email field with user@example.com")
|
|
355
|
-
|
|
356
|
-
# Structured extraction
|
|
357
|
-
const data = await stagehand.extract("get product prices", z.array(z.number()))
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
**When to use**: Natural language control, self-healing automation, unknown page structures.
|
|
361
|
-
|
|
362
|
-
See `tools/browser/stagehand.md` for full documentation.
|
|
363
|
-
|
|
364
|
-
### Crawl4AI - Web Scraping
|
|
365
|
-
|
|
366
|
-
**AI-powered web crawling and content extraction**
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
# Setup
|
|
370
|
-
bash ~/.aidevops/agents/scripts/crawl4ai-helper.sh setup
|
|
371
|
-
|
|
372
|
-
# Crawl and extract
|
|
373
|
-
crawl4ai https://example.com --extract "main content"
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
**When to use**: Web scraping, content extraction, bulk data collection.
|
|
377
|
-
|
|
378
|
-
See `tools/browser/crawl4ai.md` for full documentation.
|
|
379
|
-
|
|
380
|
-
## Debugging Checklist
|
|
381
|
-
|
|
382
|
-
When automation fails, check in this order:
|
|
383
|
-
|
|
384
|
-
1. **Screenshot**: `agent-browser screenshot /tmp/debug.png`
|
|
385
|
-
2. **Errors**: `agent-browser errors`
|
|
386
|
-
3. **Console**: `agent-browser console`
|
|
387
|
-
4. **URL**: `agent-browser get url` (redirected?)
|
|
388
|
-
5. **Snapshot**: `agent-browser snapshot -i` (elements changed?)
|
|
389
|
-
6. **Visibility**: `agent-browser is visible @eX`
|
|
390
|
-
7. **Headed mode**: `agent-browser open url --headed` (watch it happen)
|
|
391
|
-
|
|
392
|
-
**Only ask the user after exhausting these self-diagnosis steps.**
|
|
393
|
-
|
|
394
|
-
## Ethical Guidelines
|
|
395
|
-
|
|
396
|
-
- **Respect ToS**: Check site terms before automating
|
|
397
|
-
- **Rate limit**: 2-5 second delays between actions
|
|
398
|
-
- **No spam**: Don't automate mass messaging or fake engagement
|
|
399
|
-
- **Legitimate use**: Focus on genuine value, not manipulation
|
|
400
|
-
- **Privacy**: Don't scrape personal data without consent
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Chrome DevTools MCP for debugging and inspection
|
|
3
|
-
mode: subagent
|
|
4
|
-
tools:
|
|
5
|
-
read: true
|
|
6
|
-
write: false
|
|
7
|
-
edit: false
|
|
8
|
-
bash: true
|
|
9
|
-
glob: true
|
|
10
|
-
grep: true
|
|
11
|
-
webfetch: true
|
|
12
|
-
task: true
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Chrome DevTools MCP Usage Examples
|
|
16
|
-
|
|
17
|
-
<!-- AI-CONTEXT-START -->
|
|
18
|
-
|
|
19
|
-
## Quick Reference
|
|
20
|
-
|
|
21
|
-
- Chrome DevTools examples for browser debugging and analysis
|
|
22
|
-
- Performance: `lighthouse()`, `measureWebVitals()` (LCP, FID, CLS, TTFB)
|
|
23
|
-
- Scraping: `extractData()`, `screenshot()` (fullPage, element)
|
|
24
|
-
- Debug: `captureConsole()`, `monitorNetwork()` (xhr, fetch, document)
|
|
25
|
-
- Throttling: `throttleRequest()`, `throttleRequests()` (individual request throttling - Chrome 136+)
|
|
26
|
-
- Mobile: `emulateDevice()`, `simulateTouch()` (tap, swipe)
|
|
27
|
-
- SEO: `extractSEO()`, `validateStructuredData()`
|
|
28
|
-
- Visual: `visualRegression()`, `analyzeCSSCoverage()`
|
|
29
|
-
- Automation: `comprehensiveAnalysis()`, `comparePages()` (A/B testing)
|
|
30
|
-
- Devices: iPhone 12 Pro, custom viewports
|
|
31
|
-
- Metrics: domContentLoaded, load, FCP, LCP
|
|
32
|
-
<!-- AI-CONTEXT-END -->
|
|
33
|
-
|
|
34
|
-
## Performance Analysis
|
|
35
|
-
|
|
36
|
-
### **Lighthouse Performance Audit**
|
|
37
|
-
|
|
38
|
-
```javascript
|
|
39
|
-
// Request a Lighthouse audit for performance optimization
|
|
40
|
-
await chromeDevTools.lighthouse({
|
|
41
|
-
url: "https://your-website.com",
|
|
42
|
-
categories: ["performance", "accessibility", "best-practices", "seo"],
|
|
43
|
-
device: "desktop"
|
|
44
|
-
});
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### **Core Web Vitals Monitoring**
|
|
48
|
-
|
|
49
|
-
```javascript
|
|
50
|
-
// Monitor Core Web Vitals in real-time
|
|
51
|
-
await chromeDevTools.measureWebVitals({
|
|
52
|
-
url: "https://your-website.com",
|
|
53
|
-
metrics: ["LCP", "FID", "CLS", "TTFB"],
|
|
54
|
-
iterations: 5
|
|
55
|
-
});
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## 🕷️ **Web Scraping & Data Extraction**
|
|
59
|
-
|
|
60
|
-
### **Extract Page Content**
|
|
61
|
-
|
|
62
|
-
```javascript
|
|
63
|
-
// Extract structured data from a webpage
|
|
64
|
-
await chromeDevTools.extractData({
|
|
65
|
-
url: "https://example.com",
|
|
66
|
-
selectors: {
|
|
67
|
-
title: "h1",
|
|
68
|
-
description: ".description",
|
|
69
|
-
links: "a[href]"
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### **Screenshot Generation**
|
|
75
|
-
|
|
76
|
-
```javascript
|
|
77
|
-
// Generate full-page screenshots
|
|
78
|
-
await chromeDevTools.screenshot({
|
|
79
|
-
url: "https://your-website.com",
|
|
80
|
-
fullPage: true,
|
|
81
|
-
format: "png",
|
|
82
|
-
quality: 90
|
|
83
|
-
});
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## 🐛 **Debugging & Testing**
|
|
87
|
-
|
|
88
|
-
### **Console Log Analysis**
|
|
89
|
-
|
|
90
|
-
```javascript
|
|
91
|
-
// Capture and analyze console errors
|
|
92
|
-
await chromeDevTools.captureConsole({
|
|
93
|
-
url: "https://your-website.com",
|
|
94
|
-
logLevel: "error",
|
|
95
|
-
duration: 30000
|
|
96
|
-
});
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### **Network Request Monitoring**
|
|
100
|
-
|
|
101
|
-
```javascript
|
|
102
|
-
// Monitor network requests and responses
|
|
103
|
-
await chromeDevTools.monitorNetwork({
|
|
104
|
-
url: "https://your-website.com",
|
|
105
|
-
filters: ["xhr", "fetch", "document"],
|
|
106
|
-
captureHeaders: true,
|
|
107
|
-
captureBody: true
|
|
108
|
-
});
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## **Network Conditions & Throttling**
|
|
112
|
-
|
|
113
|
-
### **Individual Request Throttling** (New in Chrome 136+)
|
|
114
|
-
|
|
115
|
-
Chrome DevTools now supports throttling individual network requests rather than the entire page. This enables precise testing of how your application handles slow-loading specific resources.
|
|
116
|
-
|
|
117
|
-
**Use cases:**
|
|
118
|
-
- Test lazy-loading behavior when specific images load slowly
|
|
119
|
-
- Simulate slow API responses without affecting other requests
|
|
120
|
-
- Debug race conditions when certain scripts load out of order
|
|
121
|
-
- Test error handling for slow third-party resources
|
|
122
|
-
|
|
123
|
-
```javascript
|
|
124
|
-
// Throttle a specific API endpoint
|
|
125
|
-
await chromeDevTools.throttleRequest({
|
|
126
|
-
url: "https://your-website.com",
|
|
127
|
-
requestPattern: "**/api/slow-endpoint",
|
|
128
|
-
latency: 3000, // Add 3 second delay
|
|
129
|
-
downloadThroughput: 50 * 1024 // 50 KB/s
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
// Throttle specific image requests
|
|
133
|
-
await chromeDevTools.throttleRequest({
|
|
134
|
-
url: "https://your-website.com",
|
|
135
|
-
requestPattern: "*.jpg",
|
|
136
|
-
latency: 2000,
|
|
137
|
-
downloadThroughput: 100 * 1024 // 100 KB/s
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
// Throttle multiple patterns with different conditions
|
|
141
|
-
await chromeDevTools.throttleRequests({
|
|
142
|
-
url: "https://your-website.com",
|
|
143
|
-
rules: [
|
|
144
|
-
{
|
|
145
|
-
pattern: "**/api/critical",
|
|
146
|
-
latency: 0,
|
|
147
|
-
downloadThroughput: -1 // No throttling (priority)
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
pattern: "**/api/*",
|
|
151
|
-
latency: 1500,
|
|
152
|
-
downloadThroughput: 200 * 1024
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
pattern: "*.woff2",
|
|
156
|
-
latency: 500,
|
|
157
|
-
downloadThroughput: 50 * 1024
|
|
158
|
-
}
|
|
159
|
-
]
|
|
160
|
-
});
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
**Manual DevTools usage:**
|
|
164
|
-
1. Open DevTools (F12) → Network panel
|
|
165
|
-
2. Right-click any request → "Throttle request"
|
|
166
|
-
3. Choose preset (Slow 3G, Fast 3G) or custom values
|
|
167
|
-
4. Request-specific throttling persists until cleared
|
|
168
|
-
|
|
169
|
-
**Comparison with page-level throttling:**
|
|
170
|
-
|
|
171
|
-
| Feature | Page-Level | Individual Request |
|
|
172
|
-
|---------|------------|-------------------|
|
|
173
|
-
| Scope | All requests | Specific URL patterns |
|
|
174
|
-
| Use case | General slow network testing | Targeted resource testing |
|
|
175
|
-
| Precision | Low | High |
|
|
176
|
-
| Real-world simulation | Broad conditions | Specific failure scenarios |
|
|
177
|
-
|
|
178
|
-
## 📱 **Mobile Testing**
|
|
179
|
-
|
|
180
|
-
### **Device Emulation**
|
|
181
|
-
|
|
182
|
-
```javascript
|
|
183
|
-
// Test mobile responsiveness
|
|
184
|
-
await chromeDevTools.emulateDevice({
|
|
185
|
-
url: "https://your-website.com",
|
|
186
|
-
device: "iPhone 12 Pro",
|
|
187
|
-
orientation: "portrait"
|
|
188
|
-
});
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### **Touch Event Testing**
|
|
192
|
-
|
|
193
|
-
```javascript
|
|
194
|
-
// Simulate touch interactions
|
|
195
|
-
await chromeDevTools.simulateTouch({
|
|
196
|
-
url: "https://your-website.com",
|
|
197
|
-
actions: [
|
|
198
|
-
{ type: "tap", x: 100, y: 200 },
|
|
199
|
-
{ type: "swipe", startX: 100, startY: 300, endX: 300, endY: 300 }
|
|
200
|
-
]
|
|
201
|
-
});
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
## 🔍 **SEO Analysis**
|
|
205
|
-
|
|
206
|
-
### **Meta Tag Extraction**
|
|
207
|
-
|
|
208
|
-
```javascript
|
|
209
|
-
// Extract SEO-relevant meta tags
|
|
210
|
-
await chromeDevTools.extractSEO({
|
|
211
|
-
url: "https://your-website.com",
|
|
212
|
-
elements: ["title", "meta[name='description']", "meta[property^='og:']", "link[rel='canonical']"]
|
|
213
|
-
});
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
### **Structured Data Validation**
|
|
217
|
-
|
|
218
|
-
```javascript
|
|
219
|
-
// Validate structured data markup
|
|
220
|
-
await chromeDevTools.validateStructuredData({
|
|
221
|
-
url: "https://your-website.com",
|
|
222
|
-
schemas: ["Organization", "WebSite", "Article"]
|
|
223
|
-
});
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
## 🚀 **Automation Workflows**
|
|
227
|
-
|
|
228
|
-
### **Multi-Page Analysis**
|
|
229
|
-
|
|
230
|
-
```javascript
|
|
231
|
-
// Analyze multiple pages in sequence
|
|
232
|
-
const urls = [
|
|
233
|
-
"https://your-website.com",
|
|
234
|
-
"https://your-website.com/about",
|
|
235
|
-
"https://your-website.com/contact"
|
|
236
|
-
];
|
|
237
|
-
|
|
238
|
-
for (const url of urls) {
|
|
239
|
-
await chromeDevTools.comprehensiveAnalysis({
|
|
240
|
-
url: url,
|
|
241
|
-
includePerformance: true,
|
|
242
|
-
includeSEO: true,
|
|
243
|
-
includeAccessibility: true
|
|
244
|
-
});
|
|
245
|
-
}
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
### **A/B Testing Support**
|
|
249
|
-
|
|
250
|
-
```javascript
|
|
251
|
-
// Compare two versions of a page
|
|
252
|
-
await chromeDevTools.comparePages({
|
|
253
|
-
urlA: "https://your-website.com/version-a",
|
|
254
|
-
urlB: "https://your-website.com/version-b",
|
|
255
|
-
metrics: ["performance", "visual-diff", "accessibility"]
|
|
256
|
-
});
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
## 🎨 **Visual Testing**
|
|
260
|
-
|
|
261
|
-
### **Visual Regression Testing**
|
|
262
|
-
|
|
263
|
-
```javascript
|
|
264
|
-
// Capture baseline and compare screenshots
|
|
265
|
-
await chromeDevTools.visualRegression({
|
|
266
|
-
url: "https://your-website.com",
|
|
267
|
-
baseline: "/path/to/baseline.png",
|
|
268
|
-
threshold: 0.1,
|
|
269
|
-
highlightDifferences: true
|
|
270
|
-
});
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### **CSS Coverage Analysis**
|
|
274
|
-
|
|
275
|
-
```javascript
|
|
276
|
-
// Analyze unused CSS
|
|
277
|
-
await chromeDevTools.analyzeCSSCoverage({
|
|
278
|
-
url: "https://your-website.com",
|
|
279
|
-
reportUnused: true,
|
|
280
|
-
minifyRecommendations: true
|
|
281
|
-
});
|
|
282
|
-
```
|