@jackwener/opencli 1.1.0 → 1.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/.agents/skills/cross-project-adapter-migration/SKILL.md +2 -2
- package/.github/pull_request_template.md +7 -0
- package/.github/workflows/doc-check.yml +36 -0
- package/.github/workflows/docs.yml +7 -42
- package/CHANGELOG.md +23 -0
- package/CLI-EXPLORER.md +9 -8
- package/CONTRIBUTING.md +39 -1
- package/README.md +33 -19
- package/README.zh-CN.md +64 -27
- package/SKILL.md +102 -33
- package/dist/browser/cdp.d.ts +4 -4
- package/dist/browser/cdp.js +45 -17
- package/dist/browser/daemon-client.d.ts +2 -1
- package/dist/browser/dom-helpers.js +38 -7
- package/dist/browser/dom-snapshot.d.ts +86 -0
- package/dist/browser/dom-snapshot.js +729 -0
- package/dist/browser/dom-snapshot.test.d.ts +11 -0
- package/dist/browser/dom-snapshot.test.js +212 -0
- package/dist/browser/index.d.ts +2 -0
- package/dist/browser/index.js +1 -0
- package/dist/browser/page.d.ts +18 -25
- package/dist/browser/page.js +44 -5
- package/dist/build-manifest.d.ts +11 -4
- package/dist/build-manifest.js +79 -34
- package/dist/build-manifest.test.js +58 -2
- package/dist/cli-manifest.json +4273 -1771
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +255 -162
- package/dist/clis/apple-podcasts/commands.test.d.ts +2 -0
- package/dist/clis/apple-podcasts/commands.test.js +76 -0
- package/dist/clis/apple-podcasts/search.js +2 -2
- package/dist/clis/apple-podcasts/top.js +9 -2
- package/dist/clis/arxiv/search.js +1 -1
- package/dist/clis/barchart/greeks.js +1 -1
- package/dist/clis/barchart/options.js +1 -1
- package/dist/clis/barchart/quote.js +1 -1
- package/dist/clis/bilibili/download.js +1 -1
- package/dist/clis/bilibili/dynamic.js +1 -1
- package/dist/clis/bilibili/favorite.js +1 -1
- package/dist/clis/bilibili/feed.js +1 -1
- package/dist/clis/bilibili/following.js +2 -2
- package/dist/clis/bilibili/history.js +1 -1
- package/dist/clis/bilibili/me.js +1 -1
- package/dist/clis/bilibili/ranking.js +1 -1
- package/dist/clis/bilibili/search.js +3 -3
- package/dist/clis/bilibili/subtitle.js +2 -2
- package/dist/clis/bilibili/user-videos.js +2 -2
- package/dist/{bilibili.d.ts → clis/bilibili/utils.d.ts} +1 -1
- package/dist/clis/bloomberg/businessweek.js +17 -0
- package/dist/clis/bloomberg/economics.js +17 -0
- package/dist/clis/bloomberg/feeds.d.ts +1 -0
- package/dist/clis/bloomberg/feeds.js +15 -0
- package/dist/clis/bloomberg/industries.d.ts +1 -0
- package/dist/clis/bloomberg/industries.js +17 -0
- package/dist/clis/bloomberg/main.d.ts +1 -0
- package/dist/clis/bloomberg/main.js +17 -0
- package/dist/clis/bloomberg/markets.d.ts +1 -0
- package/dist/clis/bloomberg/markets.js +17 -0
- package/dist/clis/bloomberg/news.d.ts +1 -0
- package/dist/clis/bloomberg/news.js +105 -0
- package/dist/clis/bloomberg/opinions.d.ts +1 -0
- package/dist/clis/bloomberg/opinions.js +17 -0
- package/dist/clis/bloomberg/politics.d.ts +1 -0
- package/dist/clis/bloomberg/politics.js +17 -0
- package/dist/clis/bloomberg/tech.d.ts +1 -0
- package/dist/clis/bloomberg/tech.js +17 -0
- package/dist/clis/bloomberg/utils.d.ts +34 -0
- package/dist/clis/bloomberg/utils.js +364 -0
- package/dist/clis/bloomberg/utils.test.d.ts +1 -0
- package/dist/clis/bloomberg/utils.test.js +129 -0
- package/dist/clis/boss/batchgreet.js +12 -99
- package/dist/clis/boss/chatlist.js +9 -26
- package/dist/clis/boss/chatmsg.js +11 -42
- package/dist/clis/boss/common.d.ts +92 -0
- package/dist/clis/boss/common.js +223 -0
- package/dist/clis/boss/detail.js +8 -50
- package/dist/clis/boss/exchange.js +13 -79
- package/dist/clis/boss/greet.js +20 -147
- package/dist/clis/boss/invite.js +26 -121
- package/dist/clis/boss/joblist.js +6 -31
- package/dist/clis/boss/mark.js +12 -85
- package/dist/clis/boss/recommend.js +10 -49
- package/dist/clis/boss/resume.js +18 -118
- package/dist/clis/boss/search.js +13 -61
- package/dist/clis/boss/send.js +18 -152
- package/dist/clis/boss/stats.js +20 -71
- package/dist/clis/chaoxing/assignments.js +1 -1
- package/dist/clis/chaoxing/exams.js +1 -1
- package/dist/{chaoxing.d.ts → clis/chaoxing/utils.d.ts} +1 -1
- package/dist/{chaoxing.js → clis/chaoxing/utils.js} +0 -2
- package/dist/clis/chaoxing/utils.test.d.ts +1 -0
- package/dist/{chaoxing.test.js → clis/chaoxing/utils.test.js} +1 -1
- package/dist/clis/chatgpt/read.js +1 -1
- package/dist/clis/chatwise/export.js +1 -1
- package/dist/clis/chatwise/model.js +2 -2
- package/dist/clis/chatwise/screenshot.js +1 -1
- package/dist/clis/codex/export.js +1 -1
- package/dist/clis/codex/model.js +2 -2
- package/dist/clis/codex/screenshot.js +1 -1
- package/dist/clis/coupang/add-to-cart.js +3 -4
- package/dist/clis/coupang/search.js +2 -4
- package/dist/clis/coupang/utils.test.d.ts +1 -0
- package/dist/{coupang.test.js → clis/coupang/utils.test.js} +1 -1
- package/dist/clis/ctrip/search.js +1 -1
- package/dist/clis/cursor/export.js +1 -1
- package/dist/clis/cursor/model.js +2 -2
- package/dist/clis/cursor/screenshot.js +1 -1
- package/dist/clis/devto/tag.yaml +34 -0
- package/dist/clis/devto/top.yaml +29 -0
- package/dist/clis/devto/user.yaml +33 -0
- package/dist/clis/douban/book-hot.d.ts +1 -0
- package/dist/clis/douban/book-hot.js +14 -0
- package/dist/clis/douban/marks.d.ts +1 -0
- package/dist/clis/douban/marks.js +115 -0
- package/dist/clis/douban/movie-hot.d.ts +1 -0
- package/dist/clis/douban/movie-hot.js +14 -0
- package/dist/clis/douban/reviews.d.ts +1 -0
- package/dist/clis/douban/reviews.js +106 -0
- package/dist/clis/douban/search.d.ts +1 -0
- package/dist/clis/douban/search.js +16 -0
- package/dist/clis/douban/shared.d.ts +4 -0
- package/dist/clis/douban/shared.js +155 -0
- package/dist/clis/douban/subject.yaml +76 -0
- package/dist/clis/douban/top250.yaml +70 -0
- package/dist/clis/douban/utils.d.ts +35 -0
- package/dist/clis/douban/utils.js +48 -0
- package/dist/clis/facebook/add-friend.yaml +43 -0
- package/dist/clis/facebook/events.yaml +44 -0
- package/dist/clis/facebook/feed.yaml +63 -0
- package/dist/clis/facebook/friends.yaml +42 -0
- package/dist/clis/facebook/groups.yaml +50 -0
- package/dist/clis/facebook/join-group.yaml +44 -0
- package/dist/clis/facebook/memories.yaml +39 -0
- package/dist/clis/facebook/notifications.yaml +40 -0
- package/dist/clis/facebook/profile.yaml +37 -0
- package/dist/clis/facebook/search.yaml +46 -0
- package/dist/clis/google/news.d.ts +5 -0
- package/dist/clis/google/news.js +58 -0
- package/dist/clis/google/search.d.ts +10 -0
- package/dist/clis/google/search.js +127 -0
- package/dist/clis/google/suggest.d.ts +5 -0
- package/dist/clis/google/suggest.js +34 -0
- package/dist/clis/google/trends.d.ts +5 -0
- package/dist/clis/google/trends.js +38 -0
- package/dist/clis/google/utils.d.ts +9 -0
- package/dist/clis/google/utils.js +23 -0
- package/dist/clis/google/utils.test.d.ts +1 -0
- package/dist/clis/google/utils.test.js +75 -0
- package/dist/clis/grok/ask.d.ts +14 -0
- package/dist/clis/grok/ask.js +257 -65
- package/dist/clis/grok/ask.test.d.ts +1 -0
- package/dist/clis/grok/ask.test.js +36 -0
- package/dist/clis/instagram/comment.yaml +52 -0
- package/dist/clis/instagram/explore.yaml +43 -0
- package/dist/clis/instagram/follow.yaml +41 -0
- package/dist/clis/instagram/followers.yaml +51 -0
- package/dist/clis/instagram/following.yaml +51 -0
- package/dist/clis/instagram/like.yaml +46 -0
- package/dist/clis/instagram/profile.yaml +42 -0
- package/dist/clis/instagram/save.yaml +46 -0
- package/dist/clis/instagram/saved.yaml +40 -0
- package/dist/clis/instagram/search.yaml +43 -0
- package/dist/clis/instagram/unfollow.yaml +38 -0
- package/dist/clis/instagram/unlike.yaml +46 -0
- package/dist/clis/instagram/unsave.yaml +46 -0
- package/dist/clis/instagram/user.yaml +54 -0
- package/dist/clis/jike/comment.js +2 -3
- package/dist/clis/jike/create.js +1 -2
- package/dist/clis/jike/feed.js +0 -1
- package/dist/clis/jike/like.js +1 -2
- package/dist/clis/jike/notifications.js +0 -1
- package/dist/clis/jike/post.yaml +1 -0
- package/dist/clis/jike/repost.js +2 -3
- package/dist/clis/jike/search.js +2 -3
- package/dist/clis/jike/topic.yaml +1 -0
- package/dist/clis/jike/user.yaml +1 -0
- package/dist/clis/jimeng/generate.yaml +1 -0
- package/dist/clis/jimeng/history.yaml +0 -1
- package/dist/clis/linkedin/search.js +7 -7
- package/dist/clis/linux-do/category.yaml +2 -0
- package/dist/clis/linux-do/search.yaml +4 -3
- package/dist/clis/linux-do/topic.yaml +1 -0
- package/dist/clis/lobsters/active.yaml +29 -0
- package/dist/clis/lobsters/hot.yaml +29 -0
- package/dist/clis/lobsters/newest.yaml +29 -0
- package/dist/clis/lobsters/tag.yaml +34 -0
- package/dist/clis/medium/feed.d.ts +1 -0
- package/dist/clis/medium/feed.js +15 -0
- package/dist/clis/medium/search.d.ts +1 -0
- package/dist/clis/medium/search.js +15 -0
- package/dist/clis/medium/shared.d.ts +5 -0
- package/dist/clis/medium/shared.js +78 -0
- package/dist/clis/medium/user.d.ts +1 -0
- package/dist/clis/medium/user.js +15 -0
- package/dist/clis/notion/export.js +1 -1
- package/dist/clis/reddit/comment.js +3 -4
- package/dist/clis/reddit/read.js +4 -5
- package/dist/clis/reddit/save.js +2 -3
- package/dist/clis/reddit/saved.js +0 -1
- package/dist/clis/reddit/search.yaml +1 -0
- package/dist/clis/reddit/subreddit.yaml +1 -0
- package/dist/clis/reddit/subscribe.js +1 -2
- package/dist/clis/reddit/upvote.js +2 -3
- package/dist/clis/reddit/upvoted.js +0 -1
- package/dist/clis/reddit/user-comments.yaml +1 -0
- package/dist/clis/reddit/user-posts.yaml +1 -0
- package/dist/clis/reddit/user.yaml +1 -0
- package/dist/clis/reuters/search.js +1 -1
- package/dist/clis/sinablog/article.d.ts +1 -0
- package/dist/clis/sinablog/article.js +14 -0
- package/dist/clis/sinablog/hot.d.ts +1 -0
- package/dist/clis/sinablog/hot.js +14 -0
- package/dist/clis/sinablog/search.d.ts +1 -0
- package/dist/clis/sinablog/search.js +51 -0
- package/dist/clis/sinablog/shared.d.ts +7 -0
- package/dist/clis/sinablog/shared.js +187 -0
- package/dist/clis/sinablog/user.d.ts +1 -0
- package/dist/clis/sinablog/user.js +15 -0
- package/dist/clis/smzdm/search.js +2 -3
- package/dist/clis/stackoverflow/search.yaml +1 -0
- package/dist/clis/steam/top-sellers.yaml +29 -0
- package/dist/clis/substack/feed.d.ts +1 -0
- package/dist/clis/substack/feed.js +15 -0
- package/dist/clis/substack/publication.d.ts +1 -0
- package/dist/clis/substack/publication.js +15 -0
- package/dist/clis/substack/search.d.ts +1 -0
- package/dist/clis/substack/search.js +77 -0
- package/dist/clis/substack/shared.d.ts +4 -0
- package/dist/clis/substack/shared.js +129 -0
- package/dist/clis/tiktok/comment.yaml +66 -0
- package/dist/clis/tiktok/explore.yaml +39 -0
- package/dist/clis/tiktok/follow.yaml +39 -0
- package/dist/clis/tiktok/following.yaml +46 -0
- package/dist/clis/tiktok/friends.yaml +47 -0
- package/dist/clis/tiktok/like.yaml +38 -0
- package/dist/clis/tiktok/live.yaml +51 -0
- package/dist/clis/tiktok/notifications.yaml +52 -0
- package/dist/clis/tiktok/profile.yaml +45 -0
- package/dist/clis/tiktok/save.yaml +34 -0
- package/dist/clis/tiktok/search.yaml +46 -0
- package/dist/clis/tiktok/unfollow.yaml +44 -0
- package/dist/clis/tiktok/unlike.yaml +38 -0
- package/dist/clis/tiktok/unsave.yaml +36 -0
- package/dist/clis/tiktok/user.yaml +44 -0
- package/dist/clis/twitter/accept.js +2 -2
- package/dist/clis/twitter/article.js +2 -2
- package/dist/clis/twitter/block.d.ts +1 -0
- package/dist/clis/twitter/block.js +88 -0
- package/dist/clis/twitter/delete.js +1 -1
- package/dist/clis/twitter/download.d.ts +1 -1
- package/dist/clis/twitter/download.js +3 -3
- package/dist/clis/twitter/followers.js +1 -1
- package/dist/clis/twitter/following.js +1 -1
- package/dist/clis/twitter/hide-reply.d.ts +1 -0
- package/dist/clis/twitter/hide-reply.js +66 -0
- package/dist/clis/twitter/like.js +1 -1
- package/dist/clis/twitter/post.js +1 -1
- package/dist/clis/twitter/reply-dm.js +1 -1
- package/dist/clis/twitter/reply.js +2 -2
- package/dist/clis/twitter/search.js +1 -1
- package/dist/clis/twitter/thread.js +2 -2
- package/dist/clis/twitter/timeline.d.ts +23 -0
- package/dist/clis/twitter/timeline.js +42 -14
- package/dist/clis/twitter/timeline.test.d.ts +1 -0
- package/dist/clis/twitter/timeline.test.js +102 -0
- package/dist/clis/twitter/trending.d.ts +1 -0
- package/dist/clis/twitter/trending.js +91 -0
- package/dist/clis/twitter/unblock.d.ts +1 -0
- package/dist/clis/twitter/unblock.js +71 -0
- package/dist/clis/v2ex/topic.yaml +1 -0
- package/dist/clis/weibo/hot.js +0 -1
- package/dist/clis/weread/book.js +1 -1
- package/dist/clis/weread/highlights.js +1 -1
- package/dist/clis/weread/notes.js +1 -1
- package/dist/clis/weread/search.js +1 -1
- package/dist/clis/wikipedia/random.d.ts +1 -0
- package/dist/clis/wikipedia/random.js +19 -0
- package/dist/clis/wikipedia/search.js +4 -4
- package/dist/clis/wikipedia/summary.js +4 -9
- package/dist/clis/wikipedia/trending.d.ts +1 -0
- package/dist/clis/wikipedia/trending.js +35 -0
- package/dist/clis/wikipedia/utils.d.ts +28 -0
- package/dist/clis/wikipedia/utils.js +13 -0
- package/dist/clis/xiaohongshu/creator-note-detail.d.ts +15 -0
- package/dist/clis/xiaohongshu/creator-note-detail.js +69 -5
- package/dist/clis/xiaohongshu/creator-note-detail.test.js +82 -33
- package/dist/clis/xiaohongshu/creator-notes.js +35 -5
- package/dist/clis/xiaohongshu/creator-notes.test.js +37 -6
- package/dist/clis/xiaohongshu/creator-profile.js +0 -1
- package/dist/clis/xiaohongshu/creator-stats.js +0 -1
- package/dist/clis/xiaohongshu/download.js +2 -3
- package/dist/clis/xiaohongshu/feed.yaml +0 -1
- package/dist/clis/xiaohongshu/notifications.yaml +0 -1
- package/dist/clis/xiaohongshu/search.js +2 -2
- package/dist/clis/xiaohongshu/user.js +1 -2
- package/dist/clis/xueqiu/earnings-date.yaml +69 -0
- package/dist/clis/xueqiu/search.yaml +2 -1
- package/dist/clis/xueqiu/stock.yaml +2 -0
- package/dist/clis/yahoo-finance/quote.js +1 -2
- package/dist/clis/youtube/search.js +1 -1
- package/dist/clis/youtube/transcript.js +1 -1
- package/dist/clis/youtube/video.js +1 -1
- package/dist/clis/zhihu/download.js +1 -2
- package/dist/clis/zhihu/question.js +1 -1
- package/dist/clis/zhihu/search.yaml +4 -3
- package/dist/commanderAdapter.d.ts +21 -0
- package/dist/commanderAdapter.js +117 -0
- package/dist/{engine.d.ts → discovery.d.ts} +6 -4
- package/dist/{engine.js → discovery.js} +93 -104
- package/dist/doctor.js +3 -1
- package/dist/doctor.test.js +46 -2
- package/dist/download/index.d.ts +2 -6
- package/dist/download/index.js +19 -46
- package/dist/engine.test.d.ts +0 -3
- package/dist/engine.test.js +80 -11
- package/dist/execution.d.ts +24 -0
- package/dist/execution.js +153 -0
- package/dist/explore.d.ts +76 -3
- package/dist/explore.js +132 -111
- package/dist/external-clis.yaml +48 -0
- package/dist/external.d.ts +7 -2
- package/dist/external.js +11 -14
- package/dist/generate.d.ts +41 -2
- package/dist/generate.js +5 -4
- package/dist/main.js +2 -1
- package/dist/pipeline/executor.d.ts +2 -2
- package/dist/pipeline/executor.js +2 -2
- package/dist/pipeline/executor.test.js +33 -6
- package/dist/pipeline/registry.d.ts +1 -1
- package/dist/pipeline/steps/browser.d.ts +7 -7
- package/dist/pipeline/steps/browser.js +21 -7
- package/dist/pipeline/steps/fetch.d.ts +1 -1
- package/dist/pipeline/steps/fetch.js +11 -7
- package/dist/pipeline/steps/transform.d.ts +6 -5
- package/dist/pipeline/steps/transform.js +30 -9
- package/dist/pipeline/template.d.ts +6 -6
- package/dist/pipeline/template.js +43 -5
- package/dist/pipeline/template.test.js +18 -0
- package/dist/pipeline/transform.test.js +11 -0
- package/dist/plugin.d.ts +31 -0
- package/dist/plugin.js +216 -0
- package/dist/plugin.test.d.ts +4 -0
- package/dist/plugin.test.js +76 -0
- package/dist/registry-api.d.ts +11 -0
- package/dist/registry-api.js +9 -0
- package/dist/registry.d.ts +13 -0
- package/dist/registry.js +8 -1
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.js +8 -0
- package/dist/serialization.d.ts +34 -0
- package/dist/serialization.js +63 -0
- package/dist/synthesize.d.ts +94 -4
- package/dist/synthesize.js +5 -4
- package/dist/types.d.ts +43 -27
- package/dist/validate.js +8 -2
- package/docs/.vitepress/config.mts +20 -7
- package/docs/adapters/browser/arxiv.md +27 -0
- package/docs/adapters/browser/barchart.md +33 -0
- package/docs/adapters/browser/bilibili.md +9 -0
- package/docs/adapters/browser/bloomberg.md +70 -0
- package/docs/adapters/browser/chaoxing.md +39 -0
- package/docs/adapters/browser/devto.md +35 -0
- package/docs/adapters/browser/douban.md +38 -0
- package/docs/adapters/browser/facebook.md +36 -0
- package/docs/adapters/browser/google.md +62 -0
- package/docs/adapters/browser/grok.md +53 -0
- package/docs/adapters/browser/hf.md +42 -0
- package/docs/adapters/browser/instagram.md +46 -0
- package/docs/adapters/browser/jike.md +45 -0
- package/docs/adapters/browser/jimeng.md +39 -0
- package/docs/adapters/browser/linux-do.md +45 -0
- package/docs/adapters/browser/lobsters.md +32 -0
- package/docs/adapters/browser/medium.md +32 -0
- package/docs/adapters/browser/reddit.md +9 -0
- package/docs/adapters/browser/sinablog.md +36 -0
- package/docs/adapters/browser/sinafinance.md +35 -0
- package/docs/adapters/browser/stackoverflow.md +35 -0
- package/docs/adapters/browser/steam.md +26 -0
- package/docs/adapters/browser/substack.md +38 -0
- package/docs/adapters/browser/tiktok.md +68 -0
- package/docs/adapters/browser/twitter.md +3 -0
- package/docs/adapters/browser/weread.md +48 -0
- package/docs/adapters/browser/wikipedia.md +39 -0
- package/docs/adapters/browser/xiaohongshu.md +5 -1
- package/docs/adapters/browser/xueqiu.md +10 -0
- package/docs/adapters/browser/yahoo-finance.md +6 -5
- package/docs/adapters/desktop/antigravity.md +6 -0
- package/docs/adapters/desktop/chatgpt.md +5 -4
- package/docs/adapters/desktop/codex.md +5 -1
- package/docs/adapters/desktop/cursor.md +4 -0
- package/docs/adapters/desktop/discord.md +7 -7
- package/docs/adapters/index.md +14 -4
- package/docs/advanced/download.md +4 -4
- package/docs/developer/architecture.md +17 -4
- package/docs/guide/getting-started.md +1 -0
- package/docs/guide/plugins.md +153 -0
- package/docs/zh/guide/plugins.md +107 -0
- package/extension/src/background.ts +18 -11
- package/package.json +10 -5
- package/scripts/check-doc-coverage.sh +69 -0
- package/scripts/clean-dist.cjs +13 -0
- package/scripts/copy-yaml.cjs +7 -0
- package/src/browser/cdp.ts +77 -32
- package/src/browser/daemon-client.ts +2 -1
- package/src/browser/dom-helpers.ts +38 -7
- package/src/browser/dom-snapshot.test.ts +249 -0
- package/src/browser/dom-snapshot.ts +770 -0
- package/src/browser/index.ts +2 -0
- package/src/browser/page.ts +57 -20
- package/src/build-manifest.test.ts +70 -2
- package/src/build-manifest.ts +114 -40
- package/src/cli.ts +287 -139
- package/src/clis/apple-podcasts/commands.test.ts +95 -0
- package/src/clis/apple-podcasts/search.ts +2 -2
- package/src/clis/apple-podcasts/top.ts +12 -2
- package/src/clis/arxiv/search.ts +1 -1
- package/src/clis/barchart/greeks.ts +1 -1
- package/src/clis/barchart/options.ts +1 -1
- package/src/clis/barchart/quote.ts +1 -1
- package/src/clis/bilibili/download.ts +1 -1
- package/src/clis/bilibili/dynamic.ts +1 -1
- package/src/clis/bilibili/favorite.ts +1 -1
- package/src/clis/bilibili/feed.ts +1 -1
- package/src/clis/bilibili/following.ts +2 -2
- package/src/clis/bilibili/history.ts +1 -1
- package/src/clis/bilibili/me.ts +1 -1
- package/src/clis/bilibili/ranking.ts +1 -1
- package/src/clis/bilibili/search.ts +3 -3
- package/src/clis/bilibili/subtitle.ts +2 -2
- package/src/clis/bilibili/user-videos.ts +2 -2
- package/src/{bilibili.ts → clis/bilibili/utils.ts} +1 -1
- package/src/clis/bloomberg/businessweek.ts +18 -0
- package/src/clis/bloomberg/economics.ts +18 -0
- package/src/clis/bloomberg/feeds.ts +16 -0
- package/src/clis/bloomberg/industries.ts +18 -0
- package/src/clis/bloomberg/main.ts +18 -0
- package/src/clis/bloomberg/markets.ts +18 -0
- package/src/clis/bloomberg/news.ts +136 -0
- package/src/clis/bloomberg/opinions.ts +18 -0
- package/src/clis/bloomberg/politics.ts +18 -0
- package/src/clis/bloomberg/tech.ts +18 -0
- package/src/clis/bloomberg/utils.test.ts +135 -0
- package/src/clis/bloomberg/utils.ts +429 -0
- package/src/clis/boss/batchgreet.ts +16 -108
- package/src/clis/boss/chatlist.ts +13 -27
- package/src/clis/boss/chatmsg.ts +16 -40
- package/src/clis/boss/common.ts +287 -0
- package/src/clis/boss/detail.ts +9 -55
- package/src/clis/boss/exchange.ts +15 -89
- package/src/clis/boss/greet.ts +25 -162
- package/src/clis/boss/invite.ts +36 -133
- package/src/clis/boss/joblist.ts +7 -36
- package/src/clis/boss/mark.ts +13 -94
- package/src/clis/boss/recommend.ts +12 -57
- package/src/clis/boss/resume.ts +19 -124
- package/src/clis/boss/search.ts +14 -67
- package/src/clis/boss/send.ts +22 -162
- package/src/clis/boss/stats.ts +21 -76
- package/src/clis/chaoxing/assignments.ts +1 -1
- package/src/clis/chaoxing/exams.ts +1 -1
- package/src/{chaoxing.test.ts → clis/chaoxing/utils.test.ts} +1 -1
- package/src/{chaoxing.ts → clis/chaoxing/utils.ts} +1 -3
- package/src/clis/chatgpt/read.ts +1 -1
- package/src/clis/chatwise/export.ts +1 -1
- package/src/clis/chatwise/model.ts +2 -2
- package/src/clis/chatwise/screenshot.ts +1 -1
- package/src/clis/codex/export.ts +1 -1
- package/src/clis/codex/model.ts +2 -2
- package/src/clis/codex/screenshot.ts +1 -1
- package/src/clis/coupang/add-to-cart.ts +3 -4
- package/src/clis/coupang/search.ts +2 -4
- package/src/{coupang.test.ts → clis/coupang/utils.test.ts} +1 -1
- package/src/clis/ctrip/search.ts +1 -1
- package/src/clis/cursor/export.ts +1 -1
- package/src/clis/cursor/model.ts +2 -2
- package/src/clis/cursor/screenshot.ts +1 -1
- package/src/clis/devto/tag.yaml +34 -0
- package/src/clis/devto/top.yaml +29 -0
- package/src/clis/devto/user.yaml +33 -0
- package/src/clis/douban/book-hot.ts +15 -0
- package/src/clis/douban/marks.ts +135 -0
- package/src/clis/douban/movie-hot.ts +15 -0
- package/src/clis/douban/reviews.ts +127 -0
- package/src/clis/douban/search.ts +17 -0
- package/src/clis/douban/shared.ts +165 -0
- package/src/clis/douban/subject.yaml +76 -0
- package/src/clis/douban/top250.yaml +70 -0
- package/src/clis/douban/utils.ts +81 -0
- package/src/clis/facebook/add-friend.yaml +43 -0
- package/src/clis/facebook/events.yaml +44 -0
- package/src/clis/facebook/feed.yaml +63 -0
- package/src/clis/facebook/friends.yaml +42 -0
- package/src/clis/facebook/groups.yaml +50 -0
- package/src/clis/facebook/join-group.yaml +44 -0
- package/src/clis/facebook/memories.yaml +39 -0
- package/src/clis/facebook/notifications.yaml +40 -0
- package/src/clis/facebook/profile.yaml +37 -0
- package/src/clis/facebook/search.yaml +46 -0
- package/src/clis/google/news.ts +66 -0
- package/src/clis/google/search.ts +133 -0
- package/src/clis/google/suggest.ts +40 -0
- package/src/clis/google/trends.ts +44 -0
- package/src/clis/google/utils.test.ts +82 -0
- package/src/clis/google/utils.ts +24 -0
- package/src/clis/grok/ask.test.ts +53 -0
- package/src/clis/grok/ask.ts +300 -69
- package/src/clis/instagram/comment.yaml +52 -0
- package/src/clis/instagram/explore.yaml +43 -0
- package/src/clis/instagram/follow.yaml +41 -0
- package/src/clis/instagram/followers.yaml +51 -0
- package/src/clis/instagram/following.yaml +51 -0
- package/src/clis/instagram/like.yaml +46 -0
- package/src/clis/instagram/profile.yaml +42 -0
- package/src/clis/instagram/save.yaml +46 -0
- package/src/clis/instagram/saved.yaml +40 -0
- package/src/clis/instagram/search.yaml +43 -0
- package/src/clis/instagram/unfollow.yaml +38 -0
- package/src/clis/instagram/unlike.yaml +46 -0
- package/src/clis/instagram/unsave.yaml +46 -0
- package/src/clis/instagram/user.yaml +54 -0
- package/src/clis/jike/comment.ts +2 -3
- package/src/clis/jike/create.ts +1 -2
- package/src/clis/jike/feed.ts +0 -1
- package/src/clis/jike/like.ts +1 -2
- package/src/clis/jike/notifications.ts +0 -1
- package/src/clis/jike/post.yaml +1 -0
- package/src/clis/jike/repost.ts +2 -3
- package/src/clis/jike/search.ts +2 -3
- package/src/clis/jike/topic.yaml +1 -0
- package/src/clis/jike/user.yaml +1 -0
- package/src/clis/jimeng/generate.yaml +1 -0
- package/src/clis/jimeng/history.yaml +0 -1
- package/src/clis/linkedin/search.ts +7 -7
- package/src/clis/linux-do/category.yaml +2 -0
- package/src/clis/linux-do/search.yaml +4 -3
- package/src/clis/linux-do/topic.yaml +1 -0
- package/src/clis/lobsters/active.yaml +29 -0
- package/src/clis/lobsters/hot.yaml +29 -0
- package/src/clis/lobsters/newest.yaml +29 -0
- package/src/clis/lobsters/tag.yaml +34 -0
- package/src/clis/medium/feed.ts +16 -0
- package/src/clis/medium/search.ts +16 -0
- package/src/clis/medium/shared.ts +83 -0
- package/src/clis/medium/user.ts +16 -0
- package/src/clis/notion/export.ts +1 -1
- package/src/clis/reddit/comment.ts +3 -4
- package/src/clis/reddit/read.ts +4 -5
- package/src/clis/reddit/save.ts +2 -3
- package/src/clis/reddit/saved.ts +0 -1
- package/src/clis/reddit/search.yaml +1 -0
- package/src/clis/reddit/subreddit.yaml +1 -0
- package/src/clis/reddit/subscribe.ts +1 -2
- package/src/clis/reddit/upvote.ts +2 -3
- package/src/clis/reddit/upvoted.ts +0 -1
- package/src/clis/reddit/user-comments.yaml +1 -0
- package/src/clis/reddit/user-posts.yaml +1 -0
- package/src/clis/reddit/user.yaml +1 -0
- package/src/clis/reuters/search.ts +1 -1
- package/src/clis/sinablog/article.ts +15 -0
- package/src/clis/sinablog/hot.ts +15 -0
- package/src/clis/sinablog/search.ts +56 -0
- package/src/clis/sinablog/shared.ts +198 -0
- package/src/clis/sinablog/user.ts +16 -0
- package/src/clis/smzdm/search.ts +2 -3
- package/src/clis/stackoverflow/search.yaml +1 -0
- package/src/clis/steam/top-sellers.yaml +29 -0
- package/src/clis/substack/feed.ts +16 -0
- package/src/clis/substack/publication.ts +16 -0
- package/src/clis/substack/search.ts +91 -0
- package/src/clis/substack/shared.ts +132 -0
- package/src/clis/tiktok/comment.yaml +66 -0
- package/src/clis/tiktok/explore.yaml +39 -0
- package/src/clis/tiktok/follow.yaml +39 -0
- package/src/clis/tiktok/following.yaml +46 -0
- package/src/clis/tiktok/friends.yaml +47 -0
- package/src/clis/tiktok/like.yaml +38 -0
- package/src/clis/tiktok/live.yaml +51 -0
- package/src/clis/tiktok/notifications.yaml +52 -0
- package/src/clis/tiktok/profile.yaml +45 -0
- package/src/clis/tiktok/save.yaml +34 -0
- package/src/clis/tiktok/search.yaml +46 -0
- package/src/clis/tiktok/unfollow.yaml +44 -0
- package/src/clis/tiktok/unlike.yaml +38 -0
- package/src/clis/tiktok/unsave.yaml +36 -0
- package/src/clis/tiktok/user.yaml +44 -0
- package/src/clis/twitter/accept.ts +2 -2
- package/src/clis/twitter/article.ts +2 -2
- package/src/clis/twitter/block.ts +92 -0
- package/src/clis/twitter/delete.ts +1 -1
- package/src/clis/twitter/download.ts +3 -3
- package/src/clis/twitter/followers.ts +1 -1
- package/src/clis/twitter/following.ts +1 -1
- package/src/clis/twitter/hide-reply.ts +70 -0
- package/src/clis/twitter/like.ts +1 -1
- package/src/clis/twitter/post.ts +1 -1
- package/src/clis/twitter/reply-dm.ts +1 -1
- package/src/clis/twitter/reply.ts +2 -2
- package/src/clis/twitter/search.ts +1 -1
- package/src/clis/twitter/thread.ts +2 -2
- package/src/clis/twitter/timeline.test.ts +109 -0
- package/src/clis/twitter/timeline.ts +59 -19
- package/src/clis/twitter/trending.ts +113 -0
- package/src/clis/twitter/unblock.ts +75 -0
- package/src/clis/v2ex/topic.yaml +1 -0
- package/src/clis/weibo/hot.ts +0 -1
- package/src/clis/weread/book.ts +1 -1
- package/src/clis/weread/highlights.ts +1 -1
- package/src/clis/weread/notes.ts +1 -1
- package/src/clis/weread/search.ts +1 -1
- package/src/clis/wikipedia/random.ts +19 -0
- package/src/clis/wikipedia/search.ts +11 -5
- package/src/clis/wikipedia/summary.ts +4 -9
- package/src/clis/wikipedia/trending.ts +41 -0
- package/src/clis/wikipedia/utils.ts +31 -0
- package/src/clis/xiaohongshu/creator-note-detail.test.ts +84 -33
- package/src/clis/xiaohongshu/creator-note-detail.ts +89 -5
- package/src/clis/xiaohongshu/creator-notes.test.ts +41 -6
- package/src/clis/xiaohongshu/creator-notes.ts +44 -5
- package/src/clis/xiaohongshu/creator-profile.ts +0 -1
- package/src/clis/xiaohongshu/creator-stats.ts +0 -1
- package/src/clis/xiaohongshu/download.ts +2 -3
- package/src/clis/xiaohongshu/feed.yaml +0 -1
- package/src/clis/xiaohongshu/notifications.yaml +0 -1
- package/src/clis/xiaohongshu/search.ts +2 -2
- package/src/clis/xiaohongshu/user.ts +1 -2
- package/src/clis/xueqiu/earnings-date.yaml +69 -0
- package/src/clis/xueqiu/search.yaml +2 -1
- package/src/clis/xueqiu/stock.yaml +2 -0
- package/src/clis/yahoo-finance/quote.ts +1 -2
- package/src/clis/youtube/search.ts +1 -1
- package/src/clis/youtube/transcript.ts +1 -1
- package/src/clis/youtube/video.ts +1 -1
- package/src/clis/zhihu/download.ts +1 -2
- package/src/clis/zhihu/question.ts +1 -1
- package/src/clis/zhihu/search.yaml +4 -3
- package/src/commanderAdapter.ts +120 -0
- package/src/discovery.ts +277 -0
- package/src/doctor.test.ts +59 -2
- package/src/doctor.ts +4 -2
- package/src/download/index.ts +21 -54
- package/src/engine.test.ts +85 -11
- package/src/execution.ts +164 -0
- package/src/explore.ts +211 -117
- package/src/external-clis.yaml +9 -0
- package/src/external.ts +15 -12
- package/src/generate.ts +58 -9
- package/src/main.ts +2 -1
- package/src/pipeline/executor.test.ts +35 -6
- package/src/pipeline/executor.ts +11 -7
- package/src/pipeline/registry.ts +3 -3
- package/src/pipeline/steps/browser.ts +29 -15
- package/src/pipeline/steps/fetch.ts +18 -13
- package/src/pipeline/steps/transform.ts +40 -15
- package/src/pipeline/template.test.ts +18 -0
- package/src/pipeline/template.ts +86 -13
- package/src/pipeline/transform.test.ts +15 -2
- package/src/plugin.test.ts +86 -0
- package/src/plugin.ts +254 -0
- package/src/registry-api.ts +12 -0
- package/src/registry.ts +24 -1
- package/src/runtime.ts +9 -0
- package/src/serialization.ts +79 -0
- package/src/synthesize.ts +102 -21
- package/src/types.ts +45 -13
- package/src/validate.ts +19 -4
- package/tests/e2e/browser-public.test.ts +36 -0
- package/tests/e2e/public-commands.test.ts +119 -1
- package/dist/clis/feishu/new.d.ts +0 -1
- package/dist/clis/feishu/new.js +0 -27
- package/dist/clis/feishu/read.d.ts +0 -1
- package/dist/clis/feishu/read.js +0 -40
- package/dist/clis/feishu/search.d.ts +0 -1
- package/dist/clis/feishu/search.js +0 -30
- package/dist/clis/feishu/send.d.ts +0 -1
- package/dist/clis/feishu/send.js +0 -39
- package/dist/clis/feishu/status.d.ts +0 -1
- package/dist/clis/feishu/status.js +0 -28
- package/dist/clis/neteasemusic/like.d.ts +0 -1
- package/dist/clis/neteasemusic/like.js +0 -25
- package/dist/clis/neteasemusic/lyrics.d.ts +0 -1
- package/dist/clis/neteasemusic/lyrics.js +0 -47
- package/dist/clis/neteasemusic/next.d.ts +0 -1
- package/dist/clis/neteasemusic/next.js +0 -26
- package/dist/clis/neteasemusic/play.d.ts +0 -1
- package/dist/clis/neteasemusic/play.js +0 -26
- package/dist/clis/neteasemusic/playing.d.ts +0 -1
- package/dist/clis/neteasemusic/playing.js +0 -59
- package/dist/clis/neteasemusic/playlist.d.ts +0 -1
- package/dist/clis/neteasemusic/playlist.js +0 -46
- package/dist/clis/neteasemusic/prev.d.ts +0 -1
- package/dist/clis/neteasemusic/prev.js +0 -25
- package/dist/clis/neteasemusic/search.d.ts +0 -1
- package/dist/clis/neteasemusic/search.js +0 -52
- package/dist/clis/neteasemusic/status.d.ts +0 -1
- package/dist/clis/neteasemusic/status.js +0 -16
- package/dist/clis/neteasemusic/volume.d.ts +0 -1
- package/dist/clis/neteasemusic/volume.js +0 -54
- package/dist/clis/twitter/trending.yaml +0 -46
- package/dist/clis/wechat/chats.d.ts +0 -1
- package/dist/clis/wechat/chats.js +0 -28
- package/dist/clis/wechat/contacts.d.ts +0 -1
- package/dist/clis/wechat/contacts.js +0 -28
- package/dist/clis/wechat/read.d.ts +0 -1
- package/dist/clis/wechat/read.js +0 -58
- package/dist/clis/wechat/search.d.ts +0 -1
- package/dist/clis/wechat/search.js +0 -31
- package/dist/clis/wechat/send.d.ts +0 -1
- package/dist/clis/wechat/send.js +0 -42
- package/dist/clis/wechat/status.d.ts +0 -1
- package/dist/clis/wechat/status.js +0 -29
- package/dist/pipeline.d.ts +0 -7
- package/dist/pipeline.js +0 -7
- package/docs/adapters/browser/github.md +0 -26
- package/docs/adapters/desktop/feishu.md +0 -20
- package/docs/adapters/desktop/neteasemusic.md +0 -31
- package/docs/adapters/desktop/wechat.md +0 -28
- package/docs/public/CNAME +0 -1
- package/src/clis/antigravity/README.md +0 -5
- package/src/clis/antigravity/README.zh-CN.md +0 -51
- package/src/clis/chaoxing/README.md +0 -14
- package/src/clis/chaoxing/README.zh-CN.md +0 -35
- package/src/clis/chatgpt/README.md +0 -5
- package/src/clis/chatgpt/README.zh-CN.md +0 -44
- package/src/clis/chatwise/README.md +0 -5
- package/src/clis/chatwise/README.zh-CN.md +0 -38
- package/src/clis/codex/README.md +0 -5
- package/src/clis/codex/README.zh-CN.md +0 -33
- package/src/clis/cursor/README.md +0 -5
- package/src/clis/cursor/README.zh-CN.md +0 -33
- package/src/clis/discord-app/README.md +0 -5
- package/src/clis/discord-app/README.zh-CN.md +0 -28
- package/src/clis/feishu/README.md +0 -5
- package/src/clis/feishu/README.zh-CN.md +0 -20
- package/src/clis/feishu/new.ts +0 -32
- package/src/clis/feishu/read.ts +0 -48
- package/src/clis/feishu/search.ts +0 -35
- package/src/clis/feishu/send.ts +0 -46
- package/src/clis/feishu/status.ts +0 -34
- package/src/clis/neteasemusic/README.md +0 -5
- package/src/clis/neteasemusic/README.zh-CN.md +0 -31
- package/src/clis/neteasemusic/like.ts +0 -28
- package/src/clis/neteasemusic/lyrics.ts +0 -53
- package/src/clis/neteasemusic/next.ts +0 -30
- package/src/clis/neteasemusic/play.ts +0 -30
- package/src/clis/neteasemusic/playing.ts +0 -62
- package/src/clis/neteasemusic/playlist.ts +0 -51
- package/src/clis/neteasemusic/prev.ts +0 -29
- package/src/clis/neteasemusic/search.ts +0 -58
- package/src/clis/neteasemusic/status.ts +0 -18
- package/src/clis/neteasemusic/volume.ts +0 -61
- package/src/clis/notion/README.md +0 -5
- package/src/clis/notion/README.zh-CN.md +0 -29
- package/src/clis/twitter/trending.yaml +0 -46
- package/src/clis/wechat/README.md +0 -5
- package/src/clis/wechat/README.zh-CN.md +0 -28
- package/src/clis/wechat/chats.ts +0 -33
- package/src/clis/wechat/contacts.ts +0 -33
- package/src/clis/wechat/read.ts +0 -72
- package/src/clis/wechat/search.ts +0 -36
- package/src/clis/wechat/send.ts +0 -49
- package/src/clis/wechat/status.ts +0 -35
- package/src/engine.ts +0 -274
- package/src/pipeline.ts +0 -8
- /package/dist/{bilibili.js → clis/bilibili/utils.js} +0 -0
- /package/dist/{chaoxing.test.d.ts → clis/bloomberg/businessweek.d.ts} +0 -0
- /package/dist/{coupang.test.d.ts → clis/bloomberg/economics.d.ts} +0 -0
- /package/dist/{coupang.d.ts → clis/coupang/utils.d.ts} +0 -0
- /package/dist/{coupang.js → clis/coupang/utils.js} +0 -0
- /package/src/{coupang.ts → clis/coupang/utils.ts} +0 -0
package/dist/types.d.ts
CHANGED
|
@@ -4,35 +4,56 @@
|
|
|
4
4
|
* All pipeline steps and CLI adapters should use this interface
|
|
5
5
|
* instead of `any` for browser interactions.
|
|
6
6
|
*/
|
|
7
|
+
export interface BrowserCookie {
|
|
8
|
+
name: string;
|
|
9
|
+
value: string;
|
|
10
|
+
domain: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
secure?: boolean;
|
|
13
|
+
httpOnly?: boolean;
|
|
14
|
+
expirationDate?: number;
|
|
15
|
+
}
|
|
16
|
+
export interface SnapshotOptions {
|
|
17
|
+
interactive?: boolean;
|
|
18
|
+
compact?: boolean;
|
|
19
|
+
maxDepth?: number;
|
|
20
|
+
raw?: boolean;
|
|
21
|
+
viewportExpand?: number;
|
|
22
|
+
maxTextLength?: number;
|
|
23
|
+
}
|
|
24
|
+
export interface WaitOptions {
|
|
25
|
+
text?: string;
|
|
26
|
+
time?: number;
|
|
27
|
+
timeout?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface ScreenshotOptions {
|
|
30
|
+
format?: 'png' | 'jpeg';
|
|
31
|
+
quality?: number;
|
|
32
|
+
fullPage?: boolean;
|
|
33
|
+
path?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface BrowserSessionInfo {
|
|
36
|
+
workspace?: string;
|
|
37
|
+
connected?: boolean;
|
|
38
|
+
[key: string]: unknown;
|
|
39
|
+
}
|
|
7
40
|
export interface IPage {
|
|
8
|
-
goto(url: string
|
|
41
|
+
goto(url: string, options?: {
|
|
42
|
+
waitUntil?: 'load' | 'none';
|
|
43
|
+
settleMs?: number;
|
|
44
|
+
}): Promise<void>;
|
|
9
45
|
evaluate(js: string): Promise<any>;
|
|
10
46
|
getCookies(opts?: {
|
|
11
47
|
domain?: string;
|
|
12
48
|
url?: string;
|
|
13
|
-
}): Promise<
|
|
14
|
-
|
|
15
|
-
value: string;
|
|
16
|
-
domain: string;
|
|
17
|
-
path?: string;
|
|
18
|
-
secure?: boolean;
|
|
19
|
-
httpOnly?: boolean;
|
|
20
|
-
expirationDate?: number;
|
|
21
|
-
}>>;
|
|
22
|
-
snapshot(opts?: {
|
|
23
|
-
interactive?: boolean;
|
|
24
|
-
compact?: boolean;
|
|
25
|
-
maxDepth?: number;
|
|
26
|
-
raw?: boolean;
|
|
27
|
-
}): Promise<any>;
|
|
49
|
+
}): Promise<BrowserCookie[]>;
|
|
50
|
+
snapshot(opts?: SnapshotOptions): Promise<any>;
|
|
28
51
|
click(ref: string): Promise<void>;
|
|
29
52
|
typeText(ref: string, text: string): Promise<void>;
|
|
30
53
|
pressKey(key: string): Promise<void>;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
timeout?: number;
|
|
35
|
-
}): Promise<void>;
|
|
54
|
+
scrollTo(ref: string): Promise<any>;
|
|
55
|
+
getFormState(): Promise<any>;
|
|
56
|
+
wait(options: number | WaitOptions): Promise<void>;
|
|
36
57
|
tabs(): Promise<any>;
|
|
37
58
|
closeTab(index?: number): Promise<void>;
|
|
38
59
|
newTab(): Promise<void>;
|
|
@@ -46,10 +67,5 @@ export interface IPage {
|
|
|
46
67
|
}): Promise<void>;
|
|
47
68
|
installInterceptor(pattern: string): Promise<void>;
|
|
48
69
|
getInterceptedRequests(): Promise<any[]>;
|
|
49
|
-
screenshot(options?:
|
|
50
|
-
format?: 'png' | 'jpeg';
|
|
51
|
-
quality?: number;
|
|
52
|
-
fullPage?: boolean;
|
|
53
|
-
path?: string;
|
|
54
|
-
}): Promise<string>;
|
|
70
|
+
screenshot(options?: ScreenshotOptions): Promise<string>;
|
|
55
71
|
}
|
package/dist/validate.js
CHANGED
|
@@ -9,6 +9,12 @@ const KNOWN_STEP_NAMES = new Set([
|
|
|
9
9
|
'select', 'map', 'filter', 'sort', 'limit',
|
|
10
10
|
'intercept', 'tap',
|
|
11
11
|
]);
|
|
12
|
+
function isRecord(value) {
|
|
13
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
14
|
+
}
|
|
15
|
+
function getErrorMessage(error) {
|
|
16
|
+
return error instanceof Error ? error.message : String(error);
|
|
17
|
+
}
|
|
12
18
|
export function validateClisWithTarget(dirs, target) {
|
|
13
19
|
const results = [];
|
|
14
20
|
let errors = 0;
|
|
@@ -45,7 +51,7 @@ function validateYamlFile(filePath) {
|
|
|
45
51
|
try {
|
|
46
52
|
const raw = fs.readFileSync(filePath, 'utf-8');
|
|
47
53
|
const def = yaml.load(raw);
|
|
48
|
-
if (!def
|
|
54
|
+
if (!isRecord(def)) {
|
|
49
55
|
errors.push('Not a valid YAML object');
|
|
50
56
|
return { path: filePath, errors, warnings };
|
|
51
57
|
}
|
|
@@ -75,7 +81,7 @@ function validateYamlFile(filePath) {
|
|
|
75
81
|
}
|
|
76
82
|
}
|
|
77
83
|
catch (e) {
|
|
78
|
-
errors.push(`YAML parse error: ${e
|
|
84
|
+
errors.push(`YAML parse error: ${getErrorMessage(e)}`);
|
|
79
85
|
}
|
|
80
86
|
return { path: filePath, errors, warnings };
|
|
81
87
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineConfig } from 'vitepress'
|
|
2
2
|
|
|
3
3
|
export default defineConfig({
|
|
4
|
-
base: '/',
|
|
4
|
+
base: '/docs/',
|
|
5
5
|
title: 'OpenCLI',
|
|
6
6
|
description: 'Make any website or Electron App your CLI — AI-powered, account-safe, self-healing.',
|
|
7
7
|
|
|
@@ -31,6 +31,7 @@ export default defineConfig({
|
|
|
31
31
|
{ text: 'Installation', link: '/guide/installation' },
|
|
32
32
|
{ text: 'Browser Bridge', link: '/guide/browser-bridge' },
|
|
33
33
|
{ text: 'Troubleshooting', link: '/guide/troubleshooting' },
|
|
34
|
+
{ text: 'Plugins', link: '/guide/plugins' },
|
|
34
35
|
],
|
|
35
36
|
},
|
|
36
37
|
],
|
|
@@ -54,12 +55,22 @@ export default defineConfig({
|
|
|
54
55
|
{ text: 'YouTube', link: '/adapters/browser/youtube' },
|
|
55
56
|
{ text: 'Xueqiu', link: '/adapters/browser/xueqiu' },
|
|
56
57
|
{ text: 'V2EX', link: '/adapters/browser/v2ex' },
|
|
58
|
+
{ text: 'Bloomberg', link: '/adapters/browser/bloomberg' },
|
|
57
59
|
{ text: 'LinkedIn', link: '/adapters/browser/linkedin' },
|
|
58
60
|
{ text: 'Coupang', link: '/adapters/browser/coupang' },
|
|
59
61
|
{ text: 'BOSS Zhipin', link: '/adapters/browser/boss' },
|
|
60
62
|
{ text: 'Ctrip', link: '/adapters/browser/ctrip' },
|
|
61
63
|
{ text: 'Reuters', link: '/adapters/browser/reuters' },
|
|
62
64
|
{ text: 'SMZDM', link: '/adapters/browser/smzdm' },
|
|
65
|
+
{ text: 'Jike', link: '/adapters/browser/jike' },
|
|
66
|
+
{ text: 'Jimeng', link: '/adapters/browser/jimeng' },
|
|
67
|
+
{ text: 'LINUX DO', link: '/adapters/browser/linux-do' },
|
|
68
|
+
{ text: 'Chaoxing', link: '/adapters/browser/chaoxing' },
|
|
69
|
+
{ text: 'Grok', link: '/adapters/browser/grok' },
|
|
70
|
+
{ text: 'WeRead', link: '/adapters/browser/weread' },
|
|
71
|
+
{ text: 'Douban', link: '/adapters/browser/douban' },
|
|
72
|
+
{ text: 'Sina Blog', link: '/adapters/browser/sinablog' },
|
|
73
|
+
{ text: 'Substack', link: '/adapters/browser/substack' },
|
|
63
74
|
],
|
|
64
75
|
},
|
|
65
76
|
{
|
|
@@ -67,11 +78,17 @@ export default defineConfig({
|
|
|
67
78
|
collapsed: false,
|
|
68
79
|
items: [
|
|
69
80
|
{ text: 'HackerNews', link: '/adapters/browser/hackernews' },
|
|
70
|
-
{ text: '
|
|
81
|
+
{ text: 'Dev.to', link: '/adapters/browser/devto' },
|
|
71
82
|
{ text: 'BBC', link: '/adapters/browser/bbc' },
|
|
72
83
|
{ text: 'Apple Podcasts', link: '/adapters/browser/apple-podcasts' },
|
|
73
84
|
{ text: 'Xiaoyuzhou', link: '/adapters/browser/xiaoyuzhou' },
|
|
74
85
|
{ text: 'Yahoo Finance', link: '/adapters/browser/yahoo-finance' },
|
|
86
|
+
{ text: 'arXiv', link: '/adapters/browser/arxiv' },
|
|
87
|
+
{ text: 'Barchart', link: '/adapters/browser/barchart' },
|
|
88
|
+
{ text: 'Hugging Face', link: '/adapters/browser/hf' },
|
|
89
|
+
{ text: 'Sina Finance', link: '/adapters/browser/sinafinance' },
|
|
90
|
+
{ text: 'Stack Overflow', link: '/adapters/browser/stackoverflow' },
|
|
91
|
+
{ text: 'Wikipedia', link: '/adapters/browser/wikipedia' },
|
|
75
92
|
],
|
|
76
93
|
},
|
|
77
94
|
{
|
|
@@ -85,9 +102,6 @@ export default defineConfig({
|
|
|
85
102
|
{ text: 'ChatWise', link: '/adapters/desktop/chatwise' },
|
|
86
103
|
{ text: 'Notion', link: '/adapters/desktop/notion' },
|
|
87
104
|
{ text: 'Discord', link: '/adapters/desktop/discord' },
|
|
88
|
-
{ text: 'Feishu', link: '/adapters/desktop/feishu' },
|
|
89
|
-
{ text: 'WeChat', link: '/adapters/desktop/wechat' },
|
|
90
|
-
{ text: 'NeteaseMusic', link: '/adapters/desktop/neteasemusic' },
|
|
91
105
|
],
|
|
92
106
|
},
|
|
93
107
|
],
|
|
@@ -137,7 +151,7 @@ export default defineConfig({
|
|
|
137
151
|
{ text: '快速开始', link: '/zh/guide/getting-started' },
|
|
138
152
|
{ text: '安装', link: '/zh/guide/installation' },
|
|
139
153
|
{ text: 'Browser Bridge', link: '/zh/guide/browser-bridge' },
|
|
140
|
-
{ text: '
|
|
154
|
+
{ text: '插件', link: '/zh/guide/plugins' },
|
|
141
155
|
],
|
|
142
156
|
},
|
|
143
157
|
],
|
|
@@ -154,7 +168,6 @@ export default defineConfig({
|
|
|
154
168
|
text: '开发者指南',
|
|
155
169
|
items: [
|
|
156
170
|
{ text: '贡献指南', link: '/zh/developer/contributing' },
|
|
157
|
-
{ text: '测试', link: '/zh/developer/testing' },
|
|
158
171
|
],
|
|
159
172
|
},
|
|
160
173
|
],
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# arXiv
|
|
2
|
+
|
|
3
|
+
**Mode**: 🌐 Public · **Domain**: `arxiv.org`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli arxiv search` | Search arXiv papers |
|
|
10
|
+
| `opencli arxiv paper` | Get arXiv paper details by ID |
|
|
11
|
+
|
|
12
|
+
## Usage Examples
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Search for papers
|
|
16
|
+
opencli arxiv search "transformer attention" --limit 10
|
|
17
|
+
|
|
18
|
+
# Get paper details by arXiv ID
|
|
19
|
+
opencli arxiv paper 2301.00001
|
|
20
|
+
|
|
21
|
+
# JSON output
|
|
22
|
+
opencli arxiv search "LLM" -f json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Prerequisites
|
|
26
|
+
|
|
27
|
+
- No browser required — uses public arXiv API
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Barchart
|
|
2
|
+
|
|
3
|
+
**Mode**: 🔐 Browser · **Domain**: `barchart.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli barchart quote` | Stock quote with price, volume, and key metrics |
|
|
10
|
+
| `opencli barchart options` | Options chain with greeks, IV, volume, and open interest |
|
|
11
|
+
| `opencli barchart greeks` | Options greeks overview (IV, delta, gamma, theta, vega) |
|
|
12
|
+
| `opencli barchart flow` | Unusual options activity / options flow |
|
|
13
|
+
|
|
14
|
+
## Usage Examples
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# Get stock quote
|
|
18
|
+
opencli barchart quote AAPL
|
|
19
|
+
|
|
20
|
+
# View options chain
|
|
21
|
+
opencli barchart options TSLA
|
|
22
|
+
|
|
23
|
+
# Options greeks overview
|
|
24
|
+
opencli barchart greeks NVDA
|
|
25
|
+
|
|
26
|
+
# Unusual options flow
|
|
27
|
+
opencli barchart flow --limit 20 -f json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
- Chrome running and able to open `barchart.com`
|
|
33
|
+
- [Browser Bridge extension](/guide/browser-bridge) installed
|
|
@@ -25,6 +25,15 @@
|
|
|
25
25
|
# Quick start
|
|
26
26
|
opencli bilibili hot --limit 5
|
|
27
27
|
|
|
28
|
+
# Search videos
|
|
29
|
+
opencli bilibili search 黑神话 --limit 10
|
|
30
|
+
|
|
31
|
+
# Read one creator's videos
|
|
32
|
+
opencli bilibili user-videos 2 --limit 10
|
|
33
|
+
|
|
34
|
+
# Fetch subtitles
|
|
35
|
+
opencli bilibili subtitle BV1xx411c7mD --lang zh-CN
|
|
36
|
+
|
|
28
37
|
# JSON output
|
|
29
38
|
opencli bilibili hot -f json
|
|
30
39
|
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Bloomberg
|
|
2
|
+
|
|
3
|
+
**Mode**: 🌐 / 🔐 Mixed · **Domains**: `feeds.bloomberg.com`, `www.bloomberg.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli bloomberg main` | Bloomberg homepage top stories from RSS |
|
|
10
|
+
| `opencli bloomberg markets` | Bloomberg Markets top stories from RSS |
|
|
11
|
+
| `opencli bloomberg economics` | Bloomberg Economics top stories from RSS |
|
|
12
|
+
| `opencli bloomberg industries` | Bloomberg Industries top stories from RSS |
|
|
13
|
+
| `opencli bloomberg tech` | Bloomberg Tech top stories from RSS |
|
|
14
|
+
| `opencli bloomberg politics` | Bloomberg Politics top stories from RSS |
|
|
15
|
+
| `opencli bloomberg businessweek` | Bloomberg Businessweek top stories from RSS |
|
|
16
|
+
| `opencli bloomberg opinions` | Bloomberg Opinion top stories from RSS |
|
|
17
|
+
| `opencli bloomberg feeds` | List the RSS feed aliases used by the adapter |
|
|
18
|
+
| `opencli bloomberg news <link>` | Read a standard Bloomberg story/article page and return title, summary, media links, and article text |
|
|
19
|
+
|
|
20
|
+
## What works today
|
|
21
|
+
|
|
22
|
+
- RSS-backed listing commands work without a browser:
|
|
23
|
+
- `main`
|
|
24
|
+
- `markets`
|
|
25
|
+
- `economics`
|
|
26
|
+
- `industries`
|
|
27
|
+
- `tech`
|
|
28
|
+
- `politics`
|
|
29
|
+
- `businessweek`
|
|
30
|
+
- `opinions`
|
|
31
|
+
- `feeds`
|
|
32
|
+
- `bloomberg news` works on standard Bloomberg story/article pages that expose `#__NEXT_DATA__` and are accessible to your current Chrome session.
|
|
33
|
+
|
|
34
|
+
## Current limitations
|
|
35
|
+
|
|
36
|
+
- Audio pages and some other non-standard Bloomberg URLs may fail.
|
|
37
|
+
- Some Bloomberg pages can return bot-protection or access-gated responses instead of article data.
|
|
38
|
+
- This adapter is for data retrieval/extraction only. It does **not** bypass Bloomberg paywall, login, entitlement, or other access checks.
|
|
39
|
+
|
|
40
|
+
## Usage Examples
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# List supported RSS feed aliases
|
|
44
|
+
opencli bloomberg feeds
|
|
45
|
+
|
|
46
|
+
# Fetch Bloomberg homepage headlines
|
|
47
|
+
opencli bloomberg main --limit 5
|
|
48
|
+
|
|
49
|
+
# Fetch a section feed as JSON
|
|
50
|
+
opencli bloomberg tech --limit 3 -f json
|
|
51
|
+
|
|
52
|
+
# Read a standard article page
|
|
53
|
+
opencli bloomberg news https://www.bloomberg.com/news/articles/2026-03-19/example -f json
|
|
54
|
+
|
|
55
|
+
# Relative article paths also work
|
|
56
|
+
opencli bloomberg news /news/articles/2026-03-19/example
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Prerequisites
|
|
60
|
+
|
|
61
|
+
- RSS commands do not require Chrome.
|
|
62
|
+
- `bloomberg news` requires:
|
|
63
|
+
- Chrome running
|
|
64
|
+
- a Chrome session that can already access the target Bloomberg article page
|
|
65
|
+
- the [Browser Bridge extension](/guide/browser-bridge)
|
|
66
|
+
|
|
67
|
+
## Notes
|
|
68
|
+
|
|
69
|
+
- RSS commands support `--limit` with a maximum of 20 items.
|
|
70
|
+
- If `bloomberg news` fails on a page from RSS, try a different standard story/article link first; not every Bloomberg URL in feeds is a normal article page.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 超星学习通 (Chaoxing)
|
|
2
|
+
|
|
3
|
+
**Mode**: 🔐 Browser · **Domain**: `mooc2-ans.chaoxing.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli chaoxing assignments` | 学习通作业列表 |
|
|
10
|
+
| `opencli chaoxing exams` | 学习通考试列表 |
|
|
11
|
+
|
|
12
|
+
## Usage Examples
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# List all assignments
|
|
16
|
+
opencli chaoxing assignments --limit 20
|
|
17
|
+
|
|
18
|
+
# Filter exams by course name
|
|
19
|
+
opencli chaoxing exams --course "高等数学"
|
|
20
|
+
|
|
21
|
+
# Filter exams by status
|
|
22
|
+
opencli chaoxing exams --status ongoing
|
|
23
|
+
|
|
24
|
+
# JSON output
|
|
25
|
+
opencli chaoxing assignments -f json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Options
|
|
29
|
+
|
|
30
|
+
| Option | Description |
|
|
31
|
+
|--------|-------------|
|
|
32
|
+
| `--course` | Filter by course name (fuzzy match) |
|
|
33
|
+
| `--status` | Filter by status: `all`, `upcoming`, `ongoing`, `finished` |
|
|
34
|
+
| `--limit` | Max number of results (default: 20) |
|
|
35
|
+
|
|
36
|
+
## Prerequisites
|
|
37
|
+
|
|
38
|
+
- Chrome running and **logged into** mooc2-ans.chaoxing.com
|
|
39
|
+
- [Browser Bridge extension](/guide/browser-bridge) installed
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Dev.to
|
|
2
|
+
|
|
3
|
+
**Mode**: 🌐 Public · **Domain**: `dev.to`
|
|
4
|
+
|
|
5
|
+
Fetch the latest and greatest developer articles from the DEV community without needing an API key.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
| Command | Description |
|
|
10
|
+
|---------|-------------|
|
|
11
|
+
| `opencli devto top` | Top DEV.to articles of the day |
|
|
12
|
+
| `opencli devto tag` | Latest articles for a specific tag |
|
|
13
|
+
| `opencli devto user` | Recent articles from a specific user |
|
|
14
|
+
|
|
15
|
+
## Usage Examples
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# Top articles today
|
|
19
|
+
opencli devto top --limit 5
|
|
20
|
+
|
|
21
|
+
# Articles by tag (positional argument)
|
|
22
|
+
opencli devto tag javascript
|
|
23
|
+
opencli devto tag python --limit 20
|
|
24
|
+
|
|
25
|
+
# Articles by a specific author
|
|
26
|
+
opencli devto user ben
|
|
27
|
+
opencli devto user thepracticaldev --limit 5
|
|
28
|
+
|
|
29
|
+
# JSON output
|
|
30
|
+
opencli devto top -f json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- No browser required — uses the public DEV.to API
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# 豆瓣 (Douban)
|
|
2
|
+
|
|
3
|
+
**Mode**: 🔐 Browser (Cookie) · **Domain**: `douban.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli douban movie-hot` | 豆瓣电影热门榜单 |
|
|
10
|
+
| `opencli douban book-hot` | 豆瓣图书热门榜单 |
|
|
11
|
+
| `opencli douban search` | 搜索豆瓣电影、图书或音乐 |
|
|
12
|
+
|
|
13
|
+
## Usage Examples
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 电影热门
|
|
17
|
+
opencli douban movie-hot --limit 10
|
|
18
|
+
|
|
19
|
+
# 图书热门
|
|
20
|
+
opencli douban book-hot --limit 10
|
|
21
|
+
|
|
22
|
+
# 搜索电影
|
|
23
|
+
opencli douban search "流浪地球"
|
|
24
|
+
|
|
25
|
+
# 搜索图书
|
|
26
|
+
opencli douban search --type book "三体"
|
|
27
|
+
|
|
28
|
+
# 搜索音乐
|
|
29
|
+
opencli douban search --type music "周杰伦"
|
|
30
|
+
|
|
31
|
+
# JSON output
|
|
32
|
+
opencli douban movie-hot -f json
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Prerequisites
|
|
36
|
+
|
|
37
|
+
- Chrome logged into `douban.com`
|
|
38
|
+
- Browser Bridge extension installed
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Facebook
|
|
2
|
+
|
|
3
|
+
**Mode**: 🔐 Browser · **Domain**: `facebook.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli facebook profile` | Get user/page profile info |
|
|
10
|
+
| `opencli facebook notifications` | Get recent notifications |
|
|
11
|
+
| `opencli facebook feed` | Get news feed posts |
|
|
12
|
+
| `opencli facebook search` | Search people, pages, posts |
|
|
13
|
+
|
|
14
|
+
## Usage Examples
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
# View a profile
|
|
18
|
+
opencli facebook profile zuck
|
|
19
|
+
|
|
20
|
+
# Get notifications
|
|
21
|
+
opencli facebook notifications --limit 10
|
|
22
|
+
|
|
23
|
+
# News feed
|
|
24
|
+
opencli facebook feed --limit 5
|
|
25
|
+
|
|
26
|
+
# Search
|
|
27
|
+
opencli facebook search "OpenAI" --limit 5
|
|
28
|
+
|
|
29
|
+
# JSON output
|
|
30
|
+
opencli facebook profile zuck -f json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Prerequisites
|
|
34
|
+
|
|
35
|
+
- Chrome running and **logged into** facebook.com
|
|
36
|
+
- [Browser Bridge extension](/guide/browser-bridge) installed
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Google
|
|
2
|
+
|
|
3
|
+
**Mode**: 🌐 / 🔐 Mixed · **Domains**: `google.com`, `suggestqueries.google.com`, `news.google.com`, `trends.google.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli google search <keyword>` | Search Google and extract results from the page |
|
|
10
|
+
| `opencli google suggest <keyword>` | Get Google search suggestions |
|
|
11
|
+
| `opencli google news [keyword]` | Get Google News headlines (top stories or search) |
|
|
12
|
+
| `opencli google trends` | Get Google Trends daily trending searches |
|
|
13
|
+
|
|
14
|
+
## What works today
|
|
15
|
+
|
|
16
|
+
- Public API commands work without a browser:
|
|
17
|
+
- `suggest` — JSON API, no auth needed
|
|
18
|
+
- `news` — RSS feed, supports top stories and keyword search
|
|
19
|
+
- `trends` — RSS feed, supports different regions
|
|
20
|
+
- `google search` uses browser mode to extract results from google.com.
|
|
21
|
+
|
|
22
|
+
## Current limitations
|
|
23
|
+
|
|
24
|
+
- `google search` may trigger CAPTCHA in Standalone browser mode. Extension mode (with an established Chrome session) is more reliable.
|
|
25
|
+
- Google frequently changes its DOM structure. If `search` stops returning results, selectors may need updating.
|
|
26
|
+
- Snippet extraction may return empty for some results depending on Google's layout.
|
|
27
|
+
|
|
28
|
+
## Usage Examples
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Search Google
|
|
32
|
+
opencli google search "typescript tutorial" --limit 10
|
|
33
|
+
|
|
34
|
+
# Get search suggestions
|
|
35
|
+
opencli google suggest python
|
|
36
|
+
|
|
37
|
+
# Get top news headlines
|
|
38
|
+
opencli google news --limit 5
|
|
39
|
+
|
|
40
|
+
# Search news for a topic
|
|
41
|
+
opencli google news "artificial intelligence" --limit 10 --lang en --region US
|
|
42
|
+
|
|
43
|
+
# Get trending searches in Japan
|
|
44
|
+
opencli google trends --region JP --limit 10
|
|
45
|
+
|
|
46
|
+
# Output as JSON
|
|
47
|
+
opencli google search "machine learning" -f json
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Prerequisites
|
|
51
|
+
|
|
52
|
+
- `suggest`, `news`, `trends` do not require Chrome.
|
|
53
|
+
- `search` requires:
|
|
54
|
+
- Chrome running (or Standalone mode will auto-launch)
|
|
55
|
+
- For best results, use the [Browser Bridge extension](/guide/browser-bridge) with an established Google session
|
|
56
|
+
|
|
57
|
+
## Notes
|
|
58
|
+
|
|
59
|
+
- `suggest` defaults to `--lang zh-CN`; other commands default to `--lang en`.
|
|
60
|
+
- `news` supports `--lang` and `--region` parameters for localized results.
|
|
61
|
+
- `trends` traffic values are raw strings (e.g. "500K+", "1,000,000+"), not numeric.
|
|
62
|
+
- `search` output includes three result types: `result` (standard), `snippet` (featured answer box), and `paa` (People Also Ask).
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Grok
|
|
2
|
+
|
|
3
|
+
**Mode**: Default Grok adapter + optional explicit consumer web path · **Domain**: `grok.com`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli grok ask` | Keep the default Grok ask behavior |
|
|
10
|
+
| `opencli grok ask --web` | Use the explicit grok.com consumer web UI flow |
|
|
11
|
+
|
|
12
|
+
## Usage Examples
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Default / compatibility path
|
|
16
|
+
opencli grok ask --prompt "Explain quantum computing in simple terms"
|
|
17
|
+
|
|
18
|
+
# Explicit consumer web path
|
|
19
|
+
opencli grok ask --prompt "Explain quantum computing in simple terms" --web
|
|
20
|
+
|
|
21
|
+
# Best-effort fresh chat on the consumer web path
|
|
22
|
+
opencli grok ask --prompt "Hello" --web --new
|
|
23
|
+
|
|
24
|
+
# Set custom timeout (default: 120s)
|
|
25
|
+
opencli grok ask --prompt "Write a long essay" --web --timeout 180
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Options
|
|
29
|
+
|
|
30
|
+
| Option | Description |
|
|
31
|
+
|--------|-------------|
|
|
32
|
+
| `--prompt` | The message to send (required) |
|
|
33
|
+
| `--timeout` | Wait timeout in seconds (default: 120) |
|
|
34
|
+
| `--new` | Start a new chat before sending (default: false) |
|
|
35
|
+
| `--web` | Opt into the explicit grok.com consumer web flow (default: false) |
|
|
36
|
+
|
|
37
|
+
## Behavior
|
|
38
|
+
|
|
39
|
+
- `opencli grok ask` keeps the upstream/default behavior intact.
|
|
40
|
+
- `opencli grok ask --web` switches to the newer hardened consumer-web implementation.
|
|
41
|
+
- The `--web` path adds stricter composer detection, clearer blocked/session-gated hints, and waits for a stabilized assistant bubble before returning.
|
|
42
|
+
|
|
43
|
+
## Prerequisites
|
|
44
|
+
|
|
45
|
+
- The Grok adapter still depends on browser-backed access to `grok.com`
|
|
46
|
+
- For `--web`, Chrome should already be running with an authenticated Grok consumer session
|
|
47
|
+
- [Browser Bridge extension](/guide/browser-bridge) installed
|
|
48
|
+
|
|
49
|
+
## Caveats
|
|
50
|
+
|
|
51
|
+
- `--web` drives the Grok consumer web UI in the browser, not an API.
|
|
52
|
+
- It depends on an already-authenticated session and can fail if Grok shows login, challenge, rate-limit, or other session-gating UI.
|
|
53
|
+
- It may break when the Grok composer DOM, submit button behavior, or message bubble structure changes.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Hugging Face
|
|
2
|
+
|
|
3
|
+
**Mode**: 🌐 Public · **Domain**: `huggingface.co`
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
| Command | Description |
|
|
8
|
+
|---------|-------------|
|
|
9
|
+
| `opencli hf top` | Top upvoted Hugging Face papers |
|
|
10
|
+
|
|
11
|
+
## Usage Examples
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Today's top papers
|
|
15
|
+
opencli hf top --limit 10
|
|
16
|
+
|
|
17
|
+
# All papers (no limit)
|
|
18
|
+
opencli hf top --all
|
|
19
|
+
|
|
20
|
+
# Specific date
|
|
21
|
+
opencli hf top --date 2025-03-01
|
|
22
|
+
|
|
23
|
+
# Weekly/monthly top papers
|
|
24
|
+
opencli hf top --period weekly
|
|
25
|
+
opencli hf top --period monthly
|
|
26
|
+
|
|
27
|
+
# JSON output
|
|
28
|
+
opencli hf top -f json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Options
|
|
32
|
+
|
|
33
|
+
| Option | Description |
|
|
34
|
+
|--------|-------------|
|
|
35
|
+
| `--limit` | Number of papers (default: 20) |
|
|
36
|
+
| `--all` | Return all papers, ignoring limit |
|
|
37
|
+
| `--date` | Date in `YYYY-MM-DD` format (defaults to most recent) |
|
|
38
|
+
| `--period` | Time period: `daily`, `weekly`, or `monthly` (default: daily) |
|
|
39
|
+
|
|
40
|
+
## Prerequisites
|
|
41
|
+
|
|
42
|
+
- No browser required — uses public Hugging Face API
|