foliko 1.1.0 → 1.1.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/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +288 -0
- package/.agent/agents/ambient-agent.md +57 -0
- package/.agent/agents/debugger.md +55 -0
- package/.agent/agents/email-assistant.md +49 -0
- package/.agent/agents/file-manager.md +42 -0
- package/.agent/agents/python-developer.md +60 -0
- package/.agent/agents/scheduler.md +59 -0
- package/.agent/agents/web-developer.md +45 -0
- package/.agent/data/default.json +412 -3
- package/.agent/data/plugins-state.json +173 -174
- package/.agent/data/puppeteer-sessions/undefined.json +6 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775618677512.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619073340.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619097536.jpg +0 -0
- package/.agent/data/weixin-media/2026-04-08/img_1775619209388.jpg +0 -0
- package/.agent/mcp_config_updated.json +12 -0
- package/.agent/plugins/poster-plugin/fonts/NotoColorEmoji-Regular.ttf +0 -0
- package/.agent/plugins/poster-plugin/package.json +2 -1
- package/.agent/plugins/poster-plugin/src/canvas.js +70 -7
- package/.agent/plugins/poster-plugin/src/components/barcode.js +120 -0
- package/.agent/plugins/poster-plugin/src/components/bubble.js +153 -0
- package/.agent/plugins/poster-plugin/src/components/button.js +124 -0
- package/.agent/plugins/poster-plugin/src/components/cta.js +26 -24
- package/.agent/plugins/poster-plugin/src/components/featureGrid.js +22 -17
- package/.agent/plugins/poster-plugin/src/components/frame.js +230 -0
- package/.agent/plugins/poster-plugin/src/components/highlightText.js +144 -0
- package/.agent/plugins/poster-plugin/src/components/icon.js +94 -0
- package/.agent/plugins/poster-plugin/src/components/index.js +19 -0
- package/.agent/plugins/poster-plugin/src/components/listItem.js +6 -5
- package/.agent/plugins/poster-plugin/src/components/qrcode.js +74 -0
- package/.agent/plugins/poster-plugin/src/components/ribbon.js +193 -0
- package/.agent/plugins/poster-plugin/src/components/seal.js +146 -0
- package/.agent/plugins/poster-plugin/src/components/table.js +17 -9
- package/.agent/plugins/poster-plugin/src/components/tagCloud.js +24 -17
- package/.agent/plugins/poster-plugin/src/components/timeline.js +24 -12
- package/.agent/plugins/poster-plugin/src/composer.js +392 -150
- package/.agent/plugins/poster-plugin/src/elements/background.js +36 -4
- package/.agent/plugins/poster-plugin/src/elements/image.js +4 -47
- package/.agent/plugins/poster-plugin/src/elements/index.js +2 -0
- package/.agent/plugins/poster-plugin/src/elements/polygon.js +37 -6
- package/.agent/plugins/poster-plugin/src/elements/richText.js +230 -0
- package/.agent/plugins/poster-plugin/src/elements/svg.js +35 -19
- package/.agent/plugins/poster-plugin/src/elements/text.js +71 -2
- package/.agent/plugins/poster-plugin/src/fonts.js +123 -8
- package/.agent/plugins/poster-plugin/src/index.js +445 -23
- package/.agent/plugins/poster-plugin/src/utils/imageLoader.js +84 -0
- package/.agent/plugins/poster-plugin/test-background.svg +1 -0
- package/.agent/plugins/poster-plugin/test-full-poster.svg +2 -0
- package/.agent/plugins/poster-plugin/test-image.png +0 -0
- package/.agent/plugins/puppeteer-plugin/README.md +147 -0
- package/.agent/plugins/puppeteer-plugin/index.js +1418 -0
- package/.agent/plugins/puppeteer-plugin/package.json +9 -0
- package/.agent/plugins.json +5 -11
- package/.agent/rules/GEMINI.md +273 -0
- package/.agent/rules/allow-rule.md +77 -0
- package/.agent/rules/log-rule.md +83 -0
- package/.agent/rules/security-rule.md +93 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/sessions/cli_default.json +678 -23580
- package/.agent/sessions/weixin_o9cq80zgZqKPA2-s59PN43GdDy1w@im.wechat.json +11097 -0
- package/.agent/skills/api-patterns/SKILL.md +81 -0
- package/.agent/skills/api-patterns/api-style.md +42 -0
- package/.agent/skills/api-patterns/auth.md +24 -0
- package/.agent/skills/api-patterns/documentation.md +26 -0
- package/.agent/skills/api-patterns/graphql.md +41 -0
- package/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/response.md +37 -0
- package/.agent/skills/api-patterns/rest.md +40 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/api-patterns/security-testing.md +122 -0
- package/.agent/skills/api-patterns/trpc.md +41 -0
- package/.agent/skills/api-patterns/versioning.md +22 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +40 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/architecture/SKILL.md +55 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/clean-code/SKILL.md +201 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/frontend-design/SKILL.md +418 -0
- package/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/color-system.md +311 -0
- package/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agent/skills/frontend-design/typography-system.md +345 -0
- package/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/orchestrate.md +237 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +81 -0
- package/.agent/workflows/simple-test.md +42 -0
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/structured-orchestrate.md +180 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/.claude/settings.local.json +21 -1
- package/.env.example +56 -56
- package/README.md +441 -441
- package/cli/src/commands/chat.js +2 -1
- package/output/international-news-daily.png +0 -0
- package/package.json +2 -1
- package/plugins/extension-executor-plugin.js +91 -12
- package/plugins/file-system-plugin.js +4 -19
- package/plugins/subagent-plugin.js +37 -14
- package/plugins/weixin-plugin.js +168 -40
- package/poster-test-2.png +0 -0
- package/skills/find-skills/AGENTS.md +162 -162
- package/skills/find-skills/SKILL.md +133 -133
- package/skills/poster-guide/SKILL.md +1435 -627
- package/src/core/agent-chat.js +223 -11
- package/src/core/agent.js +6 -3
- package/.agent/agents/code-assistant.json +0 -14
- package/.agent/agents/email-assistant.json +0 -14
- package/.agent/agents/file-assistant.json +0 -15
- package/.agent/agents/system-assistant.json +0 -15
- package/.agent/agents/web-assistant.json +0 -12
- package/.agent/data/ambient/goals.json +0 -50
- package/.agent/data/ambient/memories.json +0 -7
- package/.agent/data/scheduler/tasks.json +0 -1
- package/.agent/memory/core.md +0 -1
- package/.agent/memory/project/mnn93ogy-ypjn27.md +0 -9
- package/.agent/memory/project/mnn98fqy-5nhc1u.md +0 -25
- package/.agent/memory/user/mnm67t9m-x8rekk.md +0 -9
- package/.agent/memory/user/mnn5mmqh-w6aktx.md +0 -11
- package/.agent/memory/user/mnnbfhhn-dk1bd1.md +0 -22
- package/.agent/package.json +0 -8
- package/.agent/plugins/__pycache__/file_writer.cpython-312.pyc +0 -0
- package/.agent/plugins/daytona/README.md +0 -89
- package/.agent/plugins/daytona/index.js +0 -377
- package/.agent/plugins/daytona/package.json +0 -12
- package/.agent/plugins/marknative/README.md +0 -134
- package/.agent/plugins/marknative/index.js +0 -228
- package/.agent/plugins/marknative/package.json +0 -12
- package/.agent/plugins/marknative/update-readme.js +0 -134
- package/.agent/plugins/system-info/index.js +0 -387
- package/.agent/plugins/system-info/package.json +0 -4
- package/.agent/plugins/system-info/test.js +0 -40
- package/.agent/python-scripts/test_sample.py +0 -24
- package/.agent/skills/agent-browser/SKILL.md +0 -311
- package/.agent/skills/agent-browser/TEST_PLAN.md +0 -200
- package/.agent/skills/sysinfo/SKILL.md +0 -38
- package/.agent/skills/sysinfo/system-info.sh +0 -130
- package/.agent/skills/workflow/SKILL.md +0 -324
- package/.agent/weixin.json +0 -6
- package/.agent/workflows/email-digest.json +0 -50
- package/.agent/workflows/file-backup.json +0 -21
- package/.agent/workflows/get-ip-notify.json +0 -32
- package/.agent/workflows/news-aggregator.json +0 -93
- package/.agent/workflows/news-dashboard-v2.json +0 -94
- package/.agent/workflows/notification-batch.json +0 -32
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="800" height="600" viewBox="0,0,800,600"><g fill="none" fill-rule="nonzero" stroke="none" stroke-width="none" stroke-linecap="none" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" font-family="none" font-weight="none" font-size="none" text-anchor="none" style="mix-blend-mode: normal"><path d="M0,600v-600h800v600z" fill="#1a1a2e" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M20,50c0,-16.56854 13.43146,-30 30,-30c16.56854,0 30,13.43146 30,30c0,16.56854 -13.43146,30 -30,30c-16.56854,0 -30,-13.43146 -30,-30z" fill="#ff6b6b" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M100,50l100,50" fill="none" stroke="#4ecdc4" stroke-width="2" stroke-linecap="butt"></path><text x="150" y="60" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="微软雅黑" font-weight="normal" font-size="20" text-anchor="start"></text><text x="250" y="60" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="微软雅黑" font-weight="normal" font-size="20" text-anchor="middle"></text><image x="1466.66667" y="150" transform="scale(0.375,0.33333)" width="400" height="300" href="data:image/png;base64,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" fill="none" stroke="none" stroke-width="1" stroke-linecap="butt"></image><path d="M58,180c-4.41828,0 -8,-3.58172 -8,-8v-14c0,-4.41828 3.58172,-8 8,-8h64c4.41828,0 8,3.58172 8,8v14c0,4.41828 -3.58172,8 -8,8z" fill="#3b82f6" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="90" y="173" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="middle">按钮</text><text x="165" y="171" fill="#ffcc00" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="18" text-anchor="middle">★</text><path d="M280,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M280.66667,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M282,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M282.66667,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M283.33333,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M281.33333,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M284,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M284.66667,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M288,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M288.66667,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M289.33333,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M283.33333,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M288,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M288.66667,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M294,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M294.66667,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M295.33333,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M285.33333,155v-15h0.53333v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M286,155v-15h1.06667v15z" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="330" y="174" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="monospace" font-weight="normal" font-size="16" text-anchor="middle">1234567890</text><path d="M400,190v-60h80v60z" fill="none" stroke="#4ecdc4" stroke-width="2" stroke-linecap="butt"></path><path d="M520,170c-11.04569,0 -20,-8.95431 -20,-20v0c0,-11.04569 8.95431,-20 20,-20h40c11.04569,0 20,8.95431 20,20v0c0,11.04569 -8.95431,20 -20,20z" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M510,165l20,14v-28z" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="525" y="158" fill="#ff6b6b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="start">气
|
|
2
|
+
泡</text><text x="0" y="0" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="start">气</text><text x="0" y="0" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="start">气泡</text><path d="M600,180v-50h300v50z" fill="#e74c3c" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M600,130l-15,-15h15z" fill="#b93d30" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M900,130l15,-15h-15z" fill="#b93d30" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="750" y="164.33333" fill="#e94560" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="28" text-anchor="middle">缎带</text><path d="M703,190c0,-25.95738 21.04262,-47 47,-47c25.95738,0 47,21.04262 47,47c0,25.95738 -21.04262,47 -47,47c-25.95738,0 -47,-21.04262 -47,-47z" fill="none" stroke="#ff6b6b" stroke-width="3" stroke-linecap="butt"></path><path d="M710.05,190c0,-22.06378 17.88622,-39.95 39.95,-39.95c22.06378,0 39.95,17.88622 39.95,39.95c0,22.06378 -17.88622,39.95 -39.95,39.95c-22.06378,0 -39.95,-17.88622 -39.95,-39.95z" fill="none" stroke="#ff6b6b" stroke-width="1" stroke-linecap="butt"></path><text x="750" y="198" fill="#ff6b6b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="serif" font-weight="normal" font-size="24" text-anchor="middle">印章</text><text x="750" y="165" fill="#ff6b6b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="serif" font-weight="normal" font-size="16" text-anchor="middle">★</text><text x="750" y="223.33333" fill="#ff6b6b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="serif" font-weight="normal" font-size="12" text-anchor="middle">★ ★ ★</text><text x="400" y="108" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="48" text-anchor="start">高亮</text><path d="M396.87507,122.14619l-3.34678,-38.25388l105.59664,-9.23851l3.34678,38.25388z" fill="#ffff00" stroke="none" stroke-width="1" stroke-linecap="butt" opacity="0.5"></path><path d="M50,300v-80h150v80z" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="70" y="264" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="start">卡片</text><path d="M198.2,268c-2.20914,0 -4,-1.79086 -4,-4v-40c0,-2.20914 1.79086,-4 4,-4h43.6c2.20914,0 4,1.79086 4,4v40c0,2.20914 -1.79086,4 -4,4z" fill="#007bff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="220" y="250" fill="#e94560" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="18" text-anchor="middle">徽章</text><path d="M347,288c-4.41828,0 -8,-3.58172 -8,-8v-52c0,-4.41828 3.58172,-8 8,-8h106c4.41828,0 8,3.58172 8,8v52c0,4.41828 -3.58172,8 -8,8z" fill="#e94560" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="400" y="260" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="18" text-anchor="middle">行动号召</text><text x="565" y="252" fill="#007bff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="32" text-anchor="start">🚀</text><text x="565" y="277" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="20" text-anchor="start">特性</text><text x="565" y="296" fill="#aaaaaa" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="start">描述</text><path d="M60,355c-5.52285,0 -10,-3.35786 -10,-7.5v0c0,-4.14214 4.47715,-7.5 10,-7.5h130c5.52285,0 10,3.35786 10,7.5v0c0,4.14214 -4.47715,7.5 -10,7.5z" fill="#e0e0e0" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M60,355c-5.52285,0 -10,-3.35786 -10,-7.5v0c0,-4.14214 4.47715,-7.5 10,-7.5h85c5.52285,0 10,3.35786 10,7.5v0c0,4.14214 -4.47715,7.5 -10,7.5z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="MNaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNz" fill-opacity="0" fill="#000000" stroke="#e0e0e0" stroke-width="10" stroke-linecap="butt"></path><path d="MNaN,NaN" fill="none" stroke="#3b82f6" stroke-width="10" stroke-linecap="round"></path><text x="0" y="0" transform="translate(NaN,NaN)" fill="#3b82f6" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="bold" font-size="NaN" text-anchor="middle">60%</text><path d="M300,335l5.87785,-3.09017l-1.12257,6.54508l4.75528,4.63525l-6.57164,0.95492l-2.93893,5.95492l-2.93893,-5.95492l-6.57164,-0.95492l4.75528,-4.63525l-1.12257,-6.54508z" fill="#fbbf24" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M324,335l5.87785,-3.09017l-1.12257,6.54508l4.75528,4.63525l-6.57164,0.95492l-2.93893,5.95492l-2.93893,-5.95492l-6.57164,-0.95492l4.75528,-4.63525l-1.12257,-6.54508z" fill="#fbbf24" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M348,335l5.87785,-3.09017l-1.12257,6.54508l4.75528,4.63525l-6.57164,0.95492l-2.93893,5.95492l-2.93893,-5.95492l-6.57164,-0.95492l4.75528,-4.63525l-1.12257,-6.54508z" fill="#fbbf24" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M372,335l5.87785,-3.09017l-1.12257,6.54508l4.75528,4.63525l-6.57164,0.95492l-2.93893,5.95492l-2.93893,-5.95492l-6.57164,-0.95492l4.75528,-4.63525l-1.12257,-6.54508z" fill="#fbbf24" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M396,335l5.87785,-3.09017l-1.12257,6.54508l4.75528,4.63525l-6.57164,0.95492l-2.93893,5.95492l-2.93893,-5.95492l-6.57164,-0.95492l4.75528,-4.63525l-1.12257,-6.54508z" fill="#e5e7eb" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M412,440c-6.62742,0 -12,-5.37258 -12,-12v-96c0,-6.62742 5.37258,-12 12,-12h176c6.62742,0 12,5.37258 12,12v96c0,6.62742 -5.37258,12 -12,12z" fill="#ffffff" stroke="#e5e7eb" stroke-width="1" stroke-linecap="butt"></path><text x="420" y="355" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="24" text-anchor="start">📦</text><text x="420" y="380" fill="#64748b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="start">销量</text><text x="420" y="405" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="28" text-anchor="start">999+</text><path d="M558,380c-4.41828,0 -8,-3.58172 -8,-8v-44c0,-4.41828 3.58172,-8 8,-8h384c4.41828,0 8,3.58172 8,8v44c0,4.41828 -3.58172,8 -8,8z" fill="#ffffff" stroke="#e5e7eb" stroke-width="1" stroke-linecap="butt"></path><text x="565" y="356" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="20" text-anchor="middle">→</text><text x="600" y="345" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="start">列表项</text><text x="600" y="365" fill="#64748b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start">描述</text><path d="M69,438c-10.49341,0 -19,-8.50659 -19,-19v0c0,-10.49341 8.50659,-19 19,-19h11.2c10.49341,0 19,8.50659 19,19v0c0,10.49341 -8.50659,19 -19,19z" fill="#e0e7ff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="74.6" y="423.66667" fill="#4338ca" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">标签1</text><path d="M128.2,438c-10.49341,0 -19,-8.50659 -19,-19v0c0,-10.49341 8.50659,-19 19,-19h11.2c10.49341,0 19,8.50659 19,19v0c0,10.49341 -8.50659,19 -19,19z" fill="#e0e7ff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="133.8" y="423.66667" fill="#4338ca" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">标签2</text><path d="M187.4,438c-10.49341,0 -19,-8.50659 -19,-19v0c0,-10.49341 8.50659,-19 19,-19h11.2c10.49341,0 19,8.50659 19,19v0c0,10.49341 -8.50659,19 -19,19z" fill="#e0e7ff" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="193" y="423.66667" fill="#4338ca" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">标签3</text><path d="M220,400h560" fill="none" stroke="#e5e7eb" stroke-width="2" stroke-linecap="butt"></path><path d="M200,400c0,-11.04569 8.95431,-20 20,-20c11.04569,0 20,8.95431 20,20c0,11.04569 -8.95431,20 -20,20c-11.04569,0 -20,-8.95431 -20,-20z" fill="#22c55e" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="220" y="406.66667" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="middle">✓</text><text x="220" y="440" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">Step 1</text><path d="M500,400c0,-11.04569 8.95431,-20 20,-20c11.04569,0 20,8.95431 20,20c0,11.04569 -8.95431,20 -20,20c-11.04569,0 -20,-8.95431 -20,-20z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="520" y="406.66667" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="middle">2</text><text x="520" y="440" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">Step 2</text><path d="M800,400c0,-11.04569 8.95431,-20 20,-20c11.04569,0 20,8.95431 20,20c0,11.04569 -8.95431,20 -20,20c-11.04569,0 -20,-8.95431 -20,-20z" fill="#e5e7eb" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="820" y="406.66667" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="middle">3</text><text x="820" y="440" fill="#94a3b8" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14" text-anchor="middle">Step 3</text><path d="M480,388v60" fill="none" stroke="#e2e8f0" stroke-width="2" stroke-linecap="butt"></path><path d="M472,388c0,-4.41828 3.58172,-8 8,-8c4.41828,0 8,3.58172 8,8c0,4.41828 -3.58172,8 -8,8c-4.41828,0 -8,-3.58172 -8,-8z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="410" y="393" fill="#94a3b8" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="start">2024</text><text x="520" y="393" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="start">事件1</text><path d="M472,448c0,-4.41828 3.58172,-8 8,-8c4.41828,0 8,3.58172 8,8c0,4.41828 -3.58172,8 -8,8c-4.41828,0 -8,-3.58172 -8,-8z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="520" y="453" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="start">事件2</text><path d="M58,540c-4.41828,0 -8,-3.58172 -8,-8v-44c0,-4.41828 3.58172,-8 8,-8h64c4.41828,0 8,3.58172 8,8v44c0,4.41828 -3.58172,8 -8,8z" fill="#1a1a2e" stroke="#00d9ff" stroke-width="0.5" stroke-linecap="butt" opacity="0.8"></path><text x="65" y="519" fill="#00ff88" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="28" text-anchor="start">★</text><text x="65" y="548" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="start">A</text><path d="M158,540c-4.41828,0 -8,-3.58172 -8,-8v-44c0,-4.41828 3.58172,-8 8,-8h64c4.41828,0 8,3.58172 8,8v44c0,4.41828 -3.58172,8 -8,8z" fill="#1a1a2e" stroke="#00d9ff" stroke-width="0.5" stroke-linecap="butt" opacity="0.8"></path><text x="165" y="519" fill="#00ff88" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="28" text-anchor="start">●</text><text x="165" y="548" fill="#ffffff" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="16" text-anchor="start">B</text><path d="MNaN,500cNaN,0 NaN,NaN NaN,NaN" fill="none" stroke="#e0e0e0" stroke-width="1" stroke-linecap="butt"></path><path d="MNaN,500cNaN,0 NaN,NaN NaN,NaN" fill="none" stroke="#e0e0e0" stroke-width="1" stroke-linecap="butt"></path><path d="M600,400h100" fill="none" stroke="#4ecdc4" stroke-width="2" stroke-linecap="butt"></path><path d="M625,250c0,-13.80712 11.19288,-25 25,-25c13.80712,0 25,11.19288 25,25c0,13.80712 -11.19288,25 -25,25c-13.80712,0 -25,-11.19288 -25,-25z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M658,436c-4.41828,0 -8,-3.58172 -8,-8v-100c0,-4.41828 3.58172,-8 8,-8h384c4.41828,0 8,3.58172 8,8v100c0,4.41828 -3.58172,8 -8,8z" fill="#f8fafc" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="M650,436v-116h4v116z" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="680" y="358" fill="#6366f1" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="36" text-anchor="start">"</text><text x="700" y="367" fill="#1e293b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="18" text-anchor="start">引用</text><text x="670" y="395" fill="#64748b" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="14.4" text-anchor="start">— 作者</text><path d="MNaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNcNaN,NaN NaN,NaN NaN,NaNz" fill="none" stroke="none" stroke-width="1" stroke-linecap="butt"></path><path d="MNaN,NaNcNaN,NaN NaN,NaN NaN,NaN" fill="none" stroke="#333333" stroke-width="2" stroke-linecap="butt"></path><path d="M694.8,468c-8.83656,0 -16,-7.16344 -16,-16v-4c0,-8.83656 7.16344,-16 16,-16h10.4c8.83656,0 16,7.16344 16,16v4c0,8.83656 -7.16344,16 -16,16z" fill="#e0e0e0" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="700" y="454" fill="#4ecdc4" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">芯片</text><text x="0" y="0" transform="translate(NaN,NaN)" fill-opacity="0.1" fill="#000000" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="48" text-anchor="middle" opacity="0.3">水印</text><path d="M654,NaNc-2.20914,NaN -4,NaN -4,NaNc0,NaN 0,NaN 0,NaNc0,NaN 1.79086,NaN 4,NaNc0,NaN 22.66667,NaN 22.66667,NaNc2.20914,NaN 4,NaN 4,NaNc0,NaN 0,NaN 0,NaNc0,NaN -1.79086,NaN -4,NaNc0,NaN -22.66667,NaN -22.66667,NaNz" fill="#3b82f6" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="0" y="0" transform="translate(NaN,NaN)" fill="#666666" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">undefined</text><text x="665.33333" y="542" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="11" text-anchor="middle"></text><path d="M688.66667,NaNc-2.20914,NaN -4,NaN -4,NaNc0,NaN 0,NaN 0,NaNc0,NaN 1.79086,NaN 4,NaNc0,NaN 22.66667,NaN 22.66667,NaNc2.20914,NaN 4,NaN 4,NaNc0,NaN 0,NaN 0,NaNc0,NaN -1.79086,NaN -4,NaNc0,NaN -22.66667,NaN -22.66667,NaNz" fill="#3b82f6" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="0" y="0" transform="translate(NaN,NaN)" fill="#666666" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">undefined</text><text x="700" y="542" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="11" text-anchor="middle"></text><path d="M723.33333,NaNc-2.20914,NaN -4,NaN -4,NaNc0,NaN 0,NaN 0,NaNc0,NaN 1.79086,NaN 4,NaNc0,NaN 22.66667,NaN 22.66667,NaNc2.20914,NaN 4,NaN 4,NaNc0,NaN 0,NaN 0,NaNc0,NaN -1.79086,NaN -4,NaNc0,NaN -22.66667,NaN -22.66667,NaNz" fill="#3b82f6" stroke="none" stroke-width="1" stroke-linecap="butt"></path><text x="0" y="0" transform="translate(NaN,NaN)" fill="#666666" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">undefined</text><text x="734.66667" y="542" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="11" text-anchor="middle"></text><path d="M200,588v-108h200v108z" fill-opacity="0" fill="#000000" stroke="#e0e0e0" stroke-width="1" stroke-linecap="butt"></path><path d="M200,516v-36h200v36z" fill="#f0f0f0" stroke="#e0e0e0" stroke-width="0.5" stroke-linecap="butt"></path><text x="250" y="502" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="bold" font-size="13" text-anchor="middle">列1</text><path d="M300,480v108" fill="none" stroke="#e0e0e0" stroke-width="0.5" stroke-linecap="butt"></path><text x="350" y="502" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="bold" font-size="13" text-anchor="middle">列2</text><path d="M200,516h200" fill="none" stroke="#e0e0e0" stroke-width="0.5" stroke-linecap="butt"></path><text x="250" y="538" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">a</text><text x="350" y="538" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">b</text><path d="M200,588v-36h200v36z" fill="#fafafa" stroke="#e0e0e0" stroke-width="0.5" stroke-linecap="butt"></path><path d="M200,552h200" fill="none" stroke="#e0e0e0" stroke-width="0.5" stroke-linecap="butt"></path><text x="250" y="574" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">c</text><text x="350" y="574" fill="#333333" stroke="none" stroke-width="1" stroke-linecap="butt" font-family="sans-serif" font-weight="normal" font-size="12" text-anchor="middle">d</text></g></svg>
|
|
Binary file
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# puppeteer-plugin
|
|
2
|
+
|
|
3
|
+
Puppeteer 网页自动化操作插件,支持浏览器控制、页面操作、元素交互、Session 管理。
|
|
4
|
+
|
|
5
|
+
## 功能特性
|
|
6
|
+
|
|
7
|
+
- 🌐 浏览器管理:启动/关闭浏览器实例
|
|
8
|
+
- 📄 页面操作:打开页面、导航、截图、获取页面结构
|
|
9
|
+
- 🖱️ 元素交互:查找、点击、输入文本、悬停、按键模拟
|
|
10
|
+
- 🍪 Cookie 管理:获取、设置、清除 Cookie
|
|
11
|
+
- 💾 Session 管理:保存/恢复/删除浏览器会话状态
|
|
12
|
+
- ⏱️ 等待控制:元素等待、网络空闲等待
|
|
13
|
+
|
|
14
|
+
## 工具列表
|
|
15
|
+
|
|
16
|
+
### 浏览器控制
|
|
17
|
+
| 工具 | 说明 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `browser_launch` | 启动 Puppeteer 浏览器实例 |
|
|
20
|
+
| `browser_close` | 关闭浏览器实例 |
|
|
21
|
+
| `browser_status` | 获取当前浏览器状态 |
|
|
22
|
+
|
|
23
|
+
### 页面操作
|
|
24
|
+
| 工具 | 说明 |
|
|
25
|
+
|------|------|
|
|
26
|
+
| `page_open` | 打开新页面或导航到 URL |
|
|
27
|
+
| `page_navigate` | 页面导航(前进、后退、刷新) |
|
|
28
|
+
| `page_screenshot` | 对页面进行截图 |
|
|
29
|
+
| `page_html` | 获取页面 HTML 内容 |
|
|
30
|
+
| `page_structure` | 获取页面关键结构信息(推荐) |
|
|
31
|
+
| `page_close` | 关闭指定页面 |
|
|
32
|
+
|
|
33
|
+
### 元素交互
|
|
34
|
+
| 工具 | 说明 |
|
|
35
|
+
|------|------|
|
|
36
|
+
| `element_find` | 查找页面元素 |
|
|
37
|
+
| `element_find_all` | 查找所有匹配的元素 |
|
|
38
|
+
| `element_click` | 点击页面元素 |
|
|
39
|
+
| `element_type` | 向输入框输入文本 |
|
|
40
|
+
| `element_hover` | 鼠标悬停到元素 |
|
|
41
|
+
| `element_press` | 模拟键盘按键 |
|
|
42
|
+
| `element_wait` | 等待元素出现或消失 |
|
|
43
|
+
|
|
44
|
+
### Cookie 管理
|
|
45
|
+
| 工具 | 说明 |
|
|
46
|
+
|------|------|
|
|
47
|
+
| `cookie_get` | 获取页面 Cookie |
|
|
48
|
+
| `cookie_set` | 设置 Cookie |
|
|
49
|
+
| `cookie_clear` | 清除 Cookie |
|
|
50
|
+
|
|
51
|
+
### Session 管理
|
|
52
|
+
| 工具 | 说明 |
|
|
53
|
+
|------|------|
|
|
54
|
+
| `session_save` | 保存当前浏览器会话状态 |
|
|
55
|
+
| `session_load` | 加载并恢复浏览器会话状态 |
|
|
56
|
+
| `session_list` | 列出所有保存的 Session |
|
|
57
|
+
| `session_delete` | 删除指定的 Session |
|
|
58
|
+
|
|
59
|
+
### 其他
|
|
60
|
+
| 工具 | 说明 |
|
|
61
|
+
|------|------|
|
|
62
|
+
| `js_execute` | 在页面中执行 JavaScript 代码 |
|
|
63
|
+
| `wait` | 等待指定时间 |
|
|
64
|
+
| `wait_network_idle` | 等待网络空闲 |
|
|
65
|
+
|
|
66
|
+
## 安装
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
foliko plugin install puppeteer-plugin
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 使用示例
|
|
73
|
+
|
|
74
|
+
### 启动浏览器并打开网页
|
|
75
|
+
|
|
76
|
+
```javascript
|
|
77
|
+
// 启动浏览器
|
|
78
|
+
await ext_call({
|
|
79
|
+
plugin: "puppeteer",
|
|
80
|
+
tool: "browser_launch",
|
|
81
|
+
args: {}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
// 打开网页
|
|
85
|
+
await ext_call({
|
|
86
|
+
plugin: "puppeteer",
|
|
87
|
+
tool: "page_open",
|
|
88
|
+
args: { url: "https://example.com" }
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// 截图
|
|
92
|
+
await ext_call({
|
|
93
|
+
plugin: "puppeteer",
|
|
94
|
+
tool: "page_screenshot",
|
|
95
|
+
args: { path: "screenshot.png" }
|
|
96
|
+
});
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 元素交互
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
// 查找并点击按钮
|
|
103
|
+
await ext_call({
|
|
104
|
+
plugin: "puppeteer",
|
|
105
|
+
tool: "element_click",
|
|
106
|
+
args: { selector: "button.submit" }
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// 输入文本
|
|
110
|
+
await ext_call({
|
|
111
|
+
plugin: "puppeteer",
|
|
112
|
+
tool: "element_type",
|
|
113
|
+
args: { selector: "input[name='username']", text: "myuser" }
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Session 管理
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
// 保存当前会话
|
|
121
|
+
await ext_call({
|
|
122
|
+
plugin: "puppeteer",
|
|
123
|
+
tool: "session_save",
|
|
124
|
+
args: { sessionId: "my-session" }
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// 恢复会话
|
|
128
|
+
await ext_call({
|
|
129
|
+
plugin: "puppeteer",
|
|
130
|
+
tool: "session_load",
|
|
131
|
+
args: { sessionId: "my-session" }
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 注意事项
|
|
136
|
+
|
|
137
|
+
1. **无图片识别能力**:该插件没有识别图片的能力,截图只能保存
|
|
138
|
+
2. **需要 Chromium**:Puppeteer 需要本地安装 Chromium 浏览器
|
|
139
|
+
3. **Session 恢复**:加载 Session 时会自动恢复 Cookie 和浏览器状态
|
|
140
|
+
|
|
141
|
+
## 依赖
|
|
142
|
+
|
|
143
|
+
- puppeteer-core: ^24.40.0
|
|
144
|
+
|
|
145
|
+
## 版本
|
|
146
|
+
|
|
147
|
+
- v1.0.0
|