@tangle-network/browser-agent-driver 0.34.0 → 0.35.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/dist/browser-launch.d.ts +6 -0
- package/dist/browser-launch.d.ts.map +1 -1
- package/dist/browser-launch.js +3 -0
- package/dist/browser-launch.js.map +1 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +37 -12
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -2
- package/dist/config.js.map +1 -1
- package/dist/design/audit/evolve/agent.d.ts.map +1 -1
- package/dist/design/audit/evolve/agent.js +3 -2
- package/dist/design/audit/evolve/agent.js.map +1 -1
- package/dist/design/audit/reference/generate/generator.d.ts.map +1 -1
- package/dist/design/audit/reference/generate/generator.js +7 -1
- package/dist/design/audit/reference/generate/generator.js.map +1 -1
- package/dist/design/audit/reference/generate/parse.d.ts.map +1 -1
- package/dist/design/audit/reference/generate/parse.js +54 -14
- package/dist/design/audit/reference/generate/parse.js.map +1 -1
- package/dist/design/audit/reference/generate/prompt.d.ts.map +1 -1
- package/dist/design/audit/reference/generate/prompt.js +67 -19
- package/dist/design/audit/reference/generate/prompt.js.map +1 -1
- package/dist/design/audit/reference/judge/prompt.d.ts.map +1 -1
- package/dist/design/audit/reference/judge/prompt.js +15 -3
- package/dist/design/audit/reference/judge/prompt.js.map +1 -1
- package/dist/ffmpeg-availability.d.ts +19 -0
- package/dist/ffmpeg-availability.d.ts.map +1 -0
- package/dist/ffmpeg-availability.js +74 -0
- package/dist/ffmpeg-availability.js.map +1 -0
- package/dist/showcase/index.d.ts.map +1 -1
- package/dist/showcase/index.js +14 -3
- package/dist/showcase/index.js.map +1 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +2 -1
- package/dist/test-runner.js.map +1 -1
- package/package.json +18 -4
|
@@ -17,13 +17,43 @@
|
|
|
17
17
|
const fail = (reason) => ({ ok: false, reason });
|
|
18
18
|
const isRecord = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
19
19
|
const isString = (v) => typeof v === 'string';
|
|
20
|
-
const isFiniteNumber = (v) => typeof v === 'number' && Number.isFinite(v);
|
|
21
20
|
const isStringArray = (v) => Array.isArray(v) && v.every(isString);
|
|
22
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Coerce a numeric value, tolerating the numeric STRINGS many models emit
|
|
23
|
+
* (`"1.25"`, `"16px"`). Same value, just typed — no fabrication. Returns
|
|
24
|
+
* undefined when there's no leading finite number to read.
|
|
25
|
+
*/
|
|
26
|
+
const coerceNumber = (v) => {
|
|
27
|
+
if (typeof v === 'number')
|
|
28
|
+
return Number.isFinite(v) ? v : undefined;
|
|
29
|
+
if (typeof v === 'string') {
|
|
30
|
+
const n = Number.parseFloat(v.trim());
|
|
31
|
+
return Number.isFinite(n) ? n : undefined;
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
};
|
|
35
|
+
/** Coerce an array of numbers, accepting numeric strings per element.
|
|
36
|
+
* Returns undefined if the input isn't an array or any element won't coerce. */
|
|
37
|
+
const coerceNumberArray = (v) => {
|
|
38
|
+
if (!Array.isArray(v))
|
|
39
|
+
return undefined;
|
|
40
|
+
const out = [];
|
|
41
|
+
for (const x of v) {
|
|
42
|
+
const n = coerceNumber(x);
|
|
43
|
+
if (n === undefined)
|
|
44
|
+
return undefined;
|
|
45
|
+
out.push(n);
|
|
46
|
+
}
|
|
47
|
+
return out;
|
|
48
|
+
};
|
|
23
49
|
/**
|
|
24
50
|
* Pull the outermost JSON object out of a model response. Tolerates a leading
|
|
25
51
|
* markdown fence and any prose preamble/suffix the gateway wraps around the
|
|
26
|
-
* object.
|
|
52
|
+
* object. Distinguishes three cases so the caller can report each truthfully:
|
|
53
|
+
* - `{ json }` — an object literal was found;
|
|
54
|
+
* - `{ truncated }` — an object was OPENED (`{`) but never closed (`}`), i.e.
|
|
55
|
+
* the model ran out of output budget mid-object;
|
|
56
|
+
* - `null` — no object literal at all (empty or non-JSON output).
|
|
27
57
|
*/
|
|
28
58
|
function extractJsonObject(raw) {
|
|
29
59
|
let text = raw.trim();
|
|
@@ -31,23 +61,27 @@ function extractJsonObject(raw) {
|
|
|
31
61
|
text = text.replace(/^```(?:json)?\s*/i, '').replace(/```\s*$/i, '').trim();
|
|
32
62
|
}
|
|
33
63
|
const first = text.indexOf('{');
|
|
34
|
-
|
|
35
|
-
if (first < 0 || last <= first)
|
|
64
|
+
if (first < 0)
|
|
36
65
|
return null;
|
|
37
|
-
|
|
66
|
+
const last = text.lastIndexOf('}');
|
|
67
|
+
if (last <= first)
|
|
68
|
+
return { truncated: true };
|
|
69
|
+
return { json: text.slice(first, last + 1) };
|
|
38
70
|
}
|
|
39
71
|
function parseTypeSystem(raw) {
|
|
40
72
|
if (!isRecord(raw))
|
|
41
73
|
return 'typeSystem must be an object';
|
|
42
74
|
if (!isStringArray(raw.families) || raw.families.length === 0)
|
|
43
75
|
return 'typeSystem.families must be a non-empty string[]';
|
|
44
|
-
|
|
76
|
+
const scalePx = coerceNumberArray(raw.scalePx);
|
|
77
|
+
if (!scalePx || scalePx.length === 0)
|
|
45
78
|
return 'typeSystem.scalePx must be a non-empty number[]';
|
|
46
|
-
|
|
79
|
+
const ratio = coerceNumber(raw.ratio);
|
|
80
|
+
if (ratio === undefined)
|
|
47
81
|
return 'typeSystem.ratio must be a number';
|
|
48
82
|
if (!isString(raw.rationale))
|
|
49
83
|
return 'typeSystem.rationale must be a string';
|
|
50
|
-
return { families: raw.families, scalePx
|
|
84
|
+
return { families: raw.families, scalePx, ratio, rationale: raw.rationale };
|
|
51
85
|
}
|
|
52
86
|
function parseColorSystem(raw) {
|
|
53
87
|
if (!isRecord(raw))
|
|
@@ -75,13 +109,14 @@ function parseColorSystem(raw) {
|
|
|
75
109
|
function parseMotionSpec(raw) {
|
|
76
110
|
if (!isRecord(raw))
|
|
77
111
|
return 'motionSpec must be an object';
|
|
78
|
-
|
|
112
|
+
const durationsMs = coerceNumberArray(raw.durationsMs);
|
|
113
|
+
if (!durationsMs)
|
|
79
114
|
return 'motionSpec.durationsMs must be a number[]';
|
|
80
115
|
if (!isStringArray(raw.easings))
|
|
81
116
|
return 'motionSpec.easings must be a string[]';
|
|
82
117
|
if (!isStringArray(raw.cues))
|
|
83
118
|
return 'motionSpec.cues must be a string[]';
|
|
84
|
-
return { durationsMs
|
|
119
|
+
return { durationsMs, easings: raw.easings, cues: raw.cues };
|
|
85
120
|
}
|
|
86
121
|
function parseCopy(raw) {
|
|
87
122
|
if (!Array.isArray(raw))
|
|
@@ -116,9 +151,14 @@ export function validateGrounding(d, allowedIds) {
|
|
|
116
151
|
* returns a `DirectionParseError`, never a partial or invented direction.
|
|
117
152
|
*/
|
|
118
153
|
export function parseDirection(raw, allowedIds) {
|
|
119
|
-
const
|
|
120
|
-
if (
|
|
121
|
-
return fail('no JSON object found in model output');
|
|
154
|
+
const extracted = extractJsonObject(raw);
|
|
155
|
+
if (extracted === null) {
|
|
156
|
+
return fail(raw.trim().length === 0 ? 'model returned empty output' : 'no JSON object found in model output');
|
|
157
|
+
}
|
|
158
|
+
if ('truncated' in extracted) {
|
|
159
|
+
return fail('model output truncated — incomplete JSON object (raise the generation token budget for reasoning models)');
|
|
160
|
+
}
|
|
161
|
+
const json = extracted.json;
|
|
122
162
|
let parsed;
|
|
123
163
|
try {
|
|
124
164
|
parsed = JSON.parse(json);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAWH,MAAM,IAAI,GAAG,CAAC,MAAc,EAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AAE9E,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAgC,EAAE,CAC5D,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AAE1D,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAA;AAEnE,MAAM,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGzE,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGzE,iDAAiD;AACjD,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAsJD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,iBAAiB,EACtB,QAAQ,EAAE,eAAe,EACzB,IAAI,GAAE,sBAA2B,GAChC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAsBlC"}
|
|
@@ -27,25 +27,48 @@ const truncate = (s, max) => s.length > max ? `${s.slice(0, max - 1)}…` : s;
|
|
|
27
27
|
* half of every generation call is byte-identical run-to-run.
|
|
28
28
|
*/
|
|
29
29
|
const GENERATION_SYSTEM_PROMPT = [
|
|
30
|
-
'You are a
|
|
31
|
-
'
|
|
32
|
-
'
|
|
30
|
+
'You are a senior product designer improving a REAL page so its actual users',
|
|
31
|
+
'accomplish their tasks faster and more easily. A named world-class reference',
|
|
32
|
+
'is provided ONLY as a source of visual craft — type, colour, spacing rhythm,',
|
|
33
|
+
'and motion. It is NOT a template: never copy its structure, layout archetype,',
|
|
34
|
+
'or content into the page. Judge your own work by the page\'s JOB, not by how',
|
|
35
|
+
'decorative it looks.',
|
|
33
36
|
'',
|
|
34
|
-
'Hard rules:',
|
|
35
|
-
'-
|
|
36
|
-
'
|
|
37
|
-
'
|
|
38
|
-
'-
|
|
39
|
-
'
|
|
40
|
-
'
|
|
41
|
-
'
|
|
42
|
-
'-
|
|
43
|
-
'
|
|
44
|
-
'
|
|
45
|
-
'
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
37
|
+
'Hard rules, in PRIORITY ORDER (a lower rule never justifies breaking a higher one):',
|
|
38
|
+
'- TASK FIRST. Design for the page\'s primary users and the job in its INTENT',
|
|
39
|
+
' below. Every change must make that job easier. Aesthetics serve the task —',
|
|
40
|
+
' never sacrifice the task to look more like the reference.',
|
|
41
|
+
'- PRESERVE FUNCTIONAL AFFORDANCES. Keep every way users find and move through',
|
|
42
|
+
' the page: navigation, table of contents, menus, breadcrumbs, search,',
|
|
43
|
+
' filters, pagination, tabs. Offer equivalent-or-better wayfinding — NEVER',
|
|
44
|
+
' delete navigation to look cleaner.',
|
|
45
|
+
'- PRESERVE DENSITY WHERE IT IS THE VALUE. For information-dense or reference',
|
|
46
|
+
' pages (docs, dashboards, status/console, data tables, lists, feeds,',
|
|
47
|
+
' aggregators) density and scannability ARE the craft. Keep at least as many',
|
|
48
|
+
' items / rows / sections visible as the original; do not trade content for',
|
|
49
|
+
' whitespace, hero banners, or marketing-style cards. The reference informs',
|
|
50
|
+
' polish WITHIN that density, never a reduction of it.',
|
|
51
|
+
'- RIGHT-SIZE THE INTERVENTION. If the page already serves its job well, the',
|
|
52
|
+
' best redesign is surgical: refine type, colour, spacing, and hierarchy while',
|
|
53
|
+
' keeping the structure and affordances. NEVER turn one kind of page into',
|
|
54
|
+
' another — a docs page or a dashboard must not become a landing page.',
|
|
55
|
+
'- Ground the VISUAL CRAFT in the named REFERENCE EXEMPLAR and echo its id in',
|
|
56
|
+
' `groundedInExemplarIds`. NEVER invent, guess, or cite an exemplar id you were',
|
|
57
|
+
' not given. Borrow its craft, never its content or structure.',
|
|
58
|
+
'- Use only the page\'s OWN content. NEVER fabricate content it does not have —',
|
|
59
|
+
' no invented metrics, counts, dates, statuses, activity feeds, or sections.',
|
|
60
|
+
' You are given the page\'s design DNA + intent, NOT its full text or data, so',
|
|
61
|
+
' do not assert specific values (numbers, percentages, dates, names) you were',
|
|
62
|
+
' not given; refer to such content by its role. If the page is genuinely',
|
|
63
|
+
' sparse, keep the redesign proportionally restrained rather than manufacturing',
|
|
64
|
+
' content to fill a denser layout.',
|
|
65
|
+
'- Specify concrete DESIGN values: hex colours, px type sizes, ms durations.',
|
|
66
|
+
' Revised copy may restyle the page\'s existing wording but must never invent',
|
|
67
|
+
' facts or use placeholders like "TODO" or "lorem ipsum".',
|
|
68
|
+
'- The ASCII layout must be a real box-drawing diagram of the proposed structure,',
|
|
69
|
+
' top to bottom, and must show the preserved navigation / affordances.',
|
|
70
|
+
'- Preserve or improve the page\'s measured accessibility (contrast, a11y); never',
|
|
71
|
+
' propose a change that would regress it.',
|
|
49
72
|
'- Output STRICT JSON only: a single object matching the OUTPUT CONTRACT, with',
|
|
50
73
|
' no surrounding prose and no markdown code fences.',
|
|
51
74
|
].join('\n');
|
|
@@ -64,7 +87,8 @@ function renderExemplarBlock(hit, maxRefChars) {
|
|
|
64
87
|
const e = hit.exemplar;
|
|
65
88
|
const reasons = hit.reasons.length > 0 ? hit.reasons.join('; ') : 'nearest aesthetic neighbour';
|
|
66
89
|
return [
|
|
67
|
-
'REFERENCE EXEMPLAR (
|
|
90
|
+
'REFERENCE EXEMPLAR (borrow its VISUAL CRAFT only — type, colour, spacing,',
|
|
91
|
+
'motion. Do NOT copy its structure, information architecture, or content.)',
|
|
68
92
|
`id: ${e.id} source: ${e.source} type: ${e.pageType}`,
|
|
69
93
|
`url: ${e.url}`,
|
|
70
94
|
`job-to-be-done: ${e.jobToBeDone}`,
|
|
@@ -73,6 +97,29 @@ function renderExemplarBlock(hit, maxRefChars) {
|
|
|
73
97
|
summarizeDNA(e.dna, { maxChars: maxRefChars }),
|
|
74
98
|
].join('\n');
|
|
75
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* The per-page FUNCTIONAL CONTRACT — what the redesign must preserve, derived
|
|
102
|
+
* from the page's own measured DNA (not a hardcoded page-type table). Navigation
|
|
103
|
+
* affordances and information density are user value on functional pages; the
|
|
104
|
+
* generator must keep them. Density gating is data-driven off the measured
|
|
105
|
+
* `layout.density`, so a genuinely sparse page is never forced to stay dense.
|
|
106
|
+
*/
|
|
107
|
+
function renderFunctionalContract(ctx) {
|
|
108
|
+
const dna = ctx.dna;
|
|
109
|
+
const nav = dna.components?.nav ?? 0;
|
|
110
|
+
const density = dna.layout?.density ?? 'balanced';
|
|
111
|
+
const archetype = dna.layout?.archetype ?? 'unknown';
|
|
112
|
+
const lines = [
|
|
113
|
+
'FUNCTIONAL CONTRACT (preserve — the redesign must not regress these):',
|
|
114
|
+
`page type: ${ctx.classification.type}; measured layout density: ${density}; archetype: ${archetype}; navigation affordances detected: ${nav}.`,
|
|
115
|
+
];
|
|
116
|
+
if (nav > 0)
|
|
117
|
+
lines.push(`- Keep all ${nav} navigation / wayfinding affordance(s) (menus, table of contents, breadcrumbs, search, tabs). Provide equivalent-or-better navigation; do not drop any.`);
|
|
118
|
+
if (density === 'dense')
|
|
119
|
+
lines.push('- This page is DENSE: its information density is the value. Keep at least as many items / rows / sections visible as today. Do not trade content for whitespace or hero sections.');
|
|
120
|
+
lines.push('- Improve craft within this structure. Do not convert this page into a different kind of page.');
|
|
121
|
+
return lines.join('\n');
|
|
122
|
+
}
|
|
76
123
|
function renderConstraints(ctx) {
|
|
77
124
|
const m = ctx.measurements;
|
|
78
125
|
if (!m)
|
|
@@ -109,6 +156,7 @@ export function buildDirectionPrompt(ctx, exemplar, opts = {}) {
|
|
|
109
156
|
const maxRefChars = opts.maxRefChars ?? DEFAULT_MAX_REF_CHARS;
|
|
110
157
|
const sections = [
|
|
111
158
|
renderPageBlock(ctx, maxRefChars),
|
|
159
|
+
renderFunctionalContract(ctx),
|
|
112
160
|
renderExemplarBlock(exemplar, maxRefChars),
|
|
113
161
|
];
|
|
114
162
|
const constraints = renderConstraints(ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAY/C,MAAM,qBAAqB,GAAG,GAAG,CAAA;AACjC,+EAA+E;AAC/E,wEAAwE;AACxE,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAE7B,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAClD,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhD;;;GAGG;AACH,MAAM,wBAAwB,GAAG;IAC/B,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/generate/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/judge/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,iBAAiB,CAAA;AAEhG,2EAA2E;AAC3E,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/design/audit/reference/judge/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,iBAAiB,CAAA;AAEhG,2EAA2E;AAC3E,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAmF9B;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAUvG;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAatG"}
|
|
@@ -29,6 +29,15 @@ const DIMENSION_GUIDANCE = {
|
|
|
29
29
|
};
|
|
30
30
|
const ANTI_POSITION_BIAS = 'SLOT A and SLOT B are presented in a randomized order that carries NO information. ' +
|
|
31
31
|
'Do not favour a design because of its slot — judge only on merit.';
|
|
32
|
+
// Both pairwise subjects redesign the SAME real page, so "richer" content is not
|
|
33
|
+
// a virtue when it is fabricated. Without this, the judge rewards a direction for
|
|
34
|
+
// importing the reference's content (e.g. an invented activity feed) — exactly
|
|
35
|
+
// the failure that inflates sparse-page redesigns. Fidelity to the page's real
|
|
36
|
+
// content is the floor; "fit to the reference" is aesthetic, not content, fit.
|
|
37
|
+
const CONTENT_FIDELITY = 'Both directions redesign the SAME real page. Judge them as faithful redesigns of that page, not as new pages. ' +
|
|
38
|
+
'A direction that invents content the page does not have — fabricated metrics, counts, dates, statuses, activity ' +
|
|
39
|
+
'feeds, or whole sections of made-up data — is LESS faithful and must be penalised, never rewarded as "richer". ' +
|
|
40
|
+
'"Fit to the reference" means matching its visual craft (type, colour, motion, spacing, hierarchy), not importing its content.';
|
|
32
41
|
const RESPONSE_CONTRACT = [
|
|
33
42
|
'Respond with ONLY a JSON object and no surrounding prose:',
|
|
34
43
|
'{"winner": "A" | "B" | "tie", "confidence": <number 0-1>, "reasons": [<short strings>]}',
|
|
@@ -58,8 +67,10 @@ function joinSections(sections) {
|
|
|
58
67
|
}
|
|
59
68
|
function pairwiseSystem() {
|
|
60
69
|
return [
|
|
61
|
-
'You are a
|
|
62
|
-
'
|
|
70
|
+
'You are a senior product designer choosing which redesign direction serves the page\'s real users better at their tasks.',
|
|
71
|
+
'Judge in PRIORITY ORDER: (1) TASK FITNESS — does it make the primary user\'s job easier and faster? (2) FUNCTIONAL PRESERVATION — a direction that removes navigation or wayfinding, reduces information density, or shows fewer items/sections than the page needs is WORSE for users, however polished it looks. (3) VISUAL CRAFT — type, colour, spacing rhythm, hierarchy, polish.',
|
|
72
|
+
'"Fit to the reference" counts only as visual craft; never reward a direction for importing the reference\'s structure or content.',
|
|
73
|
+
CONTENT_FIDELITY,
|
|
63
74
|
ANTI_POSITION_BIAS,
|
|
64
75
|
RESPONSE_CONTRACT,
|
|
65
76
|
'Use "tie" only when the two are genuinely indistinguishable in quality.',
|
|
@@ -70,7 +81,8 @@ function qualitySystem(dimension) {
|
|
|
70
81
|
? ` Focus ONLY on the "${dimension}" dimension: ${DIMENSION_GUIDANCE[dimension]}.`
|
|
71
82
|
: '';
|
|
72
83
|
return [
|
|
73
|
-
`You are a
|
|
84
|
+
`You are a senior product designer and design critic judging which of two designs is closer to world-class quality FOR ITS USERS' TASKS.${focus}`,
|
|
85
|
+
'Reward fitness for the page\'s job — task efficiency, preserved navigation, and appropriate information density — not decoration. A design that looks cleaner by removing wayfinding or content the users need is worse, not better.',
|
|
74
86
|
ANTI_POSITION_BIAS,
|
|
75
87
|
RESPONSE_CONTRACT,
|
|
76
88
|
'Use "tie" only when the two are genuinely on par.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/judge/prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAOH,gFAAgF;AAChF,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,kBAAkB,GAA8B;IACpD,cAAc,EAAE,oEAAoE;IACpF,YAAY,EAAE,8EAA8E;IAC5F,aAAa,EAAE,6DAA6D;IAC5E,QAAQ,EAAE,4EAA4E;IACtF,UAAU,EAAE,+DAA+D;CAC5E,CAAA;AAED,MAAM,kBAAkB,GACtB,qFAAqF;IACrF,mEAAmE,CAAA;AAErE,MAAM,iBAAiB,GAAG;IACxB,2DAA2D;IAC3D,yFAAyF;CAC1F,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,SAAS,eAAe,CAAC,KAAqB,EAAE,IAAU;IACxD,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,GAAsB;IAC7C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,OAAO,cAAc,GAAG,CAAC,IAAI,4DAA4D,GAAG,CAAC,OAAO,EAAE,CAAA;AACxG,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IACpB,OAAO,sBAAsB,IAAI,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,aAAa,CAAC,KAAgB,EAAE,CAAe;IACtD,MAAM,KAAK,GAAG,CAAC,QAAQ,KAAK,uBAAuB,CAAC,CAAA;IACpD,IAAI,CAAC,CAAC,gBAAgB;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAA;IACtD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,YAAY,CAAC,QAAkB;IACtC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,cAAc;IACrB,OAAO;QACL,
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../../../src/design/audit/reference/judge/prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether Playwright/patchright's video-recording ffmpeg binary is present.
|
|
3
|
+
*
|
|
4
|
+
* patchright resolves ffmpeg from `<browsersPath>/ffmpeg-<rev>/<binary>` — the
|
|
5
|
+
* same `PLAYWRIGHT_BROWSERS_PATH` root as the browsers. The Tangle sandbox's
|
|
6
|
+
* agent-thin runtime seeds that warm cache with Chromium but NOT ffmpeg, so a
|
|
7
|
+
* context opened with `recordVideo` throws at page creation
|
|
8
|
+
* ("Executable doesn't exist at .../ffmpeg-<rev>/ffmpeg-linux") and kills the
|
|
9
|
+
* whole run. Detecting the absence lets the caller drop `recordVideo` and still
|
|
10
|
+
* produce report + screenshots + trace.
|
|
11
|
+
*
|
|
12
|
+
* Bias toward `true`: we only return `false` when we can POSITIVELY confirm the
|
|
13
|
+
* browsers directory exists but contains no ffmpeg (the exact sandbox case). On
|
|
14
|
+
* any uncertainty — path unset/unresolvable/missing, or a probe error — we
|
|
15
|
+
* return `true` so normal dev/CI, where `playwright install` provides ffmpeg,
|
|
16
|
+
* keeps recording video unchanged.
|
|
17
|
+
*/
|
|
18
|
+
export declare function isPlaywrightFfmpegAvailable(env?: NodeJS.ProcessEnv): boolean;
|
|
19
|
+
//# sourceMappingURL=ffmpeg-availability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffmpeg-availability.d.ts","sourceRoot":"","sources":["../src/ffmpeg-availability.ts"],"names":[],"mappings":"AAoCA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAkBzF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
/**
|
|
5
|
+
* Platform-specific filename of Playwright/patchright's bundled ffmpeg binary
|
|
6
|
+
* (the one its video recorder shells out to). Confirmed layout:
|
|
7
|
+
* `<browsersPath>/ffmpeg-<rev>/ffmpeg-linux`.
|
|
8
|
+
*/
|
|
9
|
+
function ffmpegBinaryName(platform = process.platform) {
|
|
10
|
+
if (platform === 'win32')
|
|
11
|
+
return 'ffmpeg-win64.exe';
|
|
12
|
+
if (platform === 'darwin')
|
|
13
|
+
return 'ffmpeg-mac';
|
|
14
|
+
return 'ffmpeg-linux';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Resolve the browsers cache directory Playwright/patchright downloads into.
|
|
18
|
+
* Returns null when it can't be resolved cheaply (e.g. the special
|
|
19
|
+
* `PLAYWRIGHT_BROWSERS_PATH=0` "store inside the package" mode).
|
|
20
|
+
*/
|
|
21
|
+
function resolveBrowsersPath(env) {
|
|
22
|
+
const explicit = env.PLAYWRIGHT_BROWSERS_PATH;
|
|
23
|
+
if (explicit === '0')
|
|
24
|
+
return null;
|
|
25
|
+
if (explicit)
|
|
26
|
+
return explicit;
|
|
27
|
+
const home = os.homedir();
|
|
28
|
+
switch (process.platform) {
|
|
29
|
+
case 'win32':
|
|
30
|
+
return path.join(env.LOCALAPPDATA ?? path.join(home, 'AppData', 'Local'), 'ms-playwright');
|
|
31
|
+
case 'darwin':
|
|
32
|
+
return path.join(home, 'Library', 'Caches', 'ms-playwright');
|
|
33
|
+
default:
|
|
34
|
+
return path.join(home, '.cache', 'ms-playwright');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether Playwright/patchright's video-recording ffmpeg binary is present.
|
|
39
|
+
*
|
|
40
|
+
* patchright resolves ffmpeg from `<browsersPath>/ffmpeg-<rev>/<binary>` — the
|
|
41
|
+
* same `PLAYWRIGHT_BROWSERS_PATH` root as the browsers. The Tangle sandbox's
|
|
42
|
+
* agent-thin runtime seeds that warm cache with Chromium but NOT ffmpeg, so a
|
|
43
|
+
* context opened with `recordVideo` throws at page creation
|
|
44
|
+
* ("Executable doesn't exist at .../ffmpeg-<rev>/ffmpeg-linux") and kills the
|
|
45
|
+
* whole run. Detecting the absence lets the caller drop `recordVideo` and still
|
|
46
|
+
* produce report + screenshots + trace.
|
|
47
|
+
*
|
|
48
|
+
* Bias toward `true`: we only return `false` when we can POSITIVELY confirm the
|
|
49
|
+
* browsers directory exists but contains no ffmpeg (the exact sandbox case). On
|
|
50
|
+
* any uncertainty — path unset/unresolvable/missing, or a probe error — we
|
|
51
|
+
* return `true` so normal dev/CI, where `playwright install` provides ffmpeg,
|
|
52
|
+
* keeps recording video unchanged.
|
|
53
|
+
*/
|
|
54
|
+
export function isPlaywrightFfmpegAvailable(env = process.env) {
|
|
55
|
+
try {
|
|
56
|
+
const base = resolveBrowsersPath(env);
|
|
57
|
+
// Uncertain root → don't disable video.
|
|
58
|
+
if (!base || !fs.existsSync(base))
|
|
59
|
+
return true;
|
|
60
|
+
const binary = ffmpegBinaryName();
|
|
61
|
+
for (const entry of fs.readdirSync(base)) {
|
|
62
|
+
if (entry.startsWith('ffmpeg-') && fs.existsSync(path.join(base, entry, binary))) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Browsers dir present but no ffmpeg — the agent-thin sandbox case.
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Never let detection failure break browser launch.
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=ffmpeg-availability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ffmpeg-availability.js","sourceRoot":"","sources":["../src/ffmpeg-availability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,WAA4B,OAAO,CAAC,QAAQ;IACpE,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,kBAAkB,CAAC;IACpD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,YAAY,CAAC;IAC/C,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,GAAsB;IACjD,MAAM,QAAQ,GAAG,GAAG,CAAC,wBAAwB,CAAC;IAC9C,IAAI,QAAQ,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7F,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAC/D;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9E,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACtC,wCAAwC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAE/C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;gBACjF,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,oEAAoE;QACpE,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EACV,cAAc,EAGd,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EACV,cAAc,EAGd,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAQnB,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CA8IjF;AAID;;;GAGG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0DtF;AAmHD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA"}
|
package/dist/showcase/index.js
CHANGED
|
@@ -16,6 +16,7 @@ import { chromium } from 'playwright';
|
|
|
16
16
|
import { captureWithHighlight, captureWithCrop } from './annotate.js';
|
|
17
17
|
import { assembleGif } from './assemble.js';
|
|
18
18
|
import { revealHiddenContent } from '../design/page-interaction.js';
|
|
19
|
+
import { isPlaywrightFfmpegAvailable } from '../ffmpeg-availability.js';
|
|
19
20
|
// ── Main Entry ──
|
|
20
21
|
export async function runShowcase(config) {
|
|
21
22
|
const startTime = Date.now();
|
|
@@ -25,14 +26,24 @@ export async function runShowcase(config) {
|
|
|
25
26
|
const quality = config.output?.quality ?? 90;
|
|
26
27
|
fs.mkdirSync(outputDir, { recursive: true });
|
|
27
28
|
const viewport = config.viewport ?? { width: 1440, height: 900 };
|
|
29
|
+
// Video recording shells out to Playwright's bundled ffmpeg at newPage(); a
|
|
30
|
+
// runtime whose browser cache ships Chromium but not ffmpeg (e.g. the Tangle
|
|
31
|
+
// sandbox's agent-thin image) would crash the whole capture. Drop webm video
|
|
32
|
+
// when ffmpeg is absent and keep the screenshots/GIF — same graceful degrade
|
|
33
|
+
// as `bad run`. See ffmpeg-availability.ts.
|
|
34
|
+
const wantsVideo = formats.includes('webm');
|
|
35
|
+
const recordVideo = wantsVideo && isPlaywrightFfmpegAvailable();
|
|
36
|
+
if (wantsVideo && !recordVideo) {
|
|
37
|
+
console.warn(' ⚠ ffmpeg not found in the Playwright browser cache; skipping webm video (screenshots and GIF are still captured).');
|
|
38
|
+
}
|
|
28
39
|
const browser = await chromium.launch({ headless: config.headless ?? true });
|
|
29
40
|
const context = await browser.newContext({
|
|
30
41
|
viewport,
|
|
31
42
|
deviceScaleFactor: scale,
|
|
32
43
|
colorScheme: config.colorScheme,
|
|
33
44
|
storageState: config.storageState ? JSON.parse(fs.readFileSync(config.storageState, 'utf-8')) : undefined,
|
|
34
|
-
// Record video if webm format requested
|
|
35
|
-
...(
|
|
45
|
+
// Record video if webm format requested and ffmpeg is available
|
|
46
|
+
...(recordVideo ? { recordVideo: { dir: path.join(outputDir, '_video'), size: viewport } } : {}),
|
|
36
47
|
});
|
|
37
48
|
const page = await context.newPage();
|
|
38
49
|
const frames = [];
|
|
@@ -89,7 +100,7 @@ export async function runShowcase(config) {
|
|
|
89
100
|
}
|
|
90
101
|
// Get video recording path if available
|
|
91
102
|
let videoPath;
|
|
92
|
-
if (
|
|
103
|
+
if (recordVideo) {
|
|
93
104
|
await page.close(); // Must close page to flush video
|
|
94
105
|
const videoFile = await context.pages()[0]?.video()?.path().catch(() => undefined);
|
|
95
106
|
// Page already closed, try getting video from context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/showcase/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/test-runner.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { existsSync, readFileSync, unlinkSync } from 'node:fs';
|
|
8
8
|
import { tmpdir } from 'node:os';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
|
+
import { resolveDefaultProvider } from './provider-defaults.js';
|
|
10
11
|
import { TEST_SUITE_SCHEMA_VERSION } from './types.js';
|
|
11
12
|
import { FilesystemSink } from './artifacts/filesystem-sink.js';
|
|
12
13
|
import { BrowserAgent } from './runner.js';
|
|
@@ -964,7 +965,7 @@ export class TestRunner {
|
|
|
964
965
|
}
|
|
965
966
|
buildRuntimeConfig() {
|
|
966
967
|
return {
|
|
967
|
-
provider: this.config.provider ||
|
|
968
|
+
provider: this.config.provider || resolveDefaultProvider(),
|
|
968
969
|
model: this.config.model || 'unknown',
|
|
969
970
|
...(this.config.sandboxBackendType ? { sandboxBackendType: this.config.sandboxBackendType } : {}),
|
|
970
971
|
...(this.config.sandboxBackendProfile ? { sandboxBackendProfile: this.config.sandboxBackendProfile } : {}),
|