@bitmagic/cli 0.1.65-dev.9 → 0.1.65

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 (55) hide show
  1. package/README.md +101 -15
  2. package/dist/assets/materials.d.ts +9 -0
  3. package/dist/assets/materials.js +10 -2
  4. package/dist/assets/materials.js.map +1 -1
  5. package/dist/cli.d.ts +1 -0
  6. package/dist/cli.js +2 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/character.d.ts +18 -0
  9. package/dist/commands/character.js +268 -0
  10. package/dist/commands/character.js.map +1 -0
  11. package/dist/commands/forge.js +7 -1
  12. package/dist/commands/forge.js.map +1 -1
  13. package/dist/commands/generate.d.ts +31 -13
  14. package/dist/commands/generate.js +48 -56
  15. package/dist/commands/generate.js.map +1 -1
  16. package/dist/editor/animation-preview-page.js +88 -1
  17. package/dist/editor/animation-preview-page.js.map +1 -1
  18. package/dist/editor/asset-detail-panel.d.ts +2 -2
  19. package/dist/editor/asset-detail-panel.js +21 -0
  20. package/dist/editor/asset-detail-panel.js.map +1 -1
  21. package/dist/editor/asset-viewer.js +31 -8
  22. package/dist/editor/asset-viewer.js.map +1 -1
  23. package/dist/editor/shell-page.js +63 -1
  24. package/dist/editor/shell-page.js.map +1 -1
  25. package/dist/forge/prune-store.d.ts +46 -0
  26. package/dist/forge/prune-store.js +86 -0
  27. package/dist/forge/prune-store.js.map +1 -0
  28. package/dist/generate/character-body.d.ts +79 -0
  29. package/dist/generate/character-body.js +100 -0
  30. package/dist/generate/character-body.js.map +1 -0
  31. package/dist/mobile/asset-hosts.d.ts +7 -9
  32. package/dist/mobile/asset-hosts.js +7 -16
  33. package/dist/mobile/asset-hosts.js.map +1 -1
  34. package/dist/project/character-search.d.ts +30 -0
  35. package/dist/project/character-search.js +82 -0
  36. package/dist/project/character-search.js.map +1 -0
  37. package/dist/scaffold/asset-pipeline-skill-files.d.ts +42 -0
  38. package/dist/scaffold/asset-pipeline-skill-files.js +207 -0
  39. package/dist/scaffold/asset-pipeline-skill-files.js.map +1 -0
  40. package/dist/scaffold/blender-level-skill-files.js +3 -2
  41. package/dist/scaffold/blender-level-skill-files.js.map +1 -1
  42. package/dist/scaffold/claude-settings.js +4 -0
  43. package/dist/scaffold/claude-settings.js.map +1 -1
  44. package/dist/scaffold/project-files.js +18 -12
  45. package/dist/scaffold/project-files.js.map +1 -1
  46. package/dist/scaffold/project.js +2 -0
  47. package/dist/scaffold/project.js.map +1 -1
  48. package/dist/scaffold/skill-files.js +5 -4
  49. package/dist/scaffold/skill-files.js.map +1 -1
  50. package/dist/telemetry/creator-prompt.d.ts +18 -2
  51. package/dist/telemetry/creator-prompt.js +24 -3
  52. package/dist/telemetry/creator-prompt.js.map +1 -1
  53. package/dist/telemetry/report.js +31 -16
  54. package/dist/telemetry/report.js.map +1 -1
  55. package/package.json +4 -4
package/README.md CHANGED
@@ -202,7 +202,8 @@ browser reloads itself on every change and the assets panel shows each generatio
202
202
  | `bitmagic publish [--visibility public\|private] [--name <name>] [--description <desc>] [--force] [--single-file] [--version-url] [--no-qr]` | Verify-gate, build if needed, and upload straight to GCS. `--single-file` publishes the offline bundle described under `bitmagic build`; switching the flag between runs always rebuilds, since it changes nothing on disk for the reuse check to notice. **Keeps the game's current visibility**; a new game is private until published with `--visibility public`. Prints the link worth sharing: `bitmagic.ai/play/<ID>/` — the game's page, with its name, cover and comments — for a public game, and `bitmagic.ai/games/<ID>/` for a private one. Both always serve the newest publish, so a link handed out today keeps working after tomorrow's publish; `--version-url` also prints the URL of this one build (`.../indexN.html`), for pinning a bug report to it. Shows the shared URL as a QR code so you can scan it onto a phone — drawn in the terminal, or written to `.bitmagic/publish-qr.png` when it cannot be. `--no-qr` skips both. |
203
203
  | `bitmagic self-update [--tag latest\|dev]` | Update the **CLI itself** to the newest build of its line, installing into the place this CLI actually lives rather than wherever the `npm` on your `PATH` would put it — which under nvm is routinely somewhere else. Reads the project's line from `bitmagic.json` when there is one, so it also fixes a wrong-line install; `--tag` overrides. Verifies the version on disk moved, and refuses (naming the path) for an `npx` run, a source checkout, or an install shape it cannot recognise. Not to be confused with `upgrade`, which is about the project's engine. |
204
204
  | `bitmagic upgrade [--engine <version>] [--force]` | Refresh vendored platform files and the CLI's own skills to the currently published engine. Refuses a dirty git tree unless `--force`. Also records the project's `environment` in `bitmagic.json` if it has none yet — the engine it just vendored came from that api-server — and says so when it does. |
205
- | `bitmagic generate <skybox\|background\|block-type\|sound\|music\|image\|video\|character\|animation\|model\|prop\|vehicle> ...` | Generate one asset directly into `src/work/world.json`. Costs sparks. `model` mints a **new** 3D object from a prompt, `prop` upgrades an existing placeholder **in place** (both produce voxels directly; `--mesh` takes the older mesh path; a low-poly project keeps the mesh as a `glb` asset — see **Art style**), `vehicle` adds a new drivable one, `animation` takes a parameter spec rather than a prompt, `block-type` registers a custom voxel block, `video` makes a short clip for a cutscene (played with `engine.playVideo("<id>")`) — see **Cutscene clips** below. `skybox` and `background` write the **same** field: pick one. |
205
+ | `bitmagic generate <skybox\|background\|block-type\|sound\|music\|image\|video\|character\|animation\|model\|prop\|vehicle> ...` | Generate one asset directly into `src/work/world.json`. Costs sparks. `model` mints a **new** 3D object from a prompt, `prop` upgrades an existing placeholder **in place** (both produce voxels directly; `--mesh` takes the older mesh path; a low-poly project keeps the mesh as a `glb` asset — see **Art style**), `vehicle` adds a new drivable one, `animation` takes a parameter spec rather than a prompt, `block-type` registers a custom voxel block, `video` makes a short clip for a cutscene (played with `engine.playVideo("<id>")`) — see **Cutscene clips** below. `skybox` and `background` write the **same** field: pick one. **`character` now lives in its own group** — `bitmagic character generate|search|add` — and `bitmagic generate character` is a deprecated alias of the first; see **Characters**. |
206
+ | `bitmagic character <generate\|search\|add> ...` | Forge a character, look through the ready-made ones, or add one. `generate` costs sparks and may substitute a close-enough stored body (`--fresh` always forges). `search` lists the shelf's closest matches with their scores — free, changes nothing. `add` puts a stored body in the game for free and never forges. See **Characters** below. |
206
207
  | `bitmagic assets add <file> [--name <n>] [--asset-id <id>] [--keep-glb\|--voxelize] [--voxel-size <m>] [--max-voxel-size <m>] [--height <m>] [--hollow\|--solid] [--force]` | Upload **your own** file — `.glb`, `.vxl`, `.png/.jpg/.webp`, `.opus/.ogg/.m4a/.mp3`, `.json` — into the game's assets and write its entry into `src/work/world.json`. A `.glb` is voxelized in a headless browser (Chrome + a free port in 3000–3199, like `prop`) unless `--keep-glb` — or unless the project is low-poly (see **Art style**). Free — no sparks. See **Adding your own assets** below. |
207
208
  | `bitmagic assets list` | The assets in `world.json`: id, name, type, size, placed instances, and total references. Local, no network. |
208
209
  | `bitmagic assets materials <assetId> [--set <file.json>] [--auto] [--clear]` | Show what an asset's voxels look like, or say what they are **made of** — so a sword's steel blade shines and its leather grip does not. With no flag it prints the asset's colour groups; `--set` applies your verdicts; `--auto` lets a model decide (what `generate prop` and `generate model` already do on their own); `--clear` removes them. Free — no sparks, nothing generated. See **Voxel materials** below. |
@@ -878,7 +879,16 @@ from; an image opens as the image; a sound gets a player; an animation plays on
878
879
  character — the same clip preview the Creator has — with play/pause and a speed slider. A clip
879
880
  generated from a recording also shows its source video, with the trim marked on it: the frame
880
881
  dims behind a `CUT 1.2s FROM THE START` badge whenever the playhead is inside a removed stretch,
881
- over a seek bar split into labelled `cut | kept | cut` segments. Beside it is everything the row has no
882
+ over a seek bar split into labelled `cut | kept | cut` segments.
883
+
884
+ **A character asset gets a row of built-in animations** — Idle, Walk, Run, Jump, Punch, Kick, Flip,
885
+ Dance — so you can see the body move rather than stand there. Each plays the engine's own clip on
886
+ your rigged character, with the same play/pause and speed slider; **Model** goes back to the still
887
+ mesh. The clips are looked up in your project's vendored engine, so they are the ones your game
888
+ actually plays. A very old engine has no `characterUrl` option and falls back to playing the clip
889
+ on the block character.
890
+
891
+ Beside the viewer is everything the row has no
882
892
  room for — extent in world units, voxel count, triangle count, and the asset id, with a button to
883
893
  copy it so you can paste it into a `bitmagic generate prop --asset …`. Escape closes it. The game
884
894
  pauses while it is open and resumes when you close it.
@@ -1240,7 +1250,10 @@ and mirrors its bakes to the server — anything forged before that is re-forged
1240
1250
  from then on, from any machine. (A forge keeps its resumable state in the project's
1241
1251
  `.bitmagic/forge` and mirrors the browser-baked records to api-server as it goes, so `--resume`
1242
1252
  and `--edit` both work from a clone that never ran the original forge; a mirror that fails is
1243
- said once and the run continues from the local copy.) `--level` takes the level's id or name (`bitmagic levels list`), and
1253
+ said once and the run continues from the local copy. Once a forge or an edit has landed, the
1254
+ finished jobs under `.bitmagic/forge` that no level names any more are removed — an edited level
1255
+ keeps only its newest job; an unfinished job, the one `--resume` continues, is kept; the server's
1256
+ copies are untouched.) `--level` takes the level's id or name (`bitmagic levels list`), and
1244
1257
  can be left out when the project has one forged level. `--edit` takes no other forge flag; a 2D
1245
1258
  side-view level cannot be edited yet.
1246
1259
 
@@ -1311,22 +1324,95 @@ read by everything that used to assume cubes:
1311
1324
  | `bitmagic cover`, `bitmagic reference make` | MagicaVoxel-style prompt lead and tail | flat-shaded low-poly lead and tail (same image model) |
1312
1325
  | `bitmagic assets add x.glb` | voxelized in a headless browser | kept as a `glb` asset; `--voxelize` bakes it |
1313
1326
  | `bitmagic generate model` / `prop` | voxel master, baked in the browser | mesh generated, re-uploaded into the project, registered as `glb` (`--height` / the placeholder's fitBox); `--voxelize` bakes it |
1314
- | `bitmagic generate character` | voxelized rig, library search first | the textured low-poly rig; its own library shelf, searched only where the server has enabled it; `--voxelize` overrides |
1327
+ | `bitmagic character generate` | voxelized rig, library search first | the textured low-poly rig; its own library shelf, searched only where the server has enabled it; `--voxelize` overrides |
1328
+ | `bitmagic character search` / `add` | searches the voxel shelf | searches the low-poly shelf |
1315
1329
  | `bitmagic generate vehicle` | voxel | still voxel — the builder is voxel-native; the command says so |
1316
1330
  | `bitmagic judge` with no `## Art direction` | grades the style it sees | judges within low-poly |
1317
1331
  | the engine on load | sunset hemisphere light and a faint bloom | neither; a `MeshLevel` brings its own lighting |
1318
1332
 
1319
- In a low-poly game the textured rig IS the product, so `bitmagic generate character` forges it with
1320
- `runware-meshy-6`: an even remesh with symmetric limbs and an enforced A-pose, rather than a TRELLIS
1321
- reconstruction that is only as low-poly as the concept image happened to be. **That costs about
1322
- $0.80 and six minutes per character**, against fractions of a cent and forty seconds — pass
1323
- `--mesh-model unified-trellis` to put one back on the cheap lane. A voxel game does not get it: the
1324
- body is rebuilt out of cubes, so the remesh, the pose and the texture are all thrown away.
1325
-
1326
- Its wall time is why the forge job budget is 20 minutes and api-server's in-handler generation
1327
- deadline is 29: at the old 8-minute and 280s ceilings a Meshy character was killed about three
1328
- seconds before it finished, after being billed. Cloud Run's own 1800s request timeout was already
1329
- high enough and is set in roleverse-infra.
1333
+ ### Characters
1334
+
1335
+ Characters are their own command group, because two different requests used to
1336
+ share one command:
1337
+
1338
+ ```
1339
+ bitmagic character generate --name guard --prompt "..." [--fresh]
1340
+ bitmagic character search --prompt "..." [--limit 5] [--representation voxel|lowpoly]
1341
+ bitmagic character add --name guard (--id <sid> | --prompt "...")
1342
+ ```
1343
+
1344
+ - **`generate`** forges a new body and costs sparks. It still consults the
1345
+ library first and substitutes a close-enough stored one where the server has
1346
+ that enabled — that is a cache hit on a generation you asked for, and it is
1347
+ what makes a character sometimes arrive in two seconds. `--fresh` turns it off
1348
+ and always forges. (`--no-library` is the deprecated spelling of `--fresh`.)
1349
+ - **`search`** lists the closest ready-made bodies with their scores. Free,
1350
+ read-only, and it writes nothing to your game.
1351
+ - **`add`** puts a stored body in the game. Free, instant, and it **never
1352
+ forges**: if the shelf has nothing usable the command fails and charges
1353
+ nothing, rather than quietly falling back to a paid generation.
1354
+
1355
+ `bitmagic generate character` still works and is a deprecated alias of
1356
+ `bitmagic character generate`; `--library-only` on it is now
1357
+ `bitmagic character add`.
1358
+
1359
+ #### Why `search` exists
1360
+
1361
+ Search is not a nicety here, it is the mechanism. Scored against the live index,
1362
+ genuine matches land at 0.62–0.83 — and humanoid prompts the shelf *cannot*
1363
+ answer land at 0.55–0.70, inside that range. "A beekeeper" fetches a humanoid bee
1364
+ at 0.65; "a hazmat worker" a boy mechanic at 0.65. Both are confident, both are
1365
+ wrong, and no threshold rejects them without also rejecting real matches. A
1366
+ number cannot tell these apart. You can, in about a second:
1367
+
1368
+ ```
1369
+ $ bitmagic character search --prompt "a deep sea diver"
1370
+ 3 ready-made voxel character(s) for "a deep sea diver":
1371
+
1372
+ # id match auto description
1373
+ 1 b1877 57% yes a bearded pirate captain
1374
+ 2 b0412 54% - a man in a rubber raincoat
1375
+ 3 b2003 52% - an astronaut in a white suit
1376
+
1377
+ Add one: bitmagic character add --id b1877 --name <name>
1378
+ ```
1379
+
1380
+ The **auto** column is the bar automatic substitution has to clear (55% on the
1381
+ voxel shelf, 65% on the thinner low-poly one). It is shown rather than applied:
1382
+ a body below it is often still the one you want, and knowing it is a stretch is
1383
+ the useful part.
1384
+
1385
+ `add --id` reads the candidates the last `search` cached in
1386
+ `.bitmagic/character-search.json`, so it needs only the id — no re-search, and no
1387
+ retyping the prompt. `add --prompt` with no id takes the closest usable body
1388
+ whatever it scored, which is the "any of these will do" request.
1389
+
1390
+ Neither `--head-scale` nor `--mesh-model` exists on `add`, and that is the point
1391
+ of the split: proportions are baked into a stored body and a mesh model selects
1392
+ how a character would be *forged*. The old `--library-only` had to accept the
1393
+ first and refuse the second; a command that never forges simply does not offer
1394
+ them.
1395
+
1396
+ The shelf follows the project's art style like every other character request: a
1397
+ voxel game searches voxel bodies, a low-poly game searches low-poly ones, and an
1398
+ empty result never falls back to the other medium. `--representation` overrides
1399
+ it if you want to look at the other shelf.
1400
+
1401
+ #### Low-poly characters cost more to forge
1402
+
1403
+ In a low-poly game the textured rig IS the product, so `bitmagic character generate`
1404
+ forges it with `runware-rodin-gen-2`: a quad remesh at a triangle count we choose,
1405
+ with the concept sheet's own A-pose kept. **That bills 60 sparks and takes about
1406
+ three minutes per character**, against 15 sparks and forty seconds for a voxel
1407
+ body — pass `--mesh-model unified-trellis` to put one back on the cheap lane at
1408
+ 15 sparks. A voxel game does not get it: the body is rebuilt out of cubes, so the
1409
+ remesh and the texture are thrown away.
1410
+
1411
+ Wall time is why the forge job budget is 20 minutes and api-server's in-handler
1412
+ generation deadline is 29: at the old 8-minute and 280 s ceilings a slow mesh
1413
+ model was killed about three seconds before it finished, after being billed.
1414
+ Cloud Run's own 1800 s request timeout was already high enough and is set in
1415
+ roleverse-infra.
1330
1416
 
1331
1417
  Both commands print `Art style: … (game.json)` so a transcript shows which medium drove them, and a
1332
1418
  value that is neither word is reported once and treated as voxel. The web Creator does not read
@@ -132,10 +132,19 @@ export type ClassifyMaterials = (request: {
132
132
  export interface ClassifyMaterialsOptions extends MaterialsBaseOptions {
133
133
  /** Test seam; the default posts to api-server. */
134
134
  classify?: ClassifyMaterials;
135
+ /**
136
+ * Leave an asset that already carries material classes as it is, without
137
+ * asking the model. A forged archetype baked with the level's
138
+ * `materialByColor` map has its classes from the designer's own words; a
139
+ * model's guess must not overwrite them, and the round trip is wasted.
140
+ */
141
+ skipIfClassed?: boolean;
135
142
  }
136
143
  export interface ClassifyMaterialsResult extends SetMaterialsResult {
137
144
  /** The model that answered, for provenance. Absent when no verdicts came back. */
138
145
  model?: string;
146
+ /** True when `skipIfClassed` found classes already on the asset and asked nothing. */
147
+ alreadyClassed?: boolean;
139
148
  }
140
149
  /**
141
150
  * Read, classify and apply in ONE browser session: what `generate prop|model` run
@@ -305,6 +305,9 @@ export async function classifyAssetMaterials(options) {
305
305
  context, environment, token, log, subject: `"${name}"`, retryHint,
306
306
  }, async (session) => {
307
307
  const { signature, table } = await readSignatureInSession(session, { assetId, name, url, log });
308
+ if (options.skipIfClassed && signature.existingSlots.length > 0) {
309
+ return { reply: null, model: undefined, alreadyClassed: signature.existingSlots };
310
+ }
308
311
  log(`Deciding what "${name}" is made of…`);
309
312
  const answer = await classify({
310
313
  gameId: context.metadata.gameId,
@@ -331,10 +334,12 @@ export async function classifyAssetMaterials(options) {
331
334
  return { reply, model };
332
335
  });
333
336
  if (outcome.reply === null) {
337
+ const already = 'alreadyClassed' in outcome ? outcome.alreadyClassed : undefined;
334
338
  return {
335
- assetId, assetName: name, slots: [], dropped: [], baseShare: 1,
339
+ assetId, assetName: name, slots: already ?? [], dropped: [], baseShare: 1,
336
340
  unchanged: true, instanceCount: countInstances(world, assetId),
337
341
  ...(outcome.model === undefined ? {} : { model: outcome.model }),
342
+ ...(already === undefined ? {} : { alreadyClassed: true }),
338
343
  };
339
344
  }
340
345
  const recorded = await recordApplied({
@@ -360,7 +365,10 @@ export async function classifyAssetMaterialsQuietly(options) {
360
365
  return null;
361
366
  try {
362
367
  const result = await classifyAssetMaterials(options);
363
- if (result.unchanged) {
368
+ if (result.alreadyClassed) {
369
+ log(`Materials: ${result.slots.join(', ')} — baked into "${result.assetName}" from the level's own materials.`);
370
+ }
371
+ else if (result.unchanged) {
364
372
  log(`Materials: nothing on "${result.assetName}" needs special shading.`);
365
373
  }
366
374
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"materials.js","sourceRoot":"","sources":["../../src/assets/materials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"materials.js","sourceRoot":"","sources":["../../src/assets/materials.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts CHANGED
@@ -365,6 +365,7 @@ declare const rawCommands: {
365
365
  };
366
366
  }>;
367
367
  generate: CommandDef<ArgsDef>;
368
+ character: CommandDef<ArgsDef>;
368
369
  assets: CommandDef<ArgsDef>;
369
370
  levels: CommandDef<ArgsDef>;
370
371
  theme: CommandDef<ArgsDef>;
package/dist/cli.js CHANGED
@@ -22,6 +22,7 @@ import { reloadCommand } from './commands/reload.js';
22
22
  import { verifyCommand } from './commands/verify.js';
23
23
  import { buildCommand } from './commands/build.js';
24
24
  import { generateCommand } from './commands/generate.js';
25
+ import { characterCommand } from './commands/character.js';
25
26
  import { assetsCommand } from './commands/assets.js';
26
27
  import { levelsCommand } from './commands/levels.js';
27
28
  import { themeCommand } from './commands/theme.js';
@@ -214,6 +215,7 @@ const rawCommands = {
214
215
  verify: verifyCommand,
215
216
  build: buildCommand,
216
217
  generate: generateCommand,
218
+ character: characterCommand,
217
219
  assets: assetsCommand,
218
220
  levels: levelsCommand,
219
221
  theme: themeCommand,
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type CharacterSearchRecord } from '../project/character-search.js';
2
+ import { type CharacterArgs } from '../generate/character-body.js';
3
+ /**
4
+ * What `bitmagic character add` will ask for, from its flags and the cached search.
5
+ *
6
+ * Pure, and separated from the command so the branch that matters — which of the
7
+ * two forms was asked for, and whether the cache can answer it — is testable
8
+ * without a project, a token or a network. It returns the character args rather
9
+ * than a body so the shared `buildCharacterBody` still owns the wire shape.
10
+ */
11
+ export declare function resolveAddRequest(args: {
12
+ name: string;
13
+ id?: string;
14
+ prompt?: string;
15
+ applyToPlayer?: boolean;
16
+ record: CharacterSearchRecord | null;
17
+ }): CharacterArgs;
18
+ export declare const characterCommand: import("citty").CommandDef<import("citty").ArgsDef>;
@@ -0,0 +1,268 @@
1
+ /**
2
+ * `bitmagic character` — make one, look through the ready-made ones, or add one.
3
+ *
4
+ * Its own noun group rather than three flags on `bitmagic generate character`,
5
+ * because the shelf and the forge are two different requests that happened to
6
+ * share a command:
7
+ *
8
+ * generate costs sparks, makes a new body, may substitute a close stored one
9
+ * search free, read-only, shows what the shelf has and how close it is
10
+ * add free, puts a stored body in the game, never forges
11
+ *
12
+ * The old surface expressed "add" as `generate character --library-only`, a
13
+ * command that generates nothing, and it carried two flags that existed only to
14
+ * be refused on that path (`--head-scale` was accepted, reported and dropped;
15
+ * `--mesh-model` was rejected outright). Both refusals disappear here, because a
16
+ * command that never forges simply does not offer the flags that pick how a
17
+ * forge runs.
18
+ *
19
+ * `search` exists because no similarity floor can do this job. Measured against
20
+ * the live index, genuine matches score 0.624-0.831 while humanoid prompts the
21
+ * shelf cannot answer score 0.552-0.698 — overlapping, so a threshold that keeps
22
+ * the good ones keeps "a humanoid bee" for "a beekeeper" too. A person reading
23
+ * three captions settles in a second what a number cannot settle at all.
24
+ */
25
+ import { defineCommand } from 'citty';
26
+ import { CliError } from '../errors.js';
27
+ import { createOutput } from '../output.js';
28
+ import { apiGet } from '../http/client.js';
29
+ import { resolveArtStyle } from '../project/art-style.js';
30
+ import { findCachedCandidate, readCharacterSearch, writeCharacterSearch, } from '../project/character-search.js';
31
+ import { ORIGINAL_PROMPT_FLAG, withParent } from '../telemetry/creator-prompt.js';
32
+ import { JSON_FLAG, resolveRun, runAssetGeneration } from './generate.js';
33
+ import { APPLY_TO_PLAYER_ARG, buildCharacterBody, defaultVoxelizeForProject, FRESH_ARG, HEAD_SCALE_ARG, LIBRARY_ARG, MESH_MODEL_ARG, NAME_ARG, PROMPT_ARG, VOXELIZE_ARG, } from '../generate/character-body.js';
34
+ const generateCommand = defineCommand({
35
+ meta: {
36
+ name: 'generate',
37
+ description: 'Forge a new rigged character and add it to world.json assets. Costs sparks.',
38
+ },
39
+ args: {
40
+ name: NAME_ARG,
41
+ prompt: PROMPT_ARG,
42
+ 'apply-to-player': APPLY_TO_PLAYER_ARG,
43
+ 'head-scale': HEAD_SCALE_ARG,
44
+ fresh: FRESH_ARG,
45
+ library: LIBRARY_ARG,
46
+ voxelize: VOXELIZE_ARG,
47
+ 'mesh-model': MESH_MODEL_ARG,
48
+ 'original-prompt': ORIGINAL_PROMPT_FLAG,
49
+ json: JSON_FLAG,
50
+ },
51
+ async run({ args }) {
52
+ const body = buildCharacterBody({
53
+ name: args.name,
54
+ prompt: args.prompt,
55
+ applyToPlayer: args['apply-to-player'],
56
+ headScale: args['head-scale'],
57
+ fresh: args.fresh,
58
+ library: args.library,
59
+ voxelize: args.voxelize ?? defaultVoxelizeForProject(),
60
+ meshModel: args['mesh-model'],
61
+ });
62
+ await runAssetGeneration('character', 'character', withParent(body), args.json === true);
63
+ },
64
+ });
65
+ /** `62%` — the only form a similarity is ever shown in, so the table lines up. */
66
+ function percent(value) {
67
+ return `${Math.round(value * 100)}%`;
68
+ }
69
+ function renderCandidates(candidates, threshold, log) {
70
+ const width = Math.max(2, ...candidates.map((row) => row.sid.length));
71
+ log('');
72
+ log(` # ${'id'.padEnd(width)} match auto description`);
73
+ candidates.forEach((row, index) => {
74
+ // The "auto" column is why the floor is reported rather than applied: it
75
+ // says which of these automatic substitution would have taken, so a creator
76
+ // can see both that a body cleared the bar and that a weaker one exists.
77
+ const auto = row.similarity >= threshold ? ' yes' : ' -';
78
+ const label = row.subject ?? row.description ?? '';
79
+ log(` ${String(index + 1).padStart(1)} ${row.sid.padEnd(width)} ${percent(row.similarity).padStart(5)} ${auto} ${label.slice(0, 60)}`);
80
+ });
81
+ log('');
82
+ }
83
+ const searchCommand = defineCommand({
84
+ meta: {
85
+ name: 'search',
86
+ description: 'List the ready-made characters closest to a description. Free; changes nothing.',
87
+ },
88
+ args: {
89
+ prompt: {
90
+ type: 'string',
91
+ required: true,
92
+ description: 'What the character should look like.',
93
+ },
94
+ limit: {
95
+ type: 'string',
96
+ description: 'How many candidates to list, 1-16. Default 5.',
97
+ },
98
+ representation: {
99
+ type: 'string',
100
+ description: "Which shelf to search: 'voxel' or 'lowpoly'. Omit to follow the project's art style.",
101
+ },
102
+ json: JSON_FLAG,
103
+ },
104
+ async run({ args }) {
105
+ const json = args.json === true;
106
+ const { output, runDeps, context, environment, token } = await resolveRun(json);
107
+ const representation = (() => {
108
+ const asked = args.representation;
109
+ // `resolveArtStyle` also reports a game.json value that is neither word,
110
+ // which is the same note every other art-style-aware command prints.
111
+ if (asked === undefined)
112
+ return resolveArtStyle(context.root, output.info) === 'low-poly' ? 'lowpoly' : 'voxel';
113
+ if (asked !== 'voxel' && asked !== 'lowpoly') {
114
+ throw new CliError("--representation must be 'voxel' or 'lowpoly'.", 1, 'invalid_flag');
115
+ }
116
+ return asked;
117
+ })();
118
+ const query = new URLSearchParams({
119
+ gameId: context.metadata.gameId,
120
+ prompt: args.prompt,
121
+ representation,
122
+ });
123
+ if (args.limit !== undefined)
124
+ query.set('limit', args.limit);
125
+ const response = await apiGet(environment, `/api/cli/v1/characters/search?${query.toString()}`, token, runDeps);
126
+ // Written even when empty: "the shelf has nothing like this" is a result a
127
+ // re-run should not have to rediscover, and an empty cache makes `add --id`
128
+ // say "search first" rather than "no such id".
129
+ writeCharacterSearch(context.root, {
130
+ prompt: response.prompt,
131
+ representation,
132
+ threshold: response.threshold,
133
+ searchedAt: new Date().toISOString(),
134
+ candidates: response.candidates,
135
+ });
136
+ if (response.candidates.length === 0) {
137
+ const nearest = response.topSimilarity !== undefined
138
+ ? ` The closest was ${percent(response.topSimilarity)}, which had no usable file.`
139
+ : '';
140
+ output.info(`No ready-made ${representation} character matches "${response.prompt}".${nearest}`);
141
+ output.info(`Forge one instead: bitmagic character generate --name <name> --prompt "${response.prompt}"`);
142
+ output.result({ ok: true, kind: 'character search', representation, threshold: response.threshold, candidates: [], ...(response.reason ? { reason: response.reason } : {}) });
143
+ return;
144
+ }
145
+ output.info(`${response.candidates.length} ready-made ${representation} character(s) for "${response.prompt}":`);
146
+ renderCandidates(response.candidates, response.threshold, output.info);
147
+ const best = response.candidates[0];
148
+ if (best.similarity < response.threshold) {
149
+ // Said plainly rather than hidden: on this corpus a confident-looking
150
+ // caption can still be the wrong character, and the creator is the only
151
+ // one who can tell.
152
+ output.info(`None clears the ${percent(response.threshold)} bar automatic substitution requires — read the captions before adding one.`);
153
+ }
154
+ output.info(`Add one: bitmagic character add --id ${best.sid} --name <name>`);
155
+ output.result({
156
+ ok: true,
157
+ kind: 'character search',
158
+ representation,
159
+ threshold: response.threshold,
160
+ candidates: response.candidates,
161
+ });
162
+ },
163
+ });
164
+ /**
165
+ * What `bitmagic character add` will ask for, from its flags and the cached search.
166
+ *
167
+ * Pure, and separated from the command so the branch that matters — which of the
168
+ * two forms was asked for, and whether the cache can answer it — is testable
169
+ * without a project, a token or a network. It returns the character args rather
170
+ * than a body so the shared `buildCharacterBody` still owns the wire shape.
171
+ */
172
+ export function resolveAddRequest(args) {
173
+ if (args.id === undefined) {
174
+ if (args.prompt === undefined) {
175
+ throw new CliError('Pass --id (from `bitmagic character search`) or --prompt to take the closest match.', 1, 'invalid_flag');
176
+ }
177
+ // The no-id form: the server searches with no floor and adds the best usable
178
+ // body, or fails without charging. Deliberately still available — "any of
179
+ // these will do" is a real request, and it is one call rather than two.
180
+ return {
181
+ name: args.name,
182
+ prompt: args.prompt,
183
+ applyToPlayer: args.applyToPlayer,
184
+ libraryOnly: true,
185
+ voxelize: defaultVoxelizeForProject(),
186
+ };
187
+ }
188
+ if (args.record === null) {
189
+ throw new CliError('No character search to pick from. Run `bitmagic character search --prompt "..."` first.', 1, 'no_search');
190
+ }
191
+ const candidate = findCachedCandidate(args.record, args.id);
192
+ if (candidate === null) {
193
+ const known = args.record.candidates.map((row) => row.sid).join(', ');
194
+ throw new CliError(`"${args.id}" was not in the last character search`
195
+ + (known === '' ? ' (it found nothing).' : `. It offered: ${known}.`)
196
+ + ' Run `bitmagic character search` again to pick from a fresh list.', 1, 'unknown_candidate');
197
+ }
198
+ return {
199
+ name: args.name,
200
+ // The CREATOR's brief, not the library row's own caption: this is what a
201
+ // regeneration re-drives, so it must describe what they asked for.
202
+ prompt: args.prompt ?? args.record.prompt,
203
+ applyToPlayer: args.applyToPlayer,
204
+ libraryPick: {
205
+ sid: candidate.sid,
206
+ assetUrl: candidate.assetUrl,
207
+ similarity: candidate.similarity,
208
+ ...(candidate.description ? { description: candidate.description } : {}),
209
+ },
210
+ // The shelf that produced the row decides the medium, not the project's art
211
+ // style at the moment of adding: mixing them would hand a low-poly game a
212
+ // pile of cubes.
213
+ voxelize: args.record.representation === 'voxel',
214
+ };
215
+ }
216
+ const addCommand = defineCommand({
217
+ meta: {
218
+ name: 'add',
219
+ description: 'Add a ready-made character from the library to world.json assets. Free; never forges.',
220
+ },
221
+ args: {
222
+ name: NAME_ARG,
223
+ id: {
224
+ type: 'string',
225
+ description: 'The id of a candidate from `bitmagic character search`. Omit to take the closest match to --prompt.',
226
+ },
227
+ prompt: {
228
+ type: 'string',
229
+ description: 'What the character should look like. Required without --id; with --id it defaults to the search that found it.',
230
+ },
231
+ 'apply-to-player': APPLY_TO_PLAYER_ARG,
232
+ 'original-prompt': ORIGINAL_PROMPT_FLAG,
233
+ json: JSON_FLAG,
234
+ },
235
+ async run({ args }) {
236
+ const json = args.json === true;
237
+ const { context } = await resolveRun(json);
238
+ const output = createOutput(json);
239
+ // Only the --id form consults the cache; the --prompt form is a fresh ask.
240
+ const record = args.id === undefined ? null : readCharacterSearch(context.root);
241
+ const request = resolveAddRequest({
242
+ name: args.name,
243
+ id: args.id,
244
+ prompt: args.prompt,
245
+ applyToPlayer: args['apply-to-player'],
246
+ record,
247
+ });
248
+ if (request.libraryPick) {
249
+ // The search's own date, not an expiry: age is worth seeing, and the
250
+ // catalogue only changes when somebody promotes to it.
251
+ output.info(`Adding ${request.libraryPick.sid} (${percent(request.libraryPick.similarity)} match`
252
+ + `${record?.searchedAt ? `, from the search on ${record.searchedAt.slice(0, 10)}` : ''}).`);
253
+ }
254
+ await runAssetGeneration('character', 'character', withParent(buildCharacterBody(request)), json);
255
+ },
256
+ });
257
+ export const characterCommand = defineCommand({
258
+ meta: {
259
+ name: 'character',
260
+ description: 'Forge a character, search the ready-made ones, or add one to your game.',
261
+ },
262
+ subCommands: {
263
+ generate: generateCommand,
264
+ search: searchCommand,
265
+ add: addCommand,
266
+ },
267
+ });
268
+ //# sourceMappingURL=character.js.map