@bitmagic/cli 0.1.52-dev.0 → 0.1.52-dev.10

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 (139) hide show
  1. package/README.md +178 -6
  2. package/dist/assets/add.d.ts +40 -0
  3. package/dist/assets/add.js +229 -0
  4. package/dist/assets/add.js.map +1 -0
  5. package/dist/assets/entry.d.ts +44 -0
  6. package/dist/assets/entry.js +71 -0
  7. package/dist/assets/entry.js.map +1 -0
  8. package/dist/assets/file-kind.d.ts +61 -0
  9. package/dist/assets/file-kind.js +195 -0
  10. package/dist/assets/file-kind.js.map +1 -0
  11. package/dist/assets/list.d.ts +27 -0
  12. package/dist/assets/list.js +50 -0
  13. package/dist/assets/list.js.map +1 -0
  14. package/dist/assets/remove.d.ts +50 -0
  15. package/dist/assets/remove.js +91 -0
  16. package/dist/assets/remove.js.map +1 -0
  17. package/dist/assets/voxelize-glb.d.ts +37 -0
  18. package/dist/assets/voxelize-glb.js +65 -0
  19. package/dist/assets/voxelize-glb.js.map +1 -0
  20. package/dist/assets/vxl-summary.d.ts +32 -0
  21. package/dist/assets/vxl-summary.js +118 -0
  22. package/dist/assets/vxl-summary.js.map +1 -0
  23. package/dist/bin.js +25 -0
  24. package/dist/bin.js.map +1 -1
  25. package/dist/browser-gl.d.ts +46 -8
  26. package/dist/browser-gl.js +54 -26
  27. package/dist/browser-gl.js.map +1 -1
  28. package/dist/cli.d.ts +22 -0
  29. package/dist/cli.js +17 -1
  30. package/dist/cli.js.map +1 -1
  31. package/dist/commands/assets.d.ts +56 -0
  32. package/dist/commands/assets.js +328 -0
  33. package/dist/commands/assets.js.map +1 -0
  34. package/dist/commands/cover.js +2 -3
  35. package/dist/commands/cover.js.map +1 -1
  36. package/dist/commands/forge.d.ts +7 -9
  37. package/dist/commands/forge.js +12 -14
  38. package/dist/commands/forge.js.map +1 -1
  39. package/dist/commands/generate.d.ts +41 -9
  40. package/dist/commands/generate.js +234 -54
  41. package/dist/commands/generate.js.map +1 -1
  42. package/dist/commands/init.js +19 -12
  43. package/dist/commands/init.js.map +1 -1
  44. package/dist/commands/judge.d.ts +36 -0
  45. package/dist/commands/judge.js +216 -0
  46. package/dist/commands/judge.js.map +1 -0
  47. package/dist/commands/levels.d.ts +33 -0
  48. package/dist/commands/levels.js +241 -0
  49. package/dist/commands/levels.js.map +1 -0
  50. package/dist/commands/number-flag.d.ts +7 -0
  51. package/dist/commands/number-flag.js +38 -0
  52. package/dist/commands/number-flag.js.map +1 -0
  53. package/dist/commands/publish.js +13 -0
  54. package/dist/commands/publish.js.map +1 -1
  55. package/dist/commands/reset-account.js +2 -8
  56. package/dist/commands/reset-account.js.map +1 -1
  57. package/dist/commands/run-deps.d.ts +27 -0
  58. package/dist/commands/run-deps.js +43 -0
  59. package/dist/commands/run-deps.js.map +1 -0
  60. package/dist/commands/verify.js +3 -3
  61. package/dist/commands/verify.js.map +1 -1
  62. package/dist/editor/journal.d.ts +48 -1
  63. package/dist/editor/journal.js +44 -0
  64. package/dist/editor/journal.js.map +1 -1
  65. package/dist/editor/previews.d.ts +6 -0
  66. package/dist/editor/previews.js +16 -0
  67. package/dist/editor/previews.js.map +1 -1
  68. package/dist/editor/server.js +228 -53
  69. package/dist/editor/server.js.map +1 -1
  70. package/dist/editor/shell-page.js +221 -116
  71. package/dist/editor/shell-page.js.map +1 -1
  72. package/dist/editor/voxel-save.d.ts +47 -0
  73. package/dist/editor/voxel-save.js +49 -0
  74. package/dist/editor/voxel-save.js.map +1 -0
  75. package/dist/errors.d.ts +10 -0
  76. package/dist/errors.js +16 -0
  77. package/dist/errors.js.map +1 -1
  78. package/dist/forge/apply-modifications.d.ts +18 -1
  79. package/dist/forge/apply-modifications.js +15 -32
  80. package/dist/forge/apply-modifications.js.map +1 -1
  81. package/dist/forge/browser-host.js +9 -4
  82. package/dist/forge/browser-host.js.map +1 -1
  83. package/dist/forge/voxelize-session.d.ts +61 -0
  84. package/dist/forge/voxelize-session.js +137 -0
  85. package/dist/forge/voxelize-session.js.map +1 -0
  86. package/dist/generate/model.d.ts +36 -0
  87. package/dist/generate/model.js +90 -0
  88. package/dist/generate/model.js.map +1 -0
  89. package/dist/generate/prop.d.ts +52 -4
  90. package/dist/generate/prop.js +169 -102
  91. package/dist/generate/prop.js.map +1 -1
  92. package/dist/generate/stream.d.ts +7 -0
  93. package/dist/generate/stream.js +2 -1
  94. package/dist/generate/stream.js.map +1 -1
  95. package/dist/generate/vehicle.js +5 -85
  96. package/dist/generate/vehicle.js.map +1 -1
  97. package/dist/http/signed-upload.d.ts +55 -0
  98. package/dist/http/signed-upload.js +168 -0
  99. package/dist/http/signed-upload.js.map +1 -0
  100. package/dist/judge/facts.d.ts +18 -0
  101. package/dist/judge/facts.js +180 -0
  102. package/dist/judge/facts.js.map +1 -0
  103. package/dist/judge/record.d.ts +16 -0
  104. package/dist/judge/record.js +55 -0
  105. package/dist/judge/record.js.map +1 -0
  106. package/dist/judge/stream.d.ts +36 -0
  107. package/dist/judge/stream.js +122 -0
  108. package/dist/judge/stream.js.map +1 -0
  109. package/dist/levels/registry.d.ts +88 -0
  110. package/dist/levels/registry.js +309 -0
  111. package/dist/levels/registry.js.map +1 -0
  112. package/dist/messages/check.d.ts +30 -0
  113. package/dist/messages/check.js +119 -0
  114. package/dist/messages/check.js.map +1 -0
  115. package/dist/messages/notice.d.ts +58 -0
  116. package/dist/messages/notice.js +54 -0
  117. package/dist/messages/notice.js.map +1 -0
  118. package/dist/messages/refresh.d.ts +19 -0
  119. package/dist/messages/refresh.js +42 -0
  120. package/dist/messages/refresh.js.map +1 -0
  121. package/dist/project/jobs.d.ts +1 -1
  122. package/dist/project/jobs.js.map +1 -1
  123. package/dist/publish/client.d.ts +13 -0
  124. package/dist/publish/client.js +13 -34
  125. package/dist/publish/client.js.map +1 -1
  126. package/dist/publish/platform.d.ts +46 -0
  127. package/dist/publish/platform.js +92 -0
  128. package/dist/publish/platform.js.map +1 -0
  129. package/dist/scaffold/project-files.d.ts +8 -0
  130. package/dist/scaffold/project-files.js +192 -34
  131. package/dist/scaffold/project-files.js.map +1 -1
  132. package/dist/scaffold/project.js +2 -1
  133. package/dist/scaffold/project.js.map +1 -1
  134. package/dist/verify/browser.d.ts +11 -6
  135. package/dist/verify/browser.js +31 -15
  136. package/dist/verify/browser.js.map +1 -1
  137. package/dist/verify/iterate.js +3 -3
  138. package/dist/verify/iterate.js.map +1 -1
  139. package/package.json +4 -4
@@ -1,11 +1,27 @@
1
+ import { type CommandRunDeps } from './run-deps.js';
1
2
  import { type GenerationOutcome } from '../generate/stream.js';
2
3
  import { type PropVoxelizeResult } from '../generate/prop.js';
3
4
  import { type VehicleInstallResult } from '../generate/vehicle.js';
5
+ import { type GenerateModelResult } from '../generate/model.js';
6
+ import type { VoxelizeGlb } from '../assets/voxelize-glb.js';
4
7
  export interface SkyboxArgs {
5
8
  description: string;
6
9
  referenceImageUrl?: string;
7
10
  }
8
11
  export declare function buildSkyboxBody(args: SkyboxArgs): Record<string, unknown>;
12
+ export interface BackgroundArgs {
13
+ description: string;
14
+ referenceImageUrl?: string;
15
+ }
16
+ export declare function buildBackgroundBody(args: BackgroundArgs): Record<string, unknown>;
17
+ export interface BlockTypeArgs {
18
+ name: string;
19
+ description: string;
20
+ displayName?: string;
21
+ sideDescription?: string;
22
+ referenceImageUrl?: string;
23
+ }
24
+ export declare function buildBlockTypeBody(args: BlockTypeArgs): Record<string, unknown>;
9
25
  export interface SoundArgs {
10
26
  prompt: string;
11
27
  duration?: string;
@@ -54,15 +70,9 @@ export type SpecReader = (source: string) => string;
54
70
  * what a default is.
55
71
  */
56
72
  export declare function buildAnimationBody(args: AnimationArgs, readSpec: SpecReader): Record<string, unknown>;
57
- export interface GenerateRunDeps {
58
- fetch: typeof globalThis.fetch;
59
- sleep: (ms: number) => Promise<void>;
60
- now?: () => number;
61
- /** Test-only override; production omits it and loadProjectContext walks up from process.cwd(). */
62
- startDir?: string;
63
- /** Test-only override; production omits it and getAccessToken/readDefaultEnvironment read ~/.bitmagic. */
64
- baseDir?: string;
65
- log: (message: string) => void;
73
+ export interface GenerateRunDeps extends CommandRunDeps {
74
+ /** Test-only override for the headless bake, so the lane runs without Chrome. */
75
+ voxelize?: VoxelizeGlb;
66
76
  }
67
77
  /**
68
78
  * Runs one `bitmagic generate <subcommand>`: requests the asset, then applies the returned
@@ -120,4 +130,26 @@ export declare function runVehicleGeneration(options: {
120
130
  json: boolean;
121
131
  deps?: GenerateRunDeps;
122
132
  }): Promise<VehicleInstallResult>;
133
+ /**
134
+ * `generate model` mints a NEW asset from a prompt. Like prop and vehicle it cannot go through
135
+ * {@link runAssetGeneration} — the generator returns a mesh, not patches, so nothing can be applied
136
+ * until the CLI has voxelized it in a browser.
137
+ *
138
+ * Unlike prop there is no existing asset to validate against, which is the whole point: prop
139
+ * refuses without a `fitBox` because every placed instance was positioned against one, while this
140
+ * has no instances yet and scales to `--height` (or the mesh's own size) instead.
141
+ */
142
+ export declare function runModelGeneration(options: {
143
+ prompt: string;
144
+ name?: string;
145
+ assetId?: string;
146
+ minVoxelSize: number;
147
+ maxVoxelSize: number;
148
+ targetHeight?: number;
149
+ fillInterior: boolean;
150
+ /** Skip the paid generation and voxelize this mesh instead — how a failed run is retried. */
151
+ glbUrl?: string;
152
+ json: boolean;
153
+ deps?: GenerateRunDeps;
154
+ }): Promise<GenerateModelResult>;
123
155
  export declare const generateCommand: import("citty").CommandDef<import("citty").ArgsDef>;
@@ -2,8 +2,10 @@ import { defineCommand } from 'citty';
2
2
  import { authoredClipSpecSchema, formatSpecIssues, GAIT_PRESET_NAMES } from '@bitmagic/animation-forger';
3
3
  import * as fs from 'fs';
4
4
  import * as path from 'path';
5
- import { CliError } from '../errors.js';
5
+ import { CliError, errnoCode } from '../errors.js';
6
+ import { parseNumberFlag } from './number-flag.js';
6
7
  import { createOutput } from '../output.js';
8
+ import { commandRunDeps, decoratedError } from './run-deps.js';
7
9
  import { loadProjectContext } from '../project/context.js';
8
10
  import { withJobRecord } from '../project/jobs.js';
9
11
  import { aliasSourceDir } from '../scaffold/aliases.js';
@@ -13,24 +15,17 @@ import { requestGeneration } from '../generate/stream.js';
13
15
  import { applyPatchesToWorld } from '../generate/apply-patches.js';
14
16
  import { generateAndInstallProp } from '../generate/prop.js';
15
17
  import { generateAndInstallVehicle } from '../generate/vehicle.js';
16
- function parseNumberFlag(flagName, raw, options = {}) {
17
- if (raw === undefined)
18
- return undefined;
19
- const value = Number(raw);
20
- if (!Number.isFinite(value)) {
21
- throw new CliError(`--${flagName} must be a number, got ${JSON.stringify(raw)}.`);
22
- }
23
- if (options.integer && !Number.isInteger(value)) {
24
- throw new CliError(`--${flagName} must be a whole number, got ${JSON.stringify(raw)}.`);
25
- }
26
- if (options.min !== undefined && value < options.min) {
27
- throw new CliError(`--${flagName} must be at least ${options.min}, got ${value}.`);
28
- }
29
- if (options.max !== undefined && value > options.max) {
30
- throw new CliError(`--${flagName} must be at most ${options.max}, got ${value}.`);
31
- }
32
- return value;
33
- }
18
+ import { generateAndInstallModel } from '../generate/model.js';
19
+ import { DEFAULT_MAX_VOXEL_SIZE, DEFAULT_MIN_VOXEL_SIZE, SOLID_FILL_MAX_HEIGHT_M } from './assets.js';
20
+ // ============================================================================
21
+ // Numeric flag parsing
22
+ //
23
+ // citty hands every non-boolean flag to us as a string, always. A previous command in this
24
+ // package (verify.ts's --timeout) shipped a bug where an unparseable value silently became NaN
25
+ // and produced a false failure that pointed nowhere near the real cause. Every numeric flag below
26
+ // goes through this one function so a typo is rejected up front, naming the flag, instead of
27
+ // reaching the server as `null`/`NaN` or (worse) as the literal string.
28
+ // ============================================================================
34
29
  // ============================================================================
35
30
  // Body builders
36
31
  //
@@ -55,6 +50,21 @@ export function buildSkyboxBody(args) {
55
50
  referenceImageUrl: args.referenceImageUrl,
56
51
  });
57
52
  }
53
+ export function buildBackgroundBody(args) {
54
+ return withoutAbsentFlags({
55
+ description: args.description,
56
+ referenceImageUrl: args.referenceImageUrl,
57
+ });
58
+ }
59
+ export function buildBlockTypeBody(args) {
60
+ return withoutAbsentFlags({
61
+ name: args.name,
62
+ description: args.description,
63
+ displayName: args.displayName,
64
+ sideDescription: args.sideDescription,
65
+ referenceImageUrl: args.referenceImageUrl,
66
+ });
67
+ }
58
68
  export function buildSoundBody(args) {
59
69
  return withoutAbsentFlags({
60
70
  prompt: args.prompt,
@@ -123,12 +133,6 @@ function parseDials(raw) {
123
133
  }
124
134
  const STDIN_EMPTY = '--spec - reads the spec from stdin, but nothing arrived. '
125
135
  + 'Try: cat clip.json | bitmagic generate animation --spec -';
126
- /** The `code` off a Node fs error, without pulling in the NodeJS global namespace. */
127
- function errnoCode(error) {
128
- return typeof error === 'object' && error !== null && 'code' in error
129
- ? String(error.code)
130
- : undefined;
131
- }
132
136
  /**
133
137
  * The production `SpecReader`: a file path, or `-` for stdin.
134
138
  *
@@ -228,35 +232,7 @@ export function buildAnimationBody(args, readSpec) {
228
232
  spec,
229
233
  });
230
234
  }
231
- /**
232
- * Built AFTER `--json` is known, so `log` is the Output seam rather than a bare console.log —
233
- * a deps object constructed before the flag is parsed could only route prose to stdout.
234
- */
235
- function defaultDeps(json) {
236
- const output = createOutput(json);
237
- return {
238
- fetch: globalThis.fetch,
239
- sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
240
- log: output.info,
241
- };
242
- }
243
- /**
244
- * The error to rethrow from one of `runAssetGeneration`'s two failure spans, which differ only in
245
- * wording: a CliError gets `decorate` applied to its message, while anything else is a genuine bug
246
- * rather than a condition we designed a message for and passes through untouched, for cli.ts to
247
- * hand to citty's default (stack-trace) handling.
248
- *
249
- * The exit code and the failure `code` are carried across. Only the MESSAGE is this function's to
250
- * change: re-minting the error with the constructor's defaults silently downgraded "not logged
251
- * in" (exit 2, `not_logged_in`) to a generic exit-1 `cli_error` for every `bitmagic generate` and
252
- * `bitmagic cover` — so the documented exit codes were wrong for a scripted caller and the
253
- * documented failure categories never appeared in analytics for these lanes.
254
- */
255
- function decoratedError(error, decorate) {
256
- return error instanceof CliError
257
- ? new CliError(decorate(error.message), error.exitCode, error.code)
258
- : error;
259
- }
235
+ const defaultDeps = (json) => commandRunDeps(json);
260
236
  /**
261
237
  * The wire type a generator is requested by, as the dev view names it.
262
238
  *
@@ -481,6 +457,61 @@ export async function runVehicleGeneration(options) {
481
457
  runDeps.log('A running `bitmagic dev` reloads the browser by itself to show it.');
482
458
  return result;
483
459
  }
460
+ /**
461
+ * `generate model` mints a NEW asset from a prompt. Like prop and vehicle it cannot go through
462
+ * {@link runAssetGeneration} — the generator returns a mesh, not patches, so nothing can be applied
463
+ * until the CLI has voxelized it in a browser.
464
+ *
465
+ * Unlike prop there is no existing asset to validate against, which is the whole point: prop
466
+ * refuses without a `fitBox` because every placed instance was positioned against one, while this
467
+ * has no instances yet and scales to `--height` (or the mesh's own size) instead.
468
+ */
469
+ export async function runModelGeneration(options) {
470
+ const output = createOutput(options.json);
471
+ const runDeps = options.deps ?? defaultDeps(options.json);
472
+ const context = loadProjectContext(runDeps.startDir);
473
+ const environment = resolveEnvironmentForCommand({ cwd: context.root, baseDir: runDeps.baseDir });
474
+ const token = await getAccessToken(environment, resolveAuth0ClientId(environment), { fetch: runDeps.fetch, sleep: runDeps.sleep, now: runDeps.now }, runDeps.baseDir);
475
+ const result = await withJobRecord({
476
+ root: context.root,
477
+ kind: 'model',
478
+ ...(options.assetId !== undefined ? { assetId: options.assetId } : {}),
479
+ label: jobLabel('model', { prompt: options.prompt }),
480
+ log: runDeps.log,
481
+ }, async (log) => {
482
+ try {
483
+ return await generateAndInstallModel({
484
+ context,
485
+ environment,
486
+ token,
487
+ prompt: options.prompt,
488
+ ...(options.name !== undefined ? { name: options.name } : {}),
489
+ ...(options.assetId !== undefined ? { assetId: options.assetId } : {}),
490
+ ...(options.glbUrl !== undefined ? { glbUrl: options.glbUrl } : {}),
491
+ voxel: {
492
+ minVoxelSize: options.minVoxelSize,
493
+ maxVoxelSize: options.maxVoxelSize,
494
+ ...(options.targetHeight !== undefined ? { targetHeight: options.targetHeight } : {}),
495
+ fillInterior: options.fillInterior,
496
+ },
497
+ fetchImpl: runDeps.fetch,
498
+ ...(runDeps.voxelize !== undefined ? { voxelize: runDeps.voxelize } : {}),
499
+ log,
500
+ });
501
+ }
502
+ catch (error) {
503
+ throw decoratedError(error, (message) => message);
504
+ }
505
+ });
506
+ runDeps.log(`Added "${result.assetName}" (id ${result.assetId})`
507
+ + `${result.voxelCount !== undefined ? `, ${result.voxelCount} voxels` : ''}. Place it from game `
508
+ + 'code, or drag it in from the dev view\'s Add-object palette.');
509
+ // `result` carries glbUrl so a retry after a later failure can find the paid-for mesh in the
510
+ // JSON document rather than only in the error text.
511
+ output.result({ ok: true, kind: 'model', ...result });
512
+ runDeps.log('A running `bitmagic dev` reloads the browser by itself to show it.');
513
+ return result;
514
+ }
484
515
  // ============================================================================
485
516
  // Subcommands
486
517
  // ============================================================================
@@ -514,6 +545,76 @@ const skyboxCommand = defineCommand({
514
545
  await runAssetGeneration('skybox', 'skybox', body, args.json === true);
515
546
  },
516
547
  });
548
+ /**
549
+ * Writes the SAME field as `generate skybox` — see the subcommand description. There is no second
550
+ * field to write: the engine has exactly one backdrop slot and sphere-maps whatever is in it.
551
+ */
552
+ const backgroundCommand = defineCommand({
553
+ meta: { name: 'background', description: 'Generate a flat 2D backdrop and apply it to world.json (replaces any skybox).' },
554
+ args: {
555
+ description: {
556
+ type: 'string',
557
+ required: true,
558
+ description: 'Description of the background scene.',
559
+ },
560
+ 'reference-image-url': {
561
+ type: 'string',
562
+ description: 'Style/composition reference image URL forwarded to the image model.',
563
+ },
564
+ json: {
565
+ type: 'boolean',
566
+ description: 'Print the result as JSON on stdout; all progress goes to stderr.',
567
+ },
568
+ },
569
+ async run({ args }) {
570
+ const body = buildBackgroundBody({
571
+ description: args.description,
572
+ referenceImageUrl: args['reference-image-url'],
573
+ });
574
+ await runAssetGeneration('background', 'background', body, args.json === true);
575
+ },
576
+ });
577
+ const blockTypeCommand = defineCommand({
578
+ meta: { name: 'block-type', description: 'Generate a custom voxel block type and register it in world.json.' },
579
+ args: {
580
+ name: {
581
+ type: 'string',
582
+ required: true,
583
+ description: 'Block id, lowercase snake_case (e.g. mossy_brick). This is what game code refers to.',
584
+ },
585
+ description: {
586
+ type: 'string',
587
+ required: true,
588
+ description: 'What the block texture depicts.',
589
+ },
590
+ 'display-name': {
591
+ type: 'string',
592
+ description: 'Human-readable label; derived from --name when omitted.',
593
+ },
594
+ 'side-description': {
595
+ type: 'string',
596
+ description: 'Give the side faces their own texture from this description. Generates a second texture.',
597
+ },
598
+ 'reference-image-url': {
599
+ type: 'string',
600
+ description: 'Style/composition reference image URL forwarded to the image model.',
601
+ },
602
+ json: {
603
+ type: 'boolean',
604
+ description: 'Print the result as JSON on stdout; all progress goes to stderr.',
605
+ },
606
+ },
607
+ async run({ args }) {
608
+ const body = buildBlockTypeBody({
609
+ name: args.name,
610
+ description: args.description,
611
+ displayName: args['display-name'],
612
+ sideDescription: args['side-description'],
613
+ referenceImageUrl: args['reference-image-url'],
614
+ });
615
+ await runAssetGeneration('block-type', 'block type', body, args.json === true);
616
+ },
617
+ });
517
618
  const soundCommand = defineCommand({
518
619
  meta: { name: 'sound', description: 'Generate a sound effect and add it to world.json assets.' },
519
620
  args: {
@@ -773,6 +874,82 @@ const vehicleCommand = defineCommand({
773
874
  });
774
875
  },
775
876
  });
877
+ const modelCommand = defineCommand({
878
+ meta: {
879
+ name: 'model',
880
+ description: 'Generate a new 3D model from a text prompt and register it as a placeable asset.',
881
+ },
882
+ args: {
883
+ prompt: {
884
+ type: 'string',
885
+ required: true,
886
+ description: 'What the object should be. Also saved as the asset description.',
887
+ },
888
+ name: {
889
+ type: 'string',
890
+ description: 'Asset name; defaults to a short name derived from the prompt. Game code places by this.',
891
+ },
892
+ 'asset-id': {
893
+ type: 'string',
894
+ description: 'Pre-minted asset_… id to register under, so code already referencing it resolves.',
895
+ },
896
+ 'voxel-size': {
897
+ type: 'string',
898
+ description: `Finest voxel size in metres (default ${DEFAULT_MIN_VOXEL_SIZE}).`,
899
+ },
900
+ 'max-voxel-size': {
901
+ type: 'string',
902
+ description: `Coarsest voxel size for flat areas (default ${DEFAULT_MAX_VOXEL_SIZE}).`,
903
+ },
904
+ height: {
905
+ type: 'string',
906
+ description: 'Scale the model to this height in metres. Omit to keep the generated mesh\'s own size.',
907
+ },
908
+ hollow: {
909
+ type: 'boolean',
910
+ description: 'Bake a closed shell rather than filling the interior.',
911
+ },
912
+ solid: {
913
+ type: 'boolean',
914
+ description: `Fill the interior even when --height is over ${SOLID_FILL_MAX_HEIGHT_M} m (the default fills only below that).`,
915
+ },
916
+ 'glb-url': {
917
+ type: 'string',
918
+ description: 'Voxelize this existing mesh instead of generating one — how to retry for free.',
919
+ },
920
+ json: {
921
+ type: 'boolean',
922
+ description: 'Print the result as JSON on stdout; all progress goes to stderr.',
923
+ },
924
+ },
925
+ async run({ args }) {
926
+ const minVoxelSize = parseNumberFlag('voxel-size', args['voxel-size'], { min: 0.01, max: 1 })
927
+ ?? DEFAULT_MIN_VOXEL_SIZE;
928
+ const maxVoxelSize = parseNumberFlag('max-voxel-size', args['max-voxel-size'], { min: 0.01, max: 4 })
929
+ ?? DEFAULT_MAX_VOXEL_SIZE;
930
+ if (maxVoxelSize < minVoxelSize) {
931
+ throw new CliError(`--max-voxel-size (${maxVoxelSize}) must be at least --voxel-size (${minVoxelSize}). `
932
+ + 'world.json is unchanged.');
933
+ }
934
+ const targetHeight = parseNumberFlag('height', args.height, { min: 0.01, max: 1000 });
935
+ if (args.hollow === true && args.solid === true) {
936
+ throw new CliError('Pass either --hollow or --solid, not both. world.json is unchanged.');
937
+ }
938
+ await runModelGeneration({
939
+ prompt: args.prompt,
940
+ ...(args.name !== undefined ? { name: args.name } : {}),
941
+ ...(args['asset-id'] !== undefined ? { assetId: args['asset-id'] } : {}),
942
+ minVoxelSize,
943
+ maxVoxelSize,
944
+ ...(targetHeight !== undefined ? { targetHeight } : {}),
945
+ // Same size rule as `assets add`: prop-scale fills solid, building-scale stays hollow.
946
+ fillInterior: args.solid === true
947
+ || (args.hollow !== true && (targetHeight === undefined || targetHeight <= SOLID_FILL_MAX_HEIGHT_M)),
948
+ ...(args['glb-url'] !== undefined ? { glbUrl: args['glb-url'] } : {}),
949
+ json: args.json === true,
950
+ });
951
+ },
952
+ });
776
953
  export const generateCommand = defineCommand({
777
954
  meta: {
778
955
  name: 'generate',
@@ -780,11 +957,14 @@ export const generateCommand = defineCommand({
780
957
  },
781
958
  subCommands: {
782
959
  skybox: skyboxCommand,
960
+ background: backgroundCommand,
961
+ 'block-type': blockTypeCommand,
783
962
  sound: soundCommand,
784
963
  image: imageCommand,
785
964
  character: characterCommand,
786
965
  animation: animationCommand,
787
966
  prop: propCommand,
967
+ model: modelCommand,
788
968
  vehicle: vehicleCommand,
789
969
  },
790
970
  });
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,10 @@ import { apiPost } from '../http/client.js';
12
12
  import { fetchEngineManifest, downloadAndVerify, extractEngine } from '../scaffold/engine-download.js';
13
13
  import { DEFAULT_TEMPLATE_ID, SUGGESTION_EXCLUDED_TEMPLATE_IDS, readTemplateIndex, resolveTemplate, scaffoldProject, } from '../scaffold/project.js';
14
14
  import { suggestTemplate } from '../scaffold/suggest-template.js';
15
- const deps = {
16
- fetch: globalThis.fetch,
15
+ /** The real fetch, shared by every api-server call below so no call site restates it. */
16
+ const apiDeps = { fetch: globalThis.fetch };
17
+ const deviceFlowDeps = {
18
+ ...apiDeps,
17
19
  sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms)),
18
20
  };
19
21
  /** Throws a CliError naming the directory if it exists, is non-empty, and `force` was not given. */
@@ -53,7 +55,7 @@ function installDependencies(output, dir, manager) {
53
55
  const result = spawnSync(manager, ['install'], { cwd: dir, stdio: 'inherit' });
54
56
  if (result.error || result.status !== 0) {
55
57
  const command = installAllCommand(manager);
56
- console.warn(`Warning: \`${command}\` failed. The project was scaffolded successfully — only its ` +
58
+ output.info(`Warning: \`${command}\` failed. The project was scaffolded successfully — only its ` +
57
59
  `dependencies are missing. cd into ${dir} and run \`${command}\` yourself.`);
58
60
  return false;
59
61
  }
@@ -74,7 +76,8 @@ function installDependencies(output, dir, manager) {
74
76
  * arriving after it. Generating one afterwards works identically — it is simply no longer something
75
77
  * to look at during the wait.
76
78
  */
77
- function printNextSteps(output, dir, gameId, installSucceeded, manager, hasIdea) {
79
+ function printNextSteps(output, scaffold) {
80
+ const { dir, gameId, installSucceeded, manager, hasIdea } = scaffold;
78
81
  output.info('');
79
82
  output.info(`Created ${dir} (game ${gameId}).`);
80
83
  // Notice at the moment the engine actually lands on their disk, which is the strongest place
@@ -133,7 +136,7 @@ async function chooseTemplate(templatesDir, args, environment, token, output) {
133
136
  idea: args.idea,
134
137
  templates: candidates,
135
138
  defaultTemplateId: DEFAULT_TEMPLATE_ID,
136
- deps: { fetch: globalThis.fetch },
139
+ deps: apiDeps,
137
140
  });
138
141
  if (!suggestion) {
139
142
  output.info(`Could not match your idea to a template — starting from "${fallback.id}".`);
@@ -184,16 +187,14 @@ export const initCommand = defineCommand({
184
187
  // is also the line that makes a wrong answer diagnosable from an agent's transcript.
185
188
  output.info(`Environment: ${environment.name} (${describeEnvironmentSource(selection.source)})`);
186
189
  const clientId = resolveAuth0ClientId(environment);
187
- const token = await getAccessToken(environment, clientId, deps);
190
+ const token = await getAccessToken(environment, clientId, deviceFlowDeps);
188
191
  output.info('Fetching the engine manifest…');
189
- const manifest = await fetchEngineManifest(environment, token, { fetch: globalThis.fetch });
192
+ const manifest = await fetchEngineManifest(environment, token, apiDeps);
190
193
  const workDir = fs.mkdtempSync(path.join(os.tmpdir(), 'bitmagic-init-'));
191
194
  try {
192
195
  const tarballPath = path.join(workDir, 'engine.tar.gz');
193
196
  output.info(`Downloading engine ${manifest.version}…`);
194
- await downloadAndVerify(manifest.tarballUrl, manifest.sha256, tarballPath, {
195
- fetch: globalThis.fetch,
196
- });
197
+ await downloadAndVerify(manifest.tarballUrl, manifest.sha256, tarballPath, apiDeps);
197
198
  const extracted = path.join(workDir, 'extracted');
198
199
  const templatesDir = path.join(workDir, 'templates');
199
200
  await extractEngine(tarballPath, extracted, templatesDir);
@@ -201,7 +202,7 @@ export const initCommand = defineCommand({
201
202
  // Minted only after the engine is in hand: a failed download must not leave an orphaned,
202
203
  // unreachable game row behind.
203
204
  const projectName = args.name ?? path.basename(targetDir);
204
- const created = await apiPost(environment, '/api/cli/v1/games', token, { genre: template.genre, name: projectName }, { fetch: globalThis.fetch });
205
+ const created = await apiPost(environment, '/api/cli/v1/games', token, { genre: template.genre, name: projectName }, apiDeps);
205
206
  scaffoldProject({
206
207
  targetDir,
207
208
  extractedEngineDir: extracted,
@@ -222,7 +223,13 @@ export const initCommand = defineCommand({
222
223
  });
223
224
  const manager = preferredInstallManager();
224
225
  const installSucceeded = installDependencies(output, targetDir, manager);
225
- printNextSteps(output, targetDir, created.gameId, installSucceeded, manager, args.idea !== undefined);
226
+ printNextSteps(output, {
227
+ dir: targetDir,
228
+ gameId: created.gameId,
229
+ installSucceeded,
230
+ manager,
231
+ hasIdea: args.idea !== undefined,
232
+ });
226
233
  output.result({
227
234
  ok: true,
228
235
  gameId: created.gameId,