devharness 0.8.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 (627) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/build/atomic-write.d.ts +28 -0
  4. package/build/atomic-write.d.ts.map +1 -0
  5. package/build/atomic-write.js +126 -0
  6. package/build/atomic-write.js.map +1 -0
  7. package/build/cdp-manager.d.ts +524 -0
  8. package/build/cdp-manager.d.ts.map +1 -0
  9. package/build/cdp-manager.js +1828 -0
  10. package/build/cdp-manager.js.map +1 -0
  11. package/build/cdp-manager.test.d.ts +6 -0
  12. package/build/cdp-manager.test.d.ts.map +1 -0
  13. package/build/cdp-manager.test.js +546 -0
  14. package/build/cdp-manager.test.js.map +1 -0
  15. package/build/chrome-launcher.d.ts +400 -0
  16. package/build/chrome-launcher.d.ts.map +1 -0
  17. package/build/chrome-launcher.js +1071 -0
  18. package/build/chrome-launcher.js.map +1 -0
  19. package/build/chrome-launcher.test.d.ts +11 -0
  20. package/build/chrome-launcher.test.d.ts.map +1 -0
  21. package/build/chrome-launcher.test.js +204 -0
  22. package/build/chrome-launcher.test.js.map +1 -0
  23. package/build/clickable-cache.d.ts +73 -0
  24. package/build/clickable-cache.d.ts.map +1 -0
  25. package/build/clickable-cache.js +90 -0
  26. package/build/clickable-cache.js.map +1 -0
  27. package/build/command-recorder.d.ts +401 -0
  28. package/build/command-recorder.d.ts.map +1 -0
  29. package/build/command-recorder.js +701 -0
  30. package/build/command-recorder.js.map +1 -0
  31. package/build/config.d.ts +390 -0
  32. package/build/config.d.ts.map +1 -0
  33. package/build/config.js +826 -0
  34. package/build/config.js.map +1 -0
  35. package/build/config.test.d.ts +2 -0
  36. package/build/config.test.d.ts.map +1 -0
  37. package/build/config.test.js +112 -0
  38. package/build/config.test.js.map +1 -0
  39. package/build/connection-manager.d.ts +159 -0
  40. package/build/connection-manager.d.ts.map +1 -0
  41. package/build/connection-manager.js +432 -0
  42. package/build/connection-manager.js.map +1 -0
  43. package/build/connection-manager.test.d.ts +11 -0
  44. package/build/connection-manager.test.d.ts.map +1 -0
  45. package/build/connection-manager.test.js +114 -0
  46. package/build/connection-manager.test.js.map +1 -0
  47. package/build/console-monitor.d.ts +150 -0
  48. package/build/console-monitor.d.ts.map +1 -0
  49. package/build/console-monitor.js +454 -0
  50. package/build/console-monitor.js.map +1 -0
  51. package/build/dashboard/bundle.js +1 -0
  52. package/build/dashboard/dashboard-client.d.ts +42 -0
  53. package/build/dashboard/dashboard-client.d.ts.map +1 -0
  54. package/build/dashboard/dashboard-client.js +184 -0
  55. package/build/dashboard/dashboard-client.js.map +1 -0
  56. package/build/dashboard/dashboard-hub.d.ts +50 -0
  57. package/build/dashboard/dashboard-hub.d.ts.map +1 -0
  58. package/build/dashboard/dashboard-hub.js +654 -0
  59. package/build/dashboard/dashboard-hub.js.map +1 -0
  60. package/build/dashboard/hub-lock.d.ts +16 -0
  61. package/build/dashboard/hub-lock.d.ts.map +1 -0
  62. package/build/dashboard/hub-lock.js +77 -0
  63. package/build/dashboard/hub-lock.js.map +1 -0
  64. package/build/dashboard/index.d.ts +25 -0
  65. package/build/dashboard/index.d.ts.map +1 -0
  66. package/build/dashboard/index.js +77 -0
  67. package/build/dashboard/index.js.map +1 -0
  68. package/build/dashboard/types.d.ts +83 -0
  69. package/build/dashboard/types.d.ts.map +1 -0
  70. package/build/dashboard/types.js +6 -0
  71. package/build/dashboard/types.js.map +1 -0
  72. package/build/debug-logger.d.ts +85 -0
  73. package/build/debug-logger.d.ts.map +1 -0
  74. package/build/debug-logger.js +195 -0
  75. package/build/debug-logger.js.map +1 -0
  76. package/build/debugger-aware-wrapper.d.ts +37 -0
  77. package/build/debugger-aware-wrapper.d.ts.map +1 -0
  78. package/build/debugger-aware-wrapper.js +128 -0
  79. package/build/debugger-aware-wrapper.js.map +1 -0
  80. package/build/dom-change-monitor.d.ts +92 -0
  81. package/build/dom-change-monitor.d.ts.map +1 -0
  82. package/build/dom-change-monitor.js +437 -0
  83. package/build/dom-change-monitor.js.map +1 -0
  84. package/build/element-collector.d.ts +16 -0
  85. package/build/element-collector.d.ts.map +1 -0
  86. package/build/element-collector.js +207 -0
  87. package/build/element-collector.js.map +1 -0
  88. package/build/error-helpers.d.ts +43 -0
  89. package/build/error-helpers.d.ts.map +1 -0
  90. package/build/error-helpers.js +143 -0
  91. package/build/error-helpers.js.map +1 -0
  92. package/build/formatters/console-formatter.d.ts +160 -0
  93. package/build/formatters/console-formatter.d.ts.map +1 -0
  94. package/build/formatters/console-formatter.js +338 -0
  95. package/build/formatters/console-formatter.js.map +1 -0
  96. package/build/helpers/parser-plugins.d.ts +44 -0
  97. package/build/helpers/parser-plugins.d.ts.map +1 -0
  98. package/build/helpers/parser-plugins.js +102 -0
  99. package/build/helpers/parser-plugins.js.map +1 -0
  100. package/build/helpers/paths.d.ts +79 -0
  101. package/build/helpers/paths.d.ts.map +1 -0
  102. package/build/helpers/paths.js +168 -0
  103. package/build/helpers/paths.js.map +1 -0
  104. package/build/helpers/process-liveness.d.ts +24 -0
  105. package/build/helpers/process-liveness.d.ts.map +1 -0
  106. package/build/helpers/process-liveness.js +36 -0
  107. package/build/helpers/process-liveness.js.map +1 -0
  108. package/build/helpers/process-liveness.test.d.ts +2 -0
  109. package/build/helpers/process-liveness.test.d.ts.map +1 -0
  110. package/build/helpers/process-liveness.test.js +40 -0
  111. package/build/helpers/process-liveness.test.js.map +1 -0
  112. package/build/helpers/sequence-tree.d.ts +27 -0
  113. package/build/helpers/sequence-tree.d.ts.map +1 -0
  114. package/build/helpers/sequence-tree.js +80 -0
  115. package/build/helpers/sequence-tree.js.map +1 -0
  116. package/build/helpers/sequence-tree.test.d.ts +2 -0
  117. package/build/helpers/sequence-tree.test.d.ts.map +1 -0
  118. package/build/helpers/sequence-tree.test.js +122 -0
  119. package/build/helpers/sequence-tree.test.js.map +1 -0
  120. package/build/index.d.ts +3 -0
  121. package/build/index.d.ts.map +1 -0
  122. package/build/index.js +2007 -0
  123. package/build/index.js.map +1 -0
  124. package/build/interaction-recorder.d.ts +214 -0
  125. package/build/interaction-recorder.d.ts.map +1 -0
  126. package/build/interaction-recorder.js +2007 -0
  127. package/build/interaction-recorder.js.map +1 -0
  128. package/build/issue-tracker.d.ts +107 -0
  129. package/build/issue-tracker.d.ts.map +1 -0
  130. package/build/issue-tracker.js +582 -0
  131. package/build/issue-tracker.js.map +1 -0
  132. package/build/issue-tracker.test.d.ts +2 -0
  133. package/build/issue-tracker.test.d.ts.map +1 -0
  134. package/build/issue-tracker.test.js +88 -0
  135. package/build/issue-tracker.test.js.map +1 -0
  136. package/build/launch-chrome-port.test.d.ts +14 -0
  137. package/build/launch-chrome-port.test.d.ts.map +1 -0
  138. package/build/launch-chrome-port.test.js +97 -0
  139. package/build/launch-chrome-port.test.js.map +1 -0
  140. package/build/log-processor/orchestrator.d.ts +32 -0
  141. package/build/log-processor/orchestrator.d.ts.map +1 -0
  142. package/build/log-processor/orchestrator.js +27 -0
  143. package/build/log-processor/orchestrator.js.map +1 -0
  144. package/build/logpoint-execution-tracker.d.ts +57 -0
  145. package/build/logpoint-execution-tracker.d.ts.map +1 -0
  146. package/build/logpoint-execution-tracker.js +112 -0
  147. package/build/logpoint-execution-tracker.js.map +1 -0
  148. package/build/mcp-supervisor.d.ts +3 -0
  149. package/build/mcp-supervisor.d.ts.map +1 -0
  150. package/build/mcp-supervisor.js +211 -0
  151. package/build/mcp-supervisor.js.map +1 -0
  152. package/build/messages.d.ts +165 -0
  153. package/build/messages.d.ts.map +1 -0
  154. package/build/messages.js +574 -0
  155. package/build/messages.js.map +1 -0
  156. package/build/network-monitor.d.ts +172 -0
  157. package/build/network-monitor.d.ts.map +1 -0
  158. package/build/network-monitor.js +350 -0
  159. package/build/network-monitor.js.map +1 -0
  160. package/build/overlays.d.ts +49 -0
  161. package/build/overlays.d.ts.map +1 -0
  162. package/build/overlays.js +409 -0
  163. package/build/overlays.js.map +1 -0
  164. package/build/persistent-profiles.test.d.ts +15 -0
  165. package/build/persistent-profiles.test.d.ts.map +1 -0
  166. package/build/persistent-profiles.test.js +470 -0
  167. package/build/persistent-profiles.test.js.map +1 -0
  168. package/build/port-reserver.d.ts +32 -0
  169. package/build/port-reserver.d.ts.map +1 -0
  170. package/build/port-reserver.js +118 -0
  171. package/build/port-reserver.js.map +1 -0
  172. package/build/puppeteer-manager.d.ts +47 -0
  173. package/build/puppeteer-manager.d.ts.map +1 -0
  174. package/build/puppeteer-manager.js +116 -0
  175. package/build/puppeteer-manager.js.map +1 -0
  176. package/build/recording-coverage.test.d.ts +12 -0
  177. package/build/recording-coverage.test.d.ts.map +1 -0
  178. package/build/recording-coverage.test.js +72 -0
  179. package/build/recording-coverage.test.js.map +1 -0
  180. package/build/reference-validator.d.ts +47 -0
  181. package/build/reference-validator.d.ts.map +1 -0
  182. package/build/reference-validator.js +86 -0
  183. package/build/reference-validator.js.map +1 -0
  184. package/build/reference-validator.test.d.ts +5 -0
  185. package/build/reference-validator.test.d.ts.map +1 -0
  186. package/build/reference-validator.test.js +243 -0
  187. package/build/reference-validator.test.js.map +1 -0
  188. package/build/replay-cursor.d.ts +27 -0
  189. package/build/replay-cursor.d.ts.map +1 -0
  190. package/build/replay-cursor.js +240 -0
  191. package/build/replay-cursor.js.map +1 -0
  192. package/build/runners/docker-compose-runner.d.ts +69 -0
  193. package/build/runners/docker-compose-runner.d.ts.map +1 -0
  194. package/build/runners/docker-compose-runner.js +438 -0
  195. package/build/runners/docker-compose-runner.js.map +1 -0
  196. package/build/runners/docker-runner.d.ts +65 -0
  197. package/build/runners/docker-runner.d.ts.map +1 -0
  198. package/build/runners/docker-runner.js +414 -0
  199. package/build/runners/docker-runner.js.map +1 -0
  200. package/build/runners/index.d.ts +19 -0
  201. package/build/runners/index.d.ts.map +1 -0
  202. package/build/runners/index.js +35 -0
  203. package/build/runners/index.js.map +1 -0
  204. package/build/runners/native-runner.d.ts +95 -0
  205. package/build/runners/native-runner.d.ts.map +1 -0
  206. package/build/runners/native-runner.js +370 -0
  207. package/build/runners/native-runner.js.map +1 -0
  208. package/build/runners/types.d.ts +147 -0
  209. package/build/runners/types.d.ts.map +1 -0
  210. package/build/runners/types.js +25 -0
  211. package/build/runners/types.js.map +1 -0
  212. package/build/self-restart.d.ts +12 -0
  213. package/build/self-restart.d.ts.map +1 -0
  214. package/build/self-restart.js +41 -0
  215. package/build/self-restart.js.map +1 -0
  216. package/build/self-restart.test.d.ts +2 -0
  217. package/build/self-restart.test.d.ts.map +1 -0
  218. package/build/self-restart.test.js +34 -0
  219. package/build/self-restart.test.js.map +1 -0
  220. package/build/server-claims.d.ts +161 -0
  221. package/build/server-claims.d.ts.map +1 -0
  222. package/build/server-claims.js +382 -0
  223. package/build/server-claims.js.map +1 -0
  224. package/build/server-claims.test.d.ts +2 -0
  225. package/build/server-claims.test.d.ts.map +1 -0
  226. package/build/server-claims.test.js +197 -0
  227. package/build/server-claims.test.js.map +1 -0
  228. package/build/server-manager.d.ts +438 -0
  229. package/build/server-manager.d.ts.map +1 -0
  230. package/build/server-manager.js +1674 -0
  231. package/build/server-manager.js.map +1 -0
  232. package/build/server-manager.test.d.ts +17 -0
  233. package/build/server-manager.test.d.ts.map +1 -0
  234. package/build/server-manager.test.js +122 -0
  235. package/build/server-manager.test.js.map +1 -0
  236. package/build/server-ownership.test.d.ts +2 -0
  237. package/build/server-ownership.test.d.ts.map +1 -0
  238. package/build/server-ownership.test.js +238 -0
  239. package/build/server-ownership.test.js.map +1 -0
  240. package/build/server-watcher.d.ts +21 -0
  241. package/build/server-watcher.d.ts.map +1 -0
  242. package/build/server-watcher.js +105 -0
  243. package/build/server-watcher.js.map +1 -0
  244. package/build/session-detector.d.ts +47 -0
  245. package/build/session-detector.d.ts.map +1 -0
  246. package/build/session-detector.js +229 -0
  247. package/build/session-detector.js.map +1 -0
  248. package/build/session-detector.test.d.ts +9 -0
  249. package/build/session-detector.test.d.ts.map +1 -0
  250. package/build/session-detector.test.js +45 -0
  251. package/build/session-detector.test.js.map +1 -0
  252. package/build/sourcemap-handler.d.ts +114 -0
  253. package/build/sourcemap-handler.d.ts.map +1 -0
  254. package/build/sourcemap-handler.js +479 -0
  255. package/build/sourcemap-handler.js.map +1 -0
  256. package/build/supervisor/child-manager.d.ts +43 -0
  257. package/build/supervisor/child-manager.d.ts.map +1 -0
  258. package/build/supervisor/child-manager.js +148 -0
  259. package/build/supervisor/child-manager.js.map +1 -0
  260. package/build/supervisor/child-manager.test.d.ts +2 -0
  261. package/build/supervisor/child-manager.test.d.ts.map +1 -0
  262. package/build/supervisor/child-manager.test.js +107 -0
  263. package/build/supervisor/child-manager.test.js.map +1 -0
  264. package/build/supervisor/client-watcher.d.ts +48 -0
  265. package/build/supervisor/client-watcher.d.ts.map +1 -0
  266. package/build/supervisor/client-watcher.js +186 -0
  267. package/build/supervisor/client-watcher.js.map +1 -0
  268. package/build/supervisor/client-watcher.test.d.ts +2 -0
  269. package/build/supervisor/client-watcher.test.d.ts.map +1 -0
  270. package/build/supervisor/client-watcher.test.js +121 -0
  271. package/build/supervisor/client-watcher.test.js.map +1 -0
  272. package/build/supervisor/idle-config.d.ts +30 -0
  273. package/build/supervisor/idle-config.d.ts.map +1 -0
  274. package/build/supervisor/idle-config.js +76 -0
  275. package/build/supervisor/idle-config.js.map +1 -0
  276. package/build/supervisor/idle-config.test.d.ts +2 -0
  277. package/build/supervisor/idle-config.test.d.ts.map +1 -0
  278. package/build/supervisor/idle-config.test.js +119 -0
  279. package/build/supervisor/idle-config.test.js.map +1 -0
  280. package/build/supervisor/ndjson-reader.d.ts +47 -0
  281. package/build/supervisor/ndjson-reader.d.ts.map +1 -0
  282. package/build/supervisor/ndjson-reader.js +75 -0
  283. package/build/supervisor/ndjson-reader.js.map +1 -0
  284. package/build/supervisor/ndjson-reader.test.d.ts +2 -0
  285. package/build/supervisor/ndjson-reader.test.d.ts.map +1 -0
  286. package/build/supervisor/ndjson-reader.test.js +92 -0
  287. package/build/supervisor/ndjson-reader.test.js.map +1 -0
  288. package/build/supervisor/pidfile.d.ts +11 -0
  289. package/build/supervisor/pidfile.d.ts.map +1 -0
  290. package/build/supervisor/pidfile.js +29 -0
  291. package/build/supervisor/pidfile.js.map +1 -0
  292. package/build/supervisor/pidfile.test.d.ts +8 -0
  293. package/build/supervisor/pidfile.test.d.ts.map +1 -0
  294. package/build/supervisor/pidfile.test.js +46 -0
  295. package/build/supervisor/pidfile.test.js.map +1 -0
  296. package/build/supervisor/restart-coordinator.d.ts +73 -0
  297. package/build/supervisor/restart-coordinator.d.ts.map +1 -0
  298. package/build/supervisor/restart-coordinator.js +300 -0
  299. package/build/supervisor/restart-coordinator.js.map +1 -0
  300. package/build/supervisor/restart-coordinator.test.d.ts +2 -0
  301. package/build/supervisor/restart-coordinator.test.d.ts.map +1 -0
  302. package/build/supervisor/restart-coordinator.test.js +434 -0
  303. package/build/supervisor/restart-coordinator.test.js.map +1 -0
  304. package/build/test-support/fake-execute-tool-call.d.ts +11 -0
  305. package/build/test-support/fake-execute-tool-call.d.ts.map +1 -0
  306. package/build/test-support/fake-execute-tool-call.js +19 -0
  307. package/build/test-support/fake-execute-tool-call.js.map +1 -0
  308. package/build/tool-error.d.ts +14 -0
  309. package/build/tool-error.d.ts.map +1 -0
  310. package/build/tool-error.js +18 -0
  311. package/build/tool-error.js.map +1 -0
  312. package/build/tool-response.d.ts +293 -0
  313. package/build/tool-response.d.ts.map +1 -0
  314. package/build/tool-response.js +365 -0
  315. package/build/tool-response.js.map +1 -0
  316. package/build/tools/assert-tools.d.ts +62 -0
  317. package/build/tools/assert-tools.d.ts.map +1 -0
  318. package/build/tools/assert-tools.js +330 -0
  319. package/build/tools/assert-tools.js.map +1 -0
  320. package/build/tools/breakpoint-await-abort.test.d.ts +2 -0
  321. package/build/tools/breakpoint-await-abort.test.d.ts.map +1 -0
  322. package/build/tools/breakpoint-await-abort.test.js +124 -0
  323. package/build/tools/breakpoint-await-abort.test.js.map +1 -0
  324. package/build/tools/breakpoint-tools.d.ts +99 -0
  325. package/build/tools/breakpoint-tools.d.ts.map +1 -0
  326. package/build/tools/breakpoint-tools.js +1197 -0
  327. package/build/tools/breakpoint-tools.js.map +1 -0
  328. package/build/tools/config-tools.d.ts +58 -0
  329. package/build/tools/config-tools.d.ts.map +1 -0
  330. package/build/tools/config-tools.js +180 -0
  331. package/build/tools/config-tools.js.map +1 -0
  332. package/build/tools/connection-routing.test.d.ts +12 -0
  333. package/build/tools/connection-routing.test.d.ts.map +1 -0
  334. package/build/tools/connection-routing.test.js +206 -0
  335. package/build/tools/connection-routing.test.js.map +1 -0
  336. package/build/tools/console-tools.d.ts +84 -0
  337. package/build/tools/console-tools.d.ts.map +1 -0
  338. package/build/tools/console-tools.js +241 -0
  339. package/build/tools/console-tools.js.map +1 -0
  340. package/build/tools/content-tools.d.ts +74 -0
  341. package/build/tools/content-tools.d.ts.map +1 -0
  342. package/build/tools/content-tools.js +582 -0
  343. package/build/tools/content-tools.js.map +1 -0
  344. package/build/tools/dashboard-tools.d.ts +38 -0
  345. package/build/tools/dashboard-tools.d.ts.map +1 -0
  346. package/build/tools/dashboard-tools.js +123 -0
  347. package/build/tools/dashboard-tools.js.map +1 -0
  348. package/build/tools/dom-tools.d.ts +41 -0
  349. package/build/tools/dom-tools.d.ts.map +1 -0
  350. package/build/tools/dom-tools.js +277 -0
  351. package/build/tools/dom-tools.js.map +1 -0
  352. package/build/tools/download-tools.d.ts +55 -0
  353. package/build/tools/download-tools.d.ts.map +1 -0
  354. package/build/tools/download-tools.js +280 -0
  355. package/build/tools/download-tools.js.map +1 -0
  356. package/build/tools/execution-tools.d.ts +40 -0
  357. package/build/tools/execution-tools.d.ts.map +1 -0
  358. package/build/tools/execution-tools.js +121 -0
  359. package/build/tools/execution-tools.js.map +1 -0
  360. package/build/tools/input-abort.test.d.ts +2 -0
  361. package/build/tools/input-abort.test.d.ts.map +1 -0
  362. package/build/tools/input-abort.test.js +227 -0
  363. package/build/tools/input-abort.test.js.map +1 -0
  364. package/build/tools/input-ambiguous-selector.test.d.ts +2 -0
  365. package/build/tools/input-ambiguous-selector.test.d.ts.map +1 -0
  366. package/build/tools/input-ambiguous-selector.test.js +34 -0
  367. package/build/tools/input-ambiguous-selector.test.js.map +1 -0
  368. package/build/tools/input-tools.d.ts +168 -0
  369. package/build/tools/input-tools.d.ts.map +1 -0
  370. package/build/tools/input-tools.js +1397 -0
  371. package/build/tools/input-tools.js.map +1 -0
  372. package/build/tools/inspection-tools.d.ts +112 -0
  373. package/build/tools/inspection-tools.d.ts.map +1 -0
  374. package/build/tools/inspection-tools.js +637 -0
  375. package/build/tools/inspection-tools.js.map +1 -0
  376. package/build/tools/interpolation.d.ts +30 -0
  377. package/build/tools/interpolation.d.ts.map +1 -0
  378. package/build/tools/interpolation.js +143 -0
  379. package/build/tools/interpolation.js.map +1 -0
  380. package/build/tools/issues-abort-hygiene.test.d.ts +2 -0
  381. package/build/tools/issues-abort-hygiene.test.d.ts.map +1 -0
  382. package/build/tools/issues-abort-hygiene.test.js +79 -0
  383. package/build/tools/issues-abort-hygiene.test.js.map +1 -0
  384. package/build/tools/issues-tools.d.ts +98 -0
  385. package/build/tools/issues-tools.d.ts.map +1 -0
  386. package/build/tools/issues-tools.js +821 -0
  387. package/build/tools/issues-tools.js.map +1 -0
  388. package/build/tools/issues-tools.test.d.ts +8 -0
  389. package/build/tools/issues-tools.test.d.ts.map +1 -0
  390. package/build/tools/issues-tools.test.js +184 -0
  391. package/build/tools/issues-tools.test.js.map +1 -0
  392. package/build/tools/modal-tools.d.ts +73 -0
  393. package/build/tools/modal-tools.d.ts.map +1 -0
  394. package/build/tools/modal-tools.js +161 -0
  395. package/build/tools/modal-tools.js.map +1 -0
  396. package/build/tools/network-tools.d.ts +72 -0
  397. package/build/tools/network-tools.d.ts.map +1 -0
  398. package/build/tools/network-tools.js +432 -0
  399. package/build/tools/network-tools.js.map +1 -0
  400. package/build/tools/page-tools.d.ts +78 -0
  401. package/build/tools/page-tools.d.ts.map +1 -0
  402. package/build/tools/page-tools.js +255 -0
  403. package/build/tools/page-tools.js.map +1 -0
  404. package/build/tools/plugin-tools.d.ts +16 -0
  405. package/build/tools/plugin-tools.d.ts.map +1 -0
  406. package/build/tools/plugin-tools.js +17 -0
  407. package/build/tools/plugin-tools.js.map +1 -0
  408. package/build/tools/replay-abort.test.d.ts +2 -0
  409. package/build/tools/replay-abort.test.d.ts.map +1 -0
  410. package/build/tools/replay-abort.test.js +259 -0
  411. package/build/tools/replay-abort.test.js.map +1 -0
  412. package/build/tools/replay-add-conditional.test.d.ts +2 -0
  413. package/build/tools/replay-add-conditional.test.d.ts.map +1 -0
  414. package/build/tools/replay-add-conditional.test.js +205 -0
  415. package/build/tools/replay-add-conditional.test.js.map +1 -0
  416. package/build/tools/replay-background-run.test.d.ts +2 -0
  417. package/build/tools/replay-background-run.test.d.ts.map +1 -0
  418. package/build/tools/replay-background-run.test.js +176 -0
  419. package/build/tools/replay-background-run.test.js.map +1 -0
  420. package/build/tools/replay-capture-variables.test.d.ts +2 -0
  421. package/build/tools/replay-capture-variables.test.d.ts.map +1 -0
  422. package/build/tools/replay-capture-variables.test.js +331 -0
  423. package/build/tools/replay-capture-variables.test.js.map +1 -0
  424. package/build/tools/replay-conditional-idb-and-launch.test.d.ts +11 -0
  425. package/build/tools/replay-conditional-idb-and-launch.test.d.ts.map +1 -0
  426. package/build/tools/replay-conditional-idb-and-launch.test.js +429 -0
  427. package/build/tools/replay-conditional-idb-and-launch.test.js.map +1 -0
  428. package/build/tools/replay-conditional-timeout.test.d.ts +14 -0
  429. package/build/tools/replay-conditional-timeout.test.d.ts.map +1 -0
  430. package/build/tools/replay-conditional-timeout.test.js +126 -0
  431. package/build/tools/replay-conditional-timeout.test.js.map +1 -0
  432. package/build/tools/replay-declare.test.d.ts +2 -0
  433. package/build/tools/replay-declare.test.d.ts.map +1 -0
  434. package/build/tools/replay-declare.test.js +106 -0
  435. package/build/tools/replay-declare.test.js.map +1 -0
  436. package/build/tools/replay-declared-browser-cleanup.test.d.ts +2 -0
  437. package/build/tools/replay-declared-browser-cleanup.test.d.ts.map +1 -0
  438. package/build/tools/replay-declared-browser-cleanup.test.js +103 -0
  439. package/build/tools/replay-declared-browser-cleanup.test.js.map +1 -0
  440. package/build/tools/replay-declared-profile.test.d.ts +2 -0
  441. package/build/tools/replay-declared-profile.test.d.ts.map +1 -0
  442. package/build/tools/replay-declared-profile.test.js +116 -0
  443. package/build/tools/replay-declared-profile.test.js.map +1 -0
  444. package/build/tools/replay-executor.d.ts +556 -0
  445. package/build/tools/replay-executor.d.ts.map +1 -0
  446. package/build/tools/replay-executor.js +2347 -0
  447. package/build/tools/replay-executor.js.map +1 -0
  448. package/build/tools/replay-folder-save.test.d.ts +2 -0
  449. package/build/tools/replay-folder-save.test.d.ts.map +1 -0
  450. package/build/tools/replay-folder-save.test.js +63 -0
  451. package/build/tools/replay-folder-save.test.js.map +1 -0
  452. package/build/tools/replay-formatters.d.ts +148 -0
  453. package/build/tools/replay-formatters.d.ts.map +1 -0
  454. package/build/tools/replay-formatters.js +856 -0
  455. package/build/tools/replay-formatters.js.map +1 -0
  456. package/build/tools/replay-kill-chrome-on-finish.test.d.ts +2 -0
  457. package/build/tools/replay-kill-chrome-on-finish.test.d.ts.map +1 -0
  458. package/build/tools/replay-kill-chrome-on-finish.test.js +175 -0
  459. package/build/tools/replay-kill-chrome-on-finish.test.js.map +1 -0
  460. package/build/tools/replay-multi-connection.test.d.ts +2 -0
  461. package/build/tools/replay-multi-connection.test.d.ts.map +1 -0
  462. package/build/tools/replay-multi-connection.test.js +547 -0
  463. package/build/tools/replay-multi-connection.test.js.map +1 -0
  464. package/build/tools/replay-output-and-record-options.test.d.ts +2 -0
  465. package/build/tools/replay-output-and-record-options.test.d.ts.map +1 -0
  466. package/build/tools/replay-output-and-record-options.test.js +240 -0
  467. package/build/tools/replay-output-and-record-options.test.js.map +1 -0
  468. package/build/tools/replay-production-error-shape.test.d.ts +7 -0
  469. package/build/tools/replay-production-error-shape.test.d.ts.map +1 -0
  470. package/build/tools/replay-production-error-shape.test.js +93 -0
  471. package/build/tools/replay-production-error-shape.test.js.map +1 -0
  472. package/build/tools/replay-rebase.test.d.ts +2 -0
  473. package/build/tools/replay-rebase.test.d.ts.map +1 -0
  474. package/build/tools/replay-rebase.test.js +58 -0
  475. package/build/tools/replay-rebase.test.js.map +1 -0
  476. package/build/tools/replay-retry-classification.test.d.ts +9 -0
  477. package/build/tools/replay-retry-classification.test.d.ts.map +1 -0
  478. package/build/tools/replay-retry-classification.test.js +57 -0
  479. package/build/tools/replay-retry-classification.test.js.map +1 -0
  480. package/build/tools/replay-run-registry.d.ts +55 -0
  481. package/build/tools/replay-run-registry.d.ts.map +1 -0
  482. package/build/tools/replay-run-registry.js +65 -0
  483. package/build/tools/replay-run-registry.js.map +1 -0
  484. package/build/tools/replay-sequence-reload.test.d.ts +2 -0
  485. package/build/tools/replay-sequence-reload.test.d.ts.map +1 -0
  486. package/build/tools/replay-sequence-reload.test.js +82 -0
  487. package/build/tools/replay-sequence-reload.test.js.map +1 -0
  488. package/build/tools/replay-socket-scope.test.d.ts +2 -0
  489. package/build/tools/replay-socket-scope.test.d.ts.map +1 -0
  490. package/build/tools/replay-socket-scope.test.js +75 -0
  491. package/build/tools/replay-socket-scope.test.js.map +1 -0
  492. package/build/tools/replay-step-connection.test.d.ts +2 -0
  493. package/build/tools/replay-step-connection.test.d.ts.map +1 -0
  494. package/build/tools/replay-step-connection.test.js +292 -0
  495. package/build/tools/replay-step-connection.test.js.map +1 -0
  496. package/build/tools/replay-step-timeout.test.d.ts +2 -0
  497. package/build/tools/replay-step-timeout.test.d.ts.map +1 -0
  498. package/build/tools/replay-step-timeout.test.js +204 -0
  499. package/build/tools/replay-step-timeout.test.js.map +1 -0
  500. package/build/tools/replay-tags.test.d.ts +2 -0
  501. package/build/tools/replay-tags.test.d.ts.map +1 -0
  502. package/build/tools/replay-tags.test.js +99 -0
  503. package/build/tools/replay-tags.test.js.map +1 -0
  504. package/build/tools/replay-teardown-and-foreach.test.d.ts +13 -0
  505. package/build/tools/replay-teardown-and-foreach.test.d.ts.map +1 -0
  506. package/build/tools/replay-teardown-and-foreach.test.js +318 -0
  507. package/build/tools/replay-teardown-and-foreach.test.js.map +1 -0
  508. package/build/tools/replay-tool-name-validation.test.d.ts +2 -0
  509. package/build/tools/replay-tool-name-validation.test.d.ts.map +1 -0
  510. package/build/tools/replay-tool-name-validation.test.js +280 -0
  511. package/build/tools/replay-tool-name-validation.test.js.map +1 -0
  512. package/build/tools/replay-tools.d.ts +288 -0
  513. package/build/tools/replay-tools.d.ts.map +1 -0
  514. package/build/tools/replay-tools.js +2994 -0
  515. package/build/tools/replay-tools.js.map +1 -0
  516. package/build/tools/request-abort.test.d.ts +2 -0
  517. package/build/tools/request-abort.test.d.ts.map +1 -0
  518. package/build/tools/request-abort.test.js +130 -0
  519. package/build/tools/request-abort.test.js.map +1 -0
  520. package/build/tools/request-tools.d.ts +56 -0
  521. package/build/tools/request-tools.d.ts.map +1 -0
  522. package/build/tools/request-tools.js +174 -0
  523. package/build/tools/request-tools.js.map +1 -0
  524. package/build/tools/screenshot-tools.d.ts +135 -0
  525. package/build/tools/screenshot-tools.d.ts.map +1 -0
  526. package/build/tools/screenshot-tools.js +636 -0
  527. package/build/tools/screenshot-tools.js.map +1 -0
  528. package/build/tools/server-tools.d.ts +88 -0
  529. package/build/tools/server-tools.d.ts.map +1 -0
  530. package/build/tools/server-tools.js +485 -0
  531. package/build/tools/server-tools.js.map +1 -0
  532. package/build/tools/source-tools.d.ts +46 -0
  533. package/build/tools/source-tools.d.ts.map +1 -0
  534. package/build/tools/source-tools.js +47 -0
  535. package/build/tools/source-tools.js.map +1 -0
  536. package/build/tools/storage-tools.d.ts +141 -0
  537. package/build/tools/storage-tools.d.ts.map +1 -0
  538. package/build/tools/storage-tools.js +894 -0
  539. package/build/tools/storage-tools.js.map +1 -0
  540. package/build/tools/storage-tools.test.d.ts +13 -0
  541. package/build/tools/storage-tools.test.d.ts.map +1 -0
  542. package/build/tools/storage-tools.test.js +707 -0
  543. package/build/tools/storage-tools.test.js.map +1 -0
  544. package/build/tools/tab-tools.d.ts +42 -0
  545. package/build/tools/tab-tools.d.ts.map +1 -0
  546. package/build/tools/tab-tools.js +296 -0
  547. package/build/tools/tab-tools.js.map +1 -0
  548. package/build/tools/wait-tools.d.ts +85 -0
  549. package/build/tools/wait-tools.d.ts.map +1 -0
  550. package/build/tools/wait-tools.js +236 -0
  551. package/build/tools/wait-tools.js.map +1 -0
  552. package/build/tools/wait-tools.test.d.ts +9 -0
  553. package/build/tools/wait-tools.test.d.ts.map +1 -0
  554. package/build/tools/wait-tools.test.js +193 -0
  555. package/build/tools/wait-tools.test.js.map +1 -0
  556. package/build/types.d.ts +133 -0
  557. package/build/types.d.ts.map +1 -0
  558. package/build/types.js +5 -0
  559. package/build/types.js.map +1 -0
  560. package/build/ui-verifier.d.ts +88 -0
  561. package/build/ui-verifier.d.ts.map +1 -0
  562. package/build/ui-verifier.js +540 -0
  563. package/build/ui-verifier.js.map +1 -0
  564. package/build/utils/abort.d.ts +68 -0
  565. package/build/utils/abort.d.ts.map +1 -0
  566. package/build/utils/abort.js +159 -0
  567. package/build/utils/abort.js.map +1 -0
  568. package/build/utils/abort.test.d.ts +2 -0
  569. package/build/utils/abort.test.d.ts.map +1 -0
  570. package/build/utils/abort.test.js +174 -0
  571. package/build/utils/abort.test.js.map +1 -0
  572. package/build/utils/modal-detection-core.d.ts +150 -0
  573. package/build/utils/modal-detection-core.d.ts.map +1 -0
  574. package/build/utils/modal-detection-core.js +332 -0
  575. package/build/utils/modal-detection-core.js.map +1 -0
  576. package/build/utils/modal-detection-core.test.d.ts +5 -0
  577. package/build/utils/modal-detection-core.test.d.ts.map +1 -0
  578. package/build/utils/modal-detection-core.test.js +492 -0
  579. package/build/utils/modal-detection-core.test.js.map +1 -0
  580. package/build/utils/modal-detector.d.ts +29 -0
  581. package/build/utils/modal-detector.d.ts.map +1 -0
  582. package/build/utils/modal-detector.js +281 -0
  583. package/build/utils/modal-detector.js.map +1 -0
  584. package/build/utils/modal-dismissal.d.ts +32 -0
  585. package/build/utils/modal-dismissal.d.ts.map +1 -0
  586. package/build/utils/modal-dismissal.js +190 -0
  587. package/build/utils/modal-dismissal.js.map +1 -0
  588. package/build/utils/port-check.d.ts +31 -0
  589. package/build/utils/port-check.d.ts.map +1 -0
  590. package/build/utils/port-check.js +87 -0
  591. package/build/utils/port-check.js.map +1 -0
  592. package/build/utils/port-check.test.d.ts +2 -0
  593. package/build/utils/port-check.test.d.ts.map +1 -0
  594. package/build/utils/port-check.test.js +66 -0
  595. package/build/utils/port-check.test.js.map +1 -0
  596. package/build/utils/selector-resolver.d.ts +66 -0
  597. package/build/utils/selector-resolver.d.ts.map +1 -0
  598. package/build/utils/selector-resolver.js +200 -0
  599. package/build/utils/selector-resolver.js.map +1 -0
  600. package/build/validation-helpers.d.ts +41 -0
  601. package/build/validation-helpers.d.ts.map +1 -0
  602. package/build/validation-helpers.js +236 -0
  603. package/build/validation-helpers.js.map +1 -0
  604. package/build/window-sizing.d.ts +26 -0
  605. package/build/window-sizing.d.ts.map +1 -0
  606. package/build/window-sizing.js +87 -0
  607. package/build/window-sizing.js.map +1 -0
  608. package/build/window-sizing.test.d.ts +8 -0
  609. package/build/window-sizing.test.d.ts.map +1 -0
  610. package/build/window-sizing.test.js +113 -0
  611. package/build/window-sizing.test.js.map +1 -0
  612. package/docs/README.md +74 -0
  613. package/docs/automation.md +562 -0
  614. package/docs/debugging.md +229 -0
  615. package/docs/installation.md +133 -0
  616. package/docs/instructions.md +227 -0
  617. package/docs/mcp-instructions.md +15 -0
  618. package/docs/message-system.md +327 -0
  619. package/docs/messages.md +3480 -0
  620. package/docs/parser-plugins.md +132 -0
  621. package/docs/replay.md +1411 -0
  622. package/docs/troubleshooting.md +272 -0
  623. package/docs/working_with_llm_notes.md +5 -0
  624. package/package.json +87 -0
  625. package/skills/devharness/SKILL.md +195 -0
  626. package/skills/devharness/references/sequences.md +613 -0
  627. package/skills/devharness/references/tool-categories.md +99 -0
@@ -0,0 +1,556 @@
1
+ /**
2
+ * Replay Executor - Core execution engine for command sequences
3
+ */
4
+ import type { CommandRecorder, RecordedCommand, CommandSequence, ActiveSequenceState } from '../command-recorder.js';
5
+ import type { ExecuteToolCall } from '../types.js';
6
+ import { ClickValidationConfig } from '../config.js';
7
+ export { injectReplayCursor, showClickEffect, showKeyPress, removeReplayCursor } from '../replay-cursor.js';
8
+ interface ReplayCursorCallbacks {
9
+ onClickBefore?: (x: number, y: number, isRightClick: boolean) => Promise<void>;
10
+ onKeyPress?: (key: string) => Promise<void>;
11
+ }
12
+ export declare function setReplayCursorCallbacks(callbacks: ReplayCursorCallbacks): void;
13
+ export interface ExecutionContext {
14
+ executeToolCall: ExecuteToolCall;
15
+ commandRecorder: CommandRecorder;
16
+ connectionReason: string;
17
+ logPrefix?: string;
18
+ /** Current nesting depth for conditional commands (used for recursion protection) */
19
+ conditionalDepth?: number;
20
+ /** Call stack of sequence names for circular reference detection */
21
+ conditionalCallStack?: string[];
22
+ /** Per-run variable store for {{var:name.path}} interpolation. Populated by
23
+ * { saveAs } steps (see CAPTURE_SOURCES), consumed by later steps' param
24
+ * interpolation. Shared BY REFERENCE with per-step ctx clones and nested
25
+ * sequences, so a capture anywhere is visible everywhere in the run. */
26
+ variableStore?: Record<string, any>;
27
+ /** {{timestamp}} value for this run, computed once and cached (not per-step). */
28
+ runTimestamp?: number;
29
+ /**
30
+ * Maps a per-step `connectionReason` as RECORDED onto a reference that exists
31
+ * in THIS session (`{ 'duo-member-two': 'my-second-browser' }`). Connection
32
+ * references are per-session, so a multi-connection sequence recorded elsewhere
33
+ * needs its references rebound before it can run here. Both sides are expected
34
+ * pre-sanitized (see sanitizeConnectionMap). Inherited by nested sequences.
35
+ */
36
+ connectionMap?: Record<string, string>;
37
+ /**
38
+ * References this run CAUSED to be launched, filled in as `launchChrome`
39
+ * steps succeed with `reused: false`. Shared by reference with per-step ctx
40
+ * clones and nested sequences, so ownership survives every early return the
41
+ * executor has - a paused, failed or aborted run knows what it created just
42
+ * as well as a completed one. `killChromeOnFinish` kills exactly this set
43
+ * plus the run's own connection, and nothing else (issue #103).
44
+ */
45
+ launchedConnections?: Set<string>;
46
+ }
47
+ export interface StepResult {
48
+ step: number;
49
+ tool: string;
50
+ success: boolean;
51
+ error?: string;
52
+ substeps?: StepResult[];
53
+ sequenceName?: string;
54
+ conditionMet?: boolean;
55
+ /** forEach: how many items the source yielded, before `where` filtering. */
56
+ itemsFound?: number;
57
+ /** forEach: how many items actually ran `do` (post-filter, post-maxItems). */
58
+ iterations?: number;
59
+ }
60
+ export interface BreakpointHitInfo {
61
+ url: string;
62
+ lineNumber: number;
63
+ columnNumber?: number;
64
+ functionName?: string;
65
+ }
66
+ export interface ClickValidationFailure {
67
+ step: number;
68
+ selector: string;
69
+ errors: string[];
70
+ warnings: string[];
71
+ info: string[];
72
+ }
73
+ export interface ExecutionResult {
74
+ results: StepResult[];
75
+ totalCommands: number;
76
+ durationMs: number;
77
+ pausedAtStep?: number;
78
+ activeSequenceState?: ActiveSequenceState;
79
+ breakpointHit?: BreakpointHitInfo;
80
+ /** Click validation failure - sequence paused for inspection/retry */
81
+ clickValidationFailure?: ClickValidationFailure;
82
+ /**
83
+ * Results of the sequence's `teardown` steps, when it has any and the run
84
+ * reached a terminal state. Deliberately NOT merged into `results`: teardown
85
+ * outcomes must never change the run's verdict, or a broken cleanup would
86
+ * mask the failure it was cleaning up after.
87
+ */
88
+ teardownResults?: StepResult[];
89
+ /** True when teardown ran but at least one of its steps failed. */
90
+ teardownFailed?: boolean;
91
+ }
92
+ export interface ConnectionAnalysis {
93
+ launchChromeIndex: number;
94
+ firstConnectionToolIndex: number;
95
+ hasLaunchBeforeConnection: boolean;
96
+ }
97
+ /**
98
+ * Resolve what a step's `saveAs` should write to the variable store.
99
+ * A `saveAs` that cannot be honoured is an error, not a silent no-op: the
100
+ * later {{var:...}} step would otherwise fail somewhere far away with a
101
+ * confusing "no variable named" message.
102
+ */
103
+ export declare function captureVariable(tool: string, params: Record<string, any>, result: any): {
104
+ ok: true;
105
+ value: unknown;
106
+ } | {
107
+ ok: false;
108
+ error: string;
109
+ };
110
+ /**
111
+ * Tools that can only run against a *browser*. Used to decide whether a sequence
112
+ * needs Chrome auto-launched (analyzeSequenceConnections / sequenceNeedsConnection
113
+ * and the auto-launch paths in replay-tools).
114
+ *
115
+ * Deliberately excludes tools that are equally valid against a Node target
116
+ * (`inspect`, `execution`, `breakpoint`, `getSourceCode`, `request`) - listing
117
+ * those here would make a Node-only sequence spuriously launch Chrome.
118
+ */
119
+ export declare const TOOLS_NEEDING_CONNECTION: string[];
120
+ /**
121
+ * Tools whose params accept a `connectionReason` and should therefore have the
122
+ * run-level connection injected when the step doesn't name one itself. Superset of
123
+ * TOOLS_NEEDING_CONNECTION: it adds the target-agnostic (Chrome *or* Node) debugging
124
+ * tools, which need to be pinned to the run's target but must NOT drag a browser
125
+ * launch in with them.
126
+ *
127
+ * `request` is handled separately - only `destination: 'browser'` takes a connection.
128
+ */
129
+ export declare const TOOLS_ACCEPTING_CONNECTION: string[];
130
+ /**
131
+ * Whether a single step requires a *browser* connection (drives Chrome
132
+ * auto-launch). Param-aware variant of `TOOLS_NEEDING_CONNECTION.includes(tool)`:
133
+ * `wait` is browser-bound only in its selector/selectorGone forms.
134
+ * - `wait({ ms })` is a plain sleep and must not drag a Chrome launch in.
135
+ * - `wait({ expression })` is target-agnostic (valid against Node too), so it
136
+ * behaves like `inspect`: the run connection is injected, but it never
137
+ * forces a browser launch on its own.
138
+ */
139
+ export declare function commandNeedsBrowserConnection(cmd: {
140
+ tool: string;
141
+ params?: Record<string, any>;
142
+ }): boolean;
143
+ /**
144
+ * Whether a bare step will have the run-level connection injected into it -
145
+ * i.e. whether leaving it bare is AMBIGUOUS about which browser it belongs to.
146
+ *
147
+ * Deliberately wider than `commandNeedsBrowserConnection`, which answers a
148
+ * different question (does this drag a Chrome launch in?). `inspect`,
149
+ * `execution`, `storage` and friends take an optional connectionReason, so a
150
+ * recording made without one captures nothing about which browser it ran
151
+ * against - and on replay it silently lands wherever the run-level connection
152
+ * points. Measuring ambiguity with the narrower predicate missed exactly those
153
+ * tools, which are the ones people actually leave bare.
154
+ */
155
+ export declare function commandTakesInjectedConnection(cmd: {
156
+ tool: string;
157
+ params?: Record<string, any>;
158
+ }): boolean;
159
+ /**
160
+ * Result of condition evaluation
161
+ * - met: true - condition matched
162
+ * - met: false, isError: undefined - condition legitimately not met
163
+ * - met: false, isError: true - evaluation FAILED (should stop sequence)
164
+ */
165
+ export type ConditionResult = {
166
+ met: true;
167
+ } | {
168
+ met: false;
169
+ reason?: string;
170
+ } | {
171
+ met: false;
172
+ reason: string;
173
+ isError: true;
174
+ };
175
+ /** The condition types `evaluateCondition` knows how to answer. */
176
+ export declare const CONDITION_TYPES: readonly ["selector", "url", "cookie", "localStorage", "indexedDB"];
177
+ /**
178
+ * Check a condition at authoring time: shape, type, and the `url`/`indexedDB`
179
+ * sub-forms. A value holding a `{{var:...}}` token is skipped - it is
180
+ * substituted at run time, so its final shape is unknowable here.
181
+ */
182
+ export declare function validateConditionSyntax(condition: string, maxRegexLength?: number): {
183
+ ok: true;
184
+ } | {
185
+ ok: false;
186
+ reason: string;
187
+ };
188
+ /**
189
+ * Evaluate a handlebar-style condition
190
+ * Supported patterns:
191
+ * {{selector:CSS_SELECTOR}} - true if element exists
192
+ * {{!selector:CSS_SELECTOR}} - true if element does NOT exist
193
+ * {{url:contains:STRING}} - true if URL contains string
194
+ * {{url:matches:REGEX}} - true if URL matches regex
195
+ * {{cookie:NAME}} - true if cookie exists
196
+ * {{!cookie:NAME}} - true if cookie does NOT exist
197
+ * {{localStorage:KEY}} - true if localStorage key exists
198
+ * {{!localStorage:KEY}} - true if localStorage key does NOT exist
199
+ * {{indexedDB:DB/STORE/KEY}} - true if that IndexedDB record exists
200
+ * {{indexedDB:DB/STORE}} - true if that object store holds any record
201
+ * {{!indexedDB:...}} - negation of either form
202
+ */
203
+ export declare function evaluateCondition(condition: string, ctx: ExecutionContext): Promise<ConditionResult>;
204
+ export interface ConditionalFlowResult {
205
+ success: boolean;
206
+ executed: boolean;
207
+ sequenceName: string;
208
+ substeps?: StepResult[];
209
+ error?: string;
210
+ durationMs?: number;
211
+ }
212
+ /**
213
+ * Execute a conditional flow - runs a sequence if condition is met
214
+ */
215
+ export declare function executeConditionalFlow(condition: string, sequenceName: string, ctx: ExecutionContext, recorder: CommandRecorder,
216
+ /**
217
+ * The parent run's timeout budget, so substeps are bounded the way the
218
+ * caller asked rather than silently falling back to the defaults.
219
+ *
220
+ * `totalTimeout` must be the parent's REMAINING budget, not a fresh copy of
221
+ * its original value - otherwise wrapping steps in a conditional becomes a
222
+ * way to extend the total, and a caller who set a tight bound to fail fast
223
+ * would not get it.
224
+ */
225
+ budget?: {
226
+ stepTimeout?: number;
227
+ totalTimeout?: number;
228
+ },
229
+ /**
230
+ * The parent RUN's signal. Without it a nested sequence is deaf to
231
+ * `replay cancel` even at its own step boundaries - the substep loop would
232
+ * run to completion after the user cancelled.
233
+ */
234
+ abortSignal?: AbortSignal): Promise<ConditionalFlowResult>;
235
+ export interface ForEachFlowResult {
236
+ success: boolean;
237
+ sequenceName: string;
238
+ /** Items the source yielded, before `where` filtering. */
239
+ itemsFound: number;
240
+ /** Items that actually ran `do`. */
241
+ iterations: number;
242
+ substeps?: StepResult[];
243
+ error?: string;
244
+ durationMs?: number;
245
+ }
246
+ /**
247
+ * Resolve a `forEach` source to the array it enumerates.
248
+ *
249
+ * Two forms, deliberately no more. `{{var:name}}` reads an array a previous
250
+ * `saveAs` step captured - which is how anything non-DOM is enumerated, since
251
+ * `inspect({ action: 'evaluateExpression' })` can already return exactly the
252
+ * list the caller wants and is a recordable step. `{{selectorAll:CSS}}` covers
253
+ * the DOM case without making the caller hand-write an evaluate for it.
254
+ *
255
+ * Note the asymmetry with `conditional`'s conditions: those ask whether one
256
+ * named thing exists, so they can't express "give me every X". That gap is the
257
+ * whole reason this step exists.
258
+ */
259
+ export declare function resolveForEachItems(source: unknown, ctx: ExecutionContext): Promise<{
260
+ ok: true;
261
+ items: unknown[];
262
+ } | {
263
+ ok: false;
264
+ error: string;
265
+ }>;
266
+ /**
267
+ * Run a sequence once per item of an enumerated source.
268
+ *
269
+ * Each iteration binds the item to `as` in the run's variable store (and its
270
+ * position to `<as>Index`), so the body addresses it with {{var:<as>.field}}
271
+ * exactly like any captured variable. The binding is REPLACED per iteration
272
+ * rather than scoped, because the variable store is shared by reference across
273
+ * nested runs - which also means a body's own `saveAs` captures survive into
274
+ * the next iteration, and a caller relying on that should say so.
275
+ */
276
+ export declare function executeForEachFlow(params: {
277
+ in: unknown;
278
+ as: string;
279
+ do: string;
280
+ where?: string;
281
+ maxItems?: number;
282
+ }, ctx: ExecutionContext, recorder: CommandRecorder,
283
+ /** The parent's REMAINING budget - a loop must not extend the total. */
284
+ budget?: {
285
+ stepTimeout?: number;
286
+ totalTimeout?: number;
287
+ }, abortSignal?: AbortSignal): Promise<ForEachFlowResult>;
288
+ export interface LoadSequenceArgs {
289
+ name?: string;
290
+ sequenceId?: string;
291
+ }
292
+ export type LoadSequenceResult = {
293
+ success: true;
294
+ sequence: CommandSequence;
295
+ } | {
296
+ success: false;
297
+ error: string;
298
+ errorCode: string;
299
+ /** Template variables for error response (e.g., action, missing for MISSING_PARAMETER) */
300
+ templateVars?: Record<string, string>;
301
+ };
302
+ /**
303
+ * Load a sequence from memory (by sequenceId) or disk (by name)
304
+ */
305
+ export declare function loadSequence(args: LoadSequenceArgs, recorder: CommandRecorder): Promise<LoadSequenceResult>;
306
+ /**
307
+ * Return a deep copy of the sequence retargeted at another deployment:
308
+ * every absolute http(s) URL — the startUrl and any string param in any
309
+ * command (navigate goto, request url, ...) — keeps its path/query/hash but
310
+ * takes `baseUrl`'s origin. Relative URLs are untouched (they already follow
311
+ * the page origin). An explicit `startUrl` replaces the sequence's startUrl
312
+ * wholesale, after rebasing, for runs whose entry point differs per target
313
+ * (e.g. a freshly minted share link). The stored sequence is never mutated —
314
+ * loadSequence can return the recorder's in-memory object.
315
+ */
316
+ export declare function rebaseSequence(sequence: CommandSequence, overrides: {
317
+ baseUrl?: string;
318
+ startUrl?: string;
319
+ }): CommandSequence;
320
+ /**
321
+ * Analyze sequence commands to find launchChrome and determine connection requirements
322
+ */
323
+ export declare function analyzeSequenceConnections(commands: RecordedCommand[]): ConnectionAnalysis;
324
+ /**
325
+ * Extract connectionReason from sequence's launchChrome command if present
326
+ */
327
+ export declare function extractConnectionFromSequence(commands: RecordedCommand[], analysis: ConnectionAnalysis): string | undefined;
328
+ export interface RecordedConnectionAnalysis {
329
+ /** Distinct per-step connection references, in first-seen order. */
330
+ references: string[];
331
+ /** The one reference every connection-bearing step shares, if there is one. */
332
+ uniform?: string;
333
+ /**
334
+ * True when some steps name a connection and other BROWSER steps don't - the
335
+ * recording was driven partly through the active connection, so we cannot tell
336
+ * which browser the bare steps belonged to. Such a sequence is not hoisted
337
+ * (that could pin every step to the one named reference) and `create` says so.
338
+ */
339
+ mixed: boolean;
340
+ /** More than one distinct per-step reference: a genuinely multi-connection sequence. */
341
+ multiConnection: boolean;
342
+ }
343
+ /**
344
+ * What connections a recorded/stored sequence's steps name.
345
+ */
346
+ export declare function analyzeRecordedStepConnections(commands: RecordedCommand[]): RecordedConnectionAnalysis;
347
+ /**
348
+ * Hoist a uniform per-step connection back off the steps so the sequence stays
349
+ * portable: `replay({ action: 'run', connectionReason: 'other' })` can then
350
+ * retarget the whole thing. Steps keep their own connection only where the
351
+ * sequence genuinely spans connections (or where it is ambiguous - see
352
+ * `mixed`), which is the case a run-level connection cannot express.
353
+ *
354
+ * Returns a new command array; the input is never mutated.
355
+ */
356
+ export declare function normalizeStepConnections(commands: RecordedCommand[]): {
357
+ commands: RecordedCommand[];
358
+ /** The reference that was hoisted off every step, if any. */
359
+ hoisted?: string;
360
+ analysis: RecordedConnectionAnalysis;
361
+ };
362
+ /**
363
+ * Normalize a recorded-reference -> session-reference map (both sides sanitized,
364
+ * so `{ 'Duo Member Two': 'My Second Browser' }` works the same as the
365
+ * hyphenated form). Returns undefined for an empty/absent map.
366
+ */
367
+ export declare function sanitizeConnectionMap(map?: Record<string, string>): Record<string, string> | undefined;
368
+ /**
369
+ * Check if sequence needs a connection
370
+ */
371
+ export declare function sequenceNeedsConnection(commands: RecordedCommand[]): boolean;
372
+ /**
373
+ * The connection references live in this session, as `listConnections` reports
374
+ * them. Returns null when that cannot be determined (probe failed, or a stubbed
375
+ * executeToolCall returned nothing parseable) - callers must treat null as
376
+ * "unknown" and NOT as "empty", or every per-step connection would be rejected.
377
+ */
378
+ export declare function probeLiveConnectionReferences(executeToolCall: ExecuteToolCall): Promise<Set<string> | null>;
379
+ /**
380
+ * The `connections` array out of a `listConnections` response, or null when the
381
+ * response carries no parseable JSON block (a stub, or a future format) - null
382
+ * means "unknown", never "empty".
383
+ */
384
+ export declare function parseConnectionList(text: string): Array<{
385
+ reference: string;
386
+ port?: number;
387
+ connected?: boolean;
388
+ }> | null;
389
+ /**
390
+ * Resolve a step's RECORDED connectionReason onto this session, and refuse to
391
+ * proceed if it doesn't exist here (bug-018).
392
+ *
393
+ * Falling back to the run-level connection with a warning is exactly the failure
394
+ * this exists to prevent: a sequence whose purpose is proving something crosses
395
+ * a browser boundary would run entirely in one browser and still pass.
396
+ */
397
+ export declare function formatMissingStepConnection(opts: {
398
+ step: number;
399
+ tool: string;
400
+ recorded: string;
401
+ resolved: string;
402
+ mapped: boolean;
403
+ runConnection?: string;
404
+ live: string[];
405
+ }): string;
406
+ /**
407
+ * Check if debugger is paused and return breakpoint info if so
408
+ */
409
+ export declare function checkIfPaused(ctx: ExecutionContext): Promise<BreakpointHitInfo | null>;
410
+ /**
411
+ * Check if debugger is paused and auto-resume if so
412
+ */
413
+ export declare function resumeIfPaused(ctx: ExecutionContext): Promise<void>;
414
+ export type AutoLaunchResult = {
415
+ success: true;
416
+ } | {
417
+ success: false;
418
+ error: string;
419
+ errorType: 'INVALID_REFERENCE' | 'LAUNCH_FAILED';
420
+ };
421
+ /**
422
+ * Validate reference and auto-launch Chrome if needed.
423
+ * This is the shared helper for all auto-launch scenarios.
424
+ */
425
+ export declare function autoLaunchChrome(executeToolCall: ExecuteToolCall, connectionReason: string, logPrefix?: string, forceNewInstance?: boolean): Promise<AutoLaunchResult>;
426
+ /**
427
+ * Ensure a connection is available, auto-launching Chrome if needed
428
+ */
429
+ export declare function ensureConnection(ctx: ExecutionContext, needsConnection: boolean, hasLaunchBeforeConnection: boolean): Promise<{
430
+ success: true;
431
+ didAutoLaunch: boolean;
432
+ } | {
433
+ success: false;
434
+ error: string;
435
+ }>;
436
+ /**
437
+ * Check if a URL's port is open (for localhost URLs only)
438
+ * Returns success if port is open or URL is not localhost
439
+ */
440
+ export declare function checkPortBeforeNavigation(url: string, logPrefix?: string): Promise<{
441
+ success: true;
442
+ } | {
443
+ success: false;
444
+ error: string;
445
+ }>;
446
+ /**
447
+ * Navigate to startUrl if sequence has one and doesn't start with navigate
448
+ */
449
+ export declare function navigateToStartUrl(ctx: ExecutionContext, sequence: CommandSequence, analysis: ConnectionAnalysis): Promise<{
450
+ success: true;
451
+ } | {
452
+ success: false;
453
+ error: string;
454
+ }>;
455
+ /**
456
+ * Execute a single command with retry logic for element not found errors
457
+ */
458
+ export declare function executeCommandWithRetry(executeToolCall: ExecuteToolCall, tool: string, params: Record<string, any>, logPrefix?: string,
459
+ /**
460
+ * The RUN's signal, forwarded to the tool handler so handlers that honour
461
+ * it (currently `wait`) are interrupted mid-step by `replay cancel`. Note
462
+ * this helper still RESOLVES `{ success: false }` when a handler throws an
463
+ * abort - executeSteps consults the signal on the failure path to classify
464
+ * it as "Replay aborted by user" rather than a genuine step failure.
465
+ */
466
+ abortSignal?: AbortSignal): Promise<{
467
+ success: boolean;
468
+ result?: any;
469
+ error?: string;
470
+ }>;
471
+ /**
472
+ * Validate that navigation succeeded (page loaded correctly)
473
+ */
474
+ export declare function validateNavigation(ctx: ExecutionContext, expectedUrl?: string): Promise<{
475
+ success: boolean;
476
+ error?: string;
477
+ }>;
478
+ /**
479
+ * Wait for an element to appear
480
+ */
481
+ export declare function waitForElement(ctx: ExecutionContext, selector: string): Promise<void>;
482
+ /**
483
+ * Validate typed text was entered correctly
484
+ */
485
+ export declare function validateTypedText(ctx: ExecutionContext, selector: string, expectedText: string, append?: boolean): Promise<void>;
486
+ export interface PreClickState {
487
+ consoleErrorCount: number;
488
+ consoleWarnCount: number;
489
+ consoleTotalCount: number;
490
+ networkRequestCount: number;
491
+ url: string;
492
+ }
493
+ export interface ClickValidationResult {
494
+ valid: boolean;
495
+ errors: string[];
496
+ warnings: string[];
497
+ info: string[];
498
+ }
499
+ /**
500
+ * Capture pre-click state for delta comparison
501
+ */
502
+ export declare function capturePreClickState(ctx: ExecutionContext): Promise<PreClickState>;
503
+ /**
504
+ * Validate click action results
505
+ */
506
+ export declare function validateClickAction(ctx: ExecutionContext, preState: PreClickState, clickResult: any, config: ClickValidationConfig): Promise<ClickValidationResult>;
507
+ export interface ExecuteStepsOptions {
508
+ /**
509
+ * Teardown's own total budget, independent of `totalTimeout`.
510
+ *
511
+ * It has to be independent: the commonest reason a run needs cleaning up
512
+ * after is that it ran out of time, and a teardown drawing on the exhausted
513
+ * parent budget would be skipped in exactly that case.
514
+ */
515
+ teardownTimeout?: number;
516
+ sequence: CommandSequence;
517
+ startStep: number;
518
+ endStep?: number;
519
+ ctx: ExecutionContext;
520
+ variables?: Record<string, string>;
521
+ record?: boolean;
522
+ stepTimeout?: number;
523
+ totalTimeout?: number;
524
+ overrideConnectionReason?: string;
525
+ abortSignal?: AbortSignal;
526
+ /**
527
+ * Called as each TOP-LEVEL step starts executing, so a background run can
528
+ * report live progress. Deliberately not propagated into nested sequences
529
+ * (conditional flows): substeps report through their parent step only.
530
+ */
531
+ onProgress?: (ev: {
532
+ step: number;
533
+ totalSteps: number;
534
+ tool: string;
535
+ }) => void;
536
+ }
537
+ /**
538
+ * Execute a range of steps from a sequence
539
+ */
540
+ export declare function executeSteps(options: ExecuteStepsOptions): Promise<ExecutionResult>;
541
+ /**
542
+ * Execute a sequence with pause support (stepTo)
543
+ */
544
+ export declare function executeSequenceWithPause(options: ExecuteStepsOptions & {
545
+ stepTo?: number;
546
+ }): Promise<ExecutionResult>;
547
+ export interface DebugState {
548
+ isPaused: boolean;
549
+ pauseLocation?: string;
550
+ breakpointCount: number;
551
+ }
552
+ /**
553
+ * Get current debug state (breakpoints, pause status)
554
+ */
555
+ export declare function getDebugState(ctx: ExecutionContext): Promise<DebugState | null>;
556
+ //# sourceMappingURL=replay-executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-executor.d.ts","sourceRoot":"","sources":["../../src/tools/replay-executor.ts"],"names":[],"mappings":"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"}