@jackwener/opencli 1.6.1 → 1.6.3

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 (1909) hide show
  1. package/README.md +31 -49
  2. package/README.zh-CN.md +37 -39
  3. package/dist/browser/cdp.d.ts +1 -40
  4. package/dist/browser/cdp.js +2 -314
  5. package/dist/browser/page.d.ts +1 -57
  6. package/dist/browser/page.js +2 -222
  7. package/dist/browser/utils.d.ts +1 -10
  8. package/dist/browser/utils.js +2 -27
  9. package/dist/cli-manifest.json +1846 -351
  10. package/dist/clis/1688/item.d.ts +70 -0
  11. package/dist/clis/1688/item.js +187 -0
  12. package/dist/clis/1688/item.test.js +67 -0
  13. package/dist/clis/1688/search.d.ts +56 -0
  14. package/dist/clis/1688/search.js +309 -0
  15. package/dist/clis/1688/search.test.js +75 -0
  16. package/dist/clis/1688/shared.d.ts +112 -0
  17. package/dist/clis/1688/shared.js +514 -0
  18. package/dist/clis/1688/shared.test.js +57 -0
  19. package/dist/clis/1688/store.d.ts +45 -0
  20. package/dist/clis/1688/store.js +226 -0
  21. package/dist/clis/1688/store.test.js +62 -0
  22. package/dist/clis/36kr/article.js +2 -2
  23. package/dist/clis/36kr/hot.js +12 -6
  24. package/dist/clis/36kr/news.js +1 -1
  25. package/dist/clis/36kr/search.js +12 -6
  26. package/dist/clis/_shared/desktop-commands.d.ts +5 -5
  27. package/dist/clis/_shared/desktop-commands.js +1 -1
  28. package/dist/clis/amazon/bestsellers.d.ts +0 -20
  29. package/dist/clis/amazon/bestsellers.js +6 -129
  30. package/dist/clis/amazon/bestsellers.test.js +12 -3
  31. package/dist/clis/amazon/discussion.js +2 -2
  32. package/dist/clis/amazon/movers-shakers.js +7 -0
  33. package/dist/clis/amazon/new-releases.js +7 -0
  34. package/dist/clis/amazon/offer.js +2 -2
  35. package/dist/clis/amazon/product.js +2 -2
  36. package/dist/clis/amazon/rankings.d.ts +59 -0
  37. package/dist/clis/amazon/rankings.js +226 -0
  38. package/dist/clis/amazon/rankings.test.js +41 -0
  39. package/dist/clis/amazon/search.js +2 -2
  40. package/dist/clis/amazon/shared.d.ts +12 -1
  41. package/dist/clis/amazon/shared.js +122 -12
  42. package/dist/clis/amazon/shared.test.js +11 -0
  43. package/dist/clis/antigravity/dump.d.ts +1 -1
  44. package/dist/clis/antigravity/dump.js +1 -1
  45. package/dist/clis/antigravity/extract-code.d.ts +1 -1
  46. package/dist/clis/antigravity/extract-code.js +1 -1
  47. package/dist/clis/antigravity/model.d.ts +1 -1
  48. package/dist/clis/antigravity/model.js +1 -1
  49. package/dist/clis/antigravity/new.d.ts +1 -1
  50. package/dist/clis/antigravity/new.js +1 -1
  51. package/dist/clis/antigravity/read.d.ts +1 -1
  52. package/dist/clis/antigravity/read.js +1 -1
  53. package/dist/clis/antigravity/send.d.ts +1 -1
  54. package/dist/clis/antigravity/send.js +1 -1
  55. package/dist/clis/antigravity/serve.js +2 -2
  56. package/dist/clis/antigravity/status.d.ts +1 -1
  57. package/dist/clis/antigravity/status.js +1 -1
  58. package/dist/clis/antigravity/watch.d.ts +1 -1
  59. package/dist/clis/antigravity/watch.js +1 -1
  60. package/dist/clis/apple-podcasts/commands.test.js +1 -1
  61. package/dist/clis/apple-podcasts/episodes.js +2 -2
  62. package/dist/clis/apple-podcasts/search.js +2 -2
  63. package/dist/clis/apple-podcasts/top.js +2 -2
  64. package/dist/clis/apple-podcasts/utils.js +1 -1
  65. package/dist/clis/arxiv/paper.js +2 -2
  66. package/dist/clis/arxiv/search.js +2 -2
  67. package/dist/clis/arxiv/utils.js +1 -1
  68. package/dist/clis/band/bands.js +2 -2
  69. package/dist/clis/band/mentions.js +2 -2
  70. package/dist/clis/band/post.js +2 -2
  71. package/dist/clis/band/posts.js +2 -2
  72. package/dist/clis/barchart/flow.js +1 -1
  73. package/dist/clis/barchart/greeks.js +1 -1
  74. package/dist/clis/barchart/options.js +1 -1
  75. package/dist/clis/barchart/quote.js +1 -1
  76. package/dist/clis/bbc/news.js +1 -1
  77. package/dist/clis/bilibili/comments.js +3 -3
  78. package/dist/clis/bilibili/comments.test.js +4 -3
  79. package/dist/clis/bilibili/download.js +3 -2
  80. package/dist/clis/bilibili/dynamic.js +1 -1
  81. package/dist/clis/bilibili/dynamic.test.js +1 -1
  82. package/dist/clis/bilibili/favorite.js +1 -1
  83. package/dist/clis/bilibili/feed.js +1 -1
  84. package/dist/clis/bilibili/following.js +2 -2
  85. package/dist/clis/bilibili/history.js +1 -1
  86. package/dist/clis/bilibili/me.js +1 -1
  87. package/dist/clis/bilibili/ranking.js +1 -1
  88. package/dist/clis/bilibili/search.js +1 -1
  89. package/dist/clis/bilibili/subtitle.js +6 -5
  90. package/dist/clis/bilibili/subtitle.test.js +4 -3
  91. package/dist/clis/bilibili/user-videos.js +1 -1
  92. package/dist/clis/bilibili/utils.d.ts +6 -1
  93. package/dist/clis/bilibili/utils.js +31 -1
  94. package/dist/clis/bilibili/utils.test.js +17 -0
  95. package/dist/clis/bloomberg/businessweek.js +1 -1
  96. package/dist/clis/bloomberg/economics.js +1 -1
  97. package/dist/clis/bloomberg/feeds.js +1 -1
  98. package/dist/clis/bloomberg/industries.js +1 -1
  99. package/dist/clis/bloomberg/main.js +1 -1
  100. package/dist/clis/bloomberg/markets.js +1 -1
  101. package/dist/clis/bloomberg/news.js +2 -2
  102. package/dist/clis/bloomberg/opinions.js +1 -1
  103. package/dist/clis/bloomberg/politics.js +1 -1
  104. package/dist/clis/bloomberg/tech.js +1 -1
  105. package/dist/clis/bloomberg/utils.js +1 -1
  106. package/dist/clis/boss/batchgreet.js +1 -1
  107. package/dist/clis/boss/chatlist.js +1 -1
  108. package/dist/clis/boss/chatmsg.js +1 -1
  109. package/dist/clis/boss/detail.js +1 -1
  110. package/dist/clis/boss/exchange.js +1 -1
  111. package/dist/clis/boss/greet.js +1 -1
  112. package/dist/clis/boss/invite.js +1 -1
  113. package/dist/clis/boss/joblist.js +1 -1
  114. package/dist/clis/boss/mark.js +2 -2
  115. package/dist/clis/boss/recommend.js +1 -1
  116. package/dist/clis/boss/resume.js +1 -1
  117. package/dist/clis/boss/search.js +1 -1
  118. package/dist/clis/boss/send.js +2 -2
  119. package/dist/clis/boss/stats.js +1 -1
  120. package/dist/clis/boss/utils.d.ts +1 -1
  121. package/dist/clis/chaoxing/assignments.js +2 -2
  122. package/dist/clis/chaoxing/exams.js +1 -1
  123. package/dist/clis/chaoxing/utils.d.ts +1 -1
  124. package/dist/clis/chatgpt/ask.d.ts +1 -1
  125. package/dist/clis/chatgpt/ask.js +2 -2
  126. package/dist/clis/chatgpt/model.d.ts +1 -1
  127. package/dist/clis/chatgpt/model.js +2 -2
  128. package/dist/clis/chatgpt/new.d.ts +1 -1
  129. package/dist/clis/chatgpt/new.js +2 -2
  130. package/dist/clis/chatgpt/read.d.ts +1 -1
  131. package/dist/clis/chatgpt/read.js +2 -2
  132. package/dist/clis/chatgpt/send.d.ts +1 -1
  133. package/dist/clis/chatgpt/send.js +2 -2
  134. package/dist/clis/chatgpt/status.d.ts +1 -1
  135. package/dist/clis/chatgpt/status.js +2 -2
  136. package/dist/clis/chatwise/ask.d.ts +1 -1
  137. package/dist/clis/chatwise/ask.js +2 -2
  138. package/dist/clis/chatwise/export.d.ts +1 -1
  139. package/dist/clis/chatwise/export.js +1 -1
  140. package/dist/clis/chatwise/history.d.ts +1 -1
  141. package/dist/clis/chatwise/history.js +1 -1
  142. package/dist/clis/chatwise/model.d.ts +1 -1
  143. package/dist/clis/chatwise/model.js +2 -2
  144. package/dist/clis/chatwise/new.d.ts +1 -1
  145. package/dist/clis/chatwise/read.d.ts +1 -1
  146. package/dist/clis/chatwise/read.js +1 -1
  147. package/dist/clis/chatwise/screenshot.d.ts +1 -1
  148. package/dist/clis/chatwise/send.d.ts +1 -1
  149. package/dist/clis/chatwise/send.js +2 -2
  150. package/dist/clis/chatwise/status.d.ts +1 -1
  151. package/dist/clis/codex/ask.d.ts +1 -1
  152. package/dist/clis/codex/ask.js +2 -2
  153. package/dist/clis/codex/dump.d.ts +1 -1
  154. package/dist/clis/codex/export.d.ts +1 -1
  155. package/dist/clis/codex/export.js +1 -1
  156. package/dist/clis/codex/extract-diff.d.ts +1 -1
  157. package/dist/clis/codex/extract-diff.js +1 -1
  158. package/dist/clis/codex/history.d.ts +1 -1
  159. package/dist/clis/codex/history.js +1 -1
  160. package/dist/clis/codex/model.d.ts +1 -1
  161. package/dist/clis/codex/model.js +1 -1
  162. package/dist/clis/codex/new.d.ts +1 -1
  163. package/dist/clis/codex/read.d.ts +1 -1
  164. package/dist/clis/codex/read.js +1 -1
  165. package/dist/clis/codex/screenshot.d.ts +1 -1
  166. package/dist/clis/codex/send.d.ts +1 -1
  167. package/dist/clis/codex/send.js +2 -2
  168. package/dist/clis/codex/status.d.ts +1 -1
  169. package/dist/clis/coupang/add-to-cart.js +1 -1
  170. package/dist/clis/coupang/search.js +1 -1
  171. package/dist/clis/ctrip/search.js +2 -2
  172. package/dist/clis/ctrip/search.test.js +1 -1
  173. package/dist/clis/cursor/ask.d.ts +1 -1
  174. package/dist/clis/cursor/ask.js +2 -2
  175. package/dist/clis/cursor/composer.d.ts +1 -1
  176. package/dist/clis/cursor/composer.js +2 -2
  177. package/dist/clis/cursor/dump.d.ts +1 -1
  178. package/dist/clis/cursor/export.d.ts +1 -1
  179. package/dist/clis/cursor/export.js +1 -1
  180. package/dist/clis/cursor/extract-code.d.ts +1 -1
  181. package/dist/clis/cursor/extract-code.js +1 -1
  182. package/dist/clis/cursor/history.d.ts +1 -1
  183. package/dist/clis/cursor/history.js +1 -1
  184. package/dist/clis/cursor/model.d.ts +1 -1
  185. package/dist/clis/cursor/model.js +1 -1
  186. package/dist/clis/cursor/new.d.ts +1 -1
  187. package/dist/clis/cursor/read.d.ts +1 -1
  188. package/dist/clis/cursor/read.js +2 -2
  189. package/dist/clis/cursor/screenshot.d.ts +1 -1
  190. package/dist/clis/cursor/send.d.ts +1 -1
  191. package/dist/clis/cursor/send.js +2 -2
  192. package/dist/clis/cursor/status.d.ts +1 -1
  193. package/dist/clis/discord-app/channels.d.ts +1 -1
  194. package/dist/clis/discord-app/channels.js +1 -1
  195. package/dist/clis/discord-app/members.d.ts +1 -1
  196. package/dist/clis/discord-app/members.js +1 -1
  197. package/dist/clis/discord-app/read.d.ts +1 -1
  198. package/dist/clis/discord-app/read.js +1 -1
  199. package/dist/clis/discord-app/search.d.ts +1 -1
  200. package/dist/clis/discord-app/search.js +1 -1
  201. package/dist/clis/discord-app/send.d.ts +1 -1
  202. package/dist/clis/discord-app/send.js +1 -1
  203. package/dist/clis/discord-app/servers.d.ts +1 -1
  204. package/dist/clis/discord-app/servers.js +1 -1
  205. package/dist/clis/discord-app/status.d.ts +1 -1
  206. package/dist/clis/discord-app/status.js +1 -1
  207. package/dist/clis/douban/book-hot.js +1 -1
  208. package/dist/clis/douban/download.js +2 -2
  209. package/dist/clis/douban/download.test.js +1 -1
  210. package/dist/clis/douban/marks.js +2 -2
  211. package/dist/clis/douban/movie-hot.js +1 -1
  212. package/dist/clis/douban/photos.js +1 -1
  213. package/dist/clis/douban/reviews.js +1 -1
  214. package/dist/clis/douban/search.js +1 -1
  215. package/dist/clis/douban/subject.yaml +50 -19
  216. package/dist/clis/douban/utils.d.ts +1 -1
  217. package/dist/clis/douban/utils.js +1 -1
  218. package/dist/clis/doubao/ask.d.ts +1 -1
  219. package/dist/clis/doubao/ask.js +1 -1
  220. package/dist/clis/doubao/detail.d.ts +1 -1
  221. package/dist/clis/doubao/detail.js +1 -1
  222. package/dist/clis/doubao/detail.test.js +1 -1
  223. package/dist/clis/doubao/history.d.ts +1 -1
  224. package/dist/clis/doubao/history.js +1 -1
  225. package/dist/clis/doubao/history.test.js +1 -1
  226. package/dist/clis/doubao/meeting-summary.d.ts +1 -1
  227. package/dist/clis/doubao/meeting-summary.js +1 -1
  228. package/dist/clis/doubao/meeting-transcript.d.ts +1 -1
  229. package/dist/clis/doubao/meeting-transcript.js +1 -1
  230. package/dist/clis/doubao/new.d.ts +1 -1
  231. package/dist/clis/doubao/new.js +1 -1
  232. package/dist/clis/doubao/read.d.ts +1 -1
  233. package/dist/clis/doubao/read.js +1 -1
  234. package/dist/clis/doubao/send.d.ts +1 -1
  235. package/dist/clis/doubao/send.js +1 -1
  236. package/dist/clis/doubao/status.d.ts +1 -1
  237. package/dist/clis/doubao/status.js +1 -1
  238. package/dist/clis/doubao/utils.d.ts +1 -1
  239. package/dist/clis/doubao/utils.js +32 -12
  240. package/dist/clis/doubao-app/ask.d.ts +1 -1
  241. package/dist/clis/doubao-app/ask.js +1 -1
  242. package/dist/clis/doubao-app/dump.d.ts +1 -1
  243. package/dist/clis/doubao-app/dump.js +1 -1
  244. package/dist/clis/doubao-app/new.d.ts +1 -1
  245. package/dist/clis/doubao-app/new.js +1 -1
  246. package/dist/clis/doubao-app/read.d.ts +1 -1
  247. package/dist/clis/doubao-app/read.js +1 -1
  248. package/dist/clis/doubao-app/screenshot.d.ts +1 -1
  249. package/dist/clis/doubao-app/screenshot.js +1 -1
  250. package/dist/clis/doubao-app/send.d.ts +1 -1
  251. package/dist/clis/doubao-app/send.js +1 -1
  252. package/dist/clis/doubao-app/status.d.ts +1 -1
  253. package/dist/clis/doubao-app/status.js +1 -1
  254. package/dist/clis/douyin/_shared/browser-fetch.d.ts +1 -1
  255. package/dist/clis/douyin/_shared/browser-fetch.js +1 -1
  256. package/dist/clis/douyin/_shared/browser-fetch.test.js +0 -1
  257. package/dist/clis/douyin/_shared/imagex-upload.js +1 -1
  258. package/dist/clis/douyin/_shared/imagex-upload.test.js +1 -1
  259. package/dist/clis/douyin/_shared/public-api.d.ts +1 -1
  260. package/dist/clis/douyin/_shared/sts2.d.ts +1 -1
  261. package/dist/clis/douyin/_shared/sts2.js +1 -1
  262. package/dist/clis/douyin/_shared/sts2.test.js +1 -1
  263. package/dist/clis/douyin/_shared/tos-upload-short-read.test.js +1 -1
  264. package/dist/clis/douyin/_shared/tos-upload.js +1 -1
  265. package/dist/clis/douyin/_shared/transcode.d.ts +1 -1
  266. package/dist/clis/douyin/_shared/transcode.js +1 -1
  267. package/dist/clis/douyin/_shared/transcode.test.js +1 -3
  268. package/dist/clis/douyin/activities.js +1 -1
  269. package/dist/clis/douyin/activities.test.js +1 -1
  270. package/dist/clis/douyin/collections.js +1 -1
  271. package/dist/clis/douyin/collections.test.js +1 -1
  272. package/dist/clis/douyin/delete.js +1 -1
  273. package/dist/clis/douyin/delete.test.js +1 -1
  274. package/dist/clis/douyin/draft.js +2 -2
  275. package/dist/clis/douyin/draft.test.js +1 -3
  276. package/dist/clis/douyin/drafts.js +1 -1
  277. package/dist/clis/douyin/drafts.test.js +1 -1
  278. package/dist/clis/douyin/hashtag.js +2 -2
  279. package/dist/clis/douyin/hashtag.test.js +1 -1
  280. package/dist/clis/douyin/location.js +1 -1
  281. package/dist/clis/douyin/location.test.js +1 -1
  282. package/dist/clis/douyin/profile.js +2 -2
  283. package/dist/clis/douyin/profile.test.js +1 -1
  284. package/dist/clis/douyin/publish.js +2 -2
  285. package/dist/clis/douyin/publish.test.js +1 -1
  286. package/dist/clis/douyin/stats.js +1 -1
  287. package/dist/clis/douyin/stats.test.js +1 -1
  288. package/dist/clis/douyin/update.js +2 -2
  289. package/dist/clis/douyin/update.test.js +1 -1
  290. package/dist/clis/douyin/user-videos.js +1 -1
  291. package/dist/clis/douyin/user-videos.test.js +1 -1
  292. package/dist/clis/douyin/videos.js +1 -1
  293. package/dist/clis/douyin/videos.test.js +1 -1
  294. package/dist/clis/facebook/search.test.js +0 -2
  295. package/dist/clis/gemini/ask.d.ts +1 -1
  296. package/dist/clis/gemini/ask.js +10 -4
  297. package/dist/clis/gemini/ask.test.js +100 -0
  298. package/dist/clis/gemini/deep-research-result.d.ts +1 -0
  299. package/dist/clis/gemini/deep-research-result.js +91 -0
  300. package/dist/clis/gemini/deep-research-result.test.js +154 -0
  301. package/dist/clis/gemini/deep-research.d.ts +1 -0
  302. package/dist/clis/gemini/deep-research.js +98 -0
  303. package/dist/clis/gemini/deep-research.test.js +184 -0
  304. package/dist/clis/gemini/image.d.ts +1 -1
  305. package/dist/clis/gemini/image.js +2 -2
  306. package/dist/clis/gemini/new.d.ts +1 -1
  307. package/dist/clis/gemini/new.js +1 -1
  308. package/dist/clis/gemini/reply-state.test.js +671 -0
  309. package/dist/clis/gemini/utils.d.ts +74 -2
  310. package/dist/clis/gemini/utils.js +1540 -61
  311. package/dist/clis/gemini/utils.test.js +169 -2
  312. package/dist/clis/google/news.js +2 -2
  313. package/dist/clis/google/search.js +2 -2
  314. package/dist/clis/google/suggest.js +2 -2
  315. package/dist/clis/google/trends.js +2 -2
  316. package/dist/clis/grok/ask.d.ts +2 -2
  317. package/dist/clis/grok/ask.js +1 -1
  318. package/dist/clis/hf/top.js +2 -2
  319. package/dist/clis/hupu/detail.js +72 -0
  320. package/dist/clis/hupu/hot.yaml +43 -0
  321. package/dist/clis/hupu/like.js +75 -0
  322. package/dist/clis/hupu/mentions.js +159 -0
  323. package/dist/clis/hupu/reply.js +71 -0
  324. package/dist/clis/hupu/search.js +59 -0
  325. package/dist/clis/hupu/unlike.js +75 -0
  326. package/dist/clis/hupu/utils.d.ts +20 -0
  327. package/dist/clis/hupu/utils.js +319 -0
  328. package/dist/clis/imdb/person.js +2 -2
  329. package/dist/clis/imdb/reviews.js +2 -2
  330. package/dist/clis/imdb/search.js +2 -2
  331. package/dist/clis/imdb/title.js +2 -2
  332. package/dist/clis/imdb/top.js +2 -2
  333. package/dist/clis/imdb/trending.js +2 -2
  334. package/dist/clis/imdb/utils.d.ts +1 -1
  335. package/dist/clis/imdb/utils.js +1 -1
  336. package/dist/clis/instagram/_shared/private-publish.d.ts +138 -0
  337. package/dist/clis/instagram/_shared/private-publish.js +1030 -0
  338. package/dist/clis/instagram/_shared/private-publish.test.js +705 -0
  339. package/dist/clis/instagram/_shared/protocol-capture.d.ts +26 -0
  340. package/dist/clis/instagram/_shared/protocol-capture.js +282 -0
  341. package/dist/clis/instagram/_shared/protocol-capture.test.js +114 -0
  342. package/dist/clis/instagram/_shared/runtime-info.d.ts +9 -0
  343. package/dist/clis/instagram/_shared/runtime-info.js +81 -0
  344. package/dist/clis/instagram/download.js +2 -2
  345. package/dist/clis/instagram/download.test.js +2 -2
  346. package/dist/clis/instagram/note.js +222 -0
  347. package/dist/clis/instagram/note.test.d.ts +1 -0
  348. package/dist/clis/instagram/note.test.js +81 -0
  349. package/dist/clis/instagram/post.d.ts +4 -0
  350. package/dist/clis/instagram/post.js +1496 -0
  351. package/dist/clis/instagram/post.test.d.ts +1 -0
  352. package/dist/clis/instagram/post.test.js +1647 -0
  353. package/dist/clis/instagram/reel.js +826 -0
  354. package/dist/clis/instagram/reel.test.d.ts +1 -0
  355. package/dist/clis/instagram/reel.test.js +167 -0
  356. package/dist/clis/instagram/story.js +115 -0
  357. package/dist/clis/instagram/story.test.d.ts +1 -0
  358. package/dist/clis/instagram/story.test.js +167 -0
  359. package/dist/clis/jd/item.js +1 -1
  360. package/dist/clis/jd/item.test.js +1 -1
  361. package/dist/clis/jike/comment.js +1 -1
  362. package/dist/clis/jike/create.js +1 -1
  363. package/dist/clis/jike/feed.js +1 -1
  364. package/dist/clis/jike/like.js +1 -1
  365. package/dist/clis/jike/notifications.js +1 -1
  366. package/dist/clis/jike/repost.js +1 -1
  367. package/dist/clis/jike/search.js +1 -1
  368. package/dist/clis/lesswrong/_helpers.d.ts +15 -0
  369. package/dist/clis/lesswrong/_helpers.js +75 -0
  370. package/dist/clis/lesswrong/comments.js +64 -0
  371. package/dist/clis/lesswrong/curated.js +30 -0
  372. package/dist/clis/lesswrong/frontpage.js +30 -0
  373. package/dist/clis/lesswrong/new.js +30 -0
  374. package/dist/clis/lesswrong/read.js +45 -0
  375. package/dist/clis/lesswrong/sequences.d.ts +1 -0
  376. package/dist/clis/lesswrong/sequences.js +27 -0
  377. package/dist/clis/lesswrong/shortform.d.ts +1 -0
  378. package/dist/clis/lesswrong/shortform.js +30 -0
  379. package/dist/clis/lesswrong/tag.d.ts +1 -0
  380. package/dist/clis/lesswrong/tag.js +45 -0
  381. package/dist/clis/lesswrong/tags.d.ts +1 -0
  382. package/dist/clis/lesswrong/tags.js +27 -0
  383. package/dist/clis/lesswrong/top-month.d.ts +1 -0
  384. package/dist/clis/lesswrong/top-month.js +30 -0
  385. package/dist/clis/lesswrong/top-week.d.ts +1 -0
  386. package/dist/clis/lesswrong/top-week.js +30 -0
  387. package/dist/clis/lesswrong/top-year.d.ts +1 -0
  388. package/dist/clis/lesswrong/top-year.js +30 -0
  389. package/dist/clis/lesswrong/top.d.ts +1 -0
  390. package/dist/clis/lesswrong/top.js +30 -0
  391. package/dist/clis/lesswrong/user-posts.d.ts +1 -0
  392. package/dist/clis/lesswrong/user-posts.js +41 -0
  393. package/dist/clis/lesswrong/user.d.ts +1 -0
  394. package/dist/clis/lesswrong/user.js +44 -0
  395. package/dist/clis/linkedin/search.js +2 -2
  396. package/dist/clis/linkedin/timeline.js +2 -2
  397. package/dist/clis/linkedin/timeline.test.js +1 -1
  398. package/dist/clis/linux-do/category.js +1 -1
  399. package/dist/clis/linux-do/feed.d.ts +2 -2
  400. package/dist/clis/linux-do/feed.js +2 -2
  401. package/dist/clis/linux-do/hot.js +1 -1
  402. package/dist/clis/linux-do/latest.js +1 -1
  403. package/dist/clis/medium/feed.js +1 -1
  404. package/dist/clis/medium/search.js +1 -1
  405. package/dist/clis/medium/user.js +1 -1
  406. package/dist/clis/medium/utils.d.ts +1 -1
  407. package/dist/clis/medium/utils.js +1 -1
  408. package/dist/clis/notebooklm/compat.test.js +1 -1
  409. package/dist/clis/notebooklm/current.js +2 -2
  410. package/dist/clis/notebooklm/get.js +2 -2
  411. package/dist/clis/notebooklm/history.js +2 -2
  412. package/dist/clis/notebooklm/history.test.js +1 -1
  413. package/dist/clis/notebooklm/list.js +2 -2
  414. package/dist/clis/notebooklm/note-list.js +2 -2
  415. package/dist/clis/notebooklm/note-list.test.js +1 -1
  416. package/dist/clis/notebooklm/notes-get.js +2 -2
  417. package/dist/clis/notebooklm/notes-get.test.js +1 -1
  418. package/dist/clis/notebooklm/open.js +2 -2
  419. package/dist/clis/notebooklm/open.test.js +1 -1
  420. package/dist/clis/notebooklm/rpc.d.ts +1 -1
  421. package/dist/clis/notebooklm/rpc.js +1 -1
  422. package/dist/clis/notebooklm/rpc.test.js +1 -1
  423. package/dist/clis/notebooklm/source-fulltext.js +2 -2
  424. package/dist/clis/notebooklm/source-fulltext.test.js +1 -1
  425. package/dist/clis/notebooklm/source-get.js +2 -2
  426. package/dist/clis/notebooklm/source-get.test.js +1 -1
  427. package/dist/clis/notebooklm/source-guide.js +2 -2
  428. package/dist/clis/notebooklm/source-guide.test.js +1 -1
  429. package/dist/clis/notebooklm/source-list.js +2 -2
  430. package/dist/clis/notebooklm/status.js +1 -1
  431. package/dist/clis/notebooklm/summary.js +2 -2
  432. package/dist/clis/notebooklm/summary.test.js +1 -1
  433. package/dist/clis/notebooklm/utils.d.ts +1 -1
  434. package/dist/clis/notebooklm/utils.js +1 -1
  435. package/dist/clis/notion/export.d.ts +1 -1
  436. package/dist/clis/notion/export.js +1 -1
  437. package/dist/clis/notion/favorites.d.ts +1 -1
  438. package/dist/clis/notion/favorites.js +1 -1
  439. package/dist/clis/notion/new.d.ts +1 -1
  440. package/dist/clis/notion/new.js +1 -1
  441. package/dist/clis/notion/read.d.ts +1 -1
  442. package/dist/clis/notion/read.js +1 -1
  443. package/dist/clis/notion/search.d.ts +1 -1
  444. package/dist/clis/notion/search.js +1 -1
  445. package/dist/clis/notion/sidebar.d.ts +1 -1
  446. package/dist/clis/notion/sidebar.js +1 -1
  447. package/dist/clis/notion/status.d.ts +1 -1
  448. package/dist/clis/notion/status.js +1 -1
  449. package/dist/clis/notion/write.d.ts +1 -1
  450. package/dist/clis/notion/write.js +1 -1
  451. package/dist/clis/ones/common.d.ts +1 -1
  452. package/dist/clis/ones/common.js +1 -1
  453. package/dist/clis/ones/enrich-tasks.d.ts +1 -1
  454. package/dist/clis/ones/login.js +2 -2
  455. package/dist/clis/ones/logout.js +1 -1
  456. package/dist/clis/ones/me.js +2 -2
  457. package/dist/clis/ones/my-tasks.js +2 -2
  458. package/dist/clis/ones/resolve-labels.d.ts +1 -1
  459. package/dist/clis/ones/task-helpers.js +1 -1
  460. package/dist/clis/ones/task.js +2 -2
  461. package/dist/clis/ones/tasks.js +2 -2
  462. package/dist/clis/ones/token-info.js +2 -2
  463. package/dist/clis/ones/worklog.js +2 -2
  464. package/dist/clis/paperreview/commands.test.js +1 -1
  465. package/dist/clis/paperreview/feedback.js +2 -2
  466. package/dist/clis/paperreview/review.js +2 -2
  467. package/dist/clis/paperreview/submit.js +2 -2
  468. package/dist/clis/paperreview/utils.js +1 -1
  469. package/dist/clis/paperreview/utils.test.js +1 -1
  470. package/dist/clis/pixiv/download.js +2 -2
  471. package/dist/clis/pixiv/download.test.js +2 -2
  472. package/dist/clis/pixiv/illusts.js +2 -2
  473. package/dist/clis/pixiv/illusts.test.js +2 -2
  474. package/dist/clis/pixiv/search.js +1 -1
  475. package/dist/clis/pixiv/search.test.js +2 -2
  476. package/dist/clis/pixiv/test-utils.d.ts +1 -1
  477. package/dist/clis/pixiv/utils.d.ts +1 -1
  478. package/dist/clis/pixiv/utils.js +1 -1
  479. package/dist/clis/producthunt/browse.js +2 -2
  480. package/dist/clis/producthunt/hot.js +2 -2
  481. package/dist/clis/producthunt/posts.js +1 -1
  482. package/dist/clis/producthunt/today.js +1 -1
  483. package/dist/clis/reddit/comment.js +2 -2
  484. package/dist/clis/reddit/read.js +2 -2
  485. package/dist/clis/reddit/read.test.js +1 -1
  486. package/dist/clis/reddit/save.js +2 -2
  487. package/dist/clis/reddit/saved.js +2 -2
  488. package/dist/clis/reddit/subscribe.js +2 -2
  489. package/dist/clis/reddit/upvote.js +2 -2
  490. package/dist/clis/reddit/upvoted.js +2 -2
  491. package/dist/clis/reuters/search.js +1 -1
  492. package/dist/clis/sinablog/article.js +1 -1
  493. package/dist/clis/sinablog/hot.js +1 -1
  494. package/dist/clis/sinablog/search.js +1 -1
  495. package/dist/clis/sinablog/user.js +1 -1
  496. package/dist/clis/sinablog/utils.d.ts +1 -1
  497. package/dist/clis/sinafinance/news.js +2 -2
  498. package/dist/clis/sinafinance/rolling-news.js +1 -1
  499. package/dist/clis/sinafinance/stock-rank.d.ts +4 -0
  500. package/dist/clis/sinafinance/stock-rank.js +65 -0
  501. package/dist/clis/sinafinance/stock.js +2 -2
  502. package/dist/clis/smzdm/search.js +1 -1
  503. package/dist/clis/spotify/spotify.js +2 -2
  504. package/dist/clis/spotify/utils.js +1 -1
  505. package/dist/clis/substack/feed.js +1 -1
  506. package/dist/clis/substack/publication.js +1 -1
  507. package/dist/clis/substack/search.js +2 -2
  508. package/dist/clis/substack/utils.d.ts +1 -1
  509. package/dist/clis/substack/utils.js +1 -1
  510. package/dist/clis/substack/utils.test.js +0 -2
  511. package/dist/clis/tieba/commands.test.js +1 -1
  512. package/dist/clis/tieba/hot.js +2 -2
  513. package/dist/clis/tieba/posts.js +2 -2
  514. package/dist/clis/tieba/read.js +2 -2
  515. package/dist/clis/tieba/search.js +2 -2
  516. package/dist/clis/twitter/accept.js +2 -2
  517. package/dist/clis/twitter/article.js +2 -2
  518. package/dist/clis/twitter/block.js +2 -2
  519. package/dist/clis/twitter/bookmark.js +2 -2
  520. package/dist/clis/twitter/bookmarks.js +2 -2
  521. package/dist/clis/twitter/delete.d.ts +6 -0
  522. package/dist/clis/twitter/delete.js +82 -47
  523. package/dist/clis/twitter/delete.test.d.ts +1 -0
  524. package/dist/clis/twitter/delete.test.js +73 -0
  525. package/dist/clis/twitter/download.js +1 -1
  526. package/dist/clis/twitter/follow.js +2 -2
  527. package/dist/clis/twitter/followers.js +2 -2
  528. package/dist/clis/twitter/following.js +2 -2
  529. package/dist/clis/twitter/hide-reply.js +2 -2
  530. package/dist/clis/twitter/like.js +2 -2
  531. package/dist/clis/twitter/likes.js +2 -2
  532. package/dist/clis/twitter/notifications.js +2 -2
  533. package/dist/clis/twitter/post.js +74 -47
  534. package/dist/clis/twitter/post.test.d.ts +1 -0
  535. package/dist/clis/twitter/post.test.js +116 -0
  536. package/dist/clis/twitter/profile.js +2 -2
  537. package/dist/clis/twitter/reply-dm.js +2 -2
  538. package/dist/clis/twitter/reply.d.ts +12 -0
  539. package/dist/clis/twitter/reply.js +259 -37
  540. package/dist/clis/twitter/reply.test.d.ts +1 -0
  541. package/dist/clis/twitter/reply.test.js +151 -0
  542. package/dist/clis/twitter/search.js +2 -2
  543. package/dist/clis/twitter/search.test.js +1 -1
  544. package/dist/clis/twitter/shared.d.ts +1 -1
  545. package/dist/clis/twitter/thread.js +2 -2
  546. package/dist/clis/twitter/timeline.js +2 -2
  547. package/dist/clis/twitter/trending.js +2 -2
  548. package/dist/clis/twitter/unblock.js +2 -2
  549. package/dist/clis/twitter/unbookmark.js +2 -2
  550. package/dist/clis/twitter/unfollow.js +2 -2
  551. package/dist/clis/v2ex/daily.js +2 -2
  552. package/dist/clis/v2ex/me.js +2 -2
  553. package/dist/clis/v2ex/notifications.js +2 -2
  554. package/dist/clis/web/read.js +1 -1
  555. package/dist/clis/weibo/comments.js +1 -1
  556. package/dist/clis/weibo/feed.js +1 -1
  557. package/dist/clis/weibo/hot.js +1 -1
  558. package/dist/clis/weibo/me.js +2 -2
  559. package/dist/clis/weibo/post.js +2 -2
  560. package/dist/clis/weibo/search.js +2 -2
  561. package/dist/clis/weibo/user.js +2 -2
  562. package/dist/clis/weibo/utils.d.ts +1 -1
  563. package/dist/clis/weibo/utils.js +1 -1
  564. package/dist/clis/weixin/download.js +1 -1
  565. package/dist/clis/weread/book.js +2 -2
  566. package/dist/clis/weread/commands.test.js +2 -2
  567. package/dist/clis/weread/highlights.js +1 -1
  568. package/dist/clis/weread/notebooks.js +1 -1
  569. package/dist/clis/weread/notes.js +1 -1
  570. package/dist/clis/weread/private-api-regression.test.js +2 -2
  571. package/dist/clis/weread/ranking.js +1 -1
  572. package/dist/clis/weread/search-regression.test.js +1 -1
  573. package/dist/clis/weread/search.js +1 -1
  574. package/dist/clis/weread/shelf.js +3 -3
  575. package/dist/clis/weread/utils.d.ts +1 -1
  576. package/dist/clis/weread/utils.js +1 -1
  577. package/dist/clis/wikipedia/random.js +2 -2
  578. package/dist/clis/wikipedia/search.js +2 -2
  579. package/dist/clis/wikipedia/summary.js +2 -2
  580. package/dist/clis/wikipedia/trending.js +2 -2
  581. package/dist/clis/wikipedia/utils.js +1 -1
  582. package/dist/clis/xianyu/chat.d.ts +7 -0
  583. package/dist/clis/xianyu/chat.js +146 -0
  584. package/dist/clis/xianyu/chat.test.d.ts +1 -0
  585. package/dist/clis/xianyu/chat.test.js +15 -0
  586. package/dist/clis/xianyu/item.d.ts +7 -0
  587. package/dist/clis/xianyu/item.js +152 -0
  588. package/dist/clis/xianyu/item.test.d.ts +1 -0
  589. package/dist/clis/xianyu/item.test.js +56 -0
  590. package/dist/clis/xianyu/search.d.ts +10 -0
  591. package/dist/clis/xianyu/search.js +134 -0
  592. package/dist/clis/xianyu/search.test.d.ts +1 -0
  593. package/dist/clis/xianyu/search.test.js +17 -0
  594. package/dist/clis/xianyu/utils.d.ts +1 -0
  595. package/dist/clis/xianyu/utils.js +8 -0
  596. package/dist/clis/xiaoe/catalog.yaml +129 -0
  597. package/dist/clis/xiaoe/content.yaml +43 -0
  598. package/dist/clis/xiaoe/courses.yaml +73 -0
  599. package/dist/clis/xiaoe/detail.yaml +39 -0
  600. package/dist/clis/xiaoe/play-url.yaml +124 -0
  601. package/dist/clis/xiaohongshu/comments.js +2 -2
  602. package/dist/clis/xiaohongshu/comments.test.js +3 -5
  603. package/dist/clis/xiaohongshu/creator-note-detail.d.ts +1 -1
  604. package/dist/clis/xiaohongshu/creator-note-detail.js +1 -1
  605. package/dist/clis/xiaohongshu/creator-note-detail.test.js +1 -3
  606. package/dist/clis/xiaohongshu/creator-notes-summary.js +1 -1
  607. package/dist/clis/xiaohongshu/creator-notes.d.ts +1 -1
  608. package/dist/clis/xiaohongshu/creator-notes.js +1 -1
  609. package/dist/clis/xiaohongshu/creator-notes.test.js +1 -3
  610. package/dist/clis/xiaohongshu/creator-profile.js +1 -1
  611. package/dist/clis/xiaohongshu/creator-stats.js +1 -1
  612. package/dist/clis/xiaohongshu/download.js +1 -1
  613. package/dist/clis/xiaohongshu/download.test.js +1 -3
  614. package/dist/clis/xiaohongshu/note-helpers.d.ts +2 -2
  615. package/dist/clis/xiaohongshu/note-helpers.js +5 -3
  616. package/dist/clis/xiaohongshu/note.d.ts +4 -0
  617. package/dist/clis/xiaohongshu/note.js +10 -12
  618. package/dist/clis/xiaohongshu/note.test.js +6 -8
  619. package/dist/clis/xiaohongshu/publish.js +1 -1
  620. package/dist/clis/xiaohongshu/publish.test.js +1 -3
  621. package/dist/clis/xiaohongshu/search.js +31 -22
  622. package/dist/clis/xiaohongshu/search.test.js +57 -49
  623. package/dist/clis/xiaohongshu/user.js +1 -1
  624. package/dist/clis/xiaoyuzhou/episode.js +2 -2
  625. package/dist/clis/xiaoyuzhou/podcast-episodes.js +2 -2
  626. package/dist/clis/xiaoyuzhou/podcast.js +2 -2
  627. package/dist/clis/xiaoyuzhou/utils.js +1 -1
  628. package/dist/clis/xueqiu/comments.d.ts +1 -1
  629. package/dist/clis/xueqiu/comments.js +4 -4
  630. package/dist/clis/xueqiu/comments.test.js +3 -3
  631. package/dist/clis/xueqiu/danjuan-utils.d.ts +1 -1
  632. package/dist/clis/xueqiu/fund-holdings.js +1 -1
  633. package/dist/clis/xueqiu/fund-snapshot.js +1 -1
  634. package/dist/clis/yahoo-finance/quote.js +1 -1
  635. package/dist/clis/yollomi/background.js +2 -2
  636. package/dist/clis/yollomi/edit.js +2 -2
  637. package/dist/clis/yollomi/face-swap.js +2 -2
  638. package/dist/clis/yollomi/generate.js +2 -2
  639. package/dist/clis/yollomi/models.js +1 -1
  640. package/dist/clis/yollomi/object-remover.js +2 -2
  641. package/dist/clis/yollomi/remove-bg.js +2 -2
  642. package/dist/clis/yollomi/restore.js +2 -2
  643. package/dist/clis/yollomi/try-on.js +2 -2
  644. package/dist/clis/yollomi/upload.js +2 -2
  645. package/dist/clis/yollomi/upscale.js +2 -2
  646. package/dist/clis/yollomi/utils.d.ts +1 -1
  647. package/dist/clis/yollomi/utils.js +1 -1
  648. package/dist/clis/yollomi/video.js +2 -2
  649. package/dist/clis/youtube/channel.js +2 -2
  650. package/dist/clis/youtube/comments.js +2 -2
  651. package/dist/clis/youtube/search.js +1 -1
  652. package/dist/clis/youtube/transcript.js +2 -2
  653. package/dist/clis/youtube/utils.d.ts +1 -1
  654. package/dist/clis/youtube/video.js +2 -2
  655. package/dist/clis/yuanbao/ask.d.ts +21 -0
  656. package/dist/clis/yuanbao/ask.js +427 -0
  657. package/dist/clis/yuanbao/ask.test.d.ts +1 -0
  658. package/dist/clis/yuanbao/ask.test.js +124 -0
  659. package/dist/clis/yuanbao/new.d.ts +1 -0
  660. package/dist/clis/yuanbao/new.js +70 -0
  661. package/dist/clis/yuanbao/new.test.d.ts +1 -0
  662. package/dist/clis/yuanbao/new.test.js +30 -0
  663. package/dist/clis/yuanbao/shared.d.ts +13 -0
  664. package/dist/clis/yuanbao/shared.js +49 -0
  665. package/dist/clis/zhihu/download.js +1 -1
  666. package/dist/clis/zhihu/question.js +32 -21
  667. package/dist/clis/zhihu/question.test.js +35 -17
  668. package/dist/clis/zsxq/dynamics.js +1 -1
  669. package/dist/clis/zsxq/groups.js +1 -1
  670. package/dist/clis/zsxq/search.js +1 -1
  671. package/dist/clis/zsxq/search.test.js +1 -1
  672. package/dist/clis/zsxq/topic.js +2 -2
  673. package/dist/clis/zsxq/topic.test.js +1 -1
  674. package/dist/clis/zsxq/topics.js +1 -1
  675. package/dist/clis/zsxq/topics.test.js +1 -1
  676. package/dist/clis/zsxq/utils.d.ts +1 -1
  677. package/dist/clis/zsxq/utils.js +1 -1
  678. package/dist/download/article-download.d.ts +1 -59
  679. package/dist/download/article-download.js +2 -178
  680. package/dist/download/index.d.ts +1 -71
  681. package/dist/download/index.js +2 -345
  682. package/dist/download/media-download.d.ts +1 -49
  683. package/dist/download/media-download.js +2 -114
  684. package/dist/download/progress.d.ts +1 -36
  685. package/dist/download/progress.js +2 -111
  686. package/dist/pipeline/index.d.ts +1 -5
  687. package/dist/pipeline/index.js +2 -5
  688. package/dist/src/browser/base-page.d.ts +50 -0
  689. package/dist/src/browser/base-page.js +193 -0
  690. package/dist/src/browser/bridge.js +109 -0
  691. package/dist/src/browser/cdp.d.ts +40 -0
  692. package/dist/src/browser/cdp.js +310 -0
  693. package/dist/src/browser/cdp.test.d.ts +1 -0
  694. package/dist/src/browser/daemon-client.d.ts +74 -0
  695. package/dist/src/browser/daemon-client.js +113 -0
  696. package/dist/src/browser/daemon-client.test.d.ts +1 -0
  697. package/dist/src/browser/dom-helpers.d.ts +41 -0
  698. package/dist/src/browser/dom-helpers.js +227 -0
  699. package/dist/src/browser/dom-helpers.test.d.ts +1 -0
  700. package/dist/src/browser/dom-snapshot.js +804 -0
  701. package/dist/src/browser/page.d.ts +62 -0
  702. package/dist/src/browser/page.js +304 -0
  703. package/dist/src/browser/page.test.d.ts +1 -0
  704. package/dist/src/browser/stealth.test.d.ts +1 -0
  705. package/dist/src/browser/utils.d.ts +10 -0
  706. package/dist/src/browser/utils.js +27 -0
  707. package/dist/src/browser.test.d.ts +1 -0
  708. package/dist/src/browser.test.js +159 -0
  709. package/dist/src/build-manifest.d.ts +47 -0
  710. package/dist/src/build-manifest.js +226 -0
  711. package/dist/src/build-manifest.test.d.ts +1 -0
  712. package/dist/src/capabilityRouting.test.d.ts +1 -0
  713. package/dist/src/cascade.js +134 -0
  714. package/dist/src/cli.d.ts +22 -0
  715. package/dist/src/cli.js +1023 -0
  716. package/dist/src/cli.test.d.ts +1 -0
  717. package/dist/src/cli.test.js +171 -0
  718. package/dist/src/commanderAdapter.d.ts +23 -0
  719. package/dist/src/commanderAdapter.js +281 -0
  720. package/dist/src/commanderAdapter.test.d.ts +1 -0
  721. package/dist/src/commanderAdapter.test.js +244 -0
  722. package/dist/src/commands/daemon.test.d.ts +1 -0
  723. package/dist/src/completion.js +120 -0
  724. package/dist/src/completion.test.d.ts +1 -0
  725. package/dist/src/completion.test.js +23 -0
  726. package/dist/src/daemon.test.d.ts +1 -0
  727. package/dist/src/discovery.d.ts +40 -0
  728. package/dist/src/discovery.js +414 -0
  729. package/dist/src/doctor.js +126 -0
  730. package/dist/src/doctor.test.d.ts +1 -0
  731. package/dist/src/download/article-download.d.ts +59 -0
  732. package/dist/src/download/article-download.js +178 -0
  733. package/dist/src/download/index.d.ts +71 -0
  734. package/dist/src/download/index.js +345 -0
  735. package/dist/src/download/index.test.d.ts +1 -0
  736. package/dist/src/download/media-download.d.ts +49 -0
  737. package/dist/src/download/media-download.js +114 -0
  738. package/dist/src/download/progress.d.ts +36 -0
  739. package/dist/src/download/progress.js +111 -0
  740. package/dist/src/electron-apps.d.ts +31 -0
  741. package/dist/src/electron-apps.js +71 -0
  742. package/dist/src/electron-apps.test.d.ts +1 -0
  743. package/dist/src/engine.test.d.ts +1 -0
  744. package/dist/src/errors.js +119 -0
  745. package/dist/src/errors.test.d.ts +1 -0
  746. package/dist/src/execution.js +209 -0
  747. package/dist/src/execution.test.d.ts +1 -0
  748. package/dist/src/explore.js +379 -0
  749. package/dist/src/extension-manifest-regression.test.d.ts +1 -0
  750. package/dist/src/external.test.d.ts +1 -0
  751. package/dist/src/interceptor.d.ts +44 -0
  752. package/dist/src/interceptor.js +183 -0
  753. package/dist/src/launcher.d.ts +40 -0
  754. package/dist/src/launcher.js +208 -0
  755. package/dist/src/launcher.test.d.ts +1 -0
  756. package/dist/src/launcher.test.js +138 -0
  757. package/dist/src/main.js +61 -0
  758. package/dist/src/node-network.test.d.ts +1 -0
  759. package/dist/src/output.d.ts +14 -0
  760. package/dist/src/output.js +147 -0
  761. package/dist/src/output.test.d.ts +1 -0
  762. package/dist/src/output.test.js +62 -0
  763. package/dist/src/pipeline/executor.test.js +173 -0
  764. package/dist/src/pipeline/index.d.ts +5 -0
  765. package/dist/src/pipeline/index.js +5 -0
  766. package/dist/src/pipeline/steps/download.test.d.ts +1 -0
  767. package/dist/src/pipeline/steps/download.test.js +100 -0
  768. package/dist/src/pipeline/steps/fetch.test.d.ts +1 -0
  769. package/dist/src/record.js +694 -0
  770. package/dist/src/record.test.d.ts +1 -0
  771. package/dist/src/registry.d.ts +81 -0
  772. package/dist/src/runtime-detect.test.d.ts +1 -0
  773. package/dist/src/serialization.d.ts +38 -0
  774. package/dist/src/serialization.js +78 -0
  775. package/dist/src/serialization.test.d.ts +1 -0
  776. package/dist/src/synthesize.d.ts +99 -0
  777. package/dist/src/synthesize.js +205 -0
  778. package/dist/src/tui.test.d.ts +1 -0
  779. package/dist/src/types.d.ts +98 -0
  780. package/dist/src/weixin-download.test.d.ts +1 -0
  781. package/dist/src/weixin-download.test.js +44 -0
  782. package/package.json +28 -10
  783. package/scripts/check-doc-coverage.sh +2 -2
  784. package/scripts/copy-yaml.cjs +4 -4
  785. package/scripts/fetch-adapters.js +157 -0
  786. package/scripts/postinstall.js +1 -1
  787. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -83
  788. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  789. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -42
  790. package/.github/ISSUE_TEMPLATE/new_site_adapter.yml +0 -57
  791. package/.github/actions/setup-chrome/action.yml +0 -27
  792. package/.github/dependabot.yml +0 -27
  793. package/.github/pull_request_template.md +0 -33
  794. package/.github/workflows/build-extension.yml +0 -67
  795. package/.github/workflows/ci.yml +0 -147
  796. package/.github/workflows/doc-check.yml +0 -36
  797. package/.github/workflows/docs.yml +0 -17
  798. package/.github/workflows/e2e-headed.yml +0 -74
  799. package/.github/workflows/release.yml +0 -44
  800. package/.github/workflows/security.yml +0 -33
  801. package/CHANGELOG.md +0 -321
  802. package/CLI-EXPLORER.md +0 -724
  803. package/CLI-ONESHOT.md +0 -216
  804. package/CONTRIBUTING.md +0 -208
  805. package/PRIVACY.md +0 -57
  806. package/SKILL.md +0 -59
  807. package/TESTING.md +0 -252
  808. package/autoresearch/baseline-browse.txt +0 -1
  809. package/autoresearch/baseline-skill.txt +0 -1
  810. package/autoresearch/browse-tasks.json +0 -688
  811. package/autoresearch/eval-browse.ts +0 -185
  812. package/autoresearch/eval-skill.ts +0 -248
  813. package/autoresearch/run-browse.sh +0 -9
  814. package/autoresearch/run-skill.sh +0 -9
  815. package/bun.lock +0 -615
  816. package/dist/browser/base-page.d.ts +0 -48
  817. package/dist/browser/base-page.js +0 -160
  818. package/dist/browser/bridge.js +0 -107
  819. package/dist/browser/daemon-client.d.ts +0 -64
  820. package/dist/browser/daemon-client.js +0 -110
  821. package/dist/browser/dom-helpers.d.ts +0 -39
  822. package/dist/browser/dom-helpers.js +0 -216
  823. package/dist/browser/dom-snapshot.js +0 -782
  824. package/dist/browser.test.js +0 -159
  825. package/dist/build-manifest.d.ts +0 -46
  826. package/dist/build-manifest.js +0 -224
  827. package/dist/cascade.js +0 -149
  828. package/dist/cli.d.ts +0 -7
  829. package/dist/cli.js +0 -912
  830. package/dist/commanderAdapter.d.ts +0 -22
  831. package/dist/commanderAdapter.js +0 -297
  832. package/dist/commanderAdapter.test.js +0 -202
  833. package/dist/completion.js +0 -118
  834. package/dist/discovery.d.ts +0 -31
  835. package/dist/discovery.js +0 -330
  836. package/dist/doctor.js +0 -126
  837. package/dist/electron-apps.d.ts +0 -29
  838. package/dist/electron-apps.js +0 -65
  839. package/dist/errors.js +0 -119
  840. package/dist/execution.js +0 -219
  841. package/dist/explore.js +0 -379
  842. package/dist/interceptor.d.ts +0 -42
  843. package/dist/interceptor.js +0 -186
  844. package/dist/launcher.d.ts +0 -36
  845. package/dist/launcher.js +0 -152
  846. package/dist/launcher.test.js +0 -57
  847. package/dist/main.js +0 -60
  848. package/dist/output.d.ts +0 -12
  849. package/dist/output.js +0 -138
  850. package/dist/output.test.d.ts +0 -4
  851. package/dist/output.test.js +0 -95
  852. package/dist/pipeline/executor.test.js +0 -175
  853. package/dist/pipeline/steps/download.test.js +0 -102
  854. package/dist/record.js +0 -694
  855. package/dist/registry.d.ts +0 -79
  856. package/dist/serialization.d.ts +0 -37
  857. package/dist/serialization.js +0 -77
  858. package/dist/synthesize.d.ts +0 -103
  859. package/dist/synthesize.js +0 -216
  860. package/dist/types.d.ts +0 -91
  861. package/dist/weixin-download.test.js +0 -44
  862. package/docs/.vitepress/config.mts +0 -234
  863. package/docs/adapters/browser/36kr.md +0 -47
  864. package/docs/adapters/browser/amazon.md +0 -53
  865. package/docs/adapters/browser/apple-podcasts.md +0 -28
  866. package/docs/adapters/browser/arxiv.md +0 -27
  867. package/docs/adapters/browser/band.md +0 -63
  868. package/docs/adapters/browser/barchart.md +0 -33
  869. package/docs/adapters/browser/bbc.md +0 -26
  870. package/docs/adapters/browser/bilibili.md +0 -47
  871. package/docs/adapters/browser/bloomberg.md +0 -70
  872. package/docs/adapters/browser/bluesky.md +0 -53
  873. package/docs/adapters/browser/boss.md +0 -28
  874. package/docs/adapters/browser/chaoxing.md +0 -39
  875. package/docs/adapters/browser/coupang.md +0 -28
  876. package/docs/adapters/browser/ctrip.md +0 -27
  877. package/docs/adapters/browser/devto.md +0 -35
  878. package/docs/adapters/browser/dictionary.md +0 -27
  879. package/docs/adapters/browser/douban.md +0 -62
  880. package/docs/adapters/browser/doubao.md +0 -35
  881. package/docs/adapters/browser/douyin.md +0 -75
  882. package/docs/adapters/browser/facebook.md +0 -36
  883. package/docs/adapters/browser/gemini.md +0 -72
  884. package/docs/adapters/browser/google.md +0 -62
  885. package/docs/adapters/browser/grok.md +0 -53
  886. package/docs/adapters/browser/hackernews.md +0 -42
  887. package/docs/adapters/browser/hf.md +0 -42
  888. package/docs/adapters/browser/imdb.md +0 -47
  889. package/docs/adapters/browser/instagram.md +0 -46
  890. package/docs/adapters/browser/jd.md +0 -27
  891. package/docs/adapters/browser/jike.md +0 -45
  892. package/docs/adapters/browser/jimeng.md +0 -39
  893. package/docs/adapters/browser/linkedin.md +0 -33
  894. package/docs/adapters/browser/linux-do.md +0 -206
  895. package/docs/adapters/browser/lobsters.md +0 -32
  896. package/docs/adapters/browser/medium.md +0 -32
  897. package/docs/adapters/browser/notebooklm.md +0 -69
  898. package/docs/adapters/browser/ones.md +0 -59
  899. package/docs/adapters/browser/paperreview.md +0 -43
  900. package/docs/adapters/browser/pixiv.md +0 -92
  901. package/docs/adapters/browser/producthunt.md +0 -49
  902. package/docs/adapters/browser/reddit.md +0 -50
  903. package/docs/adapters/browser/reuters.md +0 -27
  904. package/docs/adapters/browser/sinablog.md +0 -36
  905. package/docs/adapters/browser/sinafinance.md +0 -85
  906. package/docs/adapters/browser/smzdm.md +0 -27
  907. package/docs/adapters/browser/spotify.md +0 -62
  908. package/docs/adapters/browser/stackoverflow.md +0 -35
  909. package/docs/adapters/browser/steam.md +0 -26
  910. package/docs/adapters/browser/substack.md +0 -38
  911. package/docs/adapters/browser/tieba.md +0 -45
  912. package/docs/adapters/browser/tiktok.md +0 -68
  913. package/docs/adapters/browser/twitter.md +0 -56
  914. package/docs/adapters/browser/v2ex.md +0 -53
  915. package/docs/adapters/browser/web.md +0 -30
  916. package/docs/adapters/browser/weibo.md +0 -31
  917. package/docs/adapters/browser/weixin.md +0 -33
  918. package/docs/adapters/browser/weread.md +0 -48
  919. package/docs/adapters/browser/wikipedia.md +0 -30
  920. package/docs/adapters/browser/xiaohongshu.md +0 -47
  921. package/docs/adapters/browser/xiaoyuzhou.md +0 -28
  922. package/docs/adapters/browser/xueqiu.md +0 -65
  923. package/docs/adapters/browser/yahoo-finance.md +0 -27
  924. package/docs/adapters/browser/yollomi.md +0 -69
  925. package/docs/adapters/browser/youtube.md +0 -29
  926. package/docs/adapters/browser/zhihu.md +0 -30
  927. package/docs/adapters/browser/zsxq.md +0 -49
  928. package/docs/adapters/desktop/antigravity.md +0 -49
  929. package/docs/adapters/desktop/chatgpt.md +0 -49
  930. package/docs/adapters/desktop/chatwise.md +0 -38
  931. package/docs/adapters/desktop/codex.md +0 -36
  932. package/docs/adapters/desktop/cursor.md +0 -37
  933. package/docs/adapters/desktop/discord.md +0 -28
  934. package/docs/adapters/desktop/doubao-app.md +0 -35
  935. package/docs/adapters/desktop/notion.md +0 -29
  936. package/docs/adapters/index.md +0 -87
  937. package/docs/adapters-doc/ones.md +0 -32
  938. package/docs/advanced/cdp.md +0 -103
  939. package/docs/advanced/download.md +0 -71
  940. package/docs/advanced/electron.md +0 -125
  941. package/docs/advanced/rate-limiter-plugin.md +0 -99
  942. package/docs/advanced/remote-chrome.md +0 -72
  943. package/docs/comparison.md +0 -125
  944. package/docs/developer/ai-workflow.md +0 -66
  945. package/docs/developer/architecture.md +0 -103
  946. package/docs/developer/contributing.md +0 -155
  947. package/docs/developer/testing.md +0 -261
  948. package/docs/developer/ts-adapter.md +0 -105
  949. package/docs/developer/yaml-adapter.md +0 -124
  950. package/docs/guide/browser-bridge.md +0 -49
  951. package/docs/guide/electron-app-cli.md +0 -200
  952. package/docs/guide/getting-started.md +0 -79
  953. package/docs/guide/installation.md +0 -37
  954. package/docs/guide/plugins.md +0 -260
  955. package/docs/guide/troubleshooting.md +0 -61
  956. package/docs/index.md +0 -35
  957. package/docs/superpowers/plans/2026-03-28-perf-smart-wait.md +0 -1143
  958. package/docs/superpowers/plans/2026-03-31-daemon-lifecycle-redesign.md +0 -857
  959. package/docs/superpowers/specs/2026-03-28-perf-smart-wait-design.md +0 -170
  960. package/docs/superpowers/specs/2026-03-31-daemon-lifecycle-redesign.md +0 -208
  961. package/docs/superpowers/specs/2026-04-02-browse-skill-testing-design.md +0 -144
  962. package/docs/zh/adapters/index.md +0 -5
  963. package/docs/zh/advanced/cdp.md +0 -3
  964. package/docs/zh/developer/contributing.md +0 -24
  965. package/docs/zh/guide/browser-bridge.md +0 -36
  966. package/docs/zh/guide/electron-app-cli.md +0 -188
  967. package/docs/zh/guide/getting-started.md +0 -62
  968. package/docs/zh/guide/installation.md +0 -37
  969. package/docs/zh/guide/plugins.md +0 -182
  970. package/docs/zh/index.md +0 -29
  971. package/extension/icons/icon-128.png +0 -0
  972. package/extension/icons/icon-16.png +0 -0
  973. package/extension/icons/icon-32.png +0 -0
  974. package/extension/icons/icon-48.png +0 -0
  975. package/extension/manifest.json +0 -39
  976. package/extension/package-lock.json +0 -1156
  977. package/extension/package.json +0 -17
  978. package/extension/popup.html +0 -84
  979. package/extension/popup.js +0 -25
  980. package/extension/scripts/package-release.mjs +0 -179
  981. package/extension/src/background.test.ts +0 -240
  982. package/extension/src/background.ts +0 -689
  983. package/extension/src/cdp.test.ts +0 -75
  984. package/extension/src/cdp.ts +0 -250
  985. package/extension/src/protocol.ts +0 -66
  986. package/extension/store-assets/screenshot-1280x800.png +0 -0
  987. package/extension/tsconfig.json +0 -15
  988. package/extension/vite.config.ts +0 -18
  989. package/skills/opencli-explorer/SKILL.md +0 -853
  990. package/skills/opencli-oneshot/SKILL.md +0 -222
  991. package/skills/opencli-operate/SKILL.md +0 -213
  992. package/skills/opencli-usage/SKILL.md +0 -152
  993. package/skills/opencli-usage/browser.md +0 -429
  994. package/skills/opencli-usage/desktop.md +0 -118
  995. package/skills/opencli-usage/plugins.md +0 -82
  996. package/skills/opencli-usage/public-api.md +0 -149
  997. package/src/analysis.ts +0 -170
  998. package/src/browser/base-page.ts +0 -197
  999. package/src/browser/bridge.ts +0 -126
  1000. package/src/browser/cdp.test.ts +0 -66
  1001. package/src/browser/cdp.ts +0 -348
  1002. package/src/browser/daemon-client.test.ts +0 -103
  1003. package/src/browser/daemon-client.ts +0 -165
  1004. package/src/browser/discover.ts +0 -26
  1005. package/src/browser/dom-helpers.test.ts +0 -114
  1006. package/src/browser/dom-helpers.ts +0 -226
  1007. package/src/browser/dom-snapshot.test.ts +0 -291
  1008. package/src/browser/dom-snapshot.ts +0 -823
  1009. package/src/browser/errors.ts +0 -63
  1010. package/src/browser/index.ts +0 -14
  1011. package/src/browser/page.test.ts +0 -58
  1012. package/src/browser/page.ts +0 -231
  1013. package/src/browser/stealth.test.ts +0 -153
  1014. package/src/browser/stealth.ts +0 -354
  1015. package/src/browser/tabs.ts +0 -76
  1016. package/src/browser/utils.ts +0 -27
  1017. package/src/browser.test.ts +0 -195
  1018. package/src/build-manifest.test.ts +0 -200
  1019. package/src/build-manifest.ts +0 -277
  1020. package/src/capabilityRouting.test.ts +0 -47
  1021. package/src/capabilityRouting.ts +0 -29
  1022. package/src/cascade.ts +0 -192
  1023. package/src/cli.ts +0 -950
  1024. package/src/clis/36kr/article.ts +0 -69
  1025. package/src/clis/36kr/hot.test.ts +0 -19
  1026. package/src/clis/36kr/hot.ts +0 -100
  1027. package/src/clis/36kr/news.test.ts +0 -90
  1028. package/src/clis/36kr/news.ts +0 -54
  1029. package/src/clis/36kr/search.ts +0 -78
  1030. package/src/clis/_shared/common.ts +0 -11
  1031. package/src/clis/_shared/desktop-commands.ts +0 -121
  1032. package/src/clis/amazon/bestsellers.test.ts +0 -22
  1033. package/src/clis/amazon/bestsellers.ts +0 -180
  1034. package/src/clis/amazon/discussion.test.ts +0 -38
  1035. package/src/clis/amazon/discussion.ts +0 -131
  1036. package/src/clis/amazon/offer.test.ts +0 -35
  1037. package/src/clis/amazon/offer.ts +0 -185
  1038. package/src/clis/amazon/product.test.ts +0 -26
  1039. package/src/clis/amazon/product.ts +0 -131
  1040. package/src/clis/amazon/search.test.ts +0 -24
  1041. package/src/clis/amazon/search.ts +0 -128
  1042. package/src/clis/amazon/shared.test.ts +0 -37
  1043. package/src/clis/amazon/shared.ts +0 -316
  1044. package/src/clis/antigravity/SKILL.md +0 -38
  1045. package/src/clis/antigravity/dump.ts +0 -30
  1046. package/src/clis/antigravity/extract-code.ts +0 -34
  1047. package/src/clis/antigravity/model.ts +0 -47
  1048. package/src/clis/antigravity/new.ts +0 -28
  1049. package/src/clis/antigravity/read.ts +0 -36
  1050. package/src/clis/antigravity/send.ts +0 -40
  1051. package/src/clis/antigravity/serve.ts +0 -600
  1052. package/src/clis/antigravity/status.ts +0 -19
  1053. package/src/clis/antigravity/watch.ts +0 -45
  1054. package/src/clis/apple-podcasts/commands.test.ts +0 -123
  1055. package/src/clis/apple-podcasts/episodes.ts +0 -28
  1056. package/src/clis/apple-podcasts/search.ts +0 -30
  1057. package/src/clis/apple-podcasts/top.ts +0 -47
  1058. package/src/clis/apple-podcasts/utils.test.ts +0 -72
  1059. package/src/clis/apple-podcasts/utils.ts +0 -37
  1060. package/src/clis/arxiv/paper.ts +0 -21
  1061. package/src/clis/arxiv/search.ts +0 -24
  1062. package/src/clis/arxiv/utils.ts +0 -63
  1063. package/src/clis/band/bands.ts +0 -76
  1064. package/src/clis/band/mentions.ts +0 -134
  1065. package/src/clis/band/post.ts +0 -187
  1066. package/src/clis/band/posts.ts +0 -106
  1067. package/src/clis/barchart/flow.ts +0 -120
  1068. package/src/clis/barchart/greeks.ts +0 -123
  1069. package/src/clis/barchart/options.ts +0 -110
  1070. package/src/clis/barchart/quote.ts +0 -137
  1071. package/src/clis/bbc/news.ts +0 -41
  1072. package/src/clis/bilibili/comments.test.ts +0 -102
  1073. package/src/clis/bilibili/comments.ts +0 -44
  1074. package/src/clis/bilibili/download.ts +0 -92
  1075. package/src/clis/bilibili/dynamic.test.ts +0 -79
  1076. package/src/clis/bilibili/dynamic.ts +0 -34
  1077. package/src/clis/bilibili/favorite.ts +0 -45
  1078. package/src/clis/bilibili/feed.ts +0 -71
  1079. package/src/clis/bilibili/following.ts +0 -51
  1080. package/src/clis/bilibili/history.ts +0 -48
  1081. package/src/clis/bilibili/hot.yaml +0 -38
  1082. package/src/clis/bilibili/me.ts +0 -14
  1083. package/src/clis/bilibili/ranking.ts +0 -25
  1084. package/src/clis/bilibili/search.ts +0 -25
  1085. package/src/clis/bilibili/subtitle.test.ts +0 -60
  1086. package/src/clis/bilibili/subtitle.ts +0 -105
  1087. package/src/clis/bilibili/user-videos.ts +0 -42
  1088. package/src/clis/bilibili/utils.ts +0 -116
  1089. package/src/clis/bloomberg/businessweek.ts +0 -18
  1090. package/src/clis/bloomberg/economics.ts +0 -18
  1091. package/src/clis/bloomberg/feeds.ts +0 -16
  1092. package/src/clis/bloomberg/industries.ts +0 -18
  1093. package/src/clis/bloomberg/main.ts +0 -18
  1094. package/src/clis/bloomberg/markets.ts +0 -18
  1095. package/src/clis/bloomberg/news.ts +0 -136
  1096. package/src/clis/bloomberg/opinions.ts +0 -18
  1097. package/src/clis/bloomberg/politics.ts +0 -18
  1098. package/src/clis/bloomberg/tech.ts +0 -18
  1099. package/src/clis/bloomberg/utils.test.ts +0 -135
  1100. package/src/clis/bloomberg/utils.ts +0 -429
  1101. package/src/clis/bluesky/feeds.yaml +0 -29
  1102. package/src/clis/bluesky/followers.yaml +0 -33
  1103. package/src/clis/bluesky/following.yaml +0 -33
  1104. package/src/clis/bluesky/profile.yaml +0 -27
  1105. package/src/clis/bluesky/search.yaml +0 -34
  1106. package/src/clis/bluesky/starter-packs.yaml +0 -34
  1107. package/src/clis/bluesky/thread.yaml +0 -32
  1108. package/src/clis/bluesky/trending.yaml +0 -27
  1109. package/src/clis/bluesky/user.yaml +0 -34
  1110. package/src/clis/boss/batchgreet.ts +0 -75
  1111. package/src/clis/boss/chatlist.ts +0 -36
  1112. package/src/clis/boss/chatmsg.ts +0 -46
  1113. package/src/clis/boss/detail.ts +0 -69
  1114. package/src/clis/boss/exchange.ts +0 -52
  1115. package/src/clis/boss/greet.ts +0 -61
  1116. package/src/clis/boss/invite.ts +0 -80
  1117. package/src/clis/boss/joblist.ts +0 -34
  1118. package/src/clis/boss/mark.ts +0 -75
  1119. package/src/clis/boss/recommend.ts +0 -49
  1120. package/src/clis/boss/resume.ts +0 -157
  1121. package/src/clis/boss/search.ts +0 -162
  1122. package/src/clis/boss/send.ts +0 -54
  1123. package/src/clis/boss/stats.ts +0 -75
  1124. package/src/clis/boss/utils.ts +0 -287
  1125. package/src/clis/chaoxing/assignments.ts +0 -89
  1126. package/src/clis/chaoxing/exams.ts +0 -88
  1127. package/src/clis/chaoxing/utils.test.ts +0 -53
  1128. package/src/clis/chaoxing/utils.ts +0 -266
  1129. package/src/clis/chatgpt/ask.ts +0 -95
  1130. package/src/clis/chatgpt/ax.ts +0 -260
  1131. package/src/clis/chatgpt/model.ts +0 -27
  1132. package/src/clis/chatgpt/new.ts +0 -29
  1133. package/src/clis/chatgpt/read.ts +0 -35
  1134. package/src/clis/chatgpt/send.ts +0 -59
  1135. package/src/clis/chatgpt/status.ts +0 -27
  1136. package/src/clis/chatwise/ask.ts +0 -90
  1137. package/src/clis/chatwise/export.ts +0 -51
  1138. package/src/clis/chatwise/history.ts +0 -61
  1139. package/src/clis/chatwise/model.ts +0 -89
  1140. package/src/clis/chatwise/new.ts +0 -3
  1141. package/src/clis/chatwise/read.ts +0 -42
  1142. package/src/clis/chatwise/screenshot.ts +0 -3
  1143. package/src/clis/chatwise/send.ts +0 -53
  1144. package/src/clis/chatwise/status.ts +0 -3
  1145. package/src/clis/codex/ask.ts +0 -80
  1146. package/src/clis/codex/dump.ts +0 -3
  1147. package/src/clis/codex/export.ts +0 -42
  1148. package/src/clis/codex/extract-diff.ts +0 -48
  1149. package/src/clis/codex/history.ts +0 -47
  1150. package/src/clis/codex/model.ts +0 -59
  1151. package/src/clis/codex/new.ts +0 -3
  1152. package/src/clis/codex/read.ts +0 -37
  1153. package/src/clis/codex/screenshot.ts +0 -3
  1154. package/src/clis/codex/send.ts +0 -48
  1155. package/src/clis/codex/status.ts +0 -3
  1156. package/src/clis/coupang/add-to-cart.ts +0 -148
  1157. package/src/clis/coupang/search.ts +0 -464
  1158. package/src/clis/coupang/utils.test.ts +0 -78
  1159. package/src/clis/coupang/utils.ts +0 -302
  1160. package/src/clis/ctrip/search.test.ts +0 -73
  1161. package/src/clis/ctrip/search.ts +0 -111
  1162. package/src/clis/cursor/ask.ts +0 -82
  1163. package/src/clis/cursor/composer.ts +0 -51
  1164. package/src/clis/cursor/dump.ts +0 -3
  1165. package/src/clis/cursor/export.ts +0 -57
  1166. package/src/clis/cursor/extract-code.ts +0 -39
  1167. package/src/clis/cursor/history.ts +0 -47
  1168. package/src/clis/cursor/model.ts +0 -57
  1169. package/src/clis/cursor/new.ts +0 -3
  1170. package/src/clis/cursor/read.ts +0 -48
  1171. package/src/clis/cursor/screenshot.ts +0 -3
  1172. package/src/clis/cursor/send.ts +0 -48
  1173. package/src/clis/cursor/status.ts +0 -3
  1174. package/src/clis/devto/tag.yaml +0 -34
  1175. package/src/clis/devto/top.yaml +0 -29
  1176. package/src/clis/devto/user.yaml +0 -33
  1177. package/src/clis/dictionary/examples.yaml +0 -25
  1178. package/src/clis/dictionary/search.yaml +0 -27
  1179. package/src/clis/dictionary/synonyms.yaml +0 -25
  1180. package/src/clis/discord-app/channels.ts +0 -60
  1181. package/src/clis/discord-app/members.ts +0 -41
  1182. package/src/clis/discord-app/read.ts +0 -49
  1183. package/src/clis/discord-app/search.ts +0 -64
  1184. package/src/clis/discord-app/send.ts +0 -32
  1185. package/src/clis/discord-app/servers.ts +0 -39
  1186. package/src/clis/discord-app/status.ts +0 -18
  1187. package/src/clis/douban/book-hot.ts +0 -15
  1188. package/src/clis/douban/download.test.ts +0 -196
  1189. package/src/clis/douban/download.ts +0 -78
  1190. package/src/clis/douban/marks.ts +0 -135
  1191. package/src/clis/douban/movie-hot.ts +0 -15
  1192. package/src/clis/douban/photos.ts +0 -36
  1193. package/src/clis/douban/reviews.ts +0 -127
  1194. package/src/clis/douban/search.ts +0 -17
  1195. package/src/clis/douban/subject.yaml +0 -76
  1196. package/src/clis/douban/top250.yaml +0 -70
  1197. package/src/clis/douban/utils.test.ts +0 -97
  1198. package/src/clis/douban/utils.ts +0 -472
  1199. package/src/clis/doubao/ask.ts +0 -40
  1200. package/src/clis/doubao/detail.test.ts +0 -53
  1201. package/src/clis/doubao/detail.ts +0 -41
  1202. package/src/clis/doubao/history.test.ts +0 -45
  1203. package/src/clis/doubao/history.ts +0 -32
  1204. package/src/clis/doubao/meeting-summary.ts +0 -53
  1205. package/src/clis/doubao/meeting-transcript.ts +0 -48
  1206. package/src/clis/doubao/new.ts +0 -22
  1207. package/src/clis/doubao/read.ts +0 -20
  1208. package/src/clis/doubao/send.ts +0 -25
  1209. package/src/clis/doubao/status.ts +0 -27
  1210. package/src/clis/doubao/utils.test.ts +0 -45
  1211. package/src/clis/doubao/utils.ts +0 -990
  1212. package/src/clis/doubao-app/ask.ts +0 -60
  1213. package/src/clis/doubao-app/dump.ts +0 -28
  1214. package/src/clis/doubao-app/new.ts +0 -21
  1215. package/src/clis/doubao-app/read.ts +0 -21
  1216. package/src/clis/doubao-app/screenshot.ts +0 -19
  1217. package/src/clis/doubao-app/send.ts +0 -30
  1218. package/src/clis/doubao-app/status.ts +0 -17
  1219. package/src/clis/doubao-app/utils.ts +0 -116
  1220. package/src/clis/douyin/_shared/browser-fetch.test.ts +0 -38
  1221. package/src/clis/douyin/_shared/browser-fetch.ts +0 -45
  1222. package/src/clis/douyin/_shared/creation-id.test.ts +0 -26
  1223. package/src/clis/douyin/_shared/creation-id.ts +0 -8
  1224. package/src/clis/douyin/_shared/imagex-upload.test.ts +0 -113
  1225. package/src/clis/douyin/_shared/imagex-upload.ts +0 -76
  1226. package/src/clis/douyin/_shared/public-api.ts +0 -84
  1227. package/src/clis/douyin/_shared/sts2.test.ts +0 -31
  1228. package/src/clis/douyin/_shared/sts2.ts +0 -28
  1229. package/src/clis/douyin/_shared/text-extra.test.ts +0 -42
  1230. package/src/clis/douyin/_shared/text-extra.ts +0 -33
  1231. package/src/clis/douyin/_shared/timing.test.ts +0 -38
  1232. package/src/clis/douyin/_shared/timing.ts +0 -22
  1233. package/src/clis/douyin/_shared/tos-upload-short-read.test.ts +0 -102
  1234. package/src/clis/douyin/_shared/tos-upload.test.ts +0 -281
  1235. package/src/clis/douyin/_shared/tos-upload.ts +0 -444
  1236. package/src/clis/douyin/_shared/transcode.test.ts +0 -117
  1237. package/src/clis/douyin/_shared/transcode.ts +0 -78
  1238. package/src/clis/douyin/_shared/types.ts +0 -29
  1239. package/src/clis/douyin/activities.test.ts +0 -65
  1240. package/src/clis/douyin/activities.ts +0 -32
  1241. package/src/clis/douyin/collections.test.ts +0 -59
  1242. package/src/clis/douyin/collections.ts +0 -25
  1243. package/src/clis/douyin/delete.test.ts +0 -12
  1244. package/src/clis/douyin/delete.ts +0 -20
  1245. package/src/clis/douyin/draft.test.ts +0 -454
  1246. package/src/clis/douyin/draft.ts +0 -446
  1247. package/src/clis/douyin/drafts.test.ts +0 -12
  1248. package/src/clis/douyin/drafts.ts +0 -27
  1249. package/src/clis/douyin/hashtag.test.ts +0 -68
  1250. package/src/clis/douyin/hashtag.ts +0 -64
  1251. package/src/clis/douyin/location.test.ts +0 -26
  1252. package/src/clis/douyin/location.ts +0 -27
  1253. package/src/clis/douyin/profile.test.ts +0 -54
  1254. package/src/clis/douyin/profile.ts +0 -44
  1255. package/src/clis/douyin/publish.test.ts +0 -45
  1256. package/src/clis/douyin/publish.ts +0 -340
  1257. package/src/clis/douyin/stats.test.ts +0 -25
  1258. package/src/clis/douyin/stats.ts +0 -30
  1259. package/src/clis/douyin/update.test.ts +0 -12
  1260. package/src/clis/douyin/update.ts +0 -43
  1261. package/src/clis/douyin/user-videos.test.ts +0 -122
  1262. package/src/clis/douyin/user-videos.ts +0 -101
  1263. package/src/clis/douyin/videos.test.ts +0 -62
  1264. package/src/clis/douyin/videos.ts +0 -83
  1265. package/src/clis/facebook/add-friend.yaml +0 -43
  1266. package/src/clis/facebook/events.yaml +0 -44
  1267. package/src/clis/facebook/feed.yaml +0 -63
  1268. package/src/clis/facebook/friends.yaml +0 -42
  1269. package/src/clis/facebook/groups.yaml +0 -50
  1270. package/src/clis/facebook/join-group.yaml +0 -44
  1271. package/src/clis/facebook/memories.yaml +0 -39
  1272. package/src/clis/facebook/notifications.yaml +0 -40
  1273. package/src/clis/facebook/profile.yaml +0 -37
  1274. package/src/clis/facebook/search.test.ts +0 -70
  1275. package/src/clis/facebook/search.yaml +0 -47
  1276. package/src/clis/gemini/ask.ts +0 -46
  1277. package/src/clis/gemini/image.ts +0 -115
  1278. package/src/clis/gemini/new.ts +0 -22
  1279. package/src/clis/gemini/utils.test.ts +0 -36
  1280. package/src/clis/gemini/utils.ts +0 -523
  1281. package/src/clis/google/news.ts +0 -66
  1282. package/src/clis/google/search.ts +0 -133
  1283. package/src/clis/google/suggest.ts +0 -40
  1284. package/src/clis/google/trends.ts +0 -44
  1285. package/src/clis/google/utils.test.ts +0 -82
  1286. package/src/clis/google/utils.ts +0 -24
  1287. package/src/clis/grok/ask.test.ts +0 -78
  1288. package/src/clis/grok/ask.ts +0 -334
  1289. package/src/clis/hackernews/ask.yaml +0 -38
  1290. package/src/clis/hackernews/best.yaml +0 -38
  1291. package/src/clis/hackernews/jobs.yaml +0 -36
  1292. package/src/clis/hackernews/new.yaml +0 -38
  1293. package/src/clis/hackernews/search.yaml +0 -44
  1294. package/src/clis/hackernews/show.yaml +0 -38
  1295. package/src/clis/hackernews/top.yaml +0 -38
  1296. package/src/clis/hackernews/user.yaml +0 -25
  1297. package/src/clis/hf/top.ts +0 -141
  1298. package/src/clis/imdb/person.ts +0 -232
  1299. package/src/clis/imdb/reviews.ts +0 -111
  1300. package/src/clis/imdb/search.ts +0 -179
  1301. package/src/clis/imdb/title.ts +0 -121
  1302. package/src/clis/imdb/top.ts +0 -67
  1303. package/src/clis/imdb/trending.ts +0 -66
  1304. package/src/clis/imdb/utils.test.ts +0 -117
  1305. package/src/clis/imdb/utils.ts +0 -305
  1306. package/src/clis/instagram/comment.yaml +0 -52
  1307. package/src/clis/instagram/download.test.ts +0 -159
  1308. package/src/clis/instagram/download.ts +0 -286
  1309. package/src/clis/instagram/explore.yaml +0 -43
  1310. package/src/clis/instagram/follow.yaml +0 -41
  1311. package/src/clis/instagram/followers.yaml +0 -51
  1312. package/src/clis/instagram/following.yaml +0 -51
  1313. package/src/clis/instagram/like.yaml +0 -46
  1314. package/src/clis/instagram/profile.yaml +0 -42
  1315. package/src/clis/instagram/save.yaml +0 -46
  1316. package/src/clis/instagram/saved.yaml +0 -40
  1317. package/src/clis/instagram/search.yaml +0 -44
  1318. package/src/clis/instagram/unfollow.yaml +0 -38
  1319. package/src/clis/instagram/unlike.yaml +0 -46
  1320. package/src/clis/instagram/unsave.yaml +0 -46
  1321. package/src/clis/instagram/user.yaml +0 -54
  1322. package/src/clis/jd/item.test.ts +0 -52
  1323. package/src/clis/jd/item.ts +0 -104
  1324. package/src/clis/jike/comment.ts +0 -112
  1325. package/src/clis/jike/create.ts +0 -112
  1326. package/src/clis/jike/feed.ts +0 -73
  1327. package/src/clis/jike/like.ts +0 -64
  1328. package/src/clis/jike/notifications.ts +0 -184
  1329. package/src/clis/jike/post.yaml +0 -59
  1330. package/src/clis/jike/repost.ts +0 -113
  1331. package/src/clis/jike/search.ts +0 -73
  1332. package/src/clis/jike/topic.yaml +0 -53
  1333. package/src/clis/jike/user.yaml +0 -52
  1334. package/src/clis/jike/utils.ts +0 -36
  1335. package/src/clis/jimeng/generate.yaml +0 -85
  1336. package/src/clis/jimeng/history.yaml +0 -46
  1337. package/src/clis/linkedin/search.ts +0 -417
  1338. package/src/clis/linkedin/timeline.test.ts +0 -99
  1339. package/src/clis/linkedin/timeline.ts +0 -532
  1340. package/src/clis/linux-do/categories.yaml +0 -70
  1341. package/src/clis/linux-do/category.ts +0 -37
  1342. package/src/clis/linux-do/feed.test.ts +0 -132
  1343. package/src/clis/linux-do/feed.ts +0 -501
  1344. package/src/clis/linux-do/hot.ts +0 -26
  1345. package/src/clis/linux-do/latest.ts +0 -19
  1346. package/src/clis/linux-do/search.yaml +0 -48
  1347. package/src/clis/linux-do/tags.yaml +0 -41
  1348. package/src/clis/linux-do/topic.yaml +0 -77
  1349. package/src/clis/linux-do/user-posts.yaml +0 -67
  1350. package/src/clis/linux-do/user-topics.yaml +0 -54
  1351. package/src/clis/lobsters/active.yaml +0 -29
  1352. package/src/clis/lobsters/hot.yaml +0 -29
  1353. package/src/clis/lobsters/newest.yaml +0 -29
  1354. package/src/clis/lobsters/tag.yaml +0 -34
  1355. package/src/clis/medium/feed.ts +0 -16
  1356. package/src/clis/medium/search.ts +0 -16
  1357. package/src/clis/medium/user.ts +0 -16
  1358. package/src/clis/medium/utils.ts +0 -84
  1359. package/src/clis/notebooklm/compat.test.ts +0 -19
  1360. package/src/clis/notebooklm/current.ts +0 -37
  1361. package/src/clis/notebooklm/get.ts +0 -51
  1362. package/src/clis/notebooklm/history.test.ts +0 -70
  1363. package/src/clis/notebooklm/history.ts +0 -34
  1364. package/src/clis/notebooklm/list.ts +0 -40
  1365. package/src/clis/notebooklm/note-list.test.ts +0 -64
  1366. package/src/clis/notebooklm/note-list.ts +0 -40
  1367. package/src/clis/notebooklm/notes-get.test.ts +0 -88
  1368. package/src/clis/notebooklm/notes-get.ts +0 -65
  1369. package/src/clis/notebooklm/open.test.ts +0 -78
  1370. package/src/clis/notebooklm/open.ts +0 -61
  1371. package/src/clis/notebooklm/rpc.test.ts +0 -126
  1372. package/src/clis/notebooklm/rpc.ts +0 -286
  1373. package/src/clis/notebooklm/shared.ts +0 -98
  1374. package/src/clis/notebooklm/source-fulltext.test.ts +0 -123
  1375. package/src/clis/notebooklm/source-fulltext.ts +0 -67
  1376. package/src/clis/notebooklm/source-get.test.ts +0 -100
  1377. package/src/clis/notebooklm/source-get.ts +0 -58
  1378. package/src/clis/notebooklm/source-guide.test.ts +0 -121
  1379. package/src/clis/notebooklm/source-guide.ts +0 -67
  1380. package/src/clis/notebooklm/source-list.ts +0 -43
  1381. package/src/clis/notebooklm/status.ts +0 -33
  1382. package/src/clis/notebooklm/summary.test.ts +0 -94
  1383. package/src/clis/notebooklm/summary.ts +0 -43
  1384. package/src/clis/notebooklm/utils.test.ts +0 -446
  1385. package/src/clis/notebooklm/utils.ts +0 -902
  1386. package/src/clis/notion/export.ts +0 -36
  1387. package/src/clis/notion/favorites.ts +0 -87
  1388. package/src/clis/notion/new.ts +0 -39
  1389. package/src/clis/notion/read.ts +0 -33
  1390. package/src/clis/notion/search.ts +0 -54
  1391. package/src/clis/notion/sidebar.ts +0 -44
  1392. package/src/clis/notion/status.ts +0 -18
  1393. package/src/clis/notion/write.ts +0 -45
  1394. package/src/clis/ones/common.ts +0 -187
  1395. package/src/clis/ones/enrich-tasks.ts +0 -47
  1396. package/src/clis/ones/login.ts +0 -103
  1397. package/src/clis/ones/logout.ts +0 -19
  1398. package/src/clis/ones/me.ts +0 -34
  1399. package/src/clis/ones/my-tasks.ts +0 -148
  1400. package/src/clis/ones/resolve-labels.ts +0 -80
  1401. package/src/clis/ones/task-helpers.test.ts +0 -14
  1402. package/src/clis/ones/task-helpers.ts +0 -214
  1403. package/src/clis/ones/task.ts +0 -79
  1404. package/src/clis/ones/tasks.ts +0 -92
  1405. package/src/clis/ones/token-info.ts +0 -46
  1406. package/src/clis/ones/worklog.test.ts +0 -24
  1407. package/src/clis/ones/worklog.ts +0 -306
  1408. package/src/clis/paperreview/commands.test.ts +0 -283
  1409. package/src/clis/paperreview/feedback.ts +0 -64
  1410. package/src/clis/paperreview/review.ts +0 -47
  1411. package/src/clis/paperreview/submit.ts +0 -119
  1412. package/src/clis/paperreview/utils.test.ts +0 -68
  1413. package/src/clis/paperreview/utils.ts +0 -276
  1414. package/src/clis/pixiv/detail.yaml +0 -49
  1415. package/src/clis/pixiv/download.test.ts +0 -114
  1416. package/src/clis/pixiv/download.ts +0 -91
  1417. package/src/clis/pixiv/illusts.test.ts +0 -115
  1418. package/src/clis/pixiv/illusts.ts +0 -78
  1419. package/src/clis/pixiv/ranking.yaml +0 -53
  1420. package/src/clis/pixiv/search.test.ts +0 -97
  1421. package/src/clis/pixiv/search.ts +0 -53
  1422. package/src/clis/pixiv/test-utils.ts +0 -29
  1423. package/src/clis/pixiv/user.yaml +0 -46
  1424. package/src/clis/pixiv/utils.ts +0 -62
  1425. package/src/clis/producthunt/browse.ts +0 -109
  1426. package/src/clis/producthunt/hot.ts +0 -127
  1427. package/src/clis/producthunt/posts.ts +0 -29
  1428. package/src/clis/producthunt/today.ts +0 -37
  1429. package/src/clis/producthunt/utils.test.ts +0 -72
  1430. package/src/clis/producthunt/utils.ts +0 -122
  1431. package/src/clis/reddit/comment.ts +0 -60
  1432. package/src/clis/reddit/frontpage.yaml +0 -30
  1433. package/src/clis/reddit/hot.yaml +0 -47
  1434. package/src/clis/reddit/popular.yaml +0 -40
  1435. package/src/clis/reddit/read.test.ts +0 -34
  1436. package/src/clis/reddit/read.ts +0 -186
  1437. package/src/clis/reddit/save.ts +0 -54
  1438. package/src/clis/reddit/saved.ts +0 -51
  1439. package/src/clis/reddit/search.yaml +0 -61
  1440. package/src/clis/reddit/subreddit.yaml +0 -50
  1441. package/src/clis/reddit/subscribe.ts +0 -53
  1442. package/src/clis/reddit/upvote.ts +0 -67
  1443. package/src/clis/reddit/upvoted.ts +0 -51
  1444. package/src/clis/reddit/user-comments.yaml +0 -46
  1445. package/src/clis/reddit/user-posts.yaml +0 -44
  1446. package/src/clis/reddit/user.yaml +0 -40
  1447. package/src/clis/reuters/search.ts +0 -51
  1448. package/src/clis/sinablog/article.ts +0 -15
  1449. package/src/clis/sinablog/hot.ts +0 -15
  1450. package/src/clis/sinablog/search.ts +0 -56
  1451. package/src/clis/sinablog/user.ts +0 -16
  1452. package/src/clis/sinablog/utils.ts +0 -197
  1453. package/src/clis/sinafinance/news.ts +0 -76
  1454. package/src/clis/sinafinance/rolling-news.ts +0 -42
  1455. package/src/clis/sinafinance/stock.ts +0 -127
  1456. package/src/clis/smzdm/search.ts +0 -56
  1457. package/src/clis/spotify/spotify.ts +0 -328
  1458. package/src/clis/spotify/utils.test.ts +0 -87
  1459. package/src/clis/spotify/utils.ts +0 -92
  1460. package/src/clis/stackoverflow/bounties.yaml +0 -29
  1461. package/src/clis/stackoverflow/hot.yaml +0 -28
  1462. package/src/clis/stackoverflow/search.yaml +0 -33
  1463. package/src/clis/stackoverflow/unanswered.yaml +0 -28
  1464. package/src/clis/steam/top-sellers.yaml +0 -29
  1465. package/src/clis/substack/feed.ts +0 -16
  1466. package/src/clis/substack/publication.ts +0 -16
  1467. package/src/clis/substack/search.ts +0 -92
  1468. package/src/clis/substack/utils.test.ts +0 -54
  1469. package/src/clis/substack/utils.ts +0 -141
  1470. package/src/clis/tieba/commands.test.ts +0 -86
  1471. package/src/clis/tieba/hot.ts +0 -52
  1472. package/src/clis/tieba/posts.ts +0 -108
  1473. package/src/clis/tieba/read.ts +0 -158
  1474. package/src/clis/tieba/search.ts +0 -119
  1475. package/src/clis/tieba/utils.test.ts +0 -322
  1476. package/src/clis/tieba/utils.ts +0 -348
  1477. package/src/clis/tiktok/comment.yaml +0 -66
  1478. package/src/clis/tiktok/explore.yaml +0 -39
  1479. package/src/clis/tiktok/follow.yaml +0 -39
  1480. package/src/clis/tiktok/following.yaml +0 -46
  1481. package/src/clis/tiktok/friends.yaml +0 -47
  1482. package/src/clis/tiktok/like.yaml +0 -38
  1483. package/src/clis/tiktok/live.yaml +0 -51
  1484. package/src/clis/tiktok/notifications.yaml +0 -52
  1485. package/src/clis/tiktok/profile.yaml +0 -45
  1486. package/src/clis/tiktok/save.yaml +0 -34
  1487. package/src/clis/tiktok/search.yaml +0 -47
  1488. package/src/clis/tiktok/unfollow.yaml +0 -44
  1489. package/src/clis/tiktok/unlike.yaml +0 -38
  1490. package/src/clis/tiktok/unsave.yaml +0 -36
  1491. package/src/clis/tiktok/user.yaml +0 -44
  1492. package/src/clis/twitter/accept.ts +0 -214
  1493. package/src/clis/twitter/article.ts +0 -170
  1494. package/src/clis/twitter/block.ts +0 -93
  1495. package/src/clis/twitter/bookmark.ts +0 -68
  1496. package/src/clis/twitter/bookmarks.ts +0 -202
  1497. package/src/clis/twitter/delete.ts +0 -78
  1498. package/src/clis/twitter/download.ts +0 -118
  1499. package/src/clis/twitter/follow.ts +0 -70
  1500. package/src/clis/twitter/followers.ts +0 -116
  1501. package/src/clis/twitter/following.ts +0 -109
  1502. package/src/clis/twitter/hide-reply.ts +0 -71
  1503. package/src/clis/twitter/like.ts +0 -74
  1504. package/src/clis/twitter/likes.test.ts +0 -91
  1505. package/src/clis/twitter/likes.ts +0 -256
  1506. package/src/clis/twitter/notifications.ts +0 -136
  1507. package/src/clis/twitter/post.ts +0 -76
  1508. package/src/clis/twitter/profile.ts +0 -108
  1509. package/src/clis/twitter/reply-dm.ts +0 -194
  1510. package/src/clis/twitter/reply.ts +0 -63
  1511. package/src/clis/twitter/search.test.ts +0 -265
  1512. package/src/clis/twitter/search.ts +0 -185
  1513. package/src/clis/twitter/shared.ts +0 -45
  1514. package/src/clis/twitter/thread.ts +0 -182
  1515. package/src/clis/twitter/timeline.test.ts +0 -109
  1516. package/src/clis/twitter/timeline.ts +0 -248
  1517. package/src/clis/twitter/trending.ts +0 -66
  1518. package/src/clis/twitter/unblock.ts +0 -76
  1519. package/src/clis/twitter/unbookmark.ts +0 -67
  1520. package/src/clis/twitter/unfollow.ts +0 -76
  1521. package/src/clis/v2ex/daily.ts +0 -106
  1522. package/src/clis/v2ex/hot.yaml +0 -28
  1523. package/src/clis/v2ex/latest.yaml +0 -28
  1524. package/src/clis/v2ex/me.ts +0 -104
  1525. package/src/clis/v2ex/member.yaml +0 -29
  1526. package/src/clis/v2ex/node.yaml +0 -34
  1527. package/src/clis/v2ex/nodes.yaml +0 -31
  1528. package/src/clis/v2ex/notifications.ts +0 -76
  1529. package/src/clis/v2ex/replies.yaml +0 -32
  1530. package/src/clis/v2ex/topic.yaml +0 -33
  1531. package/src/clis/v2ex/user.yaml +0 -34
  1532. package/src/clis/web/read.ts +0 -210
  1533. package/src/clis/weibo/comments.ts +0 -54
  1534. package/src/clis/weibo/feed.ts +0 -57
  1535. package/src/clis/weibo/hot.ts +0 -39
  1536. package/src/clis/weibo/me.ts +0 -77
  1537. package/src/clis/weibo/post.ts +0 -77
  1538. package/src/clis/weibo/search.ts +0 -78
  1539. package/src/clis/weibo/user.ts +0 -64
  1540. package/src/clis/weibo/utils.ts +0 -32
  1541. package/src/clis/weixin/download.ts +0 -382
  1542. package/src/clis/weread/book.ts +0 -271
  1543. package/src/clis/weread/commands.test.ts +0 -466
  1544. package/src/clis/weread/highlights.ts +0 -25
  1545. package/src/clis/weread/notebooks.ts +0 -23
  1546. package/src/clis/weread/notes.ts +0 -31
  1547. package/src/clis/weread/private-api-regression.test.ts +0 -435
  1548. package/src/clis/weread/ranking.ts +0 -29
  1549. package/src/clis/weread/search-regression.test.ts +0 -440
  1550. package/src/clis/weread/search.ts +0 -207
  1551. package/src/clis/weread/shelf.ts +0 -84
  1552. package/src/clis/weread/utils.test.ts +0 -153
  1553. package/src/clis/weread/utils.ts +0 -390
  1554. package/src/clis/wikipedia/random.ts +0 -19
  1555. package/src/clis/wikipedia/search.ts +0 -38
  1556. package/src/clis/wikipedia/summary.ts +0 -23
  1557. package/src/clis/wikipedia/trending.ts +0 -41
  1558. package/src/clis/wikipedia/utils.ts +0 -51
  1559. package/src/clis/xiaohongshu/comments.test.ts +0 -173
  1560. package/src/clis/xiaohongshu/comments.ts +0 -140
  1561. package/src/clis/xiaohongshu/creator-note-detail.test.ts +0 -275
  1562. package/src/clis/xiaohongshu/creator-note-detail.ts +0 -447
  1563. package/src/clis/xiaohongshu/creator-notes-summary.test.ts +0 -54
  1564. package/src/clis/xiaohongshu/creator-notes-summary.ts +0 -120
  1565. package/src/clis/xiaohongshu/creator-notes.test.ts +0 -214
  1566. package/src/clis/xiaohongshu/creator-notes.ts +0 -295
  1567. package/src/clis/xiaohongshu/creator-profile.ts +0 -59
  1568. package/src/clis/xiaohongshu/creator-stats.ts +0 -80
  1569. package/src/clis/xiaohongshu/download.test.ts +0 -96
  1570. package/src/clis/xiaohongshu/download.ts +0 -174
  1571. package/src/clis/xiaohongshu/feed.yaml +0 -31
  1572. package/src/clis/xiaohongshu/note-helpers.ts +0 -25
  1573. package/src/clis/xiaohongshu/note.test.ts +0 -215
  1574. package/src/clis/xiaohongshu/note.ts +0 -104
  1575. package/src/clis/xiaohongshu/notifications.yaml +0 -37
  1576. package/src/clis/xiaohongshu/publish.test.ts +0 -230
  1577. package/src/clis/xiaohongshu/publish.ts +0 -598
  1578. package/src/clis/xiaohongshu/search.test.ts +0 -180
  1579. package/src/clis/xiaohongshu/search.ts +0 -133
  1580. package/src/clis/xiaohongshu/user-helpers.test.ts +0 -129
  1581. package/src/clis/xiaohongshu/user-helpers.ts +0 -89
  1582. package/src/clis/xiaohongshu/user.ts +0 -64
  1583. package/src/clis/xiaoyuzhou/episode.ts +0 -28
  1584. package/src/clis/xiaoyuzhou/podcast-episodes.ts +0 -36
  1585. package/src/clis/xiaoyuzhou/podcast.ts +0 -27
  1586. package/src/clis/xiaoyuzhou/utils.test.ts +0 -122
  1587. package/src/clis/xiaoyuzhou/utils.ts +0 -65
  1588. package/src/clis/xueqiu/comments.test.ts +0 -823
  1589. package/src/clis/xueqiu/comments.ts +0 -461
  1590. package/src/clis/xueqiu/danjuan-utils.test.ts +0 -49
  1591. package/src/clis/xueqiu/danjuan-utils.ts +0 -176
  1592. package/src/clis/xueqiu/earnings-date.yaml +0 -69
  1593. package/src/clis/xueqiu/feed.yaml +0 -53
  1594. package/src/clis/xueqiu/fund-holdings.ts +0 -32
  1595. package/src/clis/xueqiu/fund-snapshot.ts +0 -27
  1596. package/src/clis/xueqiu/hot-stock.yaml +0 -49
  1597. package/src/clis/xueqiu/hot.yaml +0 -46
  1598. package/src/clis/xueqiu/search.yaml +0 -55
  1599. package/src/clis/xueqiu/stock.yaml +0 -69
  1600. package/src/clis/xueqiu/watchlist.yaml +0 -46
  1601. package/src/clis/yahoo-finance/quote.ts +0 -72
  1602. package/src/clis/yollomi/background.ts +0 -48
  1603. package/src/clis/yollomi/edit.ts +0 -58
  1604. package/src/clis/yollomi/face-swap.ts +0 -45
  1605. package/src/clis/yollomi/generate.ts +0 -95
  1606. package/src/clis/yollomi/models.ts +0 -38
  1607. package/src/clis/yollomi/object-remover.ts +0 -44
  1608. package/src/clis/yollomi/remove-bg.ts +0 -40
  1609. package/src/clis/yollomi/restore.ts +0 -40
  1610. package/src/clis/yollomi/try-on.ts +0 -48
  1611. package/src/clis/yollomi/upload.ts +0 -78
  1612. package/src/clis/yollomi/upscale.ts +0 -49
  1613. package/src/clis/yollomi/utils.ts +0 -202
  1614. package/src/clis/yollomi/video.ts +0 -61
  1615. package/src/clis/youtube/channel.ts +0 -155
  1616. package/src/clis/youtube/comments.ts +0 -97
  1617. package/src/clis/youtube/search.ts +0 -99
  1618. package/src/clis/youtube/transcript-group.test.ts +0 -108
  1619. package/src/clis/youtube/transcript-group.ts +0 -287
  1620. package/src/clis/youtube/transcript.ts +0 -279
  1621. package/src/clis/youtube/utils.test.ts +0 -43
  1622. package/src/clis/youtube/utils.ts +0 -97
  1623. package/src/clis/youtube/video.ts +0 -118
  1624. package/src/clis/zhihu/download.test.ts +0 -14
  1625. package/src/clis/zhihu/download.ts +0 -87
  1626. package/src/clis/zhihu/hot.yaml +0 -46
  1627. package/src/clis/zhihu/question.test.ts +0 -71
  1628. package/src/clis/zhihu/question.ts +0 -58
  1629. package/src/clis/zhihu/search.yaml +0 -59
  1630. package/src/clis/zsxq/dynamics.ts +0 -60
  1631. package/src/clis/zsxq/groups.ts +0 -41
  1632. package/src/clis/zsxq/search.test.ts +0 -29
  1633. package/src/clis/zsxq/search.ts +0 -54
  1634. package/src/clis/zsxq/topic.test.ts +0 -34
  1635. package/src/clis/zsxq/topic.ts +0 -68
  1636. package/src/clis/zsxq/topics.test.ts +0 -29
  1637. package/src/clis/zsxq/topics.ts +0 -36
  1638. package/src/clis/zsxq/utils.ts +0 -351
  1639. package/src/commanderAdapter.test.ts +0 -264
  1640. package/src/commanderAdapter.ts +0 -315
  1641. package/src/commands/daemon.test.ts +0 -204
  1642. package/src/commands/daemon.ts +0 -87
  1643. package/src/completion.ts +0 -130
  1644. package/src/constants.ts +0 -41
  1645. package/src/daemon.test.ts +0 -88
  1646. package/src/daemon.ts +0 -339
  1647. package/src/discovery.ts +0 -328
  1648. package/src/doctor.test.ts +0 -111
  1649. package/src/doctor.ts +0 -163
  1650. package/src/download/article-download.ts +0 -272
  1651. package/src/download/index.test.ts +0 -135
  1652. package/src/download/index.ts +0 -422
  1653. package/src/download/media-download.ts +0 -180
  1654. package/src/download/progress.ts +0 -125
  1655. package/src/electron-apps.test.ts +0 -50
  1656. package/src/electron-apps.ts +0 -89
  1657. package/src/engine.test.ts +0 -323
  1658. package/src/errors.test.ts +0 -79
  1659. package/src/errors.ts +0 -162
  1660. package/src/execution.test.ts +0 -47
  1661. package/src/execution.ts +0 -239
  1662. package/src/explore.ts +0 -502
  1663. package/src/extension-manifest-regression.test.ts +0 -18
  1664. package/src/external-clis.yaml +0 -56
  1665. package/src/external.test.ts +0 -97
  1666. package/src/external.ts +0 -246
  1667. package/src/generate.ts +0 -161
  1668. package/src/hooks.test.ts +0 -126
  1669. package/src/hooks.ts +0 -91
  1670. package/src/idle-manager.ts +0 -60
  1671. package/src/interceptor.test.ts +0 -94
  1672. package/src/interceptor.ts +0 -204
  1673. package/src/launcher.test.ts +0 -67
  1674. package/src/launcher.ts +0 -185
  1675. package/src/logger.ts +0 -57
  1676. package/src/main.ts +0 -66
  1677. package/src/node-network.test.ts +0 -93
  1678. package/src/node-network.ts +0 -213
  1679. package/src/output.test.ts +0 -109
  1680. package/src/output.ts +0 -136
  1681. package/src/pipeline/executor.test.ts +0 -193
  1682. package/src/pipeline/executor.ts +0 -110
  1683. package/src/pipeline/index.ts +0 -6
  1684. package/src/pipeline/registry.ts +0 -62
  1685. package/src/pipeline/steps/browser.ts +0 -76
  1686. package/src/pipeline/steps/download.test.ts +0 -137
  1687. package/src/pipeline/steps/download.ts +0 -320
  1688. package/src/pipeline/steps/fetch.test.ts +0 -179
  1689. package/src/pipeline/steps/fetch.ts +0 -160
  1690. package/src/pipeline/steps/intercept.ts +0 -55
  1691. package/src/pipeline/steps/tap.ts +0 -100
  1692. package/src/pipeline/steps/transform.ts +0 -71
  1693. package/src/pipeline/template.test.ts +0 -177
  1694. package/src/pipeline/template.ts +0 -269
  1695. package/src/pipeline/transform.test.ts +0 -140
  1696. package/src/plugin-manifest.test.ts +0 -223
  1697. package/src/plugin-manifest.ts +0 -206
  1698. package/src/plugin-scaffold.test.ts +0 -98
  1699. package/src/plugin-scaffold.ts +0 -170
  1700. package/src/plugin.test.ts +0 -1427
  1701. package/src/plugin.ts +0 -1537
  1702. package/src/record.test.ts +0 -362
  1703. package/src/record.ts +0 -824
  1704. package/src/registry-api.ts +0 -14
  1705. package/src/registry.test.ts +0 -133
  1706. package/src/registry.ts +0 -158
  1707. package/src/runtime-detect.test.ts +0 -30
  1708. package/src/runtime-detect.ts +0 -36
  1709. package/src/runtime.ts +0 -86
  1710. package/src/scripts/framework.ts +0 -20
  1711. package/src/scripts/interact.ts +0 -22
  1712. package/src/scripts/store.ts +0 -40
  1713. package/src/serialization.test.ts +0 -44
  1714. package/src/serialization.ts +0 -90
  1715. package/src/snapshotFormatter.test.ts +0 -579
  1716. package/src/snapshotFormatter.ts +0 -359
  1717. package/src/synthesize.ts +0 -296
  1718. package/src/tui.test.ts +0 -23
  1719. package/src/tui.ts +0 -237
  1720. package/src/types.ts +0 -88
  1721. package/src/update-check.ts +0 -114
  1722. package/src/utils.ts +0 -44
  1723. package/src/validate.ts +0 -103
  1724. package/src/verify.ts +0 -93
  1725. package/src/version.ts +0 -18
  1726. package/src/weixin-download.test.ts +0 -91
  1727. package/src/yaml-schema.ts +0 -48
  1728. package/tests/e2e/band-auth.test.ts +0 -20
  1729. package/tests/e2e/browser-auth-helpers.ts +0 -18
  1730. package/tests/e2e/browser-auth.test.ts +0 -141
  1731. package/tests/e2e/browser-public-extended.test.ts +0 -166
  1732. package/tests/e2e/browser-public.test.ts +0 -417
  1733. package/tests/e2e/helpers.ts +0 -64
  1734. package/tests/e2e/management.test.ts +0 -106
  1735. package/tests/e2e/output-formats.test.ts +0 -44
  1736. package/tests/e2e/plugin-management.test.ts +0 -140
  1737. package/tests/e2e/public-commands.test.ts +0 -569
  1738. package/tests/smoke/api-health.test.ts +0 -131
  1739. package/tsconfig.json +0 -17
  1740. package/vitest.config.ts +0 -50
  1741. /package/dist/{browser.test.d.ts → clis/1688/item.test.d.ts} +0 -0
  1742. /package/dist/{browser/cdp.test.d.ts → clis/1688/search.test.d.ts} +0 -0
  1743. /package/dist/{browser/daemon-client.test.d.ts → clis/1688/shared.test.d.ts} +0 -0
  1744. /package/dist/{browser/dom-helpers.test.d.ts → clis/1688/store.test.d.ts} +0 -0
  1745. /package/dist/{browser/page.test.d.ts → clis/amazon/movers-shakers.d.ts} +0 -0
  1746. /package/dist/{browser/stealth.test.d.ts → clis/amazon/new-releases.d.ts} +0 -0
  1747. /package/dist/{build-manifest.test.d.ts → clis/amazon/rankings.test.d.ts} +0 -0
  1748. /package/dist/{capabilityRouting.test.d.ts → clis/bilibili/utils.test.d.ts} +0 -0
  1749. /package/dist/{commanderAdapter.test.d.ts → clis/gemini/ask.test.d.ts} +0 -0
  1750. /package/dist/{commands/daemon.test.d.ts → clis/gemini/deep-research-result.test.d.ts} +0 -0
  1751. /package/dist/{daemon.test.d.ts → clis/gemini/deep-research.test.d.ts} +0 -0
  1752. /package/dist/{doctor.test.d.ts → clis/gemini/reply-state.test.d.ts} +0 -0
  1753. /package/dist/{download/index.test.d.ts → clis/hupu/detail.d.ts} +0 -0
  1754. /package/dist/{electron-apps.test.d.ts → clis/hupu/like.d.ts} +0 -0
  1755. /package/dist/{engine.test.d.ts → clis/hupu/mentions.d.ts} +0 -0
  1756. /package/dist/{errors.test.d.ts → clis/hupu/reply.d.ts} +0 -0
  1757. /package/dist/{execution.test.d.ts → clis/hupu/search.d.ts} +0 -0
  1758. /package/dist/{extension-manifest-regression.test.d.ts → clis/hupu/unlike.d.ts} +0 -0
  1759. /package/dist/{external.test.d.ts → clis/instagram/_shared/private-publish.test.d.ts} +0 -0
  1760. /package/dist/{launcher.test.d.ts → clis/instagram/_shared/protocol-capture.test.d.ts} +0 -0
  1761. /package/dist/{node-network.test.d.ts → clis/instagram/note.d.ts} +0 -0
  1762. /package/dist/{pipeline/steps/download.test.d.ts → clis/instagram/reel.d.ts} +0 -0
  1763. /package/dist/{pipeline/steps/fetch.test.d.ts → clis/instagram/story.d.ts} +0 -0
  1764. /package/dist/{record.test.d.ts → clis/lesswrong/comments.d.ts} +0 -0
  1765. /package/dist/{runtime-detect.test.d.ts → clis/lesswrong/curated.d.ts} +0 -0
  1766. /package/dist/{serialization.test.d.ts → clis/lesswrong/frontpage.d.ts} +0 -0
  1767. /package/dist/{tui.test.d.ts → clis/lesswrong/new.d.ts} +0 -0
  1768. /package/dist/{weixin-download.test.d.ts → clis/lesswrong/read.d.ts} +0 -0
  1769. /package/dist/{analysis.d.ts → src/analysis.d.ts} +0 -0
  1770. /package/dist/{analysis.js → src/analysis.js} +0 -0
  1771. /package/dist/{browser → src/browser}/bridge.d.ts +0 -0
  1772. /package/dist/{browser → src/browser}/cdp.test.js +0 -0
  1773. /package/dist/{browser → src/browser}/daemon-client.test.js +0 -0
  1774. /package/dist/{browser → src/browser}/discover.d.ts +0 -0
  1775. /package/dist/{browser → src/browser}/discover.js +0 -0
  1776. /package/dist/{browser → src/browser}/dom-helpers.test.js +0 -0
  1777. /package/dist/{browser → src/browser}/dom-snapshot.d.ts +0 -0
  1778. /package/dist/{browser → src/browser}/dom-snapshot.test.d.ts +0 -0
  1779. /package/dist/{browser → src/browser}/dom-snapshot.test.js +0 -0
  1780. /package/dist/{browser → src/browser}/errors.d.ts +0 -0
  1781. /package/dist/{browser → src/browser}/errors.js +0 -0
  1782. /package/dist/{browser → src/browser}/index.d.ts +0 -0
  1783. /package/dist/{browser → src/browser}/index.js +0 -0
  1784. /package/dist/{browser → src/browser}/page.test.js +0 -0
  1785. /package/dist/{browser → src/browser}/stealth.d.ts +0 -0
  1786. /package/dist/{browser → src/browser}/stealth.js +0 -0
  1787. /package/dist/{browser → src/browser}/stealth.test.js +0 -0
  1788. /package/dist/{browser → src/browser}/tabs.d.ts +0 -0
  1789. /package/dist/{browser → src/browser}/tabs.js +0 -0
  1790. /package/dist/{build-manifest.test.js → src/build-manifest.test.js} +0 -0
  1791. /package/dist/{capabilityRouting.d.ts → src/capabilityRouting.d.ts} +0 -0
  1792. /package/dist/{capabilityRouting.js → src/capabilityRouting.js} +0 -0
  1793. /package/dist/{capabilityRouting.test.js → src/capabilityRouting.test.js} +0 -0
  1794. /package/dist/{cascade.d.ts → src/cascade.d.ts} +0 -0
  1795. /package/dist/{commands → src/commands}/daemon.d.ts +0 -0
  1796. /package/dist/{commands → src/commands}/daemon.js +0 -0
  1797. /package/dist/{commands → src/commands}/daemon.test.js +0 -0
  1798. /package/dist/{completion.d.ts → src/completion.d.ts} +0 -0
  1799. /package/dist/{constants.d.ts → src/constants.d.ts} +0 -0
  1800. /package/dist/{constants.js → src/constants.js} +0 -0
  1801. /package/dist/{daemon.d.ts → src/daemon.d.ts} +0 -0
  1802. /package/dist/{daemon.js → src/daemon.js} +0 -0
  1803. /package/dist/{daemon.test.js → src/daemon.test.js} +0 -0
  1804. /package/dist/{doctor.d.ts → src/doctor.d.ts} +0 -0
  1805. /package/dist/{doctor.test.js → src/doctor.test.js} +0 -0
  1806. /package/dist/{download → src/download}/index.test.js +0 -0
  1807. /package/dist/{electron-apps.test.js → src/electron-apps.test.js} +0 -0
  1808. /package/dist/{engine.test.js → src/engine.test.js} +0 -0
  1809. /package/dist/{errors.d.ts → src/errors.d.ts} +0 -0
  1810. /package/dist/{errors.test.js → src/errors.test.js} +0 -0
  1811. /package/dist/{execution.d.ts → src/execution.d.ts} +0 -0
  1812. /package/dist/{execution.test.js → src/execution.test.js} +0 -0
  1813. /package/dist/{explore.d.ts → src/explore.d.ts} +0 -0
  1814. /package/dist/{extension-manifest-regression.test.js → src/extension-manifest-regression.test.js} +0 -0
  1815. /package/dist/{external-clis.yaml → src/external-clis.yaml} +0 -0
  1816. /package/dist/{external.d.ts → src/external.d.ts} +0 -0
  1817. /package/dist/{external.js → src/external.js} +0 -0
  1818. /package/dist/{external.test.js → src/external.test.js} +0 -0
  1819. /package/dist/{generate.d.ts → src/generate.d.ts} +0 -0
  1820. /package/dist/{generate.js → src/generate.js} +0 -0
  1821. /package/dist/{hooks.d.ts → src/hooks.d.ts} +0 -0
  1822. /package/dist/{hooks.js → src/hooks.js} +0 -0
  1823. /package/dist/{hooks.test.d.ts → src/hooks.test.d.ts} +0 -0
  1824. /package/dist/{hooks.test.js → src/hooks.test.js} +0 -0
  1825. /package/dist/{idle-manager.d.ts → src/idle-manager.d.ts} +0 -0
  1826. /package/dist/{idle-manager.js → src/idle-manager.js} +0 -0
  1827. /package/dist/{interceptor.test.d.ts → src/interceptor.test.d.ts} +0 -0
  1828. /package/dist/{interceptor.test.js → src/interceptor.test.js} +0 -0
  1829. /package/dist/{logger.d.ts → src/logger.d.ts} +0 -0
  1830. /package/dist/{logger.js → src/logger.js} +0 -0
  1831. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
  1832. /package/dist/{node-network.d.ts → src/node-network.d.ts} +0 -0
  1833. /package/dist/{node-network.js → src/node-network.js} +0 -0
  1834. /package/dist/{node-network.test.js → src/node-network.test.js} +0 -0
  1835. /package/dist/{pipeline → src/pipeline}/executor.d.ts +0 -0
  1836. /package/dist/{pipeline → src/pipeline}/executor.js +0 -0
  1837. /package/dist/{pipeline → src/pipeline}/executor.test.d.ts +0 -0
  1838. /package/dist/{pipeline → src/pipeline}/registry.d.ts +0 -0
  1839. /package/dist/{pipeline → src/pipeline}/registry.js +0 -0
  1840. /package/dist/{pipeline → src/pipeline}/steps/browser.d.ts +0 -0
  1841. /package/dist/{pipeline → src/pipeline}/steps/browser.js +0 -0
  1842. /package/dist/{pipeline → src/pipeline}/steps/download.d.ts +0 -0
  1843. /package/dist/{pipeline → src/pipeline}/steps/download.js +0 -0
  1844. /package/dist/{pipeline → src/pipeline}/steps/fetch.d.ts +0 -0
  1845. /package/dist/{pipeline → src/pipeline}/steps/fetch.js +0 -0
  1846. /package/dist/{pipeline → src/pipeline}/steps/fetch.test.js +0 -0
  1847. /package/dist/{pipeline → src/pipeline}/steps/intercept.d.ts +0 -0
  1848. /package/dist/{pipeline → src/pipeline}/steps/intercept.js +0 -0
  1849. /package/dist/{pipeline → src/pipeline}/steps/tap.d.ts +0 -0
  1850. /package/dist/{pipeline → src/pipeline}/steps/tap.js +0 -0
  1851. /package/dist/{pipeline → src/pipeline}/steps/transform.d.ts +0 -0
  1852. /package/dist/{pipeline → src/pipeline}/steps/transform.js +0 -0
  1853. /package/dist/{pipeline → src/pipeline}/template.d.ts +0 -0
  1854. /package/dist/{pipeline → src/pipeline}/template.js +0 -0
  1855. /package/dist/{pipeline → src/pipeline}/template.test.d.ts +0 -0
  1856. /package/dist/{pipeline → src/pipeline}/template.test.js +0 -0
  1857. /package/dist/{pipeline → src/pipeline}/transform.test.d.ts +0 -0
  1858. /package/dist/{pipeline → src/pipeline}/transform.test.js +0 -0
  1859. /package/dist/{plugin-manifest.d.ts → src/plugin-manifest.d.ts} +0 -0
  1860. /package/dist/{plugin-manifest.js → src/plugin-manifest.js} +0 -0
  1861. /package/dist/{plugin-manifest.test.d.ts → src/plugin-manifest.test.d.ts} +0 -0
  1862. /package/dist/{plugin-manifest.test.js → src/plugin-manifest.test.js} +0 -0
  1863. /package/dist/{plugin-scaffold.d.ts → src/plugin-scaffold.d.ts} +0 -0
  1864. /package/dist/{plugin-scaffold.js → src/plugin-scaffold.js} +0 -0
  1865. /package/dist/{plugin-scaffold.test.d.ts → src/plugin-scaffold.test.d.ts} +0 -0
  1866. /package/dist/{plugin-scaffold.test.js → src/plugin-scaffold.test.js} +0 -0
  1867. /package/dist/{plugin.d.ts → src/plugin.d.ts} +0 -0
  1868. /package/dist/{plugin.js → src/plugin.js} +0 -0
  1869. /package/dist/{plugin.test.d.ts → src/plugin.test.d.ts} +0 -0
  1870. /package/dist/{plugin.test.js → src/plugin.test.js} +0 -0
  1871. /package/dist/{record.d.ts → src/record.d.ts} +0 -0
  1872. /package/dist/{record.test.js → src/record.test.js} +0 -0
  1873. /package/dist/{registry-api.d.ts → src/registry-api.d.ts} +0 -0
  1874. /package/dist/{registry-api.js → src/registry-api.js} +0 -0
  1875. /package/dist/{registry.js → src/registry.js} +0 -0
  1876. /package/dist/{registry.test.d.ts → src/registry.test.d.ts} +0 -0
  1877. /package/dist/{registry.test.js → src/registry.test.js} +0 -0
  1878. /package/dist/{runtime-detect.d.ts → src/runtime-detect.d.ts} +0 -0
  1879. /package/dist/{runtime-detect.js → src/runtime-detect.js} +0 -0
  1880. /package/dist/{runtime-detect.test.js → src/runtime-detect.test.js} +0 -0
  1881. /package/dist/{runtime.d.ts → src/runtime.d.ts} +0 -0
  1882. /package/dist/{runtime.js → src/runtime.js} +0 -0
  1883. /package/dist/{scripts → src/scripts}/framework.d.ts +0 -0
  1884. /package/dist/{scripts → src/scripts}/framework.js +0 -0
  1885. /package/dist/{scripts → src/scripts}/interact.d.ts +0 -0
  1886. /package/dist/{scripts → src/scripts}/interact.js +0 -0
  1887. /package/dist/{scripts → src/scripts}/store.d.ts +0 -0
  1888. /package/dist/{scripts → src/scripts}/store.js +0 -0
  1889. /package/dist/{serialization.test.js → src/serialization.test.js} +0 -0
  1890. /package/dist/{snapshotFormatter.d.ts → src/snapshotFormatter.d.ts} +0 -0
  1891. /package/dist/{snapshotFormatter.js → src/snapshotFormatter.js} +0 -0
  1892. /package/dist/{snapshotFormatter.test.d.ts → src/snapshotFormatter.test.d.ts} +0 -0
  1893. /package/dist/{snapshotFormatter.test.js → src/snapshotFormatter.test.js} +0 -0
  1894. /package/dist/{tui.d.ts → src/tui.d.ts} +0 -0
  1895. /package/dist/{tui.js → src/tui.js} +0 -0
  1896. /package/dist/{tui.test.js → src/tui.test.js} +0 -0
  1897. /package/dist/{types.js → src/types.js} +0 -0
  1898. /package/dist/{update-check.d.ts → src/update-check.d.ts} +0 -0
  1899. /package/dist/{update-check.js → src/update-check.js} +0 -0
  1900. /package/dist/{utils.d.ts → src/utils.d.ts} +0 -0
  1901. /package/dist/{utils.js → src/utils.js} +0 -0
  1902. /package/dist/{validate.d.ts → src/validate.d.ts} +0 -0
  1903. /package/dist/{validate.js → src/validate.js} +0 -0
  1904. /package/dist/{verify.d.ts → src/verify.d.ts} +0 -0
  1905. /package/dist/{verify.js → src/verify.js} +0 -0
  1906. /package/dist/{version.d.ts → src/version.d.ts} +0 -0
  1907. /package/dist/{version.js → src/version.js} +0 -0
  1908. /package/dist/{yaml-schema.d.ts → src/yaml-schema.d.ts} +0 -0
  1909. /package/dist/{yaml-schema.js → src/yaml-schema.js} +0 -0
@@ -1,4 +1,93 @@
1
1
  [
2
+ {
3
+ "site": "1688",
4
+ "name": "item",
5
+ "description": "1688 商品详情(公开商品字段、价格阶梯、卖家基础信息)",
6
+ "domain": "www.1688.com",
7
+ "strategy": "cookie",
8
+ "browser": true,
9
+ "args": [
10
+ {
11
+ "name": "input",
12
+ "type": "str",
13
+ "required": true,
14
+ "positional": true,
15
+ "help": "1688 商品 URL 或 offer ID(如 887904326744)"
16
+ }
17
+ ],
18
+ "columns": [
19
+ "offer_id",
20
+ "title",
21
+ "price_text",
22
+ "moq_text",
23
+ "seller_name",
24
+ "origin_place"
25
+ ],
26
+ "type": "ts",
27
+ "modulePath": "1688/item.js",
28
+ "navigateBefore": false
29
+ },
30
+ {
31
+ "site": "1688",
32
+ "name": "search",
33
+ "description": "1688 商品搜索(结果候选、卖家链接、价格/MOQ/销量文本)",
34
+ "domain": "www.1688.com",
35
+ "strategy": "cookie",
36
+ "browser": true,
37
+ "args": [
38
+ {
39
+ "name": "query",
40
+ "type": "str",
41
+ "required": true,
42
+ "positional": true,
43
+ "help": "搜索关键词,如 \"置物架\""
44
+ },
45
+ {
46
+ "name": "limit",
47
+ "type": "int",
48
+ "default": 20,
49
+ "required": false,
50
+ "help": "结果数量上限(默认 20,最大 100)"
51
+ }
52
+ ],
53
+ "columns": [
54
+ "rank",
55
+ "title",
56
+ "price_text",
57
+ "moq_text",
58
+ "seller_name",
59
+ "location"
60
+ ],
61
+ "type": "ts",
62
+ "modulePath": "1688/search.js",
63
+ "navigateBefore": false
64
+ },
65
+ {
66
+ "site": "1688",
67
+ "name": "store",
68
+ "description": "1688 店铺/供应商公开信息(联系方式、主营、入驻年限、公开服务信号)",
69
+ "domain": "www.1688.com",
70
+ "strategy": "cookie",
71
+ "browser": true,
72
+ "args": [
73
+ {
74
+ "name": "input",
75
+ "type": "str",
76
+ "required": true,
77
+ "positional": true,
78
+ "help": "1688 店铺 URL 或 member ID(如 b2b-22154705262941f196)"
79
+ }
80
+ ],
81
+ "columns": [
82
+ "store_name",
83
+ "years_on_platform_text",
84
+ "location",
85
+ "return_rate_text"
86
+ ],
87
+ "type": "ts",
88
+ "modulePath": "1688/store.js",
89
+ "navigateBefore": false
90
+ },
2
91
  {
3
92
  "site": "36kr",
4
93
  "name": "article",
@@ -27,7 +116,7 @@
27
116
  "name": "hot",
28
117
  "description": "36氪热榜 — trending articles (renqi/zonghe/shoucang/catalog)",
29
118
  "domain": "www.36kr.com",
30
- "strategy": "intercept",
119
+ "strategy": "public",
31
120
  "browser": true,
32
121
  "args": [
33
122
  {
@@ -84,7 +173,7 @@
84
173
  "name": "search",
85
174
  "description": "搜索36氪文章",
86
175
  "domain": "www.36kr.com",
87
- "strategy": "intercept",
176
+ "strategy": "public",
88
177
  "browser": true,
89
178
  "args": [
90
179
  {
@@ -124,7 +213,7 @@
124
213
  "type": "str",
125
214
  "required": false,
126
215
  "positional": true,
127
- "help": "Best sellers URL or /zgbs path. Omit to use the root Best Sellers page."
216
+ "help": "Ranking URL or supported Amazon path. Omit to use the list root."
128
217
  },
129
218
  {
130
219
  "name": "limit",
@@ -135,6 +224,7 @@
135
224
  }
136
225
  ],
137
226
  "columns": [
227
+ "list_type",
138
228
  "rank",
139
229
  "asin",
140
230
  "title",
@@ -178,6 +268,78 @@
178
268
  "modulePath": "amazon/discussion.js",
179
269
  "navigateBefore": false
180
270
  },
271
+ {
272
+ "site": "amazon",
273
+ "name": "movers-shakers",
274
+ "description": "Amazon Movers & Shakers pages for short-term growth signals",
275
+ "domain": "amazon.com",
276
+ "strategy": "cookie",
277
+ "browser": true,
278
+ "args": [
279
+ {
280
+ "name": "input",
281
+ "type": "str",
282
+ "required": false,
283
+ "positional": true,
284
+ "help": "Ranking URL or supported Amazon path. Omit to use the list root."
285
+ },
286
+ {
287
+ "name": "limit",
288
+ "type": "int",
289
+ "default": 100,
290
+ "required": false,
291
+ "help": "Maximum number of ranked items to return (default 100)"
292
+ }
293
+ ],
294
+ "columns": [
295
+ "list_type",
296
+ "rank",
297
+ "asin",
298
+ "title",
299
+ "price_text",
300
+ "rating_value",
301
+ "review_count"
302
+ ],
303
+ "type": "ts",
304
+ "modulePath": "amazon/movers-shakers.js",
305
+ "navigateBefore": false
306
+ },
307
+ {
308
+ "site": "amazon",
309
+ "name": "new-releases",
310
+ "description": "Amazon New Releases pages for early momentum discovery",
311
+ "domain": "amazon.com",
312
+ "strategy": "cookie",
313
+ "browser": true,
314
+ "args": [
315
+ {
316
+ "name": "input",
317
+ "type": "str",
318
+ "required": false,
319
+ "positional": true,
320
+ "help": "Ranking URL or supported Amazon path. Omit to use the list root."
321
+ },
322
+ {
323
+ "name": "limit",
324
+ "type": "int",
325
+ "default": 100,
326
+ "required": false,
327
+ "help": "Maximum number of ranked items to return (default 100)"
328
+ }
329
+ ],
330
+ "columns": [
331
+ "list_type",
332
+ "rank",
333
+ "asin",
334
+ "title",
335
+ "price_text",
336
+ "rating_value",
337
+ "review_count"
338
+ ],
339
+ "type": "ts",
340
+ "modulePath": "amazon/new-releases.js",
341
+ "navigateBefore": false
342
+ },
181
343
  {
182
344
  "site": "amazon",
183
345
  "name": "offer",
@@ -4093,6 +4255,8 @@
4093
4255
  "genres",
4094
4256
  "directors",
4095
4257
  "casts",
4258
+ "country",
4259
+ "duration",
4096
4260
  "summary",
4097
4261
  "url"
4098
4262
  ],
@@ -4101,7 +4265,7 @@
4101
4265
  "navigate": "https://movie.douban.com/subject/${{ args.id }}"
4102
4266
  },
4103
4267
  {
4104
- "evaluate": "(async () => {\n const id = '${{ args.id }}';\n \n // Wait for page to load\n await new Promise(r => setTimeout(r, 2000));\n \n // Extract title\n const titleEl = document.querySelector('span[property=\"v:itemreviewed\"]');\n const title = titleEl?.textContent?.trim() || '';\n \n // Extract original title\n const ogTitleEl = document.querySelector('span[property=\"v:originalTitle\"]');\n const originalTitle = ogTitleEl?.textContent?.trim() || '';\n \n // Extract year\n const yearEl = document.querySelector('.year');\n const year = yearEl?.textContent?.trim() || '';\n \n // Extract rating\n const ratingEl = document.querySelector('strong[property=\"v:average\"]');\n const rating = parseFloat(ratingEl?.textContent || '0');\n \n // Extract rating count\n const ratingCountEl = document.querySelector('span[property=\"v:votes\"]');\n const ratingCount = parseInt(ratingCountEl?.textContent || '0', 10);\n \n // Extract genres\n const genreEls = document.querySelectorAll('span[property=\"v:genre\"]');\n const genres = Array.from(genreEls).map(el => el.textContent?.trim()).filter(Boolean).join(',');\n \n // Extract directors\n const directorEls = document.querySelectorAll('a[rel=\"v:directedBy\"]');\n const directors = Array.from(directorEls).map(el => el.textContent?.trim()).filter(Boolean).join(',');\n \n // Extract casts\n const castEls = document.querySelectorAll('a[rel=\"v:starring\"]');\n const casts = Array.from(castEls).slice(0, 5).map(el => el.textContent?.trim()).filter(Boolean).join(',');\n \n // Extract summary\n const summaryEl = document.querySelector('span[property=\"v:summary\"]');\n const summary = summaryEl?.textContent?.trim() || '';\n \n return [{\n id,\n title,\n originalTitle,\n year,\n rating,\n ratingCount,\n genres,\n directors,\n casts,\n summary: summary.substring(0, 200),\n url: `https://movie.douban.com/subject/${id}`\n }];\n})()\n"
4268
+ "evaluate": "(async () => {\n const id = '${{ args.id }}';\n\n // Wait for page to load\n await new Promise(r => setTimeout(r, 2000));\n\n // Extract title - v:itemreviewed contains \"中文名 OriginalName\"\n const titleEl = document.querySelector('span[property=\"v:itemreviewed\"]');\n const fullTitle = titleEl?.textContent?.trim() || '';\n\n // Split title and originalTitle\n // Douban format: \"中文名 OriginalName\" - split by first space that separates CJK from non-CJK\n let title = fullTitle;\n let originalTitle = '';\n const titleMatch = fullTitle.match(/^([\\u4e00-\\u9fff\\u3000-\\u303f\\uff00-\\uffef]+(?:\\s*[\\u4e00-\\u9fff\\u3000-\\u303f\\uff00-\\uffef·::!?]+)*)\\s+(.+)$/);\n if (titleMatch) {\n title = titleMatch[1].trim();\n originalTitle = titleMatch[2].trim();\n }\n\n // Extract year\n const yearEl = document.querySelector('.year');\n const year = yearEl?.textContent?.trim().replace(/[()()]/g, '') || '';\n\n // Extract rating\n const ratingEl = document.querySelector('strong[property=\"v:average\"]');\n const rating = parseFloat(ratingEl?.textContent || '0');\n\n // Extract rating count\n const ratingCountEl = document.querySelector('span[property=\"v:votes\"]');\n const ratingCount = parseInt(ratingCountEl?.textContent || '0', 10);\n\n // Extract genres\n const genreEls = document.querySelectorAll('span[property=\"v:genre\"]');\n const genres = Array.from(genreEls).map(el => el.textContent?.trim()).filter(Boolean).join(',');\n\n // Extract directors\n const directorEls = document.querySelectorAll('a[rel=\"v:directedBy\"]');\n const directors = Array.from(directorEls).map(el => el.textContent?.trim()).filter(Boolean).join(',');\n\n // Extract casts\n const castEls = document.querySelectorAll('a[rel=\"v:starring\"]');\n const casts = Array.from(castEls).slice(0, 5).map(el => el.textContent?.trim()).filter(Boolean);\n\n // Extract info section for country and duration\n const infoEl = document.querySelector('#info');\n const infoText = infoEl?.textContent || '';\n\n // Extract country/region from #info as list\n let country = [];\n const countryMatch = infoText.match(/制片国家\\/地区:\\s*([^\\n]+)/);\n if (countryMatch) {\n country = countryMatch[1].trim().split(/\\s*\\/\\s*/).filter(Boolean);\n }\n\n // Extract duration from #info as pure number in min\n const durationEl = document.querySelector('span[property=\"v:runtime\"]');\n let durationRaw = durationEl?.textContent?.trim() || '';\n if (!durationRaw) {\n const durationMatch = infoText.match(/片长:\\s*([^\\n]+)/);\n if (durationMatch) {\n durationRaw = durationMatch[1].trim();\n }\n }\n const durationNumMatch = durationRaw.match(/(\\d+)/);\n const duration = durationNumMatch ? parseInt(durationNumMatch[1], 10) : null;\n\n // Extract summary\n const summaryEl = document.querySelector('span[property=\"v:summary\"]');\n const summary = summaryEl?.textContent?.trim() || '';\n\n return [{\n id,\n title,\n originalTitle,\n year,\n rating,\n ratingCount,\n genres,\n directors,\n casts,\n country,\n duration,\n summary: summary.substring(0, 200),\n url: `https://movie.douban.com/subject/${id}`\n }];\n})()\n"
4105
4269
  }
4106
4270
  ],
4107
4271
  "type": "yaml"
@@ -5413,6 +5577,91 @@
5413
5577
  "modulePath": "gemini/ask.js",
5414
5578
  "navigateBefore": false
5415
5579
  },
5580
+ {
5581
+ "site": "gemini",
5582
+ "name": "deep-research",
5583
+ "description": "Start a Gemini Deep Research run and confirm it",
5584
+ "domain": "gemini.google.com",
5585
+ "strategy": "cookie",
5586
+ "browser": true,
5587
+ "args": [
5588
+ {
5589
+ "name": "prompt",
5590
+ "type": "str",
5591
+ "required": true,
5592
+ "positional": true,
5593
+ "help": "Prompt to send"
5594
+ },
5595
+ {
5596
+ "name": "timeout",
5597
+ "type": "int",
5598
+ "default": 30,
5599
+ "required": false,
5600
+ "help": "Max seconds to wait for confirm (default: 30)"
5601
+ },
5602
+ {
5603
+ "name": "tool",
5604
+ "type": "str",
5605
+ "required": false,
5606
+ "help": "Override tool label (default: Deep Research)"
5607
+ },
5608
+ {
5609
+ "name": "confirm",
5610
+ "type": "str",
5611
+ "required": false,
5612
+ "help": "Override confirm button label (default: Start research)"
5613
+ }
5614
+ ],
5615
+ "columns": [
5616
+ "status",
5617
+ "url"
5618
+ ],
5619
+ "timeout": 180,
5620
+ "type": "ts",
5621
+ "modulePath": "gemini/deep-research.js",
5622
+ "navigateBefore": false
5623
+ },
5624
+ {
5625
+ "site": "gemini",
5626
+ "name": "deep-research-result",
5627
+ "description": "Export Deep Research report URL from a Gemini conversation",
5628
+ "domain": "gemini.google.com",
5629
+ "strategy": "cookie",
5630
+ "browser": true,
5631
+ "args": [
5632
+ {
5633
+ "name": "query",
5634
+ "type": "str",
5635
+ "required": false,
5636
+ "positional": true,
5637
+ "help": "Conversation title or URL (optional; defaults to latest conversation)"
5638
+ },
5639
+ {
5640
+ "name": "match",
5641
+ "type": "str",
5642
+ "default": "contains",
5643
+ "required": false,
5644
+ "help": "Match mode",
5645
+ "choices": [
5646
+ "contains",
5647
+ "exact"
5648
+ ]
5649
+ },
5650
+ {
5651
+ "name": "timeout",
5652
+ "type": "int",
5653
+ "default": 120,
5654
+ "required": false,
5655
+ "help": "Max seconds to wait for Docs export (default: 120)"
5656
+ }
5657
+ ],
5658
+ "columns": [
5659
+ "response"
5660
+ ],
5661
+ "type": "ts",
5662
+ "modulePath": "gemini/deep-research-result.js",
5663
+ "navigateBefore": false
5664
+ },
5416
5665
  {
5417
5666
  "site": "gemini",
5418
5667
  "name": "image",
@@ -5445,7 +5694,7 @@
5445
5694
  {
5446
5695
  "name": "op",
5447
5696
  "type": "str",
5448
- "default": "/Users/jakevin/tmp/gemini-images",
5697
+ "default": "/home/runner/tmp/gemini-images",
5449
5698
  "required": false,
5450
5699
  "help": "Output directory shorthand"
5451
5700
  },
@@ -6195,79 +6444,373 @@
6195
6444
  "modulePath": "hf/top.js"
6196
6445
  },
6197
6446
  {
6198
- "site": "imdb",
6199
- "name": "person",
6200
- "description": "Get actor or director info",
6201
- "domain": "www.imdb.com",
6447
+ "site": "hupu",
6448
+ "name": "detail",
6449
+ "description": "获取虎扑帖子详情 (使用Next.js JSON数据)",
6450
+ "domain": "bbs.hupu.com",
6202
6451
  "strategy": "public",
6203
6452
  "browser": true,
6204
6453
  "args": [
6205
6454
  {
6206
- "name": "id",
6455
+ "name": "tid",
6207
6456
  "type": "str",
6208
6457
  "required": true,
6209
6458
  "positional": true,
6210
- "help": "IMDb person ID (nm0634240) or URL"
6459
+ "help": "帖子ID(9位数字)"
6211
6460
  },
6212
6461
  {
6213
- "name": "limit",
6214
- "type": "int",
6215
- "default": 10,
6462
+ "name": "replies",
6463
+ "type": "boolean",
6464
+ "default": false,
6216
6465
  "required": false,
6217
- "help": "Max filmography entries"
6466
+ "help": "是否包含热门回复"
6218
6467
  }
6219
6468
  ],
6220
6469
  "columns": [
6221
- "field",
6222
- "value"
6470
+ "title",
6471
+ "author",
6472
+ "content",
6473
+ "replies",
6474
+ "lights",
6475
+ "url"
6223
6476
  ],
6224
6477
  "type": "ts",
6225
- "modulePath": "imdb/person.js"
6478
+ "modulePath": "hupu/detail.js",
6479
+ "navigateBefore": false
6226
6480
  },
6227
6481
  {
6228
- "site": "imdb",
6229
- "name": "reviews",
6230
- "description": "Get user reviews for a movie or TV show",
6231
- "domain": "www.imdb.com",
6232
- "strategy": "public",
6482
+ "site": "hupu",
6483
+ "name": "hot",
6484
+ "description": "虎扑热门帖子",
6485
+ "domain": "bbs.hupu.com",
6486
+ "strategy": "cookie",
6233
6487
  "browser": true,
6234
6488
  "args": [
6235
- {
6236
- "name": "id",
6237
- "type": "str",
6238
- "required": true,
6239
- "positional": true,
6240
- "help": "IMDb title ID (tt1375666) or URL"
6241
- },
6242
6489
  {
6243
6490
  "name": "limit",
6244
6491
  "type": "int",
6245
- "default": 10,
6492
+ "default": 20,
6246
6493
  "required": false,
6247
- "help": "Number of reviews"
6494
+ "positional": false,
6495
+ "help": "Number of hot posts"
6248
6496
  }
6249
6497
  ],
6250
6498
  "columns": [
6251
6499
  "rank",
6252
6500
  "title",
6253
- "rating",
6254
- "author",
6255
- "date",
6256
- "text"
6501
+ "url"
6257
6502
  ],
6258
- "type": "ts",
6259
- "modulePath": "imdb/reviews.js"
6260
- },
6261
- {
6262
- "site": "imdb",
6263
- "name": "search",
6264
- "description": "Search IMDb for movies, TV shows, and people",
6265
- "domain": "www.imdb.com",
6266
- "strategy": "public",
6267
- "browser": true,
6268
- "args": [
6503
+ "pipeline": [
6269
6504
  {
6270
- "name": "query",
6505
+ "navigate": "https://bbs.hupu.com/"
6506
+ },
6507
+ {
6508
+ "evaluate": "(async () => {\n // 从HTML中提取帖子信息(适配新的HTML结构)\n const html = document.documentElement.outerHTML;\n const posts = [];\n\n // 匹配当前虎扑页面结构的正则表达式\n // 结构: <a href=\"/638249612.html\"...><span class=\"t-title\">标题</span></a>\n const regex = /<a[^>]*href=\"\\/(\\d{9})\\.html\"[^>]*><span[^>]*class=\"t-title\"[^>]*>([^<]+)<\\/span><\\/a>/g;\n let match;\n\n while ((match = regex.exec(html)) !== null && posts.length < ${{ args.limit }}) {\n posts.push({\n tid: match[1],\n title: match[2].trim()\n });\n }\n\n return posts;\n})()\n"
6509
+ },
6510
+ {
6511
+ "map": {
6512
+ "rank": "${{ index + 1 }}",
6513
+ "title": "${{ item.title }}",
6514
+ "url": "https://bbs.hupu.com/${{ item.tid }}.html"
6515
+ }
6516
+ },
6517
+ {
6518
+ "limit": "${{ args.limit }}"
6519
+ }
6520
+ ],
6521
+ "type": "yaml"
6522
+ },
6523
+ {
6524
+ "site": "hupu",
6525
+ "name": "like",
6526
+ "description": "点赞虎扑回复 (需要登录)",
6527
+ "domain": "bbs.hupu.com",
6528
+ "strategy": "cookie",
6529
+ "browser": true,
6530
+ "args": [
6531
+ {
6532
+ "name": "tid",
6533
+ "type": "str",
6534
+ "required": true,
6535
+ "positional": true,
6536
+ "help": "帖子ID(9位数字)"
6537
+ },
6538
+ {
6539
+ "name": "pid",
6540
+ "type": "str",
6541
+ "required": true,
6542
+ "positional": true,
6543
+ "help": "回复ID"
6544
+ },
6545
+ {
6546
+ "name": "fid",
6547
+ "type": "str",
6548
+ "required": true,
6549
+ "help": "板块ID(如278汽车区)"
6550
+ }
6551
+ ],
6552
+ "columns": [
6553
+ "status",
6554
+ "message"
6555
+ ],
6556
+ "type": "ts",
6557
+ "modulePath": "hupu/like.js",
6558
+ "navigateBefore": false
6559
+ },
6560
+ {
6561
+ "site": "hupu",
6562
+ "name": "mentions",
6563
+ "aliases": [
6564
+ "mention"
6565
+ ],
6566
+ "description": "查看虎扑提到我的回复 (需要登录)",
6567
+ "domain": "my.hupu.com",
6568
+ "strategy": "cookie",
6569
+ "browser": true,
6570
+ "args": [
6571
+ {
6572
+ "name": "limit",
6573
+ "type": "int",
6574
+ "default": 20,
6575
+ "required": false,
6576
+ "help": "最多返回多少条消息"
6577
+ },
6578
+ {
6579
+ "name": "max_pages",
6580
+ "type": "int",
6581
+ "default": 3,
6582
+ "required": false,
6583
+ "help": "最多抓取多少页"
6584
+ },
6585
+ {
6586
+ "name": "page_str",
6587
+ "type": "str",
6588
+ "required": false,
6589
+ "help": "分页游标;不传时从第一页开始"
6590
+ }
6591
+ ],
6592
+ "columns": [
6593
+ "time",
6594
+ "username",
6595
+ "thread_title",
6596
+ "post_content",
6597
+ "quote_content",
6598
+ "reply_url"
6599
+ ],
6600
+ "type": "ts",
6601
+ "modulePath": "hupu/mentions.js",
6602
+ "navigateBefore": false
6603
+ },
6604
+ {
6605
+ "site": "hupu",
6606
+ "name": "reply",
6607
+ "description": "回复虎扑帖子 (需要登录)",
6608
+ "domain": "bbs.hupu.com",
6609
+ "strategy": "cookie",
6610
+ "browser": true,
6611
+ "args": [
6612
+ {
6613
+ "name": "tid",
6614
+ "type": "str",
6615
+ "required": true,
6616
+ "positional": true,
6617
+ "help": "帖子ID(9位数字)"
6618
+ },
6619
+ {
6620
+ "name": "topic_id",
6621
+ "type": "str",
6622
+ "required": true,
6623
+ "help": "板块ID,即接口中的 topicId(如 502 篮球资讯)"
6624
+ },
6625
+ {
6626
+ "name": "text",
6627
+ "type": "str",
6628
+ "required": true,
6629
+ "positional": true,
6630
+ "help": "回复内容"
6631
+ },
6632
+ {
6633
+ "name": "quote_id",
6634
+ "type": "str",
6635
+ "required": false,
6636
+ "help": "被引用回复的 pid;填写后会以“回复某条热门回复”的方式发言"
6637
+ }
6638
+ ],
6639
+ "columns": [
6640
+ "status",
6641
+ "message"
6642
+ ],
6643
+ "type": "ts",
6644
+ "modulePath": "hupu/reply.js",
6645
+ "navigateBefore": false
6646
+ },
6647
+ {
6648
+ "site": "hupu",
6649
+ "name": "search",
6650
+ "description": "搜索虎扑帖子 (使用官方API)",
6651
+ "domain": "bbs.hupu.com",
6652
+ "strategy": "public",
6653
+ "browser": true,
6654
+ "args": [
6655
+ {
6656
+ "name": "query",
6657
+ "type": "str",
6658
+ "required": true,
6659
+ "positional": true,
6660
+ "help": "搜索关键词"
6661
+ },
6662
+ {
6663
+ "name": "page",
6664
+ "type": "int",
6665
+ "default": 1,
6666
+ "required": false,
6667
+ "help": "结果页码"
6668
+ },
6669
+ {
6670
+ "name": "limit",
6671
+ "type": "int",
6672
+ "default": 20,
6673
+ "required": false,
6674
+ "help": "返回结果数量"
6675
+ },
6676
+ {
6677
+ "name": "forum",
6678
+ "type": "str",
6679
+ "required": false,
6680
+ "help": "板块ID过滤 (可选)"
6681
+ },
6682
+ {
6683
+ "name": "sort",
6684
+ "type": "str",
6685
+ "default": "general",
6686
+ "required": false,
6687
+ "help": "排序方式: general/createtime/replytime/light/reply"
6688
+ }
6689
+ ],
6690
+ "columns": [
6691
+ "rank",
6692
+ "title",
6693
+ "author",
6694
+ "replies",
6695
+ "lights",
6696
+ "forum",
6697
+ "url"
6698
+ ],
6699
+ "type": "ts",
6700
+ "modulePath": "hupu/search.js",
6701
+ "navigateBefore": false
6702
+ },
6703
+ {
6704
+ "site": "hupu",
6705
+ "name": "unlike",
6706
+ "description": "取消点赞虎扑回复 (需要登录)",
6707
+ "domain": "bbs.hupu.com",
6708
+ "strategy": "cookie",
6709
+ "browser": true,
6710
+ "args": [
6711
+ {
6712
+ "name": "tid",
6713
+ "type": "str",
6714
+ "required": true,
6715
+ "positional": true,
6716
+ "help": "帖子ID(9位数字)"
6717
+ },
6718
+ {
6719
+ "name": "pid",
6720
+ "type": "str",
6721
+ "required": true,
6722
+ "positional": true,
6723
+ "help": "回复ID"
6724
+ },
6725
+ {
6726
+ "name": "fid",
6727
+ "type": "str",
6728
+ "required": true,
6729
+ "help": "板块ID(如278汽车区)"
6730
+ }
6731
+ ],
6732
+ "columns": [
6733
+ "status",
6734
+ "message"
6735
+ ],
6736
+ "type": "ts",
6737
+ "modulePath": "hupu/unlike.js",
6738
+ "navigateBefore": false
6739
+ },
6740
+ {
6741
+ "site": "imdb",
6742
+ "name": "person",
6743
+ "description": "Get actor or director info",
6744
+ "domain": "www.imdb.com",
6745
+ "strategy": "public",
6746
+ "browser": true,
6747
+ "args": [
6748
+ {
6749
+ "name": "id",
6750
+ "type": "str",
6751
+ "required": true,
6752
+ "positional": true,
6753
+ "help": "IMDb person ID (nm0634240) or URL"
6754
+ },
6755
+ {
6756
+ "name": "limit",
6757
+ "type": "int",
6758
+ "default": 10,
6759
+ "required": false,
6760
+ "help": "Max filmography entries"
6761
+ }
6762
+ ],
6763
+ "columns": [
6764
+ "field",
6765
+ "value"
6766
+ ],
6767
+ "type": "ts",
6768
+ "modulePath": "imdb/person.js"
6769
+ },
6770
+ {
6771
+ "site": "imdb",
6772
+ "name": "reviews",
6773
+ "description": "Get user reviews for a movie or TV show",
6774
+ "domain": "www.imdb.com",
6775
+ "strategy": "public",
6776
+ "browser": true,
6777
+ "args": [
6778
+ {
6779
+ "name": "id",
6780
+ "type": "str",
6781
+ "required": true,
6782
+ "positional": true,
6783
+ "help": "IMDb title ID (tt1375666) or URL"
6784
+ },
6785
+ {
6786
+ "name": "limit",
6787
+ "type": "int",
6788
+ "default": 10,
6789
+ "required": false,
6790
+ "help": "Number of reviews"
6791
+ }
6792
+ ],
6793
+ "columns": [
6794
+ "rank",
6795
+ "title",
6796
+ "rating",
6797
+ "author",
6798
+ "date",
6799
+ "text"
6800
+ ],
6801
+ "type": "ts",
6802
+ "modulePath": "imdb/reviews.js"
6803
+ },
6804
+ {
6805
+ "site": "imdb",
6806
+ "name": "search",
6807
+ "description": "Search IMDb for movies, TV shows, and people",
6808
+ "domain": "www.imdb.com",
6809
+ "strategy": "public",
6810
+ "browser": true,
6811
+ "args": [
6812
+ {
6813
+ "name": "query",
6271
6814
  "type": "str",
6272
6815
  "required": true,
6273
6816
  "positional": true,
@@ -6432,7 +6975,7 @@
6432
6975
  {
6433
6976
  "name": "path",
6434
6977
  "type": "str",
6435
- "default": "/Users/jakevin/Downloads/Instagram",
6978
+ "default": "/home/runner/Downloads/Instagram",
6436
6979
  "required": false,
6437
6980
  "help": "Download directory"
6438
6981
  }
@@ -6629,10 +7172,67 @@
6629
7172
  },
6630
7173
  {
6631
7174
  "site": "instagram",
6632
- "name": "profile",
6633
- "description": "Get Instagram user profile info",
7175
+ "name": "note",
7176
+ "description": "Publish a text Instagram note",
6634
7177
  "domain": "www.instagram.com",
6635
- "strategy": "cookie",
7178
+ "strategy": "ui",
7179
+ "browser": true,
7180
+ "args": [
7181
+ {
7182
+ "name": "content",
7183
+ "type": "str",
7184
+ "required": true,
7185
+ "positional": true,
7186
+ "help": "Note text (max 60 characters)"
7187
+ }
7188
+ ],
7189
+ "columns": [
7190
+ "status",
7191
+ "detail",
7192
+ "noteId"
7193
+ ],
7194
+ "timeout": 120,
7195
+ "type": "ts",
7196
+ "modulePath": "instagram/note.js"
7197
+ },
7198
+ {
7199
+ "site": "instagram",
7200
+ "name": "post",
7201
+ "description": "Post an Instagram feed image or mixed-media carousel",
7202
+ "domain": "www.instagram.com",
7203
+ "strategy": "ui",
7204
+ "browser": true,
7205
+ "args": [
7206
+ {
7207
+ "name": "media",
7208
+ "type": "str",
7209
+ "required": false,
7210
+ "valueRequired": true,
7211
+ "help": "Comma-separated media paths (images/videos, up to 10)"
7212
+ },
7213
+ {
7214
+ "name": "content",
7215
+ "type": "str",
7216
+ "required": false,
7217
+ "positional": true,
7218
+ "help": "Caption text"
7219
+ }
7220
+ ],
7221
+ "columns": [
7222
+ "status",
7223
+ "detail",
7224
+ "url"
7225
+ ],
7226
+ "timeout": 300,
7227
+ "type": "ts",
7228
+ "modulePath": "instagram/post.js"
7229
+ },
7230
+ {
7231
+ "site": "instagram",
7232
+ "name": "profile",
7233
+ "description": "Get Instagram user profile info",
7234
+ "domain": "www.instagram.com",
7235
+ "strategy": "cookie",
6636
7236
  "browser": true,
6637
7237
  "args": [
6638
7238
  {
@@ -6662,6 +7262,38 @@
6662
7262
  ],
6663
7263
  "type": "yaml"
6664
7264
  },
7265
+ {
7266
+ "site": "instagram",
7267
+ "name": "reel",
7268
+ "description": "Post an Instagram reel video",
7269
+ "domain": "www.instagram.com",
7270
+ "strategy": "ui",
7271
+ "browser": true,
7272
+ "args": [
7273
+ {
7274
+ "name": "video",
7275
+ "type": "str",
7276
+ "required": false,
7277
+ "valueRequired": true,
7278
+ "help": "Path to a single .mp4 video file"
7279
+ },
7280
+ {
7281
+ "name": "content",
7282
+ "type": "str",
7283
+ "required": false,
7284
+ "positional": true,
7285
+ "help": "Caption text"
7286
+ }
7287
+ ],
7288
+ "columns": [
7289
+ "status",
7290
+ "detail",
7291
+ "url"
7292
+ ],
7293
+ "timeout": 600,
7294
+ "type": "ts",
7295
+ "modulePath": "instagram/reel.js"
7296
+ },
6665
7297
  {
6666
7298
  "site": "instagram",
6667
7299
  "name": "save",
@@ -6778,6 +7410,31 @@
6778
7410
  ],
6779
7411
  "type": "yaml"
6780
7412
  },
7413
+ {
7414
+ "site": "instagram",
7415
+ "name": "story",
7416
+ "description": "Post a single Instagram story image or video",
7417
+ "domain": "www.instagram.com",
7418
+ "strategy": "ui",
7419
+ "browser": true,
7420
+ "args": [
7421
+ {
7422
+ "name": "media",
7423
+ "type": "str",
7424
+ "required": false,
7425
+ "valueRequired": true,
7426
+ "help": "Path to a single story image or video file"
7427
+ }
7428
+ ],
7429
+ "columns": [
7430
+ "status",
7431
+ "detail",
7432
+ "url"
7433
+ ],
7434
+ "timeout": 300,
7435
+ "type": "ts",
7436
+ "modulePath": "instagram/story.js"
7437
+ },
6781
7438
  {
6782
7439
  "site": "instagram",
6783
7440
  "name": "unfollow",
@@ -7159,256 +7816,671 @@
7159
7816
  "message"
7160
7817
  ],
7161
7818
  "type": "ts",
7162
- "modulePath": "jike/repost.js"
7819
+ "modulePath": "jike/repost.js"
7820
+ },
7821
+ {
7822
+ "site": "jike",
7823
+ "name": "search",
7824
+ "description": "搜索即刻帖子",
7825
+ "domain": "web.okjike.com",
7826
+ "strategy": "cookie",
7827
+ "browser": true,
7828
+ "args": [
7829
+ {
7830
+ "name": "query",
7831
+ "type": "string",
7832
+ "required": true,
7833
+ "positional": true,
7834
+ "help": ""
7835
+ },
7836
+ {
7837
+ "name": "limit",
7838
+ "type": "int",
7839
+ "default": 20,
7840
+ "required": false,
7841
+ "help": ""
7842
+ }
7843
+ ],
7844
+ "columns": [
7845
+ "author",
7846
+ "content",
7847
+ "likes",
7848
+ "comments",
7849
+ "time",
7850
+ "url"
7851
+ ],
7852
+ "type": "ts",
7853
+ "modulePath": "jike/search.js"
7854
+ },
7855
+ {
7856
+ "site": "jike",
7857
+ "name": "topic",
7858
+ "description": "即刻话题/圈子帖子",
7859
+ "domain": "m.okjike.com",
7860
+ "strategy": "cookie",
7861
+ "browser": true,
7862
+ "args": [
7863
+ {
7864
+ "name": "id",
7865
+ "type": "string",
7866
+ "required": true,
7867
+ "positional": true,
7868
+ "help": "Topic ID (from topic URL, e.g. 553870e8e4b0cafb0a1bef68)"
7869
+ },
7870
+ {
7871
+ "name": "limit",
7872
+ "type": "int",
7873
+ "default": 20,
7874
+ "required": false,
7875
+ "positional": false,
7876
+ "help": "Number of posts"
7877
+ }
7878
+ ],
7879
+ "columns": [
7880
+ "content",
7881
+ "author",
7882
+ "likes",
7883
+ "comments",
7884
+ "time",
7885
+ "url"
7886
+ ],
7887
+ "pipeline": [
7888
+ {
7889
+ "navigate": "https://m.okjike.com/topics/${{ args.id }}"
7890
+ },
7891
+ {
7892
+ "evaluate": "(() => {\n try {\n const el = document.querySelector('script[type=\"application/json\"]');\n if (!el) return [];\n const data = JSON.parse(el.textContent);\n const pageProps = data?.props?.pageProps || {};\n const posts = pageProps.posts || [];\n return posts.map(p => ({\n content: (p.content || '').replace(/\\n/g, ' ').slice(0, 80),\n author: p.user?.screenName || '',\n likes: p.likeCount || 0,\n comments: p.commentCount || 0,\n time: p.actionTime || p.createdAt || '',\n id: p.id || '',\n }));\n } catch (e) {\n return [];\n }\n})()\n"
7893
+ },
7894
+ {
7895
+ "map": {
7896
+ "content": "${{ item.content }}",
7897
+ "author": "${{ item.author }}",
7898
+ "likes": "${{ item.likes }}",
7899
+ "comments": "${{ item.comments }}",
7900
+ "time": "${{ item.time }}",
7901
+ "url": "https://web.okjike.com/originalPost/${{ item.id }}"
7902
+ }
7903
+ },
7904
+ {
7905
+ "limit": "${{ args.limit }}"
7906
+ }
7907
+ ],
7908
+ "type": "yaml"
7909
+ },
7910
+ {
7911
+ "site": "jike",
7912
+ "name": "user",
7913
+ "description": "即刻用户动态",
7914
+ "domain": "m.okjike.com",
7915
+ "strategy": "cookie",
7916
+ "browser": true,
7917
+ "args": [
7918
+ {
7919
+ "name": "username",
7920
+ "type": "string",
7921
+ "required": true,
7922
+ "positional": true,
7923
+ "help": "Username from profile URL (e.g. wenhao1996)"
7924
+ },
7925
+ {
7926
+ "name": "limit",
7927
+ "type": "int",
7928
+ "default": 20,
7929
+ "required": false,
7930
+ "positional": false,
7931
+ "help": "Number of posts"
7932
+ }
7933
+ ],
7934
+ "columns": [
7935
+ "content",
7936
+ "type",
7937
+ "likes",
7938
+ "comments",
7939
+ "time",
7940
+ "url"
7941
+ ],
7942
+ "pipeline": [
7943
+ {
7944
+ "navigate": "https://m.okjike.com/users/${{ args.username }}"
7945
+ },
7946
+ {
7947
+ "evaluate": "(() => {\n try {\n const el = document.querySelector('script[type=\"application/json\"]');\n if (!el) return [];\n const data = JSON.parse(el.textContent);\n const posts = data?.props?.pageProps?.posts || [];\n return posts.map(p => ({\n content: (p.content || '').replace(/\\n/g, ' ').slice(0, 80),\n type: p.type === 'ORIGINAL_POST' ? 'post' : p.type === 'REPOST' ? 'repost' : p.type || '',\n likes: p.likeCount || 0,\n comments: p.commentCount || 0,\n time: p.actionTime || p.createdAt || '',\n id: p.id || '',\n }));\n } catch (e) {\n return [];\n }\n})()\n"
7948
+ },
7949
+ {
7950
+ "map": {
7951
+ "content": "${{ item.content }}",
7952
+ "type": "${{ item.type }}",
7953
+ "likes": "${{ item.likes }}",
7954
+ "comments": "${{ item.comments }}",
7955
+ "time": "${{ item.time }}",
7956
+ "url": "https://web.okjike.com/originalPost/${{ item.id }}"
7957
+ }
7958
+ },
7959
+ {
7960
+ "limit": "${{ args.limit }}"
7961
+ }
7962
+ ],
7963
+ "type": "yaml"
7964
+ },
7965
+ {
7966
+ "site": "jimeng",
7967
+ "name": "generate",
7968
+ "description": "即梦AI 文生图 — 输入 prompt 生成图片",
7969
+ "domain": "jimeng.jianying.com",
7970
+ "strategy": "cookie",
7971
+ "browser": true,
7972
+ "args": [
7973
+ {
7974
+ "name": "prompt",
7975
+ "type": "string",
7976
+ "required": true,
7977
+ "positional": true,
7978
+ "help": "图片描述 prompt"
7979
+ },
7980
+ {
7981
+ "name": "model",
7982
+ "type": "string",
7983
+ "default": "high_aes_general_v50",
7984
+ "required": false,
7985
+ "positional": false,
7986
+ "help": "模型: high_aes_general_v50 (5.0 Lite), high_aes_general_v42 (4.6), high_aes_general_v40 (4.0)"
7987
+ },
7988
+ {
7989
+ "name": "wait",
7990
+ "type": "int",
7991
+ "default": 40,
7992
+ "required": false,
7993
+ "positional": false,
7994
+ "help": "等待生成完成的秒数"
7995
+ }
7996
+ ],
7997
+ "columns": [
7998
+ "status",
7999
+ "prompt",
8000
+ "image_count",
8001
+ "image_urls"
8002
+ ],
8003
+ "pipeline": [
8004
+ {
8005
+ "navigate": "https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0"
8006
+ },
8007
+ {
8008
+ "wait": 3
8009
+ },
8010
+ {
8011
+ "evaluate": "(async () => {\n const prompt = ${{ args.prompt | json }};\n const waitSec = ${{ args.wait }};\n \n // Step 1: Count existing images before generation\n const beforeImgs = document.querySelectorAll('img[src*=\"dreamina-sign\"], img[src*=\"tb4s082cfz\"]').length;\n \n // Step 2: Clear and set prompt\n const editors = document.querySelectorAll('[contenteditable=\"true\"]');\n const editor = editors[0];\n if (!editor) return [{ status: 'failed', prompt: prompt, image_count: 0, image_urls: 'Editor not found' }];\n \n editor.focus();\n await new Promise(r => setTimeout(r, 200));\n document.execCommand('selectAll');\n await new Promise(r => setTimeout(r, 100));\n document.execCommand('delete');\n await new Promise(r => setTimeout(r, 200));\n document.execCommand('insertText', false, prompt);\n await new Promise(r => setTimeout(r, 500));\n \n // Step 3: Click generate\n const btn = document.querySelector('.lv-btn.lv-btn-primary[class*=\"circle\"]');\n if (!btn) return [{ status: 'failed', prompt: prompt, image_count: 0, image_urls: 'Generate button not found' }];\n btn.click();\n \n // Step 4: Wait for new images to appear\n let newImgs = [];\n for (let i = 0; i < waitSec; i++) {\n await new Promise(r => setTimeout(r, 1000));\n const allImgs = document.querySelectorAll('img[src*=\"dreamina-sign\"], img[src*=\"tb4s082cfz\"]');\n if (allImgs.length > beforeImgs) {\n // New images appeared — generation complete\n newImgs = Array.from(allImgs).slice(0, allImgs.length - beforeImgs);\n break;\n }\n }\n \n if (newImgs.length === 0) {\n return [{ status: 'timeout', prompt: prompt, image_count: 0, image_urls: 'Generation may still be in progress' }];\n }\n \n // Step 5: Extract image URLs (use thumbnail URLs which are accessible)\n const urls = newImgs.map(img => img.src);\n \n return [{ \n status: 'success', \n prompt: prompt.substring(0, 80), \n image_count: urls.length, \n image_urls: urls.join('\\n')\n }];\n})()\n"
8012
+ },
8013
+ {
8014
+ "map": {
8015
+ "status": "${{ item.status }}",
8016
+ "prompt": "${{ item.prompt }}",
8017
+ "image_count": "${{ item.image_count }}",
8018
+ "image_urls": "${{ item.image_urls }}"
8019
+ }
8020
+ }
8021
+ ],
8022
+ "type": "yaml"
8023
+ },
8024
+ {
8025
+ "site": "jimeng",
8026
+ "name": "history",
8027
+ "description": "即梦AI 查看最近生成的作品",
8028
+ "domain": "jimeng.jianying.com",
8029
+ "strategy": "cookie",
8030
+ "browser": true,
8031
+ "args": [
8032
+ {
8033
+ "name": "limit",
8034
+ "type": "int",
8035
+ "default": 5,
8036
+ "required": false,
8037
+ "positional": false,
8038
+ "help": ""
8039
+ }
8040
+ ],
8041
+ "columns": [
8042
+ "prompt",
8043
+ "model",
8044
+ "status",
8045
+ "image_url",
8046
+ "created_at"
8047
+ ],
8048
+ "pipeline": [
8049
+ {
8050
+ "navigate": "https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0"
8051
+ },
8052
+ {
8053
+ "evaluate": "(async () => {\n const limit = ${{ args.limit }};\n const res = await fetch('/mweb/v1/get_history?aid=513695&device_platform=web&region=cn&da_version=3.3.11&web_version=7.5.0&aigc_features=app_lip_sync', {\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ cursor: '', count: limit, need_page_item: true, need_aigc_data: true, aigc_mode_list: ['workbench'] })\n });\n const data = await res.json();\n const items = data?.data?.history_list || [];\n return items.slice(0, limit).map(item => {\n const params = item.aigc_image_params?.text2image_params || {};\n const images = item.image?.large_images || [];\n return {\n prompt: params.prompt || item.common_attr?.title || 'N/A',\n model: params.model_config?.model_name || 'unknown',\n status: item.common_attr?.status === 102 ? 'completed' : 'pending',\n image_url: images[0]?.image_url || '',\n created_at: new Date((item.common_attr?.create_time || 0) * 1000).toLocaleString('zh-CN'),\n };\n });\n})()\n"
8054
+ },
8055
+ {
8056
+ "map": {
8057
+ "prompt": "${{ item.prompt }}",
8058
+ "model": "${{ item.model }}",
8059
+ "status": "${{ item.status }}",
8060
+ "image_url": "${{ item.image_url }}",
8061
+ "created_at": "${{ item.created_at }}"
8062
+ }
8063
+ },
8064
+ {
8065
+ "limit": "${{ args.limit }}"
8066
+ }
8067
+ ],
8068
+ "type": "yaml"
8069
+ },
8070
+ {
8071
+ "site": "lesswrong",
8072
+ "name": "comments",
8073
+ "description": "Top comments on a post",
8074
+ "domain": "www.lesswrong.com",
8075
+ "strategy": "public",
8076
+ "browser": false,
8077
+ "args": [
8078
+ {
8079
+ "name": "url-or-id",
8080
+ "type": "string",
8081
+ "required": true,
8082
+ "positional": true,
8083
+ "help": "Post URL or LessWrong post ID"
8084
+ },
8085
+ {
8086
+ "name": "limit",
8087
+ "type": "int",
8088
+ "default": 5,
8089
+ "required": false,
8090
+ "help": "Number of comments"
8091
+ }
8092
+ ],
8093
+ "columns": [
8094
+ "rank",
8095
+ "score",
8096
+ "author",
8097
+ "text"
8098
+ ],
8099
+ "type": "ts",
8100
+ "modulePath": "lesswrong/comments.js"
8101
+ },
8102
+ {
8103
+ "site": "lesswrong",
8104
+ "name": "curated",
8105
+ "description": "Curated editor's picks",
8106
+ "domain": "www.lesswrong.com",
8107
+ "strategy": "public",
8108
+ "browser": false,
8109
+ "args": [
8110
+ {
8111
+ "name": "limit",
8112
+ "type": "int",
8113
+ "default": 10,
8114
+ "required": false,
8115
+ "help": "Number of results"
8116
+ }
8117
+ ],
8118
+ "columns": [
8119
+ "rank",
8120
+ "title",
8121
+ "author",
8122
+ "karma",
8123
+ "comments",
8124
+ "url"
8125
+ ],
8126
+ "type": "ts",
8127
+ "modulePath": "lesswrong/curated.js"
8128
+ },
8129
+ {
8130
+ "site": "lesswrong",
8131
+ "name": "frontpage",
8132
+ "description": "Algorithmic frontpage",
8133
+ "domain": "www.lesswrong.com",
8134
+ "strategy": "public",
8135
+ "browser": false,
8136
+ "args": [
8137
+ {
8138
+ "name": "limit",
8139
+ "type": "int",
8140
+ "default": 10,
8141
+ "required": false,
8142
+ "help": "Number of results"
8143
+ }
8144
+ ],
8145
+ "columns": [
8146
+ "rank",
8147
+ "title",
8148
+ "author",
8149
+ "karma",
8150
+ "comments",
8151
+ "url"
8152
+ ],
8153
+ "type": "ts",
8154
+ "modulePath": "lesswrong/frontpage.js"
8155
+ },
8156
+ {
8157
+ "site": "lesswrong",
8158
+ "name": "new",
8159
+ "description": "Latest posts",
8160
+ "domain": "www.lesswrong.com",
8161
+ "strategy": "public",
8162
+ "browser": false,
8163
+ "args": [
8164
+ {
8165
+ "name": "limit",
8166
+ "type": "int",
8167
+ "default": 10,
8168
+ "required": false,
8169
+ "help": "Number of results"
8170
+ }
8171
+ ],
8172
+ "columns": [
8173
+ "rank",
8174
+ "title",
8175
+ "author",
8176
+ "karma",
8177
+ "comments",
8178
+ "url"
8179
+ ],
8180
+ "type": "ts",
8181
+ "modulePath": "lesswrong/new.js"
8182
+ },
8183
+ {
8184
+ "site": "lesswrong",
8185
+ "name": "read",
8186
+ "description": "Read full post by URL or ID",
8187
+ "domain": "www.lesswrong.com",
8188
+ "strategy": "public",
8189
+ "browser": false,
8190
+ "args": [
8191
+ {
8192
+ "name": "url-or-id",
8193
+ "type": "string",
8194
+ "required": true,
8195
+ "positional": true,
8196
+ "help": "Post URL or LessWrong post ID"
8197
+ }
8198
+ ],
8199
+ "columns": [
8200
+ "title",
8201
+ "author",
8202
+ "karma",
8203
+ "comments",
8204
+ "tags",
8205
+ "content",
8206
+ "url"
8207
+ ],
8208
+ "type": "ts",
8209
+ "modulePath": "lesswrong/read.js"
8210
+ },
8211
+ {
8212
+ "site": "lesswrong",
8213
+ "name": "sequences",
8214
+ "description": "List post collections",
8215
+ "domain": "www.lesswrong.com",
8216
+ "strategy": "public",
8217
+ "browser": false,
8218
+ "args": [
8219
+ {
8220
+ "name": "limit",
8221
+ "type": "int",
8222
+ "default": 10,
8223
+ "required": false,
8224
+ "help": "Number of results"
8225
+ }
8226
+ ],
8227
+ "columns": [
8228
+ "rank",
8229
+ "title",
8230
+ "author"
8231
+ ],
8232
+ "type": "ts",
8233
+ "modulePath": "lesswrong/sequences.js"
8234
+ },
8235
+ {
8236
+ "site": "lesswrong",
8237
+ "name": "shortform",
8238
+ "description": "Quick takes / shortform posts",
8239
+ "domain": "www.lesswrong.com",
8240
+ "strategy": "public",
8241
+ "browser": false,
8242
+ "args": [
8243
+ {
8244
+ "name": "limit",
8245
+ "type": "int",
8246
+ "default": 10,
8247
+ "required": false,
8248
+ "help": "Number of results"
8249
+ }
8250
+ ],
8251
+ "columns": [
8252
+ "rank",
8253
+ "title",
8254
+ "author",
8255
+ "karma",
8256
+ "comments",
8257
+ "url"
8258
+ ],
8259
+ "type": "ts",
8260
+ "modulePath": "lesswrong/shortform.js"
8261
+ },
8262
+ {
8263
+ "site": "lesswrong",
8264
+ "name": "tag",
8265
+ "description": "Posts by tag",
8266
+ "domain": "www.lesswrong.com",
8267
+ "strategy": "public",
8268
+ "browser": false,
8269
+ "args": [
8270
+ {
8271
+ "name": "tag",
8272
+ "type": "string",
8273
+ "required": true,
8274
+ "positional": true,
8275
+ "help": "Tag slug or name"
8276
+ },
8277
+ {
8278
+ "name": "limit",
8279
+ "type": "int",
8280
+ "default": 10,
8281
+ "required": false,
8282
+ "help": "Number of results"
8283
+ }
8284
+ ],
8285
+ "columns": [
8286
+ "rank",
8287
+ "title",
8288
+ "author",
8289
+ "karma",
8290
+ "comments",
8291
+ "url"
8292
+ ],
8293
+ "type": "ts",
8294
+ "modulePath": "lesswrong/tag.js"
8295
+ },
8296
+ {
8297
+ "site": "lesswrong",
8298
+ "name": "tags",
8299
+ "description": "List popular tags",
8300
+ "domain": "www.lesswrong.com",
8301
+ "strategy": "public",
8302
+ "browser": false,
8303
+ "args": [
8304
+ {
8305
+ "name": "limit",
8306
+ "type": "int",
8307
+ "default": 20,
8308
+ "required": false,
8309
+ "help": "Number of results"
8310
+ }
8311
+ ],
8312
+ "columns": [
8313
+ "rank",
8314
+ "name",
8315
+ "posts"
8316
+ ],
8317
+ "type": "ts",
8318
+ "modulePath": "lesswrong/tags.js"
8319
+ },
8320
+ {
8321
+ "site": "lesswrong",
8322
+ "name": "top",
8323
+ "description": "Top all-time",
8324
+ "domain": "www.lesswrong.com",
8325
+ "strategy": "public",
8326
+ "browser": false,
8327
+ "args": [
8328
+ {
8329
+ "name": "limit",
8330
+ "type": "int",
8331
+ "default": 10,
8332
+ "required": false,
8333
+ "help": "Number of results"
8334
+ }
8335
+ ],
8336
+ "columns": [
8337
+ "rank",
8338
+ "title",
8339
+ "author",
8340
+ "karma",
8341
+ "comments",
8342
+ "url"
8343
+ ],
8344
+ "type": "ts",
8345
+ "modulePath": "lesswrong/top.js"
7163
8346
  },
7164
8347
  {
7165
- "site": "jike",
7166
- "name": "search",
7167
- "description": "搜索即刻帖子",
7168
- "domain": "web.okjike.com",
7169
- "strategy": "cookie",
7170
- "browser": true,
8348
+ "site": "lesswrong",
8349
+ "name": "top-month",
8350
+ "description": "Top this month",
8351
+ "domain": "www.lesswrong.com",
8352
+ "strategy": "public",
8353
+ "browser": false,
7171
8354
  "args": [
7172
- {
7173
- "name": "query",
7174
- "type": "string",
7175
- "required": true,
7176
- "positional": true,
7177
- "help": ""
7178
- },
7179
8355
  {
7180
8356
  "name": "limit",
7181
8357
  "type": "int",
7182
- "default": 20,
8358
+ "default": 10,
7183
8359
  "required": false,
7184
- "help": ""
8360
+ "help": "Number of results"
7185
8361
  }
7186
8362
  ],
7187
8363
  "columns": [
8364
+ "rank",
8365
+ "title",
7188
8366
  "author",
7189
- "content",
7190
- "likes",
8367
+ "karma",
7191
8368
  "comments",
7192
- "time",
7193
8369
  "url"
7194
8370
  ],
7195
8371
  "type": "ts",
7196
- "modulePath": "jike/search.js"
8372
+ "modulePath": "lesswrong/top-month.js"
7197
8373
  },
7198
8374
  {
7199
- "site": "jike",
7200
- "name": "topic",
7201
- "description": "即刻话题/圈子帖子",
7202
- "domain": "m.okjike.com",
7203
- "strategy": "cookie",
7204
- "browser": true,
8375
+ "site": "lesswrong",
8376
+ "name": "top-week",
8377
+ "description": "Top this week",
8378
+ "domain": "www.lesswrong.com",
8379
+ "strategy": "public",
8380
+ "browser": false,
7205
8381
  "args": [
7206
- {
7207
- "name": "id",
7208
- "type": "string",
7209
- "required": true,
7210
- "positional": true,
7211
- "help": "Topic ID (from topic URL, e.g. 553870e8e4b0cafb0a1bef68)"
7212
- },
7213
8382
  {
7214
8383
  "name": "limit",
7215
8384
  "type": "int",
7216
- "default": 20,
8385
+ "default": 10,
7217
8386
  "required": false,
7218
- "positional": false,
7219
- "help": "Number of posts"
8387
+ "help": "Number of results"
7220
8388
  }
7221
8389
  ],
7222
8390
  "columns": [
7223
- "content",
8391
+ "rank",
8392
+ "title",
7224
8393
  "author",
7225
- "likes",
8394
+ "karma",
7226
8395
  "comments",
7227
- "time",
7228
8396
  "url"
7229
8397
  ],
7230
- "pipeline": [
7231
- {
7232
- "navigate": "https://m.okjike.com/topics/${{ args.id }}"
7233
- },
7234
- {
7235
- "evaluate": "(() => {\n try {\n const el = document.querySelector('script[type=\"application/json\"]');\n if (!el) return [];\n const data = JSON.parse(el.textContent);\n const pageProps = data?.props?.pageProps || {};\n const posts = pageProps.posts || [];\n return posts.map(p => ({\n content: (p.content || '').replace(/\\n/g, ' ').slice(0, 80),\n author: p.user?.screenName || '',\n likes: p.likeCount || 0,\n comments: p.commentCount || 0,\n time: p.actionTime || p.createdAt || '',\n id: p.id || '',\n }));\n } catch (e) {\n return [];\n }\n})()\n"
7236
- },
7237
- {
7238
- "map": {
7239
- "content": "${{ item.content }}",
7240
- "author": "${{ item.author }}",
7241
- "likes": "${{ item.likes }}",
7242
- "comments": "${{ item.comments }}",
7243
- "time": "${{ item.time }}",
7244
- "url": "https://web.okjike.com/originalPost/${{ item.id }}"
7245
- }
7246
- },
7247
- {
7248
- "limit": "${{ args.limit }}"
7249
- }
7250
- ],
7251
- "type": "yaml"
8398
+ "type": "ts",
8399
+ "modulePath": "lesswrong/top-week.js"
7252
8400
  },
7253
8401
  {
7254
- "site": "jike",
7255
- "name": "user",
7256
- "description": "即刻用户动态",
7257
- "domain": "m.okjike.com",
7258
- "strategy": "cookie",
7259
- "browser": true,
8402
+ "site": "lesswrong",
8403
+ "name": "top-year",
8404
+ "description": "Top this year",
8405
+ "domain": "www.lesswrong.com",
8406
+ "strategy": "public",
8407
+ "browser": false,
7260
8408
  "args": [
7261
- {
7262
- "name": "username",
7263
- "type": "string",
7264
- "required": true,
7265
- "positional": true,
7266
- "help": "Username from profile URL (e.g. wenhao1996)"
7267
- },
7268
8409
  {
7269
8410
  "name": "limit",
7270
8411
  "type": "int",
7271
- "default": 20,
8412
+ "default": 10,
7272
8413
  "required": false,
7273
- "positional": false,
7274
- "help": "Number of posts"
8414
+ "help": "Number of results"
7275
8415
  }
7276
8416
  ],
7277
8417
  "columns": [
7278
- "content",
7279
- "type",
7280
- "likes",
8418
+ "rank",
8419
+ "title",
8420
+ "author",
8421
+ "karma",
7281
8422
  "comments",
7282
- "time",
7283
8423
  "url"
7284
8424
  ],
7285
- "pipeline": [
7286
- {
7287
- "navigate": "https://m.okjike.com/users/${{ args.username }}"
7288
- },
7289
- {
7290
- "evaluate": "(() => {\n try {\n const el = document.querySelector('script[type=\"application/json\"]');\n if (!el) return [];\n const data = JSON.parse(el.textContent);\n const posts = data?.props?.pageProps?.posts || [];\n return posts.map(p => ({\n content: (p.content || '').replace(/\\n/g, ' ').slice(0, 80),\n type: p.type === 'ORIGINAL_POST' ? 'post' : p.type === 'REPOST' ? 'repost' : p.type || '',\n likes: p.likeCount || 0,\n comments: p.commentCount || 0,\n time: p.actionTime || p.createdAt || '',\n id: p.id || '',\n }));\n } catch (e) {\n return [];\n }\n})()\n"
7291
- },
7292
- {
7293
- "map": {
7294
- "content": "${{ item.content }}",
7295
- "type": "${{ item.type }}",
7296
- "likes": "${{ item.likes }}",
7297
- "comments": "${{ item.comments }}",
7298
- "time": "${{ item.time }}",
7299
- "url": "https://web.okjike.com/originalPost/${{ item.id }}"
7300
- }
7301
- },
7302
- {
7303
- "limit": "${{ args.limit }}"
7304
- }
7305
- ],
7306
- "type": "yaml"
8425
+ "type": "ts",
8426
+ "modulePath": "lesswrong/top-year.js"
7307
8427
  },
7308
8428
  {
7309
- "site": "jimeng",
7310
- "name": "generate",
7311
- "description": "即梦AI 文生图 — 输入 prompt 生成图片",
7312
- "domain": "jimeng.jianying.com",
7313
- "strategy": "cookie",
7314
- "browser": true,
8429
+ "site": "lesswrong",
8430
+ "name": "user",
8431
+ "description": "User profile",
8432
+ "domain": "www.lesswrong.com",
8433
+ "strategy": "public",
8434
+ "browser": false,
7315
8435
  "args": [
7316
8436
  {
7317
- "name": "prompt",
8437
+ "name": "username",
7318
8438
  "type": "string",
7319
8439
  "required": true,
7320
8440
  "positional": true,
7321
- "help": "图片描述 prompt"
7322
- },
7323
- {
7324
- "name": "model",
7325
- "type": "string",
7326
- "default": "high_aes_general_v50",
7327
- "required": false,
7328
- "positional": false,
7329
- "help": "模型: high_aes_general_v50 (5.0 Lite), high_aes_general_v42 (4.6), high_aes_general_v40 (4.0)"
7330
- },
7331
- {
7332
- "name": "wait",
7333
- "type": "int",
7334
- "default": 40,
7335
- "required": false,
7336
- "positional": false,
7337
- "help": "等待生成完成的秒数"
8441
+ "help": "LessWrong username or slug"
7338
8442
  }
7339
8443
  ],
7340
8444
  "columns": [
7341
- "status",
7342
- "prompt",
7343
- "image_count",
7344
- "image_urls"
7345
- ],
7346
- "pipeline": [
7347
- {
7348
- "navigate": "https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0"
7349
- },
7350
- {
7351
- "wait": 3
7352
- },
7353
- {
7354
- "evaluate": "(async () => {\n const prompt = ${{ args.prompt | json }};\n const waitSec = ${{ args.wait }};\n \n // Step 1: Count existing images before generation\n const beforeImgs = document.querySelectorAll('img[src*=\"dreamina-sign\"], img[src*=\"tb4s082cfz\"]').length;\n \n // Step 2: Clear and set prompt\n const editors = document.querySelectorAll('[contenteditable=\"true\"]');\n const editor = editors[0];\n if (!editor) return [{ status: 'failed', prompt: prompt, image_count: 0, image_urls: 'Editor not found' }];\n \n editor.focus();\n await new Promise(r => setTimeout(r, 200));\n document.execCommand('selectAll');\n await new Promise(r => setTimeout(r, 100));\n document.execCommand('delete');\n await new Promise(r => setTimeout(r, 200));\n document.execCommand('insertText', false, prompt);\n await new Promise(r => setTimeout(r, 500));\n \n // Step 3: Click generate\n const btn = document.querySelector('.lv-btn.lv-btn-primary[class*=\"circle\"]');\n if (!btn) return [{ status: 'failed', prompt: prompt, image_count: 0, image_urls: 'Generate button not found' }];\n btn.click();\n \n // Step 4: Wait for new images to appear\n let newImgs = [];\n for (let i = 0; i < waitSec; i++) {\n await new Promise(r => setTimeout(r, 1000));\n const allImgs = document.querySelectorAll('img[src*=\"dreamina-sign\"], img[src*=\"tb4s082cfz\"]');\n if (allImgs.length > beforeImgs) {\n // New images appeared — generation complete\n newImgs = Array.from(allImgs).slice(0, allImgs.length - beforeImgs);\n break;\n }\n }\n \n if (newImgs.length === 0) {\n return [{ status: 'timeout', prompt: prompt, image_count: 0, image_urls: 'Generation may still be in progress' }];\n }\n \n // Step 5: Extract image URLs (use thumbnail URLs which are accessible)\n const urls = newImgs.map(img => img.src);\n \n return [{ \n status: 'success', \n prompt: prompt.substring(0, 80), \n image_count: urls.length, \n image_urls: urls.join('\\n')\n }];\n})()\n"
7355
- },
7356
- {
7357
- "map": {
7358
- "status": "${{ item.status }}",
7359
- "prompt": "${{ item.prompt }}",
7360
- "image_count": "${{ item.image_count }}",
7361
- "image_urls": "${{ item.image_urls }}"
7362
- }
7363
- }
8445
+ "field",
8446
+ "value"
7364
8447
  ],
7365
- "type": "yaml"
8448
+ "type": "ts",
8449
+ "modulePath": "lesswrong/user.js"
7366
8450
  },
7367
8451
  {
7368
- "site": "jimeng",
7369
- "name": "history",
7370
- "description": "即梦AI 查看最近生成的作品",
7371
- "domain": "jimeng.jianying.com",
7372
- "strategy": "cookie",
7373
- "browser": true,
8452
+ "site": "lesswrong",
8453
+ "name": "user-posts",
8454
+ "description": "List a user's posts",
8455
+ "domain": "www.lesswrong.com",
8456
+ "strategy": "public",
8457
+ "browser": false,
7374
8458
  "args": [
8459
+ {
8460
+ "name": "username",
8461
+ "type": "string",
8462
+ "required": true,
8463
+ "positional": true,
8464
+ "help": "LessWrong username or slug"
8465
+ },
7375
8466
  {
7376
8467
  "name": "limit",
7377
8468
  "type": "int",
7378
- "default": 5,
8469
+ "default": 10,
7379
8470
  "required": false,
7380
- "positional": false,
7381
- "help": ""
8471
+ "help": "Number of results"
7382
8472
  }
7383
8473
  ],
7384
8474
  "columns": [
7385
- "prompt",
7386
- "model",
7387
- "status",
7388
- "image_url",
7389
- "created_at"
7390
- ],
7391
- "pipeline": [
7392
- {
7393
- "navigate": "https://jimeng.jianying.com/ai-tool/generate?type=image&workspace=0"
7394
- },
7395
- {
7396
- "evaluate": "(async () => {\n const limit = ${{ args.limit }};\n const res = await fetch('/mweb/v1/get_history?aid=513695&device_platform=web&region=cn&da_version=3.3.11&web_version=7.5.0&aigc_features=app_lip_sync', {\n method: 'POST',\n credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ cursor: '', count: limit, need_page_item: true, need_aigc_data: true, aigc_mode_list: ['workbench'] })\n });\n const data = await res.json();\n const items = data?.data?.history_list || [];\n return items.slice(0, limit).map(item => {\n const params = item.aigc_image_params?.text2image_params || {};\n const images = item.image?.large_images || [];\n return {\n prompt: params.prompt || item.common_attr?.title || 'N/A',\n model: params.model_config?.model_name || 'unknown',\n status: item.common_attr?.status === 102 ? 'completed' : 'pending',\n image_url: images[0]?.image_url || '',\n created_at: new Date((item.common_attr?.create_time || 0) * 1000).toLocaleString('zh-CN'),\n };\n });\n})()\n"
7397
- },
7398
- {
7399
- "map": {
7400
- "prompt": "${{ item.prompt }}",
7401
- "model": "${{ item.model }}",
7402
- "status": "${{ item.status }}",
7403
- "image_url": "${{ item.image_url }}",
7404
- "created_at": "${{ item.created_at }}"
7405
- }
7406
- },
7407
- {
7408
- "limit": "${{ args.limit }}"
7409
- }
8475
+ "rank",
8476
+ "title",
8477
+ "karma",
8478
+ "comments",
8479
+ "date",
8480
+ "url"
7410
8481
  ],
7411
- "type": "yaml"
8482
+ "type": "ts",
8483
+ "modulePath": "lesswrong/user-posts.js"
7412
8484
  },
7413
8485
  {
7414
8486
  "site": "linkedin",
@@ -10523,7 +11595,43 @@
10523
11595
  "MarketCap"
10524
11596
  ],
10525
11597
  "type": "ts",
10526
- "modulePath": "sinafinance/stock.js"
11598
+ "modulePath": "sinafinance/stock.js"
11599
+ },
11600
+ {
11601
+ "site": "sinafinance",
11602
+ "name": "stock-rank",
11603
+ "description": "新浪财经热搜榜",
11604
+ "domain": "finance.sina.cn",
11605
+ "strategy": "cookie",
11606
+ "browser": true,
11607
+ "args": [
11608
+ {
11609
+ "name": "market",
11610
+ "type": "string",
11611
+ "default": "cn",
11612
+ "required": false,
11613
+ "help": "Market: cn (A股), hk (港股), us (美股), wh (外汇), ft (期货)",
11614
+ "choices": [
11615
+ "cn",
11616
+ "hk",
11617
+ "us",
11618
+ "wh",
11619
+ "ft"
11620
+ ]
11621
+ }
11622
+ ],
11623
+ "columns": [
11624
+ "rank",
11625
+ "name",
11626
+ "symbol",
11627
+ "market",
11628
+ "price",
11629
+ "change",
11630
+ "url"
11631
+ ],
11632
+ "type": "ts",
11633
+ "modulePath": "sinafinance/stock-rank.js",
11634
+ "navigateBefore": false
10527
11635
  },
10528
11636
  {
10529
11637
  "site": "smzdm",
@@ -12247,6 +13355,12 @@
12247
13355
  "required": true,
12248
13356
  "positional": true,
12249
13357
  "help": "The text content of the tweet"
13358
+ },
13359
+ {
13360
+ "name": "images",
13361
+ "type": "string",
13362
+ "required": false,
13363
+ "help": "Image paths, comma-separated, max 4 (jpg/png/gif/webp)"
12250
13364
  }
12251
13365
  ],
12252
13366
  "columns": [
@@ -12292,7 +13406,7 @@
12292
13406
  {
12293
13407
  "site": "twitter",
12294
13408
  "name": "reply",
12295
- "description": "Reply to a specific tweet",
13409
+ "description": "Reply to a specific tweet, optionally with a local or remote image",
12296
13410
  "domain": "x.com",
12297
13411
  "strategy": "ui",
12298
13412
  "browser": true,
@@ -12310,6 +13424,18 @@
12310
13424
  "required": true,
12311
13425
  "positional": true,
12312
13426
  "help": "The text content of your reply"
13427
+ },
13428
+ {
13429
+ "name": "image",
13430
+ "type": "str",
13431
+ "required": false,
13432
+ "help": "Optional local image path to attach to the reply"
13433
+ },
13434
+ {
13435
+ "name": "image-url",
13436
+ "type": "str",
13437
+ "required": false,
13438
+ "help": "Optional remote image URL to download and attach to the reply"
12313
13439
  }
12314
13440
  ],
12315
13441
  "columns": [
@@ -13448,23 +14574,275 @@
13448
14574
  }
13449
14575
  ],
13450
14576
  "columns": [
13451
- "rank",
14577
+ "rank",
14578
+ "title",
14579
+ "author",
14580
+ "category",
14581
+ "readingCount",
14582
+ "bookId"
14583
+ ],
14584
+ "type": "ts",
14585
+ "modulePath": "weread/ranking.js"
14586
+ },
14587
+ {
14588
+ "site": "weread",
14589
+ "name": "search",
14590
+ "description": "Search books on WeRead",
14591
+ "domain": "weread.qq.com",
14592
+ "strategy": "public",
14593
+ "browser": false,
14594
+ "args": [
14595
+ {
14596
+ "name": "query",
14597
+ "type": "str",
14598
+ "required": true,
14599
+ "positional": true,
14600
+ "help": "Search keyword"
14601
+ },
14602
+ {
14603
+ "name": "limit",
14604
+ "type": "int",
14605
+ "default": 10,
14606
+ "required": false,
14607
+ "help": "Max results"
14608
+ }
14609
+ ],
14610
+ "columns": [
14611
+ "rank",
14612
+ "title",
14613
+ "author",
14614
+ "bookId",
14615
+ "url"
14616
+ ],
14617
+ "type": "ts",
14618
+ "modulePath": "weread/search.js"
14619
+ },
14620
+ {
14621
+ "site": "weread",
14622
+ "name": "shelf",
14623
+ "description": "List books on your WeRead bookshelf",
14624
+ "domain": "weread.qq.com",
14625
+ "strategy": "cookie",
14626
+ "browser": true,
14627
+ "args": [
14628
+ {
14629
+ "name": "limit",
14630
+ "type": "int",
14631
+ "default": 20,
14632
+ "required": false,
14633
+ "help": "Max results"
14634
+ }
14635
+ ],
14636
+ "columns": [
14637
+ "title",
14638
+ "author",
14639
+ "progress",
14640
+ "bookId"
14641
+ ],
14642
+ "type": "ts",
14643
+ "modulePath": "weread/shelf.js"
14644
+ },
14645
+ {
14646
+ "site": "wikipedia",
14647
+ "name": "random",
14648
+ "description": "Get a random Wikipedia article",
14649
+ "strategy": "public",
14650
+ "browser": false,
14651
+ "args": [
14652
+ {
14653
+ "name": "lang",
14654
+ "type": "str",
14655
+ "default": "en",
14656
+ "required": false,
14657
+ "help": "Language code (e.g. en, zh, ja)"
14658
+ }
14659
+ ],
14660
+ "columns": [
14661
+ "title",
14662
+ "description",
14663
+ "extract",
14664
+ "url"
14665
+ ],
14666
+ "type": "ts",
14667
+ "modulePath": "wikipedia/random.js"
14668
+ },
14669
+ {
14670
+ "site": "wikipedia",
14671
+ "name": "search",
14672
+ "description": "Search Wikipedia articles",
14673
+ "strategy": "public",
14674
+ "browser": false,
14675
+ "args": [
14676
+ {
14677
+ "name": "query",
14678
+ "type": "str",
14679
+ "required": true,
14680
+ "positional": true,
14681
+ "help": "Search keyword"
14682
+ },
14683
+ {
14684
+ "name": "limit",
14685
+ "type": "int",
14686
+ "default": 10,
14687
+ "required": false,
14688
+ "help": "Max results"
14689
+ },
14690
+ {
14691
+ "name": "lang",
14692
+ "type": "str",
14693
+ "default": "en",
14694
+ "required": false,
14695
+ "help": "Language code (e.g. en, zh, ja)"
14696
+ }
14697
+ ],
14698
+ "columns": [
14699
+ "title",
14700
+ "snippet",
14701
+ "url"
14702
+ ],
14703
+ "type": "ts",
14704
+ "modulePath": "wikipedia/search.js"
14705
+ },
14706
+ {
14707
+ "site": "wikipedia",
14708
+ "name": "summary",
14709
+ "description": "Get Wikipedia article summary",
14710
+ "strategy": "public",
14711
+ "browser": false,
14712
+ "args": [
14713
+ {
14714
+ "name": "title",
14715
+ "type": "str",
14716
+ "required": true,
14717
+ "positional": true,
14718
+ "help": "Article title (e.g. \"Transformer (machine learning model)\")"
14719
+ },
14720
+ {
14721
+ "name": "lang",
14722
+ "type": "str",
14723
+ "default": "en",
14724
+ "required": false,
14725
+ "help": "Language code (e.g. en, zh, ja)"
14726
+ }
14727
+ ],
14728
+ "columns": [
14729
+ "title",
14730
+ "description",
14731
+ "extract",
14732
+ "url"
14733
+ ],
14734
+ "type": "ts",
14735
+ "modulePath": "wikipedia/summary.js"
14736
+ },
14737
+ {
14738
+ "site": "wikipedia",
14739
+ "name": "trending",
14740
+ "description": "Most-read Wikipedia articles (yesterday)",
14741
+ "strategy": "public",
14742
+ "browser": false,
14743
+ "args": [
14744
+ {
14745
+ "name": "limit",
14746
+ "type": "int",
14747
+ "default": 10,
14748
+ "required": false,
14749
+ "help": "Max results"
14750
+ },
14751
+ {
14752
+ "name": "lang",
14753
+ "type": "str",
14754
+ "default": "en",
14755
+ "required": false,
14756
+ "help": "Language code (e.g. en, zh, ja)"
14757
+ }
14758
+ ],
14759
+ "columns": [
14760
+ "rank",
14761
+ "title",
14762
+ "description",
14763
+ "views"
14764
+ ],
14765
+ "type": "ts",
14766
+ "modulePath": "wikipedia/trending.js"
14767
+ },
14768
+ {
14769
+ "site": "xianyu",
14770
+ "name": "chat",
14771
+ "description": "打开闲鱼聊一聊会话,并可选发送消息",
14772
+ "domain": "www.goofish.com",
14773
+ "strategy": "cookie",
14774
+ "browser": true,
14775
+ "args": [
14776
+ {
14777
+ "name": "item_id",
14778
+ "type": "str",
14779
+ "required": true,
14780
+ "positional": true,
14781
+ "help": "闲鱼商品 item_id"
14782
+ },
14783
+ {
14784
+ "name": "user_id",
14785
+ "type": "str",
14786
+ "required": true,
14787
+ "positional": true,
14788
+ "help": "聊一聊对方的 user_id / peerUserId"
14789
+ },
14790
+ {
14791
+ "name": "text",
14792
+ "type": "str",
14793
+ "required": false,
14794
+ "help": "Message to send after opening the chat"
14795
+ }
14796
+ ],
14797
+ "columns": [
14798
+ "status",
14799
+ "peer_name",
14800
+ "item_title",
14801
+ "price",
14802
+ "location",
14803
+ "message"
14804
+ ],
14805
+ "type": "ts",
14806
+ "modulePath": "xianyu/chat.js",
14807
+ "navigateBefore": false
14808
+ },
14809
+ {
14810
+ "site": "xianyu",
14811
+ "name": "item",
14812
+ "description": "查看闲鱼商品详情",
14813
+ "domain": "www.goofish.com",
14814
+ "strategy": "cookie",
14815
+ "browser": true,
14816
+ "args": [
14817
+ {
14818
+ "name": "item_id",
14819
+ "type": "str",
14820
+ "required": true,
14821
+ "positional": true,
14822
+ "help": "闲鱼商品 item_id"
14823
+ }
14824
+ ],
14825
+ "columns": [
14826
+ "item_id",
13452
14827
  "title",
13453
- "author",
13454
- "category",
13455
- "readingCount",
13456
- "bookId"
14828
+ "price",
14829
+ "condition",
14830
+ "brand",
14831
+ "location",
14832
+ "seller_name",
14833
+ "want_count"
13457
14834
  ],
13458
14835
  "type": "ts",
13459
- "modulePath": "weread/ranking.js"
14836
+ "modulePath": "xianyu/item.js",
14837
+ "navigateBefore": false
13460
14838
  },
13461
14839
  {
13462
- "site": "weread",
14840
+ "site": "xianyu",
13463
14841
  "name": "search",
13464
- "description": "Search books on WeRead",
13465
- "domain": "weread.qq.com",
13466
- "strategy": "public",
13467
- "browser": false,
14842
+ "description": "搜索闲鱼商品",
14843
+ "domain": "www.goofish.com",
14844
+ "strategy": "cookie",
14845
+ "browser": true,
13468
14846
  "args": [
13469
14847
  {
13470
14848
  "name": "query",
@@ -13476,168 +14854,223 @@
13476
14854
  {
13477
14855
  "name": "limit",
13478
14856
  "type": "int",
13479
- "default": 10,
14857
+ "default": 20,
13480
14858
  "required": false,
13481
- "help": "Max results"
14859
+ "help": "Number of results to return"
13482
14860
  }
13483
14861
  ],
13484
14862
  "columns": [
14863
+ "item_id",
13485
14864
  "rank",
13486
14865
  "title",
13487
- "author",
13488
- "bookId",
14866
+ "price",
14867
+ "condition",
14868
+ "brand",
14869
+ "location",
14870
+ "badge",
13489
14871
  "url"
13490
14872
  ],
13491
14873
  "type": "ts",
13492
- "modulePath": "weread/search.js"
14874
+ "modulePath": "xianyu/search.js",
14875
+ "navigateBefore": false
13493
14876
  },
13494
14877
  {
13495
- "site": "weread",
13496
- "name": "shelf",
13497
- "description": "List books on your WeRead bookshelf",
13498
- "domain": "weread.qq.com",
14878
+ "site": "xiaoe",
14879
+ "name": "catalog",
14880
+ "description": "小鹅通课程目录(支持普通课程、专栏、大专栏)",
14881
+ "domain": "h5.xet.citv.cn",
13499
14882
  "strategy": "cookie",
13500
14883
  "browser": true,
13501
14884
  "args": [
13502
14885
  {
13503
- "name": "limit",
13504
- "type": "int",
13505
- "default": 20,
13506
- "required": false,
13507
- "help": "Max results"
14886
+ "name": "url",
14887
+ "type": "str",
14888
+ "required": true,
14889
+ "positional": true,
14890
+ "help": "课程页面 URL"
13508
14891
  }
13509
14892
  ],
13510
14893
  "columns": [
14894
+ "ch",
14895
+ "chapter",
14896
+ "no",
13511
14897
  "title",
13512
- "author",
13513
- "progress",
13514
- "bookId"
14898
+ "type",
14899
+ "resource_id",
14900
+ "status"
13515
14901
  ],
13516
- "type": "ts",
13517
- "modulePath": "weread/shelf.js"
14902
+ "pipeline": [
14903
+ {
14904
+ "navigate": "${{ args.url }}"
14905
+ },
14906
+ {
14907
+ "wait": 8
14908
+ },
14909
+ {
14910
+ "evaluate": "(async () => {\n var el = document.querySelector('#app');\n var store = (el && el.__vue__) ? el.__vue__.$store : null;\n if (!store) return [];\n var coreInfo = store.state.coreInfo || {};\n var resourceType = coreInfo.resource_type || 0;\n var origin = window.location.origin;\n var courseName = coreInfo.resource_name || '';\n\n function typeLabel(t) {\n return {1:'图文',2:'直播',3:'音频',4:'视频',6:'专栏',8:'大专栏'}[Number(t)] || String(t||'');\n }\n function buildUrl(item) {\n var u = item.jump_url || item.h5_url || item.url || '';\n return (u && !u.startsWith('http')) ? origin + u : u;\n }\n function clickTab(name) {\n var tabs = document.querySelectorAll('span, div');\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].children.length === 0 && tabs[i].textContent.trim() === name) {\n tabs[i].click(); return;\n }\n }\n }\n\n clickTab('目录');\n await new Promise(function(r) { setTimeout(r, 2000); });\n\n // ===== 专栏 / 大专栏 =====\n if (resourceType === 6 || resourceType === 8) {\n await new Promise(function(r) { setTimeout(r, 1000); });\n var listData = [];\n var walkList = function(vm, depth) {\n if (!vm || depth > 6 || listData.length > 0) return;\n var d = vm.$data || {};\n var keys = ['columnList', 'SingleItemList', 'chapterChildren'];\n for (var ki = 0; ki < keys.length; ki++) {\n var arr = d[keys[ki]];\n if (arr && Array.isArray(arr) && arr.length > 0 && arr[0].resource_id) {\n for (var j = 0; j < arr.length; j++) {\n var item = arr[j];\n if (!item.resource_id || !/^[pvlai]_/.test(item.resource_id)) continue;\n listData.push({\n ch: 1, chapter: courseName, no: j + 1,\n title: item.resource_title || item.title || item.chapter_title || '',\n type: typeLabel(item.resource_type || item.chapter_type),\n resource_id: item.resource_id,\n url: buildUrl(item),\n status: item.finished_state === 1 ? '已完成' : (item.resource_count ? item.resource_count + '节' : ''),\n });\n }\n return;\n }\n }\n if (vm.$children) {\n for (var c = 0; c < vm.$children.length; c++) walkList(vm.$children[c], depth + 1);\n }\n };\n walkList(el.__vue__, 0);\n return listData;\n }\n\n // ===== 普通课程 =====\n var chapters = document.querySelectorAll('.chapter_box');\n for (var ci = 0; ci < chapters.length; ci++) {\n var vue = chapters[ci].__vue__;\n if (vue && typeof vue.getSecitonList === 'function' && (!vue.isShowSecitonsList || !vue.chapterChildren.length)) {\n if (vue.isShowSecitonsList) vue.isShowSecitonsList = false;\n try { vue.getSecitonList(); } catch(e) {}\n await new Promise(function(r) { setTimeout(r, 1500); });\n }\n }\n await new Promise(function(r) { setTimeout(r, 3000); });\n\n var result = [];\n chapters = document.querySelectorAll('.chapter_box');\n for (var cj = 0; cj < chapters.length; cj++) {\n var v = chapters[cj].__vue__;\n if (!v) continue;\n var chTitle = (v.chapterItem && v.chapterItem.chapter_title) || '';\n var children = v.chapterChildren || [];\n for (var ck = 0; ck < children.length; ck++) {\n var child = children[ck];\n var resId = child.resource_id || child.chapter_id || '';\n var chType = child.chapter_type || child.resource_type || 0;\n var urlPath = {1:'/v1/course/text/',2:'/v2/course/alive/',3:'/v1/course/audio/',4:'/v1/course/video/'}[Number(chType)];\n result.push({\n ch: cj + 1, chapter: chTitle, no: ck + 1,\n title: child.chapter_title || child.resource_title || '',\n type: typeLabel(chType),\n resource_id: resId,\n url: urlPath ? origin + urlPath + resId + '?type=2' : '',\n status: child.is_finish === 1 ? '已完成' : (child.learn_progress > 0 ? child.learn_progress + '%' : '未学'),\n });\n }\n }\n return result;\n})()\n"
14911
+ },
14912
+ {
14913
+ "map": {
14914
+ "ch": "${{ item.ch }}",
14915
+ "chapter": "${{ item.chapter }}",
14916
+ "no": "${{ item.no }}",
14917
+ "title": "${{ item.title }}",
14918
+ "type": "${{ item.type }}",
14919
+ "resource_id": "${{ item.resource_id }}",
14920
+ "url": "${{ item.url }}",
14921
+ "status": "${{ item.status }}"
14922
+ }
14923
+ }
14924
+ ],
14925
+ "type": "yaml"
13518
14926
  },
13519
14927
  {
13520
- "site": "wikipedia",
13521
- "name": "random",
13522
- "description": "Get a random Wikipedia article",
13523
- "strategy": "public",
13524
- "browser": false,
14928
+ "site": "xiaoe",
14929
+ "name": "content",
14930
+ "description": "提取小鹅通图文页面内容为文本",
14931
+ "domain": "h5.xet.citv.cn",
14932
+ "strategy": "cookie",
14933
+ "browser": true,
13525
14934
  "args": [
13526
14935
  {
13527
- "name": "lang",
14936
+ "name": "url",
13528
14937
  "type": "str",
13529
- "default": "en",
13530
- "required": false,
13531
- "help": "Language code (e.g. en, zh, ja)"
14938
+ "required": true,
14939
+ "positional": true,
14940
+ "help": "页面 URL"
13532
14941
  }
13533
14942
  ],
13534
14943
  "columns": [
13535
14944
  "title",
13536
- "description",
13537
- "extract",
13538
- "url"
14945
+ "content_length",
14946
+ "image_count"
13539
14947
  ],
13540
- "type": "ts",
13541
- "modulePath": "wikipedia/random.js"
13542
- },
13543
- {
13544
- "site": "wikipedia",
13545
- "name": "search",
13546
- "description": "Search Wikipedia articles",
13547
- "strategy": "public",
13548
- "browser": false,
13549
- "args": [
14948
+ "pipeline": [
13550
14949
  {
13551
- "name": "query",
13552
- "type": "str",
13553
- "required": true,
13554
- "positional": true,
13555
- "help": "Search keyword"
14950
+ "navigate": "${{ args.url }}"
13556
14951
  },
13557
14952
  {
13558
- "name": "limit",
13559
- "type": "int",
13560
- "default": 10,
13561
- "required": false,
13562
- "help": "Max results"
14953
+ "wait": 6
13563
14954
  },
13564
14955
  {
13565
- "name": "lang",
13566
- "type": "str",
13567
- "default": "en",
13568
- "required": false,
13569
- "help": "Language code (e.g. en, zh, ja)"
14956
+ "evaluate": "(() => {\n var selectors = ['.rich-text-wrap','.content-wrap','.article-content','.text-content',\n '.course-detail','.detail-content','[class*=\"richtext\"]','[class*=\"rich-text\"]','.ql-editor'];\n var content = '';\n for (var i = 0; i < selectors.length; i++) {\n var el = document.querySelector(selectors[i]);\n if (el && el.innerText.trim().length > 50) { content = el.innerText.trim(); break; }\n }\n if (!content) content = (document.querySelector('main') || document.querySelector('#app') || document.body).innerText.trim();\n\n var images = [];\n document.querySelectorAll('img').forEach(function(img) {\n if (img.src && !img.src.startsWith('data:') && img.src.includes('xiaoe')) images.push(img.src);\n });\n return [{\n title: document.title,\n content: content,\n content_length: content.length,\n image_count: images.length,\n images: JSON.stringify(images.slice(0, 20)),\n }];\n})()\n"
13570
14957
  }
13571
14958
  ],
14959
+ "type": "yaml"
14960
+ },
14961
+ {
14962
+ "site": "xiaoe",
14963
+ "name": "courses",
14964
+ "description": "列出已购小鹅通课程(含 URL 和店铺名)",
14965
+ "domain": "study.xiaoe-tech.com",
14966
+ "strategy": "cookie",
14967
+ "browser": true,
14968
+ "args": [],
13572
14969
  "columns": [
13573
14970
  "title",
13574
- "snippet",
14971
+ "shop",
13575
14972
  "url"
13576
14973
  ],
13577
- "type": "ts",
13578
- "modulePath": "wikipedia/search.js"
14974
+ "pipeline": [
14975
+ {
14976
+ "navigate": "https://study.xiaoe-tech.com/"
14977
+ },
14978
+ {
14979
+ "wait": 8
14980
+ },
14981
+ {
14982
+ "evaluate": "(async () => {\n // 切换到「内容」tab\n var tabs = document.querySelectorAll('span, div');\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].children.length === 0 && tabs[i].textContent.trim() === '内容') {\n tabs[i].click();\n break;\n }\n }\n await new Promise(function(r) { setTimeout(r, 2000); });\n\n // 匹配课程卡片标题与 Vue 数据\n function matchEntry(title, vm, depth) {\n if (!vm || depth > 5) return null;\n var d = vm.$data || {};\n for (var k in d) {\n if (!Array.isArray(d[k])) continue;\n for (var j = 0; j < d[k].length; j++) {\n var e = d[k][j];\n if (!e || typeof e !== 'object') continue;\n var t = e.title || e.resource_name || '';\n if (t && title.includes(t.substring(0, 10))) return e;\n }\n }\n return vm.$parent ? matchEntry(title, vm.$parent, depth + 1) : null;\n }\n\n // 构造课程 URL\n function buildUrl(entry) {\n if (entry.h5_url) return entry.h5_url;\n if (entry.url) return entry.url;\n if (entry.app_id && entry.resource_id) {\n var base = 'https://' + entry.app_id + '.h5.xet.citv.cn';\n if (entry.resource_type === 6) return base + '/v1/course/column/' + entry.resource_id + '?type=3';\n return base + '/p/course/ecourse/' + entry.resource_id;\n }\n return '';\n }\n\n var cards = document.querySelectorAll('.course-card-list');\n var results = [];\n for (var c = 0; c < cards.length; c++) {\n var titleEl = cards[c].querySelector('.card-title-box');\n var title = titleEl ? titleEl.textContent.trim() : '';\n if (!title) continue;\n var entry = matchEntry(title, cards[c].__vue__, 0);\n results.push({\n title: title,\n shop: entry ? (entry.shop_name || entry.app_name || '') : '',\n url: entry ? buildUrl(entry) : '',\n });\n }\n return results;\n})()\n"
14983
+ },
14984
+ {
14985
+ "map": {
14986
+ "title": "${{ item.title }}",
14987
+ "shop": "${{ item.shop }}",
14988
+ "url": "${{ item.url }}"
14989
+ }
14990
+ }
14991
+ ],
14992
+ "type": "yaml"
13579
14993
  },
13580
14994
  {
13581
- "site": "wikipedia",
13582
- "name": "summary",
13583
- "description": "Get Wikipedia article summary",
13584
- "strategy": "public",
13585
- "browser": false,
14995
+ "site": "xiaoe",
14996
+ "name": "detail",
14997
+ "description": "小鹅通课程详情(名称、价格、学员数、店铺)",
14998
+ "domain": "h5.xet.citv.cn",
14999
+ "strategy": "cookie",
15000
+ "browser": true,
13586
15001
  "args": [
13587
15002
  {
13588
- "name": "title",
15003
+ "name": "url",
13589
15004
  "type": "str",
13590
15005
  "required": true,
13591
15006
  "positional": true,
13592
- "help": "Article title (e.g. \"Transformer (machine learning model)\")"
13593
- },
13594
- {
13595
- "name": "lang",
13596
- "type": "str",
13597
- "default": "en",
13598
- "required": false,
13599
- "help": "Language code (e.g. en, zh, ja)"
15007
+ "help": "课程页面 URL"
13600
15008
  }
13601
15009
  ],
13602
15010
  "columns": [
13603
- "title",
13604
- "description",
13605
- "extract",
13606
- "url"
15011
+ "name",
15012
+ "price",
15013
+ "original_price",
15014
+ "user_count",
15015
+ "shop_name"
13607
15016
  ],
13608
- "type": "ts",
13609
- "modulePath": "wikipedia/summary.js"
15017
+ "pipeline": [
15018
+ {
15019
+ "navigate": "${{ args.url }}"
15020
+ },
15021
+ {
15022
+ "wait": 5
15023
+ },
15024
+ {
15025
+ "evaluate": "(() => {\n var vm = (document.querySelector('#app') || {}).__vue__;\n if (!vm || !vm.$store) return [];\n var core = vm.$store.state.coreInfo || {};\n var goods = vm.$store.state.goodsInfo || {};\n var shop = ((vm.$store.state.compositeInfo || {}).shop_conf) || {};\n return [{\n name: core.resource_name || '',\n resource_id: core.resource_id || '',\n resource_type: core.resource_type || '',\n cover: core.resource_img || '',\n user_count: core.user_count || 0,\n price: goods.price ? (goods.price / 100).toFixed(2) : '0',\n original_price: goods.line_price ? (goods.line_price / 100).toFixed(2) : '0',\n is_free: goods.is_free || 0,\n shop_name: shop.shop_name || '',\n }];\n})()\n"
15026
+ }
15027
+ ],
15028
+ "type": "yaml"
13610
15029
  },
13611
15030
  {
13612
- "site": "wikipedia",
13613
- "name": "trending",
13614
- "description": "Most-read Wikipedia articles (yesterday)",
13615
- "strategy": "public",
13616
- "browser": false,
15031
+ "site": "xiaoe",
15032
+ "name": "play-url",
15033
+ "description": "小鹅通视频/音频/直播回放 M3U8 播放地址",
15034
+ "domain": "h5.xet.citv.cn",
15035
+ "strategy": "cookie",
15036
+ "browser": true,
13617
15037
  "args": [
13618
15038
  {
13619
- "name": "limit",
13620
- "type": "int",
13621
- "default": 10,
13622
- "required": false,
13623
- "help": "Max results"
13624
- },
13625
- {
13626
- "name": "lang",
15039
+ "name": "url",
13627
15040
  "type": "str",
13628
- "default": "en",
13629
- "required": false,
13630
- "help": "Language code (e.g. en, zh, ja)"
15041
+ "required": true,
15042
+ "positional": true,
15043
+ "help": "小节页面 URL"
13631
15044
  }
13632
15045
  ],
13633
15046
  "columns": [
13634
- "rank",
13635
15047
  "title",
13636
- "description",
13637
- "views"
15048
+ "resource_id",
15049
+ "m3u8_url",
15050
+ "duration_sec",
15051
+ "method"
13638
15052
  ],
13639
- "type": "ts",
13640
- "modulePath": "wikipedia/trending.js"
15053
+ "pipeline": [
15054
+ {
15055
+ "navigate": "${{ args.url }}"
15056
+ },
15057
+ {
15058
+ "wait": 2
15059
+ },
15060
+ {
15061
+ "evaluate": "(async () => {\n var pageUrl = window.location.href;\n var origin = window.location.origin;\n var resourceId = (pageUrl.match(/[val]_[a-f0-9]+/) || [])[0] || '';\n var productId = (pageUrl.match(/product_id=([^&]+)/) || [])[1] || '';\n var appId = (origin.match(/(app[a-z0-9]+)\\./) || [])[1] || '';\n var isLive = resourceId.startsWith('l_') || pageUrl.includes('/alive/');\n var m3u8Url = '', method = '', title = document.title, duration = 0;\n\n // 深度搜索 Vue 组件树找 M3U8\n function searchVueM3u8() {\n var el = document.querySelector('#app');\n if (!el || !el.__vue__) return '';\n var walk = function(vm, d) {\n if (!vm || d > 10) return '';\n var data = vm.$data || {};\n for (var k in data) {\n if (k[0] === '_' || k[0] === '$') continue;\n var v = data[k];\n if (typeof v === 'string' && v.includes('.m3u8')) return v;\n if (typeof v === 'object' && v) {\n try {\n var s = JSON.stringify(v);\n var m = s.match(/https?:[^\"]*\\.m3u8[^\"]*/);\n if (m) return m[0].replace(/\\\\\\//g, '/');\n } catch(e) {}\n }\n }\n if (vm.$children) {\n for (var c = 0; c < vm.$children.length; c++) {\n var f = walk(vm.$children[c], d + 1);\n if (f) return f;\n }\n }\n return '';\n };\n return walk(el.__vue__, 0);\n }\n\n // ===== 视频课: detail_info → getPlayUrl =====\n if (!isLive && resourceId.startsWith('v_')) {\n try {\n var detailRes = await fetch(origin + '/xe.course.business.video.detail_info.get/2.0.0', {\n method: 'POST', credentials: 'include',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams({\n 'bizData[resource_id]': resourceId,\n 'bizData[product_id]': productId || resourceId,\n 'bizData[opr_sys]': 'MacIntel',\n }),\n });\n var detail = await detailRes.json();\n var vi = (detail.data || {}).video_info || {};\n title = vi.file_name || title;\n duration = vi.video_length || 0;\n if (vi.play_sign) {\n var userId = (document.cookie.match(/ctx_user_id=([^;]+)/) || [])[1] || window.__user_id || '';\n var playRes = await fetch(origin + '/xe.material-center.play/getPlayUrl', {\n method: 'POST', credentials: 'include',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n org_app_id: appId, app_id: vi.material_app_id || appId,\n user_id: userId, play_sign: [vi.play_sign],\n play_line: 'A', opr_sys: 'MacIntel',\n }),\n });\n var playData = await playRes.json();\n if (playData.code === 0 && playData.data) {\n var m = JSON.stringify(playData.data).match(/https?:[^\"]*\\.m3u8[^\"]*/);\n if (m) { m3u8Url = m[0].replace(/\\\\u0026/g, '&').replace(/\\\\\\//g, '/'); method = 'api_direct'; }\n }\n }\n } catch(e) {}\n }\n\n // ===== 兜底: Performance API + Vue 搜索轮询 =====\n if (!m3u8Url) {\n for (var attempt = 0; attempt < 30; attempt++) {\n var entries = performance.getEntriesByType('resource');\n for (var i = 0; i < entries.length; i++) {\n if (entries[i].name.includes('.m3u8')) { m3u8Url = entries[i].name; method = 'perf_api'; break; }\n }\n if (!m3u8Url) { m3u8Url = searchVueM3u8(); if (m3u8Url) method = 'vue_search'; }\n if (m3u8Url) break;\n await new Promise(function(r) { setTimeout(r, 500); });\n }\n }\n\n if (!duration) {\n var vid = document.querySelector('video'), aud = document.querySelector('audio');\n if (vid && vid.duration && !isNaN(vid.duration)) duration = Math.round(vid.duration);\n if (aud && aud.duration && !isNaN(aud.duration)) duration = Math.round(aud.duration);\n }\n\n return [{ title: title, resource_id: resourceId, m3u8_url: m3u8Url, duration_sec: duration, method: method }];\n})()\n"
15062
+ },
15063
+ {
15064
+ "map": {
15065
+ "title": "${{ item.title }}",
15066
+ "resource_id": "${{ item.resource_id }}",
15067
+ "m3u8_url": "${{ item.m3u8_url }}",
15068
+ "duration_sec": "${{ item.duration_sec }}",
15069
+ "method": "${{ item.method }}"
15070
+ }
15071
+ }
15072
+ ],
15073
+ "type": "yaml"
13641
15074
  },
13642
15075
  {
13643
15076
  "site": "xiaohongshu",
@@ -15412,6 +16845,68 @@
15412
16845
  "type": "ts",
15413
16846
  "modulePath": "youtube/video.js"
15414
16847
  },
16848
+ {
16849
+ "site": "yuanbao",
16850
+ "name": "ask",
16851
+ "description": "Send a prompt to Yuanbao web chat and wait for the assistant response",
16852
+ "domain": "yuanbao.tencent.com",
16853
+ "strategy": "cookie",
16854
+ "browser": true,
16855
+ "args": [
16856
+ {
16857
+ "name": "prompt",
16858
+ "type": "str",
16859
+ "required": true,
16860
+ "positional": true,
16861
+ "help": "Prompt to send"
16862
+ },
16863
+ {
16864
+ "name": "timeout",
16865
+ "type": "str",
16866
+ "default": "60",
16867
+ "required": false,
16868
+ "help": "Max seconds to wait (default: 60)"
16869
+ },
16870
+ {
16871
+ "name": "search",
16872
+ "type": "boolean",
16873
+ "default": true,
16874
+ "required": false,
16875
+ "help": "Enable Yuanbao internet search (default: true)"
16876
+ },
16877
+ {
16878
+ "name": "think",
16879
+ "type": "boolean",
16880
+ "default": false,
16881
+ "required": false,
16882
+ "help": "Enable Yuanbao deep thinking (default: false)"
16883
+ }
16884
+ ],
16885
+ "columns": [
16886
+ "Role",
16887
+ "Text"
16888
+ ],
16889
+ "timeout": 180,
16890
+ "type": "ts",
16891
+ "modulePath": "yuanbao/ask.js",
16892
+ "navigateBefore": false
16893
+ },
16894
+ {
16895
+ "site": "yuanbao",
16896
+ "name": "new",
16897
+ "description": "Start a new conversation in Yuanbao web chat",
16898
+ "domain": "yuanbao.tencent.com",
16899
+ "strategy": "cookie",
16900
+ "browser": true,
16901
+ "args": [],
16902
+ "columns": [
16903
+ "Status",
16904
+ "Action"
16905
+ ],
16906
+ "type": "ts",
16907
+ "modulePath": "yuanbao/new.js",
16908
+ "navigateBefore": false
16909
+ },
15415
16910
  {
15416
16911
  "site": "zhihu",
15417
16912
  "name": "download",