@agentrhq/webcmd 0.1.2 → 0.2.1

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 (956) hide show
  1. package/README.md +196 -219
  2. package/cli-manifest.json +16205 -34869
  3. package/clis/_atlassian/shared.js +1 -1
  4. package/clis/booking/search.js +4 -4
  5. package/clis/chatgpt/ask.js +2 -2
  6. package/clis/chatgpt/utils.js +41 -42
  7. package/clis/chatgpt/utils.test.js +23 -23
  8. package/clis/chatgpt-app/ax.js +5 -5
  9. package/clis/chatgpt-app/ax.test.js +8 -8
  10. package/clis/chatgpt-app/new.js +2 -2
  11. package/clis/codex/sidebar.js +1 -1
  12. package/clis/codex/sidebar.test.js +12 -12
  13. package/clis/coingecko/top.js +3 -3
  14. package/clis/dblp/dblp.test.js +1 -1
  15. package/clis/discord-app/search.js +1 -1
  16. package/clis/discord-app/utils.js +6 -6
  17. package/clis/facebook/__fixtures__/notifications-page.html +6 -6
  18. package/clis/facebook/add-friend.js +2 -2
  19. package/clis/facebook/feed.js +18 -18
  20. package/clis/facebook/friends.js +4 -4
  21. package/clis/facebook/groups.js +3 -3
  22. package/clis/facebook/join-group.js +2 -2
  23. package/clis/facebook/marketplace-inbox.js +3 -3
  24. package/clis/facebook/marketplace-listings.js +1 -1
  25. package/clis/facebook/notifications.js +14 -15
  26. package/clis/facebook/notifications.test.js +28 -29
  27. package/clis/gemini/ask.test.js +12 -12
  28. package/clis/gemini/deep-research-result.js +2 -2
  29. package/clis/gemini/deep-research-result.test.js +2 -2
  30. package/clis/gemini/deep-research.js +2 -2
  31. package/clis/gemini/deep-research.test.js +1 -1
  32. package/clis/gemini/models.js +11 -11
  33. package/clis/gemini/models.test.js +1 -1
  34. package/clis/gemini/reply-state.test.js +89 -89
  35. package/clis/gemini/utils.js +41 -41
  36. package/clis/gemini/utils.test.js +30 -30
  37. package/clis/geogebra/utils.js +1 -1
  38. package/clis/google-scholar/search.js +3 -3
  39. package/clis/grok/delete.js +1 -1
  40. package/clis/grok/export-all.js +2 -2
  41. package/clis/grok/export.js +2 -2
  42. package/clis/grok/pin.js +3 -3
  43. package/clis/grok/utils.js +12 -12
  44. package/clis/grok/utils.test.js +2 -2
  45. package/clis/indeed/indeed.test.js +3 -3
  46. package/clis/indeed/utils.js +1 -1
  47. package/clis/instagram/post.js +19 -19
  48. package/clis/instagram/post.test.js +2 -2
  49. package/clis/instagram/reel.js +6 -6
  50. package/clis/linkedin/connect.js +3 -3
  51. package/clis/linkedin/people-search.js +4 -4
  52. package/clis/linkedin/profile-experience.js +6 -6
  53. package/clis/linkedin/profile-experience.test.js +10 -10
  54. package/clis/linkedin/profile-read.js +1 -1
  55. package/clis/linkedin/safe-send.js +1 -1
  56. package/clis/linkedin/search.js +1 -1
  57. package/clis/linkedin/shared.js +2 -2
  58. package/clis/linkedin/timeline.js +5 -5
  59. package/clis/manus/manus.test.js +2 -2
  60. package/clis/medium/feed.js +3 -3
  61. package/clis/medium/search.js +3 -3
  62. package/clis/medium/user.js +3 -3
  63. package/clis/notebooklm/auth.js +2 -2
  64. package/clis/notebooklm/note-list.test.js +4 -4
  65. package/clis/notebooklm/notes-get.test.js +8 -8
  66. package/clis/notebooklm/source-fulltext.test.js +11 -11
  67. package/clis/notebooklm/utils.js +28 -28
  68. package/clis/notebooklm/utils.test.js +10 -10
  69. package/clis/pixiv/search.test.js +3 -3
  70. package/clis/qoder/quest.js +2 -2
  71. package/clis/reddit/home.js +2 -2
  72. package/clis/reddit/hot.js +1 -1
  73. package/clis/reddit/read.js +2 -2
  74. package/clis/reddit/read.test.js +1 -1
  75. package/clis/reddit/reply.js +2 -2
  76. package/clis/reddit/whoami.js +2 -2
  77. package/clis/reuters/article-detail.js +1 -1
  78. package/clis/reuters/search.js +1 -1
  79. package/clis/slock/attachment-upload.test.js +1 -1
  80. package/clis/slock/task-convert.js +1 -1
  81. package/clis/substack/feed.js +3 -3
  82. package/clis/substack/publication.js +3 -3
  83. package/clis/substack/search.js +4 -4
  84. package/clis/tiktok/comment.js +2 -2
  85. package/clis/tiktok/follow.js +4 -4
  86. package/clis/tiktok/like.js +1 -1
  87. package/clis/tiktok/save.js +1 -1
  88. package/clis/tiktok/unfollow.js +4 -4
  89. package/clis/tiktok/unlike.js +1 -1
  90. package/clis/tiktok/unsave.js +2 -2
  91. package/clis/tiktok/write-refactor.test.js +5 -5
  92. package/clis/twitter/accept.js +3 -3
  93. package/clis/twitter/delete.js +14 -6
  94. package/clis/twitter/delete.test.js +74 -1
  95. package/clis/twitter/followers.js +1 -1
  96. package/clis/twitter/list-remove-core.js +2 -2
  97. package/clis/twitter/list-tweets.test.js +3 -3
  98. package/clis/twitter/lists.js +6 -6
  99. package/clis/twitter/lists.test.js +2 -2
  100. package/clis/twitter/reply-dm.js +1 -1
  101. package/clis/twitter/shared.test.js +4 -5
  102. package/clis/twitter/timeline.js +3 -1
  103. package/clis/twitter/timeline.test.js +4 -0
  104. package/clis/twitter/trending.js +1 -1
  105. package/clis/twitter/utils.js +1 -1
  106. package/clis/web/read.js +1 -1
  107. package/clis/web/read.test.js +2 -2
  108. package/clis/yahoo-finance/quote.js +1 -1
  109. package/clis/youtube/history.js +4 -4
  110. package/clis/youtube/transcript-group.js +1 -1
  111. package/clis/youtube/transcript-group.test.js +5 -5
  112. package/clis/youtube/transcript.js +5 -5
  113. package/clis/youtube/video.js +4 -4
  114. package/clis/youtube/video.test.js +6 -6
  115. package/dist/src/browser/analyze.test.js +13 -13
  116. package/dist/src/browser/bridge-readiness.d.ts +1 -1
  117. package/dist/src/browser/bridge-readiness.test.js +1 -1
  118. package/dist/src/browser/bridge.d.ts +1 -0
  119. package/dist/src/browser/bridge.js +6 -4
  120. package/dist/src/browser/cdp.d.ts +1 -0
  121. package/dist/src/browser/daemon-client.d.ts +2 -0
  122. package/dist/src/browser/daemon-client.js +108 -51
  123. package/dist/src/browser/daemon-client.test.js +135 -47
  124. package/dist/src/browser/daemon-transport.js +3 -19
  125. package/dist/src/browser/errors.js +11 -0
  126. package/dist/src/browser/page.d.ts +2 -1
  127. package/dist/src/browser/page.js +5 -1
  128. package/dist/src/browser/profile.d.ts +9 -0
  129. package/dist/src/browser/profile.js +18 -7
  130. package/dist/src/browser/profile.test.js +44 -0
  131. package/dist/src/browser/protocol.d.ts +3 -0
  132. package/dist/src/browser/runtime/local-cloak/actions.js +24 -10
  133. package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +1 -0
  134. package/dist/src/browser/runtime/local-cloak/session-manager.js +3 -0
  135. package/dist/src/browser/runtime/local-cloak/session-manager.test.js +87 -0
  136. package/dist/src/browser.test.js +2 -2
  137. package/dist/src/cli-argv-preprocess.d.ts +2 -2
  138. package/dist/src/cli-argv-preprocess.js +2 -2
  139. package/dist/src/cli-argv-preprocess.test.js +35 -35
  140. package/dist/src/cli.js +24 -19
  141. package/dist/src/cli.test.js +59 -59
  142. package/dist/src/commanderAdapter.test.js +19 -19
  143. package/dist/src/commands/daemon.test.js +13 -13
  144. package/dist/src/constants.d.ts +2 -3
  145. package/dist/src/constants.js +3 -10
  146. package/dist/src/convention-audit.js +1 -1
  147. package/dist/src/daemon/server.js +28 -23
  148. package/dist/src/daemon/server.test.js +52 -0
  149. package/dist/src/daemon-utils.d.ts +1 -0
  150. package/dist/src/daemon-utils.js +9 -0
  151. package/dist/src/daemon.js +1 -5
  152. package/dist/src/daemon.test.js +10 -1
  153. package/dist/src/doctor.js +19 -1
  154. package/dist/src/doctor.test.js +38 -4
  155. package/dist/src/download/article-download.d.ts +3 -3
  156. package/dist/src/download/article-download.js +7 -7
  157. package/dist/src/download/article-download.test.js +6 -6
  158. package/dist/src/download/index.js +1 -1
  159. package/dist/src/download/index.test.js +1 -2
  160. package/dist/src/download/media-download.d.ts +1 -1
  161. package/dist/src/download/media-download.js +1 -1
  162. package/dist/src/electron-apps.js +0 -8
  163. package/dist/src/electron-apps.test.js +2 -11
  164. package/dist/src/errors.test.js +9 -9
  165. package/dist/src/execution.js +7 -3
  166. package/dist/src/execution.test.js +12 -0
  167. package/dist/src/external-clis.yaml +0 -37
  168. package/dist/src/external.d.ts +1 -1
  169. package/dist/src/external.js +19 -1
  170. package/dist/src/external.test.js +39 -18
  171. package/dist/src/generate-release-notes-cli.test.js +140 -0
  172. package/dist/src/help.d.ts +3 -3
  173. package/dist/src/help.test.js +8 -8
  174. package/dist/src/main.js +1 -6
  175. package/dist/src/manifest-types.d.ts +1 -1
  176. package/dist/src/node-network.test.js +5 -5
  177. package/dist/src/output.js +1 -1
  178. package/dist/src/pipeline/steps/download.test.js +3 -3
  179. package/dist/src/registry.test.js +2 -2
  180. package/dist/src/release-notes.d.ts +38 -0
  181. package/dist/src/release-notes.js +99 -0
  182. package/dist/src/release-notes.test.d.ts +1 -0
  183. package/dist/src/release-notes.test.js +61 -0
  184. package/dist/src/runtime-identity.test.js +0 -8
  185. package/dist/src/runtime.d.ts +2 -0
  186. package/dist/src/runtime.js +1 -0
  187. package/dist/src/serialization.test.js +7 -7
  188. package/dist/src/snapshotFormatter.js +3 -5
  189. package/dist/src/snapshotFormatter.test.d.ts +1 -1
  190. package/dist/src/snapshotFormatter.test.js +50 -50
  191. package/dist/src/tui.js +1 -1
  192. package/package.json +5 -2
  193. package/scripts/generate-release-notes.ts +234 -0
  194. package/scripts/postinstall.js +1 -1
  195. package/scripts/silent-column-drop-baseline.json +0 -498
  196. package/scripts/typed-error-lint-baseline.json +0 -464
  197. package/skills/webcmd-adapter-author/SKILL.md +216 -213
  198. package/skills/webcmd-adapter-author/references/adapter-template.md +206 -399
  199. package/skills/webcmd-adapter-author/references/api-discovery.md +111 -220
  200. package/skills/webcmd-adapter-author/references/coverage-matrix.md +34 -68
  201. package/skills/webcmd-adapter-author/references/field-conventions.md +84 -167
  202. package/skills/webcmd-adapter-author/references/field-decode-playbook.md +60 -146
  203. package/skills/webcmd-adapter-author/references/jsdom-fixture-pattern.md +111 -178
  204. package/skills/webcmd-adapter-author/references/output-design.md +47 -125
  205. package/skills/webcmd-adapter-author/references/site-memory.md +116 -166
  206. package/skills/webcmd-adapter-author/references/site-recon.md +74 -78
  207. package/skills/webcmd-adapter-author/references/strategy-selection.md +80 -124
  208. package/skills/webcmd-adapter-author/references/success-rate-pitfalls.md +80 -105
  209. package/skills/webcmd-adapter-author/references/typed-errors.md +87 -178
  210. package/skills/webcmd-autofix/SKILL.md +136 -143
  211. package/skills/webcmd-sitemap-author/SKILL.md +58 -67
  212. package/skills/webcmd-sitemap-author/references/sitemap-schema.md +354 -494
  213. package/skills/webcmd-usage/SKILL.md +106 -97
  214. package/clis/12306/auth.js +0 -59
  215. package/clis/12306/me.js +0 -73
  216. package/clis/12306/orders.js +0 -96
  217. package/clis/12306/passengers.js +0 -90
  218. package/clis/12306/price.js +0 -166
  219. package/clis/12306/stations.js +0 -66
  220. package/clis/12306/train.js +0 -91
  221. package/clis/12306/trains.js +0 -166
  222. package/clis/12306/utils.js +0 -272
  223. package/clis/12306/utils.test.js +0 -424
  224. package/clis/1688/assets.js +0 -205
  225. package/clis/1688/assets.test.js +0 -39
  226. package/clis/1688/auth.js +0 -46
  227. package/clis/1688/download.js +0 -77
  228. package/clis/1688/download.test.js +0 -31
  229. package/clis/1688/item.js +0 -188
  230. package/clis/1688/item.test.js +0 -67
  231. package/clis/1688/search.js +0 -310
  232. package/clis/1688/search.test.js +0 -75
  233. package/clis/1688/shared.js +0 -557
  234. package/clis/1688/shared.test.js +0 -57
  235. package/clis/1688/store.js +0 -227
  236. package/clis/1688/store.test.js +0 -62
  237. package/clis/1point3acres/auth.js +0 -52
  238. package/clis/1point3acres/digest.js +0 -35
  239. package/clis/1point3acres/forum.js +0 -51
  240. package/clis/1point3acres/forums.js +0 -44
  241. package/clis/1point3acres/hot.js +0 -35
  242. package/clis/1point3acres/latest.js +0 -35
  243. package/clis/1point3acres/notifications.js +0 -64
  244. package/clis/1point3acres/search.js +0 -71
  245. package/clis/1point3acres/thread.js +0 -117
  246. package/clis/1point3acres/user.js +0 -77
  247. package/clis/1point3acres/utils.js +0 -247
  248. package/clis/36kr/article.js +0 -66
  249. package/clis/36kr/article.test.js +0 -46
  250. package/clis/36kr/hot.js +0 -87
  251. package/clis/36kr/hot.test.js +0 -15
  252. package/clis/36kr/news.js +0 -52
  253. package/clis/36kr/news.test.js +0 -85
  254. package/clis/36kr/search.js +0 -79
  255. package/clis/51job/company.js +0 -126
  256. package/clis/51job/detail.js +0 -109
  257. package/clis/51job/hot.js +0 -56
  258. package/clis/51job/search.js +0 -80
  259. package/clis/51job/utils.js +0 -302
  260. package/clis/51job/utils.test.js +0 -69
  261. package/clis/aibase/news.js +0 -110
  262. package/clis/aibase/news.test.js +0 -59
  263. package/clis/autohome/__fixtures__/catalog.html +0 -11
  264. package/clis/autohome/__fixtures__/koubei.json +0 -116
  265. package/clis/autohome/autohome.test.js +0 -115
  266. package/clis/autohome/brand.js +0 -108
  267. package/clis/autohome/score.js +0 -103
  268. package/clis/autohome/utils.js +0 -157
  269. package/clis/baidu-scholar/search.js +0 -87
  270. package/clis/baidu-scholar/search.test.js +0 -23
  271. package/clis/bilibili/auth.js +0 -36
  272. package/clis/bilibili/comment.js +0 -107
  273. package/clis/bilibili/comment.test.js +0 -153
  274. package/clis/bilibili/comments.js +0 -136
  275. package/clis/bilibili/comments.test.js +0 -142
  276. package/clis/bilibili/download.js +0 -178
  277. package/clis/bilibili/download.test.js +0 -173
  278. package/clis/bilibili/dynamic.js +0 -34
  279. package/clis/bilibili/dynamic.test.js +0 -68
  280. package/clis/bilibili/favorite.js +0 -47
  281. package/clis/bilibili/feed.js +0 -220
  282. package/clis/bilibili/follow.js +0 -140
  283. package/clis/bilibili/follow.test.js +0 -203
  284. package/clis/bilibili/following.js +0 -44
  285. package/clis/bilibili/history.js +0 -45
  286. package/clis/bilibili/hot.js +0 -40
  287. package/clis/bilibili/hot.test.js +0 -17
  288. package/clis/bilibili/me.js +0 -13
  289. package/clis/bilibili/ranking.js +0 -25
  290. package/clis/bilibili/search.js +0 -24
  291. package/clis/bilibili/subtitle.js +0 -141
  292. package/clis/bilibili/subtitle.test.js +0 -240
  293. package/clis/bilibili/summary.js +0 -167
  294. package/clis/bilibili/summary.test.js +0 -210
  295. package/clis/bilibili/unfollow.js +0 -121
  296. package/clis/bilibili/user-videos.js +0 -39
  297. package/clis/bilibili/utils.js +0 -273
  298. package/clis/bilibili/utils.test.js +0 -97
  299. package/clis/bilibili/video.js +0 -155
  300. package/clis/bilibili/video.test.js +0 -308
  301. package/clis/boss/auth.js +0 -47
  302. package/clis/boss/batchgreet.js +0 -61
  303. package/clis/boss/chatlist.js +0 -116
  304. package/clis/boss/chatlist.test.js +0 -211
  305. package/clis/boss/chatmsg.js +0 -117
  306. package/clis/boss/chatmsg.test.js +0 -230
  307. package/clis/boss/detail.js +0 -63
  308. package/clis/boss/exchange.js +0 -46
  309. package/clis/boss/greet.js +0 -49
  310. package/clis/boss/invite.js +0 -64
  311. package/clis/boss/joblist.js +0 -31
  312. package/clis/boss/mark.js +0 -70
  313. package/clis/boss/recommend.js +0 -45
  314. package/clis/boss/resume.js +0 -150
  315. package/clis/boss/search.js +0 -197
  316. package/clis/boss/search.test.js +0 -78
  317. package/clis/boss/send.js +0 -44
  318. package/clis/boss/stats.js +0 -66
  319. package/clis/boss/utils.js +0 -468
  320. package/clis/boss/utils.test.js +0 -34
  321. package/clis/chaoxing/assignments.js +0 -76
  322. package/clis/chaoxing/auth.js +0 -54
  323. package/clis/chaoxing/exams.js +0 -75
  324. package/clis/chaoxing/utils.js +0 -223
  325. package/clis/chaoxing/utils.test.js +0 -45
  326. package/clis/cnki/search.js +0 -61
  327. package/clis/cnki/search.test.js +0 -18
  328. package/clis/ctrip/auth.js +0 -50
  329. package/clis/ctrip/ctrip.test.js +0 -719
  330. package/clis/ctrip/flight.js +0 -136
  331. package/clis/ctrip/hotel-search.js +0 -132
  332. package/clis/ctrip/hotel-suggest.js +0 -45
  333. package/clis/ctrip/search.js +0 -41
  334. package/clis/ctrip/utils.js +0 -473
  335. package/clis/deepseek/ask.js +0 -158
  336. package/clis/deepseek/ask.test.js +0 -399
  337. package/clis/deepseek/auth.js +0 -54
  338. package/clis/deepseek/detail.js +0 -46
  339. package/clis/deepseek/detail.test.js +0 -81
  340. package/clis/deepseek/history.js +0 -27
  341. package/clis/deepseek/new.js +0 -33
  342. package/clis/deepseek/read.js +0 -25
  343. package/clis/deepseek/send.js +0 -140
  344. package/clis/deepseek/send.test.js +0 -107
  345. package/clis/deepseek/status.js +0 -26
  346. package/clis/deepseek/utils.js +0 -487
  347. package/clis/deepseek/utils.test.js +0 -370
  348. package/clis/dianping/__fixtures__/search.html +0 -168
  349. package/clis/dianping/__fixtures__/shop.html +0 -6
  350. package/clis/dianping/auth.js +0 -49
  351. package/clis/dianping/cityResolver.js +0 -185
  352. package/clis/dianping/dianping.test.js +0 -578
  353. package/clis/dianping/search.js +0 -157
  354. package/clis/dianping/shop.js +0 -173
  355. package/clis/dianping/utils.js +0 -157
  356. package/clis/dongchedi/__fixtures__/search.json +0 -60
  357. package/clis/dongchedi/__fixtures__/series-detail.json +0 -911
  358. package/clis/dongchedi/__fixtures__/series-score.json +0 -1396
  359. package/clis/dongchedi/dongchedi.test.js +0 -191
  360. package/clis/dongchedi/koubei.js +0 -85
  361. package/clis/dongchedi/models.js +0 -91
  362. package/clis/dongchedi/score.js +0 -83
  363. package/clis/dongchedi/search.js +0 -83
  364. package/clis/dongchedi/series.js +0 -87
  365. package/clis/dongchedi/specs.js +0 -115
  366. package/clis/dongchedi/utils.js +0 -180
  367. package/clis/douban/auth.js +0 -50
  368. package/clis/douban/book-hot.js +0 -15
  369. package/clis/douban/download.js +0 -68
  370. package/clis/douban/download.test.js +0 -170
  371. package/clis/douban/marks.js +0 -116
  372. package/clis/douban/movie-hot.js +0 -15
  373. package/clis/douban/movie-hot.test.js +0 -14
  374. package/clis/douban/photos.js +0 -35
  375. package/clis/douban/reviews.js +0 -107
  376. package/clis/douban/search.js +0 -18
  377. package/clis/douban/search.test.js +0 -11
  378. package/clis/douban/subject.js +0 -46
  379. package/clis/douban/subject.test.js +0 -11
  380. package/clis/douban/top250.js +0 -68
  381. package/clis/douban/utils.js +0 -657
  382. package/clis/douban/utils.test.js +0 -488
  383. package/clis/doubao/ask.js +0 -40
  384. package/clis/doubao/auth.js +0 -66
  385. package/clis/doubao/detail.js +0 -35
  386. package/clis/doubao/detail.test.js +0 -42
  387. package/clis/doubao/history.js +0 -30
  388. package/clis/doubao/history.test.js +0 -37
  389. package/clis/doubao/meeting-summary.js +0 -41
  390. package/clis/doubao/meeting-transcript.js +0 -38
  391. package/clis/doubao/new.js +0 -22
  392. package/clis/doubao/read.js +0 -21
  393. package/clis/doubao/send.js +0 -24
  394. package/clis/doubao/status.js +0 -26
  395. package/clis/doubao/utils.js +0 -1156
  396. package/clis/doubao/utils.test.js +0 -396
  397. package/clis/doubao-app/ask.js +0 -54
  398. package/clis/doubao-app/dump.js +0 -25
  399. package/clis/doubao-app/new.js +0 -21
  400. package/clis/doubao-app/read.js +0 -19
  401. package/clis/doubao-app/screenshot.js +0 -19
  402. package/clis/doubao-app/send.js +0 -28
  403. package/clis/doubao-app/status.js +0 -17
  404. package/clis/doubao-app/utils.js +0 -110
  405. package/clis/douyin/_shared/browser-fetch.js +0 -66
  406. package/clis/douyin/_shared/browser-fetch.test.js +0 -64
  407. package/clis/douyin/_shared/creation-id.js +0 -5
  408. package/clis/douyin/_shared/creation-id.test.js +0 -22
  409. package/clis/douyin/_shared/evaluate-result.js +0 -16
  410. package/clis/douyin/_shared/imagex-upload.js +0 -53
  411. package/clis/douyin/_shared/imagex-upload.test.js +0 -87
  412. package/clis/douyin/_shared/public-api.js +0 -29
  413. package/clis/douyin/_shared/sts2.js +0 -21
  414. package/clis/douyin/_shared/sts2.test.js +0 -27
  415. package/clis/douyin/_shared/text-extra.js +0 -15
  416. package/clis/douyin/_shared/text-extra.test.js +0 -37
  417. package/clis/douyin/_shared/timing.js +0 -22
  418. package/clis/douyin/_shared/timing.test.js +0 -28
  419. package/clis/douyin/_shared/tos-upload-short-read.test.js +0 -83
  420. package/clis/douyin/_shared/tos-upload.js +0 -331
  421. package/clis/douyin/_shared/tos-upload.test.js +0 -229
  422. package/clis/douyin/_shared/transcode.js +0 -45
  423. package/clis/douyin/_shared/transcode.test.js +0 -91
  424. package/clis/douyin/_shared/vod-upload.js +0 -212
  425. package/clis/douyin/_shared/vod-upload.test.js +0 -38
  426. package/clis/douyin/activities.js +0 -23
  427. package/clis/douyin/activities.test.js +0 -55
  428. package/clis/douyin/auth.js +0 -39
  429. package/clis/douyin/collections.js +0 -23
  430. package/clis/douyin/collections.test.js +0 -45
  431. package/clis/douyin/delete.js +0 -152
  432. package/clis/douyin/delete.test.js +0 -100
  433. package/clis/douyin/draft.js +0 -355
  434. package/clis/douyin/draft.test.js +0 -335
  435. package/clis/douyin/drafts.js +0 -24
  436. package/clis/douyin/drafts.test.js +0 -11
  437. package/clis/douyin/hashtag.js +0 -114
  438. package/clis/douyin/hashtag.test.js +0 -171
  439. package/clis/douyin/location.js +0 -25
  440. package/clis/douyin/location.test.js +0 -23
  441. package/clis/douyin/profile.js +0 -29
  442. package/clis/douyin/profile.test.js +0 -46
  443. package/clis/douyin/publish-upload-id.test.js +0 -206
  444. package/clis/douyin/publish.js +0 -341
  445. package/clis/douyin/publish.test.js +0 -38
  446. package/clis/douyin/search.js +0 -308
  447. package/clis/douyin/search.test.js +0 -307
  448. package/clis/douyin/stats.js +0 -28
  449. package/clis/douyin/stats.test.js +0 -22
  450. package/clis/douyin/update.js +0 -32
  451. package/clis/douyin/update.test.js +0 -11
  452. package/clis/douyin/user-videos.js +0 -82
  453. package/clis/douyin/user-videos.test.js +0 -151
  454. package/clis/douyin/videos.js +0 -52
  455. package/clis/douyin/videos.test.js +0 -54
  456. package/clis/eastmoney/_secid.js +0 -78
  457. package/clis/eastmoney/announcement.js +0 -53
  458. package/clis/eastmoney/convertible.js +0 -74
  459. package/clis/eastmoney/etf.js +0 -66
  460. package/clis/eastmoney/holders.js +0 -79
  461. package/clis/eastmoney/hot-rank.js +0 -51
  462. package/clis/eastmoney/hot-rank.test.js +0 -59
  463. package/clis/eastmoney/index-board.js +0 -97
  464. package/clis/eastmoney/kline.js +0 -88
  465. package/clis/eastmoney/kuaixun.js +0 -55
  466. package/clis/eastmoney/longhu.js +0 -68
  467. package/clis/eastmoney/money-flow.js +0 -79
  468. package/clis/eastmoney/northbound.js +0 -58
  469. package/clis/eastmoney/quote.js +0 -108
  470. package/clis/eastmoney/rank.js +0 -95
  471. package/clis/eastmoney/sectors.js +0 -77
  472. package/clis/flomo/auth.js +0 -55
  473. package/clis/flomo/memos.js +0 -228
  474. package/clis/flomo/memos.test.js +0 -144
  475. package/clis/gitee/auth.js +0 -41
  476. package/clis/gitee/index.js +0 -3
  477. package/clis/gitee/search.js +0 -137
  478. package/clis/gitee/search.test.js +0 -65
  479. package/clis/gitee/trending.js +0 -568
  480. package/clis/gitee/user.js +0 -200
  481. package/clis/gitee/user.test.js +0 -63
  482. package/clis/gov-law/commands.test.js +0 -39
  483. package/clis/gov-law/recent.js +0 -22
  484. package/clis/gov-law/search.js +0 -41
  485. package/clis/gov-law/shared.js +0 -51
  486. package/clis/gov-policy/__fixtures__/recent.html +0 -16
  487. package/clis/gov-policy/__fixtures__/search.html +0 -41
  488. package/clis/gov-policy/gov-policy.test.js +0 -224
  489. package/clis/gov-policy/recent.js +0 -90
  490. package/clis/gov-policy/search.js +0 -91
  491. package/clis/gov-policy/utils.js +0 -54
  492. package/clis/guazi/__fixtures__/detail.html +0 -7
  493. package/clis/guazi/__fixtures__/list.html +0 -5
  494. package/clis/guazi/browse.js +0 -95
  495. package/clis/guazi/car.js +0 -110
  496. package/clis/guazi/guazi.test.js +0 -126
  497. package/clis/guazi/utils.js +0 -133
  498. package/clis/huodongxing/events.js +0 -322
  499. package/clis/huodongxing/events.test.js +0 -296
  500. package/clis/hupu/__fixtures__/hot-home.html +0 -64
  501. package/clis/hupu/auth.js +0 -47
  502. package/clis/hupu/detail.js +0 -72
  503. package/clis/hupu/hot.js +0 -163
  504. package/clis/hupu/hot.test.js +0 -224
  505. package/clis/hupu/like.js +0 -76
  506. package/clis/hupu/mentions.js +0 -160
  507. package/clis/hupu/reply.js +0 -72
  508. package/clis/hupu/search.js +0 -60
  509. package/clis/hupu/unlike.js +0 -76
  510. package/clis/hupu/utils.js +0 -319
  511. package/clis/jd/add-cart.js +0 -72
  512. package/clis/jd/auth.js +0 -46
  513. package/clis/jd/cart.js +0 -80
  514. package/clis/jd/commands.test.js +0 -41
  515. package/clis/jd/detail.js +0 -63
  516. package/clis/jd/item.js +0 -730
  517. package/clis/jd/item.test.js +0 -354
  518. package/clis/jd/item.test.ts +0 -517
  519. package/clis/jd/reviews.js +0 -55
  520. package/clis/jd/search.js +0 -66
  521. package/clis/jianyu/auth.js +0 -62
  522. package/clis/jianyu/detail.js +0 -21
  523. package/clis/jianyu/search.js +0 -634
  524. package/clis/jianyu/search.test.js +0 -153
  525. package/clis/jianyu/shared/china-bid-search.js +0 -165
  526. package/clis/jianyu/shared/procurement-contract.js +0 -324
  527. package/clis/jianyu/shared/procurement-contract.test.js +0 -72
  528. package/clis/jianyu/shared/procurement-detail.js +0 -107
  529. package/clis/jianyu/shared/procurement-detail.test.js +0 -84
  530. package/clis/jike/auth.js +0 -48
  531. package/clis/jike/comment.js +0 -107
  532. package/clis/jike/create.js +0 -106
  533. package/clis/jike/feed.js +0 -68
  534. package/clis/jike/like.js +0 -61
  535. package/clis/jike/notifications.js +0 -169
  536. package/clis/jike/post.js +0 -72
  537. package/clis/jike/read.test.js +0 -86
  538. package/clis/jike/repost.js +0 -103
  539. package/clis/jike/search.js +0 -68
  540. package/clis/jike/topic.js +0 -65
  541. package/clis/jike/user.js +0 -65
  542. package/clis/jike/utils.js +0 -25
  543. package/clis/jimeng/auth.js +0 -46
  544. package/clis/jimeng/generate.js +0 -84
  545. package/clis/jimeng/history.js +0 -48
  546. package/clis/jimeng/new.js +0 -44
  547. package/clis/jimeng/workspaces.js +0 -42
  548. package/clis/juejin/hot.js +0 -37
  549. package/clis/juejin/juejin.test.js +0 -241
  550. package/clis/juejin/recommend.js +0 -61
  551. package/clis/juejin/utils.js +0 -199
  552. package/clis/ke/auth.js +0 -46
  553. package/clis/ke/chengjiao.js +0 -78
  554. package/clis/ke/ershoufang.js +0 -101
  555. package/clis/ke/utils.js +0 -104
  556. package/clis/ke/xiaoqu.js +0 -78
  557. package/clis/ke/zufang.js +0 -95
  558. package/clis/kimi/_utils.js +0 -110
  559. package/clis/kimi/audit-extras.js +0 -268
  560. package/clis/kimi/auth.js +0 -57
  561. package/clis/kimi/chat.js +0 -470
  562. package/clis/kimi/kimi.test.js +0 -187
  563. package/clis/kimi/storage.js +0 -169
  564. package/clis/kimi/ui.js +0 -314
  565. package/clis/kimi/usage.js +0 -144
  566. package/clis/linux-do/auth.js +0 -55
  567. package/clis/linux-do/categories.js +0 -50
  568. package/clis/linux-do/feed.js +0 -395
  569. package/clis/linux-do/feed.test.js +0 -153
  570. package/clis/linux-do/search.js +0 -29
  571. package/clis/linux-do/tags.js +0 -28
  572. package/clis/linux-do/topic-content.js +0 -155
  573. package/clis/linux-do/topic-content.test.js +0 -59
  574. package/clis/linux-do/topic.js +0 -53
  575. package/clis/linux-do/user-posts.js +0 -57
  576. package/clis/linux-do/user-topics.js +0 -37
  577. package/clis/maimai/auth.js +0 -47
  578. package/clis/maimai/search-talents.js +0 -192
  579. package/clis/maimai/search-talents.test.js +0 -29
  580. package/clis/mubu/doc.js +0 -41
  581. package/clis/mubu/docs.js +0 -44
  582. package/clis/mubu/notes.js +0 -245
  583. package/clis/mubu/recent.js +0 -28
  584. package/clis/mubu/search.js +0 -63
  585. package/clis/mubu/utils.js +0 -304
  586. package/clis/nowcoder/auth.js +0 -65
  587. package/clis/nowcoder/companies.js +0 -24
  588. package/clis/nowcoder/creators.js +0 -28
  589. package/clis/nowcoder/detail.js +0 -62
  590. package/clis/nowcoder/experience.js +0 -37
  591. package/clis/nowcoder/hot.js +0 -25
  592. package/clis/nowcoder/jobs.js +0 -22
  593. package/clis/nowcoder/notifications.js +0 -30
  594. package/clis/nowcoder/papers.js +0 -41
  595. package/clis/nowcoder/practice.js +0 -38
  596. package/clis/nowcoder/recommend.js +0 -31
  597. package/clis/nowcoder/referral.js +0 -40
  598. package/clis/nowcoder/salary.js +0 -41
  599. package/clis/nowcoder/search.js +0 -50
  600. package/clis/nowcoder/suggest.js +0 -34
  601. package/clis/nowcoder/topics.js +0 -28
  602. package/clis/nowcoder/trending.js +0 -26
  603. package/clis/ones/common.js +0 -144
  604. package/clis/ones/enrich-tasks.js +0 -37
  605. package/clis/ones/login.js +0 -81
  606. package/clis/ones/logout.js +0 -18
  607. package/clis/ones/me.js +0 -31
  608. package/clis/ones/my-tasks.js +0 -121
  609. package/clis/ones/resolve-labels.js +0 -64
  610. package/clis/ones/task-helpers.js +0 -212
  611. package/clis/ones/task-helpers.test.js +0 -12
  612. package/clis/ones/task.js +0 -67
  613. package/clis/ones/tasks.js +0 -80
  614. package/clis/ones/token-info.js +0 -43
  615. package/clis/ones/worklog.js +0 -268
  616. package/clis/ones/worklog.test.js +0 -20
  617. package/clis/powerchina/auth.js +0 -52
  618. package/clis/powerchina/search.js +0 -251
  619. package/clis/powerchina/search.test.js +0 -93
  620. package/clis/quark/auth.js +0 -47
  621. package/clis/quark/ls.js +0 -64
  622. package/clis/quark/mkdir.js +0 -37
  623. package/clis/quark/mv.js +0 -54
  624. package/clis/quark/rename.js +0 -27
  625. package/clis/quark/rm.js +0 -25
  626. package/clis/quark/save.js +0 -81
  627. package/clis/quark/share-tree.js +0 -46
  628. package/clis/quark/utils.js +0 -146
  629. package/clis/quark/utils.test.js +0 -58
  630. package/clis/qwen/ask.js +0 -104
  631. package/clis/qwen/ask.test.js +0 -36
  632. package/clis/qwen/auth.js +0 -56
  633. package/clis/qwen/detail.js +0 -62
  634. package/clis/qwen/history.js +0 -61
  635. package/clis/qwen/image.js +0 -179
  636. package/clis/qwen/new.js +0 -23
  637. package/clis/qwen/read.js +0 -41
  638. package/clis/qwen/send.js +0 -55
  639. package/clis/qwen/status.js +0 -37
  640. package/clis/qwen/utils.js +0 -461
  641. package/clis/qwen/utils.test.js +0 -128
  642. package/clis/rednote/auth.js +0 -52
  643. package/clis/rednote/comments.js +0 -85
  644. package/clis/rednote/download.js +0 -59
  645. package/clis/rednote/feed.js +0 -27
  646. package/clis/rednote/navigation.test.js +0 -26
  647. package/clis/rednote/note.js +0 -68
  648. package/clis/rednote/notifications.js +0 -139
  649. package/clis/rednote/rednote.test.js +0 -240
  650. package/clis/rednote/search.js +0 -107
  651. package/clis/rednote/user.js +0 -55
  652. package/clis/sinablog/article.js +0 -15
  653. package/clis/sinablog/hot.js +0 -15
  654. package/clis/sinablog/search.js +0 -52
  655. package/clis/sinablog/user.js +0 -16
  656. package/clis/sinablog/utils.js +0 -186
  657. package/clis/sinafinance/news.js +0 -62
  658. package/clis/sinafinance/rolling-news.js +0 -41
  659. package/clis/sinafinance/stock-rank.js +0 -66
  660. package/clis/sinafinance/stock.js +0 -121
  661. package/clis/sinafinance/stock.test.js +0 -59
  662. package/clis/smzdm/search.js +0 -149
  663. package/clis/smzdm/search.test.js +0 -114
  664. package/clis/taobao/add-cart.js +0 -150
  665. package/clis/taobao/auth.js +0 -58
  666. package/clis/taobao/cart.js +0 -96
  667. package/clis/taobao/commands.test.js +0 -41
  668. package/clis/taobao/detail.js +0 -71
  669. package/clis/taobao/reviews.js +0 -77
  670. package/clis/taobao/search.js +0 -97
  671. package/clis/tdx/hot-rank.js +0 -48
  672. package/clis/tdx/hot-rank.test.js +0 -59
  673. package/clis/ths/hot-rank.js +0 -50
  674. package/clis/ths/hot-rank.test.js +0 -64
  675. package/clis/tieba/commands.test.js +0 -79
  676. package/clis/tieba/hot.js +0 -48
  677. package/clis/tieba/posts.js +0 -86
  678. package/clis/tieba/read.js +0 -141
  679. package/clis/tieba/search.js +0 -109
  680. package/clis/tieba/utils.js +0 -240
  681. package/clis/tieba/utils.test.js +0 -290
  682. package/clis/toutiao/articles.js +0 -55
  683. package/clis/toutiao/auth.js +0 -70
  684. package/clis/toutiao/hot.js +0 -63
  685. package/clis/toutiao/toutiao.test.js +0 -378
  686. package/clis/toutiao/utils.js +0 -161
  687. package/clis/trae-cn/activity.js +0 -22
  688. package/clis/trae-cn/approve.js +0 -52
  689. package/clis/trae-cn/ask.js +0 -99
  690. package/clis/trae-cn/dump.js +0 -5
  691. package/clis/trae-cn/export.js +0 -40
  692. package/clis/trae-cn/model.js +0 -22
  693. package/clis/trae-cn/new.js +0 -63
  694. package/clis/trae-cn/read.js +0 -23
  695. package/clis/trae-cn/screenshot.js +0 -5
  696. package/clis/trae-cn/select-model.js +0 -25
  697. package/clis/trae-cn/send.js +0 -23
  698. package/clis/trae-cn/setup.js +0 -75
  699. package/clis/trae-cn/status.js +0 -27
  700. package/clis/trae-cn/targets.js +0 -96
  701. package/clis/trae-cn/trae-cn.test.js +0 -412
  702. package/clis/trae-cn/utils.js +0 -750
  703. package/clis/trae-cn/watch.js +0 -119
  704. package/clis/uisdc/news.js +0 -105
  705. package/clis/uisdc/news.test.js +0 -66
  706. package/clis/v2ex/auth.js +0 -44
  707. package/clis/v2ex/daily.js +0 -99
  708. package/clis/v2ex/hot.js +0 -26
  709. package/clis/v2ex/latest.js +0 -26
  710. package/clis/v2ex/me.js +0 -100
  711. package/clis/v2ex/member.js +0 -28
  712. package/clis/v2ex/node.js +0 -39
  713. package/clis/v2ex/nodes.js +0 -26
  714. package/clis/v2ex/notifications.js +0 -72
  715. package/clis/v2ex/replies.js +0 -27
  716. package/clis/v2ex/topic.js +0 -31
  717. package/clis/v2ex/user.js +0 -34
  718. package/clis/wanfang/search.js +0 -66
  719. package/clis/wanfang/search.test.js +0 -23
  720. package/clis/wechat-channels/auth.js +0 -62
  721. package/clis/wechat-channels/publish.js +0 -732
  722. package/clis/wechat-channels/publish.test.js +0 -144
  723. package/clis/weibo/auth.js +0 -53
  724. package/clis/weibo/comments.js +0 -53
  725. package/clis/weibo/delete.js +0 -172
  726. package/clis/weibo/delete.test.js +0 -94
  727. package/clis/weibo/envelope.test.js +0 -85
  728. package/clis/weibo/favorites.js +0 -170
  729. package/clis/weibo/favorites.test.js +0 -114
  730. package/clis/weibo/feed.js +0 -69
  731. package/clis/weibo/hot.js +0 -39
  732. package/clis/weibo/me.js +0 -75
  733. package/clis/weibo/post.js +0 -75
  734. package/clis/weibo/publish.js +0 -306
  735. package/clis/weibo/publish.test.js +0 -192
  736. package/clis/weibo/search.js +0 -80
  737. package/clis/weibo/user-posts.js +0 -234
  738. package/clis/weibo/user-posts.test.js +0 -92
  739. package/clis/weibo/user.js +0 -63
  740. package/clis/weibo/utils.js +0 -59
  741. package/clis/weibo/utils.test.js +0 -36
  742. package/clis/weixin/create-draft.js +0 -226
  743. package/clis/weixin/download.js +0 -371
  744. package/clis/weixin/download.test.js +0 -106
  745. package/clis/weixin/drafts.js +0 -66
  746. package/clis/weixin/drafts.test.js +0 -69
  747. package/clis/weixin/search.js +0 -157
  748. package/clis/weixin/search.test.js +0 -227
  749. package/clis/weread/ai-outline.js +0 -171
  750. package/clis/weread/ai-outline.test.js +0 -83
  751. package/clis/weread/auth.js +0 -59
  752. package/clis/weread/book-search.js +0 -438
  753. package/clis/weread/book-search.test.js +0 -242
  754. package/clis/weread/book.js +0 -233
  755. package/clis/weread/commands.test.js +0 -398
  756. package/clis/weread/highlights.js +0 -24
  757. package/clis/weread/notebooks.js +0 -22
  758. package/clis/weread/notes.js +0 -30
  759. package/clis/weread/private-api-regression.test.js +0 -369
  760. package/clis/weread/ranking.js +0 -29
  761. package/clis/weread/search-regression.test.js +0 -494
  762. package/clis/weread/search.js +0 -186
  763. package/clis/weread/shelf.js +0 -66
  764. package/clis/weread/utils.js +0 -321
  765. package/clis/weread/utils.test.js +0 -128
  766. package/clis/weread-official/book.js +0 -135
  767. package/clis/weread-official/commands.test.js +0 -385
  768. package/clis/weread-official/discover.js +0 -107
  769. package/clis/weread-official/list-apis.js +0 -95
  770. package/clis/weread-official/notes.js +0 -171
  771. package/clis/weread-official/readdata.js +0 -158
  772. package/clis/weread-official/review.js +0 -93
  773. package/clis/weread-official/search.js +0 -106
  774. package/clis/weread-official/shelf.js +0 -97
  775. package/clis/weread-official/utils.js +0 -293
  776. package/clis/weread-official/utils.test.js +0 -242
  777. package/clis/xianyu/auth.js +0 -68
  778. package/clis/xianyu/chat.js +0 -74
  779. package/clis/xianyu/chat.test.js +0 -84
  780. package/clis/xianyu/im.js +0 -322
  781. package/clis/xianyu/im.test.js +0 -253
  782. package/clis/xianyu/inbox.js +0 -96
  783. package/clis/xianyu/item.js +0 -153
  784. package/clis/xianyu/item.test.js +0 -56
  785. package/clis/xianyu/messages.js +0 -91
  786. package/clis/xianyu/publish.js +0 -485
  787. package/clis/xianyu/publish.test.js +0 -220
  788. package/clis/xianyu/reply.js +0 -82
  789. package/clis/xianyu/search.js +0 -262
  790. package/clis/xianyu/search.test.js +0 -104
  791. package/clis/xianyu/utils.js +0 -8
  792. package/clis/xiaoe/auth.js +0 -55
  793. package/clis/xiaoe/catalog.js +0 -227
  794. package/clis/xiaoe/content.js +0 -175
  795. package/clis/xiaoe/courses.js +0 -127
  796. package/clis/xiaoe/detail.js +0 -36
  797. package/clis/xiaoe/play-url.js +0 -121
  798. package/clis/xiaoe/xiaoe.test.js +0 -486
  799. package/clis/xiaohongshu/ask.js +0 -426
  800. package/clis/xiaohongshu/ask.test.js +0 -271
  801. package/clis/xiaohongshu/auth.js +0 -53
  802. package/clis/xiaohongshu/collection-helpers.js +0 -283
  803. package/clis/xiaohongshu/collection-helpers.test.js +0 -125
  804. package/clis/xiaohongshu/comments.js +0 -228
  805. package/clis/xiaohongshu/comments.test.js +0 -320
  806. package/clis/xiaohongshu/creator-note-detail.js +0 -482
  807. package/clis/xiaohongshu/creator-note-detail.test.js +0 -451
  808. package/clis/xiaohongshu/creator-notes-summary.js +0 -98
  809. package/clis/xiaohongshu/creator-notes-summary.test.js +0 -94
  810. package/clis/xiaohongshu/creator-notes.js +0 -479
  811. package/clis/xiaohongshu/creator-notes.test.js +0 -281
  812. package/clis/xiaohongshu/creator-profile.js +0 -55
  813. package/clis/xiaohongshu/creator-stats.js +0 -76
  814. package/clis/xiaohongshu/creator-stats.test.js +0 -24
  815. package/clis/xiaohongshu/delete-note.js +0 -260
  816. package/clis/xiaohongshu/delete-note.test.js +0 -172
  817. package/clis/xiaohongshu/download.js +0 -249
  818. package/clis/xiaohongshu/download.test.js +0 -339
  819. package/clis/xiaohongshu/draft-clear.js +0 -91
  820. package/clis/xiaohongshu/draft-delete.js +0 -103
  821. package/clis/xiaohongshu/draft-open.js +0 -43
  822. package/clis/xiaohongshu/draft-utils.js +0 -142
  823. package/clis/xiaohongshu/drafts.js +0 -28
  824. package/clis/xiaohongshu/drafts.test.js +0 -172
  825. package/clis/xiaohongshu/feed.js +0 -163
  826. package/clis/xiaohongshu/feed.test.js +0 -126
  827. package/clis/xiaohongshu/follow.js +0 -226
  828. package/clis/xiaohongshu/follow.test.js +0 -211
  829. package/clis/xiaohongshu/liked.js +0 -29
  830. package/clis/xiaohongshu/liked.test.js +0 -82
  831. package/clis/xiaohongshu/navigation.test.js +0 -38
  832. package/clis/xiaohongshu/note-helpers.js +0 -69
  833. package/clis/xiaohongshu/note.js +0 -104
  834. package/clis/xiaohongshu/note.test.js +0 -249
  835. package/clis/xiaohongshu/notifications.js +0 -46
  836. package/clis/xiaohongshu/publish.js +0 -1423
  837. package/clis/xiaohongshu/publish.test.js +0 -1141
  838. package/clis/xiaohongshu/saved.js +0 -29
  839. package/clis/xiaohongshu/saved.test.js +0 -143
  840. package/clis/xiaohongshu/search.js +0 -330
  841. package/clis/xiaohongshu/search.test.js +0 -325
  842. package/clis/xiaohongshu/unfollow.js +0 -285
  843. package/clis/xiaohongshu/user-helpers.js +0 -78
  844. package/clis/xiaohongshu/user-helpers.test.js +0 -160
  845. package/clis/xiaohongshu/user.js +0 -140
  846. package/clis/xiaohongshu/user.test.js +0 -141
  847. package/clis/xiaoyuzhou/auth.js +0 -303
  848. package/clis/xiaoyuzhou/auth.test.js +0 -124
  849. package/clis/xiaoyuzhou/download.js +0 -54
  850. package/clis/xiaoyuzhou/download.test.js +0 -135
  851. package/clis/xiaoyuzhou/episode.js +0 -34
  852. package/clis/xiaoyuzhou/podcast-episodes.js +0 -41
  853. package/clis/xiaoyuzhou/podcast-episodes.test.js +0 -78
  854. package/clis/xiaoyuzhou/podcast.js +0 -33
  855. package/clis/xiaoyuzhou/transcript.js +0 -77
  856. package/clis/xiaoyuzhou/transcript.test.js +0 -195
  857. package/clis/xiaoyuzhou/utils.js +0 -15
  858. package/clis/xiaoyuzhou/utils.test.js +0 -39
  859. package/clis/xueqiu/auth.js +0 -63
  860. package/clis/xueqiu/comments.js +0 -355
  861. package/clis/xueqiu/comments.test.js +0 -696
  862. package/clis/xueqiu/danjuan-utils.js +0 -126
  863. package/clis/xueqiu/danjuan-utils.test.js +0 -41
  864. package/clis/xueqiu/earnings-date.js +0 -45
  865. package/clis/xueqiu/feed.js +0 -39
  866. package/clis/xueqiu/fund-holdings.js +0 -29
  867. package/clis/xueqiu/fund-snapshot.js +0 -26
  868. package/clis/xueqiu/groups.js +0 -23
  869. package/clis/xueqiu/hot-stock.js +0 -32
  870. package/clis/xueqiu/hot.js +0 -37
  871. package/clis/xueqiu/kline.js +0 -44
  872. package/clis/xueqiu/search.js +0 -37
  873. package/clis/xueqiu/stock.js +0 -65
  874. package/clis/xueqiu/utils.js +0 -48
  875. package/clis/xueqiu/utils.test.js +0 -26
  876. package/clis/xueqiu/watchlist.js +0 -37
  877. package/clis/youdao/note.js +0 -258
  878. package/clis/youdao/note.test.js +0 -99
  879. package/clis/yuanbao/ask.js +0 -362
  880. package/clis/yuanbao/ask.test.js +0 -124
  881. package/clis/yuanbao/auth.js +0 -59
  882. package/clis/yuanbao/detail.js +0 -65
  883. package/clis/yuanbao/history.js +0 -51
  884. package/clis/yuanbao/new.js +0 -72
  885. package/clis/yuanbao/new.test.js +0 -30
  886. package/clis/yuanbao/read.js +0 -38
  887. package/clis/yuanbao/send.js +0 -57
  888. package/clis/yuanbao/shared.js +0 -341
  889. package/clis/yuanbao/shared.test.js +0 -80
  890. package/clis/yuanbao/status.js +0 -44
  891. package/clis/zhihu/answer-comments.js +0 -280
  892. package/clis/zhihu/answer-comments.test.js +0 -287
  893. package/clis/zhihu/answer-detail.js +0 -216
  894. package/clis/zhihu/answer-detail.test.js +0 -338
  895. package/clis/zhihu/answer.js +0 -54
  896. package/clis/zhihu/answer.test.js +0 -54
  897. package/clis/zhihu/auth.js +0 -59
  898. package/clis/zhihu/collection.js +0 -199
  899. package/clis/zhihu/collection.test.js +0 -337
  900. package/clis/zhihu/collections.js +0 -128
  901. package/clis/zhihu/collections.test.js +0 -182
  902. package/clis/zhihu/comment.js +0 -55
  903. package/clis/zhihu/comment.test.js +0 -50
  904. package/clis/zhihu/download.js +0 -80
  905. package/clis/zhihu/download.test.js +0 -12
  906. package/clis/zhihu/favorite.js +0 -87
  907. package/clis/zhihu/favorite.test.js +0 -59
  908. package/clis/zhihu/follow.js +0 -50
  909. package/clis/zhihu/follow.test.js +0 -42
  910. package/clis/zhihu/followers.js +0 -40
  911. package/clis/zhihu/followers.test.js +0 -42
  912. package/clis/zhihu/following.js +0 -40
  913. package/clis/zhihu/following.test.js +0 -44
  914. package/clis/zhihu/hot.js +0 -44
  915. package/clis/zhihu/like.js +0 -47
  916. package/clis/zhihu/like.test.js +0 -41
  917. package/clis/zhihu/paginate.js +0 -128
  918. package/clis/zhihu/pins.js +0 -41
  919. package/clis/zhihu/pins.test.js +0 -44
  920. package/clis/zhihu/question.js +0 -113
  921. package/clis/zhihu/question.test.js +0 -251
  922. package/clis/zhihu/recommend.js +0 -103
  923. package/clis/zhihu/recommend.test.js +0 -143
  924. package/clis/zhihu/search.js +0 -206
  925. package/clis/zhihu/search.test.js +0 -198
  926. package/clis/zhihu/target.js +0 -91
  927. package/clis/zhihu/target.test.js +0 -77
  928. package/clis/zhihu/text.js +0 -29
  929. package/clis/zhihu/text.test.js +0 -24
  930. package/clis/zhihu/user-answers.js +0 -41
  931. package/clis/zhihu/user-answers.test.js +0 -69
  932. package/clis/zhihu/user-arg.js +0 -34
  933. package/clis/zhihu/user-articles.js +0 -40
  934. package/clis/zhihu/user-articles.test.js +0 -44
  935. package/clis/zhihu/user.js +0 -59
  936. package/clis/zhihu/user.test.js +0 -73
  937. package/clis/zhihu/write-shared.js +0 -228
  938. package/clis/zhihu/write-shared.test.js +0 -176
  939. package/clis/zsxq/auth.js +0 -68
  940. package/clis/zsxq/dynamics.js +0 -48
  941. package/clis/zsxq/groups.js +0 -33
  942. package/clis/zsxq/search.js +0 -44
  943. package/clis/zsxq/search.test.js +0 -24
  944. package/clis/zsxq/topic.js +0 -50
  945. package/clis/zsxq/topic.test.js +0 -30
  946. package/clis/zsxq/topics.js +0 -26
  947. package/clis/zsxq/topics.test.js +0 -24
  948. package/clis/zsxq/utils.js +0 -233
  949. package/clis/zsxq/utils.test.js +0 -31
  950. package/dist/src/weixin-download.test.js +0 -45
  951. package/skills/webcmd-adapter-author/references/site-memory/bilibili.md +0 -70
  952. package/skills/webcmd-adapter-author/references/site-memory/eastmoney.md +0 -70
  953. package/skills/webcmd-adapter-author/references/site-memory/tonghuashun.md +0 -51
  954. package/skills/webcmd-adapter-author/references/site-memory/xueqiu.md +0 -58
  955. /package/{clis/douyin/_shared/types.js → dist/src/browser/profile.test.d.ts} +0 -0
  956. /package/dist/src/{weixin-download.test.d.ts → generate-release-notes-cli.test.d.ts} +0 -0
@@ -1,63 +1,67 @@
1
1
  ---
2
2
  name: webcmd-autofix
3
- description: Automatically fix broken Webcmd adapters when commands fail. Load this skill when a webcmd command fails it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent.
3
+ description: Automatically fix broken Webcmd adapters when commands fail. Load this skill when a webcmd command fails; it guides you through collecting a trace artifact, patching the adapter, retrying, and filing an upstream GitHub issue after a verified fix. Works with any AI agent.
4
4
  allowed-tools: Bash(webcmd:*), Bash(gh:*), Read, Edit, Write
5
5
  ---
6
6
 
7
- # Webcmd AutoFix Automatic Adapter Self-Repair
7
+ # Webcmd AutoFix - Automatic Adapter Self-Repair
8
8
 
9
- When an `webcmd` command fails because a website changed its DOM, API, or response schema, **automatically diagnose, fix the adapter, and retry** don't just report the error.
9
+ When a `webcmd` command fails because a website changed its DOM, API, or response schema, diagnose, fix the adapter, and retry. Do not only report the error when the failure is repairable.
10
10
 
11
11
  ## Safety Boundaries
12
12
 
13
- **Before starting any repair, check these hard stops:**
13
+ Hard stops before any code change:
14
14
 
15
- - **`AUTH_REQUIRED`** (exit code 77) — **STOP.** Do not modify code. Tell the user to log into the site in Chrome.
16
- - **`BROWSER_CONNECT`** (exit code 69) — **STOP.** Do not modify code. Tell the user to run `webcmd doctor`.
17
- - **CAPTCHA / rate limiting** **STOP.** Not an adapter issue.
15
+ - **`AUTH_REQUIRED`** (exit code 77): stop. Tell the user to log into the site in Chrome or the webcmd-managed browser profile.
16
+ - **`BROWSER_CONNECT`** (exit code 69): stop. Tell the user to run `webcmd doctor`.
17
+ - **CAPTCHA / rate limiting / IP block:** stop. This is not an adapter issue.
18
18
 
19
- **Scope constraint:**
20
- - **Only modify the file at `adapterSourcePath` in the trace `summary.md` front matter** — this is the authoritative adapter location (may be `clis/<site>/` in repo or `~/.webcmd/clis/<site>/` for npm installs)
21
- - **Never modify** `src/`, `extension/`, `tests/`, `package.json`, or `tsconfig.json`
19
+ Scope constraint:
22
20
 
23
- **Retry budget:** Max **3 repair rounds** per failure. If 3 rounds of diagnose fix retry don't resolve it, stop and report what was tried.
21
+ - Modify only the file at `adapterSourcePath` in the trace `summary.md` front matter. That path is authoritative and may be `clis/<site>/...` in the repo or `~/.webcmd/clis/<site>/...` for user-local installs.
22
+ - Never modify `src/`, `extension/`, `tests/`, `package.json`, or `tsconfig.json` during autofix.
24
23
 
25
- ## Prerequisites
24
+ Retry budget: maximum **3 repair rounds** per failure. A round is diagnose -> patch -> retry. If 3 rounds do not resolve it, stop and report what was tried.
25
+
26
+ ## Prerequisite
26
27
 
27
28
  ```bash
28
- webcmd doctor # Verify extension + daemon connectivity
29
+ webcmd doctor
29
30
  ```
30
31
 
31
- ## When to Use This Skill
32
+ This verifies extension and daemon connectivity for browser-dependent repairs.
33
+
34
+ ## When To Use
32
35
 
33
- Use when `webcmd <site> <command>` fails with repairable errors:
34
- - **SELECTOR** — element not found (DOM changed)
35
- - **EMPTY_RESULT** — no data returned (API response changed)
36
- - **API_ERROR** / **NETWORK** — endpoint moved or broke
37
- - **PAGE_CHANGED** — page structure no longer matches
38
- - **COMMAND_EXEC** — runtime error in adapter logic
39
- - **TIMEOUT** — page loads differently, adapter waits for wrong thing
36
+ Use this skill when `webcmd <site> <command>` fails with repairable errors:
40
37
 
41
- ## Before Entering Repair: "Empty" "Broken"
38
+ - **SELECTOR:** element not found or DOM changed.
39
+ - **EMPTY_RESULT:** no data returned and evidence suggests a schema/API drift.
40
+ - **API_ERROR / NETWORK:** endpoint moved, params changed, or network contract broke.
41
+ - **PAGE_CHANGED:** page structure no longer matches the adapter.
42
+ - **COMMAND_EXEC:** runtime error in adapter logic.
43
+ - **TIMEOUT:** page loads differently or waits for the wrong signal.
42
44
 
43
- `EMPTY_RESULT` and sometimes a structurally-valid `SELECTOR` that returns nothing — is often **not an adapter bug**. Platforms actively degrade results under anti-scrape heuristics, and a "not found" response from the site doesn't mean the content is actually missing. Rule this out **before** committing to a repair round:
45
+ ## Before Repair: Empty Does Not Always Mean Broken
44
46
 
45
- - **Retry with an alternative query or entry point.** If `webcmd xiaohongshu search "X"` returns 0 but `webcmd xiaohongshu search "X 攻略"` returns 20, the adapter is fine the platform was shaping results for the first query.
46
- - **Spot-check in a normal Chrome tab.** If the data is visible in the user's own browser but the adapter comes back empty, the issue is usually authentication state, rate limiting, or a soft block — not a code bug. The fix is `webcmd doctor` / re-login, not editing source.
47
- - **Look for soft 404s.** Sites like xiaohongshu / weibo / douyin return HTTP 200 with an empty payload instead of a real 404 when an item is hidden or deleted. The snapshot will look structurally correct. A retry 2-3 seconds later often distinguishes "temporarily hidden" from "actually gone".
48
- - **"0 results" from a search is an answer.** If the adapter successfully reached the search endpoint, got an HTTP 200, and the platform returned `results: []`, that is a valid answer — report it to the user as "no matches for this query" rather than patching the adapter.
47
+ `EMPTY_RESULT`, and sometimes a structurally valid selector that returns no rows, may be a real platform answer rather than an adapter bug. Rule this out before a repair round:
49
48
 
50
- Only proceed to Step 1 if the empty/selector-missing result is **reproducible across retries and alternative entry points**. Otherwise you're patching a working adapter to chase noise, and the patched version will break the next working path.
49
+ - Retry with an alternative query or entry point. If `webcmd reddit search "X"` returns 0 but `webcmd reddit search "X guide"` returns 20, the adapter is likely fine and the first query was too narrow.
50
+ - Spot-check in a normal browser tab. If the data is visible there but the adapter is empty, the issue may be auth state, soft blocking, or rate limiting; use `webcmd doctor` or re-login rather than editing source.
51
+ - Look for soft 404s. Some platforms return HTTP 200 with an empty payload when an item is hidden, deleted, or temporarily unavailable. A retry after a short wait can distinguish transient hiding from real deletion.
52
+ - Treat a successful empty search as an answer. If the adapter reached the endpoint, got HTTP 200, and the platform returned `results: []`, report "no matches" instead of patching.
53
+
54
+ Proceed only when the empty or missing-selector result is reproducible across retries and alternative entry points.
51
55
 
52
56
  ## Step 1: Collect Trace Context
53
57
 
54
- Run the failing command with failure-retained trace enabled:
58
+ Run the failing command with retained trace:
55
59
 
56
60
  ```bash
57
61
  webcmd <site> <command> [args...] --trace retain-on-failure 2>trace-error.yaml
58
62
  ```
59
63
 
60
- On failure, stderr contains the normal error envelope plus a small `trace` block:
64
+ On failure, stderr contains the normal error envelope plus a `trace` block:
61
65
 
62
66
  ```yaml
63
67
  ok: false
@@ -73,7 +77,7 @@ trace:
73
77
  receiptPath: "/path/to/.webcmd/profiles/default/traces/.../receipt.json"
74
78
  ```
75
79
 
76
- Read `summaryPath` first. It is the LLM-oriented entry point and includes front matter:
80
+ Read `summaryPath` first. It is the LLM-oriented entry point and includes:
77
81
 
78
82
  ```yaml
79
83
  ---
@@ -89,137 +93,122 @@ errorMessage: "Could not find element: .old-selector"
89
93
  ---
90
94
  ```
91
95
 
92
- The artifact directory contains:
96
+ Trace artifacts include:
93
97
 
94
98
  ```text
95
- summary.md # start here
96
- receipt.json # machine-readable trace receipt
97
- trace.jsonl # full redacted timeline
98
- network.jsonl # redacted network events
99
- console.jsonl # redacted console events
100
- state/ # final snapshots when available
101
- screenshots/ # final screenshots when available
99
+ summary.md
100
+ receipt.json
101
+ trace.jsonl
102
+ network.jsonl
103
+ console.jsonl
104
+ state/
105
+ screenshots/
102
106
  ```
103
107
 
104
- If you redirected stderr to a file, read that file and copy `trace.summaryPath`.
108
+ Do not ask the user to rerun with legacy diagnostic environment variables. Trace artifacts are the repair evidence path.
105
109
 
106
- Do not ask the user to rerun with legacy diagnostic env vars. Trace is the repair evidence path.
110
+ ## Step 2: Analyze The Failure
107
111
 
108
- ## Step 2: Analyze the Failure
112
+ Read the trace summary and adapter source. Classify root cause:
109
113
 
110
- Read the trace summary and the adapter source. Classify the root cause:
114
+ | Error code | Likely cause | Repair strategy |
115
+ | --- | --- | --- |
116
+ | SELECTOR | DOM restructured or class/id changed | Explore current DOM and find a stable selector |
117
+ | EMPTY_RESULT | API response schema changed, data moved, or real empty result | Check network and visible page before patching |
118
+ | API_ERROR | Endpoint URL changed or new params required | Discover current API through network evidence |
119
+ | AUTH_REQUIRED | Login flow changed or cookies expired | Stop; ask user to log in |
120
+ | TIMEOUT | Page loads differently or lazy-load signal changed | Update wait conditions |
121
+ | PAGE_CHANGED | Major redesign | May need full adapter rewrite through `webcmd-adapter-author` |
111
122
 
112
- | Error Code | Likely Cause | Repair Strategy |
113
- |-----------|-------------|-----------------|
114
- | SELECTOR | DOM restructured, class/id renamed | Explore current DOM → find new selector |
115
- | EMPTY_RESULT | API response schema changed, or data moved | Check network → find new response path |
116
- | API_ERROR | Endpoint URL changed, new params required | Discover new API via network intercept |
117
- | AUTH_REQUIRED | Login flow changed, cookies expired | **STOP** — tell user to log in, do not modify code |
118
- | TIMEOUT | Page loads differently, spinner/lazy-load | Add/update wait conditions |
119
- | PAGE_CHANGED | Major redesign | May need full adapter rewrite |
123
+ Answer these questions:
120
124
 
121
- **Key questions to answer:**
122
- 1. What is the adapter trying to do? (Read the file at `adapterSourcePath`)
123
- 2. What did the page look like when it failed? (Read `summary.md`, then `state/` if needed)
124
- 3. What network requests happened? (Read `Failed Network` in `summary.md`, then `network.jsonl` if needed)
125
- 4. What's the gap between what the adapter expects and what the page provides?
125
+ 1. What is the adapter trying to do? Read `adapterSourcePath`.
126
+ 2. What did the page look like when it failed? Read `summary.md`, then `state/` if needed.
127
+ 3. What network requests happened? Read failed network in `summary.md`, then `network.jsonl` if needed.
128
+ 4. What gap exists between adapter expectations and current page reality?
126
129
 
127
- ## Step 3: Explore the Current Website
130
+ ## Step 3: Explore The Current Website
128
131
 
129
- Use `webcmd browser` to inspect the live website. **Never use the broken adapter** it will just fail again.
132
+ Use `webcmd browser` to inspect the live site. Do not use the broken adapter for exploration.
130
133
 
131
- ### DOM changed (SELECTOR errors)
134
+ For DOM changes:
132
135
 
133
136
  ```bash
134
- # Open the page and inspect current DOM
135
- webcmd browser open https://example.com/target-page && webcmd browser state
136
-
137
- # Look for elements that match the adapter's intent
138
- # Compare the snapshot with what the adapter expects
137
+ webcmd browser open https://example.com/target-page
138
+ webcmd browser state
139
139
  ```
140
140
 
141
- ### API changed (API_ERROR, EMPTY_RESULT)
141
+ For API changes:
142
142
 
143
143
  ```bash
144
- # Open page with network interceptor, then trigger the action manually
145
- webcmd browser open https://example.com/target-page && webcmd browser state
146
-
147
- # Interact to trigger API calls
148
- webcmd browser click <N> && webcmd browser network
149
-
150
- # Narrow to the request you care about by the fields its body should have
144
+ webcmd browser open https://example.com/target-page
145
+ webcmd browser state
146
+ webcmd browser click <N>
147
+ webcmd browser network
151
148
  webcmd browser network --filter author,text,likes
152
-
153
- # Inspect specific API response (key is the `key` field from the default JSON output)
154
149
  webcmd browser network --detail <key>
155
150
  ```
156
151
 
157
- ## Step 4: Patch the Adapter
152
+ Use the `key` field from network output with `--detail`.
158
153
 
159
- Read the adapter source file at `adapterSourcePath` from the trace summary front matter and make targeted fixes. This path is authoritative — it may be in the repo (`clis/`) or user-local (`~/.webcmd/clis/`).
154
+ ## Step 4: Patch The Adapter
160
155
 
161
- Use the `Read` tool on the exact path from summary.md front matter.
156
+ Patch only `adapterSourcePath`.
162
157
 
163
- ### Common Fixes
158
+ Common fixes:
164
159
 
165
- **Selector update:**
166
- ```typescript
167
- // Before: page.evaluate('document.querySelector(".old-class")...')
168
- // After: page.evaluate('document.querySelector(".new-class")...')
160
+ ```js
161
+ // Selector update
162
+ document.querySelector('.new-class')
169
163
  ```
170
164
 
171
- **API endpoint change:**
172
- ```typescript
173
- // Before: const resp = await page.evaluate(`fetch('/api/v1/old-endpoint')...`)
174
- // After: const resp = await page.evaluate(`fetch('/api/v2/new-endpoint')...`)
165
+ ```js
166
+ // Endpoint update
167
+ fetch('/api/v2/search')
175
168
  ```
176
169
 
177
- **Response schema change:**
178
- ```typescript
179
- // Before: const items = data.results
180
- // After: const items = data.data.items // API now nests under "data"
170
+ ```js
171
+ // Response schema update
172
+ const items = data.data.items;
181
173
  ```
182
174
 
183
- **Wait condition update:**
184
- ```typescript
185
- // Before: await page.wait({ selector: '.loading-spinner', hidden: true })
186
- // After: await page.wait({ selector: '[data-loaded="true"]' })
175
+ ```js
176
+ // Wait condition update
177
+ await page.wait({ selector: '[data-loaded="true"]' });
187
178
  ```
188
179
 
189
- ### Rules for Patching
180
+ Rules:
190
181
 
191
- 1. **Make minimal changes** fix only what's broken, don't refactor
192
- 2. **Keep the same output structure** `columns` and return format must stay compatible
193
- 3. **Prefer API over DOM scraping** if you discover a JSON API during exploration, switch to it
194
- 4. **Use `@agentrhq/webcmd/*` imports only** never add third-party package imports
195
- 5. **Test after patching** — run the command again to verify
196
- 6. **Never relax `verify/<cmd>.json` fixtures to silence a failure.** A failing `patterns` / `notEmpty` / `mustNotContain` / `mustBeTruthy` rule means the adapter's output is broken. Tighten the adapter so it produces correct values; do not loosen the fixture to accept the broken values. The one legitimate reason to edit a fixture during repair is when the **site itself** changed shape (e.g. URL format migration) — in that case update the fixture and note the change in `~/.webcmd/sites/<site>/notes.md`. Otherwise editing the fixture is covering up a silent correctness regression.
182
+ 1. Make minimal changes; do not refactor unrelated code.
183
+ 2. Keep output structure compatible: `columns` and row keys must remain aligned.
184
+ 3. Prefer stable API evidence over brittle DOM scraping when discovered.
185
+ 4. Use only `@agentrhq/webcmd/*` imports; do not add third-party packages.
186
+ 5. Test after patching.
187
+ 6. Never relax `verify/<cmd>.json` fixtures to silence a failure. A failing `patterns`, `notEmpty`, `mustNotContain`, or `mustBeTruthy` rule usually means adapter output is wrong. Edit a fixture only when the site itself legitimately changed shape, such as a URL format migration, and note the change in `~/.webcmd/sites/<site>/notes.md`.
197
188
 
198
- ## Step 5: Verify the Fix
189
+ ## Step 5: Verify The Fix
190
+
191
+ Run:
199
192
 
200
193
  ```bash
201
- # Run the command normally
202
194
  webcmd <site> <command> [args...]
203
195
  ```
204
196
 
205
- If it still fails, go back to Step 1 and collect a fresh trace. You have a budget of **3 repair rounds** (trace → fix → retry). If the same error persists after a fix, try a different approach. After 3 rounds, stop and report what was tried.
197
+ If it still fails, collect a fresh trace and start another round. Stop after 3 rounds.
206
198
 
207
- ## Step 6: File an Upstream Issue
199
+ ## Step 6: File An Upstream Issue
208
200
 
209
- If the retry **passes**, the local adapter has drifted from upstream. File a GitHub issue so the fix flows back to `agentrhq/webcmd`.
201
+ If the retry passes, prepare an upstream issue so the local fix can flow back to `agentrhq/webcmd`.
210
202
 
211
- **Do NOT file for:**
212
- - `AUTH_REQUIRED`, `BROWSER_CONNECT`, `ARGUMENT`, `CONFIG` — environment/usage issues, not adapter bugs
213
- - CAPTCHA or rate limiting — not fixable upstream
214
- - Failures you couldn't actually fix (3 rounds exhausted)
203
+ Do not file for:
215
204
 
216
- **Only file after a verified local fix** — the retry must pass first.
205
+ - `AUTH_REQUIRED`, `BROWSER_CONNECT`, `ARGUMENT`, or `CONFIG`
206
+ - CAPTCHA or rate limiting
207
+ - failures you could not fix
217
208
 
218
- **Procedure:**
209
+ Only file after a verified local fix.
219
210
 
220
- 1. Prepare the issue content from the trace summary you already have:
221
- - **Title:** `[autofix] <site>/<command>: <error_code>` (e.g. `[autofix] zhihu/hot: SELECTOR`)
222
- - **Body** (use this template):
211
+ Draft:
223
212
 
224
213
  ```markdown
225
214
  ## Summary
@@ -240,15 +229,13 @@ Webcmd autofix repaired this adapter locally, and the retry passed.
240
229
  ## Local fix summary
241
230
 
242
231
  ~~~
243
- <1-2 sentence description of what you changed and why>
232
+ <1-2 sentence description of what changed and why>
244
233
  ~~~
245
234
 
246
235
  _Issue filed by Webcmd autofix after a verified local repair._
247
236
  ```
248
237
 
249
- 2. **Ask the user before filing.** Show them the draft title and body. Only proceed if they confirm.
250
-
251
- 3. If the user approves and `gh auth status` succeeds:
238
+ Ask the user before filing. Show the draft title and body. If they approve and `gh auth status` succeeds:
252
239
 
253
240
  ```bash
254
241
  gh issue create --repo agentrhq/webcmd \
@@ -256,42 +243,48 @@ gh issue create --repo agentrhq/webcmd \
256
243
  --body "<the body above>"
257
244
  ```
258
245
 
259
- If `gh` is not installed or not authenticated, tell the user and skip do not error out.
246
+ If `gh` is unavailable or unauthenticated, tell the user and skip issue creation.
247
+
248
+ ## When To Stop
260
249
 
261
- ## When to Stop
250
+ Hard stops:
262
251
 
263
- **Hard stops (do not modify code):**
264
- - **AUTH_REQUIRED / BROWSER_CONNECT** — environment issue, not adapter bug
265
- - **Site requires CAPTCHA** can't automate this
266
- - **Rate limited / IP blocked** — not an adapter issue
252
+ - `AUTH_REQUIRED` / `BROWSER_CONNECT`: environment issue, not adapter bug.
253
+ - Site requires CAPTCHA.
254
+ - Rate limited or IP blocked.
267
255
 
268
- **Soft stops (report after attempting):**
269
- - **3 repair rounds exhausted** — stop, report what was tried and what failed
270
- - **Feature completely removed** — the data no longer exists
271
- - **Major redesign** — needs full adapter rewrite via `webcmd-adapter-author` skill
256
+ Soft stops:
272
257
 
273
- In all stop cases, clearly communicate the situation to the user rather than making futile patches.
258
+ - 3 repair rounds exhausted.
259
+ - Feature completely removed.
260
+ - Major redesign requiring `webcmd-adapter-author`.
261
+
262
+ In all stop cases, clearly report the situation instead of making speculative patches.
274
263
 
275
264
  ## Example Repair Session
276
265
 
277
- ```
278
- 1. User runs: webcmd zhihu hot
279
- Fails: SELECTOR "Could not find element: .HotList-item"
266
+ ```text
267
+ 1. User runs: webcmd reddit hot
268
+ -> Fails: SELECTOR "Could not find element: .old-post-selector"
280
269
 
281
- 2. AI runs: webcmd zhihu hot --trace retain-on-failure 2>trace-error.yaml
282
- Gets trace summary with final state and failed action evidence
270
+ 2. Agent runs: webcmd reddit hot --trace retain-on-failure 2>trace-error.yaml
271
+ -> Gets trace summary with final state and failed action evidence
283
272
 
284
- 3. AI reads summary/state: page loaded but uses ".HotItem" instead of ".HotList-item"
273
+ 3. Agent reads summary/state:
274
+ -> Page loaded, but post cards now use "[data-testid=post-container]"
285
275
 
286
- 4. AI explores: webcmd browser open https://www.zhihu.com/hot && webcmd browser state
287
- Confirms new class name ".HotItem" with child ".HotItem-content"
276
+ 4. Agent explores:
277
+ -> webcmd browser open https://www.reddit.com && webcmd browser state
288
278
 
289
- 5. AI patches: Edit adapter at `adapterSourcePath` — replace ".HotList-item" with ".HotItem"
279
+ 5. Agent patches adapterSourcePath:
280
+ -> Replace old selector with stable scoped selector
290
281
 
291
- 6. AI verifies: webcmd zhihu hot
292
- Success: returns hot topics
282
+ 6. Agent verifies:
283
+ -> webcmd reddit hot
284
+ -> Success: returns hot posts
293
285
 
294
- 7. AI prepares upstream issue draft, shows it to the user
286
+ 7. Agent prepares upstream issue draft and asks the user
295
287
 
296
- 8. User approves → AI runs: gh issue create --repo agentrhq/webcmd --title "[autofix] zhihu/hot: SELECTOR" --body "..."
288
+ 8. User approves:
289
+ -> gh issue create --repo agentrhq/webcmd --title "[autofix] reddit/hot: SELECTOR" --body "..."
297
290
  ```
@@ -6,58 +6,51 @@ allowed-tools: Bash(webcmd:*), Read, Edit, Write, Grep
6
6
 
7
7
  # webcmd-sitemap-author
8
8
 
9
- You are authoring a **task execution graph for agents**, not an SEO sitemap. The artifact should help an agent using `webcmd browser` decide where it is, what path to take next, which Webcmd adapter to prefer, and how to recover when the page disagrees with memory.
9
+ You are authoring a **task execution graph for agents**, not an SEO sitemap. The artifact helps an agent using `webcmd browser` decide where it is, what path to take next, which Webcmd adapter to prefer, and how to recover when the page disagrees with memory.
10
10
 
11
11
  Keep the sitemap small and verified. Do not crawl a whole site. Capture only task-relevant paths that you actually observed.
12
12
 
13
- ---
14
-
15
13
  ## Storage Model
16
14
 
17
15
  Two layers:
18
16
 
19
- - **Global seed**: `sitemaps/<site>/` (top-level)
20
- - **Local overlay**: `~/.webcmd/sites/<site>/sitemap/`
17
+ - **Global seed:** `sitemaps/<site>/`
18
+ - **Local overlay:** `~/.webcmd/sites/<site>/sitemap/`
21
19
 
22
- Local overlay wins by stable id. Write new discoveries to local first. Promote to global only after review.
20
+ Local overlay wins by stable id. Write new discoveries locally first. Promote to global only after review.
23
21
 
24
22
  Recommended layout:
25
23
 
26
24
  ```text
27
25
  sitemap/
28
- SITE.md # site purpose, auth assumptions, stable page ids
29
- pages/<page-id>.md # page state signatures, actions, linked APIs
30
- pages/_<partial>.md # cross-page UI partial (e.g. _tweet_card.md)
31
- workflows/<task-id>.md # best path, fallback path, avoid list
32
- pitfalls.md # durable failure modes and stale areas
26
+ SITE.md
27
+ pages/<page-id>.md
28
+ pages/_<partial>.md
29
+ workflows/<task-id>.md
30
+ pitfalls.md
33
31
  ```
34
32
 
35
- ### Size guidance(实测启发式)
36
-
37
- `references/sitemap-schema.md` §1.1 spec 硬 800 token,但 PoC 实测简单站单 page 1-2 action 自然落到 800-2000 token。强拆反碎,author 用下表决策:
33
+ ### Size Guidance
38
34
 
39
- > spec 800 lazy-load 优化目标 + Phase 2 audit 阈值;下表是 author 实战决策辅助,**不替代 spec hard 限制**。超 800 的文件 audit flag,author 解释("5 cohesive UI primitive 一起放")或拆。
35
+ `references/sitemap-schema.md` defines an 800-token target for lazy loading and audit. In real authoring, small pages with one or two actions may naturally land between 800 and 2000 tokens. Use this table:
40
36
 
41
- | 文件 token | 决策 |
42
- |---|---|
43
- | < 1500 | 自然 size,不动 |
44
- | 1500-3000 | cohesion 5 个 cohesive UI primitive 一起放 OK;mixed 内容拆 |
45
- | > 3000 | **必拆** sub-file partial(agent lazy load budget 真有限制) |
37
+ | File tokens | Decision |
38
+ | --- | --- |
39
+ | < 1500 | Natural size; leave it. |
40
+ | 1500-3000 | Keep only if cohesive; split mixed content. |
41
+ | > 3000 | Split into a sub-file or partial. |
46
42
 
47
- Phase 2 cron audit token count 不按 byte count(CJK 中文 token-per-char English 30-50%)。
48
-
49
- ---
43
+ The 800-token target remains the audit threshold. If a file exceeds it, either explain the cohesive reason or split.
50
44
 
51
45
  ## Authoring Loop
52
46
 
53
- 1. **Load existing memory**: read local overlay first, then global seed if present.
54
- 2. **Verify reality**: use `webcmd browser <session> state`, `find`, `network`, and `analyze`; browser state is truth. If you just completed an `webcmd-adapter-author` session for this site, start from the retained browse trace under `~/.webcmd/sites/<site>/traces/` as seed evidence instead of re-discovering the path from zero.
55
- 3. **Record only durable structure**: page purpose, stable anchors, state signature, actions, workflows, API references, pitfalls.
56
- 4. **Use stable ids**: page/action/workflow ids should survive URL params, locale text drift, and minor layout changes.
57
- 5. **Write local draft**: update `~/.webcmd/sites/<site>/sitemap/...` unless explicitly promoting to repo.
58
- 6. **Mark stale on conflict**: if existing sitemap disagrees with current browser state, trust browser state and mark the item stale rather than forcing the old path.
59
-
60
- ---
47
+ 1. Load existing memory: local overlay first, then global seed if present.
48
+ 2. Verify reality with `webcmd browser <session> state`, `find`, `network`, and `analyze`. Browser state is truth.
49
+ 3. If you just completed `webcmd-adapter-author` for this site, seed from retained browse traces under `~/.webcmd/sites/<site>/traces/` instead of rediscovering from zero.
50
+ 4. Record durable structure only: page purpose, stable anchors, state signatures, actions, workflows, API references, pitfalls.
51
+ 5. Use stable ids for pages, actions, and workflows. They should survive URL params, locale text drift, and minor layout changes.
52
+ 6. Write the local draft under `~/.webcmd/sites/<site>/sitemap/...` unless explicitly promoting to repo.
53
+ 7. On conflict, trust current browser state and mark stale memory instead of forcing the old path.
61
54
 
62
55
  ## Required Action Schema
63
56
 
@@ -73,49 +66,52 @@ recover: <fallback instruction>; adapter_health_update: <adapter> -> suspect
73
66
  evidence: webcmd browser <cmd> or trace:<path>
74
67
  ```
75
68
 
76
- Use this compact form by default. Use the longer Markdown form from `references/sitemap-schema.md` only when an action genuinely needs long explanation. `verified_at` and `source` are inherited from file frontmatter; do not repeat them per action.
69
+ Use this compact form by default. Use the longer Markdown form from `references/sitemap-schema.md` only when an action genuinely needs longer explanation. `verified_at` and `source` are inherited from file front matter; do not repeat them per action.
77
70
 
78
71
  Do not promote an action without evidence. If a recovery path marks `adapter_health_update`, the browser-sitemap consumer must write that health update to the local overlay so the next agent does not retry a known-suspect adapter.
79
72
 
80
- ### Partial pages(跨页通用 UI)
73
+ ## Partial Pages
81
74
 
82
- partial 文件 (`_<name>.md`,`url_patterns: []`) 装跨页 UI 原语(如 `_tweet_card.md` like/reply/repost/bookmark)。被多 page 通过 `action:<id> in pages/_<name>.md` 引用。
75
+ Partial files (`_<name>.md`, `url_patterns: []`) hold cross-page UI primitives, such as a reusable post card with like/reply/share actions. Multiple page files can reference `action:<id> in pages/_<name>.md`.
83
76
 
84
- **Partial scope rule**:partial 内所有 selector(testid / a11y / structural)**必须 scoped partial root**,不能是 page-level first match。例如 `_tweet_card.md`:
77
+ **Partial scope rule:** every selector inside a partial, whether testid, accessibility, or structural, must be scoped to the partial root. It must not rely on a page-level first match.
78
+
79
+ Bad:
85
80
 
86
81
  ```yaml
87
- # ❌ 错:page-level first match,会点到 timeline 首条非 target card
88
82
  do: click [data-testid="like"]
83
+ ```
89
84
 
90
- # ✅ 对:scoped 到 article root
85
+ Good:
86
+
87
+ ```yaml
91
88
  do: click [data-testid="like"] in article[role="article"] (card scope)
92
89
  ```
93
90
 
94
- partial 文件顶部写明 scope root 一行:
91
+ At the top of the partial file, state the scope root:
95
92
 
96
93
  ```md
97
- ## Card scope rule
98
- 所有 testid selector 必须 scoped 到 `article[role="article"]`,不能用 page-level first match。
99
- ```
94
+ ## Card Scope Rule
100
95
 
101
- ---
96
+ All testid selectors must be scoped to `article[role="article"]`; do not use page-level first match.
97
+ ```
102
98
 
103
99
  ## Workflow Fields
104
100
 
105
101
  Each workflow should answer:
106
102
 
107
- - **Goal**: user-facing task this workflow solves.
108
- - **State signature**: minimal observable checkpoint for resume after sleep/compaction.
109
- - **Best path**: prefer existing `webcmd <site> <command>` adapter if it covers the goal.
110
- - **Fallback path**: browser workflow if the adapter is missing or failing.
111
- - **Avoid**: tempting paths that waste turns, trigger modals, or rely on unstable selectors.
112
- - **Stale markers**: last verified date and known layout/API drift signals.
103
+ - **Goal:** user-facing task this workflow solves.
104
+ - **State signature:** minimal observable checkpoint for resume after sleep or compaction.
105
+ - **Best path:** prefer existing `webcmd <site> <command>` adapter if it covers the goal.
106
+ - **Fallback path:** browser workflow if the adapter is missing or failing.
107
+ - **Avoid:** tempting paths that waste turns, trigger modals, or rely on unstable selectors.
108
+ - **Stale markers:** last verified date and known layout/API drift signals.
113
109
 
114
110
  Endpoint/API knowledge should reference ids from `endpoints.json` when available. Do not duplicate full endpoint schemas inside sitemap files.
115
111
 
116
- ### Fallback `on_adapter_fail:` convention(推荐)
112
+ ### `on_adapter_fail:` Fallback Convention
117
113
 
118
- Fallback path 第一行声明触发条件 + adapter_health_update directive,把"为什么走 fallback"和"标 adapter suspect"放一起:
114
+ Start fallback paths with trigger condition plus `adapter_health_update`:
119
115
 
120
116
  ```yaml
121
117
  on_adapter_fail:
@@ -123,39 +119,34 @@ on_adapter_fail:
123
119
  - webcmd browser state (verify current page)
124
120
  - if not on /home: goto /home
125
121
  - action:open_compose in pages/home.md
126
- - ...
127
122
  ```
128
123
 
129
- 比纯 step list 清晰:consumption skill 看到 `on_adapter_fail:` key 知道这是 adapter-trigger 而非 entry-point fallback,directive 先执行后续才走 steps。schema v1.2 candidate,目前作为 SKILL guideline 推荐。
124
+ This tells the consuming skill that fallback was triggered by adapter failure, not by an entry-point choice. The health update comes first, then recovery steps.
130
125
 
131
- ## SITE.md `Top-level routes` — 标 uncovered routes
126
+ ## `SITE.md` Top-Level Routes
132
127
 
133
- `SITE.md` `Top-level routes` 不仅列已覆盖的 page,也应**显式标存在但 sitemap 不导航**的 route,避免 agent 默认"sitemap 没列 不存在"
128
+ `SITE.md` should list covered routes and explicitly mark known routes that the sitemap does not navigate. This prevents agents from assuming "not listed" means "does not exist."
134
129
 
135
130
  ```md
136
131
  ## Top-level routes
137
132
 
138
- - /home pages/home.md
139
- - /search pages/search.md
140
- - /messages pages/messages.md(DM,本 PoC v1 不覆盖) # 显式 uncovered marker
141
- - /settings 不在 sitemap scopeagent 自探 # 同上
133
+ - /home -> pages/home.md
134
+ - /search -> pages/search.md
135
+ - /messages -> uncovered in this sitemap; agent must explore live
136
+ - /settings -> out of sitemap scope; agent must explore live
142
137
  ```
143
138
 
144
- 不写 = agent 不知该 route 存在;写 + uncovered = agent 知道存在但 sitemap 帮不上忙,自己探。
145
-
146
- ---
139
+ Writing uncovered markers tells the agent the route exists but sitemap help is limited.
147
140
 
148
141
  ## Red Lines
149
142
 
150
143
  - Sitemap is a hint; current browser state is truth.
151
- - Do not write secrets, cookies, user-private ids, private messages, or account-specific values.
144
+ - Do not write secrets, cookies, private ids, private messages, or account-specific values.
152
145
  - Do not document bypasses for CAPTCHA, WAF, access control, rate limits, or paid gates.
153
146
  - Do not store brittle snapshot indices like `[17]` as durable targets. Store semantic anchors and recovery instructions.
154
147
  - Do not describe unverified paths as facts. Use `draft` or `stale` labels.
155
- - Drafts go inside `sitemap/draft-<topic>.md`, not `~/.webcmd/sites/<site>/sitemap.draft.md` at the parent level the latter is invisible to `webcmd browser` sitemap availability detection.
156
-
157
- ---
148
+ - Drafts go inside `sitemap/draft-<topic>.md`, not `~/.webcmd/sites/<site>/sitemap.draft.md` at the parent level. The parent-level draft is invisible to sitemap availability detection.
158
149
 
159
- ## Detailed schema
150
+ ## Detailed Schema
160
151
 
161
- See [`references/sitemap-schema.md`](./references/sitemap-schema.md) for the full field-level spec `SITE.md` / `pages/<id>.md` / `workflows/<id>.md` / `apis.md` / `pitfalls.md` schemas, action-level state signatures, `adapter_health` enum (healthy / suspect / broken), endpoint reference rules, two-layer overlay semantics, draft placement, and Phase 2 validation rules.
152
+ See [`references/sitemap-schema.md`](./references/sitemap-schema.md) for the full field-level spec: `SITE.md`, `pages/<id>.md`, `workflows/<id>.md`, `apis.md`, `pitfalls.md`, action-level state signatures, `adapter_health` enum (`healthy`, `suspect`, `broken`), endpoint references, two-layer overlay semantics, draft placement, and validation rules.