cbrowser 19.4.2 → 19.5.0

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.
package/dist/daemon.d.ts CHANGED
@@ -9,6 +9,14 @@ interface DaemonState {
9
9
  port: number;
10
10
  startedAt: string;
11
11
  lastActivity: string;
12
+ /**
13
+ * Required (X-CBrowser-Daemon-Token) on /command and /shutdown. The daemon had no
14
+ * authentication and reflected any Origin with credentials, so any local user, or
15
+ * any web page open on the machine, could drive it: navigate to a file:// URL and
16
+ * extract it, write a screenshot anywhere the daemon user can. The state file is
17
+ * 0600, so only the daemon's own user can read the token. (2026-10-12)
18
+ */
19
+ token?: string;
12
20
  }
13
21
  interface DaemonResponse {
14
22
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwBH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAMzE,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAOD,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkBD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAYnD;AAoBD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBxD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAmB/G;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAsC7G;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BjF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBvD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2XjH"}
1
+ {"version":3,"file":"daemon.d.ts","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAyBH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAMzE,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AASD,UAAU,cAAc;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAkBD;;GAEG;AACH,wBAAgB,cAAc,IAAI,WAAW,GAAG,IAAI,CAYnD;AAqDD;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAYxD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAuB/G;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAsC7G;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAwCjF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAgBvD;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,IAAI,GAAE,MAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+bjH"}
package/dist/daemon.js CHANGED
@@ -17,7 +17,8 @@
17
17
  * instead of launching a new browser.
18
18
  */
19
19
  import { createServer } from "http";
20
- import { existsSync, readFileSync, writeFileSync, unlinkSync, createWriteStream } from "fs";
20
+ import { existsSync, readFileSync, writeFileSync, unlinkSync, createWriteStream, renameSync } from "fs";
21
+ import { createHmac, randomBytes, timingSafeEqual } from "crypto";
21
22
  import { join } from "path";
22
23
  import { spawn } from "child_process";
23
24
  import { VideoCaptureSession } from "./recording/engine.js";
@@ -27,6 +28,7 @@ import { getPaths, mergeConfig } from "./config.js";
27
28
  import { evaluateScriptRefusal } from "./security/script-gate.js";
28
29
  const DEFAULT_PORT = 9222;
29
30
  const DAEMON_TIMEOUT_MS = 30 * 60 * 1000; // 30 minutes idle timeout
31
+ const TOKEN_HEADER = "x-cbrowser-daemon-token";
30
32
  /**
31
33
  * Get the daemon state file path
32
34
  */
@@ -63,7 +65,12 @@ export function getDaemonState() {
63
65
  */
64
66
  function writeDaemonState(state) {
65
67
  const statePath = getDaemonStatePath();
66
- writeFileSync(statePath, JSON.stringify(state, null, 2));
68
+ // A new file, created 0600 and exclusive, then renamed over the old one: writing
69
+ // the token into an existing file and chmod-ing afterwards left it readable at the
70
+ // old mode in between. rename replaces a symlink, it does not follow it.
71
+ const tmp = `${statePath}.${process.pid}.${randomBytes(6).toString("hex")}.tmp`;
72
+ writeFileSync(tmp, JSON.stringify(state, null, 2), { mode: 0o600, flag: "wx" });
73
+ renameSync(tmp, statePath);
67
74
  }
68
75
  /**
69
76
  * Clear daemon state file
@@ -74,6 +81,35 @@ function clearDaemonState() {
74
81
  unlinkSync(statePath);
75
82
  }
76
83
  }
84
+ const proofFor = (token, nonce) => createHmac("sha256", token).update(nonce).digest("hex");
85
+ /**
86
+ * Does the process on the recorded port hold this state file's token? It must answer
87
+ * a fresh nonce with HMAC(token, nonce) before the client sends it anything. If the
88
+ * daemon died and another local user bound the port, a client that trusted /ping
89
+ * handed that process the token and obeyed its answers (e.g. HAR content written to
90
+ * a path the user chose). (2026-10-12)
91
+ */
92
+ async function verifyDaemon(state, timeoutMs = 1000) {
93
+ if (!state.token)
94
+ return "impostor";
95
+ const nonce = randomBytes(16).toString("hex");
96
+ let proof;
97
+ try {
98
+ const response = await fetch(`http://127.0.0.1:${state.port}/ping?nonce=${nonce}`, {
99
+ method: "GET",
100
+ signal: AbortSignal.timeout(timeoutMs),
101
+ });
102
+ if (!response.ok)
103
+ return "impostor";
104
+ proof = (await response.json()).proof;
105
+ }
106
+ catch {
107
+ return "unreachable";
108
+ }
109
+ const expected = proofFor(state.token, nonce);
110
+ return typeof proof === "string" && proof.length === expected.length &&
111
+ timingSafeEqual(Buffer.from(proof), Buffer.from(expected)) ? "verified" : "impostor";
112
+ }
77
113
  /**
78
114
  * Check if daemon is running
79
115
  */
@@ -82,19 +118,13 @@ export async function isDaemonRunning() {
82
118
  if (!state) {
83
119
  return false;
84
120
  }
85
- // Try to ping the daemon
86
- try {
87
- const response = await fetch(`http://127.0.0.1:${state.port}/ping`, {
88
- method: "GET",
89
- signal: AbortSignal.timeout(1000),
90
- });
91
- return response.ok;
92
- }
93
- catch (e) {
94
- console.debug(`[CBrowser] Daemon not responding, cleaning up stale state: ${e.message}`);
121
+ const v = await verifyDaemon(state);
122
+ if (v !== "verified") {
123
+ console.debug(`[CBrowser] Daemon on port ${state.port} ${v === "unreachable" ? "not responding" : "did not prove it holds the token"}; cleaning up stale state`);
95
124
  clearDaemonState();
96
125
  return false;
97
126
  }
127
+ return true;
98
128
  }
99
129
  /**
100
130
  * Send a command to the running daemon
@@ -104,10 +134,14 @@ export async function sendToDaemon(command, args = {}) {
104
134
  if (!state) {
105
135
  return { success: false, error: "Daemon not running" };
106
136
  }
137
+ const v = await verifyDaemon(state, 5000);
138
+ if (v !== "verified") {
139
+ return { success: false, error: v === "unreachable" ? "Daemon not responding" : `The process on port ${state.port} did not prove it is this daemon; nothing was sent` };
140
+ }
107
141
  try {
108
142
  const response = await fetch(`http://127.0.0.1:${state.port}/command`, {
109
143
  method: "POST",
110
- headers: { "Content-Type": "application/json" },
144
+ headers: { "Content-Type": "application/json", [TOKEN_HEADER]: state.token ?? "" },
111
145
  body: JSON.stringify({ command, args }),
112
146
  signal: AbortSignal.timeout(120000), // 2 minute timeout for commands
113
147
  });
@@ -159,17 +193,30 @@ export async function stopDaemon() {
159
193
  return { success: true, message: "Daemon not running" };
160
194
  }
161
195
  try {
162
- // Send shutdown command
163
- await fetch(`http://127.0.0.1:${state.port}/shutdown`, {
164
- method: "POST",
165
- signal: AbortSignal.timeout(5000),
166
- }).catch(() => { });
167
- // Wait for daemon to stop
168
- await new Promise(resolve => setTimeout(resolve, 500));
169
- // Force kill if still running
196
+ const v = await verifyDaemon(state, 5000);
197
+ if (v === "verified") {
198
+ await fetch(`http://127.0.0.1:${state.port}/shutdown`, {
199
+ method: "POST",
200
+ headers: { [TOKEN_HEADER]: state.token ?? "" },
201
+ signal: AbortSignal.timeout(5000),
202
+ }).catch(() => { });
203
+ await new Promise(resolve => setTimeout(resolve, 500));
204
+ }
205
+ // Force kill if still running - but only a process that is this daemon (verified,
206
+ // or /proc names a cbrowser daemon). An unverified state file's pid may by now
207
+ // belong to anything, and a root CLI could signal any process.
170
208
  try {
171
209
  process.kill(state.pid, 0); // Check if process exists
172
- process.kill(state.pid, "SIGTERM");
210
+ let isDaemon = v === "verified";
211
+ if (!isDaemon) {
212
+ try {
213
+ const cmd = readFileSync(`/proc/${state.pid}/cmdline`, "utf-8").replace(/\0/g, " ");
214
+ isDaemon = /cbrowser|cli\.(js|ts)/.test(cmd) && /\bdaemon\b/.test(cmd);
215
+ }
216
+ catch { /* no /proc: do not guess */ }
217
+ }
218
+ if (isDaemon)
219
+ process.kill(state.pid, "SIGTERM");
173
220
  }
174
221
  catch {
175
222
  // Process already gone
@@ -236,6 +283,12 @@ export async function runDaemonServer(config, port = DEFAULT_PORT) {
236
283
  // `navigate` calls hit the same browser, so their effects land in the frames.
237
284
  let capture = null;
238
285
  let captureResult = null;
286
+ /**
287
+ * HAR recording lives in the daemon's browser, the only one that outlives a CLI
288
+ * command. Recorded in a client process, `har start` / navigate / `har stop`
289
+ * were three processes and the HAR came back empty (2026-10-12).
290
+ */
291
+ let harRecording = false;
239
292
  /**
240
293
  * Ceiling on a single command. A wedged command used to present as an
241
294
  * indefinite silence on the client; now it comes back as an error naming the
@@ -373,6 +426,46 @@ export async function runDaemonServer(config, port = DEFAULT_PORT) {
373
426
  }, { src: req.args.body, a: req.args.args ?? [] });
374
427
  return { success: true, result, zone: "red" };
375
428
  }
429
+ // The request log, like a HAR, is only meaningful in the browser that
430
+ // outlives commands. (2026-10-12)
431
+ // The console buffer of the daemon's tab: what get_console_messages returns
432
+ // over MCP, for the CLI. Same filter set; clear empties it after reading.
433
+ // (2026-10-12)
434
+ case "consoleMessages": {
435
+ const filter = typeof req.args.filter === "string" ? req.args.filter : "all";
436
+ if (!["all", "error", "warning", "log", "info"].includes(filter)) {
437
+ return { success: false, error: `filter must be one of all, error, warning, log, info (got "${filter}")` };
438
+ }
439
+ await b.getPage(); // a tab exists, so its console capture is attached
440
+ const { messages, dropped } = b.getConsoleMessages();
441
+ const filtered = filter === "all" ? messages : messages.filter((m) => m.type === filter);
442
+ if (req.args.clear === true)
443
+ b.clearConsoleMessages();
444
+ return { success: true, result: { messages: filtered, count: filtered.length, ...(dropped > 0 ? { dropped } : {}) } };
445
+ }
446
+ case "networkList": {
447
+ return { success: true, result: { requests: b.getNetworkRequests() } };
448
+ }
449
+ case "networkClear": {
450
+ b.clearNetworkHistory();
451
+ return { success: true, result: { cleared: true } };
452
+ }
453
+ case "harStart": {
454
+ b.startHarRecording();
455
+ harRecording = true;
456
+ return { success: true, result: { recording: true } };
457
+ }
458
+ case "harStop": {
459
+ if (!harRecording) {
460
+ return { success: false, error: "No HAR recording is running in the daemon; run 'cbrowser har start' first" };
461
+ }
462
+ // Written to the daemon's own har directory only, and handed back: the
463
+ // client writes any path it wants with its own permissions. A client path
464
+ // here would let a command write anywhere the daemon user can.
465
+ const file = await b.exportHar();
466
+ harRecording = false;
467
+ return { success: true, result: { file, har: readFileSync(file, "utf-8") } };
468
+ }
376
469
  case "captureStart": {
377
470
  if (capture && capture.status().state === "recording") {
378
471
  return {
@@ -460,6 +553,17 @@ export async function runDaemonServer(config, port = DEFAULT_PORT) {
460
553
  clearTimeout(timer);
461
554
  }
462
555
  };
556
+ const token = randomBytes(32).toString("hex");
557
+ const authorized = (req) => {
558
+ const got = req.headers[TOKEN_HEADER];
559
+ if (typeof got !== "string" || got.length !== token.length)
560
+ return false;
561
+ return timingSafeEqual(Buffer.from(got), Buffer.from(token));
562
+ };
563
+ const refuse = (res) => {
564
+ res.writeHead(401, { "Content-Type": "application/json" });
565
+ res.end(JSON.stringify({ success: false, error: "unauthorized: this daemon only accepts its own CLI (token in its state file)" }));
566
+ };
463
567
  const server = createServer(async (req, res) => {
464
568
  // CORS headers - use request origin instead of wildcard
465
569
  const origin = req.headers.origin;
@@ -474,18 +578,26 @@ export async function runDaemonServer(config, port = DEFAULT_PORT) {
474
578
  res.end();
475
579
  return;
476
580
  }
477
- if (req.url === "/ping" && req.method === "GET") {
581
+ if (req.url?.startsWith("/ping") && req.method === "GET") {
582
+ // With ?nonce=, prove this daemon holds the token: HMAC(token, nonce). The
583
+ // client checks it before it sends the token or trusts an answer.
584
+ const nonce = new URL(req.url, "http://127.0.0.1").searchParams.get("nonce");
585
+ const proof = nonce && /^[0-9a-f]{16,128}$/.test(nonce) ? proofFor(token, nonce) : undefined;
478
586
  res.writeHead(200, { "Content-Type": "application/json" });
479
- res.end(JSON.stringify({ status: "ok", uptime: process.uptime() }));
587
+ res.end(JSON.stringify({ status: "ok", uptime: process.uptime(), ...(proof ? { proof } : {}) }));
480
588
  return;
481
589
  }
482
590
  if (req.url === "/shutdown" && req.method === "POST") {
591
+ if (!authorized(req))
592
+ return refuse(res);
483
593
  res.writeHead(200, { "Content-Type": "application/json" });
484
594
  res.end(JSON.stringify({ status: "shutting down" }));
485
595
  await shutdown();
486
596
  return;
487
597
  }
488
598
  if (req.url === "/command" && req.method === "POST") {
599
+ if (!authorized(req))
600
+ return refuse(res);
489
601
  // Cap body size to 10 MB. Without this, a malicious or buggy client
490
602
  // can stream gigabytes into memory and OOM the daemon.
491
603
  const MAX_BODY_SIZE = 10 * 1024 * 1024;
@@ -543,6 +655,7 @@ export async function runDaemonServer(config, port = DEFAULT_PORT) {
543
655
  port,
544
656
  startedAt: new Date().toISOString(),
545
657
  lastActivity: new Date().toISOString(),
658
+ token,
546
659
  };
547
660
  writeDaemonState(state);
548
661
  console.log(`[${new Date().toISOString()}] CBrowser daemon started on port ${port} (PID: ${process.pid})`);
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare function terminalSafe(text: string): string;
2
+ /**
3
+ * Route console output through terminalSafe. Under Bun, console.log writes to the
4
+ * file descriptor directly and never reaches process.stdout.write, so the stream
5
+ * guard alone does not cover it. Install after any other console wrapper, so this
6
+ * one is outermost: it formats the arguments as console.log would and passes one
7
+ * safe string on.
8
+ */
9
+ export declare function guardConsole(): void;
10
+ /** Route every string written to a stream through terminalSafe. Buffers pass as they are. */
11
+ export declare function guardTerminalOutput(stream: NodeJS.WriteStream): void;
12
+ //# sourceMappingURL=terminal-safe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-safe.d.ts","sourceRoot":"","sources":["../src/terminal-safe.ts"],"names":[],"mappings":"AA0BA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAKnC;AAED,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAIpE"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Terminal-safe output for the CLI.
3
+ *
4
+ * The CLI prints page-derived text in many places: console messages, titles,
5
+ * extracted text, link labels. Printed raw, a page could log ANSI/OSC escape
6
+ * sequences that set the terminal title, write the clipboard (OSC 52), clear the
7
+ * screen or move the cursor to hide or forge output, and Unicode bidi overrides
8
+ * that reorder what is displayed (push review of 0ee2c27, 2026-10-12).
9
+ *
10
+ * terminalSafe() turns every such character into a visible escape. The CLI writes
11
+ * no colours or control sequences of its own; the one intended control is the
12
+ * carriage return that starts a progress line, which is kept when it is the first
13
+ * character of a write.
14
+ */
15
+ import { format } from "node:util";
16
+ // C0 controls except tab and newline, DEL, C1 controls, and the bidi embedding,
17
+ // override and isolate controls. Matching control characters is the point here.
18
+ // eslint-disable-next-line no-control-regex
19
+ const UNSAFE = /[\u0000-\u0008\u000b-\u001f\u007f-\u009f\u202A-\u202E\u2066-\u2069]/g;
20
+ const visible = (c) => c === "\u001b" ? "\\x1b"
21
+ : c === "\r" ? "\\r"
22
+ : `\\u${c.charCodeAt(0).toString(16).padStart(4, "0")}`;
23
+ export function terminalSafe(text) {
24
+ if (text.startsWith("\r"))
25
+ return "\r" + text.slice(1).replace(UNSAFE, visible);
26
+ return text.replace(UNSAFE, visible);
27
+ }
28
+ /**
29
+ * Route console output through terminalSafe. Under Bun, console.log writes to the
30
+ * file descriptor directly and never reaches process.stdout.write, so the stream
31
+ * guard alone does not cover it. Install after any other console wrapper, so this
32
+ * one is outermost: it formats the arguments as console.log would and passes one
33
+ * safe string on.
34
+ */
35
+ export function guardConsole() {
36
+ for (const method of ["log", "info", "warn", "error", "debug"]) {
37
+ const original = console[method].bind(console);
38
+ console[method] = (...args) => original(terminalSafe(format(...args)));
39
+ }
40
+ }
41
+ /** Route every string written to a stream through terminalSafe. Buffers pass as they are. */
42
+ export function guardTerminalOutput(stream) {
43
+ const write = stream.write.bind(stream);
44
+ stream.write = ((chunk, ...rest) => write(typeof chunk === "string" ? terminalSafe(chunk) : chunk, ...rest));
45
+ }
46
+ //# sourceMappingURL=terminal-safe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal-safe.js","sourceRoot":"","sources":["../src/terminal-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,gFAAgF;AAChF,gFAAgF;AAChF,4CAA4C;AAC5C,MAAM,MAAM,GAAG,sEAAsE,CAAC;AAEtF,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CACpC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO;IACtB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK;QAClB,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAE9D,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChF,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY;IAC1B,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAoC,CAAC;IAC3E,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAc,EAAE,GAAG,IAAe,EAAE,EAAE,CACrD,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAwB,CAAC;AACpG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cbrowser",
3
- "version": "19.4.2",
3
+ "version": "19.5.0",
4
4
  "type": "module",
5
5
  "description": "Cognitive browser automation that thinks like your users—and helps AI agents navigate too. Simulate real user cognition with abandonment detection, constitutional safety, chaos engineering, and UX friction discovery. Sites that pass CBrowser's cognitive tests are easier for both humans and AI agents to navigate.",
6
6
  "main": "dist/index.js",