cbrowser 18.72.5 → 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.
- package/dist/browser/selector-cache.d.ts +11 -0
- package/dist/browser/selector-cache.d.ts.map +1 -1
- package/dist/browser/selector-cache.js +41 -4
- package/dist/browser/selector-cache.js.map +1 -1
- package/dist/browser/session-manager.d.ts +10 -3
- package/dist/browser/session-manager.d.ts.map +1 -1
- package/dist/browser/session-manager.js +38 -7
- package/dist/browser/session-manager.js.map +1 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +28 -4
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +51 -11
- package/dist/cli.js.map +1 -1
- package/dist/mcp-server-remote.d.ts +45 -0
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +323 -54
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +8 -0
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/audit-tools.js +8 -4
- package/dist/mcp-tools/base/audit-tools.js.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/persona-comparison-tools.js +0 -2
- package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
- package/dist/mcp-tools/base/session-tools.js +3 -3
- package/dist/mcp-tools/base/session-tools.js.map +1 -1
- package/dist/mcp-tools/index.d.ts.map +1 -1
- package/dist/mcp-tools/index.js +13 -4
- package/dist/mcp-tools/index.js.map +1 -1
- package/dist/mcp-tools/security-layer.d.ts +27 -0
- package/dist/mcp-tools/security-layer.d.ts.map +1 -0
- package/dist/mcp-tools/security-layer.js +145 -0
- package/dist/mcp-tools/security-layer.js.map +1 -0
- package/dist/output.d.ts +20 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +157 -4
- package/dist/output.js.map +1 -1
- package/dist/site-model/manager.d.ts.map +1 -1
- package/dist/site-model/manager.js +27 -3
- package/dist/site-model/manager.js.map +1 -1
- package/dist/stealth/framework.d.ts.map +1 -1
- package/dist/stealth/framework.js +6 -1
- package/dist/stealth/framework.js.map +1 -1
- 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.
|
package/dist/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
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
|
-
|
|
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,
|
|
107
|
-
//
|
|
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 = () => {
|
|
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
|
};
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
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":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/site-model/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
}
|