@agentrhq/webcmd 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) hide show
  1. package/README.md +317 -24
  2. package/dist/src/adapter-shadow.d.ts +11 -0
  3. package/dist/src/adapter-shadow.js +72 -0
  4. package/dist/src/adapter-shadow.test.d.ts +1 -0
  5. package/dist/src/adapter-shadow.test.js +49 -0
  6. package/dist/src/adapter-source.d.ts +11 -0
  7. package/dist/src/adapter-source.js +24 -0
  8. package/dist/src/adapter-source.test.d.ts +1 -0
  9. package/dist/src/adapter-source.test.js +29 -0
  10. package/dist/src/brand.d.ts +9 -0
  11. package/dist/src/brand.js +9 -0
  12. package/dist/src/brand.test.d.ts +1 -0
  13. package/dist/src/brand.test.js +15 -0
  14. package/dist/src/browser/analyze.d.ts +118 -0
  15. package/dist/src/browser/analyze.js +405 -0
  16. package/dist/src/browser/analyze.test.d.ts +1 -0
  17. package/dist/src/browser/analyze.test.js +209 -0
  18. package/dist/src/browser/article-extract.d.ts +57 -0
  19. package/dist/src/browser/article-extract.e2e.test.d.ts +1 -0
  20. package/dist/src/browser/article-extract.e2e.test.js +105 -0
  21. package/dist/src/browser/article-extract.js +169 -0
  22. package/dist/src/browser/article-extract.test.d.ts +1 -0
  23. package/dist/src/browser/article-extract.test.js +94 -0
  24. package/dist/src/browser/ax-snapshot.d.ts +37 -0
  25. package/dist/src/browser/ax-snapshot.js +217 -0
  26. package/dist/src/browser/ax-snapshot.test.d.ts +1 -0
  27. package/dist/src/browser/ax-snapshot.test.js +91 -0
  28. package/dist/src/browser/base-page.d.ts +151 -0
  29. package/dist/src/browser/base-page.js +1060 -0
  30. package/dist/src/browser/base-page.test.d.ts +1 -0
  31. package/dist/src/browser/base-page.test.js +803 -0
  32. package/dist/src/browser/bridge-readiness.d.ts +14 -0
  33. package/dist/src/browser/bridge-readiness.js +24 -0
  34. package/dist/src/browser/bridge-readiness.test.d.ts +1 -0
  35. package/dist/src/browser/bridge-readiness.test.js +58 -0
  36. package/dist/src/browser/bridge.d.ts +26 -0
  37. package/dist/src/browser/bridge.js +58 -0
  38. package/dist/src/browser/cdp-click-fixture.test.d.ts +1 -0
  39. package/dist/src/browser/cdp-click-fixture.test.js +87 -0
  40. package/dist/src/browser/cdp.d.ts +46 -0
  41. package/dist/src/browser/cdp.js +536 -0
  42. package/dist/src/browser/cdp.test.d.ts +1 -0
  43. package/dist/src/browser/cdp.test.js +79 -0
  44. package/dist/src/browser/compound.d.ts +59 -0
  45. package/dist/src/browser/compound.js +112 -0
  46. package/dist/src/browser/compound.test.d.ts +1 -0
  47. package/dist/src/browser/compound.test.js +175 -0
  48. package/dist/src/browser/config.d.ts +2 -0
  49. package/dist/src/browser/config.js +14 -0
  50. package/dist/src/browser/daemon-client.d.ts +32 -0
  51. package/dist/src/browser/daemon-client.js +135 -0
  52. package/dist/src/browser/daemon-client.test.d.ts +1 -0
  53. package/dist/src/browser/daemon-client.test.js +326 -0
  54. package/dist/src/browser/daemon-lifecycle.d.ts +37 -0
  55. package/dist/src/browser/daemon-lifecycle.js +147 -0
  56. package/dist/src/browser/daemon-transport.d.ts +54 -0
  57. package/dist/src/browser/daemon-transport.js +68 -0
  58. package/dist/src/browser/daemon-version.d.ts +4 -0
  59. package/dist/src/browser/daemon-version.js +12 -0
  60. package/dist/src/browser/dom-helpers.d.ts +41 -0
  61. package/dist/src/browser/dom-helpers.js +239 -0
  62. package/dist/src/browser/dom-helpers.test.d.ts +1 -0
  63. package/dist/src/browser/dom-helpers.test.js +106 -0
  64. package/dist/src/browser/dom-snapshot.d.ts +93 -0
  65. package/dist/src/browser/dom-snapshot.js +894 -0
  66. package/dist/src/browser/dom-snapshot.test.d.ts +11 -0
  67. package/dist/src/browser/dom-snapshot.test.js +313 -0
  68. package/dist/src/browser/errors.d.ts +38 -0
  69. package/dist/src/browser/errors.js +79 -0
  70. package/dist/src/browser/errors.test.d.ts +1 -0
  71. package/dist/src/browser/errors.test.js +60 -0
  72. package/dist/src/browser/extract.d.ts +69 -0
  73. package/dist/src/browser/extract.js +132 -0
  74. package/dist/src/browser/extract.test.d.ts +1 -0
  75. package/dist/src/browser/extract.test.js +129 -0
  76. package/dist/src/browser/find.d.ts +84 -0
  77. package/dist/src/browser/find.js +398 -0
  78. package/dist/src/browser/find.test.d.ts +1 -0
  79. package/dist/src/browser/find.test.js +180 -0
  80. package/dist/src/browser/html-tree.d.ts +75 -0
  81. package/dist/src/browser/html-tree.js +112 -0
  82. package/dist/src/browser/html-tree.test.d.ts +1 -0
  83. package/dist/src/browser/html-tree.test.js +181 -0
  84. package/dist/src/browser/index.d.ts +14 -0
  85. package/dist/src/browser/index.js +12 -0
  86. package/dist/src/browser/network-cache.d.ts +49 -0
  87. package/dist/src/browser/network-cache.js +78 -0
  88. package/dist/src/browser/network-cache.test.d.ts +1 -0
  89. package/dist/src/browser/network-cache.test.js +75 -0
  90. package/dist/src/browser/network-interceptor.d.ts +11 -0
  91. package/dist/src/browser/network-interceptor.js +11 -0
  92. package/dist/src/browser/network-key.d.ts +22 -0
  93. package/dist/src/browser/network-key.js +66 -0
  94. package/dist/src/browser/network-key.test.d.ts +1 -0
  95. package/dist/src/browser/network-key.test.js +49 -0
  96. package/dist/src/browser/page.d.ts +83 -0
  97. package/dist/src/browser/page.js +453 -0
  98. package/dist/src/browser/page.test.d.ts +1 -0
  99. package/dist/src/browser/page.test.js +406 -0
  100. package/dist/src/browser/profile.d.ts +14 -0
  101. package/dist/src/browser/profile.js +86 -0
  102. package/dist/src/browser/protocol.d.ts +63 -0
  103. package/dist/src/browser/protocol.js +1 -0
  104. package/dist/src/browser/runtime/local-cloak/actions.d.ts +3 -0
  105. package/dist/src/browser/runtime/local-cloak/actions.js +240 -0
  106. package/dist/src/browser/runtime/local-cloak/downloads.d.ts +3 -0
  107. package/dist/src/browser/runtime/local-cloak/downloads.js +28 -0
  108. package/dist/src/browser/runtime/local-cloak/network.d.ts +28 -0
  109. package/dist/src/browser/runtime/local-cloak/network.js +120 -0
  110. package/dist/src/browser/runtime/local-cloak/network.test.d.ts +1 -0
  111. package/dist/src/browser/runtime/local-cloak/network.test.js +124 -0
  112. package/dist/src/browser/runtime/local-cloak/profiles.d.ts +6 -0
  113. package/dist/src/browser/runtime/local-cloak/profiles.js +17 -0
  114. package/dist/src/browser/runtime/local-cloak/profiles.test.d.ts +1 -0
  115. package/dist/src/browser/runtime/local-cloak/profiles.test.js +19 -0
  116. package/dist/src/browser/runtime/local-cloak/provider.d.ts +15 -0
  117. package/dist/src/browser/runtime/local-cloak/provider.js +27 -0
  118. package/dist/src/browser/runtime/local-cloak/provider.test.d.ts +1 -0
  119. package/dist/src/browser/runtime/local-cloak/provider.test.js +244 -0
  120. package/dist/src/browser/runtime/local-cloak/session-manager.d.ts +77 -0
  121. package/dist/src/browser/runtime/local-cloak/session-manager.js +280 -0
  122. package/dist/src/browser/runtime/local-cloak/session-manager.test.d.ts +1 -0
  123. package/dist/src/browser/runtime/local-cloak/session-manager.test.js +92 -0
  124. package/dist/src/browser/runtime/provider.d.ts +9 -0
  125. package/dist/src/browser/runtime/provider.js +1 -0
  126. package/dist/src/browser/runtime/provider.test.d.ts +2 -0
  127. package/dist/src/browser/runtime/provider.test.js +49 -0
  128. package/dist/src/browser/shape-filter.d.ts +52 -0
  129. package/dist/src/browser/shape-filter.js +101 -0
  130. package/dist/src/browser/shape-filter.test.d.ts +1 -0
  131. package/dist/src/browser/shape-filter.test.js +101 -0
  132. package/dist/src/browser/shape.d.ts +23 -0
  133. package/dist/src/browser/shape.js +95 -0
  134. package/dist/src/browser/shape.test.d.ts +1 -0
  135. package/dist/src/browser/shape.test.js +82 -0
  136. package/dist/src/browser/stealth.d.ts +11 -0
  137. package/dist/src/browser/stealth.js +359 -0
  138. package/dist/src/browser/stealth.test.d.ts +1 -0
  139. package/dist/src/browser/stealth.test.js +134 -0
  140. package/dist/src/browser/tabs.d.ts +13 -0
  141. package/dist/src/browser/tabs.js +70 -0
  142. package/dist/src/browser/target-errors.d.ts +39 -0
  143. package/dist/src/browser/target-errors.js +45 -0
  144. package/dist/src/browser/target-errors.test.d.ts +1 -0
  145. package/dist/src/browser/target-errors.test.js +94 -0
  146. package/dist/src/browser/target-resolver.d.ts +158 -0
  147. package/dist/src/browser/target-resolver.js +570 -0
  148. package/dist/src/browser/target-resolver.test.d.ts +1 -0
  149. package/dist/src/browser/target-resolver.test.js +118 -0
  150. package/dist/src/browser/utils.d.ts +20 -0
  151. package/dist/src/browser/utils.js +64 -0
  152. package/dist/src/browser/utils.test.d.ts +1 -0
  153. package/dist/src/browser/utils.test.js +29 -0
  154. package/dist/src/browser/verify-fixture.d.ts +65 -0
  155. package/dist/src/browser/verify-fixture.js +318 -0
  156. package/dist/src/browser/verify-fixture.test.d.ts +1 -0
  157. package/dist/src/browser/verify-fixture.test.js +219 -0
  158. package/dist/src/browser/visual-refs.d.ts +11 -0
  159. package/dist/src/browser/visual-refs.js +108 -0
  160. package/dist/src/browser.test.d.ts +1 -0
  161. package/dist/src/browser.test.js +297 -0
  162. package/dist/src/build-manifest.d.ts +103 -0
  163. package/dist/src/build-manifest.js +363 -0
  164. package/dist/src/build-manifest.test.d.ts +1 -0
  165. package/dist/src/build-manifest.test.js +341 -0
  166. package/dist/src/capabilityRouting.d.ts +19 -0
  167. package/dist/src/capabilityRouting.js +56 -0
  168. package/dist/src/capabilityRouting.test.d.ts +1 -0
  169. package/dist/src/capabilityRouting.test.js +63 -0
  170. package/dist/src/cli-argv-preprocess.d.ts +63 -0
  171. package/dist/src/cli-argv-preprocess.js +303 -0
  172. package/dist/src/cli-argv-preprocess.test.d.ts +1 -0
  173. package/dist/src/cli-argv-preprocess.test.js +304 -0
  174. package/dist/src/cli.d.ts +79 -0
  175. package/dist/src/cli.js +3350 -0
  176. package/dist/src/cli.test.d.ts +1 -0
  177. package/dist/src/cli.test.js +3041 -0
  178. package/dist/src/commanderAdapter.d.ts +21 -0
  179. package/dist/src/commanderAdapter.js +208 -0
  180. package/dist/src/commanderAdapter.test.d.ts +1 -0
  181. package/dist/src/commanderAdapter.test.js +352 -0
  182. package/dist/src/commands/auth.d.ts +40 -0
  183. package/dist/src/commands/auth.js +434 -0
  184. package/dist/src/commands/auth.test.d.ts +1 -0
  185. package/dist/src/commands/auth.test.js +252 -0
  186. package/dist/src/commands/daemon.d.ts +9 -0
  187. package/dist/src/commands/daemon.js +91 -0
  188. package/dist/src/commands/daemon.test.d.ts +1 -0
  189. package/dist/src/commands/daemon.test.js +293 -0
  190. package/dist/src/completion-fast.d.ts +22 -0
  191. package/dist/src/completion-fast.js +88 -0
  192. package/dist/src/completion-shared.d.ts +13 -0
  193. package/dist/src/completion-shared.js +61 -0
  194. package/dist/src/completion.d.ts +21 -0
  195. package/dist/src/completion.js +68 -0
  196. package/dist/src/completion.test.d.ts +1 -0
  197. package/dist/src/completion.test.js +24 -0
  198. package/dist/src/constants.d.ts +18 -0
  199. package/dist/src/constants.js +41 -0
  200. package/dist/src/convention-audit.d.ts +50 -0
  201. package/dist/src/convention-audit.js +553 -0
  202. package/dist/src/convention-audit.test.d.ts +1 -0
  203. package/dist/src/convention-audit.test.js +255 -0
  204. package/dist/src/daemon/server.d.ts +13 -0
  205. package/dist/src/daemon/server.js +185 -0
  206. package/dist/src/daemon/server.test.d.ts +1 -0
  207. package/dist/src/daemon/server.test.js +132 -0
  208. package/dist/src/daemon-utils.d.ts +18 -0
  209. package/dist/src/daemon-utils.js +37 -0
  210. package/dist/src/daemon.d.ts +1 -0
  211. package/dist/src/daemon.js +27 -0
  212. package/dist/src/daemon.test.d.ts +1 -0
  213. package/dist/src/daemon.test.js +60 -0
  214. package/dist/src/discovery.d.ts +46 -0
  215. package/dist/src/discovery.js +341 -0
  216. package/dist/src/doctor.d.ts +39 -0
  217. package/dist/src/doctor.js +168 -0
  218. package/dist/src/doctor.test.d.ts +1 -0
  219. package/dist/src/doctor.test.js +302 -0
  220. package/dist/src/download/article-download.d.ts +72 -0
  221. package/dist/src/download/article-download.js +305 -0
  222. package/dist/src/download/article-download.test.d.ts +1 -0
  223. package/dist/src/download/article-download.test.js +235 -0
  224. package/dist/src/download/index.d.ts +71 -0
  225. package/dist/src/download/index.js +363 -0
  226. package/dist/src/download/index.test.d.ts +1 -0
  227. package/dist/src/download/index.test.js +174 -0
  228. package/dist/src/download/media-download.d.ts +49 -0
  229. package/dist/src/download/media-download.js +127 -0
  230. package/dist/src/download/media-download.test.d.ts +1 -0
  231. package/dist/src/download/media-download.test.js +112 -0
  232. package/dist/src/download/progress.d.ts +36 -0
  233. package/dist/src/download/progress.js +120 -0
  234. package/dist/src/download/progress.test.d.ts +1 -0
  235. package/dist/src/download/progress.test.js +36 -0
  236. package/dist/src/electron-apps.d.ts +31 -0
  237. package/dist/src/electron-apps.js +91 -0
  238. package/dist/src/electron-apps.test.d.ts +1 -0
  239. package/dist/src/electron-apps.test.js +76 -0
  240. package/dist/src/engine.test.d.ts +1 -0
  241. package/dist/src/engine.test.js +312 -0
  242. package/dist/src/errors.d.ts +114 -0
  243. package/dist/src/errors.js +174 -0
  244. package/dist/src/errors.test.d.ts +1 -0
  245. package/dist/src/errors.test.js +109 -0
  246. package/dist/src/execution.d.ts +24 -0
  247. package/dist/src/execution.js +509 -0
  248. package/dist/src/execution.test.d.ts +1 -0
  249. package/dist/src/execution.test.js +645 -0
  250. package/dist/src/external.d.ts +49 -0
  251. package/dist/src/external.js +211 -0
  252. package/dist/src/external.test.d.ts +1 -0
  253. package/dist/src/external.test.js +110 -0
  254. package/dist/src/help.d.ts +88 -0
  255. package/dist/src/help.js +556 -0
  256. package/dist/src/help.test.d.ts +1 -0
  257. package/dist/src/help.test.js +58 -0
  258. package/dist/src/hooks.d.ts +46 -0
  259. package/dist/src/hooks.js +58 -0
  260. package/dist/src/hooks.test.d.ts +4 -0
  261. package/dist/src/hooks.test.js +92 -0
  262. package/dist/src/interceptor.d.ts +44 -0
  263. package/dist/src/interceptor.js +183 -0
  264. package/dist/src/interceptor.test.d.ts +4 -0
  265. package/dist/src/interceptor.test.js +81 -0
  266. package/dist/src/launcher.d.ts +41 -0
  267. package/dist/src/launcher.js +226 -0
  268. package/dist/src/launcher.test.d.ts +1 -0
  269. package/dist/src/launcher.test.js +153 -0
  270. package/dist/src/logger.d.ts +26 -0
  271. package/dist/src/logger.js +49 -0
  272. package/dist/src/main.d.ts +5 -0
  273. package/dist/src/main.js +177 -0
  274. package/dist/src/manifest-types.d.ts +43 -0
  275. package/dist/src/manifest-types.js +9 -0
  276. package/dist/src/node-network.d.ts +10 -0
  277. package/dist/src/node-network.js +174 -0
  278. package/dist/src/node-network.test.d.ts +1 -0
  279. package/dist/src/node-network.test.js +55 -0
  280. package/dist/src/observation/artifact.d.ts +16 -0
  281. package/dist/src/observation/artifact.js +260 -0
  282. package/dist/src/observation/artifact.test.d.ts +1 -0
  283. package/dist/src/observation/artifact.test.js +121 -0
  284. package/dist/src/observation/events.d.ts +89 -0
  285. package/dist/src/observation/events.js +1 -0
  286. package/dist/src/observation/index.d.ts +7 -0
  287. package/dist/src/observation/index.js +7 -0
  288. package/dist/src/observation/manager.d.ts +9 -0
  289. package/dist/src/observation/manager.js +27 -0
  290. package/dist/src/observation/manager.test.d.ts +1 -0
  291. package/dist/src/observation/manager.test.js +13 -0
  292. package/dist/src/observation/redaction.d.ts +11 -0
  293. package/dist/src/observation/redaction.js +81 -0
  294. package/dist/src/observation/redaction.test.d.ts +1 -0
  295. package/dist/src/observation/redaction.test.js +32 -0
  296. package/dist/src/observation/retention.d.ts +32 -0
  297. package/dist/src/observation/retention.js +160 -0
  298. package/dist/src/observation/retention.test.d.ts +1 -0
  299. package/dist/src/observation/retention.test.js +118 -0
  300. package/dist/src/observation/ring-buffer.d.ts +22 -0
  301. package/dist/src/observation/ring-buffer.js +45 -0
  302. package/dist/src/observation/ring-buffer.test.d.ts +1 -0
  303. package/dist/src/observation/ring-buffer.test.js +22 -0
  304. package/dist/src/observation/session.d.ts +25 -0
  305. package/dist/src/observation/session.js +50 -0
  306. package/dist/src/output.d.ts +14 -0
  307. package/dist/src/output.js +152 -0
  308. package/dist/src/output.test.d.ts +1 -0
  309. package/dist/src/output.test.js +53 -0
  310. package/dist/src/package-exports.test.d.ts +1 -0
  311. package/dist/src/package-exports.test.js +112 -0
  312. package/dist/src/package-paths.d.ts +8 -0
  313. package/dist/src/package-paths.js +41 -0
  314. package/dist/src/pipeline/executor.d.ts +11 -0
  315. package/dist/src/pipeline/executor.js +93 -0
  316. package/dist/src/pipeline/executor.test.d.ts +4 -0
  317. package/dist/src/pipeline/executor.test.js +182 -0
  318. package/dist/src/pipeline/index.d.ts +5 -0
  319. package/dist/src/pipeline/index.js +5 -0
  320. package/dist/src/pipeline/registry.d.ts +28 -0
  321. package/dist/src/pipeline/registry.js +55 -0
  322. package/dist/src/pipeline/steps/browser.d.ts +13 -0
  323. package/dist/src/pipeline/steps/browser.js +86 -0
  324. package/dist/src/pipeline/steps/download.d.ts +18 -0
  325. package/dist/src/pipeline/steps/download.js +252 -0
  326. package/dist/src/pipeline/steps/download.test.d.ts +1 -0
  327. package/dist/src/pipeline/steps/download.test.js +102 -0
  328. package/dist/src/pipeline/steps/fetch.d.ts +5 -0
  329. package/dist/src/pipeline/steps/fetch.js +122 -0
  330. package/dist/src/pipeline/steps/fetch.test.d.ts +1 -0
  331. package/dist/src/pipeline/steps/fetch.test.js +117 -0
  332. package/dist/src/pipeline/steps/intercept.d.ts +5 -0
  333. package/dist/src/pipeline/steps/intercept.js +50 -0
  334. package/dist/src/pipeline/steps/tap.d.ts +12 -0
  335. package/dist/src/pipeline/steps/tap.js +93 -0
  336. package/dist/src/pipeline/steps/transform.d.ts +9 -0
  337. package/dist/src/pipeline/steps/transform.js +70 -0
  338. package/dist/src/pipeline/template.d.ts +17 -0
  339. package/dist/src/pipeline/template.js +344 -0
  340. package/dist/src/pipeline/template.test.d.ts +4 -0
  341. package/dist/src/pipeline/template.test.js +197 -0
  342. package/dist/src/pipeline/transform.test.d.ts +4 -0
  343. package/dist/src/pipeline/transform.test.js +133 -0
  344. package/dist/src/plugin-manifest.d.ts +70 -0
  345. package/dist/src/plugin-manifest.js +160 -0
  346. package/dist/src/plugin-manifest.test.d.ts +4 -0
  347. package/dist/src/plugin-manifest.test.js +179 -0
  348. package/dist/src/plugin-scaffold.d.ts +28 -0
  349. package/dist/src/plugin-scaffold.js +143 -0
  350. package/dist/src/plugin-scaffold.test.d.ts +4 -0
  351. package/dist/src/plugin-scaffold.test.js +83 -0
  352. package/dist/src/plugin.d.ts +146 -0
  353. package/dist/src/plugin.js +1303 -0
  354. package/dist/src/plugin.test.d.ts +4 -0
  355. package/dist/src/plugin.test.js +1363 -0
  356. package/dist/src/registry-api.d.ts +13 -0
  357. package/dist/src/registry-api.js +10 -0
  358. package/dist/src/registry.d.ts +123 -0
  359. package/dist/src/registry.js +125 -0
  360. package/dist/src/registry.test.d.ts +4 -0
  361. package/dist/src/registry.test.js +209 -0
  362. package/dist/src/runtime-copy.test.d.ts +1 -0
  363. package/dist/src/runtime-copy.test.js +29 -0
  364. package/dist/src/runtime-detect.d.ts +31 -0
  365. package/dist/src/runtime-detect.js +47 -0
  366. package/dist/src/runtime-detect.test.d.ts +1 -0
  367. package/dist/src/runtime-detect.test.js +39 -0
  368. package/dist/src/runtime-identity.test.d.ts +1 -0
  369. package/dist/src/runtime-identity.test.js +18 -0
  370. package/dist/src/runtime.d.ts +47 -0
  371. package/dist/src/runtime.js +54 -0
  372. package/dist/src/scripts/framework.d.ts +7 -0
  373. package/dist/src/scripts/framework.js +25 -0
  374. package/dist/src/scripts/interact.d.ts +4 -0
  375. package/dist/src/scripts/interact.js +20 -0
  376. package/dist/src/scripts/store.d.ts +13 -0
  377. package/dist/src/scripts/store.js +48 -0
  378. package/dist/src/serialization.d.ts +42 -0
  379. package/dist/src/serialization.js +103 -0
  380. package/dist/src/serialization.test.d.ts +1 -0
  381. package/dist/src/serialization.test.js +78 -0
  382. package/dist/src/skills.d.ts +14 -0
  383. package/dist/src/skills.js +127 -0
  384. package/dist/src/skills.test.d.ts +1 -0
  385. package/dist/src/skills.test.js +71 -0
  386. package/dist/src/snapshotFormatter.d.ts +11 -0
  387. package/dist/src/snapshotFormatter.js +338 -0
  388. package/dist/src/snapshotFormatter.test.d.ts +7 -0
  389. package/dist/src/snapshotFormatter.test.js +521 -0
  390. package/dist/src/tui.d.ts +28 -0
  391. package/dist/src/tui.js +179 -0
  392. package/dist/src/tui.test.d.ts +1 -0
  393. package/dist/src/tui.test.js +19 -0
  394. package/dist/src/types.d.ts +236 -0
  395. package/dist/src/types.js +7 -0
  396. package/dist/src/update-check.d.ts +66 -0
  397. package/dist/src/update-check.js +206 -0
  398. package/dist/src/update-check.test.d.ts +1 -0
  399. package/dist/src/update-check.test.js +117 -0
  400. package/dist/src/utils.d.ts +57 -0
  401. package/dist/src/utils.js +152 -0
  402. package/dist/src/utils.test.d.ts +1 -0
  403. package/dist/src/utils.test.js +155 -0
  404. package/dist/src/validate.d.ts +21 -0
  405. package/dist/src/validate.js +130 -0
  406. package/dist/src/validate.test.d.ts +9 -0
  407. package/dist/src/validate.test.js +90 -0
  408. package/dist/src/verify.d.ts +26 -0
  409. package/dist/src/verify.js +67 -0
  410. package/dist/src/version.d.ts +4 -0
  411. package/dist/src/version.js +22 -0
  412. package/dist/src/weixin-download.test.d.ts +1 -0
  413. package/dist/src/weixin-download.test.js +45 -0
  414. package/package.json +4 -3
  415. package/scripts/check-package-bin.mjs +95 -0
@@ -0,0 +1,14 @@
1
+ import type { DaemonHealth } from './daemon-transport.js';
2
+ export type { DaemonHealth };
3
+ export type HealthFetcher = (opts?: {
4
+ timeout?: number;
5
+ contextId?: string;
6
+ }) => Promise<DaemonHealth>;
7
+ export declare function waitForBridgeReady(fetchHealth: HealthFetcher, opts: {
8
+ timeoutMs: number;
9
+ contextId?: string;
10
+ intervalMs?: number;
11
+ }): Promise<DaemonHealth>;
12
+ export declare const PRE_DISPATCH_ERROR_CODES: Set<"extension_not_connected" | "profile_disconnected">;
13
+ export type PreDispatchErrorCode = typeof PRE_DISPATCH_ERROR_CODES extends Set<infer T> ? T : never;
14
+ export declare function isPreDispatchError(errorCode: string | undefined): boolean;
@@ -0,0 +1,24 @@
1
+ const DEFAULT_POLL_INTERVAL_MS = 200;
2
+ export async function waitForBridgeReady(fetchHealth, opts) {
3
+ const interval = opts.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
4
+ let health = await fetchHealth({ contextId: opts.contextId });
5
+ if (health.state === 'ready')
6
+ return health;
7
+ const deadline = Date.now() + opts.timeoutMs;
8
+ while (Date.now() < deadline) {
9
+ await new Promise((resolve) => setTimeout(resolve, interval));
10
+ health = await fetchHealth({ contextId: opts.contextId });
11
+ if (health.state === 'ready')
12
+ return health;
13
+ }
14
+ return health;
15
+ }
16
+ export const PRE_DISPATCH_ERROR_CODES = new Set([
17
+ 'extension_not_connected',
18
+ 'profile_disconnected',
19
+ ]);
20
+ export function isPreDispatchError(errorCode) {
21
+ if (!errorCode)
22
+ return false;
23
+ return PRE_DISPATCH_ERROR_CODES.has(errorCode);
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,58 @@
1
+ import { describe, expect, it, vi } from 'vitest';
2
+ import { PRE_DISPATCH_ERROR_CODES, isPreDispatchError, waitForBridgeReady, } from './bridge-readiness.js';
3
+ function status(runtimeConnected) {
4
+ return {
5
+ ok: true,
6
+ pid: 1,
7
+ uptime: 0,
8
+ runtimeConnected,
9
+ runtimeName: 'fake',
10
+ pending: 0,
11
+ memoryMB: 0,
12
+ port: 19825,
13
+ };
14
+ }
15
+ function readyHealth() {
16
+ return { state: 'ready', status: status(true) };
17
+ }
18
+ function notReadyHealth(state) {
19
+ if (state === 'stopped')
20
+ return { state: 'stopped', status: null };
21
+ return { state, status: status(false) };
22
+ }
23
+ describe('waitForBridgeReady', () => {
24
+ it('returns immediately on the first ready health', async () => {
25
+ const fetchHealth = vi.fn(async () => readyHealth());
26
+ const result = await waitForBridgeReady(fetchHealth, { timeoutMs: 10_000, intervalMs: 1 });
27
+ expect(result.state).toBe('ready');
28
+ expect(fetchHealth).toHaveBeenCalledTimes(1);
29
+ });
30
+ it('polls until ready when initial reads are not ready', async () => {
31
+ const sequence = [
32
+ notReadyHealth('stopped'),
33
+ notReadyHealth('no-runtime'),
34
+ readyHealth(),
35
+ ];
36
+ let i = 0;
37
+ const fetchHealth = vi.fn(async () => sequence[i++] ?? readyHealth());
38
+ const result = await waitForBridgeReady(fetchHealth, { timeoutMs: 10_000, intervalMs: 1 });
39
+ expect(result.state).toBe('ready');
40
+ expect(fetchHealth).toHaveBeenCalledTimes(3);
41
+ });
42
+ it('returns the last observed non-ready health when the deadline expires', async () => {
43
+ const fetchHealth = vi.fn(async () => notReadyHealth('profile-disconnected'));
44
+ const result = await waitForBridgeReady(fetchHealth, { timeoutMs: 25, intervalMs: 5 });
45
+ expect(result.state).toBe('profile-disconnected');
46
+ expect(vi.mocked(fetchHealth).mock.calls.length).toBeGreaterThan(1);
47
+ });
48
+ });
49
+ describe('isPreDispatchError', () => {
50
+ it('classifies only safe pre-dispatch daemon errors', () => {
51
+ expect(isPreDispatchError('extension_not_connected')).toBe(true);
52
+ expect(isPreDispatchError('profile_disconnected')).toBe(true);
53
+ expect(isPreDispatchError('profile_required')).toBe(false);
54
+ expect(isPreDispatchError('command_result_unknown')).toBe(false);
55
+ expect(isPreDispatchError(undefined)).toBe(false);
56
+ expect(PRE_DISPATCH_ERROR_CODES.size).toBe(2);
57
+ });
58
+ });
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Browser session manager — auto-spawns daemon and provides IPage.
3
+ */
4
+ import type { IPage } from '../types.js';
5
+ import type { IBrowserFactory } from '../runtime.js';
6
+ export type BrowserBridgeState = 'idle' | 'connecting' | 'connected' | 'closing' | 'closed';
7
+ /**
8
+ * Browser factory: manages daemon lifecycle and provides IPage instances.
9
+ */
10
+ export declare class BrowserBridge implements IBrowserFactory {
11
+ private _state;
12
+ private _page;
13
+ private _daemonProc;
14
+ get state(): BrowserBridgeState;
15
+ connect(opts?: {
16
+ timeout?: number;
17
+ session?: string;
18
+ idleTimeout?: number;
19
+ contextId?: string;
20
+ windowMode?: 'foreground' | 'background';
21
+ surface?: 'browser' | 'adapter';
22
+ siteSession?: 'ephemeral' | 'persistent';
23
+ }): Promise<IPage>;
24
+ close(): Promise<void>;
25
+ private _ensureDaemon;
26
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Browser session manager — auto-spawns daemon and provides IPage.
3
+ */
4
+ import { Page } from './page.js';
5
+ import { resolveProfileContextId } from './profile.js';
6
+ import { ensureBrowserBridgeReady } from './daemon-lifecycle.js';
7
+ const DAEMON_SPAWN_TIMEOUT = 10000; // 10s to wait for daemon + extension
8
+ /**
9
+ * Browser factory: manages daemon lifecycle and provides IPage instances.
10
+ */
11
+ export class BrowserBridge {
12
+ _state = 'idle';
13
+ _page = null;
14
+ _daemonProc = null;
15
+ get state() {
16
+ return this._state;
17
+ }
18
+ async connect(opts = {}) {
19
+ if (this._state === 'connected' && this._page)
20
+ return this._page;
21
+ if (this._state === 'connecting')
22
+ throw new Error('Already connecting');
23
+ if (this._state === 'closing')
24
+ throw new Error('Session is closing');
25
+ if (this._state === 'closed')
26
+ throw new Error('Session is closed');
27
+ this._state = 'connecting';
28
+ try {
29
+ const contextId = opts.contextId ?? resolveProfileContextId();
30
+ await this._ensureDaemon(opts.timeout, contextId);
31
+ if (!opts.session?.trim())
32
+ throw new Error('Browser session is required');
33
+ this._page = new Page(opts.session.trim(), opts.idleTimeout, contextId, opts.windowMode, opts.surface, opts.siteSession);
34
+ this._state = 'connected';
35
+ return this._page;
36
+ }
37
+ catch (err) {
38
+ this._state = 'idle';
39
+ throw err;
40
+ }
41
+ }
42
+ async close() {
43
+ if (this._state === 'closed')
44
+ return;
45
+ this._state = 'closing';
46
+ // We don't kill the daemon — it's persistent.
47
+ // Just clean up our reference.
48
+ this._page = null;
49
+ this._state = 'closed';
50
+ }
51
+ async _ensureDaemon(timeoutSeconds, contextId) {
52
+ const result = await ensureBrowserBridgeReady({
53
+ timeoutSeconds: timeoutSeconds ?? Math.ceil(DAEMON_SPAWN_TIMEOUT / 1000),
54
+ contextId,
55
+ });
56
+ this._daemonProc = result.spawnedProcess;
57
+ }
58
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,87 @@
1
+ import { afterEach, describe, expect, it } from 'vitest';
2
+ import { JSDOM } from 'jsdom';
3
+ function installDom(html) {
4
+ const dom = new JSDOM(html, { pretendToBeVisual: true });
5
+ globalThis.window = dom.window;
6
+ globalThis.document = dom.window.document;
7
+ globalThis.Event = dom.window.Event;
8
+ globalThis.MouseEvent = dom.window.MouseEvent;
9
+ return dom.window.document;
10
+ }
11
+ function dispatchNativeMouseSequence(target) {
12
+ for (const type of ['mousemove', 'pointerdown', 'mousedown', 'mouseup', 'pointerup', 'click']) {
13
+ target.dispatchEvent(new MouseEvent(type, { bubbles: true, cancelable: true, view: window }));
14
+ }
15
+ }
16
+ describe('CDP-primary click dropdown fixtures', () => {
17
+ afterEach(() => {
18
+ Reflect.deleteProperty(globalThis, 'window');
19
+ Reflect.deleteProperty(globalThis, 'document');
20
+ });
21
+ it('captures the Radix/shadcn class of dropdowns that open on pointerdown and select on pointerup', () => {
22
+ const document = installDom(`
23
+ <button id="trigger" role="combobox" aria-expanded="false">Category</button>
24
+ <div id="portal-root"></div>
25
+ <output id="value"></output>
26
+ `);
27
+ const trigger = document.querySelector('#trigger');
28
+ const portal = document.querySelector('#portal-root');
29
+ const value = document.querySelector('#value');
30
+ trigger.addEventListener('pointerdown', () => {
31
+ trigger.setAttribute('aria-expanded', 'true');
32
+ portal.innerHTML = `
33
+ <div role="listbox">
34
+ <div id="meals" role="option">Meals</div>
35
+ </div>
36
+ `;
37
+ portal.querySelector('#meals').addEventListener('pointerup', () => {
38
+ value.textContent = 'Meals';
39
+ trigger.textContent = 'Meals';
40
+ trigger.setAttribute('aria-expanded', 'false');
41
+ });
42
+ });
43
+ // Baseline: DOM el.click() dispatches click only. This is the old Webcmd
44
+ // failure mode: the command reports success but the dropdown never opens.
45
+ trigger.click();
46
+ expect(trigger.getAttribute('aria-expanded')).toBe('false');
47
+ expect(portal.querySelector('[role="option"]')).toBeNull();
48
+ expect(value.textContent).toBe('');
49
+ // CDP-style mouse input opens the portal and can commit the option.
50
+ dispatchNativeMouseSequence(trigger);
51
+ const option = portal.querySelector('#meals');
52
+ expect(trigger.getAttribute('aria-expanded')).toBe('true');
53
+ dispatchNativeMouseSequence(option);
54
+ expect(value.textContent).toBe('Meals');
55
+ expect(trigger.textContent).toBe('Meals');
56
+ });
57
+ it('captures the MUI autocomplete class that opens on mousedown and commits on mousedown in a popper', () => {
58
+ const document = installDom(`
59
+ <label for="category">Category</label>
60
+ <input id="category" role="combobox" value="" />
61
+ <div id="mui-popper"></div>
62
+ <output id="value"></output>
63
+ `);
64
+ const input = document.querySelector('#category');
65
+ const popper = document.querySelector('#mui-popper');
66
+ const value = document.querySelector('#value');
67
+ input.addEventListener('mousedown', () => {
68
+ popper.innerHTML = `
69
+ <ul role="listbox">
70
+ <li id="travel" role="option">Travel</li>
71
+ </ul>
72
+ `;
73
+ popper.querySelector('#travel').addEventListener('mousedown', () => {
74
+ input.value = 'Travel';
75
+ value.textContent = 'Travel';
76
+ });
77
+ });
78
+ input.click();
79
+ expect(popper.querySelector('[role="option"]')).toBeNull();
80
+ expect(input.value).toBe('');
81
+ dispatchNativeMouseSequence(input);
82
+ const option = popper.querySelector('#travel');
83
+ dispatchNativeMouseSequence(option);
84
+ expect(input.value).toBe('Travel');
85
+ expect(value.textContent).toBe('Travel');
86
+ });
87
+ });
@@ -0,0 +1,46 @@
1
+ /**
2
+ * CDP client — implements IPage by connecting directly to a Chrome/Electron CDP WebSocket.
3
+ *
4
+ * Fixes applied:
5
+ * - send() now has a 30s timeout guard (P0 #4)
6
+ * - goto() waits for Page.loadEventFired instead of hardcoded 1s sleep (P1 #3)
7
+ * - Implemented scroll, autoScroll, screenshot, networkRequests (P1 #2)
8
+ * - Shared DOM helper methods extracted to reduce duplication with Page (P1 #5)
9
+ */
10
+ import type { IPage } from '../types.js';
11
+ import type { IBrowserFactory } from '../runtime.js';
12
+ export interface CDPTarget {
13
+ type?: string;
14
+ url?: string;
15
+ title?: string;
16
+ webSocketDebuggerUrl?: string;
17
+ }
18
+ export declare const CDP_RESPONSE_BODY_CAPTURE_LIMIT: number;
19
+ export declare class CDPBridge implements IBrowserFactory {
20
+ private _ws;
21
+ private _idCounter;
22
+ private _pending;
23
+ private _eventListeners;
24
+ connect(opts?: {
25
+ timeout?: number;
26
+ session?: string;
27
+ cdpEndpoint?: string;
28
+ contextId?: string;
29
+ idleTimeout?: number;
30
+ windowMode?: 'foreground' | 'background';
31
+ surface?: 'browser' | 'adapter';
32
+ siteSession?: 'ephemeral' | 'persistent';
33
+ }): Promise<IPage>;
34
+ close(): Promise<void>;
35
+ send(method: string, params?: Record<string, unknown>, timeoutMs?: number): Promise<unknown>;
36
+ on(event: string, handler: (params: unknown) => void): void;
37
+ off(event: string, handler: (params: unknown) => void): void;
38
+ waitForEvent(event: string, timeoutMs?: number): Promise<unknown>;
39
+ }
40
+ declare function selectCDPTarget(targets: CDPTarget[]): CDPTarget | undefined;
41
+ declare function scoreCDPTarget(target: CDPTarget, preferredPattern?: RegExp): number;
42
+ export declare const __test__: {
43
+ selectCDPTarget: typeof selectCDPTarget;
44
+ scoreCDPTarget: typeof scoreCDPTarget;
45
+ };
46
+ export {};