@helix3/helix-cli 0.1.21-helix3.407 → 0.1.21-helix3.409

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 (41) hide show
  1. package/dist/index.js +10 -4
  2. package/dist/index.js.map +1 -1
  3. package/dist/tsconfig.build.tsbuildinfo +1 -1
  4. package/dist/vehicle/audio.d.ts +23 -0
  5. package/dist/vehicle/audio.js +153 -3
  6. package/dist/vehicle/audio.js.map +1 -1
  7. package/dist/vehicle/audioDefects.d.ts +85 -0
  8. package/dist/vehicle/audioDefects.js +529 -0
  9. package/dist/vehicle/audioDefects.js.map +1 -0
  10. package/dist/vehicle/audioSpectral.d.ts +19 -1
  11. package/dist/vehicle/audioSpectral.js +28 -12
  12. package/dist/vehicle/audioSpectral.js.map +1 -1
  13. package/dist/vehicle/keyboardLaunch.d.ts +187 -0
  14. package/dist/vehicle/keyboardLaunch.js +336 -0
  15. package/dist/vehicle/keyboardLaunch.js.map +1 -0
  16. package/dist/vehicle/paintHue.d.ts +76 -11
  17. package/dist/vehicle/paintHue.js +196 -46
  18. package/dist/vehicle/paintHue.js.map +1 -1
  19. package/dist/vehicle/preview.d.ts +2 -2
  20. package/dist/vehicle/preview.js +18 -31
  21. package/dist/vehicle/preview.js.map +1 -1
  22. package/dist/vehicle/simulate.d.ts +8 -0
  23. package/dist/vehicle/simulate.js +15 -3
  24. package/dist/vehicle/simulate.js.map +1 -1
  25. package/dist/vehicle/validate.js +13 -0
  26. package/dist/vehicle/validate.js.map +1 -1
  27. package/dist/visualQa/harness.d.ts +2 -0
  28. package/dist/visualQa/vehicle.js +47 -1
  29. package/dist/visualQa/vehicle.js.map +1 -1
  30. package/dist/visualQa/vehicleProbe.d.ts +1 -1
  31. package/dist/visualQa/vehicleProbe.js +44 -0
  32. package/dist/visualQa/vehicleProbe.js.map +1 -1
  33. package/docs/vehicle-simulate.md +19 -1
  34. package/package.json +1 -1
  35. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  36. package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
  37. package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
  38. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  39. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  40. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  41. package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
package/dist/index.js CHANGED
@@ -653,8 +653,8 @@ vehicleCommand
653
653
  .option('--out <dir>', 'frames, contact-sheet.jpg, bundle.json and preview.json go here (default: <dir>/.helix-preview)')
654
654
  .option('--proxy-item <id>', 'a published vehicle the QA account can Try Now; the runtime loads it and the candidate replaces its car (and its slot board is what --addon fits to)')
655
655
  .option('--occupants', 'also seat an avatar in every seat, judge the cabin, and report where the runtime\'s cabin fit put each seat vs where it was authored (slow)')
656
- .option('--reference-paint <#rrggbb>', 'the reference body paint colour, sampled from the reference photo: sample the rendered body from the side pose and fail if its hue is off (default tolerance 15°)')
657
- .option('--paint-tolerance <deg>', 'maximum circular hue distance (degrees) the rendered body may sit from --reference-paint (default 15)', (v) => Number(v))
656
+ .option('--reference-paint <#rrggbb>', 'the reference body paint colour, the median of the body-paint pixels in the reference photos: renders the body paint alone from six cameras in the Try Now daylight (the world\'s own sun, exposure, tone mapping and lights) and fails on hue, saturation, lightness or highlight wash. White/silver/grey/black are judged on tint and lightness instead of hue')
657
+ .option('--paint-tolerance <deg>', 'maximum circular hue distance (degrees) the rendered body may sit from a chromatic --reference-paint (default 12)', (v) => Number(v))
658
658
  .option('--storage-state <file>', 'Playwright storageState of a signed-in QA account (default: sign in with `helix login`, or $HELIX_VQA_STORAGE_STATE)')
659
659
  .option('--chrome <path>', 'Chromium executable (default: Playwright Chromium / Chrome for Testing, headless; the macOS system Chrome is refused)')
660
660
  .option('--api-url <url>', 'platform API base URL')
@@ -728,7 +728,11 @@ vehicleCommand
728
728
  + 'PASS iff |error| <= tolerance. The runtime is fetched once per version and cached by sha under ~/.helix/cache/engine-runtime; offline, the last '
729
729
  + 'cached runtime is used and labelled. TURBO LAG: with boostTorqueCoef 0 the solver adds no boost torque, so a turbo car whose curve is the full-boost '
730
730
  + 'dyno curve pulls with no lag; author lag by derating the torque curve below spool, then check `turbo lag` here (docs/vehicle-simulate.md). '
731
- + 'Exit 0 = every compared figure passes, 1 = a figure is out of tolerance or the rest pose is wrong, 2 = could not simulate')
731
+ + 'KEYBOARD LAUNCH: it also launches the car the way a keyboard player does (W 0->1 in one tick, A/D taps with 100 ms reactions holding a lane; '
732
+ + 'the platform has no traction control and does not ramp a digital throttle) and nudges the yaw hands-off at 20/40/60/100 km/h and as each upshift '
733
+ + 're-engages: keyboard 0-100 vs the instrument, wheelspin per gear, post-shift yaw/heading/sideslip, lane offset. A nudge that grows into a spin '
734
+ + 'FAILS "not drivable on a keyboard". '
735
+ + 'Exit 0 = every compared figure passes and the keyboard launch does not FAIL, 1 = a figure is out of tolerance, the rest pose is wrong or the car is not drivable on a keyboard, 2 = could not simulate')
732
736
  .argument('[dir-or-package.json]', 'a vehicle package directory (vehicle-package.json), the package JSON, or a saved item read')
733
737
  .option('--item <id>', 'simulate a PUBLISHED vehicle item\'s stored package (public read) instead of a local file')
734
738
  .option('--spec <file>', 'extra targets: a package / {targets}, or a reference spec (perf.0_100_kmh_s, perf.braking_100_0_m, perf.braking_70mph_0_m, perf.skidpad_g, perf.turbo_lag_s … as {value, tol_pct})')
@@ -736,6 +740,7 @@ vehicleCommand
736
740
  .option('--runtime <file-or-url>', 'drive with this runtime bundle instead of the served one (a candidate engine build)')
737
741
  .option('--range <range>', 'engine range to resolve (default ^0.3)')
738
742
  .option('--api-url <url>', 'API to resolve the runtime (and --item) from (default: this CLI\'s environment)')
743
+ .option('--no-keyboard-launch', 'skip the keyboard launch and its hands-off yaw probe')
739
744
  .option('--json', 'print the machine-readable report')
740
745
  .action(async (input, opts) => {
741
746
  const { readVehiclePackageArg, simulateVehicle, targetsFromSpec, formatSimulationReport } = await Promise.resolve().then(() => __importStar(require('./vehicle/simulate')));
@@ -778,7 +783,7 @@ vehicleCommand
778
783
  }
779
784
  try {
780
785
  const runtime = await loadEngineRuntime({ apiUrl, offline: opts.offline, runtime: opts.runtime, range: opts.range });
781
- const report = await simulateVehicle(pkg, runtime, { specTargets });
786
+ const report = await simulateVehicle(pkg, runtime, { specTargets, skipKeyboardLaunch: opts.keyboardLaunch === false });
782
787
  if (opts.json)
783
788
  console.log(JSON.stringify({ source, spec: opts.spec ? (0, node_path_1.resolve)(opts.spec) : null, ...report }, null, 2));
784
789
  else
@@ -795,6 +800,7 @@ vehicleCommand
795
800
  .command('audio-check')
796
801
  .description('Prove every sound a vehicle declares will actually play: each engine-ladder rung and slot sample the runtime selects must resolve (a local WAV '
797
802
  + 'beside the package before publish, or HTTP 200 with the exact declared bytes and sha256 after), be PCM WAV, and be audible (not silence). '
803
+ + 'It also measures what each sound is made of: clipping, DC offset, a resampled-copy ladder rung, one fixed formant stack or fixed tone shared by every rung, and an exactly periodic synthetic horn (each reported with its measured value and a fix). '
798
804
  + 'Pass a package directory / package JSON for the pre-seal check, or a published vehicle item id for the read-back check. Exit 0 = every sample plays')
799
805
  .argument('<dir|package.json|item-id>', 'package directory or file (pre-seal), or a published vehicle item UUID (read-back)')
800
806
  .option('--json', 'print the machine-readable report')