@bitmagic/cli 0.1.65-dev.21 → 0.1.65-dev.22

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.
@@ -22,10 +22,13 @@
22
22
  * so `project.ts` can import this without a cycle.
23
23
  *
24
24
  * What keeps it honest, and what does not:
25
- * - `__tests__/asset-pipeline-skill-files.test.ts` fails when a `bitmagic generate` subcommand
26
- * exists with no row here, when a row names a subcommand or a skill directory that does not
27
- * exist, or when one of the need sections or the two defaults (audio opt-in, block characters)
28
- * disappears. So a new generator cannot ship without a row.
25
+ * - `__tests__/asset-pipeline-skill-files.test.ts` fails when a `bitmagic generate` subcommand or
26
+ * a `bitmagic character` verb exists with no row here (deprecated aliases excepted), when a row
27
+ * names a subcommand or a skill directory that does not exist, or when one of the need sections
28
+ * or the two defaults (audio opt-in, block characters) disappears. So a new generator cannot
29
+ * ship without a row — but a RENAMED flag can: the day this shipped, `--no-library` had just
30
+ * become `--fresh` and `--library-only` had become `character search` + `add`, and every test
31
+ * passed. Read the `--help` of anything you touch.
29
32
  * - Prices and timings are NOT test-checked. Sparks come from `api-server/src/llm/llm_cost.json`
30
33
  * (`toolCosts`, 1 spark = $0.01): glb/model/prop 3, voxel character 15, low-poly character 60,
31
34
  * library-only 0, skybox and background 5, image 3, cover and reference 6, block-type 3, sound
@@ -22,10 +22,13 @@
22
22
  * so `project.ts` can import this without a cycle.
23
23
  *
24
24
  * What keeps it honest, and what does not:
25
- * - `__tests__/asset-pipeline-skill-files.test.ts` fails when a `bitmagic generate` subcommand
26
- * exists with no row here, when a row names a subcommand or a skill directory that does not
27
- * exist, or when one of the need sections or the two defaults (audio opt-in, block characters)
28
- * disappears. So a new generator cannot ship without a row.
25
+ * - `__tests__/asset-pipeline-skill-files.test.ts` fails when a `bitmagic generate` subcommand or
26
+ * a `bitmagic character` verb exists with no row here (deprecated aliases excepted), when a row
27
+ * names a subcommand or a skill directory that does not exist, or when one of the need sections
28
+ * or the two defaults (audio opt-in, block characters) disappears. So a new generator cannot
29
+ * ship without a row — but a RENAMED flag can: the day this shipped, `--no-library` had just
30
+ * become `--fresh` and `--library-only` had become `character search` + `add`, and every test
31
+ * passed. Read the `--help` of anything you touch.
29
32
  * - Prices and timings are NOT test-checked. Sparks come from `api-server/src/llm/llm_cost.json`
30
33
  * (`toolCosts`, 1 spark = $0.01): glb/model/prop 3, voxel character 15, low-poly character 60,
31
34
  * library-only 0, skybox and background 5, image 3, cover and reference 6, block-type 3, sound
@@ -56,7 +59,7 @@ usage\` is the truth about what was actually spent.
56
59
 
57
60
  1. **Art style** — \`artStyle\` in \`src/work/game.json\`: \`voxel\` (default) or \`low-poly\`. A declared
58
61
  switch, not a per-asset flag: in a low-poly game \`generate model|prop\`, \`assets add\` and
59
- \`generate character\` keep meshes instead of voxelizing (and a character costs four times more),
62
+ \`character generate\` keep meshes instead of voxelizing (and a character costs four times more),
60
63
  the Blender level route opens, and built-in weapons should use their \`_lowpoly\` twins. Set it
61
64
  before the first cover.
62
65
  2. **Your model class** — frontier (Claude Fable / Opus 5, GPT-6 class) or not. Only the Blender
@@ -103,9 +106,9 @@ Rows are in recommended order: take the first whose conditions hold.
103
106
  | Route | Conditions | ~Cost | Notes |
104
107
  |---|---|---|---|
105
108
  | A block character built in code (the default) | any; recolours, outfits, a blocky knight/robot/wizard | free, seconds | \`character-system.md\`, \`npc-appearance.md\`. Highres and block **never coexist** — going highres means the whole cast goes |
106
- | \`bitmagic generate character --name <id> --prompt "..."\` | the look is genuinely custom; the whole cast will be highres | free and seconds on a library match; else ~15 sparks, ~1.5–4 min (voxel) or ~60 sparks, ~3 min (low-poly) | Library-first by default. \`--head-scale\` / \`--mesh-model\` always forge. \`--apply-to-player\` sets the player |
107
- | \`... --library-only\` | prototype; a close-enough body will do | free, instant | Nearest stored body, or fails and charges nothing |
108
- | \`... --no-library\` | polished; exactly this one | ~15 (voxel) / ~60 (low-poly) sparks; minutes | The costly row: ask first if purpose is unknown |
109
+ | \`bitmagic character search --prompt "..."\` then \`bitmagic character add --name <id> --id <sid>\` | prototype; any plausible ready-made body will do | free, instant | \`search\` lists the closest library bodies and changes nothing; \`add\` takes one and never forges. Judge the match yourself — a score says "plausible", not "right" |
110
+ | \`bitmagic character generate --name <id> --prompt "..."\` | the look is genuinely custom; the whole cast will be highres | free and seconds on a library match; else ~15 sparks, ~1.5–4 min (voxel) or ~60 sparks, ~3 min (low-poly) | Library-first by default. \`--head-scale\` / \`--mesh-model\` always forge. \`--apply-to-player\` sets the player |
111
+ | \`... --fresh\` | polished; exactly this one, no library substitute | ~15 (voxel) / ~60 (low-poly) sparks; minutes | The costly row: ask first if purpose is unknown |
109
112
 
110
113
  ### A building or landmark
111
114
 
@@ -1 +1 @@
1
- {"version":3,"file":"asset-pipeline-skill-files.js","sourceRoot":"","sources":["../../src/scaffold/asset-pipeline-skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;IAUL,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCjB,kBAAkB;;;;;;;;;;;;MAYjB,kBAAkB;MAClB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4FI,kBAAkB;;;;;;;8CAOA,kBAAkB;;CAE/D,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"asset-pipeline-skill-files.js","sourceRoot":"","sources":["../../src/scaffold/asset-pipeline-skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,UAAU,yBAAyB;IACvC,OAAO;;;;;;;;;;IAUL,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCjB,kBAAkB;;;;;;;;;;;;MAYjB,kBAAkB;MAClB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4FI,kBAAkB;;;;;;;8CAOA,kBAAkB;;CAE/D,CAAC;AACF,CAAC"}
@@ -68,6 +68,10 @@ const ALLOWED_COMMANDS = [
68
68
  // Allowance-funded content generation. See the note above: the gate that
69
69
  // matters is the TTY-only `allowance --allow-sparks`, not a prompt per asset.
70
70
  'Bash(bitmagic generate:*)',
71
+ // The character group: `generate` is allowance-funded like the rest, `search` and `add` are
72
+ // free. Missing from this list, every character request prompted — found by the probe runs
73
+ // the day the group shipped.
74
+ 'Bash(bitmagic character:*)',
71
75
  'Bash(bitmagic cover:*)',
72
76
  'Bash(bitmagic forge:*)',
73
77
  // Copies script bundles the CLI ships into the project's tools/. Local, no network.
@@ -1 +1 @@
1
- {"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../../src/scaffold/claude-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-settings.js","sourceRoot":"","sources":["../../src/scaffold/claude-settings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitmagic/cli",
3
- "version": "0.1.65-dev.21",
3
+ "version": "0.1.65-dev.22",
4
4
  "description": "Build Bitmagic games from your own agent tool",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Bitmagic Oy",
@@ -25,9 +25,9 @@
25
25
  "playwright-core": "^1.59.1",
26
26
  "tar": "^7.4.3",
27
27
  "ws": "^8.21.3",
28
- "@bitmagic/animation-forger": "0.1.20-dev.21",
29
- "@bitmagic/asset-core": "0.2.20-dev.21",
30
- "@bitmagic/world-forger": "0.1.25-dev.21"
28
+ "@bitmagic/animation-forger": "0.1.20-dev.22",
29
+ "@bitmagic/asset-core": "0.2.20-dev.22",
30
+ "@bitmagic/world-forger": "0.1.25-dev.22"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@eslint/js": "^9.38.0",