cbrowser 19.2.0 → 19.2.1
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/README.md +2 -2
- package/dist/analysis/accessibility-empathy.d.ts +5 -0
- package/dist/analysis/accessibility-empathy.d.ts.map +1 -1
- package/dist/analysis/accessibility-empathy.js +62 -76
- package/dist/analysis/accessibility-empathy.js.map +1 -1
- package/dist/analysis/competitive-benchmark.js +2 -2
- package/dist/analysis/competitive-benchmark.js.map +1 -1
- package/dist/analysis/persona-comparison.d.ts.map +1 -1
- package/dist/analysis/persona-comparison.js +5 -1
- package/dist/analysis/persona-comparison.js.map +1 -1
- package/dist/browser.js +2 -2
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +44 -7
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts +2 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +8 -1
- package/dist/daemon.js.map +1 -1
- package/dist/mcp-tools/account-personas.d.ts +3 -2
- package/dist/mcp-tools/account-personas.d.ts.map +1 -1
- package/dist/mcp-tools/account-personas.js +13 -4
- package/dist/mcp-tools/account-personas.js.map +1 -1
- package/dist/mcp-tools/base/advanced-interaction-tools.js +1 -1
- package/dist/mcp-tools/base/advanced-interaction-tools.js.map +1 -1
- package/dist/mcp-tools/base/audit-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/audit-tools.js +42 -15
- package/dist/mcp-tools/base/audit-tools.js.map +1 -1
- package/dist/mcp-tools/base/browser-state-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/browser-state-tools.js +25 -4
- package/dist/mcp-tools/base/browser-state-tools.js.map +1 -1
- package/dist/mcp-tools/base/cognitive-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/cognitive-tools.js +14 -2
- package/dist/mcp-tools/base/cognitive-tools.js.map +1 -1
- package/dist/mcp-tools/base/gif-tools.d.ts +19 -0
- package/dist/mcp-tools/base/gif-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/gif-tools.js +53 -24
- package/dist/mcp-tools/base/gif-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 +38 -28
- package/dist/mcp-tools/base/persona-comparison-tools.js.map +1 -1
- package/dist/mcp-tools/base/values-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/values-tools.js +12 -0
- package/dist/mcp-tools/base/values-tools.js.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.d.ts +17 -0
- package/dist/mcp-tools/base/visual-testing-tools.d.ts.map +1 -1
- package/dist/mcp-tools/base/visual-testing-tools.js +184 -148
- package/dist/mcp-tools/base/visual-testing-tools.js.map +1 -1
- package/dist/mcp-tools/inline-image.d.ts +82 -0
- package/dist/mcp-tools/inline-image.d.ts.map +1 -0
- package/dist/mcp-tools/inline-image.js +163 -0
- package/dist/mcp-tools/inline-image.js.map +1 -0
- package/dist/personas.d.ts +32 -0
- package/dist/personas.d.ts.map +1 -1
- package/dist/personas.js +90 -3
- package/dist/personas.js.map +1 -1
- package/dist/security/audit-wrapper.d.ts.map +1 -1
- package/dist/security/audit-wrapper.js +1 -0
- package/dist/security/audit-wrapper.js.map +1 -1
- package/dist/security/script-gate.d.ts +33 -0
- package/dist/security/script-gate.d.ts.map +1 -0
- package/dist/security/script-gate.js +37 -0
- package/dist/security/script-gate.js.map +1 -0
- package/dist/security/tool-permissions.d.ts.map +1 -1
- package/dist/security/tool-permissions.js +4 -0
- package/dist/security/tool-permissions.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-testing-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/base/visual-testing-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"visual-testing-tools.js","sourceRoot":"","sources":["../../../src/mcp-tools/base/visual-testing-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CBrowser MCP Tools - Inline image fitting
|
|
3
|
+
*
|
|
4
|
+
* Generated overlays (attention heatmaps, comparison maps, motor and story
|
|
5
|
+
* overlays) are full-resolution PNGs of 0.5-1 MB. A tool result has to stay
|
|
6
|
+
* under the host's ~150k-character cap (MAX_RESPONSE_SIZE), or the host swaps
|
|
7
|
+
* the whole result for a file pointer and the JSON beside the image arrives as
|
|
8
|
+
* unparseable text.
|
|
9
|
+
*
|
|
10
|
+
* Those two facts used to be resolved by dropping the picture: an overlay over
|
|
11
|
+
* a fixed budget was left out and named instead, so the tool whose finding IS
|
|
12
|
+
* the picture returned no picture. The PNG is not the only thing that can be
|
|
13
|
+
* shown. This fits a JPEG preview into whatever budget the JSON leaves, and the
|
|
14
|
+
* full-resolution PNG stays in the artifact store for artifact_fetch and the
|
|
15
|
+
* public URL.
|
|
16
|
+
*
|
|
17
|
+
* @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
|
|
18
|
+
* @license MIT
|
|
19
|
+
*/
|
|
20
|
+
import { type ContentBlock } from "./screenshot-utils.js";
|
|
21
|
+
/** A JPEG preview that fits an inline budget. */
|
|
22
|
+
export interface InlineImage {
|
|
23
|
+
/** Base64 JPEG, no data-URL prefix. */
|
|
24
|
+
data: string;
|
|
25
|
+
mimeType: "image/jpeg";
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
sourceWidth: number;
|
|
29
|
+
sourceHeight: number;
|
|
30
|
+
quality: number;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Re-encode an image as the largest, best-quality JPEG whose base64 fits in
|
|
34
|
+
* `budgetChars`: the quality ladder at full size first, then each downscale
|
|
35
|
+
* step. Returns null when even the smallest useful preview does not fit, or
|
|
36
|
+
* when the input cannot be decoded.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fitImageForInline(png: Buffer, budgetChars: number): Promise<InlineImage | null>;
|
|
39
|
+
/** What a result says about one preview, so the reader knows what it is looking at. */
|
|
40
|
+
export interface InlinePreview {
|
|
41
|
+
inline: boolean;
|
|
42
|
+
mimeType?: "image/jpeg";
|
|
43
|
+
/** Preview size, "WxH". */
|
|
44
|
+
size?: string;
|
|
45
|
+
/** Size of the full-resolution original, "WxH". */
|
|
46
|
+
fullSize?: string;
|
|
47
|
+
quality?: number;
|
|
48
|
+
base64Chars?: number;
|
|
49
|
+
note: string;
|
|
50
|
+
}
|
|
51
|
+
/** An overlay to preview, and where its full-resolution original can be had. */
|
|
52
|
+
export interface PreviewSource {
|
|
53
|
+
name: string;
|
|
54
|
+
png: Buffer;
|
|
55
|
+
/** Human-readable pointer to the full-resolution PNG, e.g. "heatmapUrl, or artifact_fetch({ file: heatmapFile })". */
|
|
56
|
+
fullResolution: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Held back from the cap for the preview descriptions written into the JSON
|
|
60
|
+
* after the budget is set, and for the result envelope. Same margin the
|
|
61
|
+
* screenshot path keeps (screenshot-utils RESULT_MARGIN).
|
|
62
|
+
*/
|
|
63
|
+
export declare const PREVIEW_RESULT_MARGIN = 6000;
|
|
64
|
+
/** Serialized size of a set of content blocks, in bytes (never fewer than characters). */
|
|
65
|
+
export declare function contentSize(blocks: unknown[]): number;
|
|
66
|
+
/**
|
|
67
|
+
* Build `[text, ...images]` for a result that carries generated overlays.
|
|
68
|
+
*
|
|
69
|
+
* The images share whatever the JSON leaves of the cap, split evenly with any
|
|
70
|
+
* share an earlier image did not use carried to the next. `annotate` receives
|
|
71
|
+
* the preview descriptions (by source name) and returns fields merged into the
|
|
72
|
+
* JSON, so the result states exactly what was attached.
|
|
73
|
+
*
|
|
74
|
+
* The cap is then MEASURED on the finished content, not trusted: if the
|
|
75
|
+
* descriptions pushed it over, the images are refitted into a smaller budget,
|
|
76
|
+
* and if nothing fits the result goes out with no images and says so.
|
|
77
|
+
*/
|
|
78
|
+
export declare function buildContentWithPreviews(data: Record<string, unknown>, sources: PreviewSource[], annotate: (previews: Record<string, InlinePreview>) => Record<string, unknown>, opts?: {
|
|
79
|
+
cap?: number;
|
|
80
|
+
maxCharsPerImage?: number;
|
|
81
|
+
}): Promise<ContentBlock[]>;
|
|
82
|
+
//# sourceMappingURL=inline-image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-image.d.ts","sourceRoot":"","sources":["../../src/mcp-tools/inline-image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAqB,KAAK,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAEhG,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAgBD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAiDrG;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,sHAAsH;IACtH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAK3C,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAErD;AAqBD;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,aAAa,EAAE,EACxB,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9E,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,OAAO,CAAC,YAAY,EAAE,CAAC,CAkCzB"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CBrowser MCP Tools - Inline image fitting
|
|
3
|
+
*
|
|
4
|
+
* Generated overlays (attention heatmaps, comparison maps, motor and story
|
|
5
|
+
* overlays) are full-resolution PNGs of 0.5-1 MB. A tool result has to stay
|
|
6
|
+
* under the host's ~150k-character cap (MAX_RESPONSE_SIZE), or the host swaps
|
|
7
|
+
* the whole result for a file pointer and the JSON beside the image arrives as
|
|
8
|
+
* unparseable text.
|
|
9
|
+
*
|
|
10
|
+
* Those two facts used to be resolved by dropping the picture: an overlay over
|
|
11
|
+
* a fixed budget was left out and named instead, so the tool whose finding IS
|
|
12
|
+
* the picture returned no picture. The PNG is not the only thing that can be
|
|
13
|
+
* shown. This fits a JPEG preview into whatever budget the JSON leaves, and the
|
|
14
|
+
* full-resolution PNG stays in the artifact store for artifact_fetch and the
|
|
15
|
+
* public URL.
|
|
16
|
+
*
|
|
17
|
+
* @copyright 2026 Alexandria Eden alexandria.shai.eden@gmail.com https://cbrowser.ai
|
|
18
|
+
* @license MIT
|
|
19
|
+
*/
|
|
20
|
+
import sharp from "sharp";
|
|
21
|
+
import { MAX_RESPONSE_SIZE } from "./screenshot-utils.js";
|
|
22
|
+
/** Tried at each size, best first. */
|
|
23
|
+
const QUALITY_LADDER = [80, 65, 50, 40, 30];
|
|
24
|
+
/** Tried in order once no quality fits at the current size. */
|
|
25
|
+
const SCALE_LADDER = [1, 0.75, 0.6, 0.5, 0.4, 0.3, 0.25, 0.2];
|
|
26
|
+
/** Narrower than this a page overlay shows nothing a reader can use. */
|
|
27
|
+
const MIN_PREVIEW_WIDTH = 160;
|
|
28
|
+
/** Base64 length of n bytes, exact. */
|
|
29
|
+
function base64Length(bytes) {
|
|
30
|
+
return 4 * Math.ceil(bytes / 3);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Re-encode an image as the largest, best-quality JPEG whose base64 fits in
|
|
34
|
+
* `budgetChars`: the quality ladder at full size first, then each downscale
|
|
35
|
+
* step. Returns null when even the smallest useful preview does not fit, or
|
|
36
|
+
* when the input cannot be decoded.
|
|
37
|
+
*/
|
|
38
|
+
export async function fitImageForInline(png, budgetChars) {
|
|
39
|
+
if (!Number.isFinite(budgetChars) || budgetChars <= 0)
|
|
40
|
+
return null;
|
|
41
|
+
let sourceWidth;
|
|
42
|
+
let sourceHeight;
|
|
43
|
+
try {
|
|
44
|
+
const meta = await sharp(png).metadata();
|
|
45
|
+
if (!meta.width || !meta.height)
|
|
46
|
+
return null;
|
|
47
|
+
sourceWidth = meta.width;
|
|
48
|
+
sourceHeight = meta.height;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
const lowest = QUALITY_LADDER[QUALITY_LADDER.length - 1];
|
|
54
|
+
for (const scale of SCALE_LADDER) {
|
|
55
|
+
const width = Math.max(1, Math.round(sourceWidth * scale));
|
|
56
|
+
const height = Math.max(1, Math.round(sourceHeight * scale));
|
|
57
|
+
if (scale < 1 && width < MIN_PREVIEW_WIDTH)
|
|
58
|
+
break;
|
|
59
|
+
// JPEG has no alpha channel. Flattened onto white explicitly, because the
|
|
60
|
+
// encoder's own default is black and a translucent overlay would darken.
|
|
61
|
+
const encode = (quality) => {
|
|
62
|
+
let pipeline = sharp(png).flatten({ background: "#ffffff" });
|
|
63
|
+
if (scale < 1)
|
|
64
|
+
pipeline = pipeline.resize(width, height);
|
|
65
|
+
return pipeline.jpeg({ quality }).toBuffer();
|
|
66
|
+
};
|
|
67
|
+
// The cheapest rung first: when even the lowest quality misses at this
|
|
68
|
+
// size, no higher quality can fit, so the size is skipped in one encode.
|
|
69
|
+
const floor = await encode(lowest);
|
|
70
|
+
if (base64Length(floor.length) > budgetChars)
|
|
71
|
+
continue;
|
|
72
|
+
for (const quality of QUALITY_LADDER) {
|
|
73
|
+
const buf = quality === lowest ? floor : await encode(quality);
|
|
74
|
+
if (base64Length(buf.length) <= budgetChars) {
|
|
75
|
+
return {
|
|
76
|
+
data: buf.toString("base64"),
|
|
77
|
+
mimeType: "image/jpeg",
|
|
78
|
+
width,
|
|
79
|
+
height,
|
|
80
|
+
sourceWidth,
|
|
81
|
+
sourceHeight,
|
|
82
|
+
quality,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Held back from the cap for the preview descriptions written into the JSON
|
|
91
|
+
* after the budget is set, and for the result envelope. Same margin the
|
|
92
|
+
* screenshot path keeps (screenshot-utils RESULT_MARGIN).
|
|
93
|
+
*/
|
|
94
|
+
export const PREVIEW_RESULT_MARGIN = 6_000;
|
|
95
|
+
/** Characters an image block costs beyond its data: {"type":"image","data":"","mimeType":"image/jpeg"} and a separator. */
|
|
96
|
+
const IMAGE_BLOCK_OVERHEAD = 64;
|
|
97
|
+
/** Serialized size of a set of content blocks, in bytes (never fewer than characters). */
|
|
98
|
+
export function contentSize(blocks) {
|
|
99
|
+
return Buffer.byteLength(JSON.stringify(blocks));
|
|
100
|
+
}
|
|
101
|
+
function describe(fitted, source, budget) {
|
|
102
|
+
if (!fitted) {
|
|
103
|
+
return {
|
|
104
|
+
inline: false,
|
|
105
|
+
note: `No preview fits in this result (${Math.max(0, budget)} characters left for it after the JSON), so this image is NOT in this response. Full resolution: ${source.fullResolution}.`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
const scaled = fitted.width !== fitted.sourceWidth || fitted.height !== fitted.sourceHeight;
|
|
109
|
+
return {
|
|
110
|
+
inline: true,
|
|
111
|
+
mimeType: fitted.mimeType,
|
|
112
|
+
size: `${fitted.width}x${fitted.height}`,
|
|
113
|
+
fullSize: `${fitted.sourceWidth}x${fitted.sourceHeight}`,
|
|
114
|
+
quality: fitted.quality,
|
|
115
|
+
base64Chars: fitted.data.length,
|
|
116
|
+
note: `The inline image is a ${fitted.width}x${fitted.height} JPEG preview (quality ${fitted.quality}) of the ${fitted.sourceWidth}x${fitted.sourceHeight} PNG, ${scaled ? "downscaled and " : ""}compressed to keep this result under the host's size cap. Full resolution: ${source.fullResolution}.`,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Build `[text, ...images]` for a result that carries generated overlays.
|
|
121
|
+
*
|
|
122
|
+
* The images share whatever the JSON leaves of the cap, split evenly with any
|
|
123
|
+
* share an earlier image did not use carried to the next. `annotate` receives
|
|
124
|
+
* the preview descriptions (by source name) and returns fields merged into the
|
|
125
|
+
* JSON, so the result states exactly what was attached.
|
|
126
|
+
*
|
|
127
|
+
* The cap is then MEASURED on the finished content, not trusted: if the
|
|
128
|
+
* descriptions pushed it over, the images are refitted into a smaller budget,
|
|
129
|
+
* and if nothing fits the result goes out with no images and says so.
|
|
130
|
+
*/
|
|
131
|
+
export async function buildContentWithPreviews(data, sources, annotate, opts = {}) {
|
|
132
|
+
const cap = opts.cap ?? MAX_RESPONSE_SIZE;
|
|
133
|
+
const textOf = (fields) => ({ type: "text", text: JSON.stringify({ ...data, ...fields }, null, 2) });
|
|
134
|
+
let reserve = PREVIEW_RESULT_MARGIN;
|
|
135
|
+
for (let attempt = 0; attempt < 3; attempt++) {
|
|
136
|
+
const base = contentSize([textOf({})]);
|
|
137
|
+
let remaining = cap - reserve - base - sources.length * IMAGE_BLOCK_OVERHEAD;
|
|
138
|
+
const blocks = [];
|
|
139
|
+
const previews = {};
|
|
140
|
+
for (let i = 0; i < sources.length; i++) {
|
|
141
|
+
const share = Math.floor(Math.max(0, remaining) / (sources.length - i));
|
|
142
|
+
const budget = opts.maxCharsPerImage !== undefined ? Math.min(share, opts.maxCharsPerImage) : share;
|
|
143
|
+
const fitted = await fitImageForInline(sources[i].png, budget);
|
|
144
|
+
previews[sources[i].name] = describe(fitted, sources[i], budget);
|
|
145
|
+
if (fitted) {
|
|
146
|
+
blocks.push({ type: "image", data: fitted.data, mimeType: fitted.mimeType });
|
|
147
|
+
remaining -= fitted.data.length;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
const content = [textOf(annotate(previews)), ...blocks];
|
|
151
|
+
const size = contentSize(content);
|
|
152
|
+
if (size <= cap)
|
|
153
|
+
return content;
|
|
154
|
+
reserve += size - cap + 1_000;
|
|
155
|
+
}
|
|
156
|
+
// Unreachable in practice (the margin dwarfs the descriptions), but the cap
|
|
157
|
+
// is a hard limit, so the fallback is a result with no images that says so.
|
|
158
|
+
const none = {};
|
|
159
|
+
for (const source of sources)
|
|
160
|
+
none[source.name] = describe(null, source, 0);
|
|
161
|
+
return [textOf(annotate(none))];
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=inline-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-image.js","sourceRoot":"","sources":["../../src/mcp-tools/inline-image.ts"],"names":[],"mappings":"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"}
|
package/dist/personas.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Persona, CognitiveTraits, CognitiveProfile, AttentionPatternType, DecisionStyleType, AgentPersona } from "./types.js";
|
|
7
7
|
import { AGENT_PERSONAS, isAgentPersona, getAgentPersona, listAgentPersonas, isAgentPersonaObject } from "./agent-personas.js";
|
|
8
|
+
/** Replace an account's loaded personas. Never visible outside that account's scope. */
|
|
9
|
+
export declare function registerAccountPersonas(accountId: number, personas: Persona[]): void;
|
|
8
10
|
export declare function loadCustomPersonas(): Record<string, Persona>;
|
|
9
11
|
/**
|
|
10
12
|
* Save a custom persona to disk.
|
|
@@ -202,6 +204,36 @@ export declare function suggestPersonaNames(requested: string, limit?: number):
|
|
|
202
204
|
* known name is not defining a persona, it is a typo. (2026-08-02)
|
|
203
205
|
*/
|
|
204
206
|
export declare function resolvePersonaOrThrow(name: string, syntheticTraits?: Record<string, number> | undefined): Persona | AccessibilityPersona | AgentPersona;
|
|
207
|
+
/**
|
|
208
|
+
* Resolve a persona name for a measuring tool, or refuse - the one resolver.
|
|
209
|
+
*
|
|
210
|
+
* Every tool that measures "as" a persona must call this BEFORE measuring.
|
|
211
|
+
* Three tools did their own resolution and each failed open differently:
|
|
212
|
+
* empathy_audit returned empathyScore 0 with errors: [] for a name that does not
|
|
213
|
+
* exist, attention_analysis handed the bare string to the relevance LLM, which
|
|
214
|
+
* role-played it (a one-letter typo of cognitive-adhd scored 81 against the real
|
|
215
|
+
* persona's 80), and attention_compare reported a nonexistent persona as more
|
|
216
|
+
* different from power-user than the deliberately extreme real pair. (2026-10-09)
|
|
217
|
+
*
|
|
218
|
+
* `aliases` maps shorthand to a roster name (empathy_audit's disability terms).
|
|
219
|
+
* When the name that measured differs from the one asked for, `resolvedFrom`
|
|
220
|
+
* says so; a silent substitution reads as the requested persona's result.
|
|
221
|
+
*/
|
|
222
|
+
export declare function resolvePersonaForTool(requested: string, aliases?: Record<string, string>): {
|
|
223
|
+
name: string;
|
|
224
|
+
persona: Persona | AccessibilityPersona | AgentPersona;
|
|
225
|
+
resolvedFrom?: string;
|
|
226
|
+
};
|
|
227
|
+
/**
|
|
228
|
+
* A cognitive persona for a journey engine, refusing names nothing knows.
|
|
229
|
+
*
|
|
230
|
+
* Journey and benchmark engines used `getPersona(name) || first-timer`, so a
|
|
231
|
+
* typo ran as first-timer and the result was reported under the typo. A name no
|
|
232
|
+
* registry knows now throws UnknownPersonaError. A name that IS known but is not
|
|
233
|
+
* a cognitive persona (an accessibility or agent persona) keeps the old
|
|
234
|
+
* first-timer substitution -- a named limit, not fixed here. (2026-10-09)
|
|
235
|
+
*/
|
|
236
|
+
export declare function getPersonaOrRefuse(name: string | undefined): Persona;
|
|
205
237
|
export declare function listAllPersonas(): string[];
|
|
206
238
|
/**
|
|
207
239
|
* Register personas at runtime without disk writes.
|
package/dist/personas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../src/personas.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEpI,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"personas.d.ts","sourceRoot":"","sources":["../src/personas.ts"],"names":[],"mappings":"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"}
|
package/dist/personas.js
CHANGED
|
@@ -14,7 +14,7 @@ import { join } from "path";
|
|
|
14
14
|
import { homedir } from "os";
|
|
15
15
|
import { applyTraitCorrelations } from "./persona-questionnaire.js";
|
|
16
16
|
import { AGENT_PERSONAS, isAgentPersona, getAgentPersona, listAgentPersonas, isAgentPersonaObject } from "./agent-personas.js";
|
|
17
|
-
import { scopedDataDir } from "./persona-scope.js";
|
|
17
|
+
import { scopedDataDir, scopedAccountId } from "./persona-scope.js";
|
|
18
18
|
import { TRAIT_DEFINITIONS, canonicalizeTraits } from "./trait-reference.js";
|
|
19
19
|
// ============================================================================
|
|
20
20
|
// Custom Personas Storage
|
|
@@ -45,6 +45,35 @@ function personasDirFor() {
|
|
|
45
45
|
* @since 16.17.0
|
|
46
46
|
*/
|
|
47
47
|
const RUNTIME_PERSONAS = {};
|
|
48
|
+
/**
|
|
49
|
+
* An account's custom personas, loaded from the CMS, keyed by account.
|
|
50
|
+
*
|
|
51
|
+
* These used to go into RUNTIME_PERSONAS, which is one map for the whole
|
|
52
|
+
* process and is checked FIRST by getAnyPersona. So once any account ran
|
|
53
|
+
* attention_analysis, its personas resolved by name for every other caller in
|
|
54
|
+
* that process - a cross-tenant read - and the trait vector a measurement read
|
|
55
|
+
* for a name depended on whether that had happened yet. list_cognitive_personas
|
|
56
|
+
* never consulted the map, so the roster and persona_lookup returned different
|
|
57
|
+
* records for alexa-eden (WM 0.25 vs 0.40, FOMO 0.25 vs 0.60). (2026-10-09)
|
|
58
|
+
*
|
|
59
|
+
* Stored process-wide because the load is expensive, but READ only through the
|
|
60
|
+
* request's persona scope, so request A can never see account B's personas. And
|
|
61
|
+
* consulted AFTER the on-disk store, which for a scoped request is that
|
|
62
|
+
* account's mirror of the same rows, so every reader agrees on one record.
|
|
63
|
+
*/
|
|
64
|
+
const ACCOUNT_PERSONAS = new Map();
|
|
65
|
+
/** Replace an account's loaded personas. Never visible outside that account's scope. */
|
|
66
|
+
export function registerAccountPersonas(accountId, personas) {
|
|
67
|
+
const byName = {};
|
|
68
|
+
for (const p of personas)
|
|
69
|
+
byName[p.name] = p;
|
|
70
|
+
ACCOUNT_PERSONAS.set(accountId, byName);
|
|
71
|
+
}
|
|
72
|
+
/** The current request's account personas; empty when unscoped. */
|
|
73
|
+
function scopedAccountPersonas() {
|
|
74
|
+
const id = scopedAccountId();
|
|
75
|
+
return id === undefined ? {} : ACCOUNT_PERSONAS.get(id) ?? {};
|
|
76
|
+
}
|
|
48
77
|
function ensurePersonasDir() {
|
|
49
78
|
if (!existsSync(DATA_DIR)) {
|
|
50
79
|
mkdirSync(DATA_DIR, { recursive: true });
|
|
@@ -1725,6 +1754,12 @@ export function getPersona(name) {
|
|
|
1725
1754
|
if (customPersonas[name]) {
|
|
1726
1755
|
return customPersonas[name];
|
|
1727
1756
|
}
|
|
1757
|
+
// Then the calling account's CMS personas, in the same order getAnyPersona
|
|
1758
|
+
// uses, so list_cognitive_personas and persona_lookup cannot disagree.
|
|
1759
|
+
const accountPersonas = scopedAccountPersonas();
|
|
1760
|
+
if (accountPersonas[name]) {
|
|
1761
|
+
return accountPersonas[name];
|
|
1762
|
+
}
|
|
1728
1763
|
// Fall back to built-ins
|
|
1729
1764
|
return BUILTIN_PERSONAS[name];
|
|
1730
1765
|
}
|
|
@@ -1734,8 +1769,9 @@ export function getPersona(name) {
|
|
|
1734
1769
|
export function listPersonas() {
|
|
1735
1770
|
const builtinNames = Object.keys(BUILTIN_PERSONAS);
|
|
1736
1771
|
const customNames = Object.keys(loadCustomPersonas());
|
|
1772
|
+
const accountNames = Object.keys(scopedAccountPersonas());
|
|
1737
1773
|
// Combine and dedupe (custom personas with same name as built-in take precedence in getPersona)
|
|
1738
|
-
return [...new Set([...builtinNames, ...customNames])];
|
|
1774
|
+
return [...new Set([...builtinNames, ...customNames, ...accountNames])];
|
|
1739
1775
|
}
|
|
1740
1776
|
/**
|
|
1741
1777
|
* List only custom persona names.
|
|
@@ -3330,6 +3366,13 @@ export function getAnyPersona(name) {
|
|
|
3330
3366
|
if (customPersonas[name]) {
|
|
3331
3367
|
return customPersonas[name];
|
|
3332
3368
|
}
|
|
3369
|
+
// 2b. The calling account's CMS personas (scoped; empty when unscoped).
|
|
3370
|
+
// Same position as in getPersona, so the roster and every measurement
|
|
3371
|
+
// resolve a name to the same record.
|
|
3372
|
+
const accountPersonas = scopedAccountPersonas();
|
|
3373
|
+
if (accountPersonas[name]) {
|
|
3374
|
+
return accountPersonas[name];
|
|
3375
|
+
}
|
|
3333
3376
|
// 3. Check built-in personas
|
|
3334
3377
|
if (BUILTIN_PERSONAS[name]) {
|
|
3335
3378
|
return BUILTIN_PERSONAS[name];
|
|
@@ -3442,6 +3485,49 @@ export function resolvePersonaOrThrow(name, syntheticTraits) {
|
|
|
3442
3485
|
}
|
|
3443
3486
|
throw new UnknownPersonaError(name, suggestPersonaNames(name));
|
|
3444
3487
|
}
|
|
3488
|
+
/**
|
|
3489
|
+
* Resolve a persona name for a measuring tool, or refuse - the one resolver.
|
|
3490
|
+
*
|
|
3491
|
+
* Every tool that measures "as" a persona must call this BEFORE measuring.
|
|
3492
|
+
* Three tools did their own resolution and each failed open differently:
|
|
3493
|
+
* empathy_audit returned empathyScore 0 with errors: [] for a name that does not
|
|
3494
|
+
* exist, attention_analysis handed the bare string to the relevance LLM, which
|
|
3495
|
+
* role-played it (a one-letter typo of cognitive-adhd scored 81 against the real
|
|
3496
|
+
* persona's 80), and attention_compare reported a nonexistent persona as more
|
|
3497
|
+
* different from power-user than the deliberately extreme real pair. (2026-10-09)
|
|
3498
|
+
*
|
|
3499
|
+
* `aliases` maps shorthand to a roster name (empathy_audit's disability terms).
|
|
3500
|
+
* When the name that measured differs from the one asked for, `resolvedFrom`
|
|
3501
|
+
* says so; a silent substitution reads as the requested persona's result.
|
|
3502
|
+
*/
|
|
3503
|
+
export function resolvePersonaForTool(requested, aliases) {
|
|
3504
|
+
const aliased = aliases?.[requested.toLowerCase()] ?? requested;
|
|
3505
|
+
const persona = getAnyPersona(aliased);
|
|
3506
|
+
if (!persona)
|
|
3507
|
+
throw new UnknownPersonaError(requested, suggestPersonaNames(requested));
|
|
3508
|
+
const name = persona.name ?? aliased;
|
|
3509
|
+
return name === requested ? { name, persona } : { name, persona, resolvedFrom: requested };
|
|
3510
|
+
}
|
|
3511
|
+
/**
|
|
3512
|
+
* A cognitive persona for a journey engine, refusing names nothing knows.
|
|
3513
|
+
*
|
|
3514
|
+
* Journey and benchmark engines used `getPersona(name) || first-timer`, so a
|
|
3515
|
+
* typo ran as first-timer and the result was reported under the typo. A name no
|
|
3516
|
+
* registry knows now throws UnknownPersonaError. A name that IS known but is not
|
|
3517
|
+
* a cognitive persona (an accessibility or agent persona) keeps the old
|
|
3518
|
+
* first-timer substitution -- a named limit, not fixed here. (2026-10-09)
|
|
3519
|
+
*/
|
|
3520
|
+
export function getPersonaOrRefuse(name) {
|
|
3521
|
+
if (!name)
|
|
3522
|
+
return BUILTIN_PERSONAS["first-timer"];
|
|
3523
|
+
const direct = getPersona(name);
|
|
3524
|
+
if (direct)
|
|
3525
|
+
return direct;
|
|
3526
|
+
const any = getAnyPersona(name);
|
|
3527
|
+
if (!any)
|
|
3528
|
+
throw new UnknownPersonaError(name, suggestPersonaNames(name));
|
|
3529
|
+
return getPersona(any.name) ?? BUILTIN_PERSONAS["first-timer"];
|
|
3530
|
+
}
|
|
3445
3531
|
export function listAllPersonas() {
|
|
3446
3532
|
const runtimeNames = Object.keys(RUNTIME_PERSONAS);
|
|
3447
3533
|
const builtinNames = Object.keys(BUILTIN_PERSONAS);
|
|
@@ -3449,8 +3535,9 @@ export function listAllPersonas() {
|
|
|
3449
3535
|
const emotionalNames = Object.keys(EMOTIONAL_PERSONAS);
|
|
3450
3536
|
const agentNames = Object.keys(AGENT_PERSONAS);
|
|
3451
3537
|
const customNames = Object.keys(loadCustomPersonas());
|
|
3538
|
+
const accountNames = Object.keys(scopedAccountPersonas());
|
|
3452
3539
|
// Combine and dedupe (runtime first for Enterprise priority)
|
|
3453
|
-
return [...new Set([...runtimeNames, ...builtinNames, ...accessibilityNames, ...emotionalNames, ...agentNames, ...customNames])];
|
|
3540
|
+
return [...new Set([...runtimeNames, ...builtinNames, ...accessibilityNames, ...emotionalNames, ...agentNames, ...customNames, ...accountNames])];
|
|
3454
3541
|
}
|
|
3455
3542
|
/**
|
|
3456
3543
|
* Register personas at runtime without disk writes.
|