@helix3/helix-cli 0.1.15-helix3.245 → 0.1.16-helix3.249
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 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.js.map +1 -1
- package/dist/sceneElements/compiler.js +8 -4
- package/dist/sceneElements/compiler.js.map +1 -1
- package/dist/sceneElements/devices.d.ts +12 -0
- package/dist/sceneElements/devices.js +212 -0
- package/dist/sceneElements/devices.js.map +1 -0
- package/dist/sceneElements/types.d.ts +49 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/unreal/avatarMode.d.ts +21 -0
- package/dist/unreal/avatarMode.js +33 -0
- package/dist/unreal/avatarMode.js.map +1 -0
- package/dist/unreal/release.d.ts +3 -0
- package/dist/unreal/release.js +6 -2
- package/dist/unreal/release.js.map +1 -1
- package/dist/unreal.d.ts +1 -0
- package/dist/unreal.js +4 -1
- package/dist/unreal.js.map +1 -1
- package/package.json +2 -2
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.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/README.md
CHANGED
|
@@ -51,6 +51,7 @@ The token is stored in `~/.helix/credentials.json` (mode `600`). It's sent as
|
|
|
51
51
|
| `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. |
|
|
52
52
|
| `helix device validate [dir] [--json]` | Validate the definition, GLB bytes and named-node bindings, typed state/controls, capabilities, and Home+World compatibility. |
|
|
53
53
|
| `helix device test [dir] [--mode single\|multiplayer\|both] [--json]` | Exercise every interaction, persistence remount, and deterministic one-/two-client authority convergence. |
|
|
54
|
+
| `helix world scene-elements compile <input> --output <scene>` | Compile typed Scene v2 authoring, including exact Continuum Device pins, instances, and locally validated typed links. See [`examples/scene-elements-devices.json`](examples/scene-elements-devices.json). |
|
|
54
55
|
| `helix preview-video <slug> <youtube-url>` | Set or clear a published world's YouTube preview. |
|
|
55
56
|
| `helix thumbnail set <slug> <file>` | Upload a thumbnail or preview image through the CLI-owned media path. |
|
|
56
57
|
| `helix assets search\|get\|versions\|track\|install\|update` | Search the typed Vault with explainable ranking; inspect/manage annotations and immutable versions; install by durable ID with verified SHA-256 receipts. Material installs default to lean runtime KTX2 maps; use `--material-renditions source` for source PNGs or `all` for both families. |
|
package/dist/index.js
CHANGED
|
@@ -4682,7 +4682,7 @@ const sceneElements = world
|
|
|
4682
4682
|
.description('Compile nested typed architectural authoring data into native Scene v2');
|
|
4683
4683
|
sceneElements
|
|
4684
4684
|
.command('compile')
|
|
4685
|
-
.description('Compile a helix.scene-elements/1 or /2 document
|
|
4685
|
+
.description('Compile a helix.scene-elements/1 or /2 document, including exact pinned Devices, into sealed Scene v2')
|
|
4686
4686
|
.argument('<input>', 'semantic scene-elements JSON file')
|
|
4687
4687
|
.requiredOption('-o, --output <file>', 'output .helix-scene.json file')
|
|
4688
4688
|
.action(async (input, opts) => {
|
|
@@ -4706,6 +4706,11 @@ sceneElements
|
|
|
4706
4706
|
scene: { id: scene.id, revision: scene.revision, integritySha256: scene.integrity.sha256 },
|
|
4707
4707
|
primitives: scene.nodes.filter((node) => node.components?.some((component) => component.type === 'render.primitive')).length,
|
|
4708
4708
|
resources: scene.resources.length,
|
|
4709
|
+
devices: {
|
|
4710
|
+
definitions: scene.itemDefinitions.filter((definition) => 'packageId' in definition).length,
|
|
4711
|
+
instances: scene.itemInstances.length,
|
|
4712
|
+
links: scene.deviceLinks?.length ?? 0,
|
|
4713
|
+
},
|
|
4709
4714
|
bundleFiles: bundleFiles.map((asset) => asset.uri),
|
|
4710
4715
|
}, null, 2));
|
|
4711
4716
|
}
|
|
@@ -5475,11 +5480,13 @@ unreal
|
|
|
5475
5480
|
.option('--version <version>', 'release version', '1.0.0')
|
|
5476
5481
|
.option('--max-players <n>', 'runtime policy max players', '1')
|
|
5477
5482
|
.option('--rating <rating>', 'everyone, teen, or mature', 'everyone')
|
|
5483
|
+
.option('--avatar-mode <mode>', 'universal or world-default (default: universal)', 'universal')
|
|
5478
5484
|
.option('--out <file>', 'where to write it (default: <publishDir>/continuum/world-release.json)')
|
|
5479
5485
|
.option('--json', 'machine-readable result')
|
|
5480
5486
|
.action(async (publishDir, opts) => {
|
|
5481
5487
|
try {
|
|
5482
5488
|
const { buildUnrealWorldRelease } = await Promise.resolve().then(() => __importStar(require('./unreal/release')));
|
|
5489
|
+
const avatarMode = (0, unreal_1.parseAvatarMode)(opts.avatarMode);
|
|
5483
5490
|
const result = await buildUnrealWorldRelease({
|
|
5484
5491
|
publishDir,
|
|
5485
5492
|
worldId: opts.world,
|
|
@@ -5489,6 +5496,7 @@ unreal
|
|
|
5489
5496
|
version: opts.version,
|
|
5490
5497
|
maxPlayers: Number(opts.maxPlayers),
|
|
5491
5498
|
contentRating: opts.rating,
|
|
5499
|
+
avatarMode,
|
|
5492
5500
|
outPath: opts.out,
|
|
5493
5501
|
});
|
|
5494
5502
|
if (opts.json) {
|