@vodailoc/kilo-kit-mcp 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp/kilo-kit.codex-windows.toml +5 -0
- package/LICENSE +190 -190
- package/QUICKSTART.md +265 -255
- package/README.md +290 -266
- package/mcp/README.md +29 -5
- package/mcp/dist/server.js +1 -1
- package/mcp/package.json +1 -2
- package/package.json +3 -2
- package/skills/README.md +647 -647
- package/skills/SKILLS_INDEX.md +139 -139
- package/skills/ai-media/ai-multimodal/.env.example +97 -97
- package/skills/ai-media/ai-multimodal/SKILL.md +357 -357
- package/skills/ai-media/ai-multimodal/references/audio-processing.md +373 -373
- package/skills/ai-media/ai-multimodal/references/image-generation.md +558 -558
- package/skills/ai-media/ai-multimodal/references/video-analysis.md +502 -502
- package/skills/ai-media/ai-multimodal/references/vision-understanding.md +483 -483
- package/skills/ai-media/ai-multimodal/scripts/document_converter.py +395 -395
- package/skills/ai-media/ai-multimodal/scripts/gemini_batch_process.py +480 -480
- package/skills/ai-media/ai-multimodal/scripts/media_optimizer.py +506 -506
- package/skills/ai-media/ai-multimodal/scripts/requirements.txt +26 -26
- package/skills/ai-media/ai-multimodal/scripts/tests/requirements.txt +20 -20
- package/skills/ai-media/ai-multimodal/scripts/tests/test_document_converter.py +299 -299
- package/skills/ai-media/ai-multimodal/scripts/tests/test_gemini_batch_process.py +362 -362
- package/skills/ai-media/ai-multimodal/scripts/tests/test_media_optimizer.py +373 -373
- package/skills/ai-media/media-processing/SKILL.md +358 -358
- package/skills/ai-media/media-processing/references/ffmpeg-encoding.md +358 -358
- package/skills/ai-media/media-processing/references/ffmpeg-filters.md +503 -503
- package/skills/ai-media/media-processing/references/ffmpeg-streaming.md +403 -403
- package/skills/ai-media/media-processing/references/format-compatibility.md +375 -375
- package/skills/ai-media/media-processing/references/imagemagick-batch.md +612 -612
- package/skills/ai-media/media-processing/references/imagemagick-editing.md +623 -623
- package/skills/ai-media/media-processing/scripts/batch_resize.py +342 -342
- package/skills/ai-media/media-processing/scripts/media_convert.py +311 -311
- package/skills/ai-media/media-processing/scripts/requirements.txt +24 -24
- package/skills/ai-media/media-processing/scripts/tests/requirements.txt +2 -2
- package/skills/ai-media/media-processing/scripts/tests/test_batch_resize.py +372 -372
- package/skills/ai-media/media-processing/scripts/tests/test_media_convert.py +259 -259
- package/skills/ai-media/media-processing/scripts/tests/test_video_optimize.py +397 -397
- package/skills/ai-media/media-processing/scripts/video_optimize.py +414 -414
- package/skills/ai-media/screenshot/LICENSE.txt +201 -201
- package/skills/ai-media/screenshot/SKILL.md +267 -267
- package/skills/ai-media/screenshot/agents/openai.yaml +6 -6
- package/skills/ai-media/screenshot/assets/screenshot-small.svg +5 -5
- package/skills/ai-media/screenshot/scripts/ensure_macos_permissions.sh +54 -54
- package/skills/ai-media/screenshot/scripts/macos_display_info.swift +22 -22
- package/skills/ai-media/screenshot/scripts/macos_permissions.swift +40 -40
- package/skills/ai-media/screenshot/scripts/macos_window_info.swift +126 -126
- package/skills/ai-media/screenshot/scripts/take_screenshot.ps1 +163 -163
- package/skills/ai-media/screenshot/scripts/take_screenshot.py +585 -585
- package/skills/ai-media/sora/LICENSE.txt +201 -201
- package/skills/ai-media/sora/SKILL.md +153 -153
- package/skills/ai-media/sora/agents/openai.yaml +6 -6
- package/skills/ai-media/sora/assets/sora-small.svg +4 -4
- package/skills/ai-media/sora/references/cinematic-shots.md +53 -53
- package/skills/ai-media/sora/references/cli.md +248 -248
- package/skills/ai-media/sora/references/codex-network.md +28 -28
- package/skills/ai-media/sora/references/prompting.md +137 -137
- package/skills/ai-media/sora/references/sample-prompts.md +95 -95
- package/skills/ai-media/sora/references/social-ads.md +42 -42
- package/skills/ai-media/sora/references/troubleshooting.md +58 -58
- package/skills/ai-media/sora/references/video-api.md +45 -45
- package/skills/ai-media/sora/scripts/sora.py +970 -970
- package/skills/design/aesthetic/SKILL.md +121 -121
- package/skills/design/aesthetic/assets/design-guideline-template.md +163 -163
- package/skills/design/aesthetic/assets/design-story-template.md +135 -135
- package/skills/design/aesthetic/references/design-principles.md +62 -62
- package/skills/design/aesthetic/references/design-resources.md +75 -75
- package/skills/design/aesthetic/references/micro-interactions.md +53 -53
- package/skills/design/aesthetic/references/storytelling-design.md +50 -50
- package/skills/design/figma/LICENSE.txt +202 -202
- package/skills/design/figma/SKILL.md +42 -42
- package/skills/design/figma/agents/openai.yaml +14 -14
- package/skills/design/figma/assets/figma-small.svg +3 -3
- package/skills/design/figma/assets/icon.svg +28 -28
- package/skills/design/figma/references/figma-mcp-config.md +35 -35
- package/skills/design/figma/references/figma-tools-and-prompts.md +34 -34
- package/skills/design/figma-implement-design/LICENSE.txt +202 -202
- package/skills/design/figma-implement-design/SKILL.md +264 -264
- package/skills/design/figma-implement-design/agents/openai.yaml +14 -14
- package/skills/design/figma-implement-design/assets/figma-small.svg +3 -3
- package/skills/design/figma-implement-design/assets/icon.svg +28 -28
- package/skills/design/frontend-design/SKILL.md +41 -41
- package/skills/design/frontend-design/references/animejs.md +395 -395
- package/skills/design/ui-styling/LICENSE.txt +201 -201
- package/skills/design/ui-styling/SKILL.md +321 -321
- package/skills/design/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -94
- package/skills/design/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Jura-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Lora-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -93
- package/skills/design/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -93
- package/skills/design/ui-styling/references/canvas-design-system.md +320 -320
- package/skills/design/ui-styling/references/shadcn-accessibility.md +471 -471
- package/skills/design/ui-styling/references/shadcn-components.md +424 -424
- package/skills/design/ui-styling/references/shadcn-theming.md +373 -373
- package/skills/design/ui-styling/references/tailwind-customization.md +483 -483
- package/skills/design/ui-styling/references/tailwind-responsive.md +382 -382
- package/skills/design/ui-styling/references/tailwind-utilities.md +455 -455
- package/skills/design/ui-styling/scripts/requirements.txt +17 -17
- package/skills/design/ui-styling/scripts/shadcn_add.py +292 -292
- package/skills/design/ui-styling/scripts/tailwind_config_gen.py +456 -456
- package/skills/design/ui-styling/scripts/tests/requirements.txt +3 -3
- package/skills/design/ui-styling/scripts/tests/test_shadcn_add.py +266 -266
- package/skills/design/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -336
- package/skills/engineering/aspnet-core/LICENSE.txt +201 -201
- package/skills/engineering/aspnet-core/SKILL.md +61 -61
- package/skills/engineering/aspnet-core/agents/openai.yaml +5 -5
- package/skills/engineering/aspnet-core/references/_sections.md +40 -40
- package/skills/engineering/aspnet-core/references/apis-minimal-and-controllers.md +81 -81
- package/skills/engineering/aspnet-core/references/data-state-and-services.md +69 -69
- package/skills/engineering/aspnet-core/references/program-and-pipeline.md +103 -103
- package/skills/engineering/aspnet-core/references/realtime-grpc-and-background-work.md +58 -58
- package/skills/engineering/aspnet-core/references/security-and-identity.md +75 -75
- package/skills/engineering/aspnet-core/references/source-map.md +43 -43
- package/skills/engineering/aspnet-core/references/stack-selection.md +63 -63
- package/skills/engineering/aspnet-core/references/testing-performance-and-operations.md +92 -92
- package/skills/engineering/aspnet-core/references/ui-blazor.md +53 -53
- package/skills/engineering/aspnet-core/references/ui-mvc.md +56 -56
- package/skills/engineering/aspnet-core/references/ui-razor-pages.md +55 -55
- package/skills/engineering/aspnet-core/references/versioning-and-upgrades.md +51 -51
- package/skills/engineering/backend-development/SKILL.md +95 -95
- package/skills/engineering/backend-development/references/backend-api-design.md +495 -495
- package/skills/engineering/backend-development/references/backend-architecture.md +454 -454
- package/skills/engineering/backend-development/references/backend-authentication.md +338 -338
- package/skills/engineering/backend-development/references/backend-code-quality.md +659 -659
- package/skills/engineering/backend-development/references/backend-debugging.md +904 -904
- package/skills/engineering/backend-development/references/backend-devops.md +494 -494
- package/skills/engineering/backend-development/references/backend-mindset.md +387 -387
- package/skills/engineering/backend-development/references/backend-performance.md +397 -397
- package/skills/engineering/backend-development/references/backend-security.md +290 -290
- package/skills/engineering/backend-development/references/backend-technologies.md +256 -256
- package/skills/engineering/backend-development/references/backend-testing.md +429 -429
- package/skills/engineering/better-auth/SKILL.md +204 -204
- package/skills/engineering/better-auth/references/advanced-features.md +553 -553
- package/skills/engineering/better-auth/references/database-integration.md +577 -577
- package/skills/engineering/better-auth/references/email-password-auth.md +416 -416
- package/skills/engineering/better-auth/references/oauth-providers.md +430 -430
- package/skills/engineering/better-auth/scripts/better_auth_init.py +521 -521
- package/skills/engineering/better-auth/scripts/requirements.txt +15 -15
- package/skills/engineering/better-auth/scripts/tests/test_better_auth_init.py +421 -421
- package/skills/engineering/code-review/SKILL.md +140 -140
- package/skills/engineering/code-review/references/code-review-reception.md +208 -208
- package/skills/engineering/code-review/references/requesting-code-review.md +104 -104
- package/skills/engineering/code-review/references/verification-before-completion.md +138 -138
- package/skills/engineering/context-engineering/SKILL.md +86 -86
- package/skills/engineering/context-engineering/references/context-compression.md +84 -84
- package/skills/engineering/context-engineering/references/context-degradation.md +93 -93
- package/skills/engineering/context-engineering/references/context-fundamentals.md +75 -75
- package/skills/engineering/context-engineering/references/context-optimization.md +82 -82
- package/skills/engineering/context-engineering/references/evaluation.md +89 -89
- package/skills/engineering/context-engineering/references/memory-systems.md +88 -88
- package/skills/engineering/context-engineering/references/multi-agent-patterns.md +90 -90
- package/skills/engineering/context-engineering/references/project-development.md +97 -97
- package/skills/engineering/context-engineering/references/tool-design.md +86 -86
- package/skills/engineering/context-engineering/scripts/compression_evaluator.py +329 -329
- package/skills/engineering/context-engineering/scripts/context_analyzer.py +294 -294
- package/skills/engineering/databases/SKILL.md +232 -232
- package/skills/engineering/databases/references/mongodb-aggregation.md +447 -447
- package/skills/engineering/databases/references/mongodb-atlas.md +465 -465
- package/skills/engineering/databases/references/mongodb-crud.md +408 -408
- package/skills/engineering/databases/references/mongodb-indexing.md +442 -442
- package/skills/engineering/databases/references/postgresql-administration.md +594 -594
- package/skills/engineering/databases/references/postgresql-performance.md +527 -527
- package/skills/engineering/databases/references/postgresql-psql-cli.md +467 -467
- package/skills/engineering/databases/references/postgresql-queries.md +475 -475
- package/skills/engineering/databases/scripts/db_backup.py +502 -502
- package/skills/engineering/databases/scripts/db_migrate.py +414 -414
- package/skills/engineering/databases/scripts/db_performance_check.py +444 -444
- package/skills/engineering/databases/scripts/requirements.txt +20 -20
- package/skills/engineering/databases/scripts/tests/requirements.txt +4 -4
- package/skills/engineering/databases/scripts/tests/test_db_backup.py +340 -340
- package/skills/engineering/databases/scripts/tests/test_db_migrate.py +277 -277
- package/skills/engineering/databases/scripts/tests/test_db_performance_check.py +370 -370
- package/skills/engineering/diagnose/SKILL.md +117 -117
- package/skills/engineering/diagnose/scripts/hitl-loop.template.sh +41 -41
- package/skills/engineering/docs-seeker/SKILL.md +207 -207
- package/skills/engineering/docs-seeker/WORKFLOWS.md +505 -505
- package/skills/engineering/docs-seeker/references/best-practices.md +632 -632
- package/skills/engineering/docs-seeker/references/documentation-sources.md +461 -461
- package/skills/engineering/docs-seeker/references/error-handling.md +621 -621
- package/skills/engineering/docs-seeker/references/limitations.md +821 -821
- package/skills/engineering/docs-seeker/references/performance.md +574 -574
- package/skills/engineering/docs-seeker/references/tool-selection.md +262 -262
- package/skills/engineering/frontend-development/SKILL.md +398 -398
- package/skills/engineering/frontend-development/resources/common-patterns.md +330 -330
- package/skills/engineering/frontend-development/resources/complete-examples.md +871 -871
- package/skills/engineering/frontend-development/resources/component-patterns.md +501 -501
- package/skills/engineering/frontend-development/resources/data-fetching.md +766 -766
- package/skills/engineering/frontend-development/resources/file-organization.md +501 -501
- package/skills/engineering/frontend-development/resources/loading-and-error-states.md +500 -500
- package/skills/engineering/frontend-development/resources/performance.md +405 -405
- package/skills/engineering/frontend-development/resources/routing-guide.md +363 -363
- package/skills/engineering/frontend-development/resources/styling-guide.md +427 -427
- package/skills/engineering/frontend-development/resources/typescript-standards.md +417 -417
- package/skills/engineering/improve-codebase-architecture/DEEPENING.md +37 -37
- package/skills/engineering/improve-codebase-architecture/INTERFACE-DESIGN.md +44 -44
- package/skills/engineering/improve-codebase-architecture/LANGUAGE.md +53 -53
- package/skills/engineering/improve-codebase-architecture/SKILL.md +71 -71
- package/skills/engineering/openai-docs/LICENSE.txt +201 -201
- package/skills/engineering/openai-docs/SKILL.md +69 -69
- package/skills/engineering/openai-docs/agents/openai.yaml +14 -14
- package/skills/engineering/openai-docs/assets/openai-small.svg +3 -3
- package/skills/engineering/openai-docs/references/gpt-5p4-prompting-guide.md +433 -433
- package/skills/engineering/openai-docs/references/latest-model.md +35 -35
- package/skills/engineering/openai-docs/references/upgrading-to-gpt-5p4.md +164 -164
- package/skills/engineering/playwright/LICENSE.txt +201 -201
- package/skills/engineering/playwright/NOTICE.txt +14 -14
- package/skills/engineering/playwright/SKILL.md +147 -147
- package/skills/engineering/playwright/agents/openai.yaml +6 -6
- package/skills/engineering/playwright/assets/playwright-small.svg +3 -3
- package/skills/engineering/playwright/references/cli.md +116 -116
- package/skills/engineering/playwright/references/workflows.md +95 -95
- package/skills/engineering/playwright/scripts/playwright_cli.sh +25 -25
- package/skills/engineering/playwright-interactive/LICENSE.txt +201 -201
- package/skills/engineering/playwright-interactive/NOTICE.txt +13 -13
- package/skills/engineering/playwright-interactive/SKILL.md +689 -689
- package/skills/engineering/playwright-interactive/agents/openai.yaml +6 -6
- package/skills/engineering/playwright-interactive/assets/playwright-small.svg +3 -3
- package/skills/engineering/render-deploy/LICENSE.txt +201 -201
- package/skills/engineering/render-deploy/SKILL.md +479 -479
- package/skills/engineering/render-deploy/agents/openai.yaml +14 -14
- package/skills/engineering/render-deploy/assets/docker.yaml +62 -62
- package/skills/engineering/render-deploy/assets/go-api.yaml +35 -35
- package/skills/engineering/render-deploy/assets/nextjs-postgres.yaml +35 -35
- package/skills/engineering/render-deploy/assets/node-express.yaml +25 -25
- package/skills/engineering/render-deploy/assets/python-django.yaml +89 -89
- package/skills/engineering/render-deploy/assets/render-small.svg +3 -3
- package/skills/engineering/render-deploy/assets/static-site.yaml +54 -54
- package/skills/engineering/render-deploy/references/blueprint-spec.md +718 -718
- package/skills/engineering/render-deploy/references/codebase-analysis.md +49 -49
- package/skills/engineering/render-deploy/references/configuration-guide.md +603 -603
- package/skills/engineering/render-deploy/references/deployment-details.md +224 -224
- package/skills/engineering/render-deploy/references/direct-creation.md +113 -113
- package/skills/engineering/render-deploy/references/error-patterns.md +13 -13
- package/skills/engineering/render-deploy/references/post-deploy-checks.md +36 -36
- package/skills/engineering/render-deploy/references/runtimes.md +473 -473
- package/skills/engineering/render-deploy/references/service-types.md +450 -450
- package/skills/engineering/render-deploy/references/troubleshooting-basics.md +36 -36
- package/skills/engineering/repomix/SKILL.md +215 -215
- package/skills/engineering/repomix/references/configuration.md +211 -211
- package/skills/engineering/repomix/references/usage-patterns.md +232 -232
- package/skills/engineering/repomix/scripts/README.md +179 -179
- package/skills/engineering/repomix/scripts/repomix_batch.py +455 -455
- package/skills/engineering/repomix/scripts/repos.example.json +15 -15
- package/skills/engineering/repomix/scripts/requirements.txt +15 -15
- package/skills/engineering/repomix/scripts/tests/test_repomix_batch.py +531 -531
- package/skills/engineering/setup-matt-pocock-skills/SKILL.md +121 -121
- package/skills/engineering/setup-matt-pocock-skills/domain.md +51 -51
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +22 -22
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +23 -23
- package/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +19 -19
- package/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -15
- package/skills/engineering/shopify/README.md +66 -66
- package/skills/engineering/shopify/SKILL.md +319 -319
- package/skills/engineering/shopify/references/app-development.md +470 -470
- package/skills/engineering/shopify/references/extensions.md +493 -493
- package/skills/engineering/shopify/references/themes.md +498 -498
- package/skills/engineering/shopify/scripts/requirements.txt +19 -19
- package/skills/engineering/shopify/scripts/shopify_init.py +423 -423
- package/skills/engineering/shopify/scripts/tests/test_shopify_init.py +385 -385
- package/skills/engineering/tdd/SKILL.md +109 -109
- package/skills/engineering/tdd/deep-modules.md +33 -33
- package/skills/engineering/tdd/interface-design.md +31 -31
- package/skills/engineering/tdd/mocking.md +59 -59
- package/skills/engineering/tdd/refactoring.md +10 -10
- package/skills/engineering/tdd/tests.md +61 -61
- package/skills/engineering/to-issues/SKILL.md +81 -81
- package/skills/engineering/to-prd/SKILL.md +74 -74
- package/skills/engineering/triage/AGENT-BRIEF.md +168 -168
- package/skills/engineering/triage/OUT-OF-SCOPE.md +101 -101
- package/skills/engineering/triage/SKILL.md +103 -103
- package/skills/engineering/web-frameworks/SKILL.md +324 -324
- package/skills/engineering/web-frameworks/references/nextjs-app-router.md +465 -465
- package/skills/engineering/web-frameworks/references/nextjs-data-fetching.md +459 -459
- package/skills/engineering/web-frameworks/references/nextjs-optimization.md +511 -511
- package/skills/engineering/web-frameworks/references/nextjs-server-components.md +495 -495
- package/skills/engineering/web-frameworks/references/remix-icon-integration.md +603 -603
- package/skills/engineering/web-frameworks/references/turborepo-caching.md +551 -551
- package/skills/engineering/web-frameworks/references/turborepo-pipelines.md +517 -517
- package/skills/engineering/web-frameworks/references/turborepo-setup.md +542 -542
- package/skills/engineering/web-frameworks/scripts/nextjs_init.py +547 -547
- package/skills/engineering/web-frameworks/scripts/requirements.txt +16 -16
- package/skills/engineering/web-frameworks/scripts/tests/requirements.txt +3 -3
- package/skills/engineering/web-frameworks/scripts/tests/test_nextjs_init.py +319 -319
- package/skills/engineering/web-frameworks/scripts/tests/test_turborepo_migrate.py +374 -374
- package/skills/engineering/web-frameworks/scripts/turborepo_migrate.py +394 -394
- package/skills/engineering/write-a-skill/SKILL.md +117 -117
- package/skills/kilo-kit/SKILL.md +346 -346
- package/skills/kilo-kit/_template/SKILL.md +185 -185
- package/skills/kilo-kit/debugging/root-cause/SKILL.md +360 -360
- package/skills/kilo-kit/debugging/systematic/SKILL.md +339 -339
- package/skills/kilo-kit/debugging/verification/SKILL.md +424 -424
- package/skills/kilo-kit/development/backend/SKILL.md +540 -540
- package/skills/kilo-kit/development/security/SKILL.md +529 -529
- package/skills/kilo-kit/quality/code-review/SKILL.md +297 -297
- package/skills/kilo-kit/quality/testing/SKILL.md +540 -540
- package/skills/kilo-kit/references/output-formats.md +204 -204
- package/skills/kilo-kit/references/patterns.md +156 -156
- package/skills/kilo-kit/references/performance-benchmarks.md +90 -90
- package/skills/operations/chrome-devtools/SKILL.md +392 -392
- package/skills/operations/chrome-devtools/references/cdp-domains.md +694 -694
- package/skills/operations/chrome-devtools/references/performance-guide.md +940 -940
- package/skills/operations/chrome-devtools/references/puppeteer-reference.md +953 -953
- package/skills/operations/chrome-devtools/scripts/PERSISTENT-BROWSER.md +107 -107
- package/skills/operations/chrome-devtools/scripts/README.md +213 -213
- package/skills/operations/chrome-devtools/scripts/__tests__/selector.test.js +210 -210
- package/skills/operations/chrome-devtools/scripts/click.js +79 -79
- package/skills/operations/chrome-devtools/scripts/close-persistent.js +36 -36
- package/skills/operations/chrome-devtools/scripts/console.js +75 -75
- package/skills/operations/chrome-devtools/scripts/evaluate.js +49 -49
- package/skills/operations/chrome-devtools/scripts/fill.js +72 -72
- package/skills/operations/chrome-devtools/scripts/install-deps.sh +181 -181
- package/skills/operations/chrome-devtools/scripts/install.sh +83 -83
- package/skills/operations/chrome-devtools/scripts/launch-persistent.js +71 -71
- package/skills/operations/chrome-devtools/scripts/lib/browser.js +144 -144
- package/skills/operations/chrome-devtools/scripts/lib/selector.js +178 -178
- package/skills/operations/chrome-devtools/scripts/navigate.js +46 -46
- package/skills/operations/chrome-devtools/scripts/network.js +102 -102
- package/skills/operations/chrome-devtools/scripts/package-lock.json +1206 -1206
- package/skills/operations/chrome-devtools/scripts/package.json +15 -15
- package/skills/operations/chrome-devtools/scripts/performance.js +145 -145
- package/skills/operations/chrome-devtools/scripts/screenshot.js +180 -180
- package/skills/operations/chrome-devtools/scripts/snapshot.js +131 -131
- package/skills/operations/devops/.env.example +76 -76
- package/skills/operations/devops/SKILL.md +285 -285
- package/skills/operations/devops/references/browser-rendering.md +305 -305
- package/skills/operations/devops/references/cloudflare-d1-kv.md +123 -123
- package/skills/operations/devops/references/cloudflare-platform.md +271 -271
- package/skills/operations/devops/references/cloudflare-r2-storage.md +280 -280
- package/skills/operations/devops/references/cloudflare-workers-advanced.md +312 -312
- package/skills/operations/devops/references/cloudflare-workers-apis.md +309 -309
- package/skills/operations/devops/references/cloudflare-workers-basics.md +418 -418
- package/skills/operations/devops/references/docker-basics.md +297 -297
- package/skills/operations/devops/references/docker-compose.md +292 -292
- package/skills/operations/devops/references/gcloud-platform.md +297 -297
- package/skills/operations/devops/references/gcloud-services.md +304 -304
- package/skills/operations/devops/scripts/cloudflare_deploy.py +269 -269
- package/skills/operations/devops/scripts/docker_optimize.py +320 -320
- package/skills/operations/devops/scripts/requirements.txt +20 -20
- package/skills/operations/devops/scripts/tests/requirements.txt +3 -3
- package/skills/operations/devops/scripts/tests/test_cloudflare_deploy.py +285 -285
- package/skills/operations/devops/scripts/tests/test_docker_optimize.py +436 -436
- package/skills/operations/mcp-builder/LICENSE.txt +201 -201
- package/skills/operations/mcp-builder/SKILL.md +328 -328
- package/skills/operations/mcp-builder/reference/evaluation.md +601 -601
- package/skills/operations/mcp-builder/reference/mcp_best_practices.md +915 -915
- package/skills/operations/mcp-builder/reference/node_mcp_server.md +915 -915
- package/skills/operations/mcp-builder/reference/python_mcp_server.md +751 -751
- package/skills/operations/mcp-builder/scripts/connections.py +151 -151
- package/skills/operations/mcp-builder/scripts/evaluation.py +373 -373
- package/skills/operations/mcp-builder/scripts/example_evaluation.xml +22 -22
- package/skills/operations/mcp-builder/scripts/requirements.txt +2 -2
- package/skills/operations/mcp-management/README.md +219 -219
- package/skills/operations/mcp-management/SKILL.md +175 -175
- package/skills/operations/mcp-management/assets/tools.json +3043 -3043
- package/skills/operations/mcp-management/references/configuration.md +114 -114
- package/skills/operations/mcp-management/references/gemini-cli-integration.md +201 -201
- package/skills/operations/mcp-management/references/mcp-protocol.md +116 -116
- package/skills/operations/mcp-management/scripts/.env.example +10 -10
- package/skills/operations/mcp-management/scripts/cli.ts +155 -155
- package/skills/operations/mcp-management/scripts/dist/analyze-tools.js +70 -70
- package/skills/operations/mcp-management/scripts/dist/cli.js +131 -131
- package/skills/operations/mcp-management/scripts/dist/mcp-client.js +115 -115
- package/skills/operations/mcp-management/scripts/mcp-client.ts +163 -163
- package/skills/operations/mcp-management/scripts/package.json +18 -18
- package/skills/operations/mcp-management/scripts/tsconfig.json +15 -15
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -62
- package/skills/problem-solving/defense-in-depth/SKILL.md +130 -130
- package/skills/problem-solving/inversion-exercise/SKILL.md +58 -58
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -54
- package/skills/problem-solving/root-cause-tracing/SKILL.md +177 -177
- package/skills/problem-solving/root-cause-tracing/find-polluter.sh +63 -63
- package/skills/problem-solving/scale-game/SKILL.md +63 -63
- package/skills/problem-solving/sequential-thinking/README.md +118 -118
- package/skills/problem-solving/sequential-thinking/SKILL.md +93 -93
- package/skills/problem-solving/sequential-thinking/references/advanced.md +122 -122
- package/skills/problem-solving/sequential-thinking/references/examples.md +274 -274
- package/skills/problem-solving/simplification-cascades/SKILL.md +76 -76
- package/skills/problem-solving/when-stuck/SKILL.md +88 -88
- package/skills/productivity/caveman/SKILL.md +49 -49
- package/skills/productivity/grill-me/SKILL.md +10 -10
- package/skills/productivity/grill-with-docs/ADR-FORMAT.md +47 -47
- package/skills/productivity/grill-with-docs/CONTEXT-FORMAT.md +77 -77
- package/skills/productivity/grill-with-docs/SKILL.md +88 -88
- package/skills/productivity/writing-skills/graphviz-conventions.dot +171 -171
- package/skills/productivity/zoom-out/SKILL.md +7 -7
- package/skills/writing-docs/doc/LICENSE.txt +201 -201
- package/skills/writing-docs/doc/SKILL.md +80 -80
- package/skills/writing-docs/doc/agents/openai.yaml +6 -6
- package/skills/writing-docs/doc/assets/doc-small.svg +3 -3
- package/skills/writing-docs/doc/scripts/render_docx.py +296 -296
- package/skills/writing-docs/docx/LICENSE.txt +30 -30
- package/skills/writing-docs/docx/SKILL.md +196 -196
- package/skills/writing-docs/docx/docx-js.md +349 -349
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/writing-docs/docx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/writing-docs/docx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/writing-docs/docx/ooxml/schemas/mce/mc.xsd +75 -75
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/writing-docs/docx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/writing-docs/docx/ooxml/scripts/pack.py +159 -159
- package/skills/writing-docs/docx/ooxml/scripts/unpack.py +29 -29
- package/skills/writing-docs/docx/ooxml/scripts/validate.py +69 -69
- package/skills/writing-docs/docx/ooxml/scripts/validation/__init__.py +15 -15
- package/skills/writing-docs/docx/ooxml/scripts/validation/base.py +951 -951
- package/skills/writing-docs/docx/ooxml/scripts/validation/docx.py +274 -274
- package/skills/writing-docs/docx/ooxml/scripts/validation/pptx.py +315 -315
- package/skills/writing-docs/docx/ooxml/scripts/validation/redlining.py +279 -279
- package/skills/writing-docs/docx/ooxml.md +609 -609
- package/skills/writing-docs/docx/scripts/__init__.py +1 -1
- package/skills/writing-docs/docx/scripts/document.py +1276 -1276
- package/skills/writing-docs/docx/scripts/templates/comments.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsExtended.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsExtensible.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/commentsIds.xml +2 -2
- package/skills/writing-docs/docx/scripts/templates/people.xml +2 -2
- package/skills/writing-docs/docx/scripts/utilities.py +374 -374
- package/skills/writing-docs/mermaidjs-v11/SKILL.md +115 -115
- package/skills/writing-docs/mermaidjs-v11/references/cli-usage.md +228 -228
- package/skills/writing-docs/mermaidjs-v11/references/configuration.md +232 -232
- package/skills/writing-docs/mermaidjs-v11/references/diagram-types.md +315 -315
- package/skills/writing-docs/mermaidjs-v11/references/examples.md +344 -344
- package/skills/writing-docs/mermaidjs-v11/references/integration.md +310 -310
- package/skills/writing-docs/pdf/LICENSE.txt +30 -30
- package/skills/writing-docs/pdf/SKILL.md +294 -294
- package/skills/writing-docs/pdf/forms.md +205 -205
- package/skills/writing-docs/pdf/reference.md +611 -611
- package/skills/writing-docs/pdf/scripts/check_bounding_boxes.py +70 -70
- package/skills/writing-docs/pdf/scripts/check_bounding_boxes_test.py +226 -226
- package/skills/writing-docs/pdf/scripts/check_fillable_fields.py +12 -12
- package/skills/writing-docs/pdf/scripts/convert_pdf_to_images.py +35 -35
- package/skills/writing-docs/pdf/scripts/create_validation_image.py +41 -41
- package/skills/writing-docs/pdf/scripts/extract_form_field_info.py +152 -152
- package/skills/writing-docs/pdf/scripts/fill_fillable_fields.py +114 -114
- package/skills/writing-docs/pdf/scripts/fill_pdf_form_with_annotations.py +107 -107
- package/skills/writing-docs/pptx/LICENSE.txt +30 -30
- package/skills/writing-docs/pptx/SKILL.md +483 -483
- package/skills/writing-docs/pptx/html2pptx.md +624 -624
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chart.xsd +1499 -1499
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd +146 -146
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd +1085 -1085
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd +11 -11
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-main.xsd +3081 -3081
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-picture.xsd +23 -23
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd +185 -185
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd +287 -287
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/pml.xsd +1676 -1676
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd +28 -28
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd +144 -144
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd +174 -174
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd +25 -25
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd +18 -18
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd +59 -59
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd +56 -56
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd +195 -195
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-math.xsd +582 -582
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd +25 -25
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/sml.xsd +4439 -4439
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-main.xsd +570 -570
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd +509 -509
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd +12 -12
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd +108 -108
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd +96 -96
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/wml.xsd +3646 -3646
- package/skills/writing-docs/pptx/ooxml/schemas/ISO-IEC29500-4_2016/xml.xsd +116 -116
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-contentTypes.xsd +42 -42
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-coreProperties.xsd +50 -50
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-digSig.xsd +49 -49
- package/skills/writing-docs/pptx/ooxml/schemas/ecma/fouth-edition/opc-relationships.xsd +33 -33
- package/skills/writing-docs/pptx/ooxml/schemas/mce/mc.xsd +75 -75
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2010.xsd +560 -560
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2012.xsd +67 -67
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-2018.xsd +14 -14
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cex-2018.xsd +20 -20
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-cid-2016.xsd +13 -13
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-sdtdatahash-2020.xsd +4 -4
- package/skills/writing-docs/pptx/ooxml/schemas/microsoft/wml-symex-2015.xsd +8 -8
- package/skills/writing-docs/pptx/ooxml/scripts/pack.py +159 -159
- package/skills/writing-docs/pptx/ooxml/scripts/unpack.py +29 -29
- package/skills/writing-docs/pptx/ooxml/scripts/validate.py +69 -69
- package/skills/writing-docs/pptx/ooxml/scripts/validation/__init__.py +15 -15
- package/skills/writing-docs/pptx/ooxml/scripts/validation/base.py +951 -951
- package/skills/writing-docs/pptx/ooxml/scripts/validation/docx.py +274 -274
- package/skills/writing-docs/pptx/ooxml/scripts/validation/pptx.py +315 -315
- package/skills/writing-docs/pptx/ooxml/scripts/validation/redlining.py +279 -279
- package/skills/writing-docs/pptx/ooxml.md +426 -426
- package/skills/writing-docs/pptx/scripts/html2pptx.js +978 -978
- package/skills/writing-docs/pptx/scripts/inventory.py +1020 -1020
- package/skills/writing-docs/pptx/scripts/rearrange.py +231 -231
- package/skills/writing-docs/pptx/scripts/replace.py +385 -385
- package/skills/writing-docs/pptx/scripts/thumbnail.py +450 -450
- package/skills/writing-docs/slides/LICENSE.txt +201 -201
- package/skills/writing-docs/slides/SKILL.md +71 -71
- package/skills/writing-docs/slides/agents/openai.yaml +6 -6
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/code.js +104 -104
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/image.js +333 -333
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/index.js +33 -33
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/latex.js +51 -51
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout.js +643 -643
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -358
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/svg.js +36 -36
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/text.js +789 -789
- package/skills/writing-docs/slides/assets/pptxgenjs_helpers/util.js +24 -24
- package/skills/writing-docs/slides/assets/slides-small.svg +3 -3
- package/skills/writing-docs/slides/references/pptxgenjs-helpers.md +61 -61
- package/skills/writing-docs/slides/scripts/create_montage.py +300 -300
- package/skills/writing-docs/slides/scripts/detect_font.py +873 -873
- package/skills/writing-docs/slides/scripts/ensure_raster_image.py +202 -202
- package/skills/writing-docs/slides/scripts/render_slides.py +273 -273
- package/skills/writing-docs/slides/scripts/slides_test.py +201 -201
- package/skills/writing-docs/template-skill/SKILL.md +26 -26
- package/skills/writing-docs/xlsx/LICENSE.txt +30 -30
- package/skills/writing-docs/xlsx/SKILL.md +288 -288
- package/skills/writing-docs/xlsx/recalc.py +177 -177
- package/src/core/KILO_MASTER.md +448 -448
- package/src/tools/validate-skill.js +421 -421
|
@@ -1,107 +1,107 @@
|
|
|
1
|
-
# Persistent Browser Mode
|
|
2
|
-
|
|
3
|
-
These scripts enable you to launch Chrome once and keep it open for multiple commands, making it easier to interact with authenticated sessions and multi-step workflows.
|
|
4
|
-
|
|
5
|
-
## Quick Start
|
|
6
|
-
|
|
7
|
-
### 1. Launch Persistent Browser
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
# Launch browser (visible window)
|
|
11
|
-
node launch-persistent.js --headless=false
|
|
12
|
-
|
|
13
|
-
# Launch with initial URL
|
|
14
|
-
node launch-persistent.js --headless=false --url=https://example.com/login
|
|
15
|
-
|
|
16
|
-
# Launch headless
|
|
17
|
-
node launch-persistent.js
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
The browser will stay open and print a message confirming it's ready.
|
|
21
|
-
|
|
22
|
-
### 2. Run Commands
|
|
23
|
-
|
|
24
|
-
All existing scripts will automatically connect to the persistent browser:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# Navigate to a page
|
|
28
|
-
node navigate.js --url https://example.com/dashboard
|
|
29
|
-
|
|
30
|
-
# Take a screenshot
|
|
31
|
-
node screenshot.js --output ./screenshot.png
|
|
32
|
-
|
|
33
|
-
# Run JavaScript
|
|
34
|
-
node evaluate.js --script "document.title"
|
|
35
|
-
|
|
36
|
-
# Get page snapshot
|
|
37
|
-
node snapshot.js
|
|
38
|
-
|
|
39
|
-
# Fill forms
|
|
40
|
-
node fill.js --selector "#username" --value "user@example.com"
|
|
41
|
-
node click.js --selector "button[type=submit]"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### 3. Close Browser
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# Close the persistent browser
|
|
48
|
-
node close-persistent.js
|
|
49
|
-
|
|
50
|
-
# Or press Ctrl+C in the launch-persistent.js terminal
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## How It Works
|
|
54
|
-
|
|
55
|
-
1. **launch-persistent.js** starts Chrome with remote debugging enabled and saves the WebSocket endpoint to `.browser-endpoint`
|
|
56
|
-
2. All other scripts check for this file first and connect to the existing browser if found
|
|
57
|
-
3. If no persistent browser exists, scripts fall back to launching their own temporary browser (original behavior)
|
|
58
|
-
|
|
59
|
-
## Use Cases
|
|
60
|
-
|
|
61
|
-
### Authenticated Sessions
|
|
62
|
-
```bash
|
|
63
|
-
# Launch browser
|
|
64
|
-
node launch-persistent.js --headless=false --url=https://app.example.com/login
|
|
65
|
-
|
|
66
|
-
# Manually log in through the visible browser window
|
|
67
|
-
# Then run commands on authenticated pages
|
|
68
|
-
|
|
69
|
-
node navigate.js --url=https://app.example.com/dashboard
|
|
70
|
-
node screenshot.js --output ./dashboard.png
|
|
71
|
-
node evaluate.js --script "document.querySelector('.user-name').textContent"
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Multi-Step Workflows
|
|
75
|
-
```bash
|
|
76
|
-
# Launch browser
|
|
77
|
-
node launch-persistent.js --headless=false
|
|
78
|
-
|
|
79
|
-
# Fill out multi-page form
|
|
80
|
-
node navigate.js --url=https://example.com/signup
|
|
81
|
-
node fill.js --selector "#email" --value "user@example.com"
|
|
82
|
-
node click.js --selector ".next-button"
|
|
83
|
-
# Wait for page to load, then continue...
|
|
84
|
-
node fill.js --selector "#password" --value "secret123"
|
|
85
|
-
node click.js --selector ".submit-button"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### Accessibility Audits on Live Pages
|
|
89
|
-
```bash
|
|
90
|
-
# Launch and navigate manually to complex authenticated state
|
|
91
|
-
node launch-persistent.js --headless=false
|
|
92
|
-
|
|
93
|
-
# After manual navigation/interaction, run audits
|
|
94
|
-
node evaluate.js --script "/* accessibility check script */"
|
|
95
|
-
node screenshot.js --output ./audit.png
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Advantages
|
|
99
|
-
|
|
100
|
-
- **Manual interaction**: Log in, navigate, or manipulate the page manually
|
|
101
|
-
- **Persistent state**: Cookies, localStorage, and session state preserved
|
|
102
|
-
- **Faster iterations**: No browser startup delay for each command
|
|
103
|
-
- **Real-world testing**: Test on actual authenticated or complex application states
|
|
104
|
-
|
|
105
|
-
## Backwards Compatibility
|
|
106
|
-
|
|
107
|
-
All existing scripts work exactly as before if no persistent browser is running. The enhancement is completely opt-in.
|
|
1
|
+
# Persistent Browser Mode
|
|
2
|
+
|
|
3
|
+
These scripts enable you to launch Chrome once and keep it open for multiple commands, making it easier to interact with authenticated sessions and multi-step workflows.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
### 1. Launch Persistent Browser
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Launch browser (visible window)
|
|
11
|
+
node launch-persistent.js --headless=false
|
|
12
|
+
|
|
13
|
+
# Launch with initial URL
|
|
14
|
+
node launch-persistent.js --headless=false --url=https://example.com/login
|
|
15
|
+
|
|
16
|
+
# Launch headless
|
|
17
|
+
node launch-persistent.js
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
The browser will stay open and print a message confirming it's ready.
|
|
21
|
+
|
|
22
|
+
### 2. Run Commands
|
|
23
|
+
|
|
24
|
+
All existing scripts will automatically connect to the persistent browser:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Navigate to a page
|
|
28
|
+
node navigate.js --url https://example.com/dashboard
|
|
29
|
+
|
|
30
|
+
# Take a screenshot
|
|
31
|
+
node screenshot.js --output ./screenshot.png
|
|
32
|
+
|
|
33
|
+
# Run JavaScript
|
|
34
|
+
node evaluate.js --script "document.title"
|
|
35
|
+
|
|
36
|
+
# Get page snapshot
|
|
37
|
+
node snapshot.js
|
|
38
|
+
|
|
39
|
+
# Fill forms
|
|
40
|
+
node fill.js --selector "#username" --value "user@example.com"
|
|
41
|
+
node click.js --selector "button[type=submit]"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. Close Browser
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Close the persistent browser
|
|
48
|
+
node close-persistent.js
|
|
49
|
+
|
|
50
|
+
# Or press Ctrl+C in the launch-persistent.js terminal
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## How It Works
|
|
54
|
+
|
|
55
|
+
1. **launch-persistent.js** starts Chrome with remote debugging enabled and saves the WebSocket endpoint to `.browser-endpoint`
|
|
56
|
+
2. All other scripts check for this file first and connect to the existing browser if found
|
|
57
|
+
3. If no persistent browser exists, scripts fall back to launching their own temporary browser (original behavior)
|
|
58
|
+
|
|
59
|
+
## Use Cases
|
|
60
|
+
|
|
61
|
+
### Authenticated Sessions
|
|
62
|
+
```bash
|
|
63
|
+
# Launch browser
|
|
64
|
+
node launch-persistent.js --headless=false --url=https://app.example.com/login
|
|
65
|
+
|
|
66
|
+
# Manually log in through the visible browser window
|
|
67
|
+
# Then run commands on authenticated pages
|
|
68
|
+
|
|
69
|
+
node navigate.js --url=https://app.example.com/dashboard
|
|
70
|
+
node screenshot.js --output ./dashboard.png
|
|
71
|
+
node evaluate.js --script "document.querySelector('.user-name').textContent"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Multi-Step Workflows
|
|
75
|
+
```bash
|
|
76
|
+
# Launch browser
|
|
77
|
+
node launch-persistent.js --headless=false
|
|
78
|
+
|
|
79
|
+
# Fill out multi-page form
|
|
80
|
+
node navigate.js --url=https://example.com/signup
|
|
81
|
+
node fill.js --selector "#email" --value "user@example.com"
|
|
82
|
+
node click.js --selector ".next-button"
|
|
83
|
+
# Wait for page to load, then continue...
|
|
84
|
+
node fill.js --selector "#password" --value "secret123"
|
|
85
|
+
node click.js --selector ".submit-button"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Accessibility Audits on Live Pages
|
|
89
|
+
```bash
|
|
90
|
+
# Launch and navigate manually to complex authenticated state
|
|
91
|
+
node launch-persistent.js --headless=false
|
|
92
|
+
|
|
93
|
+
# After manual navigation/interaction, run audits
|
|
94
|
+
node evaluate.js --script "/* accessibility check script */"
|
|
95
|
+
node screenshot.js --output ./audit.png
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Advantages
|
|
99
|
+
|
|
100
|
+
- **Manual interaction**: Log in, navigate, or manipulate the page manually
|
|
101
|
+
- **Persistent state**: Cookies, localStorage, and session state preserved
|
|
102
|
+
- **Faster iterations**: No browser startup delay for each command
|
|
103
|
+
- **Real-world testing**: Test on actual authenticated or complex application states
|
|
104
|
+
|
|
105
|
+
## Backwards Compatibility
|
|
106
|
+
|
|
107
|
+
All existing scripts work exactly as before if no persistent browser is running. The enhancement is completely opt-in.
|
|
@@ -1,213 +1,213 @@
|
|
|
1
|
-
# Chrome DevTools Scripts
|
|
2
|
-
|
|
3
|
-
CLI scripts for browser automation using Puppeteer.
|
|
4
|
-
|
|
5
|
-
**CRITICAL**: Always check `pwd` before running scripts.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
### Quick Install
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
pwd # Should show current working directory
|
|
13
|
-
cd .claude/skills/chrome-devtools/scripts
|
|
14
|
-
./install.sh # Auto-checks dependencies and installs
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
### Manual Installation
|
|
18
|
-
|
|
19
|
-
**Linux/WSL** - Install system dependencies first:
|
|
20
|
-
```bash
|
|
21
|
-
./install-deps.sh # Auto-detects OS (Ubuntu, Debian, Fedora, etc.)
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Or manually:
|
|
25
|
-
```bash
|
|
26
|
-
sudo apt-get install -y libnss3 libnspr4 libasound2t64 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**All platforms** - Install Node dependencies:
|
|
30
|
-
```bash
|
|
31
|
-
npm install
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Scripts
|
|
35
|
-
|
|
36
|
-
**CRITICAL**: Always check `pwd` before running scripts.
|
|
37
|
-
|
|
38
|
-
### navigate.js
|
|
39
|
-
Navigate to a URL.
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
node navigate.js --url https://example.com [--wait-until networkidle2] [--timeout 30000]
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
### screenshot.js
|
|
46
|
-
Take a screenshot with automatic compression.
|
|
47
|
-
|
|
48
|
-
**Important**: Always save screenshots to `./docs/screenshots` directory.
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
node screenshot.js --output screenshot.png [--url https://example.com] [--full-page true] [--selector .element] [--max-size 5] [--no-compress]
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**Automatic Compression**: Screenshots >5MB are automatically compressed using ImageMagick to ensure compatibility with Gemini API and Claude Code. Install ImageMagick for this feature:
|
|
55
|
-
- macOS: `brew install imagemagick`
|
|
56
|
-
- Linux: `sudo apt-get install imagemagick`
|
|
57
|
-
|
|
58
|
-
Options:
|
|
59
|
-
- `--max-size N` - Custom size threshold in MB (default: 5)
|
|
60
|
-
- `--no-compress` - Disable automatic compression
|
|
61
|
-
- `--format png|jpeg` - Output format (default: png)
|
|
62
|
-
- `--quality N` - JPEG quality 0-100 (default: auto)
|
|
63
|
-
|
|
64
|
-
### click.js
|
|
65
|
-
Click an element.
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
node click.js --selector ".button" [--url https://example.com] [--wait-for ".result"]
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### fill.js
|
|
72
|
-
Fill form fields.
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
node fill.js --selector "#input" --value "text" [--url https://example.com] [--clear true]
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### evaluate.js
|
|
79
|
-
Execute JavaScript in page context.
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
node evaluate.js --script "document.title" [--url https://example.com]
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### snapshot.js
|
|
86
|
-
Get DOM snapshot with interactive elements.
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
node snapshot.js [--url https://example.com] [--output snapshot.json]
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### console.js
|
|
93
|
-
Monitor console messages.
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
node console.js --url https://example.com [--types error,warn] [--duration 5000]
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### network.js
|
|
100
|
-
Monitor network requests.
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
node network.js --url https://example.com [--types xhr,fetch] [--output requests.json]
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### performance.js
|
|
107
|
-
Measure performance metrics and record trace.
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
node performance.js --url https://example.com [--trace trace.json] [--metrics] [--resources true]
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
## Common Options
|
|
114
|
-
|
|
115
|
-
- `--headless false` - Show browser window
|
|
116
|
-
- `--close false` - Keep browser open
|
|
117
|
-
- `--timeout 30000` - Set timeout in milliseconds
|
|
118
|
-
- `--wait-until networkidle2` - Wait strategy (load, domcontentloaded, networkidle0, networkidle2)
|
|
119
|
-
|
|
120
|
-
## Selector Support
|
|
121
|
-
|
|
122
|
-
Scripts that accept `--selector` (click.js, fill.js, screenshot.js) support both **CSS** and **XPath** selectors.
|
|
123
|
-
|
|
124
|
-
### CSS Selectors (Default)
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# Element tag
|
|
128
|
-
node click.js --selector "button" --url https://example.com
|
|
129
|
-
|
|
130
|
-
# Class selector
|
|
131
|
-
node click.js --selector ".btn-submit" --url https://example.com
|
|
132
|
-
|
|
133
|
-
# ID selector
|
|
134
|
-
node fill.js --selector "#email" --value "user@example.com" --url https://example.com
|
|
135
|
-
|
|
136
|
-
# Attribute selector
|
|
137
|
-
node click.js --selector 'button[type="submit"]' --url https://example.com
|
|
138
|
-
|
|
139
|
-
# Complex selector
|
|
140
|
-
node screenshot.js --selector "div.container > button.btn-primary" --output btn.png
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### XPath Selectors
|
|
144
|
-
|
|
145
|
-
XPath selectors start with `/` or `(//` and are automatically detected:
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# Text matching - exact
|
|
149
|
-
node click.js --selector '//button[text()="Submit"]' --url https://example.com
|
|
150
|
-
|
|
151
|
-
# Text matching - contains
|
|
152
|
-
node click.js --selector '//button[contains(text(),"Submit")]' --url https://example.com
|
|
153
|
-
|
|
154
|
-
# Attribute matching
|
|
155
|
-
node fill.js --selector '//input[@type="email"]' --value "user@example.com"
|
|
156
|
-
|
|
157
|
-
# Multiple conditions
|
|
158
|
-
node click.js --selector '//button[@type="submit" and contains(text(),"Save")]'
|
|
159
|
-
|
|
160
|
-
# Descendant selection
|
|
161
|
-
node screenshot.js --selector '//div[@class="modal"]//button[@class="close"]' --output modal.png
|
|
162
|
-
|
|
163
|
-
# Nth element
|
|
164
|
-
node click.js --selector '(//button)[2]' # Second button on page
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Discovering Selectors
|
|
168
|
-
|
|
169
|
-
Use `snapshot.js` to discover correct selectors:
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
# Get all interactive elements
|
|
173
|
-
node snapshot.js --url https://example.com | jq '.elements[]'
|
|
174
|
-
|
|
175
|
-
# Find buttons
|
|
176
|
-
node snapshot.js --url https://example.com | jq '.elements[] | select(.tagName=="BUTTON")'
|
|
177
|
-
|
|
178
|
-
# Find inputs
|
|
179
|
-
node snapshot.js --url https://example.com | jq '.elements[] | select(.tagName=="INPUT")'
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Security
|
|
183
|
-
|
|
184
|
-
XPath selectors are validated to prevent injection attacks. The following patterns are blocked:
|
|
185
|
-
- `javascript:`
|
|
186
|
-
- `<script`
|
|
187
|
-
- `onerror=`, `onload=`, `onclick=`
|
|
188
|
-
- `eval(`, `Function(`, `constructor(`
|
|
189
|
-
|
|
190
|
-
Selectors exceeding 1000 characters are rejected (DoS prevention).
|
|
191
|
-
|
|
192
|
-
## Output Format
|
|
193
|
-
|
|
194
|
-
All scripts output JSON to stdout:
|
|
195
|
-
|
|
196
|
-
```json
|
|
197
|
-
{
|
|
198
|
-
"success": true,
|
|
199
|
-
"url": "https://example.com",
|
|
200
|
-
"title": "Example Domain",
|
|
201
|
-
...
|
|
202
|
-
}
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
Errors are output to stderr:
|
|
206
|
-
|
|
207
|
-
```json
|
|
208
|
-
{
|
|
209
|
-
"success": false,
|
|
210
|
-
"error": "Error message",
|
|
211
|
-
"stack": "..."
|
|
212
|
-
}
|
|
213
|
-
```
|
|
1
|
+
# Chrome DevTools Scripts
|
|
2
|
+
|
|
3
|
+
CLI scripts for browser automation using Puppeteer.
|
|
4
|
+
|
|
5
|
+
**CRITICAL**: Always check `pwd` before running scripts.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
### Quick Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pwd # Should show current working directory
|
|
13
|
+
cd .claude/skills/chrome-devtools/scripts
|
|
14
|
+
./install.sh # Auto-checks dependencies and installs
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Manual Installation
|
|
18
|
+
|
|
19
|
+
**Linux/WSL** - Install system dependencies first:
|
|
20
|
+
```bash
|
|
21
|
+
./install-deps.sh # Auto-detects OS (Ubuntu, Debian, Fedora, etc.)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or manually:
|
|
25
|
+
```bash
|
|
26
|
+
sudo apt-get install -y libnss3 libnspr4 libasound2t64 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**All platforms** - Install Node dependencies:
|
|
30
|
+
```bash
|
|
31
|
+
npm install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Scripts
|
|
35
|
+
|
|
36
|
+
**CRITICAL**: Always check `pwd` before running scripts.
|
|
37
|
+
|
|
38
|
+
### navigate.js
|
|
39
|
+
Navigate to a URL.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node navigate.js --url https://example.com [--wait-until networkidle2] [--timeout 30000]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### screenshot.js
|
|
46
|
+
Take a screenshot with automatic compression.
|
|
47
|
+
|
|
48
|
+
**Important**: Always save screenshots to `./docs/screenshots` directory.
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
node screenshot.js --output screenshot.png [--url https://example.com] [--full-page true] [--selector .element] [--max-size 5] [--no-compress]
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Automatic Compression**: Screenshots >5MB are automatically compressed using ImageMagick to ensure compatibility with Gemini API and Claude Code. Install ImageMagick for this feature:
|
|
55
|
+
- macOS: `brew install imagemagick`
|
|
56
|
+
- Linux: `sudo apt-get install imagemagick`
|
|
57
|
+
|
|
58
|
+
Options:
|
|
59
|
+
- `--max-size N` - Custom size threshold in MB (default: 5)
|
|
60
|
+
- `--no-compress` - Disable automatic compression
|
|
61
|
+
- `--format png|jpeg` - Output format (default: png)
|
|
62
|
+
- `--quality N` - JPEG quality 0-100 (default: auto)
|
|
63
|
+
|
|
64
|
+
### click.js
|
|
65
|
+
Click an element.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node click.js --selector ".button" [--url https://example.com] [--wait-for ".result"]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### fill.js
|
|
72
|
+
Fill form fields.
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
node fill.js --selector "#input" --value "text" [--url https://example.com] [--clear true]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### evaluate.js
|
|
79
|
+
Execute JavaScript in page context.
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
node evaluate.js --script "document.title" [--url https://example.com]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### snapshot.js
|
|
86
|
+
Get DOM snapshot with interactive elements.
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
node snapshot.js [--url https://example.com] [--output snapshot.json]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### console.js
|
|
93
|
+
Monitor console messages.
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
node console.js --url https://example.com [--types error,warn] [--duration 5000]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### network.js
|
|
100
|
+
Monitor network requests.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
node network.js --url https://example.com [--types xhr,fetch] [--output requests.json]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### performance.js
|
|
107
|
+
Measure performance metrics and record trace.
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
node performance.js --url https://example.com [--trace trace.json] [--metrics] [--resources true]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Common Options
|
|
114
|
+
|
|
115
|
+
- `--headless false` - Show browser window
|
|
116
|
+
- `--close false` - Keep browser open
|
|
117
|
+
- `--timeout 30000` - Set timeout in milliseconds
|
|
118
|
+
- `--wait-until networkidle2` - Wait strategy (load, domcontentloaded, networkidle0, networkidle2)
|
|
119
|
+
|
|
120
|
+
## Selector Support
|
|
121
|
+
|
|
122
|
+
Scripts that accept `--selector` (click.js, fill.js, screenshot.js) support both **CSS** and **XPath** selectors.
|
|
123
|
+
|
|
124
|
+
### CSS Selectors (Default)
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
# Element tag
|
|
128
|
+
node click.js --selector "button" --url https://example.com
|
|
129
|
+
|
|
130
|
+
# Class selector
|
|
131
|
+
node click.js --selector ".btn-submit" --url https://example.com
|
|
132
|
+
|
|
133
|
+
# ID selector
|
|
134
|
+
node fill.js --selector "#email" --value "user@example.com" --url https://example.com
|
|
135
|
+
|
|
136
|
+
# Attribute selector
|
|
137
|
+
node click.js --selector 'button[type="submit"]' --url https://example.com
|
|
138
|
+
|
|
139
|
+
# Complex selector
|
|
140
|
+
node screenshot.js --selector "div.container > button.btn-primary" --output btn.png
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### XPath Selectors
|
|
144
|
+
|
|
145
|
+
XPath selectors start with `/` or `(//` and are automatically detected:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
# Text matching - exact
|
|
149
|
+
node click.js --selector '//button[text()="Submit"]' --url https://example.com
|
|
150
|
+
|
|
151
|
+
# Text matching - contains
|
|
152
|
+
node click.js --selector '//button[contains(text(),"Submit")]' --url https://example.com
|
|
153
|
+
|
|
154
|
+
# Attribute matching
|
|
155
|
+
node fill.js --selector '//input[@type="email"]' --value "user@example.com"
|
|
156
|
+
|
|
157
|
+
# Multiple conditions
|
|
158
|
+
node click.js --selector '//button[@type="submit" and contains(text(),"Save")]'
|
|
159
|
+
|
|
160
|
+
# Descendant selection
|
|
161
|
+
node screenshot.js --selector '//div[@class="modal"]//button[@class="close"]' --output modal.png
|
|
162
|
+
|
|
163
|
+
# Nth element
|
|
164
|
+
node click.js --selector '(//button)[2]' # Second button on page
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Discovering Selectors
|
|
168
|
+
|
|
169
|
+
Use `snapshot.js` to discover correct selectors:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Get all interactive elements
|
|
173
|
+
node snapshot.js --url https://example.com | jq '.elements[]'
|
|
174
|
+
|
|
175
|
+
# Find buttons
|
|
176
|
+
node snapshot.js --url https://example.com | jq '.elements[] | select(.tagName=="BUTTON")'
|
|
177
|
+
|
|
178
|
+
# Find inputs
|
|
179
|
+
node snapshot.js --url https://example.com | jq '.elements[] | select(.tagName=="INPUT")'
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Security
|
|
183
|
+
|
|
184
|
+
XPath selectors are validated to prevent injection attacks. The following patterns are blocked:
|
|
185
|
+
- `javascript:`
|
|
186
|
+
- `<script`
|
|
187
|
+
- `onerror=`, `onload=`, `onclick=`
|
|
188
|
+
- `eval(`, `Function(`, `constructor(`
|
|
189
|
+
|
|
190
|
+
Selectors exceeding 1000 characters are rejected (DoS prevention).
|
|
191
|
+
|
|
192
|
+
## Output Format
|
|
193
|
+
|
|
194
|
+
All scripts output JSON to stdout:
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"success": true,
|
|
199
|
+
"url": "https://example.com",
|
|
200
|
+
"title": "Example Domain",
|
|
201
|
+
...
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Errors are output to stderr:
|
|
206
|
+
|
|
207
|
+
```json
|
|
208
|
+
{
|
|
209
|
+
"success": false,
|
|
210
|
+
"error": "Error message",
|
|
211
|
+
"stack": "..."
|
|
212
|
+
}
|
|
213
|
+
```
|