@helix3/helix-cli 0.1.20-helix3.400 → 0.1.21-helix3.403

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 (33) hide show
  1. package/README.md +10 -5
  2. package/dist/index.js +3 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/realizability.d.ts +6 -1
  5. package/dist/realizability.js +89 -23
  6. package/dist/realizability.js.map +1 -1
  7. package/dist/tsconfig.build.tsbuildinfo +1 -1
  8. package/dist/vehicle/addon.js +13 -0
  9. package/dist/vehicle/addon.js.map +1 -1
  10. package/dist/vehicle/audio.d.ts +2 -0
  11. package/dist/vehicle/audio.js +55 -0
  12. package/dist/vehicle/audio.js.map +1 -1
  13. package/dist/vehicle/audioSpectral.d.ts +27 -0
  14. package/dist/vehicle/audioSpectral.js +319 -0
  15. package/dist/vehicle/audioSpectral.js.map +1 -0
  16. package/dist/vehicle/paintHue.d.ts +24 -0
  17. package/dist/vehicle/paintHue.js +98 -0
  18. package/dist/vehicle/paintHue.js.map +1 -0
  19. package/dist/vehicle/preview.d.ts +4 -0
  20. package/dist/vehicle/preview.js +37 -0
  21. package/dist/vehicle/preview.js.map +1 -1
  22. package/dist/vehicle/simulate.d.ts +12 -0
  23. package/dist/vehicle/simulate.js +16 -1
  24. package/dist/vehicle/simulate.js.map +1 -1
  25. package/docs/vehicle-simulate.md +9 -0
  26. package/package.json +1 -1
  27. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  28. package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
  29. package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
  30. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  31. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  32. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  33. package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
package/README.md CHANGED
@@ -346,11 +346,16 @@ A published world ships only its **built bundle**, so there is nothing on the se
346
346
  channel for exactly that reason.
347
347
  - **Limit**: 128 MiB compressed, checked locally before anything is uploaded.
348
348
 
349
- Before upload, module-based multiplayer worlds are checked for server realizability: every bank must
350
- be published with the declared checksum and the shared manifest validator must accept all module
351
- budgets under the 100,000 tick-node ceiling. Fix the named module/bank when this gate refuses a
352
- publish. For exceptional recovery only, `--skip-realizability-check` bypasses this check; flat-v0
353
- worlds are unaffected.
349
+ Before upload, multiplayer worlds that install modules are checked for server realizability. A
350
+ module with a `bank` reference must name a bank that is published with the declared checksum (bank
351
+ modules belong to the default `multiplayer` block; the manifest validator refuses one inside a room
352
+ type). A module without `bank` is inline: its rules are in the manifest, so there is nothing to
353
+ resolve. The modules of every program (the default block and each `multiplayer.roomTypes` entry)
354
+ must then fit the 100,000 tick-node ceiling at the number of players that program's room holds: 24
355
+ for a standard default block, a room type's own `maxPlayers` up to 24, and the declared `maxPlayers`
356
+ up to 64 with `capacityClass: "large"`, never fewer than 2. Fix the named module or bank when this
357
+ gate refuses a publish. For exceptional recovery only, `--skip-realizability-check` bypasses this
358
+ check; worlds without modules are unaffected.
354
359
 
355
360
  The programmatic surface (`publishWorld`, `checkBundle`, `whoAmI`, …) is exported for other CLI
356
361
  modules. Agent integrations should instruct or delegate to the `helix` commands above rather than
package/dist/index.js CHANGED
@@ -653,6 +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
658
  .option('--storage-state <file>', 'Playwright storageState of a signed-in QA account (default: sign in with `helix login`, or $HELIX_VQA_STORAGE_STATE)')
657
659
  .option('--chrome <path>', 'Chromium executable (default: Playwright Chromium / Chrome for Testing, headless; the macOS system Chrome is refused)')
658
660
  .option('--api-url <url>', 'platform API base URL')
@@ -669,6 +671,7 @@ vehicleCommand
669
671
  summary = await runVehiclePreview({
670
672
  target, addOns: opts.addon, item: opts.item, toleranceCm: Number.isFinite(opts.toleranceCm) ? opts.toleranceCm : undefined,
671
673
  glb: opts.glb, out: opts.out, proxyItem: opts.proxyItem, occupants: opts.occupants, apiBase, webBase,
674
+ referencePaint: opts.referencePaint, paintToleranceDeg: Number.isFinite(opts.paintTolerance) ? opts.paintTolerance : undefined,
672
675
  token: creds?.token ?? null, storageState: opts.storageState ?? process.env.HELIX_VQA_STORAGE_STATE, chrome: opts.chrome, quiet: opts.json,
673
676
  });
674
677
  }