openchrome-mcp 1.10.2 → 1.10.4

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 (406) hide show
  1. package/README.md +56 -15
  2. package/assets/badges/mseep.png +0 -0
  3. package/dist/actions/action-parser.js +1 -1
  4. package/dist/actions/action-parser.js.map +1 -1
  5. package/dist/chrome/exit-classifier.d.ts +66 -0
  6. package/dist/chrome/exit-classifier.d.ts.map +1 -0
  7. package/dist/chrome/exit-classifier.js +97 -0
  8. package/dist/chrome/exit-classifier.js.map +1 -0
  9. package/dist/chrome/launch-mode-resolver.d.ts +78 -0
  10. package/dist/chrome/launch-mode-resolver.d.ts.map +1 -0
  11. package/dist/chrome/launch-mode-resolver.js +108 -0
  12. package/dist/chrome/launch-mode-resolver.js.map +1 -0
  13. package/dist/chrome/launcher.d.ts +40 -0
  14. package/dist/chrome/launcher.d.ts.map +1 -1
  15. package/dist/chrome/launcher.js +174 -16
  16. package/dist/chrome/launcher.js.map +1 -1
  17. package/dist/chrome/ownership-marker.d.ts +86 -0
  18. package/dist/chrome/ownership-marker.d.ts.map +1 -0
  19. package/dist/chrome/ownership-marker.js +329 -0
  20. package/dist/chrome/ownership-marker.js.map +1 -0
  21. package/dist/chrome/pool.d.ts.map +1 -1
  22. package/dist/chrome/pool.js.map +1 -1
  23. package/dist/chrome/process-detector.d.ts +49 -0
  24. package/dist/chrome/process-detector.d.ts.map +1 -0
  25. package/dist/chrome/process-detector.js +241 -0
  26. package/dist/chrome/process-detector.js.map +1 -0
  27. package/dist/chrome/process-watchdog.d.ts.map +1 -1
  28. package/dist/chrome/process-watchdog.js +17 -1
  29. package/dist/chrome/process-watchdog.js.map +1 -1
  30. package/dist/cli/claude-cli.d.ts +23 -0
  31. package/dist/cli/claude-cli.js +31 -0
  32. package/dist/cli/claude-cli.js.map +1 -0
  33. package/dist/cli/claude-session.js +3 -2
  34. package/dist/cli/claude-session.js.map +1 -1
  35. package/dist/cli/index.js +46 -9
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/mcp-client-config.d.ts +13 -1
  38. package/dist/cli/mcp-client-config.js +33 -2
  39. package/dist/cli/mcp-client-config.js.map +1 -1
  40. package/dist/cli/replay-server.d.ts +34 -0
  41. package/dist/cli/replay-server.js +215 -0
  42. package/dist/cli/replay-server.js.map +1 -0
  43. package/dist/cli/skill.d.ts +14 -0
  44. package/dist/cli/skill.js +179 -0
  45. package/dist/cli/skill.js.map +1 -0
  46. package/dist/cli/trace.d.ts +16 -0
  47. package/dist/cli/trace.js +270 -0
  48. package/dist/cli/trace.js.map +1 -0
  49. package/dist/config/defaults.d.ts +11 -0
  50. package/dist/config/defaults.d.ts.map +1 -1
  51. package/dist/config/defaults.js +49 -3
  52. package/dist/config/defaults.js.map +1 -1
  53. package/dist/config/global.d.ts +10 -1
  54. package/dist/config/global.d.ts.map +1 -1
  55. package/dist/config/global.js.map +1 -1
  56. package/dist/config/headless-resolver.d.ts +39 -0
  57. package/dist/config/headless-resolver.d.ts.map +1 -0
  58. package/dist/config/headless-resolver.js +55 -0
  59. package/dist/config/headless-resolver.js.map +1 -0
  60. package/dist/config/tool-tiers.d.ts.map +1 -1
  61. package/dist/config/tool-tiers.js +3 -1
  62. package/dist/config/tool-tiers.js.map +1 -1
  63. package/dist/contracts/evaluator.d.ts +58 -0
  64. package/dist/contracts/evaluator.d.ts.map +1 -0
  65. package/dist/contracts/evaluator.js +151 -0
  66. package/dist/contracts/evaluator.js.map +1 -0
  67. package/dist/contracts/evidence.d.ts +122 -0
  68. package/dist/contracts/evidence.d.ts.map +1 -0
  69. package/dist/contracts/evidence.js +276 -0
  70. package/dist/contracts/evidence.js.map +1 -0
  71. package/dist/contracts/handoff/banner.d.ts +53 -0
  72. package/dist/contracts/handoff/banner.d.ts.map +1 -0
  73. package/dist/contracts/handoff/banner.js +136 -0
  74. package/dist/contracts/handoff/banner.js.map +1 -0
  75. package/dist/contracts/handoff/index.d.ts +11 -0
  76. package/dist/contracts/handoff/index.d.ts.map +1 -0
  77. package/dist/contracts/handoff/index.js +24 -0
  78. package/dist/contracts/handoff/index.js.map +1 -0
  79. package/dist/contracts/handoff/manager.d.ts +104 -0
  80. package/dist/contracts/handoff/manager.d.ts.map +1 -0
  81. package/dist/contracts/handoff/manager.js +184 -0
  82. package/dist/contracts/handoff/manager.js.map +1 -0
  83. package/dist/contracts/handoff/persistence.d.ts +76 -0
  84. package/dist/contracts/handoff/persistence.d.ts.map +1 -0
  85. package/dist/contracts/handoff/persistence.js +251 -0
  86. package/dist/contracts/handoff/persistence.js.map +1 -0
  87. package/dist/contracts/handoff/token.d.ts +22 -0
  88. package/dist/contracts/handoff/token.d.ts.map +1 -0
  89. package/dist/contracts/handoff/token.js +76 -0
  90. package/dist/contracts/handoff/token.js.map +1 -0
  91. package/dist/contracts/idempotency.d.ts +61 -0
  92. package/dist/contracts/idempotency.d.ts.map +1 -0
  93. package/dist/contracts/idempotency.js +182 -0
  94. package/dist/contracts/idempotency.js.map +1 -0
  95. package/dist/contracts/index.d.ts +22 -0
  96. package/dist/contracts/index.d.ts.map +1 -0
  97. package/dist/contracts/index.js +50 -0
  98. package/dist/contracts/index.js.map +1 -0
  99. package/dist/contracts/phash.d.ts +54 -0
  100. package/dist/contracts/phash.d.ts.map +1 -0
  101. package/dist/contracts/phash.js +117 -0
  102. package/dist/contracts/phash.js.map +1 -0
  103. package/dist/contracts/runtime.d.ts +166 -0
  104. package/dist/contracts/runtime.d.ts.map +1 -0
  105. package/dist/contracts/runtime.js +418 -0
  106. package/dist/contracts/runtime.js.map +1 -0
  107. package/dist/contracts/screenshot-classes.d.ts +78 -0
  108. package/dist/contracts/screenshot-classes.d.ts.map +1 -0
  109. package/dist/contracts/screenshot-classes.js +211 -0
  110. package/dist/contracts/screenshot-classes.js.map +1 -0
  111. package/dist/contracts/types.d.ts +85 -0
  112. package/dist/contracts/types.d.ts.map +1 -0
  113. package/dist/contracts/types.js +36 -0
  114. package/dist/contracts/types.js.map +1 -0
  115. package/dist/contracts/validator.d.ts +28 -0
  116. package/dist/contracts/validator.d.ts.map +1 -0
  117. package/dist/contracts/validator.js +212 -0
  118. package/dist/contracts/validator.js.map +1 -0
  119. package/dist/dashboard/index.d.ts.map +1 -1
  120. package/dist/dashboard/index.js +2 -2
  121. package/dist/dashboard/index.js.map +1 -1
  122. package/dist/dashboard/renderer.js.map +1 -1
  123. package/dist/dashboard/views/connect-view.js.map +1 -1
  124. package/dist/dashboard/views/sessions-view.js.map +1 -1
  125. package/dist/desktop/dashboard-state.d.ts.map +1 -1
  126. package/dist/desktop/dashboard-state.js.map +1 -1
  127. package/dist/dom/dom-serializer.d.ts.map +1 -1
  128. package/dist/dom/dom-serializer.js +13 -2
  129. package/dist/dom/dom-serializer.js.map +1 -1
  130. package/dist/index.js +57 -9
  131. package/dist/index.js.map +1 -1
  132. package/dist/mcp-server.d.ts.map +1 -1
  133. package/dist/mcp-server.js +23 -7
  134. package/dist/mcp-server.js.map +1 -1
  135. package/dist/memory/domain-memory.d.ts.map +1 -1
  136. package/dist/memory/domain-memory.js.map +1 -1
  137. package/dist/middleware/dashboard-authz.d.ts +18 -0
  138. package/dist/middleware/dashboard-authz.d.ts.map +1 -0
  139. package/dist/middleware/dashboard-authz.js +39 -0
  140. package/dist/middleware/dashboard-authz.js.map +1 -0
  141. package/dist/orchestration/state-manager.d.ts.map +1 -1
  142. package/dist/orchestration/state-manager.js.map +1 -1
  143. package/dist/perception/cache.d.ts +48 -0
  144. package/dist/perception/cache.d.ts.map +1 -0
  145. package/dist/perception/cache.js +74 -0
  146. package/dist/perception/cache.js.map +1 -0
  147. package/dist/perception/cross-check.d.ts +55 -0
  148. package/dist/perception/cross-check.d.ts.map +1 -0
  149. package/dist/perception/cross-check.js +74 -0
  150. package/dist/perception/cross-check.js.map +1 -0
  151. package/dist/perception/image-features.d.ts +58 -0
  152. package/dist/perception/image-features.d.ts.map +1 -0
  153. package/dist/perception/image-features.js +148 -0
  154. package/dist/perception/image-features.js.map +1 -0
  155. package/dist/perception/index.d.ts +16 -0
  156. package/dist/perception/index.d.ts.map +1 -0
  157. package/dist/perception/index.js +32 -0
  158. package/dist/perception/index.js.map +1 -0
  159. package/dist/perception/metadata.d.ts +23 -0
  160. package/dist/perception/metadata.d.ts.map +1 -0
  161. package/dist/perception/metadata.js +117 -0
  162. package/dist/perception/metadata.js.map +1 -0
  163. package/dist/perception/types.d.ts +77 -0
  164. package/dist/perception/types.d.ts.map +1 -0
  165. package/dist/perception/types.js +10 -0
  166. package/dist/perception/types.js.map +1 -0
  167. package/dist/perception/voting/args-equivalence.d.ts +36 -0
  168. package/dist/perception/voting/args-equivalence.d.ts.map +1 -0
  169. package/dist/perception/voting/args-equivalence.js +163 -0
  170. package/dist/perception/voting/args-equivalence.js.map +1 -0
  171. package/dist/perception/voting/index.d.ts +9 -0
  172. package/dist/perception/voting/index.d.ts.map +1 -0
  173. package/dist/perception/voting/index.js +18 -0
  174. package/dist/perception/voting/index.js.map +1 -0
  175. package/dist/perception/voting/orchestrator.d.ts +118 -0
  176. package/dist/perception/voting/orchestrator.d.ts.map +1 -0
  177. package/dist/perception/voting/orchestrator.js +200 -0
  178. package/dist/perception/voting/orchestrator.js.map +1 -0
  179. package/dist/perception/voting/providers/anthropic.d.ts +40 -0
  180. package/dist/perception/voting/providers/anthropic.d.ts.map +1 -0
  181. package/dist/perception/voting/providers/anthropic.js +91 -0
  182. package/dist/perception/voting/providers/anthropic.js.map +1 -0
  183. package/dist/perception/voting/providers/http-helpers.d.ts +49 -0
  184. package/dist/perception/voting/providers/http-helpers.d.ts.map +1 -0
  185. package/dist/perception/voting/providers/http-helpers.js +131 -0
  186. package/dist/perception/voting/providers/http-helpers.js.map +1 -0
  187. package/dist/perception/voting/providers/index.d.ts +13 -0
  188. package/dist/perception/voting/providers/index.d.ts.map +1 -0
  189. package/dist/perception/voting/providers/index.js +24 -0
  190. package/dist/perception/voting/providers/index.js.map +1 -0
  191. package/dist/perception/voting/providers/openai.d.ts +31 -0
  192. package/dist/perception/voting/providers/openai.d.ts.map +1 -0
  193. package/dist/perception/voting/providers/openai.js +88 -0
  194. package/dist/perception/voting/providers/openai.js.map +1 -0
  195. package/dist/resources/trace-resource.d.ts +50 -0
  196. package/dist/resources/trace-resource.d.ts.map +1 -0
  197. package/dist/resources/trace-resource.js +214 -0
  198. package/dist/resources/trace-resource.js.map +1 -0
  199. package/dist/router/cookie-sync.d.ts.map +1 -1
  200. package/dist/session-manager.d.ts.map +1 -1
  201. package/dist/session-manager.js +1 -0
  202. package/dist/session-manager.js.map +1 -1
  203. package/dist/skill/audit.d.ts +55 -0
  204. package/dist/skill/audit.d.ts.map +1 -0
  205. package/dist/skill/audit.js +70 -0
  206. package/dist/skill/audit.js.map +1 -0
  207. package/dist/skill/executor.d.ts +117 -0
  208. package/dist/skill/executor.d.ts.map +1 -0
  209. package/dist/skill/executor.js +233 -0
  210. package/dist/skill/executor.js.map +1 -0
  211. package/dist/skill/index.d.ts +17 -0
  212. package/dist/skill/index.d.ts.map +1 -0
  213. package/dist/skill/index.js +27 -0
  214. package/dist/skill/index.js.map +1 -0
  215. package/dist/skill/interactive-filter.d.ts +25 -0
  216. package/dist/skill/interactive-filter.d.ts.map +1 -0
  217. package/dist/skill/interactive-filter.js +57 -0
  218. package/dist/skill/interactive-filter.js.map +1 -0
  219. package/dist/skill/state.d.ts +73 -0
  220. package/dist/skill/state.d.ts.map +1 -0
  221. package/dist/skill/state.js +153 -0
  222. package/dist/skill/state.js.map +1 -0
  223. package/dist/skill/storage.d.ts +123 -0
  224. package/dist/skill/storage.d.ts.map +1 -0
  225. package/dist/skill/storage.js +316 -0
  226. package/dist/skill/storage.js.map +1 -0
  227. package/dist/skill/url-normalizer.d.ts +31 -0
  228. package/dist/skill/url-normalizer.d.ts.map +1 -0
  229. package/dist/skill/url-normalizer.js +73 -0
  230. package/dist/skill/url-normalizer.js.map +1 -0
  231. package/dist/skill-memory/audit-stats.d.ts +51 -0
  232. package/dist/skill-memory/audit-stats.d.ts.map +1 -0
  233. package/dist/skill-memory/audit-stats.js +189 -0
  234. package/dist/skill-memory/audit-stats.js.map +1 -0
  235. package/dist/skill-memory/curator-lock.d.ts +56 -0
  236. package/dist/skill-memory/curator-lock.d.ts.map +1 -0
  237. package/dist/skill-memory/curator-lock.js +205 -0
  238. package/dist/skill-memory/curator-lock.js.map +1 -0
  239. package/dist/skill-memory/curator-pass2.d.ts +81 -0
  240. package/dist/skill-memory/curator-pass2.d.ts.map +1 -0
  241. package/dist/skill-memory/curator-pass2.js +256 -0
  242. package/dist/skill-memory/curator-pass2.js.map +1 -0
  243. package/dist/skill-memory/curator.d.ts +88 -0
  244. package/dist/skill-memory/curator.d.ts.map +1 -0
  245. package/dist/skill-memory/curator.js +253 -0
  246. package/dist/skill-memory/curator.js.map +1 -0
  247. package/dist/skill-memory/extractor.d.ts +76 -0
  248. package/dist/skill-memory/extractor.d.ts.map +1 -0
  249. package/dist/skill-memory/extractor.js +257 -0
  250. package/dist/skill-memory/extractor.js.map +1 -0
  251. package/dist/skill-memory/index.d.ts +26 -0
  252. package/dist/skill-memory/index.d.ts.map +1 -0
  253. package/dist/skill-memory/index.js +49 -0
  254. package/dist/skill-memory/index.js.map +1 -0
  255. package/dist/skill-memory/llm-merge.d.ts +68 -0
  256. package/dist/skill-memory/llm-merge.d.ts.map +1 -0
  257. package/dist/skill-memory/llm-merge.js +170 -0
  258. package/dist/skill-memory/llm-merge.js.map +1 -0
  259. package/dist/skill-memory/recall.d.ts +88 -0
  260. package/dist/skill-memory/recall.d.ts.map +1 -0
  261. package/dist/skill-memory/recall.js +182 -0
  262. package/dist/skill-memory/recall.js.map +1 -0
  263. package/dist/skill-memory/skill-md.d.ts +26 -0
  264. package/dist/skill-memory/skill-md.d.ts.map +1 -0
  265. package/dist/skill-memory/skill-md.js +227 -0
  266. package/dist/skill-memory/skill-md.js.map +1 -0
  267. package/dist/skill-memory/stop-words.d.ts +10 -0
  268. package/dist/skill-memory/stop-words.d.ts.map +1 -0
  269. package/dist/skill-memory/stop-words.js +41 -0
  270. package/dist/skill-memory/stop-words.js.map +1 -0
  271. package/dist/skill-memory/types.d.ts +71 -0
  272. package/dist/skill-memory/types.d.ts.map +1 -0
  273. package/dist/skill-memory/types.js +19 -0
  274. package/dist/skill-memory/types.js.map +1 -0
  275. package/dist/tools/act.js +1 -1
  276. package/dist/tools/act.js.map +1 -1
  277. package/dist/tools/computer.d.ts.map +1 -1
  278. package/dist/tools/computer.js +58 -12
  279. package/dist/tools/computer.js.map +1 -1
  280. package/dist/tools/file-upload.d.ts +46 -0
  281. package/dist/tools/file-upload.d.ts.map +1 -1
  282. package/dist/tools/file-upload.js +157 -42
  283. package/dist/tools/file-upload.js.map +1 -1
  284. package/dist/tools/fill-form.d.ts.map +1 -1
  285. package/dist/tools/fill-form.js +122 -4
  286. package/dist/tools/fill-form.js.map +1 -1
  287. package/dist/tools/find.js.map +1 -1
  288. package/dist/tools/index.d.ts.map +1 -1
  289. package/dist/tools/index.js +6 -0
  290. package/dist/tools/index.js.map +1 -1
  291. package/dist/tools/inspect.js +4 -4
  292. package/dist/tools/inspect.js.map +1 -1
  293. package/dist/tools/login-detector.d.ts +87 -0
  294. package/dist/tools/login-detector.d.ts.map +1 -0
  295. package/dist/tools/login-detector.js +169 -0
  296. package/dist/tools/login-detector.js.map +1 -0
  297. package/dist/tools/navigate.d.ts.map +1 -1
  298. package/dist/tools/navigate.js +137 -52
  299. package/dist/tools/navigate.js.map +1 -1
  300. package/dist/tools/orchestration.d.ts.map +1 -1
  301. package/dist/tools/orchestration.js +1 -1
  302. package/dist/tools/orchestration.js.map +1 -1
  303. package/dist/tools/page-reload.d.ts.map +1 -1
  304. package/dist/tools/page-reload.js +0 -1
  305. package/dist/tools/page-reload.js.map +1 -1
  306. package/dist/tools/page-screenshot.d.ts.map +1 -1
  307. package/dist/tools/page-screenshot.js +32 -28
  308. package/dist/tools/page-screenshot.js.map +1 -1
  309. package/dist/tools/query-dom.d.ts.map +1 -1
  310. package/dist/tools/query-dom.js.map +1 -1
  311. package/dist/tools/read-page.d.ts.map +1 -1
  312. package/dist/tools/read-page.js +44 -7
  313. package/dist/tools/read-page.js.map +1 -1
  314. package/dist/tools/reap-orphans.d.ts +3 -0
  315. package/dist/tools/reap-orphans.d.ts.map +1 -0
  316. package/dist/tools/reap-orphans.js +62 -0
  317. package/dist/tools/reap-orphans.js.map +1 -0
  318. package/dist/tools/recording.d.ts.map +1 -1
  319. package/dist/tools/recording.js.map +1 -1
  320. package/dist/tools/validate-page.d.ts +16 -0
  321. package/dist/tools/validate-page.d.ts.map +1 -0
  322. package/dist/tools/validate-page.js +309 -0
  323. package/dist/tools/validate-page.js.map +1 -0
  324. package/dist/tools/wait-for.js +2 -2
  325. package/dist/tools/wait-for.js.map +1 -1
  326. package/dist/trace/cdp-attach.d.ts +51 -0
  327. package/dist/trace/cdp-attach.d.ts.map +1 -0
  328. package/dist/trace/cdp-attach.js +68 -0
  329. package/dist/trace/cdp-attach.js.map +1 -0
  330. package/dist/trace/index.d.ts +14 -0
  331. package/dist/trace/index.d.ts.map +1 -0
  332. package/dist/trace/index.js +24 -0
  333. package/dist/trace/index.js.map +1 -0
  334. package/dist/trace/recorder.d.ts +102 -0
  335. package/dist/trace/recorder.d.ts.map +1 -0
  336. package/dist/trace/recorder.js +247 -0
  337. package/dist/trace/recorder.js.map +1 -0
  338. package/dist/trace/redactor.d.ts +37 -0
  339. package/dist/trace/redactor.d.ts.map +1 -0
  340. package/dist/trace/redactor.js +195 -0
  341. package/dist/trace/redactor.js.map +1 -0
  342. package/dist/trace/storage.d.ts +70 -0
  343. package/dist/trace/storage.d.ts.map +1 -0
  344. package/dist/trace/storage.js +252 -0
  345. package/dist/trace/storage.js.map +1 -0
  346. package/dist/trace/types.d.ts +43 -0
  347. package/dist/trace/types.d.ts.map +1 -0
  348. package/dist/trace/types.js +9 -0
  349. package/dist/trace/types.js.map +1 -0
  350. package/dist/transports/http.d.ts +17 -0
  351. package/dist/transports/http.d.ts.map +1 -1
  352. package/dist/transports/http.js +256 -43
  353. package/dist/transports/http.js.map +1 -1
  354. package/dist/transports/index.d.ts +7 -0
  355. package/dist/transports/index.d.ts.map +1 -1
  356. package/dist/transports/index.js +5 -1
  357. package/dist/transports/index.js.map +1 -1
  358. package/dist/transports/stdio.d.ts.map +1 -1
  359. package/dist/transports/stdio.js +15 -0
  360. package/dist/transports/stdio.js.map +1 -1
  361. package/dist/types/mcp.d.ts +1 -1
  362. package/dist/types/mcp.d.ts.map +1 -1
  363. package/dist/types/mcp.js.map +1 -1
  364. package/dist/types/session.d.ts +1 -0
  365. package/dist/types/session.d.ts.map +1 -1
  366. package/dist/utils/atomic-file.js +1 -1
  367. package/dist/utils/atomic-file.js.map +1 -1
  368. package/dist/utils/crawl-utils.js +1 -1
  369. package/dist/utils/crawl-utils.js.map +1 -1
  370. package/dist/utils/pagination-detector.d.ts +1 -1
  371. package/dist/utils/pagination-detector.d.ts.map +1 -1
  372. package/dist/utils/pagination-detector.js +1 -1
  373. package/dist/utils/pagination-detector.js.map +1 -1
  374. package/dist/utils/pid-manager.d.ts +16 -0
  375. package/dist/utils/pid-manager.d.ts.map +1 -1
  376. package/dist/utils/pid-manager.js +88 -0
  377. package/dist/utils/pid-manager.js.map +1 -1
  378. package/dist/utils/ralph/outcome-classifier.d.ts.map +1 -1
  379. package/dist/utils/ralph/outcome-classifier.js +0 -1
  380. package/dist/utils/ralph/outcome-classifier.js.map +1 -1
  381. package/dist/utils/ref-id-manager.js +4 -4
  382. package/dist/utils/ref-id-manager.js.map +1 -1
  383. package/dist/utils/request-queue.d.ts +1 -0
  384. package/dist/utils/request-queue.d.ts.map +1 -1
  385. package/dist/utils/request-queue.js +18 -4
  386. package/dist/utils/request-queue.js.map +1 -1
  387. package/dist/utils/screenshot-guards.d.ts +46 -0
  388. package/dist/utils/screenshot-guards.d.ts.map +1 -0
  389. package/dist/utils/screenshot-guards.js +82 -0
  390. package/dist/utils/screenshot-guards.js.map +1 -0
  391. package/dist/utils/session-resume-token.d.ts +53 -0
  392. package/dist/utils/session-resume-token.d.ts.map +1 -0
  393. package/dist/utils/session-resume-token.js +191 -0
  394. package/dist/utils/session-resume-token.js.map +1 -0
  395. package/dist/utils/sync-shutdown.d.ts +51 -0
  396. package/dist/utils/sync-shutdown.d.ts.map +1 -0
  397. package/dist/utils/sync-shutdown.js +112 -0
  398. package/dist/utils/sync-shutdown.js.map +1 -0
  399. package/dist/vision/screenshot-analyzer.d.ts.map +1 -1
  400. package/dist/vision/screenshot-analyzer.js +11 -1
  401. package/dist/vision/screenshot-analyzer.js.map +1 -1
  402. package/dist/watchdog/health-endpoint.d.ts +5 -0
  403. package/dist/watchdog/health-endpoint.d.ts.map +1 -1
  404. package/dist/watchdog/health-endpoint.js +14 -2
  405. package/dist/watchdog/health-endpoint.js.map +1 -1
  406. package/package.json +3 -2
@@ -3,13 +3,34 @@
3
3
  */
4
4
  import { ChildProcess } from 'child_process';
5
5
  import type { ProfileType } from './profile-manager';
6
+ import { ExitClassification } from './exit-classifier';
6
7
  export type { ProfileType } from './profile-manager';
8
+ /**
9
+ * Lifecycle ownership of a Chrome process (#661).
10
+ * - 'isolated': openchrome spawned this Chrome and owns its lifecycle. Eligible for sync-kill on exit.
11
+ * - 'attach': we connected to a Chrome the user was already running. NEVER killed by openchrome.
12
+ *
13
+ * Distinct from `LaunchMode` (#659 — auto/attach/isolated launch *strategy*),
14
+ * exported below from launch-mode-resolver. To avoid the name shadow noted in
15
+ * gemini's review of #670, the runtime ownership tag is named `LifecycleMode`.
16
+ *
17
+ * Note: the field on `ChromeInstance` is still called `launchMode` for source
18
+ * compatibility with consumers like the watchdog and sync-shutdown that
19
+ * already reference it.
20
+ */
21
+ export type LifecycleMode = 'isolated' | 'attach';
22
+ /** @deprecated Use `LifecycleMode`. Retained for source compatibility. */
23
+ export type LaunchMode = LifecycleMode;
7
24
  export interface ChromeInstance {
8
25
  wsEndpoint: string;
9
26
  httpEndpoint: string;
10
27
  process?: ChildProcess;
11
28
  userDataDir?: string;
12
29
  profileType?: ProfileType;
30
+ /** Lifecycle ownership (#661). Defaults to 'isolated' for our spawn-based path. */
31
+ launchMode?: LifecycleMode;
32
+ /** Random per-launch UUID written into the ownership marker file. */
33
+ ownershipMarker?: string;
13
34
  }
14
35
  export interface LaunchOptions {
15
36
  port?: number;
@@ -26,6 +47,9 @@ export interface LaunchOptions {
26
47
  /** If true, restore Chrome's previous session tabs after crash (default: false).
27
48
  * Enable for long-running sessions where tab preservation matters. */
28
49
  restoreLastSession?: boolean;
50
+ /** #659 launch-mode override (per-call). One of: 'auto' | 'attach' | 'isolated'.
51
+ * Highest precedence; falls back to OPENCHROME_LAUNCH_MODE then config then 'auto'. */
52
+ launchMode?: 'auto' | 'attach' | 'isolated';
29
53
  }
30
54
  /**
31
55
  * Error thrown when the Chrome debug port fails to become available
@@ -75,7 +99,23 @@ export declare class ChromeLauncher {
75
99
  private currentProfileType;
76
100
  private profileState;
77
101
  private _intentionalStop;
102
+ /** ms timestamp of the most recent successful spawn, for #660 anti-flap. */
103
+ private _chromeStartedAt;
104
+ /** Most recent exit classification (#660). 'intentional' | 'clean' | 'crash'. */
105
+ private _lastExitClassification;
106
+ /** ms epoch until which the watchdog should skip relaunch (#660). 0 = no quiesce. */
107
+ private _quiesceUntil;
108
+ /** Crash timestamps for the watchdog rate-limit check (#660 Phase 3). */
109
+ private _recentCrashesMs;
78
110
  get intentionalStop(): boolean;
111
+ /** Last exit classification recorded by the spawn-side exit handler. */
112
+ get lastExitClassification(): ExitClassification | null;
113
+ /** Watchdog reads this; if `Date.now() < quiesceUntil` it skips relaunch. */
114
+ get quiesceUntil(): number;
115
+ /** Recent Chrome crash timestamps (last ~minute). */
116
+ get recentCrashesMs(): readonly number[];
117
+ /** Tools call this when they need Chrome — clears any pending quiesce. */
118
+ clearQuiesce(): void;
79
119
  constructor(port?: number);
80
120
  /**
81
121
  * Ensure Chrome with remote debugging is available
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,11 @@ const pid_manager_1 = require("../utils/pid-manager");
49
49
  const process_guardian_1 = require("../utils/process-guardian");
50
50
  const defaults_1 = require("../config/defaults");
51
51
  const profile_manager_1 = require("./profile-manager");
52
+ const ownership_marker_1 = require("./ownership-marker");
53
+ const sync_shutdown_1 = require("../utils/sync-shutdown");
54
+ const exit_classifier_1 = require("./exit-classifier");
55
+ const launch_mode_resolver_1 = require("./launch-mode-resolver");
56
+ const process_detector_1 = require("./process-detector");
52
57
  const DEFAULT_PORT = 9222;
53
58
  /**
54
59
  * Find Chrome executable path based on platform
@@ -155,7 +160,6 @@ class DebugPortTimeoutError extends Error {
155
160
  }
156
161
  }
157
162
  exports.DebugPortTimeoutError = DebugPortTimeoutError;
158
- const DEBUG_PORT_MIN_HTTP_TIMEOUT_MS = 100;
159
163
  const DEBUG_PORT_MAX_HTTP_TIMEOUT_MS = 2000;
160
164
  const DEBUG_PORT_INITIAL_BACKOFF_MS = 200;
161
165
  const DEBUG_PORT_MAX_BACKOFF_MS = 2000;
@@ -287,7 +291,23 @@ class ChromeLauncher {
287
291
  extensionsAvailable: true,
288
292
  };
289
293
  _intentionalStop = false;
294
+ /** ms timestamp of the most recent successful spawn, for #660 anti-flap. */
295
+ _chromeStartedAt = 0;
296
+ /** Most recent exit classification (#660). 'intentional' | 'clean' | 'crash'. */
297
+ _lastExitClassification = null;
298
+ /** ms epoch until which the watchdog should skip relaunch (#660). 0 = no quiesce. */
299
+ _quiesceUntil = 0;
300
+ /** Crash timestamps for the watchdog rate-limit check (#660 Phase 3). */
301
+ _recentCrashesMs = [];
290
302
  get intentionalStop() { return this._intentionalStop; }
303
+ /** Last exit classification recorded by the spawn-side exit handler. */
304
+ get lastExitClassification() { return this._lastExitClassification; }
305
+ /** Watchdog reads this; if `Date.now() < quiesceUntil` it skips relaunch. */
306
+ get quiesceUntil() { return this._quiesceUntil; }
307
+ /** Recent Chrome crash timestamps (last ~minute). */
308
+ get recentCrashesMs() { return this._recentCrashesMs; }
309
+ /** Tools call this when they need Chrome — clears any pending quiesce. */
310
+ clearQuiesce() { this._quiesceUntil = 0; }
291
311
  constructor(port = DEFAULT_PORT) {
292
312
  this.port = port;
293
313
  }
@@ -326,21 +346,94 @@ class ChromeLauncher {
326
346
  */
327
347
  async launchChrome(options = {}) {
328
348
  const port = options.port || this.port;
329
- // Check if Chrome is already running with debug port.
330
- // Use a brief retry window (5s) instead of a single-shot check, because Chrome
331
- // may still be binding the debug port during startup (1-5s window).
332
- const existingWs = await waitForDebugPort(port, 5000).catch(() => null);
349
+ // #659: resolve launch mode (auto / attach / isolated). Per-call options
350
+ // win first (gemini high review on #670), then env, then config, then default 'auto'.
351
+ const launchMode = (0, launch_mode_resolver_1.resolveLaunchMode)({ launchMode: options.launchMode }, { OPENCHROME_LAUNCH_MODE: process.env.OPENCHROME_LAUNCH_MODE }, { chromeLaunchMode: (0, global_1.getGlobalConfig)().chromeLaunchMode });
352
+ // 'isolated' mode: skip the existing-Chrome probe entirely. Always spawn
353
+ // our own Chrome with our isolated user-data-dir. Used for clean-room
354
+ // scraping where attaching to a stray developer Chrome would be wrong.
355
+ //
356
+ // codex P1 review on #670: a Chrome already bound to `port` would otherwise
357
+ // be picked up by `waitForDebugPort` after our spawn (since Chrome silently
358
+ // re-uses or rebinds), defeating the isolation guarantee. We do a tight
359
+ // single-shot probe BEFORE spawning and refuse to start if the port is
360
+ // taken — caller must clear the port or pick a different one.
361
+ let existingWs = null;
362
+ if (launchMode === 'isolated') {
363
+ const occupied = await checkDebugPort(port, 500);
364
+ if (occupied) {
365
+ throw new Error(`[ChromeLauncher] launch mode 'isolated' but port ${port} is already in use ` +
366
+ `by another Chrome (debug endpoint: ${occupied}). ` +
367
+ `Stop that Chrome, choose a different --port, or set OPENCHROME_LAUNCH_MODE=auto to attach.`);
368
+ }
369
+ console.error('[ChromeLauncher] Launch mode: isolated — skipping debug-port attach.');
370
+ }
371
+ else {
372
+ // Check if Chrome is already running with debug port.
373
+ // Use a brief retry window (5s) instead of a single-shot check, because Chrome
374
+ // may still be binding the debug port during startup (1-5s window).
375
+ existingWs = await waitForDebugPort(port, 5000).catch(() => null);
376
+ }
377
+ // 'attach' mode: must attach. If no debug port responded, surface a
378
+ // structured error (no auto-restart per #659 policy decision #2).
379
+ if (launchMode === 'attach' && !existingWs) {
380
+ // Diagnostic: enumerate any running Chromes so the agent can hint at
381
+ // the right CLI invocation. Read-only, never kills anything.
382
+ try {
383
+ const candidates = (0, process_detector_1.filterByProfile)((0, process_detector_1.detectRunningChromes)(), options.profileDirectory);
384
+ const chosen = (0, process_detector_1.pickPreferredChrome)(candidates);
385
+ if (chosen) {
386
+ console.error(`[ChromeLauncher] attach mode: detected Chrome (PID ${chosen.pid}, variant=${chosen.variant}) ` +
387
+ `but it is not exposing --remote-debugging-port=${port}. ` +
388
+ `openchrome will NOT auto-restart your Chrome. Re-launch it with --remote-debugging-port=${port}.`);
389
+ }
390
+ else {
391
+ console.error(`[ChromeLauncher] attach mode: no Chrome processes found.`);
392
+ }
393
+ }
394
+ catch (err) {
395
+ console.error(`[ChromeLauncher] attach mode: process detection failed:`, err);
396
+ }
397
+ throw new launch_mode_resolver_1.AttachConsentRequiredError(port);
398
+ }
333
399
  if (existingWs) {
334
- console.error(`[ChromeLauncher] Found existing Chrome on port ${port}`);
335
400
  const pendingProc = this.pendingProcess;
336
- this.pendingProcess = null; // Clear — our pending Chrome may be the one that responded
337
- this.instance = {
338
- wsEndpoint: existingWs,
339
- httpEndpoint: `http://127.0.0.1:${port}`,
340
- ...(pendingProc && pendingProc.exitCode === null && { process: pendingProc }),
341
- };
342
- // Attached to user-started Chrome assume real profile
343
- this.profileState = { type: 'real', extensionsAvailable: true };
401
+ this.pendingProcess = null;
402
+ // codex P1 review on #670: when our prior spawn left a still-running
403
+ // pendingProcess and the debug port is now responding, the responder is
404
+ // almost certainly OUR Chrome — not a user-attached one. Tagging it as
405
+ // 'attach' would make close() skip kill and leak our spawn. Treat as
406
+ // isolated and register / write a marker so the lifecycle paths see it.
407
+ const ourChromeRespondedLate = pendingProc !== null && pendingProc.exitCode === null;
408
+ if (ourChromeRespondedLate) {
409
+ console.error(`[ChromeLauncher] Pending Chrome (PID ${pendingProc.pid}) responded on port ${port}; treating as our managed instance.`);
410
+ // Best-effort sync-shutdown registration so #661 sync-kill can target
411
+ // this Chrome. The marker file write happened on the original spawn
412
+ // (the prior call that produced this pendingProcess), so we don't
413
+ // need to re-write it here. userDataDir is not in scope at this
414
+ // pre-resolution point of the launcher; the marker on disk already
415
+ // carries it.
416
+ if (pendingProc.pid) {
417
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: pendingProc.pid });
418
+ }
419
+ this.instance = {
420
+ wsEndpoint: existingWs,
421
+ httpEndpoint: `http://127.0.0.1:${port}`,
422
+ process: pendingProc,
423
+ launchMode: 'isolated',
424
+ };
425
+ }
426
+ else {
427
+ console.error(`[ChromeLauncher] Found existing Chrome on port ${port}`);
428
+ this.instance = {
429
+ wsEndpoint: existingWs,
430
+ httpEndpoint: `http://127.0.0.1:${port}`,
431
+ // Connected to a Chrome we did not spawn — never kill on exit (#661 Phase 6).
432
+ launchMode: 'attach',
433
+ };
434
+ // Attached to user-started Chrome — assume real profile
435
+ this.profileState = { type: 'real', extensionsAvailable: true };
436
+ }
344
437
  return this.instance;
345
438
  }
346
439
  // Reuse a still-starting Chrome process from a previous timed-out launch attempt.
@@ -356,10 +449,19 @@ class ChromeLauncher {
356
449
  try {
357
450
  const wsEndpoint = await waitForDebugPort(port, launchTimeout, pendingProc);
358
451
  this.pendingProcess = null;
452
+ // codex P2 review on #670: this Chrome was spawned by us in a prior
453
+ // attempt that timed out — register so #661 sync-kill paths can
454
+ // target it. The marker file was already written by the original
455
+ // spawn site; userDataDir isn't resolved yet at this branch so we
456
+ // intentionally skip a re-write.
457
+ if (pendingProc.pid) {
458
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: pendingProc.pid });
459
+ }
359
460
  this.instance = {
360
461
  wsEndpoint,
361
462
  httpEndpoint: `http://127.0.0.1:${port}`,
362
463
  process: pendingProc,
464
+ launchMode: 'isolated',
363
465
  };
364
466
  console.error(`[ChromeLauncher] Reused pending Chrome process, ready at ${wsEndpoint}`);
365
467
  return this.instance;
@@ -569,10 +671,48 @@ class ChromeLauncher {
569
671
  pidFilePath: (0, pid_manager_1.getChromePidFilePath)(port),
570
672
  label: 'managed-chrome',
571
673
  });
674
+ // #661 Phase 1+2 (gemini high review): write the ownership marker AND
675
+ // register for synchronous shutdown immediately after spawn — before
676
+ // waitForDebugPort. Otherwise, if the parent dies during the debug-port
677
+ // wait window, the orphaned Chrome would not be in the registry and
678
+ // would leak.
679
+ if (userDataDir) {
680
+ (0, ownership_marker_1.writeMarker)({ chromePid: chromeProcess.pid, userDataDir });
681
+ }
682
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: chromeProcess.pid, userDataDir });
572
683
  }
573
- // Log Chrome process exit for immediate diagnostics
684
+ // Log Chrome process exit and classify it for the watchdog (#660).
685
+ const chromeStartedAtForExitHandler = Date.now();
574
686
  chromeProcess.once('exit', (code, signal) => {
575
- console.error(`[ChromeLauncher] Chrome process exited (code: ${code}, signal: ${signal})`);
687
+ const uptimeMs = Date.now() - chromeStartedAtForExitHandler;
688
+ const classification = (0, exit_classifier_1.classifyExit)({
689
+ code,
690
+ signal,
691
+ uptimeMs,
692
+ intentionalStop: this._intentionalStop,
693
+ });
694
+ this._lastExitClassification = classification;
695
+ console.error(`[ChromeLauncher] Chrome process exited (code: ${code}, signal: ${signal}, uptime: ${uptimeMs}ms, class: ${classification})`);
696
+ // Symmetric cleanup: unregister + remove marker so a failed-launch Chrome
697
+ // (e.g. waitForDebugPort timeout) does not leave stale state behind.
698
+ if (chromeProcess.pid) {
699
+ (0, sync_shutdown_1.unregisterManagedChrome)(chromeProcess.pid);
700
+ (0, ownership_marker_1.removeMarker)({ chromePid: chromeProcess.pid, userDataDir });
701
+ }
702
+ if (classification === 'clean' && !this._intentionalStop) {
703
+ // User-driven close. Quiesce the watchdog so it does not silently respawn (#660).
704
+ const quiesce = (0, exit_classifier_1.quiesceMs)();
705
+ this._quiesceUntil = Date.now() + quiesce;
706
+ console.error(`[ChromeLauncher] Quiesced relaunch for ${quiesce}ms (user-driven close)`);
707
+ }
708
+ else if (classification === 'crash') {
709
+ // Track for rate-limit check.
710
+ this._recentCrashesMs.push(Date.now());
711
+ // Bound the array — only last ~10 entries needed.
712
+ if (this._recentCrashesMs.length > 10) {
713
+ this._recentCrashesMs = this._recentCrashesMs.slice(-10);
714
+ }
715
+ }
576
716
  // Clear cached instance so next ensureChrome() knows Chrome is gone
577
717
  this.instance = null;
578
718
  // Clear pendingProcess if this was the one we were tracking
@@ -615,18 +755,24 @@ class ChromeLauncher {
615
755
  throw new Error(diagnostics.join('\n'));
616
756
  }
617
757
  this.pendingProcess = null; // Success — no longer pending
758
+ // Marker + registration already happened immediately after spawn (above).
759
+ // Here we just record the instance state.
618
760
  this.instance = {
619
761
  wsEndpoint,
620
762
  httpEndpoint: `http://127.0.0.1:${port}`,
621
763
  process: chromeProcess,
622
764
  userDataDir,
623
765
  profileType,
766
+ launchMode: 'isolated',
624
767
  };
625
768
  // Persist Chrome PID to disk for orphan detection
626
769
  if (chromeProcess.pid) {
627
770
  (0, pid_manager_1.writeChromePid)(port, chromeProcess.pid);
628
771
  }
629
772
  this._intentionalStop = false;
773
+ // Successful launch — clear any pending quiesce (#660).
774
+ this._quiesceUntil = 0;
775
+ this._chromeStartedAt = Date.now();
630
776
  console.error(`[ChromeLauncher] Chrome ready at ${wsEndpoint}`);
631
777
  return this.instance;
632
778
  }
@@ -678,11 +824,18 @@ class ChromeLauncher {
678
824
  catch { /* ignore */ }
679
825
  this.pendingProcess = null;
680
826
  }
827
+ // Attach mode (#659, #661 Phase 6): we did not spawn this Chrome — never kill it.
828
+ if (this.instance?.launchMode === 'attach') {
829
+ console.error('[ChromeLauncher] close(): attach-mode Chrome left alive (user-owned).');
830
+ this.instance = null;
831
+ return;
832
+ }
681
833
  if (this.instance?.process) {
682
834
  console.error('[ChromeLauncher] Closing Chrome...');
683
835
  const proc = this.instance.process;
684
836
  const userDataDir = this.instance.userDataDir;
685
837
  const profileType = this.currentProfileType;
838
+ const chromePidForMarker = proc.pid;
686
839
  if (process.platform === 'win32' && proc.pid) {
687
840
  try {
688
841
  // On Windows, kill the entire process tree to clean up renderer/GPU children
@@ -738,6 +891,11 @@ class ChromeLauncher {
738
891
  // Ignore cleanup errors
739
892
  }
740
893
  }
894
+ // Remove ownership marker (#661 Phase 1).
895
+ if (chromePidForMarker) {
896
+ (0, ownership_marker_1.removeMarker)({ chromePid: chromePidForMarker, userDataDir });
897
+ (0, sync_shutdown_1.unregisterManagedChrome)(chromePidForMarker);
898
+ }
741
899
  }
742
900
  // Remove Chrome PID file before clearing instance
743
901
  (0, pid_manager_1.removeChromePid)(this.port);
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/chrome/launcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Ownership-marker file (#661).
3
+ *
4
+ * When openchrome spawns a Chrome process *that it owns*, it writes a marker
5
+ * inside the Chrome `--user-data-dir` (or, as a fallback, under the openchrome
6
+ * state dir). The marker is the source of truth for orphan reaping: only kill
7
+ * Chrome processes whose marker UUID we recognize.
8
+ *
9
+ * Crucially, attach-mode Chrome (issue #659) never gets a marker — that
10
+ * process belongs to the user and must never be killed by openchrome.
11
+ */
12
+ export declare const MARKER_FILENAME = ".openchrome-managed";
13
+ export interface OwnershipMarker {
14
+ /** Chrome process PID. */
15
+ pid: number;
16
+ /** Parent (MCP server) PID at marker write time. */
17
+ ppid: number;
18
+ /** Command line of the parent process at write time, for PID-reuse detection. */
19
+ ppidCommand: string;
20
+ /** Absolute path of the user-data-dir we passed to Chrome. */
21
+ userDataDir: string;
22
+ /** ISO timestamp. */
23
+ startedAt: string;
24
+ /** Random per-launch UUID. Used to disambiguate PID reuse. */
25
+ marker: string;
26
+ /** Lifecycle ownership: 'isolated' = we spawned and own the lifecycle. Attach mode does not write a marker at all. */
27
+ launchMode: 'isolated';
28
+ }
29
+ /**
30
+ * Read a process's command-line. Linux only reads from /proc; on macOS/Windows
31
+ * we have no portable cheap way, so we fall back to the current process's argv —
32
+ * but only when the requested pid IS the current process. For any other pid
33
+ * we return '' rather than misleading data (gemini medium review on #667).
34
+ */
35
+ export declare function readParentCommand(pid: number): string;
36
+ /**
37
+ * Write a marker for an isolated-mode Chrome process.
38
+ * Returns the generated UUID, or null if the write failed in both locations
39
+ * (in which case the caller should still continue — orphan-reaping just
40
+ * loses some accuracy for that one Chrome).
41
+ */
42
+ export declare function writeMarker(opts: {
43
+ chromePid: number;
44
+ userDataDir: string;
45
+ }): string | null;
46
+ /**
47
+ * Best-effort marker removal. Looks at both the primary and fallback paths.
48
+ */
49
+ export declare function removeMarker(opts: {
50
+ chromePid: number;
51
+ userDataDir?: string;
52
+ }): void;
53
+ export declare function readMarker(filePath: string): OwnershipMarker | null;
54
+ /**
55
+ * Discover all known markers.
56
+ *
57
+ * Scans (deduplicated):
58
+ * - `~/.openchrome/profile/` — singular persistent profile from
59
+ * `ProfileManager.resolveProfile()` (codex P1 review on #667 — the previous
60
+ * scan only walked the plural `profiles/*` and missed every real launch).
61
+ * - `~/.openchrome/profile/<sub>/` — multi-profile sub-dirs.
62
+ * - `~/.openchrome/headless-shell-profile/` — headless-shell binary profile.
63
+ * - `~/.openchrome/profiles/*` — pool/multi-profile (forwards-compat).
64
+ * - `~/.openchrome/state/markers/*.json` — fallback marker store.
65
+ *
66
+ * Custom user-data-dirs that live outside `~/.openchrome` are NOT scanned —
67
+ * the marker still exists at the writer's userDataDir but we don't know to
68
+ * look for it from a future startup. Operators relying on custom paths can
69
+ * use the runtime sync-kill (`sync-shutdown.ts`) which targets exact PIDs.
70
+ */
71
+ export declare function listMarkers(): Array<{
72
+ filePath: string;
73
+ marker: OwnershipMarker;
74
+ }>;
75
+ export declare function deleteMarkerFile(filePath: string): void;
76
+ /**
77
+ * Verify that a still-running PID is actually the same Chrome we tracked.
78
+ * Mismatch → caller should leave the process alone (PID reuse).
79
+ *
80
+ * On Linux the cmdline is read directly. On macOS we use `ps -ww` so the
81
+ * full --user-data-dir argument isn't truncated. On Windows we leave the
82
+ * check unimplemented and return false (do not kill on Windows orphan
83
+ * reaper for now; rely on the Phase-2 sync kill at exit).
84
+ */
85
+ export declare function verifyChromePidIdentity(pid: number, expectedUserDataDir: string): boolean;
86
+ //# sourceMappingURL=ownership-marker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ownership-marker.d.ts","sourceRoot":"","sources":["../../src/chrome/ownership-marker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAKrD,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,sHAAsH;IACtH,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAerD;AAoBD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,GAAG,IAAI,CA8BhB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAiBpF;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAkBnE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAiElF;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAQvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,OAAO,CA2CzF"}