openchrome-mcp 1.12.7 → 1.12.9

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 (384) hide show
  1. package/.claude-plugin/plugin.json +22 -0
  2. package/.codex-plugin/plugin.json +20 -0
  3. package/README.ko.md +8 -1
  4. package/README.md +12 -9
  5. package/commands/connect.md +29 -0
  6. package/dist/auth/twofa-handler.js +2 -2
  7. package/dist/auth/twofa-handler.js.map +1 -1
  8. package/dist/broker/auto-elect.d.ts +77 -0
  9. package/dist/broker/auto-elect.d.ts.map +1 -0
  10. package/dist/broker/auto-elect.js +83 -0
  11. package/dist/broker/auto-elect.js.map +1 -0
  12. package/dist/broker/discovery.d.ts +6 -0
  13. package/dist/broker/discovery.d.ts.map +1 -1
  14. package/dist/broker/discovery.js +41 -0
  15. package/dist/broker/discovery.js.map +1 -1
  16. package/dist/chrome/headed-fallback.d.ts +2 -0
  17. package/dist/chrome/headed-fallback.d.ts.map +1 -1
  18. package/dist/chrome/headed-fallback.js +44 -4
  19. package/dist/chrome/headed-fallback.js.map +1 -1
  20. package/dist/chrome/launcher-debug-port.d.ts.map +1 -1
  21. package/dist/chrome/launcher-debug-port.js +42 -23
  22. package/dist/chrome/launcher-debug-port.js.map +1 -1
  23. package/dist/chrome/launcher.d.ts.map +1 -1
  24. package/dist/chrome/launcher.js +17 -3
  25. package/dist/chrome/launcher.js.map +1 -1
  26. package/dist/chrome/owner-self-release.d.ts +76 -0
  27. package/dist/chrome/owner-self-release.d.ts.map +1 -0
  28. package/dist/chrome/owner-self-release.js +136 -0
  29. package/dist/chrome/owner-self-release.js.map +1 -0
  30. package/dist/chrome/process-watchdog.d.ts.map +1 -1
  31. package/dist/chrome/process-watchdog.js +8 -0
  32. package/dist/chrome/process-watchdog.js.map +1 -1
  33. package/dist/cli/doctor/checks/chrome-binary.d.ts.map +1 -1
  34. package/dist/cli/doctor/checks/chrome-binary.js +27 -4
  35. package/dist/cli/doctor/checks/chrome-binary.js.map +1 -1
  36. package/dist/cli/doctor/checks/chrome-port.d.ts.map +1 -1
  37. package/dist/cli/doctor/checks/chrome-port.js +3 -0
  38. package/dist/cli/doctor/checks/chrome-port.js.map +1 -1
  39. package/dist/cli/doctor/checks/duplicate-controllers.d.ts.map +1 -1
  40. package/dist/cli/doctor/checks/duplicate-controllers.js +70 -3
  41. package/dist/cli/doctor/checks/duplicate-controllers.js.map +1 -1
  42. package/dist/cli/doctor/runtime-diagnostics.d.ts +36 -0
  43. package/dist/cli/doctor/runtime-diagnostics.d.ts.map +1 -0
  44. package/dist/cli/doctor/runtime-diagnostics.js +131 -0
  45. package/dist/cli/doctor/runtime-diagnostics.js.map +1 -0
  46. package/dist/cli/doctor.d.ts +11 -0
  47. package/dist/cli/doctor.d.ts.map +1 -1
  48. package/dist/cli/doctor.js +92 -3
  49. package/dist/cli/doctor.js.map +1 -1
  50. package/dist/cli/index.js +87 -181
  51. package/dist/cli/index.js.map +1 -1
  52. package/dist/cli/mcp-client-config.d.ts +5 -1
  53. package/dist/cli/mcp-client-config.js +30 -7
  54. package/dist/cli/mcp-client-config.js.map +1 -1
  55. package/dist/cli/mcp-config-diagnostics.d.ts +28 -0
  56. package/dist/cli/mcp-config-diagnostics.js +203 -0
  57. package/dist/cli/mcp-config-diagnostics.js.map +1 -0
  58. package/dist/gates/detect-other-gates.d.ts +11 -3
  59. package/dist/gates/detect-other-gates.d.ts.map +1 -1
  60. package/dist/gates/detect-other-gates.js +49 -1
  61. package/dist/gates/detect-other-gates.js.map +1 -1
  62. package/dist/hints/hint-engine.d.ts +3 -0
  63. package/dist/hints/hint-engine.d.ts.map +1 -1
  64. package/dist/hints/hint-engine.js +20 -4
  65. package/dist/hints/hint-engine.js.map +1 -1
  66. package/dist/index.js +150 -9
  67. package/dist/index.js.map +1 -1
  68. package/dist/tools/batch-paginate.d.ts.map +1 -1
  69. package/dist/tools/batch-paginate.js +4 -7
  70. package/dist/tools/batch-paginate.js.map +1 -1
  71. package/dist/tools/computer.d.ts.map +1 -1
  72. package/dist/tools/computer.js +2 -1
  73. package/dist/tools/computer.js.map +1 -1
  74. package/dist/tools/extract-data.d.ts.map +1 -1
  75. package/dist/tools/extract-data.js +1 -0
  76. package/dist/tools/extract-data.js.map +1 -1
  77. package/dist/tools/find.d.ts.map +1 -1
  78. package/dist/tools/find.js +2 -5
  79. package/dist/tools/find.js.map +1 -1
  80. package/dist/tools/image-qa.d.ts.map +1 -1
  81. package/dist/tools/image-qa.js +3 -2
  82. package/dist/tools/image-qa.js.map +1 -1
  83. package/dist/tools/interact.d.ts.map +1 -1
  84. package/dist/tools/interact.js +6 -5
  85. package/dist/tools/interact.js.map +1 -1
  86. package/dist/tools/javascript.d.ts +1 -1
  87. package/dist/tools/javascript.d.ts.map +1 -1
  88. package/dist/tools/javascript.js +45 -8
  89. package/dist/tools/javascript.js.map +1 -1
  90. package/dist/tools/oc-gate-inspect.d.ts +7 -6
  91. package/dist/tools/oc-gate-inspect.d.ts.map +1 -1
  92. package/dist/tools/oc-gate-inspect.js +8 -7
  93. package/dist/tools/oc-gate-inspect.js.map +1 -1
  94. package/dist/tools/oc-normalize-action.js +2 -2
  95. package/dist/tools/oc-normalize-action.js.map +1 -1
  96. package/dist/tools/oc-progress-status.js +2 -2
  97. package/dist/tools/oc-progress-status.js.map +1 -1
  98. package/dist/tools/page-screenshot.d.ts.map +1 -1
  99. package/dist/tools/page-screenshot.js +2 -7
  100. package/dist/tools/page-screenshot.js.map +1 -1
  101. package/dist/tools/vision-find.d.ts.map +1 -1
  102. package/dist/tools/vision-find.js +3 -2
  103. package/dist/tools/vision-find.js.map +1 -1
  104. package/dist/transports/broker-proxy.d.ts +34 -0
  105. package/dist/transports/broker-proxy.d.ts.map +1 -1
  106. package/dist/transports/broker-proxy.js +66 -1
  107. package/dist/transports/broker-proxy.js.map +1 -1
  108. package/dist/transports/duplicate-controller-error-server.d.ts +65 -0
  109. package/dist/transports/duplicate-controller-error-server.d.ts.map +1 -0
  110. package/dist/transports/duplicate-controller-error-server.js +296 -0
  111. package/dist/transports/duplicate-controller-error-server.js.map +1 -0
  112. package/dist/utils/controller-lock.d.ts +68 -0
  113. package/dist/utils/controller-lock.d.ts.map +1 -1
  114. package/dist/utils/controller-lock.js +250 -0
  115. package/dist/utils/controller-lock.js.map +1 -1
  116. package/dist/utils/duplicate-controller-diagnostics.d.ts +3 -0
  117. package/dist/utils/duplicate-controller-diagnostics.d.ts.map +1 -1
  118. package/dist/utils/duplicate-controller-diagnostics.js +22 -5
  119. package/dist/utils/duplicate-controller-diagnostics.js.map +1 -1
  120. package/dist/utils/image-mime.d.ts +18 -0
  121. package/dist/utils/image-mime.d.ts.map +1 -0
  122. package/dist/utils/image-mime.js +51 -0
  123. package/dist/utils/image-mime.js.map +1 -0
  124. package/dist/utils/static-fetch.js +2 -2
  125. package/dist/utils/static-fetch.js.map +1 -1
  126. package/dist/vision/screenshot-analyzer.d.ts.map +1 -1
  127. package/dist/vision/screenshot-analyzer.js +2 -1
  128. package/dist/vision/screenshot-analyzer.js.map +1 -1
  129. package/docs/agent/capability-map.md +144 -0
  130. package/package.json +13 -5
  131. package/skills/openchrome/SKILL.md +88 -0
  132. package/dist/cli/replay-server.d.ts +0 -34
  133. package/dist/cli/replay-server.js +0 -215
  134. package/dist/cli/replay-server.js.map +0 -1
  135. package/dist/cli/skill.d.ts +0 -14
  136. package/dist/cli/skill.js +0 -179
  137. package/dist/cli/skill.js.map +0 -1
  138. package/dist/cli/trace.d.ts +0 -16
  139. package/dist/cli/trace.js +0 -270
  140. package/dist/cli/trace.js.map +0 -1
  141. package/dist/contracts/evaluator.d.ts +0 -58
  142. package/dist/contracts/evaluator.d.ts.map +0 -1
  143. package/dist/contracts/evaluator.js +0 -151
  144. package/dist/contracts/evaluator.js.map +0 -1
  145. package/dist/contracts/evidence.d.ts +0 -122
  146. package/dist/contracts/evidence.d.ts.map +0 -1
  147. package/dist/contracts/evidence.js +0 -276
  148. package/dist/contracts/evidence.js.map +0 -1
  149. package/dist/contracts/handoff/banner.d.ts +0 -53
  150. package/dist/contracts/handoff/banner.d.ts.map +0 -1
  151. package/dist/contracts/handoff/banner.js +0 -136
  152. package/dist/contracts/handoff/banner.js.map +0 -1
  153. package/dist/contracts/handoff/index.d.ts +0 -11
  154. package/dist/contracts/handoff/index.d.ts.map +0 -1
  155. package/dist/contracts/handoff/index.js +0 -24
  156. package/dist/contracts/handoff/index.js.map +0 -1
  157. package/dist/contracts/handoff/manager.d.ts +0 -104
  158. package/dist/contracts/handoff/manager.d.ts.map +0 -1
  159. package/dist/contracts/handoff/manager.js +0 -184
  160. package/dist/contracts/handoff/manager.js.map +0 -1
  161. package/dist/contracts/handoff/persistence.d.ts +0 -76
  162. package/dist/contracts/handoff/persistence.d.ts.map +0 -1
  163. package/dist/contracts/handoff/persistence.js +0 -251
  164. package/dist/contracts/handoff/persistence.js.map +0 -1
  165. package/dist/contracts/handoff/token.d.ts +0 -22
  166. package/dist/contracts/handoff/token.d.ts.map +0 -1
  167. package/dist/contracts/handoff/token.js +0 -76
  168. package/dist/contracts/handoff/token.js.map +0 -1
  169. package/dist/contracts/idempotency.d.ts +0 -61
  170. package/dist/contracts/idempotency.d.ts.map +0 -1
  171. package/dist/contracts/idempotency.js +0 -182
  172. package/dist/contracts/idempotency.js.map +0 -1
  173. package/dist/contracts/runtime.d.ts +0 -166
  174. package/dist/contracts/runtime.d.ts.map +0 -1
  175. package/dist/contracts/runtime.js +0 -418
  176. package/dist/contracts/runtime.js.map +0 -1
  177. package/dist/contracts/screenshot-classes.d.ts +0 -78
  178. package/dist/contracts/screenshot-classes.d.ts.map +0 -1
  179. package/dist/contracts/screenshot-classes.js +0 -211
  180. package/dist/contracts/screenshot-classes.js.map +0 -1
  181. package/dist/contracts/templates/default-registry.d.ts +0 -31
  182. package/dist/contracts/templates/default-registry.d.ts.map +0 -1
  183. package/dist/contracts/templates/default-registry.js +0 -54
  184. package/dist/contracts/templates/default-registry.js.map +0 -1
  185. package/dist/contracts/templates/public-web/authenticated-fields.d.ts +0 -34
  186. package/dist/contracts/templates/public-web/authenticated-fields.d.ts.map +0 -1
  187. package/dist/contracts/templates/public-web/authenticated-fields.js +0 -82
  188. package/dist/contracts/templates/public-web/authenticated-fields.js.map +0 -1
  189. package/dist/contracts/templates/public-web/link-graph.d.ts +0 -24
  190. package/dist/contracts/templates/public-web/link-graph.d.ts.map +0 -1
  191. package/dist/contracts/templates/public-web/link-graph.js +0 -64
  192. package/dist/contracts/templates/public-web/link-graph.js.map +0 -1
  193. package/dist/contracts/templates/public-web/spa-hydrated.d.ts +0 -31
  194. package/dist/contracts/templates/public-web/spa-hydrated.d.ts.map +0 -1
  195. package/dist/contracts/templates/public-web/spa-hydrated.js +0 -81
  196. package/dist/contracts/templates/public-web/spa-hydrated.js.map +0 -1
  197. package/dist/core/codegen/formatters/mcp-replay.d.ts +0 -29
  198. package/dist/core/codegen/formatters/mcp-replay.d.ts.map +0 -1
  199. package/dist/core/codegen/formatters/mcp-replay.js +0 -37
  200. package/dist/core/codegen/formatters/mcp-replay.js.map +0 -1
  201. package/dist/core/codegen/formatters/playwright.d.ts +0 -13
  202. package/dist/core/codegen/formatters/playwright.d.ts.map +0 -1
  203. package/dist/core/codegen/formatters/playwright.js +0 -208
  204. package/dist/core/codegen/formatters/playwright.js.map +0 -1
  205. package/dist/core/codegen/formatters/puppeteer.d.ts +0 -39
  206. package/dist/core/codegen/formatters/puppeteer.d.ts.map +0 -1
  207. package/dist/core/codegen/formatters/puppeteer.js +0 -260
  208. package/dist/core/codegen/formatters/puppeteer.js.map +0 -1
  209. package/dist/core/codegen/formatters/shared.d.ts +0 -22
  210. package/dist/core/codegen/formatters/shared.d.ts.map +0 -1
  211. package/dist/core/codegen/formatters/shared.js +0 -41
  212. package/dist/core/codegen/formatters/shared.js.map +0 -1
  213. package/dist/core/codegen/secrets-hook.d.ts +0 -59
  214. package/dist/core/codegen/secrets-hook.d.ts.map +0 -1
  215. package/dist/core/codegen/secrets-hook.js +0 -73
  216. package/dist/core/codegen/secrets-hook.js.map +0 -1
  217. package/dist/harness/irreversible-action.d.ts +0 -20
  218. package/dist/harness/irreversible-action.d.ts.map +0 -1
  219. package/dist/harness/irreversible-action.js +0 -150
  220. package/dist/harness/irreversible-action.js.map +0 -1
  221. package/dist/perception/cache.d.ts +0 -48
  222. package/dist/perception/cache.d.ts.map +0 -1
  223. package/dist/perception/cache.js +0 -74
  224. package/dist/perception/cache.js.map +0 -1
  225. package/dist/perception/cross-check.d.ts +0 -55
  226. package/dist/perception/cross-check.d.ts.map +0 -1
  227. package/dist/perception/cross-check.js +0 -74
  228. package/dist/perception/cross-check.js.map +0 -1
  229. package/dist/perception/image-features.d.ts +0 -58
  230. package/dist/perception/image-features.d.ts.map +0 -1
  231. package/dist/perception/image-features.js +0 -148
  232. package/dist/perception/image-features.js.map +0 -1
  233. package/dist/perception/index.d.ts +0 -16
  234. package/dist/perception/index.d.ts.map +0 -1
  235. package/dist/perception/index.js +0 -32
  236. package/dist/perception/index.js.map +0 -1
  237. package/dist/perception/metadata.d.ts +0 -23
  238. package/dist/perception/metadata.d.ts.map +0 -1
  239. package/dist/perception/metadata.js +0 -117
  240. package/dist/perception/metadata.js.map +0 -1
  241. package/dist/perception/types.d.ts +0 -77
  242. package/dist/perception/types.d.ts.map +0 -1
  243. package/dist/perception/types.js +0 -10
  244. package/dist/perception/types.js.map +0 -1
  245. package/dist/perception/voting/args-equivalence.d.ts +0 -36
  246. package/dist/perception/voting/args-equivalence.d.ts.map +0 -1
  247. package/dist/perception/voting/args-equivalence.js +0 -163
  248. package/dist/perception/voting/args-equivalence.js.map +0 -1
  249. package/dist/perception/voting/index.d.ts +0 -9
  250. package/dist/perception/voting/index.d.ts.map +0 -1
  251. package/dist/perception/voting/index.js +0 -18
  252. package/dist/perception/voting/index.js.map +0 -1
  253. package/dist/perception/voting/orchestrator.d.ts +0 -118
  254. package/dist/perception/voting/orchestrator.d.ts.map +0 -1
  255. package/dist/perception/voting/orchestrator.js +0 -200
  256. package/dist/perception/voting/orchestrator.js.map +0 -1
  257. package/dist/perception/voting/providers/anthropic.d.ts +0 -40
  258. package/dist/perception/voting/providers/anthropic.d.ts.map +0 -1
  259. package/dist/perception/voting/providers/anthropic.js +0 -91
  260. package/dist/perception/voting/providers/anthropic.js.map +0 -1
  261. package/dist/perception/voting/providers/http-helpers.d.ts +0 -49
  262. package/dist/perception/voting/providers/http-helpers.d.ts.map +0 -1
  263. package/dist/perception/voting/providers/http-helpers.js +0 -131
  264. package/dist/perception/voting/providers/http-helpers.js.map +0 -1
  265. package/dist/perception/voting/providers/index.d.ts +0 -13
  266. package/dist/perception/voting/providers/index.d.ts.map +0 -1
  267. package/dist/perception/voting/providers/index.js +0 -24
  268. package/dist/perception/voting/providers/index.js.map +0 -1
  269. package/dist/perception/voting/providers/openai.d.ts +0 -31
  270. package/dist/perception/voting/providers/openai.d.ts.map +0 -1
  271. package/dist/perception/voting/providers/openai.js +0 -88
  272. package/dist/perception/voting/providers/openai.js.map +0 -1
  273. package/dist/pilot/handoff/definitions.d.ts +0 -5
  274. package/dist/pilot/handoff/definitions.d.ts.map +0 -1
  275. package/dist/pilot/handoff/definitions.js +0 -53
  276. package/dist/pilot/handoff/definitions.js.map +0 -1
  277. package/dist/resources/trace-resource.d.ts +0 -50
  278. package/dist/resources/trace-resource.d.ts.map +0 -1
  279. package/dist/resources/trace-resource.js +0 -214
  280. package/dist/resources/trace-resource.js.map +0 -1
  281. package/dist/security/shared-profile-policy.d.ts +0 -32
  282. package/dist/security/shared-profile-policy.d.ts.map +0 -1
  283. package/dist/security/shared-profile-policy.js +0 -48
  284. package/dist/security/shared-profile-policy.js.map +0 -1
  285. package/dist/skill/audit.d.ts +0 -55
  286. package/dist/skill/audit.d.ts.map +0 -1
  287. package/dist/skill/audit.js +0 -70
  288. package/dist/skill/audit.js.map +0 -1
  289. package/dist/skill/executor.d.ts +0 -117
  290. package/dist/skill/executor.d.ts.map +0 -1
  291. package/dist/skill/executor.js +0 -233
  292. package/dist/skill/executor.js.map +0 -1
  293. package/dist/skill/index.d.ts +0 -17
  294. package/dist/skill/index.d.ts.map +0 -1
  295. package/dist/skill/index.js +0 -27
  296. package/dist/skill/index.js.map +0 -1
  297. package/dist/skill/interactive-filter.d.ts +0 -25
  298. package/dist/skill/interactive-filter.d.ts.map +0 -1
  299. package/dist/skill/interactive-filter.js +0 -57
  300. package/dist/skill/interactive-filter.js.map +0 -1
  301. package/dist/skill/state.d.ts +0 -73
  302. package/dist/skill/state.d.ts.map +0 -1
  303. package/dist/skill/state.js +0 -153
  304. package/dist/skill/state.js.map +0 -1
  305. package/dist/skill/storage.d.ts +0 -123
  306. package/dist/skill/storage.d.ts.map +0 -1
  307. package/dist/skill/storage.js +0 -316
  308. package/dist/skill/storage.js.map +0 -1
  309. package/dist/skill/url-normalizer.d.ts +0 -31
  310. package/dist/skill/url-normalizer.d.ts.map +0 -1
  311. package/dist/skill/url-normalizer.js +0 -73
  312. package/dist/skill/url-normalizer.js.map +0 -1
  313. package/dist/skill-memory/audit-stats.d.ts +0 -51
  314. package/dist/skill-memory/audit-stats.d.ts.map +0 -1
  315. package/dist/skill-memory/audit-stats.js +0 -189
  316. package/dist/skill-memory/audit-stats.js.map +0 -1
  317. package/dist/skill-memory/curator-lock.d.ts +0 -56
  318. package/dist/skill-memory/curator-lock.d.ts.map +0 -1
  319. package/dist/skill-memory/curator-lock.js +0 -205
  320. package/dist/skill-memory/curator-lock.js.map +0 -1
  321. package/dist/skill-memory/curator-pass2.d.ts +0 -81
  322. package/dist/skill-memory/curator-pass2.d.ts.map +0 -1
  323. package/dist/skill-memory/curator-pass2.js +0 -256
  324. package/dist/skill-memory/curator-pass2.js.map +0 -1
  325. package/dist/skill-memory/curator.d.ts +0 -88
  326. package/dist/skill-memory/curator.d.ts.map +0 -1
  327. package/dist/skill-memory/curator.js +0 -253
  328. package/dist/skill-memory/curator.js.map +0 -1
  329. package/dist/skill-memory/extractor.d.ts +0 -76
  330. package/dist/skill-memory/extractor.d.ts.map +0 -1
  331. package/dist/skill-memory/extractor.js +0 -257
  332. package/dist/skill-memory/extractor.js.map +0 -1
  333. package/dist/skill-memory/index.d.ts +0 -26
  334. package/dist/skill-memory/index.d.ts.map +0 -1
  335. package/dist/skill-memory/index.js +0 -49
  336. package/dist/skill-memory/index.js.map +0 -1
  337. package/dist/skill-memory/llm-merge.d.ts +0 -68
  338. package/dist/skill-memory/llm-merge.d.ts.map +0 -1
  339. package/dist/skill-memory/llm-merge.js +0 -170
  340. package/dist/skill-memory/llm-merge.js.map +0 -1
  341. package/dist/skill-memory/recall.d.ts +0 -88
  342. package/dist/skill-memory/recall.d.ts.map +0 -1
  343. package/dist/skill-memory/recall.js +0 -182
  344. package/dist/skill-memory/recall.js.map +0 -1
  345. package/dist/skill-memory/skill-md.d.ts +0 -26
  346. package/dist/skill-memory/skill-md.d.ts.map +0 -1
  347. package/dist/skill-memory/skill-md.js +0 -227
  348. package/dist/skill-memory/skill-md.js.map +0 -1
  349. package/dist/skill-memory/stop-words.d.ts +0 -10
  350. package/dist/skill-memory/stop-words.d.ts.map +0 -1
  351. package/dist/skill-memory/stop-words.js +0 -41
  352. package/dist/skill-memory/stop-words.js.map +0 -1
  353. package/dist/skill-memory/types.d.ts +0 -71
  354. package/dist/skill-memory/types.d.ts.map +0 -1
  355. package/dist/skill-memory/types.js +0 -19
  356. package/dist/skill-memory/types.js.map +0 -1
  357. package/dist/trace/cdp-attach.d.ts +0 -51
  358. package/dist/trace/cdp-attach.d.ts.map +0 -1
  359. package/dist/trace/cdp-attach.js +0 -68
  360. package/dist/trace/cdp-attach.js.map +0 -1
  361. package/dist/trace/index.d.ts +0 -14
  362. package/dist/trace/index.d.ts.map +0 -1
  363. package/dist/trace/index.js +0 -24
  364. package/dist/trace/index.js.map +0 -1
  365. package/dist/trace/recorder.d.ts +0 -102
  366. package/dist/trace/recorder.d.ts.map +0 -1
  367. package/dist/trace/recorder.js +0 -247
  368. package/dist/trace/recorder.js.map +0 -1
  369. package/dist/trace/redactor.d.ts +0 -37
  370. package/dist/trace/redactor.d.ts.map +0 -1
  371. package/dist/trace/redactor.js +0 -195
  372. package/dist/trace/redactor.js.map +0 -1
  373. package/dist/trace/storage.d.ts +0 -70
  374. package/dist/trace/storage.d.ts.map +0 -1
  375. package/dist/trace/storage.js +0 -252
  376. package/dist/trace/storage.js.map +0 -1
  377. package/dist/trace/types.d.ts +0 -43
  378. package/dist/trace/types.d.ts.map +0 -1
  379. package/dist/trace/types.js +0 -9
  380. package/dist/trace/types.js.map +0 -1
  381. package/dist/utils/auth-token.d.ts +0 -18
  382. package/dist/utils/auth-token.d.ts.map +0 -1
  383. package/dist/utils/auth-token.js +0 -95
  384. package/dist/utils/auth-token.js.map +0 -1
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
+ "name": "openchrome",
4
+ "displayName": "OpenChrome",
5
+ "version": "1.12.5",
6
+ "description": "Harness-engineered browser automation. Control your real Chrome from any AI agent via MCP — parallel lanes, auto-recovery, verifiable contracts.",
7
+ "author": {
8
+ "name": "OpenChrome contributors",
9
+ "url": "https://github.com/shaun0927/openchrome"
10
+ },
11
+ "homepage": "https://github.com/shaun0927/openchrome",
12
+ "repository": "https://github.com/shaun0927/openchrome",
13
+ "license": "MIT",
14
+ "keywords": ["browser", "automation", "mcp", "chrome", "cdp"],
15
+ "mcpServers": {
16
+ "openchrome": {
17
+ "command": "openchrome",
18
+ "args": ["serve", "--auto-launch"]
19
+ }
20
+ },
21
+ "skills": "./skills/"
22
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "openchrome",
3
+ "version": "1.12.5",
4
+ "description": "Harness-engineered browser automation. Control your real Chrome from any AI agent via MCP — parallel lanes, auto-recovery, verifiable contracts.",
5
+ "author": {
6
+ "name": "OpenChrome contributors",
7
+ "url": "https://github.com/shaun0927/openchrome"
8
+ },
9
+ "homepage": "https://github.com/shaun0927/openchrome",
10
+ "repository": "https://github.com/shaun0927/openchrome",
11
+ "license": "MIT",
12
+ "keywords": ["browser", "automation", "mcp", "chrome", "cdp"],
13
+ "mcpServers": {
14
+ "openchrome": {
15
+ "command": "openchrome",
16
+ "args": ["serve", "--auto-launch"]
17
+ }
18
+ },
19
+ "skills": "./skills/"
20
+ }
package/README.ko.md CHANGED
@@ -68,6 +68,13 @@ npx openchrome-mcp setup --client opencode # OpenCode
68
68
 
69
69
  MCP 클라이언트를 재시작하세요. 끝입니다 — 첫 도구 호출 시 Chrome이 자동 실행됩니다.
70
70
 
71
+ **업데이트는 설정 마이그레이션이 아닙니다.** `npm install -g openchrome-mcp@latest`는
72
+ OpenChrome 바이너리를 업데이트하지만, 기존 Claude Code, Codex CLI, OpenCode 또는 기타
73
+ MCP 호스트 등록을 자동으로 다시 쓰지는 않습니다. 릴리스 노트에서 새 토폴로지(예:
74
+ isolated profile, broker mode, 향후 auto-elect mode)로 이동하라고 안내하는 경우,
75
+ `openchrome setup --client <host> ...`를 다시 실행하거나 호스트 설정을 수동으로
76
+ 수정한 뒤 해당 호스트 세션을 재시작해야 새 MCP namespace가 로드됩니다.
77
+
71
78
  <details>
72
79
  <summary>수동 MCP 설정 (Cursor / VS Code / Windsurf 등)</summary>
73
80
 
@@ -194,7 +201,7 @@ query_dom → inspect → interact` 대신 **바로 실행 가능한 번호 목
194
201
 
195
202
  ## 알아두면 좋은 그 외 기능
196
203
 
197
- - **병렬 세션** — Chrome 1개, 탭/레인 N개; `workerId` + `profileDirectory`로 클라이언트별 격리. 여러 MCP 클라이언트는 단일 broker/HTTP 소유자를 통해 연결할 때(`--broker` / `--connect-broker`) 하나의 Chrome을 안전하게 공유합니다. 독립 stdio 클라이언트는 `--port` / `--user-data-dir` 프로파일을 분리하세요. [`docs/mcp/topologies.md`](docs/mcp/topologies.md) 참고.
204
+ - **병렬 세션** — Chrome 1개, 탭/레인 N개; `workerId` + `profileDirectory`로 클라이언트별 격리. 여러 MCP 클라이언트는 단일 broker/HTTP 소유자를 통해 연결할 때(`--broker` / `--connect-broker`) 하나의 Chrome을 안전하게 공유합니다. 독립 stdio 클라이언트는 `--port` / `--user-data-dir` 프로파일을 분리하세요. duplicate-controller 또는 `-32000` 시작 실패를 보고 OpenChrome을 업데이트했다면 MCP 호스트 설정도 마이그레이션하고 호스트를 재시작해야 합니다. 패키지 업데이트만으로 기존 등록은 바뀌지 않습니다. [`docs/mcp/topologies.md`](docs/mcp/topologies.md) 참고.
198
205
  - **봇 차단 / Turnstile 대응** — 3단계 자동 폴백 (headless → stealth → 실제 headed Chrome)으로 CDN/WAF 차단 우회. [Turnstile 가이드](docs/turnstile-guide.md).
199
206
  - **대화형 로그인** — 런처가 기본적으로 화면에 보이게 실행되므로 2FA/CAPTCHA를 한 번 완료한 뒤 영구 프로필을 재사용.
200
207
  - **세션 지속성** — `--persist-storage`로 쿠키 + localStorage를 원자적으로 저장해 headless에서 재사용.
package/README.md CHANGED
@@ -47,11 +47,6 @@ AI: [4 parallel lanes, already authenticated everywhere]
47
47
  | Re-auth | every run | **never** |
48
48
  | Bot detection | flagged | **invisible** (real Chrome) |
49
49
 
50
- <sub>\* Illustrative of the architectural difference (one authenticated Chrome vs. N cold
51
- browsers), not benchmarked competitive results. Quantitative speed/cost figures become
52
- headline claims only as live or recorded-real benchmark rows — see
53
- [`docs/benchmarks/benchmark-direction.md`](docs/benchmarks/benchmark-direction.md).</sub>
54
-
55
50
  ---
56
51
 
57
52
  ## Quick start
@@ -62,12 +57,20 @@ Install and point your MCP client at it — one command:
62
57
  npm install -g openchrome-mcp
63
58
 
64
59
  openchrome setup # Claude Code
65
- openchrome setup --client codex # Codex CLI
66
- npx openchrome-mcp setup --client opencode # OpenCode
60
+ openchrome setup --client codex # Codex CLI (auto-elect topology)
61
+ npx openchrome-mcp setup --client opencode # OpenCode (auto-elect topology)
67
62
  ```
68
63
 
69
64
  Restart your MCP client. That's it — Chrome auto-launches on first tool call.
70
65
 
66
+ **Updating is not configuration migration.** `npm install -g openchrome-mcp@latest`
67
+ updates the OpenChrome binary, but it does not rewrite existing Claude Code,
68
+ Codex CLI, OpenCode, or other MCP host registrations. If a release note asks you
69
+ to move to a new topology (for example isolated profiles, broker mode, or a
70
+ legacy single-owner or manual broker topology), rerun `openchrome setup --client <host> ...` or update
71
+ the host config manually, then restart that host session so the MCP namespace is
72
+ loaded from the new config.
73
+
71
74
  For manual Codex CLI configuration, run `openchrome config --client codex`
72
75
  and add the printed `[mcp_servers.openchrome]` block to `~/.codex/config.toml`.
73
76
 
@@ -79,7 +82,7 @@ and add the printed `[mcp_servers.openchrome]` block to `~/.codex/config.toml`.
79
82
  "mcpServers": {
80
83
  "openchrome": {
81
84
  "command": "openchrome",
82
- "args": ["serve", "--auto-launch"]
85
+ "args": ["serve", "--auto-launch", "--auto-elect"]
83
86
  }
84
87
  }
85
88
  }
@@ -199,7 +202,7 @@ claims only when backed by live or recorded-real benchmark rows — see
199
202
 
200
203
  ## Other capabilities worth knowing
201
204
 
202
- - **Parallel sessions** — 1 Chrome, N tabs/lanes; `workerId` + `profileDirectory` give per-client isolation. Multiple MCP clients can share one Chrome safely when they connect through a single broker/HTTP owner (`--broker` / `--connect-broker`); independent stdio clients should use separate `--port` / `--user-data-dir` profiles. See [`docs/mcp/topologies.md`](docs/mcp/topologies.md).
205
+ - **Parallel sessions** — 1 Chrome, N tabs/lanes; `workerId` + `profileDirectory` give per-client isolation. Multiple MCP clients can share one Chrome safely when they connect through a single broker/HTTP owner (`--broker` / `--connect-broker`); independent stdio clients should use separate `--port` / `--user-data-dir` profiles. If you upgraded OpenChrome after seeing duplicate-controller or `-32000` startup failures, also migrate the MCP host config and restart the host; package updates alone do not change existing registrations. See [`docs/mcp/topologies.md`](docs/mcp/topologies.md).
203
206
  - **Anti-bot / Turnstile** — 3-tier auto-fallback (headless → stealth → real headed Chrome) bypasses CDN/WAF blocks. [Turnstile guide](docs/turnstile-guide.md).
204
207
  - **Interactive login** — headed by default since the launcher runs visible; complete 2FA/CAPTCHA once, reuse the persistent profile after.
205
208
  - **Session persistence** — `--persist-storage` saves cookies + localStorage atomically for headless reuse.
@@ -0,0 +1,29 @@
1
+ ---
2
+ description: >
3
+ Connect to OpenChrome and confirm the MCP server is reachable. Runs a quick
4
+ health check, reports the Chrome CDP status, and prints the tool surface summary.
5
+ ---
6
+
7
+ # /openchrome:connect
8
+
9
+ Check that OpenChrome is installed, the MCP server is running, and Chrome is
10
+ reachable. Then print a one-line summary of the available tool surface.
11
+
12
+ ## Steps
13
+
14
+ 1. Call `oc_connection_health` to verify the CDP connection and server version.
15
+ 2. If `status` is `"ok"`, respond: "OpenChrome is connected — Chrome is live on
16
+ `<cdp_url>`. Server v`<version>` · `<tool_count>` tools available."
17
+ 3. If `status` is not `"ok"`, report the error message verbatim and suggest
18
+ running `openchrome doctor` in a terminal to diagnose.
19
+
20
+ ## Example output
21
+
22
+ ```
23
+ OpenChrome is connected — Chrome is live on ws://127.0.0.1:9222.
24
+ Server v1.12.5 · 110 tools available.
25
+ ```
26
+
27
+ ## Arguments
28
+
29
+ `$ARGUMENTS` — ignored; this command takes no arguments.
@@ -11,7 +11,7 @@ const totp_manager_1 = require("./totp-manager");
11
11
  */
12
12
  async function waitForPageChange(page, originalUrl, timeoutMs) {
13
13
  const deadline = Date.now() + timeoutMs;
14
- const pollIntervalMs = 500;
14
+ const pollIntervalMs = Math.min(500, Math.max(1, Math.floor(timeoutMs / 2) || 1));
15
15
  while (Date.now() < deadline) {
16
16
  try {
17
17
  const currentUrl = page.url();
@@ -82,7 +82,7 @@ async function handleTwoFA(page, detection, options) {
82
82
  const code = (0, totp_manager_1.generateTOTP)(secret, { timeOffset });
83
83
  await fillAndSubmit(page, detection.inputSelector, detection.submitSelector, code);
84
84
  // Wait briefly and check if page changed
85
- const changed = await waitForPageChange(page, originalUrl, 3000);
85
+ const changed = await waitForPageChange(page, originalUrl, Math.min(timeoutMs, 3000));
86
86
  if (changed) {
87
87
  filled = true;
88
88
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"twofa-handler.js","sourceRoot":"","sources":["../../src/auth/twofa-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twofa-handler.js","sourceRoot":"","sources":["../../src/auth/twofa-handler.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAyFH,kCA8IC;AArOD,qDAAmE;AACnE,iDAA8C;AAwB9C;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,IAAS,EACT,WAAmB,EACnB,SAAiB;IAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAElF,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,IAAS,EACT,aAAqB,EACrB,cAAkC,EAClC,IAAY;IAEZ,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,MAAM,IAAI,CAAC,QAAQ,CACjB,CAAC,QAAgB,EAAE,EAAE;QACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAmB,QAAQ,CAAC,CAAC;QAC9D,IAAI,EAAE;YAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;IACxB,CAAC,EACD,aAAa,CACd,CAAC;IACF,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAErC,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,2CAA2C;YAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,WAAW,CAC/B,IAAS,EACT,SAA+B,EAC/B,OAA4B;IAE5B,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAElF,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,0BAAS,CAAC,OAAO;YACvB,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,2BAA2B;SACrC,CAAC;IACJ,CAAC;IAED,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACpB,yDAAyD;YACzD,IAAI,kBAAkB,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;gBAClD,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;gBACpE,MAAM,MAAM,GAAG,WAAW,EAAE,UAAU,CAAC;gBACvC,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC/B,IAAI,MAAM,GAAG,KAAK,CAAC;oBAEnB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;wBACtD,mDAAmD;wBACnD,MAAM,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBAC/B,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBAE7C,IAAI,CAAC;4BACH,MAAM,IAAI,GAAG,IAAA,2BAAY,EAAC,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;4BAClD,MAAM,aAAa,CACjB,IAAI,EACJ,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,cAAc,EACxB,IAAI,CACL,CAAC;4BAEF,yCAAyC;4BACzC,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;4BACtF,IAAI,OAAO,EAAE,CAAC;gCACZ,MAAM,GAAG,IAAI,CAAC;gCACd,MAAM;4BACR,CAAC;wBACH,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,OAAO,CAAC,KAAK,CACX,qCAAqC,OAAO,GAAG,CAAC,UAAU,EAC1D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACzC,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAED,IAAI,MAAM,EAAE,CAAC;wBACX,OAAO;4BACL,OAAO,EAAE,IAAI;4BACb,IAAI,EAAE,0BAAS,CAAC,IAAI;4BACpB,MAAM,EAAE,WAAW;4BACnB,OAAO,EAAE,sCAAsC,MAAM,EAAE;yBACxD,CAAC;oBACJ,CAAC;oBAED,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,IAAI,EAAE,0BAAS,CAAC,IAAI;wBACpB,MAAM,EAAE,aAAa;wBACrB,OAAO,EAAE,0BAA0B,UAAU,iBAAiB,MAAM,6CAA6C;qBAClH,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,mDAAmD;YACnD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,0BAA0B,MAAM,qDAAqD,MAAM,oBAAoB;aACzH,CAAC;QACJ,CAAC;QAED,KAAK,0BAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3F,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,iBAAiB,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,GAAG;gBACnB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,oBAAoB,SAAS,yBAAyB;aAChE,CAAC;QACJ,CAAC;QAED,KAAK,0BAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACrB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,KAAK;gBACrB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,6DAA6D;aACvE,CAAC;QACJ,CAAC;QAED,KAAK,0BAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACpB,iDAAiD;YACjD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAEtE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,IAAI,EAAE,0BAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,WAAW;oBACnB,OAAO,EAAE,iDAAiD,MAAM,EAAE;iBACnE,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,SAAS;gBACjB,OAAO,EAAE,4BAA4B,SAAS,2DAA2D;aAC1G,CAAC;QACJ,CAAC;QAED,KAAK,0BAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,QAAQ;gBACxB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,oDAAoD;aAC9D,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,0BAAS,CAAC,OAAO;gBACvB,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE,gCAAgC,MAAM,iCAAiC;aACjF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Auto-elect coordinated sharing (#1480; SSOT decision D3 Q1′).
3
+ *
4
+ * Pure, side-effect-free decision helpers for the default `serve --auto-launch`
5
+ * election path:
6
+ *
7
+ * - the process that WINS the controller lock becomes the broker OWNER and
8
+ * publishes broker discovery metadata (so surplus sessions can attach);
9
+ * - a process that LOSES to a healthy owner becomes a coordinated CLIENT
10
+ * (`--connect-broker` proxy) instead of failing fast.
11
+ *
12
+ * The default applies only to the direct `serve --auto-launch` path. Operators
13
+ * can still opt out (`--no-auto-elect` / `OPENCHROME_AUTO_ELECT=0`) or choose an
14
+ * explicit role (`--broker` / `--connect-broker`), and the unsafe shared attach
15
+ * escape hatch remains separate. Keeping the decisions here (rather than inline
16
+ * in src/index.ts) makes the election rules unit-testable without booting a
17
+ * server or Chrome.
18
+ */
19
+ /** Offset from the CDP port used for the elected owner's broker HTTP endpoint. */
20
+ export declare const BROKER_HTTP_PORT_OFFSET = 200;
21
+ export interface AutoElectDecisionContext {
22
+ /** Commander value for --auto-elect / --no-auto-elect. false is explicit opt-out. */
23
+ autoElect?: boolean;
24
+ /** This process owns Chrome lifecycle and participates in controller-lock election. */
25
+ autoLaunch?: boolean;
26
+ /** Explicit broker owner role. Explicit roles take precedence over auto-elect. */
27
+ broker?: boolean;
28
+ /** Explicit broker client role. Explicit roles take precedence over auto-elect. */
29
+ connectBroker?: boolean;
30
+ }
31
+ /**
32
+ * Is coordinated auto-elect enabled for this process?
33
+ *
34
+ * Default true only for the direct `serve --auto-launch` path. Explicit opt-outs
35
+ * win (`--no-auto-elect`, `OPENCHROME_AUTO_ELECT=0`), and explicit broker/client
36
+ * roles are not auto-election decisions.
37
+ */
38
+ export declare function isAutoElectEnabled(opts: AutoElectDecisionContext, env?: NodeJS.ProcessEnv): boolean;
39
+ /**
40
+ * Should the lock WINNER elect itself as the broker owner (publish a broker so
41
+ * losers can attach)?
42
+ *
43
+ * Only when auto-elect is on, this process owns Chrome lifecycle (`--auto-launch`),
44
+ * and the operator did not already pick an explicit role. Explicit `--broker` /
45
+ * `--connect-broker` always win over auto-elect — auto-elect never overrides a
46
+ * deliberate operator choice.
47
+ */
48
+ export declare function shouldElectBrokerOwner(params: {
49
+ autoElect: boolean;
50
+ autoLaunch: boolean;
51
+ manualBroker: boolean;
52
+ connectBroker: boolean;
53
+ }): boolean;
54
+ /**
55
+ * Should a process that LOST the controller lock attach as a coordinated client
56
+ * rather than fail fast?
57
+ *
58
+ * Only when auto-elect is on AND a broker is actually discoverable for this
59
+ * `(port, userDataDir)` — i.e. the healthy owner is itself an auto-elect/broker
60
+ * owner. If the owner is a plain direct controller (no broker published), there
61
+ * is nothing to attach to and the caller must fall back to the normal
62
+ * duplicate-controller remediation.
63
+ */
64
+ export declare function shouldClientAutoConnect(params: {
65
+ autoElect: boolean;
66
+ brokerPresent: boolean;
67
+ }): boolean;
68
+ /**
69
+ * The default broker HTTP port for an auto-elected owner on a given CDP port.
70
+ *
71
+ * Deterministic (`cdpPort + 200`, e.g. 9222 → 9422) so it is predictable and
72
+ * clear of the headed-fallback offset (`+100`). Operators can still override via
73
+ * `--http`/`OPENCHROME_HTTP_PORT`; clients never rely on this value directly —
74
+ * they read the actual endpoint from the published broker metadata.
75
+ */
76
+ export declare function defaultBrokerHttpPort(cdpPort: number): number;
77
+ //# sourceMappingURL=auto-elect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-elect.d.ts","sourceRoot":"","sources":["../../src/broker/auto-elect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,MAAM,WAAW,wBAAwB;IACvC,qFAAqF;IACrF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uFAAuF;IACvF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,wBAAwB,EAC9B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAKT;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAOV;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAEV;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Auto-elect coordinated sharing (#1480; SSOT decision D3 Q1′).
4
+ *
5
+ * Pure, side-effect-free decision helpers for the default `serve --auto-launch`
6
+ * election path:
7
+ *
8
+ * - the process that WINS the controller lock becomes the broker OWNER and
9
+ * publishes broker discovery metadata (so surplus sessions can attach);
10
+ * - a process that LOSES to a healthy owner becomes a coordinated CLIENT
11
+ * (`--connect-broker` proxy) instead of failing fast.
12
+ *
13
+ * The default applies only to the direct `serve --auto-launch` path. Operators
14
+ * can still opt out (`--no-auto-elect` / `OPENCHROME_AUTO_ELECT=0`) or choose an
15
+ * explicit role (`--broker` / `--connect-broker`), and the unsafe shared attach
16
+ * escape hatch remains separate. Keeping the decisions here (rather than inline
17
+ * in src/index.ts) makes the election rules unit-testable without booting a
18
+ * server or Chrome.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.BROKER_HTTP_PORT_OFFSET = void 0;
22
+ exports.isAutoElectEnabled = isAutoElectEnabled;
23
+ exports.shouldElectBrokerOwner = shouldElectBrokerOwner;
24
+ exports.shouldClientAutoConnect = shouldClientAutoConnect;
25
+ exports.defaultBrokerHttpPort = defaultBrokerHttpPort;
26
+ /** Offset from the CDP port used for the elected owner's broker HTTP endpoint. */
27
+ exports.BROKER_HTTP_PORT_OFFSET = 200;
28
+ /**
29
+ * Is coordinated auto-elect enabled for this process?
30
+ *
31
+ * Default true only for the direct `serve --auto-launch` path. Explicit opt-outs
32
+ * win (`--no-auto-elect`, `OPENCHROME_AUTO_ELECT=0`), and explicit broker/client
33
+ * roles are not auto-election decisions.
34
+ */
35
+ function isAutoElectEnabled(opts, env = process.env) {
36
+ if (env.OPENCHROME_AUTO_ELECT === '0' || opts.autoElect === false)
37
+ return false;
38
+ if (opts.broker || opts.connectBroker)
39
+ return false;
40
+ if (opts.autoElect === true || env.OPENCHROME_AUTO_ELECT === '1')
41
+ return true;
42
+ return opts.autoLaunch === true;
43
+ }
44
+ /**
45
+ * Should the lock WINNER elect itself as the broker owner (publish a broker so
46
+ * losers can attach)?
47
+ *
48
+ * Only when auto-elect is on, this process owns Chrome lifecycle (`--auto-launch`),
49
+ * and the operator did not already pick an explicit role. Explicit `--broker` /
50
+ * `--connect-broker` always win over auto-elect — auto-elect never overrides a
51
+ * deliberate operator choice.
52
+ */
53
+ function shouldElectBrokerOwner(params) {
54
+ return (params.autoElect &&
55
+ params.autoLaunch &&
56
+ !params.manualBroker &&
57
+ !params.connectBroker);
58
+ }
59
+ /**
60
+ * Should a process that LOST the controller lock attach as a coordinated client
61
+ * rather than fail fast?
62
+ *
63
+ * Only when auto-elect is on AND a broker is actually discoverable for this
64
+ * `(port, userDataDir)` — i.e. the healthy owner is itself an auto-elect/broker
65
+ * owner. If the owner is a plain direct controller (no broker published), there
66
+ * is nothing to attach to and the caller must fall back to the normal
67
+ * duplicate-controller remediation.
68
+ */
69
+ function shouldClientAutoConnect(params) {
70
+ return params.autoElect && params.brokerPresent;
71
+ }
72
+ /**
73
+ * The default broker HTTP port for an auto-elected owner on a given CDP port.
74
+ *
75
+ * Deterministic (`cdpPort + 200`, e.g. 9222 → 9422) so it is predictable and
76
+ * clear of the headed-fallback offset (`+100`). Operators can still override via
77
+ * `--http`/`OPENCHROME_HTTP_PORT`; clients never rely on this value directly —
78
+ * they read the actual endpoint from the published broker metadata.
79
+ */
80
+ function defaultBrokerHttpPort(cdpPort) {
81
+ return cdpPort + exports.BROKER_HTTP_PORT_OFFSET;
82
+ }
83
+ //# sourceMappingURL=auto-elect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-elect.js","sourceRoot":"","sources":["../../src/broker/auto-elect.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAuBH,gDAQC;AAWD,wDAYC;AAYD,0DAKC;AAUD,sDAEC;AAjFD,kFAAkF;AACrE,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAa3C;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAChC,IAA8B,EAC9B,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,GAAG,CAAC,qBAAqB,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChF,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,IAAI,GAAG,CAAC,qBAAqB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC;AAClC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,sBAAsB,CAAC,MAKtC;IACC,OAAO,CACL,MAAM,CAAC,SAAS;QAChB,MAAM,CAAC,UAAU;QACjB,CAAC,MAAM,CAAC,YAAY;QACpB,CAAC,MAAM,CAAC,aAAa,CACtB,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,MAGvC;IACC,OAAO,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC;AAClD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,qBAAqB,CAAC,OAAe;IACnD,OAAO,OAAO,GAAG,+BAAuB,CAAC;AAC3C,CAAC"}
@@ -23,5 +23,11 @@ export declare function getBrokerMetadataPath(port: number, userDataDir: string,
23
23
  export declare function buildBrokerMetadata(identity: BrokerIdentity): BrokerMetadata;
24
24
  export declare function publishBrokerMetadata(identity: BrokerIdentity, rootDir?: string): BrokerMetadata;
25
25
  export declare function readBrokerMetadata(port: number, userDataDir: string, rootDir?: string): BrokerMetadata | null;
26
+ export interface LiveBrokerMetadataOptions {
27
+ rootDir?: string;
28
+ fetchImpl?: typeof fetch;
29
+ isPidAliveImpl?: (pid: number) => boolean;
30
+ }
31
+ export declare function resolveLiveBrokerMetadata(port: number, userDataDir: string, options?: LiveBrokerMetadataOptions): Promise<BrokerMetadata | null>;
26
32
  export declare function removeBrokerMetadata(port: number, userDataDir: string, pid?: number, rootDir?: string): void;
27
33
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/broker/discovery.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,qBAA6C,GAAG,MAAM,CAEjG;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjG;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAY5E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAMhG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS7G;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAKjH"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/broker/discovery.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,qBAA6C,GAAG,MAAM,CAEjG;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjG;AAMD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAY5E;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,CAMhG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS7G;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C;AA4BD,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiBhC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,SAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAKjH"}
@@ -38,6 +38,7 @@ exports.getBrokerMetadataPath = getBrokerMetadataPath;
38
38
  exports.buildBrokerMetadata = buildBrokerMetadata;
39
39
  exports.publishBrokerMetadata = publishBrokerMetadata;
40
40
  exports.readBrokerMetadata = readBrokerMetadata;
41
+ exports.resolveLiveBrokerMetadata = resolveLiveBrokerMetadata;
41
42
  exports.removeBrokerMetadata = removeBrokerMetadata;
42
43
  const fs = __importStar(require("fs"));
43
44
  const os = __importStar(require("os"));
@@ -85,6 +86,46 @@ function readBrokerMetadata(port, userDataDir, rootDir) {
85
86
  return null;
86
87
  }
87
88
  }
89
+ function brokerHealthEndpoint(metadata) {
90
+ const url = new URL(metadata.endpoint);
91
+ url.pathname = '/health';
92
+ url.search = '';
93
+ url.hash = '';
94
+ return url.toString();
95
+ }
96
+ async function brokerEndpointState(metadata, fetchImpl) {
97
+ try {
98
+ const response = await fetchImpl(brokerHealthEndpoint(metadata), {
99
+ method: 'GET',
100
+ headers: { Accept: 'application/json' },
101
+ signal: AbortSignal.timeout(1000),
102
+ });
103
+ if (response.status !== 200)
104
+ return 'not-broker';
105
+ const body = await response.json().catch(() => null);
106
+ return body?.status === 'ok' && body.transport === 'http' ? 'live' : 'not-broker';
107
+ }
108
+ catch {
109
+ return 'unreachable';
110
+ }
111
+ }
112
+ async function resolveLiveBrokerMetadata(port, userDataDir, options = {}) {
113
+ const metadata = readBrokerMetadata(port, userDataDir, options.rootDir);
114
+ if (!metadata)
115
+ return null;
116
+ const pidAlive = (options.isPidAliveImpl ?? controller_lock_1.isPidAlive)(metadata.pid);
117
+ if (!pidAlive) {
118
+ removeBrokerMetadata(port, userDataDir, metadata.pid, options.rootDir);
119
+ return null;
120
+ }
121
+ const endpointState = await brokerEndpointState(metadata, options.fetchImpl ?? fetch);
122
+ if (endpointState === 'live')
123
+ return metadata;
124
+ if (endpointState === 'not-broker') {
125
+ removeBrokerMetadata(port, userDataDir, metadata.pid, options.rootDir);
126
+ }
127
+ return null;
128
+ }
88
129
  function removeBrokerMetadata(port, userDataDir, pid = process.pid, rootDir) {
89
130
  const filePath = getBrokerMetadataPath(port, userDataDir, rootDir);
90
131
  const existing = readBrokerMetadata(port, userDataDir, rootDir);
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/broker/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/broker/discovery.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,8 @@ declare class HeadedFallbackManager {
30
30
  private port;
31
31
  private alivePages;
32
32
  private profileDirectory?;
33
+ private chromePid?;
34
+ private markerUserDataDir?;
33
35
  private readonly cleanup;
34
36
  constructor(basePort?: number);
35
37
  /** Check if headed fallback is available in this environment */
@@ -1 +1 @@
1
- {"version":3,"file":"headed-fallback.d.ts","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAkB,EAAW,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM1D,OAAO,EAAsB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAuB7E,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD,cAAM,qBAAqB;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAChD,QAAQ,GAAE,MAAa;IAMnC,gEAAgE;IAChE,WAAW,IAAI,OAAO;IAItB,wDAAwD;IACxD,OAAO,IAAI,MAAM;IAIjB,8CAA8C;YAChC,aAAa;YAuBb,kBAAkB;YAsElB,gBAAgB;IAiB9B;;;OAGG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8B1D;;;;;;;OAOG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2CjG,gFAAgF;IAChF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,2CAA2C;IAC3C,QAAQ,IAAI,IAAI;CAoBjB;AAKD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAa,GAAG,qBAAqB,CAKhF;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
1
+ {"version":3,"file":"headed-fallback.d.ts","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAkB,EAAW,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAM1D,OAAO,EAAsB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAgC7E,2CAA2C;AAC3C,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC;AAED,wEAAwE;AACxE,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAClE,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2BD,cAAM,qBAAqB;IACzB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAKlC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;gBAChD,QAAQ,GAAE,MAAa;IAMnC,gEAAgE;IAChE,WAAW,IAAI,OAAO;IAItB,wDAAwD;IACxD,OAAO,IAAI,MAAM;IAIjB,8CAA8C;YAChC,aAAa;YAuBb,kBAAkB;YAiFlB,gBAAgB;IAiB9B;;;OAGG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+B1D;;;;;;;OAOG;IACG,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA4CjG,gFAAgF;IAChF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAItC,2CAA2C;IAC3C,QAAQ,IAAI,IAAI;CA2BjB;AAKD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAa,GAAG,qBAAqB,CAKhF;AAED,8FAA8F;AAC9F,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
@@ -60,6 +60,7 @@ const page_diagnostics_1 = require("../utils/page-diagnostics");
60
60
  const safe_title_1 = require("../utils/safe-title");
61
61
  const puppeteer_helpers_1 = require("../utils/puppeteer-helpers");
62
62
  const process_guardian_1 = require("../utils/process-guardian");
63
+ const ownership_marker_1 = require("./ownership-marker");
63
64
  /** Default port offset from main Chrome port for the headed fallback */
64
65
  const HEADED_PORT_OFFSET = 100;
65
66
  let activeCleanup = null;
@@ -67,6 +68,13 @@ let cleanupHandlersInstalled = false;
67
68
  function runGlobalCleanup() {
68
69
  activeCleanup?.();
69
70
  }
71
+ function headedFallbackSettleMs() {
72
+ const raw = process.env.OPENCHROME_HEADED_FALLBACK_SETTLE_MS;
73
+ if (raw === undefined)
74
+ return 2000;
75
+ const n = Number(raw);
76
+ return Number.isFinite(n) && n >= 0 ? n : 2000;
77
+ }
70
78
  function installGlobalCleanupHandlers() {
71
79
  if (cleanupHandlersInstalled)
72
80
  return;
@@ -111,6 +119,12 @@ class HeadedFallbackManager {
111
119
  port;
112
120
  alivePages = new Map();
113
121
  profileDirectory;
122
+ // #1480 G2: track the fallback Chrome's identity so the orphan reaper can
123
+ // reclaim it. The reaper's marker scan is port-independent, so a marker is the
124
+ // only thing that lets it reap a fallback Chrome living at basePort+100 — well
125
+ // outside the default basePort..basePort+4 reap window.
126
+ chromePid;
127
+ markerUserDataDir;
114
128
  cleanup = () => { this.shutdown(); };
115
129
  constructor(basePort = 9222) {
116
130
  this.port = basePort + HEADED_PORT_OFFSET;
@@ -199,6 +213,18 @@ class HeadedFallbackManager {
199
213
  (0, process_guardian_1.spawnProcessGuardian)(process.pid, this.chromeProcess.pid, {
200
214
  label: 'headed-fallback',
201
215
  });
216
+ // #1480 G2: mark the fallback Chrome as openchrome-managed so that if this
217
+ // owner dies hard (SIGKILL) before the guardian/cleanup fires, the next
218
+ // openchrome start's orphan-reap sweep classifies it 'kill' (ppid dead)
219
+ // and reclaims it instead of leaking a headed Chrome on port basePort+100.
220
+ this.chromePid = this.chromeProcess.pid;
221
+ this.markerUserDataDir = userDataDir;
222
+ try {
223
+ (0, ownership_marker_1.writeMarker)({ chromePid: this.chromeProcess.pid, userDataDir });
224
+ }
225
+ catch (err) {
226
+ console.error('[HeadedFallback] ownership marker write failed:', err);
227
+ }
202
228
  }
203
229
  // Wait for Chrome to be ready
204
230
  const wsEndpoint = await this.waitForDebugPort(15000);
@@ -238,8 +264,10 @@ class HeadedFallbackManager {
238
264
  waitUntil: 'domcontentloaded',
239
265
  timeout: 30000,
240
266
  });
241
- // Wait a moment for any JS to execute
242
- await new Promise(resolve => setTimeout(resolve, 2000));
267
+ // Wait a moment for any JS to execute.
268
+ const settleMs = headedFallbackSettleMs();
269
+ if (settleMs > 0)
270
+ await new Promise(resolve => setTimeout(resolve, settleMs));
243
271
  const [title, elementCount, blocking] = await Promise.all([
244
272
  (0, safe_title_1.safeTitle)(page),
245
273
  page.evaluate(() => document.querySelectorAll('*').length).catch(() => 0),
@@ -279,8 +307,10 @@ class HeadedFallbackManager {
279
307
  waitUntil: 'domcontentloaded',
280
308
  timeout: 30000,
281
309
  });
282
- // Wait a moment for any JS to execute
283
- await new Promise(resolve => setTimeout(resolve, 2000));
310
+ // Wait a moment for any JS to execute.
311
+ const settleMs = headedFallbackSettleMs();
312
+ if (settleMs > 0)
313
+ await new Promise(resolve => setTimeout(resolve, settleMs));
284
314
  const [title, elementCount, blocking] = await Promise.all([
285
315
  (0, safe_title_1.safeTitle)(page),
286
316
  page.evaluate(() => document.querySelectorAll('*').length).catch(() => 0),
@@ -333,6 +363,16 @@ class HeadedFallbackManager {
333
363
  catch { /* ignore */ }
334
364
  this.chromeProcess = null;
335
365
  }
366
+ // #1480 G2: drop the ownership marker on clean shutdown so the reaper does
367
+ // not later chase an already-terminated PID.
368
+ if (this.chromePid !== undefined) {
369
+ try {
370
+ (0, ownership_marker_1.removeMarker)({ chromePid: this.chromePid, userDataDir: this.markerUserDataDir });
371
+ }
372
+ catch { /* ignore */ }
373
+ this.chromePid = undefined;
374
+ this.markerUserDataDir = undefined;
375
+ }
336
376
  }
337
377
  }
338
378
  // Singleton instance — port is set on first use
@@ -1 +1 @@
1
- {"version":3,"file":"headed-fallback.js","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"headed-fallback.js","sourceRoot":"","sources":["../../src/chrome/headed-fallback.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"launcher-debug-port.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher-debug-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAW9D;AAQD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAuC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmB7H;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAQ,EAAE,aAAa,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BnH"}
1
+ {"version":3,"file":"launcher-debug-port.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher-debug-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;CAW9D;AAQD,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,GAAE,MAAuC,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmB7H;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAQ,EAAE,aAAa,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA+CnH"}