@helix3/helix-cli 0.1.13-helix3.64 → 0.1.13-helix3.66
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 +44 -1
- package/dist/assets.d.ts +93 -9
- package/dist/assets.js +224 -14
- package/dist/assets.js.map +1 -1
- package/dist/character/fbx.d.ts +6 -0
- package/dist/character/fbx.js +50 -0
- package/dist/character/fbx.js.map +1 -0
- package/dist/character/importCharacter.d.ts +18 -0
- package/dist/character/importCharacter.js +83 -11
- package/dist/character/importCharacter.js.map +1 -1
- package/dist/character/meshyToHelixMap.d.ts +4 -0
- package/dist/character/meshyToHelixMap.js +13 -1
- package/dist/character/meshyToHelixMap.js.map +1 -1
- package/dist/character/stages/retargetClip.d.ts +4 -1
- package/dist/character/stages/retargetClip.js +19 -2
- package/dist/character/stages/retargetClip.js.map +1 -1
- package/dist/index.js +98 -5
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -1
- package/dist/lib.js +6 -1
- package/dist/lib.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -51,8 +51,10 @@ The token is stored in `~/.helix/credentials.json` (mode `600`). It's sent as
|
|
|
51
51
|
| `helix assets start\|status\|generate\|resume` | Start or poll generation without duplicates. Props/characters use the main Dreamer path; standalone assets use the shared broker and report the auto-published `vaultAssetId`. |
|
|
52
52
|
| `helix assets generate-image\|generate-material\|generate-audio\|generate-environment` | Run the supported standalone generation adapters. Material is a validated PBR bundle (1K default, explicit 2K); splats declare object/environment scope. Animation remains an explicit unavailable boundary. |
|
|
53
53
|
| `helix assets start-reference\|generate-reference` | Start or fully drive a character job from a local four-view PNG/JPEG/WebP. The backend validates and reuses the exact sheet; it skips image generation while preserving mesh, texture, rig, LOD, thumbnail, billing, and Vault publication. |
|
|
54
|
-
| `helix assets materials
|
|
54
|
+
| `helix assets materials [--resolution <res>] [--human]` | Discover the small built-in material palette. `--resolution` keeps only materials carrying that texture resolution. |
|
|
55
|
+
| `helix assets material <id> [--resolution <res>] [--human]` | Resolve one material to its immutable map URLs at the resolution you pick (default: the pack's own default). |
|
|
55
56
|
| `helix assets credits\|check-loaders` | Render asset credits from provenance and reject models requiring unsupported loaders. |
|
|
57
|
+
| `helix character retarget-animation <clip.fbx\|clip.glb>` | Retarget a raw Mixamo/Meshy clip directly to `helix-humanoid@1`. FBX conversion is deterministic and runs inside the CLI; no hidden Blender/DCC pre-export is required. |
|
|
56
58
|
| `helix world audit\|source-audit\|perf-gate\|prove-live` | Run the blocking world QA, performance, and deployed-build identity gates. |
|
|
57
59
|
| `helix doctor [--project <dir>]` | Print the environment + whether the @helix toolchain (CLI/MCP/SDK/manifest) is current. |
|
|
58
60
|
|
|
@@ -163,6 +165,47 @@ The reference endpoint is character-only. The file is image-guarded, normalized,
|
|
|
163
165
|
checksum-bound to the job, semantically validated, and mirrored before approval.
|
|
164
166
|
Retries reuse those same bytes and never invoke or charge the image provider.
|
|
165
167
|
|
|
168
|
+
## Material texture resolution
|
|
169
|
+
|
|
170
|
+
A platform material can ship more than one texture resolution. `--resolution` picks which one you
|
|
171
|
+
get; without it you get the pack's declared default, byte-for-byte what every earlier CLI returned.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
helix assets material brick-block # the pack's default resolution
|
|
175
|
+
helix assets material brick-block --resolution 2k # the 2K variant's map URLs
|
|
176
|
+
helix assets material brick-block --resolution 2048 # same thing — numeric spelling
|
|
177
|
+
helix assets materials --resolution 2k --human # only materials that carry 2K
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Accepted values are the keys the catalog itself declares (`1k`, `2k`, …), case-insensitively, plus
|
|
181
|
+
the numeric aliases `1024`/`2048`, which map onto the variant authored at that pixel edge.
|
|
182
|
+
|
|
183
|
+
Both commands print JSON by default (agents and the MCP delegation parse it); `--human` prints a
|
|
184
|
+
readable summary instead. Either way the output states **which resolution was resolved and which
|
|
185
|
+
ones the material offers**, under `resolution`:
|
|
186
|
+
|
|
187
|
+
```jsonc
|
|
188
|
+
"resolution": {
|
|
189
|
+
"requested": "2k", "resolved": "2k", "pixels": 2048, "default": "1k",
|
|
190
|
+
"available": [{ "key": "1k", "pixels": 1024 }, { "key": "2k", "pixels": 2048 }],
|
|
191
|
+
"applicable": true
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Three rules make this safe to rely on:
|
|
196
|
+
|
|
197
|
+
- **No silent fallback, ever.** Asking for a resolution the material does not carry is an error that
|
|
198
|
+
names the ones it does. You never receive a different resolution than the one you asked for.
|
|
199
|
+
- **Old packs keep working.** A catalog with no `resolutions` block (`schemaVersion: 1`) is treated
|
|
200
|
+
as having exactly one resolution, keyed `default`, derived from its existing `maps`. Such a pack
|
|
201
|
+
never claims to be "1k" — it does not say how big its textures are, so neither do we.
|
|
202
|
+
- **Procedural materials are not an error.** `glass` and `procedural_water` carry no texture maps;
|
|
203
|
+
a resolution request against them is ignored and the output says so in `resolution.note`.
|
|
204
|
+
|
|
205
|
+
`helix assets install` has no resolution flag: Vault related-artifact roles are semantic
|
|
206
|
+
(`source.albedo`, `runtime.ktx2.normal`, `sky.backdrop`), never resolution-tagged, so a filter there
|
|
207
|
+
would filter nothing.
|
|
208
|
+
|
|
166
209
|
## Item publish flow
|
|
167
210
|
|
|
168
211
|
`helix item publish` is a different shape from a world publish: one mesh, one round trip, an
|
package/dist/assets.d.ts
CHANGED
|
@@ -229,25 +229,108 @@ export declare class UnavailableCapabilityError extends Error {
|
|
|
229
229
|
readonly code = "CAPABILITY_UNAVAILABLE";
|
|
230
230
|
constructor(capability: string, message: string);
|
|
231
231
|
}
|
|
232
|
+
export type MaterialMaps = {
|
|
233
|
+
albedo: string;
|
|
234
|
+
normal: string;
|
|
235
|
+
orm: string;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* One texture-resolution variant a catalog entry declares (pack catalog
|
|
239
|
+
* schemaVersion 2+). `pixels` is the authored square edge, e.g. 2048 for "2k".
|
|
240
|
+
*/
|
|
241
|
+
export type MaterialResolutionVariant = {
|
|
242
|
+
pixels?: number;
|
|
243
|
+
maps: MaterialMaps;
|
|
244
|
+
};
|
|
232
245
|
export type MaterialCatalogEntry = {
|
|
233
246
|
id: string;
|
|
234
247
|
name: string;
|
|
235
248
|
category: string;
|
|
236
249
|
kind: 'texture' | 'glass' | 'procedural_water';
|
|
237
250
|
tags: string[];
|
|
238
|
-
maps
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
251
|
+
/** The DEFAULT resolution's maps. Unchanged across schema versions. */
|
|
252
|
+
maps?: MaterialMaps;
|
|
253
|
+
/** Catalog schemaVersion 2+: names which `resolutions` key `maps` mirrors. */
|
|
254
|
+
defaultResolution?: string;
|
|
255
|
+
/** Catalog schemaVersion 2+: every texture resolution this material carries. */
|
|
256
|
+
resolutions?: Record<string, MaterialResolutionVariant>;
|
|
243
257
|
[key: string]: unknown;
|
|
244
258
|
};
|
|
259
|
+
/** One resolvable resolution of one material, normalized across schema versions. */
|
|
260
|
+
export type MaterialResolutionOption = {
|
|
261
|
+
key: string;
|
|
262
|
+
pixels: number | null;
|
|
263
|
+
maps: MaterialMaps;
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* What a command actually resolved, and what else it could have. Present on
|
|
267
|
+
* every material this CLI returns so a caller can SEE the choice it has
|
|
268
|
+
* instead of guessing — and so a silent downgrade is impossible.
|
|
269
|
+
*/
|
|
270
|
+
export type MaterialResolutionReport = {
|
|
271
|
+
/** Exactly what the caller passed, or null when they did not ask. */
|
|
272
|
+
requested: string | null;
|
|
273
|
+
/** The catalog key whose maps were used; null when the material has none. */
|
|
274
|
+
resolved: string | null;
|
|
275
|
+
/** Authored square edge of the resolved variant when the pack declares it. */
|
|
276
|
+
pixels: number | null;
|
|
277
|
+
/** The key this material treats as its default. */
|
|
278
|
+
default: string | null;
|
|
279
|
+
available: Array<{
|
|
280
|
+
key: string;
|
|
281
|
+
pixels: number | null;
|
|
282
|
+
}>;
|
|
283
|
+
/** false for procedural materials — they carry no texture maps at all. */
|
|
284
|
+
applicable: boolean;
|
|
285
|
+
note?: string;
|
|
286
|
+
};
|
|
287
|
+
export type ResolvedMaterial = MaterialCatalogEntry & {
|
|
288
|
+
resolvedMaps?: Record<string, string>;
|
|
289
|
+
resolution: MaterialResolutionReport;
|
|
290
|
+
};
|
|
245
291
|
export type MaterialCatalogResult = {
|
|
246
292
|
slug: string;
|
|
247
293
|
version: string;
|
|
294
|
+
/** The catalog's own schemaVersion, verbatim (1 = no per-resolution variants). */
|
|
295
|
+
schemaVersion: string | number | null;
|
|
248
296
|
assetBaseUrl: string;
|
|
249
|
-
materials:
|
|
297
|
+
materials: ResolvedMaterial[];
|
|
298
|
+
resolution: {
|
|
299
|
+
requested: string | null;
|
|
300
|
+
/** Every resolution key offered by ANY material in this pack. */
|
|
301
|
+
packResolutions: Array<{
|
|
302
|
+
key: string;
|
|
303
|
+
pixels: number | null;
|
|
304
|
+
}>;
|
|
305
|
+
matched: number;
|
|
306
|
+
/** Texture materials dropped because they lack the requested resolution. */
|
|
307
|
+
skippedWithoutResolution: number;
|
|
308
|
+
/** Procedural materials dropped because they carry no texture maps. */
|
|
309
|
+
skippedProcedural: number;
|
|
310
|
+
};
|
|
250
311
|
};
|
|
312
|
+
/**
|
|
313
|
+
* The label a schemaVersion-1 entry's single resolution gets. Such a pack never
|
|
314
|
+
* says how big its maps are, so naming it "1k" would be a guess presented as a
|
|
315
|
+
* fact — and a creator asking for "1k" would then be silently served whatever
|
|
316
|
+
* the pack happens to hold. "default" is the only honest label.
|
|
317
|
+
*/
|
|
318
|
+
export declare const DEFAULT_RESOLUTION_KEY = "default";
|
|
319
|
+
/**
|
|
320
|
+
* Every resolution a material offers, in catalog-declared order, normalized so
|
|
321
|
+
* that an old single-resolution pack and a new multi-resolution pack are the
|
|
322
|
+
* same shape to every caller above this line.
|
|
323
|
+
*/
|
|
324
|
+
export declare function materialResolutionOptions(material: MaterialCatalogEntry): MaterialResolutionOption[];
|
|
325
|
+
/** The key whose maps the pack mirrors at the top level — the default download. */
|
|
326
|
+
export declare function materialDefaultResolutionKey(material: MaterialCatalogEntry, options?: MaterialResolutionOption[]): string | null;
|
|
327
|
+
/**
|
|
328
|
+
* Match a requested resolution against what a material declares. Exact keys win
|
|
329
|
+
* (case-insensitively); `1024`/`2048` and `1k`/`2k` are accepted as aliases of
|
|
330
|
+
* each other so a caller never has to know which spelling a pack chose.
|
|
331
|
+
* Returns null when nothing matches — the caller MUST then fail loudly.
|
|
332
|
+
*/
|
|
333
|
+
export declare function matchMaterialResolution(options: MaterialResolutionOption[], requested: string): MaterialResolutionOption | null;
|
|
251
334
|
export declare function generateAndPublishAsset(creds: CliCredentials, input: GenerateAssetInput, options?: GenerateAssetOptions): Promise<DreamerAssetJob>;
|
|
252
335
|
export declare function generateAndPublishAssetFromReference(creds: CliCredentials, input: GenerateAssetFromReferenceInput, options?: GenerateAssetOptions): Promise<DreamerAssetJob>;
|
|
253
336
|
export declare function startDreamerAssetGeneration(creds: CliCredentials, input: GenerateAssetInput): Promise<DreamerAssetJob>;
|
|
@@ -326,7 +409,8 @@ export declare function listMaterials(apiUrl: string, query?: {
|
|
|
326
409
|
q?: string;
|
|
327
410
|
category?: string;
|
|
328
411
|
limit?: number;
|
|
412
|
+
resolution?: string;
|
|
329
413
|
}, slug?: string): Promise<MaterialCatalogResult>;
|
|
330
|
-
export declare function resolveMaterial(apiUrl: string, id: string, slug?: string
|
|
331
|
-
|
|
332
|
-
}>;
|
|
414
|
+
export declare function resolveMaterial(apiUrl: string, id: string, slug?: string, options?: {
|
|
415
|
+
resolution?: string;
|
|
416
|
+
}): Promise<ResolvedMaterial>;
|
package/dist/assets.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnavailableCapabilityError = exports.AUDIO_GENERATION_TIMEOUT_MS = exports.VAULT_ASSET_KINDS = void 0;
|
|
3
|
+
exports.DEFAULT_RESOLUTION_KEY = exports.UnavailableCapabilityError = exports.AUDIO_GENERATION_TIMEOUT_MS = exports.VAULT_ASSET_KINDS = void 0;
|
|
4
|
+
exports.materialResolutionOptions = materialResolutionOptions;
|
|
5
|
+
exports.materialDefaultResolutionKey = materialDefaultResolutionKey;
|
|
6
|
+
exports.matchMaterialResolution = matchMaterialResolution;
|
|
4
7
|
exports.generateAndPublishAsset = generateAndPublishAsset;
|
|
5
8
|
exports.generateAndPublishAssetFromReference = generateAndPublishAssetFromReference;
|
|
6
9
|
exports.startDreamerAssetGeneration = startDreamerAssetGeneration;
|
|
@@ -52,6 +55,184 @@ class UnavailableCapabilityError extends Error {
|
|
|
52
55
|
}
|
|
53
56
|
}
|
|
54
57
|
exports.UnavailableCapabilityError = UnavailableCapabilityError;
|
|
58
|
+
/**
|
|
59
|
+
* The label a schemaVersion-1 entry's single resolution gets. Such a pack never
|
|
60
|
+
* says how big its maps are, so naming it "1k" would be a guess presented as a
|
|
61
|
+
* fact — and a creator asking for "1k" would then be silently served whatever
|
|
62
|
+
* the pack happens to hold. "default" is the only honest label.
|
|
63
|
+
*/
|
|
64
|
+
exports.DEFAULT_RESOLUTION_KEY = 'default';
|
|
65
|
+
const isMapTable = (value) => !!value &&
|
|
66
|
+
typeof value === 'object' &&
|
|
67
|
+
!Array.isArray(value) &&
|
|
68
|
+
Object.values(value).every((entry) => typeof entry === 'string');
|
|
69
|
+
/**
|
|
70
|
+
* Every resolution a material offers, in catalog-declared order, normalized so
|
|
71
|
+
* that an old single-resolution pack and a new multi-resolution pack are the
|
|
72
|
+
* same shape to every caller above this line.
|
|
73
|
+
*/
|
|
74
|
+
function materialResolutionOptions(material) {
|
|
75
|
+
const declared = material.resolutions;
|
|
76
|
+
if (declared && typeof declared === 'object' && !Array.isArray(declared)) {
|
|
77
|
+
const options = Object.entries(declared)
|
|
78
|
+
.filter(([key, variant]) => key.trim() !== '' && isMapTable(variant?.maps))
|
|
79
|
+
.map(([key, variant]) => ({
|
|
80
|
+
key,
|
|
81
|
+
pixels: typeof variant.pixels === 'number' && Number.isFinite(variant.pixels) ? variant.pixels : null,
|
|
82
|
+
maps: variant.maps,
|
|
83
|
+
}));
|
|
84
|
+
if (options.length)
|
|
85
|
+
return options;
|
|
86
|
+
}
|
|
87
|
+
// schemaVersion 1 (or an entry with no `resolutions`): exactly one resolution,
|
|
88
|
+
// derived from the top-level maps that every existing client already reads.
|
|
89
|
+
if (isMapTable(material.maps)) {
|
|
90
|
+
return [
|
|
91
|
+
{
|
|
92
|
+
key: (typeof material.defaultResolution === 'string' && material.defaultResolution.trim()) || exports.DEFAULT_RESOLUTION_KEY,
|
|
93
|
+
pixels: null,
|
|
94
|
+
maps: material.maps,
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
}
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
const sameMaps = (a, b) => {
|
|
101
|
+
const left = Object.entries(a).sort(([x], [y]) => x.localeCompare(y));
|
|
102
|
+
const right = Object.entries(b).sort(([x], [y]) => x.localeCompare(y));
|
|
103
|
+
return (left.length === right.length &&
|
|
104
|
+
left.every(([key, value], index) => right[index][0] === key && right[index][1] === value));
|
|
105
|
+
};
|
|
106
|
+
/** The key whose maps the pack mirrors at the top level — the default download. */
|
|
107
|
+
function materialDefaultResolutionKey(material, options = materialResolutionOptions(material)) {
|
|
108
|
+
if (!options.length)
|
|
109
|
+
return null;
|
|
110
|
+
const declared = typeof material.defaultResolution === 'string' ? material.defaultResolution.trim().toLowerCase() : '';
|
|
111
|
+
if (declared) {
|
|
112
|
+
const named = options.find((option) => option.key.toLowerCase() === declared);
|
|
113
|
+
if (named)
|
|
114
|
+
return named.key;
|
|
115
|
+
}
|
|
116
|
+
if (isMapTable(material.maps)) {
|
|
117
|
+
const mirrored = options.find((option) => sameMaps(option.maps, material.maps));
|
|
118
|
+
if (mirrored)
|
|
119
|
+
return mirrored.key;
|
|
120
|
+
}
|
|
121
|
+
return options[0].key;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Match a requested resolution against what a material declares. Exact keys win
|
|
125
|
+
* (case-insensitively); `1024`/`2048` and `1k`/`2k` are accepted as aliases of
|
|
126
|
+
* each other so a caller never has to know which spelling a pack chose.
|
|
127
|
+
* Returns null when nothing matches — the caller MUST then fail loudly.
|
|
128
|
+
*/
|
|
129
|
+
function matchMaterialResolution(options, requested) {
|
|
130
|
+
const wanted = requested.trim().toLowerCase();
|
|
131
|
+
if (!wanted)
|
|
132
|
+
return null;
|
|
133
|
+
const exact = options.find((option) => option.key.toLowerCase() === wanted);
|
|
134
|
+
if (exact)
|
|
135
|
+
return exact;
|
|
136
|
+
// Numeric spelling ("2048", "2048px") → the variant authored at that edge, or
|
|
137
|
+
// the conventional "2k" key when the pack declares no pixel counts.
|
|
138
|
+
const numeric = /^(\d+)(?:px)?$/.exec(wanted);
|
|
139
|
+
if (numeric) {
|
|
140
|
+
const pixels = Number(numeric[1]);
|
|
141
|
+
const byPixels = options.find((option) => option.pixels === pixels);
|
|
142
|
+
if (byPixels)
|
|
143
|
+
return byPixels;
|
|
144
|
+
if (pixels > 0 && pixels % 1024 === 0) {
|
|
145
|
+
const derived = `${pixels / 1024}k`;
|
|
146
|
+
const byDerivedKey = options.find((option) => option.key.toLowerCase() === derived);
|
|
147
|
+
if (byDerivedKey)
|
|
148
|
+
return byDerivedKey;
|
|
149
|
+
}
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
// "k" spelling → the variant authored at that edge, for a pack whose keys are
|
|
153
|
+
// named something else entirely but which declares pixels.
|
|
154
|
+
const kilo = /^(\d+(?:\.\d+)?)k$/.exec(wanted);
|
|
155
|
+
if (kilo) {
|
|
156
|
+
const pixels = Math.round(Number(kilo[1]) * 1024);
|
|
157
|
+
const byPixels = options.find((option) => option.pixels === pixels);
|
|
158
|
+
if (byPixels)
|
|
159
|
+
return byPixels;
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
const renderResolutionList = (options) => options.length
|
|
164
|
+
? options.map((option) => (option.pixels ? `${option.key} (${option.pixels}px)` : option.key)).join(', ')
|
|
165
|
+
: '(none)';
|
|
166
|
+
const publicResolutions = (options) => options.map(({ key, pixels }) => ({ key, pixels }));
|
|
167
|
+
/** Union of every resolution key in the pack, in first-seen order. */
|
|
168
|
+
function packResolutionOptions(materials) {
|
|
169
|
+
const seen = new Map();
|
|
170
|
+
for (const material of materials) {
|
|
171
|
+
for (const option of materialResolutionOptions(material)) {
|
|
172
|
+
const id = option.key.toLowerCase();
|
|
173
|
+
const prior = seen.get(id);
|
|
174
|
+
if (!prior)
|
|
175
|
+
seen.set(id, { key: option.key, pixels: option.pixels });
|
|
176
|
+
else if (prior.pixels === null && option.pixels !== null)
|
|
177
|
+
prior.pixels = option.pixels;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return [...seen.values()];
|
|
181
|
+
}
|
|
182
|
+
function absoluteMaps(maps, assetBaseUrl) {
|
|
183
|
+
return Object.fromEntries(Object.entries(maps).map(([key, value]) => [
|
|
184
|
+
key,
|
|
185
|
+
/^https?:\/\//i.test(value) ? value : `${assetBaseUrl}/${value.replace(/^\/+/, '')}`,
|
|
186
|
+
]));
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Attach the resolution report (and, when asked, the resolved absolute map
|
|
190
|
+
* URLs) to one catalog entry. Throws when the caller asked for a resolution
|
|
191
|
+
* this material does not carry — never falls back to a different one.
|
|
192
|
+
*/
|
|
193
|
+
function describeMaterialResolution(material, assetBaseUrl, requested) {
|
|
194
|
+
const options = materialResolutionOptions(material);
|
|
195
|
+
const available = publicResolutions(options);
|
|
196
|
+
const defaultKey = materialDefaultResolutionKey(material, options);
|
|
197
|
+
if (!options.length) {
|
|
198
|
+
// Procedural (glass / water): no maps exist, so a resolution is not an
|
|
199
|
+
// error — it simply does not apply, and we say so out loud.
|
|
200
|
+
return {
|
|
201
|
+
...material,
|
|
202
|
+
resolution: {
|
|
203
|
+
requested,
|
|
204
|
+
resolved: null,
|
|
205
|
+
pixels: null,
|
|
206
|
+
default: null,
|
|
207
|
+
available,
|
|
208
|
+
applicable: false,
|
|
209
|
+
...(requested
|
|
210
|
+
? {
|
|
211
|
+
note: `"${material.id}" is a procedural ${material.kind} material with no texture maps — resolution "${requested}" does not apply and was ignored.`,
|
|
212
|
+
}
|
|
213
|
+
: {}),
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
const selected = requested
|
|
218
|
+
? matchMaterialResolution(options, requested)
|
|
219
|
+
: options.find((option) => option.key === defaultKey) ?? options[0];
|
|
220
|
+
if (!selected) {
|
|
221
|
+
throw new Error(`Material "${material.id}" does not offer resolution "${requested}" — available: ${renderResolutionList(available)}`);
|
|
222
|
+
}
|
|
223
|
+
return {
|
|
224
|
+
...material,
|
|
225
|
+
resolvedMaps: absoluteMaps(selected.maps, assetBaseUrl),
|
|
226
|
+
resolution: {
|
|
227
|
+
requested,
|
|
228
|
+
resolved: selected.key,
|
|
229
|
+
pixels: selected.pixels,
|
|
230
|
+
default: defaultKey,
|
|
231
|
+
available,
|
|
232
|
+
applicable: true,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
55
236
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
56
237
|
function isTerminalFailure(job) {
|
|
57
238
|
return ['failed', 'blocked_insufficient_spark', 'cancelled'].includes(job.status);
|
|
@@ -492,6 +673,13 @@ async function listMaterials(apiUrl, query = {}, slug = 'helix-materials') {
|
|
|
492
673
|
const catalog = (await response.json());
|
|
493
674
|
if (!Array.isArray(catalog.materials))
|
|
494
675
|
throw new Error('Material catalog is invalid');
|
|
676
|
+
const requested = query.resolution?.trim() ? query.resolution.trim() : null;
|
|
677
|
+
const packResolutions = packResolutionOptions(catalog.materials);
|
|
678
|
+
// A resolution this pack does not carry ANYWHERE is a loud failure, not an
|
|
679
|
+
// empty result — an empty list reads as "no materials matched your search".
|
|
680
|
+
if (requested && !catalog.materials.some((material) => matchMaterialResolution(materialResolutionOptions(material), requested))) {
|
|
681
|
+
throw new Error(`Material pack "${catalog.pack?.slug ?? slug}"@${catalog.pack?.version ?? 'latest'} does not offer resolution "${requested}" — available: ${renderResolutionList(packResolutions)}`);
|
|
682
|
+
}
|
|
495
683
|
const needle = query.q?.trim().toLowerCase() ?? '';
|
|
496
684
|
const matched = catalog.materials.filter((material) => {
|
|
497
685
|
if (query.category && material.category !== query.category)
|
|
@@ -502,29 +690,51 @@ async function listMaterials(apiUrl, query = {}, slug = 'helix-materials') {
|
|
|
502
690
|
.toLowerCase()
|
|
503
691
|
.includes(needle));
|
|
504
692
|
});
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
693
|
+
let skippedWithoutResolution = 0;
|
|
694
|
+
let skippedProcedural = 0;
|
|
695
|
+
const carried = requested
|
|
696
|
+
? matched.filter((material) => {
|
|
697
|
+
const options = materialResolutionOptions(material);
|
|
698
|
+
if (!options.length) {
|
|
699
|
+
skippedProcedural += 1;
|
|
700
|
+
return false;
|
|
701
|
+
}
|
|
702
|
+
if (!matchMaterialResolution(options, requested)) {
|
|
703
|
+
skippedWithoutResolution += 1;
|
|
704
|
+
return false;
|
|
705
|
+
}
|
|
706
|
+
return true;
|
|
707
|
+
})
|
|
708
|
+
: matched;
|
|
709
|
+
const limited = query.limit === undefined
|
|
710
|
+
? carried
|
|
711
|
+
: carried.slice(0, Math.max(0, Math.floor(query.limit)));
|
|
712
|
+
const materials = limited.map((material) => describeMaterialResolution(material, assetBaseUrl, requested));
|
|
508
713
|
return {
|
|
509
714
|
slug: catalog.pack?.slug ?? slug,
|
|
510
715
|
version: catalog.pack?.version ?? 'latest',
|
|
716
|
+
schemaVersion: catalog.schemaVersion ?? null,
|
|
511
717
|
assetBaseUrl,
|
|
512
718
|
materials,
|
|
719
|
+
resolution: {
|
|
720
|
+
requested,
|
|
721
|
+
packResolutions,
|
|
722
|
+
matched: materials.length,
|
|
723
|
+
skippedWithoutResolution,
|
|
724
|
+
skippedProcedural,
|
|
725
|
+
},
|
|
513
726
|
};
|
|
514
727
|
}
|
|
515
|
-
async function resolveMaterial(apiUrl, id, slug = 'helix-materials') {
|
|
728
|
+
async function resolveMaterial(apiUrl, id, slug = 'helix-materials', options = {}) {
|
|
729
|
+
// Resolve against the UNFILTERED catalog: the resolution check belongs to the
|
|
730
|
+
// named material, so `helix assets material <id> --resolution 4k` must say
|
|
731
|
+
// what THAT material offers, not "not found".
|
|
516
732
|
const catalog = await listMaterials(apiUrl, {}, slug);
|
|
517
733
|
const material = catalog.materials.find((candidate) => candidate.id === id);
|
|
518
734
|
if (!material)
|
|
519
735
|
throw new Error(`Material "${id}" was not found in ${slug}`);
|
|
520
|
-
const
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
/^https?:\/\//i.test(value)
|
|
524
|
-
? value
|
|
525
|
-
: `${catalog.assetBaseUrl}/${value.replace(/^\/+/, '')}`,
|
|
526
|
-
]))
|
|
527
|
-
: undefined;
|
|
528
|
-
return { ...material, ...(resolvedMaps ? { resolvedMaps } : {}) };
|
|
736
|
+
const requested = options.resolution?.trim() ? options.resolution.trim() : null;
|
|
737
|
+
const { resolvedMaps: _ignored, resolution: _prior, ...entry } = material;
|
|
738
|
+
return describeMaterialResolution(entry, catalog.assetBaseUrl, requested);
|
|
529
739
|
}
|
|
530
740
|
//# sourceMappingURL=assets.js.map
|
package/dist/assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministically converts an FBX into the same binary glTF input consumed by
|
|
3
|
+
* the character retarget stages. Keeping this inside the published CLI closes
|
|
4
|
+
* the previous hidden dependency on a DCC export before `character import`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function convertFbxToGlb(path: string): Promise<Uint8Array>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.convertFbxToGlb = convertFbxToGlb;
|
|
4
|
+
const promises_1 = require("node:fs/promises");
|
|
5
|
+
const node_buffer_1 = require("node:buffer");
|
|
6
|
+
const FBXLoader_js_1 = require("three/examples/jsm/loaders/FBXLoader.js");
|
|
7
|
+
const GLTFExporter_js_1 = require("three/examples/jsm/exporters/GLTFExporter.js");
|
|
8
|
+
class NodeFileReader {
|
|
9
|
+
result = null;
|
|
10
|
+
onloadend = null;
|
|
11
|
+
readAsArrayBuffer(blob) {
|
|
12
|
+
void blob.arrayBuffer().then((value) => {
|
|
13
|
+
this.result = value;
|
|
14
|
+
this.onloadend?.();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
readAsDataURL(blob) {
|
|
18
|
+
void blob.arrayBuffer().then((value) => {
|
|
19
|
+
this.result = `data:${blob.type};base64,${node_buffer_1.Buffer.from(value).toString('base64')}`;
|
|
20
|
+
this.onloadend?.();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function ensureFileReader() {
|
|
25
|
+
const host = globalThis;
|
|
26
|
+
host.FileReader ??= NodeFileReader;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Deterministically converts an FBX into the same binary glTF input consumed by
|
|
30
|
+
* the character retarget stages. Keeping this inside the published CLI closes
|
|
31
|
+
* the previous hidden dependency on a DCC export before `character import`.
|
|
32
|
+
*/
|
|
33
|
+
async function convertFbxToGlb(path) {
|
|
34
|
+
const bytes = await (0, promises_1.readFile)(path);
|
|
35
|
+
const arrayBuffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength);
|
|
36
|
+
const root = new FBXLoader_js_1.FBXLoader().parse(arrayBuffer, '');
|
|
37
|
+
const animations = root.animations.filter((clip) => clip.tracks.length > 0);
|
|
38
|
+
ensureFileReader();
|
|
39
|
+
const exported = await new GLTFExporter_js_1.GLTFExporter().parseAsync(root, {
|
|
40
|
+
animations,
|
|
41
|
+
binary: true,
|
|
42
|
+
onlyVisible: false,
|
|
43
|
+
trs: true,
|
|
44
|
+
});
|
|
45
|
+
if (!(exported instanceof ArrayBuffer)) {
|
|
46
|
+
throw new Error('FBX conversion did not produce a binary glTF');
|
|
47
|
+
}
|
|
48
|
+
return new Uint8Array(exported);
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=fbx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fbx.js","sourceRoot":"","sources":["../../src/character/fbx.ts"],"names":[],"mappings":";;AAoCA,0CAmBC;AAvDD,+CAA4C;AAC5C,6CAAqC;AACrC,0EAAoE;AACpE,kFAA4E;AAE5E,MAAM,cAAc;IAClB,MAAM,GAAgC,IAAI,CAAC;IAC3C,SAAS,GAAwB,IAAI,CAAC;IAEtC,iBAAiB,CAAC,IAAU;QAC1B,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,IAAU;QACtB,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,QAAQ,IAAI,CAAC,IAAI,WAAW,oBAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,gBAAgB;IACvB,MAAM,IAAI,GAAG,UAEZ,CAAC;IACF,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,IAAY;IAChD,MAAM,KAAK,GAAG,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CACpC,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACpC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,wBAAS,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,8BAAY,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE;QACzD,UAAU;QACV,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,KAAK;QAClB,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IACH,IAAI,CAAC,CAAC,QAAQ,YAAY,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|