@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.
Files changed (37) hide show
  1. package/dist/browser-launch.d.ts +6 -0
  2. package/dist/browser-launch.d.ts.map +1 -1
  3. package/dist/browser-launch.js +3 -0
  4. package/dist/browser-launch.js.map +1 -1
  5. package/dist/cli/commands/run.d.ts.map +1 -1
  6. package/dist/cli/commands/run.js +37 -12
  7. package/dist/cli/commands/run.js.map +1 -1
  8. package/dist/config.d.ts +7 -0
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +12 -2
  11. package/dist/config.js.map +1 -1
  12. package/dist/design/audit/evolve/agent.d.ts.map +1 -1
  13. package/dist/design/audit/evolve/agent.js +3 -2
  14. package/dist/design/audit/evolve/agent.js.map +1 -1
  15. package/dist/design/audit/reference/generate/generator.d.ts.map +1 -1
  16. package/dist/design/audit/reference/generate/generator.js +7 -1
  17. package/dist/design/audit/reference/generate/generator.js.map +1 -1
  18. package/dist/design/audit/reference/generate/parse.d.ts.map +1 -1
  19. package/dist/design/audit/reference/generate/parse.js +54 -14
  20. package/dist/design/audit/reference/generate/parse.js.map +1 -1
  21. package/dist/design/audit/reference/generate/prompt.d.ts.map +1 -1
  22. package/dist/design/audit/reference/generate/prompt.js +67 -19
  23. package/dist/design/audit/reference/generate/prompt.js.map +1 -1
  24. package/dist/design/audit/reference/judge/prompt.d.ts.map +1 -1
  25. package/dist/design/audit/reference/judge/prompt.js +15 -3
  26. package/dist/design/audit/reference/judge/prompt.js.map +1 -1
  27. package/dist/ffmpeg-availability.d.ts +19 -0
  28. package/dist/ffmpeg-availability.d.ts.map +1 -0
  29. package/dist/ffmpeg-availability.js +74 -0
  30. package/dist/ffmpeg-availability.js.map +1 -0
  31. package/dist/showcase/index.d.ts.map +1 -1
  32. package/dist/showcase/index.js +14 -3
  33. package/dist/showcase/index.js.map +1 -1
  34. package/dist/test-runner.d.ts.map +1 -1
  35. package/dist/test-runner.js +2 -1
  36. package/dist/test-runner.js.map +1 -1
  37. 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
- const isNumberArray = (v) => Array.isArray(v) && v.every(isFiniteNumber);
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. Returns null when no object literal is present.
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
- const last = text.lastIndexOf('}');
35
- if (first < 0 || last <= first)
64
+ if (first < 0)
36
65
  return null;
37
- return text.slice(first, last + 1);
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
- if (!isNumberArray(raw.scalePx) || raw.scalePx.length === 0)
76
+ const scalePx = coerceNumberArray(raw.scalePx);
77
+ if (!scalePx || scalePx.length === 0)
45
78
  return 'typeSystem.scalePx must be a non-empty number[]';
46
- if (!isFiniteNumber(raw.ratio))
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: raw.scalePx, ratio: raw.ratio, rationale: raw.rationale };
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
- if (!isNumberArray(raw.durationsMs))
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: raw.durationsMs, easings: raw.easings, cues: raw.cues };
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 json = extractJsonObject(raw);
120
- if (json === null)
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,cAAc,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAE/F,MAAM,aAAa,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;AAE1F,MAAM,aAAa,GAAG,CAAC,CAAU,EAAiB,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;AAEhG;;;;GAIG;AACH,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACrB,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7E,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;IAClC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK;QAAE,OAAO,IAAI,CAAA;IAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,8BAA8B,CAAA;IACzD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kDAAkD,CAAA;IACxH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,iDAAiD,CAAA;IACrH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,mCAAmC,CAAA;IAC1E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,uCAAuC,CAAA;IAC5E,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAA;AACrG,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,+BAA+B,CAAA;IAC1D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,sCAAsC,CAAA;IACzE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,yCAAyC,CAAA;IAClF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,yCAAyC,CAAA;IAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;QAAE,OAAO,wCAAwC,CAAA;IAC7E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,OAAO,kDAAkD,CAAA;IAChH,MAAM,IAAI,GAAoB;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAA;IACD,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;QAAE,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;IAClD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,GAAY;IACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,8BAA8B,CAAA;IACzD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,OAAO,2CAA2C,CAAA;IACvF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,uCAAuC,CAAA;IAC/E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,oCAAoC,CAAA;IACzE,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAA;AAC/E,CAAC;AAED,SAAS,SAAS,CAAC,GAAY;IAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,uBAAuB,CAAA;IACvD,MAAM,GAAG,GAAmB,EAAE,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,mCAAmC,CAAA;QAC/D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,kCAAkC,CAAA;QACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,+BAA+B,CAAA;QACjE,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,6CAA6C,CAAA;QAC7G,MAAM,GAAG,GAAiB,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;QACxE,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACnD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACf,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAoB,EAAE,UAAoB;IAC1E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAA;IACnC,OAAO,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,UAAoB;IAC9D,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACnC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,sCAAsC,CAAC,CAAA;IAEtE,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,+BAA+B,CAAC,CAAA;IAEnE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC,8BAA8B,CAAC,CAAA;IACrE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,gCAAgC,CAAC,CAAA;IACzE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC,qCAAqC,CAAC,CAAA;IACnF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC,uCAAuC,CAAC,CAAA;IACvF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC,wCAAwC,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,iDAAiD,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrD,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACxD,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrD,IAAI,OAAO,UAAU,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAA;IAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;IAE/C,yEAAyE;IACzE,+CAA+C;IAC/C,MAAM,SAAS,GAAsB;QACnC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU;QACV,WAAW;QACX,UAAU;QACV,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,IAAI;QACJ,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;KACpD,CAAA;IAED,IAAI,SAAS,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,uDAAuD,CAAC,CAAA;IACtE,CAAC;IACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAC1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,qCAAqC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAChC,CAAC"}
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;AAgGD;;;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,CAqBlC"}
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 world-class art director. You translate ONE concrete, named',
31
- 'world-class reference into a single coherent, buildable redesign direction for',
32
- 'the page under audit — not a menu of options, one opinionated direction.',
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
- '- Ground every decision in the named REFERENCE EXEMPLAR below. Echo its id in',
36
- ' `groundedInExemplarIds`. NEVER invent, guess, or cite an exemplar id you',
37
- ' were not given.',
38
- '- Specify concrete values: hex colors, px type sizes, ms durations, and real',
39
- ' revised copy strings never placeholders like "TODO" or "lorem ipsum".',
40
- '- The ASCII layout must be a real box-drawing diagram of the proposed page',
41
- ' structure, top to bottom.',
42
- '- Preserve or improve the page\'s measured accessibility (contrast, a11y).',
43
- ' Never propose a change that would regress it.',
44
- '- If the REFERENCE EXEMPLAR\'s DNA reports scroll-driven motion (scroll',
45
- ' reveals, sticky pinning, or parallax) and the page does not, propose concrete',
46
- ' scroll interactions in `motionSpec.cues`, naming the specific reveal, pin, or',
47
- ' parallax grounded in that exemplar. NEVER invent scroll motion the exemplar',
48
- ' does not show.',
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 (ground every choice in this one page)',
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,uEAAuE;IACvE,gFAAgF;IAChF,0EAA0E;IAC1E,EAAE;IACF,aAAa;IACb,+EAA+E;IAC/E,4EAA4E;IAC5E,mBAAmB;IACnB,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,6BAA6B;IAC7B,4EAA4E;IAC5E,iDAAiD;IACjD,yEAAyE;IACzE,iFAAiF;IACjF,iFAAiF;IACjF,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAC/E,qDAAqD;CACtD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,SAAS,eAAe,CAAC,GAAsB,EAAE,WAAmB;IAClE,MAAM,CAAC,GAAG,GAAG,CAAC,cAAc,CAAA;IAC5B,OAAO;QACL,qBAAqB;QACrB,QAAQ,GAAG,CAAC,GAAG,EAAE;QACjB,SAAS,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,MAAM,gBAAgB,CAAC,CAAC,QAAQ,EAAE;QACjE,WAAW,CAAC,CAAC,MAAM,EAAE;QACrB,qBAAqB;QACrB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAoB,EAAE,WAAmB;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAA;IACtB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAA;IAC/F,OAAO;QACL,2DAA2D;QAC3D,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,QAAQ,EAAE;QACzD,QAAQ,CAAC,CAAC,GAAG,EAAE;QACf,mBAAmB,CAAC,CAAC,WAAW,EAAE;QAClC,yBAAyB,OAAO,EAAE;QAClC,iBAAiB;QACjB,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;KAC/C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAsB;IAC/C,MAAM,CAAC,GAAG,GAAG,CAAC,YAAY,CAAA;IAC1B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAA;IACxC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CACzD,CAAC,MAAM,CAAA;IACR,OAAO;QACL,2DAA2D;QAC3D,kCAAkC,EAAE,2BAA2B,QAAQ,GAAG;QAC1E,8EAA8E;QAC9E,oCAAoC;KACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,+EAA+E;IAC/E,GAAG;IACH,uBAAuB;IACvB,uCAAuC;IACvC,wEAAwE;IACxE,gFAAgF;IAChF,6GAA6G;IAC7G,kJAAkJ;IAClJ,6MAA6M;IAC7M,8EAA8E;IAC9E,sFAAsF;IACtF,kEAAkE;IAClE,GAAG;CACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAsB,EACtB,QAAyB,EACzB,OAA+B,EAAE;IAEjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAA;IAE7D,MAAM,QAAQ,GAAa;QACzB,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;QACjC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,CAAC;KAC3C,CAAA;IAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC1C,IAAI,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IAE3C,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,QAAQ,CAAC,IAAI,CAAC,CAAC,wDAAwD,EAAE,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzI,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IAC9B,QAAQ,CAAC,IAAI,CACX,gEAAgE,QAAQ,CAAC,QAAQ,CAAC,EAAE,iCAAiC,CACtH,CAAA;IAED,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AAC1E,CAAC"}
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;AAqE9B;;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"}
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 world-class art director comparing two redesign directions for the same page against a named reference.',
62
- 'Pick the direction with stronger taste, craft, information hierarchy, and fit to the reference.',
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 world-class design critic judging which of two designs is closer to world-class quality.${focus}`,
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":"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"}
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;AAOnB,wBAAsB,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAgIjF;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"}
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"}
@@ -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
- ...(formats.includes('webm') ? { recordVideo: { dir: path.join(outputDir, '_video'), size: viewport } } : {}),
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 (formats.includes('webm')) {
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":"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"}
1
+ {"version":3,"file":"test-runner.d.ts","sourceRoot":"","sources":["../src/test-runner.ts"],"names":[],"mappings":"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"}
@@ -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 || 'openai',
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 } : {}),