openchrome-mcp 1.10.2 → 1.10.3

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 (92) hide show
  1. package/README.md +46 -15
  2. package/assets/badges/mseep.png +0 -0
  3. package/dist/chrome/exit-classifier.d.ts +66 -0
  4. package/dist/chrome/exit-classifier.d.ts.map +1 -0
  5. package/dist/chrome/exit-classifier.js +97 -0
  6. package/dist/chrome/exit-classifier.js.map +1 -0
  7. package/dist/chrome/launch-mode-resolver.d.ts +78 -0
  8. package/dist/chrome/launch-mode-resolver.d.ts.map +1 -0
  9. package/dist/chrome/launch-mode-resolver.js +108 -0
  10. package/dist/chrome/launch-mode-resolver.js.map +1 -0
  11. package/dist/chrome/launcher.d.ts +40 -0
  12. package/dist/chrome/launcher.d.ts.map +1 -1
  13. package/dist/chrome/launcher.js +174 -15
  14. package/dist/chrome/launcher.js.map +1 -1
  15. package/dist/chrome/ownership-marker.d.ts +86 -0
  16. package/dist/chrome/ownership-marker.d.ts.map +1 -0
  17. package/dist/chrome/ownership-marker.js +329 -0
  18. package/dist/chrome/ownership-marker.js.map +1 -0
  19. package/dist/chrome/process-detector.d.ts +49 -0
  20. package/dist/chrome/process-detector.d.ts.map +1 -0
  21. package/dist/chrome/process-detector.js +241 -0
  22. package/dist/chrome/process-detector.js.map +1 -0
  23. package/dist/chrome/process-watchdog.d.ts.map +1 -1
  24. package/dist/chrome/process-watchdog.js +17 -1
  25. package/dist/chrome/process-watchdog.js.map +1 -1
  26. package/dist/cli/claude-cli.d.ts +23 -0
  27. package/dist/cli/claude-cli.js +31 -0
  28. package/dist/cli/claude-cli.js.map +1 -0
  29. package/dist/cli/claude-session.js +3 -2
  30. package/dist/cli/claude-session.js.map +1 -1
  31. package/dist/cli/index.js +46 -9
  32. package/dist/cli/index.js.map +1 -1
  33. package/dist/cli/mcp-client-config.d.ts +13 -1
  34. package/dist/cli/mcp-client-config.js +33 -2
  35. package/dist/cli/mcp-client-config.js.map +1 -1
  36. package/dist/config/global.d.ts +6 -1
  37. package/dist/config/global.d.ts.map +1 -1
  38. package/dist/config/global.js.map +1 -1
  39. package/dist/config/headless-resolver.d.ts +39 -0
  40. package/dist/config/headless-resolver.d.ts.map +1 -0
  41. package/dist/config/headless-resolver.js +55 -0
  42. package/dist/config/headless-resolver.js.map +1 -0
  43. package/dist/config/tool-tiers.d.ts.map +1 -1
  44. package/dist/config/tool-tiers.js +2 -1
  45. package/dist/config/tool-tiers.js.map +1 -1
  46. package/dist/index.js +53 -7
  47. package/dist/index.js.map +1 -1
  48. package/dist/mcp-server.d.ts.map +1 -1
  49. package/dist/mcp-server.js +21 -4
  50. package/dist/mcp-server.js.map +1 -1
  51. package/dist/tools/computer.d.ts.map +1 -1
  52. package/dist/tools/computer.js +31 -6
  53. package/dist/tools/computer.js.map +1 -1
  54. package/dist/tools/fill-form.d.ts.map +1 -1
  55. package/dist/tools/fill-form.js +122 -4
  56. package/dist/tools/fill-form.js.map +1 -1
  57. package/dist/tools/index.d.ts.map +1 -1
  58. package/dist/tools/index.js +4 -0
  59. package/dist/tools/index.js.map +1 -1
  60. package/dist/tools/login-detector.d.ts +87 -0
  61. package/dist/tools/login-detector.d.ts.map +1 -0
  62. package/dist/tools/login-detector.js +169 -0
  63. package/dist/tools/login-detector.js.map +1 -0
  64. package/dist/tools/navigate.d.ts.map +1 -1
  65. package/dist/tools/navigate.js +73 -22
  66. package/dist/tools/navigate.js.map +1 -1
  67. package/dist/tools/validate-page.d.ts +16 -0
  68. package/dist/tools/validate-page.d.ts.map +1 -0
  69. package/dist/tools/validate-page.js +309 -0
  70. package/dist/tools/validate-page.js.map +1 -0
  71. package/dist/tools/wait-for.js +2 -2
  72. package/dist/tools/wait-for.js.map +1 -1
  73. package/dist/transports/stdio.d.ts.map +1 -1
  74. package/dist/transports/stdio.js +15 -0
  75. package/dist/transports/stdio.js.map +1 -1
  76. package/dist/utils/pid-manager.d.ts +16 -0
  77. package/dist/utils/pid-manager.d.ts.map +1 -1
  78. package/dist/utils/pid-manager.js +88 -0
  79. package/dist/utils/pid-manager.js.map +1 -1
  80. package/dist/utils/session-resume-token.d.ts +53 -0
  81. package/dist/utils/session-resume-token.d.ts.map +1 -0
  82. package/dist/utils/session-resume-token.js +191 -0
  83. package/dist/utils/session-resume-token.js.map +1 -0
  84. package/dist/utils/sync-shutdown.d.ts +51 -0
  85. package/dist/utils/sync-shutdown.d.ts.map +1 -0
  86. package/dist/utils/sync-shutdown.js +112 -0
  87. package/dist/utils/sync-shutdown.js.map +1 -0
  88. package/dist/watchdog/health-endpoint.d.ts +5 -0
  89. package/dist/watchdog/health-endpoint.d.ts.map +1 -1
  90. package/dist/watchdog/health-endpoint.js +14 -2
  91. package/dist/watchdog/health-endpoint.js.map +1 -1
  92. package/package.json +1 -1
@@ -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
@@ -287,7 +292,23 @@ class ChromeLauncher {
287
292
  extensionsAvailable: true,
288
293
  };
289
294
  _intentionalStop = false;
295
+ /** ms timestamp of the most recent successful spawn, for #660 anti-flap. */
296
+ _chromeStartedAt = 0;
297
+ /** Most recent exit classification (#660). 'intentional' | 'clean' | 'crash'. */
298
+ _lastExitClassification = null;
299
+ /** ms epoch until which the watchdog should skip relaunch (#660). 0 = no quiesce. */
300
+ _quiesceUntil = 0;
301
+ /** Crash timestamps for the watchdog rate-limit check (#660 Phase 3). */
302
+ _recentCrashesMs = [];
290
303
  get intentionalStop() { return this._intentionalStop; }
304
+ /** Last exit classification recorded by the spawn-side exit handler. */
305
+ get lastExitClassification() { return this._lastExitClassification; }
306
+ /** Watchdog reads this; if `Date.now() < quiesceUntil` it skips relaunch. */
307
+ get quiesceUntil() { return this._quiesceUntil; }
308
+ /** Recent Chrome crash timestamps (last ~minute). */
309
+ get recentCrashesMs() { return this._recentCrashesMs; }
310
+ /** Tools call this when they need Chrome — clears any pending quiesce. */
311
+ clearQuiesce() { this._quiesceUntil = 0; }
291
312
  constructor(port = DEFAULT_PORT) {
292
313
  this.port = port;
293
314
  }
@@ -326,21 +347,94 @@ class ChromeLauncher {
326
347
  */
327
348
  async launchChrome(options = {}) {
328
349
  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);
350
+ // #659: resolve launch mode (auto / attach / isolated). Per-call options
351
+ // win first (gemini high review on #670), then env, then config, then default 'auto'.
352
+ 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 });
353
+ // 'isolated' mode: skip the existing-Chrome probe entirely. Always spawn
354
+ // our own Chrome with our isolated user-data-dir. Used for clean-room
355
+ // scraping where attaching to a stray developer Chrome would be wrong.
356
+ //
357
+ // codex P1 review on #670: a Chrome already bound to `port` would otherwise
358
+ // be picked up by `waitForDebugPort` after our spawn (since Chrome silently
359
+ // re-uses or rebinds), defeating the isolation guarantee. We do a tight
360
+ // single-shot probe BEFORE spawning and refuse to start if the port is
361
+ // taken — caller must clear the port or pick a different one.
362
+ let existingWs = null;
363
+ if (launchMode === 'isolated') {
364
+ const occupied = await checkDebugPort(port, 500);
365
+ if (occupied) {
366
+ throw new Error(`[ChromeLauncher] launch mode 'isolated' but port ${port} is already in use ` +
367
+ `by another Chrome (debug endpoint: ${occupied}). ` +
368
+ `Stop that Chrome, choose a different --port, or set OPENCHROME_LAUNCH_MODE=auto to attach.`);
369
+ }
370
+ console.error('[ChromeLauncher] Launch mode: isolated — skipping debug-port attach.');
371
+ }
372
+ else {
373
+ // Check if Chrome is already running with debug port.
374
+ // Use a brief retry window (5s) instead of a single-shot check, because Chrome
375
+ // may still be binding the debug port during startup (1-5s window).
376
+ existingWs = await waitForDebugPort(port, 5000).catch(() => null);
377
+ }
378
+ // 'attach' mode: must attach. If no debug port responded, surface a
379
+ // structured error (no auto-restart per #659 policy decision #2).
380
+ if (launchMode === 'attach' && !existingWs) {
381
+ // Diagnostic: enumerate any running Chromes so the agent can hint at
382
+ // the right CLI invocation. Read-only, never kills anything.
383
+ try {
384
+ const candidates = (0, process_detector_1.filterByProfile)((0, process_detector_1.detectRunningChromes)(), options.profileDirectory);
385
+ const chosen = (0, process_detector_1.pickPreferredChrome)(candidates);
386
+ if (chosen) {
387
+ console.error(`[ChromeLauncher] attach mode: detected Chrome (PID ${chosen.pid}, variant=${chosen.variant}) ` +
388
+ `but it is not exposing --remote-debugging-port=${port}. ` +
389
+ `openchrome will NOT auto-restart your Chrome. Re-launch it with --remote-debugging-port=${port}.`);
390
+ }
391
+ else {
392
+ console.error(`[ChromeLauncher] attach mode: no Chrome processes found.`);
393
+ }
394
+ }
395
+ catch (err) {
396
+ console.error(`[ChromeLauncher] attach mode: process detection failed:`, err);
397
+ }
398
+ throw new launch_mode_resolver_1.AttachConsentRequiredError(port);
399
+ }
333
400
  if (existingWs) {
334
- console.error(`[ChromeLauncher] Found existing Chrome on port ${port}`);
335
401
  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 };
402
+ this.pendingProcess = null;
403
+ // codex P1 review on #670: when our prior spawn left a still-running
404
+ // pendingProcess and the debug port is now responding, the responder is
405
+ // almost certainly OUR Chrome — not a user-attached one. Tagging it as
406
+ // 'attach' would make close() skip kill and leak our spawn. Treat as
407
+ // isolated and register / write a marker so the lifecycle paths see it.
408
+ const ourChromeRespondedLate = pendingProc !== null && pendingProc.exitCode === null;
409
+ if (ourChromeRespondedLate) {
410
+ console.error(`[ChromeLauncher] Pending Chrome (PID ${pendingProc.pid}) responded on port ${port}; treating as our managed instance.`);
411
+ // Best-effort sync-shutdown registration so #661 sync-kill can target
412
+ // this Chrome. The marker file write happened on the original spawn
413
+ // (the prior call that produced this pendingProcess), so we don't
414
+ // need to re-write it here. userDataDir is not in scope at this
415
+ // pre-resolution point of the launcher; the marker on disk already
416
+ // carries it.
417
+ if (pendingProc.pid) {
418
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: pendingProc.pid });
419
+ }
420
+ this.instance = {
421
+ wsEndpoint: existingWs,
422
+ httpEndpoint: `http://127.0.0.1:${port}`,
423
+ process: pendingProc,
424
+ launchMode: 'isolated',
425
+ };
426
+ }
427
+ else {
428
+ console.error(`[ChromeLauncher] Found existing Chrome on port ${port}`);
429
+ this.instance = {
430
+ wsEndpoint: existingWs,
431
+ httpEndpoint: `http://127.0.0.1:${port}`,
432
+ // Connected to a Chrome we did not spawn — never kill on exit (#661 Phase 6).
433
+ launchMode: 'attach',
434
+ };
435
+ // Attached to user-started Chrome — assume real profile
436
+ this.profileState = { type: 'real', extensionsAvailable: true };
437
+ }
344
438
  return this.instance;
345
439
  }
346
440
  // Reuse a still-starting Chrome process from a previous timed-out launch attempt.
@@ -356,10 +450,19 @@ class ChromeLauncher {
356
450
  try {
357
451
  const wsEndpoint = await waitForDebugPort(port, launchTimeout, pendingProc);
358
452
  this.pendingProcess = null;
453
+ // codex P2 review on #670: this Chrome was spawned by us in a prior
454
+ // attempt that timed out — register so #661 sync-kill paths can
455
+ // target it. The marker file was already written by the original
456
+ // spawn site; userDataDir isn't resolved yet at this branch so we
457
+ // intentionally skip a re-write.
458
+ if (pendingProc.pid) {
459
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: pendingProc.pid });
460
+ }
359
461
  this.instance = {
360
462
  wsEndpoint,
361
463
  httpEndpoint: `http://127.0.0.1:${port}`,
362
464
  process: pendingProc,
465
+ launchMode: 'isolated',
363
466
  };
364
467
  console.error(`[ChromeLauncher] Reused pending Chrome process, ready at ${wsEndpoint}`);
365
468
  return this.instance;
@@ -569,10 +672,48 @@ class ChromeLauncher {
569
672
  pidFilePath: (0, pid_manager_1.getChromePidFilePath)(port),
570
673
  label: 'managed-chrome',
571
674
  });
675
+ // #661 Phase 1+2 (gemini high review): write the ownership marker AND
676
+ // register for synchronous shutdown immediately after spawn — before
677
+ // waitForDebugPort. Otherwise, if the parent dies during the debug-port
678
+ // wait window, the orphaned Chrome would not be in the registry and
679
+ // would leak.
680
+ if (userDataDir) {
681
+ (0, ownership_marker_1.writeMarker)({ chromePid: chromeProcess.pid, userDataDir });
682
+ }
683
+ (0, sync_shutdown_1.registerManagedChrome)({ pid: chromeProcess.pid, userDataDir });
572
684
  }
573
- // Log Chrome process exit for immediate diagnostics
685
+ // Log Chrome process exit and classify it for the watchdog (#660).
686
+ const chromeStartedAtForExitHandler = Date.now();
574
687
  chromeProcess.once('exit', (code, signal) => {
575
- console.error(`[ChromeLauncher] Chrome process exited (code: ${code}, signal: ${signal})`);
688
+ const uptimeMs = Date.now() - chromeStartedAtForExitHandler;
689
+ const classification = (0, exit_classifier_1.classifyExit)({
690
+ code,
691
+ signal,
692
+ uptimeMs,
693
+ intentionalStop: this._intentionalStop,
694
+ });
695
+ this._lastExitClassification = classification;
696
+ console.error(`[ChromeLauncher] Chrome process exited (code: ${code}, signal: ${signal}, uptime: ${uptimeMs}ms, class: ${classification})`);
697
+ // Symmetric cleanup: unregister + remove marker so a failed-launch Chrome
698
+ // (e.g. waitForDebugPort timeout) does not leave stale state behind.
699
+ if (chromeProcess.pid) {
700
+ (0, sync_shutdown_1.unregisterManagedChrome)(chromeProcess.pid);
701
+ (0, ownership_marker_1.removeMarker)({ chromePid: chromeProcess.pid, userDataDir });
702
+ }
703
+ if (classification === 'clean' && !this._intentionalStop) {
704
+ // User-driven close. Quiesce the watchdog so it does not silently respawn (#660).
705
+ const quiesce = (0, exit_classifier_1.quiesceMs)();
706
+ this._quiesceUntil = Date.now() + quiesce;
707
+ console.error(`[ChromeLauncher] Quiesced relaunch for ${quiesce}ms (user-driven close)`);
708
+ }
709
+ else if (classification === 'crash') {
710
+ // Track for rate-limit check.
711
+ this._recentCrashesMs.push(Date.now());
712
+ // Bound the array — only last ~10 entries needed.
713
+ if (this._recentCrashesMs.length > 10) {
714
+ this._recentCrashesMs = this._recentCrashesMs.slice(-10);
715
+ }
716
+ }
576
717
  // Clear cached instance so next ensureChrome() knows Chrome is gone
577
718
  this.instance = null;
578
719
  // Clear pendingProcess if this was the one we were tracking
@@ -615,18 +756,24 @@ class ChromeLauncher {
615
756
  throw new Error(diagnostics.join('\n'));
616
757
  }
617
758
  this.pendingProcess = null; // Success — no longer pending
759
+ // Marker + registration already happened immediately after spawn (above).
760
+ // Here we just record the instance state.
618
761
  this.instance = {
619
762
  wsEndpoint,
620
763
  httpEndpoint: `http://127.0.0.1:${port}`,
621
764
  process: chromeProcess,
622
765
  userDataDir,
623
766
  profileType,
767
+ launchMode: 'isolated',
624
768
  };
625
769
  // Persist Chrome PID to disk for orphan detection
626
770
  if (chromeProcess.pid) {
627
771
  (0, pid_manager_1.writeChromePid)(port, chromeProcess.pid);
628
772
  }
629
773
  this._intentionalStop = false;
774
+ // Successful launch — clear any pending quiesce (#660).
775
+ this._quiesceUntil = 0;
776
+ this._chromeStartedAt = Date.now();
630
777
  console.error(`[ChromeLauncher] Chrome ready at ${wsEndpoint}`);
631
778
  return this.instance;
632
779
  }
@@ -678,11 +825,18 @@ class ChromeLauncher {
678
825
  catch { /* ignore */ }
679
826
  this.pendingProcess = null;
680
827
  }
828
+ // Attach mode (#659, #661 Phase 6): we did not spawn this Chrome — never kill it.
829
+ if (this.instance?.launchMode === 'attach') {
830
+ console.error('[ChromeLauncher] close(): attach-mode Chrome left alive (user-owned).');
831
+ this.instance = null;
832
+ return;
833
+ }
681
834
  if (this.instance?.process) {
682
835
  console.error('[ChromeLauncher] Closing Chrome...');
683
836
  const proc = this.instance.process;
684
837
  const userDataDir = this.instance.userDataDir;
685
838
  const profileType = this.currentProfileType;
839
+ const chromePidForMarker = proc.pid;
686
840
  if (process.platform === 'win32' && proc.pid) {
687
841
  try {
688
842
  // On Windows, kill the entire process tree to clean up renderer/GPU children
@@ -738,6 +892,11 @@ class ChromeLauncher {
738
892
  // Ignore cleanup errors
739
893
  }
740
894
  }
895
+ // Remove ownership marker (#661 Phase 1).
896
+ if (chromePidForMarker) {
897
+ (0, ownership_marker_1.removeMarker)({ chromePid: chromePidForMarker, userDataDir });
898
+ (0, sync_shutdown_1.unregisterManagedChrome)(chromePidForMarker);
899
+ }
741
900
  }
742
901
  // Remove Chrome PID file before clearing instance
743
902
  (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"}