@aura3d/cli 4.0.8 → 4.1.1
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/data/aura.exports.json +10 -10
- package/data/root-export-dispositions.json +504 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +6 -0
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.js +33 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/assets/gltfToolkit.d.ts +25 -0
- package/dist/commands/assets/gltfToolkit.d.ts.map +1 -0
- package/dist/commands/assets/gltfToolkit.js +59 -0
- package/dist/commands/assets/gltfToolkit.js.map +1 -0
- package/dist/commands/assets/importMeshy.d.ts +50 -0
- package/dist/commands/assets/importMeshy.d.ts.map +1 -0
- package/dist/commands/assets/importMeshy.js +112 -0
- package/dist/commands/assets/importMeshy.js.map +1 -0
- package/dist/commands/assets/index.d.ts +6 -0
- package/dist/commands/assets/index.d.ts.map +1 -0
- package/dist/commands/assets/index.js +54 -0
- package/dist/commands/assets/index.js.map +1 -0
- package/dist/commands/assets/mergeClips.d.ts +44 -0
- package/dist/commands/assets/mergeClips.d.ts.map +1 -0
- package/dist/commands/assets/mergeClips.js +103 -0
- package/dist/commands/assets/mergeClips.js.map +1 -0
- package/dist/commands/assets/optimize.d.ts +54 -0
- package/dist/commands/assets/optimize.d.ts.map +1 -0
- package/dist/commands/assets/optimize.js +76 -0
- package/dist/commands/assets/optimize.js.map +1 -0
- package/dist/commands/assets/optimizeVerb.d.ts +9 -0
- package/dist/commands/assets/optimizeVerb.d.ts.map +1 -0
- package/dist/commands/assets/optimizeVerb.js +40 -0
- package/dist/commands/assets/optimizeVerb.js.map +1 -0
- package/dist/commands/meshyLedger.d.ts +103 -0
- package/dist/commands/meshyLedger.d.ts.map +1 -0
- package/dist/commands/meshyLedger.js +308 -0
- package/dist/commands/meshyLedger.js.map +1 -0
- package/dist/commands/prd05/index.d.ts.map +1 -1
- package/dist/commands/prd05/index.js +8 -2
- package/dist/commands/prd05/index.js.map +1 -1
- package/dist/commands/registry.d.ts +1 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/registry.js +1 -0
- package/dist/commands/registry.js.map +1 -1
- package/package.json +5 -5
- package/skills/aura3d-assets/SKILL.md +28 -26
- package/skills/aura3d-browser-game/SKILL.md +16 -13
- package/skills/aura3d-browser-game/references/kits-and-hooks.md +107 -0
- package/skills/aura3d-core/SKILL.md +9 -8
- package/skills/aura3d-core/references/pitfalls.md +62 -0
- package/skills/aura3d-evidence-review/SKILL.md +22 -2
- package/skills/aura3d-materials-environments/SKILL.md +8 -0
- package/skills/aura3d-materials-environments/references/custom-shader-chunks.md +53 -0
- package/skills/aura3d-performance/SKILL.md +17 -1
- package/skills/llms.txt +30 -20
- package/skills/meshy-cli/SKILL.md +7 -5
- package/skills/meshy-cli/references/asset-tooling.md +72 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `aura3d meshy ledger` — a local credit ledger for paid Meshy generation.
|
|
3
|
+
*
|
|
4
|
+
* Bookkeeping only: this module never talks to Meshy and never reads, prints or stores a credential. A wrapper that
|
|
5
|
+
* calls Meshy (for example through Kiro Prism) reserves credits here BEFORE a paid call and settles the record after.
|
|
6
|
+
* Per-game caps and one global cap are enforced under a lock, so many agents or shells can share one ledger.
|
|
7
|
+
*
|
|
8
|
+
* Lessons baked in:
|
|
9
|
+
* - A rate-limited or timed-out poll does not mean the task failed: the task usually finishes and is charged.
|
|
10
|
+
* Such a call settles as `unconfirmed` and keeps counting its estimate until `reconcile` proves otherwise.
|
|
11
|
+
* - Only a confirmed no-charge outcome (auth/validation/credit errors, a FAILED task) settles as `failed` (counts 0).
|
|
12
|
+
* - Every record carries a required game/project tag, and `prefixedName` makes raw download names game-prefixed so
|
|
13
|
+
* two games cannot silently reuse each other's `rocks.raw.glb`.
|
|
14
|
+
*/
|
|
15
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
16
|
+
import { homedir } from "node:os";
|
|
17
|
+
import { dirname, resolve } from "node:path";
|
|
18
|
+
/** Meshy's published per-operation credit costs (preview 20, refine 10, remesh 5, rigging 5, animate 3, retexture 10). */
|
|
19
|
+
export const MESHY_CREDIT_ESTIMATES = {
|
|
20
|
+
preview: 20,
|
|
21
|
+
refine: 10,
|
|
22
|
+
remesh: 5,
|
|
23
|
+
rigging: 5,
|
|
24
|
+
animate: 3,
|
|
25
|
+
retexture: 10
|
|
26
|
+
};
|
|
27
|
+
export const DEFAULT_MESHY_GLOBAL_CAP = 1000;
|
|
28
|
+
const GAME_TAG = /^[a-z][a-z0-9-]{1,39}$/;
|
|
29
|
+
const STALE_LOCK_MS = 60_000;
|
|
30
|
+
export class MeshyLedgerError extends Error {
|
|
31
|
+
code;
|
|
32
|
+
constructor(code, message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.code = code;
|
|
35
|
+
this.name = "MeshyLedgerError";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function defaultLedgerPath() {
|
|
39
|
+
return process.env.AURA3D_MESHY_LEDGER ?? resolve(homedir(), ".aura3d", "meshy-ledger.jsonl");
|
|
40
|
+
}
|
|
41
|
+
function resolveOptions(options) {
|
|
42
|
+
const envCap = Number(process.env.AURA3D_MESHY_GLOBAL_CAP);
|
|
43
|
+
return {
|
|
44
|
+
ledgerPath: resolve(options.ledgerPath ?? defaultLedgerPath()),
|
|
45
|
+
globalCap: options.globalCap ?? (Number.isFinite(envCap) && envCap > 0 ? envCap : DEFAULT_MESHY_GLOBAL_CAP),
|
|
46
|
+
lockTimeoutMs: options.lockTimeoutMs ?? 30_000,
|
|
47
|
+
now: options.now ?? (() => new Date())
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export function assertGameTag(game) {
|
|
51
|
+
if (!GAME_TAG.test(game)) {
|
|
52
|
+
throw new MeshyLedgerError("BAD_GAME_TAG", `Meshy ledger needs a game/project tag like "drift" or "last-train" (lowercase letters, digits, dashes; got "${game}").`);
|
|
53
|
+
}
|
|
54
|
+
return game;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Raw Meshy downloads must carry the game tag so two games never share `rocks.raw.glb`.
|
|
58
|
+
* `prefixedName("drift", "lamp")` -> `drift-lamp`; an already-prefixed name is returned unchanged.
|
|
59
|
+
*/
|
|
60
|
+
export function prefixedName(game, name) {
|
|
61
|
+
assertGameTag(game);
|
|
62
|
+
if (!/^[A-Za-z][A-Za-z0-9_-]*$/.test(name))
|
|
63
|
+
throw new MeshyLedgerError("BAD_RECORD", `Asset name "${name}" must start with a letter and use letters, digits, "-" or "_".`);
|
|
64
|
+
return name === game || name.startsWith(`${game}-`) || name.startsWith(`${game}_`) ? name : `${game}-${name}`;
|
|
65
|
+
}
|
|
66
|
+
function sleepSync(ms) {
|
|
67
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
68
|
+
}
|
|
69
|
+
function pidAlive(pid) {
|
|
70
|
+
try {
|
|
71
|
+
process.kill(pid, 0);
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
return error.code === "EPERM";
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function withLock(resolved, fn) {
|
|
79
|
+
mkdirSync(dirname(resolved.ledgerPath), { recursive: true });
|
|
80
|
+
const lock = `${resolved.ledgerPath}.lock.d`;
|
|
81
|
+
const started = Date.now();
|
|
82
|
+
for (;;) {
|
|
83
|
+
try {
|
|
84
|
+
mkdirSync(lock);
|
|
85
|
+
writeFileSync(`${lock}/pid`, String(process.pid));
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (error.code !== "EEXIST")
|
|
90
|
+
throw error;
|
|
91
|
+
let stale = false;
|
|
92
|
+
try {
|
|
93
|
+
const owner = Number(readFileSync(`${lock}/pid`, "utf8"));
|
|
94
|
+
stale = !Number.isFinite(owner) || !pidAlive(owner) || Date.now() - statSync(lock).mtimeMs > STALE_LOCK_MS;
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// pid file not written yet (owner is between mkdir and writeFile) or the lock was just released
|
|
98
|
+
const info = statSync(lock, { throwIfNoEntry: false });
|
|
99
|
+
if (!info)
|
|
100
|
+
continue;
|
|
101
|
+
stale = Date.now() - info.mtimeMs > 2_000;
|
|
102
|
+
}
|
|
103
|
+
if (stale) {
|
|
104
|
+
rmSync(lock, { recursive: true, force: true });
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
if (Date.now() - started > resolved.lockTimeoutMs)
|
|
108
|
+
throw new MeshyLedgerError("LOCK_TIMEOUT", `Meshy ledger lock ${lock} is held by another process.`);
|
|
109
|
+
sleepSync(50 + Math.floor(Math.random() * 100));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
return fn();
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
rmSync(lock, { recursive: true, force: true });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export function readMeshyLedger(options = {}) {
|
|
120
|
+
const { ledgerPath } = resolveOptions(options);
|
|
121
|
+
if (!existsSync(ledgerPath))
|
|
122
|
+
return [];
|
|
123
|
+
return readFileSync(ledgerPath, "utf8")
|
|
124
|
+
.split("\n")
|
|
125
|
+
.filter(Boolean)
|
|
126
|
+
.map((line) => JSON.parse(line));
|
|
127
|
+
}
|
|
128
|
+
/** Latest record per reservation id wins (fields merge). failed counts 0; reserved/unconfirmed/ok count actual ?? est. */
|
|
129
|
+
export function meshyLedgerTotals(records) {
|
|
130
|
+
const byRid = new Map();
|
|
131
|
+
for (const record of records)
|
|
132
|
+
byRid.set(record.rid, { ...(byRid.get(record.rid) ?? {}), ...record });
|
|
133
|
+
let spent = 0;
|
|
134
|
+
let unconfirmed = 0;
|
|
135
|
+
const byGame = {};
|
|
136
|
+
const unconfirmedRids = [];
|
|
137
|
+
for (const record of byRid.values()) {
|
|
138
|
+
const cost = record.status === "failed" ? 0 : record.actual ?? record.est ?? 0;
|
|
139
|
+
spent += cost;
|
|
140
|
+
if (record.game)
|
|
141
|
+
byGame[record.game] = (byGame[record.game] ?? 0) + cost;
|
|
142
|
+
if (record.status === "unconfirmed") {
|
|
143
|
+
unconfirmed += cost;
|
|
144
|
+
unconfirmedRids.push(record.rid);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return { spent, unconfirmed, byGame, unconfirmedRids };
|
|
148
|
+
}
|
|
149
|
+
/** Reserve credits before a paid call. Throws MeshyLedgerError (CAP_GLOBAL / CAP_GAME) without writing when over a cap. */
|
|
150
|
+
export function reserveMeshyCredits(input, options = {}) {
|
|
151
|
+
const resolved = resolveOptions(options);
|
|
152
|
+
const game = assertGameTag(input.game);
|
|
153
|
+
const est = input.est ?? MESHY_CREDIT_ESTIMATES[input.op];
|
|
154
|
+
if (est === undefined || !Number.isFinite(est) || est < 0)
|
|
155
|
+
throw new MeshyLedgerError("BAD_RECORD", `No credit estimate for op "${input.op}"; pass an explicit estimate.`);
|
|
156
|
+
if (!Number.isFinite(input.cap) || input.cap <= 0)
|
|
157
|
+
throw new MeshyLedgerError("BAD_RECORD", "A positive per-game cap is required.");
|
|
158
|
+
return withLock(resolved, () => {
|
|
159
|
+
const totals = meshyLedgerTotals(readMeshyLedger(resolved));
|
|
160
|
+
const gameSpent = totals.byGame[game] ?? 0;
|
|
161
|
+
if (totals.spent + est > resolved.globalCap) {
|
|
162
|
+
throw new MeshyLedgerError("CAP_GLOBAL", `REFUSED: global cap ${resolved.globalCap} would be exceeded (spent ${totals.spent}, need ${est}).`);
|
|
163
|
+
}
|
|
164
|
+
if (gameSpent + est > input.cap) {
|
|
165
|
+
throw new MeshyLedgerError("CAP_GAME", `REFUSED: ${game} cap ${input.cap} would be exceeded (spent ${gameSpent}, need ${est}).`);
|
|
166
|
+
}
|
|
167
|
+
const rid = `${resolved.now().getTime()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
168
|
+
const record = { ts: resolved.now().toISOString(), rid, game, op: input.op, est, status: "reserved" };
|
|
169
|
+
appendFileSync(resolved.ledgerPath, JSON.stringify(record) + "\n");
|
|
170
|
+
return rid;
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
const ALLOWED = {
|
|
174
|
+
reserved: ["ok", "failed", "unconfirmed"],
|
|
175
|
+
unconfirmed: ["ok", "failed", "unconfirmed"],
|
|
176
|
+
ok: ["ok"],
|
|
177
|
+
failed: ["failed"]
|
|
178
|
+
};
|
|
179
|
+
/** Settle (or later reconcile) a reservation. `failed` is final; `ok` only accepts a corrected actual. */
|
|
180
|
+
export function settleMeshyCredits(rid, input, options = {}) {
|
|
181
|
+
const resolved = resolveOptions(options);
|
|
182
|
+
return withLock(resolved, () => {
|
|
183
|
+
const records = readMeshyLedger(resolved).filter((record) => record.rid === rid);
|
|
184
|
+
if (records.length === 0)
|
|
185
|
+
throw new MeshyLedgerError("UNKNOWN_RID", `Unknown reservation ${rid}.`);
|
|
186
|
+
const current = records.reduce((merged, record) => ({ ...merged, ...record }), records[0]);
|
|
187
|
+
if (!ALLOWED[current.status].includes(input.status)) {
|
|
188
|
+
throw new MeshyLedgerError("BAD_TRANSITION", `Reservation ${rid} is ${current.status}; it cannot become ${input.status}.`);
|
|
189
|
+
}
|
|
190
|
+
const next = {
|
|
191
|
+
ts: resolved.now().toISOString(),
|
|
192
|
+
rid,
|
|
193
|
+
status: input.status,
|
|
194
|
+
...(input.task_id ? { task_id: input.task_id } : {}),
|
|
195
|
+
...(input.actual !== undefined ? { actual: input.actual } : {}),
|
|
196
|
+
...(input.note ? { note: input.note } : {})
|
|
197
|
+
};
|
|
198
|
+
appendFileSync(resolved.ledgerPath, JSON.stringify(next) + "\n");
|
|
199
|
+
return { ...current, ...next };
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Decide how a finished Meshy call settles. A rate limit or timeout without a confirmed result is NOT a failure:
|
|
204
|
+
* the task may already be charged, so it stays `unconfirmed` (counted) until a `get` confirms it.
|
|
205
|
+
*/
|
|
206
|
+
export function classifyMeshyOutcome(outcome) {
|
|
207
|
+
const taskStatus = outcome.taskStatus?.toUpperCase();
|
|
208
|
+
if (taskStatus === "FAILED" || taskStatus === "CANCELED")
|
|
209
|
+
return { status: "failed", task_id: outcome.taskId, note: `task ${taskStatus}` };
|
|
210
|
+
if (taskStatus === "SUCCEEDED")
|
|
211
|
+
return { status: "ok", task_id: outcome.taskId };
|
|
212
|
+
if (outcome.exitCode === 0)
|
|
213
|
+
return { status: "ok", task_id: outcome.taskId };
|
|
214
|
+
if (outcome.taskId)
|
|
215
|
+
return { status: "unconfirmed", task_id: outcome.taskId, note: `exit ${outcome.exitCode}; task exists, resume with get before paying again` };
|
|
216
|
+
if ([3, 4, 9].includes(outcome.exitCode))
|
|
217
|
+
return { status: "failed", note: `exit ${outcome.exitCode}: rejected before a task was created` };
|
|
218
|
+
return { status: "unconfirmed", note: `exit ${outcome.exitCode}: no task id seen (rate limit or timeout); verify before treating as failed` };
|
|
219
|
+
}
|
|
220
|
+
export function summarizeMeshyLedger(options = {}) {
|
|
221
|
+
const resolved = resolveOptions(options);
|
|
222
|
+
const totals = meshyLedgerTotals(readMeshyLedger(resolved));
|
|
223
|
+
return { globalCap: resolved.globalCap, spent: totals.spent, left: resolved.globalCap - totals.spent, unconfirmed: totals.unconfirmed, unconfirmedRids: totals.unconfirmedRids, byGame: totals.byGame };
|
|
224
|
+
}
|
|
225
|
+
function flag(argv, name) {
|
|
226
|
+
const index = argv.indexOf(name);
|
|
227
|
+
const value = index >= 0 ? argv[index + 1] : undefined;
|
|
228
|
+
return value && !value.startsWith("--") ? value : undefined;
|
|
229
|
+
}
|
|
230
|
+
const LEDGER_USAGE = "aura3d meshy ledger status|reserve|settle|reconcile|list [--ledger path] [--global-cap N]\n" +
|
|
231
|
+
" reserve --game <tag> --op preview|refine|remesh|rigging|animate|retexture [--est N] --cap N (prints the reservation id)\n" +
|
|
232
|
+
" settle --rid <id> --status ok|failed|unconfirmed [--task-id T] [--actual N] [--note text]\n" +
|
|
233
|
+
" settle --rid <id> --exit-code N [--task-id T] [--task-status SUCCEEDED|FAILED|...] (classified: a rate limit stays unconfirmed)\n" +
|
|
234
|
+
" reconcile --rid <id> --status ok|failed [--task-id T] [--actual N]\n" +
|
|
235
|
+
" list [--game <tag>]";
|
|
236
|
+
export async function meshyLedgerCommand(argv, io) {
|
|
237
|
+
const sub = argv[0];
|
|
238
|
+
const capFlag = flag(argv, "--global-cap");
|
|
239
|
+
const options = {
|
|
240
|
+
...(flag(argv, "--ledger") ? { ledgerPath: resolve(io.cwd, flag(argv, "--ledger")) } : {}),
|
|
241
|
+
...(capFlag ? { globalCap: Number(capFlag) } : {})
|
|
242
|
+
};
|
|
243
|
+
try {
|
|
244
|
+
if (sub === "status" || sub === undefined) {
|
|
245
|
+
io.stdout(JSON.stringify(summarizeMeshyLedger(options)));
|
|
246
|
+
return 0;
|
|
247
|
+
}
|
|
248
|
+
if (sub === "reserve") {
|
|
249
|
+
const game = flag(argv, "--game");
|
|
250
|
+
const op = flag(argv, "--op");
|
|
251
|
+
const cap = Number(flag(argv, "--cap"));
|
|
252
|
+
if (!game || !op || !Number.isFinite(cap)) {
|
|
253
|
+
io.stderr(LEDGER_USAGE);
|
|
254
|
+
return 2;
|
|
255
|
+
}
|
|
256
|
+
const est = flag(argv, "--est");
|
|
257
|
+
io.stdout(reserveMeshyCredits({ game, op, cap, ...(est ? { est: Number(est) } : {}) }, options));
|
|
258
|
+
return 0;
|
|
259
|
+
}
|
|
260
|
+
if (sub === "settle" || sub === "reconcile") {
|
|
261
|
+
const rid = flag(argv, "--rid");
|
|
262
|
+
if (!rid) {
|
|
263
|
+
io.stderr(LEDGER_USAGE);
|
|
264
|
+
return 2;
|
|
265
|
+
}
|
|
266
|
+
const taskId = flag(argv, "--task-id");
|
|
267
|
+
const exitCode = flag(argv, "--exit-code");
|
|
268
|
+
const status = flag(argv, "--status");
|
|
269
|
+
let input;
|
|
270
|
+
if (sub === "settle" && exitCode !== undefined) {
|
|
271
|
+
input = classifyMeshyOutcome({ exitCode: Number(exitCode), ...(taskId ? { taskId } : {}), ...(flag(argv, "--task-status") ? { taskStatus: flag(argv, "--task-status") } : {}) });
|
|
272
|
+
}
|
|
273
|
+
else if (status === "ok" || status === "failed" || status === "unconfirmed") {
|
|
274
|
+
if (sub === "reconcile" && status === "unconfirmed") {
|
|
275
|
+
io.stderr("reconcile settles an unconfirmed reservation to ok or failed.");
|
|
276
|
+
return 2;
|
|
277
|
+
}
|
|
278
|
+
input = { status, ...(taskId ? { task_id: taskId } : {}), ...(flag(argv, "--actual") ? { actual: Number(flag(argv, "--actual")) } : {}), ...(flag(argv, "--note") ? { note: flag(argv, "--note") } : {}) };
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
io.stderr(LEDGER_USAGE);
|
|
282
|
+
return 2;
|
|
283
|
+
}
|
|
284
|
+
io.stdout(JSON.stringify(settleMeshyCredits(rid, input, options)));
|
|
285
|
+
return 0;
|
|
286
|
+
}
|
|
287
|
+
if (sub === "list") {
|
|
288
|
+
const game = flag(argv, "--game");
|
|
289
|
+
const merged = new Map();
|
|
290
|
+
for (const record of readMeshyLedger(options))
|
|
291
|
+
merged.set(record.rid, { ...(merged.get(record.rid) ?? {}), ...record });
|
|
292
|
+
for (const record of merged.values())
|
|
293
|
+
if (!game || record.game === game)
|
|
294
|
+
io.stdout(JSON.stringify(record));
|
|
295
|
+
return 0;
|
|
296
|
+
}
|
|
297
|
+
io.stderr(LEDGER_USAGE);
|
|
298
|
+
return 2;
|
|
299
|
+
}
|
|
300
|
+
catch (error) {
|
|
301
|
+
if (error instanceof MeshyLedgerError) {
|
|
302
|
+
io.stderr(error.message);
|
|
303
|
+
return error.code === "CAP_GLOBAL" || error.code === "CAP_GAME" ? 3 : 1;
|
|
304
|
+
}
|
|
305
|
+
throw error;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=meshyLedger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meshyLedger.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/meshyLedger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd05/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd05/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwKH,OAAO,EAAE,CAAC"}
|
|
@@ -9,6 +9,7 @@ import { registerCliCommand, registerCodemod } from "../../contracts/commands.js
|
|
|
9
9
|
import { admitAsset, admitAssetMeasured } from "./admit.js";
|
|
10
10
|
import { dispatchLookdevRun } from "./lookdev.js";
|
|
11
11
|
import { optimizeAssetsVerb } from "./optimize.js";
|
|
12
|
+
import { optimizeFileVerb } from "../assets/optimizeVerb.js";
|
|
12
13
|
import { reviewAsset } from "./review.js";
|
|
13
14
|
import { assetsLibraryVerb } from "./library.js";
|
|
14
15
|
import { assetsPrune } from "./prune.js";
|
|
@@ -120,8 +121,13 @@ registerCliCommand({
|
|
|
120
121
|
name: "assets optimize",
|
|
121
122
|
owner: "prd05",
|
|
122
123
|
summary: "Optimize assets through the §6.3 step pipeline (tools/asset-optimize).",
|
|
123
|
-
usage: "aura3d assets optimize <id...> [--profile <id>] [--geometry meshopt|draco|none] [--dry-run] [--allow-local-small] [--ktx <path>] [--report <file>] [--out-dir <dir>] [--no-manifest]",
|
|
124
|
-
run: async (argv, io) =>
|
|
124
|
+
usage: "aura3d assets optimize --file in.glb --out out.glb [--role hero|vehicle|character|prop|background] [--max-verts N] [--tex N] [--no-simplify] [--meshopt] [--json] | aura3d assets optimize <id...> [--profile <id>] [--geometry meshopt|draco|none] [--dry-run] [--allow-local-small] [--ktx <path>] [--report <file>] [--out-dir <dir>] [--no-manifest]",
|
|
125
|
+
run: async (argv, io) => {
|
|
126
|
+
// Direct-file mode: `assets optimize --file in.glb --out out.glb [--role ...]` (no manifest, no admission pipeline).
|
|
127
|
+
if (readFlag(argv, "--file") !== undefined)
|
|
128
|
+
return optimizeFileVerb(argv, io);
|
|
129
|
+
return optimizeAssetsVerb({ projectDir: io.cwd, argv, stdout: io.stdout, stderr: io.stderr });
|
|
130
|
+
},
|
|
125
131
|
});
|
|
126
132
|
registerCliCommand({
|
|
127
133
|
name: "assets lookdev",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd05/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/aura3d-cli/src/commands/prd05/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../packages/aura3d-cli/src/commands/registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aura3d/cli",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"aura3d": "dist/cli.js",
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
"types": "./dist/index.d.ts",
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"typescript": "^5.8.3",
|
|
31
|
-
"@aura3d/asset-index": "4.
|
|
32
|
-
"@aura3d/audio": "4.
|
|
33
|
-
"@aura3d/rendering": "4.
|
|
34
|
-
"create-aura3d": "4.
|
|
31
|
+
"@aura3d/asset-index": "4.1.1",
|
|
32
|
+
"@aura3d/audio": "4.1.1",
|
|
33
|
+
"@aura3d/rendering": "4.1.1",
|
|
34
|
+
"create-aura3d": "4.1.1"
|
|
35
35
|
},
|
|
36
36
|
"description": "Bring real GLB/glTF assets into Aura3D browser apps with typed references, provenance, catalog search, validation, screenshots, and deploy checks.",
|
|
37
37
|
"keywords": [
|
|
@@ -78,23 +78,19 @@ lighting you evaluate materials and silhouettes against.
|
|
|
78
78
|
|
|
79
79
|
`--source` scans `src` for raw ids, URLs, and loader code, and lists
|
|
80
80
|
`typedAssetUsages`. Add `--no-placeholders --require-license` for anything
|
|
81
|
-
public. Refresh stale manifest bounds by re-adding the file.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
`
|
|
88
|
-
unhashed duplicate GLBs in route-local `apps/<route>/public/aura-assets/`
|
|
89
|
-
that collide with root `public/aura-assets/` (keeps composition readable).
|
|
81
|
+
public. Refresh stale manifest bounds by re-adding the file. Every admitted
|
|
82
|
+
entry in `aura.assets.json` and `src/aura-assets.ts` needs a valid 64-character
|
|
83
|
+
`sha256-...` `hash` and a `public/aura-assets/...` path: the production glTF
|
|
84
|
+
bridge only accepts `createAssetProvenance(node.asset).source ===
|
|
85
|
+
"typed-aura-assets-manifest"`. Never omit `hash` in `defineAuraAssets(...)`
|
|
86
|
+
and never place unhashed duplicate GLBs in route-local
|
|
87
|
+
`apps/<route>/public/aura-assets/` that collide with root `public/aura-assets/`.
|
|
90
88
|
7. Use the key as generated. Every character, athlete, enemy, vehicle, weapon,
|
|
91
|
-
tree, and landmark
|
|
92
|
-
{ targetMaxDimension, role })` for
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
loop: true, speed })` so limbs articulate under the key light and shadow; and
|
|
97
|
-
never build stick-figure humans or box cars from primitives.
|
|
89
|
+
tree, and landmark mounts a real 3D GLB via `model(assets.<name>,
|
|
90
|
+
{ targetMaxDimension, role })`: `targetHeight` only for upright humanoids,
|
|
91
|
+
`targetMaxDimension` for vehicles, rackets, weapons, and wide props. Drive
|
|
92
|
+
rigged characters (`skins > 0`) with `handle.setAnimation({ clip, loop: true,
|
|
93
|
+
speed })`, and never build stick-figure humans or box cars from primitives.
|
|
98
94
|
|
|
99
95
|
```ts
|
|
100
96
|
import { createAuraApp, groundedRenderedAssetPlacement, looks, model, scene } from "@aura3d/engine";
|
|
@@ -109,7 +105,15 @@ lighting you evaluate materials and silhouettes against.
|
|
|
109
105
|
});
|
|
110
106
|
```
|
|
111
107
|
|
|
112
|
-
8.
|
|
108
|
+
8. Games and examples without a project manifest declare models with
|
|
109
|
+
`defineModelAssets` (same-origin URL, `sha256`, license; `?models=0` falls
|
|
110
|
+
back to a procedural stand-in) and never use an http(s) URL: the production
|
|
111
|
+
bridge refuses it and the scene draws nothing. Admit generated models in an
|
|
112
|
+
isolated project: `assets import-meshy <dir> --into <assets-dir> --prefix
|
|
113
|
+
<game> --name <role>`. Never run `import-meshy`, `validate` or `typegen` from
|
|
114
|
+
the repo root while other work is open: they rewrite `aura.assets.json`,
|
|
115
|
+
`src/aura-assets.ts` (a 100k-line diff) and `public/aura-assets/*`.
|
|
116
|
+
9. Hand off: fighters and games to `aura3d-browser-game`
|
|
113
117
|
(`assets validate-game`), rigs and clips to `aura3d-character-animation`
|
|
114
118
|
(`assets validate-animation`), release checks to `aura3d-evidence-review`.
|
|
115
119
|
|
|
@@ -122,10 +126,9 @@ lighting you evaluate materials and silhouettes against.
|
|
|
122
126
|
- bounds are extreme, pivot is bad, or orientation is unknown and public APIs
|
|
123
127
|
cannot correct it;
|
|
124
128
|
- the hash duplicates another asset without an explanation;
|
|
125
|
-
- a generated Meshy GLB has not been
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
exhaust GPU memory across the scene's look, lighting, and atmosphere);
|
|
129
|
+
- a generated Meshy GLB has not been through `assets optimize --file in.glb --out
|
|
130
|
+
out.glb --role prop` (role budgets: prop 6k, character 30k, hero or vehicle 40k
|
|
131
|
+
vertices; textures capped at 1024 to 2048 px; 16-bit indices);
|
|
129
132
|
- it is placeholder-like, or only a generated thumbnail proves it is readable.
|
|
130
133
|
|
|
131
134
|
## Stop and report
|
|
@@ -134,13 +137,12 @@ lighting you evaluate materials and silhouettes against.
|
|
|
134
137
|
reject list: stop, list the query, profile, and rejection reasons, and offer
|
|
135
138
|
two options: a user-supplied licensed file, or Meshy generation (load
|
|
136
139
|
`meshy-cli`, dry run first). Do not model the subject from primitives.
|
|
137
|
-
- Search prints a catalog fetch warning (for example an HTTP 404
|
|
138
|
-
|
|
139
|
-
|
|
140
|
+
- Search prints a catalog fetch warning (for example an HTTP 404): report it
|
|
141
|
+
verbatim, label asset-dependent work `blocked`, and never treat fallback
|
|
142
|
+
deep-links as auto-pullable.
|
|
140
143
|
- `assets validate --release` fails on provenance: keep the route `prototype`
|
|
141
144
|
until durable evidence is added; never weaken the check.
|
|
142
|
-
- A needed key is absent from `src/aura-assets.ts` after typegen:
|
|
143
|
-
the admission.
|
|
145
|
+
- A needed key is absent from `src/aura-assets.ts` after typegen: fix the admission.
|
|
144
146
|
|
|
145
147
|
## References
|
|
146
148
|
|
|
@@ -69,11 +69,11 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
69
69
|
|
|
70
70
|
2. The look supplies sky light, key shadow, fog, and grade — never stack extra
|
|
71
71
|
`lights.studio()` / `lights.directional()` on top, pass `{ fogDensityScale: 0,
|
|
72
|
-
exposureEv: -0.1 }` to `looks.preset(...)`
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
`emissive: "#ffffff"` on instanced pool materials (`instanceColors`
|
|
76
|
-
`u_baseColor`, not `u_emissiveColor`).
|
|
72
|
+
exposureEv: -0.1 }` to `looks.preset(...)` if fog whitewashes a fast route,
|
|
73
|
+
and never pin post-processing or the compiler off with a `qualityRebuild` flag
|
|
74
|
+
list (the engine defaults are right; install the safety net instead), and never
|
|
75
|
+
set `emissive: "#ffffff"` on instanced pool materials (`instanceColors`
|
|
76
|
+
multiply `u_baseColor`, not `u_emissiveColor`).
|
|
77
77
|
3. Mount typed 3D GLBs for every character, athlete, enemy, vehicle, weapon,
|
|
78
78
|
tree, and landmark (`model(assets.<name>, { targetMaxDimension, role })`,
|
|
79
79
|
emissive 3–5 on pickups, and explicit `material: material.pbr({ color })` on
|
|
@@ -85,8 +85,8 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
85
85
|
instead of sliding rigid statues. Never build stick-figure humans or box cars
|
|
86
86
|
from primitives; ground `model()` actors (`minY = 0`) at `y + sy / 2` of
|
|
87
87
|
centered platforms; wind custom `primitives.mesh` triangles CCW from `+Y`; and
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
run Meshy GLBs through `assets optimize --role` before admission and mount
|
|
89
|
+
them with a valid 64-char `sha256-...` `hash` (`defineModelAssets`).
|
|
90
90
|
4. Camera state drives `app.camera` every frame — size `html, body, #app, canvas`
|
|
91
91
|
to `100vw × 100vh` (`position: fixed; inset: 0`), extend the 3D ground apron
|
|
92
92
|
deep in `+Z`/`-Z` so the bottom frame is never a black void, disable
|
|
@@ -117,13 +117,16 @@ Genre → recipe row (full table: `../aura3d-art-direction/references/look-recip
|
|
|
117
117
|
`assets certify-game-geometry --asset track --category racing`.
|
|
118
118
|
9. Runtime evidence: pause, step one frame, then `game.evidence` over input,
|
|
119
119
|
bodies, events, HUD, and look state — see `aura3d-evidence-review` (one link).
|
|
120
|
+
10. Build the shell from the kits, not by hand: `@aura3d/engine/game` (HUD, touch,
|
|
121
|
+
session, sound), `installQaHooks` + `createFixedStepLoop` for deterministic
|
|
122
|
+
replay, `createCueBank` for sound, `installSafetyNet` for `?diag=1` and
|
|
123
|
+
black-frame self-heal — [kits and hooks](references/kits-and-hooks.md).
|
|
120
124
|
|
|
121
125
|
## Look-dev loop
|
|
122
126
|
|
|
123
|
-
Run the `aura3d look capture` → judge → iterate loop from
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
rounds, or 2 flat rounds.
|
|
127
|
+
Run the `aura3d look capture` → judge → iterate loop from `aura3d-art-direction`:
|
|
128
|
+
lint first (`aura3d look lint`), then the weakest rubric category; one change
|
|
129
|
+
per round until every category reads 7+, 6 rounds, or 2 flat rounds.
|
|
127
130
|
|
|
128
131
|
## Stop and report
|
|
129
132
|
|
|
@@ -134,8 +137,7 @@ rounds, or 2 flat rounds.
|
|
|
134
137
|
- The primary player, vehicle, or world is a primitive stand-in: `prototype`.
|
|
135
138
|
- `assets validate-game` crashes or fails: report the exact message, label
|
|
136
139
|
`blocked` for public claims.
|
|
137
|
-
- A kit is missing a needed rule
|
|
138
|
-
alignment): write it route-local, say so, file a library gap.
|
|
140
|
+
- A kit is missing a needed rule: write it route-local, say so, file a gap.
|
|
139
141
|
- Benchmark mode without `look capture`: build, stop, label `prototype`.
|
|
140
142
|
|
|
141
143
|
## References
|
|
@@ -147,3 +149,4 @@ rounds, or 2 flat rounds.
|
|
|
147
149
|
- [Game example standards](https://github.com/auraoneai/aura3d/blob/main/docs/agents/game-example-standards.md)
|
|
148
150
|
- [Game runtime API](https://github.com/auraoneai/aura3d/blob/main/docs/api/game-runtime.md)
|
|
149
151
|
- [Genre looks in the frame](references/genre-looks.md)
|
|
152
|
+
- [Kits and hooks (4.1)](references/kits-and-hooks.md)
|