@agentrhq/webcmd 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +278 -20
- package/cli-manifest.json +16247 -34913
- package/clis/_atlassian/shared.js +1 -1
- package/clis/booking/search.js +4 -4
- package/clis/chatgpt/ask.js +2 -2
- package/clis/chatgpt/utils.js +41 -42
- package/clis/chatgpt/utils.test.js +23 -23
- package/clis/chatgpt-app/ax.js +5 -5
- package/clis/chatgpt-app/ax.test.js +8 -8
- package/clis/chatgpt-app/new.js +2 -2
- package/clis/codex/sidebar.js +1 -1
- package/clis/codex/sidebar.test.js +12 -12
- package/clis/coingecko/top.js +3 -3
- package/clis/dblp/dblp.test.js +1 -1
- package/clis/discord-app/search.js +1 -1
- package/clis/discord-app/utils.js +6 -6
- package/clis/facebook/__fixtures__/notifications-page.html +6 -6
- package/clis/facebook/add-friend.js +2 -2
- package/clis/facebook/feed.js +18 -18
- package/clis/facebook/friends.js +4 -4
- package/clis/facebook/groups.js +3 -3
- package/clis/facebook/join-group.js +2 -2
- package/clis/facebook/marketplace-inbox.js +3 -3
- package/clis/facebook/marketplace-listings.js +1 -1
- package/clis/facebook/notifications.js +14 -15
- package/clis/facebook/notifications.test.js +28 -29
- package/clis/gemini/ask.test.js +12 -12
- package/clis/gemini/deep-research-result.js +2 -2
- package/clis/gemini/deep-research-result.test.js +2 -2
- package/clis/gemini/deep-research.js +2 -2
- package/clis/gemini/deep-research.test.js +1 -1
- package/clis/gemini/models.js +11 -11
- package/clis/gemini/models.test.js +1 -1
- package/clis/gemini/reply-state.test.js +89 -89
- package/clis/gemini/utils.js +41 -41
- package/clis/gemini/utils.test.js +30 -30
- package/clis/geogebra/utils.js +1 -1
- package/clis/google-scholar/search.js +3 -3
- package/clis/grok/delete.js +1 -1
- package/clis/grok/export-all.js +2 -2
- package/clis/grok/export.js +2 -2
- package/clis/grok/pin.js +3 -3
- package/clis/grok/utils.js +12 -12
- package/clis/grok/utils.test.js +2 -2
- package/clis/indeed/indeed.test.js +3 -3
- package/clis/indeed/utils.js +1 -1
- package/clis/instagram/post.js +19 -19
- package/clis/instagram/post.test.js +2 -2
- package/clis/instagram/reel.js +6 -6
- package/clis/linkedin/connect.js +3 -3
- package/clis/linkedin/people-search.js +4 -4
- package/clis/linkedin/profile-experience.js +6 -6
- package/clis/linkedin/profile-experience.test.js +10 -10
- package/clis/linkedin/profile-read.js +1 -1
- package/clis/linkedin/safe-send.js +1 -1
- package/clis/linkedin/search.js +1 -1
- package/clis/linkedin/shared.js +2 -2
- package/clis/linkedin/timeline.js +5 -5
- package/clis/manus/manus.test.js +2 -2
- package/clis/medium/feed.js +3 -3
- package/clis/medium/search.js +3 -3
- package/clis/medium/user.js +3 -3
- package/clis/notebooklm/auth.js +2 -2
- package/clis/notebooklm/note-list.test.js +4 -4
- package/clis/notebooklm/notes-get.test.js +8 -8
- package/clis/notebooklm/source-fulltext.test.js +11 -11
- package/clis/notebooklm/utils.js +28 -28
- package/clis/notebooklm/utils.test.js +10 -10
- package/clis/pixiv/search.test.js +3 -3
- package/clis/qoder/quest.js +2 -2
- package/clis/reddit/home.js +2 -2
- package/clis/reddit/hot.js +1 -1
- package/clis/reddit/read.js +2 -2
- package/clis/reddit/read.test.js +1 -1
- package/clis/reddit/reply.js +2 -2
- package/clis/reddit/whoami.js +2 -2
- package/clis/reuters/article-detail.js +1 -1
- package/clis/reuters/search.js +1 -1
- package/clis/slock/attachment-upload.test.js +1 -1
- package/clis/slock/task-convert.js +1 -1
- package/clis/substack/feed.js +3 -3
- package/clis/substack/publication.js +3 -3
- package/clis/substack/search.js +4 -4
- package/clis/tiktok/comment.js +2 -2
- package/clis/tiktok/follow.js +4 -4
- package/clis/tiktok/like.js +1 -1
- package/clis/tiktok/save.js +1 -1
- package/clis/tiktok/unfollow.js +4 -4
- package/clis/tiktok/unlike.js +1 -1
- package/clis/tiktok/unsave.js +2 -2
- package/clis/tiktok/write-refactor.test.js +5 -5
- package/clis/twitter/accept.js +3 -3
- package/clis/twitter/followers.js +1 -1
- package/clis/twitter/list-remove-core.js +2 -2
- package/clis/twitter/list-tweets.test.js +3 -3
- package/clis/twitter/lists.js +6 -6
- package/clis/twitter/lists.test.js +2 -2
- package/clis/twitter/reply-dm.js +1 -1
- package/clis/twitter/shared.test.js +4 -5
- package/clis/twitter/trending.js +1 -1
- package/clis/twitter/utils.js +1 -1
- package/clis/web/read.js +1 -1
- package/clis/web/read.test.js +2 -2
- package/clis/yahoo-finance/quote.js +1 -1
- package/clis/youtube/history.js +4 -4
- package/clis/youtube/transcript-group.js +1 -1
- package/clis/youtube/transcript-group.test.js +5 -5
- package/clis/youtube/transcript.js +5 -5
- package/clis/youtube/video.js +4 -4
- package/clis/youtube/video.test.js +6 -6
- package/dist/src/adapter-shadow.d.ts +11 -0
- package/dist/src/adapter-shadow.js +72 -0
- package/dist/src/adapter-shadow.test.js +49 -0
- package/dist/src/adapter-source.d.ts +11 -0
- package/dist/src/adapter-source.js +24 -0
- package/dist/src/adapter-source.test.d.ts +1 -0
- package/dist/src/adapter-source.test.js +29 -0
- package/dist/src/brand.d.ts +9 -0
- package/dist/src/brand.js +9 -0
- package/dist/src/brand.test.d.ts +1 -0
- package/dist/src/brand.test.js +15 -0
- package/dist/src/browser/analyze.d.ts +118 -0
- package/dist/src/browser/analyze.js +405 -0
- package/dist/src/browser/analyze.test.d.ts +1 -0
- package/dist/src/browser/analyze.test.js +209 -0
- package/dist/src/browser/article-extract.d.ts +57 -0
- package/dist/src/browser/article-extract.e2e.test.d.ts +1 -0
- package/dist/src/browser/article-extract.e2e.test.js +105 -0
- package/dist/src/browser/article-extract.js +169 -0
- package/dist/src/browser/article-extract.test.d.ts +1 -0
- package/dist/src/browser/article-extract.test.js +94 -0
- package/dist/src/browser/ax-snapshot.d.ts +37 -0
- package/dist/src/browser/ax-snapshot.js +217 -0
- package/dist/src/browser/ax-snapshot.test.d.ts +1 -0
- package/dist/src/browser/ax-snapshot.test.js +91 -0
- package/dist/src/browser/base-page.d.ts +151 -0
- package/dist/src/browser/base-page.js +1060 -0
- package/dist/src/browser/base-page.test.d.ts +1 -0
- package/dist/src/browser/base-page.test.js +803 -0
- package/dist/src/browser/bridge-readiness.d.ts +14 -0
- package/dist/src/browser/bridge-readiness.js +24 -0
- package/dist/src/browser/bridge-readiness.test.d.ts +1 -0
- package/dist/src/browser/bridge-readiness.test.js +58 -0
- package/dist/src/browser/bridge.d.ts +26 -0
- package/dist/src/browser/bridge.js +58 -0
- package/dist/src/browser/cdp-click-fixture.test.d.ts +1 -0
- package/dist/src/browser/cdp-click-fixture.test.js +87 -0
- package/dist/src/browser/cdp.d.ts +46 -0
- package/dist/src/browser/cdp.js +536 -0
- package/dist/src/browser/cdp.test.d.ts +1 -0
- package/dist/src/browser/cdp.test.js +79 -0
- package/dist/src/browser/compound.d.ts +59 -0
- package/dist/src/browser/compound.js +112 -0
- package/dist/src/browser/compound.test.d.ts +1 -0
- package/dist/src/browser/compound.test.js +175 -0
- package/dist/src/browser/config.d.ts +2 -0
- package/dist/src/browser/config.js +14 -0
- package/dist/src/browser/daemon-client.d.ts +33 -0
- package/dist/src/browser/daemon-client.js +187 -0
- package/dist/src/browser/daemon-client.test.d.ts +1 -0
- package/dist/src/browser/daemon-client.test.js +411 -0
- package/dist/src/browser/daemon-lifecycle.d.ts +37 -0
- package/dist/src/browser/daemon-lifecycle.js +147 -0
- package/dist/src/browser/daemon-transport.d.ts +54 -0
- package/dist/src/browser/daemon-transport.js +68 -0
- package/dist/src/browser/daemon-version.d.ts +4 -0
- package/dist/src/browser/daemon-version.js +12 -0
- package/dist/src/browser/dom-helpers.d.ts +41 -0
- package/dist/src/browser/dom-helpers.js +239 -0
- package/dist/src/browser/dom-helpers.test.d.ts +1 -0
- package/dist/src/browser/dom-helpers.test.js +106 -0
- package/dist/src/browser/dom-snapshot.d.ts +93 -0
- package/dist/src/browser/dom-snapshot.js +894 -0
- package/dist/src/browser/dom-snapshot.test.d.ts +11 -0
- package/dist/src/browser/dom-snapshot.test.js +313 -0
- package/dist/src/browser/errors.d.ts +38 -0
- package/dist/src/browser/errors.js +90 -0
- package/dist/src/browser/errors.test.d.ts +1 -0
- package/dist/src/browser/errors.test.js +60 -0
- package/dist/src/browser/extract.d.ts +69 -0
- package/dist/src/browser/extract.js +132 -0
- package/dist/src/browser/extract.test.d.ts +1 -0
- package/dist/src/browser/extract.test.js +129 -0
- package/dist/src/browser/find.d.ts +84 -0
- package/dist/src/browser/find.js +398 -0
- package/dist/src/browser/find.test.d.ts +1 -0
- package/dist/src/browser/find.test.js +180 -0
- package/dist/src/browser/html-tree.d.ts +75 -0
- package/dist/src/browser/html-tree.js +112 -0
- package/dist/src/browser/html-tree.test.d.ts +1 -0
- package/dist/src/browser/html-tree.test.js +181 -0
- package/dist/src/browser/index.d.ts +14 -0
- package/dist/src/browser/index.js +12 -0
- package/dist/src/browser/network-cache.d.ts +49 -0
- package/dist/src/browser/network-cache.js +78 -0
- package/dist/src/browser/network-cache.test.d.ts +1 -0
- package/dist/src/browser/network-cache.test.js +75 -0
- package/dist/src/browser/network-interceptor.d.ts +11 -0
- package/dist/src/browser/network-interceptor.js +11 -0
- package/dist/src/browser/network-key.d.ts +22 -0
- package/dist/src/browser/network-key.js +66 -0
- package/dist/src/browser/network-key.test.d.ts +1 -0
- package/dist/src/browser/network-key.test.js +49 -0
- package/dist/src/browser/page.d.ts +83 -0
- package/dist/src/browser/page.js +453 -0
- package/dist/src/browser/page.test.d.ts +1 -0
- package/dist/src/browser/page.test.js +406 -0
- package/dist/src/browser/profile.d.ts +14 -0
- package/dist/src/browser/profile.js +86 -0
- package/dist/src/browser/protocol.d.ts +65 -0
- package/dist/src/browser/protocol.js +1 -0
- package/dist/src/browser/runtime/local-cloak/actions.d.ts +3 -0
- package/dist/src/browser/runtime/local-cloak/actions.js +240 -0
- package/dist/src/browser/runtime/local-cloak/downloads.d.ts +3 -0
- package/dist/src/browser/runtime/local-cloak/downloads.js +28 -0
- package/dist/src/browser/runtime/local-cloak/network.d.ts +28 -0
- package/dist/src/browser/runtime/local-cloak/network.js +120 -0
- package/dist/src/browser/runtime/local-cloak/network.test.d.ts +1 -0
- package/dist/src/browser/runtime/local-cloak/network.test.js +124 -0
- package/dist/src/browser/runtime/local-cloak/profiles.d.ts +6 -0
- package/dist/src/browser/runtime/local-cloak/profiles.js +17 -0
- package/dist/src/browser/runtime/local-cloak/profiles.test.d.ts +1 -0
- package/dist/src/browser/runtime/local-cloak/profiles.test.js +19 -0
- package/dist/src/browser/runtime/local-cloak/provider.d.ts +15 -0
- package/dist/src/browser/runtime/local-cloak/provider.js +27 -0
- package/dist/src/browser/runtime/local-cloak/provider.test.d.ts +1 -0
- package/dist/src/browser/runtime/local-cloak/provider.test.js +244 -0
- package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +77 -0
- package/dist/src/browser/runtime/local-cloak/session-manager.js +280 -0
- package/dist/src/browser/runtime/local-cloak/session-manager.test.d.ts +1 -0
- package/dist/src/browser/runtime/local-cloak/session-manager.test.js +92 -0
- package/dist/src/browser/runtime/provider.d.ts +9 -0
- package/dist/src/browser/runtime/provider.js +1 -0
- package/dist/src/browser/runtime/provider.test.d.ts +2 -0
- package/dist/src/browser/runtime/provider.test.js +49 -0
- package/dist/src/browser/shape-filter.d.ts +52 -0
- package/dist/src/browser/shape-filter.js +101 -0
- package/dist/src/browser/shape-filter.test.d.ts +1 -0
- package/dist/src/browser/shape-filter.test.js +101 -0
- package/dist/src/browser/shape.d.ts +23 -0
- package/dist/src/browser/shape.js +95 -0
- package/dist/src/browser/shape.test.d.ts +1 -0
- package/dist/src/browser/shape.test.js +82 -0
- package/dist/src/browser/stealth.d.ts +11 -0
- package/dist/src/browser/stealth.js +359 -0
- package/dist/src/browser/stealth.test.d.ts +1 -0
- package/dist/src/browser/stealth.test.js +134 -0
- package/dist/src/browser/tabs.d.ts +13 -0
- package/dist/src/browser/tabs.js +70 -0
- package/dist/src/browser/target-errors.d.ts +39 -0
- package/dist/src/browser/target-errors.js +45 -0
- package/dist/src/browser/target-errors.test.d.ts +1 -0
- package/dist/src/browser/target-errors.test.js +94 -0
- package/dist/src/browser/target-resolver.d.ts +158 -0
- package/dist/src/browser/target-resolver.js +570 -0
- package/dist/src/browser/target-resolver.test.d.ts +1 -0
- package/dist/src/browser/target-resolver.test.js +118 -0
- package/dist/src/browser/utils.d.ts +20 -0
- package/dist/src/browser/utils.js +64 -0
- package/dist/src/browser/utils.test.d.ts +1 -0
- package/dist/src/browser/utils.test.js +29 -0
- package/dist/src/browser/verify-fixture.d.ts +65 -0
- package/dist/src/browser/verify-fixture.js +318 -0
- package/dist/src/browser/verify-fixture.test.d.ts +1 -0
- package/dist/src/browser/verify-fixture.test.js +219 -0
- package/dist/src/browser/visual-refs.d.ts +11 -0
- package/dist/src/browser/visual-refs.js +108 -0
- package/dist/src/browser.test.d.ts +1 -0
- package/dist/src/browser.test.js +297 -0
- package/dist/src/build-manifest.d.ts +103 -0
- package/dist/src/build-manifest.js +363 -0
- package/dist/src/build-manifest.test.d.ts +1 -0
- package/dist/src/build-manifest.test.js +341 -0
- package/dist/src/capabilityRouting.d.ts +19 -0
- package/dist/src/capabilityRouting.js +56 -0
- package/dist/src/capabilityRouting.test.d.ts +1 -0
- package/dist/src/capabilityRouting.test.js +63 -0
- package/dist/src/cli-argv-preprocess.d.ts +63 -0
- package/dist/src/cli-argv-preprocess.js +303 -0
- package/dist/src/cli-argv-preprocess.test.d.ts +1 -0
- package/dist/src/cli-argv-preprocess.test.js +304 -0
- package/dist/src/cli.d.ts +79 -0
- package/dist/src/cli.js +3350 -0
- package/dist/src/cli.test.d.ts +1 -0
- package/dist/src/cli.test.js +3041 -0
- package/dist/src/commanderAdapter.d.ts +21 -0
- package/dist/src/commanderAdapter.js +208 -0
- package/dist/src/commanderAdapter.test.d.ts +1 -0
- package/dist/src/commanderAdapter.test.js +352 -0
- package/dist/src/commands/auth.d.ts +40 -0
- package/dist/src/commands/auth.js +434 -0
- package/dist/src/commands/auth.test.d.ts +1 -0
- package/dist/src/commands/auth.test.js +252 -0
- package/dist/src/commands/daemon.d.ts +9 -0
- package/dist/src/commands/daemon.js +91 -0
- package/dist/src/commands/daemon.test.d.ts +1 -0
- package/dist/src/commands/daemon.test.js +293 -0
- package/dist/src/completion-fast.d.ts +22 -0
- package/dist/src/completion-fast.js +88 -0
- package/dist/src/completion-shared.d.ts +13 -0
- package/dist/src/completion-shared.js +61 -0
- package/dist/src/completion.d.ts +21 -0
- package/dist/src/completion.js +68 -0
- package/dist/src/completion.test.d.ts +1 -0
- package/dist/src/completion.test.js +24 -0
- package/dist/src/constants.d.ts +18 -0
- package/dist/src/constants.js +41 -0
- package/dist/src/convention-audit.d.ts +50 -0
- package/dist/src/convention-audit.js +553 -0
- package/dist/src/convention-audit.test.d.ts +1 -0
- package/dist/src/convention-audit.test.js +255 -0
- package/dist/src/daemon/server.d.ts +13 -0
- package/dist/src/daemon/server.js +190 -0
- package/dist/src/daemon/server.test.d.ts +1 -0
- package/dist/src/daemon/server.test.js +184 -0
- package/dist/src/daemon-utils.d.ts +19 -0
- package/dist/src/daemon-utils.js +46 -0
- package/dist/src/daemon.d.ts +1 -0
- package/dist/src/daemon.js +27 -0
- package/dist/src/daemon.test.d.ts +1 -0
- package/dist/src/daemon.test.js +69 -0
- package/dist/src/discovery.d.ts +46 -0
- package/dist/src/discovery.js +341 -0
- package/dist/src/doctor.d.ts +39 -0
- package/dist/src/doctor.js +174 -0
- package/dist/src/doctor.test.d.ts +1 -0
- package/dist/src/doctor.test.js +309 -0
- package/dist/src/download/article-download.d.ts +72 -0
- package/dist/src/download/article-download.js +305 -0
- package/dist/src/download/article-download.test.d.ts +1 -0
- package/dist/src/download/article-download.test.js +235 -0
- package/dist/src/download/index.d.ts +71 -0
- package/dist/src/download/index.js +363 -0
- package/dist/src/download/index.test.d.ts +1 -0
- package/dist/src/download/index.test.js +173 -0
- package/dist/src/download/media-download.d.ts +49 -0
- package/dist/src/download/media-download.js +127 -0
- package/dist/src/download/media-download.test.d.ts +1 -0
- package/dist/src/download/media-download.test.js +112 -0
- package/dist/src/download/progress.d.ts +36 -0
- package/dist/src/download/progress.js +120 -0
- package/dist/src/download/progress.test.d.ts +1 -0
- package/dist/src/download/progress.test.js +36 -0
- package/dist/src/electron-apps.d.ts +31 -0
- package/dist/src/electron-apps.js +83 -0
- package/dist/src/electron-apps.test.d.ts +1 -0
- package/dist/src/electron-apps.test.js +67 -0
- package/dist/src/engine.test.d.ts +1 -0
- package/dist/src/engine.test.js +312 -0
- package/dist/src/errors.d.ts +114 -0
- package/dist/src/errors.js +174 -0
- package/dist/src/errors.test.d.ts +1 -0
- package/dist/src/errors.test.js +109 -0
- package/dist/src/execution.d.ts +24 -0
- package/dist/src/execution.js +511 -0
- package/dist/src/execution.test.d.ts +1 -0
- package/dist/src/execution.test.js +657 -0
- package/dist/src/external-clis.yaml +0 -37
- package/dist/src/external.d.ts +49 -0
- package/dist/src/external.js +211 -0
- package/dist/src/external.test.d.ts +1 -0
- package/dist/src/external.test.js +95 -0
- package/dist/src/generate-release-notes-cli.test.d.ts +1 -0
- package/dist/src/generate-release-notes-cli.test.js +140 -0
- package/dist/src/help.d.ts +88 -0
- package/dist/src/help.js +556 -0
- package/dist/src/help.test.d.ts +1 -0
- package/dist/src/help.test.js +58 -0
- package/dist/src/hooks.d.ts +46 -0
- package/dist/src/hooks.js +58 -0
- package/dist/src/hooks.test.d.ts +4 -0
- package/dist/src/hooks.test.js +92 -0
- package/dist/src/interceptor.d.ts +44 -0
- package/dist/src/interceptor.js +183 -0
- package/dist/src/interceptor.test.d.ts +4 -0
- package/dist/src/interceptor.test.js +81 -0
- package/dist/src/launcher.d.ts +41 -0
- package/dist/src/launcher.js +226 -0
- package/dist/src/launcher.test.d.ts +1 -0
- package/dist/src/launcher.test.js +153 -0
- package/dist/src/logger.d.ts +26 -0
- package/dist/src/logger.js +49 -0
- package/dist/src/main.d.ts +5 -0
- package/dist/src/main.js +177 -0
- package/dist/src/manifest-types.d.ts +43 -0
- package/dist/src/manifest-types.js +9 -0
- package/dist/src/node-network.d.ts +10 -0
- package/dist/src/node-network.js +174 -0
- package/dist/src/node-network.test.d.ts +1 -0
- package/dist/src/node-network.test.js +55 -0
- package/dist/src/observation/artifact.d.ts +16 -0
- package/dist/src/observation/artifact.js +260 -0
- package/dist/src/observation/artifact.test.d.ts +1 -0
- package/dist/src/observation/artifact.test.js +121 -0
- package/dist/src/observation/events.d.ts +89 -0
- package/dist/src/observation/events.js +1 -0
- package/dist/src/observation/index.d.ts +7 -0
- package/dist/src/observation/index.js +7 -0
- package/dist/src/observation/manager.d.ts +9 -0
- package/dist/src/observation/manager.js +27 -0
- package/dist/src/observation/manager.test.d.ts +1 -0
- package/dist/src/observation/manager.test.js +13 -0
- package/dist/src/observation/redaction.d.ts +11 -0
- package/dist/src/observation/redaction.js +81 -0
- package/dist/src/observation/redaction.test.d.ts +1 -0
- package/dist/src/observation/redaction.test.js +32 -0
- package/dist/src/observation/retention.d.ts +32 -0
- package/dist/src/observation/retention.js +160 -0
- package/dist/src/observation/retention.test.d.ts +1 -0
- package/dist/src/observation/retention.test.js +118 -0
- package/dist/src/observation/ring-buffer.d.ts +22 -0
- package/dist/src/observation/ring-buffer.js +45 -0
- package/dist/src/observation/ring-buffer.test.d.ts +1 -0
- package/dist/src/observation/ring-buffer.test.js +22 -0
- package/dist/src/observation/session.d.ts +25 -0
- package/dist/src/observation/session.js +50 -0
- package/dist/src/output.d.ts +14 -0
- package/dist/src/output.js +152 -0
- package/dist/src/output.test.d.ts +1 -0
- package/dist/src/output.test.js +53 -0
- package/dist/src/package-exports.test.d.ts +1 -0
- package/dist/src/package-exports.test.js +112 -0
- package/dist/src/package-paths.d.ts +8 -0
- package/dist/src/package-paths.js +41 -0
- package/dist/src/pipeline/executor.d.ts +11 -0
- package/dist/src/pipeline/executor.js +93 -0
- package/dist/src/pipeline/executor.test.d.ts +4 -0
- package/dist/src/pipeline/executor.test.js +182 -0
- package/dist/src/pipeline/index.d.ts +5 -0
- package/dist/src/pipeline/index.js +5 -0
- package/dist/src/pipeline/registry.d.ts +28 -0
- package/dist/src/pipeline/registry.js +55 -0
- package/dist/src/pipeline/steps/browser.d.ts +13 -0
- package/dist/src/pipeline/steps/browser.js +86 -0
- package/dist/src/pipeline/steps/download.d.ts +18 -0
- package/dist/src/pipeline/steps/download.js +252 -0
- package/dist/src/pipeline/steps/download.test.d.ts +1 -0
- package/dist/src/pipeline/steps/download.test.js +102 -0
- package/dist/src/pipeline/steps/fetch.d.ts +5 -0
- package/dist/src/pipeline/steps/fetch.js +122 -0
- package/dist/src/pipeline/steps/fetch.test.d.ts +1 -0
- package/dist/src/pipeline/steps/fetch.test.js +117 -0
- package/dist/src/pipeline/steps/intercept.d.ts +5 -0
- package/dist/src/pipeline/steps/intercept.js +50 -0
- package/dist/src/pipeline/steps/tap.d.ts +12 -0
- package/dist/src/pipeline/steps/tap.js +93 -0
- package/dist/src/pipeline/steps/transform.d.ts +9 -0
- package/dist/src/pipeline/steps/transform.js +70 -0
- package/dist/src/pipeline/template.d.ts +17 -0
- package/dist/src/pipeline/template.js +344 -0
- package/dist/src/pipeline/template.test.d.ts +4 -0
- package/dist/src/pipeline/template.test.js +197 -0
- package/dist/src/pipeline/transform.test.d.ts +4 -0
- package/dist/src/pipeline/transform.test.js +133 -0
- package/dist/src/plugin-manifest.d.ts +70 -0
- package/dist/src/plugin-manifest.js +160 -0
- package/dist/src/plugin-manifest.test.d.ts +4 -0
- package/dist/src/plugin-manifest.test.js +179 -0
- package/dist/src/plugin-scaffold.d.ts +28 -0
- package/dist/src/plugin-scaffold.js +143 -0
- package/dist/src/plugin-scaffold.test.d.ts +4 -0
- package/dist/src/plugin-scaffold.test.js +83 -0
- package/dist/src/plugin.d.ts +146 -0
- package/dist/src/plugin.js +1303 -0
- package/dist/src/plugin.test.d.ts +4 -0
- package/dist/src/plugin.test.js +1363 -0
- package/dist/src/registry-api.d.ts +13 -0
- package/dist/src/registry-api.js +10 -0
- package/dist/src/registry.d.ts +123 -0
- package/dist/src/registry.js +125 -0
- package/dist/src/registry.test.d.ts +4 -0
- package/dist/src/registry.test.js +209 -0
- package/dist/src/release-notes.d.ts +38 -0
- package/dist/src/release-notes.js +99 -0
- package/dist/src/release-notes.test.d.ts +1 -0
- package/dist/src/release-notes.test.js +61 -0
- package/dist/src/runtime-copy.test.d.ts +1 -0
- package/dist/src/runtime-copy.test.js +29 -0
- package/dist/src/runtime-detect.d.ts +31 -0
- package/dist/src/runtime-detect.js +47 -0
- package/dist/src/runtime-detect.test.d.ts +1 -0
- package/dist/src/runtime-detect.test.js +39 -0
- package/dist/src/runtime-identity.test.d.ts +1 -0
- package/dist/src/runtime-identity.test.js +18 -0
- package/dist/src/runtime.d.ts +47 -0
- package/dist/src/runtime.js +54 -0
- package/dist/src/scripts/framework.d.ts +7 -0
- package/dist/src/scripts/framework.js +25 -0
- package/dist/src/scripts/interact.d.ts +4 -0
- package/dist/src/scripts/interact.js +20 -0
- package/dist/src/scripts/store.d.ts +13 -0
- package/dist/src/scripts/store.js +48 -0
- package/dist/src/serialization.d.ts +42 -0
- package/dist/src/serialization.js +103 -0
- package/dist/src/serialization.test.d.ts +1 -0
- package/dist/src/serialization.test.js +78 -0
- package/dist/src/skills.d.ts +14 -0
- package/dist/src/skills.js +127 -0
- package/dist/src/skills.test.d.ts +1 -0
- package/dist/src/skills.test.js +71 -0
- package/dist/src/snapshotFormatter.d.ts +11 -0
- package/dist/src/snapshotFormatter.js +336 -0
- package/dist/src/snapshotFormatter.test.d.ts +7 -0
- package/dist/src/snapshotFormatter.test.js +521 -0
- package/dist/src/tui.d.ts +28 -0
- package/dist/src/tui.js +179 -0
- package/dist/src/tui.test.d.ts +1 -0
- package/dist/src/tui.test.js +19 -0
- package/dist/src/types.d.ts +236 -0
- package/dist/src/types.js +7 -0
- package/dist/src/update-check.d.ts +66 -0
- package/dist/src/update-check.js +206 -0
- package/dist/src/update-check.test.d.ts +1 -0
- package/dist/src/update-check.test.js +117 -0
- package/dist/src/utils.d.ts +57 -0
- package/dist/src/utils.js +152 -0
- package/dist/src/utils.test.d.ts +1 -0
- package/dist/src/utils.test.js +155 -0
- package/dist/src/validate.d.ts +21 -0
- package/dist/src/validate.js +130 -0
- package/dist/src/validate.test.d.ts +9 -0
- package/dist/src/validate.test.js +90 -0
- package/dist/src/verify.d.ts +26 -0
- package/dist/src/verify.js +67 -0
- package/dist/src/version.d.ts +4 -0
- package/dist/src/version.js +22 -0
- package/package.json +7 -3
- package/scripts/check-package-bin.mjs +95 -0
- package/scripts/generate-release-notes.ts +234 -0
- package/scripts/postinstall.js +1 -1
- package/scripts/silent-column-drop-baseline.json +0 -498
- package/scripts/typed-error-lint-baseline.json +0 -464
- package/skills/webcmd-adapter-author/SKILL.md +216 -213
- package/skills/webcmd-adapter-author/references/adapter-template.md +206 -399
- package/skills/webcmd-adapter-author/references/api-discovery.md +111 -220
- package/skills/webcmd-adapter-author/references/coverage-matrix.md +34 -68
- package/skills/webcmd-adapter-author/references/field-conventions.md +84 -167
- package/skills/webcmd-adapter-author/references/field-decode-playbook.md +60 -146
- package/skills/webcmd-adapter-author/references/jsdom-fixture-pattern.md +111 -178
- package/skills/webcmd-adapter-author/references/output-design.md +47 -125
- package/skills/webcmd-adapter-author/references/site-memory.md +116 -166
- package/skills/webcmd-adapter-author/references/site-recon.md +74 -78
- package/skills/webcmd-adapter-author/references/strategy-selection.md +80 -124
- package/skills/webcmd-adapter-author/references/success-rate-pitfalls.md +80 -105
- package/skills/webcmd-adapter-author/references/typed-errors.md +87 -178
- package/skills/webcmd-autofix/SKILL.md +136 -143
- package/skills/webcmd-sitemap-author/SKILL.md +58 -67
- package/skills/webcmd-sitemap-author/references/sitemap-schema.md +354 -494
- package/skills/webcmd-usage/SKILL.md +106 -97
- package/clis/12306/auth.js +0 -59
- package/clis/12306/me.js +0 -73
- package/clis/12306/orders.js +0 -96
- package/clis/12306/passengers.js +0 -90
- package/clis/12306/price.js +0 -166
- package/clis/12306/stations.js +0 -66
- package/clis/12306/train.js +0 -91
- package/clis/12306/trains.js +0 -166
- package/clis/12306/utils.js +0 -272
- package/clis/12306/utils.test.js +0 -424
- package/clis/1688/assets.js +0 -205
- package/clis/1688/assets.test.js +0 -39
- package/clis/1688/auth.js +0 -46
- package/clis/1688/download.js +0 -77
- package/clis/1688/download.test.js +0 -31
- package/clis/1688/item.js +0 -188
- package/clis/1688/item.test.js +0 -67
- package/clis/1688/search.js +0 -310
- package/clis/1688/search.test.js +0 -75
- package/clis/1688/shared.js +0 -557
- package/clis/1688/shared.test.js +0 -57
- package/clis/1688/store.js +0 -227
- package/clis/1688/store.test.js +0 -62
- package/clis/1point3acres/auth.js +0 -52
- package/clis/1point3acres/digest.js +0 -35
- package/clis/1point3acres/forum.js +0 -51
- package/clis/1point3acres/forums.js +0 -44
- package/clis/1point3acres/hot.js +0 -35
- package/clis/1point3acres/latest.js +0 -35
- package/clis/1point3acres/notifications.js +0 -64
- package/clis/1point3acres/search.js +0 -71
- package/clis/1point3acres/thread.js +0 -117
- package/clis/1point3acres/user.js +0 -77
- package/clis/1point3acres/utils.js +0 -247
- package/clis/36kr/article.js +0 -66
- package/clis/36kr/article.test.js +0 -46
- package/clis/36kr/hot.js +0 -87
- package/clis/36kr/hot.test.js +0 -15
- package/clis/36kr/news.js +0 -52
- package/clis/36kr/news.test.js +0 -85
- package/clis/36kr/search.js +0 -79
- package/clis/51job/company.js +0 -126
- package/clis/51job/detail.js +0 -109
- package/clis/51job/hot.js +0 -56
- package/clis/51job/search.js +0 -80
- package/clis/51job/utils.js +0 -302
- package/clis/51job/utils.test.js +0 -69
- package/clis/aibase/news.js +0 -110
- package/clis/aibase/news.test.js +0 -59
- package/clis/autohome/__fixtures__/catalog.html +0 -11
- package/clis/autohome/__fixtures__/koubei.json +0 -116
- package/clis/autohome/autohome.test.js +0 -115
- package/clis/autohome/brand.js +0 -108
- package/clis/autohome/score.js +0 -103
- package/clis/autohome/utils.js +0 -157
- package/clis/baidu-scholar/search.js +0 -87
- package/clis/baidu-scholar/search.test.js +0 -23
- package/clis/bilibili/auth.js +0 -36
- package/clis/bilibili/comment.js +0 -107
- package/clis/bilibili/comment.test.js +0 -153
- package/clis/bilibili/comments.js +0 -136
- package/clis/bilibili/comments.test.js +0 -142
- package/clis/bilibili/download.js +0 -178
- package/clis/bilibili/download.test.js +0 -173
- package/clis/bilibili/dynamic.js +0 -34
- package/clis/bilibili/dynamic.test.js +0 -68
- package/clis/bilibili/favorite.js +0 -47
- package/clis/bilibili/feed.js +0 -220
- package/clis/bilibili/follow.js +0 -140
- package/clis/bilibili/follow.test.js +0 -203
- package/clis/bilibili/following.js +0 -44
- package/clis/bilibili/history.js +0 -45
- package/clis/bilibili/hot.js +0 -40
- package/clis/bilibili/hot.test.js +0 -17
- package/clis/bilibili/me.js +0 -13
- package/clis/bilibili/ranking.js +0 -25
- package/clis/bilibili/search.js +0 -24
- package/clis/bilibili/subtitle.js +0 -141
- package/clis/bilibili/subtitle.test.js +0 -240
- package/clis/bilibili/summary.js +0 -167
- package/clis/bilibili/summary.test.js +0 -210
- package/clis/bilibili/unfollow.js +0 -121
- package/clis/bilibili/user-videos.js +0 -39
- package/clis/bilibili/utils.js +0 -273
- package/clis/bilibili/utils.test.js +0 -97
- package/clis/bilibili/video.js +0 -155
- package/clis/bilibili/video.test.js +0 -308
- package/clis/boss/auth.js +0 -47
- package/clis/boss/batchgreet.js +0 -61
- package/clis/boss/chatlist.js +0 -116
- package/clis/boss/chatlist.test.js +0 -211
- package/clis/boss/chatmsg.js +0 -117
- package/clis/boss/chatmsg.test.js +0 -230
- package/clis/boss/detail.js +0 -63
- package/clis/boss/exchange.js +0 -46
- package/clis/boss/greet.js +0 -49
- package/clis/boss/invite.js +0 -64
- package/clis/boss/joblist.js +0 -31
- package/clis/boss/mark.js +0 -70
- package/clis/boss/recommend.js +0 -45
- package/clis/boss/resume.js +0 -150
- package/clis/boss/search.js +0 -197
- package/clis/boss/search.test.js +0 -78
- package/clis/boss/send.js +0 -44
- package/clis/boss/stats.js +0 -66
- package/clis/boss/utils.js +0 -468
- package/clis/boss/utils.test.js +0 -34
- package/clis/chaoxing/assignments.js +0 -76
- package/clis/chaoxing/auth.js +0 -54
- package/clis/chaoxing/exams.js +0 -75
- package/clis/chaoxing/utils.js +0 -223
- package/clis/chaoxing/utils.test.js +0 -45
- package/clis/cnki/search.js +0 -61
- package/clis/cnki/search.test.js +0 -18
- package/clis/ctrip/auth.js +0 -50
- package/clis/ctrip/ctrip.test.js +0 -719
- package/clis/ctrip/flight.js +0 -136
- package/clis/ctrip/hotel-search.js +0 -132
- package/clis/ctrip/hotel-suggest.js +0 -45
- package/clis/ctrip/search.js +0 -41
- package/clis/ctrip/utils.js +0 -473
- package/clis/deepseek/ask.js +0 -158
- package/clis/deepseek/ask.test.js +0 -399
- package/clis/deepseek/auth.js +0 -54
- package/clis/deepseek/detail.js +0 -46
- package/clis/deepseek/detail.test.js +0 -81
- package/clis/deepseek/history.js +0 -27
- package/clis/deepseek/new.js +0 -33
- package/clis/deepseek/read.js +0 -25
- package/clis/deepseek/send.js +0 -140
- package/clis/deepseek/send.test.js +0 -107
- package/clis/deepseek/status.js +0 -26
- package/clis/deepseek/utils.js +0 -487
- package/clis/deepseek/utils.test.js +0 -370
- package/clis/dianping/__fixtures__/search.html +0 -168
- package/clis/dianping/__fixtures__/shop.html +0 -6
- package/clis/dianping/auth.js +0 -49
- package/clis/dianping/cityResolver.js +0 -185
- package/clis/dianping/dianping.test.js +0 -578
- package/clis/dianping/search.js +0 -157
- package/clis/dianping/shop.js +0 -173
- package/clis/dianping/utils.js +0 -157
- package/clis/dongchedi/__fixtures__/search.json +0 -60
- package/clis/dongchedi/__fixtures__/series-detail.json +0 -911
- package/clis/dongchedi/__fixtures__/series-score.json +0 -1396
- package/clis/dongchedi/dongchedi.test.js +0 -191
- package/clis/dongchedi/koubei.js +0 -85
- package/clis/dongchedi/models.js +0 -91
- package/clis/dongchedi/score.js +0 -83
- package/clis/dongchedi/search.js +0 -83
- package/clis/dongchedi/series.js +0 -87
- package/clis/dongchedi/specs.js +0 -115
- package/clis/dongchedi/utils.js +0 -180
- package/clis/douban/auth.js +0 -50
- package/clis/douban/book-hot.js +0 -15
- package/clis/douban/download.js +0 -68
- package/clis/douban/download.test.js +0 -170
- package/clis/douban/marks.js +0 -116
- package/clis/douban/movie-hot.js +0 -15
- package/clis/douban/movie-hot.test.js +0 -14
- package/clis/douban/photos.js +0 -35
- package/clis/douban/reviews.js +0 -107
- package/clis/douban/search.js +0 -18
- package/clis/douban/search.test.js +0 -11
- package/clis/douban/subject.js +0 -46
- package/clis/douban/subject.test.js +0 -11
- package/clis/douban/top250.js +0 -68
- package/clis/douban/utils.js +0 -657
- package/clis/douban/utils.test.js +0 -488
- package/clis/doubao/ask.js +0 -40
- package/clis/doubao/auth.js +0 -66
- package/clis/doubao/detail.js +0 -35
- package/clis/doubao/detail.test.js +0 -42
- package/clis/doubao/history.js +0 -30
- package/clis/doubao/history.test.js +0 -37
- package/clis/doubao/meeting-summary.js +0 -41
- package/clis/doubao/meeting-transcript.js +0 -38
- package/clis/doubao/new.js +0 -22
- package/clis/doubao/read.js +0 -21
- package/clis/doubao/send.js +0 -24
- package/clis/doubao/status.js +0 -26
- package/clis/doubao/utils.js +0 -1156
- package/clis/doubao/utils.test.js +0 -396
- package/clis/doubao-app/ask.js +0 -54
- package/clis/doubao-app/dump.js +0 -25
- package/clis/doubao-app/new.js +0 -21
- package/clis/doubao-app/read.js +0 -19
- package/clis/doubao-app/screenshot.js +0 -19
- package/clis/doubao-app/send.js +0 -28
- package/clis/doubao-app/status.js +0 -17
- package/clis/doubao-app/utils.js +0 -110
- package/clis/douyin/_shared/browser-fetch.js +0 -66
- package/clis/douyin/_shared/browser-fetch.test.js +0 -64
- package/clis/douyin/_shared/creation-id.js +0 -5
- package/clis/douyin/_shared/creation-id.test.js +0 -22
- package/clis/douyin/_shared/evaluate-result.js +0 -16
- package/clis/douyin/_shared/imagex-upload.js +0 -53
- package/clis/douyin/_shared/imagex-upload.test.js +0 -87
- package/clis/douyin/_shared/public-api.js +0 -29
- package/clis/douyin/_shared/sts2.js +0 -21
- package/clis/douyin/_shared/sts2.test.js +0 -27
- package/clis/douyin/_shared/text-extra.js +0 -15
- package/clis/douyin/_shared/text-extra.test.js +0 -37
- package/clis/douyin/_shared/timing.js +0 -22
- package/clis/douyin/_shared/timing.test.js +0 -28
- package/clis/douyin/_shared/tos-upload-short-read.test.js +0 -83
- package/clis/douyin/_shared/tos-upload.js +0 -331
- package/clis/douyin/_shared/tos-upload.test.js +0 -229
- package/clis/douyin/_shared/transcode.js +0 -45
- package/clis/douyin/_shared/transcode.test.js +0 -91
- package/clis/douyin/_shared/vod-upload.js +0 -212
- package/clis/douyin/_shared/vod-upload.test.js +0 -38
- package/clis/douyin/activities.js +0 -23
- package/clis/douyin/activities.test.js +0 -55
- package/clis/douyin/auth.js +0 -39
- package/clis/douyin/collections.js +0 -23
- package/clis/douyin/collections.test.js +0 -45
- package/clis/douyin/delete.js +0 -152
- package/clis/douyin/delete.test.js +0 -100
- package/clis/douyin/draft.js +0 -355
- package/clis/douyin/draft.test.js +0 -335
- package/clis/douyin/drafts.js +0 -24
- package/clis/douyin/drafts.test.js +0 -11
- package/clis/douyin/hashtag.js +0 -114
- package/clis/douyin/hashtag.test.js +0 -171
- package/clis/douyin/location.js +0 -25
- package/clis/douyin/location.test.js +0 -23
- package/clis/douyin/profile.js +0 -29
- package/clis/douyin/profile.test.js +0 -46
- package/clis/douyin/publish-upload-id.test.js +0 -206
- package/clis/douyin/publish.js +0 -341
- package/clis/douyin/publish.test.js +0 -38
- package/clis/douyin/search.js +0 -308
- package/clis/douyin/search.test.js +0 -307
- package/clis/douyin/stats.js +0 -28
- package/clis/douyin/stats.test.js +0 -22
- package/clis/douyin/update.js +0 -32
- package/clis/douyin/update.test.js +0 -11
- package/clis/douyin/user-videos.js +0 -82
- package/clis/douyin/user-videos.test.js +0 -151
- package/clis/douyin/videos.js +0 -52
- package/clis/douyin/videos.test.js +0 -54
- package/clis/eastmoney/_secid.js +0 -78
- package/clis/eastmoney/announcement.js +0 -53
- package/clis/eastmoney/convertible.js +0 -74
- package/clis/eastmoney/etf.js +0 -66
- package/clis/eastmoney/holders.js +0 -79
- package/clis/eastmoney/hot-rank.js +0 -51
- package/clis/eastmoney/hot-rank.test.js +0 -59
- package/clis/eastmoney/index-board.js +0 -97
- package/clis/eastmoney/kline.js +0 -88
- package/clis/eastmoney/kuaixun.js +0 -55
- package/clis/eastmoney/longhu.js +0 -68
- package/clis/eastmoney/money-flow.js +0 -79
- package/clis/eastmoney/northbound.js +0 -58
- package/clis/eastmoney/quote.js +0 -108
- package/clis/eastmoney/rank.js +0 -95
- package/clis/eastmoney/sectors.js +0 -77
- package/clis/flomo/auth.js +0 -55
- package/clis/flomo/memos.js +0 -228
- package/clis/flomo/memos.test.js +0 -144
- package/clis/gitee/auth.js +0 -41
- package/clis/gitee/index.js +0 -3
- package/clis/gitee/search.js +0 -137
- package/clis/gitee/search.test.js +0 -65
- package/clis/gitee/trending.js +0 -568
- package/clis/gitee/user.js +0 -200
- package/clis/gitee/user.test.js +0 -63
- package/clis/gov-law/commands.test.js +0 -39
- package/clis/gov-law/recent.js +0 -22
- package/clis/gov-law/search.js +0 -41
- package/clis/gov-law/shared.js +0 -51
- package/clis/gov-policy/__fixtures__/recent.html +0 -16
- package/clis/gov-policy/__fixtures__/search.html +0 -41
- package/clis/gov-policy/gov-policy.test.js +0 -224
- package/clis/gov-policy/recent.js +0 -90
- package/clis/gov-policy/search.js +0 -91
- package/clis/gov-policy/utils.js +0 -54
- package/clis/guazi/__fixtures__/detail.html +0 -7
- package/clis/guazi/__fixtures__/list.html +0 -5
- package/clis/guazi/browse.js +0 -95
- package/clis/guazi/car.js +0 -110
- package/clis/guazi/guazi.test.js +0 -126
- package/clis/guazi/utils.js +0 -133
- package/clis/huodongxing/events.js +0 -322
- package/clis/huodongxing/events.test.js +0 -296
- package/clis/hupu/__fixtures__/hot-home.html +0 -64
- package/clis/hupu/auth.js +0 -47
- package/clis/hupu/detail.js +0 -72
- package/clis/hupu/hot.js +0 -163
- package/clis/hupu/hot.test.js +0 -224
- package/clis/hupu/like.js +0 -76
- package/clis/hupu/mentions.js +0 -160
- package/clis/hupu/reply.js +0 -72
- package/clis/hupu/search.js +0 -60
- package/clis/hupu/unlike.js +0 -76
- package/clis/hupu/utils.js +0 -319
- package/clis/jd/add-cart.js +0 -72
- package/clis/jd/auth.js +0 -46
- package/clis/jd/cart.js +0 -80
- package/clis/jd/commands.test.js +0 -41
- package/clis/jd/detail.js +0 -63
- package/clis/jd/item.js +0 -730
- package/clis/jd/item.test.js +0 -354
- package/clis/jd/item.test.ts +0 -517
- package/clis/jd/reviews.js +0 -55
- package/clis/jd/search.js +0 -66
- package/clis/jianyu/auth.js +0 -62
- package/clis/jianyu/detail.js +0 -21
- package/clis/jianyu/search.js +0 -634
- package/clis/jianyu/search.test.js +0 -153
- package/clis/jianyu/shared/china-bid-search.js +0 -165
- package/clis/jianyu/shared/procurement-contract.js +0 -324
- package/clis/jianyu/shared/procurement-contract.test.js +0 -72
- package/clis/jianyu/shared/procurement-detail.js +0 -107
- package/clis/jianyu/shared/procurement-detail.test.js +0 -84
- package/clis/jike/auth.js +0 -48
- package/clis/jike/comment.js +0 -107
- package/clis/jike/create.js +0 -106
- package/clis/jike/feed.js +0 -68
- package/clis/jike/like.js +0 -61
- package/clis/jike/notifications.js +0 -169
- package/clis/jike/post.js +0 -72
- package/clis/jike/read.test.js +0 -86
- package/clis/jike/repost.js +0 -103
- package/clis/jike/search.js +0 -68
- package/clis/jike/topic.js +0 -65
- package/clis/jike/user.js +0 -65
- package/clis/jike/utils.js +0 -25
- package/clis/jimeng/auth.js +0 -46
- package/clis/jimeng/generate.js +0 -84
- package/clis/jimeng/history.js +0 -48
- package/clis/jimeng/new.js +0 -44
- package/clis/jimeng/workspaces.js +0 -42
- package/clis/juejin/hot.js +0 -37
- package/clis/juejin/juejin.test.js +0 -241
- package/clis/juejin/recommend.js +0 -61
- package/clis/juejin/utils.js +0 -199
- package/clis/ke/auth.js +0 -46
- package/clis/ke/chengjiao.js +0 -78
- package/clis/ke/ershoufang.js +0 -101
- package/clis/ke/utils.js +0 -104
- package/clis/ke/xiaoqu.js +0 -78
- package/clis/ke/zufang.js +0 -95
- package/clis/kimi/_utils.js +0 -110
- package/clis/kimi/audit-extras.js +0 -268
- package/clis/kimi/auth.js +0 -57
- package/clis/kimi/chat.js +0 -470
- package/clis/kimi/kimi.test.js +0 -187
- package/clis/kimi/storage.js +0 -169
- package/clis/kimi/ui.js +0 -314
- package/clis/kimi/usage.js +0 -144
- package/clis/linux-do/auth.js +0 -55
- package/clis/linux-do/categories.js +0 -50
- package/clis/linux-do/feed.js +0 -395
- package/clis/linux-do/feed.test.js +0 -153
- package/clis/linux-do/search.js +0 -29
- package/clis/linux-do/tags.js +0 -28
- package/clis/linux-do/topic-content.js +0 -155
- package/clis/linux-do/topic-content.test.js +0 -59
- package/clis/linux-do/topic.js +0 -53
- package/clis/linux-do/user-posts.js +0 -57
- package/clis/linux-do/user-topics.js +0 -37
- package/clis/maimai/auth.js +0 -47
- package/clis/maimai/search-talents.js +0 -192
- package/clis/maimai/search-talents.test.js +0 -29
- package/clis/mubu/doc.js +0 -41
- package/clis/mubu/docs.js +0 -44
- package/clis/mubu/notes.js +0 -245
- package/clis/mubu/recent.js +0 -28
- package/clis/mubu/search.js +0 -63
- package/clis/mubu/utils.js +0 -304
- package/clis/nowcoder/auth.js +0 -65
- package/clis/nowcoder/companies.js +0 -24
- package/clis/nowcoder/creators.js +0 -28
- package/clis/nowcoder/detail.js +0 -62
- package/clis/nowcoder/experience.js +0 -37
- package/clis/nowcoder/hot.js +0 -25
- package/clis/nowcoder/jobs.js +0 -22
- package/clis/nowcoder/notifications.js +0 -30
- package/clis/nowcoder/papers.js +0 -41
- package/clis/nowcoder/practice.js +0 -38
- package/clis/nowcoder/recommend.js +0 -31
- package/clis/nowcoder/referral.js +0 -40
- package/clis/nowcoder/salary.js +0 -41
- package/clis/nowcoder/search.js +0 -50
- package/clis/nowcoder/suggest.js +0 -34
- package/clis/nowcoder/topics.js +0 -28
- package/clis/nowcoder/trending.js +0 -26
- package/clis/ones/common.js +0 -144
- package/clis/ones/enrich-tasks.js +0 -37
- package/clis/ones/login.js +0 -81
- package/clis/ones/logout.js +0 -18
- package/clis/ones/me.js +0 -31
- package/clis/ones/my-tasks.js +0 -121
- package/clis/ones/resolve-labels.js +0 -64
- package/clis/ones/task-helpers.js +0 -212
- package/clis/ones/task-helpers.test.js +0 -12
- package/clis/ones/task.js +0 -67
- package/clis/ones/tasks.js +0 -80
- package/clis/ones/token-info.js +0 -43
- package/clis/ones/worklog.js +0 -268
- package/clis/ones/worklog.test.js +0 -20
- package/clis/powerchina/auth.js +0 -52
- package/clis/powerchina/search.js +0 -251
- package/clis/powerchina/search.test.js +0 -93
- package/clis/quark/auth.js +0 -47
- package/clis/quark/ls.js +0 -64
- package/clis/quark/mkdir.js +0 -37
- package/clis/quark/mv.js +0 -54
- package/clis/quark/rename.js +0 -27
- package/clis/quark/rm.js +0 -25
- package/clis/quark/save.js +0 -81
- package/clis/quark/share-tree.js +0 -46
- package/clis/quark/utils.js +0 -146
- package/clis/quark/utils.test.js +0 -58
- package/clis/qwen/ask.js +0 -104
- package/clis/qwen/ask.test.js +0 -36
- package/clis/qwen/auth.js +0 -56
- package/clis/qwen/detail.js +0 -62
- package/clis/qwen/history.js +0 -61
- package/clis/qwen/image.js +0 -179
- package/clis/qwen/new.js +0 -23
- package/clis/qwen/read.js +0 -41
- package/clis/qwen/send.js +0 -55
- package/clis/qwen/status.js +0 -37
- package/clis/qwen/utils.js +0 -461
- package/clis/qwen/utils.test.js +0 -128
- package/clis/rednote/auth.js +0 -52
- package/clis/rednote/comments.js +0 -85
- package/clis/rednote/download.js +0 -59
- package/clis/rednote/feed.js +0 -27
- package/clis/rednote/navigation.test.js +0 -26
- package/clis/rednote/note.js +0 -68
- package/clis/rednote/notifications.js +0 -139
- package/clis/rednote/rednote.test.js +0 -240
- package/clis/rednote/search.js +0 -107
- package/clis/rednote/user.js +0 -55
- package/clis/sinablog/article.js +0 -15
- package/clis/sinablog/hot.js +0 -15
- package/clis/sinablog/search.js +0 -52
- package/clis/sinablog/user.js +0 -16
- package/clis/sinablog/utils.js +0 -186
- package/clis/sinafinance/news.js +0 -62
- package/clis/sinafinance/rolling-news.js +0 -41
- package/clis/sinafinance/stock-rank.js +0 -66
- package/clis/sinafinance/stock.js +0 -121
- package/clis/sinafinance/stock.test.js +0 -59
- package/clis/smzdm/search.js +0 -149
- package/clis/smzdm/search.test.js +0 -114
- package/clis/taobao/add-cart.js +0 -150
- package/clis/taobao/auth.js +0 -58
- package/clis/taobao/cart.js +0 -96
- package/clis/taobao/commands.test.js +0 -41
- package/clis/taobao/detail.js +0 -71
- package/clis/taobao/reviews.js +0 -77
- package/clis/taobao/search.js +0 -97
- package/clis/tdx/hot-rank.js +0 -48
- package/clis/tdx/hot-rank.test.js +0 -59
- package/clis/ths/hot-rank.js +0 -50
- package/clis/ths/hot-rank.test.js +0 -64
- package/clis/tieba/commands.test.js +0 -79
- package/clis/tieba/hot.js +0 -48
- package/clis/tieba/posts.js +0 -86
- package/clis/tieba/read.js +0 -141
- package/clis/tieba/search.js +0 -109
- package/clis/tieba/utils.js +0 -240
- package/clis/tieba/utils.test.js +0 -290
- package/clis/toutiao/articles.js +0 -55
- package/clis/toutiao/auth.js +0 -70
- package/clis/toutiao/hot.js +0 -63
- package/clis/toutiao/toutiao.test.js +0 -378
- package/clis/toutiao/utils.js +0 -161
- package/clis/trae-cn/activity.js +0 -22
- package/clis/trae-cn/approve.js +0 -52
- package/clis/trae-cn/ask.js +0 -99
- package/clis/trae-cn/dump.js +0 -5
- package/clis/trae-cn/export.js +0 -40
- package/clis/trae-cn/model.js +0 -22
- package/clis/trae-cn/new.js +0 -63
- package/clis/trae-cn/read.js +0 -23
- package/clis/trae-cn/screenshot.js +0 -5
- package/clis/trae-cn/select-model.js +0 -25
- package/clis/trae-cn/send.js +0 -23
- package/clis/trae-cn/setup.js +0 -75
- package/clis/trae-cn/status.js +0 -27
- package/clis/trae-cn/targets.js +0 -96
- package/clis/trae-cn/trae-cn.test.js +0 -412
- package/clis/trae-cn/utils.js +0 -750
- package/clis/trae-cn/watch.js +0 -119
- package/clis/uisdc/news.js +0 -105
- package/clis/uisdc/news.test.js +0 -66
- package/clis/v2ex/auth.js +0 -44
- package/clis/v2ex/daily.js +0 -99
- package/clis/v2ex/hot.js +0 -26
- package/clis/v2ex/latest.js +0 -26
- package/clis/v2ex/me.js +0 -100
- package/clis/v2ex/member.js +0 -28
- package/clis/v2ex/node.js +0 -39
- package/clis/v2ex/nodes.js +0 -26
- package/clis/v2ex/notifications.js +0 -72
- package/clis/v2ex/replies.js +0 -27
- package/clis/v2ex/topic.js +0 -31
- package/clis/v2ex/user.js +0 -34
- package/clis/wanfang/search.js +0 -66
- package/clis/wanfang/search.test.js +0 -23
- package/clis/wechat-channels/auth.js +0 -62
- package/clis/wechat-channels/publish.js +0 -732
- package/clis/wechat-channels/publish.test.js +0 -144
- package/clis/weibo/auth.js +0 -53
- package/clis/weibo/comments.js +0 -53
- package/clis/weibo/delete.js +0 -172
- package/clis/weibo/delete.test.js +0 -94
- package/clis/weibo/envelope.test.js +0 -85
- package/clis/weibo/favorites.js +0 -170
- package/clis/weibo/favorites.test.js +0 -114
- package/clis/weibo/feed.js +0 -69
- package/clis/weibo/hot.js +0 -39
- package/clis/weibo/me.js +0 -75
- package/clis/weibo/post.js +0 -75
- package/clis/weibo/publish.js +0 -306
- package/clis/weibo/publish.test.js +0 -192
- package/clis/weibo/search.js +0 -80
- package/clis/weibo/user-posts.js +0 -234
- package/clis/weibo/user-posts.test.js +0 -92
- package/clis/weibo/user.js +0 -63
- package/clis/weibo/utils.js +0 -59
- package/clis/weibo/utils.test.js +0 -36
- package/clis/weixin/create-draft.js +0 -226
- package/clis/weixin/download.js +0 -371
- package/clis/weixin/download.test.js +0 -106
- package/clis/weixin/drafts.js +0 -66
- package/clis/weixin/drafts.test.js +0 -69
- package/clis/weixin/search.js +0 -157
- package/clis/weixin/search.test.js +0 -227
- package/clis/weread/ai-outline.js +0 -171
- package/clis/weread/ai-outline.test.js +0 -83
- package/clis/weread/auth.js +0 -59
- package/clis/weread/book-search.js +0 -438
- package/clis/weread/book-search.test.js +0 -242
- package/clis/weread/book.js +0 -233
- package/clis/weread/commands.test.js +0 -398
- package/clis/weread/highlights.js +0 -24
- package/clis/weread/notebooks.js +0 -22
- package/clis/weread/notes.js +0 -30
- package/clis/weread/private-api-regression.test.js +0 -369
- package/clis/weread/ranking.js +0 -29
- package/clis/weread/search-regression.test.js +0 -494
- package/clis/weread/search.js +0 -186
- package/clis/weread/shelf.js +0 -66
- package/clis/weread/utils.js +0 -321
- package/clis/weread/utils.test.js +0 -128
- package/clis/weread-official/book.js +0 -135
- package/clis/weread-official/commands.test.js +0 -385
- package/clis/weread-official/discover.js +0 -107
- package/clis/weread-official/list-apis.js +0 -95
- package/clis/weread-official/notes.js +0 -171
- package/clis/weread-official/readdata.js +0 -158
- package/clis/weread-official/review.js +0 -93
- package/clis/weread-official/search.js +0 -106
- package/clis/weread-official/shelf.js +0 -97
- package/clis/weread-official/utils.js +0 -293
- package/clis/weread-official/utils.test.js +0 -242
- package/clis/xianyu/auth.js +0 -68
- package/clis/xianyu/chat.js +0 -74
- package/clis/xianyu/chat.test.js +0 -84
- package/clis/xianyu/im.js +0 -322
- package/clis/xianyu/im.test.js +0 -253
- package/clis/xianyu/inbox.js +0 -96
- package/clis/xianyu/item.js +0 -153
- package/clis/xianyu/item.test.js +0 -56
- package/clis/xianyu/messages.js +0 -91
- package/clis/xianyu/publish.js +0 -485
- package/clis/xianyu/publish.test.js +0 -220
- package/clis/xianyu/reply.js +0 -82
- package/clis/xianyu/search.js +0 -262
- package/clis/xianyu/search.test.js +0 -104
- package/clis/xianyu/utils.js +0 -8
- package/clis/xiaoe/auth.js +0 -55
- package/clis/xiaoe/catalog.js +0 -227
- package/clis/xiaoe/content.js +0 -175
- package/clis/xiaoe/courses.js +0 -127
- package/clis/xiaoe/detail.js +0 -36
- package/clis/xiaoe/play-url.js +0 -121
- package/clis/xiaoe/xiaoe.test.js +0 -486
- package/clis/xiaohongshu/ask.js +0 -426
- package/clis/xiaohongshu/ask.test.js +0 -271
- package/clis/xiaohongshu/auth.js +0 -53
- package/clis/xiaohongshu/collection-helpers.js +0 -283
- package/clis/xiaohongshu/collection-helpers.test.js +0 -125
- package/clis/xiaohongshu/comments.js +0 -228
- package/clis/xiaohongshu/comments.test.js +0 -320
- package/clis/xiaohongshu/creator-note-detail.js +0 -482
- package/clis/xiaohongshu/creator-note-detail.test.js +0 -451
- package/clis/xiaohongshu/creator-notes-summary.js +0 -98
- package/clis/xiaohongshu/creator-notes-summary.test.js +0 -94
- package/clis/xiaohongshu/creator-notes.js +0 -479
- package/clis/xiaohongshu/creator-notes.test.js +0 -281
- package/clis/xiaohongshu/creator-profile.js +0 -55
- package/clis/xiaohongshu/creator-stats.js +0 -76
- package/clis/xiaohongshu/creator-stats.test.js +0 -24
- package/clis/xiaohongshu/delete-note.js +0 -260
- package/clis/xiaohongshu/delete-note.test.js +0 -172
- package/clis/xiaohongshu/download.js +0 -249
- package/clis/xiaohongshu/download.test.js +0 -339
- package/clis/xiaohongshu/draft-clear.js +0 -91
- package/clis/xiaohongshu/draft-delete.js +0 -103
- package/clis/xiaohongshu/draft-open.js +0 -43
- package/clis/xiaohongshu/draft-utils.js +0 -142
- package/clis/xiaohongshu/drafts.js +0 -28
- package/clis/xiaohongshu/drafts.test.js +0 -172
- package/clis/xiaohongshu/feed.js +0 -163
- package/clis/xiaohongshu/feed.test.js +0 -126
- package/clis/xiaohongshu/follow.js +0 -226
- package/clis/xiaohongshu/follow.test.js +0 -211
- package/clis/xiaohongshu/liked.js +0 -29
- package/clis/xiaohongshu/liked.test.js +0 -82
- package/clis/xiaohongshu/navigation.test.js +0 -38
- package/clis/xiaohongshu/note-helpers.js +0 -69
- package/clis/xiaohongshu/note.js +0 -104
- package/clis/xiaohongshu/note.test.js +0 -249
- package/clis/xiaohongshu/notifications.js +0 -46
- package/clis/xiaohongshu/publish.js +0 -1423
- package/clis/xiaohongshu/publish.test.js +0 -1141
- package/clis/xiaohongshu/saved.js +0 -29
- package/clis/xiaohongshu/saved.test.js +0 -143
- package/clis/xiaohongshu/search.js +0 -330
- package/clis/xiaohongshu/search.test.js +0 -325
- package/clis/xiaohongshu/unfollow.js +0 -285
- package/clis/xiaohongshu/user-helpers.js +0 -78
- package/clis/xiaohongshu/user-helpers.test.js +0 -160
- package/clis/xiaohongshu/user.js +0 -140
- package/clis/xiaohongshu/user.test.js +0 -141
- package/clis/xiaoyuzhou/auth.js +0 -303
- package/clis/xiaoyuzhou/auth.test.js +0 -124
- package/clis/xiaoyuzhou/download.js +0 -54
- package/clis/xiaoyuzhou/download.test.js +0 -135
- package/clis/xiaoyuzhou/episode.js +0 -34
- package/clis/xiaoyuzhou/podcast-episodes.js +0 -41
- package/clis/xiaoyuzhou/podcast-episodes.test.js +0 -78
- package/clis/xiaoyuzhou/podcast.js +0 -33
- package/clis/xiaoyuzhou/transcript.js +0 -77
- package/clis/xiaoyuzhou/transcript.test.js +0 -195
- package/clis/xiaoyuzhou/utils.js +0 -15
- package/clis/xiaoyuzhou/utils.test.js +0 -39
- package/clis/xueqiu/auth.js +0 -63
- package/clis/xueqiu/comments.js +0 -355
- package/clis/xueqiu/comments.test.js +0 -696
- package/clis/xueqiu/danjuan-utils.js +0 -126
- package/clis/xueqiu/danjuan-utils.test.js +0 -41
- package/clis/xueqiu/earnings-date.js +0 -45
- package/clis/xueqiu/feed.js +0 -39
- package/clis/xueqiu/fund-holdings.js +0 -29
- package/clis/xueqiu/fund-snapshot.js +0 -26
- package/clis/xueqiu/groups.js +0 -23
- package/clis/xueqiu/hot-stock.js +0 -32
- package/clis/xueqiu/hot.js +0 -37
- package/clis/xueqiu/kline.js +0 -44
- package/clis/xueqiu/search.js +0 -37
- package/clis/xueqiu/stock.js +0 -65
- package/clis/xueqiu/utils.js +0 -48
- package/clis/xueqiu/utils.test.js +0 -26
- package/clis/xueqiu/watchlist.js +0 -37
- package/clis/youdao/note.js +0 -258
- package/clis/youdao/note.test.js +0 -99
- package/clis/yuanbao/ask.js +0 -362
- package/clis/yuanbao/ask.test.js +0 -124
- package/clis/yuanbao/auth.js +0 -59
- package/clis/yuanbao/detail.js +0 -65
- package/clis/yuanbao/history.js +0 -51
- package/clis/yuanbao/new.js +0 -72
- package/clis/yuanbao/new.test.js +0 -30
- package/clis/yuanbao/read.js +0 -38
- package/clis/yuanbao/send.js +0 -57
- package/clis/yuanbao/shared.js +0 -341
- package/clis/yuanbao/shared.test.js +0 -80
- package/clis/yuanbao/status.js +0 -44
- package/clis/zhihu/answer-comments.js +0 -280
- package/clis/zhihu/answer-comments.test.js +0 -287
- package/clis/zhihu/answer-detail.js +0 -216
- package/clis/zhihu/answer-detail.test.js +0 -338
- package/clis/zhihu/answer.js +0 -54
- package/clis/zhihu/answer.test.js +0 -54
- package/clis/zhihu/auth.js +0 -59
- package/clis/zhihu/collection.js +0 -199
- package/clis/zhihu/collection.test.js +0 -337
- package/clis/zhihu/collections.js +0 -128
- package/clis/zhihu/collections.test.js +0 -182
- package/clis/zhihu/comment.js +0 -55
- package/clis/zhihu/comment.test.js +0 -50
- package/clis/zhihu/download.js +0 -80
- package/clis/zhihu/download.test.js +0 -12
- package/clis/zhihu/favorite.js +0 -87
- package/clis/zhihu/favorite.test.js +0 -59
- package/clis/zhihu/follow.js +0 -50
- package/clis/zhihu/follow.test.js +0 -42
- package/clis/zhihu/followers.js +0 -40
- package/clis/zhihu/followers.test.js +0 -42
- package/clis/zhihu/following.js +0 -40
- package/clis/zhihu/following.test.js +0 -44
- package/clis/zhihu/hot.js +0 -44
- package/clis/zhihu/like.js +0 -47
- package/clis/zhihu/like.test.js +0 -41
- package/clis/zhihu/paginate.js +0 -128
- package/clis/zhihu/pins.js +0 -41
- package/clis/zhihu/pins.test.js +0 -44
- package/clis/zhihu/question.js +0 -113
- package/clis/zhihu/question.test.js +0 -251
- package/clis/zhihu/recommend.js +0 -103
- package/clis/zhihu/recommend.test.js +0 -143
- package/clis/zhihu/search.js +0 -206
- package/clis/zhihu/search.test.js +0 -198
- package/clis/zhihu/target.js +0 -91
- package/clis/zhihu/target.test.js +0 -77
- package/clis/zhihu/text.js +0 -29
- package/clis/zhihu/text.test.js +0 -24
- package/clis/zhihu/user-answers.js +0 -41
- package/clis/zhihu/user-answers.test.js +0 -69
- package/clis/zhihu/user-arg.js +0 -34
- package/clis/zhihu/user-articles.js +0 -40
- package/clis/zhihu/user-articles.test.js +0 -44
- package/clis/zhihu/user.js +0 -59
- package/clis/zhihu/user.test.js +0 -73
- package/clis/zhihu/write-shared.js +0 -228
- package/clis/zhihu/write-shared.test.js +0 -176
- package/clis/zsxq/auth.js +0 -68
- package/clis/zsxq/dynamics.js +0 -48
- package/clis/zsxq/groups.js +0 -33
- package/clis/zsxq/search.js +0 -44
- package/clis/zsxq/search.test.js +0 -24
- package/clis/zsxq/topic.js +0 -50
- package/clis/zsxq/topic.test.js +0 -30
- package/clis/zsxq/topics.js +0 -26
- package/clis/zsxq/topics.test.js +0 -24
- package/clis/zsxq/utils.js +0 -233
- package/clis/zsxq/utils.test.js +0 -31
- package/skills/webcmd-adapter-author/references/site-memory/bilibili.md +0 -70
- package/skills/webcmd-adapter-author/references/site-memory/eastmoney.md +0 -70
- package/skills/webcmd-adapter-author/references/site-memory/tonghuashun.md +0 -51
- package/skills/webcmd-adapter-author/references/site-memory/xueqiu.md +0 -58
- /package/{clis/douyin/_shared/types.js → dist/src/adapter-shadow.test.d.ts} +0 -0
|
@@ -1,660 +1,520 @@
|
|
|
1
|
-
# Sitemap Schema
|
|
1
|
+
# Sitemap Schema
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This schema defines Webcmd site sitemaps. A sitemap is an agent-facing task graph, not an SEO crawl map.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The sitemap should help an agent answer:
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
- Where am I?
|
|
8
|
+
- What stable page state am I seeing?
|
|
9
|
+
- Which adapter should I prefer?
|
|
10
|
+
- Which browser actions are available?
|
|
11
|
+
- What fallback should I use when an adapter or remembered path fails?
|
|
12
|
+
- What memory is stale or risky?
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
## 1. Storage And Loading
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
1. §1.1 双语 / CJK token-per-char 比 English 高 30-50%,必要时拆 sub-file(不放宽 800)
|
|
13
|
-
2. §2.1 `auth_strategy` 取主体不取并集;例外靠 page-level `contract_strength` 区分
|
|
14
|
-
3. §2.5 `pitfalls.md` 只 task-executor 级;adapter-internal 坑回 `notes.md`
|
|
15
|
-
4. §2.5 pitfall id / trigger / workaround 全部 **task-executor 第一人称**视角
|
|
16
|
-
5. §2.4 `apis.md` entry 加 optional `notes:` 字段(GraphQL queryId path 等 meta)
|
|
17
|
-
6. §2.2 page `Linked APIs` 收集中可留空,**不要塞 fake id**
|
|
16
|
+
### 1.1 Two-Layer Model
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
7. §2.2 + §4 partial 页面语义:`page_id` 以 `_` 前缀 + `url_patterns: []`,跨页通用 UI 抽到 partial
|
|
21
|
-
8. §3 action schema 加 Form B compact YAML(~80 token / action vs Form A markdown ~250)
|
|
22
|
-
9. §3 drop action-level `verified_at` / `source`,继承文件 frontmatter
|
|
18
|
+
Global seed:
|
|
23
19
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
12. §2.2 `testid` 标 optional;`selector_pattern` 一等 anchor + 列 5 种合法形态 + 禁 `nth-child` / 单 class / 文案 selector
|
|
20
|
+
```text
|
|
21
|
+
sitemaps/<site>/
|
|
22
|
+
```
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
Local overlay:
|
|
30
25
|
|
|
31
|
-
|
|
26
|
+
```text
|
|
27
|
+
~/.webcmd/sites/<site>/sitemap/
|
|
28
|
+
```
|
|
32
29
|
|
|
33
|
-
|
|
30
|
+
Local overlay wins by stable id. If both layers define the same page, action, workflow, endpoint, or pitfall id, the local overlay version is used.
|
|
34
31
|
|
|
35
|
-
|
|
32
|
+
Write new discoveries locally first. Promote to global only after review.
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
### 1.2 Recommended Layout
|
|
38
35
|
|
|
39
|
-
|
|
36
|
+
```text
|
|
37
|
+
sitemap/
|
|
38
|
+
SITE.md
|
|
39
|
+
pages/<page-id>.md
|
|
40
|
+
pages/_<partial>.md
|
|
41
|
+
workflows/<task-id>.md
|
|
42
|
+
apis.md
|
|
43
|
+
pitfalls.md
|
|
44
|
+
draft-<topic>.md
|
|
45
|
+
```
|
|
40
46
|
|
|
41
|
-
|
|
42
|
-
- 一个 page 有 > 8 个 action → 拆 `pages/<page>/index.md` + `pages/<page>/actions/<group>.md`
|
|
43
|
-
- 一个 workflow 步骤多 → 拆主线 + `workflows/<task>/sub/<step>.md`
|
|
44
|
-
- **双语 / CJK 内容 token-per-char 比 English 高 30-50%**:CJK 单字 ~0.7-1 token,加上术语混排实测一个 1.5KB 中文 markdown 文件就 ~1000 token。**必要时拆 sub-file 而非放宽 800 限制** — 软 target 必然漂,一年后会变 3000,lazy load 失效
|
|
47
|
+
Drafts must live under the `sitemap/` directory. Do not put drafts at `~/.webcmd/sites/<site>/sitemap.draft.md`; that path is invisible to sitemap availability detection.
|
|
45
48
|
|
|
46
|
-
### 1.
|
|
49
|
+
### 1.3 Size Target
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
schema_version: 1
|
|
51
|
-
last_verified: 2026-06-02 # YYYY-MM-DD
|
|
52
|
-
source: local | global # 标识所在存储层
|
|
53
|
-
---
|
|
54
|
-
```
|
|
51
|
+
Target each lazily loaded file at about 800 tokens. This is an optimization target and audit threshold, not a reason to split cohesive tiny docs into unreadable fragments.
|
|
55
52
|
|
|
56
|
-
|
|
53
|
+
Guidance:
|
|
57
54
|
|
|
58
|
-
|
|
55
|
+
| File tokens | Decision |
|
|
56
|
+
| --- | --- |
|
|
57
|
+
| < 1500 | Usually fine. |
|
|
58
|
+
| 1500-3000 | Keep only if cohesive; split mixed topics. |
|
|
59
|
+
| > 3000 | Split into page, workflow, partial, or API files. |
|
|
59
60
|
|
|
60
|
-
## 2.
|
|
61
|
+
## 2. Common Front Matter
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
Every sitemap file should start with YAML front matter:
|
|
63
64
|
|
|
64
65
|
```yaml
|
|
65
66
|
---
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
site: github
|
|
68
|
+
kind: site | page | partial | workflow | apis | pitfalls | draft
|
|
69
|
+
id: stable-id
|
|
70
|
+
status: verified | draft | stale
|
|
71
|
+
verified_at: YYYY-MM-DD
|
|
72
|
+
source: webcmd browser state | trace:<path> | adapter:<site>/<command>
|
|
72
73
|
---
|
|
73
|
-
|
|
74
|
-
## Overview
|
|
75
|
-
<1-2 句站点定位,agent 看一眼就知道这是什么站>
|
|
76
|
-
|
|
77
|
-
## Top-level routes
|
|
78
|
-
<URL pattern → page_id 映射,只列主干>
|
|
79
|
-
- / → pages/home.md
|
|
80
|
-
- /<user> → pages/profile.md
|
|
81
|
-
- /search → pages/search.md
|
|
82
|
-
|
|
83
|
-
## Common goals
|
|
84
|
-
<主要 user task → workflow 映射>
|
|
85
|
-
- publish a post → workflows/publish.md
|
|
86
|
-
- find user → workflows/search-user.md
|
|
87
|
-
- export data → workflows/export.md
|
|
88
|
-
|
|
89
|
-
## Site-wide pitfalls
|
|
90
|
-
<跨页通用坑,详细见 pitfalls.md>
|
|
91
|
-
- requires login for most reads
|
|
92
|
-
- "Latest" tab is time-sorted; "For You" is personalized
|
|
93
74
|
```
|
|
94
75
|
|
|
95
|
-
|
|
96
|
-
**Optional**: `Site-wide pitfalls` (引用即可)
|
|
97
|
-
**Frontmatter required**: `site`, `login_required`, `auth_strategy`
|
|
76
|
+
Field rules:
|
|
98
77
|
|
|
99
|
-
|
|
78
|
+
| Field | Required | Meaning |
|
|
79
|
+
| --- | --- | --- |
|
|
80
|
+
| `site` | yes | Site id matching `webcmd <site>`. |
|
|
81
|
+
| `kind` | yes | File type. |
|
|
82
|
+
| `id` | yes | Stable id within kind. |
|
|
83
|
+
| `status` | yes | `verified`, `draft`, or `stale`. |
|
|
84
|
+
| `verified_at` | yes for verified/stale | Last date reality was checked. |
|
|
85
|
+
| `source` | yes | Evidence source. |
|
|
100
86
|
|
|
101
|
-
|
|
87
|
+
Do not describe unverified paths as `verified`.
|
|
102
88
|
|
|
103
|
-
|
|
89
|
+
## 3. `SITE.md`
|
|
104
90
|
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
schema_version: 1
|
|
108
|
-
page_id: home
|
|
109
|
-
url_patterns:
|
|
110
|
-
- https://twitter.com/home
|
|
111
|
-
- https://twitter.com/i/timeline
|
|
112
|
-
purpose: main feed surface
|
|
113
|
-
last_verified: 2026-06-02
|
|
114
|
-
source: local
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## Visual anchors
|
|
118
|
-
<agent 用什么 anchor 确认"我在这页">
|
|
119
|
-
- a11y: role=main, name="Home timeline"
|
|
120
|
-
- text: "What's happening?" (compose prompt)
|
|
121
|
-
- pattern: feed items have role=article
|
|
122
|
-
- testid: [data-testid="primaryColumn"] # optional - 新站常用,老站可省
|
|
123
|
-
- selector_pattern: tr.athing + tr.subtext # optional - structural / attribute selector,无 testid 的老站常用
|
|
124
|
-
|
|
125
|
-
## Actions on this page
|
|
126
|
-
<可执行 action,按 stable id 命名>
|
|
91
|
+
Purpose: site-level orientation and route index.
|
|
127
92
|
|
|
128
|
-
|
|
129
|
-
(详见下面 §3 Action schema)
|
|
93
|
+
Recommended sections:
|
|
130
94
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
## Linked APIs
|
|
135
|
-
<本页面触发的 endpoint id 列表,不复制 endpoint 内容>
|
|
136
|
-
- endpoint_id: timeline_v2
|
|
137
|
-
triggers_on: page load + infinite scroll
|
|
138
|
-
- endpoint_id: notifications_count
|
|
139
|
-
triggers_on: page load (silent poll)
|
|
140
|
-
|
|
141
|
-
## Page-specific pitfalls
|
|
142
|
-
<只列本页独有坑>
|
|
143
|
-
- compose dialog can be obscured by toast notifications
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
**Required**: `Visual anchors`, `Actions on this page`
|
|
147
|
-
**Optional**: `Linked APIs` (建议放,引用 `apis.md` 已注册的 endpoint id), `Page-specific pitfalls`
|
|
148
|
-
**Frontmatter required**: `page_id`, `url_patterns` (array), `purpose`
|
|
95
|
+
```md
|
|
96
|
+
# <site> Sitemap
|
|
149
97
|
|
|
150
|
-
|
|
98
|
+
## Purpose
|
|
151
99
|
|
|
152
|
-
|
|
100
|
+
What this site memory helps agents do.
|
|
153
101
|
|
|
154
|
-
|
|
155
|
-
|---|---|---|
|
|
156
|
-
| `a11y` | 现代站,role + name 稳定的 | `role=button name="Post"` |
|
|
157
|
-
| `text` | 站点文案不漂的(少见,i18n 风险)| `"What's happening?"` |
|
|
158
|
-
| `pattern` | 多元素重复模式 | `feed items have role=article` |
|
|
159
|
-
| `testid` | **Optional** — 新站约定 `data-testid="..."` 的(Twitter / React 系新站常见)| `[data-testid="tweetTextarea_0"]` |
|
|
160
|
-
| `selector_pattern` | **Optional, 但旧站必填**:structural / attribute selector,无 testid 时的稳定 fallback | `tr.athing[id="<id>"] + tr` |
|
|
102
|
+
## Auth Assumptions
|
|
161
103
|
|
|
162
|
-
|
|
104
|
+
- logged out:
|
|
105
|
+
- logged in:
|
|
106
|
+
- required profile/session:
|
|
163
107
|
|
|
164
|
-
|
|
108
|
+
## Top-level routes
|
|
165
109
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
| **attribute boundary** | `a[href^="item?id="]`, `a[href*="/status/"]` | 元素靠 URL pattern 区分(HN comments link / Twitter status link) |
|
|
171
|
-
| **form name** | `input[name="title"]`, `textarea[name="text"]` | 老式 form,`name` attribute 几乎不漂 |
|
|
172
|
-
| **ARIA** | `[role="article"]`, `[aria-label*="..."]` | semantic 锚点,跟 `a11y` 重叠但当 a11y 不够时 selector form 仍可作 anchor |
|
|
110
|
+
- /home -> pages/home.md
|
|
111
|
+
- /search -> pages/search.md
|
|
112
|
+
- /messages -> uncovered in this sitemap; agent must explore live
|
|
113
|
+
- /settings -> out of sitemap scope; agent must explore live
|
|
173
114
|
|
|
174
|
-
|
|
115
|
+
## Stable Page IDs
|
|
175
116
|
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
-
|
|
117
|
+
- home
|
|
118
|
+
- search
|
|
119
|
+
- item
|
|
179
120
|
|
|
180
|
-
|
|
121
|
+
## Adapter Preference
|
|
181
122
|
|
|
182
|
-
|
|
123
|
+
- Prefer `webcmd <site> <command>` for <task> when healthy.
|
|
124
|
+
- Fall back to browser workflow <workflow id> when suspect/broken.
|
|
125
|
+
```
|
|
183
126
|
|
|
184
|
-
|
|
127
|
+
Top-level routes should include known uncovered routes. This tells agents that the route exists but the sitemap does not provide a path.
|
|
185
128
|
|
|
186
|
-
|
|
129
|
+
## 4. Page Files
|
|
187
130
|
|
|
188
|
-
|
|
131
|
+
Path:
|
|
189
132
|
|
|
190
|
-
|
|
191
|
-
-
|
|
192
|
-
|
|
193
|
-
- partial 文件不算独立 page,但 schema 字段结构跟正常 page 一样
|
|
133
|
+
```text
|
|
134
|
+
pages/<page-id>.md
|
|
135
|
+
```
|
|
194
136
|
|
|
195
|
-
|
|
137
|
+
Purpose: state signatures, actions, linked adapters, linked endpoints, and page-specific pitfalls.
|
|
196
138
|
|
|
197
|
-
|
|
139
|
+
Front matter:
|
|
198
140
|
|
|
199
141
|
```yaml
|
|
200
142
|
---
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
143
|
+
site: github
|
|
144
|
+
kind: page
|
|
145
|
+
id: repo
|
|
146
|
+
status: verified
|
|
147
|
+
verified_at: YYYY-MM-DD
|
|
148
|
+
source: webcmd browser state
|
|
149
|
+
url_patterns:
|
|
150
|
+
- https://github.com/*/*
|
|
151
|
+
state_signature:
|
|
152
|
+
- selector: main
|
|
153
|
+
- text: Code
|
|
154
|
+
- url: /<owner>/<repo>
|
|
206
155
|
---
|
|
207
|
-
|
|
208
|
-
## Goal
|
|
209
|
-
<user-facing 描述,agent 用来匹配 user intent>
|
|
210
|
-
Create a new public post on this site with text content.
|
|
211
|
-
|
|
212
|
-
## State signature
|
|
213
|
-
<workflow 级 checkpoint,re-entry 时用来定位"走到哪一步了">
|
|
214
|
-
- entry: any page on the site, logged in
|
|
215
|
-
- success: post visible on author's timeline within 5s
|
|
216
|
-
|
|
217
|
-
## Best path
|
|
218
|
-
adapter: webcmd twitter post
|
|
219
|
-
adapter_health: healthy # healthy | suspect | broken
|
|
220
|
-
preconditions:
|
|
221
|
-
- logged_in
|
|
222
|
-
- text content ready
|
|
223
|
-
estimated_turns: 1
|
|
224
|
-
|
|
225
|
-
## Fallback path
|
|
226
|
-
<adapter 不可用 / unhealthy 时的 browser workflow,引用 action id>
|
|
227
|
-
1. From any page → navigate to /home (or use current if already on /home)
|
|
228
|
-
2. Use action `open_compose` (see pages/home.md)
|
|
229
|
-
3. Type text into compose textarea
|
|
230
|
-
4. Use action `submit_post` (see pages/home.md)
|
|
231
|
-
|
|
232
|
-
estimated_turns: 4
|
|
233
|
-
|
|
234
|
-
## Avoid
|
|
235
|
-
<反模式 — 哪些路径浪费 turn / 触发 modal / 用不稳定 selector>
|
|
236
|
-
- Manual clicking when adapter is healthy
|
|
237
|
-
- Mobile site path (/m/...) — different DOM structure
|
|
238
|
-
- Right-click context menu paths — locale-dependent
|
|
239
|
-
|
|
240
|
-
## Re-entry checkpoints
|
|
241
|
-
<给定 browser state,agent 知道走到 workflow 哪一步>
|
|
242
|
-
- on /home, compose dialog NOT visible → start from step 1
|
|
243
|
-
- on /home, compose dialog visible → start from step 3
|
|
244
|
-
- on /<user>/status/<id>, success indicator → done
|
|
245
|
-
|
|
246
|
-
## State validation
|
|
247
|
-
<完成后怎么验证真的成功>
|
|
248
|
-
- timeline shows new post within 5s
|
|
249
|
-
- post URL accessible
|
|
250
|
-
- post text matches submitted content
|
|
251
|
-
|
|
252
|
-
## Stale markers
|
|
253
|
-
<known drift signals — agent 看到这些应该重新探测而不是相信本 workflow>
|
|
254
|
-
- "Post" button text changed (i18n drift)
|
|
255
|
-
- compose dialog moved to right sidebar (UI redesign 2026-Q3 rumor)
|
|
256
156
|
```
|
|
257
157
|
|
|
258
|
-
|
|
259
|
-
**Optional but recommended**: `Re-entry checkpoints`, `State validation`, `Stale markers`
|
|
260
|
-
**Frontmatter required**: `workflow_id`, `intent`
|
|
158
|
+
Recommended sections:
|
|
261
159
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
- `suspect`:adapter 存在但 last_verified 老于 30 天,或最近有 fix PR 还没 merge
|
|
265
|
-
- `broken`:adapter 已知 broken,必须走 Fallback path
|
|
160
|
+
```md
|
|
161
|
+
# Page: repo
|
|
266
162
|
|
|
267
|
-
|
|
163
|
+
## State Signature
|
|
268
164
|
|
|
269
|
-
|
|
165
|
+
- URL matches:
|
|
166
|
+
- Stable selectors:
|
|
167
|
+
- Required text:
|
|
168
|
+
- Auth-dependent variants:
|
|
270
169
|
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
schema_version: 1
|
|
274
|
-
last_verified: 2026-06-02
|
|
275
|
-
source: local
|
|
276
|
-
---
|
|
170
|
+
## Actions
|
|
277
171
|
|
|
278
|
-
|
|
172
|
+
### action:<stable-id>
|
|
173
|
+
pre: <current page / state / auth requirements>
|
|
174
|
+
do: <agent action, adapter command, or semantic browser command>
|
|
175
|
+
post: <URL / state / output that proves success>
|
|
176
|
+
fail: <failure signal 1> | <failure signal 2>
|
|
177
|
+
recover: <fallback instruction>; adapter_health_update: <adapter> -> suspect
|
|
178
|
+
evidence: webcmd browser <cmd> or trace:<path>
|
|
279
179
|
|
|
280
|
-
|
|
180
|
+
## Linked APIs
|
|
281
181
|
|
|
282
|
-
|
|
283
|
-
- triggers_on_pages: [home]
|
|
284
|
-
- triggered_by_actions: [page_load, scroll_for_more]
|
|
285
|
-
- contract_strength: internal-unstable
|
|
286
|
-
- notes: GraphQL /i/api/graphql/{queryId}/HomeTimeline # optional - meta 信息(queryId 路径 / 已知 schema 变化)
|
|
182
|
+
- endpoint:<id> in apis.md
|
|
287
183
|
|
|
288
|
-
|
|
289
|
-
- triggers_on_pages: [search]
|
|
290
|
-
- triggered_by_actions: [search_input_keystroke]
|
|
291
|
-
- contract_strength: internal-unstable
|
|
184
|
+
## Pitfalls
|
|
292
185
|
|
|
293
|
-
|
|
294
|
-
- triggers_on_pages: [home, compose]
|
|
295
|
-
- triggered_by_actions: [submit_post]
|
|
296
|
-
- contract_strength: internal-unstable
|
|
186
|
+
- pitfall:<id> in pitfalls.md
|
|
297
187
|
```
|
|
298
188
|
|
|
299
|
-
|
|
300
|
-
- `endpoint_id` — 必须存在于同站 `~/.webcmd/sites/<site>/endpoints.json`
|
|
301
|
-
- `triggers_on_pages` — array of `page_id`
|
|
302
|
-
- `triggered_by_actions` — array of `action:<stable-id>`
|
|
303
|
-
- `contract_strength` — `stable | visible-ui | internal-unstable`,定义见 `strategy-selection.md`
|
|
189
|
+
### 4.1 State Signature Rules
|
|
304
190
|
|
|
305
|
-
|
|
306
|
-
- `notes` — meta 信息(GraphQL queryId path、已知 schema 变化、特殊 auth 头)。**不要**复制 endpoint URL / method / params / response shape — 那些只在 `endpoints.json`
|
|
191
|
+
State signatures must be observable and minimal:
|
|
307
192
|
|
|
308
|
-
|
|
309
|
-
-
|
|
310
|
-
-
|
|
193
|
+
- URL pattern
|
|
194
|
+
- stable semantic selector
|
|
195
|
+
- accessibility label
|
|
196
|
+
- visible text that is unlikely to localize away
|
|
197
|
+
- known app state marker
|
|
311
198
|
|
|
312
|
-
|
|
199
|
+
Avoid:
|
|
313
200
|
|
|
314
|
-
|
|
201
|
+
- screenshot coordinates
|
|
202
|
+
- transient list indices like `[17]`
|
|
203
|
+
- exact randomized class names
|
|
204
|
+
- private user values
|
|
315
205
|
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
schema_version: 1
|
|
319
|
-
last_verified: 2026-06-02
|
|
320
|
-
source: local
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## Site-specific pitfalls
|
|
324
|
-
|
|
325
|
-
### pitfall:login_wall_on_search
|
|
326
|
-
trigger: searching without logged-in session
|
|
327
|
-
symptom: redirected to /login
|
|
328
|
-
workaround: check session before navigating to /search
|
|
329
|
-
verified_at: 2026-06-02
|
|
330
|
-
|
|
331
|
-
### pitfall:infinite_scroll_throttle
|
|
332
|
-
trigger: rapid scroll triggers > 5 timeline_v2 fetches
|
|
333
|
-
symptom: rate_limit_429 response
|
|
334
|
-
workaround: wait 2s between scrolls; or use cursor-based pagination
|
|
335
|
-
verified_at: 2026-05-15
|
|
336
|
-
|
|
337
|
-
### pitfall:locale_button_drift
|
|
338
|
-
trigger: site locale is non-English
|
|
339
|
-
symptom: hardcoded "Post" / "Submit" text selectors fail
|
|
340
|
-
workaround: use a11y role + aria-label instead of visible text
|
|
341
|
-
verified_at: 2026-06-01
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
**Required per entry**:
|
|
345
|
-
- `pitfall_id` — stable id, **第一人称 task-executor 视角**("agent 调命令时会撞到" 视角,不是 "实现 adapter 的人会撞到" 视角)
|
|
346
|
-
- `trigger` — what causes this,从 task-executor 视角描述("agent 想做 X 时" 而非 "adapter 实现里有 Y bug")
|
|
347
|
-
- `symptom` — how agent observes the failure
|
|
348
|
-
- `workaround` — what to do instead,task-executor 可执行(不是 "修 adapter")
|
|
349
|
-
- `verified_at` — when last seen
|
|
350
|
-
|
|
351
|
-
#### Scope(避免 sitemap 变杂物间)
|
|
352
|
-
|
|
353
|
-
`pitfalls.md` 只放 **task-executor 级**坑 — 跑命令 / 操作页面会撞到的坑。**adapter-internal 实现坑**(queryId 解析 / envelope unwrap / bigint id / 字段 silent rename)放在 `~/.webcmd/sites/<site>/notes.md`,不进 sitemap。
|
|
206
|
+
## 5. Partial Page Files
|
|
354
207
|
|
|
355
|
-
|
|
208
|
+
Path:
|
|
356
209
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
| 跑命令的 agent(标 `adapter_health=suspect` / 切 Fallback path / 等 cooldown) | `pitfalls.md`(task-executor 级) |
|
|
360
|
-
| 写 adapter 的 agent(改解析逻辑 / 升级 queryId / 改字段路径) | `notes.md`(adapter-internal) |
|
|
361
|
-
|
|
362
|
-
反例(**不要**写进 pitfalls.md):
|
|
363
|
-
|
|
364
|
-
```md
|
|
365
|
-
### pitfall:queryid_rotation_breaks_adapter # ❌ adapter-internal naming
|
|
366
|
-
- trigger: adapter 调 cookie-API endpoint,queryId 已 rotation # ❌ adapter 视角
|
|
367
|
-
- workaround: adapter 升级 queryId path # ❌ task-executor 做不了
|
|
210
|
+
```text
|
|
211
|
+
pages/_<partial>.md
|
|
368
212
|
```
|
|
369
213
|
|
|
370
|
-
|
|
214
|
+
Purpose: reusable UI primitives that appear on multiple pages.
|
|
371
215
|
|
|
372
|
-
|
|
373
|
-
### pitfall:adapter_returns_empty_after_api_drift # ✅ task-executor naming
|
|
374
|
-
- trigger: Best path adapter 返回 typed error 或空 result # ✅ agent 视角
|
|
375
|
-
- workaround: 标 workflow adapter_health=suspect 走 Fallback path # ✅ task-executor 可执行
|
|
376
|
-
```
|
|
216
|
+
Front matter:
|
|
377
217
|
|
|
218
|
+
```yaml
|
|
378
219
|
---
|
|
220
|
+
site: twitter
|
|
221
|
+
kind: partial
|
|
222
|
+
id: post-card
|
|
223
|
+
status: verified
|
|
224
|
+
verified_at: YYYY-MM-DD
|
|
225
|
+
source: webcmd browser state
|
|
226
|
+
url_patterns: []
|
|
227
|
+
scope_root: article[role="article"]
|
|
228
|
+
---
|
|
229
|
+
```
|
|
379
230
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
每个 page 的 actions section 包含若干 action 节点。**两种合法 form**,作者按需选:
|
|
383
|
-
|
|
384
|
-
#### Form A: Markdown 详尽(适合复杂 action / 第一次编写)
|
|
231
|
+
Partial files must state the scope root.
|
|
385
232
|
|
|
386
233
|
```md
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
Preconditions:
|
|
390
|
-
- <current page / state / auth requirements>
|
|
391
|
-
|
|
392
|
-
Do:
|
|
393
|
-
- <agent action — preferably semantic browser command or existing adapter>
|
|
234
|
+
## Scope Rule
|
|
394
235
|
|
|
395
|
-
|
|
396
|
-
|
|
236
|
+
All selectors in this partial are scoped to `article[role="article"]`.
|
|
237
|
+
Do not use page-level first match.
|
|
238
|
+
```
|
|
397
239
|
|
|
398
|
-
|
|
399
|
-
- <how agent detects this edge no longer works>
|
|
240
|
+
Bad:
|
|
400
241
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
242
|
+
```yaml
|
|
243
|
+
do: click [data-testid="like"]
|
|
244
|
+
```
|
|
404
245
|
|
|
405
|
-
|
|
406
|
-
url_pattern: <regex or exact match>
|
|
407
|
-
dom_anchor: <a11y role+name OR semantic selector>
|
|
246
|
+
Good:
|
|
408
247
|
|
|
409
|
-
|
|
410
|
-
-
|
|
411
|
-
- trace: <path to trace artifact, optional>
|
|
248
|
+
```yaml
|
|
249
|
+
do: click [data-testid="like"] in article[role="article"] (card scope)
|
|
412
250
|
```
|
|
413
251
|
|
|
414
|
-
|
|
252
|
+
Other page files may reference:
|
|
415
253
|
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
pre: <current page / state / auth requirements>
|
|
419
|
-
do: <agent action, adapter or semantic browser command>
|
|
420
|
-
post: <URL / state / output that proves success>
|
|
421
|
-
fail: <failure signal 1> | <signal 2> | <signal 3>
|
|
422
|
-
recover: <fallback instruction>; adapter_health_update: <adapter> -> suspect
|
|
423
|
-
evidence: webcmd browser <cmd>
|
|
254
|
+
```text
|
|
255
|
+
action:like in pages/_post-card.md
|
|
424
256
|
```
|
|
425
257
|
|
|
426
|
-
|
|
258
|
+
## 6. Workflow Files
|
|
427
259
|
|
|
428
|
-
|
|
429
|
-
|---|---|---|
|
|
430
|
-
| `\|` | 多 failure signal 平级枚举("任一发生即视为失败")| `fail: button_not_found \| /flow/login redirect` |
|
|
431
|
-
| `\|\|` | 多 do path / recovery path **fallback priority**("前者失败试后者")| `do: webcmd twitter like <url> \|\| click [data-testid="like"]` |
|
|
432
|
-
| `;` | 多 recovery 指令 **sequential**("逐条执行")| `recover: adapter_health_update: webcmd twitter like -> suspect; dom_click within card scope` |
|
|
260
|
+
Path:
|
|
433
261
|
|
|
434
|
-
|
|
262
|
+
```text
|
|
263
|
+
workflows/<task-id>.md
|
|
264
|
+
```
|
|
435
265
|
|
|
436
|
-
|
|
266
|
+
Purpose: best path and fallback path for a user-facing task.
|
|
437
267
|
|
|
438
|
-
|
|
268
|
+
Front matter:
|
|
439
269
|
|
|
440
|
-
|
|
270
|
+
```yaml
|
|
271
|
+
---
|
|
272
|
+
site: github
|
|
273
|
+
kind: workflow
|
|
274
|
+
id: read-issue
|
|
275
|
+
status: verified
|
|
276
|
+
verified_at: YYYY-MM-DD
|
|
277
|
+
source: trace:<path>
|
|
278
|
+
---
|
|
279
|
+
```
|
|
441
280
|
|
|
442
|
-
|
|
281
|
+
Recommended sections:
|
|
443
282
|
|
|
444
|
-
|
|
445
|
-
|
|
283
|
+
```md
|
|
284
|
+
# Workflow: read-issue
|
|
285
|
+
|
|
286
|
+
## Goal
|
|
446
287
|
|
|
447
|
-
|
|
448
|
-
1. 已有 adapter 命令(`webcmd twitter post`)
|
|
449
|
-
2. semantic browser command(`webcmd browser click "Post" button`)
|
|
450
|
-
3. 显式 selector(最后选项,写 stable anchor 不是裸 CSS)
|
|
288
|
+
Read an issue and extract title, author, body, labels, and comments.
|
|
451
289
|
|
|
452
|
-
|
|
290
|
+
## State Signature
|
|
453
291
|
|
|
454
|
-
|
|
455
|
-
-
|
|
456
|
-
-
|
|
457
|
-
- `button_not_found`
|
|
458
|
-
- `URL_does_not_change_within_3s`
|
|
292
|
+
- Start:
|
|
293
|
+
- Resume checkpoint:
|
|
294
|
+
- Success:
|
|
459
295
|
|
|
460
|
-
|
|
461
|
-
- 链到 fallback path("use action `mobile_compose` from pages/mobile-home.md")
|
|
462
|
-
- 或回 探测模式("re-run `find` for 'Post' button with a11y role=button")
|
|
463
|
-
- 可含 `adapter_health_update:` directive(见 §3.3)
|
|
296
|
+
## Best Path
|
|
464
297
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
- 复杂 action("submit form" 包含 type + click + wait)建议加,agent 中断恢复时知道走到哪
|
|
468
|
-
- 跟 workflow 级 state signature 区分:workflow signature 是 "走到 workflow 第几步",action signature 是 "action 内部第几步"
|
|
298
|
+
1. Prefer `webcmd github issue ...` when adapter health is `healthy`.
|
|
299
|
+
2. Verify output contains expected fields.
|
|
469
300
|
|
|
470
|
-
|
|
471
|
-
- `observed_with`:当时跑的命令(用于复现)
|
|
472
|
-
- `trace`:optional,对复杂 action 建议附 trace artifact 路径
|
|
473
|
-
- `verified_at` 不写在 action 里 — 继承文件 frontmatter `last_verified`
|
|
474
|
-
- `source` 不写在 action 里 — 文件位置已隐含
|
|
301
|
+
## Fallback Path
|
|
475
302
|
|
|
476
|
-
|
|
303
|
+
on_adapter_fail:
|
|
304
|
+
- adapter_health_update: webcmd github issue -> suspect
|
|
305
|
+
- webcmd browser state
|
|
306
|
+
- action:open_issue in pages/repo.md
|
|
307
|
+
- action:extract_comments in pages/issue.md
|
|
477
308
|
|
|
478
|
-
|
|
479
|
-
- 不要 page-prefix:action 默认作用域是它所在的 page,不要写 `home_open_compose`
|
|
480
|
-
- stable:跨 URL params / locale / A/B variant 都应稳定
|
|
309
|
+
## Avoid
|
|
481
310
|
|
|
482
|
-
|
|
311
|
+
- paths that open modals unnecessarily
|
|
312
|
+
- selectors known to drift
|
|
313
|
+
- workflows requiring private data not needed for the task
|
|
483
314
|
|
|
484
|
-
|
|
315
|
+
## Stale Markers
|
|
485
316
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
do: webcmd twitter like <tweet-url> || click [data-testid="like"] (within card scope)
|
|
490
|
-
post: testid 翻转 like -> unlike,icon 红色
|
|
491
|
-
fail: testid 不变 | 弹 login modal
|
|
492
|
-
recover: adapter_health_update: webcmd twitter like -> suspect; dom_click within card scope
|
|
493
|
-
evidence: webcmd twitter like + webcmd browser click
|
|
317
|
+
- URL changed:
|
|
318
|
+
- selector missing:
|
|
319
|
+
- endpoint changed:
|
|
494
320
|
```
|
|
495
321
|
|
|
496
|
-
|
|
322
|
+
## 7. `apis.md`
|
|
497
323
|
|
|
498
|
-
|
|
499
|
-
- **action 层** adapter-first 处理"UI 原语级别"(点 like 按钮)
|
|
324
|
+
Purpose: references to endpoint ids already known in `~/.webcmd/sites/<site>/endpoints.json` or public docs.
|
|
500
325
|
|
|
501
|
-
|
|
326
|
+
Do not duplicate full endpoint schemas inside sitemap files.
|
|
502
327
|
|
|
503
|
-
|
|
328
|
+
Recommended shape:
|
|
504
329
|
|
|
505
|
-
|
|
330
|
+
```md
|
|
331
|
+
# APIs
|
|
506
332
|
|
|
507
|
-
|
|
508
|
-
|
|
333
|
+
## endpoint:search
|
|
334
|
+
|
|
335
|
+
- memory: `~/.webcmd/sites/<site>/endpoints.json#search`
|
|
336
|
+
- used_by:
|
|
337
|
+
- workflows/search.md
|
|
338
|
+
- pages/search.md action:submit-search
|
|
339
|
+
- adapter: `webcmd <site> search`
|
|
340
|
+
- health: healthy | suspect | broken
|
|
341
|
+
- notes:
|
|
509
342
|
```
|
|
510
343
|
|
|
511
|
-
|
|
344
|
+
If an endpoint is stale, mark it:
|
|
512
345
|
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
3. **下个 agent** 读 workflow 看到 `adapter_health=suspect` → 直接走 Fallback path,不再盲 retry adapter
|
|
346
|
+
```md
|
|
347
|
+
## endpoint:search
|
|
516
348
|
|
|
517
|
-
|
|
349
|
+
status: stale
|
|
350
|
+
reason: response shape no longer contains `items`
|
|
351
|
+
next: rerun api discovery section 1
|
|
352
|
+
```
|
|
518
353
|
|
|
519
|
-
|
|
354
|
+
## 8. `pitfalls.md`
|
|
520
355
|
|
|
521
|
-
|
|
356
|
+
Purpose: durable failure modes and recovery notes.
|
|
522
357
|
|
|
523
|
-
|
|
358
|
+
Recommended shape:
|
|
524
359
|
|
|
525
|
-
|
|
360
|
+
```md
|
|
361
|
+
# Pitfalls
|
|
526
362
|
|
|
527
|
-
##
|
|
363
|
+
## pitfall:<stable-id>
|
|
528
364
|
|
|
529
|
-
|
|
365
|
+
- symptom:
|
|
366
|
+
- cause:
|
|
367
|
+
- recovery:
|
|
368
|
+
- evidence:
|
|
369
|
+
- last_seen: YYYY-MM-DD
|
|
370
|
+
```
|
|
530
371
|
|
|
531
|
-
|
|
532
|
-
|---|---|---|
|
|
533
|
-
| 引用 page | `pages/<page-id>.md` | `see pages/home.md` |
|
|
534
|
-
| 引用 workflow | `workflows/<task-id>.md` | `see workflows/publish-post.md` |
|
|
535
|
-
| 引用 action | `action:<stable-id> in pages/<page>.md` | `use action open_compose in pages/home.md` |
|
|
536
|
-
| 引用 partial action | `action:<stable-id> in pages/_<partial>.md` | `use action like_tweet in pages/_tweet_card.md` |
|
|
537
|
-
| 引用 endpoint | `endpoint:<endpoint-id> in apis.md` | `triggers endpoint:timeline_v2` |
|
|
538
|
-
| 引用 pitfall | `pitfall:<pitfall-id> in pitfalls.md` | `see pitfall:login_wall_on_search` |
|
|
539
|
-
| 引用 endpoints.json | endpoint_id 直接出现,假定 `endpoints.json` 有同 id | `endpoint_id: timeline_v2` |
|
|
372
|
+
Examples:
|
|
540
373
|
|
|
541
|
-
|
|
542
|
-
-
|
|
543
|
-
-
|
|
544
|
-
-
|
|
374
|
+
- login page returns HTTP 200
|
|
375
|
+
- modal steals focus
|
|
376
|
+
- infinite scroll requires specific container scroll
|
|
377
|
+
- locale changes visible labels
|
|
378
|
+
- old adapter endpoint returns analytics data
|
|
545
379
|
|
|
546
|
-
|
|
380
|
+
Do not record private account values.
|
|
547
381
|
|
|
548
|
-
##
|
|
382
|
+
## 9. Action Schema
|
|
549
383
|
|
|
550
|
-
|
|
551
|
-
|---|---|
|
|
552
|
-
| Read order | local overlay 优先 → fallback global seed |
|
|
553
|
-
| Conflict | 同 stable id 存在两层时,local 赢(用户的现实更权威)|
|
|
554
|
-
| Promotion | local 累积 → 显式 PR → 进 global |
|
|
555
|
-
| Demotion | 不存在 — global 永远不删除 entry,只标 stale |
|
|
556
|
-
| 文件 missing | 任一层 missing 该文件,自动 fallback 另一层;都 missing → 该 page/workflow 视为不存在 |
|
|
384
|
+
Compact action schema:
|
|
557
385
|
|
|
558
|
-
|
|
386
|
+
```yaml
|
|
387
|
+
### action:<stable-id>
|
|
388
|
+
pre: <current page / state / auth requirements>
|
|
389
|
+
do: <agent action, adapter command, or semantic browser command>
|
|
390
|
+
post: <URL / state / output that proves success>
|
|
391
|
+
fail: <failure signal 1> | <failure signal 2>
|
|
392
|
+
recover: <fallback instruction>; adapter_health_update: <adapter> -> suspect
|
|
393
|
+
evidence: webcmd browser <cmd> or trace:<path>
|
|
394
|
+
```
|
|
559
395
|
|
|
560
|
-
|
|
396
|
+
Field rules:
|
|
561
397
|
|
|
562
|
-
|
|
398
|
+
| Field | Required | Meaning |
|
|
399
|
+
| --- | --- | --- |
|
|
400
|
+
| `pre` | yes | What must be true before the action. |
|
|
401
|
+
| `do` | yes | The action: adapter command, semantic browser command, or user-level step. |
|
|
402
|
+
| `post` | yes | Observable success condition. |
|
|
403
|
+
| `fail` | yes | Failure signals that should trigger recovery. |
|
|
404
|
+
| `recover` | yes | What to do next. |
|
|
405
|
+
| `evidence` | yes | Command or trace proving this action. |
|
|
563
406
|
|
|
564
|
-
|
|
407
|
+
Use stable semantic actions:
|
|
565
408
|
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
├── pages/home.md
|
|
571
|
-
└── draft-search-filter.md ← OK,会被检测到
|
|
572
|
-
```
|
|
409
|
+
- `click "New issue" button`
|
|
410
|
+
- `type into search input`
|
|
411
|
+
- `webcmd github search ...`
|
|
412
|
+
- `action:like in pages/_post-card.md`
|
|
573
413
|
|
|
574
|
-
|
|
575
|
-
```
|
|
576
|
-
~/.webcmd/sites/twitter/
|
|
577
|
-
├── sitemap.draft.md ← 检测不到,不会触发 availability
|
|
578
|
-
└── sitemap/ ← 空 dir → 检测到但内容空
|
|
579
|
-
└── (empty)
|
|
580
|
-
```
|
|
414
|
+
Avoid:
|
|
581
415
|
|
|
582
|
-
|
|
416
|
+
- `click 17`
|
|
417
|
+
- "maybe click the blue button"
|
|
418
|
+
- unverified selectors
|
|
419
|
+
- private data
|
|
583
420
|
|
|
584
|
-
|
|
421
|
+
## 10. Adapter Health
|
|
585
422
|
|
|
586
|
-
|
|
423
|
+
Enum:
|
|
587
424
|
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
425
|
+
```text
|
|
426
|
+
healthy
|
|
427
|
+
suspect
|
|
428
|
+
broken
|
|
592
429
|
```
|
|
593
430
|
|
|
594
|
-
|
|
431
|
+
Meanings:
|
|
595
432
|
|
|
596
|
-
|
|
433
|
+
| Value | Meaning | Agent behavior |
|
|
434
|
+
| --- | --- | --- |
|
|
435
|
+
| `healthy` | Adapter recently verified | Prefer adapter. |
|
|
436
|
+
| `suspect` | Adapter failed or disagreed with browser state | Try fallback first or verify before use. |
|
|
437
|
+
| `broken` | Adapter known unusable | Do not retry until repaired. |
|
|
597
438
|
|
|
598
|
-
|
|
439
|
+
Health updates should be written to local overlay, not global seed, unless reviewed.
|
|
599
440
|
|
|
600
|
-
|
|
441
|
+
Example:
|
|
601
442
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
443
|
+
```yaml
|
|
444
|
+
adapter_health:
|
|
445
|
+
webcmd github issue: suspect
|
|
446
|
+
reason: selector missing on YYYY-MM-DD
|
|
447
|
+
evidence: trace:/path/to/summary.md
|
|
448
|
+
```
|
|
606
449
|
|
|
607
|
-
|
|
608
|
-
- ❌ "sitemap 说有 Post 按钮,找不到就再找"
|
|
609
|
-
- ❌ 把 sitemap workflow 当 fixed plan,遇到 diverge 不回 probe
|
|
610
|
-
- ❌ silent-ignore mismatch 继续按 sitemap 操作
|
|
450
|
+
## 11. Staleness
|
|
611
451
|
|
|
612
|
-
|
|
613
|
-
- ✅ "sitemap 说有 Post 按钮 → `find` 一下 → 不在 → 标 stale + 探测真实页面有没有别的发帖入口"
|
|
452
|
+
Mark stale when:
|
|
614
453
|
|
|
615
|
-
|
|
454
|
+
- current browser state contradicts sitemap
|
|
455
|
+
- adapter output disagrees with visible page
|
|
456
|
+
- endpoint response shape changed
|
|
457
|
+
- selector no longer exists
|
|
458
|
+
- route redirects unexpectedly
|
|
616
459
|
|
|
617
|
-
|
|
460
|
+
Do not delete stale evidence immediately. Mark it stale with reason and next step:
|
|
618
461
|
|
|
619
|
-
|
|
462
|
+
```yaml
|
|
463
|
+
status: stale
|
|
464
|
+
stale_reason: selector `[data-testid=old]` missing
|
|
465
|
+
next: rerun `webcmd browser analyze <url>`
|
|
466
|
+
```
|
|
620
467
|
|
|
621
|
-
|
|
468
|
+
## 12. Security And Privacy
|
|
622
469
|
|
|
623
|
-
|
|
624
|
-
- `last_verified` 不老于 30 天 → 否则 flag `stale_age`
|
|
625
|
-
- `schema_version` 字段存在且 ≤ current
|
|
470
|
+
Never store:
|
|
626
471
|
|
|
627
|
-
|
|
472
|
+
- cookies
|
|
473
|
+
- tokens
|
|
474
|
+
- authorization headers
|
|
475
|
+
- private ids
|
|
476
|
+
- private messages
|
|
477
|
+
- private account data
|
|
478
|
+
- paid content
|
|
479
|
+
- instructions to bypass CAPTCHA, WAF, rate limits, access control, or paid gates
|
|
628
480
|
|
|
629
|
-
|
|
630
|
-
- workflow `Fallback path` 引用的 `action:<id>` → 必须存在于对应 page
|
|
631
|
-
- page `Linked APIs` 的 `endpoint_id` → 必须存在于 `apis.md`
|
|
632
|
-
- `apis.md` 的 `endpoint_id` → 必须存在于同站 `endpoints.json`
|
|
481
|
+
If evidence contains private data, summarize the durable structure instead of storing raw content.
|
|
633
482
|
|
|
634
|
-
|
|
483
|
+
## 13. Promotion Rules
|
|
635
484
|
|
|
636
|
-
|
|
637
|
-
- workflow `State signature.url_pattern` → 同上
|
|
485
|
+
Promote local sitemap entries to `sitemaps/<site>/` only when:
|
|
638
486
|
|
|
639
|
-
|
|
487
|
+
- evidence is present
|
|
488
|
+
- content is general to the site, not account-specific
|
|
489
|
+
- paths are verified
|
|
490
|
+
- stale risks are named
|
|
491
|
+
- no secrets or private data are present
|
|
492
|
+
- file size is within budget or justified
|
|
640
493
|
|
|
641
|
-
|
|
494
|
+
Do not promote drafts as verified.
|
|
642
495
|
|
|
643
|
-
|
|
644
|
-
- 任何文件不能含 secret pattern(cookie value / token string / API key — 用 regex 检测)
|
|
496
|
+
## 14. Validation Checklist
|
|
645
497
|
|
|
646
|
-
|
|
498
|
+
Before considering a sitemap file ready:
|
|
647
499
|
|
|
648
|
-
|
|
500
|
+
- [ ] Front matter has `site`, `kind`, `id`, `status`, `verified_at`, and `source`.
|
|
501
|
+
- [ ] Current browser state was checked.
|
|
502
|
+
- [ ] Actions have `pre`, `do`, `post`, `fail`, `recover`, and `evidence`.
|
|
503
|
+
- [ ] Adapter fallback updates `adapter_health` when relevant.
|
|
504
|
+
- [ ] Selectors are semantic and scoped.
|
|
505
|
+
- [ ] Partial selectors are scoped to partial root.
|
|
506
|
+
- [ ] Uncovered routes are explicitly marked.
|
|
507
|
+
- [ ] No private data or secrets.
|
|
508
|
+
- [ ] Stale entries are marked instead of silently removed.
|
|
509
|
+
- [ ] Drafts are inside the sitemap directory.
|
|
649
510
|
|
|
650
|
-
|
|
651
|
-
- [`../../webcmd-adapter-author/references/api-discovery.md`](../../webcmd-adapter-author/references/api-discovery.md) — `endpoint_id` 怎么发现
|
|
652
|
-
- `~/.webcmd/sites/<site>/endpoints.json` — endpoint 的真实 URL/method/params/response
|
|
511
|
+
## 15. Consumer Rule
|
|
653
512
|
|
|
654
|
-
|
|
513
|
+
The consuming agent must treat sitemap memory as a hint. Current browser state is truth.
|
|
655
514
|
|
|
656
|
-
|
|
515
|
+
When memory and browser disagree:
|
|
657
516
|
|
|
658
|
-
1.
|
|
659
|
-
2.
|
|
660
|
-
3.
|
|
517
|
+
1. Trust browser state.
|
|
518
|
+
2. Mark memory stale in local overlay.
|
|
519
|
+
3. Use fallback path.
|
|
520
|
+
4. Record evidence so the next agent does not repeat the failed path.
|