@zenalexa/unicli 0.215.1 → 0.216.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/AGENTS.md +15 -15
  2. package/README.md +233 -389
  3. package/README.zh-CN.md +235 -362
  4. package/dist/adapters/1688/assets.d.ts +2 -0
  5. package/dist/adapters/1688/assets.d.ts.map +1 -0
  6. package/dist/adapters/1688/assets.js +102 -0
  7. package/dist/adapters/1688/assets.js.map +1 -0
  8. package/dist/adapters/51job/jobs.d.ts +2 -0
  9. package/dist/adapters/51job/jobs.d.ts.map +1 -0
  10. package/dist/adapters/51job/jobs.js +292 -0
  11. package/dist/adapters/51job/jobs.js.map +1 -0
  12. package/dist/adapters/_shared/browser-tools.d.ts +10 -0
  13. package/dist/adapters/_shared/browser-tools.d.ts.map +1 -0
  14. package/dist/adapters/_shared/browser-tools.js +42 -0
  15. package/dist/adapters/_shared/browser-tools.js.map +1 -0
  16. package/dist/adapters/antigravity/extra.d.ts +2 -0
  17. package/dist/adapters/antigravity/extra.d.ts.map +1 -0
  18. package/dist/adapters/antigravity/extra.js +52 -0
  19. package/dist/adapters/antigravity/extra.js.map +1 -0
  20. package/dist/adapters/baidu-scholar/search.d.ts +2 -0
  21. package/dist/adapters/baidu-scholar/search.d.ts.map +1 -0
  22. package/dist/adapters/baidu-scholar/search.js +34 -0
  23. package/dist/adapters/baidu-scholar/search.js.map +1 -0
  24. package/dist/adapters/bilibili/compat.d.ts +2 -0
  25. package/dist/adapters/bilibili/compat.d.ts.map +1 -0
  26. package/dist/adapters/bilibili/compat.js +114 -0
  27. package/dist/adapters/bilibili/compat.js.map +1 -0
  28. package/dist/adapters/chatgpt/image.d.ts +2 -0
  29. package/dist/adapters/chatgpt/image.d.ts.map +1 -0
  30. package/dist/adapters/chatgpt/image.js +81 -0
  31. package/dist/adapters/chatgpt/image.js.map +1 -0
  32. package/dist/adapters/chatgpt-app/chatgpt-app.d.ts +2 -0
  33. package/dist/adapters/chatgpt-app/chatgpt-app.d.ts.map +1 -0
  34. package/dist/adapters/chatgpt-app/chatgpt-app.js +9 -0
  35. package/dist/adapters/chatgpt-app/chatgpt-app.js.map +1 -0
  36. package/dist/adapters/chatwise/extra.d.ts +2 -0
  37. package/dist/adapters/chatwise/extra.d.ts.map +1 -0
  38. package/dist/adapters/chatwise/extra.js +35 -0
  39. package/dist/adapters/chatwise/extra.js.map +1 -0
  40. package/dist/adapters/codex/extra.d.ts +2 -0
  41. package/dist/adapters/codex/extra.d.ts.map +1 -0
  42. package/dist/adapters/codex/extra.js +35 -0
  43. package/dist/adapters/codex/extra.js.map +1 -0
  44. package/dist/adapters/deepseek/web.d.ts +2 -0
  45. package/dist/adapters/deepseek/web.d.ts.map +1 -0
  46. package/dist/adapters/deepseek/web.js +187 -0
  47. package/dist/adapters/deepseek/web.js.map +1 -0
  48. package/dist/adapters/doubao/web.d.ts +2 -0
  49. package/dist/adapters/doubao/web.d.ts.map +1 -0
  50. package/dist/adapters/doubao/web.js +138 -0
  51. package/dist/adapters/doubao/web.js.map +1 -0
  52. package/dist/adapters/eastmoney/market-data.d.ts +2 -0
  53. package/dist/adapters/eastmoney/market-data.d.ts.map +1 -0
  54. package/dist/adapters/eastmoney/market-data.js +753 -0
  55. package/dist/adapters/eastmoney/market-data.js.map +1 -0
  56. package/dist/adapters/gitee/user.d.ts +2 -0
  57. package/dist/adapters/gitee/user.d.ts.map +1 -0
  58. package/dist/adapters/gitee/user.js +54 -0
  59. package/dist/adapters/gitee/user.js.map +1 -0
  60. package/dist/adapters/google-scholar/cite.d.ts +2 -0
  61. package/dist/adapters/google-scholar/cite.d.ts.map +1 -0
  62. package/dist/adapters/google-scholar/cite.js +82 -0
  63. package/dist/adapters/google-scholar/cite.js.map +1 -0
  64. package/dist/adapters/google-scholar/profile.d.ts +2 -0
  65. package/dist/adapters/google-scholar/profile.d.ts.map +1 -0
  66. package/dist/adapters/google-scholar/profile.js +80 -0
  67. package/dist/adapters/google-scholar/profile.js.map +1 -0
  68. package/dist/adapters/google-scholar/search.d.ts +2 -0
  69. package/dist/adapters/google-scholar/search.d.ts.map +1 -0
  70. package/dist/adapters/google-scholar/search.js +54 -0
  71. package/dist/adapters/google-scholar/search.js.map +1 -0
  72. package/dist/adapters/gov-law/laws.d.ts +2 -0
  73. package/dist/adapters/gov-law/laws.d.ts.map +1 -0
  74. package/dist/adapters/gov-law/laws.js +58 -0
  75. package/dist/adapters/gov-law/laws.js.map +1 -0
  76. package/dist/adapters/gov-policy/policy.d.ts +2 -0
  77. package/dist/adapters/gov-policy/policy.d.ts.map +1 -0
  78. package/dist/adapters/gov-policy/policy.js +58 -0
  79. package/dist/adapters/gov-policy/policy.js.map +1 -0
  80. package/dist/adapters/jd/commerce.d.ts +2 -0
  81. package/dist/adapters/jd/commerce.d.ts.map +1 -0
  82. package/dist/adapters/jd/commerce.js +133 -0
  83. package/dist/adapters/jd/commerce.js.map +1 -0
  84. package/dist/adapters/jianyu/detail.d.ts +2 -0
  85. package/dist/adapters/jianyu/detail.d.ts.map +1 -0
  86. package/dist/adapters/jianyu/detail.js +27 -0
  87. package/dist/adapters/jianyu/detail.js.map +1 -0
  88. package/dist/adapters/jimeng/workspace.d.ts +2 -0
  89. package/dist/adapters/jimeng/workspace.d.ts.map +1 -0
  90. package/dist/adapters/jimeng/workspace.js +49 -0
  91. package/dist/adapters/jimeng/workspace.js.map +1 -0
  92. package/dist/adapters/ke/rent-transaction.d.ts +2 -0
  93. package/dist/adapters/ke/rent-transaction.d.ts.map +1 -0
  94. package/dist/adapters/ke/rent-transaction.js +63 -0
  95. package/dist/adapters/ke/rent-transaction.js.map +1 -0
  96. package/dist/adapters/linux-do/search.d.ts +2 -0
  97. package/dist/adapters/linux-do/search.d.ts.map +1 -0
  98. package/dist/adapters/linux-do/search.js +75 -0
  99. package/dist/adapters/linux-do/search.js.map +1 -0
  100. package/dist/adapters/linux-do/topic-content.d.ts +2 -0
  101. package/dist/adapters/linux-do/topic-content.d.ts.map +1 -0
  102. package/dist/adapters/linux-do/topic-content.js +32 -0
  103. package/dist/adapters/linux-do/topic-content.js.map +1 -0
  104. package/dist/adapters/maimai/talents.d.ts +2 -0
  105. package/dist/adapters/maimai/talents.d.ts.map +1 -0
  106. package/dist/adapters/maimai/talents.js +64 -0
  107. package/dist/adapters/maimai/talents.js.map +1 -0
  108. package/dist/adapters/mubu/docs.d.ts +2 -0
  109. package/dist/adapters/mubu/docs.d.ts.map +1 -0
  110. package/dist/adapters/mubu/docs.js +96 -0
  111. package/dist/adapters/mubu/docs.js.map +1 -0
  112. package/dist/adapters/nowcoder/nowcoder.d.ts +2 -0
  113. package/dist/adapters/nowcoder/nowcoder.d.ts.map +1 -0
  114. package/dist/adapters/nowcoder/nowcoder.js +480 -0
  115. package/dist/adapters/nowcoder/nowcoder.js.map +1 -0
  116. package/dist/adapters/powerchina/search.d.ts +2 -0
  117. package/dist/adapters/powerchina/search.d.ts.map +1 -0
  118. package/dist/adapters/powerchina/search.js +41 -0
  119. package/dist/adapters/powerchina/search.js.map +1 -0
  120. package/dist/adapters/quark/actions.d.ts +2 -0
  121. package/dist/adapters/quark/actions.d.ts.map +1 -0
  122. package/dist/adapters/quark/actions.js +151 -0
  123. package/dist/adapters/quark/actions.js.map +1 -0
  124. package/dist/adapters/reddit/browser-utils.d.ts +7 -0
  125. package/dist/adapters/reddit/browser-utils.d.ts.map +1 -0
  126. package/dist/adapters/reddit/browser-utils.js +68 -0
  127. package/dist/adapters/reddit/browser-utils.js.map +1 -0
  128. package/dist/adapters/reddit/listings.d.ts +2 -0
  129. package/dist/adapters/reddit/listings.d.ts.map +1 -0
  130. package/dist/adapters/reddit/listings.js +193 -0
  131. package/dist/adapters/reddit/listings.js.map +1 -0
  132. package/dist/adapters/reddit/search.d.ts +2 -0
  133. package/dist/adapters/reddit/search.d.ts.map +1 -0
  134. package/dist/adapters/reddit/search.js +66 -0
  135. package/dist/adapters/reddit/search.js.map +1 -0
  136. package/dist/adapters/spotify/api.d.ts +2 -0
  137. package/dist/adapters/spotify/api.d.ts.map +1 -0
  138. package/dist/adapters/spotify/api.js +252 -0
  139. package/dist/adapters/spotify/api.js.map +1 -0
  140. package/dist/adapters/taobao/commerce.d.ts +2 -0
  141. package/dist/adapters/taobao/commerce.d.ts.map +1 -0
  142. package/dist/adapters/taobao/commerce.js +130 -0
  143. package/dist/adapters/taobao/commerce.js.map +1 -0
  144. package/dist/adapters/tdx/hot-rank.d.ts +2 -0
  145. package/dist/adapters/tdx/hot-rank.d.ts.map +1 -0
  146. package/dist/adapters/tdx/hot-rank.js +34 -0
  147. package/dist/adapters/tdx/hot-rank.js.map +1 -0
  148. package/dist/adapters/ths/hot-rank.d.ts +2 -0
  149. package/dist/adapters/ths/hot-rank.d.ts.map +1 -0
  150. package/dist/adapters/ths/hot-rank.js +34 -0
  151. package/dist/adapters/ths/hot-rank.js.map +1 -0
  152. package/dist/adapters/toutiao/articles.d.ts +2 -0
  153. package/dist/adapters/toutiao/articles.d.ts.map +1 -0
  154. package/dist/adapters/toutiao/articles.js +41 -0
  155. package/dist/adapters/toutiao/articles.js.map +1 -0
  156. package/dist/adapters/twitter/lists-extra.d.ts +2 -0
  157. package/dist/adapters/twitter/lists-extra.d.ts.map +1 -0
  158. package/dist/adapters/twitter/lists-extra.js +125 -0
  159. package/dist/adapters/twitter/lists-extra.js.map +1 -0
  160. package/dist/adapters/uiverse/components.d.ts +2 -0
  161. package/dist/adapters/uiverse/components.d.ts.map +1 -0
  162. package/dist/adapters/uiverse/components.js +138 -0
  163. package/dist/adapters/uiverse/components.js.map +1 -0
  164. package/dist/adapters/wanfang/search.d.ts +2 -0
  165. package/dist/adapters/wanfang/search.d.ts.map +1 -0
  166. package/dist/adapters/wanfang/search.js +34 -0
  167. package/dist/adapters/wanfang/search.js.map +1 -0
  168. package/dist/adapters/weixin/drafts.d.ts +2 -0
  169. package/dist/adapters/weixin/drafts.d.ts.map +1 -0
  170. package/dist/adapters/weixin/drafts.js +69 -0
  171. package/dist/adapters/weixin/drafts.js.map +1 -0
  172. package/dist/adapters/weread/ai-outline.d.ts +2 -0
  173. package/dist/adapters/weread/ai-outline.d.ts.map +1 -0
  174. package/dist/adapters/weread/ai-outline.js +28 -0
  175. package/dist/adapters/weread/ai-outline.js.map +1 -0
  176. package/dist/adapters/xiaoyuzhou/media.d.ts +2 -0
  177. package/dist/adapters/xiaoyuzhou/media.d.ts.map +1 -0
  178. package/dist/adapters/xiaoyuzhou/media.js +105 -0
  179. package/dist/adapters/xiaoyuzhou/media.js.map +1 -0
  180. package/dist/adapters/xueqiu/extra.d.ts +2 -0
  181. package/dist/adapters/xueqiu/extra.d.ts.map +1 -0
  182. package/dist/adapters/xueqiu/extra.js +74 -0
  183. package/dist/adapters/xueqiu/extra.js.map +1 -0
  184. package/dist/adapters/youtube/personal.d.ts +2 -0
  185. package/dist/adapters/youtube/personal.d.ts.map +1 -0
  186. package/dist/adapters/youtube/personal.js +183 -0
  187. package/dist/adapters/youtube/personal.js.map +1 -0
  188. package/dist/adapters/zhihu/actions.d.ts +2 -0
  189. package/dist/adapters/zhihu/actions.d.ts.map +1 -0
  190. package/dist/adapters/zhihu/actions.js +110 -0
  191. package/dist/adapters/zhihu/actions.js.map +1 -0
  192. package/dist/browser/adapter-authoring.d.ts.map +1 -1
  193. package/dist/browser/adapter-authoring.js +3 -3
  194. package/dist/browser/adapter-authoring.js.map +1 -1
  195. package/dist/browser/bridge.d.ts.map +1 -1
  196. package/dist/browser/bridge.js +2 -3
  197. package/dist/browser/bridge.js.map +1 -1
  198. package/dist/browser/daemon-client.d.ts.map +1 -1
  199. package/dist/browser/daemon-client.js +17 -5
  200. package/dist/browser/daemon-client.js.map +1 -1
  201. package/dist/browser/network-cache.js +2 -2
  202. package/dist/browser/network-cache.js.map +1 -1
  203. package/dist/browser/site-memory.d.ts.map +1 -1
  204. package/dist/browser/site-memory.js +11 -8
  205. package/dist/browser/site-memory.js.map +1 -1
  206. package/dist/browser/target-errors.d.ts +2 -2
  207. package/dist/browser/target-errors.js +2 -2
  208. package/dist/browser/verify-fixture.d.ts.map +1 -1
  209. package/dist/browser/verify-fixture.js +2 -2
  210. package/dist/browser/verify-fixture.js.map +1 -1
  211. package/dist/cli.d.ts.map +1 -1
  212. package/dist/cli.js +9 -4
  213. package/dist/cli.js.map +1 -1
  214. package/dist/commands/agents.d.ts.map +1 -1
  215. package/dist/commands/agents.js +5 -2
  216. package/dist/commands/agents.js.map +1 -1
  217. package/dist/commands/auth.d.ts.map +1 -1
  218. package/dist/commands/auth.js +8 -2
  219. package/dist/commands/auth.js.map +1 -1
  220. package/dist/commands/browser-operator-runtime.d.ts.map +1 -1
  221. package/dist/commands/browser-operator-runtime.js +2 -2
  222. package/dist/commands/browser-operator-runtime.js.map +1 -1
  223. package/dist/commands/browser-operator.d.ts.map +1 -1
  224. package/dist/commands/browser-operator.js +2 -2
  225. package/dist/commands/browser-operator.js.map +1 -1
  226. package/dist/commands/describe.d.ts +2 -2
  227. package/dist/commands/describe.d.ts.map +1 -1
  228. package/dist/commands/describe.js +14 -3
  229. package/dist/commands/describe.js.map +1 -1
  230. package/dist/commands/dispatch.d.ts.map +1 -1
  231. package/dist/commands/dispatch.js +7 -6
  232. package/dist/commands/dispatch.js.map +1 -1
  233. package/dist/commands/explore.js +2 -2
  234. package/dist/commands/explore.js.map +1 -1
  235. package/dist/commands/generate.js +3 -3
  236. package/dist/commands/generate.js.map +1 -1
  237. package/dist/commands/health.d.ts.map +1 -1
  238. package/dist/commands/health.js +4 -10
  239. package/dist/commands/health.js.map +1 -1
  240. package/dist/commands/migrate.d.ts +9 -9
  241. package/dist/commands/migrate.d.ts.map +1 -1
  242. package/dist/commands/migrate.js +22 -22
  243. package/dist/commands/migrate.js.map +1 -1
  244. package/dist/commands/repair.d.ts.map +1 -1
  245. package/dist/commands/repair.js +9 -4
  246. package/dist/commands/repair.js.map +1 -1
  247. package/dist/commands/search.d.ts +3 -3
  248. package/dist/commands/search.js +4 -4
  249. package/dist/commands/skills.d.ts +3 -0
  250. package/dist/commands/skills.d.ts.map +1 -1
  251. package/dist/commands/skills.js +8 -4
  252. package/dist/commands/skills.js.map +1 -1
  253. package/dist/commands/synthesize.js +2 -2
  254. package/dist/commands/synthesize.js.map +1 -1
  255. package/dist/discovery/aliases.d.ts.map +1 -1
  256. package/dist/discovery/aliases.js +69 -0
  257. package/dist/discovery/aliases.js.map +1 -1
  258. package/dist/discovery/loader.d.ts.map +1 -1
  259. package/dist/discovery/loader.js +130 -0
  260. package/dist/discovery/loader.js.map +1 -1
  261. package/dist/engine/kernel/execute.d.ts.map +1 -1
  262. package/dist/engine/kernel/execute.js +27 -4
  263. package/dist/engine/kernel/execute.js.map +1 -1
  264. package/dist/engine/user-home.d.ts +9 -0
  265. package/dist/engine/user-home.d.ts.map +1 -0
  266. package/dist/engine/user-home.js +12 -0
  267. package/dist/engine/user-home.js.map +1 -0
  268. package/dist/fast-path.d.ts +14 -0
  269. package/dist/fast-path.d.ts.map +1 -0
  270. package/dist/fast-path.js +565 -0
  271. package/dist/fast-path.js.map +1 -0
  272. package/dist/hub/index.d.ts +1 -1
  273. package/dist/hub/index.d.ts.map +1 -1
  274. package/dist/hub/index.js +28 -17
  275. package/dist/hub/index.js.map +1 -1
  276. package/dist/main.js +6 -3
  277. package/dist/main.js.map +1 -1
  278. package/dist/manifest-compact.txt +11 -11
  279. package/dist/manifest-search.json +1 -1
  280. package/dist/manifest.json +27600 -1016
  281. package/dist/mcp/tools.js +1 -1
  282. package/dist/mcp/tools.js.map +1 -1
  283. package/dist/output/error-map.d.ts.map +1 -1
  284. package/dist/output/error-map.js +16 -5
  285. package/dist/output/error-map.js.map +1 -1
  286. package/dist/protocol/acp.js +1 -1
  287. package/dist/protocol/acp.js.map +1 -1
  288. package/dist/registry.d.ts +3 -0
  289. package/dist/registry.d.ts.map +1 -1
  290. package/dist/registry.js +34 -1
  291. package/dist/registry.js.map +1 -1
  292. package/dist/runtime/usage-ledger.d.ts +6 -7
  293. package/dist/runtime/usage-ledger.d.ts.map +1 -1
  294. package/dist/runtime/usage-ledger.js +6 -7
  295. package/dist/runtime/usage-ledger.js.map +1 -1
  296. package/dist/types.d.ts +2 -0
  297. package/dist/types.d.ts.map +1 -1
  298. package/dist/types.js.map +1 -1
  299. package/package.json +12 -6
  300. package/src/adapters/1688/assets.ts +114 -0
  301. package/src/adapters/51job/jobs.ts +327 -0
  302. package/src/adapters/_shared/browser-tools.ts +59 -0
  303. package/src/adapters/antigravity/extra.ts +53 -0
  304. package/src/adapters/baidu-scholar/search.ts +38 -0
  305. package/src/adapters/bilibili/compat.ts +132 -0
  306. package/src/adapters/binance/asks.yaml +41 -0
  307. package/src/adapters/binance/depth.yaml +41 -0
  308. package/src/adapters/binance/gainers.yaml +42 -0
  309. package/src/adapters/binance/hot.yaml +1 -1
  310. package/src/adapters/binance/kline.yaml +1 -1
  311. package/src/adapters/binance/klines.yaml +46 -0
  312. package/src/adapters/binance/losers.yaml +42 -0
  313. package/src/adapters/binance/pairs.yaml +38 -0
  314. package/src/adapters/binance/price.yaml +32 -0
  315. package/src/adapters/binance/prices.yaml +30 -0
  316. package/src/adapters/binance/ticker.yaml +2 -2
  317. package/src/adapters/binance/top.yaml +46 -0
  318. package/src/adapters/binance/trades.yaml +42 -0
  319. package/src/adapters/chatgpt/image.ts +84 -0
  320. package/src/adapters/chatgpt-app/chatgpt-app.ts +11 -0
  321. package/src/adapters/chatwise/extra.ts +36 -0
  322. package/src/adapters/codex/extra.ts +36 -0
  323. package/src/adapters/deepseek/web.ts +203 -0
  324. package/src/adapters/doubao/web.ts +154 -0
  325. package/src/adapters/eastmoney/market-data.ts +829 -0
  326. package/src/adapters/excel/insert-image.yaml +80 -0
  327. package/src/adapters/excel/insert-link.yaml +90 -0
  328. package/src/adapters/excel/list.yaml +63 -0
  329. package/src/adapters/excel/read.yaml +74 -0
  330. package/src/adapters/excel/set-cell.yaml +77 -0
  331. package/src/adapters/excel/set-font.yaml +87 -0
  332. package/src/adapters/excel/status.yaml +29 -0
  333. package/src/adapters/gh/search-repos.yaml +62 -0
  334. package/src/adapters/gitee/user.ts +59 -0
  335. package/src/adapters/google-scholar/cite.ts +95 -0
  336. package/src/adapters/google-scholar/profile.ts +91 -0
  337. package/src/adapters/google-scholar/search.ts +58 -0
  338. package/src/adapters/gov-law/laws.ts +61 -0
  339. package/src/adapters/gov-policy/policy.ts +61 -0
  340. package/src/adapters/imessage/contact.yaml +7 -2
  341. package/src/adapters/imessage/recent.yaml +7 -2
  342. package/src/adapters/imessage/search.yaml +7 -2
  343. package/src/adapters/jd/commerce.ts +142 -0
  344. package/src/adapters/jianyu/detail.ts +28 -0
  345. package/src/adapters/jimeng/workspace.ts +53 -0
  346. package/src/adapters/ke/rent-transaction.ts +70 -0
  347. package/src/adapters/linux-do/search.ts +92 -0
  348. package/src/adapters/linux-do/topic-content.ts +45 -0
  349. package/src/adapters/maimai/talents.ts +65 -0
  350. package/src/adapters/mubu/docs.ts +107 -0
  351. package/src/adapters/nowcoder/nowcoder.ts +570 -0
  352. package/src/adapters/powerchina/search.ts +45 -0
  353. package/src/adapters/powerpoint/add-slide.yaml +93 -0
  354. package/src/adapters/powerpoint/insert-image.yaml +71 -0
  355. package/src/adapters/powerpoint/insert-link.yaml +94 -0
  356. package/src/adapters/powerpoint/list.yaml +58 -0
  357. package/src/adapters/powerpoint/set-font.yaml +101 -0
  358. package/src/adapters/powerpoint/slides.yaml +73 -0
  359. package/src/adapters/powerpoint/status.yaml +29 -0
  360. package/src/adapters/quark/actions.ts +169 -0
  361. package/src/adapters/reddit/browser-utils.ts +93 -0
  362. package/src/adapters/reddit/listings.ts +223 -0
  363. package/src/adapters/reddit/search.ts +74 -0
  364. package/src/adapters/spotify/api.ts +292 -0
  365. package/src/adapters/taobao/commerce.ts +134 -0
  366. package/src/adapters/tdx/hot-rank.ts +35 -0
  367. package/src/adapters/ths/hot-rank.ts +35 -0
  368. package/src/adapters/toutiao/articles.ts +45 -0
  369. package/src/adapters/twitter/lists-extra.ts +139 -0
  370. package/src/adapters/uiverse/components.ts +154 -0
  371. package/src/adapters/vercel/list.yaml +2 -1
  372. package/src/adapters/wanfang/search.ts +38 -0
  373. package/src/adapters/weixin/drafts.ts +74 -0
  374. package/src/adapters/weread/ai-outline.ts +32 -0
  375. package/src/adapters/word/insert-image.yaml +73 -0
  376. package/src/adapters/word/insert-link.yaml +82 -0
  377. package/src/adapters/word/insert-text.yaml +72 -0
  378. package/src/adapters/word/list.yaml +63 -0
  379. package/src/adapters/word/read.yaml +63 -0
  380. package/src/adapters/word/set-font.yaml +97 -0
  381. package/src/adapters/word/status.yaml +29 -0
  382. package/src/adapters/xiaoyuzhou/media.ts +139 -0
  383. package/src/adapters/xueqiu/extra.ts +78 -0
  384. package/src/adapters/youtube/personal.ts +215 -0
  385. package/src/adapters/zhihu/actions.ts +111 -0
  386. package/src/hub/external-clis-harness.yaml +211 -0
  387. package/src/hub/index.ts +29 -25
  388. package/src/adapters/linux-do/search.yaml +0 -44
  389. package/src/adapters/meituan/hot.yaml +0 -34
  390. package/src/adapters/reddit/frontpage.test.ts +0 -15
  391. package/src/adapters/reddit/frontpage.yaml +0 -41
  392. package/src/adapters/reddit/hot.test.ts +0 -15
  393. package/src/adapters/reddit/hot.yaml +0 -41
  394. package/src/adapters/reddit/new.test.ts +0 -15
  395. package/src/adapters/reddit/new.yaml +0 -42
  396. package/src/adapters/reddit/popular.test.ts +0 -15
  397. package/src/adapters/reddit/popular.yaml +0 -41
  398. package/src/adapters/reddit/rising.test.ts +0 -15
  399. package/src/adapters/reddit/rising.yaml +0 -41
  400. package/src/adapters/reddit/search.test.ts +0 -15
  401. package/src/adapters/reddit/search.yaml +0 -52
  402. package/src/adapters/reddit/subreddit.test.ts +0 -15
  403. package/src/adapters/reddit/subreddit.yaml +0 -50
  404. package/src/adapters/reddit/top.test.ts +0 -15
  405. package/src/adapters/reddit/top.yaml +0 -48
  406. package/src/adapters/reddit/trending.test.ts +0 -15
  407. package/src/adapters/reddit/trending.yaml +0 -33
@@ -0,0 +1,114 @@
1
+ import { cli, Strategy } from "../../registry.js";
2
+ import { loadCookies, formatCookieHeader } from "../../engine/cookies.js";
3
+ import { USER_AGENT } from "../../constants.js";
4
+ import { intArg, str } from "../_shared/browser-tools.js";
5
+ async function bilibiliJson(url) {
6
+ const cookies = loadCookies("bilibili");
7
+ const headers = {
8
+ "user-agent": USER_AGENT,
9
+ referer: "https://www.bilibili.com",
10
+ accept: "application/json",
11
+ };
12
+ if (cookies)
13
+ headers.cookie = formatCookieHeader(cookies);
14
+ const response = await fetch(url, { headers });
15
+ if (!response.ok) {
16
+ throw new Error(`Bilibili request failed: HTTP ${response.status}`);
17
+ }
18
+ return (await response.json());
19
+ }
20
+ function dataObject(value) {
21
+ return (value.data ?? {});
22
+ }
23
+ cli({
24
+ site: "bilibili",
25
+ name: "video",
26
+ description: "Get Bilibili video metadata by BV ID or URL",
27
+ domain: "api.bilibili.com",
28
+ strategy: Strategy.PUBLIC,
29
+ args: [{ name: "bvid", type: "str", required: true, positional: true }],
30
+ columns: ["title", "author", "duration", "views", "bvid"],
31
+ func: async (_page, kwargs) => {
32
+ const input = str(kwargs.bvid);
33
+ const match = /BV[a-zA-Z0-9]+/.exec(input);
34
+ const bvid = match?.[0] ?? input;
35
+ const data = dataObject(await bilibiliJson(`https://api.bilibili.com/x/web-interface/view?bvid=${encodeURIComponent(bvid)}`));
36
+ const owner = (data.owner ?? {});
37
+ const stat = (data.stat ?? {});
38
+ return [
39
+ {
40
+ title: data.title ?? "",
41
+ author: owner.name ?? "",
42
+ duration: data.duration ?? 0,
43
+ views: stat.view ?? 0,
44
+ likes: stat.like ?? 0,
45
+ bvid: data.bvid ?? bvid,
46
+ },
47
+ ];
48
+ },
49
+ });
50
+ cli({
51
+ site: "bilibili",
52
+ name: "favorite",
53
+ description: "Read Bilibili favorite folder videos",
54
+ domain: "api.bilibili.com",
55
+ strategy: Strategy.COOKIE,
56
+ args: [
57
+ { name: "fid", type: "str", required: false },
58
+ { name: "limit", type: "int", default: 20 },
59
+ ],
60
+ columns: ["title", "author", "fav_time", "bvid"],
61
+ func: async (_page, kwargs) => {
62
+ const limit = intArg(kwargs.limit, 20, 100);
63
+ let fid = str(kwargs.fid);
64
+ if (!fid) {
65
+ const folders = dataObject(await bilibiliJson("https://api.bilibili.com/x/v3/fav/folder/created/list-all?up_mid=0"));
66
+ const list = Array.isArray(folders.list)
67
+ ? folders.list
68
+ : [];
69
+ fid = str(list[0]?.id);
70
+ }
71
+ if (!fid)
72
+ throw new Error("No Bilibili favorite folder id found");
73
+ const data = dataObject(await bilibiliJson(`https://api.bilibili.com/x/v3/fav/resource/list?media_id=${encodeURIComponent(fid)}&ps=${limit}&pn=1`));
74
+ const medias = Array.isArray(data.medias)
75
+ ? data.medias
76
+ : [];
77
+ return medias.slice(0, limit).map((item) => {
78
+ const upper = (item.upper ?? {});
79
+ return {
80
+ title: item.title ?? "",
81
+ author: upper.name ?? "",
82
+ fav_time: item.fav_time ?? "",
83
+ bvid: item.bvid ?? "",
84
+ };
85
+ });
86
+ },
87
+ });
88
+ cli({
89
+ site: "bilibili",
90
+ name: "feed-detail",
91
+ description: "Read a Bilibili dynamic feed item detail",
92
+ domain: "api.bilibili.com",
93
+ strategy: Strategy.COOKIE,
94
+ args: [{ name: "id", type: "str", required: true, positional: true }],
95
+ columns: ["author", "type", "text", "url"],
96
+ func: async (_page, kwargs) => {
97
+ const id = str(kwargs.id).replace(/^https?:\/\/t\.bilibili\.com\//, "");
98
+ const data = dataObject(await bilibiliJson(`https://api.bilibili.com/x/polymer/web-dynamic/v1/detail?id=${encodeURIComponent(id)}`));
99
+ const item = (data.item ?? data);
100
+ const modules = (item.modules ?? {});
101
+ const author = (modules.module_author ?? {});
102
+ const dynamic = (modules.module_dynamic ?? {});
103
+ const desc = (dynamic.desc ?? {});
104
+ return [
105
+ {
106
+ author: author.name ?? "",
107
+ type: item.type ?? "",
108
+ text: desc.text ?? "",
109
+ url: `https://t.bilibili.com/${id}`,
110
+ },
111
+ ];
112
+ },
113
+ });
114
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../src/adapters/bilibili/compat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../src/adapters/chatgpt/image.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ import { mkdir, writeFile } from "node:fs/promises";
2
+ import { homedir } from "node:os";
3
+ import { basename, join } from "node:path";
4
+ import { cli, Strategy } from "../../registry.js";
5
+ import { boolArg, intArg, js, str } from "../_shared/browser-tools.js";
6
+ function imageOutputPath(value) {
7
+ const raw = str(value, join(homedir(), "Pictures", "chatgpt"));
8
+ return raw.replace(/^~(?=$|\/)/, homedir());
9
+ }
10
+ cli({
11
+ site: "chatgpt",
12
+ name: "image",
13
+ description: "Generate an image in ChatGPT web and optionally save visible images",
14
+ domain: "chatgpt.com",
15
+ strategy: Strategy.COOKIE,
16
+ browser: true,
17
+ args: [
18
+ { name: "prompt", type: "str", required: true, positional: true },
19
+ { name: "op", type: "str", default: "~/Pictures/chatgpt" },
20
+ { name: "sd", type: "bool", default: false },
21
+ { name: "timeout", type: "int", default: 120 },
22
+ ],
23
+ columns: ["status", "file", "link"],
24
+ func: async (page, kwargs) => {
25
+ const p = page;
26
+ const prompt = str(kwargs.prompt);
27
+ await p.goto("https://chatgpt.com/new", { settleMs: 2500 });
28
+ await p.click("#prompt-textarea, textarea, [contenteditable='true']");
29
+ await p.insertText(`Create an image: ${prompt}`);
30
+ await p.press("Enter");
31
+ const timeout = intArg(kwargs.timeout, 120, 600);
32
+ const deadline = Date.now() + timeout * 1000;
33
+ let images = [];
34
+ while (Date.now() < deadline) {
35
+ await p.wait(2);
36
+ images = (await p.evaluate(`(() => {
37
+ return [...document.querySelectorAll('img')]
38
+ .map((img) => img.currentSrc || img.src)
39
+ .filter((url) => url && /^https?:/.test(url));
40
+ })()`));
41
+ if (images.length > 0)
42
+ break;
43
+ }
44
+ if (boolArg(kwargs.sd)) {
45
+ return [
46
+ {
47
+ status: images.length ? "generated" : "pending",
48
+ file: "",
49
+ link: await p.url(),
50
+ },
51
+ ];
52
+ }
53
+ const output = imageOutputPath(kwargs.op);
54
+ await mkdir(output, { recursive: true });
55
+ const rows = [];
56
+ for (const [index, url] of images.entries()) {
57
+ const response = await fetch(url);
58
+ const bytes = Buffer.from(await response.arrayBuffer());
59
+ const name = basename(new URL(url).pathname) ||
60
+ `chatgpt-${Date.now()}-${index + 1}.png`;
61
+ const file = join(output, `${Date.now()}-${name}`);
62
+ await writeFile(file, bytes);
63
+ rows.push({
64
+ status: "saved",
65
+ file,
66
+ link: await p.url(),
67
+ bytes: bytes.length,
68
+ });
69
+ }
70
+ if (rows.length === 0) {
71
+ rows.push({
72
+ status: "no_image_found",
73
+ file: "",
74
+ link: await p.url(),
75
+ prompt: js(prompt),
76
+ });
77
+ }
78
+ return rows;
79
+ },
80
+ });
81
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/adapters/chatgpt/image.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=chatgpt-app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt-app.d.ts","sourceRoot":"","sources":["../../../src/adapters/chatgpt-app/chatgpt-app.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { registerAIChatCommands } from "../_electron/shared.js";
2
+ registerAIChatCommands("chatgpt-app", {
3
+ inputSelector: "#prompt-textarea, [data-testid='prompt-textarea'], .ProseMirror",
4
+ responseSelector: "[data-message-author-role='assistant']:last-child .markdown, [data-testid='conversation-turn-2']",
5
+ modelSelector: "[data-testid='model-switcher'] span, .model-selector",
6
+ newChatSelector: "key:Meta+n",
7
+ displayName: "ChatGPT",
8
+ });
9
+ //# sourceMappingURL=chatgpt-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt-app.js","sourceRoot":"","sources":["../../../src/adapters/chatgpt-app/chatgpt-app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,sBAAsB,CAAC,aAAa,EAAE;IACpC,aAAa,EACX,iEAAiE;IACnE,gBAAgB,EACd,kGAAkG;IACpG,aAAa,EAAE,sDAAsD;IACrE,eAAe,EAAE,YAAY;IAC7B,WAAW,EAAE,SAAS;CACvB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra.d.ts","sourceRoot":"","sources":["../../../src/adapters/chatwise/extra.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { cli, Strategy } from "../../registry.js";
2
+ import { connectElectronApp } from "../_electron/shared.js";
3
+ import { intArg } from "../_shared/browser-tools.js";
4
+ cli({
5
+ site: "chatwise",
6
+ name: "history",
7
+ description: "List ChatWise conversations from the sidebar",
8
+ strategy: Strategy.PUBLIC,
9
+ args: [{ name: "limit", type: "int", default: 20 }],
10
+ columns: ["title"],
11
+ func: async (_page, kwargs) => {
12
+ const page = await connectElectronApp("chatwise");
13
+ const limit = intArg(kwargs.limit, 20, 100);
14
+ const rows = (await page.evaluate(`(() => {
15
+ const nodes = [...document.querySelectorAll('[class*="conversation"], [class*="chat"], [role="listitem"], a')];
16
+ return nodes.map((node) => ({
17
+ title: (node.textContent || '').replace(/\\s+/g, ' ').trim().slice(0, 160)
18
+ })).filter((row) => row.title).slice(0, ${limit});
19
+ })()`));
20
+ return rows;
21
+ },
22
+ });
23
+ cli({
24
+ site: "chatwise",
25
+ name: "export",
26
+ description: "Export the current ChatWise conversation as Markdown text",
27
+ strategy: Strategy.PUBLIC,
28
+ columns: ["content"],
29
+ func: async () => {
30
+ const page = await connectElectronApp("chatwise");
31
+ const text = await page.evaluate("document.body?.innerText ?? ''");
32
+ return [{ content: String(text ?? "").trim() }];
33
+ },
34
+ });
35
+ //# sourceMappingURL=extra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra.js","sourceRoot":"","sources":["../../../src/adapters/chatwise/extra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,GAAG,CAAC;IACF,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnD,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;gDAIU,KAAK;SAC5C,CAAC,CAA8B,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC;IACF,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2DAA2D;IACxE,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,IAAI,EAAE,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QACnE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=extra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra.d.ts","sourceRoot":"","sources":["../../../src/adapters/codex/extra.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import { cli, Strategy } from "../../registry.js";
2
+ import { connectElectronApp } from "../_electron/shared.js";
3
+ import { intArg } from "../_shared/browser-tools.js";
4
+ cli({
5
+ site: "codex",
6
+ name: "history",
7
+ description: "List Codex desktop conversation threads",
8
+ strategy: Strategy.PUBLIC,
9
+ args: [{ name: "limit", type: "int", default: 20 }],
10
+ columns: ["title"],
11
+ func: async (_page, kwargs) => {
12
+ const page = await connectElectronApp("codex");
13
+ const limit = intArg(kwargs.limit, 20, 100);
14
+ const rows = (await page.evaluate(`(() => {
15
+ const nodes = [...document.querySelectorAll('[class*="thread"], [class*="conversation"], [role="listitem"], a')];
16
+ return nodes.map((node) => ({
17
+ title: (node.textContent || '').replace(/\\s+/g, ' ').trim().slice(0, 160)
18
+ })).filter((row) => row.title).slice(0, ${limit});
19
+ })()`));
20
+ return rows;
21
+ },
22
+ });
23
+ cli({
24
+ site: "codex",
25
+ name: "export",
26
+ description: "Export the current Codex desktop thread as Markdown text",
27
+ strategy: Strategy.PUBLIC,
28
+ columns: ["content"],
29
+ func: async () => {
30
+ const page = await connectElectronApp("codex");
31
+ const text = await page.evaluate("document.body?.innerText ?? ''");
32
+ return [{ content: String(text ?? "").trim() }];
33
+ },
34
+ });
35
+ //# sourceMappingURL=extra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extra.js","sourceRoot":"","sources":["../../../src/adapters/codex/extra.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,GAAG,CAAC;IACF,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,yCAAyC;IACtD,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACnD,OAAO,EAAE,CAAC,OAAO,CAAC;IAClB,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC;;;;gDAIU,KAAK;SAC5C,CAAC,CAA8B,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,GAAG,CAAC;IACF,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,0DAA0D;IACvE,QAAQ,EAAE,QAAQ,CAAC,MAAM;IACzB,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,IAAI,EAAE,KAAK,IAAI,EAAE;QACf,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QACnE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/adapters/deepseek/web.ts"],"names":[],"mappings":""}
@@ -0,0 +1,187 @@
1
+ import { existsSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { cli, Strategy } from "../../registry.js";
4
+ import { boolArg, clickFirst, intArg, js, str, visibleText, } from "../_shared/browser-tools.js";
5
+ const HOME = "https://chat.deepseek.com";
6
+ const CHAT = `${HOME}/`;
7
+ const INPUT = "textarea, [contenteditable='true'], .chat-input textarea";
8
+ const FILE_INPUT = 'input[type="file"]';
9
+ const MESSAGES = "[class*='message'], [data-role='message'], .markdown-body, main article";
10
+ const ATTACH_SELECTORS = [
11
+ 'button[aria-label*="Attach"]',
12
+ 'button[aria-label*="Upload"]',
13
+ 'button[aria-label*="上传"]',
14
+ 'button[aria-label*="附件"]',
15
+ 'label[for*="file"]',
16
+ 'button:has-text("上传")',
17
+ 'button:has-text("附件")',
18
+ 'button:has-text("Attach")',
19
+ ];
20
+ async function openChat(page) {
21
+ await page.goto(CHAT, { settleMs: 1800 });
22
+ }
23
+ async function readConversation(page) {
24
+ await openChat(page);
25
+ const items = (await page.evaluate(`(() => {
26
+ const nodes = [...document.querySelectorAll(${js(MESSAGES)})];
27
+ const rows = nodes.map((node, index) => ({
28
+ index: index + 1,
29
+ text: (node.textContent || '').trim(),
30
+ role: /user|human|question/i.test(node.getAttribute('class') || '') ? 'user' : 'assistant'
31
+ })).filter((row) => row.text.length > 0);
32
+ return rows.length ? rows : [{ index: 1, role: 'page', text: (document.body?.innerText || '').trim().slice(0, 4000) }];
33
+ })()`));
34
+ return items;
35
+ }
36
+ function resolveUploadFiles(value) {
37
+ const raw = str(value).trim();
38
+ if (!raw)
39
+ return [];
40
+ return raw
41
+ .split(",")
42
+ .map((file) => resolve(file.trim()))
43
+ .filter(Boolean)
44
+ .map((file) => {
45
+ if (!existsSync(file))
46
+ throw new Error(`DeepSeek upload file not found: ${file}`);
47
+ return file;
48
+ });
49
+ }
50
+ async function attachFiles(page, files) {
51
+ if (files.length === 0)
52
+ return;
53
+ await clickFirst(page, ATTACH_SELECTORS);
54
+ await page.setFileInput(FILE_INPUT, files);
55
+ await page.wait(2);
56
+ }
57
+ cli({
58
+ site: "deepseek",
59
+ name: "ask",
60
+ description: "Send a prompt to DeepSeek web chat and wait for a response",
61
+ domain: "chat.deepseek.com",
62
+ strategy: Strategy.COOKIE,
63
+ browser: true,
64
+ args: [
65
+ { name: "prompt", type: "str", required: true, positional: true },
66
+ { name: "timeout", type: "int", default: 120 },
67
+ { name: "new", type: "bool", default: false },
68
+ { name: "model", type: "str", default: "instant" },
69
+ { name: "think", type: "bool", default: false },
70
+ { name: "search", type: "bool", default: false },
71
+ {
72
+ name: "file",
73
+ type: "str",
74
+ required: false,
75
+ description: "Local file path, or comma-separated paths, to upload first",
76
+ },
77
+ ],
78
+ columns: ["response"],
79
+ func: async (page, kwargs) => {
80
+ const p = page;
81
+ await openChat(p);
82
+ if (boolArg(kwargs.new)) {
83
+ await clickFirst(p, [
84
+ "a[href='/']",
85
+ "button[aria-label*='New']",
86
+ "button[aria-label*='新']",
87
+ "button:has-text('新对话')",
88
+ ]);
89
+ await p.wait(0.8);
90
+ }
91
+ await attachFiles(p, resolveUploadFiles(kwargs.file));
92
+ await p.click(INPUT);
93
+ await p.insertText(str(kwargs.prompt));
94
+ await p.press("Enter");
95
+ const timeout = intArg(kwargs.timeout, 120, 600);
96
+ let previous = "";
97
+ let stable = 0;
98
+ const deadline = Date.now() + timeout * 1000;
99
+ while (Date.now() < deadline) {
100
+ await p.wait(1);
101
+ const rows = await readConversation(p);
102
+ const text = str(rows.at(-1)?.text);
103
+ if (text && text === previous)
104
+ stable += 1;
105
+ else
106
+ stable = 0;
107
+ previous = text;
108
+ if (stable >= 2)
109
+ return [{ response: text }];
110
+ }
111
+ return [{ response: previous }];
112
+ },
113
+ });
114
+ cli({
115
+ site: "deepseek",
116
+ name: "new",
117
+ description: "Start a new DeepSeek web conversation",
118
+ domain: "chat.deepseek.com",
119
+ strategy: Strategy.COOKIE,
120
+ browser: true,
121
+ func: async (page) => {
122
+ const p = page;
123
+ await openChat(p);
124
+ const selector = await clickFirst(p, [
125
+ "a[href='/']",
126
+ "button[aria-label*='New']",
127
+ "button[aria-label*='新']",
128
+ "button:has-text('新对话')",
129
+ ]);
130
+ return [{ ok: selector !== null, selector }];
131
+ },
132
+ });
133
+ cli({
134
+ site: "deepseek",
135
+ name: "status",
136
+ description: "Check DeepSeek web page availability and login state",
137
+ domain: "chat.deepseek.com",
138
+ strategy: Strategy.COOKIE,
139
+ browser: true,
140
+ columns: ["title", "url", "logged_in"],
141
+ func: async (page) => {
142
+ const p = page;
143
+ await openChat(p);
144
+ const text = await visibleText(p);
145
+ return [
146
+ {
147
+ title: await p.title(),
148
+ url: await p.url(),
149
+ logged_in: !/登录|sign in|login/i.test(text),
150
+ },
151
+ ];
152
+ },
153
+ });
154
+ cli({
155
+ site: "deepseek",
156
+ name: "read",
157
+ description: "Read the visible DeepSeek web conversation",
158
+ domain: "chat.deepseek.com",
159
+ strategy: Strategy.COOKIE,
160
+ browser: true,
161
+ columns: ["index", "role", "text"],
162
+ func: async (page) => readConversation(page),
163
+ });
164
+ cli({
165
+ site: "deepseek",
166
+ name: "history",
167
+ description: "List DeepSeek conversation history from the sidebar",
168
+ domain: "chat.deepseek.com",
169
+ strategy: Strategy.COOKIE,
170
+ browser: true,
171
+ args: [{ name: "limit", type: "int", default: 20 }],
172
+ columns: ["title", "url"],
173
+ func: async (page, kwargs) => {
174
+ const p = page;
175
+ await openChat(p);
176
+ const limit = intArg(kwargs.limit, 20, 100);
177
+ const rows = (await p.evaluate(`(() => {
178
+ const links = [...document.querySelectorAll('a[href*="/chat/"], a[href*="conversation"]')];
179
+ return links.map((a) => ({
180
+ title: (a.textContent || '').trim(),
181
+ url: new URL(a.getAttribute('href') || '', location.href).href
182
+ })).filter((row) => row.title);
183
+ })()`));
184
+ return rows.slice(0, limit);
185
+ },
186
+ });
187
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../src/adapters/deepseek/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../../src/adapters/doubao/web.ts"],"names":[],"mappings":""}