@jackwener/opencli 1.7.11 → 1.7.13

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.
Files changed (1004) hide show
  1. package/README.md +8 -7
  2. package/README.zh-CN.md +11 -9
  3. package/cli-manifest.json +12952 -6208
  4. package/clis/1688/assets.js +1 -0
  5. package/clis/1688/download.js +1 -0
  6. package/clis/1688/item.js +1 -0
  7. package/clis/1688/search.js +2 -1
  8. package/clis/1688/store.js +1 -0
  9. package/clis/1point3acres/digest.js +35 -0
  10. package/clis/1point3acres/forum.js +51 -0
  11. package/clis/1point3acres/forums.js +44 -0
  12. package/clis/1point3acres/hot.js +35 -0
  13. package/clis/1point3acres/latest.js +35 -0
  14. package/clis/1point3acres/notifications.js +64 -0
  15. package/clis/1point3acres/search.js +71 -0
  16. package/clis/1point3acres/thread.js +117 -0
  17. package/clis/1point3acres/user.js +77 -0
  18. package/clis/1point3acres/utils.js +247 -0
  19. package/clis/36kr/article.js +1 -0
  20. package/clis/36kr/hot.js +1 -0
  21. package/clis/36kr/news.js +1 -0
  22. package/clis/36kr/search.js +1 -0
  23. package/clis/51job/company.js +1 -0
  24. package/clis/51job/detail.js +1 -0
  25. package/clis/51job/hot.js +1 -0
  26. package/clis/51job/search.js +1 -0
  27. package/clis/_shared/desktop-commands.js +4 -0
  28. package/clis/aibase/news.js +110 -0
  29. package/clis/aibase/news.test.js +59 -0
  30. package/clis/amazon/bestsellers.js +1 -0
  31. package/clis/amazon/discussion.js +1 -0
  32. package/clis/amazon/discussion.test.js +1 -28
  33. package/clis/amazon/movers-shakers.js +1 -0
  34. package/clis/amazon/new-releases.js +1 -0
  35. package/clis/amazon/offer.js +1 -0
  36. package/clis/amazon/product.js +1 -0
  37. package/clis/amazon/rankings.js +1 -0
  38. package/clis/amazon/search.js +1 -0
  39. package/clis/antigravity/dump.js +1 -0
  40. package/clis/antigravity/extract-code.js +1 -0
  41. package/clis/antigravity/model.js +1 -0
  42. package/clis/antigravity/new.js +1 -0
  43. package/clis/antigravity/read.js +1 -0
  44. package/clis/antigravity/send.js +1 -0
  45. package/clis/antigravity/status.js +1 -0
  46. package/clis/antigravity/watch.js +4 -2
  47. package/clis/apple-podcasts/episodes.js +1 -0
  48. package/clis/apple-podcasts/search.js +1 -0
  49. package/clis/apple-podcasts/top.js +1 -0
  50. package/clis/arxiv/arxiv.test.js +112 -0
  51. package/clis/arxiv/author.js +44 -0
  52. package/clis/arxiv/paper.js +4 -3
  53. package/clis/arxiv/recent.js +33 -0
  54. package/clis/arxiv/search.js +19 -7
  55. package/clis/arxiv/utils.js +68 -5
  56. package/clis/baidu-scholar/search.js +1 -1
  57. package/clis/band/bands.js +1 -0
  58. package/clis/band/mentions.js +1 -0
  59. package/clis/band/post.js +1 -0
  60. package/clis/band/posts.js +1 -0
  61. package/clis/barchart/flow.js +1 -0
  62. package/clis/barchart/greeks.js +1 -0
  63. package/clis/barchart/options.js +1 -0
  64. package/clis/barchart/quote.js +1 -0
  65. package/clis/bbc/news.js +1 -0
  66. package/clis/bbc/topic.js +57 -0
  67. package/clis/bbc/utils.js +79 -0
  68. package/clis/bilibili/comments.js +1 -0
  69. package/clis/bilibili/download.js +1 -0
  70. package/clis/bilibili/dynamic.js +1 -0
  71. package/clis/bilibili/favorite.js +1 -0
  72. package/clis/bilibili/feed.js +2 -0
  73. package/clis/bilibili/following.js +1 -0
  74. package/clis/bilibili/history.js +1 -0
  75. package/clis/bilibili/hot.js +6 -1
  76. package/clis/bilibili/hot.test.js +17 -0
  77. package/clis/bilibili/me.js +1 -1
  78. package/clis/bilibili/ranking.js +1 -0
  79. package/clis/bilibili/search.js +1 -1
  80. package/clis/bilibili/subtitle.js +1 -0
  81. package/clis/bilibili/user-videos.js +1 -0
  82. package/clis/bilibili/video.js +1 -0
  83. package/clis/binance/asks.js +1 -0
  84. package/clis/binance/depth.js +1 -0
  85. package/clis/binance/gainers.js +1 -0
  86. package/clis/binance/klines.js +1 -0
  87. package/clis/binance/losers.js +1 -0
  88. package/clis/binance/pairs.js +1 -0
  89. package/clis/binance/price.js +1 -0
  90. package/clis/binance/prices.js +1 -0
  91. package/clis/binance/ticker.js +1 -0
  92. package/clis/binance/top.js +1 -0
  93. package/clis/binance/trades.js +1 -0
  94. package/clis/bloomberg/businessweek.js +1 -0
  95. package/clis/bloomberg/economics.js +1 -0
  96. package/clis/bloomberg/feeds.js +1 -0
  97. package/clis/bloomberg/industries.js +1 -0
  98. package/clis/bloomberg/main.js +1 -0
  99. package/clis/bloomberg/markets.js +1 -0
  100. package/clis/bloomberg/news.js +1 -0
  101. package/clis/bloomberg/opinions.js +1 -0
  102. package/clis/bloomberg/politics.js +1 -0
  103. package/clis/bloomberg/tech.js +1 -0
  104. package/clis/bluesky/feeds.js +1 -0
  105. package/clis/bluesky/followers.js +1 -0
  106. package/clis/bluesky/following.js +1 -0
  107. package/clis/bluesky/profile.js +1 -0
  108. package/clis/bluesky/search.js +1 -0
  109. package/clis/bluesky/starter-packs.js +1 -0
  110. package/clis/bluesky/thread.js +1 -0
  111. package/clis/bluesky/trending.js +1 -0
  112. package/clis/bluesky/user.js +3 -1
  113. package/clis/boss/batchgreet.js +1 -0
  114. package/clis/boss/chatlist.js +1 -0
  115. package/clis/boss/chatmsg.js +1 -0
  116. package/clis/boss/detail.js +1 -0
  117. package/clis/boss/exchange.js +1 -0
  118. package/clis/boss/greet.js +1 -0
  119. package/clis/boss/invite.js +1 -0
  120. package/clis/boss/joblist.js +1 -0
  121. package/clis/boss/mark.js +1 -0
  122. package/clis/boss/recommend.js +1 -0
  123. package/clis/boss/resume.js +1 -0
  124. package/clis/boss/search.js +1 -0
  125. package/clis/boss/send.js +1 -0
  126. package/clis/boss/stats.js +1 -0
  127. package/clis/chaoxing/assignments.js +2 -1
  128. package/clis/chaoxing/exams.js +2 -1
  129. package/clis/chatgpt/ask.js +57 -0
  130. package/clis/chatgpt/commands.test.js +45 -0
  131. package/clis/chatgpt/detail.js +46 -0
  132. package/clis/chatgpt/history.js +39 -0
  133. package/clis/chatgpt/image.js +13 -11
  134. package/clis/chatgpt/image.test.js +23 -0
  135. package/clis/chatgpt/new.js +25 -0
  136. package/clis/chatgpt/read.js +43 -0
  137. package/clis/chatgpt/send.js +46 -0
  138. package/clis/chatgpt/status.js +29 -0
  139. package/clis/chatgpt/utils.js +294 -4
  140. package/clis/chatgpt/utils.test.js +13 -0
  141. package/clis/chatgpt-app/ask.js +7 -3
  142. package/clis/chatgpt-app/model.js +1 -0
  143. package/clis/chatgpt-app/new.js +1 -0
  144. package/clis/chatgpt-app/read.js +1 -0
  145. package/clis/chatgpt-app/send.js +1 -0
  146. package/clis/chatgpt-app/status.js +1 -0
  147. package/clis/chatwise/ask.js +17 -43
  148. package/clis/chatwise/composer.test.js +186 -0
  149. package/clis/chatwise/export.js +1 -0
  150. package/clis/chatwise/history.js +1 -0
  151. package/clis/chatwise/model.js +1 -0
  152. package/clis/chatwise/read.js +1 -0
  153. package/clis/chatwise/send.js +3 -24
  154. package/clis/chatwise/utils.js +143 -0
  155. package/clis/claude/ask.js +2 -1
  156. package/clis/claude/detail.js +2 -0
  157. package/clis/claude/history.js +2 -0
  158. package/clis/claude/new.js +2 -0
  159. package/clis/claude/read.js +2 -0
  160. package/clis/claude/send.js +2 -0
  161. package/clis/claude/status.js +2 -0
  162. package/clis/cnki/search.js +1 -0
  163. package/clis/codex/ask.js +16 -9
  164. package/clis/codex/export.js +1 -0
  165. package/clis/codex/extract-diff.js +1 -0
  166. package/clis/codex/history.js +17 -33
  167. package/clis/codex/model.js +1 -0
  168. package/clis/codex/projects.js +28 -0
  169. package/clis/codex/read.js +11 -4
  170. package/clis/codex/send.js +11 -3
  171. package/clis/codex/sidebar.js +356 -0
  172. package/clis/codex/sidebar.test.js +329 -0
  173. package/clis/coingecko/categories.js +75 -0
  174. package/clis/coingecko/coin.js +107 -0
  175. package/clis/coingecko/coingecko.test.js +109 -0
  176. package/clis/coingecko/derivatives.js +84 -0
  177. package/clis/coingecko/exchanges.js +74 -0
  178. package/clis/coingecko/global.js +71 -0
  179. package/clis/coingecko/top.js +64 -0
  180. package/clis/coingecko/trending.js +55 -0
  181. package/clis/coupang/add-to-cart.js +22 -13
  182. package/clis/coupang/coupang.test.js +159 -0
  183. package/clis/coupang/product.js +257 -0
  184. package/clis/coupang/search.js +39 -16
  185. package/clis/coupang/utils.js +55 -1
  186. package/clis/crates/crate.js +62 -0
  187. package/clis/crates/search.js +44 -0
  188. package/clis/crates/utils.js +72 -0
  189. package/clis/ctrip/ctrip.test.js +234 -0
  190. package/clis/ctrip/hotel-suggest.js +45 -0
  191. package/clis/ctrip/search.js +23 -68
  192. package/clis/ctrip/utils.js +175 -0
  193. package/clis/cursor/ask.js +7 -3
  194. package/clis/cursor/composer.js +1 -0
  195. package/clis/cursor/export.js +1 -0
  196. package/clis/cursor/extract-code.js +1 -0
  197. package/clis/cursor/history.js +1 -0
  198. package/clis/cursor/model.js +1 -0
  199. package/clis/cursor/read.js +1 -0
  200. package/clis/cursor/send.js +1 -0
  201. package/clis/dblp/author.js +133 -0
  202. package/clis/dblp/dblp.test.js +397 -0
  203. package/clis/dblp/paper.js +40 -0
  204. package/clis/dblp/search.js +45 -0
  205. package/clis/dblp/utils.js +290 -0
  206. package/clis/dblp/venue.js +64 -0
  207. package/clis/deepseek/ask.js +13 -7
  208. package/clis/deepseek/ask.test.js +13 -13
  209. package/clis/deepseek/detail.js +38 -0
  210. package/clis/deepseek/detail.test.js +81 -0
  211. package/clis/deepseek/history.js +2 -0
  212. package/clis/deepseek/new.js +2 -0
  213. package/clis/deepseek/read.js +2 -0
  214. package/clis/deepseek/send.js +140 -0
  215. package/clis/deepseek/send.test.js +107 -0
  216. package/clis/deepseek/status.js +2 -0
  217. package/clis/deepseek/utils.js +66 -0
  218. package/clis/deepseek/utils.test.js +107 -1
  219. package/clis/defillama/defillama.test.js +99 -0
  220. package/clis/defillama/protocol.js +84 -0
  221. package/clis/defillama/protocols.js +55 -0
  222. package/clis/defillama/utils.js +99 -0
  223. package/clis/devto/devto.test.js +236 -0
  224. package/clis/devto/latest.js +74 -0
  225. package/clis/devto/read.js +103 -0
  226. package/clis/devto/tag.js +5 -1
  227. package/clis/devto/top.js +5 -1
  228. package/clis/devto/user.js +5 -1
  229. package/clis/dianping/__fixtures__/search.html +168 -0
  230. package/clis/dianping/__fixtures__/shop.html +6 -0
  231. package/clis/dianping/dianping.test.js +424 -0
  232. package/clis/dianping/search.js +154 -0
  233. package/clis/dianping/shop.js +173 -0
  234. package/clis/dianping/utils.js +157 -0
  235. package/clis/dictionary/examples.js +1 -0
  236. package/clis/dictionary/search.js +1 -0
  237. package/clis/dictionary/synonyms.js +1 -0
  238. package/clis/discord-app/channels.js +1 -0
  239. package/clis/discord-app/delete.js +1 -0
  240. package/clis/discord-app/members.js +1 -0
  241. package/clis/discord-app/read.js +1 -0
  242. package/clis/discord-app/search.js +1 -0
  243. package/clis/discord-app/send.js +1 -0
  244. package/clis/discord-app/servers.js +1 -0
  245. package/clis/discord-app/status.js +1 -0
  246. package/clis/dockerhub/image.js +52 -0
  247. package/clis/dockerhub/search.js +47 -0
  248. package/clis/dockerhub/utils.js +100 -0
  249. package/clis/douban/book-hot.js +1 -0
  250. package/clis/douban/download.js +1 -0
  251. package/clis/douban/marks.js +1 -0
  252. package/clis/douban/movie-hot.js +2 -1
  253. package/clis/douban/movie-hot.test.js +14 -0
  254. package/clis/douban/photos.js +2 -1
  255. package/clis/douban/reviews.js +1 -0
  256. package/clis/douban/search.js +1 -0
  257. package/clis/douban/subject.js +1 -0
  258. package/clis/douban/top250.js +1 -0
  259. package/clis/douban/utils.js +11 -13
  260. package/clis/douban/utils.test.js +79 -0
  261. package/clis/doubao/ask.js +8 -3
  262. package/clis/doubao/detail.js +2 -0
  263. package/clis/doubao/history.js +2 -0
  264. package/clis/doubao/meeting-summary.js +2 -0
  265. package/clis/doubao/meeting-transcript.js +2 -0
  266. package/clis/doubao/new.js +2 -0
  267. package/clis/doubao/read.js +2 -0
  268. package/clis/doubao/send.js +2 -0
  269. package/clis/doubao/status.js +2 -0
  270. package/clis/doubao-app/ask.js +1 -0
  271. package/clis/doubao-app/dump.js +1 -0
  272. package/clis/doubao-app/new.js +1 -0
  273. package/clis/doubao-app/read.js +1 -0
  274. package/clis/doubao-app/screenshot.js +1 -0
  275. package/clis/doubao-app/send.js +1 -0
  276. package/clis/doubao-app/status.js +1 -0
  277. package/clis/douyin/activities.js +1 -0
  278. package/clis/douyin/collections.js +1 -0
  279. package/clis/douyin/delete.js +1 -0
  280. package/clis/douyin/draft.js +1 -0
  281. package/clis/douyin/draft.test.js +1 -30
  282. package/clis/douyin/drafts.js +1 -0
  283. package/clis/douyin/hashtag.js +1 -0
  284. package/clis/douyin/location.js +1 -0
  285. package/clis/douyin/profile.js +1 -0
  286. package/clis/douyin/publish.js +1 -0
  287. package/clis/douyin/stats.js +1 -0
  288. package/clis/douyin/update.js +1 -0
  289. package/clis/douyin/user-videos.js +1 -0
  290. package/clis/douyin/videos.js +1 -0
  291. package/clis/eastmoney/announcement.js +1 -0
  292. package/clis/eastmoney/convertible.js +1 -0
  293. package/clis/eastmoney/etf.js +1 -0
  294. package/clis/eastmoney/holders.js +1 -0
  295. package/clis/eastmoney/hot-rank.js +1 -0
  296. package/clis/eastmoney/index-board.js +1 -0
  297. package/clis/eastmoney/kline.js +1 -0
  298. package/clis/eastmoney/kuaixun.js +1 -0
  299. package/clis/eastmoney/longhu.js +1 -0
  300. package/clis/eastmoney/money-flow.js +1 -0
  301. package/clis/eastmoney/northbound.js +1 -0
  302. package/clis/eastmoney/quote.js +1 -0
  303. package/clis/eastmoney/rank.js +1 -0
  304. package/clis/eastmoney/sectors.js +1 -0
  305. package/clis/endoflife/endoflife.test.js +51 -0
  306. package/clis/endoflife/product.js +55 -0
  307. package/clis/endoflife/utils.js +89 -0
  308. package/clis/facebook/__fixtures__/notifications-page.html +13 -0
  309. package/clis/facebook/add-friend.js +1 -0
  310. package/clis/facebook/events.js +1 -0
  311. package/clis/facebook/feed.js +1 -0
  312. package/clis/facebook/friends.js +1 -0
  313. package/clis/facebook/groups.js +1 -0
  314. package/clis/facebook/join-group.js +1 -0
  315. package/clis/facebook/marketplace-inbox.js +1 -0
  316. package/clis/facebook/marketplace-listings.js +1 -0
  317. package/clis/facebook/memories.js +1 -0
  318. package/clis/facebook/notifications.js +327 -30
  319. package/clis/facebook/notifications.test.js +458 -0
  320. package/clis/facebook/profile.js +1 -0
  321. package/clis/facebook/search.js +1 -0
  322. package/clis/flathub/app.js +71 -0
  323. package/clis/flathub/flathub.test.js +90 -0
  324. package/clis/flathub/search.js +80 -0
  325. package/clis/flathub/utils.js +114 -0
  326. package/clis/gemini/ask.js +8 -3
  327. package/clis/gemini/ask.test.js +2 -2
  328. package/clis/gemini/deep-research-result.js +7 -2
  329. package/clis/gemini/deep-research-result.test.js +15 -14
  330. package/clis/gemini/deep-research.js +9 -4
  331. package/clis/gemini/deep-research.test.js +15 -18
  332. package/clis/gemini/image.js +8 -2
  333. package/clis/gemini/new.js +2 -0
  334. package/clis/gemini/utils.js +0 -4
  335. package/clis/gitee/search.js +1 -0
  336. package/clis/gitee/trending.js +1 -0
  337. package/clis/gitee/user.js +1 -0
  338. package/clis/google/news.js +1 -0
  339. package/clis/google/search.js +1 -0
  340. package/clis/google/suggest.js +1 -0
  341. package/clis/google/trends.js +1 -0
  342. package/clis/google-scholar/cite.js +1 -1
  343. package/clis/google-scholar/profile.js +1 -1
  344. package/clis/google-scholar/search.js +1 -1
  345. package/clis/goproxy/goproxy.test.js +103 -0
  346. package/clis/goproxy/module.js +47 -0
  347. package/clis/goproxy/utils.js +165 -0
  348. package/clis/goproxy/versions.js +59 -0
  349. package/clis/gov-law/recent.js +1 -1
  350. package/clis/gov-law/search.js +1 -1
  351. package/clis/gov-policy/__fixtures__/recent.html +16 -0
  352. package/clis/gov-policy/__fixtures__/search.html +41 -0
  353. package/clis/gov-policy/gov-policy.test.js +224 -0
  354. package/clis/gov-policy/recent.js +67 -24
  355. package/clis/gov-policy/search.js +66 -23
  356. package/clis/gov-policy/utils.js +54 -0
  357. package/clis/grok/ask.js +50 -265
  358. package/clis/grok/ask.test.js +21 -46
  359. package/clis/grok/detail.js +60 -0
  360. package/clis/grok/history.js +48 -0
  361. package/clis/grok/{image.ts → image.js} +57 -70
  362. package/clis/grok/image.test.ts +20 -0
  363. package/clis/grok/new.js +20 -0
  364. package/clis/grok/read.js +39 -0
  365. package/clis/grok/send.js +50 -0
  366. package/clis/grok/status.js +41 -0
  367. package/clis/grok/utils.js +326 -0
  368. package/clis/grok/utils.test.js +103 -0
  369. package/clis/hackernews/ask.js +3 -1
  370. package/clis/hackernews/best.js +3 -1
  371. package/clis/hackernews/hackernews.test.js +132 -0
  372. package/clis/hackernews/jobs.js +3 -1
  373. package/clis/hackernews/new.js +3 -1
  374. package/clis/hackernews/read.js +188 -0
  375. package/clis/hackernews/search.js +3 -1
  376. package/clis/hackernews/show.js +3 -1
  377. package/clis/hackernews/top.js +3 -1
  378. package/clis/hackernews/user.js +1 -0
  379. package/clis/hf/datasets.js +88 -0
  380. package/clis/hf/hf.test.js +16 -0
  381. package/clis/hf/models.js +91 -0
  382. package/clis/hf/paper.js +79 -0
  383. package/clis/hf/spaces.js +101 -0
  384. package/clis/hf/top.js +2 -0
  385. package/clis/homebrew/cask.js +39 -0
  386. package/clis/homebrew/formula.js +41 -0
  387. package/clis/homebrew/popular.js +54 -0
  388. package/clis/homebrew/utils.js +100 -0
  389. package/clis/hupu/__fixtures__/hot-home.html +64 -0
  390. package/clis/hupu/detail.js +1 -1
  391. package/clis/hupu/hot.js +157 -34
  392. package/clis/hupu/hot.test.js +224 -0
  393. package/clis/hupu/like.js +1 -0
  394. package/clis/hupu/mentions.js +2 -1
  395. package/clis/hupu/reply.js +1 -0
  396. package/clis/hupu/search.js +3 -2
  397. package/clis/hupu/unlike.js +1 -0
  398. package/clis/imdb/person.js +1 -0
  399. package/clis/imdb/reviews.js +1 -0
  400. package/clis/imdb/search.js +1 -0
  401. package/clis/imdb/title.js +1 -0
  402. package/clis/imdb/top.js +1 -0
  403. package/clis/imdb/trending.js +1 -0
  404. package/clis/indeed/indeed.test.js +375 -0
  405. package/clis/indeed/job.js +86 -0
  406. package/clis/indeed/search.js +110 -0
  407. package/clis/indeed/utils.js +152 -0
  408. package/clis/instagram/collection-create.js +1 -0
  409. package/clis/instagram/collection-delete.js +1 -0
  410. package/clis/instagram/comment.js +1 -0
  411. package/clis/instagram/download.js +1 -0
  412. package/clis/instagram/explore.js +1 -0
  413. package/clis/instagram/follow.js +1 -0
  414. package/clis/instagram/followers.js +1 -0
  415. package/clis/instagram/following.js +1 -0
  416. package/clis/instagram/like.js +1 -0
  417. package/clis/instagram/note.js +2 -1
  418. package/clis/instagram/note.test.js +1 -29
  419. package/clis/instagram/post.js +2 -1
  420. package/clis/instagram/post.test.js +1 -1
  421. package/clis/instagram/profile.js +1 -0
  422. package/clis/instagram/reel.js +2 -1
  423. package/clis/instagram/save.js +1 -0
  424. package/clis/instagram/saved.js +1 -0
  425. package/clis/instagram/search.js +1 -0
  426. package/clis/instagram/story.js +2 -1
  427. package/clis/instagram/story.test.js +1 -34
  428. package/clis/instagram/unfollow.js +1 -0
  429. package/clis/instagram/unlike.js +1 -0
  430. package/clis/instagram/unsave.js +1 -0
  431. package/clis/instagram/user.js +1 -0
  432. package/clis/jd/add-cart.js +1 -0
  433. package/clis/jd/cart.js +1 -0
  434. package/clis/jd/commands.test.js +1 -24
  435. package/clis/jd/detail.js +1 -0
  436. package/clis/jd/item.js +1 -0
  437. package/clis/jd/reviews.js +1 -0
  438. package/clis/jd/search.js +1 -0
  439. package/clis/jianyu/detail.js +1 -0
  440. package/clis/jianyu/search.js +1 -0
  441. package/clis/jike/comment.js +1 -0
  442. package/clis/jike/create.js +1 -0
  443. package/clis/jike/feed.js +3 -1
  444. package/clis/jike/like.js +1 -0
  445. package/clis/jike/notifications.js +1 -0
  446. package/clis/jike/post.js +1 -0
  447. package/clis/jike/repost.js +1 -0
  448. package/clis/jike/search.js +3 -1
  449. package/clis/jike/topic.js +1 -0
  450. package/clis/jike/user.js +3 -1
  451. package/clis/jimeng/generate.js +1 -0
  452. package/clis/jimeng/history.js +1 -0
  453. package/clis/jimeng/new.js +1 -0
  454. package/clis/jimeng/workspaces.js +1 -0
  455. package/clis/ke/chengjiao.js +1 -0
  456. package/clis/ke/ershoufang.js +1 -0
  457. package/clis/ke/xiaoqu.js +1 -0
  458. package/clis/ke/zufang.js +1 -0
  459. package/clis/lesswrong/comments.js +1 -0
  460. package/clis/lesswrong/curated.js +1 -0
  461. package/clis/lesswrong/frontpage.js +1 -0
  462. package/clis/lesswrong/new.js +1 -0
  463. package/clis/lesswrong/read.js +1 -0
  464. package/clis/lesswrong/sequences.js +1 -0
  465. package/clis/lesswrong/shortform.js +1 -0
  466. package/clis/lesswrong/tag.js +1 -0
  467. package/clis/lesswrong/tags.js +1 -0
  468. package/clis/lesswrong/top-month.js +1 -0
  469. package/clis/lesswrong/top-week.js +1 -0
  470. package/clis/lesswrong/top-year.js +1 -0
  471. package/clis/lesswrong/top.js +1 -0
  472. package/clis/lesswrong/user-posts.js +1 -0
  473. package/clis/lesswrong/user.js +1 -0
  474. package/clis/lichess/lichess.test.js +85 -0
  475. package/clis/lichess/top.js +46 -0
  476. package/clis/lichess/user.js +91 -0
  477. package/clis/lichess/utils.js +97 -0
  478. package/clis/linkedin/search.js +108 -10
  479. package/clis/linkedin/search.test.js +222 -0
  480. package/clis/linkedin/timeline.js +1 -0
  481. package/clis/linux-do/categories.js +1 -0
  482. package/clis/linux-do/feed.js +3 -5
  483. package/clis/linux-do/feed.test.js +35 -0
  484. package/clis/linux-do/search.js +1 -0
  485. package/clis/linux-do/tags.js +2 -1
  486. package/clis/linux-do/topic-content.js +1 -0
  487. package/clis/linux-do/topic.js +1 -0
  488. package/clis/linux-do/user-posts.js +1 -0
  489. package/clis/linux-do/user-topics.js +1 -0
  490. package/clis/lobsters/active.js +4 -1
  491. package/clis/lobsters/domain.js +92 -0
  492. package/clis/lobsters/hot.js +4 -1
  493. package/clis/lobsters/lobsters.test.js +169 -0
  494. package/clis/lobsters/newest.js +4 -1
  495. package/clis/lobsters/read.js +196 -0
  496. package/clis/lobsters/tag.js +4 -1
  497. package/clis/maimai/search-talents.js +1 -0
  498. package/clis/maven/artifact.js +49 -0
  499. package/clis/maven/search.js +51 -0
  500. package/clis/maven/utils.js +110 -0
  501. package/clis/mdn/search.js +97 -0
  502. package/clis/medium/feed.js +1 -0
  503. package/clis/medium/search.js +1 -0
  504. package/clis/medium/tag.js +135 -0
  505. package/clis/medium/user.js +1 -0
  506. package/clis/mubu/doc.js +1 -0
  507. package/clis/mubu/docs.js +1 -0
  508. package/clis/mubu/notes.js +1 -0
  509. package/clis/mubu/recent.js +1 -0
  510. package/clis/mubu/search.js +1 -0
  511. package/clis/notebooklm/current.js +1 -0
  512. package/clis/notebooklm/get.js +1 -0
  513. package/clis/notebooklm/history.js +1 -0
  514. package/clis/notebooklm/list.js +1 -0
  515. package/clis/notebooklm/note-list.js +1 -0
  516. package/clis/notebooklm/notes-get.js +1 -0
  517. package/clis/notebooklm/open.js +1 -0
  518. package/clis/notebooklm/source-fulltext.js +1 -0
  519. package/clis/notebooklm/source-get.js +1 -0
  520. package/clis/notebooklm/source-guide.js +1 -0
  521. package/clis/notebooklm/source-list.js +1 -0
  522. package/clis/notebooklm/status.js +1 -0
  523. package/clis/notebooklm/summary.js +1 -0
  524. package/clis/notion/export.js +1 -0
  525. package/clis/notion/favorites.js +1 -0
  526. package/clis/notion/new.js +1 -0
  527. package/clis/notion/read.js +1 -0
  528. package/clis/notion/search.js +1 -0
  529. package/clis/notion/sidebar.js +1 -0
  530. package/clis/notion/status.js +1 -0
  531. package/clis/notion/write.js +1 -0
  532. package/clis/nowcoder/companies.js +1 -0
  533. package/clis/nowcoder/creators.js +1 -0
  534. package/clis/nowcoder/detail.js +1 -0
  535. package/clis/nowcoder/experience.js +1 -0
  536. package/clis/nowcoder/hot.js +1 -0
  537. package/clis/nowcoder/jobs.js +1 -0
  538. package/clis/nowcoder/notifications.js +1 -0
  539. package/clis/nowcoder/papers.js +1 -0
  540. package/clis/nowcoder/practice.js +1 -0
  541. package/clis/nowcoder/recommend.js +1 -0
  542. package/clis/nowcoder/referral.js +1 -0
  543. package/clis/nowcoder/salary.js +1 -0
  544. package/clis/nowcoder/search.js +1 -0
  545. package/clis/nowcoder/suggest.js +1 -0
  546. package/clis/nowcoder/topics.js +1 -0
  547. package/clis/nowcoder/trending.js +1 -0
  548. package/clis/npm/downloads.js +59 -0
  549. package/clis/npm/package.js +70 -0
  550. package/clis/npm/search.js +49 -0
  551. package/clis/npm/utils.js +76 -0
  552. package/clis/nuget/nuget.test.js +111 -0
  553. package/clis/nuget/package.js +101 -0
  554. package/clis/nuget/search.js +69 -0
  555. package/clis/nuget/utils.js +87 -0
  556. package/clis/nvd/cve.js +121 -0
  557. package/clis/oeis/oeis.test.js +88 -0
  558. package/clis/oeis/search.js +63 -0
  559. package/clis/oeis/sequence.js +71 -0
  560. package/clis/oeis/utils.js +88 -0
  561. package/clis/ones/login.js +1 -0
  562. package/clis/ones/logout.js +1 -0
  563. package/clis/ones/me.js +1 -0
  564. package/clis/ones/my-tasks.js +1 -0
  565. package/clis/ones/task.js +1 -0
  566. package/clis/ones/tasks.js +1 -0
  567. package/clis/ones/token-info.js +1 -0
  568. package/clis/ones/worklog.js +1 -0
  569. package/clis/openalex/search.js +69 -0
  570. package/clis/openalex/utils.js +160 -0
  571. package/clis/openalex/work.js +65 -0
  572. package/clis/openfda/drug-label.js +74 -0
  573. package/clis/openfda/food-recall.js +65 -0
  574. package/clis/openfda/openfda.test.js +114 -0
  575. package/clis/openfda/utils.js +67 -0
  576. package/clis/openreview/openreview.test.js +345 -0
  577. package/clis/openreview/paper.js +43 -0
  578. package/clis/openreview/reviews.js +131 -0
  579. package/clis/openreview/search.js +46 -0
  580. package/clis/openreview/utils.js +158 -0
  581. package/clis/openreview/venue.js +63 -0
  582. package/clis/osv/osv.test.js +97 -0
  583. package/clis/osv/query.js +72 -0
  584. package/clis/osv/utils.js +169 -0
  585. package/clis/osv/vulnerability.js +54 -0
  586. package/clis/packagist/package.js +49 -0
  587. package/clis/packagist/search.js +43 -0
  588. package/clis/packagist/utils.js +113 -0
  589. package/clis/paperreview/feedback.js +2 -1
  590. package/clis/paperreview/review.js +2 -1
  591. package/clis/paperreview/submit.js +2 -1
  592. package/clis/pixiv/detail.js +1 -0
  593. package/clis/pixiv/download.js +1 -0
  594. package/clis/pixiv/download.test.js +1 -1
  595. package/clis/pixiv/illusts.js +2 -1
  596. package/clis/pixiv/illusts.test.js +1 -1
  597. package/clis/pixiv/ranking.js +2 -1
  598. package/clis/pixiv/search.js +2 -1
  599. package/clis/pixiv/search.test.js +1 -1
  600. package/clis/pixiv/user.js +2 -0
  601. package/clis/powerchina/search.js +1 -0
  602. package/clis/producthunt/browse.js +1 -0
  603. package/clis/producthunt/hot.js +1 -0
  604. package/clis/producthunt/posts.js +1 -0
  605. package/clis/producthunt/today.js +1 -0
  606. package/clis/pubmed/article.js +50 -0
  607. package/clis/pubmed/author.js +64 -0
  608. package/clis/pubmed/citations.js +36 -0
  609. package/clis/pubmed/pubmed.test.js +276 -0
  610. package/clis/pubmed/related.js +45 -0
  611. package/clis/pubmed/search.js +75 -0
  612. package/clis/pubmed/utils.js +309 -0
  613. package/clis/pypi/downloads.js +66 -0
  614. package/clis/pypi/package.js +79 -0
  615. package/clis/pypi/utils.js +55 -0
  616. package/clis/quark/ls.js +1 -0
  617. package/clis/quark/mkdir.js +1 -0
  618. package/clis/quark/mv.js +2 -1
  619. package/clis/quark/rename.js +1 -0
  620. package/clis/quark/rm.js +1 -0
  621. package/clis/quark/save.js +2 -1
  622. package/clis/quark/share-tree.js +1 -0
  623. package/clis/qwen/ask.js +85 -0
  624. package/clis/qwen/detail.js +62 -0
  625. package/clis/qwen/history.js +61 -0
  626. package/clis/qwen/image.js +179 -0
  627. package/clis/qwen/new.js +23 -0
  628. package/clis/qwen/read.js +41 -0
  629. package/clis/qwen/send.js +55 -0
  630. package/clis/qwen/status.js +37 -0
  631. package/clis/qwen/utils.js +409 -0
  632. package/clis/qwen/utils.test.js +45 -0
  633. package/clis/reddit/comment.js +1 -0
  634. package/clis/reddit/frontpage.js +1 -0
  635. package/clis/reddit/hot.js +6 -1
  636. package/clis/reddit/hot.test.js +18 -0
  637. package/clis/reddit/popular.js +1 -0
  638. package/clis/reddit/read.js +1 -0
  639. package/clis/reddit/save.js +1 -0
  640. package/clis/reddit/saved.js +1 -0
  641. package/clis/reddit/search.js +1 -0
  642. package/clis/reddit/subreddit.js +1 -0
  643. package/clis/reddit/subscribe.js +1 -0
  644. package/clis/reddit/upvote.js +1 -0
  645. package/clis/reddit/upvoted.js +1 -0
  646. package/clis/reddit/user-comments.js +1 -0
  647. package/clis/reddit/user-posts.js +1 -0
  648. package/clis/reddit/user.js +1 -0
  649. package/clis/rest-countries/country.js +65 -0
  650. package/clis/rest-countries/region.js +64 -0
  651. package/clis/rest-countries/rest-countries.test.js +83 -0
  652. package/clis/rest-countries/utils.js +126 -0
  653. package/clis/reuters/article-detail.js +53 -0
  654. package/clis/reuters/reuters.test.js +299 -0
  655. package/clis/reuters/search.js +46 -34
  656. package/clis/reuters/utils.js +159 -0
  657. package/clis/rfc/rfc.js +52 -0
  658. package/clis/rfc/rfc.test.js +74 -0
  659. package/clis/rfc/utils.js +72 -0
  660. package/clis/rubygems/gem.js +42 -0
  661. package/clis/rubygems/search.js +47 -0
  662. package/clis/rubygems/utils.js +86 -0
  663. package/clis/sinablog/article.js +1 -0
  664. package/clis/sinablog/hot.js +1 -0
  665. package/clis/sinablog/search.js +1 -0
  666. package/clis/sinablog/user.js +1 -0
  667. package/clis/sinafinance/news.js +1 -0
  668. package/clis/sinafinance/rolling-news.js +1 -0
  669. package/clis/sinafinance/stock-rank.js +1 -0
  670. package/clis/sinafinance/stock.js +1 -0
  671. package/clis/smzdm/search.js +1 -0
  672. package/clis/spotify/spotify.js +11 -0
  673. package/clis/stackoverflow/bounties.js +11 -3
  674. package/clis/stackoverflow/hot.js +10 -2
  675. package/clis/stackoverflow/read.js +314 -0
  676. package/clis/stackoverflow/related.js +66 -0
  677. package/clis/stackoverflow/search.js +10 -2
  678. package/clis/stackoverflow/stackoverflow.test.js +404 -0
  679. package/clis/stackoverflow/tag.js +60 -0
  680. package/clis/stackoverflow/unanswered.js +9 -2
  681. package/clis/stackoverflow/user.js +50 -0
  682. package/clis/stackoverflow/utils.js +118 -0
  683. package/clis/steam/app.js +67 -0
  684. package/clis/steam/search.js +58 -0
  685. package/clis/steam/steam.test.js +46 -0
  686. package/clis/steam/top-sellers.js +1 -0
  687. package/clis/steam/utils.js +107 -0
  688. package/clis/substack/feed.js +1 -0
  689. package/clis/substack/publication.js +1 -0
  690. package/clis/substack/search.js +1 -0
  691. package/clis/taobao/add-cart.js +1 -0
  692. package/clis/taobao/cart.js +1 -0
  693. package/clis/taobao/commands.test.js +1 -24
  694. package/clis/taobao/detail.js +1 -0
  695. package/clis/taobao/reviews.js +1 -0
  696. package/clis/taobao/search.js +1 -0
  697. package/clis/tdx/hot-rank.js +1 -0
  698. package/clis/test-utils.js +61 -0
  699. package/clis/ths/hot-rank.js +1 -0
  700. package/clis/tieba/hot.js +2 -2
  701. package/clis/tieba/posts.js +1 -0
  702. package/clis/tieba/read.js +1 -0
  703. package/clis/tieba/search.js +2 -1
  704. package/clis/tiktok/comment.js +128 -40
  705. package/clis/tiktok/creator-videos.js +270 -0
  706. package/clis/tiktok/creator-videos.test.js +113 -0
  707. package/clis/tiktok/explore.js +138 -29
  708. package/clis/tiktok/follow.js +116 -33
  709. package/clis/tiktok/following.js +157 -35
  710. package/clis/tiktok/friends.js +140 -37
  711. package/clis/tiktok/like.js +1 -0
  712. package/clis/tiktok/live.js +138 -41
  713. package/clis/tiktok/notifications.js +142 -38
  714. package/clis/tiktok/profile.js +1 -0
  715. package/clis/tiktok/refactor.test.js +389 -0
  716. package/clis/tiktok/save.js +1 -0
  717. package/clis/tiktok/search.js +1 -0
  718. package/clis/tiktok/unfollow.js +125 -38
  719. package/clis/tiktok/unlike.js +1 -0
  720. package/clis/tiktok/unsave.js +1 -0
  721. package/clis/tiktok/user.js +204 -29
  722. package/clis/tiktok/utils.js +505 -0
  723. package/clis/tiktok/write-refactor.test.js +370 -0
  724. package/clis/toutiao/articles.js +37 -62
  725. package/clis/toutiao/hot.js +63 -0
  726. package/clis/toutiao/toutiao.test.js +378 -0
  727. package/clis/toutiao/utils.js +161 -0
  728. package/clis/tvmaze/search.js +61 -0
  729. package/clis/tvmaze/show.js +60 -0
  730. package/clis/tvmaze/tvmaze.test.js +93 -0
  731. package/clis/tvmaze/utils.js +110 -0
  732. package/clis/twitter/accept.js +2 -1
  733. package/clis/twitter/article.js +1 -0
  734. package/clis/twitter/block.js +1 -0
  735. package/clis/twitter/bookmark.js +1 -0
  736. package/clis/twitter/bookmarks.js +2 -1
  737. package/clis/twitter/delete.js +1 -0
  738. package/clis/twitter/download.js +1 -0
  739. package/clis/twitter/follow.js +1 -0
  740. package/clis/twitter/followers.js +135 -69
  741. package/clis/twitter/following.js +1 -0
  742. package/clis/twitter/hide-reply.js +1 -0
  743. package/clis/twitter/like.js +1 -0
  744. package/clis/twitter/likes.js +2 -1
  745. package/clis/twitter/list-add.js +1 -0
  746. package/clis/twitter/list-remove.js +1 -0
  747. package/clis/twitter/list-tweets.js +1 -0
  748. package/clis/twitter/lists.js +1 -0
  749. package/clis/twitter/notifications.js +1 -0
  750. package/clis/twitter/post.js +1 -0
  751. package/clis/twitter/profile.js +1 -0
  752. package/clis/twitter/reply-dm.js +2 -1
  753. package/clis/twitter/reply.js +1 -0
  754. package/clis/twitter/reply.test.js +1 -29
  755. package/clis/twitter/search.js +1 -0
  756. package/clis/twitter/thread.js +1 -0
  757. package/clis/twitter/timeline.js +1 -0
  758. package/clis/twitter/trending.js +11 -12
  759. package/clis/twitter/trending.test.js +15 -0
  760. package/clis/twitter/tweets.js +2 -1
  761. package/clis/twitter/tweets.test.js +2 -2
  762. package/clis/twitter/unblock.js +1 -0
  763. package/clis/twitter/unbookmark.js +1 -0
  764. package/clis/twitter/unfollow.js +1 -0
  765. package/clis/uisdc/news.js +105 -0
  766. package/clis/uisdc/news.test.js +66 -0
  767. package/clis/uiverse/code.js +1 -0
  768. package/clis/uiverse/preview.js +1 -0
  769. package/clis/v2ex/daily.js +1 -0
  770. package/clis/v2ex/hot.js +1 -0
  771. package/clis/v2ex/latest.js +1 -0
  772. package/clis/v2ex/me.js +1 -0
  773. package/clis/v2ex/member.js +1 -0
  774. package/clis/v2ex/node.js +1 -0
  775. package/clis/v2ex/nodes.js +1 -0
  776. package/clis/v2ex/notifications.js +1 -0
  777. package/clis/v2ex/replies.js +1 -0
  778. package/clis/v2ex/topic.js +1 -0
  779. package/clis/v2ex/user.js +1 -0
  780. package/clis/wanfang/search.js +1 -1
  781. package/clis/web/read.js +48 -17
  782. package/clis/web/read.test.js +101 -1
  783. package/clis/weibo/comments.js +1 -0
  784. package/clis/weibo/favorites.js +1 -0
  785. package/clis/weibo/feed.js +3 -1
  786. package/clis/weibo/hot.js +1 -0
  787. package/clis/weibo/me.js +1 -0
  788. package/clis/weibo/post.js +1 -0
  789. package/clis/weibo/publish.js +1 -0
  790. package/clis/weibo/search.js +8 -2
  791. package/clis/weibo/user.js +1 -0
  792. package/clis/weixin/create-draft.js +2 -1
  793. package/clis/weixin/download.js +1 -0
  794. package/clis/weixin/drafts.js +2 -1
  795. package/clis/weixin/drafts.test.js +5 -1
  796. package/clis/weixin/search.js +157 -0
  797. package/clis/weixin/search.test.js +227 -0
  798. package/clis/weread/ai-outline.js +1 -0
  799. package/clis/weread/book.js +1 -0
  800. package/clis/weread/highlights.js +1 -0
  801. package/clis/weread/notebooks.js +1 -0
  802. package/clis/weread/notes.js +1 -0
  803. package/clis/weread/ranking.js +1 -0
  804. package/clis/weread/search.js +1 -0
  805. package/clis/weread/shelf.js +1 -0
  806. package/clis/wikidata/entity.js +60 -0
  807. package/clis/wikidata/search.js +50 -0
  808. package/clis/wikidata/utils.js +117 -0
  809. package/clis/wikidata/wikidata.test.js +83 -0
  810. package/clis/wikipedia/page.js +95 -0
  811. package/clis/wikipedia/random.js +1 -0
  812. package/clis/wikipedia/search.js +1 -0
  813. package/clis/wikipedia/summary.js +1 -0
  814. package/clis/wikipedia/trending.js +1 -0
  815. package/clis/wttr/current.js +63 -0
  816. package/clis/wttr/forecast.js +71 -0
  817. package/clis/wttr/utils.js +50 -0
  818. package/clis/wttr/wttr.test.js +84 -0
  819. package/clis/xianyu/chat.js +17 -4
  820. package/clis/xianyu/chat.test.js +64 -0
  821. package/clis/xianyu/item.js +1 -0
  822. package/clis/xianyu/publish.js +485 -0
  823. package/clis/xianyu/publish.test.js +220 -0
  824. package/clis/xianyu/search.js +1 -0
  825. package/clis/xiaoe/catalog.js +105 -39
  826. package/clis/xiaoe/content.js +165 -29
  827. package/clis/xiaoe/courses.js +86 -28
  828. package/clis/xiaoe/detail.js +1 -0
  829. package/clis/xiaoe/play-url.js +1 -0
  830. package/clis/xiaoe/xiaoe.test.js +486 -0
  831. package/clis/xiaohongshu/comments.js +1 -0
  832. package/clis/xiaohongshu/creator-note-detail.js +1 -0
  833. package/clis/xiaohongshu/creator-notes-summary.js +2 -1
  834. package/clis/xiaohongshu/creator-notes.js +1 -0
  835. package/clis/xiaohongshu/creator-profile.js +1 -0
  836. package/clis/xiaohongshu/creator-stats.js +1 -0
  837. package/clis/xiaohongshu/download.js +1 -0
  838. package/clis/xiaohongshu/feed.js +2 -1
  839. package/clis/xiaohongshu/note.js +1 -0
  840. package/clis/xiaohongshu/notifications.js +1 -0
  841. package/clis/xiaohongshu/publish.js +17 -3
  842. package/clis/xiaohongshu/publish.test.js +46 -1
  843. package/clis/xiaohongshu/search.js +1 -0
  844. package/clis/xiaohongshu/user.js +1 -0
  845. package/clis/xiaoyuzhou/download.js +1 -0
  846. package/clis/xiaoyuzhou/episode.js +1 -0
  847. package/clis/xiaoyuzhou/podcast-episodes.js +1 -0
  848. package/clis/xiaoyuzhou/podcast.js +1 -0
  849. package/clis/xiaoyuzhou/transcript.js +1 -0
  850. package/clis/xueqiu/comments.js +1 -0
  851. package/clis/xueqiu/earnings-date.js +1 -0
  852. package/clis/xueqiu/feed.js +1 -0
  853. package/clis/xueqiu/fund-holdings.js +1 -0
  854. package/clis/xueqiu/fund-snapshot.js +1 -0
  855. package/clis/xueqiu/groups.js +1 -0
  856. package/clis/xueqiu/hot-stock.js +1 -0
  857. package/clis/xueqiu/hot.js +1 -0
  858. package/clis/xueqiu/kline.js +1 -0
  859. package/clis/xueqiu/search.js +1 -0
  860. package/clis/xueqiu/stock.js +1 -0
  861. package/clis/xueqiu/watchlist.js +1 -0
  862. package/clis/yahoo-finance/quote.js +1 -0
  863. package/clis/yollomi/background.js +1 -0
  864. package/clis/yollomi/edit.js +1 -0
  865. package/clis/yollomi/face-swap.js +1 -0
  866. package/clis/yollomi/generate.js +1 -0
  867. package/clis/yollomi/models.js +1 -0
  868. package/clis/yollomi/object-remover.js +1 -0
  869. package/clis/yollomi/remove-bg.js +1 -0
  870. package/clis/yollomi/restore.js +1 -0
  871. package/clis/yollomi/try-on.js +1 -0
  872. package/clis/yollomi/upload.js +1 -0
  873. package/clis/yollomi/upscale.js +1 -0
  874. package/clis/yollomi/video.js +1 -0
  875. package/clis/youtube/channel.js +1 -0
  876. package/clis/youtube/comments.js +1 -0
  877. package/clis/youtube/feed.js +8 -7
  878. package/clis/youtube/feed.test.js +131 -0
  879. package/clis/youtube/history.js +1 -0
  880. package/clis/youtube/like.js +1 -0
  881. package/clis/youtube/playlist.js +1 -0
  882. package/clis/youtube/search.js +1 -0
  883. package/clis/youtube/subscribe.js +1 -0
  884. package/clis/youtube/subscriptions.js +1 -0
  885. package/clis/youtube/transcript.js +14 -19
  886. package/clis/youtube/transcript.test.js +17 -0
  887. package/clis/youtube/unlike.js +1 -0
  888. package/clis/youtube/unsubscribe.js +1 -0
  889. package/clis/youtube/video.js +1 -0
  890. package/clis/youtube/watch-later.js +1 -0
  891. package/clis/yuanbao/ask.js +18 -66
  892. package/clis/yuanbao/ask.test.js +5 -5
  893. package/clis/yuanbao/detail.js +65 -0
  894. package/clis/yuanbao/history.js +51 -0
  895. package/clis/yuanbao/new.js +2 -0
  896. package/clis/yuanbao/read.js +38 -0
  897. package/clis/yuanbao/send.js +57 -0
  898. package/clis/yuanbao/shared.js +297 -5
  899. package/clis/yuanbao/shared.test.js +80 -0
  900. package/clis/yuanbao/status.js +44 -0
  901. package/clis/zhihu/answer.js +1 -0
  902. package/clis/zhihu/collection.js +1 -0
  903. package/clis/zhihu/collections.js +1 -0
  904. package/clis/zhihu/comment.js +1 -0
  905. package/clis/zhihu/download.js +1 -0
  906. package/clis/zhihu/favorite.js +1 -0
  907. package/clis/zhihu/follow.js +1 -0
  908. package/clis/zhihu/hot.js +1 -0
  909. package/clis/zhihu/like.js +1 -0
  910. package/clis/zhihu/question.js +1 -0
  911. package/clis/zhihu/search.js +1 -0
  912. package/clis/zlibrary/commands.test.js +1 -11
  913. package/clis/zlibrary/info.js +1 -0
  914. package/clis/zlibrary/search.js +1 -0
  915. package/clis/zsxq/dynamics.js +1 -0
  916. package/clis/zsxq/groups.js +1 -0
  917. package/clis/zsxq/search.js +1 -0
  918. package/clis/zsxq/topic.js +1 -0
  919. package/clis/zsxq/topics.js +1 -0
  920. package/dist/src/adapter-source.test.js +1 -1
  921. package/dist/src/browser/analyze.test.js +2 -0
  922. package/dist/src/browser/base-page.d.ts +18 -0
  923. package/dist/src/browser/base-page.js +116 -4
  924. package/dist/src/browser/base-page.test.js +108 -0
  925. package/dist/src/browser/cdp.d.ts +1 -0
  926. package/dist/src/browser/cdp.js +57 -9
  927. package/dist/src/browser/cdp.test.js +3 -0
  928. package/dist/src/browser/daemon-client.d.ts +4 -0
  929. package/dist/src/browser/errors.js +1 -1
  930. package/dist/src/browser/page.d.ts +2 -1
  931. package/dist/src/browser/page.js +9 -1
  932. package/dist/src/browser/page.test.js +46 -0
  933. package/dist/src/browser/target-errors.d.ts +2 -1
  934. package/dist/src/browser/target-errors.js +1 -0
  935. package/dist/src/browser/target-resolver.d.ts +35 -3
  936. package/dist/src/browser/target-resolver.js +59 -10
  937. package/dist/src/browser/verify-fixture.d.ts +6 -1
  938. package/dist/src/browser/verify-fixture.js +87 -0
  939. package/dist/src/browser/verify-fixture.test.js +44 -1
  940. package/dist/src/build-manifest.js +12 -4
  941. package/dist/src/build-manifest.test.js +20 -20
  942. package/dist/src/capabilityRouting.d.ts +16 -1
  943. package/dist/src/capabilityRouting.js +24 -1
  944. package/dist/src/capabilityRouting.test.js +20 -2
  945. package/dist/src/cli.js +213 -12
  946. package/dist/src/cli.test.js +329 -0
  947. package/dist/src/commanderAdapter.d.ts +1 -1
  948. package/dist/src/commanderAdapter.js +17 -12
  949. package/dist/src/commanderAdapter.test.js +7 -7
  950. package/dist/src/convention-audit.d.ts +50 -0
  951. package/dist/src/convention-audit.js +546 -0
  952. package/dist/src/convention-audit.test.d.ts +1 -0
  953. package/dist/src/convention-audit.test.js +226 -0
  954. package/dist/src/discovery.js +4 -5
  955. package/dist/src/doctor.js +0 -1
  956. package/dist/src/doctor.test.js +1 -1
  957. package/dist/src/engine.test.js +10 -10
  958. package/dist/src/errors.js +1 -1
  959. package/dist/src/execution.d.ts +1 -1
  960. package/dist/src/execution.js +111 -27
  961. package/dist/src/execution.test.js +334 -25
  962. package/dist/src/help.d.ts +36 -0
  963. package/dist/src/help.js +171 -0
  964. package/dist/src/help.test.d.ts +1 -0
  965. package/dist/src/help.test.js +54 -0
  966. package/dist/src/main.js +27 -8
  967. package/dist/src/manifest-types.d.ts +7 -3
  968. package/dist/src/pipeline/executor.js +1 -1
  969. package/dist/src/pipeline/executor.test.js +8 -0
  970. package/dist/src/pipeline/registry.d.ts +9 -0
  971. package/dist/src/pipeline/registry.js +13 -1
  972. package/dist/src/pipeline/steps/browser.d.ts +1 -0
  973. package/dist/src/pipeline/steps/browser.js +10 -0
  974. package/dist/src/pipeline/steps/download.test.js +1 -0
  975. package/dist/src/plugin.test.js +26 -26
  976. package/dist/src/registry-api.d.ts +1 -1
  977. package/dist/src/registry.d.ts +17 -11
  978. package/dist/src/registry.js +24 -6
  979. package/dist/src/registry.test.js +29 -22
  980. package/dist/src/runtime.d.ts +2 -1
  981. package/dist/src/runtime.js +1 -1
  982. package/dist/src/serialization.d.ts +6 -2
  983. package/dist/src/serialization.js +31 -7
  984. package/dist/src/serialization.test.js +41 -2
  985. package/dist/src/types.d.ts +19 -0
  986. package/dist/src/validate.js +15 -11
  987. package/dist/src/validate.test.d.ts +9 -0
  988. package/dist/src/validate.test.js +90 -0
  989. package/package.json +4 -1
  990. package/scripts/check-listing-id-pairing.mjs +193 -0
  991. package/scripts/check-silent-column-drop.mjs +105 -0
  992. package/scripts/check-typed-error-lint.mjs +118 -0
  993. package/scripts/fetch-adapters.js +1 -1
  994. package/scripts/silent-column-drop-baseline.json +962 -0
  995. package/scripts/typed-error-lint-baseline.json +1514 -0
  996. package/clis/ctrip/search.test.js +0 -64
  997. package/clis/gov-policy/commands.test.js +0 -27
  998. package/clis/linux-do/category.js +0 -36
  999. package/clis/linux-do/hot.js +0 -25
  1000. package/clis/linux-do/latest.js +0 -18
  1001. package/clis/pixiv/test-utils.js +0 -23
  1002. package/clis/toutiao/articles.test.js +0 -30
  1003. package/dist/src/analysis.d.ts +0 -40
  1004. package/dist/src/analysis.js +0 -172
@@ -0,0 +1,1514 @@
1
+ [
2
+ {
3
+ "rule": "silent-clamp",
4
+ "command": "36kr/hot",
5
+ "file": "clis/36kr/hot.js",
6
+ "line": 45,
7
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
8
+ "occurrence": 0
9
+ },
10
+ {
11
+ "rule": "silent-clamp",
12
+ "command": "36kr/news",
13
+ "file": "clis/36kr/news.js",
14
+ "line": 17,
15
+ "text": "const count = Math.min(kwargs.limit || 20, 50);",
16
+ "occurrence": 0
17
+ },
18
+ {
19
+ "rule": "silent-clamp",
20
+ "command": "36kr/search",
21
+ "file": "clis/36kr/search.js",
22
+ "line": 22,
23
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
24
+ "occurrence": 0
25
+ },
26
+ {
27
+ "rule": "silent-clamp",
28
+ "command": "51job/company",
29
+ "file": "clis/51job/company.js",
30
+ "line": 39,
31
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 50));",
32
+ "occurrence": 0
33
+ },
34
+ {
35
+ "rule": "silent-clamp",
36
+ "command": "51job/hot",
37
+ "file": "clis/51job/hot.js",
38
+ "line": 34,
39
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 50));",
40
+ "occurrence": 0
41
+ },
42
+ {
43
+ "rule": "silent-clamp",
44
+ "command": "51job/hot",
45
+ "file": "clis/51job/hot.js",
46
+ "line": 46,
47
+ "text": "pageNum, pageSize: Math.min(limit, 50),",
48
+ "occurrence": 0
49
+ },
50
+ {
51
+ "rule": "silent-clamp",
52
+ "command": "51job/search",
53
+ "file": "clis/51job/search.js",
54
+ "line": 46,
55
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 50));",
56
+ "occurrence": 0
57
+ },
58
+ {
59
+ "rule": "silent-clamp",
60
+ "command": "51job/search",
61
+ "file": "clis/51job/search.js",
62
+ "line": 67,
63
+ "text": "pageNum, pageSize: Math.min(limit, 50),",
64
+ "occurrence": 0
65
+ },
66
+ {
67
+ "rule": "silent-clamp",
68
+ "command": "apple-podcasts/episodes",
69
+ "file": "clis/apple-podcasts/episodes.js",
70
+ "line": 17,
71
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 200));",
72
+ "occurrence": 0
73
+ },
74
+ {
75
+ "rule": "silent-clamp",
76
+ "command": "apple-podcasts/search",
77
+ "file": "clis/apple-podcasts/search.js",
78
+ "line": 18,
79
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 25));",
80
+ "occurrence": 0
81
+ },
82
+ {
83
+ "rule": "silent-clamp",
84
+ "command": "apple-podcasts/top",
85
+ "file": "clis/apple-podcasts/top.js",
86
+ "line": 19,
87
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 100));",
88
+ "occurrence": 0
89
+ },
90
+ {
91
+ "rule": "silent-clamp",
92
+ "command": "bbc/news",
93
+ "file": "clis/bbc/news.js",
94
+ "line": 17,
95
+ "text": "const count = Math.min(kwargs.limit || 20, 50);",
96
+ "occurrence": 0
97
+ },
98
+ {
99
+ "rule": "silent-clamp",
100
+ "command": "bilibili/comments",
101
+ "file": "clis/bilibili/comments.js",
102
+ "line": 21,
103
+ "text": "const limit = Math.min(Number(kwargs.limit) || 20, 50);",
104
+ "occurrence": 0
105
+ },
106
+ {
107
+ "rule": "silent-clamp",
108
+ "command": "bilibili/favorite",
109
+ "file": "clis/bilibili/favorite.js",
110
+ "line": 35,
111
+ "text": "params: { media_id: fid, pn: pageNum, ps: Math.min(Number(limit), 40) },",
112
+ "occurrence": 0
113
+ },
114
+ {
115
+ "rule": "silent-clamp",
116
+ "command": "bilibili/following",
117
+ "file": "clis/bilibili/following.js",
118
+ "line": 25,
119
+ "text": "const ps = Math.min(kwargs.limit ?? 50, 50);",
120
+ "occurrence": 0
121
+ },
122
+ {
123
+ "rule": "silent-clamp",
124
+ "command": "bilibili/history",
125
+ "file": "clis/bilibili/history.js",
126
+ "line": 17,
127
+ "text": "params: { ps: Math.min(Number(limit), 30), type: 'archive' },",
128
+ "occurrence": 0
129
+ },
130
+ {
131
+ "rule": "silent-clamp",
132
+ "command": "bilibili/user-videos",
133
+ "file": "clis/bilibili/user-videos.js",
134
+ "line": 24,
135
+ "text": "ps: Math.min(Number(limit), 50),",
136
+ "occurrence": 0
137
+ },
138
+ {
139
+ "rule": "silent-clamp",
140
+ "command": "douyin/user-videos",
141
+ "file": "clis/douyin/user-videos.js",
142
+ "line": 16,
143
+ "text": "return Math.min(DEFAULT_COMMENT_LIMIT, Math.max(1, Math.round(numeric)));",
144
+ "occurrence": 0
145
+ },
146
+ {
147
+ "rule": "silent-clamp",
148
+ "command": "douyin/user-videos",
149
+ "file": "clis/douyin/user-videos.js",
150
+ "line": 10,
151
+ "text": "return Math.min(MAX_USER_VIDEOS_LIMIT, Math.max(1, Math.round(numeric)));",
152
+ "occurrence": 0
153
+ },
154
+ {
155
+ "rule": "silent-clamp",
156
+ "command": "eastmoney/announcement",
157
+ "file": "clis/eastmoney/announcement.js",
158
+ "line": 24,
159
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
160
+ "occurrence": 0
161
+ },
162
+ {
163
+ "rule": "silent-clamp",
164
+ "command": "eastmoney/convertible",
165
+ "file": "clis/eastmoney/convertible.js",
166
+ "line": 36,
167
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
168
+ "occurrence": 0
169
+ },
170
+ {
171
+ "rule": "silent-clamp",
172
+ "command": "eastmoney/etf",
173
+ "file": "clis/eastmoney/etf.js",
174
+ "line": 34,
175
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
176
+ "occurrence": 0
177
+ },
178
+ {
179
+ "rule": "silent-clamp",
180
+ "command": "eastmoney/holders",
181
+ "file": "clis/eastmoney/holders.js",
182
+ "line": 46,
183
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 10, 50));",
184
+ "occurrence": 0
185
+ },
186
+ {
187
+ "rule": "silent-clamp",
188
+ "command": "eastmoney/kline",
189
+ "file": "clis/eastmoney/kline.js",
190
+ "line": 52,
191
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 30, 1000));",
192
+ "occurrence": 0
193
+ },
194
+ {
195
+ "rule": "silent-clamp",
196
+ "command": "eastmoney/kuaixun",
197
+ "file": "clis/eastmoney/kuaixun.js",
198
+ "line": 32,
199
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
200
+ "occurrence": 0
201
+ },
202
+ {
203
+ "rule": "silent-clamp",
204
+ "command": "eastmoney/longhu",
205
+ "file": "clis/eastmoney/longhu.js",
206
+ "line": 32,
207
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
208
+ "occurrence": 0
209
+ },
210
+ {
211
+ "rule": "silent-clamp",
212
+ "command": "eastmoney/money-flow",
213
+ "file": "clis/eastmoney/money-flow.js",
214
+ "line": 39,
215
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
216
+ "occurrence": 0
217
+ },
218
+ {
219
+ "rule": "silent-clamp",
220
+ "command": "eastmoney/northbound",
221
+ "file": "clis/eastmoney/northbound.js",
222
+ "line": 28,
223
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 10, 240));",
224
+ "occurrence": 0
225
+ },
226
+ {
227
+ "rule": "silent-clamp",
228
+ "command": "eastmoney/rank",
229
+ "file": "clis/eastmoney/rank.js",
230
+ "line": 50,
231
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
232
+ "occurrence": 0
233
+ },
234
+ {
235
+ "rule": "silent-clamp",
236
+ "command": "eastmoney/sectors",
237
+ "file": "clis/eastmoney/sectors.js",
238
+ "line": 44,
239
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
240
+ "occurrence": 0
241
+ },
242
+ {
243
+ "rule": "silent-clamp",
244
+ "command": "facebook/marketplace-inbox",
245
+ "file": "clis/facebook/marketplace-inbox.js",
246
+ "line": 9,
247
+ "text": "return Math.min(limit, 100);",
248
+ "occurrence": 0
249
+ },
250
+ {
251
+ "rule": "silent-clamp",
252
+ "command": "facebook/marketplace-listings",
253
+ "file": "clis/facebook/marketplace-listings.js",
254
+ "line": 9,
255
+ "text": "return Math.min(limit, 100);",
256
+ "occurrence": 0
257
+ },
258
+ {
259
+ "rule": "silent-clamp",
260
+ "command": "gitee/search",
261
+ "file": "clis/gitee/search.js",
262
+ "line": 11,
263
+ "text": "return Math.max(1, Math.min(parsed, MAX_LIMIT));",
264
+ "occurrence": 0
265
+ },
266
+ {
267
+ "rule": "silent-clamp",
268
+ "command": "gitee/trending",
269
+ "file": "clis/gitee/trending.js",
270
+ "line": 71,
271
+ "text": "return Math.max(1, Math.min(parsed, MAX_LIMIT));",
272
+ "occurrence": 0
273
+ },
274
+ {
275
+ "rule": "silent-clamp",
276
+ "command": "google/news",
277
+ "file": "clis/google/news.js",
278
+ "line": 23,
279
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 100));",
280
+ "occurrence": 0
281
+ },
282
+ {
283
+ "rule": "silent-clamp",
284
+ "command": "google/search",
285
+ "file": "clis/google/search.js",
286
+ "line": 27,
287
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 100));",
288
+ "occurrence": 0
289
+ },
290
+ {
291
+ "rule": "silent-clamp",
292
+ "command": "google/trends",
293
+ "file": "clis/google/trends.js",
294
+ "line": 21,
295
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 100));",
296
+ "occurrence": 0
297
+ },
298
+ {
299
+ "rule": "silent-clamp",
300
+ "command": "hackernews/ask",
301
+ "file": "clis/hackernews/ask.js",
302
+ "line": 16,
303
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
304
+ "occurrence": 0
305
+ },
306
+ {
307
+ "rule": "silent-clamp",
308
+ "command": "hackernews/best",
309
+ "file": "clis/hackernews/best.js",
310
+ "line": 16,
311
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
312
+ "occurrence": 0
313
+ },
314
+ {
315
+ "rule": "silent-clamp",
316
+ "command": "hackernews/jobs",
317
+ "file": "clis/hackernews/jobs.js",
318
+ "line": 16,
319
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
320
+ "occurrence": 0
321
+ },
322
+ {
323
+ "rule": "silent-clamp",
324
+ "command": "hackernews/new",
325
+ "file": "clis/hackernews/new.js",
326
+ "line": 16,
327
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
328
+ "occurrence": 0
329
+ },
330
+ {
331
+ "rule": "silent-clamp",
332
+ "command": "hackernews/show",
333
+ "file": "clis/hackernews/show.js",
334
+ "line": 16,
335
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
336
+ "occurrence": 0
337
+ },
338
+ {
339
+ "rule": "silent-clamp",
340
+ "command": "hackernews/top",
341
+ "file": "clis/hackernews/top.js",
342
+ "line": 16,
343
+ "text": "{ limit: '${{ Math.min((args.limit ? args.limit : 20) + 10, 50) }}' },",
344
+ "occurrence": 0
345
+ },
346
+ {
347
+ "rule": "silent-clamp",
348
+ "command": "hupu/mentions",
349
+ "file": "clis/hupu/mentions.js",
350
+ "line": 34,
351
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 100));",
352
+ "occurrence": 0
353
+ },
354
+ {
355
+ "rule": "silent-clamp",
356
+ "command": "imdb/person",
357
+ "file": "clis/imdb/person.js",
358
+ "line": 23,
359
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 10, 30));",
360
+ "occurrence": 0
361
+ },
362
+ {
363
+ "rule": "silent-clamp",
364
+ "command": "imdb/reviews",
365
+ "file": "clis/imdb/reviews.js",
366
+ "line": 22,
367
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 10, 25));",
368
+ "occurrence": 0
369
+ },
370
+ {
371
+ "rule": "silent-clamp",
372
+ "command": "imdb/search",
373
+ "file": "clis/imdb/search.js",
374
+ "line": 26,
375
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 50));",
376
+ "occurrence": 0
377
+ },
378
+ {
379
+ "rule": "silent-clamp",
380
+ "command": "imdb/top",
381
+ "file": "clis/imdb/top.js",
382
+ "line": 31,
383
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 250));",
384
+ "occurrence": 0
385
+ },
386
+ {
387
+ "rule": "silent-clamp",
388
+ "command": "imdb/trending",
389
+ "file": "clis/imdb/trending.js",
390
+ "line": 31,
391
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 100));",
392
+ "occurrence": 0
393
+ },
394
+ {
395
+ "rule": "silent-clamp",
396
+ "command": "jianyu/search",
397
+ "file": "clis/jianyu/search.js",
398
+ "line": 542,
399
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 50));",
400
+ "occurrence": 0
401
+ },
402
+ {
403
+ "rule": "silent-clamp",
404
+ "command": "jianyu/search",
405
+ "file": "clis/jianyu/search.js",
406
+ "line": 426,
407
+ "text": "pageSize: Math.max(20, Math.min(${Math.max(20, limit)}, 50)),",
408
+ "occurrence": 0
409
+ },
410
+ {
411
+ "rule": "silent-clamp",
412
+ "command": "linkedin/search",
413
+ "file": "clis/linkedin/search.js",
414
+ "line": 249,
415
+ "text": "const count = Math.min(MAX_BATCH, input.limit - allJobs.length);",
416
+ "occurrence": 0
417
+ },
418
+ {
419
+ "rule": "silent-clamp",
420
+ "command": "linkedin/timeline",
421
+ "file": "clis/linkedin/timeline.js",
422
+ "line": 473,
423
+ "text": "const limit = Math.max(1, Math.min(kwargs.limit ?? 20, 100));",
424
+ "occurrence": 0
425
+ },
426
+ {
427
+ "rule": "silent-clamp",
428
+ "command": "ones/my-tasks",
429
+ "file": "clis/ones/my-tasks.js",
430
+ "line": 84,
431
+ "text": "const cap = Math.min(500, limit * 2);",
432
+ "occurrence": 0
433
+ },
434
+ {
435
+ "rule": "silent-clamp",
436
+ "command": "powerchina/search",
437
+ "file": "clis/powerchina/search.js",
438
+ "line": 174,
439
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 20, 50));",
440
+ "occurrence": 0
441
+ },
442
+ {
443
+ "rule": "silent-clamp",
444
+ "command": "powerchina/search",
445
+ "file": "clis/powerchina/search.js",
446
+ "line": 125,
447
+ "text": "const pageSize = Math.max(20, Math.min(100, Math.max(limit * 3, limit)));",
448
+ "occurrence": 0
449
+ },
450
+ {
451
+ "rule": "silent-clamp",
452
+ "command": "producthunt/browse",
453
+ "file": "clis/producthunt/browse.js",
454
+ "line": 29,
455
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
456
+ "occurrence": 0
457
+ },
458
+ {
459
+ "rule": "silent-clamp",
460
+ "command": "producthunt/hot",
461
+ "file": "clis/producthunt/hot.js",
462
+ "line": 21,
463
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
464
+ "occurrence": 0
465
+ },
466
+ {
467
+ "rule": "silent-clamp",
468
+ "command": "producthunt/posts",
469
+ "file": "clis/producthunt/posts.js",
470
+ "line": 24,
471
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
472
+ "occurrence": 0
473
+ },
474
+ {
475
+ "rule": "silent-clamp",
476
+ "command": "producthunt/today",
477
+ "file": "clis/producthunt/today.js",
478
+ "line": 21,
479
+ "text": "const count = Math.min(Number(args.limit) || 20, 50);",
480
+ "occurrence": 0
481
+ },
482
+ {
483
+ "rule": "silent-clamp",
484
+ "command": "reddit/read",
485
+ "file": "clis/reddit/read.js",
486
+ "line": 157,
487
+ "text": "for (var i = 0; i < Math.min(t1TopLevel.length, limit); i++) {",
488
+ "occurrence": 0
489
+ },
490
+ {
491
+ "rule": "silent-clamp",
492
+ "command": "sinablog/search",
493
+ "file": "clis/sinablog/search.js",
494
+ "line": 51,
495
+ "text": "func: async (args) => searchSinaBlog(args.keyword, Math.max(1, Math.min(Number(args.limit) || 20, 50))),",
496
+ "occurrence": 0
497
+ },
498
+ {
499
+ "rule": "silent-clamp",
500
+ "command": "sinafinance/news",
501
+ "file": "clis/sinafinance/news.js",
502
+ "line": 39,
503
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 50));",
504
+ "occurrence": 0
505
+ },
506
+ {
507
+ "rule": "silent-clamp",
508
+ "command": "spotify/auth",
509
+ "file": "clis/spotify/spotify.js",
510
+ "line": 277,
511
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
512
+ "occurrence": 0
513
+ },
514
+ {
515
+ "rule": "silent-clamp",
516
+ "command": "spotify/next",
517
+ "file": "clis/spotify/spotify.js",
518
+ "line": 277,
519
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
520
+ "occurrence": 0
521
+ },
522
+ {
523
+ "rule": "silent-clamp",
524
+ "command": "spotify/pause",
525
+ "file": "clis/spotify/spotify.js",
526
+ "line": 277,
527
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
528
+ "occurrence": 0
529
+ },
530
+ {
531
+ "rule": "silent-clamp",
532
+ "command": "spotify/play",
533
+ "file": "clis/spotify/spotify.js",
534
+ "line": 277,
535
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
536
+ "occurrence": 0
537
+ },
538
+ {
539
+ "rule": "silent-clamp",
540
+ "command": "spotify/prev",
541
+ "file": "clis/spotify/spotify.js",
542
+ "line": 277,
543
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
544
+ "occurrence": 0
545
+ },
546
+ {
547
+ "rule": "silent-clamp",
548
+ "command": "spotify/queue",
549
+ "file": "clis/spotify/spotify.js",
550
+ "line": 277,
551
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
552
+ "occurrence": 0
553
+ },
554
+ {
555
+ "rule": "silent-clamp",
556
+ "command": "spotify/repeat",
557
+ "file": "clis/spotify/spotify.js",
558
+ "line": 277,
559
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
560
+ "occurrence": 0
561
+ },
562
+ {
563
+ "rule": "silent-clamp",
564
+ "command": "spotify/search",
565
+ "file": "clis/spotify/spotify.js",
566
+ "line": 277,
567
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
568
+ "occurrence": 0
569
+ },
570
+ {
571
+ "rule": "silent-clamp",
572
+ "command": "spotify/shuffle",
573
+ "file": "clis/spotify/spotify.js",
574
+ "line": 277,
575
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
576
+ "occurrence": 0
577
+ },
578
+ {
579
+ "rule": "silent-clamp",
580
+ "command": "spotify/status",
581
+ "file": "clis/spotify/spotify.js",
582
+ "line": 277,
583
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
584
+ "occurrence": 0
585
+ },
586
+ {
587
+ "rule": "silent-clamp",
588
+ "command": "spotify/volume",
589
+ "file": "clis/spotify/spotify.js",
590
+ "line": 277,
591
+ "text": "const limit = Math.min(50, Math.max(1, Math.round(kwargs.limit)));",
592
+ "occurrence": 0
593
+ },
594
+ {
595
+ "rule": "silent-clamp",
596
+ "command": "stackoverflow/read",
597
+ "file": "clis/stackoverflow/read.js",
598
+ "line": 125,
599
+ "text": "const pageSize = Math.min(SE_MAX_PAGE_SIZE, answers.length * commentsLimit);",
600
+ "occurrence": 0
601
+ },
602
+ {
603
+ "rule": "silent-clamp",
604
+ "command": "substack/search",
605
+ "file": "clis/substack/search.js",
606
+ "line": 74,
607
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 20, 50));",
608
+ "occurrence": 0
609
+ },
610
+ {
611
+ "rule": "silent-clamp",
612
+ "command": "tieba/posts",
613
+ "file": "clis/tieba/posts.js",
614
+ "line": 22,
615
+ "text": "rn_need: String(Math.min(Math.max(limit + 10, 10), 30)),",
616
+ "occurrence": 0
617
+ },
618
+ {
619
+ "rule": "silent-clamp",
620
+ "command": "twitter/bookmarks",
621
+ "file": "clis/twitter/bookmarks.js",
622
+ "line": 155,
623
+ "text": "const fetchCount = Math.min(100, limit - allTweets.length + 10);",
624
+ "occurrence": 0
625
+ },
626
+ {
627
+ "rule": "silent-clamp",
628
+ "command": "twitter/following",
629
+ "file": "clis/twitter/following.js",
630
+ "line": 209,
631
+ "text": "const fetchCount = Math.min(50, limit - allUsers.length + 10);",
632
+ "occurrence": 0
633
+ },
634
+ {
635
+ "rule": "silent-clamp",
636
+ "command": "twitter/likes",
637
+ "file": "clis/twitter/likes.js",
638
+ "line": 194,
639
+ "text": "const fetchCount = Math.min(100, limit - allTweets.length + 10);",
640
+ "occurrence": 0
641
+ },
642
+ {
643
+ "rule": "silent-clamp",
644
+ "command": "twitter/list-tweets",
645
+ "file": "clis/twitter/list-tweets.js",
646
+ "line": 167,
647
+ "text": "const fetchCount = Math.min(100, limit - allTweets.length + 10);",
648
+ "occurrence": 0
649
+ },
650
+ {
651
+ "rule": "silent-clamp",
652
+ "command": "twitter/timeline",
653
+ "file": "clis/twitter/timeline.js",
654
+ "line": 181,
655
+ "text": "const fetchCount = Math.min(40, limit - allTweets.length + 5); // over-fetch slightly for promoted filtering",
656
+ "occurrence": 0
657
+ },
658
+ {
659
+ "rule": "silent-clamp",
660
+ "command": "twitter/tweets",
661
+ "file": "clis/twitter/tweets.js",
662
+ "line": 193,
663
+ "text": "const fetchCount = Math.min(100, limit - all.length + 10);",
664
+ "occurrence": 0
665
+ },
666
+ {
667
+ "rule": "silent-clamp",
668
+ "command": "twitter/tweets",
669
+ "file": "clis/twitter/tweets.js",
670
+ "line": 158,
671
+ "text": "const limit = Math.max(1, Math.min(200, kwargs.limit || 20));",
672
+ "occurrence": 0
673
+ },
674
+ {
675
+ "rule": "silent-clamp",
676
+ "command": "weibo/comments",
677
+ "file": "clis/weibo/comments.js",
678
+ "line": 18,
679
+ "text": "const count = Math.min(kwargs.limit || 20, 50);",
680
+ "occurrence": 0
681
+ },
682
+ {
683
+ "rule": "silent-clamp",
684
+ "command": "weibo/feed",
685
+ "file": "clis/weibo/feed.js",
686
+ "line": 28,
687
+ "text": "const count = Math.min(kwargs.limit || 15, 50);",
688
+ "occurrence": 0
689
+ },
690
+ {
691
+ "rule": "silent-clamp",
692
+ "command": "weibo/hot",
693
+ "file": "clis/weibo/hot.js",
694
+ "line": 17,
695
+ "text": "const count = Math.min(kwargs.limit || 30, 50);",
696
+ "occurrence": 0
697
+ },
698
+ {
699
+ "rule": "silent-clamp",
700
+ "command": "weibo/search",
701
+ "file": "clis/weibo/search.js",
702
+ "line": 20,
703
+ "text": "const limit = Math.max(1, Math.min(Number(kwargs.limit) || 10, 50));",
704
+ "occurrence": 0
705
+ },
706
+ {
707
+ "rule": "silent-clamp",
708
+ "command": "wikipedia/search",
709
+ "file": "clis/wikipedia/search.js",
710
+ "line": 18,
711
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 50));",
712
+ "occurrence": 0
713
+ },
714
+ {
715
+ "rule": "silent-clamp",
716
+ "command": "wikipedia/trending",
717
+ "file": "clis/wikipedia/trending.js",
718
+ "line": 18,
719
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit), 50));",
720
+ "occurrence": 0
721
+ },
722
+ {
723
+ "rule": "silent-clamp",
724
+ "command": "xianyu/search",
725
+ "file": "clis/xianyu/search.js",
726
+ "line": 8,
727
+ "text": "return Math.min(MAX_LIMIT, Math.max(1, Math.floor(n)));",
728
+ "occurrence": 0
729
+ },
730
+ {
731
+ "rule": "silent-clamp",
732
+ "command": "xueqiu/comments",
733
+ "file": "clis/xueqiu/comments.js",
734
+ "line": 325,
735
+ "text": "const pageSize = Math.min(limit, 20);",
736
+ "occurrence": 0
737
+ },
738
+ {
739
+ "rule": "silent-clamp",
740
+ "command": "youtube/channel",
741
+ "file": "clis/youtube/channel.js",
742
+ "line": 35,
743
+ "text": "const limit = Math.min(kwargs.limit || 10, 30);",
744
+ "occurrence": 0
745
+ },
746
+ {
747
+ "rule": "silent-clamp",
748
+ "command": "youtube/comments",
749
+ "file": "clis/youtube/comments.js",
750
+ "line": 21,
751
+ "text": "const limit = Math.min(kwargs.limit || 20, 100);",
752
+ "occurrence": 0
753
+ },
754
+ {
755
+ "rule": "silent-clamp",
756
+ "command": "youtube/feed",
757
+ "file": "clis/youtube/feed.js",
758
+ "line": 20,
759
+ "text": "const limit = Math.min(kwargs.limit || 20, 100);",
760
+ "occurrence": 0
761
+ },
762
+ {
763
+ "rule": "silent-clamp",
764
+ "command": "youtube/history",
765
+ "file": "clis/youtube/history.js",
766
+ "line": 22,
767
+ "text": "await page.autoScroll({ times: Math.min(Math.max(Math.ceil(limit / 20), 1), 8), delayMs: 1200 });",
768
+ "occurrence": 0
769
+ },
770
+ {
771
+ "rule": "silent-clamp",
772
+ "command": "youtube/history",
773
+ "file": "clis/youtube/history.js",
774
+ "line": 19,
775
+ "text": "const limit = Math.min(kwargs.limit || 30, 200);",
776
+ "occurrence": 0
777
+ },
778
+ {
779
+ "rule": "silent-clamp",
780
+ "command": "youtube/playlist",
781
+ "file": "clis/youtube/playlist.js",
782
+ "line": 37,
783
+ "text": "const limit = Math.min(kwargs.limit || 50, 200);",
784
+ "occurrence": 0
785
+ },
786
+ {
787
+ "rule": "silent-clamp",
788
+ "command": "youtube/search",
789
+ "file": "clis/youtube/search.js",
790
+ "line": 21,
791
+ "text": "const limit = Math.min(kwargs.limit || 20, 50);",
792
+ "occurrence": 0
793
+ },
794
+ {
795
+ "rule": "silent-clamp",
796
+ "command": "youtube/subscriptions",
797
+ "file": "clis/youtube/subscriptions.js",
798
+ "line": 20,
799
+ "text": "const limit = Math.min(kwargs.limit || 50, 1000);",
800
+ "occurrence": 0
801
+ },
802
+ {
803
+ "rule": "silent-clamp",
804
+ "command": "youtube/watch-later",
805
+ "file": "clis/youtube/watch-later.js",
806
+ "line": 21,
807
+ "text": "const limit = Math.min(kwargs.limit || 50, 200);",
808
+ "occurrence": 0
809
+ },
810
+ {
811
+ "rule": "silent-clamp",
812
+ "command": "zhihu/collection",
813
+ "file": "clis/zhihu/collection.js",
814
+ "line": 141,
815
+ "text": "const currentFetchLimit = Math.min(pageLimit, requestedLimit - collected.length);",
816
+ "occurrence": 0
817
+ },
818
+ {
819
+ "rule": "silent-clamp",
820
+ "command": "zhihu/collection",
821
+ "file": "clis/zhihu/collection.js",
822
+ "line": 130,
823
+ "text": "const pageLimit = Math.min(requestedLimit, 20); // 知乎 API 限制每页最大 20",
824
+ "occurrence": 0
825
+ },
826
+ {
827
+ "rule": "silent-clamp",
828
+ "command": "zhihu/collections",
829
+ "file": "clis/zhihu/collections.js",
830
+ "line": 73,
831
+ "text": "const currentFetchLimit = Math.min(pageLimit, requestedLimit - collected.length);",
832
+ "occurrence": 0
833
+ },
834
+ {
835
+ "rule": "silent-clamp",
836
+ "command": "zhihu/collections",
837
+ "file": "clis/zhihu/collections.js",
838
+ "line": 69,
839
+ "text": "const pageLimit = Math.min(requestedLimit, 20);",
840
+ "occurrence": 0
841
+ },
842
+ {
843
+ "rule": "silent-clamp",
844
+ "command": "zlibrary/search",
845
+ "file": "clis/zlibrary/search.js",
846
+ "line": 30,
847
+ "text": "const limit = Math.max(1, Math.min(Number(args.limit) || 10, 25));",
848
+ "occurrence": 0
849
+ },
850
+ {
851
+ "rule": "silent-empty-fallback",
852
+ "command": "douyin/user-videos",
853
+ "file": "clis/douyin/user-videos.js",
854
+ "line": 31,
855
+ "text": "return [];",
856
+ "occurrence": 0
857
+ },
858
+ {
859
+ "rule": "silent-empty-fallback",
860
+ "command": "jike/post",
861
+ "file": "clis/jike/post.js",
862
+ "line": 50,
863
+ "text": "return [];",
864
+ "occurrence": 0
865
+ },
866
+ {
867
+ "rule": "silent-empty-fallback",
868
+ "command": "jike/topic",
869
+ "file": "clis/jike/topic.js",
870
+ "line": 38,
871
+ "text": "return [];",
872
+ "occurrence": 0
873
+ },
874
+ {
875
+ "rule": "silent-empty-fallback",
876
+ "command": "jike/user",
877
+ "file": "clis/jike/user.js",
878
+ "line": 37,
879
+ "text": "return [];",
880
+ "occurrence": 0
881
+ },
882
+ {
883
+ "rule": "silent-empty-fallback",
884
+ "command": "weread/search",
885
+ "file": "clis/weread/search.js",
886
+ "line": 97,
887
+ "text": "return [];",
888
+ "occurrence": 0
889
+ },
890
+ {
891
+ "rule": "silent-sentinel",
892
+ "command": "36kr/article",
893
+ "file": "clis/36kr/article.js",
894
+ "line": 57,
895
+ "text": "{ field: 'author', value: data.author || '-' },",
896
+ "occurrence": 0
897
+ },
898
+ {
899
+ "rule": "silent-sentinel",
900
+ "command": "36kr/article",
901
+ "file": "clis/36kr/article.js",
902
+ "line": 60,
903
+ "text": "{ field: 'body', value: data.body || '-' },",
904
+ "occurrence": 0
905
+ },
906
+ {
907
+ "rule": "silent-sentinel",
908
+ "command": "36kr/article",
909
+ "file": "clis/36kr/article.js",
910
+ "line": 58,
911
+ "text": "{ field: 'date', value: data.date || '-' },",
912
+ "occurrence": 0
913
+ },
914
+ {
915
+ "rule": "silent-sentinel",
916
+ "command": "51job/hot",
917
+ "file": "clis/51job/hot.js",
918
+ "line": 50,
919
+ "text": "throw new CliError('API_ERROR', `51job hot failed: ${data.message ?? 'unknown'}`);",
920
+ "occurrence": 0
921
+ },
922
+ {
923
+ "rule": "silent-sentinel",
924
+ "command": "51job/search",
925
+ "file": "clis/51job/search.js",
926
+ "line": 72,
927
+ "text": "throw new CliError('API_ERROR', `51job search failed: ${data.message ?? 'unknown'}`);",
928
+ "occurrence": 0
929
+ },
930
+ {
931
+ "rule": "silent-sentinel",
932
+ "command": "apple-podcasts/search",
933
+ "file": "clis/apple-podcasts/search.js",
934
+ "line": 26,
935
+ "text": "episodes: p.trackCount ?? '-',",
936
+ "occurrence": 0
937
+ },
938
+ {
939
+ "rule": "silent-sentinel",
940
+ "command": "apple-podcasts/search",
941
+ "file": "clis/apple-podcasts/search.js",
942
+ "line": 27,
943
+ "text": "genre: p.primaryGenreName ?? '-',",
944
+ "occurrence": 0
945
+ },
946
+ {
947
+ "rule": "silent-sentinel",
948
+ "command": "bilibili/download",
949
+ "file": "clis/bilibili/download.js",
950
+ "line": 47,
951
+ "text": "const author = document.querySelector('.up-name, .username')?.textContent?.trim() || 'unknown';",
952
+ "occurrence": 0
953
+ },
954
+ {
955
+ "rule": "silent-sentinel",
956
+ "command": "boss/stats",
957
+ "file": "clis/boss/stats.js",
958
+ "line": 39,
959
+ "text": "const jobName = f.jobName || 'unknown';",
960
+ "occurrence": 0
961
+ },
962
+ {
963
+ "rule": "silent-sentinel",
964
+ "command": "doubao-app/send",
965
+ "file": "clis/doubao-app/send.js",
966
+ "line": 19,
967
+ "text": "throw new Error('Could not find chat input: ' + (injected?.error || 'unknown'));",
968
+ "occurrence": 0
969
+ },
970
+ {
971
+ "rule": "silent-sentinel",
972
+ "command": "douyin/draft",
973
+ "file": "clis/douyin/draft.js",
974
+ "line": 288,
975
+ "text": "throw new CommandExecutionError('未检测到抖音草稿恢复提示', `当前页面: ${lastState.href || 'unknown'}`);",
976
+ "occurrence": 0
977
+ },
978
+ {
979
+ "rule": "silent-sentinel",
980
+ "command": "douyin/draft",
981
+ "file": "clis/douyin/draft.js",
982
+ "line": 210,
983
+ "text": "throw new CommandExecutionError('等待抖音封面处理完成超时', lastPanelText || 'unknown');",
984
+ "occurrence": 0
985
+ },
986
+ {
987
+ "rule": "silent-sentinel",
988
+ "command": "douyin/draft",
989
+ "file": "clis/douyin/draft.js",
990
+ "line": 57,
991
+ "text": "throw new CommandExecutionError('等待抖音草稿编辑页超时', `当前页面: ${lastState.href || 'unknown'}`);",
992
+ "occurrence": 0
993
+ },
994
+ {
995
+ "rule": "silent-sentinel",
996
+ "command": "douyin/draft",
997
+ "file": "clis/douyin/draft.js",
998
+ "line": 262,
999
+ "text": "throw new CommandExecutionError(`点击草稿按钮失败: ${result?.reason || 'unknown'}`);",
1000
+ "occurrence": 0
1001
+ },
1002
+ {
1003
+ "rule": "silent-sentinel",
1004
+ "command": "gitee/search",
1005
+ "file": "clis/gitee/search.js",
1006
+ "line": 127,
1007
+ "text": "description: normalizeText(getFirstText(fields.description)) || '-',",
1008
+ "occurrence": 0
1009
+ },
1010
+ {
1011
+ "rule": "silent-sentinel",
1012
+ "command": "gitee/search",
1013
+ "file": "clis/gitee/search.js",
1014
+ "line": 126,
1015
+ "text": "language: normalizeText(getFirstText(fields.langs)) || '-',",
1016
+ "occurrence": 0
1017
+ },
1018
+ {
1019
+ "rule": "silent-sentinel",
1020
+ "command": "gitee/trending",
1021
+ "file": "clis/gitee/trending.js",
1022
+ "line": 259,
1023
+ "text": "description: description || '-',",
1024
+ "occurrence": 0
1025
+ },
1026
+ {
1027
+ "rule": "silent-sentinel",
1028
+ "command": "gitee/trending",
1029
+ "file": "clis/gitee/trending.js",
1030
+ "line": 272,
1031
+ "text": "description: project.description !== '-' ? project.description : (mergedDescription || '-'),",
1032
+ "occurrence": 0
1033
+ },
1034
+ {
1035
+ "rule": "silent-sentinel",
1036
+ "command": "instagram/note",
1037
+ "file": "clis/instagram/note.js",
1038
+ "line": 219,
1039
+ "text": "throw new CommandExecutionError(`Instagram note publish failed at ${String(result?.stage || 'unknown')}: ${String(result?.text || 'unknown error')}`);",
1040
+ "occurrence": 0
1041
+ },
1042
+ {
1043
+ "rule": "silent-sentinel",
1044
+ "command": "jimeng/history",
1045
+ "file": "clis/jimeng/history.js",
1046
+ "line": 31,
1047
+ "text": "model: params.model_config?.model_name || 'unknown',",
1048
+ "occurrence": 0
1049
+ },
1050
+ {
1051
+ "rule": "silent-sentinel",
1052
+ "command": "jimeng/history",
1053
+ "file": "clis/jimeng/history.js",
1054
+ "line": 30,
1055
+ "text": "prompt: params.prompt || item.common_attr?.title || 'N/A',",
1056
+ "occurrence": 0
1057
+ },
1058
+ {
1059
+ "rule": "silent-sentinel",
1060
+ "command": "lesswrong/comments",
1061
+ "file": "clis/lesswrong/comments.js",
1062
+ "line": 59,
1063
+ "text": "author: user?.displayName ?? 'Unknown',",
1064
+ "occurrence": 0
1065
+ },
1066
+ {
1067
+ "rule": "silent-sentinel",
1068
+ "command": "lesswrong/curated",
1069
+ "file": "clis/lesswrong/curated.js",
1070
+ "line": 25,
1071
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1072
+ "occurrence": 0
1073
+ },
1074
+ {
1075
+ "rule": "silent-sentinel",
1076
+ "command": "lesswrong/frontpage",
1077
+ "file": "clis/lesswrong/frontpage.js",
1078
+ "line": 25,
1079
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1080
+ "occurrence": 0
1081
+ },
1082
+ {
1083
+ "rule": "silent-sentinel",
1084
+ "command": "lesswrong/new",
1085
+ "file": "clis/lesswrong/new.js",
1086
+ "line": 25,
1087
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1088
+ "occurrence": 0
1089
+ },
1090
+ {
1091
+ "rule": "silent-sentinel",
1092
+ "command": "lesswrong/read",
1093
+ "file": "clis/lesswrong/read.js",
1094
+ "line": 37,
1095
+ "text": "author: post.user?.displayName ?? 'Unknown',",
1096
+ "occurrence": 0
1097
+ },
1098
+ {
1099
+ "rule": "silent-sentinel",
1100
+ "command": "lesswrong/sequences",
1101
+ "file": "clis/lesswrong/sequences.js",
1102
+ "line": 25,
1103
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1104
+ "occurrence": 0
1105
+ },
1106
+ {
1107
+ "rule": "silent-sentinel",
1108
+ "command": "lesswrong/shortform",
1109
+ "file": "clis/lesswrong/shortform.js",
1110
+ "line": 25,
1111
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1112
+ "occurrence": 0
1113
+ },
1114
+ {
1115
+ "rule": "silent-sentinel",
1116
+ "command": "lesswrong/tag",
1117
+ "file": "clis/lesswrong/tag.js",
1118
+ "line": 40,
1119
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1120
+ "occurrence": 0
1121
+ },
1122
+ {
1123
+ "rule": "silent-sentinel",
1124
+ "command": "lesswrong/top-month",
1125
+ "file": "clis/lesswrong/top-month.js",
1126
+ "line": 25,
1127
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1128
+ "occurrence": 0
1129
+ },
1130
+ {
1131
+ "rule": "silent-sentinel",
1132
+ "command": "lesswrong/top-week",
1133
+ "file": "clis/lesswrong/top-week.js",
1134
+ "line": 25,
1135
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1136
+ "occurrence": 0
1137
+ },
1138
+ {
1139
+ "rule": "silent-sentinel",
1140
+ "command": "lesswrong/top-year",
1141
+ "file": "clis/lesswrong/top-year.js",
1142
+ "line": 25,
1143
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1144
+ "occurrence": 0
1145
+ },
1146
+ {
1147
+ "rule": "silent-sentinel",
1148
+ "command": "lesswrong/top",
1149
+ "file": "clis/lesswrong/top.js",
1150
+ "line": 25,
1151
+ "text": "author: item.user?.displayName ?? 'Unknown',",
1152
+ "occurrence": 0
1153
+ },
1154
+ {
1155
+ "rule": "silent-sentinel",
1156
+ "command": "linux-do/topic-content",
1157
+ "file": "clis/linux-do/topic-content.js",
1158
+ "line": 121,
1159
+ "text": "throw new CommandExecutionError(result.error || `linux.do request failed: HTTP ${result.status ?? 'unknown'}`);",
1160
+ "occurrence": 0
1161
+ },
1162
+ {
1163
+ "rule": "silent-sentinel",
1164
+ "command": "powerchina/search",
1165
+ "file": "clis/powerchina/search.js",
1166
+ "line": 149,
1167
+ "text": "throw new Error(`[taxonomy=relay_unavailable] site=powerchina command=search api code=${data.code ?? 'unknown'} msg=${cleanText(data.msg)}`);",
1168
+ "occurrence": 0
1169
+ },
1170
+ {
1171
+ "rule": "silent-sentinel",
1172
+ "command": "reddit/saved",
1173
+ "file": "clis/reddit/saved.js",
1174
+ "line": 33,
1175
+ "text": "title: c.data.title || c.data.body?.slice(0, 100) || '-',",
1176
+ "occurrence": 0
1177
+ },
1178
+ {
1179
+ "rule": "silent-sentinel",
1180
+ "command": "reddit/upvoted",
1181
+ "file": "clis/reddit/upvoted.js",
1182
+ "line": 33,
1183
+ "text": "title: c.data.title || '-',",
1184
+ "occurrence": 0
1185
+ },
1186
+ {
1187
+ "rule": "silent-sentinel",
1188
+ "command": "twitter/accept",
1189
+ "file": "clis/twitter/accept.js",
1190
+ "line": 75,
1191
+ "text": "const user = lines[0] || 'Unknown';",
1192
+ "occurrence": 0
1193
+ },
1194
+ {
1195
+ "rule": "silent-sentinel",
1196
+ "command": "twitter/accept",
1197
+ "file": "clis/twitter/accept.js",
1198
+ "line": 182,
1199
+ "text": "user: res.user || 'Unknown',",
1200
+ "occurrence": 0
1201
+ },
1202
+ {
1203
+ "rule": "silent-sentinel",
1204
+ "command": "twitter/article",
1205
+ "file": "clis/twitter/article.js",
1206
+ "line": 104,
1207
+ "text": "const screenName = user?.legacy?.screen_name || user?.core?.screen_name || 'unknown';",
1208
+ "occurrence": 0
1209
+ },
1210
+ {
1211
+ "rule": "silent-sentinel",
1212
+ "command": "twitter/bookmarks",
1213
+ "file": "clis/twitter/bookmarks.js",
1214
+ "line": 53,
1215
+ "text": "const screenName = user?.legacy?.screen_name || user?.core?.screen_name || 'unknown';",
1216
+ "occurrence": 0
1217
+ },
1218
+ {
1219
+ "rule": "silent-sentinel",
1220
+ "command": "twitter/following",
1221
+ "file": "clis/twitter/following.js",
1222
+ "line": 94,
1223
+ "text": "name: core.name || legacy.name || 'unknown',",
1224
+ "occurrence": 0
1225
+ },
1226
+ {
1227
+ "rule": "silent-sentinel",
1228
+ "command": "twitter/following",
1229
+ "file": "clis/twitter/following.js",
1230
+ "line": 93,
1231
+ "text": "screen_name: core.screen_name || legacy.screen_name || 'unknown',",
1232
+ "occurrence": 0
1233
+ },
1234
+ {
1235
+ "rule": "silent-sentinel",
1236
+ "command": "twitter/likes",
1237
+ "file": "clis/twitter/likes.js",
1238
+ "line": 90,
1239
+ "text": "const screenName = user?.legacy?.screen_name || user?.core?.screen_name || 'unknown';",
1240
+ "occurrence": 0
1241
+ },
1242
+ {
1243
+ "rule": "silent-sentinel",
1244
+ "command": "twitter/list-tweets",
1245
+ "file": "clis/twitter/list-tweets.js",
1246
+ "line": 60,
1247
+ "text": "const screenName = user?.legacy?.screen_name || user?.core?.screen_name || 'unknown';",
1248
+ "occurrence": 0
1249
+ },
1250
+ {
1251
+ "rule": "silent-sentinel",
1252
+ "command": "twitter/notifications",
1253
+ "file": "clis/twitter/notifications.js",
1254
+ "line": 82,
1255
+ "text": "author = fromUser?.core?.screen_name || fromUser?.legacy?.screen_name || 'unknown';",
1256
+ "occurrence": 0
1257
+ },
1258
+ {
1259
+ "rule": "silent-sentinel",
1260
+ "command": "twitter/notifications",
1261
+ "file": "clis/twitter/notifications.js",
1262
+ "line": 104,
1263
+ "text": "author = tweetUser?.core?.screen_name || tweetUser?.legacy?.screen_name || 'unknown';",
1264
+ "occurrence": 0
1265
+ },
1266
+ {
1267
+ "rule": "silent-sentinel",
1268
+ "command": "twitter/notifications",
1269
+ "file": "clis/twitter/notifications.js",
1270
+ "line": 97,
1271
+ "text": "author = tweetUser?.core?.screen_name || tweetUser?.legacy?.screen_name || 'unknown';",
1272
+ "occurrence": 1
1273
+ },
1274
+ {
1275
+ "rule": "silent-sentinel",
1276
+ "command": "twitter/reply-dm",
1277
+ "file": "clis/twitter/reply-dm.js",
1278
+ "line": 84,
1279
+ "text": "const user = lines[0] || 'Unknown';",
1280
+ "occurrence": 0
1281
+ },
1282
+ {
1283
+ "rule": "silent-sentinel",
1284
+ "command": "twitter/reply",
1285
+ "file": "clis/twitter/reply.js",
1286
+ "line": 68,
1287
+ "text": "throw new Error(`Unsupported remote image format \"${normalizedContentType || 'unknown'}\". ` +",
1288
+ "occurrence": 0
1289
+ },
1290
+ {
1291
+ "rule": "silent-sentinel",
1292
+ "command": "twitter/search",
1293
+ "file": "clis/twitter/search.js",
1294
+ "line": 156,
1295
+ "text": "author: tweetUser?.core?.screen_name || tweetUser?.legacy?.screen_name || 'unknown',",
1296
+ "occurrence": 0
1297
+ },
1298
+ {
1299
+ "rule": "silent-sentinel",
1300
+ "command": "twitter/thread",
1301
+ "file": "clis/twitter/thread.js",
1302
+ "line": 48,
1303
+ "text": "const screenName = u?.legacy?.screen_name || u?.core?.screen_name || 'unknown';",
1304
+ "occurrence": 0
1305
+ },
1306
+ {
1307
+ "rule": "silent-sentinel",
1308
+ "command": "twitter/timeline",
1309
+ "file": "clis/twitter/timeline.js",
1310
+ "line": 75,
1311
+ "text": "const screenName = u?.legacy?.screen_name || u?.core?.screen_name || 'unknown';",
1312
+ "occurrence": 0
1313
+ },
1314
+ {
1315
+ "rule": "silent-sentinel",
1316
+ "command": "twitter/tweets",
1317
+ "file": "clis/twitter/tweets.js",
1318
+ "line": 92,
1319
+ "text": "const screenName = user?.legacy?.screen_name || user?.core?.screen_name || 'unknown';",
1320
+ "occurrence": 0
1321
+ },
1322
+ {
1323
+ "rule": "silent-sentinel",
1324
+ "command": "v2ex/daily",
1325
+ "file": "clis/v2ex/daily.js",
1326
+ "line": 93,
1327
+ "text": "return [{ status: '🎉 签到成功', message: `当前余额: ${verifyResult.balance || '未知'}` }];",
1328
+ "occurrence": 0
1329
+ },
1330
+ {
1331
+ "rule": "silent-sentinel",
1332
+ "command": "v2ex/me",
1333
+ "file": "clis/v2ex/me.js",
1334
+ "line": 38,
1335
+ "text": "username = navLinks[1] || 'Unknown';",
1336
+ "occurrence": 0
1337
+ },
1338
+ {
1339
+ "rule": "silent-sentinel",
1340
+ "command": "web/read",
1341
+ "file": "clis/web/read.js",
1342
+ "line": 378,
1343
+ "text": "lines.push(` [frame ${frame.index}] ${frame.sameOrigin ? 'same-origin' : 'cross-origin'} ${frame.accessible ? 'accessible' : 'blocked'} text=${frame.textLength || 0} ${frame.src || '-'}`);",
1344
+ "occurrence": 0
1345
+ },
1346
+ {
1347
+ "rule": "silent-sentinel",
1348
+ "command": "web/read",
1349
+ "file": "clis/web/read.js",
1350
+ "line": 390,
1351
+ "text": "lines.push(` ${entry.method} ${entry.status || '-'} ${entry.contentType || '-'} ${entry.url}`);",
1352
+ "occurrence": 0
1353
+ },
1354
+ {
1355
+ "rule": "silent-sentinel",
1356
+ "command": "web/read",
1357
+ "file": "clis/web/read.js",
1358
+ "line": 384,
1359
+ "text": "lines.push(` ${item.scope}: ${selector} (${item.url || '-'})`);",
1360
+ "occurrence": 0
1361
+ },
1362
+ {
1363
+ "rule": "silent-sentinel",
1364
+ "command": "web/read",
1365
+ "file": "clis/web/read.js",
1366
+ "line": 375,
1367
+ "text": "lines.push(`url: ${diag.url || '-'}`);",
1368
+ "occurrence": 0
1369
+ },
1370
+ {
1371
+ "rule": "silent-sentinel",
1372
+ "command": "weibo/comments",
1373
+ "file": "clis/weibo/comments.js",
1374
+ "line": 32,
1375
+ "text": "if (!data.ok) return {error: 'API error: ' + (data.msg || 'unknown')};",
1376
+ "occurrence": 0
1377
+ },
1378
+ {
1379
+ "rule": "silent-sentinel",
1380
+ "command": "weibo/feed",
1381
+ "file": "clis/weibo/feed.js",
1382
+ "line": 45,
1383
+ "text": "if (!data.ok) return { error: 'API error: ' + (data.msg || 'unknown') };",
1384
+ "occurrence": 0
1385
+ },
1386
+ {
1387
+ "rule": "silent-sentinel",
1388
+ "command": "wikipedia/trending",
1389
+ "file": "clis/wikipedia/trending.js",
1390
+ "line": 32,
1391
+ "text": "description: (a.description ?? '-').slice(0, DESC_MAX_LEN),",
1392
+ "occurrence": 0
1393
+ },
1394
+ {
1395
+ "rule": "silent-sentinel",
1396
+ "command": "wikipedia/trending",
1397
+ "file": "clis/wikipedia/trending.js",
1398
+ "line": 31,
1399
+ "text": "title: a.title ?? '-',",
1400
+ "occurrence": 0
1401
+ },
1402
+ {
1403
+ "rule": "silent-sentinel",
1404
+ "command": "xiaohongshu/download",
1405
+ "file": "clis/xiaohongshu/download.js",
1406
+ "line": 65,
1407
+ "text": "result.author = authorEl?.textContent?.trim() || 'unknown';",
1408
+ "occurrence": 0
1409
+ },
1410
+ {
1411
+ "rule": "silent-sentinel",
1412
+ "command": "xiaohongshu/publish",
1413
+ "file": "clis/xiaohongshu/publish.js",
1414
+ "line": 516,
1415
+ "text": "throw new Error(`Image injection failed: ${upload.error ?? 'unknown'}. ` +",
1416
+ "occurrence": 0
1417
+ },
1418
+ {
1419
+ "rule": "silent-sentinel",
1420
+ "command": "xiaoyuzhou/download",
1421
+ "file": "clis/xiaoyuzhou/download.js",
1422
+ "line": 48,
1423
+ "text": "podcast: ep.podcast?.title || '-',",
1424
+ "occurrence": 0
1425
+ },
1426
+ {
1427
+ "rule": "silent-sentinel",
1428
+ "command": "xiaoyuzhou/transcript",
1429
+ "file": "clis/xiaoyuzhou/transcript.js",
1430
+ "line": 70,
1431
+ "text": "podcast: episode.podcast?.title || '-',",
1432
+ "occurrence": 0
1433
+ },
1434
+ {
1435
+ "rule": "silent-sentinel",
1436
+ "command": "yollomi/edit",
1437
+ "file": "clis/yollomi/edit.js",
1438
+ "line": 54,
1439
+ "text": "return [{ status: 'download-failed', file: '-', size: '-', credits: credits ?? '-', url }];",
1440
+ "occurrence": 0
1441
+ },
1442
+ {
1443
+ "rule": "silent-sentinel",
1444
+ "command": "yollomi/edit",
1445
+ "file": "clis/yollomi/edit.js",
1446
+ "line": 45,
1447
+ "text": "return [{ status: 'edited', file: '-', size: '-', credits: credits ?? '-', url }];",
1448
+ "occurrence": 0
1449
+ },
1450
+ {
1451
+ "rule": "silent-sentinel",
1452
+ "command": "yollomi/edit",
1453
+ "file": "clis/yollomi/edit.js",
1454
+ "line": 51,
1455
+ "text": "return [{ status: 'saved', file: path.relative('.', fp), size: fmtBytes(size), credits: credits ?? '-', url }];",
1456
+ "occurrence": 0
1457
+ },
1458
+ {
1459
+ "rule": "silent-sentinel",
1460
+ "command": "yollomi/video",
1461
+ "file": "clis/yollomi/video.js",
1462
+ "line": 54,
1463
+ "text": "return [{ status: 'download-failed', file: '-', size: '-', credits: credits ?? '-', url: videoUrl }];",
1464
+ "occurrence": 0
1465
+ },
1466
+ {
1467
+ "rule": "silent-sentinel",
1468
+ "command": "yollomi/video",
1469
+ "file": "clis/yollomi/video.js",
1470
+ "line": 44,
1471
+ "text": "return [{ status: 'generated', file: '-', size: '-', credits: credits ?? '-', url: videoUrl }];",
1472
+ "occurrence": 0
1473
+ },
1474
+ {
1475
+ "rule": "silent-sentinel",
1476
+ "command": "yollomi/video",
1477
+ "file": "clis/yollomi/video.js",
1478
+ "line": 51,
1479
+ "text": "return [{ status: 'saved', file: path.relative('.', fp), size: fmtBytes(size), credits: credits ?? '-', url: videoUrl }];",
1480
+ "occurrence": 0
1481
+ },
1482
+ {
1483
+ "rule": "silent-sentinel",
1484
+ "command": "zhihu/collection",
1485
+ "file": "clis/zhihu/collection.js",
1486
+ "line": 64,
1487
+ "text": "const type = content.type || 'unknown';",
1488
+ "occurrence": 0
1489
+ },
1490
+ {
1491
+ "rule": "silent-sentinel",
1492
+ "command": "zhihu/collection",
1493
+ "file": "clis/zhihu/collection.js",
1494
+ "line": 59,
1495
+ "text": "return `${content.type || 'unknown'}:${content.id || content.url || JSON.stringify(content).slice(0, 80)}`;",
1496
+ "occurrence": 0
1497
+ },
1498
+ {
1499
+ "rule": "silent-sentinel",
1500
+ "command": "zhihu/download",
1501
+ "file": "clis/zhihu/download.js",
1502
+ "line": 44,
1503
+ "text": "result.author = authorEl?.textContent?.trim() || 'unknown';",
1504
+ "occurrence": 0
1505
+ },
1506
+ {
1507
+ "rule": "silent-sentinel",
1508
+ "command": "zsxq/dynamics",
1509
+ "file": "clis/zsxq/dynamics.js",
1510
+ "line": 31,
1511
+ "text": "title: `[${d.action || 'unknown'}]`,",
1512
+ "occurrence": 0
1513
+ }
1514
+ ]