@bitmagic/cli 0.1.15 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -10
- package/dist/cli.d.ts +26 -0
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/cover.d.ts +100 -0
- package/dist/commands/cover.js +321 -0
- package/dist/commands/cover.js.map +1 -0
- package/dist/commands/generate.d.ts +13 -3
- package/dist/commands/generate.js +12 -2
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.js +21 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/publish.d.ts +23 -0
- package/dist/commands/publish.js +72 -23
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/verify.js +2 -3
- package/dist/commands/verify.js.map +1 -1
- package/dist/publish/fingerprint.js +13 -5
- package/dist/publish/fingerprint.js.map +1 -1
- package/dist/render/inline-image.d.ts +45 -0
- package/dist/render/inline-image.js +70 -0
- package/dist/render/inline-image.js.map +1 -0
- package/dist/scaffold/project-files.d.ts +15 -0
- package/dist/scaffold/project-files.js +80 -6
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/scaffold/project.d.ts +2 -0
- package/dist/scaffold/project.js +5 -2
- package/dist/scaffold/project.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drawing an image into the terminal, for the one thing in this CLI that produces something worth
|
|
3
|
+
* looking at: the generated cover art.
|
|
4
|
+
*
|
|
5
|
+
* This is the only place in the package that writes escape sequences. Every other command prints
|
|
6
|
+
* plain lines on purpose, because an agent tool is usually what reads them — so the rule here is
|
|
7
|
+
* that the image is strictly ADDITIONAL. The caller prints the path and URL first, unconditionally;
|
|
8
|
+
* this function either draws on top of that or does nothing at all. It never replaces a line, and
|
|
9
|
+
* it never reports failure as an error.
|
|
10
|
+
*
|
|
11
|
+
* Only the iTerm2 inline-image protocol is implemented. It takes the image bytes in whatever format
|
|
12
|
+
* the terminal can decode, which is what makes the Forger's webp usable without transcoding. kitty
|
|
13
|
+
* and Ghostty speak a different protocol whose only portable transmission format is PNG (`f=100`),
|
|
14
|
+
* and decoding webp to PNG would mean adding an image codec to a package that deliberately depends
|
|
15
|
+
* on almost nothing — so those terminals fall through to the plain lines like any other.
|
|
16
|
+
*/
|
|
17
|
+
/** Written as escapes rather than literal control bytes, so the source stays greppable. */
|
|
18
|
+
const ESC = '\u001b';
|
|
19
|
+
const BEL = '\u0007';
|
|
20
|
+
/** Width in terminal cells. Large enough to read as a picture, small enough not to fill a screen. */
|
|
21
|
+
const IMAGE_CELL_WIDTH = 40;
|
|
22
|
+
/**
|
|
23
|
+
* Whether this terminal is known to implement the iTerm2 inline-image protocol.
|
|
24
|
+
*
|
|
25
|
+
* An allowlist, never a guess: a terminal that does not understand the sequence prints its raw
|
|
26
|
+
* bytes, and a screenful of base64 in the middle of a command's output is far worse than no image.
|
|
27
|
+
* `TMUX` disqualifies everything — tmux swallows the sequence unless it is wrapped in its own
|
|
28
|
+
* passthrough, and a wrapped sequence that reaches a pane the user cannot see helps nobody.
|
|
29
|
+
*/
|
|
30
|
+
export function supportsInlineImage(env, isTTY) {
|
|
31
|
+
if (!isTTY)
|
|
32
|
+
return false;
|
|
33
|
+
if (env.BITMAGIC_NO_INLINE_IMAGE)
|
|
34
|
+
return false;
|
|
35
|
+
if (env.TMUX)
|
|
36
|
+
return false;
|
|
37
|
+
if (env.TERM_PROGRAM === 'iTerm.app' || env.TERM_PROGRAM === 'WezTerm')
|
|
38
|
+
return true;
|
|
39
|
+
if (env.LC_TERMINAL === 'iTerm2')
|
|
40
|
+
return true;
|
|
41
|
+
return env.KONSOLE_VERSION !== undefined && env.KONSOLE_VERSION !== '';
|
|
42
|
+
}
|
|
43
|
+
/** The raw iTerm2 sequence for `bytes`, exported so a test can assert its shape without a TTY. */
|
|
44
|
+
export function inlineImageSequence(bytes) {
|
|
45
|
+
const payload = bytes.toString('base64');
|
|
46
|
+
// `size` is the DECODED byte count, which is what iTerm2 uses to know the transfer is complete.
|
|
47
|
+
// preserveAspectRatio keeps the 1:1 cover square rather than stretching it to the cell box.
|
|
48
|
+
return (`${ESC}]1337;File=inline=1;size=${bytes.length};width=${IMAGE_CELL_WIDTH};` +
|
|
49
|
+
`preserveAspectRatio=1:${payload}${BEL}\n`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Draw `bytes` into the terminal if it can display them. Returns whether anything was drawn, so a
|
|
53
|
+
* caller can decide what else to say — never throws, and never writes when unsupported.
|
|
54
|
+
*/
|
|
55
|
+
export function renderInlineImage(bytes, options = {}) {
|
|
56
|
+
const env = options.env ?? process.env;
|
|
57
|
+
const isTTY = options.isTTY ?? process.stdout.isTTY === true;
|
|
58
|
+
if (!supportsInlineImage(env, isTTY))
|
|
59
|
+
return false;
|
|
60
|
+
const write = options.write ?? ((chunk) => process.stdout.write(chunk));
|
|
61
|
+
try {
|
|
62
|
+
write(inlineImageSequence(bytes));
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// A closed or non-writable stdout is not worth failing a successful generation over.
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=inline-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-image.js","sourceRoot":"","sources":["../../src/render/inline-image.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,2FAA2F;AAC3F,MAAM,GAAG,GAAG,QAAQ,CAAC;AACrB,MAAM,GAAG,GAAG,QAAQ,CAAC;AAErB,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAU5B;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,GAAG,CAAC,wBAAwB;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,GAAG,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,GAAG,CAAC,YAAY,KAAK,WAAW,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpF,IAAI,GAAG,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,GAAG,CAAC,eAAe,KAAK,EAAE,CAAC;AACzE,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,gGAAgG;IAChG,4FAA4F;IAC5F,OAAO,CACL,GAAG,GAAG,4BAA4B,KAAK,CAAC,MAAM,UAAU,gBAAgB,GAAG;QAC3E,yBAAyB,OAAO,GAAG,GAAG,IAAI,CAC3C,CAAC;AACJ,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,UAAoC,EAAE;IACrF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;IAC7D,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,KAAa,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,IAAI,CAAC;QACH,KAAK,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,qFAAqF;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -34,5 +34,20 @@ export interface ProjectMetadata {
|
|
|
34
34
|
export declare function renderBitmagicJson(metadata: ProjectMetadata): string;
|
|
35
35
|
export declare function renderAgentsMd(): string;
|
|
36
36
|
export declare function renderGenerateSkill(): string;
|
|
37
|
+
/**
|
|
38
|
+
* `GAME-DESIGN.md` — the project's design document, and the input `bitmagic cover` builds its
|
|
39
|
+
* image prompt from. The web lane's Planning Mode writes a file of the same name for the same
|
|
40
|
+
* purpose, so a creator moving between lanes finds the same thing where they expect it.
|
|
41
|
+
*
|
|
42
|
+
* Written once by `scaffoldProject` and creator-owned from then on: it is deliberately NOT in
|
|
43
|
+
* PLATFORM_GENERATED_FILES, so `bitmagic upgrade` never overwrites the creator's design with this
|
|
44
|
+
* skeleton. `bitmagic init --idea` seeds the Pitch; without it the headings stand empty and the
|
|
45
|
+
* line under the title says who fills them in.
|
|
46
|
+
*
|
|
47
|
+
* The headings are the ones a cover prompt can actually use — what the world looks like matters
|
|
48
|
+
* more to an image model than how the input mapping works — but nothing enforces them: the whole
|
|
49
|
+
* file is read as prose.
|
|
50
|
+
*/
|
|
51
|
+
export declare function renderGameDesignMd(idea?: string): string;
|
|
37
52
|
export declare function renderClaudeMd(): string;
|
|
38
53
|
export declare function renderSkillsReadme(): string;
|
|
@@ -302,6 +302,8 @@ export function renderAgentsMd() {
|
|
|
302
302
|
- \`engine/\` — **the Bitmagic engine, read-only.** It is vendored by the CLI and replaced
|
|
303
303
|
wholesale by \`bitmagic upgrade\`. Edits here are lost on upgrade and ignored on publish.
|
|
304
304
|
- \`engine/docs/\` — the engine's deep-dive documentation. Read it before guessing.
|
|
305
|
+
- \`GAME-DESIGN.md\` — **what this game is.** Yours to write and keep current. Nothing compiles it,
|
|
306
|
+
but \`bitmagic cover\` generates the cover art from it, so it is not decoration.
|
|
305
307
|
|
|
306
308
|
\`engine/types/work-game.d.ts\` declares \`module 'work/Game.js'\`, which is how the engine
|
|
307
309
|
imports your game. Renaming or removing the \`VoxelGame\` export from \`src/work/Game.ts\` still
|
|
@@ -319,6 +321,25 @@ import type { GameData } from 'types/game.js';
|
|
|
319
321
|
|
|
320
322
|
Always include the \`.js\` extension, even in TypeScript.
|
|
321
323
|
|
|
324
|
+
## Cover art — do this early
|
|
325
|
+
|
|
326
|
+
\`\`\`
|
|
327
|
+
bitmagic cover # generate the cover from GAME-DESIGN.md and set it as the start screen
|
|
328
|
+
\`\`\`
|
|
329
|
+
|
|
330
|
+
Run it **as soon as \`GAME-DESIGN.md\` says what the game is, before you start implementing it.**
|
|
331
|
+
Building the first version takes a while, and the cover is the only thing the person waiting has to
|
|
332
|
+
look at while you work. Generated afterwards it is the same picture, just no longer useful for that.
|
|
333
|
+
|
|
334
|
+
It writes \`.bitmagic/cover.webp\` (read that file if you want to show them the art), sets
|
|
335
|
+
\`hud.startScreen.imageUrl\` in \`world.json\`, and becomes the thumbnail \`bitmagic publish\`
|
|
336
|
+
uploads. Because it touches \`world.json\`, it invalidates a passing verify — so run it BEFORE
|
|
337
|
+
\`bitmagic verify\`, not between verifying and publishing.
|
|
338
|
+
|
|
339
|
+
Re-running it on an unchanged \`GAME-DESIGN.md\` costs nothing and generates nothing; it just
|
|
340
|
+
reports the cover you already have. Rewrite the design and run it again — or pass \`--force\` — when
|
|
341
|
+
the game has moved on from its artwork. It costs the creator real money each time it does generate.
|
|
342
|
+
|
|
322
343
|
## Before you change movement, cameras or rotation
|
|
323
344
|
|
|
324
345
|
Read \`engine/docs/coordinate-system.md\`. Gameplay faces **+Z** while cameras face **−Z**, and
|
|
@@ -349,15 +370,18 @@ bitmagic publish # verify-gate, build if needed, and ship to bitmagic.ai
|
|
|
349
370
|
Follow this order; \`publish\` enforces it and refuses otherwise:
|
|
350
371
|
|
|
351
372
|
1. Run \`bitmagic verify\` and get it passing. It writes \`.bitmagic/verify/result.json\`,
|
|
352
|
-
\`.bitmagic/verify/screenshot.png\`
|
|
353
|
-
|
|
373
|
+
\`.bitmagic/verify/screenshot.png\` and \`.bitmagic/verify/console.log\`.
|
|
374
|
+
|
|
375
|
+
The publish thumbnail is \`.bitmagic/cover.webp\` when \`bitmagic cover\` has produced one, and
|
|
376
|
+
that screenshot otherwise. The output names which one it used.
|
|
354
377
|
2. Do not edit any tracked file between verifying and publishing. Staleness is decided by a
|
|
355
378
|
content fingerprint of every tracked file, not a clock — one edit after verifying invalidates
|
|
356
379
|
it immediately, and an untouched project stays fresh no matter how long it has been. There is
|
|
357
380
|
no way to check freshness except running \`bitmagic verify\` again. Git operations are safe:
|
|
358
381
|
\`.git/\` is excluded from the fingerprint, so committing (or branching, or stashing) between
|
|
359
382
|
verifying and publishing changes nothing. So are \`node_modules/\`, \`dist/\`, \`.bitmagic/\`
|
|
360
|
-
and \`.vite-cache
|
|
383
|
+
and \`.vite-cache/\` — and \`GAME-DESIGN.md\`, which no build step reads, so refining the design
|
|
384
|
+
doc never invalidates a verify. \`bitmagic cover\` DOES, because it writes \`world.json\`.
|
|
361
385
|
3. Run \`bitmagic publish\`. It rebuilds automatically if the project changed since the last
|
|
362
386
|
build, so a manual \`bitmagic build\` first is optional.
|
|
363
387
|
|
|
@@ -368,9 +392,9 @@ publish and the game goes back to private — its \`/play/\` page stops serving
|
|
|
368
392
|
game you re-publish bare disappears from bitmagic.ai entirely until the next
|
|
369
393
|
\`--visibility public\`.
|
|
370
394
|
|
|
371
|
-
\`--force\` overrides a **stale or failed** verify verdict, never a **missing** one —
|
|
372
|
-
|
|
373
|
-
once before \`--force\` has anything to
|
|
395
|
+
\`--force\` overrides a **stale or failed** verify verdict, never a **missing** one — a project with
|
|
396
|
+
no cover art has only the verify screenshot to publish a thumbnail from, so \`bitmagic verify\` must
|
|
397
|
+
have produced one at least once before \`--force\` has anything to work with.
|
|
374
398
|
|
|
375
399
|
\`--name\`/\`--description\` apply to that one publish call only; they are never written back to
|
|
376
400
|
\`src/work/game.json\` (doing so by hand would change the fingerprint and invalidate the verify
|
|
@@ -485,6 +509,16 @@ The \`bitmagic\` CLI generates content directly into this project. Five types wo
|
|
|
485
509
|
|
|
486
510
|
\`--help\` on any subcommand lists its full flags.
|
|
487
511
|
|
|
512
|
+
Cover art is the one generation that is **not** a \`generate\` subcommand:
|
|
513
|
+
|
|
514
|
+
| Command | Makes | Lands in |
|
|
515
|
+
|---|---|---|
|
|
516
|
+
| \`bitmagic cover\` | the game's cover art | \`hud.startScreen.imageUrl\`, \`.bitmagic/cover.webp\`, the publish thumbnail |
|
|
517
|
+
|
|
518
|
+
It writes its own prompt from \`GAME-DESIGN.md\` rather than taking one, and it skips generating
|
|
519
|
+
entirely when the design has not changed since the last cover. See AGENTS.md for why it is worth
|
|
520
|
+
running before you start implementing rather than after.
|
|
521
|
+
|
|
488
522
|
## Before generating
|
|
489
523
|
|
|
490
524
|
- Confirm the change actually needs new content. Reusing an asset already in \`world.json\` costs
|
|
@@ -516,6 +550,46 @@ toolchain does not run yet. Do not hand-edit \`world.json\` to reference a model
|
|
|
516
550
|
generate — the game will fail to load it.
|
|
517
551
|
`;
|
|
518
552
|
}
|
|
553
|
+
/**
|
|
554
|
+
* `GAME-DESIGN.md` — the project's design document, and the input `bitmagic cover` builds its
|
|
555
|
+
* image prompt from. The web lane's Planning Mode writes a file of the same name for the same
|
|
556
|
+
* purpose, so a creator moving between lanes finds the same thing where they expect it.
|
|
557
|
+
*
|
|
558
|
+
* Written once by `scaffoldProject` and creator-owned from then on: it is deliberately NOT in
|
|
559
|
+
* PLATFORM_GENERATED_FILES, so `bitmagic upgrade` never overwrites the creator's design with this
|
|
560
|
+
* skeleton. `bitmagic init --idea` seeds the Pitch; without it the headings stand empty and the
|
|
561
|
+
* line under the title says who fills them in.
|
|
562
|
+
*
|
|
563
|
+
* The headings are the ones a cover prompt can actually use — what the world looks like matters
|
|
564
|
+
* more to an image model than how the input mapping works — but nothing enforces them: the whole
|
|
565
|
+
* file is read as prose.
|
|
566
|
+
*/
|
|
567
|
+
export function renderGameDesignMd(idea) {
|
|
568
|
+
const pitch = idea?.trim();
|
|
569
|
+
return `# Game design
|
|
570
|
+
|
|
571
|
+
${pitch
|
|
572
|
+
? 'Written from `bitmagic init --idea`. Keep it current as the game changes — `bitmagic cover` reads this file.'
|
|
573
|
+
: 'Fill this in before you start building. `bitmagic cover` reads this file to generate the cover art, so the World & look section in particular is worth writing properly.'}
|
|
574
|
+
|
|
575
|
+
## Pitch
|
|
576
|
+
|
|
577
|
+
${pitch ?? 'One or two sentences: what is this game, and who is the player?'}
|
|
578
|
+
|
|
579
|
+
## Core loop
|
|
580
|
+
|
|
581
|
+
What the player does over and over, and why it stays interesting.
|
|
582
|
+
|
|
583
|
+
## World & look
|
|
584
|
+
|
|
585
|
+
Setting, mood, palette, time of day, the landmarks a player would remember. This is the section
|
|
586
|
+
the cover art is drawn from.
|
|
587
|
+
|
|
588
|
+
## Win / lose
|
|
589
|
+
|
|
590
|
+
How a run ends, in both directions.
|
|
591
|
+
`;
|
|
592
|
+
}
|
|
519
593
|
export function renderClaudeMd() {
|
|
520
594
|
return '@AGENTS.md\n';
|
|
521
595
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-files.js","sourceRoot":"","sources":["../../src/scaffold/project-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,5 +41,7 @@ export interface ScaffoldOptions {
|
|
|
41
41
|
template: TemplateEntry;
|
|
42
42
|
metadata: ProjectMetadata;
|
|
43
43
|
projectName: string;
|
|
44
|
+
/** `bitmagic init --idea`, seeding GAME-DESIGN.md's Pitch. Absent leaves the skeleton empty. */
|
|
45
|
+
idea?: string;
|
|
44
46
|
}
|
|
45
47
|
export declare function scaffoldProject(options: ScaffoldOptions): void;
|
package/dist/scaffold/project.js
CHANGED
|
@@ -2,7 +2,7 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { CliError } from '../errors.js';
|
|
4
4
|
import { aliasSourceDir } from './aliases.js';
|
|
5
|
-
import { renderPackageJson, renderTsconfig, renderIndexHtml, renderViteConfig, renderVitePublishConfig, renderGitignore, renderBitmagicJson, renderAgentsMd, renderClaudeMd, renderSkillsReadme, renderGenerateSkill, } from './project-files.js';
|
|
5
|
+
import { renderPackageJson, renderTsconfig, renderIndexHtml, renderViteConfig, renderVitePublishConfig, renderGitignore, renderBitmagicJson, renderAgentsMd, renderGameDesignMd, renderClaudeMd, renderSkillsReadme, renderGenerateSkill, } from './project-files.js';
|
|
6
6
|
/**
|
|
7
7
|
* Directories moved out of the extracted tree into the project's vendored engine/.
|
|
8
8
|
*
|
|
@@ -80,7 +80,7 @@ function copyContents(source, dest) {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
export function scaffoldProject(options) {
|
|
83
|
-
const { targetDir, extractedEngineDir, templatesDir, template, metadata, projectName } = options;
|
|
83
|
+
const { targetDir, extractedEngineDir, templatesDir, template, metadata, projectName, idea } = options;
|
|
84
84
|
const engineDir = path.join(targetDir, 'engine');
|
|
85
85
|
fs.mkdirSync(engineDir, { recursive: true });
|
|
86
86
|
for (const dir of VENDORED_DIRS) {
|
|
@@ -123,6 +123,9 @@ export function scaffoldProject(options) {
|
|
|
123
123
|
...PLATFORM_GENERATED_FILES.map((entry) => [entry[0], entry[1]()]),
|
|
124
124
|
['bitmagic.json', renderBitmagicJson(metadata)],
|
|
125
125
|
['AGENTS.md', renderAgentsMd()],
|
|
126
|
+
// Creator-owned from here on (see PLATFORM_GENERATED_FILES): the agent rewrites it as the
|
|
127
|
+
// game takes shape, and `bitmagic cover` reads whatever it says at the time.
|
|
128
|
+
['GAME-DESIGN.md', renderGameDesignMd(idea)],
|
|
126
129
|
['CLAUDE.md', renderClaudeMd()],
|
|
127
130
|
['.gitignore', renderGitignore()],
|
|
128
131
|
['.claude/skills/README.md', renderSkillsReadme()],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC;AAY5B;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAkC;IACrE,CAAC,eAAe,EAAE,cAAc,CAAC;IACjC,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IACpC,CAAC,wBAAwB,EAAE,uBAAuB,CAAC;IACnD,CAAC,YAAY,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,YAAoB,EAAE,WAAoB;IACxE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACxD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAAC,8CAA8C,SAAS,GAAG,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;IAC1C,8FAA8F;IAC9F,oDAAoD;IACpD,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAAC,uCAAuC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;IACvD,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,QAAQ,CAChB,qBAAqB,WAAW,2BAA2B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACpG,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.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.
|
|
3
|
+
"version": "0.1.16",
|
|
4
4
|
"description": "Build Bitmagic games from your own agent tool",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"citty": "^0.2.2",
|
|
20
20
|
"playwright-core": "^1.59.1",
|
|
21
21
|
"tar": "^7.4.3",
|
|
22
|
-
"@bitmagic/asset-core": "0.1.
|
|
22
|
+
"@bitmagic/asset-core": "0.1.1",
|
|
23
23
|
"@bitmagic/world-forger": "0.1.3"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|