cbrowser 18.72.6 → 18.73.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.
Files changed (46) hide show
  1. package/dist/browser/selector-cache.d.ts +11 -0
  2. package/dist/browser/selector-cache.d.ts.map +1 -1
  3. package/dist/browser/selector-cache.js +41 -4
  4. package/dist/browser/selector-cache.js.map +1 -1
  5. package/dist/browser/session-manager.d.ts +10 -3
  6. package/dist/browser/session-manager.d.ts.map +1 -1
  7. package/dist/browser/session-manager.js +38 -7
  8. package/dist/browser/session-manager.js.map +1 -1
  9. package/dist/browser.d.ts.map +1 -1
  10. package/dist/browser.js +28 -4
  11. package/dist/browser.js.map +1 -1
  12. package/dist/cli.js +51 -11
  13. package/dist/cli.js.map +1 -1
  14. package/dist/mcp-server-remote.d.ts +45 -0
  15. package/dist/mcp-server-remote.d.ts.map +1 -1
  16. package/dist/mcp-server-remote.js +323 -54
  17. package/dist/mcp-server-remote.js.map +1 -1
  18. package/dist/mcp-server.d.ts.map +1 -1
  19. package/dist/mcp-server.js +8 -0
  20. package/dist/mcp-server.js.map +1 -1
  21. package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
  22. package/dist/mcp-tools/base/audit-tools.js +8 -4
  23. package/dist/mcp-tools/base/audit-tools.js.map +1 -1
  24. package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
  25. package/dist/mcp-tools/base/persona-comparison-tools.js +0 -2
  26. package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
  27. package/dist/mcp-tools/base/session-tools.js +3 -3
  28. package/dist/mcp-tools/base/session-tools.js.map +1 -1
  29. package/dist/mcp-tools/index.d.ts.map +1 -1
  30. package/dist/mcp-tools/index.js +13 -4
  31. package/dist/mcp-tools/index.js.map +1 -1
  32. package/dist/mcp-tools/security-layer.d.ts +27 -0
  33. package/dist/mcp-tools/security-layer.d.ts.map +1 -0
  34. package/dist/mcp-tools/security-layer.js +145 -0
  35. package/dist/mcp-tools/security-layer.js.map +1 -0
  36. package/dist/output.d.ts +20 -0
  37. package/dist/output.d.ts.map +1 -1
  38. package/dist/output.js +157 -4
  39. package/dist/output.js.map +1 -1
  40. package/dist/site-model/manager.d.ts.map +1 -1
  41. package/dist/site-model/manager.js +27 -3
  42. package/dist/site-model/manager.js.map +1 -1
  43. package/dist/stealth/framework.d.ts.map +1 -1
  44. package/dist/stealth/framework.js +6 -1
  45. package/dist/stealth/framework.js.map +1 -1
  46. package/package.json +4 -2
@@ -0,0 +1,145 @@
1
+ /**
2
+ * CBrowser - Cognitive Browser Automation
3
+ * Copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com
4
+ * Learn more at https://cbrowser.ai - MIT License
5
+ */
6
+ /**
7
+ * Security layer — connects src/security/ to the tools that are actually served.
8
+ *
9
+ * Until 2026-07-26 the entire security module was dead code. A grep for its six
10
+ * public entry points across src/, excluding src/security/ itself, returned ZERO
11
+ * call sites, while README.md shipped a Zone table, skill/SKILL.md claimed
12
+ * "Constitutional safety (won't execute dangerous actions)" with a checkmark in a
13
+ * feature matrix, skill/Philosophy.md claimed "Every session generates an audit
14
+ * log", and cli.ts documented `--force Bypass red zone safety checks`. None of
15
+ * it ran. Four green test files covered the functions in isolation, which is
16
+ * exactly why a 570/570 suite read as assurance.
17
+ *
18
+ * Applied UNCONDITIONALLY, deliberately. `createGatedServer` returns the server
19
+ * untouched when the tier is null, which is the live enterprise configuration, so
20
+ * hanging security off tier gating would inherit that hole.
21
+ *
22
+ * WHAT IS ENFORCED, AND WHY THE REST IS NOT:
23
+ * - Audit logging: always. Zero behaviour change, and it is what makes the
24
+ * documented claim true.
25
+ * - Description scanning: at registration, recorded. Detection only.
26
+ * - Zone `black`: always denied. There are currently zero black tools, so this
27
+ * is a guard for future classifications rather than a change today.
28
+ * - Zone `red`: NOT denied by default. The zone model was designed around a CLI
29
+ * `--force` flag, and MCP has no equivalent affordance — a caller has no way
30
+ * to express override. Enforcing it would have denied six tools that work
31
+ * today on the paid product (stealth_enable/disable/diagnose, set_api_key,
32
+ * ask_user, cognitive_journey_autonomous, chaos_test), which is a worse
33
+ * outcome than the gap it closes. It is available behind
34
+ * CBROWSER_ENFORCE_RED_ZONE=true, and the real fix is a force affordance in
35
+ * the MCP surface — a design decision, not a patch.
36
+ */
37
+ import { createAuditContext, wrapToolHandler } from "../security/audit-wrapper.js";
38
+ import { checkToolPermission } from "../security/tool-permissions.js";
39
+ import { scanToolDescription } from "../security/description-scanner.js";
40
+ let lastScan = { scanned: 0, flagged: [] };
41
+ /** What the most recent registration pass found. Read-only. */
42
+ export function getDescriptionScanSummary() {
43
+ return { scanned: lastScan.scanned, flagged: [...lastScan.flagged] };
44
+ }
45
+ /** Red-zone denial is opt-in; see the module comment for why. */
46
+ function redZoneEnforced() {
47
+ return process.env.CBROWSER_ENFORCE_RED_ZONE === "true" || process.env.CBROWSER_ENFORCE_RED_ZONE === "1";
48
+ }
49
+ /**
50
+ * Wrap a server so every tool registered through it is audited and zone-checked.
51
+ *
52
+ * Composes with createGatedServer rather than replacing it: tier gating decides
53
+ * what a customer may reach, this decides what is recorded and what is refused
54
+ * outright.
55
+ */
56
+ export function applySecurityLayer(server, opts) {
57
+ // BOTH registration methods must be wrapped. There are two independent tool
58
+ // surfaces in this package: registerAllPublicTools uses `registerTool` (the
59
+ // hosted/remote servers), while src/mcp-server.ts — the local stdio server —
60
+ // registers its own ~100 tools with the deprecated `server.tool(...)` in 4,372
61
+ // lines of its own. Wrapping only the first covered the hosted path and left
62
+ // the local server completely unaudited, which is precisely the "wired it but
63
+ // it never fires" outcome this whole change exists to eliminate. Verified by
64
+ // driving a real tools/call at each surface and checking for the entry.
65
+ const srv = server;
66
+ const originalRegisterTool = srv.registerTool?.bind(srv);
67
+ let audit;
68
+ try {
69
+ audit = opts?.audit ?? createAuditContext();
70
+ }
71
+ catch {
72
+ // An unwritable audit dir must not take the server down. Degrade to
73
+ // disabled-but-present rather than crashing at startup.
74
+ audit = { sessionId: "unavailable", auditDir: "", enabled: false, includeStackTraces: false, actionsTriggered: new Map() };
75
+ }
76
+ lastScan = { scanned: 0, flagged: [] };
77
+ /** Scan a description at registration time. Detection only, never blocking. */
78
+ const scan = (name, description) => {
79
+ try {
80
+ if (typeof description === "string" && description) {
81
+ lastScan.scanned++;
82
+ const r = scanToolDescription(name, description);
83
+ if (r.issues.length > 0)
84
+ lastScan.flagged.push({ tool: name, issues: r.issues.length });
85
+ }
86
+ }
87
+ catch { /* scanning must never block registration */ }
88
+ };
89
+ /** Wrap one handler with zone refusal + audit. */
90
+ const secure = (name, handler) => {
91
+ const secured = async (...args) => {
92
+ const decision = checkToolPermission(name, redZoneEnforced());
93
+ // `black` is refused unconditionally; `red` only when explicitly enforced.
94
+ // Anything allowed proceeds, with the zone recorded either way.
95
+ const refuse = decision.zone === "black" || (decision.zone === "red" && redZoneEnforced() && !decision.allowed);
96
+ if (refuse) {
97
+ return {
98
+ isError: true,
99
+ content: [{
100
+ type: "text",
101
+ text: JSON.stringify({
102
+ error: "tool_refused_by_zone",
103
+ tool: name,
104
+ zone: decision.zone,
105
+ message: decision.message ?? `Tool '${name}' is refused by its safety zone.`,
106
+ }, null, 2),
107
+ }],
108
+ };
109
+ }
110
+ return handler(...args);
111
+ };
112
+ // Audit wraps the outermost call so a zone refusal is recorded too.
113
+ // wrapToolHandler calls handler(params) with one argument; MCP passes
114
+ // (args, extra). Forward the rest explicitly so the extra context is not
115
+ // silently dropped on its way through the audit layer.
116
+ const audited = wrapToolHandler(((params) => secured(params)), name, audit);
117
+ return audited;
118
+ };
119
+ if (originalRegisterTool) {
120
+ srv.registerTool = (name, config, handler) => {
121
+ scan(name, config?.description);
122
+ originalRegisterTool(name, config, secure(name, handler));
123
+ };
124
+ }
125
+ // The deprecated `.tool()` overloads put the handler last and the description
126
+ // (when present) second, so locate the callback by position from the end
127
+ // rather than assuming an arity.
128
+ const originalTool = srv.tool?.bind(srv);
129
+ if (originalTool) {
130
+ srv.tool = (...args) => {
131
+ const name = typeof args[0] === "string" ? args[0] : "(unknown)";
132
+ const handlerIdx = args.length - 1;
133
+ const handler = args[handlerIdx];
134
+ if (typeof handler !== "function")
135
+ return originalTool(...args);
136
+ const maybeConfig = args.find((a) => a && typeof a === "object" && "description" in a);
137
+ scan(name, typeof args[1] === "string" ? args[1] : maybeConfig?.description);
138
+ const next = [...args];
139
+ next[handlerIdx] = secure(name, handler);
140
+ return originalTool(...next);
141
+ };
142
+ }
143
+ return srv;
144
+ }
145
+ //# sourceMappingURL=security-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"security-layer.js","sourceRoot":"","sources":["../../src/mcp-tools/security-layer.ts"],"names":[],"mappings":"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"}
package/dist/output.d.ts CHANGED
@@ -59,11 +59,31 @@ export interface JsonOutput {
59
59
  duration_ms?: number;
60
60
  };
61
61
  }
62
+ /** Test seam — reset capture state between assertions. */
63
+ export declare function _resetJsonCapture(): void;
64
+ /** Test seam — whether the capture buffer hit its budget. */
65
+ export declare function _captureTruncated(): boolean;
66
+ /** Test seam — what the wrapper has captured so far. */
67
+ export declare function _capturedJsonLines(): string[];
68
+ /** Whether a command emitted a real JSON envelope in this process. */
69
+ export declare function hasEmittedJson(): boolean;
70
+ /** Test seam — capture envelope output. Pass nothing to restore fd 1. */
71
+ export declare function _setJsonSink(sink?: (text: string) => void): void;
62
72
  /**
63
73
  * Emit JSON output to stdout and exit.
64
74
  * All human-readable diagnostics go to stderr.
65
75
  */
66
76
  export declare function emitJson(output: JsonOutput): void;
77
+ /**
78
+ * Emit the fallback envelope for a command that never called emitJson.
79
+ *
80
+ * The contract this restores is narrow and deliberate: in --json-output mode
81
+ * stdout is ALWAYS parseable JSON and never empty. It wraps whatever the command
82
+ * printed rather than inventing structure, so a command with no native JSON shape
83
+ * degrades to `{success, command, data.output[...]}` instead of degrading to
84
+ * silence. Commands that do call emitJson are untouched.
85
+ */
86
+ export declare function emitJsonFallback(command: string, version: string): void;
67
87
  /**
68
88
  * Install console wrappers that respect output options.
69
89
  * Call once at CLI startup, AFTER setting output options.
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAC;CACf;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,aAAa,CAc/F;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAE1D;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAiBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAEjD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAyB5C"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,4DAA4D;IAC5D,IAAI,EAAE,OAAO,CAAC;CACf;AASD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,aAAa,CAc/F;AAED,6DAA6D;AAC7D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,CAE1D;AAED,iCAAiC;AACjC,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD;AAiBD;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOrD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAkBD,0DAA0D;AAC1D,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAE7C;AAED,sEAAsE;AACtE,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAgED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAEhE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAGjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAqBvE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAyC5C"}
package/dist/output.js CHANGED
@@ -9,6 +9,7 @@
9
9
  *
10
10
  * Follows the NO_COLOR standard (https://no-color.org)
11
11
  */
12
+ import { writeSync } from "node:fs";
12
13
  /** Singleton output options — set once at CLI startup */
13
14
  let globalOptions = {
14
15
  noColor: false,
@@ -83,12 +84,147 @@ export function formatOutput(text) {
83
84
  }
84
85
  return result;
85
86
  }
87
+ /**
88
+ * Lines a command wrote to console.log while --json-output was active.
89
+ *
90
+ * Before 2026-07-26 these were thrown away: the JSON branch of
91
+ * installOutputWrappers set `console.log = () => {}` under a comment claiming the
92
+ * output was "captured for JSON", and only two call sites in the whole CLI ever
93
+ * called emitJson against ~140 advertised commands. So `--json-output` — a
94
+ * documented accessibility contract ("for scripts and screen readers") — made
95
+ * essentially every command print NOTHING and exit 0. A CI step piping to jq got
96
+ * empty stdin next to a success exit code, which reads as a clean pass.
97
+ * Probed live: `cbrowser navigate <file-url> --json-output` -> 0 bytes, exit 0,
98
+ * against 294 bytes without the flag.
99
+ */
100
+ let capturedLines = [];
101
+ let jsonEmitted = false;
102
+ /** Test seam — reset capture state between assertions. */
103
+ export function _resetJsonCapture() {
104
+ capturedLines = [];
105
+ jsonEmitted = false;
106
+ capturedBytes = 0;
107
+ captureTruncated = false;
108
+ }
109
+ /** Test seam — whether the capture buffer hit its budget. */
110
+ export function _captureTruncated() {
111
+ return captureTruncated;
112
+ }
113
+ /** Test seam — what the wrapper has captured so far. */
114
+ export function _capturedJsonLines() {
115
+ return [...capturedLines];
116
+ }
117
+ /** Whether a command emitted a real JSON envelope in this process. */
118
+ export function hasEmittedJson() {
119
+ return jsonEmitted;
120
+ }
121
+ /**
122
+ * Cap on captured output carried in the fallback envelope.
123
+ *
124
+ * Two reasons, both measured. (a) `capturedLines` accumulates every console.log
125
+ * for the process lifetime and is otherwise unbounded, so a long journey or a
126
+ * large nl-test run grows it without limit. (b) the envelope is written from a
127
+ * process-exit handler, and a pipe write past one buffer cannot be drained from
128
+ * there (see writeAllSync). Keeping the payload well under a pipe buffer means
129
+ * truncation is reached by design and reported, rather than silently.
130
+ * `help --json-output` measured 31,692 bytes, so 48KB leaves real headroom.
131
+ */
132
+ const CAPTURE_BYTE_BUDGET = 48 * 1024;
133
+ let capturedBytes = 0;
134
+ let captureTruncated = false;
135
+ /**
136
+ * Write text to stdout synchronously, all of it.
137
+ *
138
+ * `process.stdout.write` to a pipe is ASYNCHRONOUS in Node, and a
139
+ * `process.on("exit")` handler cannot await the drain, so everything past the
140
+ * first 65,536-byte pipe buffer is discarded. Measured 2026-07-26 on a
141
+ * 1,048,636-byte payload: 1,048,616 bytes reached a file, exactly 65,536 reached
142
+ * a pipe, and still exactly 65,536 with `| cat` actively reading. It does not
143
+ * deadlock, it silently truncates, which is the worse of the two failures and
144
+ * lands precisely on the pipe-to-jq case this whole fix exists for.
145
+ * `writeSync` on fd 1 is genuinely synchronous. The loop is required because a
146
+ * partial write is legal; the EAGAIN retry because Node may leave the fd
147
+ * non-blocking.
148
+ */
149
+ function writeAllSync(text) {
150
+ const buf = Buffer.from(text, "utf-8");
151
+ let off = 0;
152
+ // EAGAIN is retried, but a BOUNDED number of times. The first version of this
153
+ // did `if (code === "EAGAIN") continue;` with no limit, which busy-spins
154
+ // forever against a non-blocking pipe whose reader never drains — an infinite
155
+ // loop in an exit handler, i.e. a process that can never exit. Shipping an
156
+ // unbounded retry while hunting a hang was not my finest moment. (2026-07-27)
157
+ let eagainRetries = 0;
158
+ const MAX_EAGAIN_RETRIES = 10_000;
159
+ while (off < buf.length) {
160
+ try {
161
+ off += writeSync(1, buf, off, buf.length - off);
162
+ eagainRetries = 0;
163
+ }
164
+ catch (err) {
165
+ const code = err.code;
166
+ if (code === "EAGAIN" && eagainRetries++ < MAX_EAGAIN_RETRIES)
167
+ continue;
168
+ // Give up on fd 1 and hand the remainder to the async path. Losing the
169
+ // tail of an envelope beats never exiting.
170
+ try {
171
+ process.stdout.write(buf.subarray(off));
172
+ }
173
+ catch { /* nothing left to try */ }
174
+ return;
175
+ }
176
+ }
177
+ }
178
+ /**
179
+ * Where the JSON envelope is written. Overridable ONLY so tests can observe it:
180
+ * writeAllSync goes to fd 1 directly, which is the whole point of the fix and
181
+ * which a `process.stdout.write` spy therefore cannot see. Production never
182
+ * replaces this.
183
+ */
184
+ let jsonSink = writeAllSync;
185
+ /** Test seam — capture envelope output. Pass nothing to restore fd 1. */
186
+ export function _setJsonSink(sink) {
187
+ jsonSink = sink ?? writeAllSync;
188
+ }
86
189
  /**
87
190
  * Emit JSON output to stdout and exit.
88
191
  * All human-readable diagnostics go to stderr.
89
192
  */
90
193
  export function emitJson(output) {
91
- process.stdout.write(JSON.stringify(output, null, 2) + "\n");
194
+ jsonEmitted = true;
195
+ jsonSink(JSON.stringify(output, null, 2) + "\n");
196
+ }
197
+ /**
198
+ * Emit the fallback envelope for a command that never called emitJson.
199
+ *
200
+ * The contract this restores is narrow and deliberate: in --json-output mode
201
+ * stdout is ALWAYS parseable JSON and never empty. It wraps whatever the command
202
+ * printed rather than inventing structure, so a command with no native JSON shape
203
+ * degrades to `{success, command, data.output[...]}` instead of degrading to
204
+ * silence. Commands that do call emitJson are untouched.
205
+ */
206
+ export function emitJsonFallback(command, version) {
207
+ if (jsonEmitted)
208
+ return;
209
+ // `success` is READ from the exit code, never assumed. Hardcoding `true` here
210
+ // was the same defect as the auth bypass this release also fixes: a truthy
211
+ // default standing in for a decision nobody made. Measured before the fix:
212
+ // `cbrowser personas --json-output` exited 1 while the envelope said
213
+ // "success": true, so `... | jq -e .success` passed on a hard failure. That is
214
+ // worse than the empty stdout it replaced, because a lie beats silence at
215
+ // fooling a script. (2026-07-26, found by the cross-vendor audit of this fix.)
216
+ const failed = (process.exitCode ?? 0) !== 0;
217
+ const warnings = ["This command has no native --json-output shape; data.output is its captured text output."];
218
+ if (captureTruncated) {
219
+ warnings.push(`Captured output exceeded ${CAPTURE_BYTE_BUDGET} bytes and was truncated; data.output is incomplete.`);
220
+ }
221
+ emitJson({
222
+ success: !failed,
223
+ command,
224
+ data: { output: capturedLines, truncated: captureTruncated },
225
+ warnings,
226
+ meta: { version },
227
+ });
92
228
  }
93
229
  /**
94
230
  * Install console wrappers that respect output options.
@@ -103,10 +239,27 @@ export function installOutputWrappers() {
103
239
  return;
104
240
  }
105
241
  if (globalOptions.json) {
106
- // In JSON mode, suppress console.log (data goes through emitJson)
107
- // Keep console.error for diagnostics on stderr
242
+ // In JSON mode stdout is reserved for the JSON envelope, so console.log is
243
+ // diverted — CAPTURED, not discarded. Discarding it is what made ~140
244
+ // commands emit nothing at all under --json-output (see capturedLines).
245
+ // Diagnostics keep going to stderr.
108
246
  const origError = console.error.bind(console);
109
- console.log = () => { }; // suppress stdout in JSON mode
247
+ console.log = (...args) => {
248
+ const line = args
249
+ .map((a) => (typeof a === "string" ? stripAnsi(stripDecorations(a)) : String(a)))
250
+ .join(" ")
251
+ .trim();
252
+ if (!line)
253
+ return;
254
+ if (capturedBytes + line.length > CAPTURE_BYTE_BUDGET) {
255
+ // Drop rather than grow. The envelope must stay writable from an exit
256
+ // handler, and a reported truncation beats an unparseable payload.
257
+ captureTruncated = true;
258
+ return;
259
+ }
260
+ capturedBytes += line.length;
261
+ capturedLines.push(line);
262
+ };
110
263
  console.error = (...args) => {
111
264
  origError(...args.map(a => typeof a === "string" ? stripAnsi(stripDecorations(a)) : a));
112
265
  };
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/site-model/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/site-model/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EAEd,QAAQ,EACR,UAAU,EACV,QAAQ,EAER,WAAW,EAEX,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,UAAU,CAAwB;IAE1C,kDAAkD;IAClD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAiC;IAEzD,2CAA2C;IAC3C,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB;IAOtD,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAc;IACpD,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;IACtE,yCAAyC;IACzC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAQ;IACjD,iEAAiE;IACjE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAO;IAC7C,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAC5C,iDAAiD;IACjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IACnD,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA4B;gBAEzD,OAAO,CAAC,EAAE,MAAM;IAe5B;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAyBnD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAsCxB;;OAEG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,GAClB,IAAI;IA+DP;;OAEG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,OAAO,GACf,IAAI;IAoCP;;;OAGG;IACH,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,UAAU,EAAE,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,GACf,IAAI;IA6DP;;OAEG;IACH,aAAa,CACX,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAAE,GACnB,IAAI;IA2DP;;OAEG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,IAAI;IAgCP;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI;IAiBlE;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAejE;;;OAGG;IACH,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,cAAc,EAAE;IAiBnB;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,SAAS,GAAG,WAAW;IA2FpE;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA4C5D;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAY/B;;;OAGG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;YACW,UAAU;IAuCxB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA6G3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;YACW,QAAQ;IAOtB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBpB;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAsCvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAetB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAiB3B"}
@@ -8,6 +8,7 @@
8
8
  * @since v18.35.0
9
9
  */
10
10
  import * as fs from "fs/promises";
11
+ import { readFileSync } from "fs";
11
12
  import * as path from "path";
12
13
  import * as os from "os";
13
14
  import * as crypto from "crypto";
@@ -85,10 +86,33 @@ export class SiteModelManager {
85
86
  const normalized = this.normalizeDomain(domain);
86
87
  let model = this.models.get(normalized);
87
88
  if (!model) {
88
- model = this.createEmptyModel(normalized);
89
+ // Read from disk SYNCHRONOUSLY, before caching anything.
90
+ //
91
+ // This used to cache an empty model first and then fire
92
+ // `this.loadModel(normalized).catch(() => {})` to "merge any existing
93
+ // data". It merged nothing: loadModel's own first lines are
94
+ // `const cached = this.models.get(normalized); if (cached) return cached`,
95
+ // and the empty model had just been placed in that cache — so the disk
96
+ // read was a guaranteed no-op. markDirty then scheduled a flush 1s later
97
+ // which wrote the near-empty model OVER the file, destroying every learned
98
+ // navigation edge, selector, goal path and failure pattern for that
99
+ // domain. Silently, because the .catch(() => {}) swallowed anything that
100
+ // might have hinted at it.
101
+ //
102
+ // Trigger: any fresh process whose first site-model operation is a
103
+ // record*/updateFingerprint call rather than an explicit loadModel — which
104
+ // is the normal path. (2026-07-26)
105
+ try {
106
+ const loaded = JSON.parse(readFileSync(this.modelFilePath(normalized), "utf-8"));
107
+ loaded.domain = normalized;
108
+ this.pruneStaleData(normalized, loaded);
109
+ model = loaded;
110
+ }
111
+ catch {
112
+ // No file yet, or unreadable/corrupt — an empty model is correct here.
113
+ model = this.createEmptyModel(normalized);
114
+ }
89
115
  this.models.set(normalized, model);
90
- // Trigger async load from disk to merge any existing data
91
- this.loadModel(normalized).catch(() => { });
92
116
  }
93
117
  return model;
94
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/site-model/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/site-model/manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/stealth/framework.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EAIxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAYpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,w6BA0BpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqB1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAa1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAsBpF;AAED;;;GAGG;AACH,8BAAsB,0BAA2B,YAAW,uBAAuB;IACjF,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC7C,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAa;gBAEvE,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAuBxC;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2ErF;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1E;;OAEG;IACH,kBAAkB,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;IAmB3D;;OAEG;IACH,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO;IAI3D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5D;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,0BAA0B;cACxD,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1D;AAED;;GAEG;AACH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,CAAC"}
1
+ {"version":3,"file":"framework.d.ts","sourceRoot":"","sources":["../../src/stealth/framework.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EAIxB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAYpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,w6BA0BpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CA0B1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAa1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAsBpF;AAED;;;GAGG;AACH,8BAAsB,0BAA2B,YAAW,uBAAuB;IACjF,SAAS,CAAC,MAAM,EAAE,aAAa,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAM;IAC7C,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,IAAI,CAAA;KAAE,CAAC,CAAa;gBAEvE,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM;IAI/C;;OAEG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAuBxC;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2ErF;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1E;;OAEG;IACH,kBAAkB,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,IAAI,CAAA;KAAE;IAmB3D;;OAEG;IACH,sBAAsB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO;IAI3D;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7E;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAC5D;AAED;;;GAGG;AACH,qBAAa,0BAA2B,SAAQ,0BAA0B;cACxD,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1D;AAED;;GAEG;AACH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,GAC7B,CAAC"}
@@ -73,7 +73,12 @@ export function matchesDomainPattern(url, pattern) {
73
73
  // Wildcard match (*.example.com)
74
74
  if (patternLower.startsWith("*.")) {
75
75
  const suffix = patternLower.slice(2);
76
- return hostname.endsWith(suffix) || hostname === suffix.slice(1);
76
+ // A bare endsWith has no label boundary, so "*.example.com" also
77
+ // authorised "evil-example.com" and "notexample.com" — stealth evasion
78
+ // running outside the authorisation the operator signed. The second
79
+ // clause (suffix.slice(1)) was nonsense and matched nothing intended.
80
+ // (2026-07-26)
81
+ return hostname === suffix || hostname.endsWith("." + suffix);
77
82
  }
78
83
  return false;
79
84
  }