@agentrhq/webcmd 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1290) hide show
  1. package/README.md +278 -20
  2. package/cli-manifest.json +16247 -34913
  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/followers.js +1 -1
  94. package/clis/twitter/list-remove-core.js +2 -2
  95. package/clis/twitter/list-tweets.test.js +3 -3
  96. package/clis/twitter/lists.js +6 -6
  97. package/clis/twitter/lists.test.js +2 -2
  98. package/clis/twitter/reply-dm.js +1 -1
  99. package/clis/twitter/shared.test.js +4 -5
  100. package/clis/twitter/trending.js +1 -1
  101. package/clis/twitter/utils.js +1 -1
  102. package/clis/web/read.js +1 -1
  103. package/clis/web/read.test.js +2 -2
  104. package/clis/yahoo-finance/quote.js +1 -1
  105. package/clis/youtube/history.js +4 -4
  106. package/clis/youtube/transcript-group.js +1 -1
  107. package/clis/youtube/transcript-group.test.js +5 -5
  108. package/clis/youtube/transcript.js +5 -5
  109. package/clis/youtube/video.js +4 -4
  110. package/clis/youtube/video.test.js +6 -6
  111. package/dist/src/adapter-shadow.d.ts +11 -0
  112. package/dist/src/adapter-shadow.js +72 -0
  113. package/dist/src/adapter-shadow.test.js +49 -0
  114. package/dist/src/adapter-source.d.ts +11 -0
  115. package/dist/src/adapter-source.js +24 -0
  116. package/dist/src/adapter-source.test.d.ts +1 -0
  117. package/dist/src/adapter-source.test.js +29 -0
  118. package/dist/src/brand.d.ts +9 -0
  119. package/dist/src/brand.js +9 -0
  120. package/dist/src/brand.test.d.ts +1 -0
  121. package/dist/src/brand.test.js +15 -0
  122. package/dist/src/browser/analyze.d.ts +118 -0
  123. package/dist/src/browser/analyze.js +405 -0
  124. package/dist/src/browser/analyze.test.d.ts +1 -0
  125. package/dist/src/browser/analyze.test.js +209 -0
  126. package/dist/src/browser/article-extract.d.ts +57 -0
  127. package/dist/src/browser/article-extract.e2e.test.d.ts +1 -0
  128. package/dist/src/browser/article-extract.e2e.test.js +105 -0
  129. package/dist/src/browser/article-extract.js +169 -0
  130. package/dist/src/browser/article-extract.test.d.ts +1 -0
  131. package/dist/src/browser/article-extract.test.js +94 -0
  132. package/dist/src/browser/ax-snapshot.d.ts +37 -0
  133. package/dist/src/browser/ax-snapshot.js +217 -0
  134. package/dist/src/browser/ax-snapshot.test.d.ts +1 -0
  135. package/dist/src/browser/ax-snapshot.test.js +91 -0
  136. package/dist/src/browser/base-page.d.ts +151 -0
  137. package/dist/src/browser/base-page.js +1060 -0
  138. package/dist/src/browser/base-page.test.d.ts +1 -0
  139. package/dist/src/browser/base-page.test.js +803 -0
  140. package/dist/src/browser/bridge-readiness.d.ts +14 -0
  141. package/dist/src/browser/bridge-readiness.js +24 -0
  142. package/dist/src/browser/bridge-readiness.test.d.ts +1 -0
  143. package/dist/src/browser/bridge-readiness.test.js +58 -0
  144. package/dist/src/browser/bridge.d.ts +26 -0
  145. package/dist/src/browser/bridge.js +58 -0
  146. package/dist/src/browser/cdp-click-fixture.test.d.ts +1 -0
  147. package/dist/src/browser/cdp-click-fixture.test.js +87 -0
  148. package/dist/src/browser/cdp.d.ts +46 -0
  149. package/dist/src/browser/cdp.js +536 -0
  150. package/dist/src/browser/cdp.test.d.ts +1 -0
  151. package/dist/src/browser/cdp.test.js +79 -0
  152. package/dist/src/browser/compound.d.ts +59 -0
  153. package/dist/src/browser/compound.js +112 -0
  154. package/dist/src/browser/compound.test.d.ts +1 -0
  155. package/dist/src/browser/compound.test.js +175 -0
  156. package/dist/src/browser/config.d.ts +2 -0
  157. package/dist/src/browser/config.js +14 -0
  158. package/dist/src/browser/daemon-client.d.ts +33 -0
  159. package/dist/src/browser/daemon-client.js +187 -0
  160. package/dist/src/browser/daemon-client.test.d.ts +1 -0
  161. package/dist/src/browser/daemon-client.test.js +411 -0
  162. package/dist/src/browser/daemon-lifecycle.d.ts +37 -0
  163. package/dist/src/browser/daemon-lifecycle.js +147 -0
  164. package/dist/src/browser/daemon-transport.d.ts +54 -0
  165. package/dist/src/browser/daemon-transport.js +68 -0
  166. package/dist/src/browser/daemon-version.d.ts +4 -0
  167. package/dist/src/browser/daemon-version.js +12 -0
  168. package/dist/src/browser/dom-helpers.d.ts +41 -0
  169. package/dist/src/browser/dom-helpers.js +239 -0
  170. package/dist/src/browser/dom-helpers.test.d.ts +1 -0
  171. package/dist/src/browser/dom-helpers.test.js +106 -0
  172. package/dist/src/browser/dom-snapshot.d.ts +93 -0
  173. package/dist/src/browser/dom-snapshot.js +894 -0
  174. package/dist/src/browser/dom-snapshot.test.d.ts +11 -0
  175. package/dist/src/browser/dom-snapshot.test.js +313 -0
  176. package/dist/src/browser/errors.d.ts +38 -0
  177. package/dist/src/browser/errors.js +90 -0
  178. package/dist/src/browser/errors.test.d.ts +1 -0
  179. package/dist/src/browser/errors.test.js +60 -0
  180. package/dist/src/browser/extract.d.ts +69 -0
  181. package/dist/src/browser/extract.js +132 -0
  182. package/dist/src/browser/extract.test.d.ts +1 -0
  183. package/dist/src/browser/extract.test.js +129 -0
  184. package/dist/src/browser/find.d.ts +84 -0
  185. package/dist/src/browser/find.js +398 -0
  186. package/dist/src/browser/find.test.d.ts +1 -0
  187. package/dist/src/browser/find.test.js +180 -0
  188. package/dist/src/browser/html-tree.d.ts +75 -0
  189. package/dist/src/browser/html-tree.js +112 -0
  190. package/dist/src/browser/html-tree.test.d.ts +1 -0
  191. package/dist/src/browser/html-tree.test.js +181 -0
  192. package/dist/src/browser/index.d.ts +14 -0
  193. package/dist/src/browser/index.js +12 -0
  194. package/dist/src/browser/network-cache.d.ts +49 -0
  195. package/dist/src/browser/network-cache.js +78 -0
  196. package/dist/src/browser/network-cache.test.d.ts +1 -0
  197. package/dist/src/browser/network-cache.test.js +75 -0
  198. package/dist/src/browser/network-interceptor.d.ts +11 -0
  199. package/dist/src/browser/network-interceptor.js +11 -0
  200. package/dist/src/browser/network-key.d.ts +22 -0
  201. package/dist/src/browser/network-key.js +66 -0
  202. package/dist/src/browser/network-key.test.d.ts +1 -0
  203. package/dist/src/browser/network-key.test.js +49 -0
  204. package/dist/src/browser/page.d.ts +83 -0
  205. package/dist/src/browser/page.js +453 -0
  206. package/dist/src/browser/page.test.d.ts +1 -0
  207. package/dist/src/browser/page.test.js +406 -0
  208. package/dist/src/browser/profile.d.ts +14 -0
  209. package/dist/src/browser/profile.js +86 -0
  210. package/dist/src/browser/protocol.d.ts +65 -0
  211. package/dist/src/browser/protocol.js +1 -0
  212. package/dist/src/browser/runtime/local-cloak/actions.d.ts +3 -0
  213. package/dist/src/browser/runtime/local-cloak/actions.js +240 -0
  214. package/dist/src/browser/runtime/local-cloak/downloads.d.ts +3 -0
  215. package/dist/src/browser/runtime/local-cloak/downloads.js +28 -0
  216. package/dist/src/browser/runtime/local-cloak/network.d.ts +28 -0
  217. package/dist/src/browser/runtime/local-cloak/network.js +120 -0
  218. package/dist/src/browser/runtime/local-cloak/network.test.d.ts +1 -0
  219. package/dist/src/browser/runtime/local-cloak/network.test.js +124 -0
  220. package/dist/src/browser/runtime/local-cloak/profiles.d.ts +6 -0
  221. package/dist/src/browser/runtime/local-cloak/profiles.js +17 -0
  222. package/dist/src/browser/runtime/local-cloak/profiles.test.d.ts +1 -0
  223. package/dist/src/browser/runtime/local-cloak/profiles.test.js +19 -0
  224. package/dist/src/browser/runtime/local-cloak/provider.d.ts +15 -0
  225. package/dist/src/browser/runtime/local-cloak/provider.js +27 -0
  226. package/dist/src/browser/runtime/local-cloak/provider.test.d.ts +1 -0
  227. package/dist/src/browser/runtime/local-cloak/provider.test.js +244 -0
  228. package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +77 -0
  229. package/dist/src/browser/runtime/local-cloak/session-manager.js +280 -0
  230. package/dist/src/browser/runtime/local-cloak/session-manager.test.d.ts +1 -0
  231. package/dist/src/browser/runtime/local-cloak/session-manager.test.js +92 -0
  232. package/dist/src/browser/runtime/provider.d.ts +9 -0
  233. package/dist/src/browser/runtime/provider.js +1 -0
  234. package/dist/src/browser/runtime/provider.test.d.ts +2 -0
  235. package/dist/src/browser/runtime/provider.test.js +49 -0
  236. package/dist/src/browser/shape-filter.d.ts +52 -0
  237. package/dist/src/browser/shape-filter.js +101 -0
  238. package/dist/src/browser/shape-filter.test.d.ts +1 -0
  239. package/dist/src/browser/shape-filter.test.js +101 -0
  240. package/dist/src/browser/shape.d.ts +23 -0
  241. package/dist/src/browser/shape.js +95 -0
  242. package/dist/src/browser/shape.test.d.ts +1 -0
  243. package/dist/src/browser/shape.test.js +82 -0
  244. package/dist/src/browser/stealth.d.ts +11 -0
  245. package/dist/src/browser/stealth.js +359 -0
  246. package/dist/src/browser/stealth.test.d.ts +1 -0
  247. package/dist/src/browser/stealth.test.js +134 -0
  248. package/dist/src/browser/tabs.d.ts +13 -0
  249. package/dist/src/browser/tabs.js +70 -0
  250. package/dist/src/browser/target-errors.d.ts +39 -0
  251. package/dist/src/browser/target-errors.js +45 -0
  252. package/dist/src/browser/target-errors.test.d.ts +1 -0
  253. package/dist/src/browser/target-errors.test.js +94 -0
  254. package/dist/src/browser/target-resolver.d.ts +158 -0
  255. package/dist/src/browser/target-resolver.js +570 -0
  256. package/dist/src/browser/target-resolver.test.d.ts +1 -0
  257. package/dist/src/browser/target-resolver.test.js +118 -0
  258. package/dist/src/browser/utils.d.ts +20 -0
  259. package/dist/src/browser/utils.js +64 -0
  260. package/dist/src/browser/utils.test.d.ts +1 -0
  261. package/dist/src/browser/utils.test.js +29 -0
  262. package/dist/src/browser/verify-fixture.d.ts +65 -0
  263. package/dist/src/browser/verify-fixture.js +318 -0
  264. package/dist/src/browser/verify-fixture.test.d.ts +1 -0
  265. package/dist/src/browser/verify-fixture.test.js +219 -0
  266. package/dist/src/browser/visual-refs.d.ts +11 -0
  267. package/dist/src/browser/visual-refs.js +108 -0
  268. package/dist/src/browser.test.d.ts +1 -0
  269. package/dist/src/browser.test.js +297 -0
  270. package/dist/src/build-manifest.d.ts +103 -0
  271. package/dist/src/build-manifest.js +363 -0
  272. package/dist/src/build-manifest.test.d.ts +1 -0
  273. package/dist/src/build-manifest.test.js +341 -0
  274. package/dist/src/capabilityRouting.d.ts +19 -0
  275. package/dist/src/capabilityRouting.js +56 -0
  276. package/dist/src/capabilityRouting.test.d.ts +1 -0
  277. package/dist/src/capabilityRouting.test.js +63 -0
  278. package/dist/src/cli-argv-preprocess.d.ts +63 -0
  279. package/dist/src/cli-argv-preprocess.js +303 -0
  280. package/dist/src/cli-argv-preprocess.test.d.ts +1 -0
  281. package/dist/src/cli-argv-preprocess.test.js +304 -0
  282. package/dist/src/cli.d.ts +79 -0
  283. package/dist/src/cli.js +3350 -0
  284. package/dist/src/cli.test.d.ts +1 -0
  285. package/dist/src/cli.test.js +3041 -0
  286. package/dist/src/commanderAdapter.d.ts +21 -0
  287. package/dist/src/commanderAdapter.js +208 -0
  288. package/dist/src/commanderAdapter.test.d.ts +1 -0
  289. package/dist/src/commanderAdapter.test.js +352 -0
  290. package/dist/src/commands/auth.d.ts +40 -0
  291. package/dist/src/commands/auth.js +434 -0
  292. package/dist/src/commands/auth.test.d.ts +1 -0
  293. package/dist/src/commands/auth.test.js +252 -0
  294. package/dist/src/commands/daemon.d.ts +9 -0
  295. package/dist/src/commands/daemon.js +91 -0
  296. package/dist/src/commands/daemon.test.d.ts +1 -0
  297. package/dist/src/commands/daemon.test.js +293 -0
  298. package/dist/src/completion-fast.d.ts +22 -0
  299. package/dist/src/completion-fast.js +88 -0
  300. package/dist/src/completion-shared.d.ts +13 -0
  301. package/dist/src/completion-shared.js +61 -0
  302. package/dist/src/completion.d.ts +21 -0
  303. package/dist/src/completion.js +68 -0
  304. package/dist/src/completion.test.d.ts +1 -0
  305. package/dist/src/completion.test.js +24 -0
  306. package/dist/src/constants.d.ts +18 -0
  307. package/dist/src/constants.js +41 -0
  308. package/dist/src/convention-audit.d.ts +50 -0
  309. package/dist/src/convention-audit.js +553 -0
  310. package/dist/src/convention-audit.test.d.ts +1 -0
  311. package/dist/src/convention-audit.test.js +255 -0
  312. package/dist/src/daemon/server.d.ts +13 -0
  313. package/dist/src/daemon/server.js +190 -0
  314. package/dist/src/daemon/server.test.d.ts +1 -0
  315. package/dist/src/daemon/server.test.js +184 -0
  316. package/dist/src/daemon-utils.d.ts +19 -0
  317. package/dist/src/daemon-utils.js +46 -0
  318. package/dist/src/daemon.d.ts +1 -0
  319. package/dist/src/daemon.js +27 -0
  320. package/dist/src/daemon.test.d.ts +1 -0
  321. package/dist/src/daemon.test.js +69 -0
  322. package/dist/src/discovery.d.ts +46 -0
  323. package/dist/src/discovery.js +341 -0
  324. package/dist/src/doctor.d.ts +39 -0
  325. package/dist/src/doctor.js +174 -0
  326. package/dist/src/doctor.test.d.ts +1 -0
  327. package/dist/src/doctor.test.js +309 -0
  328. package/dist/src/download/article-download.d.ts +72 -0
  329. package/dist/src/download/article-download.js +305 -0
  330. package/dist/src/download/article-download.test.d.ts +1 -0
  331. package/dist/src/download/article-download.test.js +235 -0
  332. package/dist/src/download/index.d.ts +71 -0
  333. package/dist/src/download/index.js +363 -0
  334. package/dist/src/download/index.test.d.ts +1 -0
  335. package/dist/src/download/index.test.js +173 -0
  336. package/dist/src/download/media-download.d.ts +49 -0
  337. package/dist/src/download/media-download.js +127 -0
  338. package/dist/src/download/media-download.test.d.ts +1 -0
  339. package/dist/src/download/media-download.test.js +112 -0
  340. package/dist/src/download/progress.d.ts +36 -0
  341. package/dist/src/download/progress.js +120 -0
  342. package/dist/src/download/progress.test.d.ts +1 -0
  343. package/dist/src/download/progress.test.js +36 -0
  344. package/dist/src/electron-apps.d.ts +31 -0
  345. package/dist/src/electron-apps.js +83 -0
  346. package/dist/src/electron-apps.test.d.ts +1 -0
  347. package/dist/src/electron-apps.test.js +67 -0
  348. package/dist/src/engine.test.d.ts +1 -0
  349. package/dist/src/engine.test.js +312 -0
  350. package/dist/src/errors.d.ts +114 -0
  351. package/dist/src/errors.js +174 -0
  352. package/dist/src/errors.test.d.ts +1 -0
  353. package/dist/src/errors.test.js +109 -0
  354. package/dist/src/execution.d.ts +24 -0
  355. package/dist/src/execution.js +511 -0
  356. package/dist/src/execution.test.d.ts +1 -0
  357. package/dist/src/execution.test.js +657 -0
  358. package/dist/src/external-clis.yaml +0 -37
  359. package/dist/src/external.d.ts +49 -0
  360. package/dist/src/external.js +211 -0
  361. package/dist/src/external.test.d.ts +1 -0
  362. package/dist/src/external.test.js +95 -0
  363. package/dist/src/generate-release-notes-cli.test.d.ts +1 -0
  364. package/dist/src/generate-release-notes-cli.test.js +140 -0
  365. package/dist/src/help.d.ts +88 -0
  366. package/dist/src/help.js +556 -0
  367. package/dist/src/help.test.d.ts +1 -0
  368. package/dist/src/help.test.js +58 -0
  369. package/dist/src/hooks.d.ts +46 -0
  370. package/dist/src/hooks.js +58 -0
  371. package/dist/src/hooks.test.d.ts +4 -0
  372. package/dist/src/hooks.test.js +92 -0
  373. package/dist/src/interceptor.d.ts +44 -0
  374. package/dist/src/interceptor.js +183 -0
  375. package/dist/src/interceptor.test.d.ts +4 -0
  376. package/dist/src/interceptor.test.js +81 -0
  377. package/dist/src/launcher.d.ts +41 -0
  378. package/dist/src/launcher.js +226 -0
  379. package/dist/src/launcher.test.d.ts +1 -0
  380. package/dist/src/launcher.test.js +153 -0
  381. package/dist/src/logger.d.ts +26 -0
  382. package/dist/src/logger.js +49 -0
  383. package/dist/src/main.d.ts +5 -0
  384. package/dist/src/main.js +177 -0
  385. package/dist/src/manifest-types.d.ts +43 -0
  386. package/dist/src/manifest-types.js +9 -0
  387. package/dist/src/node-network.d.ts +10 -0
  388. package/dist/src/node-network.js +174 -0
  389. package/dist/src/node-network.test.d.ts +1 -0
  390. package/dist/src/node-network.test.js +55 -0
  391. package/dist/src/observation/artifact.d.ts +16 -0
  392. package/dist/src/observation/artifact.js +260 -0
  393. package/dist/src/observation/artifact.test.d.ts +1 -0
  394. package/dist/src/observation/artifact.test.js +121 -0
  395. package/dist/src/observation/events.d.ts +89 -0
  396. package/dist/src/observation/events.js +1 -0
  397. package/dist/src/observation/index.d.ts +7 -0
  398. package/dist/src/observation/index.js +7 -0
  399. package/dist/src/observation/manager.d.ts +9 -0
  400. package/dist/src/observation/manager.js +27 -0
  401. package/dist/src/observation/manager.test.d.ts +1 -0
  402. package/dist/src/observation/manager.test.js +13 -0
  403. package/dist/src/observation/redaction.d.ts +11 -0
  404. package/dist/src/observation/redaction.js +81 -0
  405. package/dist/src/observation/redaction.test.d.ts +1 -0
  406. package/dist/src/observation/redaction.test.js +32 -0
  407. package/dist/src/observation/retention.d.ts +32 -0
  408. package/dist/src/observation/retention.js +160 -0
  409. package/dist/src/observation/retention.test.d.ts +1 -0
  410. package/dist/src/observation/retention.test.js +118 -0
  411. package/dist/src/observation/ring-buffer.d.ts +22 -0
  412. package/dist/src/observation/ring-buffer.js +45 -0
  413. package/dist/src/observation/ring-buffer.test.d.ts +1 -0
  414. package/dist/src/observation/ring-buffer.test.js +22 -0
  415. package/dist/src/observation/session.d.ts +25 -0
  416. package/dist/src/observation/session.js +50 -0
  417. package/dist/src/output.d.ts +14 -0
  418. package/dist/src/output.js +152 -0
  419. package/dist/src/output.test.d.ts +1 -0
  420. package/dist/src/output.test.js +53 -0
  421. package/dist/src/package-exports.test.d.ts +1 -0
  422. package/dist/src/package-exports.test.js +112 -0
  423. package/dist/src/package-paths.d.ts +8 -0
  424. package/dist/src/package-paths.js +41 -0
  425. package/dist/src/pipeline/executor.d.ts +11 -0
  426. package/dist/src/pipeline/executor.js +93 -0
  427. package/dist/src/pipeline/executor.test.d.ts +4 -0
  428. package/dist/src/pipeline/executor.test.js +182 -0
  429. package/dist/src/pipeline/index.d.ts +5 -0
  430. package/dist/src/pipeline/index.js +5 -0
  431. package/dist/src/pipeline/registry.d.ts +28 -0
  432. package/dist/src/pipeline/registry.js +55 -0
  433. package/dist/src/pipeline/steps/browser.d.ts +13 -0
  434. package/dist/src/pipeline/steps/browser.js +86 -0
  435. package/dist/src/pipeline/steps/download.d.ts +18 -0
  436. package/dist/src/pipeline/steps/download.js +252 -0
  437. package/dist/src/pipeline/steps/download.test.d.ts +1 -0
  438. package/dist/src/pipeline/steps/download.test.js +102 -0
  439. package/dist/src/pipeline/steps/fetch.d.ts +5 -0
  440. package/dist/src/pipeline/steps/fetch.js +122 -0
  441. package/dist/src/pipeline/steps/fetch.test.d.ts +1 -0
  442. package/dist/src/pipeline/steps/fetch.test.js +117 -0
  443. package/dist/src/pipeline/steps/intercept.d.ts +5 -0
  444. package/dist/src/pipeline/steps/intercept.js +50 -0
  445. package/dist/src/pipeline/steps/tap.d.ts +12 -0
  446. package/dist/src/pipeline/steps/tap.js +93 -0
  447. package/dist/src/pipeline/steps/transform.d.ts +9 -0
  448. package/dist/src/pipeline/steps/transform.js +70 -0
  449. package/dist/src/pipeline/template.d.ts +17 -0
  450. package/dist/src/pipeline/template.js +344 -0
  451. package/dist/src/pipeline/template.test.d.ts +4 -0
  452. package/dist/src/pipeline/template.test.js +197 -0
  453. package/dist/src/pipeline/transform.test.d.ts +4 -0
  454. package/dist/src/pipeline/transform.test.js +133 -0
  455. package/dist/src/plugin-manifest.d.ts +70 -0
  456. package/dist/src/plugin-manifest.js +160 -0
  457. package/dist/src/plugin-manifest.test.d.ts +4 -0
  458. package/dist/src/plugin-manifest.test.js +179 -0
  459. package/dist/src/plugin-scaffold.d.ts +28 -0
  460. package/dist/src/plugin-scaffold.js +143 -0
  461. package/dist/src/plugin-scaffold.test.d.ts +4 -0
  462. package/dist/src/plugin-scaffold.test.js +83 -0
  463. package/dist/src/plugin.d.ts +146 -0
  464. package/dist/src/plugin.js +1303 -0
  465. package/dist/src/plugin.test.d.ts +4 -0
  466. package/dist/src/plugin.test.js +1363 -0
  467. package/dist/src/registry-api.d.ts +13 -0
  468. package/dist/src/registry-api.js +10 -0
  469. package/dist/src/registry.d.ts +123 -0
  470. package/dist/src/registry.js +125 -0
  471. package/dist/src/registry.test.d.ts +4 -0
  472. package/dist/src/registry.test.js +209 -0
  473. package/dist/src/release-notes.d.ts +38 -0
  474. package/dist/src/release-notes.js +99 -0
  475. package/dist/src/release-notes.test.d.ts +1 -0
  476. package/dist/src/release-notes.test.js +61 -0
  477. package/dist/src/runtime-copy.test.d.ts +1 -0
  478. package/dist/src/runtime-copy.test.js +29 -0
  479. package/dist/src/runtime-detect.d.ts +31 -0
  480. package/dist/src/runtime-detect.js +47 -0
  481. package/dist/src/runtime-detect.test.d.ts +1 -0
  482. package/dist/src/runtime-detect.test.js +39 -0
  483. package/dist/src/runtime-identity.test.d.ts +1 -0
  484. package/dist/src/runtime-identity.test.js +18 -0
  485. package/dist/src/runtime.d.ts +47 -0
  486. package/dist/src/runtime.js +54 -0
  487. package/dist/src/scripts/framework.d.ts +7 -0
  488. package/dist/src/scripts/framework.js +25 -0
  489. package/dist/src/scripts/interact.d.ts +4 -0
  490. package/dist/src/scripts/interact.js +20 -0
  491. package/dist/src/scripts/store.d.ts +13 -0
  492. package/dist/src/scripts/store.js +48 -0
  493. package/dist/src/serialization.d.ts +42 -0
  494. package/dist/src/serialization.js +103 -0
  495. package/dist/src/serialization.test.d.ts +1 -0
  496. package/dist/src/serialization.test.js +78 -0
  497. package/dist/src/skills.d.ts +14 -0
  498. package/dist/src/skills.js +127 -0
  499. package/dist/src/skills.test.d.ts +1 -0
  500. package/dist/src/skills.test.js +71 -0
  501. package/dist/src/snapshotFormatter.d.ts +11 -0
  502. package/dist/src/snapshotFormatter.js +336 -0
  503. package/dist/src/snapshotFormatter.test.d.ts +7 -0
  504. package/dist/src/snapshotFormatter.test.js +521 -0
  505. package/dist/src/tui.d.ts +28 -0
  506. package/dist/src/tui.js +179 -0
  507. package/dist/src/tui.test.d.ts +1 -0
  508. package/dist/src/tui.test.js +19 -0
  509. package/dist/src/types.d.ts +236 -0
  510. package/dist/src/types.js +7 -0
  511. package/dist/src/update-check.d.ts +66 -0
  512. package/dist/src/update-check.js +206 -0
  513. package/dist/src/update-check.test.d.ts +1 -0
  514. package/dist/src/update-check.test.js +117 -0
  515. package/dist/src/utils.d.ts +57 -0
  516. package/dist/src/utils.js +152 -0
  517. package/dist/src/utils.test.d.ts +1 -0
  518. package/dist/src/utils.test.js +155 -0
  519. package/dist/src/validate.d.ts +21 -0
  520. package/dist/src/validate.js +130 -0
  521. package/dist/src/validate.test.d.ts +9 -0
  522. package/dist/src/validate.test.js +90 -0
  523. package/dist/src/verify.d.ts +26 -0
  524. package/dist/src/verify.js +67 -0
  525. package/dist/src/version.d.ts +4 -0
  526. package/dist/src/version.js +22 -0
  527. package/package.json +7 -3
  528. package/scripts/check-package-bin.mjs +95 -0
  529. package/scripts/generate-release-notes.ts +234 -0
  530. package/scripts/postinstall.js +1 -1
  531. package/scripts/silent-column-drop-baseline.json +0 -498
  532. package/scripts/typed-error-lint-baseline.json +0 -464
  533. package/skills/webcmd-adapter-author/SKILL.md +216 -213
  534. package/skills/webcmd-adapter-author/references/adapter-template.md +206 -399
  535. package/skills/webcmd-adapter-author/references/api-discovery.md +111 -220
  536. package/skills/webcmd-adapter-author/references/coverage-matrix.md +34 -68
  537. package/skills/webcmd-adapter-author/references/field-conventions.md +84 -167
  538. package/skills/webcmd-adapter-author/references/field-decode-playbook.md +60 -146
  539. package/skills/webcmd-adapter-author/references/jsdom-fixture-pattern.md +111 -178
  540. package/skills/webcmd-adapter-author/references/output-design.md +47 -125
  541. package/skills/webcmd-adapter-author/references/site-memory.md +116 -166
  542. package/skills/webcmd-adapter-author/references/site-recon.md +74 -78
  543. package/skills/webcmd-adapter-author/references/strategy-selection.md +80 -124
  544. package/skills/webcmd-adapter-author/references/success-rate-pitfalls.md +80 -105
  545. package/skills/webcmd-adapter-author/references/typed-errors.md +87 -178
  546. package/skills/webcmd-autofix/SKILL.md +136 -143
  547. package/skills/webcmd-sitemap-author/SKILL.md +58 -67
  548. package/skills/webcmd-sitemap-author/references/sitemap-schema.md +354 -494
  549. package/skills/webcmd-usage/SKILL.md +106 -97
  550. package/clis/12306/auth.js +0 -59
  551. package/clis/12306/me.js +0 -73
  552. package/clis/12306/orders.js +0 -96
  553. package/clis/12306/passengers.js +0 -90
  554. package/clis/12306/price.js +0 -166
  555. package/clis/12306/stations.js +0 -66
  556. package/clis/12306/train.js +0 -91
  557. package/clis/12306/trains.js +0 -166
  558. package/clis/12306/utils.js +0 -272
  559. package/clis/12306/utils.test.js +0 -424
  560. package/clis/1688/assets.js +0 -205
  561. package/clis/1688/assets.test.js +0 -39
  562. package/clis/1688/auth.js +0 -46
  563. package/clis/1688/download.js +0 -77
  564. package/clis/1688/download.test.js +0 -31
  565. package/clis/1688/item.js +0 -188
  566. package/clis/1688/item.test.js +0 -67
  567. package/clis/1688/search.js +0 -310
  568. package/clis/1688/search.test.js +0 -75
  569. package/clis/1688/shared.js +0 -557
  570. package/clis/1688/shared.test.js +0 -57
  571. package/clis/1688/store.js +0 -227
  572. package/clis/1688/store.test.js +0 -62
  573. package/clis/1point3acres/auth.js +0 -52
  574. package/clis/1point3acres/digest.js +0 -35
  575. package/clis/1point3acres/forum.js +0 -51
  576. package/clis/1point3acres/forums.js +0 -44
  577. package/clis/1point3acres/hot.js +0 -35
  578. package/clis/1point3acres/latest.js +0 -35
  579. package/clis/1point3acres/notifications.js +0 -64
  580. package/clis/1point3acres/search.js +0 -71
  581. package/clis/1point3acres/thread.js +0 -117
  582. package/clis/1point3acres/user.js +0 -77
  583. package/clis/1point3acres/utils.js +0 -247
  584. package/clis/36kr/article.js +0 -66
  585. package/clis/36kr/article.test.js +0 -46
  586. package/clis/36kr/hot.js +0 -87
  587. package/clis/36kr/hot.test.js +0 -15
  588. package/clis/36kr/news.js +0 -52
  589. package/clis/36kr/news.test.js +0 -85
  590. package/clis/36kr/search.js +0 -79
  591. package/clis/51job/company.js +0 -126
  592. package/clis/51job/detail.js +0 -109
  593. package/clis/51job/hot.js +0 -56
  594. package/clis/51job/search.js +0 -80
  595. package/clis/51job/utils.js +0 -302
  596. package/clis/51job/utils.test.js +0 -69
  597. package/clis/aibase/news.js +0 -110
  598. package/clis/aibase/news.test.js +0 -59
  599. package/clis/autohome/__fixtures__/catalog.html +0 -11
  600. package/clis/autohome/__fixtures__/koubei.json +0 -116
  601. package/clis/autohome/autohome.test.js +0 -115
  602. package/clis/autohome/brand.js +0 -108
  603. package/clis/autohome/score.js +0 -103
  604. package/clis/autohome/utils.js +0 -157
  605. package/clis/baidu-scholar/search.js +0 -87
  606. package/clis/baidu-scholar/search.test.js +0 -23
  607. package/clis/bilibili/auth.js +0 -36
  608. package/clis/bilibili/comment.js +0 -107
  609. package/clis/bilibili/comment.test.js +0 -153
  610. package/clis/bilibili/comments.js +0 -136
  611. package/clis/bilibili/comments.test.js +0 -142
  612. package/clis/bilibili/download.js +0 -178
  613. package/clis/bilibili/download.test.js +0 -173
  614. package/clis/bilibili/dynamic.js +0 -34
  615. package/clis/bilibili/dynamic.test.js +0 -68
  616. package/clis/bilibili/favorite.js +0 -47
  617. package/clis/bilibili/feed.js +0 -220
  618. package/clis/bilibili/follow.js +0 -140
  619. package/clis/bilibili/follow.test.js +0 -203
  620. package/clis/bilibili/following.js +0 -44
  621. package/clis/bilibili/history.js +0 -45
  622. package/clis/bilibili/hot.js +0 -40
  623. package/clis/bilibili/hot.test.js +0 -17
  624. package/clis/bilibili/me.js +0 -13
  625. package/clis/bilibili/ranking.js +0 -25
  626. package/clis/bilibili/search.js +0 -24
  627. package/clis/bilibili/subtitle.js +0 -141
  628. package/clis/bilibili/subtitle.test.js +0 -240
  629. package/clis/bilibili/summary.js +0 -167
  630. package/clis/bilibili/summary.test.js +0 -210
  631. package/clis/bilibili/unfollow.js +0 -121
  632. package/clis/bilibili/user-videos.js +0 -39
  633. package/clis/bilibili/utils.js +0 -273
  634. package/clis/bilibili/utils.test.js +0 -97
  635. package/clis/bilibili/video.js +0 -155
  636. package/clis/bilibili/video.test.js +0 -308
  637. package/clis/boss/auth.js +0 -47
  638. package/clis/boss/batchgreet.js +0 -61
  639. package/clis/boss/chatlist.js +0 -116
  640. package/clis/boss/chatlist.test.js +0 -211
  641. package/clis/boss/chatmsg.js +0 -117
  642. package/clis/boss/chatmsg.test.js +0 -230
  643. package/clis/boss/detail.js +0 -63
  644. package/clis/boss/exchange.js +0 -46
  645. package/clis/boss/greet.js +0 -49
  646. package/clis/boss/invite.js +0 -64
  647. package/clis/boss/joblist.js +0 -31
  648. package/clis/boss/mark.js +0 -70
  649. package/clis/boss/recommend.js +0 -45
  650. package/clis/boss/resume.js +0 -150
  651. package/clis/boss/search.js +0 -197
  652. package/clis/boss/search.test.js +0 -78
  653. package/clis/boss/send.js +0 -44
  654. package/clis/boss/stats.js +0 -66
  655. package/clis/boss/utils.js +0 -468
  656. package/clis/boss/utils.test.js +0 -34
  657. package/clis/chaoxing/assignments.js +0 -76
  658. package/clis/chaoxing/auth.js +0 -54
  659. package/clis/chaoxing/exams.js +0 -75
  660. package/clis/chaoxing/utils.js +0 -223
  661. package/clis/chaoxing/utils.test.js +0 -45
  662. package/clis/cnki/search.js +0 -61
  663. package/clis/cnki/search.test.js +0 -18
  664. package/clis/ctrip/auth.js +0 -50
  665. package/clis/ctrip/ctrip.test.js +0 -719
  666. package/clis/ctrip/flight.js +0 -136
  667. package/clis/ctrip/hotel-search.js +0 -132
  668. package/clis/ctrip/hotel-suggest.js +0 -45
  669. package/clis/ctrip/search.js +0 -41
  670. package/clis/ctrip/utils.js +0 -473
  671. package/clis/deepseek/ask.js +0 -158
  672. package/clis/deepseek/ask.test.js +0 -399
  673. package/clis/deepseek/auth.js +0 -54
  674. package/clis/deepseek/detail.js +0 -46
  675. package/clis/deepseek/detail.test.js +0 -81
  676. package/clis/deepseek/history.js +0 -27
  677. package/clis/deepseek/new.js +0 -33
  678. package/clis/deepseek/read.js +0 -25
  679. package/clis/deepseek/send.js +0 -140
  680. package/clis/deepseek/send.test.js +0 -107
  681. package/clis/deepseek/status.js +0 -26
  682. package/clis/deepseek/utils.js +0 -487
  683. package/clis/deepseek/utils.test.js +0 -370
  684. package/clis/dianping/__fixtures__/search.html +0 -168
  685. package/clis/dianping/__fixtures__/shop.html +0 -6
  686. package/clis/dianping/auth.js +0 -49
  687. package/clis/dianping/cityResolver.js +0 -185
  688. package/clis/dianping/dianping.test.js +0 -578
  689. package/clis/dianping/search.js +0 -157
  690. package/clis/dianping/shop.js +0 -173
  691. package/clis/dianping/utils.js +0 -157
  692. package/clis/dongchedi/__fixtures__/search.json +0 -60
  693. package/clis/dongchedi/__fixtures__/series-detail.json +0 -911
  694. package/clis/dongchedi/__fixtures__/series-score.json +0 -1396
  695. package/clis/dongchedi/dongchedi.test.js +0 -191
  696. package/clis/dongchedi/koubei.js +0 -85
  697. package/clis/dongchedi/models.js +0 -91
  698. package/clis/dongchedi/score.js +0 -83
  699. package/clis/dongchedi/search.js +0 -83
  700. package/clis/dongchedi/series.js +0 -87
  701. package/clis/dongchedi/specs.js +0 -115
  702. package/clis/dongchedi/utils.js +0 -180
  703. package/clis/douban/auth.js +0 -50
  704. package/clis/douban/book-hot.js +0 -15
  705. package/clis/douban/download.js +0 -68
  706. package/clis/douban/download.test.js +0 -170
  707. package/clis/douban/marks.js +0 -116
  708. package/clis/douban/movie-hot.js +0 -15
  709. package/clis/douban/movie-hot.test.js +0 -14
  710. package/clis/douban/photos.js +0 -35
  711. package/clis/douban/reviews.js +0 -107
  712. package/clis/douban/search.js +0 -18
  713. package/clis/douban/search.test.js +0 -11
  714. package/clis/douban/subject.js +0 -46
  715. package/clis/douban/subject.test.js +0 -11
  716. package/clis/douban/top250.js +0 -68
  717. package/clis/douban/utils.js +0 -657
  718. package/clis/douban/utils.test.js +0 -488
  719. package/clis/doubao/ask.js +0 -40
  720. package/clis/doubao/auth.js +0 -66
  721. package/clis/doubao/detail.js +0 -35
  722. package/clis/doubao/detail.test.js +0 -42
  723. package/clis/doubao/history.js +0 -30
  724. package/clis/doubao/history.test.js +0 -37
  725. package/clis/doubao/meeting-summary.js +0 -41
  726. package/clis/doubao/meeting-transcript.js +0 -38
  727. package/clis/doubao/new.js +0 -22
  728. package/clis/doubao/read.js +0 -21
  729. package/clis/doubao/send.js +0 -24
  730. package/clis/doubao/status.js +0 -26
  731. package/clis/doubao/utils.js +0 -1156
  732. package/clis/doubao/utils.test.js +0 -396
  733. package/clis/doubao-app/ask.js +0 -54
  734. package/clis/doubao-app/dump.js +0 -25
  735. package/clis/doubao-app/new.js +0 -21
  736. package/clis/doubao-app/read.js +0 -19
  737. package/clis/doubao-app/screenshot.js +0 -19
  738. package/clis/doubao-app/send.js +0 -28
  739. package/clis/doubao-app/status.js +0 -17
  740. package/clis/doubao-app/utils.js +0 -110
  741. package/clis/douyin/_shared/browser-fetch.js +0 -66
  742. package/clis/douyin/_shared/browser-fetch.test.js +0 -64
  743. package/clis/douyin/_shared/creation-id.js +0 -5
  744. package/clis/douyin/_shared/creation-id.test.js +0 -22
  745. package/clis/douyin/_shared/evaluate-result.js +0 -16
  746. package/clis/douyin/_shared/imagex-upload.js +0 -53
  747. package/clis/douyin/_shared/imagex-upload.test.js +0 -87
  748. package/clis/douyin/_shared/public-api.js +0 -29
  749. package/clis/douyin/_shared/sts2.js +0 -21
  750. package/clis/douyin/_shared/sts2.test.js +0 -27
  751. package/clis/douyin/_shared/text-extra.js +0 -15
  752. package/clis/douyin/_shared/text-extra.test.js +0 -37
  753. package/clis/douyin/_shared/timing.js +0 -22
  754. package/clis/douyin/_shared/timing.test.js +0 -28
  755. package/clis/douyin/_shared/tos-upload-short-read.test.js +0 -83
  756. package/clis/douyin/_shared/tos-upload.js +0 -331
  757. package/clis/douyin/_shared/tos-upload.test.js +0 -229
  758. package/clis/douyin/_shared/transcode.js +0 -45
  759. package/clis/douyin/_shared/transcode.test.js +0 -91
  760. package/clis/douyin/_shared/vod-upload.js +0 -212
  761. package/clis/douyin/_shared/vod-upload.test.js +0 -38
  762. package/clis/douyin/activities.js +0 -23
  763. package/clis/douyin/activities.test.js +0 -55
  764. package/clis/douyin/auth.js +0 -39
  765. package/clis/douyin/collections.js +0 -23
  766. package/clis/douyin/collections.test.js +0 -45
  767. package/clis/douyin/delete.js +0 -152
  768. package/clis/douyin/delete.test.js +0 -100
  769. package/clis/douyin/draft.js +0 -355
  770. package/clis/douyin/draft.test.js +0 -335
  771. package/clis/douyin/drafts.js +0 -24
  772. package/clis/douyin/drafts.test.js +0 -11
  773. package/clis/douyin/hashtag.js +0 -114
  774. package/clis/douyin/hashtag.test.js +0 -171
  775. package/clis/douyin/location.js +0 -25
  776. package/clis/douyin/location.test.js +0 -23
  777. package/clis/douyin/profile.js +0 -29
  778. package/clis/douyin/profile.test.js +0 -46
  779. package/clis/douyin/publish-upload-id.test.js +0 -206
  780. package/clis/douyin/publish.js +0 -341
  781. package/clis/douyin/publish.test.js +0 -38
  782. package/clis/douyin/search.js +0 -308
  783. package/clis/douyin/search.test.js +0 -307
  784. package/clis/douyin/stats.js +0 -28
  785. package/clis/douyin/stats.test.js +0 -22
  786. package/clis/douyin/update.js +0 -32
  787. package/clis/douyin/update.test.js +0 -11
  788. package/clis/douyin/user-videos.js +0 -82
  789. package/clis/douyin/user-videos.test.js +0 -151
  790. package/clis/douyin/videos.js +0 -52
  791. package/clis/douyin/videos.test.js +0 -54
  792. package/clis/eastmoney/_secid.js +0 -78
  793. package/clis/eastmoney/announcement.js +0 -53
  794. package/clis/eastmoney/convertible.js +0 -74
  795. package/clis/eastmoney/etf.js +0 -66
  796. package/clis/eastmoney/holders.js +0 -79
  797. package/clis/eastmoney/hot-rank.js +0 -51
  798. package/clis/eastmoney/hot-rank.test.js +0 -59
  799. package/clis/eastmoney/index-board.js +0 -97
  800. package/clis/eastmoney/kline.js +0 -88
  801. package/clis/eastmoney/kuaixun.js +0 -55
  802. package/clis/eastmoney/longhu.js +0 -68
  803. package/clis/eastmoney/money-flow.js +0 -79
  804. package/clis/eastmoney/northbound.js +0 -58
  805. package/clis/eastmoney/quote.js +0 -108
  806. package/clis/eastmoney/rank.js +0 -95
  807. package/clis/eastmoney/sectors.js +0 -77
  808. package/clis/flomo/auth.js +0 -55
  809. package/clis/flomo/memos.js +0 -228
  810. package/clis/flomo/memos.test.js +0 -144
  811. package/clis/gitee/auth.js +0 -41
  812. package/clis/gitee/index.js +0 -3
  813. package/clis/gitee/search.js +0 -137
  814. package/clis/gitee/search.test.js +0 -65
  815. package/clis/gitee/trending.js +0 -568
  816. package/clis/gitee/user.js +0 -200
  817. package/clis/gitee/user.test.js +0 -63
  818. package/clis/gov-law/commands.test.js +0 -39
  819. package/clis/gov-law/recent.js +0 -22
  820. package/clis/gov-law/search.js +0 -41
  821. package/clis/gov-law/shared.js +0 -51
  822. package/clis/gov-policy/__fixtures__/recent.html +0 -16
  823. package/clis/gov-policy/__fixtures__/search.html +0 -41
  824. package/clis/gov-policy/gov-policy.test.js +0 -224
  825. package/clis/gov-policy/recent.js +0 -90
  826. package/clis/gov-policy/search.js +0 -91
  827. package/clis/gov-policy/utils.js +0 -54
  828. package/clis/guazi/__fixtures__/detail.html +0 -7
  829. package/clis/guazi/__fixtures__/list.html +0 -5
  830. package/clis/guazi/browse.js +0 -95
  831. package/clis/guazi/car.js +0 -110
  832. package/clis/guazi/guazi.test.js +0 -126
  833. package/clis/guazi/utils.js +0 -133
  834. package/clis/huodongxing/events.js +0 -322
  835. package/clis/huodongxing/events.test.js +0 -296
  836. package/clis/hupu/__fixtures__/hot-home.html +0 -64
  837. package/clis/hupu/auth.js +0 -47
  838. package/clis/hupu/detail.js +0 -72
  839. package/clis/hupu/hot.js +0 -163
  840. package/clis/hupu/hot.test.js +0 -224
  841. package/clis/hupu/like.js +0 -76
  842. package/clis/hupu/mentions.js +0 -160
  843. package/clis/hupu/reply.js +0 -72
  844. package/clis/hupu/search.js +0 -60
  845. package/clis/hupu/unlike.js +0 -76
  846. package/clis/hupu/utils.js +0 -319
  847. package/clis/jd/add-cart.js +0 -72
  848. package/clis/jd/auth.js +0 -46
  849. package/clis/jd/cart.js +0 -80
  850. package/clis/jd/commands.test.js +0 -41
  851. package/clis/jd/detail.js +0 -63
  852. package/clis/jd/item.js +0 -730
  853. package/clis/jd/item.test.js +0 -354
  854. package/clis/jd/item.test.ts +0 -517
  855. package/clis/jd/reviews.js +0 -55
  856. package/clis/jd/search.js +0 -66
  857. package/clis/jianyu/auth.js +0 -62
  858. package/clis/jianyu/detail.js +0 -21
  859. package/clis/jianyu/search.js +0 -634
  860. package/clis/jianyu/search.test.js +0 -153
  861. package/clis/jianyu/shared/china-bid-search.js +0 -165
  862. package/clis/jianyu/shared/procurement-contract.js +0 -324
  863. package/clis/jianyu/shared/procurement-contract.test.js +0 -72
  864. package/clis/jianyu/shared/procurement-detail.js +0 -107
  865. package/clis/jianyu/shared/procurement-detail.test.js +0 -84
  866. package/clis/jike/auth.js +0 -48
  867. package/clis/jike/comment.js +0 -107
  868. package/clis/jike/create.js +0 -106
  869. package/clis/jike/feed.js +0 -68
  870. package/clis/jike/like.js +0 -61
  871. package/clis/jike/notifications.js +0 -169
  872. package/clis/jike/post.js +0 -72
  873. package/clis/jike/read.test.js +0 -86
  874. package/clis/jike/repost.js +0 -103
  875. package/clis/jike/search.js +0 -68
  876. package/clis/jike/topic.js +0 -65
  877. package/clis/jike/user.js +0 -65
  878. package/clis/jike/utils.js +0 -25
  879. package/clis/jimeng/auth.js +0 -46
  880. package/clis/jimeng/generate.js +0 -84
  881. package/clis/jimeng/history.js +0 -48
  882. package/clis/jimeng/new.js +0 -44
  883. package/clis/jimeng/workspaces.js +0 -42
  884. package/clis/juejin/hot.js +0 -37
  885. package/clis/juejin/juejin.test.js +0 -241
  886. package/clis/juejin/recommend.js +0 -61
  887. package/clis/juejin/utils.js +0 -199
  888. package/clis/ke/auth.js +0 -46
  889. package/clis/ke/chengjiao.js +0 -78
  890. package/clis/ke/ershoufang.js +0 -101
  891. package/clis/ke/utils.js +0 -104
  892. package/clis/ke/xiaoqu.js +0 -78
  893. package/clis/ke/zufang.js +0 -95
  894. package/clis/kimi/_utils.js +0 -110
  895. package/clis/kimi/audit-extras.js +0 -268
  896. package/clis/kimi/auth.js +0 -57
  897. package/clis/kimi/chat.js +0 -470
  898. package/clis/kimi/kimi.test.js +0 -187
  899. package/clis/kimi/storage.js +0 -169
  900. package/clis/kimi/ui.js +0 -314
  901. package/clis/kimi/usage.js +0 -144
  902. package/clis/linux-do/auth.js +0 -55
  903. package/clis/linux-do/categories.js +0 -50
  904. package/clis/linux-do/feed.js +0 -395
  905. package/clis/linux-do/feed.test.js +0 -153
  906. package/clis/linux-do/search.js +0 -29
  907. package/clis/linux-do/tags.js +0 -28
  908. package/clis/linux-do/topic-content.js +0 -155
  909. package/clis/linux-do/topic-content.test.js +0 -59
  910. package/clis/linux-do/topic.js +0 -53
  911. package/clis/linux-do/user-posts.js +0 -57
  912. package/clis/linux-do/user-topics.js +0 -37
  913. package/clis/maimai/auth.js +0 -47
  914. package/clis/maimai/search-talents.js +0 -192
  915. package/clis/maimai/search-talents.test.js +0 -29
  916. package/clis/mubu/doc.js +0 -41
  917. package/clis/mubu/docs.js +0 -44
  918. package/clis/mubu/notes.js +0 -245
  919. package/clis/mubu/recent.js +0 -28
  920. package/clis/mubu/search.js +0 -63
  921. package/clis/mubu/utils.js +0 -304
  922. package/clis/nowcoder/auth.js +0 -65
  923. package/clis/nowcoder/companies.js +0 -24
  924. package/clis/nowcoder/creators.js +0 -28
  925. package/clis/nowcoder/detail.js +0 -62
  926. package/clis/nowcoder/experience.js +0 -37
  927. package/clis/nowcoder/hot.js +0 -25
  928. package/clis/nowcoder/jobs.js +0 -22
  929. package/clis/nowcoder/notifications.js +0 -30
  930. package/clis/nowcoder/papers.js +0 -41
  931. package/clis/nowcoder/practice.js +0 -38
  932. package/clis/nowcoder/recommend.js +0 -31
  933. package/clis/nowcoder/referral.js +0 -40
  934. package/clis/nowcoder/salary.js +0 -41
  935. package/clis/nowcoder/search.js +0 -50
  936. package/clis/nowcoder/suggest.js +0 -34
  937. package/clis/nowcoder/topics.js +0 -28
  938. package/clis/nowcoder/trending.js +0 -26
  939. package/clis/ones/common.js +0 -144
  940. package/clis/ones/enrich-tasks.js +0 -37
  941. package/clis/ones/login.js +0 -81
  942. package/clis/ones/logout.js +0 -18
  943. package/clis/ones/me.js +0 -31
  944. package/clis/ones/my-tasks.js +0 -121
  945. package/clis/ones/resolve-labels.js +0 -64
  946. package/clis/ones/task-helpers.js +0 -212
  947. package/clis/ones/task-helpers.test.js +0 -12
  948. package/clis/ones/task.js +0 -67
  949. package/clis/ones/tasks.js +0 -80
  950. package/clis/ones/token-info.js +0 -43
  951. package/clis/ones/worklog.js +0 -268
  952. package/clis/ones/worklog.test.js +0 -20
  953. package/clis/powerchina/auth.js +0 -52
  954. package/clis/powerchina/search.js +0 -251
  955. package/clis/powerchina/search.test.js +0 -93
  956. package/clis/quark/auth.js +0 -47
  957. package/clis/quark/ls.js +0 -64
  958. package/clis/quark/mkdir.js +0 -37
  959. package/clis/quark/mv.js +0 -54
  960. package/clis/quark/rename.js +0 -27
  961. package/clis/quark/rm.js +0 -25
  962. package/clis/quark/save.js +0 -81
  963. package/clis/quark/share-tree.js +0 -46
  964. package/clis/quark/utils.js +0 -146
  965. package/clis/quark/utils.test.js +0 -58
  966. package/clis/qwen/ask.js +0 -104
  967. package/clis/qwen/ask.test.js +0 -36
  968. package/clis/qwen/auth.js +0 -56
  969. package/clis/qwen/detail.js +0 -62
  970. package/clis/qwen/history.js +0 -61
  971. package/clis/qwen/image.js +0 -179
  972. package/clis/qwen/new.js +0 -23
  973. package/clis/qwen/read.js +0 -41
  974. package/clis/qwen/send.js +0 -55
  975. package/clis/qwen/status.js +0 -37
  976. package/clis/qwen/utils.js +0 -461
  977. package/clis/qwen/utils.test.js +0 -128
  978. package/clis/rednote/auth.js +0 -52
  979. package/clis/rednote/comments.js +0 -85
  980. package/clis/rednote/download.js +0 -59
  981. package/clis/rednote/feed.js +0 -27
  982. package/clis/rednote/navigation.test.js +0 -26
  983. package/clis/rednote/note.js +0 -68
  984. package/clis/rednote/notifications.js +0 -139
  985. package/clis/rednote/rednote.test.js +0 -240
  986. package/clis/rednote/search.js +0 -107
  987. package/clis/rednote/user.js +0 -55
  988. package/clis/sinablog/article.js +0 -15
  989. package/clis/sinablog/hot.js +0 -15
  990. package/clis/sinablog/search.js +0 -52
  991. package/clis/sinablog/user.js +0 -16
  992. package/clis/sinablog/utils.js +0 -186
  993. package/clis/sinafinance/news.js +0 -62
  994. package/clis/sinafinance/rolling-news.js +0 -41
  995. package/clis/sinafinance/stock-rank.js +0 -66
  996. package/clis/sinafinance/stock.js +0 -121
  997. package/clis/sinafinance/stock.test.js +0 -59
  998. package/clis/smzdm/search.js +0 -149
  999. package/clis/smzdm/search.test.js +0 -114
  1000. package/clis/taobao/add-cart.js +0 -150
  1001. package/clis/taobao/auth.js +0 -58
  1002. package/clis/taobao/cart.js +0 -96
  1003. package/clis/taobao/commands.test.js +0 -41
  1004. package/clis/taobao/detail.js +0 -71
  1005. package/clis/taobao/reviews.js +0 -77
  1006. package/clis/taobao/search.js +0 -97
  1007. package/clis/tdx/hot-rank.js +0 -48
  1008. package/clis/tdx/hot-rank.test.js +0 -59
  1009. package/clis/ths/hot-rank.js +0 -50
  1010. package/clis/ths/hot-rank.test.js +0 -64
  1011. package/clis/tieba/commands.test.js +0 -79
  1012. package/clis/tieba/hot.js +0 -48
  1013. package/clis/tieba/posts.js +0 -86
  1014. package/clis/tieba/read.js +0 -141
  1015. package/clis/tieba/search.js +0 -109
  1016. package/clis/tieba/utils.js +0 -240
  1017. package/clis/tieba/utils.test.js +0 -290
  1018. package/clis/toutiao/articles.js +0 -55
  1019. package/clis/toutiao/auth.js +0 -70
  1020. package/clis/toutiao/hot.js +0 -63
  1021. package/clis/toutiao/toutiao.test.js +0 -378
  1022. package/clis/toutiao/utils.js +0 -161
  1023. package/clis/trae-cn/activity.js +0 -22
  1024. package/clis/trae-cn/approve.js +0 -52
  1025. package/clis/trae-cn/ask.js +0 -99
  1026. package/clis/trae-cn/dump.js +0 -5
  1027. package/clis/trae-cn/export.js +0 -40
  1028. package/clis/trae-cn/model.js +0 -22
  1029. package/clis/trae-cn/new.js +0 -63
  1030. package/clis/trae-cn/read.js +0 -23
  1031. package/clis/trae-cn/screenshot.js +0 -5
  1032. package/clis/trae-cn/select-model.js +0 -25
  1033. package/clis/trae-cn/send.js +0 -23
  1034. package/clis/trae-cn/setup.js +0 -75
  1035. package/clis/trae-cn/status.js +0 -27
  1036. package/clis/trae-cn/targets.js +0 -96
  1037. package/clis/trae-cn/trae-cn.test.js +0 -412
  1038. package/clis/trae-cn/utils.js +0 -750
  1039. package/clis/trae-cn/watch.js +0 -119
  1040. package/clis/uisdc/news.js +0 -105
  1041. package/clis/uisdc/news.test.js +0 -66
  1042. package/clis/v2ex/auth.js +0 -44
  1043. package/clis/v2ex/daily.js +0 -99
  1044. package/clis/v2ex/hot.js +0 -26
  1045. package/clis/v2ex/latest.js +0 -26
  1046. package/clis/v2ex/me.js +0 -100
  1047. package/clis/v2ex/member.js +0 -28
  1048. package/clis/v2ex/node.js +0 -39
  1049. package/clis/v2ex/nodes.js +0 -26
  1050. package/clis/v2ex/notifications.js +0 -72
  1051. package/clis/v2ex/replies.js +0 -27
  1052. package/clis/v2ex/topic.js +0 -31
  1053. package/clis/v2ex/user.js +0 -34
  1054. package/clis/wanfang/search.js +0 -66
  1055. package/clis/wanfang/search.test.js +0 -23
  1056. package/clis/wechat-channels/auth.js +0 -62
  1057. package/clis/wechat-channels/publish.js +0 -732
  1058. package/clis/wechat-channels/publish.test.js +0 -144
  1059. package/clis/weibo/auth.js +0 -53
  1060. package/clis/weibo/comments.js +0 -53
  1061. package/clis/weibo/delete.js +0 -172
  1062. package/clis/weibo/delete.test.js +0 -94
  1063. package/clis/weibo/envelope.test.js +0 -85
  1064. package/clis/weibo/favorites.js +0 -170
  1065. package/clis/weibo/favorites.test.js +0 -114
  1066. package/clis/weibo/feed.js +0 -69
  1067. package/clis/weibo/hot.js +0 -39
  1068. package/clis/weibo/me.js +0 -75
  1069. package/clis/weibo/post.js +0 -75
  1070. package/clis/weibo/publish.js +0 -306
  1071. package/clis/weibo/publish.test.js +0 -192
  1072. package/clis/weibo/search.js +0 -80
  1073. package/clis/weibo/user-posts.js +0 -234
  1074. package/clis/weibo/user-posts.test.js +0 -92
  1075. package/clis/weibo/user.js +0 -63
  1076. package/clis/weibo/utils.js +0 -59
  1077. package/clis/weibo/utils.test.js +0 -36
  1078. package/clis/weixin/create-draft.js +0 -226
  1079. package/clis/weixin/download.js +0 -371
  1080. package/clis/weixin/download.test.js +0 -106
  1081. package/clis/weixin/drafts.js +0 -66
  1082. package/clis/weixin/drafts.test.js +0 -69
  1083. package/clis/weixin/search.js +0 -157
  1084. package/clis/weixin/search.test.js +0 -227
  1085. package/clis/weread/ai-outline.js +0 -171
  1086. package/clis/weread/ai-outline.test.js +0 -83
  1087. package/clis/weread/auth.js +0 -59
  1088. package/clis/weread/book-search.js +0 -438
  1089. package/clis/weread/book-search.test.js +0 -242
  1090. package/clis/weread/book.js +0 -233
  1091. package/clis/weread/commands.test.js +0 -398
  1092. package/clis/weread/highlights.js +0 -24
  1093. package/clis/weread/notebooks.js +0 -22
  1094. package/clis/weread/notes.js +0 -30
  1095. package/clis/weread/private-api-regression.test.js +0 -369
  1096. package/clis/weread/ranking.js +0 -29
  1097. package/clis/weread/search-regression.test.js +0 -494
  1098. package/clis/weread/search.js +0 -186
  1099. package/clis/weread/shelf.js +0 -66
  1100. package/clis/weread/utils.js +0 -321
  1101. package/clis/weread/utils.test.js +0 -128
  1102. package/clis/weread-official/book.js +0 -135
  1103. package/clis/weread-official/commands.test.js +0 -385
  1104. package/clis/weread-official/discover.js +0 -107
  1105. package/clis/weread-official/list-apis.js +0 -95
  1106. package/clis/weread-official/notes.js +0 -171
  1107. package/clis/weread-official/readdata.js +0 -158
  1108. package/clis/weread-official/review.js +0 -93
  1109. package/clis/weread-official/search.js +0 -106
  1110. package/clis/weread-official/shelf.js +0 -97
  1111. package/clis/weread-official/utils.js +0 -293
  1112. package/clis/weread-official/utils.test.js +0 -242
  1113. package/clis/xianyu/auth.js +0 -68
  1114. package/clis/xianyu/chat.js +0 -74
  1115. package/clis/xianyu/chat.test.js +0 -84
  1116. package/clis/xianyu/im.js +0 -322
  1117. package/clis/xianyu/im.test.js +0 -253
  1118. package/clis/xianyu/inbox.js +0 -96
  1119. package/clis/xianyu/item.js +0 -153
  1120. package/clis/xianyu/item.test.js +0 -56
  1121. package/clis/xianyu/messages.js +0 -91
  1122. package/clis/xianyu/publish.js +0 -485
  1123. package/clis/xianyu/publish.test.js +0 -220
  1124. package/clis/xianyu/reply.js +0 -82
  1125. package/clis/xianyu/search.js +0 -262
  1126. package/clis/xianyu/search.test.js +0 -104
  1127. package/clis/xianyu/utils.js +0 -8
  1128. package/clis/xiaoe/auth.js +0 -55
  1129. package/clis/xiaoe/catalog.js +0 -227
  1130. package/clis/xiaoe/content.js +0 -175
  1131. package/clis/xiaoe/courses.js +0 -127
  1132. package/clis/xiaoe/detail.js +0 -36
  1133. package/clis/xiaoe/play-url.js +0 -121
  1134. package/clis/xiaoe/xiaoe.test.js +0 -486
  1135. package/clis/xiaohongshu/ask.js +0 -426
  1136. package/clis/xiaohongshu/ask.test.js +0 -271
  1137. package/clis/xiaohongshu/auth.js +0 -53
  1138. package/clis/xiaohongshu/collection-helpers.js +0 -283
  1139. package/clis/xiaohongshu/collection-helpers.test.js +0 -125
  1140. package/clis/xiaohongshu/comments.js +0 -228
  1141. package/clis/xiaohongshu/comments.test.js +0 -320
  1142. package/clis/xiaohongshu/creator-note-detail.js +0 -482
  1143. package/clis/xiaohongshu/creator-note-detail.test.js +0 -451
  1144. package/clis/xiaohongshu/creator-notes-summary.js +0 -98
  1145. package/clis/xiaohongshu/creator-notes-summary.test.js +0 -94
  1146. package/clis/xiaohongshu/creator-notes.js +0 -479
  1147. package/clis/xiaohongshu/creator-notes.test.js +0 -281
  1148. package/clis/xiaohongshu/creator-profile.js +0 -55
  1149. package/clis/xiaohongshu/creator-stats.js +0 -76
  1150. package/clis/xiaohongshu/creator-stats.test.js +0 -24
  1151. package/clis/xiaohongshu/delete-note.js +0 -260
  1152. package/clis/xiaohongshu/delete-note.test.js +0 -172
  1153. package/clis/xiaohongshu/download.js +0 -249
  1154. package/clis/xiaohongshu/download.test.js +0 -339
  1155. package/clis/xiaohongshu/draft-clear.js +0 -91
  1156. package/clis/xiaohongshu/draft-delete.js +0 -103
  1157. package/clis/xiaohongshu/draft-open.js +0 -43
  1158. package/clis/xiaohongshu/draft-utils.js +0 -142
  1159. package/clis/xiaohongshu/drafts.js +0 -28
  1160. package/clis/xiaohongshu/drafts.test.js +0 -172
  1161. package/clis/xiaohongshu/feed.js +0 -163
  1162. package/clis/xiaohongshu/feed.test.js +0 -126
  1163. package/clis/xiaohongshu/follow.js +0 -226
  1164. package/clis/xiaohongshu/follow.test.js +0 -211
  1165. package/clis/xiaohongshu/liked.js +0 -29
  1166. package/clis/xiaohongshu/liked.test.js +0 -82
  1167. package/clis/xiaohongshu/navigation.test.js +0 -38
  1168. package/clis/xiaohongshu/note-helpers.js +0 -69
  1169. package/clis/xiaohongshu/note.js +0 -104
  1170. package/clis/xiaohongshu/note.test.js +0 -249
  1171. package/clis/xiaohongshu/notifications.js +0 -46
  1172. package/clis/xiaohongshu/publish.js +0 -1423
  1173. package/clis/xiaohongshu/publish.test.js +0 -1141
  1174. package/clis/xiaohongshu/saved.js +0 -29
  1175. package/clis/xiaohongshu/saved.test.js +0 -143
  1176. package/clis/xiaohongshu/search.js +0 -330
  1177. package/clis/xiaohongshu/search.test.js +0 -325
  1178. package/clis/xiaohongshu/unfollow.js +0 -285
  1179. package/clis/xiaohongshu/user-helpers.js +0 -78
  1180. package/clis/xiaohongshu/user-helpers.test.js +0 -160
  1181. package/clis/xiaohongshu/user.js +0 -140
  1182. package/clis/xiaohongshu/user.test.js +0 -141
  1183. package/clis/xiaoyuzhou/auth.js +0 -303
  1184. package/clis/xiaoyuzhou/auth.test.js +0 -124
  1185. package/clis/xiaoyuzhou/download.js +0 -54
  1186. package/clis/xiaoyuzhou/download.test.js +0 -135
  1187. package/clis/xiaoyuzhou/episode.js +0 -34
  1188. package/clis/xiaoyuzhou/podcast-episodes.js +0 -41
  1189. package/clis/xiaoyuzhou/podcast-episodes.test.js +0 -78
  1190. package/clis/xiaoyuzhou/podcast.js +0 -33
  1191. package/clis/xiaoyuzhou/transcript.js +0 -77
  1192. package/clis/xiaoyuzhou/transcript.test.js +0 -195
  1193. package/clis/xiaoyuzhou/utils.js +0 -15
  1194. package/clis/xiaoyuzhou/utils.test.js +0 -39
  1195. package/clis/xueqiu/auth.js +0 -63
  1196. package/clis/xueqiu/comments.js +0 -355
  1197. package/clis/xueqiu/comments.test.js +0 -696
  1198. package/clis/xueqiu/danjuan-utils.js +0 -126
  1199. package/clis/xueqiu/danjuan-utils.test.js +0 -41
  1200. package/clis/xueqiu/earnings-date.js +0 -45
  1201. package/clis/xueqiu/feed.js +0 -39
  1202. package/clis/xueqiu/fund-holdings.js +0 -29
  1203. package/clis/xueqiu/fund-snapshot.js +0 -26
  1204. package/clis/xueqiu/groups.js +0 -23
  1205. package/clis/xueqiu/hot-stock.js +0 -32
  1206. package/clis/xueqiu/hot.js +0 -37
  1207. package/clis/xueqiu/kline.js +0 -44
  1208. package/clis/xueqiu/search.js +0 -37
  1209. package/clis/xueqiu/stock.js +0 -65
  1210. package/clis/xueqiu/utils.js +0 -48
  1211. package/clis/xueqiu/utils.test.js +0 -26
  1212. package/clis/xueqiu/watchlist.js +0 -37
  1213. package/clis/youdao/note.js +0 -258
  1214. package/clis/youdao/note.test.js +0 -99
  1215. package/clis/yuanbao/ask.js +0 -362
  1216. package/clis/yuanbao/ask.test.js +0 -124
  1217. package/clis/yuanbao/auth.js +0 -59
  1218. package/clis/yuanbao/detail.js +0 -65
  1219. package/clis/yuanbao/history.js +0 -51
  1220. package/clis/yuanbao/new.js +0 -72
  1221. package/clis/yuanbao/new.test.js +0 -30
  1222. package/clis/yuanbao/read.js +0 -38
  1223. package/clis/yuanbao/send.js +0 -57
  1224. package/clis/yuanbao/shared.js +0 -341
  1225. package/clis/yuanbao/shared.test.js +0 -80
  1226. package/clis/yuanbao/status.js +0 -44
  1227. package/clis/zhihu/answer-comments.js +0 -280
  1228. package/clis/zhihu/answer-comments.test.js +0 -287
  1229. package/clis/zhihu/answer-detail.js +0 -216
  1230. package/clis/zhihu/answer-detail.test.js +0 -338
  1231. package/clis/zhihu/answer.js +0 -54
  1232. package/clis/zhihu/answer.test.js +0 -54
  1233. package/clis/zhihu/auth.js +0 -59
  1234. package/clis/zhihu/collection.js +0 -199
  1235. package/clis/zhihu/collection.test.js +0 -337
  1236. package/clis/zhihu/collections.js +0 -128
  1237. package/clis/zhihu/collections.test.js +0 -182
  1238. package/clis/zhihu/comment.js +0 -55
  1239. package/clis/zhihu/comment.test.js +0 -50
  1240. package/clis/zhihu/download.js +0 -80
  1241. package/clis/zhihu/download.test.js +0 -12
  1242. package/clis/zhihu/favorite.js +0 -87
  1243. package/clis/zhihu/favorite.test.js +0 -59
  1244. package/clis/zhihu/follow.js +0 -50
  1245. package/clis/zhihu/follow.test.js +0 -42
  1246. package/clis/zhihu/followers.js +0 -40
  1247. package/clis/zhihu/followers.test.js +0 -42
  1248. package/clis/zhihu/following.js +0 -40
  1249. package/clis/zhihu/following.test.js +0 -44
  1250. package/clis/zhihu/hot.js +0 -44
  1251. package/clis/zhihu/like.js +0 -47
  1252. package/clis/zhihu/like.test.js +0 -41
  1253. package/clis/zhihu/paginate.js +0 -128
  1254. package/clis/zhihu/pins.js +0 -41
  1255. package/clis/zhihu/pins.test.js +0 -44
  1256. package/clis/zhihu/question.js +0 -113
  1257. package/clis/zhihu/question.test.js +0 -251
  1258. package/clis/zhihu/recommend.js +0 -103
  1259. package/clis/zhihu/recommend.test.js +0 -143
  1260. package/clis/zhihu/search.js +0 -206
  1261. package/clis/zhihu/search.test.js +0 -198
  1262. package/clis/zhihu/target.js +0 -91
  1263. package/clis/zhihu/target.test.js +0 -77
  1264. package/clis/zhihu/text.js +0 -29
  1265. package/clis/zhihu/text.test.js +0 -24
  1266. package/clis/zhihu/user-answers.js +0 -41
  1267. package/clis/zhihu/user-answers.test.js +0 -69
  1268. package/clis/zhihu/user-arg.js +0 -34
  1269. package/clis/zhihu/user-articles.js +0 -40
  1270. package/clis/zhihu/user-articles.test.js +0 -44
  1271. package/clis/zhihu/user.js +0 -59
  1272. package/clis/zhihu/user.test.js +0 -73
  1273. package/clis/zhihu/write-shared.js +0 -228
  1274. package/clis/zhihu/write-shared.test.js +0 -176
  1275. package/clis/zsxq/auth.js +0 -68
  1276. package/clis/zsxq/dynamics.js +0 -48
  1277. package/clis/zsxq/groups.js +0 -33
  1278. package/clis/zsxq/search.js +0 -44
  1279. package/clis/zsxq/search.test.js +0 -24
  1280. package/clis/zsxq/topic.js +0 -50
  1281. package/clis/zsxq/topic.test.js +0 -30
  1282. package/clis/zsxq/topics.js +0 -26
  1283. package/clis/zsxq/topics.test.js +0 -24
  1284. package/clis/zsxq/utils.js +0 -233
  1285. package/clis/zsxq/utils.test.js +0 -31
  1286. package/skills/webcmd-adapter-author/references/site-memory/bilibili.md +0 -70
  1287. package/skills/webcmd-adapter-author/references/site-memory/eastmoney.md +0 -70
  1288. package/skills/webcmd-adapter-author/references/site-memory/tonghuashun.md +0 -51
  1289. package/skills/webcmd-adapter-author/references/site-memory/xueqiu.md +0 -58
  1290. /package/{clis/douyin/_shared/types.js → dist/src/adapter-shadow.test.d.ts} +0 -0
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build-time CLI manifest compiler.
4
+ *
5
+ * Scans all JS CLI definitions in clis/ and pre-compiles them into a single
6
+ * manifest.json for instant cold-start registration.
7
+ *
8
+ * Usage: npx tsx src/build-manifest.ts [--allow-removals[=N]]
9
+ *
10
+ * Output: cli-manifest.json next to clis/
11
+ *
12
+ * Safety invariants:
13
+ * - Adapters whose source file does not call `cli(...)` are silently
14
+ * skipped (they are helpers / type modules, not commands).
15
+ * - Adapters that look like commands but fail to import are reported as
16
+ * failures, the manifest is NOT written, and the process exits 1. This
17
+ * prevents a stale dist or a broken adapter from silently dropping
18
+ * other adapters' entries (root cause of the "manifest lost 478 lines"
19
+ * incident).
20
+ * - Net-deletions vs the existing committed manifest abort the build by
21
+ * default; pass `--allow-removals=N` (or just `--allow-removals` for any
22
+ * amount) to confirm an intentional removal.
23
+ */
24
+ import type { ManifestEntry } from './manifest-types.js';
25
+ export type { ManifestEntry } from './manifest-types.js';
26
+ /**
27
+ * Thrown by `loadManifestEntries` when an adapter file looks like a CLI
28
+ * module (matches CLI_MODULE_PATTERN) but cannot be imported. Callers
29
+ * decide whether to abort or aggregate failures across the whole scan.
30
+ */
31
+ export declare class ManifestImportError extends Error {
32
+ readonly filePath: string;
33
+ readonly cause: unknown;
34
+ constructor(filePath: string, cause: unknown);
35
+ }
36
+ export interface BuildManifestResult {
37
+ entries: ManifestEntry[];
38
+ /** Adapters that look like CLI modules but failed to import. */
39
+ failures: ManifestImportError[];
40
+ }
41
+ export interface BuildManifestArgs {
42
+ /** Maximum number of entries that may be removed vs the existing manifest.
43
+ * `Number.POSITIVE_INFINITY` disables the safety net entirely. */
44
+ allowRemovals: number;
45
+ }
46
+ export declare function normalizeManifestPath(relativePath: string): string;
47
+ /**
48
+ * Load all manifest entries from a single adapter file.
49
+ *
50
+ * Returns `[]` for files that do not register a CLI command (helpers, types).
51
+ * Throws `ManifestImportError` when a file looks like a CLI module but its
52
+ * import or post-import processing fails — callers must decide whether to
53
+ * surface or aggregate the failure.
54
+ *
55
+ * The third argument `clisDir` is used to compute the POSIX-style
56
+ * `sourceFile` relative path; it defaults to the package's `clis/` dir so
57
+ * existing test callers stay backward-compatible.
58
+ */
59
+ export declare function loadManifestEntries(filePath: string, site: string, importer?: (moduleHref: string) => Promise<unknown>, clisDir?: string): Promise<ManifestEntry[]>;
60
+ /**
61
+ * Scan a `clis/` directory and aggregate per-adapter results. Import
62
+ * failures are collected in `failures` instead of crashing the whole scan,
63
+ * but the caller (e.g. `main()`) is expected to fail loud if any failure
64
+ * is present.
65
+ */
66
+ export declare function scanClisDir(clisDir: string, importer?: (moduleHref: string) => Promise<unknown>): Promise<BuildManifestResult>;
67
+ export declare function buildManifest(): Promise<BuildManifestResult>;
68
+ export declare function serializeManifest(manifest: ManifestEntry[]): string;
69
+ /**
70
+ * Metadata audit: every positional arg must carry a non-empty `help` string.
71
+ *
72
+ * Why this is a hard gate (not advisory):
73
+ * - `webcmd twitter followers --help` rendered `Arguments:\n user ` with
74
+ * an empty trailing column. Agents and humans both saw a blank field —
75
+ * impossible to recover the parameter's purpose without reading source.
76
+ * - This is metadata completeness, not stylistic taste; failing closed is
77
+ * the only way to keep the help surface trustworthy as adapters land.
78
+ *
79
+ * Note: semantic quality (e.g. "what does the optional positional mean when
80
+ * omitted?") is intentionally NOT enforced here. That belongs to a follow-up
81
+ * advisory audit — see PR plan `Arg metadata v2` for the structured
82
+ * `when_omitted / when_present / value_format` schema.
83
+ */
84
+ export interface ManifestMetadataIssue {
85
+ site: string;
86
+ command: string;
87
+ arg: string;
88
+ sourceFile?: string;
89
+ reason: string;
90
+ }
91
+ export declare function findManifestMetadataIssues(entries: readonly ManifestEntry[]): ManifestMetadataIssue[];
92
+ /**
93
+ * Diff helper: returns site/name keys that exist in `prev` but not in
94
+ * `next`. Used as a safety net to detect accidental mass-deletions caused
95
+ * by silently failing adapter imports.
96
+ */
97
+ export declare function diffRemovedEntries(prev: readonly ManifestEntry[], next: readonly ManifestEntry[]): string[];
98
+ /**
99
+ * Parse `--allow-removals` and `--allow-removals=N` from argv.
100
+ * Bare `--allow-removals` disables the safety net (`Infinity`); the
101
+ * numeric form sets an explicit upper bound.
102
+ */
103
+ export declare function parseBuildManifestArgs(argv: readonly string[]): BuildManifestArgs;
@@ -0,0 +1,363 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build-time CLI manifest compiler.
4
+ *
5
+ * Scans all JS CLI definitions in clis/ and pre-compiles them into a single
6
+ * manifest.json for instant cold-start registration.
7
+ *
8
+ * Usage: npx tsx src/build-manifest.ts [--allow-removals[=N]]
9
+ *
10
+ * Output: cli-manifest.json next to clis/
11
+ *
12
+ * Safety invariants:
13
+ * - Adapters whose source file does not call `cli(...)` are silently
14
+ * skipped (they are helpers / type modules, not commands).
15
+ * - Adapters that look like commands but fail to import are reported as
16
+ * failures, the manifest is NOT written, and the process exits 1. This
17
+ * prevents a stale dist or a broken adapter from silently dropping
18
+ * other adapters' entries (root cause of the "manifest lost 478 lines"
19
+ * incident).
20
+ * - Net-deletions vs the existing committed manifest abort the build by
21
+ * default; pass `--allow-removals=N` (or just `--allow-removals` for any
22
+ * amount) to confirm an intentional removal.
23
+ */
24
+ import * as fs from 'node:fs';
25
+ import * as path from 'node:path';
26
+ import { fileURLToPath, pathToFileURL } from 'node:url';
27
+ import { getErrorMessage } from './errors.js';
28
+ import { fullName, getRegistry } from './registry.js';
29
+ import { findPackageRoot, getCliManifestPath } from './package-paths.js';
30
+ import { isRecord } from './utils.js';
31
+ const PACKAGE_ROOT = findPackageRoot(fileURLToPath(import.meta.url));
32
+ const CLIS_DIR = path.join(PACKAGE_ROOT, 'clis');
33
+ // Write manifest next to clis/ so both dev and installed runtime can find it.
34
+ const OUTPUT = getCliManifestPath(CLIS_DIR);
35
+ // Module is treated as a CLI command source if it either:
36
+ // 1. Calls `cli(...)` directly (the common case), or
37
+ // 2. Calls a factory `make<Pascal>Command(...)` from clis/_shared/ that
38
+ // wraps `cli(...)`. Without (2), shared-factory adapters
39
+ // (codex/cursor/chatwise new/status/dump/screenshot) match no `cli(`
40
+ // token at the top level and silently drop out of the manifest.
41
+ const CLI_MODULE_PATTERN = /\bcli\s*\(|\bregisterSiteAuthCommands\s*\(|\bmake[A-Z]\w*Command\s*\(/;
42
+ /**
43
+ * Thrown by `loadManifestEntries` when an adapter file looks like a CLI
44
+ * module (matches CLI_MODULE_PATTERN) but cannot be imported. Callers
45
+ * decide whether to abort or aggregate failures across the whole scan.
46
+ */
47
+ export class ManifestImportError extends Error {
48
+ filePath;
49
+ cause;
50
+ constructor(filePath, cause) {
51
+ super(`failed to scan ${filePath}: ${getErrorMessage(cause)}`);
52
+ this.filePath = filePath;
53
+ this.cause = cause;
54
+ this.name = 'ManifestImportError';
55
+ }
56
+ }
57
+ function toManifestArgs(args) {
58
+ return args.map(arg => ({
59
+ name: arg.name,
60
+ type: arg.type ?? 'str',
61
+ default: arg.default,
62
+ required: !!arg.required,
63
+ valueRequired: !!arg.valueRequired || undefined,
64
+ positional: arg.positional || undefined,
65
+ help: arg.help ?? '',
66
+ choices: arg.choices,
67
+ }));
68
+ }
69
+ function toModulePath(filePath, site) {
70
+ const baseName = path.basename(filePath, path.extname(filePath));
71
+ return `${site}/${baseName}.js`;
72
+ }
73
+ export function normalizeManifestPath(relativePath) {
74
+ return relativePath.replace(/\\/g, '/');
75
+ }
76
+ function toManifestRelativePath(filePath, clisDir) {
77
+ return normalizeManifestPath(path.relative(clisDir, filePath));
78
+ }
79
+ function isCliCommandValue(value, site) {
80
+ return isRecord(value)
81
+ && typeof value.site === 'string'
82
+ && value.site === site
83
+ && typeof value.name === 'string'
84
+ && (value.access === 'read' || value.access === 'write')
85
+ && Array.isArray(value.args);
86
+ }
87
+ function toManifestEntry(cmd, modulePath, sourceFile) {
88
+ return {
89
+ site: cmd.site,
90
+ name: cmd.name,
91
+ aliases: cmd.aliases,
92
+ description: cmd.description ?? '',
93
+ access: cmd.access,
94
+ example: cmd.example,
95
+ domain: cmd.domain,
96
+ strategy: (cmd.strategy ?? 'public').toString().toLowerCase(),
97
+ browser: cmd.browser ?? true,
98
+ args: toManifestArgs(cmd.args),
99
+ columns: cmd.columns,
100
+ defaultFormat: cmd.defaultFormat,
101
+ type: 'js',
102
+ modulePath,
103
+ sourceFile,
104
+ navigateBefore: cmd.navigateBefore,
105
+ siteSession: cmd.siteSession,
106
+ defaultWindowMode: cmd.defaultWindowMode,
107
+ };
108
+ }
109
+ /**
110
+ * Load all manifest entries from a single adapter file.
111
+ *
112
+ * Returns `[]` for files that do not register a CLI command (helpers, types).
113
+ * Throws `ManifestImportError` when a file looks like a CLI module but its
114
+ * import or post-import processing fails — callers must decide whether to
115
+ * surface or aggregate the failure.
116
+ *
117
+ * The third argument `clisDir` is used to compute the POSIX-style
118
+ * `sourceFile` relative path; it defaults to the package's `clis/` dir so
119
+ * existing test callers stay backward-compatible.
120
+ */
121
+ export async function loadManifestEntries(filePath, site, importer = moduleHref => import(moduleHref), clisDir = CLIS_DIR) {
122
+ let src;
123
+ try {
124
+ src = fs.readFileSync(filePath, 'utf-8');
125
+ }
126
+ catch (err) {
127
+ throw new ManifestImportError(filePath, err);
128
+ }
129
+ // Helper / test modules that do not call cli() are not commands.
130
+ if (!CLI_MODULE_PATTERN.test(src))
131
+ return [];
132
+ try {
133
+ const modulePath = toModulePath(filePath, site);
134
+ const registry = getRegistry();
135
+ const before = new Map(registry.entries());
136
+ const mod = await importer(pathToFileURL(filePath).href);
137
+ const exportedCommands = Object.values(isRecord(mod) ? mod : {})
138
+ .filter(value => isCliCommandValue(value, site));
139
+ const runtimeCommands = exportedCommands.length > 0
140
+ ? exportedCommands
141
+ : [...registry.entries()]
142
+ .filter(([key, cmd]) => {
143
+ if (cmd.site !== site)
144
+ return false;
145
+ const previous = before.get(key);
146
+ return !previous || previous !== cmd;
147
+ })
148
+ .map(([, cmd]) => cmd);
149
+ // Manifest paths are cross-platform artifacts; keep them POSIX-style even
150
+ // when build-manifest runs on Windows.
151
+ const sourceRelative = toManifestRelativePath(filePath, clisDir);
152
+ const seen = new Set();
153
+ return runtimeCommands
154
+ .filter((cmd) => {
155
+ const key = fullName(cmd);
156
+ if (seen.has(key))
157
+ return false;
158
+ seen.add(key);
159
+ return true;
160
+ })
161
+ .sort((a, b) => a.name.localeCompare(b.name))
162
+ .map(cmd => toManifestEntry(cmd, modulePath, sourceRelative));
163
+ }
164
+ catch (err) {
165
+ throw new ManifestImportError(filePath, err);
166
+ }
167
+ }
168
+ /**
169
+ * Scan a `clis/` directory and aggregate per-adapter results. Import
170
+ * failures are collected in `failures` instead of crashing the whole scan,
171
+ * but the caller (e.g. `main()`) is expected to fail loud if any failure
172
+ * is present.
173
+ */
174
+ export async function scanClisDir(clisDir, importer = moduleHref => import(moduleHref)) {
175
+ const manifest = new Map();
176
+ const failures = [];
177
+ if (!fs.existsSync(clisDir)) {
178
+ return { entries: [], failures };
179
+ }
180
+ for (const site of fs.readdirSync(clisDir)) {
181
+ const siteDir = path.join(clisDir, site);
182
+ if (!fs.statSync(siteDir).isDirectory())
183
+ continue;
184
+ for (const file of fs.readdirSync(siteDir)) {
185
+ if (file.endsWith('.js') && !file.endsWith('.d.js') && !file.endsWith('.test.js') && file !== 'index.js') {
186
+ const filePath = path.join(siteDir, file);
187
+ try {
188
+ const entries = await loadManifestEntries(filePath, site, importer, clisDir);
189
+ for (const entry of entries) {
190
+ const key = `${entry.site}/${entry.name}`;
191
+ manifest.set(key, entry);
192
+ }
193
+ }
194
+ catch (err) {
195
+ if (err instanceof ManifestImportError) {
196
+ failures.push(err);
197
+ continue;
198
+ }
199
+ throw err;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ const entries = [...manifest.values()].sort((a, b) => a.site.localeCompare(b.site) || a.name.localeCompare(b.name));
205
+ return { entries, failures };
206
+ }
207
+ export async function buildManifest() {
208
+ return scanClisDir(CLIS_DIR);
209
+ }
210
+ export function serializeManifest(manifest) {
211
+ return `${JSON.stringify(manifest, null, 2)}\n`;
212
+ }
213
+ export function findManifestMetadataIssues(entries) {
214
+ const issues = [];
215
+ for (const entry of entries) {
216
+ if (!Array.isArray(entry.args))
217
+ continue;
218
+ for (const arg of entry.args) {
219
+ if (!arg.positional)
220
+ continue;
221
+ const help = typeof arg.help === 'string' ? arg.help.trim() : '';
222
+ if (help === '') {
223
+ issues.push({
224
+ site: entry.site,
225
+ command: entry.name,
226
+ arg: arg.name,
227
+ sourceFile: entry.sourceFile,
228
+ reason: 'positional arg missing non-empty `help` text',
229
+ });
230
+ }
231
+ }
232
+ }
233
+ return issues;
234
+ }
235
+ /**
236
+ * Diff helper: returns site/name keys that exist in `prev` but not in
237
+ * `next`. Used as a safety net to detect accidental mass-deletions caused
238
+ * by silently failing adapter imports.
239
+ */
240
+ export function diffRemovedEntries(prev, next) {
241
+ const nextKeys = new Set(next.map(e => `${e.site}/${e.name}`));
242
+ return prev
243
+ .map(e => `${e.site}/${e.name}`)
244
+ .filter(key => !nextKeys.has(key))
245
+ .sort();
246
+ }
247
+ /**
248
+ * Parse `--allow-removals` and `--allow-removals=N` from argv.
249
+ * Bare `--allow-removals` disables the safety net (`Infinity`); the
250
+ * numeric form sets an explicit upper bound.
251
+ */
252
+ export function parseBuildManifestArgs(argv) {
253
+ let allowRemovals = 0;
254
+ for (const arg of argv) {
255
+ if (arg === '--allow-removals') {
256
+ allowRemovals = Number.POSITIVE_INFINITY;
257
+ continue;
258
+ }
259
+ const m = arg.match(/^--allow-removals=(\d+)$/);
260
+ if (m) {
261
+ allowRemovals = Number.parseInt(m[1], 10);
262
+ continue;
263
+ }
264
+ }
265
+ return { allowRemovals };
266
+ }
267
+ function readExistingManifest(filePath) {
268
+ try {
269
+ if (!fs.existsSync(filePath))
270
+ return null;
271
+ const raw = fs.readFileSync(filePath, 'utf-8');
272
+ const parsed = JSON.parse(raw);
273
+ return Array.isArray(parsed) ? parsed : null;
274
+ }
275
+ catch {
276
+ return null;
277
+ }
278
+ }
279
+ async function main() {
280
+ // Runtime guard: refuse to run from dist/. tsc transitively emits this
281
+ // file (the test file imports from it) so dist/src/build-manifest.js
282
+ // physically exists. If a developer or agent runs that compiled copy,
283
+ // any stale dist will silently break adapter imports — the exact failure
284
+ // mode this script is meant to prevent. Direct them at the tsx entry
285
+ // before they can shoot themselves in the foot.
286
+ if (fileURLToPath(import.meta.url).includes(`${path.sep}dist${path.sep}`)) {
287
+ process.stderr.write(`❌ Refusing to run build-manifest from dist/.\n`
288
+ + ` Stale compiled output silently drops adapters that import renamed/removed exports.\n`
289
+ + ` Run \`npm run build-manifest\` (or \`tsx src/build-manifest.ts\`) from the source tree instead.\n`);
290
+ process.exit(1);
291
+ }
292
+ const args = parseBuildManifestArgs(process.argv.slice(2));
293
+ const { entries, failures } = await buildManifest();
294
+ if (failures.length > 0) {
295
+ process.stderr.write(`❌ ${failures.length} adapter(s) failed to load:\n`);
296
+ for (const failure of failures) {
297
+ const rel = path.relative(PACKAGE_ROOT, failure.filePath) || failure.filePath;
298
+ process.stderr.write(` - ${rel}: ${getErrorMessage(failure.cause)}\n`);
299
+ }
300
+ process.stderr.write(`\nManifest NOT written. Likely cause: stale dist/ or a broken adapter import.\n`
301
+ + `Always run via tsx (\`npm run build-manifest\`), not against compiled dist/.\n`);
302
+ process.exit(1);
303
+ }
304
+ const metadataIssues = findManifestMetadataIssues(entries);
305
+ if (metadataIssues.length > 0) {
306
+ process.stderr.write(`❌ ${metadataIssues.length} positional arg(s) missing \`help\` text:\n`);
307
+ for (const issue of metadataIssues) {
308
+ const where = issue.sourceFile ? ` (${issue.sourceFile})` : '';
309
+ process.stderr.write(` - ${issue.site}/${issue.command} positional "${issue.arg}"${where}\n`);
310
+ }
311
+ process.stderr.write(`\nEvery positional arg must declare a non-empty \`help\` string so\n`
312
+ + `\`webcmd <site> <cmd> --help\` shows callers what the parameter is for.\n`
313
+ + `Add \`help: '...'\` to each arg above and re-run the build.\n`);
314
+ process.exit(1);
315
+ }
316
+ const existing = readExistingManifest(OUTPUT);
317
+ if (existing) {
318
+ const removed = diffRemovedEntries(existing, entries);
319
+ if (removed.length > args.allowRemovals) {
320
+ process.stderr.write(`❌ ${removed.length} manifest entries would be removed; refusing to overwrite.\n`);
321
+ const preview = removed.slice(0, 20);
322
+ for (const key of preview)
323
+ process.stderr.write(` - ${key}\n`);
324
+ if (removed.length > preview.length) {
325
+ process.stderr.write(` ... ${removed.length - preview.length} more\n`);
326
+ }
327
+ process.stderr.write(`\nIf this removal is intentional, rerun with `
328
+ + `\`--allow-removals=${removed.length}\` (or \`--allow-removals\` to disable the check).\n`);
329
+ process.exit(1);
330
+ }
331
+ }
332
+ fs.mkdirSync(path.dirname(OUTPUT), { recursive: true });
333
+ fs.writeFileSync(OUTPUT, serializeManifest(entries));
334
+ console.log(`✅ Manifest compiled: ${entries.length} entries → ${OUTPUT}`);
335
+ // Restore executable permissions on bin entries.
336
+ // tsc does not preserve the +x bit, so after a clean rebuild the CLI
337
+ // entry-point loses its executable permission, causing "Permission denied".
338
+ // See: https://github.com/agentrhq/webcmd/issues/446
339
+ if (process.platform !== 'win32') {
340
+ const projectRoot = PACKAGE_ROOT;
341
+ const pkgPath = path.resolve(projectRoot, 'package.json');
342
+ try {
343
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
344
+ const bins = typeof pkg.bin === 'string'
345
+ ? { [pkg.name ?? 'cli']: pkg.bin }
346
+ : pkg.bin ?? {};
347
+ for (const binPath of Object.values(bins)) {
348
+ const abs = path.resolve(projectRoot, binPath);
349
+ if (fs.existsSync(abs)) {
350
+ fs.chmodSync(abs, 0o755);
351
+ console.log(`✅ Restored executable permission: ${binPath}`);
352
+ }
353
+ }
354
+ }
355
+ catch {
356
+ // Best-effort; never break the build for a permission fix.
357
+ }
358
+ }
359
+ }
360
+ const entrypoint = process.argv[1] ? pathToFileURL(path.resolve(process.argv[1])).href : null;
361
+ if (entrypoint === import.meta.url) {
362
+ void main();
363
+ }
@@ -0,0 +1 @@
1
+ export {};