@helix3/helix-cli 0.1.18-helix3.348 → 0.1.18-helix3.350

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 (39) hide show
  1. package/README.md +22 -0
  2. package/dist/bakeLighting.js +13 -5
  3. package/dist/bakeLighting.js.map +1 -1
  4. package/dist/browser/hostSlots.d.ts +27 -5
  5. package/dist/browser/hostSlots.js +176 -74
  6. package/dist/browser/hostSlots.js.map +1 -1
  7. package/dist/browser/nonSystemChrome.js +14 -2
  8. package/dist/browser/nonSystemChrome.js.map +1 -1
  9. package/dist/gesture/capture.js +20 -8
  10. package/dist/gesture/capture.js.map +1 -1
  11. package/dist/index.js +57 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib.js +5 -0
  14. package/dist/lib.js.map +1 -1
  15. package/dist/npc/session.js +19 -7
  16. package/dist/npc/session.js.map +1 -1
  17. package/dist/placements/captureHost.js +11 -4
  18. package/dist/placements/captureHost.js.map +1 -1
  19. package/dist/placements/impostors.js +11 -4
  20. package/dist/placements/impostors.js.map +1 -1
  21. package/dist/screenshot/captureScreenshots.js +7 -3
  22. package/dist/screenshot/captureScreenshots.js.map +1 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/dist/vehicle/validate.d.ts +76 -0
  25. package/dist/vehicle/validate.js +515 -0
  26. package/dist/vehicle/validate.js.map +1 -0
  27. package/dist/visualQa/browser.js +115 -61
  28. package/dist/visualQa/browser.js.map +1 -1
  29. package/dist/world/snapshotWorld.js +13 -5
  30. package/dist/world/snapshotWorld.js.map +1 -1
  31. package/package.json +1 -1
  32. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  33. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  34. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  35. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  36. package/plugins/beamng-vehicle/vendor/vehicle-package-v2.mjs +6209 -734
  37. package/vendor/README.md +13 -11
  38. package/vendor/vehicle-package-v2.mjs +6209 -734
  39. package/vendor/vehicle-package-v2.engine-validator.ts +0 -690
package/README.md CHANGED
@@ -45,6 +45,7 @@ The token is stored in `~/.helix/credentials.json` (mode `600`). It's sent as
45
45
  | `helix validate [dir]` | Validate a bundle locally — the exact rules the server enforces. |
46
46
  | `helix publish [dir] [--thumbnail <file>] [--upload-source] [--source-dir <path>]` | Validate → resolve/create the world → upload files → finalize → set the cover image → print the play URL. `--upload-source` additionally sends the project's source through a separate private channel so the world can be edited on the website later — **off by default**. |
47
47
  | `helix list` | List your worlds. |
48
+ | `helix vehicle validate <vehicle-package.json> [--glb <model.glb>] [--json]` | One-second local gate for a hand-authored Universal Vehicle, run before `item publish`. Checks the package against the engine's own validator (vendored, pinned to an engine commit), the engine publish gate, the backend pin requirements, `groundToBodyOrigin` vs `wheelRadius + staticRideHeight`, and the `componentBuild` digest; with `--glb` also resolves the four wheel nodes, checks each wheel node's origin is at its hub (`WHEEL_PIVOT_NOT_AT_HUB`), the +X-left / +Z-forward frame, the vehicle publish budgets and the articulation nodes. Exit `0` no errors, `1` errors, `2` unreadable input. See [Vehicle validate](#vehicle-validate). |
48
49
  | `helix item list-slots [--json]` | Print the Character-Creator vocabulary a wearable declares: the cosmetic slot tags, and the genders. |
49
50
  | `helix item publish <mesh.glb> --title <t> [--collectible-supply <n>] [initial distribution flags] [--dry-run\|--quote]` | Publish a Standard item by default, or one fixed-supply Collectible. The item definition is separate from acquisition routes. |
50
51
  | `helix item distribution create\|list\|update\|disable …` | Manage Marketplace/World Claim or Buy routes without republishing the item or paying another publish fee. |
@@ -545,6 +546,27 @@ How each field is resolved, and what a null means:
545
546
  and **no `vault` key** — absent, not `null`, so "not looked up" cannot be read as "not there".
546
547
  - Lookups run at most 8 in flight and are cached for the life of the process.
547
548
 
549
+ ## Vehicle validate
550
+
551
+ `helix vehicle validate <vehicle-package.json> [--glb <model.glb>] [--json]` needs no login and no network.
552
+ A vehicle that did not come through the BeamNG bridge is otherwise validated against nothing: `item publish`
553
+ returns ok and the runtime then refuses to spawn it. `helix item publish --kind vehicle` now runs the package
554
+ checks on `--vehicle-package` itself (publish, `--dry-run` and `--quote`) and refuses on any error.
555
+
556
+ Every finding prints as `CODE path — message` plus a `fix:` line; `--json` returns
557
+ `{ ok, errors, warnings, issues: [{ code, level, path, message, fix }], engineCommit }`.
558
+
559
+ | Layer | Codes |
560
+ |---|---|
561
+ | Engine validator (all its errors and warnings) | `ENGINE_VALIDATOR`, `ENGINE_VALIDATOR_CRASH` |
562
+ | Publish gate + backend pin | `PACKAGE_NOT_OBJECT`, `PACKAGE_VERSION_UNSUPPORTED`, `SCHEMA_VERSION_MISMATCH`, `REQUIRED_FIELD_MISSING`, `REQUIRED_BLOCK_MISSING`, `MESH_CLASS_ID_MISSING`, `MESH_PARTS_MISSING`, `WHEEL_VISUALS_MISSING`, `WHEEL_VISUALS_INVALID`, `NOT_DISTRIBUTABLE`, `MESH_SOURCE_FIXTURE`, `PUBLISH_GATE` |
563
+ | Cross-field | `GROUND_TO_BODY_ORIGIN_MISMATCH` (> 5 mm; fix the ride height, the field is locked after first publish), `COMPONENT_BUILD_DIGEST_MISMATCH` (prints the computed digest), `COMPONENT_ACTIONS_MISMATCH` (prints the compiled protocol), `COMPONENT_BUILD_INVALID`, `PANEL_SIGNAL_NO_ACTION` (warn), `SEAT_SOCKET_UNKNOWN` (warn) |
564
+ | `--glb` | `WHEEL_NODES_MISSING`, `WHEEL_PIVOT_NOT_AT_HUB` (origin > 2 cm from the centre of its geometry — the wheel add-on anchor lands there), `WHEEL_ORIGINS_NOT_DISTINCT`, `WHEEL_FRAME_MIRRORED_X`, `WHEEL_FRAME_FRONT_NOT_PLUS_Z`, `WHEEL_NODE_EMPTY` (warn), `LENGTH_NOT_ALONG_Z` (warn), `PANEL_NODE_MISSING`, `VEHICLE_BUDGET_TRIANGLES` / `_MATERIALS` / `_TEXTURE_EDGE` / `_DRAW_CALLS` / `_FILE_SIZE` |
565
+
566
+ The model frame is glTF: +X is the vehicle's left, +Y up, +Z forward, metres. Wheel nodes are found by name with
567
+ the engine's own resolver (`wheel_lf` / `wheel_rf` / `wheel_lr` / `wheel_rr` and the usual aliases); all four must
568
+ resolve. The engine validator is vendored by `scripts/vendor-vehicle-package-v2.mjs` (see `vendor/README.md`).
569
+
548
570
  ## Item publish flow
549
571
 
550
572
  `helix item publish` creates an item definition. It defaults to **Standard**: unlimited issuance,
@@ -57,6 +57,8 @@ exports.bakeLighting = bakeLighting;
57
57
  const node_fs_1 = require("node:fs");
58
58
  const node_path_1 = require("node:path");
59
59
  const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
60
+ const hostSlots_1 = require("./browser/hostSlots");
61
+ const nonSystemChrome_1 = require("./browser/nonSystemChrome");
60
62
  const launch_1 = require("./browser/launch");
61
63
  const staticServe_1 = require("./screenshot/staticServe");
62
64
  const visualsConfig_1 = require("./visualsConfig");
@@ -326,13 +328,15 @@ async function bakeLighting(opts) {
326
328
  const attempts = [];
327
329
  for (const candidate of opts.gpu ? (0, launch_1.gpuBrowserCandidates)() : (0, launch_1.browserCandidates)()) {
328
330
  try {
329
- browser = await playwright.chromium.launch(candidate.launchOptions);
330
- onProgress(` using ${candidate.label}${opts.gpu ? ' (GPU)' : ''}`);
331
- break;
331
+ (0, nonSystemChrome_1.assertNotSystemChrome)(candidate.launchOptions.executablePath, candidate.launchOptions.channel);
332
+ browser = await (0, hostSlots_1.launchWithBrowserSlot)(() => playwright.chromium.launch(candidate.launchOptions), 'disconnected', { identity: `lighting-bake:${opts.directory}` });
332
333
  }
333
334
  catch (err) {
334
335
  attempts.push({ key: candidate.key, label: candidate.label, message: err instanceof Error ? err.message : String(err) });
336
+ continue;
335
337
  }
338
+ onProgress(` using ${candidate.label}${opts.gpu ? ' (GPU)' : ''}`);
339
+ break;
336
340
  }
337
341
  if (!browser)
338
342
  throw new Error((0, launch_1.composeLaunchFailure)(attempts));
@@ -437,8 +441,12 @@ async function bakeLighting(opts) {
437
441
  };
438
442
  }
439
443
  finally {
440
- await browser?.close();
441
- await server.close();
444
+ try {
445
+ await browser?.close();
446
+ }
447
+ finally {
448
+ await server.close();
449
+ }
442
450
  }
443
451
  }
444
452
  //# sourceMappingURL=bakeLighting.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bakeLighting.js","sourceRoot":"","sources":["../src/bakeLighting.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bakeLighting.js","sourceRoot":"","sources":["../src/bakeLighting.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,31 @@
1
+ export interface BrowserLease {
2
+ file?: string;
3
+ nonce: string;
4
+ beginLaunch(): Promise<void>;
5
+ release(): Promise<void>;
6
+ }
1
7
  export declare function hostBrowserCap(env?: NodeJS.ProcessEnv, platform?: NodeJS.Platform): number;
2
- /** Pure-ish: is this slot file's owner gone? `raw` is returned so the caller can confirm the file did not change before reclaiming. */
3
- export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown'): {
8
+ export declare function slotIsStale(file: string, alive?: (pid: number) => boolean | 'unknown', birth?: (pid: number) => string): {
4
9
  stale: boolean;
5
10
  raw: string | null;
6
11
  };
7
- /** Take this process's browser slot (idempotent) and wait while the host is at its cap. Resolves to the slot file, or undefined when uncapped. */
8
- export declare function acquireHostBrowserSlot(): Promise<string | undefined>;
9
- export declare function releaseHostBrowserSlot(): void;
12
+ /** One unique lease per actual launch; callers must beginLaunch immediately before launching. */
13
+ export declare function acquireHostBrowserSlot(options?: {
14
+ signal?: AbortSignal;
15
+ identity?: string;
16
+ }): Promise<BrowserLease>;
17
+ /** Explicit lease only; there is no process-wide release that could free live browsers. */
18
+ export declare function releaseHostBrowserSlot(lease: BrowserLease): Promise<void>;
19
+ interface ManagedBrowser {
20
+ close(...args: any[]): Promise<void>;
21
+ once?(event: any, listener: () => void): unknown;
22
+ }
23
+ /** Bind admission to actual teardown. A rejected close keeps the lease unless an
24
+ * independent close/disconnected event confirms the browser is gone. */
25
+ export declare function bindBrowserLease<T extends ManagedBrowser>(browser: T, lease: BrowserLease, event: 'close' | 'disconnected'): T;
26
+ /** A launch rejection means Playwright completed its failed-launch cleanup. */
27
+ export declare function launchWithBrowserSlot<T extends ManagedBrowser>(launch: () => Promise<T>, event: 'close' | 'disconnected', options?: {
28
+ signal?: AbortSignal;
29
+ identity?: string;
30
+ }): Promise<T>;
31
+ export {};
@@ -7,27 +7,35 @@ exports.hostBrowserCap = hostBrowserCap;
7
7
  exports.slotIsStale = slotIsStale;
8
8
  exports.acquireHostBrowserSlot = acquireHostBrowserSlot;
9
9
  exports.releaseHostBrowserSlot = releaseHostBrowserSlot;
10
- // Host-wide cap on concurrent automated browsers. 8-16 headless QA Chromes at once cost ~5 cores and up to 22 GB on the
11
- // Mac (docs/compute-offload-model.md in the HELIX workspace), and a single `helix item visual-qa` fan-out started four.
12
- // Every PROCESS that opens a browser takes ONE slot for its whole life (released at exit), so a run that opens several
13
- // browsers can never deadlock against itself. Slots are files in ~/.cache/helix-headless-slots/ — the same protocol as the
14
- // workspace's scripts/lib/headless-browser.mjs, so scripts and this CLI share one budget. A slot whose owner pid is dead (or
15
- // was reused: start time differs) is reclaimed; nothing is ever signalled.
16
- // HELIX_HEADLESS_MAX=<n> cap (default 4 on macOS; unlimited elsewhere and when CI is set; 0 = off)
17
- // HELIX_HEADLESS_WAIT_MS=<ms> give up waiting after this long (default 30 min) and throw
18
- // HELIX_HEADLESS_SLOT_DIR=<dir> override the slot directory (tests)
10
+ exports.bindBrowserLease = bindBrowserLease;
11
+ exports.launchWithBrowserSlot = launchWithBrowserSlot;
12
+ // Per-browser admission protocol v2; kept identical to workspace headless-browser.mjs.
13
+ // slot-N is a permanent directory. Old process-slot clients see it occupied and fail
14
+ // closed. Legacy slot FILES are never reclaimed by v2. See architecture change journal.
15
+ // All mutations of lease.json occur under atomic mkdir(mutex). We NEVER reclaim a
16
+ // mutex: a crash in a critical section sacrifices capacity, rather than risking CAS
17
+ // races or deleting a new owner's receipt. No owner or browser is ever signalled.
19
18
  const node_child_process_1 = require("node:child_process");
19
+ const node_crypto_1 = require("node:crypto");
20
20
  const node_fs_1 = __importDefault(require("node:fs"));
21
21
  const node_os_1 = __importDefault(require("node:os"));
22
22
  const node_path_1 = __importDefault(require("node:path"));
23
- let held;
23
+ const held = new Map();
24
24
  function hostBrowserCap(env = process.env, platform = process.platform) {
25
25
  const v = env.HELIX_HEADLESS_MAX;
26
- if (v !== undefined && v !== '') {
27
- const n = Number(v);
28
- return Number.isFinite(n) && n > 0 ? Math.floor(n) : 0;
26
+ if (v !== undefined) {
27
+ if (!/^\d+$/.test(v) || !Number.isSafeInteger(Number(v)))
28
+ throw new Error('HELIX_HEADLESS_MAX must be a non-negative whole number (0 explicitly disables admission)');
29
+ return Number(v);
29
30
  }
30
- return platform !== 'darwin' || env.CI ? 0 : 4;
31
+ // CI (including CI=false) never removes the Mac's local budget.
32
+ return platform === 'darwin' ? 4 : 0;
33
+ }
34
+ function waitBudget() {
35
+ const v = process.env.HELIX_HEADLESS_WAIT_MS ?? String(30 * 60_000);
36
+ if (!/^\d+$/.test(v) || !Number.isSafeInteger(Number(v)))
37
+ throw new Error('HELIX_HEADLESS_WAIT_MS must be a non-negative whole number');
38
+ return Number(v);
31
39
  }
32
40
  function startStamp(pid) {
33
41
  try {
@@ -37,8 +45,21 @@ function startStamp(pid) {
37
45
  return '';
38
46
  }
39
47
  }
40
- /** Pure-ish: is this slot file's owner gone? `raw` is returned so the caller can confirm the file did not change before reclaiming. */
41
- function slotIsStale(file, alive = pidAlive) {
48
+ function pidAlive(pid) {
49
+ if (!Number.isInteger(pid) || pid <= 0)
50
+ return 'unknown';
51
+ try {
52
+ process.kill(pid, 0);
53
+ return true;
54
+ }
55
+ catch (e) {
56
+ return e.code === 'ESRCH' ? false : 'unknown';
57
+ }
58
+ }
59
+ // Only a RESERVED v2 lease can be reclaimed: once launch begins, an owner may die
60
+ // while Chromium survives. Playwright exposes no portable child PID, so keep that
61
+ // receipt until confirmed browser close, even when its Node owner is dead/reused.
62
+ function slotIsStale(file, alive = pidAlive, birth = startStamp) {
42
63
  let raw;
43
64
  try {
44
65
  raw = node_fs_1.default.readFileSync(file, 'utf8');
@@ -51,95 +72,176 @@ function slotIsStale(file, alive = pidAlive) {
51
72
  owner = JSON.parse(raw);
52
73
  }
53
74
  catch {
54
- owner = null;
55
- }
56
- if (!owner || !Number.isInteger(owner.pid)) {
57
- try {
58
- return { stale: Date.now() - node_fs_1.default.statSync(file).mtimeMs > 5000, raw };
59
- }
60
- catch {
61
- return { stale: false, raw };
62
- }
75
+ return { stale: false, raw };
63
76
  }
77
+ if (!owner || typeof owner !== 'object' || owner.protocol !== 2 || owner.state !== 'reserved' || typeof owner.nonce !== 'string' || !owner.nonce || !Number.isSafeInteger(owner.pid) || owner.pid <= 0 || typeof owner.start !== 'string' || !owner.start)
78
+ return { stale: false, raw };
64
79
  const state = alive(owner.pid);
65
80
  if (state === false)
66
81
  return { stale: true, raw };
67
82
  if (state === 'unknown')
68
83
  return { stale: false, raw };
69
- const now = startStamp(owner.pid);
70
- return { stale: !!owner.start && !!now && owner.start !== now, raw };
84
+ const now = birth(owner.pid);
85
+ return { stale: !!now && owner.start !== now, raw };
71
86
  }
72
- function pidAlive(pid) {
87
+ function aborted(signal) {
88
+ if (signal?.aborted)
89
+ throw new Error('Browser admission aborted');
90
+ }
91
+ function delay(ms, signal) {
92
+ return new Promise((resolve, reject) => {
93
+ aborted(signal);
94
+ const done = () => { signal?.removeEventListener('abort', cancel); resolve(); };
95
+ const timer = setTimeout(done, ms);
96
+ const cancel = () => { clearTimeout(timer); signal?.removeEventListener('abort', cancel); reject(new Error('Browser admission aborted')); };
97
+ signal?.addEventListener('abort', cancel, { once: true });
98
+ });
99
+ }
100
+ function underMutex(container, action) {
101
+ const mutex = node_path_1.default.join(container, 'mutex');
73
102
  try {
74
- process.kill(pid, 0);
75
- return true;
103
+ node_fs_1.default.mkdirSync(mutex);
76
104
  }
77
105
  catch (e) {
78
- return e.code === 'ESRCH' ? false : 'unknown';
106
+ if (['EEXIST', 'ENOTDIR', 'ENOENT'].includes(e.code ?? ''))
107
+ return { acquired: false };
108
+ throw e;
109
+ }
110
+ try {
111
+ return { acquired: true, value: action() };
112
+ }
113
+ finally {
114
+ node_fs_1.default.rmdirSync(mutex);
79
115
  }
80
116
  }
81
- /** Take this process's browser slot (idempotent) and wait while the host is at its cap. Resolves to the slot file, or undefined when uncapped. */
82
- async function acquireHostBrowserSlot() {
83
- if (held)
84
- return held;
117
+ /** One unique lease per actual launch; callers must beginLaunch immediately before launching. */
118
+ async function acquireHostBrowserSlot(options = {}) {
85
119
  const cap = hostBrowserCap();
120
+ const waitMs = waitBudget();
121
+ aborted(options.signal);
122
+ const nonce = (0, node_crypto_1.randomUUID)();
86
123
  if (!cap)
87
- return undefined;
124
+ return { nonce, beginLaunch: async () => { aborted(options.signal); }, release: async () => undefined };
88
125
  const dir = process.env.HELIX_HEADLESS_SLOT_DIR ?? node_path_1.default.join(node_os_1.default.homedir(), '.cache/helix-headless-slots');
89
126
  node_fs_1.default.mkdirSync(dir, { recursive: true });
90
- const me = JSON.stringify({ pid: process.pid, start: startStamp(process.pid), script: process.argv[1] ?? null, at: new Date().toISOString() });
91
- const waitMs = Number(process.env.HELIX_HEADLESS_WAIT_MS ?? 30 * 60_000);
127
+ const receipt = { protocol: 2, nonce, pid: process.pid, start: startStamp(process.pid), state: 'reserved', at: new Date().toISOString(), identity: options.identity };
92
128
  const began = Date.now();
93
- let lastNote = 0;
94
129
  for (;;) {
95
- const retries = {};
130
+ aborted(options.signal);
131
+ let sameProcessHolder = false;
96
132
  for (let k = 0; k < cap; k++) {
97
- const file = node_path_1.default.join(dir, `slot-${k}`);
133
+ const container = node_path_1.default.join(dir, `slot-${k}`);
98
134
  try {
99
- node_fs_1.default.writeFileSync(file, me, { flag: 'wx' });
100
- held = file;
101
- process.once('exit', releaseHostBrowserSlot);
102
- return file;
135
+ node_fs_1.default.mkdirSync(container);
103
136
  }
104
137
  catch (e) {
105
138
  if (e.code !== 'EEXIST')
106
139
  throw e;
107
140
  }
108
- const { stale, raw } = slotIsStale(file);
109
- retries[k] = (retries[k] ?? 0) + 1;
110
- if (stale && retries[k] <= 5) {
111
- const tomb = `${file}.reclaimed-${process.pid}-${Date.now()}`;
112
- try {
113
- if (node_fs_1.default.readFileSync(file, 'utf8') === raw)
114
- node_fs_1.default.renameSync(file, tomb);
115
- node_fs_1.default.rmSync(tomb, { force: true });
141
+ const file = node_path_1.default.join(container, 'lease.json');
142
+ const claim = underMutex(container, () => {
143
+ if (node_fs_1.default.existsSync(file)) {
144
+ // CLI and workspace modules have independent in-memory maps. Read the
145
+ // common receipt under this mutex so mixed APIs cannot wait on self.
146
+ try {
147
+ const owner = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
148
+ if (owner?.protocol === 2 && owner.pid === receipt.pid &&
149
+ (owner.state === 'reserved' || owner.state === 'launching') &&
150
+ (!owner.start || !receipt.start || owner.start === receipt.start))
151
+ sameProcessHolder = true;
152
+ }
153
+ catch { /* corrupt ownership stays occupied */ }
154
+ if (!slotIsStale(file).stale)
155
+ return false;
156
+ node_fs_1.default.unlinkSync(file); // read and remove under the SAME mutex, never read+rename CAS
116
157
  }
117
- catch { /* another reclaimer won */ }
118
- k -= 1;
158
+ node_fs_1.default.writeFileSync(file, JSON.stringify(receipt), { flag: 'wx' });
159
+ return true;
160
+ });
161
+ if (!claim.value)
162
+ continue;
163
+ let released = false;
164
+ const mutate = async (remove) => {
165
+ if (released) {
166
+ if (!remove)
167
+ throw new Error('Browser lease was already released');
168
+ return;
169
+ }
170
+ const deadline = Date.now() + 2000;
171
+ for (;;) {
172
+ const changed = underMutex(container, () => {
173
+ const current = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
174
+ if (current?.nonce !== nonce || current.pid !== receipt.pid || current.start !== receipt.start)
175
+ throw new Error('Browser lease ownership changed; refusing mutation');
176
+ if (remove)
177
+ node_fs_1.default.unlinkSync(file);
178
+ else {
179
+ receipt.state = 'launching';
180
+ node_fs_1.default.writeFileSync(file, JSON.stringify(receipt));
181
+ }
182
+ });
183
+ if (changed.acquired) {
184
+ if (remove) {
185
+ released = true;
186
+ held.delete(nonce);
187
+ }
188
+ return;
189
+ }
190
+ if (Date.now() >= deadline)
191
+ throw new Error(`Browser lease mutex unavailable; retained ${file}`);
192
+ await delay(20);
193
+ }
194
+ };
195
+ const lease = {
196
+ file, nonce,
197
+ beginLaunch: async () => { aborted(options.signal); await mutate(false); aborted(options.signal); },
198
+ release: () => mutate(true),
199
+ };
200
+ held.set(nonce, lease);
201
+ if (options.signal?.aborted) {
202
+ await lease.release();
203
+ aborted(options.signal);
119
204
  }
205
+ return lease;
120
206
  }
121
- for (const f of node_fs_1.default.readdirSync(dir))
122
- if (f.includes('.reclaimed-'))
123
- node_fs_1.default.rmSync(node_path_1.default.join(dir, f), { force: true });
124
- if (Date.now() - began > waitMs)
125
- throw new Error(`No browser slot free after ${Math.round(waitMs / 1000)}s (host cap ${cap} in ${dir}). Other QA runs hold them; wait, or raise HELIX_HEADLESS_MAX.`);
126
- if (Date.now() - lastNote > 30_000) {
127
- lastNote = Date.now();
128
- console.error(`[visual-qa] waiting for a browser slot: host cap is ${cap} concurrent automated browsers (HELIX_HEADLESS_MAX overrides)`);
129
- }
130
- await new Promise((r) => setTimeout(r, 500));
207
+ // Fail promptly if this process already owns browsers. Waiting here may deadlock
208
+ // a Promise.all fanout whose cleanup cannot run until every launch resolves.
209
+ if (sameProcessHolder || [...held.values()].some((lease) => lease.file?.startsWith(`${dir}${node_path_1.default.sep}`)))
210
+ throw new Error(`Browser capacity exhausted while this process holds leases (cap ${cap}); serialize browser fanout and close each browser before launching another`);
211
+ if (Date.now() - began >= waitMs)
212
+ throw new Error(`No browser slot free after ${waitMs}ms (host cap ${cap} in ${dir}); legacy receipts or interrupted mutexes require a quiescent migration`);
213
+ await delay(Math.min(100, waitMs - (Date.now() - began)), options.signal);
131
214
  }
132
215
  }
133
- function releaseHostBrowserSlot() {
134
- if (!held)
135
- return;
136
- const file = held;
137
- held = undefined;
216
+ /** Explicit lease only; there is no process-wide release that could free live browsers. */
217
+ async function releaseHostBrowserSlot(lease) { await lease.release(); }
218
+ /** Bind admission to actual teardown. A rejected close keeps the lease unless an
219
+ * independent close/disconnected event confirms the browser is gone. */
220
+ function bindBrowserLease(browser, lease, event) {
221
+ let releasePromise;
222
+ const release = () => releasePromise ??= lease.release().catch((e) => { releasePromise = undefined; throw e; });
223
+ browser.once?.(event, () => { void release().catch((e) => console.error('Browser lease retained after teardown:', e)); });
224
+ const close = browser.close.bind(browser);
225
+ browser.close = async (...args) => { await close(...args); await release(); };
226
+ return browser;
227
+ }
228
+ /** A launch rejection means Playwright completed its failed-launch cleanup. */
229
+ async function launchWithBrowserSlot(launch, event, options = {}) {
230
+ const lease = await acquireHostBrowserSlot(options);
231
+ let browser;
138
232
  try {
139
- const owner = JSON.parse(node_fs_1.default.readFileSync(file, 'utf8'));
140
- if (owner.pid === process.pid)
141
- node_fs_1.default.rmSync(file, { force: true });
233
+ await lease.beginLaunch();
234
+ browser = await launch();
235
+ }
236
+ catch (e) {
237
+ await lease.release();
238
+ throw e;
239
+ }
240
+ bindBrowserLease(browser, lease, event);
241
+ if (options.signal?.aborted) {
242
+ await browser.close();
243
+ throw new Error('Browser launch aborted');
142
244
  }
143
- catch { /* already gone */ }
245
+ return browser;
144
246
  }
145
247
  //# sourceMappingURL=hostSlots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hostSlots.js","sourceRoot":"","sources":["../../src/browser/hostSlots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hostSlots.js","sourceRoot":"","sources":["../../src/browser/hostSlots.ts"],"names":[],"mappings":";;;;;AAqBA,wCAQC;AAgBD,kCAWC;AAuBD,wDAoEC;AAED,wDAA2G;AAQ3G,4CAOC;AAED,sDAQC;AA9KD,uFAAuF;AACvF,qFAAqF;AACrF,wFAAwF;AACxF,kFAAkF;AAClF,oFAAoF;AACpF,kFAAkF;AAClF,2DAAkD;AAClD,6CAAyC;AACzC,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAS7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAwB,CAAC;AAE7C,SAAgB,cAAc,CAAC,MAAyB,OAAO,CAAC,GAAG,EAAE,WAA4B,OAAO,CAAC,QAAQ;IAC/G,MAAM,CAAC,GAAG,GAAG,CAAC,kBAAkB,CAAC;IACjC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0FAA0F,CAAC,CAAC;QACtK,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IACD,gEAAgE;IAChE,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,UAAU;IACjB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IACxI,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QAAC,OAAO,IAAA,iCAAY,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;AACjK,CAAC;AACD,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,IAAI,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QAAC,OAAQ,CAA2B,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAAC,CAAC;AACpI,CAAC;AACD,kFAAkF;AAClF,kFAAkF;AAClF,kFAAkF;AAClF,SAAgB,WAAW,CAAC,IAAY,EAAE,QAA8C,QAAQ,EAAE,QAAiC,UAAU;IAC3I,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QAAC,GAAG,GAAG,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IAAC,CAAC;IAC1F,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAAC,CAAC;IACnF,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACxR,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;IACjD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;AACtD,CAAC;AACD,SAAS,OAAO,CAAC,MAAoB;IACnC,IAAI,MAAM,EAAE,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,MAAM,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,GAAS,EAAE,GAAG,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,GAAS,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,UAAU,CAAI,SAAiB,EAAE,MAAe;IACvD,MAAM,KAAK,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5C,IAAI,CAAC;QAAC,iBAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAE,CAA2B,CAAC,IAAI,IAAI,EAAE,CAAC;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClH,MAAM,CAAC,CAAC;IACV,CAAC;IACD,IAAI,CAAC;QAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC;IAAC,CAAC;YAC3C,CAAC;QAAC,iBAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;AAClC,CAAC;AACD,iGAAiG;AAC1F,KAAK,UAAU,sBAAsB,CAAC,UAAuD,EAAE;IACpG,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,IAAA,wBAAU,GAAE,CAAC;IAC3B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;IAClH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAAC;IAC1G,iBAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/K,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,SAAS,CAAC;QACR,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,mBAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC;gBAAC,iBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAAC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBAAC,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,CAAC,CAAC;YAAC,CAAC;YAC3G,MAAM,IAAI,GAAG,mBAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;gBACvC,IAAI,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACxB,sEAAsE;oBACtE,qEAAqE;oBACrE,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;wBACnE,IAAI,KAAK,EAAE,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG;4BAClD,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC;4BAC3D,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC;4BAAE,iBAAiB,GAAG,IAAI,CAAC;oBAClG,CAAC;oBAAC,MAAM,CAAC,CAAC,sCAAsC,CAAC,CAAC;oBAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK;wBAAE,OAAO,KAAK,CAAC;oBAC3C,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,8DAA8D;gBACrF,CAAC;gBACD,iBAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,SAAS;YAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,MAAM,GAAG,KAAK,EAAE,MAAe,EAAiB,EAAE;gBACtD,IAAI,QAAQ,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM;wBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBAC7F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;gBACnC,SAAS,CAAC;oBACR,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;wBACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAY,CAAC;wBACrE,IAAI,OAAO,EAAE,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;4BAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;wBACtK,IAAI,MAAM;4BAAE,iBAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;6BAC3B,CAAC;4BAAC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC;4BAAC,iBAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;wBAAC,CAAC;oBACxF,CAAC,CAAC,CAAC;oBACH,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACrB,IAAI,MAAM,EAAE,CAAC;4BAAC,QAAQ,GAAG,IAAI,CAAC;4BAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;wBAAC,CAAC;wBACpD,OAAO;oBACT,CAAC;oBACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;wBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;oBACjG,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC;YACF,MAAM,KAAK,GAAiB;gBAC1B,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACnG,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;aAC5B,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACvB,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;gBAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAChF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,iFAAiF;QACjF,6EAA6E;QAC7E,IAAI,iBAAiB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,GAAG,GAAG,mBAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,GAAG,6EAA6E,CAAC,CAAC;QAC/Q,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,gBAAgB,GAAG,OAAO,GAAG,yEAAyE,CAAC,CAAC;QAC9L,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AACD,2FAA2F;AACpF,KAAK,UAAU,sBAAsB,CAAC,KAAmB,IAAmB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAM3G;wEACwE;AACxE,SAAgB,gBAAgB,CAA2B,OAAU,EAAE,KAAmB,EAAE,KAA+B;IACzH,IAAI,cAAyC,CAAC;IAC9C,MAAM,OAAO,GAAG,GAAkB,EAAE,CAAC,cAAc,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/H,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,KAAK,GAAG,KAAK,EAAE,GAAG,IAAW,EAAE,EAAE,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,+EAA+E;AACxE,KAAK,UAAU,qBAAqB,CAA2B,MAAwB,EAAE,KAA+B,EAAE,UAAuD,EAAE;IACxL,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACpD,IAAI,OAAU,CAAC;IACf,IAAI,CAAC;QAAC,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QAAC,OAAO,GAAG,MAAM,MAAM,EAAE,CAAC;IAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAC7C,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACxC,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAAC,CAAC;IAClG,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -23,7 +23,17 @@ function assertNotSystemChrome(executablePath, channel, platform = process.platf
23
23
  if (channel && /^chrome/i.test(channel)) {
24
24
  throw new Error(`Refusing Playwright channel '${channel}': it launches the system Google Chrome and hijacks the Dock Chrome. Use Playwright's Chromium (npx playwright install chromium).`);
25
25
  }
26
- if (executablePath && SYSTEM_CHROME_MARKERS.some((m) => executablePath.includes(m))) {
26
+ const paths = executablePath ? [node_path_1.default.resolve(executablePath)] : [];
27
+ if (executablePath) {
28
+ try {
29
+ paths.push(node_fs_1.default.realpathSync(executablePath));
30
+ }
31
+ catch (e) {
32
+ if (!['ENOENT', 'ENOTDIR'].includes(e.code ?? ''))
33
+ throw e;
34
+ }
35
+ }
36
+ if (executablePath && paths.some((p) => SYSTEM_CHROME_MARKERS.some((m) => p.toLowerCase().includes(m.toLowerCase())))) {
27
37
  throw new Error(`Refusing to automate ${executablePath}: never launch /Applications/Google Chrome.app for automation. Use Playwright's Chromium / Chrome for Testing (npx playwright install chromium).`);
28
38
  }
29
39
  }
@@ -72,8 +82,10 @@ function resolveAutomationChromium(opts = {}) {
72
82
  return opts.playwrightDefault;
73
83
  }
74
84
  const cached = findCachedAutomationChromium(opts.home, env);
75
- if (cached)
85
+ if (cached) {
86
+ assertNotSystemChrome(cached, undefined, platform);
76
87
  return cached;
88
+ }
77
89
  throw new Error('No Playwright Chromium / Chrome for Testing found. Run `npx playwright install chromium` (the system Google Chrome is never used for automation on macOS).');
78
90
  }
79
91
  //# sourceMappingURL=nonSystemChrome.js.map