@hypersoniclabs/helix-cli 0.1.25-helix3.498 → 0.1.25-helix3.499

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 (22) hide show
  1. package/dist/index.js +10 -18
  2. package/dist/index.js.map +1 -1
  3. package/dist/tsconfig.build.tsbuildinfo +1 -1
  4. package/dist/vehicle/recheckListed.d.ts +4 -3
  5. package/dist/vehicle/recheckListed.js +12 -11
  6. package/dist/vehicle/recheckListed.js.map +1 -1
  7. package/package.json +1 -1
  8. package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
  9. package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
  10. package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
  11. package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
  12. package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
  13. package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
  14. package/plugins/beamng-vehicle/bin/__pycache__/beamng_stock_events.cpython-312.pyc +0 -0
  15. package/plugins/beamng-vehicle/bin/__pycache__/fmod_studio.cpython-312.pyc +0 -0
  16. package/plugins/beamng-vehicle/bin/__pycache__/fsb5.cpython-312.pyc +0 -0
  17. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio.cpython-312.pyc +0 -0
  18. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_ac.cpython-312.pyc +0 -0
  19. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_beamng.cpython-312.pyc +0 -0
  20. package/plugins/beamng-vehicle/bin/__pycache__/sim_audio_fixtures.cpython-312.pyc +0 -0
  21. package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
  22. package/plugins/beamng-vehicle/bin/__pycache__/test_sim_audio.cpython-312.pyc +0 -0
package/dist/index.js CHANGED
@@ -2536,7 +2536,7 @@ itemDistribution
2536
2536
  .option('--ends-at <iso>', 'end time')
2537
2537
  .option('--intent-id <uuid>', 'idempotency key; derived from the request when omitted, so an identical re-run returns the same route instead of a duplicate')
2538
2538
  .option('--dry-run', 'validate and print the request; no network')
2539
- .option('--allow-stale-visual-qa <reason>', 'human override: list a VEHICLE whose visual-QA record does not cover today\'s gates (logged to ~/.helix/listing-gate-overrides.jsonl)')
2539
+ .option('--allow-stale-visual-qa <reason>', 'no-op, kept for compatibility: a vehicle\'s visual-QA record never blocks listing any more (it only prints advisory notes)')
2540
2540
  .option('--json', 'machine-readable output')
2541
2541
  .action(async (itemId, opts) => {
2542
2542
  const input = {
@@ -2562,24 +2562,16 @@ itemDistribution
2562
2562
  return;
2563
2563
  }
2564
2564
  const auth = requireAuth();
2565
- // A VEHICLE is listed only on a visual-QA record that ran, and passed, every blocking gate that exists today (the F40
2566
- // was listed on a record that predated the posture and hands asserts). See vehicle/recheckListed.ts.
2567
- const { vehicleListingGate, listingRefusal } = await Promise.resolve().then(() => __importStar(require('./vehicle/recheckListed')));
2568
- const gate = await vehicleListingGate(auth.apiUrl ?? config_1.DEFAULT_API_URL, itemId);
2569
- if (gate && gate.status !== 'current') {
2570
- const reason = (opts.allowStaleVisualQa ?? '').trim();
2571
- if (!reason) {
2572
- fail(listingRefusal(gate));
2573
- return;
2574
- }
2575
- process.stderr.write(`⚠ listing ${gate.title} on a ${gate.status.toUpperCase()} visual-QA record by human override: ${reason}\n`);
2576
- try {
2577
- const { appendFileSync } = await Promise.resolve().then(() => __importStar(require('node:fs')));
2578
- const { CONFIG_DIR } = await Promise.resolve().then(() => __importStar(require('./config')));
2579
- appendFileSync((0, node_path_1.join)(CONFIG_DIR, 'listing-gate-overrides.jsonl'), `${JSON.stringify({ at: new Date().toISOString(), itemId, status: gate.status, stale: gate.stale, failed: gate.failed, reason })}\n`);
2580
- }
2581
- catch { /* the warning above is the record */ }
2565
+ // The visual check never gates a listing (backend #1929): a vehicle whose record is missing, stale or failed is
2566
+ // listed anyway, with the advisory notes printed. Only a technical failure or content safety refuses, and the
2567
+ // backend says so. `--allow-stale-visual-qa` is a no-op kept so existing scripts keep working.
2568
+ try {
2569
+ const { vehicleListingGate, listingAdvisory } = await Promise.resolve().then(() => __importStar(require('./vehicle/recheckListed')));
2570
+ const gate = await vehicleListingGate(auth.apiUrl ?? config_1.DEFAULT_API_URL, itemId);
2571
+ if (gate && gate.status !== 'current')
2572
+ process.stderr.write(`${listingAdvisory(gate)}\n`);
2582
2573
  }
2574
+ catch { /* advice only: an unreadable record never stands in the way of a listing */ }
2583
2575
  const created = await (0, lib_1.createItemDistribution)(input, auth);
2584
2576
  if (opts.json)
2585
2577
  console.log(JSON.stringify(created, null, 2));