cli-jaw 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/README.ko.md +3 -2
  2. package/README.md +41 -12
  3. package/dist/bin/_http-client.js +34 -0
  4. package/dist/bin/_http-client.js.map +1 -0
  5. package/dist/bin/cli-jaw.js +10 -5
  6. package/dist/bin/cli-jaw.js.map +1 -1
  7. package/dist/bin/commands/browser-web-ai.js +155 -38
  8. package/dist/bin/commands/browser-web-ai.js.map +1 -1
  9. package/dist/bin/commands/browser.js +265 -37
  10. package/dist/bin/commands/browser.js.map +1 -1
  11. package/dist/bin/commands/chat.js +18 -14
  12. package/dist/bin/commands/chat.js.map +1 -1
  13. package/dist/bin/commands/clone.js +3 -2
  14. package/dist/bin/commands/clone.js.map +1 -1
  15. package/dist/bin/commands/dashboard.js +22 -18
  16. package/dist/bin/commands/dashboard.js.map +1 -1
  17. package/dist/bin/commands/dispatch.js +9 -11
  18. package/dist/bin/commands/dispatch.js.map +1 -1
  19. package/dist/bin/commands/doctor.js +26 -14
  20. package/dist/bin/commands/doctor.js.map +1 -1
  21. package/dist/bin/commands/employee.js +12 -7
  22. package/dist/bin/commands/employee.js.map +1 -1
  23. package/dist/bin/commands/init.js +9 -9
  24. package/dist/bin/commands/init.js.map +1 -1
  25. package/dist/bin/commands/launchd.js +17 -7
  26. package/dist/bin/commands/launchd.js.map +1 -1
  27. package/dist/bin/commands/mcp.js +7 -4
  28. package/dist/bin/commands/mcp.js.map +1 -1
  29. package/dist/bin/commands/memory.js +7 -5
  30. package/dist/bin/commands/memory.js.map +1 -1
  31. package/dist/bin/commands/orchestrate.js +6 -3
  32. package/dist/bin/commands/orchestrate.js.map +1 -1
  33. package/dist/bin/commands/reset.js +4 -3
  34. package/dist/bin/commands/reset.js.map +1 -1
  35. package/dist/bin/commands/serve.js +3 -2
  36. package/dist/bin/commands/serve.js.map +1 -1
  37. package/dist/bin/commands/service.js +2 -2
  38. package/dist/bin/commands/service.js.map +1 -1
  39. package/dist/bin/commands/status.js +10 -9
  40. package/dist/bin/commands/status.js.map +1 -1
  41. package/dist/bin/commands/tui/api.js +26 -18
  42. package/dist/bin/commands/tui/api.js.map +1 -1
  43. package/dist/bin/commands/tui/overlays.js +3 -1
  44. package/dist/bin/commands/tui/overlays.js.map +1 -1
  45. package/dist/bin/commands/tui/simple-mode.js +1 -1
  46. package/dist/bin/commands/tui/simple-mode.js.map +1 -1
  47. package/dist/bin/commands/tui/types.js.map +1 -1
  48. package/dist/bin/postinstall.js +153 -65
  49. package/dist/bin/postinstall.js.map +1 -1
  50. package/dist/bin/star-prompt.js +4 -3
  51. package/dist/bin/star-prompt.js.map +1 -1
  52. package/dist/lib/mcp/format-converters.js +15 -10
  53. package/dist/lib/mcp/format-converters.js.map +1 -1
  54. package/dist/lib/mcp/mcp-install.js +2 -2
  55. package/dist/lib/mcp/mcp-install.js.map +1 -1
  56. package/dist/lib/mcp/skills-distribution.js +2 -2
  57. package/dist/lib/mcp/skills-distribution.js.map +1 -1
  58. package/dist/lib/mcp/skills-reset.js +5 -4
  59. package/dist/lib/mcp/skills-reset.js.map +1 -1
  60. package/dist/lib/mcp/skills-symlinks.js +9 -9
  61. package/dist/lib/mcp/skills-symlinks.js.map +1 -1
  62. package/dist/lib/mcp/skills-utils.js +5 -4
  63. package/dist/lib/mcp/skills-utils.js.map +1 -1
  64. package/dist/lib/mcp/unified-config.js +3 -2
  65. package/dist/lib/mcp/unified-config.js.map +1 -1
  66. package/dist/lib/mime-detect.js +65 -0
  67. package/dist/lib/mime-detect.js.map +1 -0
  68. package/dist/lib/quota-copilot.js +12 -10
  69. package/dist/lib/quota-copilot.js.map +1 -1
  70. package/dist/lib/stt.js +3 -3
  71. package/dist/lib/stt.js.map +1 -1
  72. package/dist/lib/upload.js +14 -5
  73. package/dist/lib/upload.js.map +1 -1
  74. package/dist/scripts/i18n-registry.js +4 -4
  75. package/dist/scripts/i18n-registry.js.map +1 -1
  76. package/dist/server.js +61 -57
  77. package/dist/server.js.map +1 -1
  78. package/dist/src/agent/alert-escalation.js +61 -0
  79. package/dist/src/agent/alert-escalation.js.map +1 -0
  80. package/dist/src/agent/args.js +71 -2
  81. package/dist/src/agent/args.js.map +1 -1
  82. package/dist/src/agent/error-classifier.js +9 -4
  83. package/dist/src/agent/error-classifier.js.map +1 -1
  84. package/dist/src/agent/events.js +130 -101
  85. package/dist/src/agent/events.js.map +1 -1
  86. package/dist/src/agent/lifecycle-handler.js +44 -19
  87. package/dist/src/agent/lifecycle-handler.js.map +1 -1
  88. package/dist/src/agent/live-run-state.js +7 -3
  89. package/dist/src/agent/live-run-state.js.map +1 -1
  90. package/dist/src/agent/memory-flush-controller.js +6 -4
  91. package/dist/src/agent/memory-flush-controller.js.map +1 -1
  92. package/dist/src/agent/opencode-diagnostics.js +7 -6
  93. package/dist/src/agent/opencode-diagnostics.js.map +1 -1
  94. package/dist/src/agent/session-persistence.js +1 -1
  95. package/dist/src/agent/session-persistence.js.map +1 -1
  96. package/dist/src/agent/spawn-env.js +33 -16
  97. package/dist/src/agent/spawn-env.js.map +1 -1
  98. package/dist/src/agent/spawn.js +176 -110
  99. package/dist/src/agent/spawn.js.map +1 -1
  100. package/dist/src/agent/watchdog.js +56 -0
  101. package/dist/src/agent/watchdog.js.map +1 -0
  102. package/dist/src/browser/actions.js +179 -70
  103. package/dist/src/browser/actions.js.map +1 -1
  104. package/dist/src/browser/connection.js +296 -19
  105. package/dist/src/browser/connection.js.map +1 -1
  106. package/dist/src/browser/index.js +4 -1
  107. package/dist/src/browser/index.js.map +1 -1
  108. package/dist/src/browser/launch-policy.js +1 -1
  109. package/dist/src/browser/launch-policy.js.map +1 -1
  110. package/dist/src/browser/primitives.js +11 -7
  111. package/dist/src/browser/primitives.js.map +1 -1
  112. package/dist/src/browser/runtime-diagnostics.js +45 -0
  113. package/dist/src/browser/runtime-diagnostics.js.map +1 -0
  114. package/dist/src/browser/runtime-orphans.js +127 -0
  115. package/dist/src/browser/runtime-orphans.js.map +1 -0
  116. package/dist/src/browser/runtime-owner-store.js +51 -0
  117. package/dist/src/browser/runtime-owner-store.js.map +1 -0
  118. package/dist/src/browser/runtime-owner.js +2 -2
  119. package/dist/src/browser/runtime-owner.js.map +1 -1
  120. package/dist/src/browser/tab-lifecycle.js +157 -0
  121. package/dist/src/browser/tab-lifecycle.js.map +1 -0
  122. package/dist/src/browser/vision.js +35 -11
  123. package/dist/src/browser/vision.js.map +1 -1
  124. package/dist/src/browser/web-ai/action-breadth.js +56 -0
  125. package/dist/src/browser/web-ai/action-breadth.js.map +1 -0
  126. package/dist/src/browser/web-ai/action-cache.js +9 -8
  127. package/dist/src/browser/web-ai/action-cache.js.map +1 -1
  128. package/dist/src/browser/web-ai/action-intent.js +64 -0
  129. package/dist/src/browser/web-ai/action-intent.js.map +1 -0
  130. package/dist/src/browser/web-ai/action-memory.js +82 -0
  131. package/dist/src/browser/web-ai/action-memory.js.map +1 -0
  132. package/dist/src/browser/web-ai/action-trace.js +11 -6
  133. package/dist/src/browser/web-ai/action-trace.js.map +1 -1
  134. package/dist/src/browser/web-ai/annotated-screenshot.js +2 -1
  135. package/dist/src/browser/web-ai/annotated-screenshot.js.map +1 -1
  136. package/dist/src/browser/web-ai/answer-artifact.js +97 -0
  137. package/dist/src/browser/web-ai/answer-artifact.js.map +1 -0
  138. package/dist/src/browser/web-ai/ax-snapshot.js +3 -2
  139. package/dist/src/browser/web-ai/ax-snapshot.js.map +1 -1
  140. package/dist/src/browser/web-ai/browser-primitives.js +10 -7
  141. package/dist/src/browser/web-ai/browser-primitives.js.map +1 -1
  142. package/dist/src/browser/web-ai/capability-registry.js +1 -1
  143. package/dist/src/browser/web-ai/capability-registry.js.map +1 -1
  144. package/dist/src/browser/web-ai/chatgpt-composer.js +12 -12
  145. package/dist/src/browser/web-ai/chatgpt-composer.js.map +1 -1
  146. package/dist/src/browser/web-ai/chatgpt-model.js +469 -50
  147. package/dist/src/browser/web-ai/chatgpt-model.js.map +1 -1
  148. package/dist/src/browser/web-ai/chatgpt-response.js +82 -10
  149. package/dist/src/browser/web-ai/chatgpt-response.js.map +1 -1
  150. package/dist/src/browser/web-ai/chatgpt.js +325 -49
  151. package/dist/src/browser/web-ai/chatgpt.js.map +1 -1
  152. package/dist/src/browser/web-ai/churn-log.js +1 -1
  153. package/dist/src/browser/web-ai/churn-log.js.map +1 -1
  154. package/dist/src/browser/web-ai/cli-sessions.js +42 -26
  155. package/dist/src/browser/web-ai/cli-sessions.js.map +1 -1
  156. package/dist/src/browser/web-ai/context-pack/builder.js +1 -1
  157. package/dist/src/browser/web-ai/context-pack/builder.js.map +1 -1
  158. package/dist/src/browser/web-ai/context-pack/file-selector.js +2 -2
  159. package/dist/src/browser/web-ai/context-pack/file-selector.js.map +1 -1
  160. package/dist/src/browser/web-ai/context-pack/report.js +1 -1
  161. package/dist/src/browser/web-ai/context-pack/report.js.map +1 -1
  162. package/dist/src/browser/web-ai/copy-markdown.js +25 -5
  163. package/dist/src/browser/web-ai/copy-markdown.js.map +1 -1
  164. package/dist/src/browser/web-ai/diagnostics.js +17 -14
  165. package/dist/src/browser/web-ai/diagnostics.js.map +1 -1
  166. package/dist/src/browser/web-ai/doctor.js +10 -6
  167. package/dist/src/browser/web-ai/doctor.js.map +1 -1
  168. package/dist/src/browser/web-ai/dom-hash.js.map +1 -1
  169. package/dist/src/browser/web-ai/errors.js +5 -22
  170. package/dist/src/browser/web-ai/errors.js.map +1 -1
  171. package/dist/src/browser/web-ai/gemini-live.js +7 -6
  172. package/dist/src/browser/web-ai/gemini-live.js.map +1 -1
  173. package/dist/src/browser/web-ai/grok-live.js +9 -5
  174. package/dist/src/browser/web-ai/grok-live.js.map +1 -1
  175. package/dist/src/browser/web-ai/index.js +5 -0
  176. package/dist/src/browser/web-ai/index.js.map +1 -1
  177. package/dist/src/browser/web-ai/observation-bundle.js +90 -0
  178. package/dist/src/browser/web-ai/observation-bundle.js.map +1 -0
  179. package/dist/src/browser/web-ai/observe-actions.js +186 -0
  180. package/dist/src/browser/web-ai/observe-actions.js.map +1 -0
  181. package/dist/src/browser/web-ai/observe-targets.js +6 -1
  182. package/dist/src/browser/web-ai/observe-targets.js.map +1 -1
  183. package/dist/src/browser/web-ai/planner-contract.js +18 -0
  184. package/dist/src/browser/web-ai/planner-contract.js.map +1 -0
  185. package/dist/src/browser/web-ai/post-action-assert.js +8 -7
  186. package/dist/src/browser/web-ai/post-action-assert.js.map +1 -1
  187. package/dist/src/browser/web-ai/product-surfaces.js +2 -1
  188. package/dist/src/browser/web-ai/product-surfaces.js.map +1 -1
  189. package/dist/src/browser/web-ai/provider-adapter.js.map +1 -1
  190. package/dist/src/browser/web-ai/question.js +14 -7
  191. package/dist/src/browser/web-ai/question.js.map +1 -1
  192. package/dist/src/browser/web-ai/ref-registry.js.map +1 -1
  193. package/dist/src/browser/web-ai/self-heal.js +20 -14
  194. package/dist/src/browser/web-ai/self-heal.js.map +1 -1
  195. package/dist/src/browser/web-ai/session-store.js +61 -1
  196. package/dist/src/browser/web-ai/session-store.js.map +1 -1
  197. package/dist/src/browser/web-ai/session.js +43 -2
  198. package/dist/src/browser/web-ai/session.js.map +1 -1
  199. package/dist/src/browser/web-ai/source-audit.js +116 -0
  200. package/dist/src/browser/web-ai/source-audit.js.map +1 -0
  201. package/dist/src/browser/web-ai/tab-finalizer.js +18 -0
  202. package/dist/src/browser/web-ai/tab-finalizer.js.map +1 -0
  203. package/dist/src/browser/web-ai/tab-lease-store.js +390 -0
  204. package/dist/src/browser/web-ai/tab-lease-store.js.map +1 -0
  205. package/dist/src/browser/web-ai/tab-pool.js +44 -0
  206. package/dist/src/browser/web-ai/tab-pool.js.map +1 -0
  207. package/dist/src/browser/web-ai/target-resolver.js +31 -0
  208. package/dist/src/browser/web-ai/target-resolver.js.map +1 -0
  209. package/dist/src/browser/web-ai/trace-persistence.js +4 -2
  210. package/dist/src/browser/web-ai/trace-persistence.js.map +1 -1
  211. package/dist/src/browser/web-ai/vendor-editor-contract.js.map +1 -1
  212. package/dist/src/browser/web-ai/watcher.js +8 -7
  213. package/dist/src/browser/web-ai/watcher.js.map +1 -1
  214. package/dist/src/cli/acp-client.js +40 -26
  215. package/dist/src/cli/acp-client.js.map +1 -1
  216. package/dist/src/cli/command-context.js +3 -3
  217. package/dist/src/cli/command-context.js.map +1 -1
  218. package/dist/src/cli/commands.js +25 -16
  219. package/dist/src/cli/commands.js.map +1 -1
  220. package/dist/src/cli/compact.js.map +1 -1
  221. package/dist/src/cli/handlers-completions.js +6 -4
  222. package/dist/src/cli/handlers-completions.js.map +1 -1
  223. package/dist/src/cli/handlers-runtime.js +45 -38
  224. package/dist/src/cli/handlers-runtime.js.map +1 -1
  225. package/dist/src/cli/handlers.js +44 -36
  226. package/dist/src/cli/handlers.js.map +1 -1
  227. package/dist/src/cli/readiness.js +3 -1
  228. package/dist/src/cli/readiness.js.map +1 -1
  229. package/dist/src/cli/registry.js +1 -1
  230. package/dist/src/cli/registry.js.map +1 -1
  231. package/dist/src/cli/tui/overlay.js +4 -1
  232. package/dist/src/cli/tui/overlay.js.map +1 -1
  233. package/dist/src/cli/types.js +4 -0
  234. package/dist/src/cli/types.js.map +1 -0
  235. package/dist/src/command-contract/catalog.js +1 -1
  236. package/dist/src/command-contract/catalog.js.map +1 -1
  237. package/dist/src/command-contract/help-renderer.js +1 -1
  238. package/dist/src/command-contract/help-renderer.js.map +1 -1
  239. package/dist/src/core/browser-open-default.js +13 -0
  240. package/dist/src/core/browser-open-default.js.map +1 -0
  241. package/dist/src/core/browser-open.js +41 -0
  242. package/dist/src/core/browser-open.js.map +1 -0
  243. package/dist/src/core/bus.js +13 -2
  244. package/dist/src/core/bus.js.map +1 -1
  245. package/dist/src/core/compact.js +5 -4
  246. package/dist/src/core/compact.js.map +1 -1
  247. package/dist/src/core/config.js +51 -52
  248. package/dist/src/core/config.js.map +1 -1
  249. package/dist/src/core/db.js +48 -6
  250. package/dist/src/core/db.js.map +1 -1
  251. package/dist/src/core/employees.js +9 -8
  252. package/dist/src/core/employees.js.map +1 -1
  253. package/dist/src/core/instance.js +7 -6
  254. package/dist/src/core/instance.js.map +1 -1
  255. package/dist/src/core/logger.js +1 -1
  256. package/dist/src/core/logger.js.map +1 -1
  257. package/dist/src/core/main-session.js +7 -7
  258. package/dist/src/core/main-session.js.map +1 -1
  259. package/dist/src/core/path-expand.js +10 -0
  260. package/dist/src/core/path-expand.js.map +1 -0
  261. package/dist/src/core/runtime-path.js +1 -1
  262. package/dist/src/core/runtime-path.js.map +1 -1
  263. package/dist/src/core/runtime-settings.js +13 -13
  264. package/dist/src/core/runtime-settings.js.map +1 -1
  265. package/dist/src/core/settings-merge.js +14 -14
  266. package/dist/src/core/settings-merge.js.map +1 -1
  267. package/dist/src/core/strip-undefined.js +13 -0
  268. package/dist/src/core/strip-undefined.js.map +1 -0
  269. package/dist/src/core/tcc.js +1 -1
  270. package/dist/src/core/tcc.js.map +1 -1
  271. package/dist/src/discord/bot.js +19 -18
  272. package/dist/src/discord/bot.js.map +1 -1
  273. package/dist/src/discord/channel-types.js +14 -0
  274. package/dist/src/discord/channel-types.js.map +1 -0
  275. package/dist/src/discord/commands.js +7 -6
  276. package/dist/src/discord/commands.js.map +1 -1
  277. package/dist/src/discord/discord-file.js.map +1 -1
  278. package/dist/src/discord/forwarder.js +3 -3
  279. package/dist/src/discord/forwarder.js.map +1 -1
  280. package/dist/src/http/error-middleware.js +3 -3
  281. package/dist/src/http/error-middleware.js.map +1 -1
  282. package/dist/src/http/response.js +2 -2
  283. package/dist/src/http/response.js.map +1 -1
  284. package/dist/src/ide/diff.js +7 -7
  285. package/dist/src/ide/diff.js.map +1 -1
  286. package/dist/src/manager/board/routes.js +28 -27
  287. package/dist/src/manager/board/routes.js.map +1 -1
  288. package/dist/src/manager/dashboard-home.js +3 -5
  289. package/dist/src/manager/dashboard-home.js.map +1 -1
  290. package/dist/src/manager/dashboard-service.js +2 -2
  291. package/dist/src/manager/dashboard-service.js.map +1 -1
  292. package/dist/src/manager/health-history.js +10 -9
  293. package/dist/src/manager/health-history.js.map +1 -1
  294. package/dist/src/manager/launchd-service.js +2 -2
  295. package/dist/src/manager/launchd-service.js.map +1 -1
  296. package/dist/src/manager/lifecycle-helpers.js +7 -6
  297. package/dist/src/manager/lifecycle-helpers.js.map +1 -1
  298. package/dist/src/manager/lifecycle.js +7 -6
  299. package/dist/src/manager/lifecycle.js.map +1 -1
  300. package/dist/src/manager/logs.js +18 -18
  301. package/dist/src/manager/logs.js.map +1 -1
  302. package/dist/src/manager/metadata.js +10 -2
  303. package/dist/src/manager/metadata.js.map +1 -1
  304. package/dist/src/manager/notes/assets.js +216 -0
  305. package/dist/src/manager/notes/assets.js.map +1 -0
  306. package/dist/src/manager/notes/capabilities.js +56 -0
  307. package/dist/src/manager/notes/capabilities.js.map +1 -0
  308. package/dist/src/manager/notes/constants.js +11 -0
  309. package/dist/src/manager/notes/constants.js.map +1 -0
  310. package/dist/src/manager/notes/frontmatter.js +120 -0
  311. package/dist/src/manager/notes/frontmatter.js.map +1 -0
  312. package/dist/src/manager/notes/link-resolver.js +96 -0
  313. package/dist/src/manager/notes/link-resolver.js.map +1 -0
  314. package/dist/src/manager/notes/path-guards.js +4 -0
  315. package/dist/src/manager/notes/path-guards.js.map +1 -1
  316. package/dist/src/manager/notes/remote-assets.js +128 -0
  317. package/dist/src/manager/notes/remote-assets.js.map +1 -0
  318. package/dist/src/manager/notes/routes.js +63 -13
  319. package/dist/src/manager/notes/routes.js.map +1 -1
  320. package/dist/src/manager/notes/store.js +3 -2
  321. package/dist/src/manager/notes/store.js.map +1 -1
  322. package/dist/src/manager/notes/system-trash.js +3 -3
  323. package/dist/src/manager/notes/system-trash.js.map +1 -1
  324. package/dist/src/manager/notes/vault-index.js +220 -0
  325. package/dist/src/manager/notes/vault-index.js.map +1 -0
  326. package/dist/src/manager/notes/watcher.js +27 -0
  327. package/dist/src/manager/notes/watcher.js.map +1 -0
  328. package/dist/src/manager/notes/wiki-links.js +109 -0
  329. package/dist/src/manager/notes/wiki-links.js.map +1 -0
  330. package/dist/src/manager/process-verify.js +29 -0
  331. package/dist/src/manager/process-verify.js.map +1 -1
  332. package/dist/src/manager/profiles.js +3 -2
  333. package/dist/src/manager/profiles.js.map +1 -1
  334. package/dist/src/manager/registry.js +60 -58
  335. package/dist/src/manager/registry.js.map +1 -1
  336. package/dist/src/manager/routes/electron-metrics.js +22 -22
  337. package/dist/src/manager/routes/electron-metrics.js.map +1 -1
  338. package/dist/src/manager/scan.js +2 -2
  339. package/dist/src/manager/scan.js.map +1 -1
  340. package/dist/src/manager/schedule/routes.js +24 -23
  341. package/dist/src/manager/schedule/routes.js.map +1 -1
  342. package/dist/src/manager/server.js +28 -28
  343. package/dist/src/manager/server.js.map +1 -1
  344. package/dist/src/manager/systemd-service.js +1 -1
  345. package/dist/src/manager/systemd-service.js.map +1 -1
  346. package/dist/src/memory/bootstrap.js +5 -4
  347. package/dist/src/memory/bootstrap.js.map +1 -1
  348. package/dist/src/memory/heartbeat-schedule.js +10 -10
  349. package/dist/src/memory/heartbeat-schedule.js.map +1 -1
  350. package/dist/src/memory/heartbeat.js +23 -22
  351. package/dist/src/memory/heartbeat.js.map +1 -1
  352. package/dist/src/memory/indexing.js.map +1 -1
  353. package/dist/src/memory/keyword-expand.js +1 -1
  354. package/dist/src/memory/keyword-expand.js.map +1 -1
  355. package/dist/src/memory/memory.js +2 -2
  356. package/dist/src/memory/memory.js.map +1 -1
  357. package/dist/src/memory/runtime.js +6 -5
  358. package/dist/src/memory/runtime.js.map +1 -1
  359. package/dist/src/memory/shared.js +2 -1
  360. package/dist/src/memory/shared.js.map +1 -1
  361. package/dist/src/memory/worklog.js +1 -1
  362. package/dist/src/memory/worklog.js.map +1 -1
  363. package/dist/src/messaging/runtime.js +13 -10
  364. package/dist/src/messaging/runtime.js.map +1 -1
  365. package/dist/src/messaging/send.js +16 -15
  366. package/dist/src/messaging/send.js.map +1 -1
  367. package/dist/src/orchestrator/collect.js +6 -6
  368. package/dist/src/orchestrator/collect.js.map +1 -1
  369. package/dist/src/orchestrator/distribute.js +112 -77
  370. package/dist/src/orchestrator/distribute.js.map +1 -1
  371. package/dist/src/orchestrator/gateway.js +6 -5
  372. package/dist/src/orchestrator/gateway.js.map +1 -1
  373. package/dist/src/orchestrator/pipeline.js +42 -42
  374. package/dist/src/orchestrator/pipeline.js.map +1 -1
  375. package/dist/src/orchestrator/state-machine.js +3 -3
  376. package/dist/src/orchestrator/state-machine.js.map +1 -1
  377. package/dist/src/orchestrator/worker-registry.js +4 -3
  378. package/dist/src/orchestrator/worker-registry.js.map +1 -1
  379. package/dist/src/prompt/builder.js +24 -19
  380. package/dist/src/prompt/builder.js.map +1 -1
  381. package/dist/src/prompt/templates/a1-system.md +15 -10
  382. package/dist/src/prompt/templates/control-system.md +9 -7
  383. package/dist/src/prompt/templates/employee.md +5 -4
  384. package/dist/src/prompt/templates/vision-click.md +1 -1
  385. package/dist/src/routes/_http-error.js +15 -0
  386. package/dist/src/routes/_http-error.js.map +1 -0
  387. package/dist/src/routes/avatar.js +6 -5
  388. package/dist/src/routes/avatar.js.map +1 -1
  389. package/dist/src/routes/browser.js +132 -45
  390. package/dist/src/routes/browser.js.map +1 -1
  391. package/dist/src/routes/employees.js +28 -21
  392. package/dist/src/routes/employees.js.map +1 -1
  393. package/dist/src/routes/heartbeat.js +12 -9
  394. package/dist/src/routes/heartbeat.js.map +1 -1
  395. package/dist/src/routes/i18n.js +13 -7
  396. package/dist/src/routes/i18n.js.map +1 -1
  397. package/dist/src/routes/jaw-memory.js +15 -11
  398. package/dist/src/routes/jaw-memory.js.map +1 -1
  399. package/dist/src/routes/memory.js +25 -20
  400. package/dist/src/routes/memory.js.map +1 -1
  401. package/dist/src/routes/messaging.js +50 -29
  402. package/dist/src/routes/messaging.js.map +1 -1
  403. package/dist/src/routes/orchestrate.js +38 -24
  404. package/dist/src/routes/orchestrate.js.map +1 -1
  405. package/dist/src/routes/quota.js +81 -17
  406. package/dist/src/routes/quota.js.map +1 -1
  407. package/dist/src/routes/settings.js +28 -18
  408. package/dist/src/routes/settings.js.map +1 -1
  409. package/dist/src/routes/skills.js +22 -13
  410. package/dist/src/routes/skills.js.map +1 -1
  411. package/dist/src/routes/traces.js +77 -0
  412. package/dist/src/routes/traces.js.map +1 -0
  413. package/dist/src/security/path-guards.js +2 -1
  414. package/dist/src/security/path-guards.js.map +1 -1
  415. package/dist/src/shared/tool-log-sanitize.js +191 -0
  416. package/dist/src/shared/tool-log-sanitize.js.map +1 -0
  417. package/dist/src/telegram/bot.js +65 -55
  418. package/dist/src/telegram/bot.js.map +1 -1
  419. package/dist/src/telegram/forwarder.js +5 -9
  420. package/dist/src/telegram/forwarder.js.map +1 -1
  421. package/dist/src/telegram/telegram-file.js +28 -24
  422. package/dist/src/telegram/telegram-file.js.map +1 -1
  423. package/dist/src/telegram/voice.js +4 -3
  424. package/dist/src/telegram/voice.js.map +1 -1
  425. package/dist/src/trace/redact.js +50 -0
  426. package/dist/src/trace/redact.js.map +1 -0
  427. package/dist/src/trace/store.js +162 -0
  428. package/dist/src/trace/store.js.map +1 -0
  429. package/dist/src/trace/types.js +2 -0
  430. package/dist/src/trace/types.js.map +1 -0
  431. package/dist/src/types/cli-engine.js +34 -0
  432. package/dist/src/types/cli-engine.js.map +1 -0
  433. package/dist/src/types/cli-events.js +31 -0
  434. package/dist/src/types/cli-events.js.map +1 -0
  435. package/package.json +22 -2
  436. package/public/css/tool-ui.css +3 -1
  437. package/public/css/trace-drawer.css +48 -0
  438. package/public/dist/assets/{AdvancedExport-3WAYIabE.js → AdvancedExport-DJZ2VmBR.js} +1 -1
  439. package/public/dist/assets/Agent-CgpLT8IY.js +1 -0
  440. package/public/dist/assets/Browser-CrkiQoB8.js +1 -0
  441. package/public/dist/assets/{ChannelsDiscord-UzFPlWT4.js → ChannelsDiscord-CVUC22D4.js} +1 -1
  442. package/public/dist/assets/{ChannelsTelegram-DNWtPX0w.js → ChannelsTelegram-DEatIQNM.js} +1 -1
  443. package/public/dist/assets/{DashboardMeta-Y_6nVeJO.js → DashboardMeta-BKoxRc7i.js} +1 -1
  444. package/public/dist/assets/{Display-D8vGOl4s.js → Display-DnNGV9Km.js} +1 -1
  445. package/public/dist/assets/{Employees-YR_sIRK4.js → Employees-DZ2iJYKy.js} +1 -1
  446. package/public/dist/assets/{HealthBadge-CPePajyU.js → HealthBadge-Cq2c7G9s.js} +1 -1
  447. package/public/dist/assets/{Heartbeat-DTpAULQR.js → Heartbeat-BML6eTXZ.js} +1 -1
  448. package/public/dist/assets/{Mcp-DM-PgG6z.js → Mcp-BlEviQ3h.js} +1 -1
  449. package/public/dist/assets/{Memory-C_LvJnkn.js → Memory-BRyH80He.js} +1 -1
  450. package/public/dist/assets/MilkdownWysiwygEditor-Cm3uXfWf.js +52 -0
  451. package/public/dist/assets/ModelProvider-DxyR7EL9.js +1 -0
  452. package/public/dist/assets/Network-DDOOESh1.js +1 -0
  453. package/public/dist/assets/{Permissions-B1naJjjw.js → Permissions-Br0eSbKb.js} +1 -1
  454. package/public/dist/assets/{Permissions-BKffrMJD.js → Permissions-QHkzStqQ.js} +1 -1
  455. package/public/dist/assets/{Profile-DIqjSe2C.js → Profile-C79NKumk.js} +1 -1
  456. package/public/dist/assets/{Prompts-BMfbV6Y4.js → Prompts-BmiIDiXW.js} +1 -1
  457. package/public/dist/assets/{SpeechKeys-DjiQTzSL.js → SpeechKeys-B8304XJK.js} +1 -1
  458. package/public/dist/assets/app-Be58Cs3Y.js +32 -0
  459. package/public/dist/assets/{app-BzvwJJiv.css → app-CphocJzo.css} +1 -1
  460. package/public/dist/assets/{dist-DTvxN3ux.js → dist-BD0UXfgF2.js} +1 -1
  461. package/public/dist/assets/{dist-CASeq-Tl.js → dist-BNfXO3Yr.js} +1 -1
  462. package/public/dist/assets/{dist-BMPiaUzF.js → dist-BUnPYbK3.js} +1 -1
  463. package/public/dist/assets/{dist-CT_X3hVT.js → dist-BZosRD2u.js} +1 -1
  464. package/public/dist/assets/{dist-4J6YbNXv.js → dist-Bd9PlnQm.js} +1 -1
  465. package/public/dist/assets/{dist-BcZjyn5g.js → dist-BsT5UdNP.js} +1 -1
  466. package/public/dist/assets/{dist-BfBhOPR-.js → dist-CIuXW-sc.js} +1 -1
  467. package/public/dist/assets/{dist-BMiCig3A2.js → dist-CL4PTYWf.js} +1 -1
  468. package/public/dist/assets/{dist-VyP6-HLb.js → dist-Ch5VAlV9.js} +1 -1
  469. package/public/dist/assets/dist-ClqO40BE.js +1 -0
  470. package/public/dist/assets/{dist-c98Tp7bP.js → dist-Cp42cMcI.js} +1 -1
  471. package/public/dist/assets/{dist-CIlYL1qe.js → dist-CpUK8ypo.js} +1 -1
  472. package/public/dist/assets/dist-CxeLAw2Y.js +1 -0
  473. package/public/dist/assets/dist-D2SH8nxa.js +1 -0
  474. package/public/dist/assets/{dist-84fwQ7bO.js → dist-D6cUXP7K.js} +1 -1
  475. package/public/dist/assets/{dist-BOCcQAyF.js → dist-D7bCuS3f.js} +1 -1
  476. package/public/dist/assets/{dist-DMmpfLVP.js → dist-DFYRUAjN.js} +1 -1
  477. package/public/dist/assets/{dist-DdY6pTJr.js → dist-DZsFVYF4.js} +1 -1
  478. package/public/dist/assets/{dist-B0p3Eyme.js → dist-Db16ogVk.js} +1 -1
  479. package/public/dist/assets/{dist-DlnNtr6L.js → dist-DfodGES_.js} +1 -1
  480. package/public/dist/assets/{dist-DO9so2a2.js → dist-SU-YTAIg.js} +1 -1
  481. package/public/dist/assets/{dist-DUjXiMLP.js → dist-UYn7T-GH.js} +1 -1
  482. package/public/dist/assets/{dist-BW1409rz.js → dist-W51oDoeA.js} +1 -1
  483. package/public/dist/assets/{dist-BimBQZx1.js → dist-eU7TyC86.js} +1 -1
  484. package/public/dist/assets/dist-l9HH00ip.js +1 -0
  485. package/public/dist/assets/{dist-BrOPNxdH.js → dist-urPTQzXL.js} +1 -1
  486. package/public/dist/assets/{dist-AloEV3J52.js → dist-yHP6L0Ty.js} +1 -1
  487. package/public/dist/assets/{employees-Bbabvbyx.js → employees-CxdghzoD.js} +7 -7
  488. package/public/dist/assets/{error-normalize-DdvKGLt_.js → error-normalize-5n-zlEQ3.js} +1 -1
  489. package/public/dist/assets/insert-image-markdown-DIEa-zjk.js +22 -0
  490. package/public/dist/assets/{manager-DyB2ZUr9.css → manager-DEiyrWDP.css} +1 -1
  491. package/public/dist/assets/manager-UEXd1_9T.js +25 -0
  492. package/public/dist/assets/{memory-B_plvcuQ.js → memory-CsMNkYtv.js} +9 -9
  493. package/public/dist/assets/memory-DXad_DPO.js +1 -0
  494. package/public/dist/assets/{page-shell-DML_HneX.js → page-shell-D5tbivHH.js} +1 -1
  495. package/public/dist/assets/{render-DEhbfUAW.js → render-DGQX46ei.js} +2 -2
  496. package/public/dist/assets/{settings-D7F-_kYG.js → settings-BH213Yv3.js} +14 -14
  497. package/public/dist/assets/settings-DXT87G2U.js +1 -0
  498. package/public/dist/assets/settings-client-ajlwI-oK.js +1 -0
  499. package/public/dist/assets/skills-5o_1v0nz.js +1 -0
  500. package/public/dist/assets/{skills-DoGJOc0D.js → skills-CQtCtHPA.js} +6 -6
  501. package/public/dist/assets/slash-commands-D4-hrrmh.js +1 -0
  502. package/public/dist/assets/{slash-commands-khNFPOyF.js → slash-commands-Dzk1xHWS.js} +1 -1
  503. package/public/dist/assets/trace-drawer-SRKcfm2S.js +15 -0
  504. package/public/dist/assets/ui-CdRKN2S6.js +141 -0
  505. package/public/dist/assets/ui-n43jmg_f.js +1 -0
  506. package/public/dist/assets/{ws-B2aJ-nD2.js → ws-CTHQFzM1.js} +8 -8
  507. package/public/dist/index.html +2 -2
  508. package/public/dist/manager/index.html +2 -2
  509. package/public/index.html +1 -0
  510. package/public/js/constants.ts +5 -5
  511. package/public/js/diagram/iframe-renderer.ts +11 -11
  512. package/public/js/features/chat.ts +1 -1
  513. package/public/js/features/memory.ts +10 -10
  514. package/public/js/features/pending-queue.ts +2 -2
  515. package/public/js/features/process-block.ts +257 -29
  516. package/public/js/features/process-step-match.ts +18 -0
  517. package/public/js/features/settings-cli-status.ts +1 -1
  518. package/public/js/features/settings-stt.ts +37 -11
  519. package/public/js/features/settings-templates.ts +2 -2
  520. package/public/js/features/slash-commands.ts +1 -1
  521. package/public/js/features/tool-ui.ts +13 -7
  522. package/public/js/features/trace-drawer.ts +122 -0
  523. package/public/js/icons.ts +1 -1
  524. package/public/js/main.ts +28 -28
  525. package/public/js/provider-icons.ts +1 -1
  526. package/public/js/render.ts +29 -27
  527. package/public/js/sanitizer.ts +4 -0
  528. package/public/js/ui.ts +234 -68
  529. package/public/js/virtual-scroll.ts +19 -33
  530. package/public/js/ws.ts +22 -10
  531. package/public/manager/src/App.tsx +34 -6
  532. package/public/manager/src/api.ts +55 -1
  533. package/public/manager/src/components/ActivityTimeline.tsx +1 -1
  534. package/public/manager/src/components/InstanceDetailPanel.tsx +2 -2
  535. package/public/manager/src/components/InstanceGroups.tsx +5 -5
  536. package/public/manager/src/components/InstanceListContent.tsx +1 -1
  537. package/public/manager/src/dashboard-features.ts +1 -1
  538. package/public/manager/src/manager-notes.css +49 -2
  539. package/public/manager/src/notes/MarkdownEditor.tsx +7 -3
  540. package/public/manager/src/notes/NotesFileTree.tsx +45 -6
  541. package/public/manager/src/notes/NotesSidebar.tsx +24 -55
  542. package/public/manager/src/notes/NotesWorkspace.tsx +50 -3
  543. package/public/manager/src/notes/image-assets/clipboard-images.ts +100 -0
  544. package/public/manager/src/notes/image-assets/insert-image-markdown.ts +85 -0
  545. package/public/manager/src/notes/notes-api.ts +2 -0
  546. package/public/manager/src/notes/notes-types.ts +8 -1
  547. package/public/manager/src/notes/rendering/MarkdownRenderer.tsx +6 -0
  548. package/public/manager/src/notes/rendering/markdown-render-security.ts +19 -1
  549. package/public/manager/src/notes/rich-markdown/paste-policy.ts +6 -2
  550. package/public/manager/src/notes/rich-markdown/rich-markdown-extension.ts +5 -5
  551. package/public/manager/src/notes/rich-markdown/rich-widget.ts +8 -8
  552. package/public/manager/src/notes/useNotesExternalSync.ts +37 -0
  553. package/public/manager/src/notes/useNotesModel.ts +91 -0
  554. package/public/manager/src/notes/wysiwyg/MilkdownWysiwygEditor.tsx +157 -17
  555. package/public/manager/src/notes/wysiwyg/milkdown-block-keymap.ts +14 -2
  556. package/public/manager/src/notes/wysiwyg/milkdown-code-block-view.ts +20 -20
  557. package/public/manager/src/notes/wysiwyg/milkdown-heading-source-view.ts +8 -8
  558. package/public/manager/src/notes/wysiwyg/milkdown-math.ts +25 -25
  559. package/public/manager/src/settings/pages/Browser.tsx +38 -20
  560. package/public/manager/src/settings/pages/ModelProvider.tsx +11 -9
  561. package/public/manager/src/settings/pages/Network.tsx +10 -10
  562. package/public/manager/src/settings/pages/components/HealthBadge.tsx +12 -12
  563. package/public/manager/src/settings/pages/components/agent/runtime-employees-helpers.ts +12 -10
  564. package/public/manager/src/settings/pages/components/employees-helpers.ts +9 -9
  565. package/public/manager/src/settings/pages/components/heartbeat-helpers.ts +13 -13
  566. package/public/manager/src/settings/pages/components/memory-helpers.ts +4 -4
  567. package/public/manager/src/settings/pages/mcp-helpers.ts +7 -7
  568. package/public/manager/src/settings/settings-client.ts +4 -3
  569. package/public/manager/src/sync/IframeBridge.tsx +29 -0
  570. package/public/manager/src/sync/VisibilityBridge.tsx +24 -0
  571. package/public/manager/src/sync/invalidation-bus.ts +30 -0
  572. package/public/manager/src/sync/useInvalidationSubscription.ts +19 -0
  573. package/public/manager/src/types.ts +101 -0
  574. package/scripts/check-strict-baseline.mjs +255 -0
  575. package/scripts/claim-audit.mjs +159 -0
  576. package/scripts/i18n-registry.ts +4 -4
  577. package/scripts/install-officecli.sh +2 -2
  578. package/scripts/install-wsl.sh +2 -1
  579. package/scripts/release-gates.mjs +347 -0
  580. package/scripts/release-preview.sh +3 -0
  581. package/scripts/release.sh +4 -0
  582. package/scripts/smoke/opencode-external-dir-smoke.ts +14 -5
  583. package/public/dist/assets/Agent-BYdzZwD0.js +0 -1
  584. package/public/dist/assets/Browser-CkGeczuN.js +0 -1
  585. package/public/dist/assets/MilkdownWysiwygEditor-B7k9bAey.js +0 -52
  586. package/public/dist/assets/ModelProvider-CX3Qhowu.js +0 -1
  587. package/public/dist/assets/Network-DfPLFAvw.js +0 -1
  588. package/public/dist/assets/app-DLYoRkU9.js +0 -32
  589. package/public/dist/assets/dist-8zNAQAIa.js +0 -1
  590. package/public/dist/assets/dist-BgeY6nvK.js +0 -1
  591. package/public/dist/assets/dist-BzDGGxHQ.js +0 -1
  592. package/public/dist/assets/dist-D3YKbVi-.js +0 -1
  593. package/public/dist/assets/manager-CUSgFbMO.js +0 -25
  594. package/public/dist/assets/markdown-render-security-DJfJPWO-.js +0 -22
  595. package/public/dist/assets/memory-DQ6dU0qs.js +0 -1
  596. package/public/dist/assets/settings-DxLPUbpj.js +0 -1
  597. package/public/dist/assets/settings-client-CGf3uPPf.js +0 -1
  598. package/public/dist/assets/skills-yMfNYJ8m.js +0 -1
  599. package/public/dist/assets/slash-commands-CZcwr1W6.js +0 -1
  600. package/public/dist/assets/ui-04YlOMgn.js +0 -136
  601. package/public/dist/assets/ui-D6hlMjRq.js +0 -1
  602. /package/public/dist/assets/{InlineWarn-CqgWEC41.js → InlineWarn-BooBRm7o.js} +0 -0
  603. /package/public/dist/assets/{agent-meta-puNn13DV.js → agent-meta-DHddpWHQ.js} +0 -0
  604. /package/public/dist/assets/{fields-DH9JS3mb.js → fields-BtncIZYA.js} +0 -0
  605. /package/public/dist/assets/{mermaid-loader-6XC0y10y.js → mermaid-loader-BEFIOoJn.js} +0 -0
  606. /package/public/dist/assets/{path-utils-CtsDDGZg.js → path-utils-BuEEtj9w.js} +0 -0
  607. /package/public/dist/assets/{w3c-keyname-VSld09PZ.js → w3c-keyname-IiiZScED.js} +0 -0
@@ -1,12 +1,16 @@
1
1
  import { JAW_HOME, deriveCdpPort, settings } from '../core/config.js';
2
+ import { stripUndefined } from '../core/strip-undefined.js';
2
3
  import { execFile, spawn } from 'node:child_process';
3
4
  import { join } from 'path';
4
5
  import fs from 'node:fs';
5
6
  import net from 'node:net';
6
7
  import { chromium } from 'playwright-core';
7
8
  import { resolveLaunchPolicy } from './launch-policy.js';
9
+ import os from 'node:os';
8
10
  import { browserReaperIntervalMs, createEmptyBrowserRuntime, createExternalBrowserRuntime, createJawOwnedBrowserRuntime, decideBrowserCloseAction, shouldCloseIdleRuntime, } from './runtime-owner.js';
11
+ import { clearDurableBrowserRuntimeOwner, writeDurableBrowserRuntimeOwner } from './runtime-owner-store.js';
9
12
  const PROFILE_DIR = join(JAW_HOME, 'browser-profile');
13
+ const TAB_ACTIVITY_FILE = join(JAW_HOME, 'browser-tab-activity.json');
10
14
  let cached = null;
11
15
  let chromeProc = null;
12
16
  let activePort = null;
@@ -15,12 +19,72 @@ let activeCommandCount = 0;
15
19
  let idleReaper = null;
16
20
  let verifiedActiveTargetId = null;
17
21
  let browserStateVersion = 0;
22
+ const tabActivity = new Map();
23
+ let tabActivityLoaded = false;
24
+ function isRecord(value) {
25
+ return Boolean(value && typeof value === 'object' && !Array.isArray(value));
26
+ }
27
+ function errorMessage(error) {
28
+ return error instanceof Error ? error.message : String(error ?? '');
29
+ }
30
+ function requireTargetId(value) {
31
+ if (isRecord(value) && typeof value["targetId"] === 'string')
32
+ return { targetId: value["targetId"] };
33
+ throw new Error('CDP response missing targetId');
34
+ }
35
+ function targetInfoMatches(value, targetId) {
36
+ if (!isRecord(value) || !isRecord(value["targetInfo"]))
37
+ return false;
38
+ return value["targetInfo"]["targetId"] === targetId;
39
+ }
18
40
  export function markBrowserStateChanged() {
19
41
  browserStateVersion++;
20
42
  }
21
43
  export function getBrowserStateVersion() {
22
44
  return browserStateVersion;
23
45
  }
46
+ function loadTabActivity() {
47
+ if (tabActivityLoaded)
48
+ return;
49
+ tabActivityLoaded = true;
50
+ if (!fs.existsSync(TAB_ACTIVITY_FILE))
51
+ return;
52
+ try {
53
+ const parsed = JSON.parse(fs.readFileSync(TAB_ACTIVITY_FILE, 'utf8'));
54
+ for (const [targetId, lastActiveAt] of Object.entries(parsed.tabs || {})) {
55
+ if (targetId && Number.isFinite(lastActiveAt))
56
+ tabActivity.set(targetId, lastActiveAt);
57
+ }
58
+ }
59
+ catch {
60
+ tabActivity.clear();
61
+ }
62
+ }
63
+ function saveTabActivity() {
64
+ fs.mkdirSync(JAW_HOME, { recursive: true });
65
+ fs.writeFileSync(TAB_ACTIVITY_FILE, `${JSON.stringify({ tabs: Object.fromEntries(tabActivity.entries()) }, null, 2)}\n`);
66
+ }
67
+ export function markTabActive(targetId, at = Date.now()) {
68
+ if (!targetId)
69
+ return null;
70
+ loadTabActivity();
71
+ tabActivity.set(targetId, at);
72
+ saveTabActivity();
73
+ return at;
74
+ }
75
+ export function forgetTabActivity(targetId) {
76
+ if (!targetId)
77
+ return;
78
+ loadTabActivity();
79
+ tabActivity.delete(targetId);
80
+ saveTabActivity();
81
+ }
82
+ export function getTabActivity(targetId) {
83
+ if (!targetId)
84
+ return null;
85
+ loadTabActivity();
86
+ return tabActivity.get(targetId) || null;
87
+ }
24
88
  /** Check if a port is already listening via TCP connect */
25
89
  function isPortListening(port, host = '127.0.0.1') {
26
90
  return new Promise(resolve => {
@@ -46,6 +110,28 @@ async function waitForCdpReady(port, timeoutMs = 10000) {
46
110
  }
47
111
  return false;
48
112
  }
113
+ async function resetStaleChromeProcIfCdpUnavailable(port) {
114
+ if (!chromeProc || chromeProc.killed)
115
+ return false;
116
+ if (await waitForCdpReady(port, 1000))
117
+ return false;
118
+ try {
119
+ chromeProc.kill('SIGTERM');
120
+ }
121
+ catch {
122
+ // The process may have already exited between the killed check and SIGTERM.
123
+ }
124
+ chromeProc = null;
125
+ if (runtimeOwner?.ownership === 'jaw-owned') {
126
+ clearDurableBrowserRuntimeOwner(runtimeOwner);
127
+ runtimeOwner = null;
128
+ activePort = null;
129
+ verifiedActiveTargetId = null;
130
+ disconnectLocalBrowserCache();
131
+ markBrowserStateChanged();
132
+ }
133
+ return true;
134
+ }
49
135
  function isWSL() {
50
136
  if (process.platform !== 'linux')
51
137
  return false;
@@ -60,12 +146,12 @@ function findChrome() {
60
146
  const platform = process.platform;
61
147
  const paths = [];
62
148
  if (platform === 'darwin') {
63
- paths.push('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Chromium.app/Contents/MacOS/Chromium', '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser', `${process.env.HOME || ''}/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`);
149
+ paths.push('/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', '/Applications/Chromium.app/Contents/MacOS/Chromium', '/Applications/Brave Browser.app/Contents/MacOS/Brave Browser', `${os.homedir()}/Applications/Google Chrome.app/Contents/MacOS/Google Chrome`);
64
150
  }
65
151
  else if (platform === 'win32') {
66
- const pf = process.env.PROGRAMFILES || 'C:\\Program Files';
152
+ const pf = process.env["PROGRAMFILES"] || 'C:\\Program Files';
67
153
  const pf86 = process.env['PROGRAMFILES(X86)'] || 'C:\\Program Files (x86)';
68
- const local = process.env.LOCALAPPDATA || '';
154
+ const local = process.env["LOCALAPPDATA"] || '';
69
155
  paths.push(`${pf}\\Google\\Chrome\\Application\\chrome.exe`, `${pf86}\\Google\\Chrome\\Application\\chrome.exe`, `${local}\\Google\\Chrome\\Application\\chrome.exe`, `${pf}\\BraveSoftware\\Brave-Browser\\Application\\brave.exe`);
70
156
  }
71
157
  else {
@@ -107,8 +193,35 @@ export async function withBrowserActivity(fn) {
107
193
  }
108
194
  }
109
195
  function readProcessCommandLine(pid) {
110
- if (process.platform === 'win32')
111
- return Promise.resolve(null);
196
+ if (process.platform === 'win32') {
197
+ const pidText = String(Math.trunc(pid));
198
+ return new Promise((resolve) => {
199
+ execFile('powershell.exe', [
200
+ '-NoProfile',
201
+ '-NonInteractive',
202
+ '-Command',
203
+ `(Get-CimInstance Win32_Process -Filter "ProcessId = ${pidText}").CommandLine`,
204
+ ], (psError, psStdout) => {
205
+ const psCommand = psStdout.trim();
206
+ if (!psError && psCommand) {
207
+ resolve(psCommand);
208
+ return;
209
+ }
210
+ execFile('wmic.exe', ['process', 'where', `ProcessId=${pidText}`, 'get', 'CommandLine', '/value'], (wmicError, wmicStdout) => {
211
+ if (wmicError) {
212
+ resolve(null);
213
+ return;
214
+ }
215
+ const command = wmicStdout
216
+ .split(/\r?\n/)
217
+ .find((line) => line.startsWith('CommandLine='))
218
+ ?.slice('CommandLine='.length)
219
+ .trim();
220
+ resolve(command || null);
221
+ });
222
+ });
223
+ });
224
+ }
112
225
  if (process.platform === 'linux') {
113
226
  try {
114
227
  return Promise.resolve(fs.readFileSync(`/proc/${pid}/cmdline`, 'utf8').replace(/\0/g, ' ').trim());
@@ -132,8 +245,6 @@ async function isRecordedChromeStillOwned(owner) {
132
245
  return false;
133
246
  if (!owner.pid || !owner.port || !owner.userDataDir)
134
247
  return false;
135
- if (process.platform === 'win32')
136
- return false;
137
248
  const command = await readProcessCommandLine(owner.pid);
138
249
  if (!command)
139
250
  return false;
@@ -169,6 +280,7 @@ async function closeOwnedChrome(reason) {
169
280
  }
170
281
  }
171
282
  chromeProc = null;
283
+ clearDurableBrowserRuntimeOwner(owner);
172
284
  runtimeOwner = null;
173
285
  activePort = null;
174
286
  verifiedActiveTargetId = null;
@@ -211,17 +323,20 @@ export async function launchChrome(port = deriveCdpPort(), opts = {}) {
211
323
  `Another process may be occupying the port. Try --port <other> or stop the conflicting process.`);
212
324
  }
213
325
  }
214
- if (chromeProc && !chromeProc.killed)
215
- return;
216
- const launchPolicy = resolveLaunchPolicy({
326
+ if (chromeProc && !chromeProc.killed) {
327
+ const reset = await resetStaleChromeProcIfCdpUnavailable(port);
328
+ if (!reset)
329
+ return;
330
+ }
331
+ const launchPolicy = resolveLaunchPolicy(stripUndefined({
217
332
  mode: opts.mode,
218
333
  headless: opts.headless,
219
- });
334
+ }));
220
335
  if (!launchPolicy.allowLaunch) {
221
336
  throw new Error(launchPolicy.denyReason || 'Browser launch denied by policy');
222
337
  }
223
338
  const chrome = findChrome();
224
- const noSandbox = process.env.CHROME_NO_SANDBOX === '1';
339
+ const noSandbox = process.env["CHROME_NO_SANDBOX"] === '1';
225
340
  const headless = launchPolicy.headless;
226
341
  // Minimum window size to prevent responsive layout shifts
227
342
  // that cause Playwright "element is not stable" errors
@@ -243,12 +358,14 @@ export async function launchChrome(port = deriveCdpPort(), opts = {}) {
243
358
  const ready = await waitForCdpReady(port);
244
359
  if (ready) {
245
360
  activePort = port;
246
- runtimeOwner = createJawOwnedBrowserRuntime({
361
+ const owner = createJawOwnedBrowserRuntime({
247
362
  port,
248
363
  pid: chromeProc.pid ?? null,
249
364
  userDataDir: PROFILE_DIR,
250
365
  headless,
251
366
  });
367
+ runtimeOwner = owner;
368
+ writeDurableBrowserRuntimeOwner(owner);
252
369
  ensureIdleReaperStarted();
253
370
  }
254
371
  else {
@@ -265,7 +382,7 @@ export async function launchChrome(port = deriveCdpPort(), opts = {}) {
265
382
  }
266
383
  /** Resolve effective CDP port: activePort > settings.browser.cdpPort > deriveCdpPort() */
267
384
  export function getActivePort() {
268
- return activePort || settings.browser?.cdpPort || deriveCdpPort();
385
+ return activePort || settings["browser"]?.cdpPort || deriveCdpPort();
269
386
  }
270
387
  export async function connectCdp(port = getActivePort(), retries = 3) {
271
388
  const cdpUrl = `http://127.0.0.1:${port}`;
@@ -291,7 +408,7 @@ export async function connectCdp(port = getActivePort(), retries = 3) {
291
408
  }
292
409
  export async function getActivePage(port = getActivePort()) {
293
410
  const { browser } = await connectCdp(port);
294
- const pages = browser.contexts().flatMap((c) => c.pages());
411
+ const pages = browser.contexts().flatMap((context) => context.pages());
295
412
  if (verifiedActiveTargetId) {
296
413
  const tabs = await readCdpPageTargets(port).catch(() => []);
297
414
  const tab = tabs.find((t) => t.id === verifiedActiveTargetId);
@@ -320,6 +437,7 @@ function toBrowserTabInfo(tab, index, activeTargetId) {
320
437
  type: tab.type || 'page',
321
438
  active: Boolean(activeTargetId && targetId === activeTargetId),
322
439
  attached: true,
440
+ lastActiveAt: getTabActivity(targetId),
323
441
  };
324
442
  }
325
443
  async function resolveActiveTargetId(port, tabs) {
@@ -340,7 +458,10 @@ export async function getActiveTab(port = getActivePort()) {
340
458
  return { ok: false, reason: 'none' };
341
459
  if (active.length > 1)
342
460
  return { ok: false, reason: 'ambiguous' };
343
- return { ok: true, tab: active[0] };
461
+ const tab = active[0];
462
+ if (!tab)
463
+ return { ok: false, reason: 'none' };
464
+ return { ok: true, tab };
344
465
  }
345
466
  export async function switchTab(port = getActivePort(), target) {
346
467
  const tabs = await readCdpPageTargets(port);
@@ -359,6 +480,7 @@ export async function switchTab(port = getActivePort(), target) {
359
480
  await cdp.detach().catch(() => undefined);
360
481
  }
361
482
  verifiedActiveTargetId = wanted.id;
483
+ markTabActive(wanted.id);
362
484
  markBrowserStateChanged();
363
485
  const active = await getActiveTab(port);
364
486
  if (!active.ok || active.tab?.targetId !== wanted.id)
@@ -385,10 +507,165 @@ export function getBrowserRuntimeStatus() {
385
507
  : createEmptyBrowserRuntime(activeCommandCount);
386
508
  }
387
509
  export async function getCdpSession(port = getActivePort()) {
388
- const page = await getActivePage(port);
389
- if (!page)
510
+ try {
511
+ const page = await getActivePage(port);
512
+ if (page)
513
+ return page.context().newCDPSession(page);
514
+ const { browser } = await connectCdp(port);
515
+ if (typeof browser.newBrowserCDPSession === 'function') {
516
+ return browser.newBrowserCDPSession();
517
+ }
518
+ }
519
+ catch (error) {
520
+ if (!errorMessage(error).includes('Browser.setDownloadBehavior'))
521
+ throw error;
522
+ }
523
+ return createRawBrowserCdpSession(port);
524
+ }
525
+ async function createRawBrowserCdpSession(port) {
526
+ const response = await fetch(`http://127.0.0.1:${port}/json/version`);
527
+ const version = await response.json();
528
+ const endpoint = version.webSocketDebuggerUrl;
529
+ if (!endpoint || typeof WebSocket !== 'function')
390
530
  return null;
391
- return page.context().newCDPSession(page);
531
+ const ws = new WebSocket(endpoint);
532
+ let nextId = 1;
533
+ const pending = new Map();
534
+ ws.addEventListener('message', event => {
535
+ let payload = null;
536
+ try {
537
+ payload = JSON.parse(String(event.data));
538
+ }
539
+ catch {
540
+ return;
541
+ }
542
+ if (!isRecord(payload) || typeof payload["id"] !== 'number' || !pending.has(payload["id"]))
543
+ return;
544
+ const callbacks = pending.get(payload["id"]);
545
+ pending.delete(payload["id"]);
546
+ const error = payload["error"];
547
+ if (isRecord(error))
548
+ callbacks.reject(new Error(typeof error["message"] === 'string' ? error["message"] : JSON.stringify(error)));
549
+ else
550
+ callbacks.resolve(payload["result"] || {});
551
+ });
552
+ await new Promise((resolve, reject) => {
553
+ ws.addEventListener('open', () => resolve(), { once: true });
554
+ ws.addEventListener('error', () => reject(new Error('CDP websocket connection failed')), { once: true });
555
+ });
556
+ return {
557
+ send(method, params = {}) {
558
+ const id = nextId++;
559
+ const promise = new Promise((resolve, reject) => pending.set(id, { resolve, reject }));
560
+ ws.send(JSON.stringify({ id, method, params }));
561
+ return promise;
562
+ },
563
+ async detach() {
564
+ for (const { reject } of pending.values())
565
+ reject(new Error('CDP session detached'));
566
+ pending.clear();
567
+ if (ws.readyState === WebSocket.OPEN || ws.readyState === WebSocket.CONNECTING)
568
+ ws.close();
569
+ },
570
+ };
571
+ }
572
+ function isReusableBlankTab(tab, allTabs = []) {
573
+ const url = String(tab.url || '').toLowerCase();
574
+ if (!tab.id || (url !== 'about:blank' && url !== ''))
575
+ return false;
576
+ return allTabs.length <= 1;
577
+ }
578
+ export async function createTab(port = getActivePort(), url = 'about:blank', opts = {}) {
579
+ const cdp = await getCdpSession(port);
580
+ if (!cdp)
581
+ throw new Error('No CDP session available for tab creation');
582
+ try {
583
+ if (url !== 'about:blank' && opts.reuseBlank !== false) {
584
+ const tabs = await readCdpPageTargets(port);
585
+ const blank = tabs.find(tab => isReusableBlankTab(tab, tabs));
586
+ if (blank?.id) {
587
+ const page = await waitForPageByTargetId(port, blank.id);
588
+ await page.goto(url, { waitUntil: 'domcontentloaded', timeout: 30_000 });
589
+ if (opts.activate !== false) {
590
+ await cdp.send('Target.activateTarget', { targetId: blank.id });
591
+ verifiedActiveTargetId = blank.id;
592
+ markBrowserStateChanged();
593
+ }
594
+ const lastActiveAt = markTabActive(blank.id);
595
+ const title = await page.title().catch(() => 'New Tab');
596
+ return { targetId: blank.id, url: page.url(), title, activated: opts.activate !== false, lastActiveAt, reusedBlank: true };
597
+ }
598
+ }
599
+ const { targetId } = await createTargetWithWindowFallback(cdp, url, opts);
600
+ await new Promise(r => setTimeout(r, 100));
601
+ const tabs = await readCdpPageTargets(port);
602
+ const tab = tabs.find(t => t.id === targetId);
603
+ const lastActiveAt = markTabActive(targetId);
604
+ return { targetId, url: tab?.url || url, title: tab?.title || 'New Tab', activated: opts.activate !== false, lastActiveAt };
605
+ }
606
+ finally {
607
+ await cdp.detach().catch(() => undefined);
608
+ }
609
+ }
610
+ async function createTargetWithWindowFallback(cdp, url, opts) {
611
+ try {
612
+ return requireTargetId(await cdp.send('Target.createTarget', { url, newWindow: false, background: !opts.activate }));
613
+ }
614
+ catch (error) {
615
+ if (!errorMessage(error).includes('no browser is open'))
616
+ throw error;
617
+ return requireTargetId(await cdp.send('Target.createTarget', { url, newWindow: true, background: false }));
618
+ }
619
+ }
620
+ export async function closeTab(port = getActivePort(), targetId) {
621
+ const cdp = await getCdpSession(port);
622
+ if (!cdp)
623
+ throw new Error('No CDP session available for tab close');
624
+ try {
625
+ await cdp.send('Target.closeTarget', { targetId });
626
+ forgetTabActivity(targetId);
627
+ return { closed: true, targetId };
628
+ }
629
+ catch (error) {
630
+ if (errorMessage(error).includes('No target')) {
631
+ forgetTabActivity(targetId);
632
+ return { closed: true, targetId, alreadyClosed: true };
633
+ }
634
+ throw error;
635
+ }
636
+ finally {
637
+ await cdp.detach().catch(() => undefined);
638
+ }
639
+ }
640
+ export async function getPageByTargetId(port = getActivePort(), targetId) {
641
+ const { browser } = await connectCdp(port);
642
+ const contexts = browser.contexts();
643
+ for (const context of contexts) {
644
+ for (const page of context.pages()) {
645
+ const session = await context.newCDPSession(page);
646
+ try {
647
+ const targetInfo = await session.send('Target.getTargetInfo');
648
+ if (targetInfoMatches(targetInfo, targetId)) {
649
+ markTabActive(targetId);
650
+ return page;
651
+ }
652
+ }
653
+ finally {
654
+ await session.detach().catch(() => undefined);
655
+ }
656
+ }
657
+ }
658
+ return null;
659
+ }
660
+ export async function waitForPageByTargetId(port = getActivePort(), targetId, timeoutMs = 10_000) {
661
+ const deadline = Date.now() + timeoutMs;
662
+ while (Date.now() < deadline) {
663
+ const page = await getPageByTargetId(port, targetId);
664
+ if (page && !page.isClosed?.())
665
+ return page;
666
+ await new Promise(r => setTimeout(r, 100));
667
+ }
668
+ throw new Error(`new tab page not found for targetId ${targetId}`);
392
669
  }
393
670
  export async function closeBrowser() {
394
671
  if (runtimeOwner?.ownership === 'external') {
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/browser/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/browser/connection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
- export { launchChrome, connectCdp, getActivePage, getActivePort, listTabs, getBrowserStatus, closeBrowser, getBrowserRuntimeStatus, beginBrowserActivity, withBrowserActivity, resetBrowserRuntimeForTests, getCdpSession, getActiveTab, switchTab, markBrowserStateChanged, getBrowserStateVersion, } from './connection.js';
1
+ export { launchChrome, connectCdp, getActivePage, getActivePort, listTabs, getBrowserStatus, closeBrowser, getBrowserRuntimeStatus, beginBrowserActivity, withBrowserActivity, resetBrowserRuntimeForTests, getCdpSession, getActiveTab, switchTab, createTab, closeTab, getPageByTargetId, waitForPageByTargetId, markBrowserStateChanged, getBrowserStateVersion, markTabActive, forgetTabActivity, getTabActivity, } from './connection.js';
2
+ export { getBrowserDiagnostics } from './runtime-diagnostics.js';
3
+ export { cleanupBrowserRuntimeOrphans, inspectBrowserRuntimeOrphans } from './runtime-orphans.js';
4
+ export { cleanupIdleTabs, isPinned, parseTabDuration, pinTab, selectTabsForCleanup, unpinTab, } from './tab-lifecycle.js';
2
5
  export * from './primitives.js';
3
6
  export { snapshot, screenshot, click, type, press, hover, navigate, evaluate, getPageText, mouseClick, getDom, waitForSelector, waitForText, reload, resize, scroll, select, drag, mouseMove, mouseDown, mouseUp, getConsole, getNetwork, } from './actions.js';
4
7
  export { visionClick, extractCoordinates } from './vision.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EACtD,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EACxC,uBAAuB,EAAE,oBAAoB,EAAE,mBAAmB,EAClE,2BAA2B,EAC3B,aAAa,EAAE,YAAY,EAAE,SAAS,EACtC,uBAAuB,EAAE,sBAAsB,GAClD,MAAM,iBAAiB,CAAC;AAGzB,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACH,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EACxC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EACtC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EACpC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GACxD,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EACtD,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EACxC,uBAAuB,EAAE,oBAAoB,EAAE,mBAAmB,EAClE,2BAA2B,EAC3B,aAAa,EAAE,YAAY,EAAE,SAAS,EACtC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,EAC7D,uBAAuB,EAAE,sBAAsB,EAC/C,aAAa,EAAE,iBAAiB,EAAE,cAAc,GACnD,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAElG,OAAO,EACH,eAAe,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,GACtF,MAAM,oBAAoB,CAAC;AAE5B,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACH,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EACxC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EACtC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EACpC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,GACxD,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAC"}
@@ -6,7 +6,7 @@ export function normalizeBrowserStartMode(mode) {
6
6
  }
7
7
  export function resolveLaunchPolicy(input = {}) {
8
8
  const mode = normalizeBrowserStartMode(input.mode);
9
- const envHeadless = input.envHeadless ?? process.env.CHROME_HEADLESS === '1';
9
+ const envHeadless = input.envHeadless ?? process.env["CHROME_HEADLESS"] === '1';
10
10
  const requestedHeadless = input.headless === true || envHeadless;
11
11
  if (mode === 'debug') {
12
12
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"launch-policy.js","sourceRoot":"","sources":["../../../src/browser/launch-policy.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,0BAA0B,GACnC,kFAAkF,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CAAC,IAAsC;IAC5E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3E,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkC,EAAE;IACpE,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,CAAC;IAC7E,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC;IAEjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,0BAA0B;SACzC,CAAC;IACN,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,IAAI;YACJ,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"launch-policy.js","sourceRoot":"","sources":["../../../src/browser/launch-policy.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,0BAA0B,GACnC,kFAAkF,CAAC;AAEvF,MAAM,UAAU,yBAAyB,CAAC,IAAsC;IAC5E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3E,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAkC,EAAE;IACpE,MAAM,IAAI,GAAG,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,GAAG,CAAC;IAChF,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,WAAW,CAAC;IAEjE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,IAAI;YACJ,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,0BAA0B;SACzC,CAAC;IACN,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACnB,OAAO;YACH,IAAI;YACJ,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,IAAI;SACjB,CAAC;IACN,CAAC;IAED,OAAO;QACH,IAAI;QACJ,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,iBAAiB;KAC9B,CAAC;AACN,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { stripUndefined } from '../core/strip-undefined.js';
1
2
  export class BrowserCapabilityError extends Error {
2
3
  capabilityId;
3
4
  stage;
@@ -34,9 +35,11 @@ export async function findVisibleCandidate(page, selectors, options = {}) {
34
35
  do {
35
36
  for (const selector of selectors) {
36
37
  const baseLocator = page.locator(selector);
37
- const count = await baseLocator.count().catch(() => 0);
38
+ const count = await baseLocator.count?.().catch(() => 0) ?? 0;
38
39
  for (let index = 0; index < count; index += 1) {
39
- const locator = typeof baseLocator.nth === 'function' ? baseLocator.nth(index) : baseLocator.first();
40
+ const locator = typeof baseLocator.nth === 'function'
41
+ ? baseLocator.nth(index)
42
+ : baseLocator.first?.() ?? baseLocator;
40
43
  const visible = await isLocatorVisible(locator);
41
44
  const candidate = { selector, index, locator, visible };
42
45
  firstCandidate ??= candidate;
@@ -107,7 +110,7 @@ export async function waitForStableTextAfterBaseline(page, selectors, baseline,
107
110
  await page.waitForTimeout?.(pollIntervalMs);
108
111
  }
109
112
  warnings.push('stable-text-timeout');
110
- return { ok: false, baseline, latestText: stableText, warnings };
113
+ return stripUndefined({ ok: false, baseline, latestText: stableText, warnings });
111
114
  }
112
115
  export async function captureBrowserDiagnostics(input = {}) {
113
116
  const page = input.page;
@@ -122,7 +125,8 @@ export async function captureBrowserDiagnostics(input = {}) {
122
125
  return out;
123
126
  }
124
127
  try {
125
- out.url = String(await page.url?.() ?? page.url ?? '');
128
+ const urlValue = typeof page.url === 'function' ? await page.url() : page.url;
129
+ out.url = String(urlValue ?? '');
126
130
  }
127
131
  catch (e) {
128
132
  out.warnings.push(`url:${e.message}`);
@@ -155,7 +159,7 @@ async function readTexts(page, selectors) {
155
159
  if (Array.isArray(evaluated) && evaluated.length > 0)
156
160
  return evaluated.map(String);
157
161
  for (const selector of selectors) {
158
- const locators = await page.locator(selector).all().catch(() => []);
162
+ const locators = await page.locator(selector).all?.().catch(() => []) ?? [];
159
163
  const texts = [];
160
164
  for (const locator of locators) {
161
165
  const text = String(await locator.innerText?.().catch(() => '') || '').trim();
@@ -169,7 +173,7 @@ async function readTexts(page, selectors) {
169
173
  }
170
174
  async function countSelector(page, selector) {
171
175
  try {
172
- return await page.locator(selector).count();
176
+ return await page.locator(selector).count?.() ?? 0;
173
177
  }
174
178
  catch {
175
179
  return 0;
@@ -177,7 +181,7 @@ async function countSelector(page, selector) {
177
181
  }
178
182
  async function countVisibleSelector(page, selector) {
179
183
  try {
180
- const locators = await page.locator(selector).all();
184
+ const locators = await page.locator(selector).all?.() ?? [];
181
185
  let total = 0;
182
186
  for (const locator of locators) {
183
187
  if (await isLocatorVisible(locator))