tabwright 1.0.0 → 2.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 (568) hide show
  1. package/dist/agent-skills/tabwright/SKILL.md +3 -0
  2. package/dist/aria-snapshot.d.ts +0 -1
  3. package/dist/aria-snapshot.js +9 -1
  4. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +0 -1
  5. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +0 -1
  6. package/dist/bippy.js +5 -5
  7. package/dist/browser-config.d.ts +0 -1
  8. package/dist/browser-config.js +0 -1
  9. package/dist/browser-install.d.ts +0 -1
  10. package/dist/browser-install.js +0 -1
  11. package/dist/browser-launch.d.ts +0 -1
  12. package/dist/browser-launch.js +0 -1
  13. package/dist/capability-agent-skill.d.ts +0 -1
  14. package/dist/capability-agent-skill.js +0 -1
  15. package/dist/capability-auth-state.d.ts +0 -1
  16. package/dist/capability-auth-state.js +0 -1
  17. package/dist/capability-auth.d.ts +0 -1
  18. package/dist/capability-auth.js +0 -1
  19. package/dist/capability-options.d.ts +0 -1
  20. package/dist/capability-options.js +0 -1
  21. package/dist/capability-package.d.ts +0 -1
  22. package/dist/capability-package.js +47 -2
  23. package/dist/capability-registry.d.ts +0 -1
  24. package/dist/capability-registry.js +0 -1
  25. package/dist/capability-runner.d.ts +0 -1
  26. package/dist/capability-runner.js +0 -1
  27. package/dist/capability-studio.d.ts +0 -1
  28. package/dist/capability-studio.js +0 -1
  29. package/dist/cdp-log.d.ts +0 -1
  30. package/dist/cdp-log.js +0 -1
  31. package/dist/cdp-relay.d.ts +0 -1
  32. package/dist/cdp-relay.js +0 -1
  33. package/dist/cdp-session.d.ts +0 -1
  34. package/dist/cdp-session.js +0 -1
  35. package/dist/cdp-types.d.ts +0 -1
  36. package/dist/cdp-types.js +0 -1
  37. package/dist/chrome-discovery.d.ts +0 -1
  38. package/dist/chrome-discovery.js +0 -1
  39. package/dist/clean-html.d.ts +0 -1
  40. package/dist/clean-html.js +0 -1
  41. package/dist/cli.d.ts +0 -1
  42. package/dist/cli.js +10 -56
  43. package/dist/cloud-client.d.ts +0 -1
  44. package/dist/cloud-client.js +0 -1
  45. package/dist/create-logger.d.ts +0 -1
  46. package/dist/create-logger.js +0 -1
  47. package/dist/debugger-examples-types.d.ts +0 -1
  48. package/dist/debugger-examples-types.js +0 -1
  49. package/dist/debugger-examples.d.ts +0 -1
  50. package/dist/debugger-examples.js +0 -1
  51. package/dist/debugger.d.ts +0 -1
  52. package/dist/debugger.js +0 -1
  53. package/dist/diff-utils.d.ts +0 -1
  54. package/dist/diff-utils.js +0 -1
  55. package/dist/doctor.d.ts +0 -1
  56. package/dist/doctor.js +5 -7
  57. package/dist/editor-examples.d.ts +0 -1
  58. package/dist/editor-examples.js +0 -1
  59. package/dist/editor.d.ts +0 -1
  60. package/dist/editor.js +0 -1
  61. package/dist/env-compat.d.ts +0 -1
  62. package/dist/env-compat.js +0 -1
  63. package/dist/executor.d.ts +0 -1
  64. package/dist/executor.js +1 -2
  65. package/dist/extension/background.js +10 -6
  66. package/dist/extension/manifest.json +1 -1
  67. package/dist/extension/options.js +1 -1
  68. package/dist/extension/rrweb-recorder.js +1 -1
  69. package/dist/ghost-browser.d.ts +0 -1
  70. package/dist/ghost-browser.js +0 -1
  71. package/dist/ghost-cursor-controller.d.ts +0 -1
  72. package/dist/ghost-cursor-controller.js +0 -1
  73. package/dist/ghost-cursor.d.ts +0 -1
  74. package/dist/ghost-cursor.js +0 -1
  75. package/dist/htmlrewrite.d.ts +0 -1
  76. package/dist/htmlrewrite.js +0 -1
  77. package/dist/index.d.ts +0 -1
  78. package/dist/index.js +0 -1
  79. package/dist/kill-port.d.ts +0 -1
  80. package/dist/kill-port.js +0 -1
  81. package/dist/kitty-graphics.d.ts +0 -1
  82. package/dist/kitty-graphics.js +0 -1
  83. package/dist/mcp.d.ts +0 -1
  84. package/dist/mcp.js +0 -1
  85. package/dist/package-paths.d.ts +0 -1
  86. package/dist/package-paths.js +0 -1
  87. package/dist/page-markdown.d.ts +0 -1
  88. package/dist/page-markdown.js +0 -1
  89. package/dist/performance-examples.d.ts +0 -1
  90. package/dist/performance-examples.js +0 -1
  91. package/dist/playwright-import.d.ts +0 -1
  92. package/dist/playwright-import.js +0 -1
  93. package/dist/product-paths.d.ts +0 -1
  94. package/dist/product-paths.js +0 -1
  95. package/dist/protocol.d.ts +0 -1
  96. package/dist/protocol.js +0 -1
  97. package/dist/react-source.d.ts +0 -1
  98. package/dist/react-source.js +0 -1
  99. package/dist/readability.js +4 -4
  100. package/dist/relay-client.d.ts +0 -1
  101. package/dist/relay-client.js +0 -1
  102. package/dist/relay-state.d.ts +0 -1
  103. package/dist/relay-state.js +0 -1
  104. package/dist/replay-ai-index.d.ts +0 -1
  105. package/dist/replay-ai-index.js +0 -1
  106. package/dist/replay-eval.d.ts +0 -1
  107. package/dist/replay-eval.js +0 -1
  108. package/dist/replay-handoff.d.ts +0 -1
  109. package/dist/replay-handoff.js +0 -1
  110. package/dist/replay-workflow-compiler.d.ts +0 -1
  111. package/dist/replay-workflow-compiler.js +0 -1
  112. package/dist/rrweb-recording-relay.d.ts +0 -1
  113. package/dist/rrweb-recording-relay.js +0 -1
  114. package/dist/rrweb-recording.d.ts +0 -1
  115. package/dist/rrweb-recording.js +0 -1
  116. package/dist/scoped-fs.d.ts +0 -1
  117. package/dist/scoped-fs.js +0 -1
  118. package/dist/selector-generator.js +2 -2
  119. package/dist/start-relay-server.d.ts +0 -1
  120. package/dist/start-relay-server.js +0 -1
  121. package/dist/styles-examples.d.ts +0 -1
  122. package/dist/styles-examples.js +0 -1
  123. package/dist/styles.d.ts +0 -1
  124. package/dist/styles.js +0 -1
  125. package/dist/tabwright-agent-skill.d.ts +0 -1
  126. package/dist/tabwright-agent-skill.js +0 -1
  127. package/dist/test-declarations.d.ts +0 -1
  128. package/dist/test-declarations.js +0 -1
  129. package/dist/utils.d.ts +0 -1
  130. package/dist/utils.js +2 -2
  131. package/dist/wait-for-page-load.d.ts +0 -1
  132. package/dist/wait-for-page-load.js +0 -1
  133. package/dist/workflow-capability.d.ts +0 -1
  134. package/dist/workflow-capability.js +0 -1
  135. package/package.json +8 -4
  136. package/readme.md +43 -0
  137. package/src/skill.md +5 -2
  138. package/dist/aria-snapshot.d.ts.map +0 -1
  139. package/dist/aria-snapshot.js.map +0 -1
  140. package/dist/aria-snapshot.test.d.ts +0 -2
  141. package/dist/aria-snapshot.test.d.ts.map +0 -1
  142. package/dist/aria-snapshot.test.js +0 -270
  143. package/dist/aria-snapshot.test.js.map +0 -1
  144. package/dist/aria-snapshot.unit.test.d.ts +0 -2
  145. package/dist/aria-snapshot.unit.test.d.ts.map +0 -1
  146. package/dist/aria-snapshot.unit.test.js +0 -542
  147. package/dist/aria-snapshot.unit.test.js.map +0 -1
  148. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +0 -1
  149. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +0 -1
  150. package/dist/browser-config.d.ts.map +0 -1
  151. package/dist/browser-config.js.map +0 -1
  152. package/dist/browser-install.d.ts.map +0 -1
  153. package/dist/browser-install.js.map +0 -1
  154. package/dist/browser-launch.d.ts.map +0 -1
  155. package/dist/browser-launch.js.map +0 -1
  156. package/dist/builtin-capabilities.d.ts +0 -28
  157. package/dist/builtin-capabilities.d.ts.map +0 -1
  158. package/dist/builtin-capabilities.js +0 -2673
  159. package/dist/builtin-capabilities.js.map +0 -1
  160. package/dist/capability-agent-skill.d.ts.map +0 -1
  161. package/dist/capability-agent-skill.js.map +0 -1
  162. package/dist/capability-auth-state.d.ts.map +0 -1
  163. package/dist/capability-auth-state.js.map +0 -1
  164. package/dist/capability-auth.d.ts.map +0 -1
  165. package/dist/capability-auth.js.map +0 -1
  166. package/dist/capability-cli-confirmation.test.d.ts +0 -2
  167. package/dist/capability-cli-confirmation.test.d.ts.map +0 -1
  168. package/dist/capability-cli-confirmation.test.js +0 -79
  169. package/dist/capability-cli-confirmation.test.js.map +0 -1
  170. package/dist/capability-options.d.ts.map +0 -1
  171. package/dist/capability-options.js.map +0 -1
  172. package/dist/capability-options.test.d.ts +0 -2
  173. package/dist/capability-options.test.d.ts.map +0 -1
  174. package/dist/capability-options.test.js +0 -81
  175. package/dist/capability-options.test.js.map +0 -1
  176. package/dist/capability-package.d.ts.map +0 -1
  177. package/dist/capability-package.js.map +0 -1
  178. package/dist/capability-package.test.d.ts +0 -2
  179. package/dist/capability-package.test.d.ts.map +0 -1
  180. package/dist/capability-package.test.js +0 -179
  181. package/dist/capability-package.test.js.map +0 -1
  182. package/dist/capability-registry.d.ts.map +0 -1
  183. package/dist/capability-registry.js.map +0 -1
  184. package/dist/capability-registry.test.d.ts +0 -2
  185. package/dist/capability-registry.test.d.ts.map +0 -1
  186. package/dist/capability-registry.test.js +0 -1683
  187. package/dist/capability-registry.test.js.map +0 -1
  188. package/dist/capability-runner.d.ts.map +0 -1
  189. package/dist/capability-runner.js.map +0 -1
  190. package/dist/capability-search-relevance.test.d.ts +0 -2
  191. package/dist/capability-search-relevance.test.d.ts.map +0 -1
  192. package/dist/capability-search-relevance.test.js +0 -67
  193. package/dist/capability-search-relevance.test.js.map +0 -1
  194. package/dist/capability-studio.d.ts.map +0 -1
  195. package/dist/capability-studio.js.map +0 -1
  196. package/dist/capability-studio.test.d.ts +0 -2
  197. package/dist/capability-studio.test.d.ts.map +0 -1
  198. package/dist/capability-studio.test.js +0 -41
  199. package/dist/capability-studio.test.js.map +0 -1
  200. package/dist/cdp-log.d.ts.map +0 -1
  201. package/dist/cdp-log.js.map +0 -1
  202. package/dist/cdp-log.test.d.ts +0 -2
  203. package/dist/cdp-log.test.d.ts.map +0 -1
  204. package/dist/cdp-log.test.js +0 -109
  205. package/dist/cdp-log.test.js.map +0 -1
  206. package/dist/cdp-relay.d.ts.map +0 -1
  207. package/dist/cdp-relay.js.map +0 -1
  208. package/dist/cdp-session.d.ts.map +0 -1
  209. package/dist/cdp-session.js.map +0 -1
  210. package/dist/cdp-types.d.ts.map +0 -1
  211. package/dist/cdp-types.js.map +0 -1
  212. package/dist/channel-owner-inspect.test.d.ts +0 -2
  213. package/dist/channel-owner-inspect.test.d.ts.map +0 -1
  214. package/dist/channel-owner-inspect.test.js +0 -75
  215. package/dist/channel-owner-inspect.test.js.map +0 -1
  216. package/dist/chrome-discovery.d.ts.map +0 -1
  217. package/dist/chrome-discovery.js.map +0 -1
  218. package/dist/chrome-discovery.test.d.ts +0 -2
  219. package/dist/chrome-discovery.test.d.ts.map +0 -1
  220. package/dist/chrome-discovery.test.js +0 -41
  221. package/dist/chrome-discovery.test.js.map +0 -1
  222. package/dist/clean-html.d.ts.map +0 -1
  223. package/dist/clean-html.js.map +0 -1
  224. package/dist/cli-help.test.d.ts +0 -2
  225. package/dist/cli-help.test.d.ts.map +0 -1
  226. package/dist/cli-help.test.js +0 -98
  227. package/dist/cli-help.test.js.map +0 -1
  228. package/dist/cli.d.ts.map +0 -1
  229. package/dist/cli.js.map +0 -1
  230. package/dist/cloud-client.d.ts.map +0 -1
  231. package/dist/cloud-client.js.map +0 -1
  232. package/dist/create-logger.d.ts.map +0 -1
  233. package/dist/create-logger.js.map +0 -1
  234. package/dist/debugger-examples-types.d.ts.map +0 -1
  235. package/dist/debugger-examples-types.js.map +0 -1
  236. package/dist/debugger-examples.d.ts.map +0 -1
  237. package/dist/debugger-examples.js.map +0 -1
  238. package/dist/debugger.d.ts.map +0 -1
  239. package/dist/debugger.js.map +0 -1
  240. package/dist/diff-utils.d.ts.map +0 -1
  241. package/dist/diff-utils.js.map +0 -1
  242. package/dist/diff-utils.test.d.ts +0 -2
  243. package/dist/diff-utils.test.d.ts.map +0 -1
  244. package/dist/diff-utils.test.js +0 -137
  245. package/dist/diff-utils.test.js.map +0 -1
  246. package/dist/doctor.d.ts.map +0 -1
  247. package/dist/doctor.js.map +0 -1
  248. package/dist/doctor.test.d.ts +0 -2
  249. package/dist/doctor.test.d.ts.map +0 -1
  250. package/dist/doctor.test.js +0 -208
  251. package/dist/doctor.test.js.map +0 -1
  252. package/dist/editor-examples.d.ts.map +0 -1
  253. package/dist/editor-examples.js.map +0 -1
  254. package/dist/editor.d.ts.map +0 -1
  255. package/dist/editor.js.map +0 -1
  256. package/dist/env-compat.d.ts.map +0 -1
  257. package/dist/env-compat.js.map +0 -1
  258. package/dist/executor.d.ts.map +0 -1
  259. package/dist/executor.js.map +0 -1
  260. package/dist/executor.unit.test.d.ts +0 -2
  261. package/dist/executor.unit.test.d.ts.map +0 -1
  262. package/dist/executor.unit.test.js +0 -143
  263. package/dist/executor.unit.test.js.map +0 -1
  264. package/dist/extension-connection.test.d.ts +0 -2
  265. package/dist/extension-connection.test.d.ts.map +0 -1
  266. package/dist/extension-connection.test.js +0 -708
  267. package/dist/extension-connection.test.js.map +0 -1
  268. package/dist/extension-icon-warning.test.d.ts +0 -2
  269. package/dist/extension-icon-warning.test.d.ts.map +0 -1
  270. package/dist/extension-icon-warning.test.js +0 -33
  271. package/dist/extension-icon-warning.test.js.map +0 -1
  272. package/dist/ghost-browser.d.ts.map +0 -1
  273. package/dist/ghost-browser.js.map +0 -1
  274. package/dist/ghost-cursor-controller.d.ts.map +0 -1
  275. package/dist/ghost-cursor-controller.js.map +0 -1
  276. package/dist/ghost-cursor.d.ts.map +0 -1
  277. package/dist/ghost-cursor.js.map +0 -1
  278. package/dist/htmlrewrite.d.ts.map +0 -1
  279. package/dist/htmlrewrite.js.map +0 -1
  280. package/dist/htmlrewrite.test.d.ts +0 -2
  281. package/dist/htmlrewrite.test.d.ts.map +0 -1
  282. package/dist/htmlrewrite.test.js +0 -7975
  283. package/dist/htmlrewrite.test.js.map +0 -1
  284. package/dist/index.d.ts.map +0 -1
  285. package/dist/index.js.map +0 -1
  286. package/dist/kill-port.d.ts.map +0 -1
  287. package/dist/kill-port.js.map +0 -1
  288. package/dist/kitty-graphics.d.ts.map +0 -1
  289. package/dist/kitty-graphics.js.map +0 -1
  290. package/dist/kitty-graphics.test.d.ts +0 -2
  291. package/dist/kitty-graphics.test.d.ts.map +0 -1
  292. package/dist/kitty-graphics.test.js +0 -125
  293. package/dist/kitty-graphics.test.js.map +0 -1
  294. package/dist/locator-selector.test.d.ts +0 -2
  295. package/dist/locator-selector.test.d.ts.map +0 -1
  296. package/dist/locator-selector.test.js +0 -98
  297. package/dist/locator-selector.test.js.map +0 -1
  298. package/dist/mcp-client.d.ts +0 -20
  299. package/dist/mcp-client.d.ts.map +0 -1
  300. package/dist/mcp-client.js +0 -56
  301. package/dist/mcp-client.js.map +0 -1
  302. package/dist/mcp.d.ts.map +0 -1
  303. package/dist/mcp.js.map +0 -1
  304. package/dist/on-mouse-action.test.d.ts +0 -2
  305. package/dist/on-mouse-action.test.d.ts.map +0 -1
  306. package/dist/on-mouse-action.test.js +0 -180
  307. package/dist/on-mouse-action.test.js.map +0 -1
  308. package/dist/options-page.test.d.ts +0 -2
  309. package/dist/options-page.test.d.ts.map +0 -1
  310. package/dist/options-page.test.js +0 -773
  311. package/dist/options-page.test.js.map +0 -1
  312. package/dist/package-paths.d.ts.map +0 -1
  313. package/dist/package-paths.js.map +0 -1
  314. package/dist/page-markdown.d.ts.map +0 -1
  315. package/dist/page-markdown.js.map +0 -1
  316. package/dist/performance-examples.d.ts.map +0 -1
  317. package/dist/performance-examples.js.map +0 -1
  318. package/dist/playwright-import.d.ts.map +0 -1
  319. package/dist/playwright-import.js.map +0 -1
  320. package/dist/popup-relocation.test.d.ts +0 -7
  321. package/dist/popup-relocation.test.d.ts.map +0 -1
  322. package/dist/popup-relocation.test.js +0 -139
  323. package/dist/popup-relocation.test.js.map +0 -1
  324. package/dist/product-paths.d.ts.map +0 -1
  325. package/dist/product-paths.js.map +0 -1
  326. package/dist/product-paths.test.d.ts +0 -2
  327. package/dist/product-paths.test.d.ts.map +0 -1
  328. package/dist/product-paths.test.js +0 -39
  329. package/dist/product-paths.test.js.map +0 -1
  330. package/dist/protocol.d.ts.map +0 -1
  331. package/dist/protocol.js.map +0 -1
  332. package/dist/protocol.test.d.ts +0 -2
  333. package/dist/protocol.test.d.ts.map +0 -1
  334. package/dist/protocol.test.js +0 -31
  335. package/dist/protocol.test.js.map +0 -1
  336. package/dist/react-source.d.ts.map +0 -1
  337. package/dist/react-source.js.map +0 -1
  338. package/dist/relay-client.d.ts.map +0 -1
  339. package/dist/relay-client.js.map +0 -1
  340. package/dist/relay-client.test.d.ts +0 -2
  341. package/dist/relay-client.test.d.ts.map +0 -1
  342. package/dist/relay-client.test.js +0 -305
  343. package/dist/relay-client.test.js.map +0 -1
  344. package/dist/relay-core.test.d.ts +0 -2
  345. package/dist/relay-core.test.d.ts.map +0 -1
  346. package/dist/relay-core.test.js +0 -1427
  347. package/dist/relay-core.test.js.map +0 -1
  348. package/dist/relay-navigation.test.d.ts +0 -2
  349. package/dist/relay-navigation.test.d.ts.map +0 -1
  350. package/dist/relay-navigation.test.js +0 -661
  351. package/dist/relay-navigation.test.js.map +0 -1
  352. package/dist/relay-session.test.d.ts +0 -2
  353. package/dist/relay-session.test.d.ts.map +0 -1
  354. package/dist/relay-session.test.js +0 -1121
  355. package/dist/relay-session.test.js.map +0 -1
  356. package/dist/relay-state.d.ts.map +0 -1
  357. package/dist/relay-state.js.map +0 -1
  358. package/dist/relay-state.test.d.ts +0 -2
  359. package/dist/relay-state.test.d.ts.map +0 -1
  360. package/dist/relay-state.test.js +0 -594
  361. package/dist/relay-state.test.js.map +0 -1
  362. package/dist/replay-ai-index.d.ts.map +0 -1
  363. package/dist/replay-ai-index.js.map +0 -1
  364. package/dist/replay-ai-index.test.d.ts +0 -2
  365. package/dist/replay-ai-index.test.d.ts.map +0 -1
  366. package/dist/replay-ai-index.test.js +0 -255
  367. package/dist/replay-ai-index.test.js.map +0 -1
  368. package/dist/replay-cli.test.d.ts +0 -2
  369. package/dist/replay-cli.test.d.ts.map +0 -1
  370. package/dist/replay-cli.test.js +0 -275
  371. package/dist/replay-cli.test.js.map +0 -1
  372. package/dist/replay-eval.d.ts.map +0 -1
  373. package/dist/replay-eval.js.map +0 -1
  374. package/dist/replay-handoff.d.ts.map +0 -1
  375. package/dist/replay-handoff.js.map +0 -1
  376. package/dist/replay-handoff.test.d.ts +0 -2
  377. package/dist/replay-handoff.test.d.ts.map +0 -1
  378. package/dist/replay-handoff.test.js +0 -123
  379. package/dist/replay-handoff.test.js.map +0 -1
  380. package/dist/replay-workflow-compiler.d.ts.map +0 -1
  381. package/dist/replay-workflow-compiler.js.map +0 -1
  382. package/dist/replay-workflow-compiler.test.d.ts +0 -2
  383. package/dist/replay-workflow-compiler.test.d.ts.map +0 -1
  384. package/dist/replay-workflow-compiler.test.js +0 -223
  385. package/dist/replay-workflow-compiler.test.js.map +0 -1
  386. package/dist/rrweb-recording-relay.d.ts.map +0 -1
  387. package/dist/rrweb-recording-relay.js.map +0 -1
  388. package/dist/rrweb-recording-relay.test.d.ts +0 -2
  389. package/dist/rrweb-recording-relay.test.d.ts.map +0 -1
  390. package/dist/rrweb-recording-relay.test.js +0 -85
  391. package/dist/rrweb-recording-relay.test.js.map +0 -1
  392. package/dist/rrweb-recording.d.ts.map +0 -1
  393. package/dist/rrweb-recording.js.map +0 -1
  394. package/dist/scoped-fs.d.ts.map +0 -1
  395. package/dist/scoped-fs.js.map +0 -1
  396. package/dist/scoped-fs.test.d.ts +0 -5
  397. package/dist/scoped-fs.test.d.ts.map +0 -1
  398. package/dist/scoped-fs.test.js +0 -73
  399. package/dist/scoped-fs.test.js.map +0 -1
  400. package/dist/skill-stub.test.d.ts +0 -2
  401. package/dist/skill-stub.test.d.ts.map +0 -1
  402. package/dist/skill-stub.test.js +0 -22
  403. package/dist/skill-stub.test.js.map +0 -1
  404. package/dist/snapshot-tools.test.d.ts +0 -2
  405. package/dist/snapshot-tools.test.d.ts.map +0 -1
  406. package/dist/snapshot-tools.test.js +0 -856
  407. package/dist/snapshot-tools.test.js.map +0 -1
  408. package/dist/start-relay-server.d.ts.map +0 -1
  409. package/dist/start-relay-server.js.map +0 -1
  410. package/dist/styles-examples.d.ts.map +0 -1
  411. package/dist/styles-examples.js.map +0 -1
  412. package/dist/styles.d.ts.map +0 -1
  413. package/dist/styles.js.map +0 -1
  414. package/dist/tabwright-agent-skill.d.ts.map +0 -1
  415. package/dist/tabwright-agent-skill.js.map +0 -1
  416. package/dist/tabwright-agent-skill.test.d.ts +0 -2
  417. package/dist/tabwright-agent-skill.test.d.ts.map +0 -1
  418. package/dist/tabwright-agent-skill.test.js +0 -51
  419. package/dist/tabwright-agent-skill.test.js.map +0 -1
  420. package/dist/test-declarations.d.ts.map +0 -1
  421. package/dist/test-declarations.js.map +0 -1
  422. package/dist/test-utils.d.ts +0 -69
  423. package/dist/test-utils.d.ts.map +0 -1
  424. package/dist/test-utils.js +0 -448
  425. package/dist/test-utils.js.map +0 -1
  426. package/dist/test-utils.test.d.ts +0 -2
  427. package/dist/test-utils.test.d.ts.map +0 -1
  428. package/dist/test-utils.test.js +0 -55
  429. package/dist/test-utils.test.js.map +0 -1
  430. package/dist/utils.d.ts.map +0 -1
  431. package/dist/utils.js.map +0 -1
  432. package/dist/wait-for-page-load.d.ts.map +0 -1
  433. package/dist/wait-for-page-load.js.map +0 -1
  434. package/dist/workflow-capability.d.ts.map +0 -1
  435. package/dist/workflow-capability.js.map +0 -1
  436. package/dist/workflow-script-flow.test.d.ts +0 -2
  437. package/dist/workflow-script-flow.test.d.ts.map +0 -1
  438. package/dist/workflow-script-flow.test.js +0 -285
  439. package/dist/workflow-script-flow.test.js.map +0 -1
  440. package/src/__snapshots__/x.com.processed.html +0 -1003
  441. package/src/__snapshots__/x.com.processed.withStyles.html +0 -2720
  442. package/src/a11y-client.ts +0 -241
  443. package/src/agent-skills/conan-config/SKILL.md +0 -141
  444. package/src/agent-skills/conan-config/agents/openai.yaml +0 -4
  445. package/src/aria-snapshot.test.ts +0 -311
  446. package/src/aria-snapshot.ts +0 -1681
  447. package/src/aria-snapshot.unit.test.ts +0 -615
  448. package/src/aria-snapshots/github-interactive.txt +0 -193
  449. package/src/aria-snapshots/github-raw.txt +0 -309
  450. package/src/aria-snapshots/hackernews-interactive.txt +0 -477
  451. package/src/aria-snapshots/hackernews-raw.txt +0 -428
  452. package/src/aria-snapshots/prosemirror-interactive.txt +0 -66
  453. package/src/aria-snapshots/prosemirror-raw.txt +0 -145
  454. package/src/assets/aria-labels-hacker-news.png +0 -0
  455. package/src/assets/aria-labels-old-reddit.png +0 -0
  456. package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +0 -5
  457. package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +0 -18
  458. package/src/assets/x.com.html +0 -32946
  459. package/src/browser-config.ts +0 -179
  460. package/src/browser-install.ts +0 -284
  461. package/src/browser-launch.ts +0 -75
  462. package/src/builtin-capabilities.ts +0 -2765
  463. package/src/capability-agent-skill.ts +0 -305
  464. package/src/capability-auth-state.ts +0 -197
  465. package/src/capability-auth.ts +0 -249
  466. package/src/capability-cli-confirmation.test.ts +0 -90
  467. package/src/capability-options.test.ts +0 -89
  468. package/src/capability-options.ts +0 -57
  469. package/src/capability-package.test.ts +0 -204
  470. package/src/capability-package.ts +0 -555
  471. package/src/capability-registry.test.ts +0 -1905
  472. package/src/capability-registry.ts +0 -1234
  473. package/src/capability-runner.ts +0 -801
  474. package/src/capability-search-relevance.test.ts +0 -73
  475. package/src/capability-studio.test.ts +0 -45
  476. package/src/capability-studio.ts +0 -641
  477. package/src/cdp-log.test.ts +0 -131
  478. package/src/cdp-log.ts +0 -112
  479. package/src/cdp-relay.ts +0 -2944
  480. package/src/cdp-session.ts +0 -77
  481. package/src/cdp-types.ts +0 -158
  482. package/src/channel-owner-inspect.test.ts +0 -94
  483. package/src/chrome-discovery.test.ts +0 -50
  484. package/src/chrome-discovery.ts +0 -220
  485. package/src/clean-html.ts +0 -141
  486. package/src/cli-help.test.ts +0 -123
  487. package/src/cli.ts +0 -3181
  488. package/src/cloud-client.ts +0 -179
  489. package/src/create-logger.ts +0 -38
  490. package/src/debugger-examples-types.ts +0 -16
  491. package/src/debugger-examples.ts +0 -66
  492. package/src/debugger.ts +0 -708
  493. package/src/diff-utils.test.ts +0 -152
  494. package/src/diff-utils.ts +0 -70
  495. package/src/doctor.test.ts +0 -244
  496. package/src/doctor.ts +0 -321
  497. package/src/editor-examples.ts +0 -158
  498. package/src/editor.ts +0 -426
  499. package/src/env-compat.ts +0 -28
  500. package/src/executor.ts +0 -1824
  501. package/src/executor.unit.test.ts +0 -168
  502. package/src/extension-connection.test.ts +0 -855
  503. package/src/extension-icon-warning.test.ts +0 -45
  504. package/src/ghost-browser.ts +0 -149
  505. package/src/ghost-cursor-client.ts +0 -494
  506. package/src/ghost-cursor-controller.ts +0 -129
  507. package/src/ghost-cursor.ts +0 -123
  508. package/src/htmlrewrite.test.ts +0 -8008
  509. package/src/htmlrewrite.ts +0 -390
  510. package/src/index.ts +0 -53
  511. package/src/kill-port.ts +0 -219
  512. package/src/kitty-graphics.test.ts +0 -139
  513. package/src/kitty-graphics.ts +0 -79
  514. package/src/locator-selector.test.ts +0 -119
  515. package/src/mcp-client.ts +0 -78
  516. package/src/mcp.ts +0 -629
  517. package/src/on-mouse-action.test.ts +0 -226
  518. package/src/options-page.test.ts +0 -839
  519. package/src/package-paths.ts +0 -38
  520. package/src/page-markdown.ts +0 -240
  521. package/src/performance-examples.ts +0 -186
  522. package/src/playwright-import.ts +0 -59
  523. package/src/popup-relocation.test.ts +0 -163
  524. package/src/product-paths.test.ts +0 -47
  525. package/src/product-paths.ts +0 -28
  526. package/src/protocol.test.ts +0 -52
  527. package/src/protocol.ts +0 -351
  528. package/src/react-source.ts +0 -379
  529. package/src/relay-client.test.ts +0 -375
  530. package/src/relay-client.ts +0 -572
  531. package/src/relay-core.test.ts +0 -1603
  532. package/src/relay-navigation.test.ts +0 -790
  533. package/src/relay-session.test.ts +0 -1375
  534. package/src/relay-state.test.ts +0 -729
  535. package/src/relay-state.ts +0 -561
  536. package/src/replay-ai-index.test.ts +0 -278
  537. package/src/replay-ai-index.ts +0 -872
  538. package/src/replay-cli.test.ts +0 -325
  539. package/src/replay-eval.ts +0 -1039
  540. package/src/replay-handoff.test.ts +0 -163
  541. package/src/replay-handoff.ts +0 -109
  542. package/src/replay-workflow-compiler.test.ts +0 -250
  543. package/src/replay-workflow-compiler.ts +0 -700
  544. package/src/resource.md +0 -409
  545. package/src/rrweb-recording-relay.test.ts +0 -99
  546. package/src/rrweb-recording-relay.ts +0 -400
  547. package/src/rrweb-recording.ts +0 -322
  548. package/src/scoped-fs.test.ts +0 -80
  549. package/src/scoped-fs.ts +0 -420
  550. package/src/skill-stub.test.ts +0 -24
  551. package/src/snapshot-tools.test.ts +0 -1017
  552. package/src/snapshots/hacker-news-accessibility-full.md +0 -81
  553. package/src/snapshots/hacker-news-accessibility-interactive.md +0 -43
  554. package/src/snapshots/page-markdown-output.txt +0 -16
  555. package/src/snapshots/shadcn-ui-accessibility-full.md +0 -201
  556. package/src/snapshots/shadcn-ui-accessibility-interactive.md +0 -109
  557. package/src/start-relay-server.ts +0 -69
  558. package/src/styles-examples.ts +0 -84
  559. package/src/styles.ts +0 -343
  560. package/src/tabwright-agent-skill.test.ts +0 -61
  561. package/src/tabwright-agent-skill.ts +0 -105
  562. package/src/test-declarations.ts +0 -13
  563. package/src/test-utils.test.ts +0 -70
  564. package/src/test-utils.ts +0 -566
  565. package/src/utils.ts +0 -78
  566. package/src/wait-for-page-load.ts +0 -198
  567. package/src/workflow-capability.ts +0 -417
  568. package/src/workflow-script-flow.test.ts +0 -388
package/dist/editor.d.ts CHANGED
@@ -200,4 +200,3 @@ export declare class Editor {
200
200
  dryRun?: boolean;
201
201
  }): Promise<EditResult>;
202
202
  }
203
- //# sourceMappingURL=editor.d.ts.map
package/dist/editor.js CHANGED
@@ -360,4 +360,3 @@ export class Editor {
360
360
  return this.setSource(id, content, dryRun);
361
361
  }
362
362
  }
363
- //# sourceMappingURL=editor.js.map
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=env-compat.d.ts.map
@@ -24,4 +24,3 @@ PREFIX_MAPPINGS.map(([currentPrefix, legacyPrefix]) => {
24
24
  });
25
25
  });
26
26
  export {};
27
- //# sourceMappingURL=env-compat.js.map
@@ -226,4 +226,3 @@ export declare class ExecutorManager {
226
226
  getSession(sessionId: string): PlaywrightExecutor | null;
227
227
  listSessions(): SessionInfo[];
228
228
  }
229
- //# sourceMappingURL=executor.d.ts.map
package/dist/executor.js CHANGED
@@ -121,7 +121,7 @@ export function wrapCode(code) {
121
121
  return `(async () => { ${code} })()`;
122
122
  }
123
123
  const EXTENSION_NOT_CONNECTED_ERROR = `The Tabwright Chrome extension is not connected. Make sure you have:
124
- 1. Installed the extension: https://chromewebstore.google.com/detail/tabwright/jfeammnjpkecdekppnclgkkffahnhfhe
124
+ 1. Installed the extension: https://chromewebstore.google.com/detail/tabwright/dkfhphbajbkplddmchbdgdddioonngep
125
125
  2. Clicked the extension icon on a tab to enable it (or refreshed the page if just installed)
126
126
  3. Or use a cloud browser instead: run \`tabwright cloud login\` in your terminal to rent a browser in the cloud, with auto CAPTCHA solving, residential proxies and anti-detection built in`;
127
127
  const NO_PAGES_AVAILABLE_ERROR = 'No Playwright pages are available. Enable Tabwright on a tab or unset TABWRIGHT_AUTO_ENABLE=false to auto-create one.';
@@ -1462,4 +1462,3 @@ export class ExecutorManager {
1462
1462
  });
1463
1463
  }
1464
1464
  }
1465
- //# sourceMappingURL=executor.js.map
@@ -1,4 +1,4 @@
1
- //#region ../node_modules/.pnpm/string-dedent@3.0.2/node_modules/string-dedent/dist/dedent.mjs
1
+ //#region ../../playwriter/node_modules/.pnpm/string-dedent@3.0.2/node_modules/string-dedent/dist/dedent.mjs
2
2
  var cache = /* @__PURE__ */ new WeakMap();
3
3
  var newline = /(\n|\r\n?|\u2028|\u2029)/g;
4
4
  var leadingWhitespace = /^\s*/;
@@ -167,7 +167,7 @@ function hexToInt(c) {
167
167
  return -1;
168
168
  }
169
169
  //#endregion
170
- //#region ../node_modules/.pnpm/zustand@5.0.14_@types+react@19.2.17_react@19.2.7/node_modules/zustand/esm/vanilla.mjs
170
+ //#region ../../playwriter/node_modules/.pnpm/zustand@5.0.14_@types+react@19.2.17_react@19.2.7/node_modules/zustand/esm/vanilla.mjs
171
171
  var createStoreImpl = (createState) => {
172
172
  let state;
173
173
  const listeners = /* @__PURE__ */ new Set();
@@ -1458,7 +1458,7 @@ var RELAY_FEATURE = {
1458
1458
  Object.values(RELAY_FEATURE);
1459
1459
  RELAY_FEATURE.capabilityOptions, RELAY_FEATURE.capabilityAuth, RELAY_FEATURE.capabilityAuthAutoTab, RELAY_FEATURE.rrwebRecording;
1460
1460
  //#endregion
1461
- //#region ../tabwright/src/ghost-browser.ts
1461
+ //#region ../../playwriter/tabwright/src/ghost-browser.ts
1462
1462
  /**
1463
1463
  * Handles ghost-browser commands in the extension.
1464
1464
  * Calls the appropriate chrome.* API and returns the result.
@@ -1563,7 +1563,7 @@ var ConnectionOwnership = class {
1563
1563
  var ghost_cursor_client_default = "(() => {\n var __defProp = Object.defineProperty;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n function __accessProp(key) {\n return this[key];\n }\n var __toCommonJS = (from) => {\n var entry = (__moduleCache ??= new WeakMap).get(from), desc;\n if (entry)\n return entry;\n entry = __defProp({}, \"__esModule\", { value: true });\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (var key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(entry, key))\n __defProp(entry, key, {\n get: __accessProp.bind(from, key),\n enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n });\n }\n __moduleCache.set(from, entry);\n return entry;\n };\n var __moduleCache;\n\n // src/ghost-cursor-client.ts\n var exports_ghost_cursor_client = {};\n\n // src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts\n var SCREENSTUDIO_POINTER_MACOS_TAHOE_DATA_URL = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjE4IiBoZWlnaHQ9Ijk1OCIgdmlld0JveD0iMCAwIDYxOCA5NTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2RfMzg0XzI3KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTI3LjA2MiAzNy4wMzMxTDU0MC42OTYgNDUxLjU1NUM1OTIuNjUzIDUwMy42NiA1NTUuNzk0IDU5Mi41NzQgNDgyLjIyNiA1OTIuNTc0TDQyMS44MzEgNTkyLjU2OUw0ODEuODIxIDczNS4wNTRDNDkyLjMzMSA3NjAuMDIxIDQ5Mi40NzkgNzg3LjY1MiA0ODIuMjY1IDgxMi43NjdDNDcyLjAwMiA4MzcuOTMyIDQ1Mi41NjEgODU3LjU3IDQyNy40OTYgODY4LjA4QzQxNC44NjQgODczLjM1OSA0MDEuNjQgODc2LjAyNCAzODguMTIxIDg3Ni4wMjRDMzQ3LjExNyA4NzYuMDI0IDMxMC4zNTggODUxLjYgMjk0LjQ3IDgxMy44MDRMMjMxLjQyIDY2My45MThMMTkwLjM2OCA3MDAuMzM3QzEzNy4wMjkgNzQ3LjUwOCA1MyA3MDkuNjYzIDUzIDYzOC40MTNWNjcuNjc0NEM1MyAyOC45OTAzIDk5LjcyNjggOS42NDgyOCAxMjcuMDYyIDM3LjAzMzFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwMi4zMTYgOTkuNjUyQzEwMi4zMTYgOTMuMTg4MiAxMTAuMTYyIDg5LjkzMTYgMTE0LjcwMSA5NC41MjA0TDUwNC44OTcgNDg1LjU1NUM1MjYuMTY0IDUwNi44NzEgNTExLjA2NSA1NDMuMjM2IDQ4MC45NjcgNTQzLjIzNkwzNDcuNTQ2IDU0My4xNjFMNDM2LjM0MiA3NTQuMTQzQzQ0Ny41NDIgNzgwLjc4OCA0MzUuMDA5IDgxMS40MjkgNDA4LjQxNCA4MjIuNTgxQzM4MS43MiA4MzMuNzgxIDM1MS4xMjggODIxLjI5OCAzMzkuOTc3IDc5NC43MDJMMjUwLjI5MyA1ODEuMzUyTDE1OC41MTcgNjYyLjY0NEMxMzcuOTkxIDY4MC44MDEgMTA2LjMxOSA2NjguMTQ1IDEwMi42NjQgNjQyLjMyM0wxMDIuMzE2IDYzNy4zMzFWOTkuNjUyWiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzM4NF8yNyIgeD0iMC4zNCIgeT0iMC43OTkyMTkiIHdpZHRoPSI2MTcuMzIiIGhlaWdodD0iOTU3LjE0NCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlT2Zmc2V0IGR5PSIyOS4yNiIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyNi4zMyIvPgo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJvdXQiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuNjUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18zODRfMjciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfMzg0XzI3IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPg==\";\n\n // src/ghost-cursor-client.ts\n var isTopFrame = (() => {\n try {\n return window === window.top;\n } catch {\n return false;\n }\n })();\n var CURSOR_ID = \"__playwriter_ghost_cursor__\";\n var SCREENSTUDIO_POINTER_ASPECT_RATIO = 618 / 958;\n var SCREENSTUDIO_HOTSPOT_X_RATIO = 0.14;\n var SCREENSTUDIO_HOTSPOT_Y_RATIO = 0.06;\n var MINIMAL_TRIANGLE_HOTSPOT_X_RATIO = 0.07;\n var MINIMAL_TRIANGLE_HOTSPOT_Y_RATIO = 0.06;\n var MOVE_EASING = \"cubic-bezier(0.65, 0, 0.35, 1)\";\n var PRESS_EASING = \"cubic-bezier(0.23, 1, 0.32, 1)\";\n var PRESS_DURATION_MS = 140;\n var IDLE_HIDE_DELAY_MS = 5000;\n var IDLE_FADE_OUT_MS = 600;\n var DEFAULT_OPTIONS = {\n style: \"minimal\",\n color: \"#111827\",\n size: 22,\n zIndex: 2147483647,\n easing: MOVE_EASING,\n minDurationMs: 220,\n maxDurationMs: 1500,\n speedPxPerMs: 1.2\n };\n var runtime = {\n outerElement: null,\n innerElement: null,\n options: DEFAULT_OPTIONS,\n x: 0,\n y: 0,\n scale: 1,\n hasPosition: false,\n enabled: false,\n idleHidden: false\n };\n var idleHideTimer = null;\n function clamp(options) {\n const { value, min, max } = options;\n return Math.min(max, Math.max(min, value));\n }\n function mergeOptions(options) {\n if (!options) {\n return DEFAULT_OPTIONS;\n }\n return {\n style: options.style ?? DEFAULT_OPTIONS.style,\n color: options.color ?? DEFAULT_OPTIONS.color,\n size: options.size ?? DEFAULT_OPTIONS.size,\n zIndex: options.zIndex ?? DEFAULT_OPTIONS.zIndex,\n easing: options.easing ?? DEFAULT_OPTIONS.easing,\n minDurationMs: options.minDurationMs ?? DEFAULT_OPTIONS.minDurationMs,\n maxDurationMs: options.maxDurationMs ?? DEFAULT_OPTIONS.maxDurationMs,\n speedPxPerMs: options.speedPxPerMs ?? DEFAULT_OPTIONS.speedPxPerMs\n };\n }\n function getCursorDimensions() {\n if (runtime.options.style === \"screenstudio\") {\n const height = runtime.options.size;\n const width = Math.max(10, Math.round(height * SCREENSTUDIO_POINTER_ASPECT_RATIO));\n return { width, height };\n }\n if (runtime.options.style === \"minimal\") {\n const size = Math.max(12, runtime.options.size);\n return { width: size, height: size };\n }\n return { width: runtime.options.size, height: runtime.options.size };\n }\n function getHotspotOffsetPx() {\n const dimensions = getCursorDimensions();\n if (runtime.options.style === \"screenstudio\") {\n return {\n x: Math.round(dimensions.width * SCREENSTUDIO_HOTSPOT_X_RATIO),\n y: Math.round(dimensions.height * SCREENSTUDIO_HOTSPOT_Y_RATIO)\n };\n }\n if (runtime.options.style === \"minimal\") {\n return {\n x: Math.round(dimensions.width * MINIMAL_TRIANGLE_HOTSPOT_X_RATIO),\n y: Math.round(dimensions.height * MINIMAL_TRIANGLE_HOTSPOT_Y_RATIO)\n };\n }\n return {\n x: Math.round(dimensions.width / 2),\n y: Math.round(dimensions.height / 2)\n };\n }\n function getBaseOpacity() {\n if (runtime.options.style === \"screenstudio\") {\n return \"0.95\";\n }\n if (runtime.options.style === \"minimal\") {\n return \"1\";\n }\n return \"0.72\";\n }\n function applyTranslate() {\n if (!runtime.outerElement) {\n return;\n }\n const hotspot = getHotspotOffsetPx();\n runtime.outerElement.style.transform = `translate3d(${runtime.x - hotspot.x}px, ${runtime.y - hotspot.y}px, 0)`;\n }\n function applyScale() {\n if (!runtime.innerElement) {\n return;\n }\n runtime.innerElement.style.transform = `scale(${runtime.scale})`;\n }\n function computeDurationMs(options) {\n if (!runtime.hasPosition) {\n return 0;\n }\n const dx = options.targetX - runtime.x;\n const dy = options.targetY - runtime.y;\n const distance = Math.hypot(dx, dy);\n const rawDurationMs = distance / runtime.options.speedPxPerMs;\n return clamp({\n value: rawDurationMs,\n min: runtime.options.minDurationMs,\n max: runtime.options.maxDurationMs\n });\n }\n function createCursorElement() {\n const outer = document.createElement(\"div\");\n outer.id = CURSOR_ID;\n outer.setAttribute(\"aria-hidden\", \"true\");\n outer.style.position = \"fixed\";\n outer.style.left = \"0\";\n outer.style.top = \"0\";\n outer.style.pointerEvents = \"none\";\n outer.style.zIndex = `${runtime.options.zIndex}`;\n outer.style.transitionProperty = \"transform\";\n outer.style.transitionTimingFunction = runtime.options.easing;\n outer.style.transitionDuration = \"0ms\";\n outer.style.willChange = \"transform\";\n const inner = document.createElement(\"div\");\n inner.style.transitionProperty = \"transform, opacity\";\n inner.style.transitionTimingFunction = PRESS_EASING;\n inner.style.transitionDuration = `${PRESS_DURATION_MS}ms`;\n inner.style.opacity = getBaseOpacity();\n outer.appendChild(inner);\n runtime.outerElement = outer;\n runtime.innerElement = inner;\n applyRuntimeVisualOptions();\n return outer;\n }\n function ensureCursorElement() {\n const existing = document.getElementById(CURSOR_ID);\n if (existing) {\n runtime.outerElement = existing;\n runtime.innerElement = existing.firstElementChild || null;\n return existing;\n }\n const outer = createCursorElement();\n const root = document.documentElement || document.body;\n root.appendChild(outer);\n return outer;\n }\n function applyRuntimeVisualOptions() {\n if (!runtime.innerElement) {\n return;\n }\n const dimensions = getCursorDimensions();\n runtime.innerElement.style.width = `${dimensions.width}px`;\n runtime.innerElement.style.height = `${dimensions.height}px`;\n if (runtime.outerElement) {\n runtime.outerElement.style.zIndex = `${runtime.options.zIndex}`;\n runtime.outerElement.style.transitionTimingFunction = runtime.options.easing;\n }\n const hotspot = getHotspotOffsetPx();\n runtime.innerElement.style.transformOrigin = `${hotspot.x}px ${hotspot.y}px`;\n if (runtime.options.style === \"screenstudio\") {\n runtime.innerElement.style.borderRadius = \"0\";\n runtime.innerElement.style.border = \"none\";\n runtime.innerElement.style.backgroundColor = \"transparent\";\n runtime.innerElement.style.backgroundImage = `url(\"${SCREENSTUDIO_POINTER_MACOS_TAHOE_DATA_URL}\")`;\n runtime.innerElement.style.backgroundRepeat = \"no-repeat\";\n runtime.innerElement.style.backgroundPosition = \"left top\";\n runtime.innerElement.style.backgroundSize = \"contain\";\n runtime.innerElement.style.backdropFilter = \"none\";\n runtime.innerElement.style.filter = \"none\";\n runtime.innerElement.style.boxShadow = \"none\";\n runtime.innerElement.style.opacity = getBaseOpacity();\n return;\n }\n if (runtime.options.style === \"minimal\") {\n const triangleSvg = `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"-1 -1 26 26\"><path fill=\"white\" stroke=\"${runtime.options.color}\" stroke-width=\"1.5\" stroke-linejoin=\"round\" d=\"m23.284 19.124l-6.866-6.895a.4.4 0 0 1-.118-.296a.43.43 0 0 1 .163-.282l4.439-3.077a1.48 1.48 0 0 0 .621-1.48a1.48 1.48 0 0 0-1.036-1.198L1.623.302a1.14 1.14 0 0 0-1.11.282A1.13 1.13 0 0 0 .29 1.649L5.928 20.44a1.48 1.48 0 0 0 1.183 1.035a1.48 1.48 0 0 0 1.48-.621l3.078-4.44a.37.37 0 0 1 .31-.118a.43.43 0 0 1 .296.104l6.91 6.91a1.48 1.48 0 0 0 2.087 0l2.086-2.086a1.48 1.48 0 0 0-.074-2.101\"/></svg>`;\n const triangleDataUrl = `url(\"data:image/svg+xml,${encodeURIComponent(triangleSvg)}\")`;\n runtime.innerElement.style.borderRadius = \"0\";\n runtime.innerElement.style.border = \"none\";\n runtime.innerElement.style.backgroundColor = \"transparent\";\n runtime.innerElement.style.backgroundImage = triangleDataUrl;\n runtime.innerElement.style.backgroundRepeat = \"no-repeat\";\n runtime.innerElement.style.backgroundSize = \"contain\";\n runtime.innerElement.style.backgroundPosition = \"left top\";\n runtime.innerElement.style.backdropFilter = \"none\";\n runtime.innerElement.style.boxShadow = \"none\";\n runtime.innerElement.style.filter = \"drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4))\";\n runtime.innerElement.style.opacity = getBaseOpacity();\n return;\n }\n runtime.innerElement.style.borderRadius = \"999px\";\n runtime.innerElement.style.border = \"none\";\n runtime.innerElement.style.backgroundColor = runtime.options.color;\n runtime.innerElement.style.backgroundImage = \"none\";\n runtime.innerElement.style.backdropFilter = \"none\";\n runtime.innerElement.style.filter = \"none\";\n runtime.innerElement.style.boxShadow = \"0 2px 10px rgba(0, 0, 0, 0.18), inset 0 0 0 2px rgba(255, 255, 255, 0.55)\";\n runtime.innerElement.style.opacity = getBaseOpacity();\n }\n function clearIdleHideTimer() {\n if (idleHideTimer !== null) {\n clearTimeout(idleHideTimer);\n idleHideTimer = null;\n }\n }\n function scheduleIdleHide() {\n clearIdleHideTimer();\n idleHideTimer = setTimeout(() => {\n idleHideTimer = null;\n if (!runtime.enabled || !runtime.innerElement) {\n return;\n }\n runtime.idleHidden = true;\n runtime.innerElement.style.transitionDuration = `${IDLE_FADE_OUT_MS}ms`;\n runtime.innerElement.style.transitionTimingFunction = PRESS_EASING;\n runtime.innerElement.style.opacity = \"0\";\n }, IDLE_HIDE_DELAY_MS);\n }\n function wakeFromIdle(options) {\n runtime.x = options.x;\n runtime.y = options.y;\n runtime.hasPosition = true;\n if (runtime.innerElement) {\n runtime.innerElement.style.transitionDuration = `${PRESS_DURATION_MS}ms`;\n runtime.innerElement.style.transitionTimingFunction = PRESS_EASING;\n runtime.innerElement.style.opacity = getBaseOpacity();\n }\n }\n function moveCursor(options) {\n if (!runtime.enabled) {\n return;\n }\n ensureCursorElement();\n const durationMs = computeDurationMs({ targetX: options.x, targetY: options.y });\n if (runtime.outerElement) {\n runtime.outerElement.style.transitionDuration = `${Math.round(durationMs)}ms`;\n runtime.outerElement.style.transitionTimingFunction = runtime.options.easing;\n }\n runtime.x = options.x;\n runtime.y = options.y;\n runtime.hasPosition = true;\n applyTranslate();\n }\n function setPressed(options) {\n if (!runtime.enabled || !runtime.innerElement) {\n return;\n }\n runtime.scale = options.pressed ? runtime.options.style === \"dot\" ? 0.92 : 0.95 : 1;\n runtime.innerElement.style.transitionDuration = `${PRESS_DURATION_MS}ms`;\n runtime.innerElement.style.transitionTimingFunction = PRESS_EASING;\n runtime.innerElement.style.opacity = options.pressed ? \"1\" : getBaseOpacity();\n applyScale();\n }\n function enable(options) {\n runtime.options = mergeOptions(options);\n runtime.enabled = true;\n ensureCursorElement();\n applyRuntimeVisualOptions();\n if (!runtime.hasPosition) {\n runtime.x = Math.round(window.innerWidth / 2);\n runtime.y = Math.round(window.innerHeight / 2);\n runtime.scale = 1;\n runtime.hasPosition = true;\n }\n runtime.idleHidden = false;\n if (runtime.innerElement) {\n runtime.innerElement.style.opacity = getBaseOpacity();\n }\n applyTranslate();\n applyScale();\n scheduleIdleHide();\n }\n function disable() {\n runtime.enabled = false;\n runtime.scale = 1;\n runtime.hasPosition = false;\n runtime.idleHidden = false;\n clearIdleHideTimer();\n if (runtime.outerElement) {\n runtime.outerElement.remove();\n runtime.outerElement = null;\n runtime.innerElement = null;\n }\n }\n function applyMouseAction(action) {\n if (!runtime.enabled) {\n return;\n }\n if (runtime.idleHidden) {\n runtime.idleHidden = false;\n wakeFromIdle({ x: action.x, y: action.y });\n }\n if (action.type === \"move\" || action.type === \"wheel\") {\n moveCursor({ x: action.x, y: action.y });\n } else if (action.type === \"down\") {\n moveCursor({ x: action.x, y: action.y });\n setPressed({ pressed: true });\n } else if (action.type === \"up\") {\n moveCursor({ x: action.x, y: action.y });\n setPressed({ pressed: false });\n }\n scheduleIdleHide();\n }\n var api = {\n enable,\n disable,\n applyMouseAction,\n isEnabled: () => {\n return runtime.enabled;\n }\n };\n if (isTopFrame) {\n globalThis.__playwriterGhostCursor = api;\n try {\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", () => {\n try {\n api.enable();\n } catch {}\n }, { once: true });\n } else {\n api.enable();\n }\n } catch {}\n }\n})();\n";
1564
1564
  //#endregion
1565
1565
  //#region ../tabwright/dist/bippy.js?raw
1566
- var bippy_default = "(() => {\n // ../node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/rdt-hook.js\n var e = `0.5.43`;\n var t = `bippy-${e}`;\n var n = Object.defineProperty;\n var r = Object.prototype.hasOwnProperty;\n var i = () => {};\n var a = (e2) => {\n try {\n Function.prototype.toString.call(e2).indexOf(`^_^`) > -1 && setTimeout(() => {\n throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`);\n });\n } catch {}\n };\n var o = (e2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e2 && (`getFiberRoots` in e2));\n var s = false;\n var c;\n var l = (e2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => s ? true : (e2 && typeof e2.inject == `function` && (c = e2.inject.toString()), !!c?.includes(`(injected)`));\n var u = new Set;\n var d = new Set;\n var f = (e2) => {\n let r2 = new Map, o2 = 0, s2 = { _instrumentationIsActive: false, _instrumentationSource: t, checkDCE: a, hasUnsupportedRendererAttached: false, inject(e3) {\n let t2 = ++o2;\n return r2.set(t2, e3), d.add(e3), s2._instrumentationIsActive || (s2._instrumentationIsActive = true, u.forEach((e4) => e4())), t2;\n }, on: i, onCommitFiberRoot: i, onCommitFiberUnmount: i, onPostCommitFiberRoot: i, renderers: r2, supportsFiber: true, supportsFlight: true };\n try {\n n(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`, { configurable: true, enumerable: true, get() {\n return s2;\n }, set(t3) {\n if (t3 && typeof t3 == `object`) {\n let n2 = s2.renderers;\n s2 = t3, n2.size > 0 && (n2.forEach((e3, n3) => {\n d.add(e3), t3.renderers.set(n3, e3);\n }), p(e2));\n }\n } });\n let t2 = window.hasOwnProperty, r3 = false;\n n(window, `hasOwnProperty`, { configurable: true, value: function(...e3) {\n try {\n if (!r3 && e3[0] === `__REACT_DEVTOOLS_GLOBAL_HOOK__`)\n return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = undefined, r3 = true, -0;\n } catch {}\n return t2.apply(this, e3);\n }, writable: true });\n } catch {\n p(e2);\n }\n return s2;\n };\n var p = (e2) => {\n e2 && u.add(e2);\n try {\n let n2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!n2)\n return;\n if (!n2._instrumentationSource) {\n n2.checkDCE = a, n2.supportsFiber = true, n2.supportsFlight = true, n2.hasUnsupportedRendererAttached = false, n2._instrumentationSource = t, n2._instrumentationIsActive = false;\n let e3 = o(n2);\n if (e3 || (n2.on = i), n2.renderers.size) {\n n2._instrumentationIsActive = true, u.forEach((e4) => e4());\n return;\n }\n let r2 = n2.inject, c2 = l(n2);\n c2 && !e3 && (s = true, n2.inject({ scheduleRefresh() {} }) && (n2._instrumentationIsActive = true)), n2.inject = (e4) => {\n let t2 = r2(e4);\n return d.add(e4), c2 && n2.renderers.set(t2, e4), n2._instrumentationIsActive = true, u.forEach((e5) => e5()), t2;\n };\n }\n (n2.renderers.size || n2._instrumentationIsActive || l()) && e2?.();\n } catch {}\n };\n var m = () => r.call(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`);\n var h = (e2) => m() ? (p(e2), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : f(e2);\n var g = () => !!(typeof window < `u` && (window.document?.createElement || window.navigator?.product === `ReactNative`));\n var _ = () => {\n try {\n g() && h();\n } catch {}\n };\n\n // ../node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/install-hook-only.js\n _();\n\n // ../node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/core.js\n var b = (e2) => {\n switch (e2.tag) {\n case 5:\n case 26:\n case 27:\n return true;\n default:\n return typeof e2.type == `string`;\n }\n };\n var be = (e2) => {\n switch (e2.tag) {\n case 1:\n case 11:\n case 0:\n case 14:\n case 15:\n return true;\n default:\n return false;\n }\n };\n function A(e2, t2, n2 = false) {\n if (!e2)\n return null;\n let r2 = t2(e2);\n if (r2 instanceof Promise)\n return (async () => {\n if (await r2 === true)\n return e2;\n let i3 = n2 ? e2.return : e2.child;\n for (;i3; ) {\n let e3 = await M(i3, t2, n2);\n if (e3)\n return e3;\n i3 = n2 ? null : i3.sibling;\n }\n return null;\n })();\n if (r2 === true)\n return e2;\n let i2 = n2 ? e2.return : e2.child;\n for (;i2; ) {\n let e3 = j(i2, t2, n2);\n if (e3)\n return e3;\n i2 = n2 ? null : i2.sibling;\n }\n return null;\n }\n var j = (e2, t2, n2 = false) => {\n if (!e2)\n return null;\n if (t2(e2) === true)\n return e2;\n let r2 = n2 ? e2.return : e2.child;\n for (;r2; ) {\n let e3 = j(r2, t2, n2);\n if (e3)\n return e3;\n r2 = n2 ? null : r2.sibling;\n }\n return null;\n };\n var M = async (e2, t2, n2 = false) => {\n if (!e2)\n return null;\n if (await t2(e2) === true)\n return e2;\n let r2 = n2 ? e2.return : e2.child;\n for (;r2; ) {\n let e3 = await M(r2, t2, n2);\n if (e3)\n return e3;\n r2 = n2 ? null : r2.sibling;\n }\n return null;\n };\n var N = (e2) => {\n let t2 = e2;\n return typeof t2 == `function` ? t2 : typeof t2 == `object` && t2 ? N(t2.type || t2.render) : null;\n };\n var Ee = (e2) => {\n let t2 = e2;\n if (typeof t2 == `string`)\n return t2;\n if (typeof t2 != `function` && !(typeof t2 == `object` && t2))\n return null;\n let n2 = t2.displayName || t2.name || null;\n if (n2)\n return n2;\n let r2 = N(t2);\n return r2 && (r2.displayName || r2.name) || null;\n };\n var I = new WeakMap;\n var U = new WeakMap;\n var Pe = (e2) => {\n let t2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (t2?.renderers)\n for (let n2 of t2.renderers.values())\n try {\n let t3 = n2.findFiberByHostInstance?.(e2);\n if (t3)\n return t3;\n } catch {}\n if (typeof e2 == `object` && e2) {\n if (`_reactRootContainer` in e2)\n return e2._reactRootContainer?._internalRoot?.current?.child;\n for (let t3 in e2)\n if (t3.startsWith(`__reactContainer$`) || t3.startsWith(`__reactInternalInstance$`) || t3.startsWith(`__reactFiber`))\n return e2[t3] || null;\n }\n return null;\n };\n var Z = Error();\n var Q = new Set;\n\n // ../node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/source.js\n var i2 = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\n var a2 = [`rsc://`, `file:///`, `webpack-internal://`, `webpack://`, `node:`, `turbopack://`, `metro://`, `/app-pages-browser/`, `/(app-pages-browser)/`];\n var o2 = [`<anonymous>`, `eval`, ``];\n var s2 = /\\.(jsx|tsx|ts|js)$/;\n var c2 = /(\\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\\.(js|mjs|cjs)$|[\\da-f]{8,}\\.(js|mjs|cjs)$|[-_.][\\da-f]{20,}\\.(js|mjs|cjs)$|\\/dist\\/|\\/build\\/|\\/.next\\/|\\/out\\/|\\/node_modules\\/|\\.webpack\\.|\\.vite\\.|\\.turbopack\\./i;\n var l2 = /^\\?[\\w~.-]+(?:=[^&#]*)?(?:&[\\w~.-]+(?:=[^&#]*)?)*$/;\n var u2 = /\\(at [^)]+\\)$/;\n var d3 = /(^|@)\\S+:\\d+/;\n var f3 = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var ee2 = /^(eval@)?(\\[native code\\])?$/;\n var m3 = (e2, t2) => {\n if (t2?.includeInElement !== false) {\n let n2 = e2.split(`\n`), r2 = [];\n for (let e3 of n2)\n if (/^\\s*at\\s+/.test(e3)) {\n let t3 = _3(e3, undefined)[0];\n t3 && r2.push(t3);\n } else if (/^\\s*in\\s+/.test(e3)) {\n let t3 = e3.replace(/^\\s*in\\s+/, ``).replace(/\\s*\\(at .*\\)$/, ``);\n r2.push({ functionName: t3, source: e3 });\n } else if (e3.match(d3)) {\n let t3 = v2(e3, undefined)[0];\n t3 && r2.push(t3);\n }\n return g3(r2, t2);\n }\n return e2.match(f3) ? _3(e2, t2) : v2(e2, t2);\n };\n var h3 = (e2) => {\n if (!e2.includes(`:`))\n return [e2, undefined, undefined];\n let t2 = e2.startsWith(`(`) && /:\\d+\\)$/.test(e2) ? e2.slice(1, -1) : e2, n2 = /(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(t2);\n return n2 ? [n2[1], n2[2] || undefined, n2[3] || undefined] : [t2, undefined, undefined];\n };\n var g3 = (e2, t2) => t2 && t2.slice != null ? Array.isArray(t2.slice) ? e2.slice(t2.slice[0], t2.slice[1]) : e2.slice(0, t2.slice) : e2;\n var _3 = (e2, t2) => g3(e2.split(`\n`).filter((e3) => !!e3.match(f3)), t2).map((e3) => {\n let t3 = e3;\n t3.includes(`(eval `) && (t3 = t3.replace(/eval code/g, `eval`).replace(/(\\(eval at [^()]*)|(,.*$)/g, ``));\n let n2 = t3.replace(/^\\s+/, ``).replace(/\\(eval code/g, `(`).replace(/^.*?\\s+/, ``), r2 = n2.match(/ (\\(.+\\)$)/);\n n2 = r2 ? n2.replace(r2[0], ``) : n2;\n let i3 = h3(r2 ? r2[1] : n2);\n return { functionName: r2 && n2 || undefined, fileName: [`eval`, `<anonymous>`].includes(i3[0]) ? undefined : i3[0], lineNumber: i3[1] ? +i3[1] : undefined, columnNumber: i3[2] ? +i3[2] : undefined, source: t3 };\n });\n var v2 = (e2, t2) => g3(e2.split(`\n`).filter((e3) => !e3.match(ee2)), t2).map((e3) => {\n let t3 = e3;\n if (t3.includes(` > eval`) && (t3 = t3.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, `:$1`)), !t3.includes(`@`) && !t3.includes(`:`))\n return { functionName: t3 };\n {\n let e4 = /(([^\\n\\r\"\\u2028\\u2029]*\".[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*(?:@[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*)*(?:[\\n\\r\\u2028\\u2029][^@]*)?)?[^@]*)@/, n2 = t3.match(e4), r2 = n2 && n2[1] ? n2[1] : undefined, i3 = h3(t3.replace(e4, ``));\n return { functionName: r2, fileName: i3[0], lineNumber: i3[1] ? +i3[1] : undefined, columnNumber: i3[2] ? +i3[2] : undefined, source: t3 };\n }\n });\n var se2 = 44;\n var y = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;\n var ce2 = new Uint8Array(64);\n var le2 = new Uint8Array(128);\n for (let e2 = 0;e2 < y.length; e2++) {\n let t2 = y.charCodeAt(e2);\n ce2[e2] = t2, le2[t2] = e2;\n }\n function b2(e2, t2) {\n let n2 = 0, r2 = 0, i3 = 0;\n do\n i3 = le2[e2.next()], n2 |= (i3 & 31) << r2, r2 += 5;\n while (i3 & 32);\n let a3 = n2 & 1;\n return n2 >>>= 1, a3 && (n2 = -2147483648 | -n2), t2 + n2;\n }\n function ue2(e2, t2) {\n return e2.pos >= t2 ? false : e2.peek() !== se2;\n }\n var de2 = class {\n constructor(e2) {\n this.pos = 0, this.buffer = e2;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(e2) {\n let { buffer: t2, pos: n2 } = this, r2 = t2.indexOf(e2, n2);\n return r2 === -1 ? t2.length : r2;\n }\n };\n function x2(e2) {\n let { length: t2 } = e2, n2 = new de2(e2), r2 = [], i3 = 0, a3 = 0, o3 = 0, s3 = 0, c3 = 0;\n do {\n let e3 = n2.indexOf(`;`), t3 = [], l3 = true, u3 = 0;\n for (i3 = 0;n2.pos < e3; ) {\n let r3;\n i3 = b2(n2, i3), i3 < u3 && (l3 = false), u3 = i3, ue2(n2, e3) ? (a3 = b2(n2, a3), o3 = b2(n2, o3), s3 = b2(n2, s3), ue2(n2, e3) ? (c3 = b2(n2, c3), r3 = [i3, a3, o3, s3, c3]) : r3 = [i3, a3, o3, s3]) : r3 = [i3], t3.push(r3), n2.pos++;\n }\n l3 || fe2(t3), r2.push(t3), n2.pos = e3 + 1;\n } while (n2.pos <= t2);\n return r2;\n }\n function fe2(e2) {\n e2.sort(pe2);\n }\n function pe2(e2, t2) {\n return e2[0] - t2[0];\n }\n var S2 = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\n var me2 = /^data:application\\/json[^,]+base64,/;\n var he2 = /(?:\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"]+?)[ \\t]*$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^*]+?)[ \\t]*(?:\\*\\/)[ \\t]*$)/;\n var C2 = new Map;\n var w2 = new Map;\n var T2 = (e2, t2, n2, r2) => {\n if (n2 < 0 || n2 >= e2.length)\n return null;\n let i3 = e2[n2];\n if (!i3 || i3.length === 0)\n return null;\n let a3 = null;\n for (let e3 of i3)\n if (e3[0] <= r2)\n a3 = e3;\n else\n break;\n if (!a3 || a3.length < 4)\n return null;\n let [, o3, s3, c3] = a3;\n if (o3 === undefined || s3 === undefined || c3 === undefined)\n return null;\n let l3 = t2[o3];\n return l3 ? { columnNumber: c3, fileName: l3, lineNumber: s3 + 1 } : null;\n };\n var E2 = (e2, t2, n2) => {\n if (e2.sections) {\n let r2 = null;\n for (let i4 of e2.sections)\n if (t2 > i4.offset.line || t2 === i4.offset.line && n2 >= i4.offset.column)\n r2 = i4;\n else\n break;\n if (!r2)\n return null;\n let i3 = t2 - r2.offset.line, a3 = t2 === r2.offset.line ? n2 - r2.offset.column : n2;\n return T2(r2.map.mappings, r2.map.sources, i3, a3);\n }\n return T2(e2.mappings, e2.sources, t2 - 1, n2);\n };\n var ge2 = (e2, t2) => {\n let n2 = t2.split(`\n`), r2;\n for (let e3 = n2.length - 1;e3 >= 0 && !r2; e3--) {\n let t3 = n2[e3].match(he2);\n t3 && (r2 = t3[1] || t3[2]);\n }\n if (!r2)\n return null;\n let i3 = S2.test(r2);\n if (!(me2.test(r2) || i3 || r2.startsWith(`/`))) {\n let t3 = e2.split(`/`);\n t3[t3.length - 1] = r2, r2 = t3.join(`/`);\n }\n return r2;\n };\n var _e2 = (e2) => ({ file: e2.file, mappings: x2(e2.mappings), names: e2.names, sourceRoot: e2.sourceRoot, sources: e2.sources, sourcesContent: e2.sourcesContent, version: 3 });\n var ve2 = (e2) => {\n let t2 = e2.sections.map(({ map: e3, offset: t3 }) => ({ map: { ...e3, mappings: x2(e3.mappings) }, offset: t3 })), n2 = new Set;\n for (let e3 of t2)\n for (let t3 of e3.map.sources)\n n2.add(t3);\n return { file: e2.file, mappings: [], names: [], sections: t2, sourceRoot: undefined, sources: Array.from(n2), sourcesContent: undefined, version: 3 };\n };\n var D2 = (e2) => {\n if (!e2)\n return false;\n let t2 = e2.trim();\n if (!t2)\n return false;\n let n2 = t2.match(S2);\n if (!n2)\n return true;\n let r2 = n2[0].toLowerCase();\n return r2 === `http:` || r2 === `https:`;\n };\n var ye2 = async (e2, t2 = fetch) => {\n if (!D2(e2))\n return null;\n let n2 = await t2(e2);\n if (!n2.ok)\n return null;\n let r2 = await n2.text();\n if (!r2)\n return null;\n let i3 = ge2(e2, r2);\n if (!i3 || !D2(i3))\n return null;\n let a3 = await t2(i3);\n if (!a3.ok)\n return null;\n try {\n let e3 = await a3.json();\n return `sections` in e3 ? ve2(e3) : _e2(e3);\n } catch {\n return null;\n }\n };\n var O2 = async (e2, t2 = true, n2) => {\n if (t2 && C2.has(e2))\n return C2.get(e2) ?? null;\n let r2 = t2 ? w2.get(e2) : undefined;\n if (r2)\n return (await r2).sourceMap;\n let i3 = ye2(e2, n2).then((e3) => ({ sourceMap: e3, isTransientFailure: false }), () => ({ sourceMap: null, isTransientFailure: true }));\n t2 && w2.set(e2, i3);\n let { sourceMap: a3, isTransientFailure: o3 } = await i3;\n return t2 && (w2.delete(e2), o3 || C2.set(e2, a3)), a3;\n };\n var be2 = async (e2, t2 = true, n2) => await Promise.all(e2.map(async (e3) => {\n if (!e3.fileName)\n return e3;\n let r2 = await O2(e3.fileName, t2, n2);\n if (!r2 || typeof e3.lineNumber != `number` || typeof e3.columnNumber != `number`)\n return e3;\n let i3 = E2(r2, e3.lineNumber, e3.columnNumber);\n return i3 ? { ...e3, source: i3.fileName && e3.source ? e3.source.replace(e3.fileName, i3.fileName) : e3.source, fileName: i3.fileName, lineNumber: i3.lineNumber, columnNumber: i3.columnNumber, isSymbolicated: true } : e3;\n }));\n var xe2 = (e2) => e2._debugStack instanceof Error && typeof e2._debugStack?.stack == `string`;\n var Se2 = () => {\n let n2 = h();\n for (let t2 of [...Array.from(d), ...Array.from(n2.renderers.values())]) {\n let e2 = t2.currentDispatcherRef;\n if (e2 && typeof e2 == `object`)\n return `H` in e2 ? e2.H : e2.current;\n }\n return null;\n };\n var Ce2 = (t2) => {\n for (let n2 of d) {\n let e2 = n2.currentDispatcherRef;\n e2 && typeof e2 == `object` && (`H` in e2 ? e2.H = t2 : e2.current = t2);\n }\n };\n var k2 = (e2) => `\n in ${e2}`;\n var we2 = (e2, t2) => {\n let n2 = k2(e2);\n return t2 && (n2 += ` (at ${t2})`), n2;\n };\n var A2 = false;\n var j2 = (e2, t2) => {\n if (!e2 || A2)\n return ``;\n let r2 = Error.prepareStackTrace;\n Error.prepareStackTrace = undefined, A2 = true;\n let i3 = Se2();\n Ce2(null);\n let { error: a3, warn: o3 } = console;\n console.error = () => {}, console.warn = () => {};\n try {\n let r3 = { DetermineComponentFrameRoot() {\n let n2;\n try {\n if (t2) {\n let t3 = function() {\n throw Error();\n };\n if (Object.defineProperty(t3.prototype, `props`, { set: function() {\n throw Error();\n } }), typeof Reflect == `object` && Reflect.construct) {\n try {\n Reflect.construct(t3, []);\n } catch (e3) {\n n2 = e3;\n }\n Reflect.construct(e2, [], t3);\n } else {\n try {\n t3.call();\n } catch (e3) {\n n2 = e3;\n }\n e2.call(t3.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (e3) {\n n2 = e3;\n }\n let t3 = e2();\n t3 && typeof t3.catch == `function` && t3.catch(() => {});\n }\n } catch (e3) {\n if (e3 instanceof Error && n2 instanceof Error && typeof e3.stack == `string`)\n return [e3.stack, n2.stack];\n }\n return [null, null];\n } };\n r3.DetermineComponentFrameRoot.displayName = `DetermineComponentFrameRoot`, Object.getOwnPropertyDescriptor(r3.DetermineComponentFrameRoot, `name`)?.configurable && Object.defineProperty(r3.DetermineComponentFrameRoot, `name`, { value: `DetermineComponentFrameRoot` });\n let [i4, a4] = r3.DetermineComponentFrameRoot();\n if (i4 && a4) {\n let t3 = i4.split(`\n`), r4 = a4.split(`\n`), o4 = 0, s4 = 0;\n for (;o4 < t3.length && !t3[o4].includes(`DetermineComponentFrameRoot`); )\n o4++;\n for (;s4 < r4.length && !r4[s4].includes(`DetermineComponentFrameRoot`); )\n s4++;\n if (o4 === t3.length || s4 === r4.length)\n for (o4 = t3.length - 1, s4 = r4.length - 1;o4 >= 1 && s4 >= 0 && t3[o4] !== r4[s4]; )\n s4--;\n for (;o4 >= 1 && s4 >= 0; o4--, s4--)\n if (t3[o4] !== r4[s4]) {\n if (o4 !== 1 || s4 !== 1)\n do\n if (o4--, s4--, s4 < 0 || t3[o4] !== r4[s4]) {\n let r5 = `\n${t3[o4].replace(` at new `, ` at `)}`, i5 = Ee(e2);\n return i5 && r5.includes(`<anonymous>`) && (r5 = r5.replace(`<anonymous>`, i5)), r5;\n }\n while (o4 >= 1 && s4 >= 0);\n break;\n }\n }\n } finally {\n A2 = false, Error.prepareStackTrace = r2, Ce2(i3), console.error = a3, console.warn = o3;\n }\n let s3 = e2 ? Ee(e2) : ``;\n return s3 ? k2(s3) : ``;\n };\n var M2 = (e2, t2) => {\n let n2 = e2.tag, r2 = ``;\n switch (n2) {\n case 28:\n r2 = k2(`Activity`);\n break;\n case 1:\n r2 = j2(e2.type, true);\n break;\n case 11:\n r2 = j2(e2.type.render, false);\n break;\n case 0:\n case 15:\n r2 = j2(e2.type, false);\n break;\n case 5:\n case 26:\n case 27:\n r2 = k2(e2.type);\n break;\n case 16:\n r2 = k2(`Lazy`);\n break;\n case 13:\n r2 = e2.child !== t2 && t2 !== null ? k2(`Suspense Fallback`) : k2(`Suspense`);\n break;\n case 19:\n r2 = k2(`SuspenseList`);\n break;\n case 30:\n r2 = k2(`ViewTransition`);\n break;\n default:\n return ``;\n }\n return r2;\n };\n var N2 = (e2) => {\n try {\n let t2 = ``, n2 = e2, r2 = null;\n do {\n t2 += M2(n2, r2);\n let e3 = n2._debugInfo;\n if (e3 && Array.isArray(e3))\n for (let n3 = e3.length - 1;n3 >= 0; n3--) {\n let r3 = e3[n3];\n typeof r3.name == `string` && (t2 += we2(r3.name, r3.env));\n }\n r2 = n2, n2 = n2.return;\n } while (n2);\n return t2;\n } catch (e3) {\n return e3 instanceof Error ? `\nError generating stack: ${e3.message}\n${e3.stack}` : ``;\n }\n };\n var P2 = (e2) => {\n let t2 = Error.prepareStackTrace;\n Error.prepareStackTrace = undefined;\n let n2 = e2;\n if (!n2)\n return ``;\n Error.prepareStackTrace = t2, n2.startsWith(`Error: react-stack-top-frame\n`) && (n2 = n2.slice(29));\n let r2 = n2.indexOf(`\n`);\n if (r2 !== -1 && (n2 = n2.slice(r2 + 1)), r2 = Math.max(n2.indexOf(`react_stack_bottom_frame`), n2.indexOf(`react-stack-bottom-frame`)), r2 !== -1 && (r2 = n2.lastIndexOf(`\n`, r2)), r2 !== -1)\n n2 = n2.slice(0, r2);\n else\n return ``;\n return n2;\n };\n var Te2 = (e2) => !!(e2.functionName && e2.fileName && (e2.fileName.startsWith(`rsc://`) || e2.fileName.startsWith(`about://React/`)));\n var Ee2 = (e2, t2) => e2.fileName === t2.fileName && e2.lineNumber === t2.lineNumber && e2.columnNumber === t2.columnNumber;\n var De2 = (e2) => {\n let t2 = new Map;\n for (let n2 of e2)\n for (let e3 of n2.stackFrames) {\n if (!Te2(e3))\n continue;\n let n3 = e3.functionName, r2 = t2.get(n3) ?? [];\n r2.some((t3) => Ee2(t3, e3)) || (r2.push(e3), t2.set(n3, r2));\n }\n return t2;\n };\n var Oe2 = (e2, t2, n2) => {\n if (!e2.functionName)\n return { ...e2, isServer: true };\n let r2 = t2.get(e2.functionName);\n if (!r2 || r2.length === 0)\n return { ...e2, isServer: true };\n let i3 = n2.get(e2.functionName) ?? 0, a3 = r2[i3 % r2.length];\n return n2.set(e2.functionName, i3 + 1), { ...e2, isServer: true, fileName: a3.fileName, lineNumber: a3.lineNumber, columnNumber: a3.columnNumber, source: e2.source?.replace(`(at Server)`, `(${a3.fileName}:${a3.lineNumber}:${a3.columnNumber})`) };\n };\n var ke = (e2) => {\n let t2 = [];\n return A(e2, (e3) => {\n if (!xe2(e3))\n return;\n let r2 = typeof e3.type == `string` ? e3.type : Ee(e3.type) || `<anonymous>`;\n t2.push({ componentName: r2, stackFrames: m3(P2(e3._debugStack?.stack)) });\n }, true), t2;\n };\n var F = async (e2, t2 = true, n2) => {\n let r2 = ke(e2), i3 = m3(N2(e2)), a3 = De2(r2), o3 = new Map;\n return be2(i3.map((e3) => (e3.source?.includes(`(at Server)`) ?? false) || e3.source != null && u2.test(e3.source) ? Oe2(e3, a3, o3) : e3).filter((e3, t3, n3) => {\n if (t3 === 0)\n return true;\n let r3 = n3[t3 - 1];\n return e3.functionName !== r3.functionName;\n }), t2, n2);\n };\n var I2 = (e2) => {\n let t2 = e2._debugSource;\n return t2 ? typeof t2 == `object` && !!t2 && `fileName` in t2 && typeof t2.fileName == `string` && `lineNumber` in t2 && typeof t2.lineNumber == `number` : false;\n };\n var Ae2 = async (e2, t2 = true, n2) => {\n if (I2(e2))\n return e2._debugSource || null;\n let r2 = await F(e2, t2, n2);\n for (let e3 of r2)\n if (e3.fileName)\n return { fileName: e3.fileName, lineNumber: e3.lineNumber, columnNumber: e3.columnNumber, functionName: e3.functionName };\n return null;\n };\n var L2 = (e2) => e2.split(`/`).filter(Boolean).length;\n var je2 = (e2) => e2.split(`/`).filter(Boolean)[0] ?? null;\n var Me2 = (e2) => {\n let t2 = e2.indexOf(`/`, 1);\n if (t2 === -1 || L2(e2.slice(0, t2)) !== 1)\n return e2;\n let n2 = e2.slice(t2);\n if (!s2.test(n2) || L2(n2) < 2)\n return e2;\n let r2 = je2(n2);\n return !r2 || r2.startsWith(`@`) || r2.length > 4 ? e2 : n2;\n };\n var R2 = (e2) => {\n if (!e2 || o2.some((t3) => t3 === e2))\n return ``;\n let t2 = e2, n2 = t2.startsWith(`http://`) || t2.startsWith(`https://`);\n if (n2)\n try {\n t2 = new URL(t2).pathname;\n } catch {}\n if (n2 && (t2 = Me2(t2)), t2.startsWith(`about://React/`)) {\n let e3 = t2.slice(14), n3 = e3.indexOf(`/`), r3 = e3.indexOf(`:`);\n t2 = n3 !== -1 && (r3 === -1 || n3 < r3) ? e3.slice(n3 + 1) : e3;\n }\n let r2 = true;\n for (;r2; ) {\n r2 = false;\n for (let e3 of a2)\n if (t2.startsWith(e3)) {\n t2 = t2.slice(e3.length), e3 === `file:///` && (t2 = `/${t2.replace(/^\\/+/, ``)}`), r2 = true;\n break;\n }\n }\n if (i2.test(t2)) {\n let e3 = t2.match(i2);\n e3 && (t2 = t2.slice(e3[0].length));\n }\n if (t2.startsWith(`//`)) {\n let e3 = t2.indexOf(`/`, 2);\n t2 = e3 === -1 ? `` : t2.slice(e3);\n }\n let s3 = t2.indexOf(`?`);\n if (s3 !== -1) {\n let e3 = t2.slice(s3);\n l2.test(e3) && (t2 = t2.slice(0, s3));\n }\n return t2;\n };\n var Ne2 = (e2) => {\n let t2 = R2(e2);\n return !(!t2 || !s2.test(t2) || c2.test(t2));\n };\n var z2 = Symbol.for(`react.context`);\n var Ie2 = Symbol.for(`react.memo_cache_sentinel`);\n var B2 = [];\n var H2 = null;\n var U2 = null;\n var W = null;\n var G = 0;\n var K = null;\n var q2 = Error(\"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render.\");\n var Y = () => {\n let e2 = U2;\n return e2 !== null && (U2 = e2.next), e2;\n };\n var X2 = (e2) => {\n if (H2 === null)\n return e2._currentValue;\n if (W === null)\n throw Error(`Context reads do not line up with context dependencies.`);\n if (Object.prototype.hasOwnProperty.call(W, `memoizedValue`)) {\n let e3 = W.memoizedValue;\n return W = W.next, e3;\n }\n return e2._currentValue;\n };\n var Z2 = (e2, t2, n2, r2 = null) => {\n B2.push({ displayName: r2, primitive: e2, stackError: Error(), value: t2, dispatcherHookName: n2 });\n };\n var Be = (e2) => {\n if (typeof e2 == `object` && e2) {\n let t2 = e2;\n if (typeof t2.then == `function`) {\n let e3 = K !== null && G < K.length ? K[G++] : t2;\n switch (e3.status) {\n case `fulfilled`:\n return Z2(`Promise`, e3.value, `Use`), e3.value;\n case `rejected`:\n throw e3.reason;\n }\n throw Z2(`Unresolved`, e3, `Use`), q2;\n }\n if (t2.$$typeof === z2 && `_currentValue` in t2) {\n let e3 = t2, n2 = X2(e3);\n return Z2(`Context (use)`, n2, `Use`, e3.displayName || `Context`), n2;\n }\n }\n throw Error(`An unsupported type was passed to use(): ` + String(e2));\n };\n var Ve = (e2) => {\n let t2 = X2(e2);\n return Z2(`Context`, t2, `Context`, e2.displayName || null), t2;\n };\n var He = (e2) => {\n let t2 = Y(), n2 = t2 === null ? typeof e2 == `function` ? e2() : e2 : t2.memoizedState;\n return Z2(`State`, n2, `State`), [n2, () => {}];\n };\n var Ue = (e2, t2, n2) => {\n let r2 = Y(), i3 = r2 === null ? n2 === undefined ? t2 : n2(t2) : r2.memoizedState;\n return Z2(`Reducer`, i3, `Reducer`), [i3, () => {}];\n };\n var We = (e2) => {\n let t2 = Y(), n2 = t2 === null ? { current: e2 } : t2.memoizedState;\n return Z2(`Ref`, n2.current, `Ref`), n2;\n };\n var Ge = () => {\n let e2 = Y();\n return Z2(`CacheRefresh`, e2 === null ? () => {} : e2.memoizedState, `CacheRefresh`), () => {};\n };\n var Ke = (e2) => {\n Y(), Z2(`LayoutEffect`, e2, `LayoutEffect`);\n };\n var qe = (e2) => {\n Y(), Z2(`InsertionEffect`, e2, `InsertionEffect`);\n };\n var Je = (e2) => {\n Y(), Z2(`Effect`, e2, `Effect`);\n };\n var Ye = (e2) => {\n Y();\n let t2;\n typeof e2 == `object` && e2 && `current` in e2 && (t2 = e2.current), Z2(`ImperativeHandle`, t2, `ImperativeHandle`);\n };\n var Xe = (e2, t2) => {\n Z2(`DebugValue`, typeof t2 == `function` ? t2(e2) : e2, `DebugValue`);\n };\n var Ze = (e2) => {\n let t2 = Y();\n return Z2(`Callback`, t2 === null ? e2 : t2.memoizedState[0], `Callback`), e2;\n };\n var Qe = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2() : t2.memoizedState[0];\n return Z2(`Memo`, n2, `Memo`), n2;\n };\n var $e = (e2, t2) => {\n let n2 = Y();\n Y();\n let r2 = n2 === null ? t2() : n2.memoizedState;\n return Z2(`SyncExternalStore`, r2, `SyncExternalStore`), r2;\n };\n var et = () => {\n let e2 = Y();\n Y();\n let t2 = e2 === null ? false : e2.memoizedState;\n return Z2(`Transition`, t2, `Transition`), [t2, () => {}];\n };\n var tt = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2 : t2.memoizedState;\n return Z2(`DeferredValue`, n2, `DeferredValue`), n2;\n };\n var nt = () => {\n let e2 = Y(), t2 = e2 === null ? `` : e2.memoizedState;\n return Z2(`Id`, t2, `Id`), t2;\n };\n var rt = (e2) => {\n let t2 = H2;\n if (t2 == null)\n return [];\n let n2 = t2.updateQueue?.memoCache;\n if (n2 == null)\n return [];\n let r2 = n2.data[n2.index];\n return r2 === undefined && (r2 = n2.data[n2.index] = Array.from({ length: e2 }, () => Ie2)), n2.index++, r2;\n };\n var it = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2 : t2.memoizedState;\n return Z2(`Optimistic`, n2, `Optimistic`), [n2, () => {}];\n };\n var at = (e2, t2) => {\n let n2, r2 = null;\n if (e2 !== null) {\n let t3 = e2.memoizedState;\n if (typeof t3 == `object` && t3 && `then` in t3 && typeof t3.then == `function`) {\n let e3 = t3;\n switch (e3.status) {\n case `fulfilled`:\n n2 = e3.value;\n break;\n case `rejected`:\n r2 = e3.reason;\n break;\n default:\n r2 = q2, n2 = e3;\n }\n } else\n n2 = t3;\n } else\n n2 = t2;\n return { value: n2, error: r2 };\n };\n var ot = (e2) => (t2, n2) => {\n let r2 = Y();\n Y(), Y();\n let i3 = Error(), { value: a3, error: o3 } = at(r2, n2);\n if (B2.push({ displayName: null, primitive: e2, stackError: i3, value: a3, dispatcherHookName: e2 }), o3 !== null)\n throw o3;\n return [a3, () => {}, false];\n };\n var st = ot(`ActionState`);\n var Q2 = { readContext: X2, use: Be, useCallback: Ze, useContext: Ve, useEffect: Je, useImperativeHandle: Ye, useLayoutEffect: Ke, useInsertionEffect: qe, useMemo: Qe, useReducer: Ue, useRef: We, useState: He, useDebugValue: Xe, useDeferredValue: tt, useTransition: et, useSyncExternalStore: $e, useId: nt, useHostTransitionStatus: () => {\n let e2 = X2({ _currentValue: null });\n return Z2(`HostTransitionStatus`, e2, `HostTransitionStatus`), e2;\n }, useFormState: ot(`FormState`), useActionState: st, useOptimistic: it, useMemoCache: rt, useCacheRefresh: Ge, useEffectEvent: (e2) => (Y(), Z2(`EffectEvent`, e2, `EffectEvent`), e2) };\n var ct = typeof Proxy > `u` ? Q2 : new Proxy(Q2, { get(e2, t2) {\n if (Object.prototype.hasOwnProperty.call(e2, t2))\n return e2[t2];\n let n2 = Error(`Missing method in Dispatcher: ` + t2);\n throw n2.name = `ReactDebugToolsUnsupportedHookError`, n2;\n } });\n var gt = new Set([`Context`, `Context (use)`, `DebugValue`, `Promise`, `Unresolved`, `HostTransitionStatus`]);\n var kt = new Set([`Effect`, `LayoutEffect`, `InsertionEffect`, `ImperativeHandle`, `DebugValue`]);\n\n // dist/_bippy-entry-68953-1784086938398.js\n globalThis.__bippy = {\n getFiberFromHostInstance: Pe,\n getDisplayName: Ee,\n traverseFiber: A,\n isCompositeFiber: be,\n isHostFiber: b,\n getSource: Ae2,\n getOwnerStack: F,\n normalizeFileName: R2,\n isSourceFile: Ne2\n };\n})();\n";
1566
+ var bippy_default = "(() => {\n // ../../playwriter/node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/rdt-hook.js\n var e = `0.5.43`;\n var t = `bippy-${e}`;\n var n = Object.defineProperty;\n var r = Object.prototype.hasOwnProperty;\n var i = () => {};\n var a = (e2) => {\n try {\n Function.prototype.toString.call(e2).indexOf(`^_^`) > -1 && setTimeout(() => {\n throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`);\n });\n } catch {}\n };\n var o = (e2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => !!(e2 && (`getFiberRoots` in e2));\n var s = false;\n var c;\n var l = (e2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) => s ? true : (e2 && typeof e2.inject == `function` && (c = e2.inject.toString()), !!c?.includes(`(injected)`));\n var u = new Set;\n var d = new Set;\n var f = (e2) => {\n let r2 = new Map, o2 = 0, s2 = { _instrumentationIsActive: false, _instrumentationSource: t, checkDCE: a, hasUnsupportedRendererAttached: false, inject(e3) {\n let t2 = ++o2;\n return r2.set(t2, e3), d.add(e3), s2._instrumentationIsActive || (s2._instrumentationIsActive = true, u.forEach((e4) => e4())), t2;\n }, on: i, onCommitFiberRoot: i, onCommitFiberUnmount: i, onPostCommitFiberRoot: i, renderers: r2, supportsFiber: true, supportsFlight: true };\n try {\n n(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`, { configurable: true, enumerable: true, get() {\n return s2;\n }, set(t3) {\n if (t3 && typeof t3 == `object`) {\n let n2 = s2.renderers;\n s2 = t3, n2.size > 0 && (n2.forEach((e3, n3) => {\n d.add(e3), t3.renderers.set(n3, e3);\n }), p(e2));\n }\n } });\n let t2 = window.hasOwnProperty, r3 = false;\n n(window, `hasOwnProperty`, { configurable: true, value: function(...e3) {\n try {\n if (!r3 && e3[0] === `__REACT_DEVTOOLS_GLOBAL_HOOK__`)\n return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = undefined, r3 = true, -0;\n } catch {}\n return t2.apply(this, e3);\n }, writable: true });\n } catch {\n p(e2);\n }\n return s2;\n };\n var p = (e2) => {\n e2 && u.add(e2);\n try {\n let n2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (!n2)\n return;\n if (!n2._instrumentationSource) {\n n2.checkDCE = a, n2.supportsFiber = true, n2.supportsFlight = true, n2.hasUnsupportedRendererAttached = false, n2._instrumentationSource = t, n2._instrumentationIsActive = false;\n let e3 = o(n2);\n if (e3 || (n2.on = i), n2.renderers.size) {\n n2._instrumentationIsActive = true, u.forEach((e4) => e4());\n return;\n }\n let r2 = n2.inject, c2 = l(n2);\n c2 && !e3 && (s = true, n2.inject({ scheduleRefresh() {} }) && (n2._instrumentationIsActive = true)), n2.inject = (e4) => {\n let t2 = r2(e4);\n return d.add(e4), c2 && n2.renderers.set(t2, e4), n2._instrumentationIsActive = true, u.forEach((e5) => e5()), t2;\n };\n }\n (n2.renderers.size || n2._instrumentationIsActive || l()) && e2?.();\n } catch {}\n };\n var m = () => r.call(globalThis, `__REACT_DEVTOOLS_GLOBAL_HOOK__`);\n var h = (e2) => m() ? (p(e2), globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__) : f(e2);\n var g = () => !!(typeof window < `u` && (window.document?.createElement || window.navigator?.product === `ReactNative`));\n var _ = () => {\n try {\n g() && h();\n } catch {}\n };\n\n // ../../playwriter/node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/install-hook-only.js\n _();\n\n // ../../playwriter/node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/core.js\n var b = (e2) => {\n switch (e2.tag) {\n case 5:\n case 26:\n case 27:\n return true;\n default:\n return typeof e2.type == `string`;\n }\n };\n var be = (e2) => {\n switch (e2.tag) {\n case 1:\n case 11:\n case 0:\n case 14:\n case 15:\n return true;\n default:\n return false;\n }\n };\n function A(e2, t2, n2 = false) {\n if (!e2)\n return null;\n let r2 = t2(e2);\n if (r2 instanceof Promise)\n return (async () => {\n if (await r2 === true)\n return e2;\n let i3 = n2 ? e2.return : e2.child;\n for (;i3; ) {\n let e3 = await M(i3, t2, n2);\n if (e3)\n return e3;\n i3 = n2 ? null : i3.sibling;\n }\n return null;\n })();\n if (r2 === true)\n return e2;\n let i2 = n2 ? e2.return : e2.child;\n for (;i2; ) {\n let e3 = j(i2, t2, n2);\n if (e3)\n return e3;\n i2 = n2 ? null : i2.sibling;\n }\n return null;\n }\n var j = (e2, t2, n2 = false) => {\n if (!e2)\n return null;\n if (t2(e2) === true)\n return e2;\n let r2 = n2 ? e2.return : e2.child;\n for (;r2; ) {\n let e3 = j(r2, t2, n2);\n if (e3)\n return e3;\n r2 = n2 ? null : r2.sibling;\n }\n return null;\n };\n var M = async (e2, t2, n2 = false) => {\n if (!e2)\n return null;\n if (await t2(e2) === true)\n return e2;\n let r2 = n2 ? e2.return : e2.child;\n for (;r2; ) {\n let e3 = await M(r2, t2, n2);\n if (e3)\n return e3;\n r2 = n2 ? null : r2.sibling;\n }\n return null;\n };\n var N = (e2) => {\n let t2 = e2;\n return typeof t2 == `function` ? t2 : typeof t2 == `object` && t2 ? N(t2.type || t2.render) : null;\n };\n var Ee = (e2) => {\n let t2 = e2;\n if (typeof t2 == `string`)\n return t2;\n if (typeof t2 != `function` && !(typeof t2 == `object` && t2))\n return null;\n let n2 = t2.displayName || t2.name || null;\n if (n2)\n return n2;\n let r2 = N(t2);\n return r2 && (r2.displayName || r2.name) || null;\n };\n var I = new WeakMap;\n var U = new WeakMap;\n var Pe = (e2) => {\n let t2 = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;\n if (t2?.renderers)\n for (let n2 of t2.renderers.values())\n try {\n let t3 = n2.findFiberByHostInstance?.(e2);\n if (t3)\n return t3;\n } catch {}\n if (typeof e2 == `object` && e2) {\n if (`_reactRootContainer` in e2)\n return e2._reactRootContainer?._internalRoot?.current?.child;\n for (let t3 in e2)\n if (t3.startsWith(`__reactContainer$`) || t3.startsWith(`__reactInternalInstance$`) || t3.startsWith(`__reactFiber`))\n return e2[t3] || null;\n }\n return null;\n };\n var Z = Error();\n var Q = new Set;\n\n // ../../playwriter/node_modules/.pnpm/bippy@0.5.43_react@19.2.7/node_modules/bippy/dist/source.js\n var i2 = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\n var a2 = [`rsc://`, `file:///`, `webpack-internal://`, `webpack://`, `node:`, `turbopack://`, `metro://`, `/app-pages-browser/`, `/(app-pages-browser)/`];\n var o2 = [`<anonymous>`, `eval`, ``];\n var s2 = /\\.(jsx|tsx|ts|js)$/;\n var c2 = /(\\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\\.(js|mjs|cjs)$|[\\da-f]{8,}\\.(js|mjs|cjs)$|[-_.][\\da-f]{20,}\\.(js|mjs|cjs)$|\\/dist\\/|\\/build\\/|\\/.next\\/|\\/out\\/|\\/node_modules\\/|\\.webpack\\.|\\.vite\\.|\\.turbopack\\./i;\n var l2 = /^\\?[\\w~.-]+(?:=[^&#]*)?(?:&[\\w~.-]+(?:=[^&#]*)?)*$/;\n var u2 = /\\(at [^)]+\\)$/;\n var d3 = /(^|@)\\S+:\\d+/;\n var f3 = /^\\s*at .*(\\S+:\\d+|\\(native\\))/m;\n var ee2 = /^(eval@)?(\\[native code\\])?$/;\n var m3 = (e2, t2) => {\n if (t2?.includeInElement !== false) {\n let n2 = e2.split(`\n`), r2 = [];\n for (let e3 of n2)\n if (/^\\s*at\\s+/.test(e3)) {\n let t3 = _3(e3, undefined)[0];\n t3 && r2.push(t3);\n } else if (/^\\s*in\\s+/.test(e3)) {\n let t3 = e3.replace(/^\\s*in\\s+/, ``).replace(/\\s*\\(at .*\\)$/, ``);\n r2.push({ functionName: t3, source: e3 });\n } else if (e3.match(d3)) {\n let t3 = v2(e3, undefined)[0];\n t3 && r2.push(t3);\n }\n return g3(r2, t2);\n }\n return e2.match(f3) ? _3(e2, t2) : v2(e2, t2);\n };\n var h3 = (e2) => {\n if (!e2.includes(`:`))\n return [e2, undefined, undefined];\n let t2 = e2.startsWith(`(`) && /:\\d+\\)$/.test(e2) ? e2.slice(1, -1) : e2, n2 = /(.+?)(?::(\\d+))?(?::(\\d+))?$/.exec(t2);\n return n2 ? [n2[1], n2[2] || undefined, n2[3] || undefined] : [t2, undefined, undefined];\n };\n var g3 = (e2, t2) => t2 && t2.slice != null ? Array.isArray(t2.slice) ? e2.slice(t2.slice[0], t2.slice[1]) : e2.slice(0, t2.slice) : e2;\n var _3 = (e2, t2) => g3(e2.split(`\n`).filter((e3) => !!e3.match(f3)), t2).map((e3) => {\n let t3 = e3;\n t3.includes(`(eval `) && (t3 = t3.replace(/eval code/g, `eval`).replace(/(\\(eval at [^()]*)|(,.*$)/g, ``));\n let n2 = t3.replace(/^\\s+/, ``).replace(/\\(eval code/g, `(`).replace(/^.*?\\s+/, ``), r2 = n2.match(/ (\\(.+\\)$)/);\n n2 = r2 ? n2.replace(r2[0], ``) : n2;\n let i3 = h3(r2 ? r2[1] : n2);\n return { functionName: r2 && n2 || undefined, fileName: [`eval`, `<anonymous>`].includes(i3[0]) ? undefined : i3[0], lineNumber: i3[1] ? +i3[1] : undefined, columnNumber: i3[2] ? +i3[2] : undefined, source: t3 };\n });\n var v2 = (e2, t2) => g3(e2.split(`\n`).filter((e3) => !e3.match(ee2)), t2).map((e3) => {\n let t3 = e3;\n if (t3.includes(` > eval`) && (t3 = t3.replace(/ line (\\d+)(?: > eval line \\d+)* > eval:\\d+:\\d+/g, `:$1`)), !t3.includes(`@`) && !t3.includes(`:`))\n return { functionName: t3 };\n {\n let e4 = /(([^\\n\\r\"\\u2028\\u2029]*\".[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*(?:@[^\\n\\r\"\\u2028\\u2029]*\"[^\\n\\r@\\u2028\\u2029]*)*(?:[\\n\\r\\u2028\\u2029][^@]*)?)?[^@]*)@/, n2 = t3.match(e4), r2 = n2 && n2[1] ? n2[1] : undefined, i3 = h3(t3.replace(e4, ``));\n return { functionName: r2, fileName: i3[0], lineNumber: i3[1] ? +i3[1] : undefined, columnNumber: i3[2] ? +i3[2] : undefined, source: t3 };\n }\n });\n var se2 = 44;\n var y = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`;\n var ce2 = new Uint8Array(64);\n var le2 = new Uint8Array(128);\n for (let e2 = 0;e2 < y.length; e2++) {\n let t2 = y.charCodeAt(e2);\n ce2[e2] = t2, le2[t2] = e2;\n }\n function b2(e2, t2) {\n let n2 = 0, r2 = 0, i3 = 0;\n do\n i3 = le2[e2.next()], n2 |= (i3 & 31) << r2, r2 += 5;\n while (i3 & 32);\n let a3 = n2 & 1;\n return n2 >>>= 1, a3 && (n2 = -2147483648 | -n2), t2 + n2;\n }\n function ue2(e2, t2) {\n return e2.pos >= t2 ? false : e2.peek() !== se2;\n }\n var de2 = class {\n constructor(e2) {\n this.pos = 0, this.buffer = e2;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(e2) {\n let { buffer: t2, pos: n2 } = this, r2 = t2.indexOf(e2, n2);\n return r2 === -1 ? t2.length : r2;\n }\n };\n function x2(e2) {\n let { length: t2 } = e2, n2 = new de2(e2), r2 = [], i3 = 0, a3 = 0, o3 = 0, s3 = 0, c3 = 0;\n do {\n let e3 = n2.indexOf(`;`), t3 = [], l3 = true, u3 = 0;\n for (i3 = 0;n2.pos < e3; ) {\n let r3;\n i3 = b2(n2, i3), i3 < u3 && (l3 = false), u3 = i3, ue2(n2, e3) ? (a3 = b2(n2, a3), o3 = b2(n2, o3), s3 = b2(n2, s3), ue2(n2, e3) ? (c3 = b2(n2, c3), r3 = [i3, a3, o3, s3, c3]) : r3 = [i3, a3, o3, s3]) : r3 = [i3], t3.push(r3), n2.pos++;\n }\n l3 || fe2(t3), r2.push(t3), n2.pos = e3 + 1;\n } while (n2.pos <= t2);\n return r2;\n }\n function fe2(e2) {\n e2.sort(pe2);\n }\n function pe2(e2, t2) {\n return e2[0] - t2[0];\n }\n var S2 = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\n var me2 = /^data:application\\/json[^,]+base64,/;\n var he2 = /(?:\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s'\"]+?)[ \\t]*$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^*]+?)[ \\t]*(?:\\*\\/)[ \\t]*$)/;\n var C2 = new Map;\n var w2 = new Map;\n var T2 = (e2, t2, n2, r2) => {\n if (n2 < 0 || n2 >= e2.length)\n return null;\n let i3 = e2[n2];\n if (!i3 || i3.length === 0)\n return null;\n let a3 = null;\n for (let e3 of i3)\n if (e3[0] <= r2)\n a3 = e3;\n else\n break;\n if (!a3 || a3.length < 4)\n return null;\n let [, o3, s3, c3] = a3;\n if (o3 === undefined || s3 === undefined || c3 === undefined)\n return null;\n let l3 = t2[o3];\n return l3 ? { columnNumber: c3, fileName: l3, lineNumber: s3 + 1 } : null;\n };\n var E2 = (e2, t2, n2) => {\n if (e2.sections) {\n let r2 = null;\n for (let i4 of e2.sections)\n if (t2 > i4.offset.line || t2 === i4.offset.line && n2 >= i4.offset.column)\n r2 = i4;\n else\n break;\n if (!r2)\n return null;\n let i3 = t2 - r2.offset.line, a3 = t2 === r2.offset.line ? n2 - r2.offset.column : n2;\n return T2(r2.map.mappings, r2.map.sources, i3, a3);\n }\n return T2(e2.mappings, e2.sources, t2 - 1, n2);\n };\n var ge2 = (e2, t2) => {\n let n2 = t2.split(`\n`), r2;\n for (let e3 = n2.length - 1;e3 >= 0 && !r2; e3--) {\n let t3 = n2[e3].match(he2);\n t3 && (r2 = t3[1] || t3[2]);\n }\n if (!r2)\n return null;\n let i3 = S2.test(r2);\n if (!(me2.test(r2) || i3 || r2.startsWith(`/`))) {\n let t3 = e2.split(`/`);\n t3[t3.length - 1] = r2, r2 = t3.join(`/`);\n }\n return r2;\n };\n var _e2 = (e2) => ({ file: e2.file, mappings: x2(e2.mappings), names: e2.names, sourceRoot: e2.sourceRoot, sources: e2.sources, sourcesContent: e2.sourcesContent, version: 3 });\n var ve2 = (e2) => {\n let t2 = e2.sections.map(({ map: e3, offset: t3 }) => ({ map: { ...e3, mappings: x2(e3.mappings) }, offset: t3 })), n2 = new Set;\n for (let e3 of t2)\n for (let t3 of e3.map.sources)\n n2.add(t3);\n return { file: e2.file, mappings: [], names: [], sections: t2, sourceRoot: undefined, sources: Array.from(n2), sourcesContent: undefined, version: 3 };\n };\n var D2 = (e2) => {\n if (!e2)\n return false;\n let t2 = e2.trim();\n if (!t2)\n return false;\n let n2 = t2.match(S2);\n if (!n2)\n return true;\n let r2 = n2[0].toLowerCase();\n return r2 === `http:` || r2 === `https:`;\n };\n var ye2 = async (e2, t2 = fetch) => {\n if (!D2(e2))\n return null;\n let n2 = await t2(e2);\n if (!n2.ok)\n return null;\n let r2 = await n2.text();\n if (!r2)\n return null;\n let i3 = ge2(e2, r2);\n if (!i3 || !D2(i3))\n return null;\n let a3 = await t2(i3);\n if (!a3.ok)\n return null;\n try {\n let e3 = await a3.json();\n return `sections` in e3 ? ve2(e3) : _e2(e3);\n } catch {\n return null;\n }\n };\n var O2 = async (e2, t2 = true, n2) => {\n if (t2 && C2.has(e2))\n return C2.get(e2) ?? null;\n let r2 = t2 ? w2.get(e2) : undefined;\n if (r2)\n return (await r2).sourceMap;\n let i3 = ye2(e2, n2).then((e3) => ({ sourceMap: e3, isTransientFailure: false }), () => ({ sourceMap: null, isTransientFailure: true }));\n t2 && w2.set(e2, i3);\n let { sourceMap: a3, isTransientFailure: o3 } = await i3;\n return t2 && (w2.delete(e2), o3 || C2.set(e2, a3)), a3;\n };\n var be2 = async (e2, t2 = true, n2) => await Promise.all(e2.map(async (e3) => {\n if (!e3.fileName)\n return e3;\n let r2 = await O2(e3.fileName, t2, n2);\n if (!r2 || typeof e3.lineNumber != `number` || typeof e3.columnNumber != `number`)\n return e3;\n let i3 = E2(r2, e3.lineNumber, e3.columnNumber);\n return i3 ? { ...e3, source: i3.fileName && e3.source ? e3.source.replace(e3.fileName, i3.fileName) : e3.source, fileName: i3.fileName, lineNumber: i3.lineNumber, columnNumber: i3.columnNumber, isSymbolicated: true } : e3;\n }));\n var xe2 = (e2) => e2._debugStack instanceof Error && typeof e2._debugStack?.stack == `string`;\n var Se2 = () => {\n let n2 = h();\n for (let t2 of [...Array.from(d), ...Array.from(n2.renderers.values())]) {\n let e2 = t2.currentDispatcherRef;\n if (e2 && typeof e2 == `object`)\n return `H` in e2 ? e2.H : e2.current;\n }\n return null;\n };\n var Ce2 = (t2) => {\n for (let n2 of d) {\n let e2 = n2.currentDispatcherRef;\n e2 && typeof e2 == `object` && (`H` in e2 ? e2.H = t2 : e2.current = t2);\n }\n };\n var k2 = (e2) => `\n in ${e2}`;\n var we2 = (e2, t2) => {\n let n2 = k2(e2);\n return t2 && (n2 += ` (at ${t2})`), n2;\n };\n var A2 = false;\n var j2 = (e2, t2) => {\n if (!e2 || A2)\n return ``;\n let r2 = Error.prepareStackTrace;\n Error.prepareStackTrace = undefined, A2 = true;\n let i3 = Se2();\n Ce2(null);\n let { error: a3, warn: o3 } = console;\n console.error = () => {}, console.warn = () => {};\n try {\n let r3 = { DetermineComponentFrameRoot() {\n let n2;\n try {\n if (t2) {\n let t3 = function() {\n throw Error();\n };\n if (Object.defineProperty(t3.prototype, `props`, { set: function() {\n throw Error();\n } }), typeof Reflect == `object` && Reflect.construct) {\n try {\n Reflect.construct(t3, []);\n } catch (e3) {\n n2 = e3;\n }\n Reflect.construct(e2, [], t3);\n } else {\n try {\n t3.call();\n } catch (e3) {\n n2 = e3;\n }\n e2.call(t3.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (e3) {\n n2 = e3;\n }\n let t3 = e2();\n t3 && typeof t3.catch == `function` && t3.catch(() => {});\n }\n } catch (e3) {\n if (e3 instanceof Error && n2 instanceof Error && typeof e3.stack == `string`)\n return [e3.stack, n2.stack];\n }\n return [null, null];\n } };\n r3.DetermineComponentFrameRoot.displayName = `DetermineComponentFrameRoot`, Object.getOwnPropertyDescriptor(r3.DetermineComponentFrameRoot, `name`)?.configurable && Object.defineProperty(r3.DetermineComponentFrameRoot, `name`, { value: `DetermineComponentFrameRoot` });\n let [i4, a4] = r3.DetermineComponentFrameRoot();\n if (i4 && a4) {\n let t3 = i4.split(`\n`), r4 = a4.split(`\n`), o4 = 0, s4 = 0;\n for (;o4 < t3.length && !t3[o4].includes(`DetermineComponentFrameRoot`); )\n o4++;\n for (;s4 < r4.length && !r4[s4].includes(`DetermineComponentFrameRoot`); )\n s4++;\n if (o4 === t3.length || s4 === r4.length)\n for (o4 = t3.length - 1, s4 = r4.length - 1;o4 >= 1 && s4 >= 0 && t3[o4] !== r4[s4]; )\n s4--;\n for (;o4 >= 1 && s4 >= 0; o4--, s4--)\n if (t3[o4] !== r4[s4]) {\n if (o4 !== 1 || s4 !== 1)\n do\n if (o4--, s4--, s4 < 0 || t3[o4] !== r4[s4]) {\n let r5 = `\n${t3[o4].replace(` at new `, ` at `)}`, i5 = Ee(e2);\n return i5 && r5.includes(`<anonymous>`) && (r5 = r5.replace(`<anonymous>`, i5)), r5;\n }\n while (o4 >= 1 && s4 >= 0);\n break;\n }\n }\n } finally {\n A2 = false, Error.prepareStackTrace = r2, Ce2(i3), console.error = a3, console.warn = o3;\n }\n let s3 = e2 ? Ee(e2) : ``;\n return s3 ? k2(s3) : ``;\n };\n var M2 = (e2, t2) => {\n let n2 = e2.tag, r2 = ``;\n switch (n2) {\n case 28:\n r2 = k2(`Activity`);\n break;\n case 1:\n r2 = j2(e2.type, true);\n break;\n case 11:\n r2 = j2(e2.type.render, false);\n break;\n case 0:\n case 15:\n r2 = j2(e2.type, false);\n break;\n case 5:\n case 26:\n case 27:\n r2 = k2(e2.type);\n break;\n case 16:\n r2 = k2(`Lazy`);\n break;\n case 13:\n r2 = e2.child !== t2 && t2 !== null ? k2(`Suspense Fallback`) : k2(`Suspense`);\n break;\n case 19:\n r2 = k2(`SuspenseList`);\n break;\n case 30:\n r2 = k2(`ViewTransition`);\n break;\n default:\n return ``;\n }\n return r2;\n };\n var N2 = (e2) => {\n try {\n let t2 = ``, n2 = e2, r2 = null;\n do {\n t2 += M2(n2, r2);\n let e3 = n2._debugInfo;\n if (e3 && Array.isArray(e3))\n for (let n3 = e3.length - 1;n3 >= 0; n3--) {\n let r3 = e3[n3];\n typeof r3.name == `string` && (t2 += we2(r3.name, r3.env));\n }\n r2 = n2, n2 = n2.return;\n } while (n2);\n return t2;\n } catch (e3) {\n return e3 instanceof Error ? `\nError generating stack: ${e3.message}\n${e3.stack}` : ``;\n }\n };\n var P2 = (e2) => {\n let t2 = Error.prepareStackTrace;\n Error.prepareStackTrace = undefined;\n let n2 = e2;\n if (!n2)\n return ``;\n Error.prepareStackTrace = t2, n2.startsWith(`Error: react-stack-top-frame\n`) && (n2 = n2.slice(29));\n let r2 = n2.indexOf(`\n`);\n if (r2 !== -1 && (n2 = n2.slice(r2 + 1)), r2 = Math.max(n2.indexOf(`react_stack_bottom_frame`), n2.indexOf(`react-stack-bottom-frame`)), r2 !== -1 && (r2 = n2.lastIndexOf(`\n`, r2)), r2 !== -1)\n n2 = n2.slice(0, r2);\n else\n return ``;\n return n2;\n };\n var Te2 = (e2) => !!(e2.functionName && e2.fileName && (e2.fileName.startsWith(`rsc://`) || e2.fileName.startsWith(`about://React/`)));\n var Ee2 = (e2, t2) => e2.fileName === t2.fileName && e2.lineNumber === t2.lineNumber && e2.columnNumber === t2.columnNumber;\n var De2 = (e2) => {\n let t2 = new Map;\n for (let n2 of e2)\n for (let e3 of n2.stackFrames) {\n if (!Te2(e3))\n continue;\n let n3 = e3.functionName, r2 = t2.get(n3) ?? [];\n r2.some((t3) => Ee2(t3, e3)) || (r2.push(e3), t2.set(n3, r2));\n }\n return t2;\n };\n var Oe2 = (e2, t2, n2) => {\n if (!e2.functionName)\n return { ...e2, isServer: true };\n let r2 = t2.get(e2.functionName);\n if (!r2 || r2.length === 0)\n return { ...e2, isServer: true };\n let i3 = n2.get(e2.functionName) ?? 0, a3 = r2[i3 % r2.length];\n return n2.set(e2.functionName, i3 + 1), { ...e2, isServer: true, fileName: a3.fileName, lineNumber: a3.lineNumber, columnNumber: a3.columnNumber, source: e2.source?.replace(`(at Server)`, `(${a3.fileName}:${a3.lineNumber}:${a3.columnNumber})`) };\n };\n var ke = (e2) => {\n let t2 = [];\n return A(e2, (e3) => {\n if (!xe2(e3))\n return;\n let r2 = typeof e3.type == `string` ? e3.type : Ee(e3.type) || `<anonymous>`;\n t2.push({ componentName: r2, stackFrames: m3(P2(e3._debugStack?.stack)) });\n }, true), t2;\n };\n var F = async (e2, t2 = true, n2) => {\n let r2 = ke(e2), i3 = m3(N2(e2)), a3 = De2(r2), o3 = new Map;\n return be2(i3.map((e3) => (e3.source?.includes(`(at Server)`) ?? false) || e3.source != null && u2.test(e3.source) ? Oe2(e3, a3, o3) : e3).filter((e3, t3, n3) => {\n if (t3 === 0)\n return true;\n let r3 = n3[t3 - 1];\n return e3.functionName !== r3.functionName;\n }), t2, n2);\n };\n var I2 = (e2) => {\n let t2 = e2._debugSource;\n return t2 ? typeof t2 == `object` && !!t2 && `fileName` in t2 && typeof t2.fileName == `string` && `lineNumber` in t2 && typeof t2.lineNumber == `number` : false;\n };\n var Ae2 = async (e2, t2 = true, n2) => {\n if (I2(e2))\n return e2._debugSource || null;\n let r2 = await F(e2, t2, n2);\n for (let e3 of r2)\n if (e3.fileName)\n return { fileName: e3.fileName, lineNumber: e3.lineNumber, columnNumber: e3.columnNumber, functionName: e3.functionName };\n return null;\n };\n var L2 = (e2) => e2.split(`/`).filter(Boolean).length;\n var je2 = (e2) => e2.split(`/`).filter(Boolean)[0] ?? null;\n var Me2 = (e2) => {\n let t2 = e2.indexOf(`/`, 1);\n if (t2 === -1 || L2(e2.slice(0, t2)) !== 1)\n return e2;\n let n2 = e2.slice(t2);\n if (!s2.test(n2) || L2(n2) < 2)\n return e2;\n let r2 = je2(n2);\n return !r2 || r2.startsWith(`@`) || r2.length > 4 ? e2 : n2;\n };\n var R2 = (e2) => {\n if (!e2 || o2.some((t3) => t3 === e2))\n return ``;\n let t2 = e2, n2 = t2.startsWith(`http://`) || t2.startsWith(`https://`);\n if (n2)\n try {\n t2 = new URL(t2).pathname;\n } catch {}\n if (n2 && (t2 = Me2(t2)), t2.startsWith(`about://React/`)) {\n let e3 = t2.slice(14), n3 = e3.indexOf(`/`), r3 = e3.indexOf(`:`);\n t2 = n3 !== -1 && (r3 === -1 || n3 < r3) ? e3.slice(n3 + 1) : e3;\n }\n let r2 = true;\n for (;r2; ) {\n r2 = false;\n for (let e3 of a2)\n if (t2.startsWith(e3)) {\n t2 = t2.slice(e3.length), e3 === `file:///` && (t2 = `/${t2.replace(/^\\/+/, ``)}`), r2 = true;\n break;\n }\n }\n if (i2.test(t2)) {\n let e3 = t2.match(i2);\n e3 && (t2 = t2.slice(e3[0].length));\n }\n if (t2.startsWith(`//`)) {\n let e3 = t2.indexOf(`/`, 2);\n t2 = e3 === -1 ? `` : t2.slice(e3);\n }\n let s3 = t2.indexOf(`?`);\n if (s3 !== -1) {\n let e3 = t2.slice(s3);\n l2.test(e3) && (t2 = t2.slice(0, s3));\n }\n return t2;\n };\n var Ne2 = (e2) => {\n let t2 = R2(e2);\n return !(!t2 || !s2.test(t2) || c2.test(t2));\n };\n var z2 = Symbol.for(`react.context`);\n var Ie2 = Symbol.for(`react.memo_cache_sentinel`);\n var B2 = [];\n var H2 = null;\n var U2 = null;\n var W = null;\n var G = 0;\n var K = null;\n var q2 = Error(\"Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render.\");\n var Y = () => {\n let e2 = U2;\n return e2 !== null && (U2 = e2.next), e2;\n };\n var X2 = (e2) => {\n if (H2 === null)\n return e2._currentValue;\n if (W === null)\n throw Error(`Context reads do not line up with context dependencies.`);\n if (Object.prototype.hasOwnProperty.call(W, `memoizedValue`)) {\n let e3 = W.memoizedValue;\n return W = W.next, e3;\n }\n return e2._currentValue;\n };\n var Z2 = (e2, t2, n2, r2 = null) => {\n B2.push({ displayName: r2, primitive: e2, stackError: Error(), value: t2, dispatcherHookName: n2 });\n };\n var Be = (e2) => {\n if (typeof e2 == `object` && e2) {\n let t2 = e2;\n if (typeof t2.then == `function`) {\n let e3 = K !== null && G < K.length ? K[G++] : t2;\n switch (e3.status) {\n case `fulfilled`:\n return Z2(`Promise`, e3.value, `Use`), e3.value;\n case `rejected`:\n throw e3.reason;\n }\n throw Z2(`Unresolved`, e3, `Use`), q2;\n }\n if (t2.$$typeof === z2 && `_currentValue` in t2) {\n let e3 = t2, n2 = X2(e3);\n return Z2(`Context (use)`, n2, `Use`, e3.displayName || `Context`), n2;\n }\n }\n throw Error(`An unsupported type was passed to use(): ` + String(e2));\n };\n var Ve = (e2) => {\n let t2 = X2(e2);\n return Z2(`Context`, t2, `Context`, e2.displayName || null), t2;\n };\n var He = (e2) => {\n let t2 = Y(), n2 = t2 === null ? typeof e2 == `function` ? e2() : e2 : t2.memoizedState;\n return Z2(`State`, n2, `State`), [n2, () => {}];\n };\n var Ue = (e2, t2, n2) => {\n let r2 = Y(), i3 = r2 === null ? n2 === undefined ? t2 : n2(t2) : r2.memoizedState;\n return Z2(`Reducer`, i3, `Reducer`), [i3, () => {}];\n };\n var We = (e2) => {\n let t2 = Y(), n2 = t2 === null ? { current: e2 } : t2.memoizedState;\n return Z2(`Ref`, n2.current, `Ref`), n2;\n };\n var Ge = () => {\n let e2 = Y();\n return Z2(`CacheRefresh`, e2 === null ? () => {} : e2.memoizedState, `CacheRefresh`), () => {};\n };\n var Ke = (e2) => {\n Y(), Z2(`LayoutEffect`, e2, `LayoutEffect`);\n };\n var qe = (e2) => {\n Y(), Z2(`InsertionEffect`, e2, `InsertionEffect`);\n };\n var Je = (e2) => {\n Y(), Z2(`Effect`, e2, `Effect`);\n };\n var Ye = (e2) => {\n Y();\n let t2;\n typeof e2 == `object` && e2 && `current` in e2 && (t2 = e2.current), Z2(`ImperativeHandle`, t2, `ImperativeHandle`);\n };\n var Xe = (e2, t2) => {\n Z2(`DebugValue`, typeof t2 == `function` ? t2(e2) : e2, `DebugValue`);\n };\n var Ze = (e2) => {\n let t2 = Y();\n return Z2(`Callback`, t2 === null ? e2 : t2.memoizedState[0], `Callback`), e2;\n };\n var Qe = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2() : t2.memoizedState[0];\n return Z2(`Memo`, n2, `Memo`), n2;\n };\n var $e = (e2, t2) => {\n let n2 = Y();\n Y();\n let r2 = n2 === null ? t2() : n2.memoizedState;\n return Z2(`SyncExternalStore`, r2, `SyncExternalStore`), r2;\n };\n var et = () => {\n let e2 = Y();\n Y();\n let t2 = e2 === null ? false : e2.memoizedState;\n return Z2(`Transition`, t2, `Transition`), [t2, () => {}];\n };\n var tt = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2 : t2.memoizedState;\n return Z2(`DeferredValue`, n2, `DeferredValue`), n2;\n };\n var nt = () => {\n let e2 = Y(), t2 = e2 === null ? `` : e2.memoizedState;\n return Z2(`Id`, t2, `Id`), t2;\n };\n var rt = (e2) => {\n let t2 = H2;\n if (t2 == null)\n return [];\n let n2 = t2.updateQueue?.memoCache;\n if (n2 == null)\n return [];\n let r2 = n2.data[n2.index];\n return r2 === undefined && (r2 = n2.data[n2.index] = Array.from({ length: e2 }, () => Ie2)), n2.index++, r2;\n };\n var it = (e2) => {\n let t2 = Y(), n2 = t2 === null ? e2 : t2.memoizedState;\n return Z2(`Optimistic`, n2, `Optimistic`), [n2, () => {}];\n };\n var at = (e2, t2) => {\n let n2, r2 = null;\n if (e2 !== null) {\n let t3 = e2.memoizedState;\n if (typeof t3 == `object` && t3 && `then` in t3 && typeof t3.then == `function`) {\n let e3 = t3;\n switch (e3.status) {\n case `fulfilled`:\n n2 = e3.value;\n break;\n case `rejected`:\n r2 = e3.reason;\n break;\n default:\n r2 = q2, n2 = e3;\n }\n } else\n n2 = t3;\n } else\n n2 = t2;\n return { value: n2, error: r2 };\n };\n var ot = (e2) => (t2, n2) => {\n let r2 = Y();\n Y(), Y();\n let i3 = Error(), { value: a3, error: o3 } = at(r2, n2);\n if (B2.push({ displayName: null, primitive: e2, stackError: i3, value: a3, dispatcherHookName: e2 }), o3 !== null)\n throw o3;\n return [a3, () => {}, false];\n };\n var st = ot(`ActionState`);\n var Q2 = { readContext: X2, use: Be, useCallback: Ze, useContext: Ve, useEffect: Je, useImperativeHandle: Ye, useLayoutEffect: Ke, useInsertionEffect: qe, useMemo: Qe, useReducer: Ue, useRef: We, useState: He, useDebugValue: Xe, useDeferredValue: tt, useTransition: et, useSyncExternalStore: $e, useId: nt, useHostTransitionStatus: () => {\n let e2 = X2({ _currentValue: null });\n return Z2(`HostTransitionStatus`, e2, `HostTransitionStatus`), e2;\n }, useFormState: ot(`FormState`), useActionState: st, useOptimistic: it, useMemoCache: rt, useCacheRefresh: Ge, useEffectEvent: (e2) => (Y(), Z2(`EffectEvent`, e2, `EffectEvent`), e2) };\n var ct = typeof Proxy > `u` ? Q2 : new Proxy(Q2, { get(e2, t2) {\n if (Object.prototype.hasOwnProperty.call(e2, t2))\n return e2[t2];\n let n2 = Error(`Missing method in Dispatcher: ` + t2);\n throw n2.name = `ReactDebugToolsUnsupportedHookError`, n2;\n } });\n var gt = new Set([`Context`, `Context (use)`, `DebugValue`, `Promise`, `Unresolved`, `HostTransitionStatus`]);\n var kt = new Set([`Effect`, `LayoutEffect`, `InsertionEffect`, `ImperativeHandle`, `DebugValue`]);\n\n // dist/_bippy-entry-53465-1784102736730.js\n globalThis.__bippy = {\n getFiberFromHostInstance: Pe,\n getDisplayName: Ee,\n traverseFiber: A,\n isCompositeFiber: be,\n isHostFiber: b,\n getSource: Ae2,\n getOwnerStack: F,\n normalizeFileName: R2,\n isSourceFile: Ne2\n };\n})();\n";
1567
1567
  //#endregion
1568
1568
  //#region src/rrweb-recording.ts
1569
1569
  var activeRrwebRecordings = /* @__PURE__ */ new Map();
@@ -2270,7 +2270,7 @@ var ConnectionManager = class {
2270
2270
  if (identity.email) relayUrl.searchParams.set("email", identity.email);
2271
2271
  if (identity.id) relayUrl.searchParams.set("id", identity.id);
2272
2272
  if (identity.installId) relayUrl.searchParams.set("installId", identity.installId);
2273
- relayUrl.searchParams.set("v", "1.0.0");
2273
+ relayUrl.searchParams.set("v", "2.0.0");
2274
2274
  relayUrl.searchParams.set("protocolVersion", String(1));
2275
2275
  relayUrl.searchParams.set("features", CURRENT_EXTENSION_FEATURES.join(","));
2276
2276
  logger.debug("Creating WebSocket connection to:", relayUrl);
@@ -3341,7 +3341,11 @@ async function resetDebugger() {
3341
3341
  logger.log(`found ${targets.length} existing debugger targets. detaching them before background script starts`);
3342
3342
  for (const target of targets) await chrome.debugger.detach({ tabId: target.tabId });
3343
3343
  }
3344
- var OUR_EXTENSION_IDS = ["jfeammnjpkecdekppnclgkkffahnhfhe", "pebbngnfojnignonigcnkdilknapkgid"];
3344
+ var OUR_EXTENSION_IDS = [
3345
+ "dkfhphbajbkplddmchbdgdddioonngep",
3346
+ "jfeammnjpkecdekppnclgkkffahnhfhe",
3347
+ "pebbngnfojnignonigcnkdilknapkgid"
3348
+ ];
3345
3349
  function isRestrictedUrl(url) {
3346
3350
  if (!url) return false;
3347
3351
  if (url.startsWith("chrome-extension://")) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": 3,
3
3
  "name": "__MSG_app_title__",
4
- "version": "0.0.148",
4
+ "version": "0.0.149",
5
5
  "default_locale": "en",
6
6
  "description": "__MSG_extension_description__",
7
7
  "permissions": [
@@ -29,7 +29,7 @@
29
29
  }
30
30
  })();
31
31
  //#endregion
32
- //#region ../node_modules/.pnpm/rrweb@2.1.0/node_modules/rrweb/dist/rrweb.js
32
+ //#region ../../playwriter/node_modules/.pnpm/rrweb@2.1.0/node_modules/rrweb/dist/rrweb.js
33
33
  var __defProp = Object.defineProperty;
34
34
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
35
35
  enumerable: true,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  var TabwrightRrwebRecorder = (() => {
3
- // ../node_modules/.pnpm/rrweb@2.1.0/node_modules/rrweb/dist/rrweb.js
3
+ // ../../playwriter/node_modules/.pnpm/rrweb@2.1.0/node_modules/rrweb/dist/rrweb.js
4
4
  var __defProp = Object.defineProperty;
5
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
6
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -59,4 +59,3 @@ export declare function createGhostBrowserChrome(sendCommand: SendGhostBrowserCo
59
59
  * @returns Result object with success/error status
60
60
  */
61
61
  export declare function handleGhostBrowserCommand(params: GhostBrowserCommandParams, chromeApi: typeof chrome): Promise<GhostBrowserCommandResult>;
62
- //# sourceMappingURL=ghost-browser.d.ts.map
@@ -104,4 +104,3 @@ export async function handleGhostBrowserCommand(params, chromeApi) {
104
104
  return { success: false, error: error.message };
105
105
  }
106
106
  }
107
- //# sourceMappingURL=ghost-browser.js.map
@@ -43,4 +43,3 @@ export declare class GhostCursorController {
43
43
  }): Promise<void>;
44
44
  }
45
45
  export {};
46
- //# sourceMappingURL=ghost-cursor-controller.d.ts.map
@@ -95,4 +95,3 @@ export class GhostCursorController {
95
95
  }
96
96
  }
97
97
  }
98
- //# sourceMappingURL=ghost-cursor-controller.js.map
@@ -24,4 +24,3 @@ export declare function applyGhostCursorMouseAction(options: {
24
24
  page: Page;
25
25
  event: MouseActionEvent;
26
26
  }): Promise<void>;
27
- //# sourceMappingURL=ghost-cursor.d.ts.map
@@ -76,4 +76,3 @@ export async function applyGhostCursorMouseAction(options) {
76
76
  // Swallow — page may be closed, navigating, or debugger detached.
77
77
  }
78
78
  }
79
- //# sourceMappingURL=ghost-cursor.js.map
@@ -5,4 +5,3 @@ export interface FormatHtmlOptions {
5
5
  maxContentLen?: number;
6
6
  }
7
7
  export declare function formatHtmlForPrompt({ html, keepStyles, maxAttrLen, maxContentLen, }: FormatHtmlOptions): Promise<string>;
8
- //# sourceMappingURL=htmlrewrite.d.ts.map
@@ -336,4 +336,3 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
336
336
  const result = await processor.process(html);
337
337
  return result.html;
338
338
  }
339
- //# sourceMappingURL=htmlrewrite.js.map
package/dist/index.d.ts CHANGED
@@ -17,4 +17,3 @@ export { analyzeReplayWorkflow, compileReplayWorkflow } from './replay-workflow-
17
17
  export type { CompiledReplayWorkflow, CompileReplayWorkflowOptions, ReplayWorkflowAnalysis, } from './replay-workflow-compiler.js';
18
18
  export { buildReplayAiIndex, createReplayAiIndexFromRecording, saveReplayAiIndex, } from './replay-ai-index.js';
19
19
  export type { ReplayAiAction, ReplayAiField, ReplayAiIndex, ReplayAiIndexStats, ReplayAiNodeSummary, SavedReplayAiIndex, } from './replay-ai-index.js';
20
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -8,4 +8,3 @@ export { startReplayRecording, stopReplayRecording, isReplayRecording, cancelRep
8
8
  export { saveWorkflowCapability, saveWorkflowFromRecording } from './workflow-capability.js';
9
9
  export { analyzeReplayWorkflow, compileReplayWorkflow } from './replay-workflow-compiler.js';
10
10
  export { buildReplayAiIndex, createReplayAiIndexFromRecording, saveReplayAiIndex, } from './replay-ai-index.js';
11
- //# sourceMappingURL=index.js.map
@@ -26,4 +26,3 @@ export declare function killPortProcess({ port, signal, }: {
26
26
  port: number;
27
27
  signal?: KillPortSignal;
28
28
  }): Promise<void>;
29
- //# sourceMappingURL=kill-port.d.ts.map
package/dist/kill-port.js CHANGED
@@ -187,4 +187,3 @@ export async function killPortProcess({ port, signal = 'SIGKILL', }) {
187
187
  }
188
188
  }));
189
189
  }
190
- //# sourceMappingURL=kill-port.js.map
@@ -19,4 +19,3 @@ export declare function emitKittyImage({ base64 }: {
19
19
  export declare function buildKittySequence({ base64 }: {
20
20
  base64: string;
21
21
  }): string;
22
- //# sourceMappingURL=kitty-graphics.d.ts.map
@@ -68,4 +68,3 @@ export function buildKittySequence({ base64 }) {
68
68
  }
69
69
  return parts.join('');
70
70
  }
71
- //# sourceMappingURL=kitty-graphics.js.map
package/dist/mcp.d.ts CHANGED
@@ -3,4 +3,3 @@ export declare function startMcp(options?: {
3
3
  host?: string;
4
4
  token?: string;
5
5
  }): Promise<void>;
6
- //# sourceMappingURL=mcp.d.ts.map
package/dist/mcp.js CHANGED
@@ -508,4 +508,3 @@ export async function startMcp(options = {}) {
508
508
  const transport = new StdioServerTransport();
509
509
  await server.connect(transport);
510
510
  }
511
- //# sourceMappingURL=mcp.js.map
@@ -1,4 +1,3 @@
1
1
  export declare function getInstalledTabwrightPackageDir(): string;
2
2
  export declare function getBundledExtensionPath(): string;
3
3
  export declare const getInstalledPlaywriterPackageDir: typeof getInstalledTabwrightPackageDir;
4
- //# sourceMappingURL=package-paths.d.ts.map
@@ -27,4 +27,3 @@ export function getBundledExtensionPath() {
27
27
  throw new Error(`Bundled Tabwright extension not found under ${packageDir}. Rebuild or reinstall the tabwright package.`);
28
28
  }
29
29
  export const getInstalledPlaywriterPackageDir = getInstalledTabwrightPackageDir;
30
- //# sourceMappingURL=package-paths.js.map
@@ -37,4 +37,3 @@ export interface GetPageMarkdownOptions {
37
37
  * the main content. Returns plain text content (no HTML).
38
38
  */
39
39
  export declare function getPageMarkdown(options: GetPageMarkdownOptions): Promise<string>;
40
- //# sourceMappingURL=page-markdown.d.ts.map
@@ -178,4 +178,3 @@ export async function getPageMarkdown(options) {
178
178
  }
179
179
  return markdown;
180
180
  }
181
- //# sourceMappingURL=page-markdown.js.map
@@ -2,4 +2,3 @@ declare function collectWebVitals(): Promise<void>;
2
2
  declare function collectHeaviestRequests(): Promise<void>;
3
3
  declare function measureInteractivity(): Promise<void>;
4
4
  export { collectWebVitals, collectHeaviestRequests, measureInteractivity };
5
- //# sourceMappingURL=performance-examples.d.ts.map
@@ -109,4 +109,3 @@ async function measureInteractivity() {
109
109
  console.log(report);
110
110
  }
111
111
  export { collectWebVitals, collectHeaviestRequests, measureInteractivity };
112
- //# sourceMappingURL=performance-examples.js.map
@@ -16,4 +16,3 @@ type Chromium = typeof import('@xmorse/playwright-core').chromium;
16
16
  */
17
17
  export declare function getChromium(): Promise<Chromium>;
18
18
  export declare function isPatchrightEnabled(): boolean;
19
- //# sourceMappingURL=playwright-import.d.ts.map
@@ -37,4 +37,3 @@ export function isPatchrightEnabled() {
37
37
  const value = process.env.TABWRIGHT_PATCHRIGHT || process.env.PLAYWRITER_PATCHRIGHT;
38
38
  return value === '1' || value === 'true';
39
39
  }
40
- //# sourceMappingURL=playwright-import.js.map
@@ -6,4 +6,3 @@ export declare function getTabwrightUserDataDir(options?: {
6
6
  export declare function getTabwrightProjectDataDir(options?: {
7
7
  cwd?: string;
8
8
  }): string;
9
- //# sourceMappingURL=product-paths.d.ts.map
@@ -21,4 +21,3 @@ export function getTabwrightProjectDataDir(options = {}) {
21
21
  }
22
22
  return currentDir;
23
23
  }
24
- //# sourceMappingURL=product-paths.js.map
@@ -245,4 +245,3 @@ export type GhostBrowserCommandResult = {
245
245
  error: string;
246
246
  };
247
247
  export {};
248
- //# sourceMappingURL=protocol.d.ts.map
package/dist/protocol.js CHANGED
@@ -56,4 +56,3 @@ export function requiredExtensionFeatureForMethod(method) {
56
56
  }
57
57
  return undefined;
58
58
  }
59
- //# sourceMappingURL=protocol.js.map
@@ -54,4 +54,3 @@ export declare function getReactComponentInfo({ locator, cdp: cdpSession, }: {
54
54
  cdp: ICDPSession;
55
55
  }): Promise<ReactComponentInfo | null>;
56
56
  export {};
57
- //# sourceMappingURL=react-source.d.ts.map
@@ -251,4 +251,3 @@ export async function getReactComponentInfo({ locator, cdp: cdpSession, }) {
251
251
  }
252
252
  return await locator.evaluate(evaluateReactComponentInfo);
253
253
  }
254
- //# sourceMappingURL=react-source.js.map
@@ -31,7 +31,7 @@
31
31
  };
32
32
  var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
33
33
 
34
- // ../node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/Readability.js
34
+ // ../../playwriter/node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/Readability.js
35
35
  var require_Readability = __commonJS((exports, module) => {
36
36
  function Readability(doc, options) {
37
37
  if (options && options.documentElement) {
@@ -1602,7 +1602,7 @@
1602
1602
  }
1603
1603
  });
1604
1604
 
1605
- // ../node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/Readability-readerable.js
1605
+ // ../../playwriter/node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/Readability-readerable.js
1606
1606
  var require_Readability_readerable = __commonJS((exports, module) => {
1607
1607
  var REGEXPS = {
1608
1608
  unlikelyCandidates: /-ad-|ai2html|banner|breadcrumbs|combx|comment|community|cover-wrap|disqus|extra|footer|gdpr|header|legends|menu|related|remark|replies|rss|shoutbox|sidebar|skyscraper|social|sponsor|supplemental|ad-break|agegate|pagination|pager|popup|yom-remote/i,
@@ -1658,7 +1658,7 @@
1658
1658
  }
1659
1659
  });
1660
1660
 
1661
- // ../node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/index.js
1661
+ // ../../playwriter/node_modules/.pnpm/@mozilla+readability@0.6.0/node_modules/@mozilla/readability/index.js
1662
1662
  var require_readability = __commonJS((exports, module) => {
1663
1663
  var Readability = require_Readability();
1664
1664
  var isProbablyReaderable = require_Readability_readerable();
@@ -1668,7 +1668,7 @@
1668
1668
  };
1669
1669
  });
1670
1670
 
1671
- // dist/_readability-entry-68953-1784086938398.js
1671
+ // dist/_readability-entry-53465-1784102736730.js
1672
1672
  var import_readability = __toESM(require_readability(), 1);
1673
1673
  globalThis.__readability = { Readability: import_readability.Readability, isProbablyReaderable: import_readability.isProbablyReaderable };
1674
1674
  })();
@@ -101,4 +101,3 @@ export interface EnsureRelayServerOptions {
101
101
  * Concurrent calls within the same process are deduplicated.
102
102
  */
103
103
  export declare function ensureRelayServer(options?: EnsureRelayServerOptions): Promise<true | undefined>;
104
- //# sourceMappingURL=relay-client.d.ts.map
@@ -423,4 +423,3 @@ async function ensureRelayServerImpl(options = {}) {
423
423
  const waitedMs = Date.now() - startTime;
424
424
  throw new Error(`Failed to start CDP relay server within ${waitedMs}ms. Check logs at: ${LOG_FILE_PATH}`);
425
425
  }
426
- //# sourceMappingURL=relay-client.js.map
@@ -175,4 +175,3 @@ export declare function updateTargetUrl(state: RelayState, { extensionId, sessio
175
175
  url: string;
176
176
  title?: string;
177
177
  }): RelayState;
178
- //# sourceMappingURL=relay-state.d.ts.map
@@ -343,4 +343,3 @@ export function updateTargetUrl(state, { extensionId, sessionId, url, title, })
343
343
  newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
344
344
  return { ...state, extensions: newExtensions };
345
345
  }
346
- //# sourceMappingURL=relay-state.js.map
@@ -96,4 +96,3 @@ export declare function buildReplayAiIndex(options: {
96
96
  export declare function createReplayAiIndexFromRecording(replayId: string): ReplayAiIndex;
97
97
  export declare function saveReplayAiIndex(index: ReplayAiIndex): SavedReplayAiIndex;
98
98
  export {};
99
- //# sourceMappingURL=replay-ai-index.d.ts.map
@@ -674,4 +674,3 @@ export function saveReplayAiIndex(index) {
674
674
  writeSavedReplayAiIndexes(nextIndexes.slice(0, 500));
675
675
  return saved;
676
676
  }
677
- //# sourceMappingURL=replay-ai-index.js.map
@@ -41,4 +41,3 @@ export type RunReplayEvalOptions = {
41
41
  };
42
42
  export declare function runReplayEval(options?: RunReplayEvalOptions): Promise<ReplayEvalReport>;
43
43
  export declare function formatReplayEvalReport(report: ReplayEvalReport): string;
44
- //# sourceMappingURL=replay-eval.d.ts.map
@@ -899,4 +899,3 @@ export function formatReplayEvalReport(report) {
899
899
  ];
900
900
  return lines.join('\n');
901
901
  }
902
- //# sourceMappingURL=replay-eval.js.map
@@ -26,4 +26,3 @@ export declare function buildReplayRunCommand(options: {
26
26
  input?: Record<string, unknown>;
27
27
  }): string;
28
28
  export declare function toCompactReplayAiIndex(index: ReplayAiIndex): CompactReplayAiIndex;
29
- //# sourceMappingURL=replay-handoff.d.ts.map