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,3480 @@
1
+ # cdp-tools Message Templates
2
+
3
+ This file contains all user-facing messages for the cdp-tools debugger. Messages use markdown formatting and support variable interpolation using `{{variable}}` syntax.
4
+
5
+ ## Template Usage Status
6
+
7
+ Some templates are currently unused but kept for:
8
+ - Future error paths and edge cases
9
+ - Potential error conditions not yet encountered
10
+ - Consistency across similar tools
11
+ - Forward compatibility
12
+
13
+ **Currently unused templates (kept for future use):**
14
+ - BREAKPOINT_ALREADY_EXISTS - For duplicate breakpoint detection
15
+ - CHROME_LAUNCH_SUCCESS - For enhanced launch messages
16
+ - CONSOLE_MONITORING_ENABLED - For explicit monitoring activation
17
+ - DEBUGGER_CONNECT_SUCCESS - Reserved for verbose connection mode
18
+ - EXECUTION_CONTEXT_DESTROYED - For context destruction errors
19
+ - LINE_NOT_FOUND - For invalid line number errors
20
+ - LOGPOINT_SET_SUCCESS - For logpoint creation confirmation
21
+ - LOGPOINT_VALIDATE_SUCCESS - For logpoint validation feedback
22
+ - PLATFORM_UNSUPPORTED - For unsupported platform errors
23
+ - PORT_NOT_INSPECTABLE - For port availability errors
24
+ - SCRIPT_NOT_FOUND - For missing script errors
25
+ - SESSION_CLOSED - For session termination errors
26
+ - TIMEOUT_WAITING_FOR_PAUSE - For pause timeout errors
27
+
28
+ These templates should not be removed - they represent potential error conditions or future enhancements.
29
+
30
+ ---
31
+
32
+ ## Connection Messages
33
+
34
+ ## CHROME_ALREADY_RUNNING
35
+
36
+ **Type:** error
37
+ **Code:** CHROME_RUNNING
38
+
39
+ Chrome is already running. You can either:
40
+
41
+ **Suggestions:**
42
+ - Use `killChrome()` to close the existing instance
43
+ - Use `connectDebugger()` to connect to the running instance instead
44
+
45
+ ---
46
+
47
+ ## CHROME_FORCED_PORT_IN_USE
48
+
49
+ **Type:** error
50
+ **Code:** PORT_IN_USE
51
+
52
+ Cannot launch a new Chrome instance on port {{port}}: that port is already in use. `forceNewInstance` guarantees a fresh process, so the requested port is never silently swapped for another one.
53
+
54
+ **Suggestions:**
55
+ - Use `killChrome({ port: {{port}} })` to free the port, then retry
56
+ - Drop `forceNewInstance` to reuse/tab into the Chrome already on port {{port}}
57
+ - Omit `port` to let `forceNewInstance` pick a free port automatically
58
+ - Pick a different explicit `port` if you are pinning one instance per port
59
+
60
+ ---
61
+
62
+ ## CHROME_REFERENCE_ALREADY_BOUND
63
+
64
+ **Type:** error
65
+ **Code:** REFERENCE_IN_USE
66
+
67
+ Reference "{{reference}}" is already bound to a live connection, so `forceNewInstance` would leave two Chrome instances answering to the same name.
68
+
69
+ **Suggestions:**
70
+ - Choose a different 3-word reference for the new instance
71
+ - Drop `forceNewInstance` to reuse the existing "{{reference}}" connection
72
+ - Use `killChrome()` or `disconnectDebugger({ reference: "{{reference}}" })` first to release the name
73
+
74
+ ---
75
+
76
+ ## CHROME_PROFILE_INVALID_NAME
77
+
78
+ **Type:** error
79
+ **Summary:** Invalid profile name
80
+
81
+ "{{profile}}" is not a valid persistent profile name.
82
+
83
+ A profile name becomes a directory, so it must be 1-64 characters of letters, digits, dot, dash or underscore, starting with a letter or digit. No slashes, no leading dot or dash, and it may not start with "chrome-debug-profile-".
84
+
85
+ **Suggestions:**
86
+ - Try a simple name like `device-a`, `owner-console` or `work_google`
87
+ - List existing profiles with `config({ action: 'listProfiles' })`
88
+
89
+ ---
90
+
91
+ ## CHROME_PROFILE_IN_USE
92
+
93
+ **Type:** error
94
+ **Summary:** Profile already in use
95
+
96
+ Profile "{{profile}}" is already held by the Chrome running on port {{port}}.
97
+
98
+ Only one live Chrome can use a profile at a time - a second launch on the same user-data-dir is handed off to the first process and immediately exits.
99
+
100
+ **Suggestions:**
101
+ - Use the existing instance on port {{port}} (`connectionReason` of that connection)
102
+ - Or free the profile first: `killChrome({ port: {{port}}, reason: 'switching profile' })`
103
+ - Or launch a different profile, e.g. `launchChrome({ profile: '{{profile}}-2' })`
104
+
105
+ ---
106
+
107
+ ## CHROME_PROFILE_PORT_MISMATCH
108
+
109
+ **Type:** error
110
+ **Summary:** Port already runs a different profile
111
+
112
+ Chrome is already running on port {{port}} with profile `{{actualProfile}}`, not "{{profile}}".
113
+
114
+ Reusing it would give you a different browser identity than you asked for.
115
+
116
+ **Suggestions:**
117
+ - Launch on another port: `launchChrome({ profile: '{{profile}}', forceNewInstance: true })`
118
+ - Or kill the instance first: `killChrome({ port: {{port}}, reason: 'switching profile' })`
119
+
120
+ ---
121
+
122
+ ## CHROME_LAUNCH_SUCCESS
123
+
124
+ **Type:** success
125
+ **Summary:** Chrome launched and connected
126
+
127
+ Title: {{title}}, URL: {{url}}{{#viewport}}, Viewport: {{viewport.width}}x{{viewport.height}}{{/viewport}}{{#viewportClamped}} (settled here, not the size requested){{/viewportClamped}}{{#consoleStats}}
128
+
129
+ Console: {{consoleStats}}{{/consoleStats}}
130
+
131
+ {{#hasUserReference}}Ready to use! Use connectionReason: "{{reference}}" in tool calls.{{/hasUserReference}}{{^hasUserReference}}Ready to use! Use connectionReason: "{{reference}}" in tool calls, or rename with tab({ action: 'rename' }) first.{{/hasUserReference}}{{inactivityNote}}
132
+
133
+ ---
134
+
135
+ ## CHROME_CONNECTION_REUSED
136
+
137
+ **Type:** success
138
+ **Summary:** Chrome connection reused (already exists)
139
+
140
+ Title: {{title}}, URL: {{url}}
141
+
142
+ Ready to use! Use connectionReason: "{{reference}}" in tool calls.
143
+
144
+ ---
145
+
146
+ ## CHROME_LAUNCH_NO_CONNECT
147
+
148
+ **Type:** success
149
+
150
+ Chrome launched with debugging on port {{port}}
151
+
152
+ ---
153
+
154
+ ## CHROME_LAUNCH_AUTO_CONNECT_FAILED
155
+
156
+ **Type:** warning
157
+
158
+ Chrome launched successfully but auto-connect failed: {{error}}
159
+
160
+ **Note:** Use `connectDebugger()` to connect manually.
161
+
162
+ ---
163
+
164
+ ## DEBUGGER_CONNECT_SUCCESS
165
+
166
+ **Type:** success
167
+ **Summary:** Connected to {{runtimeType}} debugger
168
+
169
+ Host: {{host}}:{{port}}, Reference: {{reference}}
170
+
171
+ Features: {{features}}{{#consoleStats}}
172
+ Console: {{consoleStats}}{{/consoleStats}}{{#isChrome}}
173
+
174
+ Note: Console monitoring auto-enabled. Page auto-reloaded to capture initial logs.
175
+
176
+ IMPORTANT: Please provide a reference name for this tab using the renameTab tool.{{/isChrome}}{{#isNode}}
177
+
178
+ Note: Browser automation features are not available for Node.js debugging.
179
+ Console Monitoring: Enabled via CDP (logpoint output and console.log calls will be captured).{{/isNode}}{{autoRestartWarning}}
180
+
181
+ ---
182
+
183
+ ## DEBUGGER_CONNECT_FAILED
184
+
185
+ **Type:** error
186
+ **Code:** CONNECTION_FAILED
187
+
188
+ Failed to connect to debugger at {{host}}:{{port}}: {{error}}
189
+
190
+ **Suggestions:**
191
+ - Verify the debugger is running and listening on the specified port
192
+ - For Chrome: Launch with `launchChrome()` or start with `--remote-debugging-port={{port}}`
193
+ - For Node.js: Start with `node --inspect={{port}} app.js`
194
+
195
+ ---
196
+
197
+ ## DEBUGGER_NOT_RUNNING
198
+
199
+ **Type:** error
200
+ **Code:** NOT_RUNNING
201
+
202
+ {{message}}
203
+
204
+ **Note:** This error occurs when trying to connect to a debugger that is not running on the specified port.
205
+
206
+ ---
207
+
208
+ ## DEBUGGER_NOT_CONNECTED
209
+
210
+ **Type:** error
211
+ **Code:** NOT_CONNECTED
212
+ **Summary:** Debugger not connected
213
+
214
+ No active debugger connection found.
215
+
216
+ **Suggestions:**
217
+ - Use `launchChrome()` to launch Chrome with debugging enabled
218
+ - Use `connectDebugger()` to connect to an existing debugger instance
219
+
220
+ **Example:**
221
+ ```javascript
222
+ // Launch Chrome
223
+ launchChrome({ url: 'http://localhost:3000' })
224
+
225
+ // Or connect to existing
226
+ connectDebugger({ host: 'localhost', port: 9222 })
227
+ ```
228
+
229
+ ---
230
+
231
+ ## DEBUGGER_DISCONNECT_SUCCESS
232
+
233
+ **Type:** success
234
+
235
+ Disconnected from connection: {{reference}}
236
+
237
+ ---
238
+
239
+ ## PORT_NOT_INSPECTABLE
240
+
241
+ **Type:** error
242
+ **Code:** PORT_NOT_READY
243
+
244
+ Chrome debugging port {{port}} failed to become inspectable within the timeout period
245
+
246
+ **Suggestions:**
247
+ - Chrome may be starting slowly - try increasing the timeout
248
+ - Check if another process is using port {{port}}
249
+ - Verify Chrome launched successfully (check process list)
250
+
251
+ ---
252
+
253
+ ## CHROME_KILLED
254
+
255
+ **Type:** success
256
+
257
+ action:killed;port:{{port}};reason:{{reason}}
258
+
259
+ ---
260
+
261
+ ## CHROME_STATUS
262
+
263
+ **Type:** info
264
+
265
+ Chrome launcher status
266
+
267
+ {{#if lastCloseEvents.length}}
268
+ ### Recent Close Events
269
+
270
+ {{#each lastCloseEvents}}
271
+ - **{{reason}}** (port {{port}}, PID {{pid}}) at {{timestamp}}{{#hasExitCode}} - exit code: {{exitCode}}{{/hasExitCode}}{{#signal}} - signal: {{signal}}{{/signal}}
272
+ {{/each}}
273
+ {{/if}}
274
+
275
+ ---
276
+
277
+ ## CHROME_LAUNCHER_RESET
278
+
279
+ **Type:** success
280
+
281
+ Chrome launcher state reset successfully
282
+
283
+ ---
284
+
285
+ ## CONNECTION_STATUS
286
+
287
+ **Type:** info
288
+
289
+ Connection status retrieved
290
+
291
+ ---
292
+
293
+ ## CONNECTIONS_LIST
294
+
295
+ **Type:** info
296
+
297
+ Active debugger connections ({{totalConnections}} total)
298
+
299
+ ---
300
+
301
+ ## CONNECTION_SWITCH_SUCCESS
302
+
303
+ **Type:** success
304
+
305
+ Switched to connection: {{reference}}
306
+
307
+ ---
308
+
309
+ ## CONNECTION_SWITCH_FAILED
310
+
311
+ **Type:** error
312
+ **Code:** CONNECTION_NOT_FOUND
313
+
314
+ Connection with reference "{{reference}}" not found
315
+
316
+ **Suggestion:** Use `listConnections()` to see all available connections.
317
+
318
+ ---
319
+
320
+ ## DECLARED_CONNECTION_FAILED
321
+
322
+ **Type:** error
323
+ **Code:** DECLARED_CONNECTION_FAILED
324
+ **Summary:** A browser the sequence declares could not be brought up
325
+
326
+ {{message}}
327
+
328
+ The run stopped before its first step, so nothing has been executed yet.
329
+
330
+ ---
331
+
332
+ ## CONNECTION_NOT_FOUND
333
+
334
+ **Type:** error
335
+ **Code:** NO_CONNECTION
336
+ **Summary:** Connection not found
337
+
338
+ No active browser connection available.
339
+
340
+ **Suggestions:**
341
+ - Use `launchChrome()` to launch Chrome with debugging enabled
342
+ - Use `connectDebugger()` to connect to an existing debugger instance
343
+
344
+ ---
345
+
346
+ ## INVALID_REFERENCE
347
+
348
+ **Type:** error
349
+ **Code:** INVALID_REFERENCE
350
+
351
+ Invalid reference: {{error}}
352
+
353
+ **Requirements:**
354
+ - Reference must be exactly 3 words
355
+ - Words are separated by spaces
356
+
357
+ ---
358
+
359
+ ## REFERENCE_IN_USE
360
+
361
+ **Type:** error
362
+ **Code:** REFERENCE_IN_USE
363
+
364
+ Reference "{{reference}}" is already in use by another connection
365
+
366
+ **Suggestion:** Choose a different 3-word reference that describes this specific debugging activity.
367
+
368
+ ---
369
+
370
+ ## SOURCE_MAPS_LOADED
371
+
372
+ **Type:** success
373
+
374
+ Loaded {{count}} source maps from {{directory}}
375
+
376
+ ---
377
+
378
+ ## SOURCE_MAPS_FAILED
379
+
380
+ **Type:** error
381
+ **Code:** SOURCE_MAP_ERROR
382
+
383
+ Failed to load source maps: {{error}}
384
+
385
+ **Suggestions:**
386
+ - Verify the directory path is correct
387
+ - Ensure .js.map files exist in the directory
388
+ - Check file permissions
389
+
390
+ ---
391
+
392
+ ## SOURCE_CODE_SUCCESS
393
+
394
+ **Type:** success
395
+
396
+ Source code retrieved from {{url}} (lines {{startLine}}-{{endLine}})
397
+
398
+ ---
399
+
400
+ ## SOURCE_CODE_FAILED
401
+
402
+ **Type:** error
403
+ **Code:** SOURCE_CODE_ERROR
404
+
405
+ Failed to retrieve source code: {{error}}
406
+
407
+ ---
408
+
409
+ ## CODE_SEARCH_RESULTS
410
+
411
+ **Type:** info
412
+
413
+ Code search completed - found {{count}} matches
414
+
415
+ ---
416
+
417
+ ## FUNCTION_SEARCH_RESULTS
418
+
419
+ **Type:** info
420
+
421
+ Function search completed - found {{count}} matches for '{{functionName}}'
422
+
423
+ ---
424
+
425
+ ## Breakpoint Messages
426
+
427
+ ## BREAKPOINT_SET_SUCCESS
428
+
429
+ **Type:** success
430
+ **Summary:** Breakpoint set
431
+
432
+ Location: {{url}}:{{resolvedLine}}, ID: {{breakpointId}}{{#wasAdjusted}}
433
+
434
+ ⚠️ CDP resolved to {{resolvedLocation}} (requested {{requestedLocation}}) due to source mapping{{/wasAdjusted}}{{#condition}}
435
+ Condition: {{condition}}{{/condition}}
436
+
437
+ ---
438
+
439
+ ## BREAKPOINT_SET_FAILED
440
+
441
+ **Type:** error
442
+ **Code:** BREAKPOINT_FAILED
443
+ **Summary:** Failed to set breakpoint
444
+
445
+ Location: {{url}}:{{lineNumber}}
446
+ Reason: {{error}}
447
+
448
+ **Suggestions:**
449
+ - Verify the file URL is correct (use `file://` for local files or `http://` for web URLs)
450
+ - Ensure the line number exists in the source file
451
+ - Check that the debugger is paused or the script is already loaded
452
+
453
+ ---
454
+
455
+ ## BREAKPOINT_ALREADY_EXISTS
456
+
457
+ **Type:** error
458
+ **Code:** BREAKPOINT_EXISTS
459
+
460
+ A breakpoint already exists at {{url}}:{{lineNumber}}
461
+
462
+ **TIP:** Use `listBreakpoints()` to see all active breakpoints and their IDs.
463
+
464
+ ---
465
+
466
+ ## BREAKPOINT_REMOVE_SUCCESS
467
+
468
+ **Type:** success
469
+
470
+ Breakpoint {{breakpointId}} removed successfully
471
+
472
+ ---
473
+
474
+ ## BREAKPOINT_NOT_FOUND
475
+
476
+ **Type:** error
477
+ **Code:** BREAKPOINT_NOT_FOUND
478
+
479
+ Breakpoint {{breakpointId}} not found
480
+
481
+ **Suggestions:**
482
+ - Use `listBreakpoints()` to see all active breakpoints
483
+ - The breakpoint may have already been removed
484
+
485
+ ---
486
+
487
+ ## LOGPOINT_SET_SUCCESS
488
+
489
+ **Type:** success
490
+
491
+ Logpoint set at {{url}}:{{lineNumber}} (max executions: {{maxExecutions}})
492
+
493
+ **Breakpoint ID:** `{{breakpointId}}`
494
+ **Log message:** `{{logMessage}}`
495
+
496
+ **Note:** Logpoint will pause execution after {{maxExecutions}} executions. Use `resetLogpointCounter()` to reset the counter.
497
+
498
+ ---
499
+
500
+ ## LOGPOINT_VALIDATE_SUCCESS
501
+
502
+ **Type:** success
503
+
504
+ Logpoint validation successful! The expression can be evaluated at {{url}}:{{lineNumber}}
505
+
506
+ **Sample output:** {{sampleOutput}}
507
+
508
+ ---
509
+
510
+ ## LOGPOINT_VALIDATE_FAILED
511
+
512
+ **Type:** error
513
+ **Code:** LOGPOINT_INVALID
514
+
515
+ Logpoint validation failed: {{error}}
516
+
517
+ **Suggestions:**
518
+ - Check that the expressions in `{curly braces}` are valid JavaScript
519
+ - Ensure variables referenced exist in the scope at that line
520
+ - Try evaluating the expression manually with `evaluateExpression()`
521
+
522
+ ---
523
+
524
+ ## LOGPOINT_LIMIT_EXCEEDED
525
+
526
+ **Type:** warning
527
+ **Code:** LOGPOINT_LIMIT
528
+
529
+ Logpoint at {{url}}:{{lineNumber}} has reached execution limit ({{executionCount}}/{{maxExecutions}})
530
+
531
+ Captured logs:
532
+ {{logs}}
533
+
534
+ Options:
535
+ - Use resetLogpointCounter('{{breakpointId}}') to continue logging
536
+ - Use removeBreakpoint('{{breakpointId}}') to remove the logpoint
537
+ - Review the captured logs above
538
+
539
+ ---
540
+
541
+ ## LOGPOINT_COUNTER_RESET
542
+
543
+ **Type:** success
544
+
545
+ Logpoint {{breakpointId}} execution counter reset. It can now execute {{maxExecutions}} more times.
546
+
547
+ ---
548
+
549
+ ## Execution Messages
550
+
551
+ ## EXECUTION_PAUSED
552
+
553
+ **Type:** success
554
+
555
+ Execution paused
556
+
557
+ ---
558
+
559
+ ## EXECUTION_RESUMED
560
+
561
+ **Type:** success
562
+
563
+ Execution resumed
564
+
565
+ ---
566
+
567
+ ## EXECUTION_STEP_OVER
568
+
569
+ **Type:** success
570
+
571
+ Stepped over to next line
572
+
573
+ ---
574
+
575
+ ## EXECUTION_STEP_INTO
576
+
577
+ **Type:** success
578
+
579
+ Stepped into function
580
+
581
+ ---
582
+
583
+ ## EXECUTION_STEP_OUT
584
+
585
+ **Type:** success
586
+
587
+ Stepped out of function
588
+
589
+ ---
590
+
591
+ ## CALL_STACK_SUCCESS
592
+
593
+ **Type:** success
594
+
595
+ Call Stack ({{frameCount}} frames){{#pausedLocation}} - Paused at: {{pausedLocation}}{{/pausedLocation}}
596
+
597
+ ---
598
+
599
+ ## VARIABLES_SUCCESS
600
+
601
+ **Type:** success
602
+
603
+ Variables for call frame {{callFrameId}}: {{returnedCount}} of {{totalCount}} total at depth {{usedDepth}}{{#filter}} (filtered by: {{filter}}){{/filter}}{{#includeGlobal}} (includes global scope){{/includeGlobal}}
604
+
605
+ ---
606
+
607
+ ## VARIABLES_DEPTH_REDUCED
608
+
609
+ **Type:** warning
610
+
611
+ Variables for call frame {{callFrameId}}: {{totalCount}} total (depth reduced from {{requestedDepth}} to {{usedDepth}}){{#filter}} (filtered by: {{filter}}){{/filter}}
612
+
613
+ Variable names/types shown. To inspect at full depth:
614
+ - Use `filter` parameter (e.g., filter: "^myVar$") to narrow results
615
+ - Use `evaluateExpression` (e.g., expression: "myVar") for specific values
616
+
617
+ ---
618
+
619
+ ## VARIABLES_NAMES_ONLY
620
+
621
+ **Type:** warning
622
+
623
+ Variables for call frame {{callFrameId}}: {{totalCount}} total (names only, values exceed limit)
624
+
625
+ Variable names listed by scope. To inspect values:
626
+ - Use `filter` parameter (e.g., filter: "^myVar$") to get values for matching variables
627
+ - Use `evaluateExpression` (e.g., expression: "myVar") to evaluate directly
628
+
629
+ ---
630
+
631
+ ## VARIABLES_COUNTS_ONLY
632
+
633
+ **Type:** warning
634
+
635
+ Variables for call frame {{callFrameId}}: {{totalCount}} total (counts only, names exceed limit)
636
+
637
+ Variable counts per scope shown. Too many variables to list names. To inspect:
638
+ - Use `filter` parameter to narrow scope (e.g., filter: "config|state|user")
639
+ - Use `includeGlobal: false` to exclude global scope (often has 100+ built-ins)
640
+ - Use `evaluateExpression` to check a specific variable directly
641
+
642
+ ---
643
+
644
+ ## VARIABLES_FILTER_INSUFFICIENT
645
+
646
+ **Type:** warning
647
+
648
+ Variables for call frame {{callFrameId}}: {{totalCount}} variables match filter "{{filter}}" (still exceeds limit)
649
+
650
+ The filter matches too many variables. Try:
651
+ - A more specific filter pattern (e.g., filter: "^exactName$" instead of "name")
652
+ - Use `evaluateExpression` to inspect a specific variable directly
653
+ - Use `includeGlobal: false` if global scope variables are included
654
+
655
+ ---
656
+
657
+ ## EVALUATE_EXPRESSION_SUCCESS
658
+
659
+ **Type:** success
660
+ **Summary:** Expression evaluated successfully
661
+
662
+ Expression: {{expression}}, Context: {{context}}
663
+
664
+ Result:
665
+ {{result}}
666
+
667
+ ---
668
+
669
+ ## EVALUATE_EXPRESSION_FAILED
670
+
671
+ **Type:** error
672
+ **Code:** EVALUATION_FAILED
673
+
674
+ Failed to evaluate expression: {{error}}
675
+
676
+ **Expression:** `{{expression}}`
677
+
678
+ **Suggestions:**
679
+ - Check that the expression is valid JavaScript
680
+ - Ensure variables referenced exist in the current scope
681
+ - If evaluating in a specific frame, verify the call frame ID is valid with `getCallStack()`
682
+
683
+ ---
684
+
685
+ ## EVALUATE_EXPRESSION_EXCEPTION
686
+
687
+ **Type:** error
688
+ **Code:** EVALUATE_EXPRESSION_EXCEPTION
689
+
690
+ The evaluated expression threw {{errorType}}: {{errorMessage}}
691
+
692
+ **Expression:** `{{expression}}`
693
+
694
+ **Stack:**
695
+ {{stack}}
696
+
697
+ **Suggestions:**
698
+ - This is the expression's own runtime error, not a tool failure - fix the expression and try again
699
+ - A RangeError here usually means a call stack was exhausted (e.g. spreading a very large array into `Math.max`/`Math.min`) - reduce/chunk the data instead of spreading it all at once
700
+
701
+ ---
702
+
703
+ ## EVALUATE_CONTEXT_UNRESPONSIVE
704
+
705
+ **Type:** error
706
+ **Code:** EVALUATE_CONTEXT_UNRESPONSIVE
707
+
708
+ Evaluation on connection "{{connectionReason}}" did not respond within {{timeoutMs}}ms - the execution context may be unresponsive.
709
+
710
+ **Expression:** `{{expression}}`
711
+
712
+ **Suggestions:**
713
+ - The renderer/execution context may be wedged by the expression itself - try reloading the page or reconnecting
714
+ - If the expression returned a Promise, it may simply never settle (promises are awaited by default) - check the async work completes, or pass `awaitPromise: false` to inspect the Promise object itself
715
+ - Simplify the expression (e.g. avoid spreading very large arrays or deeply recursive calls) and retry
716
+ - Use `getChromeStatus()` or `listConnections()` to check whether the connection is still healthy
717
+
718
+ ---
719
+
720
+ ## EVALUATE_PROMISE_PENDING_WHILE_PAUSED
721
+
722
+ **Type:** error
723
+ **Code:** EVALUATE_PROMISE_PENDING_WHILE_PAUSED
724
+
725
+ Expression returned a pending Promise while the debugger is paused - the event loop is stopped, so the promise can never settle.
726
+
727
+ **Expression:** `{{expression}}`
728
+
729
+ **Suggestions:**
730
+ - Resume execution first (`execution({ action: 'resume' })`), then evaluate the async expression against the running page
731
+ - Promises that are already settled (e.g. an async result from before the pause) ARE resolved automatically - only genuinely pending work fails this way
732
+ - Pass `awaitPromise: false` to inspect the pending Promise object itself instead of its value
733
+
734
+ ---
735
+
736
+ ## NOT_PAUSED
737
+
738
+ **Type:** error
739
+ **Code:** NOT_PAUSED
740
+
741
+ Not currently paused at a breakpoint
742
+
743
+ **Suggestions:**
744
+ - Use `pause()` to pause execution
745
+ - Set a breakpoint with `setBreakpoint()` and trigger it
746
+ - Wait for execution to hit an existing breakpoint
747
+
748
+ ---
749
+
750
+ ## BREAKPOINT_ACKNOWLEDGED
751
+
752
+ **Type:** success
753
+
754
+ Breakpoint pause acknowledged at {{location}}
755
+
756
+ Other tools are now unblocked while execution remains paused. Use `execution({ action: 'resume' })` to continue execution.
757
+
758
+ ---
759
+
760
+ ## TIMEOUT_WAITING_FOR_PAUSE
761
+
762
+ **Type:** error
763
+ **Code:** TIMEOUT
764
+
765
+ Timeout waiting for execution to pause
766
+
767
+ **Suggestions:**
768
+ - The breakpoint may not be hit in the code path being executed
769
+ - Try increasing the timeout duration
770
+ - Verify the breakpoint is set at the correct location with `listBreakpoints()`
771
+
772
+ ---
773
+
774
+ ## Browser Automation Messages
775
+
776
+ ## PAGE_NAVIGATE_SUCCESS
777
+
778
+ **Type:** success
779
+ **Summary:** Navigation complete
780
+
781
+ URL: {{url}}{{#title}}, Title: {{title}}{{/title}}{{#clickableElements}}
782
+
783
+ **Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport)
784
+
785
+ {{clickableElements.hint}}{{/clickableElements}}{{#console}}
786
+
787
+ **Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
788
+
789
+ **Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
790
+
791
+ ---
792
+
793
+ ## PAGE_GO_BACK_SUCCESS
794
+
795
+ **Type:** success
796
+
797
+ Navigated back{{#url}} to: {{url}}{{/url}}{{#clickableElements}}
798
+
799
+ **Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
800
+
801
+ **Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
802
+
803
+ **Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
804
+
805
+ ---
806
+
807
+ ## PAGE_GO_FORWARD_SUCCESS
808
+
809
+ **Type:** success
810
+
811
+ Navigated forward{{#url}} to: {{url}}{{/url}}{{#clickableElements}}
812
+
813
+ **Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
814
+
815
+ **Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
816
+
817
+ **Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
818
+
819
+ ---
820
+
821
+ ## PAGE_INFO_SUCCESS
822
+
823
+ **Type:** success
824
+ **Summary:** Page information
825
+
826
+ URL: {{url}}, Title: {{title}}
827
+
828
+ ---
829
+
830
+ ## PAGE_RELOAD_SUCCESS
831
+
832
+ **Type:** success
833
+
834
+ Page reloaded successfully{{#clickableElements}}
835
+
836
+ **Clickable elements:** {{clickableElements.total}} total ({{clickableElements.inViewport}} in viewport){{/clickableElements}}{{#console}}
837
+
838
+ **Console:** {{console.errors}} errors, {{console.warnings}} warnings{{#console.hint}} - {{console.hint}}{{/console.hint}}{{/console}}{{#network}}
839
+
840
+ **Network:** {{network.failed}} failed requests of {{network.total}} total - {{network.hint}}{{/network}}
841
+
842
+ ---
843
+
844
+ ## ELEMENT_NOT_FOUND
845
+
846
+ **Type:** error
847
+ **Code:** ELEMENT_NOT_FOUND
848
+
849
+ Element not found: `{{selector}}`
850
+
851
+ **Suggestions:**
852
+ - Verify the CSS selector is correct
853
+ - Use `querySelector()` to test if the element exists
854
+ - The element may not be visible or loaded yet - try waiting or reloading the page
855
+
856
+ ---
857
+
858
+ ## ELEMENT_CLICK_SUCCESS
859
+
860
+ **Type:** success
861
+ **Summary:** Element clicked
862
+
863
+ Selector: `{{selector}}`
864
+
865
+ ---
866
+
867
+ ## TEXT_TYPE_SUCCESS
868
+
869
+ **Type:** success
870
+
871
+ Text typed into `{{selector}}`: "{{text}}"
872
+
873
+ ---
874
+
875
+ ## KEY_PRESS_SUCCESS
876
+
877
+ **Type:** success
878
+
879
+ Key pressed: `{{key}}`
880
+
881
+ ---
882
+
883
+ ## ELEMENT_HOVER_SUCCESS
884
+
885
+ **Type:** success
886
+
887
+ Hovered over element: `{{selector}}`
888
+
889
+ ---
890
+
891
+ ## ELEMENT_FOCUS_SUCCESS
892
+
893
+ **Type:** success
894
+ **Summary:** Element focused
895
+
896
+ {{description}}, Selector: {{selector}}{{#nextTabbable}}
897
+
898
+ Next tab: {{nextTabbable}}{{/nextTabbable}}{{#warning}}
899
+
900
+ Warning: {{warning}}{{/warning}}
901
+
902
+ ---
903
+
904
+ ## FOCUS_NEXT_SUCCESS
905
+
906
+ **Type:** success
907
+ **Summary:** Tabbed forward{{#count}} {{count}} times{{/count}}
908
+
909
+ {{description}}, Selector: {{selector}}{{#nextTabbable}}
910
+
911
+ Next tab: {{nextTabbable}}{{/nextTabbable}}
912
+
913
+ ---
914
+
915
+ ## FOCUS_PREVIOUS_SUCCESS
916
+
917
+ **Type:** success
918
+ **Summary:** Tabbed backward{{#count}} {{count}} times{{/count}}
919
+
920
+ {{description}}, Selector: {{selector}}{{#nextTabbable}}
921
+
922
+ Next tab: {{nextTabbable}}{{/nextTabbable}}
923
+
924
+ ---
925
+
926
+ ## INVALID_ACTION
927
+
928
+ **Type:** error
929
+ **Code:** INVALID_ACTION
930
+
931
+ Invalid action: {{action}}
932
+
933
+ **Valid actions:** {{validActions}}
934
+
935
+ ---
936
+
937
+ ## ELEMENT_CLICK_WARNING
938
+
939
+ **Type:** warning
940
+
941
+ Element `{{selector}}` was clicked, but may not have a click handler attached. Verify the expected action occurred.
942
+
943
+ ---
944
+
945
+ ## ACTION_PAUSED_AT_BREAKPOINT
946
+
947
+ **Type:** success
948
+
949
+ {{action}} on `{{selector}}` triggered breakpoint at {{url}}:{{lineNumber}}
950
+
951
+ **Next steps:**
952
+ - Use `getCallStack()` to see the full call stack
953
+ - Use `getVariables()` to inspect variables at this location
954
+ - Use `stepOver()`, `stepInto()`, or `stepOut()` to continue debugging
955
+ - Use `resume()` to continue execution
956
+
957
+ ---
958
+
959
+ ## ELEMENT_BLOCKED_BY_MODAL
960
+
961
+ **Type:** error
962
+ **Code:** ELEMENT_BLOCKED
963
+
964
+ Cannot interact with element `{{selector}}` - blocked by {{modalDescription}}
965
+
966
+ **Modal details:**
967
+ - Type: {{modalType}}
968
+ - Selector: `{{modalSelector}}`
969
+ - Available dismiss strategies: {{availableStrategies}}
970
+
971
+ **Suggestions:**
972
+ - Use `dismissModal()` tool to remove the blocking modal first
973
+ - Enable `handleModals: true` parameter to automatically dismiss modals
974
+ - Use `detectModals()` to see all blocking elements on the page
975
+
976
+ {{#suggestion}}
977
+ **Hint:** {{suggestion}}
978
+ {{/suggestion}}
979
+
980
+ ---
981
+
982
+ ## SCREENSHOT_SAVED
983
+
984
+ **Type:** success
985
+ **Summary:** Screenshot saved
986
+
987
+ Path: {{filepath}}, Size: {{fileSize}}
988
+
989
+ ---
990
+
991
+ ## DOM_SNAPSHOT_SUCCESS
992
+
993
+ **Type:** success
994
+
995
+ DOM snapshot retrieved (depth: {{depth}})
996
+
997
+ ---
998
+
999
+ ## Monitoring Messages
1000
+
1001
+ ## CONSOLE_MONITORING_ENABLED
1002
+
1003
+ **Type:** info
1004
+
1005
+ Console monitoring auto-enabled. Page auto-reloaded to capture initial logs.
1006
+
1007
+ ---
1008
+
1009
+ ## CONSOLE_CLEARED
1010
+
1011
+ **Type:** success
1012
+
1013
+ Console cleared successfully ({{count}} messages removed)
1014
+
1015
+ ---
1016
+
1017
+ ## CONSOLE_MESSAGES_LIST
1018
+
1019
+ **Type:** success
1020
+ **Summary:** Console messages retrieved
1021
+
1022
+ Count: {{count}} of {{totalCount}} total{{#type}} (filtered by type: {{type}}){{/type}}
1023
+
1024
+ ---
1025
+
1026
+ ## CONSOLE_MESSAGE_DETAIL
1027
+
1028
+ **Type:** success
1029
+
1030
+ Console message [{{id}}] - Type: {{type}}, Timestamp: {{timestamp}}
1031
+ Text: {{text}}
1032
+
1033
+ ---
1034
+
1035
+ ## CONSOLE_MESSAGES_RECENT
1036
+
1037
+ **Type:** success
1038
+
1039
+ Recent Console Messages: {{count}} of {{requestedCount}} requested ({{totalCount}} total){{#type}} (filtered by type: {{type}}){{/type}}
1040
+
1041
+ ---
1042
+
1043
+ ## CONSOLE_SEARCH_RESULTS
1044
+
1045
+ **Type:** success
1046
+
1047
+ Console Log Search: {{matchCount}} matches for pattern "{{pattern}}"{{#flags}} (flags: {{flags}}){{/flags}}{{#type}} (type: {{type}}){{/type}} out of {{totalSearched}} searched
1048
+
1049
+ ---
1050
+
1051
+ ## NETWORK_MONITORING_ENABLED
1052
+
1053
+ **Type:** success
1054
+
1055
+ Network monitoring enabled
1056
+
1057
+ ---
1058
+
1059
+ ## NETWORK_MONITORING_DISABLED
1060
+
1061
+ **Type:** success
1062
+
1063
+ Network monitoring disabled
1064
+
1065
+ ---
1066
+
1067
+ ## NETWORK_CONDITIONS_SET
1068
+
1069
+ **Type:** success
1070
+
1071
+ Network conditions set to **{{preset}}**
1072
+
1073
+ ---
1074
+
1075
+ ## NETWORK_REQUESTS_LIST
1076
+
1077
+ **Type:** success
1078
+ **Summary:** Network requests retrieved
1079
+
1080
+ Count: {{count}} of {{totalCount}} total{{#resourceType}} (filtered by type: {{resourceType}}){{/resourceType}}
1081
+
1082
+ ---
1083
+
1084
+ ## NETWORK_REQUEST_DETAIL
1085
+
1086
+ **Type:** success
1087
+
1088
+ Network Request [{{id}}]: {{method}} {{url}}
1089
+ Resource Type: {{resourceType}}, Status: {{status}}{{#failed}}
1090
+ FAILED: {{errorText}}{{/failed}}
1091
+
1092
+ ---
1093
+
1094
+ ## NETWORK_SEARCH_RESULTS
1095
+
1096
+ **Type:** success
1097
+
1098
+ Network Request Search: {{matchCount}} matches for pattern "{{pattern}}"{{#flags}} (flags: {{flags}}){{/flags}}{{#filtersText}} (filters: {{filtersText}}){{/filtersText}} out of {{totalSearched}} searched
1099
+
1100
+ ---
1101
+
1102
+ ## NETWORK_REQUEST_NOT_FOUND
1103
+
1104
+ **Type:** error
1105
+ **Code:** REQUEST_NOT_FOUND
1106
+
1107
+ Network request {{id}} not found
1108
+
1109
+ **Suggestions:**
1110
+ - Use `listNetworkRequests()` to see all captured requests
1111
+ - Ensure network monitoring was enabled before the request was made
1112
+ - The request may have occurred before monitoring started
1113
+
1114
+ ---
1115
+
1116
+ ## Validation Errors
1117
+
1118
+ ## SCRIPT_NOT_FOUND
1119
+
1120
+ **Type:** error
1121
+ **Code:** SCRIPT_NOT_FOUND
1122
+
1123
+ Script not found for URL: {{url}}
1124
+
1125
+ **Suggestions:**
1126
+ - Verify the URL is correct (use `file://` for local files)
1127
+ - Ensure the script has been loaded by the browser
1128
+ - For dynamically loaded scripts, wait for them to load before setting breakpoints
1129
+ - Use `searchCode()` to find available scripts
1130
+
1131
+ ---
1132
+
1133
+ ## LINE_NOT_FOUND
1134
+
1135
+ **Type:** error
1136
+ **Code:** LINE_NOT_FOUND
1137
+
1138
+ Line {{lineNumber}} not found in {{url}}
1139
+
1140
+ **Suggestions:**
1141
+ - Verify the line number exists in the source file
1142
+ - If using source maps, check that they're loaded correctly
1143
+ - The file may have been modified - reload the page
1144
+
1145
+ ---
1146
+
1147
+ ## CALL_FRAME_NOT_FOUND
1148
+
1149
+ **Type:** error
1150
+ **Code:** FRAME_NOT_FOUND
1151
+
1152
+ Call frame {{callFrameId}} not found
1153
+
1154
+ **Suggestions:**
1155
+ - Use `getCallStack()` to get valid call frame IDs
1156
+ - Ensure execution is still paused at a breakpoint
1157
+ - The call stack may have changed if execution resumed
1158
+
1159
+ ---
1160
+
1161
+ ## INVALID_FILTER
1162
+
1163
+ **Type:** error
1164
+ **Code:** INVALID_REGEX
1165
+
1166
+ Invalid filter regex: {{filter}}
1167
+
1168
+ {{error}}
1169
+
1170
+ **Suggestions:**
1171
+ - Check regex syntax (e.g., escape special characters like `[`, `]`, `(`, `)`)
1172
+ - Test your regex at regex101.com before using
1173
+
1174
+ ---
1175
+
1176
+ ## System Errors
1177
+
1178
+ ## PLATFORM_UNSUPPORTED
1179
+
1180
+ **Type:** error
1181
+ **Code:** PLATFORM_UNSUPPORTED
1182
+
1183
+ Unsupported platform: {{platform}}
1184
+
1185
+ **Note:** Chrome launching is only supported on macOS, Windows, and Linux.
1186
+
1187
+ ---
1188
+
1189
+ ## CHROME_SPAWN_FAILED
1190
+
1191
+ **Type:** error
1192
+ **Code:** SPAWN_FAILED
1193
+
1194
+ Failed to spawn Chrome process: {{error}}
1195
+
1196
+ **Suggestions:**
1197
+ - Verify Chrome is installed on your system
1198
+ - Check that you have permission to execute Chrome
1199
+ - On macOS: Chrome should be at `/Applications/Google Chrome.app`
1200
+ - On Linux: Chrome/Chromium should be in your PATH
1201
+
1202
+ ---
1203
+
1204
+ ## PUPPETEER_NOT_CONNECTED
1205
+
1206
+ **Type:** error
1207
+ **Code:** PUPPETEER_NOT_CONNECTED
1208
+
1209
+ Not connected to browser. This operation requires browser automation support.
1210
+
1211
+ **Suggestions:**
1212
+ 1. Launch Chrome with `launchChrome()` (automatically enables browser automation)
1213
+ 2. Or connect to Chrome: `connectDebugger({ host: 'localhost', port: 9222 })`
1214
+
1215
+ **Note:** Browser automation features (DOM interaction, screenshots, navigation) are only available when connected to Chrome, not Node.js.
1216
+
1217
+ ---
1218
+
1219
+ ## PAGE_NOT_LOADED
1220
+
1221
+ **Type:** error
1222
+ **Code:** PAGE_NOT_LOADED
1223
+
1224
+ No page loaded. The tool `{{toolName}}` requires a web page to be loaded first.
1225
+
1226
+ **Suggestions:**
1227
+ 1. Navigate to a URL with `navigateTo({ url: 'https://example.com' })`
1228
+ 2. Or launch Chrome with a URL: `launchChrome({ url: 'https://example.com' })`
1229
+
1230
+ **Note:** Chrome starts with a blank page by default. You must navigate to a URL before using tools that interact with page content.
1231
+
1232
+ ---
1233
+
1234
+ ## NODEJS_NOT_SUPPORTED
1235
+
1236
+ **Type:** error
1237
+ **Code:** FEATURE_NOT_SUPPORTED
1238
+
1239
+ This feature is not supported for Node.js debugging ({{feature}})
1240
+
1241
+ **Available for Node.js:**
1242
+ - Breakpoints and debugging
1243
+ - Code execution and evaluation
1244
+ - Call stack inspection
1245
+ - Console log monitoring
1246
+
1247
+ **Not available for Node.js:**
1248
+ - Browser automation (DOM, screenshots, navigation)
1249
+ - Network request monitoring
1250
+
1251
+ **Suggestion:** Use `launchChrome()` if you need browser automation features.
1252
+
1253
+ ---
1254
+
1255
+ ## EXECUTION_CONTEXT_DESTROYED
1256
+
1257
+ **Type:** error
1258
+ **Code:** CONTEXT_DESTROYED
1259
+
1260
+ Execution context was destroyed (page may have navigated or reloaded)
1261
+
1262
+ **Suggestions:**
1263
+ - Reload the page and try again
1264
+ - Reconnect to the debugger with `connectDebugger()`
1265
+ - Check if the page navigated unexpectedly
1266
+
1267
+ ---
1268
+
1269
+ ## SESSION_CLOSED
1270
+
1271
+ **Type:** error
1272
+ **Code:** SESSION_CLOSED
1273
+
1274
+ Debugger session closed unexpectedly
1275
+
1276
+ **Suggestions:**
1277
+ - The browser or Node.js process may have crashed or been closed
1278
+ - Use `getDebuggerStatus()` to check connection status
1279
+ - Reconnect with `connectDebugger()` or relaunch with `launchChrome()`
1280
+
1281
+ ---
1282
+
1283
+ ## COOKIE_SET_SUCCESS
1284
+
1285
+ **Type:** success
1286
+
1287
+ Cookie set: `{{name}}`
1288
+
1289
+ ---
1290
+
1291
+ ## LOCAL_STORAGE_SET_SUCCESS
1292
+
1293
+ **Type:** success
1294
+
1295
+ localStorage item set: `{{key}}` = "{{value}}"
1296
+
1297
+ ---
1298
+
1299
+ ## SESSION_STORAGE_SET_SUCCESS
1300
+
1301
+ **Type:** success
1302
+
1303
+ sessionStorage item set: `{{key}}` = "{{value}}"
1304
+
1305
+ ---
1306
+
1307
+ ## STORAGE_KEY_REMOVED
1308
+
1309
+ **Type:** success
1310
+
1311
+ {{storageType}} key removed: `{{key}}`{{existedNote}}
1312
+
1313
+ ---
1314
+
1315
+ ## IDB_PUT_SUCCESS
1316
+
1317
+ **Type:** success
1318
+
1319
+ IndexedDB record written to `{{db}}` / `{{store}}` (key: {{key}})
1320
+
1321
+ ---
1322
+
1323
+ ## IDB_DELETE_SUCCESS
1324
+
1325
+ **Type:** success
1326
+
1327
+ IndexedDB record deleted from `{{db}}` / `{{store}}` (key: {{key}}){{existedNote}}
1328
+
1329
+ ---
1330
+
1331
+ ## INDEXEDDB_ERROR
1332
+
1333
+ **Type:** error
1334
+ **Code:** INDEXEDDB_ERROR
1335
+
1336
+ IndexedDB operation failed ({{action}}): {{error}}
1337
+
1338
+ **Suggestions:**
1339
+ - Use `storage({ action: "idbListDatabases" })` to confirm the database name
1340
+ - Use `storage({ action: "idbListStores", db: "..." })` to confirm the object store name
1341
+ - Object stores with a `keyPath` take their key from inside `record`; do not pass `key`
1342
+ - IndexedDB is origin-scoped, so navigate to the right origin before reading
1343
+
1344
+ ---
1345
+
1346
+ ## STORAGE_CLEARED
1347
+
1348
+ **Type:** success
1349
+
1350
+ Storage cleared successfully ({{types}})
1351
+
1352
+ ---
1353
+
1354
+ ## Variable Templates
1355
+
1356
+ Common variables used across messages:
1357
+
1358
+ - `{{port}}` - Port number (e.g., 9222)
1359
+ - `{{host}}` - Hostname (e.g., localhost)
1360
+ - `{{url}}` - File or page URL
1361
+ - `{{lineNumber}}` - Line number in source code
1362
+ - `{{columnNumber}}` - Column number in source code (optional)
1363
+ - `{{breakpointId}}` - Unique breakpoint identifier
1364
+ - `{{reference}}` - Connection reference name
1365
+ - `{{runtimeType}}` - 'chrome' or 'node'
1366
+ - `{{error}}` - Error message or details
1367
+ - `{{selector}}` - CSS selector string
1368
+ - `{{filepath}}` - File system path
1369
+ - `{{fileSize}}` - Human-readable file size
1370
+ - `{{id}}` - Generic identifier (request ID, log ID, etc.)
1371
+ - `{{count}}` - Numeric count
1372
+ - `{{logMessage}}` - Logpoint message template
1373
+ - `{{maxExecutions}}` - Maximum execution count for logpoints
1374
+ - `{{executionCount}}` - Current execution count
1375
+ - `{{logs}}` - Formatted log output
1376
+ - `{{feature}}` - Feature name
1377
+ - `{{platform}}` - Operating system platform
1378
+ - `{{types}}` - List of storage types
1379
+ - `{{depth}}` - DOM traversal depth
1380
+ - `{{sampleOutput}}` - Example output from validation
1381
+ - `{{newReference}}` - New tab reference name
1382
+ - `{{oldReference}}` - Old tab reference name
1383
+ - `{{closedReference}}` - Closed tab reference
1384
+ - `{{newActiveReference}}` - New active tab reference
1385
+
1386
+ ---
1387
+
1388
+ ## Tab Management Messages
1389
+
1390
+ ## TAB_CREATE_SUCCESS
1391
+
1392
+ **Type:** success
1393
+ **Summary:** New tab created and connected
1394
+
1395
+ Title: {{title}}, URL: {{url}}{{#consoleStats}}
1396
+
1397
+ Console: {{consoleStats}}{{/consoleStats}}
1398
+
1399
+ ---
1400
+
1401
+ ## TAB_LIST_EMPTY
1402
+
1403
+ **Type:** info
1404
+ **Summary:** No Chrome tabs open
1405
+
1406
+ Use action "create" to create a new tab.
1407
+
1408
+ ---
1409
+
1410
+ ## TAB_LIST_SUCCESS
1411
+
1412
+ **Type:** list
1413
+ **Summary:** {{count}} open tab(s)
1414
+
1415
+ {{tabList}}
1416
+
1417
+ Tip: Use action "switch" to switch tabs, or "create" to open a new one.
1418
+
1419
+ ---
1420
+
1421
+ ## TAB_CREATE_FAILED
1422
+
1423
+ **Type:** error
1424
+ **Code:** TAB_CREATE_FAILED
1425
+
1426
+ Failed to create new tab: {{error}}
1427
+
1428
+ **Suggestions:**
1429
+ - Ensure a Chrome browser is already running (use `launchChrome` first)
1430
+ - Check that the browser connection is still active
1431
+
1432
+ ---
1433
+
1434
+ ## TAB_RENAME_SUCCESS
1435
+
1436
+ **Type:** success
1437
+ **Summary:** Tab renamed
1438
+
1439
+ Old: {{oldReference}}, New: {{newReference}}
1440
+
1441
+ ---
1442
+
1443
+ ## TAB_SWITCH_SUCCESS
1444
+
1445
+ **Type:** success
1446
+ **Summary:** Switched to tab
1447
+
1448
+ Title: {{title}}, URL: {{url}}
1449
+
1450
+ ---
1451
+
1452
+ ## TAB_CLOSE_SUCCESS
1453
+
1454
+ **Type:** success
1455
+ **Summary:** Tab closed
1456
+
1457
+ New active: {{newActiveReference}}
1458
+
1459
+ ---
1460
+
1461
+ ## TAB_CLOSE_FAILED
1462
+
1463
+ **Type:** error
1464
+ **Code:** TAB_CLOSE_FAILED
1465
+
1466
+ Failed to close tab: {{reference}}
1467
+
1468
+ **Suggestions:**
1469
+ - Verify the reference is correct using `listTabs()`
1470
+ - The tab may have already been closed
1471
+
1472
+ ---
1473
+
1474
+ ## DEBUG_LOGGING_ENABLED
1475
+
1476
+ **Type:** success
1477
+ **Code:** DEBUG_LOGGING_ENABLED
1478
+
1479
+ {{message}}
1480
+
1481
+ Debug logs will be written to `.cdp-tools/logs/debug.log` and visible in the MCP server's stderr output.
1482
+
1483
+ ---
1484
+
1485
+ ## DEBUG_LOGGING_DISABLED
1486
+
1487
+ **Type:** success
1488
+ **Code:** DEBUG_LOGGING_DISABLED
1489
+
1490
+ {{message}}
1491
+
1492
+ Debug logging is now disabled. No logs will be written.
1493
+
1494
+ ---
1495
+
1496
+ ## DEBUG_LOGGING_STATUS
1497
+
1498
+ **Type:** success
1499
+ **Code:** DEBUG_LOGGING_STATUS
1500
+
1501
+ Debug logging is currently **{{status}}**.
1502
+ {{#enabled}}
1503
+ Logs are being written to: `{{logFile}}`
1504
+ {{/enabled}}
1505
+
1506
+ ---
1507
+
1508
+ ## FILE_DOWNLOADED
1509
+
1510
+ **Type:** success
1511
+ **Code:** FILE_DOWNLOADED
1512
+
1513
+ File downloaded successfully from `{{url}}`
1514
+
1515
+ Saved to: `{{filepath}}`
1516
+ Size: {{size}}
1517
+
1518
+ ---
1519
+
1520
+ ## FILE_DOWNLOADED_OVERWROTE
1521
+
1522
+ **Type:** success
1523
+ **Code:** FILE_DOWNLOADED_OVERWROTE
1524
+
1525
+ File downloaded and **overwrote existing file** at `{{filepath}}`
1526
+
1527
+ Downloaded from: `{{url}}`
1528
+ Size: {{size}}
1529
+
1530
+ ---
1531
+
1532
+ ## FILE_ALREADY_EXISTS
1533
+
1534
+ **Type:** error
1535
+ **Code:** FILE_ALREADY_EXISTS
1536
+
1537
+ **ERROR:** A file named `{{filename}}` already exists at this location.
1538
+
1539
+ **Existing file:**
1540
+ - Path: `{{filepath}}`
1541
+ - Size: {{existingSize}}
1542
+ - Last modified: {{existingModified}}
1543
+
1544
+ **New file from `{{url}}`:**
1545
+ - Size: {{newSize}}
1546
+
1547
+ Please choose a different, more descriptive filename or set `overwriteIfExists: true` to replace the existing file.
1548
+
1549
+ ---
1550
+
1551
+ ## CANNOT_OVERWRITE_NONEXISTENT
1552
+
1553
+ **Type:** error
1554
+ **Code:** CANNOT_OVERWRITE_NONEXISTENT
1555
+
1556
+ **ERROR:** Cannot set `overwriteIfExists: true` for a file that doesn't exist yet.
1557
+
1558
+ The file `{{filename}}` does not exist at `{{filepath}}`.
1559
+
1560
+ Remove the `overwriteIfExists` parameter (it defaults to false) for new downloads.
1561
+
1562
+ ---
1563
+
1564
+ ## FILE_DOWNLOAD_FAILED
1565
+
1566
+ **Type:** error
1567
+ **Code:** FILE_DOWNLOAD_FAILED
1568
+
1569
+ Failed to download file from `{{url}}`
1570
+
1571
+ {{#status}}HTTP {{status}}: {{statusText}}{{/status}}
1572
+ {{#error}}Error: {{error}}{{/error}}
1573
+
1574
+ **Suggestions:**
1575
+ - Verify the URL is correct and accessible
1576
+ - Check your network connection
1577
+ - Ensure the server is responding
1578
+
1579
+ ---
1580
+
1581
+ ## INVALID_FILENAME
1582
+
1583
+ **Type:** error
1584
+ **Code:** INVALID_FILENAME
1585
+
1586
+ **ERROR:** Invalid filename `{{filename}}`
1587
+
1588
+ Reason: {{reason}}
1589
+
1590
+ Please use a valid filename without path separators or special characters.
1591
+
1592
+ ---
1593
+
1594
+ ## FILE_TOO_LARGE
1595
+
1596
+ **Type:** error
1597
+ **Code:** FILE_TOO_LARGE
1598
+
1599
+ **ERROR:** File is too large to download
1600
+
1601
+ The file at `{{url}}` is {{size}}, which exceeds the maximum allowed size of {{maxSize}}.
1602
+
1603
+ For security and performance reasons, files larger than {{maxSize}} cannot be downloaded automatically.
1604
+
1605
+ ---
1606
+
1607
+ ## FILE_QUARANTINED
1608
+
1609
+ **Type:** error
1610
+ **Code:** FILE_QUARANTINED
1611
+
1612
+ **WARNING:** File has been quarantined due to security concerns
1613
+
1614
+ **File:** `{{filename}}`
1615
+ **Reason:** {{reason}}
1616
+ **Size:** {{size}}
1617
+ **Content-Type:** {{contentType}}
1618
+ **Quarantine Location:** `{{quarantinePath}}`
1619
+
1620
+ The file was downloaded but renamed with a `.quarantined` extension and moved to quarantine to prevent accidental execution. If you trust this file, you can manually rename and move it from the quarantine location.
1621
+
1622
+ ---
1623
+
1624
+ ## FILE_SAVE_FAILED
1625
+
1626
+ **Type:** error
1627
+ **Code:** FILE_SAVE_FAILED
1628
+
1629
+ **ERROR:** Failed to save file to disk
1630
+
1631
+ The file was downloaded successfully but could not be saved to `{{filepath}}`
1632
+
1633
+ Error: {{error}}
1634
+
1635
+ **Possible causes:**
1636
+ - Disk is full
1637
+ - No write permission to the directory
1638
+ - File system error
1639
+
1640
+ ---
1641
+
1642
+ ## FILE_DOWNLOAD_NETWORK_ERROR
1643
+
1644
+ **Type:** error
1645
+ **Code:** FILE_DOWNLOAD_NETWORK_ERROR
1646
+
1647
+ **ERROR:** Network error while downloading file
1648
+
1649
+ Failed to connect to `{{url}}`
1650
+
1651
+ Error: {{error}}
1652
+
1653
+ **Suggestions:**
1654
+ - Check your internet connection
1655
+ - Verify the URL is accessible
1656
+ - Ensure the server is online
1657
+
1658
+ ---
1659
+
1660
+ ## PDF_SAVED
1661
+
1662
+ **Type:** success
1663
+ **Code:** PDF_SAVED
1664
+
1665
+ PDF saved successfully to `{{filepath}}`
1666
+ File size: {{fileSize}}
1667
+ {{#engine}}Engine: {{engine}}{{/engine}}
1668
+ {{#version}}Version: {{version}}{{/version}}
1669
+
1670
+ ---
1671
+
1672
+ ## PDF_GENERATED
1673
+
1674
+ **Type:** success
1675
+ **Code:** PDF_GENERATED
1676
+
1677
+ PDF generated successfully
1678
+ Size: {{size}}
1679
+
1680
+ {{note}}
1681
+
1682
+ ---
1683
+
1684
+ ## PDF_GENERATION_FAILED
1685
+
1686
+ **Type:** error
1687
+ **Code:** PDF_GENERATION_FAILED
1688
+
1689
+ **ERROR:** Failed to generate PDF
1690
+
1691
+ Error: {{error}}
1692
+
1693
+ ---
1694
+
1695
+ ## WEASYPRINT_NOT_FOUND
1696
+
1697
+ **Type:** error
1698
+ **Code:** WEASYPRINT_NOT_FOUND
1699
+
1700
+ **ERROR:** WeasyPrint is not installed or not found in PATH
1701
+
1702
+ WeasyPrint is required for advanced PDF generation with superior CSS page break support.
1703
+
1704
+ **Suggestions:**
1705
+ - Install WeasyPrint: `pip install weasyprint`
1706
+ - Verify installation: `weasyprint --version`
1707
+ - Ensure WeasyPrint is in your system PATH
1708
+ - Use `printToPDF` tool for basic PDF generation with Chrome instead
1709
+
1710
+ **Note:** WeasyPrint requires Python 3.7+ and additional system dependencies (Cairo, Pango, GdkPixbuf). See https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation
1711
+
1712
+ Error: {{error}}
1713
+
1714
+ ---
1715
+
1716
+ ## WEASYPRINT_EXECUTION_FAILED
1717
+
1718
+ **Type:** error
1719
+ **Code:** WEASYPRINT_EXECUTION_FAILED
1720
+
1721
+ **ERROR:** WeasyPrint failed to generate PDF
1722
+
1723
+ The WeasyPrint process encountered an error during PDF generation.
1724
+
1725
+ Error: {{error}}
1726
+
1727
+ **Suggestions:**
1728
+ - Check HTML/CSS syntax for errors
1729
+ - Verify all referenced resources (images, stylesheets) are accessible
1730
+ - Check WeasyPrint logs for detailed error information
1731
+ - Try the `printToPDF` tool for basic PDF generation with Chrome instead
1732
+
1733
+ ---
1734
+
1735
+ ## Replay Messages
1736
+
1737
+ ## INVALID_INDICES
1738
+
1739
+ **Type:** error
1740
+ **Code:** INVALID_INDICES
1741
+
1742
+ {{message}}
1743
+
1744
+ ---
1745
+
1746
+ ## REPLAY_ABORTED
1747
+
1748
+ **Type:** success
1749
+ **Summary:** Replay aborted
1750
+
1751
+ **Replay aborted:** {{name}}
1752
+
1753
+ Completed {{completedSteps}}/{{totalSteps}} steps before abort.{{#failedSteps}}
1754
+ {{failedSteps}} step(s) failed before the abort - see the step results.{{/failedSteps}}
1755
+
1756
+ ---
1757
+
1758
+ ## REPLAY_RUN_STARTED
1759
+
1760
+ **Type:** success
1761
+ **Summary:** Run started: {{name}}
1762
+
1763
+ **Run started in the background:** {{name}} ({{totalSteps}} steps, connection: {{connectionReason}})
1764
+
1765
+ Run id: `{{runId}}`
1766
+
1767
+ - Progress / results: `replay({ action: 'status', runId: '{{runId}}' })`
1768
+ - Stop it: `replay({ action: 'cancel', runId: '{{runId}}' })`
1769
+
1770
+ Results are kept in memory for 30 minutes after the run settles. Pass `wait: true` to `run` to block until completion instead.
1771
+
1772
+ ---
1773
+
1774
+ ## REPLAY_RUN_NOT_FOUND
1775
+
1776
+ **Type:** error
1777
+ **Code:** REPLAY_RUN_NOT_FOUND
1778
+
1779
+ **ERROR:** No run with id `{{runId}}`
1780
+
1781
+ Runs are held in memory only: results expire 30 minutes after a run settles, and a server restart (including the hot-restart on rebuild) kills in-flight runs and forgets every id.
1782
+
1783
+ **Suggestions:**
1784
+ - `replay({ action: 'status' })` lists the runs this server still knows about
1785
+ - Start the sequence again with `replay({ action: 'run', ... })`
1786
+
1787
+ ---
1788
+
1789
+ ## REPLAY_RUN_CANCELLING
1790
+
1791
+ **Type:** success
1792
+ **Summary:** Cancelling run {{runId}}
1793
+
1794
+ **Cancel requested:** {{name}} (`{{runId}}`)
1795
+
1796
+ Steps that support cancellation are interrupted promptly; other steps stop at the next step boundary. Work already dispatched to the browser may still take effect. Check `replay({ action: 'status', runId: '{{runId}}' })` until the status is `cancelled`.
1797
+
1798
+ ---
1799
+
1800
+ ## REPLAY_RUN_CANCELLED
1801
+
1802
+ **Type:** success
1803
+ **Summary:** Run cancelled
1804
+
1805
+ **Cancelled:** {{name}} (`{{runId}}`)
1806
+
1807
+ The paused session for this run was dropped.
1808
+
1809
+ ---
1810
+
1811
+ ## REPLAY_RUN_ALREADY_FINISHED
1812
+
1813
+ **Type:** info
1814
+ **Summary:** Run already {{status}}
1815
+
1816
+ **Nothing to cancel:** {{name}} (`{{runId}}`) is already {{status}}.
1817
+
1818
+ Its result is still available via `replay({ action: 'status', runId: '{{runId}}' })`.
1819
+
1820
+ ---
1821
+
1822
+ ## REPLAY_RUN_AMBIGUOUS
1823
+
1824
+ **Type:** error
1825
+ **Code:** REPLAY_RUN_AMBIGUOUS
1826
+
1827
+ **ERROR:** {{count}} runs are executing - specify which one to cancel
1828
+
1829
+ Runs: {{runList}}
1830
+
1831
+ **Suggestions:**
1832
+ - `replay({ action: 'cancel', runId: '...' })` targets one run
1833
+ - `replay({ action: 'status' })` shows all runs
1834
+
1835
+ ---
1836
+
1837
+ ## REPLAY_HISTORY
1838
+
1839
+ **Type:** success
1840
+ **Summary:** Command history
1841
+
1842
+ Showing {{count}} of {{totalCount}} commands
1843
+
1844
+ ---
1845
+
1846
+ ## REPLAY_HISTORY_EMPTY
1847
+
1848
+ **Type:** info
1849
+ **Summary:** Command history empty
1850
+
1851
+ No commands recorded yet. All tool calls are automatically recorded.
1852
+
1853
+ ---
1854
+
1855
+ ## REPLAY_SAVED_LIST
1856
+
1857
+ **Type:** list
1858
+ **Summary:** {{count}} saved sequence(s)
1859
+
1860
+ ---
1861
+
1862
+ ## REPLAY_SAVED_EMPTY
1863
+
1864
+ **Type:** info
1865
+ **Summary:** No saved sequences
1866
+
1867
+ No sequences saved to disk yet.
1868
+
1869
+ Location: `.cdp-tools/sequences/`
1870
+
1871
+ ---
1872
+
1873
+ ## REPLAY_RUN_SUCCESS
1874
+
1875
+ **Type:** success
1876
+ **Summary:** {{sequenceName}}
1877
+
1878
+ Completed {{successful}}/{{total}} commands in {{duration}}s
1879
+
1880
+ ---
1881
+
1882
+ ## REPLAY_RUN_FAILED
1883
+
1884
+ **Type:** error
1885
+ **Summary:** Failed at step {{failedStep}} ({{failedTool}})
1886
+
1887
+ Sequence: {{sequenceName}}
1888
+
1889
+ ---
1890
+
1891
+ ## REPLAY_STEP_TIMEOUT
1892
+
1893
+ **Type:** error
1894
+ **Summary:** Step timed out
1895
+
1896
+ Step {{step}} ({{tool}}) timed out after {{timeoutMs}}ms ({{limitSource}} limit)
1897
+
1898
+ **Note:** The run stops at this step. Work already dispatched to the browser may still take effect.
1899
+
1900
+ ---
1901
+
1902
+ ## REPLAY_PAUSED
1903
+
1904
+ **Type:** info
1905
+ **Summary:** {{sequenceName}}
1906
+
1907
+ Paused at step {{pausedStep}} of {{total}}, {{remaining}} remaining
1908
+
1909
+ ---
1910
+
1911
+ ## REPLAY_SEQUENCE_CREATED
1912
+
1913
+ **Type:** success
1914
+ **Summary:** Sequence created
1915
+
1916
+ Name: {{name}}, ID: {{id}}, Commands: {{commandCount}}
1917
+
1918
+ ---
1919
+
1920
+ ## REPLAY_SEQUENCE_DETAILS
1921
+
1922
+ **Type:** success
1923
+ **Summary:** Sequence details
1924
+
1925
+ {{name}}: {{commandCount}} commands
1926
+
1927
+ ---
1928
+
1929
+ ## REPLAY_STEP_SUCCESS
1930
+
1931
+ **Type:** success
1932
+ **Summary:** {{sequenceName}}
1933
+
1934
+ Executed {{stepCount}} step(s), {{remaining}} remaining
1935
+
1936
+ ---
1937
+
1938
+ ## REPLAY_STEP_COMPLETE
1939
+
1940
+ **Type:** success
1941
+ **Summary:** {{sequenceName}}
1942
+
1943
+ All {{total}} steps executed successfully
1944
+
1945
+ ---
1946
+
1947
+ ## REPLAY_BREAKPOINT_HIT
1948
+
1949
+ **Type:** info
1950
+ **Summary:** {{sequenceName}}
1951
+
1952
+ Breakpoint hit at {{location}}
1953
+
1954
+ ---
1955
+
1956
+ ## REPLAY_SEQUENCE_LIST
1957
+
1958
+ **Type:** list
1959
+ **Summary:** {{count}} sequence(s) in memory
1960
+
1961
+ ---
1962
+
1963
+ ## REPLAY_SEQUENCE_LIST_EMPTY
1964
+
1965
+ **Type:** info
1966
+ **Summary:** No sequences saved
1967
+
1968
+ No sequences saved yet in memory.
1969
+
1970
+ ---
1971
+
1972
+ ## REPLAY_ACTIVE_STATUS
1973
+
1974
+ **Type:** info
1975
+ **Summary:** {{sequenceName}}
1976
+
1977
+ Paused at step {{currentStep}} of {{totalSteps}}
1978
+
1979
+ ---
1980
+
1981
+ ## REPLAY_STEP_FAILED
1982
+
1983
+ **Type:** error
1984
+ **Summary:** Step failed
1985
+
1986
+ {{sequenceName}}: Failed at step {{failedStep}} ({{failedTool}})
1987
+
1988
+ ---
1989
+
1990
+ ## REPLAY_INSERT_PROMPT
1991
+
1992
+ **Type:** info
1993
+ **Summary:** Insert commands
1994
+
1995
+ {{sequenceName}}: {{commandCount}} command(s) available to insert
1996
+
1997
+ ---
1998
+
1999
+ ## REPLAY_INSERT_SUCCESS
2000
+
2001
+ **Type:** success
2002
+ **Summary:** Commands inserted
2003
+
2004
+ {{sequenceName}}: Inserted {{insertedCount}} command(s) after step {{insertAfter}}
2005
+
2006
+ ---
2007
+
2008
+ ## REPLAY_INSERT_NEW
2009
+
2010
+ **Type:** success
2011
+ **Summary:** New sequence created
2012
+
2013
+ {{sequenceName}}: Created with {{insertedCount}} inserted command(s)
2014
+
2015
+ ---
2016
+
2017
+ ## REPLAY_DEBUG_STATE
2018
+
2019
+ **Type:** info
2020
+ **Summary:** Debug state
2021
+
2022
+ Execution paused at {{location}}
2023
+
2024
+ ---
2025
+
2026
+ ## REPLAY_VARIABLE_PROMPT
2027
+
2028
+ **Type:** info
2029
+ **Summary:** Variables found
2030
+
2031
+ {{sequenceName}}: {{variableCount}} customizable parameter(s)
2032
+
2033
+ ---
2034
+
2035
+ ## REPLAY_NO_COMMANDS_SINCE_PAUSE
2036
+
2037
+ **Type:** info
2038
+ **Summary:** No commands to insert
2039
+
2040
+ No commands recorded since pause. Run some commands first.
2041
+
2042
+ ---
2043
+
2044
+ ## RECORDING_STARTED
2045
+
2046
+ **Type:** success
2047
+
2048
+ Command recording started. All tool calls will be recorded until you stop.
2049
+
2050
+ ---
2051
+
2052
+ ## SEQUENCE_EXPORTED
2053
+
2054
+ **Type:** success
2055
+
2056
+ Sequence "{{name}}" exported successfully!
2057
+
2058
+ **Sequence ID:** `{{sequenceId}}`
2059
+ **Commands:** {{commandCount}}
2060
+
2061
+ ---
2062
+
2063
+ ## SEQUENCE_DELETED
2064
+
2065
+ **Type:** success
2066
+
2067
+ Sequence `{{sequenceId}}` deleted successfully.
2068
+
2069
+ ---
2070
+
2071
+ ## ALREADY_RECORDING
2072
+
2073
+ **Type:** error
2074
+ **Code:** ALREADY_RECORDING
2075
+
2076
+ Already recording. Stop current recording first with `replay({ action: 'stopRecording' })`.
2077
+
2078
+ ---
2079
+
2080
+ ## NOT_RECORDING
2081
+
2082
+ **Type:** error
2083
+ **Code:** NOT_RECORDING
2084
+
2085
+ Not currently recording. Start recording first with `replay({ action: 'startRecording' })`.
2086
+
2087
+ ---
2088
+
2089
+ ## NO_COMMANDS_RECORDED
2090
+
2091
+ **Type:** error
2092
+ **Code:** NO_COMMANDS_RECORDED
2093
+
2094
+ No commands were recorded in this session.
2095
+
2096
+ ---
2097
+
2098
+ ## SEQUENCE_NOT_FOUND
2099
+
2100
+ **Type:** error
2101
+ **Code:** SEQUENCE_NOT_FOUND
2102
+
2103
+ {{#message}}{{message}}{{/message}}{{^message}}Sequence `{{sequenceId}}` not found. Use `replay({ action: 'list' })` to see available sequences or `replay({ action: 'listSaved' })` to see saved files.{{/message}}
2104
+
2105
+ ---
2106
+
2107
+ ## NO_MATCHING_COMMANDS
2108
+
2109
+ **Type:** error
2110
+ **Code:** NO_MATCHING_COMMANDS
2111
+
2112
+ No commands matched the provided IDs.
2113
+
2114
+ **Provided IDs:** {{providedIds}}
2115
+
2116
+ ---
2117
+
2118
+ ## SEQUENCE_EXPORTED_TO_DISK
2119
+
2120
+ **Type:** success
2121
+
2122
+ Sequence exported to disk successfully!
2123
+
2124
+ **Filename:** `{{filename}}`
2125
+ **Location:** `.cdp-tools/sequences/`
2126
+
2127
+ ---
2128
+
2129
+ ## LOAD_FAILED
2130
+
2131
+ **Type:** error
2132
+ **Code:** LOAD_FAILED
2133
+
2134
+ Failed to load sequence from disk.
2135
+
2136
+ **Filename:** `{{filename}}`
2137
+ **Error:** {{error}}
2138
+
2139
+ **Suggestions:**
2140
+ - Verify the filename is correct
2141
+ - Check that the file exists in `.cdp-tools/sequences/`
2142
+ - Use `replay({ action: 'listSaved' })` to see available files
2143
+
2144
+ ---
2145
+
2146
+ ## SEQUENCE_LOADED_FROM_DISK
2147
+
2148
+ **Type:** success
2149
+
2150
+ Sequence loaded.
2151
+
2152
+ **Sequence ID:** `{{sequenceId}}`
2153
+ **Name:** {{name}}
2154
+ **Commands:** {{commandCount}}
2155
+
2156
+ ---
2157
+
2158
+ ## SEQUENCE_LOADED_INTO_HISTORY
2159
+
2160
+ **Type:** success
2161
+
2162
+ Loaded {{commandCount}} commands from "{{name}}" into history.
2163
+
2164
+ Use `replay({ action: 'history' })` to view commands.
2165
+
2166
+ ---
2167
+
2168
+ ## SAVED_SEQUENCE_DELETED
2169
+
2170
+ **Type:** success
2171
+
2172
+ Sequence file "{{filename}}" deleted successfully.
2173
+
2174
+ ---
2175
+
2176
+ ## EXPORT_SUCCESS
2177
+
2178
+ **Type:** success
2179
+ **Summary:** Exported
2180
+
2181
+ Test: `{{testFile}}`
2182
+ {{#sequenceFile}}Sequence: `{{sequenceFile}}`{{/sequenceFile}}
2183
+ Format: {{format}}
2184
+
2185
+ ---
2186
+
2187
+ ## EXPORT_SEQUENCE_SUCCESS
2188
+
2189
+ **Type:** success
2190
+ **Summary:** Sequence exported
2191
+
2192
+ `{{filename}}` ({{location}})
2193
+
2194
+ ---
2195
+
2196
+ ## EXPORT_CONFLICT
2197
+
2198
+ **Type:** warning
2199
+ **Summary:** File exists
2200
+
2201
+ `{{filepath}}` exists. Use `overwrite: true` or rename sequence.
2202
+
2203
+ ---
2204
+
2205
+ ## EXPORT_FAILED
2206
+
2207
+ **Type:** error
2208
+ **Code:** EXPORT_FAILED
2209
+
2210
+ {{message}}
2211
+
2212
+ ---
2213
+
2214
+ ## RECORDING_STOPPED
2215
+
2216
+ **Type:** success
2217
+ **Summary:** Sequence created
2218
+
2219
+ {{name}} ({{sequenceId}})
2220
+ {{duration}}s, {{commandCount}} commands, {{startUrl}}
2221
+ clicks:{{clicks}}, drags:{{drags}}, scrolls:{{scrolls}}, keys:{{keyPresses}}{{#navigations}}, nav:{{navigations}}{{/navigations}}{{#comments}}, comments:{{comments}}{{/comments}}
2222
+ {{#coordinateClicks}}
2223
+ ⚠️ {{coverageNote}}
2224
+ {{/coordinateClicks}}
2225
+ {{#timeline}}
2226
+ Timeline: {{timeline}}
2227
+ {{/timeline}}
2228
+ {{#bugCount}}
2229
+ 🐛 **{{bugCount}} bug(s) recorded** - Use `issues({ action: 'list' })` to view
2230
+ {{/bugCount}}
2231
+ {{#featureCount}}
2232
+ ✨ **{{featureCount}} feature(s) requested** - Use `issues({ action: 'list' })` to view
2233
+ {{/featureCount}}
2234
+ {{#hasIssues}}
2235
+ **Issues created:** {{issuesCreatedList}}
2236
+ {{/hasIssues}}
2237
+ {{^hasIssues}}
2238
+ Next: `get/run/export({ name: "{{name}}" })`
2239
+ {{/hasIssues}}
2240
+
2241
+ ---
2242
+
2243
+ ## RECORDING_NAME_CONFLICT
2244
+
2245
+ **Type:** warning
2246
+ **Summary:** Name exists
2247
+
2248
+ "{{sequenceName}}" exists. Use `name: "new-name"` or `overwrite: true`.
2249
+
2250
+ ---
2251
+
2252
+ ## BUGS_BLOCKING
2253
+
2254
+ **Type:** error
2255
+ **Code:** BUGS_BLOCKING
2256
+
2257
+ **BLOCKED: Bugs require acknowledgment**
2258
+
2259
+ The following bugs were recorded and must be acknowledged before tools can be used:
2260
+
2261
+ {{bugList}}
2262
+
2263
+ Use `issues({ action: 'acknowledge' })` to acknowledge.
2264
+
2265
+ ---
2266
+
2267
+ ## Issues Messages
2268
+
2269
+ ## ISSUES_LIST
2270
+
2271
+ **Type:** success
2272
+ **Summary:** Issues list
2273
+
2274
+ {{issuesList}}
2275
+
2276
+ {{count}} issues: {{bugCount}} bugs, {{featureCount}} features{{#pendingCount}}, {{pendingCount}} pending{{/pendingCount}}
2277
+
2278
+ ---
2279
+
2280
+ ## ISSUES_CREATED
2281
+
2282
+ **Type:** success
2283
+ **Summary:** Issue created
2284
+
2285
+ **Issue #{{id}} created** ({{type}})
2286
+
2287
+ {{title}}{{#sequenceFile}}
2288
+
2289
+ Sequence: `{{sequenceFile}}`{{/sequenceFile}}
2290
+
2291
+ ---
2292
+
2293
+ ## ISSUES_NOT_FOUND
2294
+
2295
+ **Type:** error
2296
+ **Code:** ISSUES_NOT_FOUND
2297
+
2298
+ Issue #{{id}} not found
2299
+
2300
+ {{message}}
2301
+
2302
+ ---
2303
+
2304
+ ## ISSUES_MISSING_ID
2305
+
2306
+ **Type:** error
2307
+ **Code:** ISSUES_MISSING_ID
2308
+
2309
+ {{message}}
2310
+
2311
+ ---
2312
+
2313
+ ## ISSUES_RESOLVE_TIMEOUT
2314
+
2315
+ **Type:** error
2316
+ **Code:** ISSUES_RESOLVE_TIMEOUT
2317
+
2318
+ Timed out after {{timeoutSeconds}}s waiting for a human to respond to the verification overlay for issue #{{id}}.
2319
+
2320
+ **Suggestions:**
2321
+ - Nobody answered the "ready to begin?" / "is this fixed?" prompt in the browser tab - make sure a person is available to click through it
2322
+ - If you are an agent: only a human clicking the overlay can close an issue, so do not retry `resolve` unattended - record what you found with `comment` and ask the user to run `resolve` themselves
2323
+ - Use `issues({ action: 'comment', id: {{id}}, text: '...' })` in the meantime to record findings without blocking
2324
+ - Run `issues({ action: 'resolve', id: {{id}} })` again once a human is ready to verify
2325
+
2326
+ **Note:** No state was changed - the issue is exactly as it was before this call.
2327
+
2328
+ ---
2329
+
2330
+ ## ISSUES_MISSING_TYPE
2331
+
2332
+ **Type:** error
2333
+ **Code:** ISSUES_MISSING_TYPE
2334
+
2335
+ {{message}}
2336
+
2337
+ ---
2338
+
2339
+ ## ISSUES_MISSING_TITLE
2340
+
2341
+ **Type:** error
2342
+ **Code:** ISSUES_MISSING_TITLE
2343
+
2344
+ {{message}}
2345
+
2346
+ ---
2347
+
2348
+ ## ISSUES_MISSING_TEXT
2349
+
2350
+ **Type:** error
2351
+ **Code:** ISSUES_MISSING_TEXT
2352
+
2353
+ {{message}}
2354
+
2355
+ ---
2356
+
2357
+ ## ISSUES_MISSING_START_URL
2358
+
2359
+ **Type:** error
2360
+ **Code:** ISSUES_MISSING_START_URL
2361
+
2362
+ {{message}}
2363
+
2364
+ ---
2365
+
2366
+ ## ISSUES_WORK_STARTED
2367
+
2368
+ **Type:** success
2369
+ **Summary:** Working on issue #{{id}}
2370
+
2371
+ {{details}}{{#replayStarted}}
2372
+ Sequence replay completed.{{/replayStarted}}{{#browserLaunched}}
2373
+ Browser launched and navigated to start URL.{{/browserLaunched}}{{#recordingStarted}}
2374
+ Recording started. Reproduce the issue, then stop the recording.{{/recordingStarted}}{{#connectionReason}}
2375
+
2376
+ Connection: `{{connectionReason}}`{{/connectionReason}}
2377
+
2378
+ ---
2379
+
2380
+ ## ISSUES_WORK_CANCELLED
2381
+
2382
+ **Type:** info
2383
+ **Summary:** Work session cancelled for #{{id}}
2384
+
2385
+ Work session cancelled for {{type}} #{{id}}.
2386
+
2387
+ {{title}}
2388
+
2389
+ ---
2390
+
2391
+ ## ISSUES_VERIFICATION_CANCELLED
2392
+
2393
+ **Type:** info
2394
+ **Summary:** Verification cancelled for #{{id}}
2395
+
2396
+ Verification cancelled for {{type}} #{{id}}.
2397
+
2398
+ {{title}}
2399
+
2400
+ ---
2401
+
2402
+ ## ISSUES_RESOLVED
2403
+
2404
+ **Type:** success
2405
+ **Summary:** Issue #{{id}} {{status}}
2406
+
2407
+ **{{type}} #{{id}} marked as {{status}}**
2408
+
2409
+ {{title}}
2410
+ {{#userComment}}
2411
+
2412
+ **User comment:** {{userComment}}
2413
+ {{/userComment}}
2414
+ {{#replayDetails}}
2415
+
2416
+ **Replay execution details:**
2417
+ {{replayDetails}}
2418
+ {{/replayDetails}}
2419
+
2420
+ ---
2421
+
2422
+ ## ISSUES_NOT_RESOLVED
2423
+
2424
+ **Type:** warning
2425
+ **Summary:** Issue #{{id}} not resolved
2426
+
2427
+ **{{type}} #{{id}} - NOT RESOLVED**
2428
+
2429
+ User indicated this issue is not yet resolved. Status remains: {{status}}
2430
+
2431
+ {{title}}
2432
+ {{#userComment}}
2433
+
2434
+ **User comment:** {{userComment}}
2435
+ {{/userComment}}
2436
+ {{#replayDetails}}
2437
+
2438
+ **Replay execution details:**
2439
+ {{replayDetails}}
2440
+ {{/replayDetails}}
2441
+
2442
+ ---
2443
+
2444
+ ## ISSUES_REPLAY_FAILED
2445
+
2446
+ **Type:** error
2447
+ **Code:** ISSUES_REPLAY_FAILED
2448
+ **Summary:** {{type}} #{{id}} replay failed
2449
+
2450
+ {{replayDetails}}
2451
+
2452
+ ---
2453
+
2454
+ ## ISSUES_MISSING_CONNECTION
2455
+
2456
+ **Type:** error
2457
+ **Code:** ISSUES_MISSING_CONNECTION
2458
+
2459
+ {{message}}
2460
+
2461
+ ---
2462
+
2463
+ ## ISSUES_NO_PAGE_ACCESS
2464
+
2465
+ **Type:** error
2466
+ **Code:** ISSUES_NO_PAGE_ACCESS
2467
+
2468
+ {{message}}
2469
+
2470
+ ---
2471
+
2472
+ ## ISSUES_PAGE_ERROR
2473
+
2474
+ **Type:** error
2475
+ **Code:** ISSUES_PAGE_ERROR
2476
+
2477
+ {{message}}
2478
+
2479
+ ---
2480
+
2481
+ ## ISSUES_CHROME_LAUNCH_FAILED
2482
+
2483
+ **Type:** error
2484
+ **Code:** ISSUES_CHROME_LAUNCH_FAILED
2485
+
2486
+ {{message}}
2487
+
2488
+ ---
2489
+
2490
+ ## ISSUES_INVALID_CONNECTION
2491
+
2492
+ **Type:** error
2493
+ **Code:** ISSUES_INVALID_CONNECTION
2494
+
2495
+ {{message}}
2496
+
2497
+ ---
2498
+
2499
+ ## ISSUES_ACKNOWLEDGED
2500
+
2501
+ **Type:** success
2502
+ **Summary:** Bugs acknowledged ({{count}})
2503
+
2504
+ **Bugs acknowledged** ({{count}})
2505
+
2506
+ The following bugs have been acknowledged and must be added to your TODO list:
2507
+
2508
+ {{bugList}}
2509
+
2510
+ **IMPORTANT**: Start a non-blocking agent to investigate each bug immediately.
2511
+ The agent should analyze the issue, report findings, and propose a fix - but NOT make changes.
2512
+ Add each bug to your TODO list and track investigation progress.
2513
+
2514
+ ---
2515
+
2516
+ ## ISSUES_NONE_PENDING
2517
+
2518
+ **Type:** success
2519
+ **Summary:** No pending bugs
2520
+
2521
+ {{message}}
2522
+
2523
+ ---
2524
+
2525
+ ## ISSUES_INVALID_ACTION
2526
+
2527
+ **Type:** error
2528
+ **Code:** ISSUES_INVALID_ACTION
2529
+
2530
+ Unknown action: {{action}}
2531
+
2532
+ {{message}}
2533
+
2534
+ ---
2535
+
2536
+ ## ISSUES_SEQUENCE_NOT_FOUND
2537
+
2538
+ **Type:** error
2539
+ **Code:** ISSUES_SEQUENCE_NOT_FOUND
2540
+
2541
+ Sequence "{{sequenceName}}" not found
2542
+
2543
+ {{message}}
2544
+
2545
+ ---
2546
+
2547
+ ## ISSUES_SEQUENCE_COPY_FAILED
2548
+
2549
+ **Type:** error
2550
+ **Code:** ISSUES_SEQUENCE_COPY_FAILED
2551
+
2552
+ Failed to copy sequence "{{sequenceName}}"
2553
+
2554
+ {{error}}
2555
+
2556
+ ---
2557
+
2558
+ ## ISSUES_SEQUENCE_RERECORDED
2559
+
2560
+ **Type:** success
2561
+ **Summary:** New sequence recorded for {{type}} #{{id}}
2562
+
2563
+ {{recordingDetails}}
2564
+
2565
+ **ACTION REQUIRED:** The sequence has been updated. Run `issues({ action: 'resolve', id: {{id}} })` again to verify the fix with the new sequence.
2566
+
2567
+ ---
2568
+
2569
+ ## ISSUES_COMMENT_ADDED
2570
+
2571
+ **Type:** success
2572
+ **Summary:** Comment added to {{type}} #{{id}}
2573
+
2574
+ **Comment added to {{type}} #{{id}}** - {{title}}
2575
+
2576
+ **Comments ({{commentCount}}):**
2577
+ {{timeline}}
2578
+
2579
+ ---
2580
+
2581
+ ## MISSING_CONNECTION
2582
+
2583
+ **Type:** error
2584
+ **Code:** MISSING_CONNECTION
2585
+
2586
+ {{message}}
2587
+
2588
+ **Tools needing connection:** {{toolsNeedingConnection}}
2589
+
2590
+ {{suggestion}}
2591
+
2592
+ ---
2593
+
2594
+ ## MISSING_PARAMETER
2595
+
2596
+ **Type:** error
2597
+ **Code:** MISSING_PARAMETER
2598
+
2599
+ Missing required parameter: {{missing}}
2600
+
2601
+ **Action:** {{action}}
2602
+ **Message:** {{message}}
2603
+
2604
+ ---
2605
+
2606
+ ## INVALID_PARAMETER
2607
+
2608
+ **Type:** error
2609
+ **Code:** INVALID_PARAMETER
2610
+
2611
+ {{message}}
2612
+
2613
+ {{#parameter}}**Parameter:** {{parameter}}{{#value}} = `{{value}}`{{/value}}{{/parameter}}
2614
+
2615
+ ---
2616
+
2617
+ ## Server Messages
2618
+
2619
+ ## SERVER_START_SUCCESS
2620
+
2621
+ **Type:** success
2622
+ **Summary:** Server started and ready
2623
+
2624
+ {{id}} (PID: {{pid}}){{#port}}, Port: {{port}}{{/port}}{{#autoRun}}, Auto-run: enabled{{/autoRun}}
2625
+
2626
+ Logs: server({ action: "logs", serverId: "{{id}}" }){{autoRestartWarning}}
2627
+
2628
+ ---
2629
+
2630
+ ## SERVER_START_PENDING
2631
+
2632
+ **Type:** success
2633
+ **Summary:** Server starting (waiting for port)
2634
+
2635
+ {{id}} (PID: {{pid}}){{#autoRun}}, Auto-run: enabled{{/autoRun}}
2636
+ **Status:** Waiting for port detection
2637
+
2638
+ The server process started but hasn't reported its port yet.
2639
+ - Check logs: `server({ action: 'logs', serverId: '{{id}}' })`
2640
+ - Port detection continues in background (30s timeout)
2641
+ - If port not detected, tools will be blocked until acknowledged{{autoRestartWarning}}
2642
+
2643
+ ---
2644
+
2645
+ ## SERVER_STOP_SUCCESS
2646
+
2647
+ **Type:** success
2648
+
2649
+ Server `{{serverId}}` stopped.
2650
+
2651
+ ---
2652
+
2653
+ ## SERVER_RESTART_SUCCESS
2654
+
2655
+ **Type:** success
2656
+ **Summary:** Server restarted and ready
2657
+
2658
+ {{id}} (PID: {{pid}}){{#port}}, Port: {{port}}{{/port}}{{#autoRun}}, Auto-run: enabled{{/autoRun}}
2659
+
2660
+ ---
2661
+
2662
+ ## SERVER_LIST_SUCCESS
2663
+
2664
+ **Type:** success
2665
+
2666
+ {{count}} server(s) ({{runningCount}} running, {{stoppedCount}} stopped)
2667
+
2668
+ {{serverList}}
2669
+
2670
+ **Actions:**
2671
+ - Stop: `server({ action: "stop", serverId: "<id>" })`
2672
+ - Restart: `server({ action: "restart", serverId: "<id>" })`
2673
+ - Logs: `server({ action: "logs", serverId: "<id>" })`
2674
+
2675
+ ---
2676
+
2677
+ ## SERVER_LIST_EMPTY
2678
+
2679
+ **Type:** success
2680
+
2681
+ No servers running.
2682
+
2683
+ Use `server({ action: "start", command: "<cmd>", cwd: "<dir>", id: "<name>" })` to start a server.
2684
+
2685
+ ---
2686
+
2687
+ ## SERVER_LOGS_FILE
2688
+
2689
+ **Type:** success
2690
+
2691
+ Logs for {{serverId}}
2692
+
2693
+ {{#running}}Running{{/running}}{{^running}}Stopped{{/running}}{{#autoRun}} (auto-run){{/autoRun}}
2694
+ {{#port}}Port: {{port}}{{/port}}
2695
+ {{#uptime}}Uptime: {{uptime}}{{/uptime}}
2696
+
2697
+ stdout: {{stdoutPath}}
2698
+ stderr: {{stderrPath}}
2699
+
2700
+ ---
2701
+
2702
+ ## SERVER_LOGS_COMMAND
2703
+
2704
+ **Type:** success
2705
+
2706
+ Logs for {{serverId}}
2707
+
2708
+ {{#running}}Running{{/running}}{{^running}}Stopped{{/running}}{{#autoRun}} (auto-run){{/autoRun}}
2709
+ {{#port}}Port: {{port}}{{/port}}
2710
+ {{#uptime}}Uptime: {{uptime}}{{/uptime}}
2711
+
2712
+ View logs: {{command}}
2713
+
2714
+ ---
2715
+
2716
+ ## SERVER_LOGS_UNAVAILABLE
2717
+
2718
+ **Type:** error
2719
+
2720
+ Log access not available for server {{serverId}}.
2721
+
2722
+ ---
2723
+
2724
+ ## SERVER_STOP_ALL_SUCCESS
2725
+
2726
+ **Type:** success
2727
+
2728
+ Stopped {{count}} server(s): {{serverIds}}
2729
+
2730
+ ---
2731
+
2732
+ ## SERVER_STOP_ALL_EMPTY
2733
+
2734
+ **Type:** success
2735
+
2736
+ No servers were running.
2737
+
2738
+ ---
2739
+
2740
+ ## SERVER_AUTORUN_ENABLED
2741
+
2742
+ **Type:** success
2743
+
2744
+ Auto-run enabled for `{{serverId}}`.
2745
+
2746
+ Server will automatically start when MCP server starts.
2747
+
2748
+ ---
2749
+
2750
+ ## SERVER_AUTORUN_DISABLED
2751
+
2752
+ **Type:** success
2753
+
2754
+ Auto-run disabled for `{{serverId}}`.
2755
+
2756
+ Server will not auto-start when MCP server starts.
2757
+
2758
+ ---
2759
+
2760
+ ## SERVER_NOT_FOUND
2761
+
2762
+ **Type:** error
2763
+ **Code:** SERVER_NOT_FOUND
2764
+
2765
+ Server `{{serverId}}` not found.
2766
+
2767
+ **Suggestions:**
2768
+ - Use `server({ action: "list" })` to see running servers
2769
+ - Check the server ID you provided when starting the server
2770
+
2771
+ ---
2772
+
2773
+ ## SERVER_ALREADY_RUNNING
2774
+
2775
+ **Type:** error
2776
+ **Code:** SERVER_ALREADY_RUNNING
2777
+
2778
+ Server `{{serverId}}` is already running (PID: {{pid}}).
2779
+
2780
+ **Suggestions:**
2781
+ - Use `server({ action: "stop", serverId: "{{serverId}}" })` to stop it first
2782
+ - Use `server({ action: "restart", serverId: "{{serverId}}" })` to restart it
2783
+
2784
+ ---
2785
+
2786
+ ## SERVER_START_FAILED
2787
+
2788
+ **Type:** error
2789
+ **Code:** SERVER_START_FAILED
2790
+
2791
+ Failed to start server: {{error}}
2792
+
2793
+ ---
2794
+
2795
+ ## SERVER_MISSING_COMMAND
2796
+
2797
+ **Type:** error
2798
+ **Code:** MISSING_PARAMETER
2799
+
2800
+ Missing required parameter: `command`
2801
+
2802
+ Provide the command to run (e.g., "npm run dev", "flask run", "python manage.py runserver").
2803
+
2804
+ ---
2805
+
2806
+ ## SERVER_MISSING_CWD
2807
+
2808
+ **Type:** error
2809
+ **Code:** MISSING_PARAMETER
2810
+
2811
+ Missing required parameter: `cwd`
2812
+
2813
+ Provide the working directory for the server command.
2814
+
2815
+ ---
2816
+
2817
+ ## SERVER_MISSING_ID
2818
+
2819
+ **Type:** error
2820
+ **Code:** MISSING_PARAMETER
2821
+
2822
+ Missing required parameter: `id`
2823
+
2824
+ Provide a unique identifier for this server (e.g., "flask-api", "next-frontend").
2825
+
2826
+ ---
2827
+
2828
+ ## SERVER_MISSING_SERVER_ID
2829
+
2830
+ **Type:** error
2831
+ **Code:** MISSING_PARAMETER
2832
+
2833
+ Missing required parameter: `serverId`
2834
+
2835
+ Use `server({ action: "list" })` to see running servers.
2836
+
2837
+ ---
2838
+
2839
+ ## SERVER_MISSING_AUTORUN
2840
+
2841
+ **Type:** error
2842
+ **Code:** MISSING_PARAMETER
2843
+
2844
+ Missing required parameter: `autoRun`
2845
+
2846
+ Set to `true` to enable auto-start on MCP startup, or `false` to disable.
2847
+
2848
+ ---
2849
+
2850
+ ## SERVER_LOGS_CLEARED
2851
+
2852
+ **Type:** success
2853
+
2854
+ Logs cleared for `{{serverId}}`.
2855
+
2856
+ **Log directory:** `{{logDir}}`
2857
+
2858
+ ---
2859
+
2860
+ ## SERVER_REMOVED
2861
+
2862
+ **Type:** success
2863
+
2864
+ Server `{{serverId}}` removed from config.
2865
+
2866
+ ---
2867
+
2868
+ ## PENDING_RESTART_CANCELLED
2869
+
2870
+ **Type:** success
2871
+ **Summary:** Watch-mode restart cancelled
2872
+
2873
+ Discarded the queued watch-mode restart for `{{serverId}}`. The server keeps running its current (paused) process - debug as usual.
2874
+
2875
+ **Note:** A later file change will queue a new restart the same way.
2876
+
2877
+ ---
2878
+
2879
+ ## PENDING_RESTART_NOT_FOUND
2880
+
2881
+ **Type:** error
2882
+ **Code:** PENDING_RESTART_NOT_FOUND
2883
+
2884
+ No watch-mode restart is queued for `{{serverId}}`.
2885
+
2886
+ **Suggestions:**
2887
+ - Use `server({ action: "list" })` to check whether watch mode is enabled for this server
2888
+ - This clears itself once the queued restart runs, so there may simply be nothing to cancel
2889
+
2890
+ ---
2891
+
2892
+ ## Port Monitoring Messages
2893
+
2894
+ ## PORT_MONITOR_STARTED
2895
+
2896
+ **Type:** success
2897
+ **Summary:** Port monitoring started
2898
+
2899
+ Now monitoring port {{port}} at level `{{level}}`{{#description}} ({{description}}){{/description}}{{#interval}} with custom interval {{interval}}ms{{/interval}}.
2900
+
2901
+ The port will be checked via TCP connection probes. If the port goes down, tool responses will be affected based on the monitoring level:
2902
+ - `inform`: Info line prepended to responses
2903
+ - `error`: Error line prepended to responses
2904
+ - `block`: All tools blocked until acknowledged
2905
+
2906
+ **Default intervals:** block=1000ms, error=2000ms, inform=5000ms (configurable in `.cdp-tools/config.json`)
2907
+
2908
+ ---
2909
+
2910
+ ## PORT_MONITOR_STOPPED
2911
+
2912
+ **Type:** success
2913
+ **Summary:** Port monitoring stopped
2914
+
2915
+ Stopped monitoring port {{port}}.
2916
+
2917
+ ---
2918
+
2919
+ ## PORT_MONITOR_LIST
2920
+
2921
+ **Type:** list
2922
+ **Summary:** {{count}} monitored port(s)
2923
+
2924
+ **Up:** {{upCount}} | **Down:** {{downCount}} | **Connecting:** {{connectingCount}}
2925
+
2926
+ {{portList}}
2927
+
2928
+ ---
2929
+
2930
+ ## PORT_MONITOR_LIST_EMPTY
2931
+
2932
+ **Type:** success
2933
+
2934
+ No ports are currently being monitored.
2935
+
2936
+ Use `server({ action: 'monitorPort', port: <port>, monitoringLevel: 'inform'|'error'|'block' })` to start monitoring.
2937
+
2938
+ ---
2939
+
2940
+ ## PORT_ACKNOWLEDGED
2941
+
2942
+ **Type:** success
2943
+ **Summary:** Port failure acknowledged
2944
+
2945
+ Acknowledged failure for port {{port}}. Tool execution will now continue.
2946
+
2947
+ **Note:** The port is still being monitored. If it comes back up and fails again, you will need to acknowledge again.
2948
+
2949
+ ---
2950
+
2951
+ ## PORT_MISSING_PORT
2952
+
2953
+ **Type:** error
2954
+ **Code:** MISSING_PORT
2955
+
2956
+ Port number is required.
2957
+
2958
+ **Example:**
2959
+ ```
2960
+ server({ action: 'monitorPort', port: 3000, monitoringLevel: 'error' })
2961
+ ```
2962
+
2963
+ ---
2964
+
2965
+ ## PORT_MISSING_LEVEL
2966
+
2967
+ **Type:** error
2968
+ **Code:** MISSING_LEVEL
2969
+
2970
+ Monitoring level is required. Choose one of: `inform`, `error`, or `block`.
2971
+
2972
+ - `inform`: Info line prepended to tool responses when port is down
2973
+ - `error`: Error line prepended to tool responses when port is down
2974
+ - `block`: All tools blocked until failure is acknowledged
2975
+
2976
+ **Example:**
2977
+ ```
2978
+ server({ action: 'monitorPort', port: 3000, monitoringLevel: 'block' })
2979
+ ```
2980
+
2981
+ ---
2982
+
2983
+ ## PORT_NOT_MONITORED
2984
+
2985
+ **Type:** error
2986
+ **Code:** NOT_MONITORED
2987
+
2988
+ Port {{port}} is not being monitored.
2989
+
2990
+ Use `server({ action: 'listMonitored' })` to see all monitored ports.
2991
+
2992
+ ---
2993
+
2994
+ ## PORT_ACK_FAILED
2995
+
2996
+ **Type:** error
2997
+ **Code:** ACK_FAILED
2998
+
2999
+ Cannot acknowledge port {{port}}. Either the port is not being monitored, or it is not currently in a failed state.
3000
+
3001
+ Use `server({ action: 'listMonitored' })` to check the current status of monitored ports.
3002
+
3003
+ ---
3004
+
3005
+ ## Startup Timeout Messages
3006
+
3007
+ ## STARTUP_ACKNOWLEDGED
3008
+
3009
+ **Type:** success
3010
+ **Summary:** Startup timeout acknowledged
3011
+
3012
+ Acknowledged startup timeout for server "{{serverId}}". Tool execution will now continue.
3013
+
3014
+ **Note:** The server is still running but port detection has stopped. If you know the port, you can manually monitor it with `server({ action: 'monitorPort', port: <port> })`.
3015
+
3016
+ ---
3017
+
3018
+ ## STARTUP_ACKNOWLEDGED_DIED
3019
+
3020
+ **Type:** success
3021
+ **Summary:** Server failure acknowledged
3022
+
3023
+ Acknowledged that server "{{serverId}}" died during startup. Tool execution will now continue.
3024
+
3025
+ Check logs with `server({ action: 'logs', serverId: '{{serverId}}' })` to investigate the failure, then restart with `server({ action: 'restart', serverId: '{{serverId}}' })`.
3026
+
3027
+ ---
3028
+
3029
+ ## STARTUP_ACK_FAILED
3030
+
3031
+ **Type:** error
3032
+ **Code:** ACK_FAILED
3033
+
3034
+ Cannot acknowledge startup for server "{{serverId}}". {{error}}
3035
+
3036
+ Use `server({ action: 'list' })` to see running servers.
3037
+
3038
+ ---
3039
+
3040
+ ## STARTUP_EXTENDED
3041
+
3042
+ **Type:** success
3043
+ **Summary:** Startup timeout extended
3044
+
3045
+ Extended startup timeout for server "{{serverId}}" by {{timeout}}. Port detection has resumed.
3046
+
3047
+ Use `server({ action: 'logs', serverId: '{{serverId}}' })` to check server startup progress.
3048
+
3049
+ ---
3050
+
3051
+ ## STARTUP_EXTEND_FAILED
3052
+
3053
+ **Type:** error
3054
+ **Code:** EXTEND_FAILED
3055
+
3056
+ Cannot extend startup timeout for server "{{serverId}}". {{error}}
3057
+
3058
+ If the server died, use `server({ action: 'restart', serverId: '{{serverId}}' })` to restart it.
3059
+
3060
+ ---
3061
+
3062
+ ## Config Messages
3063
+
3064
+ ## CONFIG_PROFILE_LIST
3065
+
3066
+ **Type:** list
3067
+ **Summary:** Persistent Chrome profiles
3068
+
3069
+ Root: {{root}}
3070
+ Profiles ({{count}}): {{profiles}}
3071
+
3072
+ **Note:** Use `launchChrome({ profile: "<name>" })` to launch one, or `config({ action: "resetProfile", profile: "<name>" })` to wipe it.
3073
+
3074
+ ---
3075
+
3076
+ ## CONFIG_PROFILE_NAME_REQUIRED
3077
+
3078
+ **Type:** error
3079
+ **Summary:** Profile name required
3080
+
3081
+ `resetProfile` needs the `profile` parameter.
3082
+
3083
+ **Example:**
3084
+ ```
3085
+ config({ action: "resetProfile", profile: "device-a" })
3086
+ ```
3087
+
3088
+ ---
3089
+
3090
+ ## CONFIG_PROFILE_RESET_SUCCESS
3091
+
3092
+ **Type:** success
3093
+ **Summary:** Profile reset
3094
+
3095
+ Profile "{{profile}}" is now empty.{{#existed}}
3096
+
3097
+ Its previous contents (cookies, localStorage, IndexedDB, saved sessions) were deleted.{{/existed}}
3098
+
3099
+ Location: {{path}}
3100
+
3101
+ ---
3102
+
3103
+ ## CONFIG_PROFILE_RESET_IN_USE
3104
+
3105
+ **Type:** error
3106
+ **Summary:** Profile is in use
3107
+
3108
+ Cannot reset profile "{{profile}}" - the Chrome on port {{port}} is still using it.
3109
+
3110
+ Wiping a user-data-dir under a running Chrome corrupts it, and the deletion is partly undone when Chrome flushes state on exit.
3111
+
3112
+ **Suggestions:**
3113
+ - Stop it first: `killChrome({ port: {{port}}, reason: "resetting profile {{profile}}" })`
3114
+ - Then retry: `config({ action: "resetProfile", profile: "{{profile}}" })`
3115
+
3116
+ ---
3117
+
3118
+ ## CONFIG_PROFILE_RESET_FAILED
3119
+
3120
+ **Type:** error
3121
+ **Summary:** Profile reset failed
3122
+
3123
+ Could not reset profile "{{profile}}": {{error}}
3124
+
3125
+ ---
3126
+
3127
+ ## CONFIG_PROFILES_UNAVAILABLE
3128
+
3129
+ **Type:** error
3130
+ **Summary:** Profile management unavailable
3131
+
3132
+ Persistent Chrome profiles are not available - the config tool was created without a Chrome launcher.
3133
+
3134
+ ---
3135
+
3136
+ ## CONFIG_STATUS
3137
+
3138
+ **Type:** info
3139
+ **Summary:** Config status
3140
+
3141
+ **Loaded from:** {{loadedFrom}}
3142
+ **Location:** {{location}}
3143
+
3144
+ | Path | Exists |
3145
+ |------|--------|
3146
+ | Local: {{localPath}} | {{localExists}} |
3147
+ | Global: {{globalPath}} | {{globalExists}} |
3148
+
3149
+ **Server:** v{{version}} (pid {{serverPid}}, supervisor {{supervisorPid}})
3150
+ **Running:** {{entryPath}}
3151
+ **Built:** {{buildMtime}}
3152
+
3153
+ After a rebuild, a `Built` timestamp older than the build means this server
3154
+ never reloaded - the rebuild signalled a supervisor that is not the one serving
3155
+ you, and everything you are observing is the previous code.
3156
+
3157
+ ---
3158
+
3159
+ ## CONFIG_USE_LOCAL_SUCCESS
3160
+
3161
+ **Type:** success
3162
+ **Summary:** Switched to local config
3163
+
3164
+ Now using local config at {{path}}.{{#seeded}}
3165
+
3166
+ Config was seeded from global settings.{{/seeded}}
3167
+
3168
+ ---
3169
+
3170
+ ## CONFIG_USE_GLOBAL_SUCCESS
3171
+
3172
+ **Type:** success
3173
+ **Summary:** Switched to global config
3174
+
3175
+ Now using global config at {{path}}.
3176
+
3177
+ ---
3178
+
3179
+ ## CONFIG_RESET_SUCCESS
3180
+
3181
+ **Type:** success
3182
+ **Summary:** Config reset to defaults
3183
+
3184
+ Configuration has been reset to defaults and saved.
3185
+
3186
+ ---
3187
+
3188
+ ## CONFIG_BACKUP_SUCCESS
3189
+
3190
+ **Type:** success
3191
+ **Summary:** Config backed up
3192
+
3193
+ Backup created at {{path}}.
3194
+
3195
+ ---
3196
+
3197
+ ## CONFIG_BACKUP_FAILED
3198
+
3199
+ **Type:** error
3200
+ **Code:** BACKUP_FAILED
3201
+
3202
+ No config file to backup. Load a config first.
3203
+
3204
+ ---
3205
+
3206
+ ## CONFIG_CLONE_SUCCESS
3207
+
3208
+ **Type:** success
3209
+ **Summary:** Cloned global config to local
3210
+
3211
+ Created local config at {{path}} from global settings.
3212
+
3213
+ ---
3214
+
3215
+ ## CONFIG_CLONE_NO_GLOBAL
3216
+
3217
+ **Type:** error
3218
+ **Code:** NO_GLOBAL_CONFIG
3219
+
3220
+ No global config exists to clone from.
3221
+
3222
+ ---
3223
+
3224
+ ## CONFIG_SHOW
3225
+
3226
+ **Type:** info
3227
+ **Summary:** Current configuration
3228
+
3229
+ ```json
3230
+ {{config}}
3231
+ ```
3232
+
3233
+ ---
3234
+
3235
+ ## CONFIG_RELOAD
3236
+
3237
+ **Type:** success
3238
+ **Summary:** Config reloaded
3239
+
3240
+ {{#changed}}Reloaded config from {{path}} - changes applied live.{{/changed}}{{^changed}}Reloaded config from {{path}} - no changes since last load.{{/changed}}
3241
+
3242
+ Note: `tools.enabled`/`tools.disabled` changes still require an MCP server restart to take effect - use `config({action: 'restart'})`.
3243
+
3244
+ ---
3245
+
3246
+ ## CONFIG_RESTART_REQUESTED
3247
+
3248
+ **Type:** success
3249
+ **Summary:** Restart requested
3250
+
3251
+ Sent a restart signal to the cdp-tools supervisor (PID {{pid}}). The server restarts shortly - no reconnect needed.
3252
+
3253
+ Note: any Chrome instances this session launched will be killed (call `launchChrome` again). Managed dev servers (the `server` tool) survive and reattach automatically.
3254
+
3255
+ ---
3256
+
3257
+ ## CONFIG_RESTART_NOT_SUPERVISED
3258
+
3259
+ **Type:** error
3260
+
3261
+ No mcp-supervisor pidfile found - this session isn't running through the hot-reload supervisor, so there's nothing to signal.
3262
+
3263
+ **Suggestions:**
3264
+ - Ask the user to run `/mcp` to reconnect instead
3265
+
3266
+ ---
3267
+
3268
+ ## CONFIG_RESTART_STALE_PID
3269
+
3270
+ **Type:** error
3271
+
3272
+ Found a supervisor pidfile (PID {{pid}}) but couldn't signal it: {{error}}
3273
+
3274
+ **Suggestions:**
3275
+ - The supervisor process may have died without cleaning up its pidfile - ask the user to run `/mcp` to reconnect
3276
+
3277
+ ---
3278
+
3279
+ ## TOOLS_LIST
3280
+
3281
+ **Type:** info
3282
+
3283
+ {{toolsJson}}
3284
+
3285
+ ---
3286
+
3287
+ ## TOOLS_LIST_CONFLICT
3288
+
3289
+ **Type:** error
3290
+
3291
+ Dependency conflicts detected. All tools are blocked until resolved.
3292
+
3293
+ {{#each conflicts}}
3294
+ {{this}}
3295
+ {{/each}}
3296
+
3297
+ ---
3298
+
3299
+ ## Navigation Messages
3300
+
3301
+ ## NAVIGATION_FAILED
3302
+
3303
+ **Type:** error
3304
+ **Code:** NAVIGATION_FAILED
3305
+
3306
+ Navigation failed: {{message}}
3307
+
3308
+ ---
3309
+
3310
+ ## Dashboard Messages
3311
+
3312
+ ## DASHBOARD_OPEN
3313
+
3314
+ **Type:** success
3315
+
3316
+ Dashboard available at {{url}}
3317
+
3318
+ **Session type:** {{type}}
3319
+
3320
+ ---
3321
+
3322
+ ## DASHBOARD_STATUS
3323
+
3324
+ **Type:** success
3325
+
3326
+ **Dashboard Status**
3327
+
3328
+ | Property | Value |
3329
+ |----------|-------|
3330
+ | Session ID | {{shortId}} |
3331
+ | Full ID | {{sessionId}} |
3332
+ | PID | {{pid}} |
3333
+ | Type | {{type}} |
3334
+ | Port | {{port}} |
3335
+ | URL | {{url}} |
3336
+ | Sessions | {{sessionCount}} |
3337
+
3338
+ ---
3339
+
3340
+ ## DASHBOARD_STOPPED
3341
+
3342
+ **Type:** success
3343
+
3344
+ {{message}}
3345
+
3346
+ ---
3347
+
3348
+ ## DASHBOARD_NOT_AVAILABLE
3349
+
3350
+ **Type:** error
3351
+ **Code:** DASHBOARD_NOT_AVAILABLE
3352
+
3353
+ Dashboard is not available: {{reason}}
3354
+
3355
+ ---
3356
+
3357
+ ## DASHBOARD_NOT_HUB
3358
+
3359
+ **Type:** error
3360
+ **Code:** DASHBOARD_NOT_HUB
3361
+
3362
+ {{reason}}
3363
+
3364
+ **Suggestions:**
3365
+ - The hub is running in a different session
3366
+ - Use `dashboard({ action: "status" })` to see which session is the hub
3367
+
3368
+ ---
3369
+
3370
+ ## REQUEST_SUCCESS
3371
+
3372
+ **Type:** success
3373
+ **Summary:** {{method}} {{url}} -> {{status}} {{statusText}}
3374
+
3375
+ **Destination:** {{destination}} | **OK:** {{ok}} | **Duration:** {{durationMs}}ms{{#truncated}} (body truncated){{/truncated}}
3376
+
3377
+ **Body:** {{body}}
3378
+
3379
+ ---
3380
+
3381
+ ## REQUEST_FAILED
3382
+
3383
+ **Type:** error
3384
+ **Code:** REQUEST_FAILED
3385
+
3386
+ Request to {{url}} failed ({{destination}}): {{error}}
3387
+
3388
+ **Suggestions:**
3389
+ - Check the URL is reachable and the server is running
3390
+ - destination "browser" requires an active connection (use connectionReason)
3391
+ - destination "node" cannot resolve relative URLs - use a full URL (http://localhost:PORT/path)
3392
+
3393
+ ---
3394
+
3395
+ ## ASSERT_SUCCESS
3396
+
3397
+ **Type:** success
3398
+ **Summary:** Assertion passed: {{left}} {{operator}} {{right}}
3399
+
3400
+ ---
3401
+
3402
+ ## ASSERT_FAILED
3403
+
3404
+ **Type:** error
3405
+ **Code:** ASSERT_FAILED
3406
+
3407
+ {{message}}
3408
+
3409
+ **Assertion:** {{left}} {{operator}} {{right}}
3410
+
3411
+ ---
3412
+
3413
+ ## WAIT_CONDITION_MET
3414
+
3415
+ **Type:** success
3416
+ **Summary:** Wait complete ({{elapsedMs}}ms, {{polls}} checks)
3417
+
3418
+ Condition met after {{elapsedMs}}ms ({{polls}} checks): waited for {{condition}}
3419
+
3420
+ ---
3421
+
3422
+ ## WAIT_SLEEP_COMPLETE
3423
+
3424
+ **Type:** success
3425
+ **Summary:** Slept {{ms}}ms
3426
+
3427
+ Slept {{ms}}ms. Fixed sleeps are a last resort - prefer `wait({ selector })` or `wait({ expression })`, which return as soon as the condition holds and fail loudly when it never does.
3428
+
3429
+ ---
3430
+
3431
+ ## WAIT_TIMEOUT
3432
+
3433
+ **Type:** error
3434
+ **Code:** WAIT_TIMEOUT
3435
+
3436
+ Timed out after {{timeoutMs}}ms ({{polls}} checks) waiting for {{condition}}{{lastError}}
3437
+
3438
+ **Suggestions:**
3439
+ - The condition never became true - check it is the right selector/expression for the page you are on
3440
+ - If the page is still loading or async work is slow, raise `timeoutMs`
3441
+ - Use `content({ action: 'findInteractive' })` or `screenshot` to see the current page state
3442
+
3443
+ ---
3444
+
3445
+ ## WAIT_INVALID_ARGS
3446
+
3447
+ **Type:** error
3448
+ **Code:** WAIT_INVALID_ARGS
3449
+
3450
+ {{message}}
3451
+
3452
+ **Suggestions:**
3453
+ - `wait({ selector })` - element appears, `wait({ selectorGone })` - element disappears
3454
+ - `wait({ expression })` - synchronous JS predicate polls truthy
3455
+ - `wait({ ms })` - fixed sleep (last resort)
3456
+
3457
+ ---
3458
+
3459
+ ## WAIT_DEBUGGER_PAUSED
3460
+
3461
+ **Type:** error
3462
+ **Code:** WAIT_DEBUGGER_PAUSED
3463
+
3464
+ Cannot wait for {{condition}}: the debugger on "{{connectionReason}}" is paused at a breakpoint. The page's event loop is stopped, so nothing can change and the wait would only burn its timeout.
3465
+
3466
+ **Suggestions:**
3467
+ - Resume execution first: `execution({ action: 'resume' })`
3468
+ - Or inspect the paused state instead of waiting: `inspect({ action: 'getCallStack' })`
3469
+
3470
+ ---
3471
+
3472
+ ## CONFIG_USE_LOCAL_FAILED
3473
+
3474
+ **Type:** error
3475
+ **Code:** CONFIG_USE_LOCAL_FAILED
3476
+
3477
+ Failed to switch to local config: {{error}}
3478
+
3479
+ ---
3480
+