tabwright 1.0.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 (599) hide show
  1. package/LICENSE +21 -0
  2. package/bin.js +4 -0
  3. package/dist/a11y-client.js +204 -0
  4. package/dist/agent-skills/tabwright/SKILL.md +119 -0
  5. package/dist/aria-snapshot.d.ts +262 -0
  6. package/dist/aria-snapshot.d.ts.map +1 -0
  7. package/dist/aria-snapshot.js +1256 -0
  8. package/dist/aria-snapshot.js.map +1 -0
  9. package/dist/aria-snapshot.test.d.ts +2 -0
  10. package/dist/aria-snapshot.test.d.ts.map +1 -0
  11. package/dist/aria-snapshot.test.js +270 -0
  12. package/dist/aria-snapshot.test.js.map +1 -0
  13. package/dist/aria-snapshot.unit.test.d.ts +2 -0
  14. package/dist/aria-snapshot.unit.test.d.ts.map +1 -0
  15. package/dist/aria-snapshot.unit.test.js +542 -0
  16. package/dist/aria-snapshot.unit.test.js.map +1 -0
  17. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +5 -0
  18. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +1 -0
  19. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +5 -0
  20. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +1 -0
  21. package/dist/bippy.js +894 -0
  22. package/dist/browser-config.d.ts +13 -0
  23. package/dist/browser-config.d.ts.map +1 -0
  24. package/dist/browser-config.js +126 -0
  25. package/dist/browser-config.js.map +1 -0
  26. package/dist/browser-install.d.ts +16 -0
  27. package/dist/browser-install.d.ts.map +1 -0
  28. package/dist/browser-install.js +238 -0
  29. package/dist/browser-install.js.map +1 -0
  30. package/dist/browser-launch.d.ts +17 -0
  31. package/dist/browser-launch.d.ts.map +1 -0
  32. package/dist/browser-launch.js +44 -0
  33. package/dist/browser-launch.js.map +1 -0
  34. package/dist/builtin-capabilities.d.ts +28 -0
  35. package/dist/builtin-capabilities.d.ts.map +1 -0
  36. package/dist/builtin-capabilities.js +2673 -0
  37. package/dist/builtin-capabilities.js.map +1 -0
  38. package/dist/capability-agent-skill.d.ts +60 -0
  39. package/dist/capability-agent-skill.d.ts.map +1 -0
  40. package/dist/capability-agent-skill.js +225 -0
  41. package/dist/capability-agent-skill.js.map +1 -0
  42. package/dist/capability-auth-state.d.ts +34 -0
  43. package/dist/capability-auth-state.d.ts.map +1 -0
  44. package/dist/capability-auth-state.js +157 -0
  45. package/dist/capability-auth-state.js.map +1 -0
  46. package/dist/capability-auth.d.ts +36 -0
  47. package/dist/capability-auth.d.ts.map +1 -0
  48. package/dist/capability-auth.js +198 -0
  49. package/dist/capability-auth.js.map +1 -0
  50. package/dist/capability-cli-confirmation.test.d.ts +2 -0
  51. package/dist/capability-cli-confirmation.test.d.ts.map +1 -0
  52. package/dist/capability-cli-confirmation.test.js +79 -0
  53. package/dist/capability-cli-confirmation.test.js.map +1 -0
  54. package/dist/capability-options.d.ts +20 -0
  55. package/dist/capability-options.d.ts.map +1 -0
  56. package/dist/capability-options.js +31 -0
  57. package/dist/capability-options.js.map +1 -0
  58. package/dist/capability-options.test.d.ts +2 -0
  59. package/dist/capability-options.test.d.ts.map +1 -0
  60. package/dist/capability-options.test.js +81 -0
  61. package/dist/capability-options.test.js.map +1 -0
  62. package/dist/capability-package.d.ts +27 -0
  63. package/dist/capability-package.d.ts.map +1 -0
  64. package/dist/capability-package.js +444 -0
  65. package/dist/capability-package.js.map +1 -0
  66. package/dist/capability-package.test.d.ts +2 -0
  67. package/dist/capability-package.test.d.ts.map +1 -0
  68. package/dist/capability-package.test.js +179 -0
  69. package/dist/capability-package.test.js.map +1 -0
  70. package/dist/capability-registry.d.ts +262 -0
  71. package/dist/capability-registry.d.ts.map +1 -0
  72. package/dist/capability-registry.js +931 -0
  73. package/dist/capability-registry.js.map +1 -0
  74. package/dist/capability-registry.test.d.ts +2 -0
  75. package/dist/capability-registry.test.d.ts.map +1 -0
  76. package/dist/capability-registry.test.js +1683 -0
  77. package/dist/capability-registry.test.js.map +1 -0
  78. package/dist/capability-runner.d.ts +99 -0
  79. package/dist/capability-runner.d.ts.map +1 -0
  80. package/dist/capability-runner.js +608 -0
  81. package/dist/capability-runner.js.map +1 -0
  82. package/dist/capability-search-relevance.test.d.ts +2 -0
  83. package/dist/capability-search-relevance.test.d.ts.map +1 -0
  84. package/dist/capability-search-relevance.test.js +67 -0
  85. package/dist/capability-search-relevance.test.js.map +1 -0
  86. package/dist/capability-studio.d.ts +11 -0
  87. package/dist/capability-studio.d.ts.map +1 -0
  88. package/dist/capability-studio.js +593 -0
  89. package/dist/capability-studio.js.map +1 -0
  90. package/dist/capability-studio.test.d.ts +2 -0
  91. package/dist/capability-studio.test.d.ts.map +1 -0
  92. package/dist/capability-studio.test.js +41 -0
  93. package/dist/capability-studio.test.js.map +1 -0
  94. package/dist/cdp-log.d.ts +19 -0
  95. package/dist/cdp-log.d.ts.map +1 -0
  96. package/dist/cdp-log.js +83 -0
  97. package/dist/cdp-log.js.map +1 -0
  98. package/dist/cdp-log.test.d.ts +2 -0
  99. package/dist/cdp-log.test.d.ts.map +1 -0
  100. package/dist/cdp-log.test.js +109 -0
  101. package/dist/cdp-log.test.js.map +1 -0
  102. package/dist/cdp-relay.d.ts +19 -0
  103. package/dist/cdp-relay.d.ts.map +1 -0
  104. package/dist/cdp-relay.js +2375 -0
  105. package/dist/cdp-relay.js.map +1 -0
  106. package/dist/cdp-session.d.ts +37 -0
  107. package/dist/cdp-session.d.ts.map +1 -0
  108. package/dist/cdp-session.js +36 -0
  109. package/dist/cdp-session.js.map +1 -0
  110. package/dist/cdp-types.d.ts +65 -0
  111. package/dist/cdp-types.d.ts.map +1 -0
  112. package/dist/cdp-types.js +91 -0
  113. package/dist/cdp-types.js.map +1 -0
  114. package/dist/channel-owner-inspect.test.d.ts +2 -0
  115. package/dist/channel-owner-inspect.test.d.ts.map +1 -0
  116. package/dist/channel-owner-inspect.test.js +75 -0
  117. package/dist/channel-owner-inspect.test.js.map +1 -0
  118. package/dist/chrome-discovery.d.ts +65 -0
  119. package/dist/chrome-discovery.d.ts.map +1 -0
  120. package/dist/chrome-discovery.js +173 -0
  121. package/dist/chrome-discovery.js.map +1 -0
  122. package/dist/chrome-discovery.test.d.ts +2 -0
  123. package/dist/chrome-discovery.test.d.ts.map +1 -0
  124. package/dist/chrome-discovery.test.js +41 -0
  125. package/dist/chrome-discovery.test.js.map +1 -0
  126. package/dist/clean-html.d.ts +11 -0
  127. package/dist/clean-html.d.ts.map +1 -0
  128. package/dist/clean-html.js +106 -0
  129. package/dist/clean-html.js.map +1 -0
  130. package/dist/cli-help.test.d.ts +2 -0
  131. package/dist/cli-help.test.d.ts.map +1 -0
  132. package/dist/cli-help.test.js +98 -0
  133. package/dist/cli-help.test.js.map +1 -0
  134. package/dist/cli.d.ts +3 -0
  135. package/dist/cli.d.ts.map +1 -0
  136. package/dist/cli.js +2709 -0
  137. package/dist/cli.js.map +1 -0
  138. package/dist/cloud-client.d.ts +56 -0
  139. package/dist/cloud-client.d.ts.map +1 -0
  140. package/dist/cloud-client.js +127 -0
  141. package/dist/cloud-client.js.map +1 -0
  142. package/dist/create-logger.d.ts +9 -0
  143. package/dist/create-logger.d.ts.map +1 -0
  144. package/dist/create-logger.js +27 -0
  145. package/dist/create-logger.js.map +1 -0
  146. package/dist/debugger-api.md +458 -0
  147. package/dist/debugger-examples-types.d.ts +24 -0
  148. package/dist/debugger-examples-types.d.ts.map +1 -0
  149. package/dist/debugger-examples-types.js +2 -0
  150. package/dist/debugger-examples-types.js.map +1 -0
  151. package/dist/debugger-examples.d.ts +6 -0
  152. package/dist/debugger-examples.d.ts.map +1 -0
  153. package/dist/debugger-examples.js +53 -0
  154. package/dist/debugger-examples.js.map +1 -0
  155. package/dist/debugger.d.ts +381 -0
  156. package/dist/debugger.d.ts.map +1 -0
  157. package/dist/debugger.js +630 -0
  158. package/dist/debugger.js.map +1 -0
  159. package/dist/diff-utils.d.ts +20 -0
  160. package/dist/diff-utils.d.ts.map +1 -0
  161. package/dist/diff-utils.js +50 -0
  162. package/dist/diff-utils.js.map +1 -0
  163. package/dist/diff-utils.test.d.ts +2 -0
  164. package/dist/diff-utils.test.d.ts.map +1 -0
  165. package/dist/diff-utils.test.js +137 -0
  166. package/dist/diff-utils.test.js.map +1 -0
  167. package/dist/doctor.d.ts +44 -0
  168. package/dist/doctor.d.ts.map +1 -0
  169. package/dist/doctor.js +246 -0
  170. package/dist/doctor.js.map +1 -0
  171. package/dist/doctor.test.d.ts +2 -0
  172. package/dist/doctor.test.d.ts.map +1 -0
  173. package/dist/doctor.test.js +208 -0
  174. package/dist/doctor.test.js.map +1 -0
  175. package/dist/editor-api.md +374 -0
  176. package/dist/editor-examples.d.ts +11 -0
  177. package/dist/editor-examples.d.ts.map +1 -0
  178. package/dist/editor-examples.js +124 -0
  179. package/dist/editor-examples.js.map +1 -0
  180. package/dist/editor.d.ts +203 -0
  181. package/dist/editor.d.ts.map +1 -0
  182. package/dist/editor.js +363 -0
  183. package/dist/editor.js.map +1 -0
  184. package/dist/env-compat.d.ts +2 -0
  185. package/dist/env-compat.d.ts.map +1 -0
  186. package/dist/env-compat.js +27 -0
  187. package/dist/env-compat.js.map +1 -0
  188. package/dist/executor.d.ts +229 -0
  189. package/dist/executor.d.ts.map +1 -0
  190. package/dist/executor.js +1465 -0
  191. package/dist/executor.js.map +1 -0
  192. package/dist/executor.unit.test.d.ts +2 -0
  193. package/dist/executor.unit.test.d.ts.map +1 -0
  194. package/dist/executor.unit.test.js +143 -0
  195. package/dist/executor.unit.test.js.map +1 -0
  196. package/dist/extension/_locales/en/messages.json +278 -0
  197. package/dist/extension/_locales/zh_CN/messages.json +256 -0
  198. package/dist/extension/assets/options-CYH96Lcx.css +1349 -0
  199. package/dist/extension/background.js +3994 -0
  200. package/dist/extension/icons/SolarCursorSquareBold.png +0 -0
  201. package/dist/extension/icons/icon-black-128.png +0 -0
  202. package/dist/extension/icons/icon-black-16.png +0 -0
  203. package/dist/extension/icons/icon-black-32.png +0 -0
  204. package/dist/extension/icons/icon-black-48.png +0 -0
  205. package/dist/extension/icons/icon-gray-128.png +0 -0
  206. package/dist/extension/icons/icon-gray-16.png +0 -0
  207. package/dist/extension/icons/icon-gray-32.png +0 -0
  208. package/dist/extension/icons/icon-gray-48.png +0 -0
  209. package/dist/extension/icons/icon-green-128.png +0 -0
  210. package/dist/extension/icons/icon-green-16.png +0 -0
  211. package/dist/extension/icons/icon-green-32.png +0 -0
  212. package/dist/extension/icons/icon-green-48.png +0 -0
  213. package/dist/extension/icons/tabwright-icon-black.png +0 -0
  214. package/dist/extension/icons/tabwright-icon-gray-disabled.png +0 -0
  215. package/dist/extension/icons/tabwright-icon-gray-disabled.svg +1 -0
  216. package/dist/extension/manifest.json +54 -0
  217. package/dist/extension/options.js +16145 -0
  218. package/dist/extension/rrweb-recorder.js +12952 -0
  219. package/dist/extension/src/options.html +165 -0
  220. package/dist/extension/src/prism-bash.min.js +1 -0
  221. package/dist/extension/src/prism.min.js +1 -0
  222. package/dist/extension/src/welcome.html +396 -0
  223. package/dist/extension-connection.test.d.ts +2 -0
  224. package/dist/extension-connection.test.d.ts.map +1 -0
  225. package/dist/extension-connection.test.js +708 -0
  226. package/dist/extension-connection.test.js.map +1 -0
  227. package/dist/extension-icon-warning.test.d.ts +2 -0
  228. package/dist/extension-icon-warning.test.d.ts.map +1 -0
  229. package/dist/extension-icon-warning.test.js +33 -0
  230. package/dist/extension-icon-warning.test.js.map +1 -0
  231. package/dist/ghost-browser.d.ts +62 -0
  232. package/dist/ghost-browser.d.ts.map +1 -0
  233. package/dist/ghost-browser.js +107 -0
  234. package/dist/ghost-browser.js.map +1 -0
  235. package/dist/ghost-cursor-client.js +374 -0
  236. package/dist/ghost-cursor-controller.d.ts +46 -0
  237. package/dist/ghost-cursor-controller.d.ts.map +1 -0
  238. package/dist/ghost-cursor-controller.js +98 -0
  239. package/dist/ghost-cursor-controller.js.map +1 -0
  240. package/dist/ghost-cursor.d.ts +27 -0
  241. package/dist/ghost-cursor.d.ts.map +1 -0
  242. package/dist/ghost-cursor.js +79 -0
  243. package/dist/ghost-cursor.js.map +1 -0
  244. package/dist/htmlrewrite.d.ts +8 -0
  245. package/dist/htmlrewrite.d.ts.map +1 -0
  246. package/dist/htmlrewrite.js +339 -0
  247. package/dist/htmlrewrite.js.map +1 -0
  248. package/dist/htmlrewrite.test.d.ts +2 -0
  249. package/dist/htmlrewrite.test.d.ts.map +1 -0
  250. package/dist/htmlrewrite.test.js +7975 -0
  251. package/dist/htmlrewrite.test.js.map +1 -0
  252. package/dist/index.d.ts +20 -0
  253. package/dist/index.d.ts.map +1 -0
  254. package/dist/index.js +11 -0
  255. package/dist/index.js.map +1 -0
  256. package/dist/kill-port.d.ts +29 -0
  257. package/dist/kill-port.d.ts.map +1 -0
  258. package/dist/kill-port.js +190 -0
  259. package/dist/kill-port.js.map +1 -0
  260. package/dist/kitty-graphics.d.ts +22 -0
  261. package/dist/kitty-graphics.d.ts.map +1 -0
  262. package/dist/kitty-graphics.js +71 -0
  263. package/dist/kitty-graphics.js.map +1 -0
  264. package/dist/kitty-graphics.test.d.ts +2 -0
  265. package/dist/kitty-graphics.test.d.ts.map +1 -0
  266. package/dist/kitty-graphics.test.js +125 -0
  267. package/dist/kitty-graphics.test.js.map +1 -0
  268. package/dist/locator-selector.test.d.ts +2 -0
  269. package/dist/locator-selector.test.d.ts.map +1 -0
  270. package/dist/locator-selector.test.js +98 -0
  271. package/dist/locator-selector.test.js.map +1 -0
  272. package/dist/mcp-client.d.ts +20 -0
  273. package/dist/mcp-client.d.ts.map +1 -0
  274. package/dist/mcp-client.js +56 -0
  275. package/dist/mcp-client.js.map +1 -0
  276. package/dist/mcp.d.ts +6 -0
  277. package/dist/mcp.d.ts.map +1 -0
  278. package/dist/mcp.js +511 -0
  279. package/dist/mcp.js.map +1 -0
  280. package/dist/on-mouse-action.test.d.ts +2 -0
  281. package/dist/on-mouse-action.test.d.ts.map +1 -0
  282. package/dist/on-mouse-action.test.js +180 -0
  283. package/dist/on-mouse-action.test.js.map +1 -0
  284. package/dist/options-page.test.d.ts +2 -0
  285. package/dist/options-page.test.d.ts.map +1 -0
  286. package/dist/options-page.test.js +773 -0
  287. package/dist/options-page.test.js.map +1 -0
  288. package/dist/package-paths.d.ts +4 -0
  289. package/dist/package-paths.d.ts.map +1 -0
  290. package/dist/package-paths.js +30 -0
  291. package/dist/package-paths.js.map +1 -0
  292. package/dist/page-markdown.d.ts +40 -0
  293. package/dist/page-markdown.d.ts.map +1 -0
  294. package/dist/page-markdown.js +181 -0
  295. package/dist/page-markdown.js.map +1 -0
  296. package/dist/performance-examples.d.ts +5 -0
  297. package/dist/performance-examples.d.ts.map +1 -0
  298. package/dist/performance-examples.js +112 -0
  299. package/dist/performance-examples.js.map +1 -0
  300. package/dist/performance-profiling.md +417 -0
  301. package/dist/playwright-import.d.ts +19 -0
  302. package/dist/playwright-import.d.ts.map +1 -0
  303. package/dist/playwright-import.js +40 -0
  304. package/dist/playwright-import.js.map +1 -0
  305. package/dist/popup-relocation.test.d.ts +7 -0
  306. package/dist/popup-relocation.test.d.ts.map +1 -0
  307. package/dist/popup-relocation.test.js +139 -0
  308. package/dist/popup-relocation.test.js.map +1 -0
  309. package/dist/product-paths.d.ts +9 -0
  310. package/dist/product-paths.d.ts.map +1 -0
  311. package/dist/product-paths.js +24 -0
  312. package/dist/product-paths.js.map +1 -0
  313. package/dist/product-paths.test.d.ts +2 -0
  314. package/dist/product-paths.test.d.ts.map +1 -0
  315. package/dist/product-paths.test.js +39 -0
  316. package/dist/product-paths.test.js.map +1 -0
  317. package/dist/prompt.md +1004 -0
  318. package/dist/protocol.d.ts +248 -0
  319. package/dist/protocol.d.ts.map +1 -0
  320. package/dist/protocol.js +59 -0
  321. package/dist/protocol.js.map +1 -0
  322. package/dist/protocol.test.d.ts +2 -0
  323. package/dist/protocol.test.d.ts.map +1 -0
  324. package/dist/protocol.test.js +31 -0
  325. package/dist/protocol.test.js.map +1 -0
  326. package/dist/react-source.d.ts +57 -0
  327. package/dist/react-source.d.ts.map +1 -0
  328. package/dist/react-source.js +254 -0
  329. package/dist/react-source.js.map +1 -0
  330. package/dist/readability.js +1674 -0
  331. package/dist/relay-client.d.ts +104 -0
  332. package/dist/relay-client.d.ts.map +1 -0
  333. package/dist/relay-client.js +426 -0
  334. package/dist/relay-client.js.map +1 -0
  335. package/dist/relay-client.test.d.ts +2 -0
  336. package/dist/relay-client.test.d.ts.map +1 -0
  337. package/dist/relay-client.test.js +305 -0
  338. package/dist/relay-client.test.js.map +1 -0
  339. package/dist/relay-core.test.d.ts +2 -0
  340. package/dist/relay-core.test.d.ts.map +1 -0
  341. package/dist/relay-core.test.js +1427 -0
  342. package/dist/relay-core.test.js.map +1 -0
  343. package/dist/relay-navigation.test.d.ts +2 -0
  344. package/dist/relay-navigation.test.d.ts.map +1 -0
  345. package/dist/relay-navigation.test.js +661 -0
  346. package/dist/relay-navigation.test.js.map +1 -0
  347. package/dist/relay-session.test.d.ts +2 -0
  348. package/dist/relay-session.test.d.ts.map +1 -0
  349. package/dist/relay-session.test.js +1121 -0
  350. package/dist/relay-session.test.js.map +1 -0
  351. package/dist/relay-state.d.ts +178 -0
  352. package/dist/relay-state.d.ts.map +1 -0
  353. package/dist/relay-state.js +346 -0
  354. package/dist/relay-state.js.map +1 -0
  355. package/dist/relay-state.test.d.ts +2 -0
  356. package/dist/relay-state.test.d.ts.map +1 -0
  357. package/dist/relay-state.test.js +594 -0
  358. package/dist/relay-state.test.js.map +1 -0
  359. package/dist/replay-ai-index.d.ts +99 -0
  360. package/dist/replay-ai-index.d.ts.map +1 -0
  361. package/dist/replay-ai-index.js +677 -0
  362. package/dist/replay-ai-index.js.map +1 -0
  363. package/dist/replay-ai-index.test.d.ts +2 -0
  364. package/dist/replay-ai-index.test.d.ts.map +1 -0
  365. package/dist/replay-ai-index.test.js +255 -0
  366. package/dist/replay-ai-index.test.js.map +1 -0
  367. package/dist/replay-cli.test.d.ts +2 -0
  368. package/dist/replay-cli.test.d.ts.map +1 -0
  369. package/dist/replay-cli.test.js +275 -0
  370. package/dist/replay-cli.test.js.map +1 -0
  371. package/dist/replay-eval.d.ts +44 -0
  372. package/dist/replay-eval.d.ts.map +1 -0
  373. package/dist/replay-eval.js +902 -0
  374. package/dist/replay-eval.js.map +1 -0
  375. package/dist/replay-handoff.d.ts +29 -0
  376. package/dist/replay-handoff.d.ts.map +1 -0
  377. package/dist/replay-handoff.js +83 -0
  378. package/dist/replay-handoff.js.map +1 -0
  379. package/dist/replay-handoff.test.d.ts +2 -0
  380. package/dist/replay-handoff.test.d.ts.map +1 -0
  381. package/dist/replay-handoff.test.js +123 -0
  382. package/dist/replay-handoff.test.js.map +1 -0
  383. package/dist/replay-workflow-compiler.d.ts +44 -0
  384. package/dist/replay-workflow-compiler.d.ts.map +1 -0
  385. package/dist/replay-workflow-compiler.js +601 -0
  386. package/dist/replay-workflow-compiler.js.map +1 -0
  387. package/dist/replay-workflow-compiler.test.d.ts +2 -0
  388. package/dist/replay-workflow-compiler.test.d.ts.map +1 -0
  389. package/dist/replay-workflow-compiler.test.js +223 -0
  390. package/dist/replay-workflow-compiler.test.js.map +1 -0
  391. package/dist/rrweb-recording-relay.d.ts +56 -0
  392. package/dist/rrweb-recording-relay.d.ts.map +1 -0
  393. package/dist/rrweb-recording-relay.js +299 -0
  394. package/dist/rrweb-recording-relay.js.map +1 -0
  395. package/dist/rrweb-recording-relay.test.d.ts +2 -0
  396. package/dist/rrweb-recording-relay.test.d.ts.map +1 -0
  397. package/dist/rrweb-recording-relay.test.js +85 -0
  398. package/dist/rrweb-recording-relay.test.js.map +1 -0
  399. package/dist/rrweb-recording.d.ts +104 -0
  400. package/dist/rrweb-recording.d.ts.map +1 -0
  401. package/dist/rrweb-recording.js +180 -0
  402. package/dist/rrweb-recording.js.map +1 -0
  403. package/dist/scoped-fs.d.ts +95 -0
  404. package/dist/scoped-fs.d.ts.map +1 -0
  405. package/dist/scoped-fs.js +358 -0
  406. package/dist/scoped-fs.js.map +1 -0
  407. package/dist/scoped-fs.test.d.ts +5 -0
  408. package/dist/scoped-fs.test.d.ts.map +1 -0
  409. package/dist/scoped-fs.test.js +73 -0
  410. package/dist/scoped-fs.test.js.map +1 -0
  411. package/dist/selector-generator.js +7378 -0
  412. package/dist/skill-stub.test.d.ts +2 -0
  413. package/dist/skill-stub.test.d.ts.map +1 -0
  414. package/dist/skill-stub.test.js +22 -0
  415. package/dist/skill-stub.test.js.map +1 -0
  416. package/dist/snapshot-tools.test.d.ts +2 -0
  417. package/dist/snapshot-tools.test.d.ts.map +1 -0
  418. package/dist/snapshot-tools.test.js +856 -0
  419. package/dist/snapshot-tools.test.js.map +1 -0
  420. package/dist/start-relay-server.d.ts +6 -0
  421. package/dist/start-relay-server.d.ts.map +1 -0
  422. package/dist/start-relay-server.js +57 -0
  423. package/dist/start-relay-server.js.map +1 -0
  424. package/dist/styles-api.md +124 -0
  425. package/dist/styles-examples.d.ts +8 -0
  426. package/dist/styles-examples.d.ts.map +1 -0
  427. package/dist/styles-examples.js +64 -0
  428. package/dist/styles-examples.js.map +1 -0
  429. package/dist/styles.d.ts +27 -0
  430. package/dist/styles.d.ts.map +1 -0
  431. package/dist/styles.js +231 -0
  432. package/dist/styles.js.map +1 -0
  433. package/dist/tabwright-agent-skill.d.ts +30 -0
  434. package/dist/tabwright-agent-skill.d.ts.map +1 -0
  435. package/dist/tabwright-agent-skill.js +74 -0
  436. package/dist/tabwright-agent-skill.js.map +1 -0
  437. package/dist/tabwright-agent-skill.test.d.ts +2 -0
  438. package/dist/tabwright-agent-skill.test.d.ts.map +1 -0
  439. package/dist/tabwright-agent-skill.test.js +51 -0
  440. package/dist/tabwright-agent-skill.test.js.map +1 -0
  441. package/dist/test-declarations.d.ts +13 -0
  442. package/dist/test-declarations.d.ts.map +1 -0
  443. package/dist/test-declarations.js +2 -0
  444. package/dist/test-declarations.js.map +1 -0
  445. package/dist/test-utils.d.ts +69 -0
  446. package/dist/test-utils.d.ts.map +1 -0
  447. package/dist/test-utils.js +448 -0
  448. package/dist/test-utils.js.map +1 -0
  449. package/dist/test-utils.test.d.ts +2 -0
  450. package/dist/test-utils.test.d.ts.map +1 -0
  451. package/dist/test-utils.test.js +55 -0
  452. package/dist/test-utils.test.js.map +1 -0
  453. package/dist/utils.d.ts +26 -0
  454. package/dist/utils.d.ts.map +1 -0
  455. package/dist/utils.js +60 -0
  456. package/dist/utils.js.map +1 -0
  457. package/dist/wait-for-page-load.d.ts +16 -0
  458. package/dist/wait-for-page-load.d.ts.map +1 -0
  459. package/dist/wait-for-page-load.js +146 -0
  460. package/dist/wait-for-page-load.js.map +1 -0
  461. package/dist/workflow-capability.d.ts +72 -0
  462. package/dist/workflow-capability.d.ts.map +1 -0
  463. package/dist/workflow-capability.js +316 -0
  464. package/dist/workflow-capability.js.map +1 -0
  465. package/dist/workflow-script-flow.test.d.ts +2 -0
  466. package/dist/workflow-script-flow.test.d.ts.map +1 -0
  467. package/dist/workflow-script-flow.test.js +285 -0
  468. package/dist/workflow-script-flow.test.js.map +1 -0
  469. package/package.json +80 -0
  470. package/src/__snapshots__/x.com.processed.html +1003 -0
  471. package/src/__snapshots__/x.com.processed.withStyles.html +2720 -0
  472. package/src/a11y-client.ts +241 -0
  473. package/src/agent-skills/conan-config/SKILL.md +141 -0
  474. package/src/agent-skills/conan-config/agents/openai.yaml +4 -0
  475. package/src/aria-snapshot.test.ts +311 -0
  476. package/src/aria-snapshot.ts +1681 -0
  477. package/src/aria-snapshot.unit.test.ts +615 -0
  478. package/src/aria-snapshots/github-interactive.txt +193 -0
  479. package/src/aria-snapshots/github-raw.txt +309 -0
  480. package/src/aria-snapshots/hackernews-interactive.txt +477 -0
  481. package/src/aria-snapshots/hackernews-raw.txt +428 -0
  482. package/src/aria-snapshots/prosemirror-interactive.txt +66 -0
  483. package/src/aria-snapshots/prosemirror-raw.txt +145 -0
  484. package/src/assets/aria-labels-hacker-news.png +0 -0
  485. package/src/assets/aria-labels-old-reddit.png +0 -0
  486. package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +5 -0
  487. package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +18 -0
  488. package/src/assets/x.com.html +32946 -0
  489. package/src/browser-config.ts +179 -0
  490. package/src/browser-install.ts +284 -0
  491. package/src/browser-launch.ts +75 -0
  492. package/src/builtin-capabilities.ts +2765 -0
  493. package/src/capability-agent-skill.ts +305 -0
  494. package/src/capability-auth-state.ts +197 -0
  495. package/src/capability-auth.ts +249 -0
  496. package/src/capability-cli-confirmation.test.ts +90 -0
  497. package/src/capability-options.test.ts +89 -0
  498. package/src/capability-options.ts +57 -0
  499. package/src/capability-package.test.ts +204 -0
  500. package/src/capability-package.ts +555 -0
  501. package/src/capability-registry.test.ts +1905 -0
  502. package/src/capability-registry.ts +1234 -0
  503. package/src/capability-runner.ts +801 -0
  504. package/src/capability-search-relevance.test.ts +73 -0
  505. package/src/capability-studio.test.ts +45 -0
  506. package/src/capability-studio.ts +641 -0
  507. package/src/cdp-log.test.ts +131 -0
  508. package/src/cdp-log.ts +112 -0
  509. package/src/cdp-relay.ts +2944 -0
  510. package/src/cdp-session.ts +77 -0
  511. package/src/cdp-types.ts +158 -0
  512. package/src/channel-owner-inspect.test.ts +94 -0
  513. package/src/chrome-discovery.test.ts +50 -0
  514. package/src/chrome-discovery.ts +220 -0
  515. package/src/clean-html.ts +141 -0
  516. package/src/cli-help.test.ts +123 -0
  517. package/src/cli.ts +3181 -0
  518. package/src/cloud-client.ts +179 -0
  519. package/src/create-logger.ts +38 -0
  520. package/src/debugger-examples-types.ts +16 -0
  521. package/src/debugger-examples.ts +66 -0
  522. package/src/debugger.ts +708 -0
  523. package/src/diff-utils.test.ts +152 -0
  524. package/src/diff-utils.ts +70 -0
  525. package/src/doctor.test.ts +244 -0
  526. package/src/doctor.ts +321 -0
  527. package/src/editor-examples.ts +158 -0
  528. package/src/editor.ts +426 -0
  529. package/src/env-compat.ts +28 -0
  530. package/src/executor.ts +1824 -0
  531. package/src/executor.unit.test.ts +168 -0
  532. package/src/extension-connection.test.ts +855 -0
  533. package/src/extension-icon-warning.test.ts +45 -0
  534. package/src/ghost-browser.ts +149 -0
  535. package/src/ghost-cursor-client.ts +494 -0
  536. package/src/ghost-cursor-controller.ts +129 -0
  537. package/src/ghost-cursor.ts +123 -0
  538. package/src/htmlrewrite.test.ts +8008 -0
  539. package/src/htmlrewrite.ts +390 -0
  540. package/src/index.ts +53 -0
  541. package/src/kill-port.ts +219 -0
  542. package/src/kitty-graphics.test.ts +139 -0
  543. package/src/kitty-graphics.ts +79 -0
  544. package/src/locator-selector.test.ts +119 -0
  545. package/src/mcp-client.ts +78 -0
  546. package/src/mcp.ts +629 -0
  547. package/src/on-mouse-action.test.ts +226 -0
  548. package/src/options-page.test.ts +839 -0
  549. package/src/package-paths.ts +38 -0
  550. package/src/page-markdown.ts +240 -0
  551. package/src/performance-examples.ts +186 -0
  552. package/src/playwright-import.ts +59 -0
  553. package/src/popup-relocation.test.ts +163 -0
  554. package/src/product-paths.test.ts +47 -0
  555. package/src/product-paths.ts +28 -0
  556. package/src/protocol.test.ts +52 -0
  557. package/src/protocol.ts +351 -0
  558. package/src/react-source.ts +379 -0
  559. package/src/relay-client.test.ts +375 -0
  560. package/src/relay-client.ts +572 -0
  561. package/src/relay-core.test.ts +1603 -0
  562. package/src/relay-navigation.test.ts +790 -0
  563. package/src/relay-session.test.ts +1375 -0
  564. package/src/relay-state.test.ts +729 -0
  565. package/src/relay-state.ts +561 -0
  566. package/src/replay-ai-index.test.ts +278 -0
  567. package/src/replay-ai-index.ts +872 -0
  568. package/src/replay-cli.test.ts +325 -0
  569. package/src/replay-eval.ts +1039 -0
  570. package/src/replay-handoff.test.ts +163 -0
  571. package/src/replay-handoff.ts +109 -0
  572. package/src/replay-workflow-compiler.test.ts +250 -0
  573. package/src/replay-workflow-compiler.ts +700 -0
  574. package/src/resource.md +409 -0
  575. package/src/rrweb-recording-relay.test.ts +99 -0
  576. package/src/rrweb-recording-relay.ts +400 -0
  577. package/src/rrweb-recording.ts +322 -0
  578. package/src/scoped-fs.test.ts +80 -0
  579. package/src/scoped-fs.ts +420 -0
  580. package/src/skill-stub.test.ts +24 -0
  581. package/src/skill.md +1413 -0
  582. package/src/snapshot-tools.test.ts +1017 -0
  583. package/src/snapshots/hacker-news-accessibility-full.md +81 -0
  584. package/src/snapshots/hacker-news-accessibility-interactive.md +43 -0
  585. package/src/snapshots/page-markdown-output.txt +16 -0
  586. package/src/snapshots/shadcn-ui-accessibility-full.md +201 -0
  587. package/src/snapshots/shadcn-ui-accessibility-interactive.md +109 -0
  588. package/src/start-relay-server.ts +69 -0
  589. package/src/styles-examples.ts +84 -0
  590. package/src/styles.ts +343 -0
  591. package/src/tabwright-agent-skill.test.ts +61 -0
  592. package/src/tabwright-agent-skill.ts +105 -0
  593. package/src/test-declarations.ts +13 -0
  594. package/src/test-utils.test.ts +70 -0
  595. package/src/test-utils.ts +566 -0
  596. package/src/utils.ts +78 -0
  597. package/src/wait-for-page-load.ts +198 -0
  598. package/src/workflow-capability.ts +417 -0
  599. package/src/workflow-script-flow.test.ts +388 -0
@@ -0,0 +1,477 @@
1
+ - role=link
2
+ - role=link[name="Hacker News"]
3
+ - role=link[name="new"]
4
+ - role=link[name="past"]
5
+ - role=link[name="comments"]
6
+ - role=link[name="ask"]
7
+ - role=link[name="show"]
8
+ - role=link[name="jobs"]
9
+ - role=link[name="submit"]
10
+ - role=link[name="login"]
11
+ - table:
12
+ - row:
13
+ - cell "1."
14
+ - cell:
15
+ - link [id="up_48914644"]
16
+ - cell "Vancouver PD website features Quick Escape button that wipes itself from history (vpd.ca)":
17
+ - role=link[name="Vancouver PD website features Quick Escape button that wipes itself from history"]
18
+ - role=link[name="vpd.ca"]
19
+ - row:
20
+ - cell
21
+ - cell "147 points by LookAtThatBacon 3 hours ago | hide | 55 comments":
22
+ - role=link[name="LookAtThatBacon"]
23
+ - role=link[name="3 hours ago"] >> nth=0
24
+ - role=link[name="hide"] >> nth=0
25
+ - role=link[name="55 comments"]
26
+ - row
27
+ - row:
28
+ - cell "2."
29
+ - cell:
30
+ - link [id="up_48915004"]
31
+ - cell "TS-2026-009: Insecure argument handling in Tailscale SSH permitted root access (tailscale.com)":
32
+ - role=link[name="TS-2026-009: Insecure argument handling in Tailscale SSH permitted root access"]
33
+ - role=link[name="tailscale.com"]
34
+ - row:
35
+ - cell
36
+ - cell "59 points by jervant 2 hours ago | hide | 23 comments":
37
+ - role=link[name="jervant"]
38
+ - role=link[name="2 hours ago"] >> nth=0
39
+ - role=link[name="hide"] >> nth=1
40
+ - role=link[name="23 comments"]
41
+ - row
42
+ - row:
43
+ - cell "3."
44
+ - cell:
45
+ - link [id="up_48915244"]
46
+ - cell "Global Warming at 3 °C by 2050? What's Behind the New German Climate Warning (worldcrunch.com)":
47
+ - role=link[name="Global Warming at 3 °C by 2050? What's Behind the New German Climate Warning"]
48
+ - role=link[name="worldcrunch.com"]
49
+ - row:
50
+ - cell
51
+ - cell "47 points by tejohnso 1 hour ago | hide | 26 comments":
52
+ - role=link[name="tejohnso"]
53
+ - role=link[name="1 hour ago"]
54
+ - role=link[name="hide"] >> nth=2
55
+ - role=link[name="26 comments"]
56
+ - row
57
+ - row:
58
+ - cell "4."
59
+ - cell:
60
+ - link [id="up_48910545"]
61
+ - cell "Bonsai 27B: A 27B-Class model that runs on a phone (prismml.com)":
62
+ - role=link[name="Bonsai 27B: A 27B-Class model that runs on a phone"]
63
+ - role=link[name="prismml.com"]
64
+ - row:
65
+ - cell
66
+ - cell "468 points by xenova 9 hours ago | hide | 173 comments":
67
+ - role=link[name="xenova"]
68
+ - role=link[name="9 hours ago"] >> nth=0
69
+ - role=link[name="hide"] >> nth=3
70
+ - role=link[name="173 comments"] >> nth=0
71
+ - row
72
+ - row:
73
+ - cell "5."
74
+ - cell:
75
+ - link [id="up_48914646"]
76
+ - cell "Solving 20 Erdős Problems with 20 Codex Accounts Running in Parallel (starfleetmath.com)":
77
+ - role=link[name="Solving 20 Erdős Problems with 20 Codex Accounts Running in Parallel"]
78
+ - role=link[name="starfleetmath.com"]
79
+ - row:
80
+ - cell
81
+ - cell "50 points by colin7snyder 3 hours ago | hide | 13 comments":
82
+ - role=link[name="colin7snyder"]
83
+ - role=link[name="3 hours ago"] >> nth=1
84
+ - role=link[name="hide"] >> nth=4
85
+ - role=link[name="13 comments"]
86
+ - row
87
+ - row:
88
+ - cell "6."
89
+ - cell:
90
+ - link [id="up_48913050"]
91
+ - cell "Dependabot version updates introduce default package cooldown (github.blog)":
92
+ - role=link[name="Dependabot version updates introduce default package cooldown"]
93
+ - role=link[name="github.blog"]
94
+ - row:
95
+ - cell
96
+ - cell "115 points by woodruffw 6 hours ago | hide | 70 comments":
97
+ - role=link[name="woodruffw"]
98
+ - role=link[name="6 hours ago"] >> nth=0
99
+ - role=link[name="hide"] >> nth=5
100
+ - role=link[name="70 comments"]
101
+ - row
102
+ - row:
103
+ - cell "7."
104
+ - cell:
105
+ - link [id="up_48909785"]
106
+ - cell "The Tower Keeps Rising (pocoo.org)":
107
+ - role=link[name="The Tower Keeps Rising"]
108
+ - role=link[name="pocoo.org"]
109
+ - row:
110
+ - cell
111
+ - cell "367 points by cdrnsf 10 hours ago | hide | 173 comments":
112
+ - role=link[name="cdrnsf"]
113
+ - role=link[name="10 hours ago"] >> nth=0
114
+ - role=link[name="hide"] >> nth=6
115
+ - role=link[name="173 comments"] >> nth=1
116
+ - row
117
+ - row:
118
+ - cell "8."
119
+ - cell:
120
+ - link [id="up_48913443"]
121
+ - cell "Financing the AI boom: from cash flows to debt [pdf] (bis.org)":
122
+ - role=link[name="Financing the AI boom: from cash flows to debt [pdf]"]
123
+ - role=link[name="bis.org"]
124
+ - row:
125
+ - cell
126
+ - cell "106 points by 1vuio0pswjnm7 5 hours ago | hide | 54 comments":
127
+ - role=link[name="1vuio0pswjnm7"]
128
+ - role=link[name="5 hours ago"] >> nth=0
129
+ - role=link[name="hide"] >> nth=7
130
+ - role=link[name="54 comments"]
131
+ - row
132
+ - row:
133
+ - cell "9."
134
+ - cell:
135
+ - link [id="up_48910676"]
136
+ - cell "Cursor 0day: When Full Disclosure Becomes the Only Protection Left (mindgard.ai)":
137
+ - role=link[name="Cursor 0day: When Full Disclosure Becomes the Only Protection Left"]
138
+ - role=link[name="mindgard.ai"]
139
+ - row:
140
+ - cell
141
+ - cell "272 points by Synthetic7346 9 hours ago | hide | 125 comments":
142
+ - role=link[name="Synthetic7346"]
143
+ - role=link[name="9 hours ago"] >> nth=1
144
+ - role=link[name="hide"] >> nth=8
145
+ - role=link[name="125 comments"]
146
+ - row
147
+ - row:
148
+ - cell "10."
149
+ - cell:
150
+ - link [id="up_48869989"]
151
+ - cell "Your 'app' could have been a webpage (so I fixed it for you) (danq.me)":
152
+ - role=link[name="Your 'app' could have been a webpage (so I fixed it for you)"]
153
+ - role=link[name="danq.me"]
154
+ - row:
155
+ - cell
156
+ - cell "749 points by MrVandemar 17 hours ago | hide | 455 comments":
157
+ - role=link[name="MrVandemar"]
158
+ - role=link[name="17 hours ago"]
159
+ - role=link[name="hide"] >> nth=9
160
+ - role=link[name="455 comments"]
161
+ - row
162
+ - row:
163
+ - cell "11."
164
+ - cell:
165
+ - link [id="up_48913763"]
166
+ - cell "LeMario: Training a JEPA World Model on Super Mario Bros (benjamin-bai.com)":
167
+ - role=link[name="LeMario: Training a JEPA World Model on Super Mario Bros"]
168
+ - role=link[name="benjamin-bai.com"]
169
+ - row:
170
+ - cell
171
+ - cell "62 points by kevinjosethomas 4 hours ago | hide | 8 comments":
172
+ - role=link[name="kevinjosethomas"]
173
+ - role=link[name="4 hours ago"]
174
+ - role=link[name="hide"] >> nth=10
175
+ - role=link[name="8 comments"]
176
+ - row
177
+ - row:
178
+ - cell "12."
179
+ - cell:
180
+ - link [id="up_48905183"]
181
+ - cell "Mathematical texts from a Maya site in Guatemala identify an ancient astronomer (nature.com)":
182
+ - role=link[name="Mathematical texts from a Maya site in Guatemala identify an ancient astronomer"]
183
+ - role=link[name="nature.com"]
184
+ - row:
185
+ - cell
186
+ - cell "51 points by homarp 5 hours ago | hide | 9 comments":
187
+ - role=link[name="homarp"]
188
+ - role=link[name="5 hours ago"] >> nth=1
189
+ - role=link[name="hide"] >> nth=11
190
+ - role=link[name="9 comments"]
191
+ - row
192
+ - row:
193
+ - cell "13."
194
+ - cell:
195
+ - link [id="up_48912175"]
196
+ - cell "How I use HTMX with Go (alexedwards.net)":
197
+ - role=link[name="How I use HTMX with Go"]
198
+ - role=link[name="alexedwards.net"]
199
+ - row:
200
+ - cell
201
+ - cell "134 points by gnabgib 7 hours ago | hide | 30 comments":
202
+ - role=link[name="gnabgib"]
203
+ - role=link[name="7 hours ago"]
204
+ - role=link[name="hide"] >> nth=12
205
+ - role=link[name="30 comments"]
206
+ - row
207
+ - row:
208
+ - cell "14."
209
+ - cell:
210
+ - link [id="up_48914683"]
211
+ - cell "Data centers have hiked electricity prices on the public by $23B (fortune.com)":
212
+ - role=link[name="Data centers have hiked electricity prices on the public by $23B"]
213
+ - role=link[name="fortune.com"]
214
+ - row:
215
+ - cell
216
+ - cell "89 points by measurablefunc 3 hours ago | hide | 45 comments":
217
+ - role=link[name="measurablefunc"]
218
+ - role=link[name="3 hours ago"] >> nth=2
219
+ - role=link[name="hide"] >> nth=13
220
+ - role=link[name="45 comments"]
221
+ - row
222
+ - row:
223
+ - cell "15."
224
+ - cell:
225
+ - link [id="up_48905248"]
226
+ - cell "How to stop Claude from saying load-bearing (jola.dev)":
227
+ - role=link[name="How to stop Claude from saying load-bearing"]
228
+ - role=link[name="jola.dev"]
229
+ - row:
230
+ - cell
231
+ - cell "452 points by shintoist 15 hours ago | hide | 514 comments":
232
+ - role=link[name="shintoist"]
233
+ - role=link[name="15 hours ago"]
234
+ - role=link[name="hide"] >> nth=14
235
+ - role=link[name="514 comments"]
236
+ - row
237
+ - row:
238
+ - cell "16."
239
+ - cell:
240
+ - link [id="up_48862351"]
241
+ - cell "An unusual way for your DHCP server to run out of dynamic IPs (utcc.utoronto.ca)":
242
+ - role=link[name="An unusual way for your DHCP server to run out of dynamic IPs"]
243
+ - role=link[name="utcc.utoronto.ca"]
244
+ - row:
245
+ - cell
246
+ - cell "28 points by speckx 3 hours ago | hide | 3 comments":
247
+ - role=link[name="speckx"] >> nth=0
248
+ - role=link[name="3 hours ago"] >> nth=3
249
+ - role=link[name="hide"] >> nth=15
250
+ - role=link[name="3 comments"]
251
+ - row
252
+ - row:
253
+ - cell "17."
254
+ - cell:
255
+ - link [id="up_48913190"]
256
+ - cell "Microsoft Patches a Record 570 Security Flaws (krebsonsecurity.com)":
257
+ - role=link[name="Microsoft Patches a Record 570 Security Flaws"]
258
+ - role=link[name="krebsonsecurity.com"]
259
+ - row:
260
+ - cell
261
+ - cell "48 points by robin_reala 5 hours ago | hide | 22 comments":
262
+ - role=link[name="robin_reala"]
263
+ - role=link[name="5 hours ago"] >> nth=2
264
+ - role=link[name="hide"] >> nth=16
265
+ - role=link[name="22 comments"]
266
+ - row
267
+ - row:
268
+ - cell "18."
269
+ - cell:
270
+ - link [id="up_48872401"]
271
+ - cell "The largest available Minecraft world, totalling 15 TB (2b2t.place)":
272
+ - role=link[name="The largest available Minecraft world, totalling 15 TB"]
273
+ - role=link[name="2b2t.place"]
274
+ - row:
275
+ - cell
276
+ - cell "173 points by _____k 10 hours ago | hide | 58 comments":
277
+ - role=link[name="_____k"]
278
+ - role=link[name="10 hours ago"] >> nth=1
279
+ - role=link[name="hide"] >> nth=17
280
+ - role=link[name="58 comments"]
281
+ - row
282
+ - row:
283
+ - cell "19."
284
+ - cell:
285
+ - link [id="up_48908214"]
286
+ - cell "I'm a USB-C Maximalist (shkspr.mobi)":
287
+ - role=link[name="I'm a USB-C Maximalist"]
288
+ - role=link[name="shkspr.mobi"]
289
+ - row:
290
+ - cell
291
+ - cell "187 points by speckx 12 hours ago | hide | 292 comments":
292
+ - role=link[name="speckx"] >> nth=1
293
+ - role=link[name="12 hours ago"] >> nth=0
294
+ - role=link[name="hide"] >> nth=18
295
+ - role=link[name="292 comments"]
296
+ - row
297
+ - row:
298
+ - cell "20."
299
+ - cell:
300
+ - link [id="up_48870217"]
301
+ - cell "The kids with phones are alright (heatherburns.tech)":
302
+ - role=link[name="The kids with phones are alright"]
303
+ - role=link[name="heatherburns.tech"]
304
+ - row:
305
+ - cell
306
+ - cell "142 points by JumpCrisscross 14 hours ago | hide | 99 comments":
307
+ - role=link[name="JumpCrisscross"]
308
+ - role=link[name="14 hours ago"]
309
+ - role=link[name="hide"] >> nth=19
310
+ - role=link[name="99 comments"]
311
+ - row
312
+ - row:
313
+ - cell "21."
314
+ - cell:
315
+ - link [id="up_48899473"]
316
+ - cell "The Estranged Worlds of J. G. Ballard (lareviewofbooks.org)":
317
+ - role=link[name="The Estranged Worlds of J. G. Ballard"]
318
+ - role=link[name="lareviewofbooks.org"]
319
+ - row:
320
+ - cell
321
+ - cell "41 points by Caiero 6 hours ago | hide | 7 comments":
322
+ - role=link[name="Caiero"]
323
+ - role=link[name="6 hours ago"] >> nth=1
324
+ - role=link[name="hide"] >> nth=20
325
+ - role=link[name="7 comments"]
326
+ - row
327
+ - row:
328
+ - cell "22."
329
+ - cell:
330
+ - link [id="up_48865001"]
331
+ - cell "The zero-cost fallacy: open-source software in the agentic era (thoughtworks.com)":
332
+ - role=link[name="The zero-cost fallacy: open-source software in the agentic era"]
333
+ - role=link[name="thoughtworks.com"]
334
+ - row:
335
+ - cell
336
+ - cell "113 points by backlit4034 11 hours ago | hide | 94 comments":
337
+ - role=link[name="backlit4034"]
338
+ - role=link[name="11 hours ago"] >> nth=0
339
+ - role=link[name="hide"] >> nth=21
340
+ - role=link[name="94 comments"]
341
+ - row
342
+ - row:
343
+ - cell "23."
344
+ - cell:
345
+ - link [id="up_48906041"]
346
+ - cell "Guardian Angels: LLM Personalization for Productivity and Security (gwern.net)":
347
+ - role=link[name="Guardian Angels: LLM Personalization for Productivity and Security"]
348
+ - role=link[name="gwern.net"]
349
+ - row:
350
+ - cell
351
+ - cell "64 points by andsoitis 8 hours ago | hide | 11 comments":
352
+ - role=link[name="andsoitis"]
353
+ - role=link[name="8 hours ago"]
354
+ - role=link[name="hide"] >> nth=22
355
+ - role=link[name="11 comments"]
356
+ - row
357
+ - row:
358
+ - cell "24."
359
+ - cell:
360
+ - link [id="up_48866848"]
361
+ - cell "Unlocking the PSP's Dual Core Setup (wololo.net)":
362
+ - role=link[name="Unlocking the PSP's Dual Core Setup"]
363
+ - role=link[name="wololo.net"]
364
+ - row:
365
+ - cell
366
+ - cell "49 points by msephton 5 hours ago | hide | 4 comments":
367
+ - role=link[name="msephton"]
368
+ - role=link[name="5 hours ago"] >> nth=3
369
+ - role=link[name="hide"] >> nth=23
370
+ - role=link[name="4 comments"]
371
+ - row
372
+ - row:
373
+ - cell "25."
374
+ - cell:
375
+ - link [id="up_48908178"]
376
+ - cell "Are we offloading too much of our thinking to AI? (artfish.ai)":
377
+ - role=link[name="Are we offloading too much of our thinking to AI?"]
378
+ - role=link[name="artfish.ai"]
379
+ - row:
380
+ - cell
381
+ - cell "394 points by yenniejun111 12 hours ago | hide | 392 comments":
382
+ - role=link[name="yenniejun111"]
383
+ - role=link[name="12 hours ago"] >> nth=1
384
+ - role=link[name="hide"] >> nth=24
385
+ - role=link[name="392 comments"]
386
+ - row
387
+ - row:
388
+ - cell "26."
389
+ - cell
390
+ - cell "Kontigo (YC S24) Is Hiring (Head of Security) (ycombinator.com)":
391
+ - role=link[name="Kontigo (YC S24) Is Hiring (Head of Security)"]
392
+ - role=link[name="ycombinator.com"]
393
+ - row:
394
+ - cell
395
+ - cell "10 hours ago | hide":
396
+ - role=link[name="10 hours ago"] >> nth=2
397
+ - role=link[name="hide"] >> nth=25
398
+ - row
399
+ - row:
400
+ - cell "27."
401
+ - cell:
402
+ - link [id="up_48883305"]
403
+ - cell "Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE (github.com/juggler-ai)":
404
+ - role=link[name="Show HN: Juggler – an open-source GUI coding agent, by the creator of JUCE"]
405
+ - role=link[name="github.com/juggler-ai"]
406
+ - row:
407
+ - cell
408
+ - cell "193 points by julesrms 13 hours ago | hide | 81 comments":
409
+ - role=link[name="julesrms"]
410
+ - role=link[name="13 hours ago"]
411
+ - role=link[name="hide"] >> nth=26
412
+ - role=link[name="81 comments"]
413
+ - row
414
+ - row:
415
+ - cell "28."
416
+ - cell:
417
+ - link [id="up_48854431"]
418
+ - cell "Ambient Website Background Clouds (github.com/paradise-runner)":
419
+ - role=link[name="Ambient Website Background Clouds"]
420
+ - role=link[name="github.com/paradise-runner"]
421
+ - row:
422
+ - cell
423
+ - cell "7 points by dividedcomet 2 hours ago | hide | 1 comment":
424
+ - role=link[name="dividedcomet"]
425
+ - role=link[name="2 hours ago"] >> nth=1
426
+ - role=link[name="hide"] >> nth=27
427
+ - role=link[name="1 comment"]
428
+ - row
429
+ - row:
430
+ - cell "29."
431
+ - cell:
432
+ - link [id="up_48908271"]
433
+ - cell "Show HN: Opening lines of famous literary works (verbaprima.com)":
434
+ - role=link[name="Show HN: Opening lines of famous literary works"]
435
+ - role=link[name="verbaprima.com"]
436
+ - row:
437
+ - cell
438
+ - cell "145 points by plicerin 11 hours ago | hide | 87 comments":
439
+ - role=link[name="plicerin"]
440
+ - role=link[name="11 hours ago"] >> nth=1
441
+ - role=link[name="hide"] >> nth=28
442
+ - role=link[name="87 comments"]
443
+ - row
444
+ - row:
445
+ - cell "30."
446
+ - cell:
447
+ - link [id="up_48913457"]
448
+ - cell "Probably check on your smart appliances (xeiaso.net)":
449
+ - role=link[name="Probably check on your smart appliances"]
450
+ - role=link[name="xeiaso.net"]
451
+ - row:
452
+ - cell
453
+ - cell "30 points by xena 5 hours ago | hide | 12 comments":
454
+ - role=link[name="xena"]
455
+ - role=link[name="5 hours ago"] >> nth=4
456
+ - role=link[name="hide"] >> nth=29
457
+ - role=link[name="12 comments"]
458
+ - row
459
+ - row
460
+ - row:
461
+ - cell
462
+ - cell:
463
+ - role=link[name="More"]
464
+ - role=link[name="Consider applying for YC's Fall 2026 batch! Applications are open till July 27."]
465
+ - role=link[name="Guidelines"]
466
+ - role=link[name="FAQ"]
467
+ - role=link[name="Lists"]
468
+ - role=link[name="API"]
469
+ - role=link[name="Security"]
470
+ - role=link[name="Legal"]
471
+ - role=link[name="Apply to YC"]
472
+ - role=link[name="Contact"]
473
+ - form:
474
+ - role=textbox
475
+ - role=button[name="Pin element — click any element to copy inspection code for a tabwright -e call"]
476
+ - role=button[name="Start Tabwright demonstration recording"]
477
+ - role=button[name="Close Tabwright toolbar"]