@helix3/helix-cli 0.1.20-helix3.379 → 0.1.20-helix3.381
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.
- package/README.md +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/itemSetVersion.d.ts +4 -0
- package/dist/itemSetVersion.js +8 -1
- package/dist/itemSetVersion.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/vehicle/preview.d.ts +39 -0
- package/dist/vehicle/preview.js +100 -3
- package/dist/vehicle/preview.js.map +1 -1
- package/dist/visualQa/contactSheet.d.ts +16 -0
- package/dist/visualQa/contactSheet.js +41 -0
- package/dist/visualQa/contactSheet.js.map +1 -1
- package/dist/visualQa/harness.d.ts +1 -1
- package/dist/visualQa/vehicle.d.ts +21 -0
- package/dist/visualQa/vehicle.js +286 -32
- package/dist/visualQa/vehicle.js.map +1 -1
- package/dist/visualQa/vehicleCabinFit.d.ts +78 -0
- package/dist/visualQa/vehicleCabinFit.js +55 -0
- package/dist/visualQa/vehicleCabinFit.js.map +1 -0
- package/dist/visualQa/vehicleClearance.d.ts +129 -0
- package/dist/visualQa/vehicleClearance.js +293 -0
- package/dist/visualQa/vehicleClearance.js.map +1 -0
- package/dist/visualQa/vehicleMath.d.ts +8 -0
- package/dist/visualQa/vehicleMath.js +6 -4
- package/dist/visualQa/vehicleMath.js.map +1 -1
- package/dist/visualQa/vehicleOccupants.js +39 -16
- package/dist/visualQa/vehicleOccupants.js.map +1 -1
- package/dist/visualQa/vehiclePoses.d.ts +25 -0
- package/dist/visualQa/vehiclePoses.js +56 -0
- package/dist/visualQa/vehiclePoses.js.map +1 -0
- package/dist/visualQa/vehicleProbe.d.ts +1 -1
- package/dist/visualQa/vehicleProbe.js +98 -5
- package/dist/visualQa/vehicleProbe.js.map +1 -1
- package/dist/visualQa/vehicleStance.js +8 -3
- package/dist/visualQa/vehicleStance.js.map +1 -1
- package/docs/visual-qa.md +86 -1
- package/package.json +1 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_audio.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_engine.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/test_beamng_engine.cpython-312.pyc +0 -0
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ The token is stored in `~/.helix/credentials.json` (mode `600`). It's sent as
|
|
|
58
58
|
| `helix item distribution create\|list\|update\|disable …` | Manage Marketplace/World Claim or Buy routes without republishing the item or paying another publish fee. |
|
|
59
59
|
| `helix item visual-qa <item-id> [--submit] [--local-critic] [--storage-state <file>] [--host <id…>]` | Render the item's current package version headless in the real runtime (test-grounds world for vehicles and whole avatars, the customiser for add-ons and wearables on every declared host/base, the item viewer for props), measure it, and with `--submit` record the backend's verdict (numeric asserts + vision critic) against that exact version. **Marketplace/Vault listing, distributions and version moves on a public item require a pass.** See [docs/visual-qa.md](docs/visual-qa.md). |
|
|
60
60
|
| `helix item visual-qa <item-id> --package-version <v> [--vehicle-package <file>]` | Render a version the item is **not pinned to yet**, so a refused version move can pass the gate before the pointer moves. Vehicles and avatars go through Try Now (vehicles also need the move's vehicle package), add-ons and wearables through the customiser; the bundle names the candidate, and the vehicle checksum is the one the server minted for that trial. Never falls back to the current version. See [docs/visual-qa-candidate-versions.md](docs/visual-qa-candidate-versions.md). With `--submit`, a PASS prints the next command (`helix item set-version …`); a 403 for a non-creator says so on the first line; `--status` also lists the item's pending (sealed, not current) versions. |
|
|
61
|
-
| `helix item set-version <item-id> --package-version <v> --reason <text> [--expected-current-version-id <uuid>] [--json]` | Move an item to a sealed Package Version of its own package (pin resolved from the public Package API; `POST /api/v1/universal-items/<id>/versions`). The flow for a **listed** item: `continuum publish-package` seals vN → `item visual-qa <id> --package-version vN --submit` → `item set-version`. A refusal prints the server's message first (it names the next command), then the remedy and any hosted render it queued. An unknown version lists the sealed ones. |
|
|
61
|
+
| `helix item set-version <item-id> --package-version <v> --reason <text> [--expected-current-version-id <uuid>] [--as-admin] [--json]` | Move an item to a sealed Package Version of its own package (pin resolved from the public Package API; `POST /api/v1/universal-items/<id>/versions`). The flow for a **listed** item: `continuum publish-package` seals vN → `item visual-qa <id> --package-version vN --submit` → `item set-version`. A refusal prints the server's message first (it names the next command), then the remedy and any hosted render it queued. An unknown version lists the sealed ones. `--as-admin` (platform admins, for an item another account created) posts the same body to `POST /api/v1/admin/universal-items/<id>/versions`: same gates (visual QA included, no override), `--reason` recorded with you as the actor. |
|
|
62
62
|
| `helix item thumbnail refresh <item-id> [--force] [--dry-run] [--json]` | Re-render a published item's canonical thumbnail from its **active Package Version** with the standard server renderer (`POST /api/v1/universal-items/<id>/thumbnail/regenerate`, owner or admin). Prints the status (`generated` / `current` / `dry-run`), old -> new thumbnail URL, renderer version and the source lane + Package Version. `--dry-run` writes nothing; `--force` re-renders even when the stored thumbnail is current. Moving an item to a new Package Version now refreshes the thumbnail automatically unless you uploaded one. An older backend answers 404 and the CLI says it does not support thumbnail refresh yet. Not the world `helix thumbnail set <slug>` command. |
|
|
63
63
|
| `helix item thumbnail set <item-id> <image> [--json]` | Upload your own thumbnail (png/jpg/webp, up to 10 MiB, checked locally) for a published item (`PUT /api/v1/universal-items/<id>/thumbnail`, moderated). A creator upload stays in place across version moves until you run `thumbnail refresh --force`. 403 = you are not the item's owner. |
|
|
64
64
|
| `helix device create <dir> --id <slug> --title <t> --model <mesh.glb> --template standing-desk\|clock\|television` | Scaffold a GLB-backed `helix.device/1` definition, including the interactive TV/media-player template. There is intentionally no website Device editor. |
|
package/dist/index.js
CHANGED
|
@@ -638,6 +638,7 @@ vehicleCommand
|
|
|
638
638
|
.command('preview')
|
|
639
639
|
.description('Render a vehicle that is not published yet in the real HELIX runtime (headless) and measure it: ride height against groundToBodyOrigin, '
|
|
640
640
|
+ 'wheels on their hubs, arch clearance, rolling radius, steering, doors, seats. Run it BEFORE the first mint, which locks groundToBodyOrigin. '
|
|
641
|
+
+ 'Every car preview also writes the fixed appearance poses (poses/pose.front|side|rear|top|front34|rear34|cockpit.jpg and poses.jpg) to compare with reference photos. '
|
|
641
642
|
+ 'With --addon <dir> it previews unpublished vehicle ADD-ONS instead: each add-on directory (the layout `vehicle addon check|publish` reads) is fitted '
|
|
642
643
|
+ 'to the candidate car, or to a published car (--item <id>, no car directory) by the engine\'s own fold, and the DRAWN geometry is measured in world space '
|
|
643
644
|
+ 'against its anchor (wheels within 1 cm of each hub, socket-framed parts on their socket, host-framed parts at their authored position, inside the car, '
|
|
@@ -650,7 +651,7 @@ vehicleCommand
|
|
|
650
651
|
.option('--tolerance-cm <cm>', 'with --addon: how far a drawn part may sit from its anchor (default: wheels 1 cm, socket-framed and host-framed parts 3 cm)', (v) => Number(v))
|
|
651
652
|
.option('--out <dir>', 'frames, contact-sheet.jpg, bundle.json and preview.json go here (default: <dir>/.helix-preview)')
|
|
652
653
|
.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)')
|
|
653
|
-
.option('--occupants', 'also seat an avatar in every seat and
|
|
654
|
+
.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)')
|
|
654
655
|
.option('--storage-state <file>', 'Playwright storageState of a signed-in QA account (default: sign in with `helix login`, or $HELIX_VQA_STORAGE_STATE)')
|
|
655
656
|
.option('--chrome <path>', 'Chromium executable (default: Playwright Chromium / Chrome for Testing, headless; the macOS system Chrome is refused)')
|
|
656
657
|
.option('--api-url <url>', 'platform API base URL')
|
|
@@ -1618,12 +1619,13 @@ item
|
|
|
1618
1619
|
.requiredOption('--package-version <version>', 'the sealed version to move to, e.g. 1.0.12')
|
|
1619
1620
|
.requiredOption('--reason <text>', 'required, lands in the audit ledger')
|
|
1620
1621
|
.option('--expected-current-version-id <uuid>', 'refuse if the item has moved off this Package Version since you last read it')
|
|
1622
|
+
.option('--as-admin', 'platform admins only: move an item another account created (POST /api/v1/admin/universal-items/<id>/versions). Same gates as the creator move, including visual QA; --reason is recorded with you as the actor')
|
|
1621
1623
|
.option('--json', 'machine-readable output')
|
|
1622
1624
|
.addHelpText('after', moveUx_1.VERSION_MOVE_FLOW_HELP)
|
|
1623
1625
|
.action(async (itemId, opts) => {
|
|
1624
1626
|
const creds = requireAuth();
|
|
1625
1627
|
try {
|
|
1626
|
-
const result = await (0, itemSetVersion_1.setItemVersion)(itemId, { packageVersion: opts.packageVersion, reason: opts.reason, expectedCurrentVersionId: opts.expectedCurrentVersionId }, creds);
|
|
1628
|
+
const result = await (0, itemSetVersion_1.setItemVersion)(itemId, { packageVersion: opts.packageVersion, reason: opts.reason, expectedCurrentVersionId: opts.expectedCurrentVersionId, asAdmin: opts.asAdmin === true }, creds);
|
|
1627
1629
|
if (opts.json)
|
|
1628
1630
|
console.log(JSON.stringify(result, null, 2));
|
|
1629
1631
|
else
|