@helix3/helix-cli 0.1.18-helix3.366 → 0.1.18-helix3.367

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.
@@ -63,6 +63,8 @@ export declare function deriveVerdict(category: VisualQaBundle['item']['category
63
63
  };
64
64
  /** What the critic cannot see in a frame but must know: the measured size (a prop viewer has no ground or person
65
65
  * for scale) and which host/base each frame shows, and that only this one part is fitted. */
66
+ /** Errors that mean the BROWSER failed (renderer crash, frame torn down), not the item: the route is retried once. */
67
+ export declare const BROWSER_CRASH_RE: RegExp;
66
68
  export declare function criticContext(bundle: VisualQaBundle): string;
67
69
  export type RouteName = 'vehicle' | 'avatar' | 'viewer' | 'animation' | 'scene';
68
70
  /** Which render route judges a category. Whole vehicles and whole avatars are rendered in the hosted test grounds (Try Now). An
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.CandidateRefusedError = exports.HARNESS_REVISION = void 0;
39
+ exports.CandidateRefusedError = exports.BROWSER_CRASH_RE = exports.HARNESS_REVISION = void 0;
40
40
  exports.deriveVerdict = deriveVerdict;
41
41
  exports.criticContext = criticContext;
42
42
  exports.routeFor = routeFor;
@@ -85,6 +85,8 @@ function deriveVerdict(category, asserts, errors, critic) {
85
85
  }
86
86
  /** What the critic cannot see in a frame but must know: the measured size (a prop viewer has no ground or person
87
87
  * for scale) and which host/base each frame shows, and that only this one part is fitted. */
88
+ /** Errors that mean the BROWSER failed (renderer crash, frame torn down), not the item: the route is retried once. */
89
+ exports.BROWSER_CRASH_RE = /Target crashed|Page crashed|Frame was detached|Target page, context or browser has been closed|Browser has been closed|browser has disconnected/i;
88
90
  function criticContext(bundle) {
89
91
  const lines = [];
90
92
  const sizes = bundle.asserts.filter((a) => a.id === 'scale.sane_for_category').map((a) => a.measured?.size).filter(Boolean);
@@ -92,6 +94,8 @@ function criticContext(bundle) {
92
94
  lines.push(`Measured size of the item's drawn geometry: ${sizes[0].map((v) => v.toFixed(2)).join(' × ')} m (x × y × z). Use it to judge scale when no frame shows a reference.`);
93
95
  if (bundle.item.category === 'avatar')
94
96
  lines.push("A whole avatar. The frame captioned 'Reference: unlit base colour' is a diagnostic render of the same front view with lighting switched off (base colour textures only): it is not a defect itself, compare the lit frames against it. Frames captioned 'stride' show the walk frozen mid-step.");
97
+ if (bundle.frames.some((f) => f.group === 'evidence'))
98
+ lines.push("Frames captioned 'Evidence CUTAWAY' are deliberate cutaways of a MEASURED clash: only the occupant and the one cabin part it clashes with are drawn, and everything nearer the camera than the clash is clipped away, so missing bodywork there is not a defect; judge whether the body visibly passes through that part. Frames captioned 'Evidence: wheel' show one wheel of a lower-detail rendition of the same car.");
95
99
  const subjects = bundle.subjects ?? [];
96
100
  if (subjects.length)
97
101
  lines.push(`Fitted on: ${subjects.map((s) => `${s.title} (${s.role} ${s.id})`).join('; ')}. Only this one item is fitted; its styling is the creator's design, judge placement, fit and render quality.`);
@@ -296,14 +300,29 @@ async function runVisualQa(itemId, opts) {
296
300
  const watch = resolved.candidate ? candidateWatch(resolved) : null;
297
301
  if (watch)
298
302
  (0, browser_1.setCandidate)(watch.config);
303
+ const attempt = async () => {
304
+ try {
305
+ return await route(ctx);
306
+ }
307
+ catch (error) {
308
+ return {
309
+ route: ROUTE_LABEL[routeFor(resolved.identity.category)], url: '', frames: [], asserts: [], subjects: [],
310
+ facts: {}, errors: [`render route threw: ${String(error?.stack ?? error).slice(0, 800)}`], renderer: null, engineVersion: null, fetchedAssets: [],
311
+ };
312
+ }
313
+ };
299
314
  try {
300
- result = await route(ctx);
301
- }
302
- catch (error) {
303
- result = {
304
- route: ROUTE_LABEL[routeFor(resolved.identity.category)], url: '', frames: [], asserts: [], subjects: [],
305
- facts: {}, errors: [`render route threw: ${String(error?.stack ?? error).slice(0, 800)}`], renderer: null, engineVersion: null, fetchedAssets: [],
306
- };
315
+ result = await attempt();
316
+ // A Chromium renderer that crashed or a frame torn down under load (measured: 3 of 5 runs at load average ~30) says
317
+ // nothing about the item: render the whole route once more from a fresh browser, and keep the first attempt's errors.
318
+ const crash = result.errors.find((e) => exports.BROWSER_CRASH_RE.test(e));
319
+ if (crash) {
320
+ log('retry', `browser crashed (${crash.slice(0, 160)}); rendering once more from a fresh browser`);
321
+ const first = { errors: result.errors, frames: result.frames.length };
322
+ node_fs_1.default.rmSync(node_path_1.default.join(bundleDir, 'frames'), { recursive: true, force: true });
323
+ result = await attempt();
324
+ result.facts.retry = { reason: crash.slice(0, 300), firstAttempt: first };
325
+ }
307
326
  }
308
327
  finally {
309
328
  if (watch)
@@ -345,7 +364,11 @@ async function runVisualQa(itemId, opts) {
345
364
  node_fs_1.default.writeFileSync(node_path_1.default.join(bundleDir, 'bundle.json'), JSON.stringify(bundle, null, 2));
346
365
  let critic = null;
347
366
  const tc = Date.now();
348
- if (opts.localCritic && bundle.frames.length) {
367
+ if (opts.localCritic && bundle.frames.length && bundle.errors.length) {
368
+ // the verdict is `error` whatever the critic says: never pay for an answer that is discarded
369
+ log('critic', `skipped: the harness ended in error (${bundle.errors.length})`);
370
+ }
371
+ else if (opts.localCritic && bundle.frames.length) {
349
372
  critic = await (0, critic_1.runCritic)({ category: bundle.item.category, title: bundle.item.title, frames: bundle.frames, bundleDir, context: criticContext(bundle) });
350
373
  node_fs_1.default.writeFileSync(node_path_1.default.join(bundleDir, 'critic.json'), JSON.stringify(critic, null, 2));
351
374
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/visualQa/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/visualQa/command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { RenderRoute } from './harness';
2
2
  import type { VisualQaAssert } from './types';
3
- import { rideHeight, type BodyPoints, type BodyTriangles, type Vec3, type WheelRow } from './vehicleMath';
3
+ import { VEHICLE_QA_THRESHOLDS as T, rideHeight, type BodyPoints, type BodyTriangles, type Vec3, type WheelRow } from './vehicleMath';
4
4
  export declare const VEHICLE_ROUTE_REVISION = "vehicle@2";
5
5
  export interface Pull {
6
6
  wheels: Array<{
@@ -51,6 +51,10 @@ export interface Pull {
51
51
  proxies: number;
52
52
  state: Record<string, unknown>;
53
53
  }
54
+ /** In-bundle clipping evidence frames per pass (rendition): the worst clashes only, each one a different place. */
55
+ export declare const EVIDENCE_MAX = 3;
56
+ /** A wheel whose drawn geometry fails at_hubs or arch_clearance on its own (the same per-wheel criteria they judge). */
57
+ export declare function wheelFailsGeometry(r: WheelRow, t?: typeof T): boolean;
54
58
  export declare const renderVehicle: RenderRoute;
55
59
  /** Every assert of a pass carries the rendition it was measured on (none when the package declares no renditions). */
56
60
  export declare function tagRendition(asserts: VisualQaAssert[], rendition: string | null): VisualQaAssert[];
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PER_RENDITION_ASSERT = exports.renderVehicle = exports.VEHICLE_ROUTE_REVISION = void 0;
6
+ exports.PER_RENDITION_ASSERT = exports.renderVehicle = exports.EVIDENCE_MAX = exports.VEHICLE_ROUTE_REVISION = void 0;
7
+ exports.wheelFailsGeometry = wheelFailsGeometry;
7
8
  exports.tagRendition = tagRendition;
8
9
  exports.artifactUrl = artifactUrl;
9
10
  exports.renditionPlan = renditionPlan;
@@ -206,6 +207,15 @@ async function vehiclePass(ctx, pass) {
206
207
  frames.push({ id, label, group, file, width: dim.width, height: dim.height, subject: itemId });
207
208
  images.push(await (0, commonAsserts_1.imageStats)(node_path_1.default.join(ctx.outDir, file)).catch(() => ({ file, lumaStdev: 0, meanLuma: 0 })));
208
209
  };
210
+ // Evidence frames go INTO the bundle (and to the critic) in every pass, the measure-only ones too: a measured failure
211
+ // with no picture of it is one a reviewer cannot check. They are not counted by frame.non_empty (a cutaway is mostly sky).
212
+ const evidenceShot = async (id, label, group = 'evidence') => {
213
+ const file = node_path_1.default.join('frames', `${id}.jpg`);
214
+ await hideOverlays(page);
215
+ const dim = await (0, browser_1.captureJpeg)(page, node_path_1.default.join(ctx.outDir, file), 500);
216
+ return { id, label, group, file, width: dim.width, height: dim.height, subject: itemId };
217
+ };
218
+ const evidencePrefix = measureOnly && pass.rendition ? `evidence.${pass.rendition}.` : 'evidence.';
209
219
  const ev = (fn) => frame.evaluate(fn);
210
220
  const setCam = (c) => frame.evaluate((cc) => globalThis.__vqaVeh.setCam(cc), c);
211
221
  const clearCam = () => frame.evaluate(() => globalThis.__vqaVeh.clearCam());
@@ -338,6 +348,24 @@ async function vehiclePass(ctx, pass) {
338
348
  await (0, browser_1.captureJpeg)(page, node_path_1.default.join(ctx.outDir, file), 900);
339
349
  images.push(await (0, commonAsserts_1.imageStats)(node_path_1.default.join(ctx.outDir, file)).catch(() => ({ file, lumaStdev: 0, meanLuma: 0 })));
340
350
  facts.diagnosticFrame = file;
351
+ // a wheel this rendition draws wrong gets its own in-bundle frame, low and square-on like the default pass's
352
+ if (rows) {
353
+ const shots = [];
354
+ for (const r of rows) {
355
+ if (!wheelFailsGeometry(r))
356
+ continue;
357
+ const c = r.drawnCentre ?? r.hub;
358
+ const out = Math.sign(c[0]) || 1;
359
+ const rad = r.radius ?? r.physicsRadius;
360
+ const dist = Math.max(1.5, rad * 6.2);
361
+ await setCam({ pos: [c[0] + out * dist, c[1] + 0.06, c[2]], target: [c[0], c[1] + rad * 0.3, c[2]], fov: 34, near: 0.05 });
362
+ const sfx = r.id.replace(/^wheel_/, '');
363
+ const id = `evidence.${pass.rendition}.wheel.${sfx}`;
364
+ frames.push(await evidenceShot(id, `Evidence: wheel ${sfx.toUpperCase()} on the ${pass.rendition} rendition, low and square-on — measured arch gap ${r.archGapM === null ? '?' : (r.archGapM * 100).toFixed(1)} cm${r.penetrationCount ? `, body ${((r.maxPenetrationM ?? 0) * 100).toFixed(1)} cm inside the tyre` : ''}`));
365
+ shots.push(id);
366
+ }
367
+ facts.wheelEvidence = shots;
368
+ }
341
369
  }
342
370
  if (rows && phase('exterior')) {
343
371
  for (const r of rows) {
@@ -412,8 +440,17 @@ async function vehiclePass(ctx, pass) {
412
440
  try {
413
441
  const occ = await (0, vehicleOccupants_1.captureOccupants)({
414
442
  page, frame, itemId, panels, seatsDeclared, seatEvidence: seatEvidence?.seats ?? [], carBounds: bodyBounds, outDir: dumpDir, shot, setCam, clearCam,
415
- snap: async (file) => { await hideOverlays(page); await (0, browser_1.captureJpeg)(page, node_path_1.default.join(ctx.outDir, file), 400); },
443
+ evidence: (id, label, group) => evidenceShot(id, label, group), evidencePrefix,
416
444
  });
445
+ // the worst EVIDENCE_MAX clashes of the whole car (they were already deduped per seat, body part and cabin part)
446
+ const kept = [...occ.evidence].sort((x, y) => y.score - x.score).slice(0, exports.EVIDENCE_MAX);
447
+ for (const e of occ.evidence) {
448
+ if (kept.includes(e))
449
+ frames.push(e.shot);
450
+ else
451
+ node_fs_1.default.rmSync(node_path_1.default.join(ctx.outDir, e.shot.file), { force: true });
452
+ }
453
+ facts.penetrationEvidence = kept.map((e) => e.id);
417
454
  occupantMeasures.push(...occ.measures);
418
455
  occupantFailed.push(...occ.failed);
419
456
  facts.occupants = occ.facts;
@@ -585,6 +622,16 @@ async function vehiclePass(ctx, pass) {
585
622
  /** Phases a measure-only (non-default rendition) pass skips: steering and the drive are rendition-independent physics,
586
623
  * the cabin view is a frame. */
587
624
  const MEASURE_ONLY_SKIPS = new Set(['steering', 'cabin', 'drive']);
625
+ /** In-bundle clipping evidence frames per pass (rendition): the worst clashes only, each one a different place. */
626
+ exports.EVIDENCE_MAX = 3;
627
+ /** A wheel whose drawn geometry fails at_hubs or arch_clearance on its own (the same per-wheel criteria they judge). */
628
+ function wheelFailsGeometry(r, t = vehicleMath_1.VEHICLE_QA_THRESHOLDS) {
629
+ const d = r.delta;
630
+ const offHub = !!d && (Math.hypot(d[0], d[2]) > t.hubPlanarTolM || Math.abs(d[1]) > t.hubVerticalTolM);
631
+ const tucked = r.archGapM !== null && r.archGapM !== undefined && r.archGapM < t.archGapMinM;
632
+ const poked = (r.penetrationCount ?? 0) > t.penetrationMaxCount && (r.maxPenetrationM ?? 0) > t.penetrationDepthM;
633
+ return offHub || tucked || poked;
634
+ }
588
635
  const renderVehicle = async (ctx) => {
589
636
  // A preview draws the one candidate GLB it was handed: there are no sealed renditions to walk.
590
637
  if (ctx.preview)
@@ -614,6 +661,7 @@ const renderVehicle = async (ctx) => {
614
661
  const errors = [...debugErrors, ...(main?.errors ?? []), ...plan.errors];
615
662
  const fetched = new Set(main?.fetchedAssets ?? []);
616
663
  const extra = {};
664
+ const extraFrames = []; // the other renditions' evidence frames (they take no others)
617
665
  const done = new Map();
618
666
  if (main && def)
619
667
  done.set((0, resolve_1.hexOf)(def.cid) ?? def.id, main);
@@ -631,6 +679,7 @@ const renderVehicle = async (ctx) => {
631
679
  const res = await runPass({ rendition: r.id, tier: r.tier, measureOnly: true, modelCid: r.cid, substitute: def ? { fromCid: def.cid, toCid: r.cid, url } : null });
632
680
  done.set((0, resolve_1.hexOf)(r.cid) ?? r.id, res);
633
681
  asserts.push(...tag(res.asserts, r.id));
682
+ extraFrames.push(...res.frames);
634
683
  errors.push(...res.errors.map((e) => `rendition ${r.id}: ${e}`));
635
684
  for (const u of res.fetchedAssets)
636
685
  fetched.add(u);
@@ -638,7 +687,7 @@ const renderVehicle = async (ctx) => {
638
687
  }
639
688
  const facts = { ...(main?.facts ?? {}), renditions: { default: def?.id ?? null, declared: plan.declared, passes, measured: extra }, renditionWallSeconds: +((Date.now() - started) / 1000).toFixed(1) };
640
689
  return {
641
- route: 'test-grounds', url: main?.url ?? '', frames: main?.frames ?? [], asserts, facts,
690
+ route: 'test-grounds', url: main?.url ?? '', frames: [...(main?.frames ?? []), ...extraFrames], asserts, facts,
642
691
  subjects: main?.subjects ?? [{ id: ctx.resolved.identity.itemId, title: ctx.resolved.identity.title, role: 'host' }],
643
692
  errors: [...new Set(errors)], renderer: main?.renderer ?? null, engineVersion: main?.engineVersion ?? null, fetchedAssets: [...fetched],
644
693
  };