openchrome-mcp 1.2.4 → 1.2.5

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 (104) hide show
  1. package/dist/cdp/client.d.ts.map +1 -1
  2. package/dist/cdp/client.js +9 -0
  3. package/dist/cdp/client.js.map +1 -1
  4. package/dist/chrome/launcher.d.ts +32 -15
  5. package/dist/chrome/launcher.d.ts.map +1 -1
  6. package/dist/chrome/launcher.js +136 -116
  7. package/dist/chrome/launcher.js.map +1 -1
  8. package/dist/chrome/profile-manager.d.ts +108 -0
  9. package/dist/chrome/profile-manager.d.ts.map +1 -0
  10. package/dist/chrome/profile-manager.js +372 -0
  11. package/dist/chrome/profile-manager.js.map +1 -0
  12. package/dist/chrome/sqlite-cookie-copy.d.ts +46 -0
  13. package/dist/chrome/sqlite-cookie-copy.d.ts.map +1 -0
  14. package/dist/chrome/sqlite-cookie-copy.js +145 -0
  15. package/dist/chrome/sqlite-cookie-copy.js.map +1 -0
  16. package/dist/cli/claude-session.js +0 -0
  17. package/dist/cli/index.js +0 -0
  18. package/dist/config/defaults.d.ts +4 -0
  19. package/dist/config/defaults.d.ts.map +1 -1
  20. package/dist/config/defaults.js +5 -1
  21. package/dist/config/defaults.js.map +1 -1
  22. package/dist/config/global.d.ts +2 -0
  23. package/dist/config/global.d.ts.map +1 -1
  24. package/dist/config/global.js.map +1 -1
  25. package/dist/hints/hint-engine.d.ts +36 -2
  26. package/dist/hints/hint-engine.d.ts.map +1 -1
  27. package/dist/hints/hint-engine.js +96 -27
  28. package/dist/hints/hint-engine.js.map +1 -1
  29. package/dist/hints/index.d.ts +1 -1
  30. package/dist/hints/index.d.ts.map +1 -1
  31. package/dist/hints/rules/repetition-detection.d.ts.map +1 -1
  32. package/dist/hints/rules/repetition-detection.js +21 -0
  33. package/dist/hints/rules/repetition-detection.js.map +1 -1
  34. package/dist/index.js +17 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/mcp-server.d.ts +12 -1
  37. package/dist/mcp-server.d.ts.map +1 -1
  38. package/dist/mcp-server.js +162 -20
  39. package/dist/mcp-server.js.map +1 -1
  40. package/dist/resources/usage-guide.d.ts +1 -1
  41. package/dist/resources/usage-guide.d.ts.map +1 -1
  42. package/dist/resources/usage-guide.js +22 -0
  43. package/dist/resources/usage-guide.js.map +1 -1
  44. package/dist/session-manager.d.ts +4 -0
  45. package/dist/session-manager.d.ts.map +1 -1
  46. package/dist/session-manager.js +56 -0
  47. package/dist/session-manager.js.map +1 -1
  48. package/dist/tools/click-element.d.ts.map +1 -1
  49. package/dist/tools/click-element.js +6 -2
  50. package/dist/tools/click-element.js.map +1 -1
  51. package/dist/tools/computer.d.ts.map +1 -1
  52. package/dist/tools/computer.js +32 -3
  53. package/dist/tools/computer.js.map +1 -1
  54. package/dist/tools/find.d.ts.map +1 -1
  55. package/dist/tools/find.js +16 -6
  56. package/dist/tools/find.js.map +1 -1
  57. package/dist/tools/form-input.d.ts.map +1 -1
  58. package/dist/tools/form-input.js +20 -0
  59. package/dist/tools/form-input.js.map +1 -1
  60. package/dist/tools/index.d.ts.map +1 -1
  61. package/dist/tools/index.js +2 -0
  62. package/dist/tools/index.js.map +1 -1
  63. package/dist/tools/javascript.d.ts.map +1 -1
  64. package/dist/tools/javascript.js +38 -2
  65. package/dist/tools/javascript.js.map +1 -1
  66. package/dist/tools/navigate.d.ts.map +1 -1
  67. package/dist/tools/navigate.js +27 -0
  68. package/dist/tools/navigate.js.map +1 -1
  69. package/dist/tools/profile-status.d.ts +10 -0
  70. package/dist/tools/profile-status.d.ts.map +1 -0
  71. package/dist/tools/profile-status.js +101 -0
  72. package/dist/tools/profile-status.js.map +1 -0
  73. package/dist/tools/wait-and-click.d.ts.map +1 -1
  74. package/dist/tools/wait-and-click.js +3 -1
  75. package/dist/tools/wait-and-click.js.map +1 -1
  76. package/dist/utils/format-age.d.ts +5 -0
  77. package/dist/utils/format-age.d.ts.map +1 -0
  78. package/dist/utils/format-age.js +15 -0
  79. package/dist/utils/format-age.js.map +1 -0
  80. package/dist/utils/index.d.ts +1 -0
  81. package/dist/utils/index.d.ts.map +1 -1
  82. package/dist/utils/index.js +1 -0
  83. package/dist/utils/index.js.map +1 -1
  84. package/dist/utils/pid-manager.d.ts +6 -0
  85. package/dist/utils/pid-manager.d.ts.map +1 -0
  86. package/dist/utils/pid-manager.js +132 -0
  87. package/dist/utils/pid-manager.js.map +1 -0
  88. package/dist/utils/ref-id-manager.d.ts +19 -1
  89. package/dist/utils/ref-id-manager.d.ts.map +1 -1
  90. package/dist/utils/ref-id-manager.js +49 -2
  91. package/dist/utils/ref-id-manager.js.map +1 -1
  92. package/package.json +4 -1
  93. package/dist/chrome/profile-detector.d.ts +0 -52
  94. package/dist/chrome/profile-detector.d.ts.map +0 -1
  95. package/dist/chrome/profile-detector.js +0 -246
  96. package/dist/chrome/profile-detector.js.map +0 -1
  97. package/dist/hints/rules/dom-mode-suggestion.d.ts +0 -6
  98. package/dist/hints/rules/dom-mode-suggestion.d.ts.map +0 -1
  99. package/dist/hints/rules/dom-mode-suggestion.js +0 -24
  100. package/dist/hints/rules/dom-mode-suggestion.js.map +0 -1
  101. package/dist/types/profile.d.ts +0 -76
  102. package/dist/types/profile.d.ts.map +0 -1
  103. package/dist/types/profile.js +0 -35
  104. package/dist/types/profile.js.map +0 -1
@@ -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,108 @@
1
+ /**
2
+ * ProfileManager - Persistent OpenChrome Profile Architecture
3
+ *
4
+ * Manages a persistent Chrome profile directory at ~/.openchrome/profile/
5
+ * instead of creating disposable temp profiles on every launch.
6
+ * Provides atomic cookie sync using the SQLite backup API.
7
+ */
8
+ export type ProfileType = 'real' | 'persistent' | 'temp' | 'explicit';
9
+ export interface SyncMetadata {
10
+ lastSyncTimestamp: number;
11
+ /** `${mtimeMs}:${size}` of the source Cookies file at sync time */
12
+ sourceProfileHash: string;
13
+ syncCount: number;
14
+ sourceProfileDir: string;
15
+ }
16
+ export interface ProfileResolution {
17
+ userDataDir: string;
18
+ profileType: ProfileType;
19
+ syncPerformed: boolean;
20
+ }
21
+ /**
22
+ * Manages persistent OpenChrome Chrome profiles and cookie synchronisation.
23
+ *
24
+ * Key responsibilities:
25
+ * - Maintain a reusable profile at `~/.openchrome/profile/` so cookies and
26
+ * session data survive across OpenChrome restarts.
27
+ * - Track whether the persistent profile is stale relative to the real
28
+ * Chrome profile using lightweight file-stat hashing.
29
+ * - Perform atomic cookie sync via the `sqlite3` CLI `.backup` command when
30
+ * available, falling back to a plain file copy otherwise.
31
+ * - Decide which profile directory Chrome should use (`resolveProfile`).
32
+ */
33
+ export declare class ProfileManager {
34
+ /** Root directory for the persistent OpenChrome profile. */
35
+ static readonly PERSISTENT_PROFILE_DIR: string;
36
+ /** Path to the JSON file that tracks the last sync state. */
37
+ static readonly SYNC_METADATA_PATH: string;
38
+ /** Cookie data is considered fresh if synced within this window (30 min). */
39
+ static readonly COOKIE_FRESHNESS_MS: number;
40
+ /**
41
+ * Return the persistent profile directory, creating it (including the
42
+ * `Default/` subdirectory) if it does not already exist.
43
+ */
44
+ getOrCreatePersistentProfile(): string;
45
+ /**
46
+ * Determine whether the persistent profile needs a fresh cookie sync from
47
+ * `sourceDir`.
48
+ *
49
+ * Returns `true` when:
50
+ * - No sync metadata exists (never synced before), OR
51
+ * - The source Cookies file has changed since the last sync (different
52
+ * mtime or size), OR
53
+ * - The last sync is older than `COOKIE_FRESHNESS_MS`.
54
+ */
55
+ needsSync(sourceDir: string): boolean;
56
+ /**
57
+ * Synchronise cookies (and Preferences) from `sourceDir` into `destDir`.
58
+ *
59
+ * Uses the `sqlite3` CLI `.backup` command for an atomic, consistent
60
+ * snapshot of the Cookies database. Falls back to a plain file copy when
61
+ * `sqlite3` is not available.
62
+ *
63
+ * After a successful sync the metadata file is updated via
64
+ * `updateSyncMetadata`.
65
+ *
66
+ * @returns `{ atomic: true, success: true }` when sqlite3 backup was used,
67
+ * `{ atomic: false, success: true }` when the plain-copy fallback was used,
68
+ * `{ atomic: false, success: false }` when all methods failed.
69
+ */
70
+ syncCookies(sourceDir: string, destDir: string): {
71
+ atomic: boolean;
72
+ success: boolean;
73
+ };
74
+ /**
75
+ * Read the current sync metadata from disk.
76
+ *
77
+ * @returns Parsed `SyncMetadata` or `null` if the file does not exist or
78
+ * cannot be parsed.
79
+ */
80
+ getSyncMetadata(): SyncMetadata | null;
81
+ /**
82
+ * Persist sync metadata for `sourceDir` using a temp-file + rename pattern
83
+ * to prevent corruption on concurrent writes.
84
+ */
85
+ updateSyncMetadata(sourceDir: string): void;
86
+ /**
87
+ * Determine which Chrome `userDataDir` to use and whether a cookie sync
88
+ * was performed.
89
+ *
90
+ * Priority order:
91
+ * 1. `explicitUserDataDir` — caller has specified an exact directory.
92
+ * 2. `useTempProfile` or `usingHeadlessShell` — create a fresh temp dir.
93
+ * 3. `realProfileDir` exists and **not** locked — use real profile directly.
94
+ * 4. `realProfileDir` exists and **is** locked — use persistent profile,
95
+ * syncing cookies from the real profile when stale.
96
+ * 5. No `realProfileDir` — use persistent profile without a sync.
97
+ */
98
+ resolveProfile(options: {
99
+ realProfileDir: string | null;
100
+ isProfileLocked: boolean;
101
+ explicitUserDataDir?: string;
102
+ useTempProfile?: boolean;
103
+ usingHeadlessShell?: boolean;
104
+ }): ProfileResolution;
105
+ /** Check whether the `sqlite3` CLI is available on PATH. */
106
+ private _isSqlite3Available;
107
+ }
108
+ //# sourceMappingURL=profile-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-manager.d.ts","sourceRoot":"","sources":["../../src/chrome/profile-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mEAAmE;IACnE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAKzB,4DAA4D;IAC5D,MAAM,CAAC,QAAQ,CAAC,sBAAsB,SAIpC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,QAAQ,CAAC,kBAAkB,SAIhC;IAEF,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAAkB;IAMrD;;;OAGG;IACH,4BAA4B,IAAI,MAAM;IAkBtC;;;;;;;;;OASG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgCrC;;;;;;;;;;;;;OAaG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAkHxC;;;;;OAKG;IACH,eAAe,IAAI,YAAY,GAAG,IAAI;IAStC;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAqC3C;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,OAAO,EAAE;QACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,eAAe,EAAE,OAAO,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GAAG,iBAAiB;IAwErB,4DAA4D;IAC5D,OAAO,CAAC,mBAAmB;CAY5B"}
@@ -0,0 +1,372 @@
1
+ "use strict";
2
+ /**
3
+ * ProfileManager - Persistent OpenChrome Profile Architecture
4
+ *
5
+ * Manages a persistent Chrome profile directory at ~/.openchrome/profile/
6
+ * instead of creating disposable temp profiles on every launch.
7
+ * Provides atomic cookie sync using the SQLite backup API.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.ProfileManager = void 0;
44
+ const fs = __importStar(require("fs"));
45
+ const path = __importStar(require("path"));
46
+ const os = __importStar(require("os"));
47
+ const child_process_1 = require("child_process");
48
+ // ---------------------------------------------------------------------------
49
+ // ProfileManager
50
+ // ---------------------------------------------------------------------------
51
+ /**
52
+ * Manages persistent OpenChrome Chrome profiles and cookie synchronisation.
53
+ *
54
+ * Key responsibilities:
55
+ * - Maintain a reusable profile at `~/.openchrome/profile/` so cookies and
56
+ * session data survive across OpenChrome restarts.
57
+ * - Track whether the persistent profile is stale relative to the real
58
+ * Chrome profile using lightweight file-stat hashing.
59
+ * - Perform atomic cookie sync via the `sqlite3` CLI `.backup` command when
60
+ * available, falling back to a plain file copy otherwise.
61
+ * - Decide which profile directory Chrome should use (`resolveProfile`).
62
+ */
63
+ class ProfileManager {
64
+ // -------------------------------------------------------------------------
65
+ // Constants (configurable via Object.defineProperty for testing)
66
+ // -------------------------------------------------------------------------
67
+ /** Root directory for the persistent OpenChrome profile. */
68
+ static PERSISTENT_PROFILE_DIR = path.join(os.homedir(), '.openchrome', 'profile');
69
+ /** Path to the JSON file that tracks the last sync state. */
70
+ static SYNC_METADATA_PATH = path.join(os.homedir(), '.openchrome', 'sync-metadata.json');
71
+ /** Cookie data is considered fresh if synced within this window (30 min). */
72
+ static COOKIE_FRESHNESS_MS = 30 * 60 * 1000;
73
+ // -------------------------------------------------------------------------
74
+ // Public methods
75
+ // -------------------------------------------------------------------------
76
+ /**
77
+ * Return the persistent profile directory, creating it (including the
78
+ * `Default/` subdirectory) if it does not already exist.
79
+ */
80
+ getOrCreatePersistentProfile() {
81
+ const profileDir = ProfileManager.PERSISTENT_PROFILE_DIR;
82
+ const defaultDir = path.join(profileDir, 'Default');
83
+ if (!fs.existsSync(profileDir)) {
84
+ fs.mkdirSync(profileDir, { recursive: true });
85
+ console.error(`[ProfileManager] Created persistent profile directory: ${profileDir}`);
86
+ }
87
+ if (!fs.existsSync(defaultDir)) {
88
+ fs.mkdirSync(defaultDir, { recursive: true });
89
+ }
90
+ return profileDir;
91
+ }
92
+ /**
93
+ * Determine whether the persistent profile needs a fresh cookie sync from
94
+ * `sourceDir`.
95
+ *
96
+ * Returns `true` when:
97
+ * - No sync metadata exists (never synced before), OR
98
+ * - The source Cookies file has changed since the last sync (different
99
+ * mtime or size), OR
100
+ * - The last sync is older than `COOKIE_FRESHNESS_MS`.
101
+ */
102
+ needsSync(sourceDir) {
103
+ const metadata = this.getSyncMetadata();
104
+ if (!metadata) {
105
+ return true; // Never synced
106
+ }
107
+ // Compute current hash of the source Cookies file
108
+ const sourceCookiesPath = path.join(sourceDir, 'Default', 'Cookies');
109
+ let currentHash;
110
+ try {
111
+ const stat = fs.statSync(sourceCookiesPath);
112
+ currentHash = `${stat.mtimeMs}:${stat.size}`;
113
+ }
114
+ catch {
115
+ // Cookies file doesn't exist in source — no sync possible
116
+ if (!metadata) {
117
+ console.error('[ProfileManager] Source Cookies not found and no prior sync — persistent profile will have no cookies');
118
+ }
119
+ return false;
120
+ }
121
+ if (currentHash !== metadata.sourceProfileHash) {
122
+ return true; // Source has changed
123
+ }
124
+ if (Date.now() - metadata.lastSyncTimestamp > ProfileManager.COOKIE_FRESHNESS_MS) {
125
+ return true; // Stale
126
+ }
127
+ return false;
128
+ }
129
+ /**
130
+ * Synchronise cookies (and Preferences) from `sourceDir` into `destDir`.
131
+ *
132
+ * Uses the `sqlite3` CLI `.backup` command for an atomic, consistent
133
+ * snapshot of the Cookies database. Falls back to a plain file copy when
134
+ * `sqlite3` is not available.
135
+ *
136
+ * After a successful sync the metadata file is updated via
137
+ * `updateSyncMetadata`.
138
+ *
139
+ * @returns `{ atomic: true, success: true }` when sqlite3 backup was used,
140
+ * `{ atomic: false, success: true }` when the plain-copy fallback was used,
141
+ * `{ atomic: false, success: false }` when all methods failed.
142
+ */
143
+ syncCookies(sourceDir, destDir) {
144
+ try {
145
+ const destDefault = path.join(destDir, 'Default');
146
+ fs.mkdirSync(destDefault, { recursive: true });
147
+ // --- 1. Copy Local State -----------------------------------------------
148
+ const localStateSrc = path.join(sourceDir, 'Local State');
149
+ if (fs.existsSync(localStateSrc)) {
150
+ fs.copyFileSync(localStateSrc, path.join(destDir, 'Local State'));
151
+ }
152
+ // --- 2. Sync Cookies (atomic via sqlite3, or plain copy fallback) ------
153
+ const sourceCookiesPath = path.join(sourceDir, 'Default', 'Cookies');
154
+ const destCookiesPath = path.join(destDefault, 'Cookies');
155
+ let atomic = false;
156
+ if (fs.existsSync(sourceCookiesPath)) {
157
+ const sqlite3Available = this._isSqlite3Available();
158
+ if (sqlite3Available) {
159
+ // Atomic backup using the SQLite .backup command.
160
+ // This works even when Chrome is actively writing to the DB.
161
+ // Uses execFileSync (no shell) to prevent injection via path characters.
162
+ (0, child_process_1.execFileSync)('sqlite3', [
163
+ sourceCookiesPath,
164
+ `.backup '${destCookiesPath.replace(/'/g, "''")}'`,
165
+ ], { stdio: 'ignore', timeout: 10000 });
166
+ // .backup produces a clean WAL-checkpoint DB — remove stale WAL/SHM/journal
167
+ // at the destination so Chrome doesn't get confused.
168
+ for (const suffix of ['Cookies-wal', 'Cookies-shm', 'Cookies-journal']) {
169
+ const stale = path.join(destDefault, suffix);
170
+ if (fs.existsSync(stale)) {
171
+ try {
172
+ fs.unlinkSync(stale);
173
+ }
174
+ catch {
175
+ // Non-fatal
176
+ }
177
+ }
178
+ }
179
+ atomic = true;
180
+ }
181
+ else {
182
+ // sqlite3 not available — fall back to plain file copy (same as
183
+ // the legacy copyEssentialProfileData behaviour).
184
+ console.error('[ProfileManager] sqlite3 not found, falling back to non-atomic cookie copy');
185
+ const cookieFiles = [
186
+ 'Cookies',
187
+ 'Cookies-wal',
188
+ 'Cookies-shm',
189
+ 'Cookies-journal',
190
+ ];
191
+ for (const file of cookieFiles) {
192
+ const src = path.join(sourceDir, 'Default', file);
193
+ if (fs.existsSync(src)) {
194
+ try {
195
+ fs.copyFileSync(src, path.join(destDefault, file));
196
+ }
197
+ catch {
198
+ // Individual file copy failure is non-fatal
199
+ }
200
+ }
201
+ }
202
+ atomic = false;
203
+ }
204
+ }
205
+ // --- 3. Copy and patch Preferences ------------------------------------
206
+ const prefsSrc = path.join(sourceDir, 'Default', 'Preferences');
207
+ if (fs.existsSync(prefsSrc)) {
208
+ try {
209
+ const prefsContent = fs.readFileSync(prefsSrc, 'utf8');
210
+ const prefs = JSON.parse(prefsContent);
211
+ // Prevent "Chrome didn't shut down correctly" prompt
212
+ if (prefs.profile) {
213
+ prefs.profile.exit_type = 'Normal';
214
+ prefs.profile.exited_cleanly = true;
215
+ }
216
+ // Suppress session restore so copied profile doesn't reopen old tabs
217
+ if (!prefs.session)
218
+ prefs.session = {};
219
+ prefs.session.restore_on_startup = 5; // 5 = open new tab page
220
+ delete prefs.session.startup_urls;
221
+ fs.writeFileSync(path.join(destDefault, 'Preferences'), JSON.stringify(prefs));
222
+ }
223
+ catch {
224
+ // JSON parse failed — skip Preferences entirely.
225
+ // Chrome will create fresh defaults.
226
+ }
227
+ }
228
+ // --- 4. Update metadata -----------------------------------------------
229
+ this.updateSyncMetadata(sourceDir);
230
+ console.error(`[ProfileManager] Cookie sync complete (atomic=${atomic}) from ${sourceDir} → ${destDir}`);
231
+ return { atomic, success: true };
232
+ }
233
+ catch (err) {
234
+ console.error('[ProfileManager] syncCookies failed (non-fatal):', err);
235
+ return { atomic: false, success: false };
236
+ }
237
+ }
238
+ /**
239
+ * Read the current sync metadata from disk.
240
+ *
241
+ * @returns Parsed `SyncMetadata` or `null` if the file does not exist or
242
+ * cannot be parsed.
243
+ */
244
+ getSyncMetadata() {
245
+ try {
246
+ const raw = fs.readFileSync(ProfileManager.SYNC_METADATA_PATH, 'utf8');
247
+ return JSON.parse(raw);
248
+ }
249
+ catch {
250
+ return null;
251
+ }
252
+ }
253
+ /**
254
+ * Persist sync metadata for `sourceDir` using a temp-file + rename pattern
255
+ * to prevent corruption on concurrent writes.
256
+ */
257
+ updateSyncMetadata(sourceDir) {
258
+ try {
259
+ // Compute source hash
260
+ const sourceCookiesPath = path.join(sourceDir, 'Default', 'Cookies');
261
+ let sourceProfileHash = '';
262
+ try {
263
+ const stat = fs.statSync(sourceCookiesPath);
264
+ sourceProfileHash = `${stat.mtimeMs}:${stat.size}`;
265
+ }
266
+ catch {
267
+ // Cookies file missing — leave hash empty
268
+ }
269
+ const existing = this.getSyncMetadata();
270
+ const updated = {
271
+ lastSyncTimestamp: Date.now(),
272
+ sourceProfileHash,
273
+ syncCount: existing ? existing.syncCount + 1 : 1,
274
+ sourceProfileDir: sourceDir,
275
+ };
276
+ const metaPath = ProfileManager.SYNC_METADATA_PATH;
277
+ const metaDir = path.dirname(metaPath);
278
+ // Ensure parent directory exists
279
+ if (!fs.existsSync(metaDir)) {
280
+ fs.mkdirSync(metaDir, { recursive: true });
281
+ }
282
+ // Atomic write: write to temp file, then rename
283
+ const tmpPath = `${metaPath}.tmp-${Date.now()}`;
284
+ fs.writeFileSync(tmpPath, JSON.stringify(updated, null, 2), 'utf8');
285
+ fs.renameSync(tmpPath, metaPath);
286
+ }
287
+ catch (err) {
288
+ console.error('[ProfileManager] updateSyncMetadata failed (non-fatal):', err);
289
+ }
290
+ }
291
+ /**
292
+ * Determine which Chrome `userDataDir` to use and whether a cookie sync
293
+ * was performed.
294
+ *
295
+ * Priority order:
296
+ * 1. `explicitUserDataDir` — caller has specified an exact directory.
297
+ * 2. `useTempProfile` or `usingHeadlessShell` — create a fresh temp dir.
298
+ * 3. `realProfileDir` exists and **not** locked — use real profile directly.
299
+ * 4. `realProfileDir` exists and **is** locked — use persistent profile,
300
+ * syncing cookies from the real profile when stale.
301
+ * 5. No `realProfileDir` — use persistent profile without a sync.
302
+ */
303
+ resolveProfile(options) {
304
+ const { realProfileDir, isProfileLocked, explicitUserDataDir, useTempProfile, usingHeadlessShell, } = options;
305
+ // 1. Explicit user-data-dir
306
+ if (explicitUserDataDir) {
307
+ return {
308
+ userDataDir: explicitUserDataDir,
309
+ profileType: 'explicit',
310
+ syncPerformed: false,
311
+ };
312
+ }
313
+ // 2. Temp profile requested or headless-shell (no profile support)
314
+ if (useTempProfile || usingHeadlessShell) {
315
+ const tempDir = path.join(os.tmpdir(), `openchrome-${Date.now()}`);
316
+ return {
317
+ userDataDir: tempDir,
318
+ profileType: 'temp',
319
+ syncPerformed: false,
320
+ };
321
+ }
322
+ // 3. Real profile available and NOT locked
323
+ if (realProfileDir && !isProfileLocked) {
324
+ return {
325
+ userDataDir: realProfileDir,
326
+ profileType: 'real',
327
+ syncPerformed: false,
328
+ };
329
+ }
330
+ // 4. Real profile exists but IS locked — use persistent profile
331
+ if (realProfileDir && isProfileLocked) {
332
+ const persistentDir = this.getOrCreatePersistentProfile();
333
+ if (!this.needsSync(realProfileDir)) {
334
+ // Persistent profile is fresh — reuse without re-sync
335
+ return {
336
+ userDataDir: persistentDir,
337
+ profileType: 'persistent',
338
+ syncPerformed: false,
339
+ };
340
+ }
341
+ // Stale — sync cookies from real profile into persistent profile
342
+ const syncResult = this.syncCookies(realProfileDir, persistentDir);
343
+ return {
344
+ userDataDir: persistentDir,
345
+ profileType: 'persistent',
346
+ syncPerformed: syncResult.atomic || syncResult.success,
347
+ };
348
+ }
349
+ // 5. No real profile at all — use persistent profile (no sync needed)
350
+ const persistentDir = this.getOrCreatePersistentProfile();
351
+ return {
352
+ userDataDir: persistentDir,
353
+ profileType: 'persistent',
354
+ syncPerformed: false,
355
+ };
356
+ }
357
+ // -------------------------------------------------------------------------
358
+ // Private helpers
359
+ // -------------------------------------------------------------------------
360
+ /** Check whether the `sqlite3` CLI is available on PATH. */
361
+ _isSqlite3Available() {
362
+ try {
363
+ (0, child_process_1.execFileSync)(os.platform() === 'win32' ? 'where' : 'which', ['sqlite3'], { stdio: 'ignore', timeout: 3000 });
364
+ return true;
365
+ }
366
+ catch {
367
+ return false;
368
+ }
369
+ }
370
+ }
371
+ exports.ProfileManager = ProfileManager;
372
+ //# sourceMappingURL=profile-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile-manager.js","sourceRoot":"","sources":["../../src/chrome/profile-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Atomic SQLite Cookie Copy
3
+ *
4
+ * Chrome stores cookies in a SQLite database using WAL (Write-Ahead Log) mode.
5
+ * The database state spans up to three files: `Cookies`, `Cookies-wal`, and
6
+ * `Cookies-shm`. A naive sequential `fs.copyFileSync` of these files while
7
+ * Chrome is writing produces an inconsistent copy — the main DB and WAL may
8
+ * represent different transaction states, causing Chrome to silently discard
9
+ * the corrupted database and start with an empty cookie jar.
10
+ *
11
+ * This module implements a 3-tier fallback chain for atomic cookie copying:
12
+ * 1. `better-sqlite3` — VACUUM INTO for a clean, synchronous atomic copy
13
+ * 2. `sqlite3` CLI — `.backup` command via child_process
14
+ * 3. Raw `fs.copyFileSync` — last resort, copies main DB only (no WAL/SHM)
15
+ */
16
+ export interface CookieCopyResult {
17
+ method: 'better-sqlite3' | 'sqlite3-cli' | 'file-copy' | 'none';
18
+ success: boolean;
19
+ warning?: string;
20
+ }
21
+ /**
22
+ * @internal Attempt atomic copy via better-sqlite3's VACUUM INTO.
23
+ */
24
+ declare function attemptBetterSqlite3Copy(sourcePath: string, destPath: string): void;
25
+ /**
26
+ * @internal Mutable dispatch table for testability.
27
+ * Tests can spy on `_deps.attemptBetterSqlite3Copy` to control the fallback chain.
28
+ */
29
+ export declare const _deps: {
30
+ attemptBetterSqlite3Copy: typeof attemptBetterSqlite3Copy;
31
+ };
32
+ /**
33
+ * Copy the Chrome Cookies SQLite database from one Default profile directory
34
+ * to another using a 3-tier fallback chain for atomic consistency:
35
+ *
36
+ * Tier 1: better-sqlite3 `VACUUM INTO` — synchronous, atomic, WAL-aware
37
+ * Tier 2: sqlite3 CLI `.backup` — atomic, WAL-aware, no npm dep required
38
+ * Tier 3: fs.copyFileSync — fast but non-atomic; recent WAL transactions may be absent
39
+ *
40
+ * @param sourceDefaultDir Path to the source Chrome `Default` profile directory
41
+ * @param destDefaultDir Path to the destination `Default` directory (must already exist)
42
+ * @returns Result indicating which method succeeded, or `none` if all failed
43
+ */
44
+ export declare function copyCookiesAtomic(sourceDefaultDir: string, destDefaultDir: string): CookieCopyResult;
45
+ export {};
46
+ //# sourceMappingURL=sqlite-cookie-copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-cookie-copy.d.ts","sourceRoot":"","sources":["../../src/chrome/sqlite-cookie-copy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG,WAAW,GAAG,MAAM,CAAC;IAChE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,iBAAS,wBAAwB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAY5E;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,gBAAgB,CAsDlB"}