@bitmagic/cli 0.1.65-dev.2 → 0.1.65-dev.21
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 +137 -14
- package/assets/skills/trailer-craft.md +180 -0
- package/dist/assets/materials.d.ts +9 -0
- package/dist/assets/materials.js +10 -2
- package/dist/assets/materials.js.map +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/character.d.ts +18 -0
- package/dist/commands/character.js +268 -0
- package/dist/commands/character.js.map +1 -0
- package/dist/commands/forge.d.ts +15 -0
- package/dist/commands/forge.js +143 -38
- package/dist/commands/forge.js.map +1 -1
- package/dist/commands/generate.d.ts +31 -13
- package/dist/commands/generate.js +48 -56
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/trailer.js +1 -1
- package/dist/commands/trailer.js.map +1 -1
- package/dist/editor/animation-preview-page.js +88 -1
- package/dist/editor/animation-preview-page.js.map +1 -1
- package/dist/editor/asset-detail-panel.d.ts +2 -2
- package/dist/editor/asset-detail-panel.js +21 -0
- package/dist/editor/asset-detail-panel.js.map +1 -1
- package/dist/editor/asset-viewer.js +31 -8
- package/dist/editor/asset-viewer.js.map +1 -1
- package/dist/editor/shell-page.js +63 -1
- package/dist/editor/shell-page.js.map +1 -1
- package/dist/forge/edit-target.d.ts +30 -0
- package/dist/forge/edit-target.js +88 -0
- package/dist/forge/edit-target.js.map +1 -0
- package/dist/forge/prune-store.d.ts +46 -0
- package/dist/forge/prune-store.js +86 -0
- package/dist/forge/prune-store.js.map +1 -0
- package/dist/forge/remote-store.d.ts +36 -0
- package/dist/forge/remote-store.js +113 -0
- package/dist/forge/remote-store.js.map +1 -0
- package/dist/forge/run-pipeline.js +5 -1
- package/dist/forge/run-pipeline.js.map +1 -1
- package/dist/forge/stream.d.ts +5 -1
- package/dist/forge/stream.js +4 -0
- package/dist/forge/stream.js.map +1 -1
- package/dist/generate/character-body.d.ts +79 -0
- package/dist/generate/character-body.js +100 -0
- package/dist/generate/character-body.js.map +1 -0
- package/dist/mobile/asset-hosts.d.ts +7 -9
- package/dist/mobile/asset-hosts.js +7 -16
- package/dist/mobile/asset-hosts.js.map +1 -1
- package/dist/project/character-search.d.ts +30 -0
- package/dist/project/character-search.js +82 -0
- package/dist/project/character-search.js.map +1 -0
- package/dist/scaffold/asset-pipeline-skill-files.d.ts +38 -0
- package/dist/scaffold/asset-pipeline-skill-files.js +202 -0
- package/dist/scaffold/asset-pipeline-skill-files.js.map +1 -0
- package/dist/scaffold/blender-level-skill-files.js +3 -2
- package/dist/scaffold/blender-level-skill-files.js.map +1 -1
- package/dist/scaffold/project-files.js +18 -12
- package/dist/scaffold/project-files.js.map +1 -1
- package/dist/scaffold/project.js +4 -1
- package/dist/scaffold/project.js.map +1 -1
- package/dist/scaffold/skill-files.d.ts +32 -5
- package/dist/scaffold/skill-files.js +102 -63
- package/dist/scaffold/skill-files.js.map +1 -1
- package/dist/telemetry/creator-prompt.d.ts +18 -2
- package/dist/telemetry/creator-prompt.js +24 -3
- package/dist/telemetry/creator-prompt.js.map +1 -1
- package/dist/telemetry/report.js +31 -16
- package/dist/telemetry/report.js.map +1 -1
- package/package.json +4 -4
|
@@ -813,9 +813,9 @@ If you are unsure whether one is already running, \`bitmagic reload\` says so an
|
|
|
813
813
|
they stay current with it. Every one is plain markdown at
|
|
814
814
|
\`${PRIMARY_SKILLS_DIR}/<name>/SKILL.md\`, readable whether or not your harness loads skills by
|
|
815
815
|
itself: \`planning-a-game/\` (what to build first), \`finding-engine-apis/\` (engine docs),
|
|
816
|
-
\`generating-assets/\`, \`
|
|
817
|
-
\`publishing-a-game/\`, \`judging-quality/\`, \`checking-usage/\`,
|
|
818
|
-
\`converting-unity-levels/\`, \`building-levels-in-blender/\`.${mirrorClause}
|
|
816
|
+
\`generating-assets/\`, \`choosing-asset-pipelines/\`, \`working-with-the-creator/\`,
|
|
817
|
+
\`theming-the-hud/\`, \`publishing-a-game/\`, \`judging-quality/\`, \`checking-usage/\`,
|
|
818
|
+
\`making-a-trailer/\`, \`converting-unity-levels/\`, \`building-levels-in-blender/\`.${mirrorClause}
|
|
819
819
|
\`upgrade\` rewrites every copy, so edits to them are lost; skills you add yourself are never
|
|
820
820
|
touched.
|
|
821
821
|
- \`.claude/settings.json\` — **Claude Code only, and yours**: seeded with one Stop hook that runs
|
|
@@ -1079,7 +1079,7 @@ bitmagic generate block-type --name mossy_brick --description "damp green moss o
|
|
|
1079
1079
|
bitmagic generate sound --prompt "heavy wooden door slamming" [--duration 3] [--loop]
|
|
1080
1080
|
bitmagic generate music --prompt "driving synthwave, no vocals" [--duration 30] [--instrumental] [--out bed.mp3 --no-world]
|
|
1081
1081
|
bitmagic generate image --name hero-portrait --prompt "..." [--width 512] [--height 512]
|
|
1082
|
-
bitmagic generate
|
|
1082
|
+
bitmagic character generate --name guard --prompt "..." [--apply-to-player] [--fresh] # or FREE off the shelf: character search --prompt "..." then character add --name guard --id <sid>
|
|
1083
1083
|
bitmagic generate animation --family gait --name LimpStride --based-on walk [--dial limpSide=right]
|
|
1084
1084
|
bitmagic generate animation --spec clip.json # melee and oneShot clips: a spec file
|
|
1085
1085
|
bitmagic generate video --prompt "the castle gates swing open" [--duration 5] [--image cover.png]
|
|
@@ -1087,7 +1087,7 @@ bitmagic generate model --prompt "a mossy stone arch" [--height 3]
|
|
|
1087
1087
|
bitmagic generate vehicle --prompt "a rusty orange pickup" | --preset VAN
|
|
1088
1088
|
\`\`\`
|
|
1089
1089
|
|
|
1090
|
-
Run \`bitmagic generate <type> --help\` for the full flags of any one.
|
|
1090
|
+
Run \`bitmagic generate <type> --help\` for the full flags of any one, or \`bitmagic character <verb> --help\` — characters are their own group, where \`generate\` costs sparks and \`search\`/\`add\` are free because they use the ready-made library instead of forging.
|
|
1091
1091
|
|
|
1092
1092
|
**Always add \`--original-prompt "<creator's request, verbatim>"\`** — to EVERY \`bitmagic\` command, \`build\`/\`verify\`/\`dev\`/\`reload\`/\`publish\` included. Never affects output; it is what counts the prompts shown on the game's public page.
|
|
1093
1093
|
|
|
@@ -1103,8 +1103,8 @@ Two things before you use them:
|
|
|
1103
1103
|
Three lanes make a 3D object, and the wrong one wastes a generation: \`generate model\` mints a NEW
|
|
1104
1104
|
asset, \`generate prop --asset <id>\` UPGRADES a placeholder, \`assets add <file>\` uploads your own.
|
|
1105
1105
|
Splats, video and \`.vox\`/\`.fbx\` still need the web editor; never reference an asset you did not
|
|
1106
|
-
make.
|
|
1107
|
-
|
|
1106
|
+
make. Which lane fits which NEED — rough sparks and minutes, and when to ask first — is
|
|
1107
|
+
\`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`; flags, reference-image rules and refusals, \`${PRIMARY_SKILLS_DIR}/generating-assets/SKILL.md\`.
|
|
1108
1108
|
|
|
1109
1109
|
## Forging a whole level
|
|
1110
1110
|
|
|
@@ -1116,9 +1116,9 @@ This designs a scene, builds its geometry, bakes it to voxels and writes the fin
|
|
|
1116
1116
|
terrain, props, spawn points — into \`src/work/world.json\`. \`bitmagic levels list | add | rename
|
|
1117
1117
|
| set-start | remove\` manages them afterwards (free, local; \`set-start\` picks the boot level). Add
|
|
1118
1118
|
\`--city\`, \`--dungeon\`, \`--platformer\`, \`--freeform\` or \`--vessel\` (a ship as the level) — at most
|
|
1119
|
-
one — for a different kind of place; omit them all for natural terrain. A place designed part by
|
|
1120
|
-
instead be
|
|
1121
|
-
whose first section says when that path is yours (a frontier model, Blender installable).
|
|
1119
|
+
one — for a different kind of place; omit them all for natural terrain. A place designed part by
|
|
1120
|
+
part — an interior, a station, a stylised set — can instead be scripted in Blender: \`${PRIMARY_SKILLS_DIR}/building-levels-in-blender/SKILL.md\`,
|
|
1121
|
+
whose first section says when that path is yours (a frontier model, Blender installable). All the level lanes side by side, with costs: \`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
|
|
1122
1122
|
|
|
1123
1123
|
**Art style is a declared switch.** \`"artStyle": "low-poly"\` in \`src/work/game.json\` (or
|
|
1124
1124
|
\`bitmagic init --art-style low-poly\`) makes a Blender level a low-poly GAME: \`cover\`/\`reference\`
|
|
@@ -1190,6 +1190,7 @@ ${PLANNING_SKILL_REFERENCE_STEP1}If the idea names a genre, read its recipe **be
|
|
|
1190
1190
|
| soccer, football, kick a ball, penalty shootout, free kick | \`engine/agent-docs/mechanic-soccer.md\` |
|
|
1191
1191
|
| ski, skiing, snowboard, downhill, slope, piste, slalom, carve | \`engine/agent-docs/mechanic-skiing.md\` |
|
|
1192
1192
|
| boat race, jet ski, wave race, speedboat, powerboat, watercraft, regatta | \`engine/agent-docs/mechanic-boat-racing.md\` |
|
|
1193
|
+
| galleon, pirate ship, sailing ship, longship, voyage, at the helm, steer the ship | \`engine/agent-docs/mechanic-sailing.md\` |
|
|
1193
1194
|
|
|
1194
1195
|
For the shape of the PLACE the game happens in, also read the matching
|
|
1195
1196
|
\`engine/agent-docs/archetype-*.md\` — \`arena\`, \`castle\`, \`city\`, \`dungeon\`, \`racetrack\`,
|
|
@@ -1227,6 +1228,7 @@ the engine, already wired** — and hand-building a worse version of it is the m
|
|
|
1227
1228
|
| Mining, chopping, digging | \`PlayerToolSystem\` + auto-wired block mining | \`voxel-mining.md\` |
|
|
1228
1229
|
| Skiing or snowboarding | A full descent motor, enabled by one world.json flag | \`mechanic-skiing.md\` |
|
|
1229
1230
|
| Boat racing on open water | An animated stylized ocean, a hull that rides it, AI rivals and buoy gates | \`mechanic-boat-racing.md\` |
|
|
1231
|
+
| A ship that sails while the player walks its deck | \`engine/sailing/\`: a moving sea, wake, swell, a heavy-ship helm and a horizon that swings with it — the forged hull never moves | \`mechanic-sailing.md\` |
|
|
1230
1232
|
| Save points, checkpoints, persistence | Persistence system | \`persistence-system.md\` |
|
|
1231
1233
|
| Multiple levels or arenas | \`levels[]\` registry + \`engine.loadLevel()\` | \`level-system.md\` |
|
|
1232
1234
|
| Voice input, speaking to NPCs | \`engine.enablePushToTalk()\` | \`voice-input.md\` |
|
|
@@ -1316,6 +1318,8 @@ forge is backlog item 1, run once the loop is proven. A designed place — an in
|
|
|
1316
1318
|
stylised set the creator has a picture of — has a second route, building it in Blender from a
|
|
1317
1319
|
script (\`${PRIMARY_SKILLS_DIR}/building-levels-in-blender/SKILL.md\`, gated on the model and on
|
|
1318
1320
|
Blender being available). That route is a low-poly game: set \`artStyle: "low-poly"\` in game.json first.
|
|
1321
|
+
The level lanes and every other asset lane side by side, with costs and when to ask the creator:
|
|
1322
|
+
\`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
|
|
1319
1323
|
|
|
1320
1324
|
## Step 5 — hand it back
|
|
1321
1325
|
|
|
@@ -1535,13 +1539,15 @@ The \`bitmagic\` CLI generates content directly into this project. Eleven types
|
|
|
1535
1539
|
| \`bitmagic generate sound --prompt "..."\` | a sound effect | \`assets[]\` |
|
|
1536
1540
|
| \`bitmagic generate music --prompt "..." [--duration 30]\` | a music track (loops by default; billed per second) | \`assets[]\` (or a file with \`--out <mp3> --no-world\`) |
|
|
1537
1541
|
| \`bitmagic generate image --name <id> --prompt "..."\` | a 2D image | \`assets[]\` |
|
|
1538
|
-
| \`bitmagic generate
|
|
1542
|
+
| \`bitmagic character generate --name <id> --prompt "..."\` | a rigged character; substitutes a close-enough ready-made one when the library has it (\`--fresh\` always forges). \`character search --prompt "..."\` then \`character add --name <id> --id <sid>\` instead is **free** and never forges — prefer it when any plausible body will do | \`assets[]\` |
|
|
1539
1543
|
| \`bitmagic generate animation --family gait ...\` or \`--spec <file>\` | an animation clip | \`assets[]\` |
|
|
1540
1544
|
| \`bitmagic generate video --prompt "..." [--duration 5] [--image <png>]\` | a short 720p clip for a cutscene (billed per second) | \`assets[]\`, played with \`engine.playVideo("<id>")\` |
|
|
1541
1545
|
| \`bitmagic generate model --prompt "..."\` | a new 3D model | \`assets[]\` |
|
|
1542
1546
|
| \`bitmagic generate vehicle --prompt "..."\` | a drivable vehicle | \`assets[]\` |
|
|
1543
1547
|
|
|
1544
|
-
\`--help\` on any subcommand lists its full flags.
|
|
1548
|
+
\`--help\` on any subcommand lists its full flags. Which of these — or a forge, a Blender build, a
|
|
1549
|
+
built-in, or a file of the creator's own — fits a given need, with rough sparks and minutes:
|
|
1550
|
+
\`${PRIMARY_SKILLS_DIR}/choosing-asset-pipelines/SKILL.md\`.
|
|
1545
1551
|
|
|
1546
1552
|
**Every \`bitmagic\` command takes \`--original-prompt "<the creator's request, verbatim>"\` —
|
|
1547
1553
|
always pass it**, on the everyday loop (\`build\`, \`verify\`, \`dev\`, \`reload\`, \`publish\`) as much as
|
|
@@ -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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"}
|
package/dist/scaffold/project.js
CHANGED
|
@@ -3,7 +3,8 @@ import * as path from 'path';
|
|
|
3
3
|
import { CliError } from '../errors.js';
|
|
4
4
|
import { aliasSourceDir } from './aliases.js';
|
|
5
5
|
import { renderPackageJson, renderTsconfig, renderIndexHtml, renderViteConfig, renderVitePublishConfig, renderVitePublishStandaloneConfig, renderGitignore, renderBitmagicJson, renderAgentsMd, renderGameDesignMd, renderClaudeMd, renderJudgeSkill, renderThemingSkill, renderGenerateSkill, renderPlanningSkill, renderEngineApiSkill, renderUsageSkill, } from './project-files.js';
|
|
6
|
-
import { renderCreatorCollaborationSkill, renderPublishingSkill, renderKiroSteering, renderSkillsReadme, renderTrailerSkill, } from './skill-files.js';
|
|
6
|
+
import { renderCreatorCollaborationSkill, renderPublishingSkill, renderKiroSteering, renderSkillsReadme, renderTrailerSkill, renderTrailerCraftReference, } from './skill-files.js';
|
|
7
|
+
import { renderAssetPipelinesSkill } from './asset-pipeline-skill-files.js';
|
|
7
8
|
import { renderUnityLevelsSkill, renderUnityLevelsTrapsReference, renderUnityLevelsFbxReference, renderUnityLevelsPhysicsReference, renderUnityLevelsVerificationReference, } from './unity-skill-files.js';
|
|
8
9
|
import { renderBlenderLevelsSkill, renderBlenderConventionsReference, renderBlenderAuditsReference, renderBlenderPassesReference, renderBlenderEngineHandoffReference, } from './blender-level-skill-files.js';
|
|
9
10
|
import { ALWAYS_AGENTS, dedupeAgents, skillDirsFor } from './agent-targets.js';
|
|
@@ -163,12 +164,14 @@ export function writeProjectFile(root, relativePath, contents) {
|
|
|
163
164
|
export const SHIPPED_SKILLS = [
|
|
164
165
|
['README.md', renderSkillsReadme],
|
|
165
166
|
['generating-assets/SKILL.md', renderGenerateSkill],
|
|
167
|
+
['choosing-asset-pipelines/SKILL.md', renderAssetPipelinesSkill],
|
|
166
168
|
['planning-a-game/SKILL.md', renderPlanningSkill],
|
|
167
169
|
['finding-engine-apis/SKILL.md', renderEngineApiSkill],
|
|
168
170
|
['checking-usage/SKILL.md', renderUsageSkill],
|
|
169
171
|
['judging-quality/SKILL.md', renderJudgeSkill],
|
|
170
172
|
['theming-the-hud/SKILL.md', renderThemingSkill],
|
|
171
173
|
['making-a-trailer/SKILL.md', renderTrailerSkill],
|
|
174
|
+
['making-a-trailer/references/trailer-craft.md', renderTrailerCraftReference],
|
|
172
175
|
['publishing-a-game/SKILL.md', renderPublishingSkill],
|
|
173
176
|
['working-with-the-creator/SKILL.md', renderCreatorCollaborationSkill],
|
|
174
177
|
['converting-unity-levels/SKILL.md', renderUnityLevelsSkill],
|
|
@@ -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;AAE7B,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,iCAAiC,EACjC,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GAGjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/scaffold/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@
|
|
|
11
11
|
* `project-files.test.ts` enforces the frontmatter (name == directory) and that AGENTS.md names
|
|
12
12
|
* every shipped skill. The same template-literal rule applies: the markdown is full of backticks,
|
|
13
13
|
* so every one inside is escaped as \` and the test checks the rendered output.
|
|
14
|
+
*
|
|
15
|
+
* One renderer here breaks the template-literal rule on purpose: `renderTrailerCraftReference`
|
|
16
|
+
* reads `assets/skills/trailer-craft.md`, because that file is the SOURCE OF TRUTH for trailer
|
|
17
|
+
* craft in two places at once — the skill scaffolded into a creator's project, and the monorepo's
|
|
18
|
+
* own `make-trailer` skill, which symlinks to the same file. Craft is the half of trailer guidance
|
|
19
|
+
* that is not about commands, so both readers need all of it and neither owns it; a second copy
|
|
20
|
+
* would drift the moment either was edited, and the drift is silent (both files still look like
|
|
21
|
+
* guidance). A shipped asset is the only shape that lets a symlink do the sharing.
|
|
14
22
|
*/
|
|
15
23
|
import type { SkillRenderContext } from './project-files.js';
|
|
16
24
|
/**
|
|
@@ -40,13 +48,32 @@ export declare function renderSkillsReadme({ skillsDir, skillDirs }: SkillRender
|
|
|
40
48
|
* `<skills dir>/making-a-trailer/SKILL.md` — the whole trailer flow, and the craft that makes a
|
|
41
49
|
* cut watchable.
|
|
42
50
|
*
|
|
43
|
-
* Two kinds of knowledge live here on purpose
|
|
44
|
-
* command routing an agent could read off \`--help
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
51
|
+
* Two kinds of knowledge live here on purpose, and they are split across two files. The FLOW
|
|
52
|
+
* (record → make → look → publish) is plain command routing an agent could read off \`--help\`,
|
|
53
|
+
* and it is what SKILL.md carries. The CRAFT — ordering, pacing, the five variety axes, the
|
|
54
|
+
* selection rules earlier trailer reviews paid for — is not derivable from any command, and
|
|
55
|
+
* without it the agent's "tuning" is random; it lives in \`references/trailer-craft.md\`
|
|
56
|
+
* (\`renderTrailerCraftReference\`) because it is longer than the flow and read once per trailer
|
|
57
|
+
* rather than once per command. The tuning table at the end is the part the creator actually
|
|
58
|
+
* experiences: a prompt in, a shots.json edit out, one command to see it.
|
|
48
59
|
*/
|
|
49
60
|
export declare function renderTrailerSkill(): string;
|
|
61
|
+
/**
|
|
62
|
+
* `<skills dir>/making-a-trailer/references/trailer-craft.md` — the only shipped skill file that is
|
|
63
|
+
* read from disk rather than written as a template literal.
|
|
64
|
+
*
|
|
65
|
+
* It is a shipped asset (`assets/skills/`, listed in package.json's `files`) because two skills
|
|
66
|
+
* need the same bytes: this one, and the monorepo's own `.claude/skills/make-trailer/`, whose copy
|
|
67
|
+
* is a SYMLINK to the asset. Trailer craft is editing knowledge — it says nothing about the CLI, so
|
|
68
|
+
* neither reader owns it and neither can be given an abridgement without going stale against the
|
|
69
|
+
* other. The same reasoning as the repo's `.agents/skills -> ../.claude/skills` link: a link is not
|
|
70
|
+
* a copy, so there is nothing to keep in step and no check to forget to run.
|
|
71
|
+
*
|
|
72
|
+
* Resolved from this module's own location the way `defaultTitleFont` resolves the bundled font:
|
|
73
|
+
* `../../assets/` is the same hop from `src/scaffold/` and from `dist/scaffold/`, so it works run
|
|
74
|
+
* from source and from an installed package alike.
|
|
75
|
+
*/
|
|
76
|
+
export declare function renderTrailerCraftReference(): string;
|
|
50
77
|
/**
|
|
51
78
|
* `<skills dir>/publishing-a-game/SKILL.md` — the whole ship-it path, and every way it refuses.
|
|
52
79
|
*
|
|
@@ -11,7 +11,17 @@
|
|
|
11
11
|
* `project-files.test.ts` enforces the frontmatter (name == directory) and that AGENTS.md names
|
|
12
12
|
* every shipped skill. The same template-literal rule applies: the markdown is full of backticks,
|
|
13
13
|
* so every one inside is escaped as \` and the test checks the rendered output.
|
|
14
|
+
*
|
|
15
|
+
* One renderer here breaks the template-literal rule on purpose: `renderTrailerCraftReference`
|
|
16
|
+
* reads `assets/skills/trailer-craft.md`, because that file is the SOURCE OF TRUTH for trailer
|
|
17
|
+
* craft in two places at once — the skill scaffolded into a creator's project, and the monorepo's
|
|
18
|
+
* own `make-trailer` skill, which symlinks to the same file. Craft is the half of trailer guidance
|
|
19
|
+
* that is not about commands, so both readers need all of it and neither owns it; a second copy
|
|
20
|
+
* would drift the moment either was edited, and the drift is silent (both files still look like
|
|
21
|
+
* guidance). A shipped asset is the only shape that lets a symlink do the sharing.
|
|
14
22
|
*/
|
|
23
|
+
import fs from 'node:fs';
|
|
24
|
+
import { fileURLToPath } from 'node:url';
|
|
15
25
|
import { describeSkillsDir } from './agent-targets.js';
|
|
16
26
|
/**
|
|
17
27
|
* `.kiro/steering/bitmagic.md` — Kiro's startup instructions, and the only per-agent extra file
|
|
@@ -75,10 +85,10 @@ See \`AGENTS.md\` at the project root for the guidance an agent should read befo
|
|
|
75
85
|
${alsoWritten}
|
|
76
86
|
## Which of these are yours
|
|
77
87
|
|
|
78
|
-
\`planning-a-game/\`, \`finding-engine-apis/\`, \`generating-assets/\`, \`
|
|
79
|
-
\`judging-quality/\`, \`theming-the-hud/\`, \`making-a-trailer/\`,
|
|
80
|
-
\`working-with-the-creator/\`, \`converting-unity-levels/\`,
|
|
81
|
-
this README — are shipped by the Bitmagic CLI and **re-rendered by \`bitmagic upgrade\`**. They
|
|
88
|
+
\`planning-a-game/\`, \`finding-engine-apis/\`, \`generating-assets/\`, \`choosing-asset-pipelines/\`,
|
|
89
|
+
\`checking-usage/\`, \`judging-quality/\`, \`theming-the-hud/\`, \`making-a-trailer/\`,
|
|
90
|
+
\`publishing-a-game/\`, \`working-with-the-creator/\`, \`converting-unity-levels/\`,
|
|
91
|
+
\`building-levels-in-blender/\` — and this README — are shipped by the Bitmagic CLI and **re-rendered by \`bitmagic upgrade\`**. They
|
|
82
92
|
describe what the CLI and the engine can do, so they have to stay current with both; edits to them
|
|
83
93
|
are lost on the next upgrade.
|
|
84
94
|
|
|
@@ -87,6 +97,7 @@ are lost on the next upgrade.
|
|
|
87
97
|
| \`planning-a-game/\` | starting a game, a genre, or anything touching more than one gameplay feature — scoping the first playable slice and writing \`mechanics-plan.md\` |
|
|
88
98
|
| \`finding-engine-apis/\` | you need an engine API and do not know its name or signature, or \`bitmagic check\` cannot resolve a symbol |
|
|
89
99
|
| \`generating-assets/\` | the game needs a skybox, a background, a custom block type, sound, music, image, character, animation or vehicle |
|
|
100
|
+
| \`choosing-asset-pipelines/\` | deciding HOW to make something — which command, skill, file or free built-in fits a level, character, prop, vehicle, weapon, sky, block, image, animation, audio or cutscene need, roughly what it costs in sparks and minutes, and when to ask the creator before an expensive one |
|
|
90
101
|
| \`checking-usage/\` | asked what sparks were spent on, how much Pro allowance is left, or whether there is enough left to keep generating |
|
|
91
102
|
| \`judging-quality/\` | a milestone is done and the game deserves an independent quality verdict — \`bitmagic judge\` |
|
|
92
103
|
| \`theming-the-hud/\` | any ask about the game's LOOK — colors, fonts, rounder/sharper, outlines, glow, glossy, mobile-button styling |
|
|
@@ -105,11 +116,14 @@ in \`AGENTS.md\` — both are left alone.
|
|
|
105
116
|
* `<skills dir>/making-a-trailer/SKILL.md` — the whole trailer flow, and the craft that makes a
|
|
106
117
|
* cut watchable.
|
|
107
118
|
*
|
|
108
|
-
* Two kinds of knowledge live here on purpose
|
|
109
|
-
* command routing an agent could read off \`--help
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
119
|
+
* Two kinds of knowledge live here on purpose, and they are split across two files. The FLOW
|
|
120
|
+
* (record → make → look → publish) is plain command routing an agent could read off \`--help\`,
|
|
121
|
+
* and it is what SKILL.md carries. The CRAFT — ordering, pacing, the five variety axes, the
|
|
122
|
+
* selection rules earlier trailer reviews paid for — is not derivable from any command, and
|
|
123
|
+
* without it the agent's "tuning" is random; it lives in \`references/trailer-craft.md\`
|
|
124
|
+
* (\`renderTrailerCraftReference\`) because it is longer than the flow and read once per trailer
|
|
125
|
+
* rather than once per command. The tuning table at the end is the part the creator actually
|
|
126
|
+
* experiences: a prompt in, a shots.json edit out, one command to see it.
|
|
113
127
|
*/
|
|
114
128
|
export function renderTrailerSkill() {
|
|
115
129
|
return `---
|
|
@@ -128,19 +142,43 @@ and running one command again.
|
|
|
128
142
|
|
|
129
143
|
1. **Have \`bitmagic dev\` running** (it is the sink the recorder streams frames to, and the HUD
|
|
130
144
|
replay for \`--ui\`). ffmpeg and Google Chrome must be installed; the commands say so if not.
|
|
131
|
-
2. **Record
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
footage of
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
2. **Record — played footage, a fly-through, or both.** Decide this BEFORE you ask anyone to play:
|
|
146
|
+
|
|
147
|
+
\`\`\`
|
|
148
|
+
bitmagic trailer record --seconds 60 # they play
|
|
149
|
+
bitmagic trailer record --flythrough trailer/flythrough.json # nobody plays
|
|
150
|
+
\`\`\`
|
|
151
|
+
|
|
152
|
+
**Played footage** is the bulk of any trailer — it is the only thing that shows what the game
|
|
153
|
+
does. \`record\` opens Chrome on the dev view, waits for the creator to press Play, starts the
|
|
154
|
+
recorder for them, stops after 60 s (or when they press F9), and prints the recording directory.
|
|
155
|
+
Ask them to PLAY WELL — the trailer is only as good as the footage: overtakes, jumps, kills,
|
|
156
|
+
close calls, a finish. \`--seconds\` is wall-clock; the recording counts FRAMES at 60 fps, and the
|
|
157
|
+
game runs as fast as the machine encodes them — on a machine capturing at 30 fps, 60 s of play
|
|
158
|
+
becomes 30 s of footage (the command reports both). After stop the frames are extracted from the
|
|
159
|
+
capture; the command waits for that. Aim for about 3x the trailer length: a 30 s trailer wants
|
|
160
|
+
90 s of footage, so \`--seconds 120\` or two sittings.
|
|
161
|
+
|
|
162
|
+
**A fly-through needs nobody.** \`--flythrough\` clicks through the menu and Play itself, then
|
|
163
|
+
glides the camera along an authored path WHILE THE GAME RUNS — traffic drives, animations play,
|
|
164
|
+
physics ticks — and stops at the last marker. It is the whole trailer flow with no human in it,
|
|
165
|
+
so reach for it when the creator is not around, when you are working on your own, or when they
|
|
166
|
+
would rather not be filmed playing badly.
|
|
167
|
+
|
|
168
|
+
**Offer it even when there IS gameplay.** A chase camera almost never gives you the two shots
|
|
169
|
+
the craft doc asks for by name — a composed cold open and one calm wide breath before the end —
|
|
170
|
+
and a fly-through costs the creator nothing. Record a short one as well and join the two:
|
|
171
|
+
|
|
172
|
+
\`\`\`
|
|
173
|
+
bitmagic trailer merge <gameplay-dir> <flythrough-dir> --out <dir>
|
|
174
|
+
\`\`\`
|
|
175
|
+
|
|
176
|
+
\`merge\` is how two sittings become one cuttable recording, and it does not care how the
|
|
177
|
+
footage was made — only that the runs share a resolution and post-processing state. So the cut
|
|
178
|
+
can pull an establishing shot from the fly-through and everything else from play.
|
|
179
|
+
Tell the creator the offer in one line ("I can also fly a camera through the level for the
|
|
180
|
+
opening shot — you don't have to do anything"), and write the path yourself from the level you
|
|
181
|
+
built: \`world.json\` has the coordinates.
|
|
144
182
|
3. **Make.** \`bitmagic trailer make --music-prompt "<style that fits the game>" --title "<name>"\`
|
|
145
183
|
analyzes the recording, generates a music bed (sparks — say so to the creator; \`--music <file>\`
|
|
146
184
|
uses their own track, \`--no-music\` skips it), writes a first cut to \`trailer/shots.json\`,
|
|
@@ -163,7 +201,7 @@ cut before delivering.
|
|
|
163
201
|
| File | What it is |
|
|
164
202
|
|---|---|
|
|
165
203
|
| \`trailer/shots.json\` | **The cut.** Committed. Your edits live here; \`make\` re-cuts from it every run. |
|
|
166
|
-
| \`trailer/flythrough.json\` |
|
|
204
|
+
| \`trailer/flythrough.json\` | A camera path you author. Committed. Records with nobody playing — the whole trailer, or just the opening shot. |
|
|
167
205
|
| \`.bitmagic/trailer/recordings/<name>/\` | A recording: \`<name>_%06d.png\` at 60 fps + \`timeline.json\` (events, sounds, HUD). |
|
|
168
206
|
| \`.bitmagic/trailer/<name>/analysis.json\` | Scored highlight windows: \`startFrame\`, \`endFrame\`, \`score\`, event digests (\`"f3121 explosion i0.9"\`), \`sheet\`. |
|
|
169
207
|
| \`.bitmagic/trailer/<name>/sheets/\` | Contact sheets, one per window — read these. |
|
|
@@ -200,46 +238,26 @@ seconds or \`"last-clip"\` for the end card. \`bitmagic trailer cut\` turns this
|
|
|
200
238
|
|
|
201
239
|
Positions are world units (\`engine/agent-docs/coordinate-system.md\`); \`timestamp\` is seconds,
|
|
202
240
|
ascending from 0; \`lookAt\` (or an Euler \`rotation\`) per marker. The camera glides through the
|
|
203
|
-
markers and the recording stops at the last one.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
(camera distance and framing), energy (intense vs quiet), pacing (section tempo), shot length.
|
|
224
|
-
**Rule of three**: never more than three similar things in a row, and max three of any shot
|
|
225
|
-
type in the whole cut.
|
|
226
|
-
|
|
227
|
-
**Text.** End card only, unless the footage cannot say it. ≤ 6 words, evocative verbs, sounds
|
|
228
|
-
like this game and no other. Banned: quantities ("5 unique levels"), genre stacks, verb lists
|
|
229
|
-
("Race! Drift! Win!"), stock phrases ("Get ready…", "…like never before"). Cards get their own
|
|
230
|
-
beat — never over action.
|
|
231
|
-
|
|
232
|
-
## Selection rules this project already paid for
|
|
233
|
-
|
|
234
|
-
- **Never slow motion.** On gameplay footage it reads as a low framerate. \`speed\` is 1.0.
|
|
235
|
-
- **Numbers are not interest.** A high \`impactSpeed\` is often a car dead against a wall — the
|
|
236
|
-
worst clip. A crash earns its slot only if things visibly break and motion continues.
|
|
237
|
-
- **Low speed can BE the drama.** Wheelspin recoveries, plowing back onto the track, being
|
|
238
|
-
overtaken while struggling — often the best clips, and they score near zero.
|
|
239
|
-
- **"Some shots of X" means a few.** One standing start is an opener; five is a broken trailer.
|
|
240
|
-
- **Menu and selection screens need \`"ui": false\`** — the HUD replay paints the race HUD over them.
|
|
241
|
-
- **Verify on pixels.** Sheets and stills, every candidate. Then render — iterating is minutes and
|
|
242
|
-
revisions are kept, so render rather than debate.
|
|
241
|
+
markers and the recording stops at the last one (600 s is the ceiling).
|
|
242
|
+
|
|
243
|
+
You write this file — take the coordinates from the level you built, in \`world.json\`. Aim the
|
|
244
|
+
first marker at whatever makes the game recognisable, keep the camera moving slowly and in one
|
|
245
|
+
direction per leg (a drifting push or a slow arc reads as deliberate; a whip-pan reads as a
|
|
246
|
+
mistake), and give each leg several seconds. Six markers over 20 s is plenty for the two or three
|
|
247
|
+
shots a cut will actually use — you are recording candidate footage, not the trailer.
|
|
248
|
+
|
|
249
|
+
## Craft — read \`references/trailer-craft.md\` before touching the cut
|
|
250
|
+
|
|
251
|
+
Everything about WHICH moments and in what order lives in
|
|
252
|
+
\`references/trailer-craft.md\`, next to this file: the Genre → Hook → Anchors → Content ordering,
|
|
253
|
+
laying the timeline out as a skeleton before hunting footage, pacing and shot length, the five
|
|
254
|
+
variety axes, the rules for on-screen text, a section-by-section structure template, and the
|
|
255
|
+
selection rules earlier trailers already paid for (never slow motion; a high \`impactSpeed\` is
|
|
256
|
+
usually a car dead against a wall; low speed can BE the drama; menus need \`"ui": false\`).
|
|
257
|
+
|
|
258
|
+
Read it in full the first time you cut a trailer for this game. The tool finds candidate windows
|
|
259
|
+
and snaps cuts to the beat — it has no opinion about any of the above, so without that file your
|
|
260
|
+
"tuning" is random.
|
|
243
261
|
|
|
244
262
|
## Tuning from prompts
|
|
245
263
|
|
|
@@ -254,6 +272,8 @@ The creator talks; you edit \`trailer/shots.json\`, run \`bitmagic trailer make\
|
|
|
254
272
|
| "show the menu / the map / the start" | add ONE shot from the recording's opening with \`"ui": false\` |
|
|
255
273
|
| "put the title at the end" / "change the tagline" | \`titles: [{ "at": "last-clip", "text": "…", "sub": "…", "style": "card" }]\` |
|
|
256
274
|
| "add a title at the start" | a \`title\`-style cue at \`at: 0\` for ~2.5 s, and make the first shot calm enough to read over |
|
|
275
|
+
| "show more of the world / the level", "a wider shot", "an establishing shot" | record a fly-through, \`merge\` it with the gameplay recording, and take the cold open (and the breath) from it |
|
|
276
|
+
| "I can't play right now", "you do it", nobody available | \`record --flythrough\` — it clicks Play itself and needs no one |
|
|
257
277
|
| "different music", "more epic / chill" | \`--music-prompt\` with the new direction (spends sparks), or \`--music <file>\`; shots keep their beat counts and re-snap |
|
|
258
278
|
| "no HUD" / "show the HUD" | drop or add \`--ui\` (per shot: \`"ui": false\`) |
|
|
259
279
|
| "the HUD stutters" / "smoother HUD" | raise \`--ui-keyframe-rate\` on \`make\` or \`render\` (default 30/s; 0 = every change) |
|
|
@@ -265,6 +285,25 @@ Then: **quota check** the labels (rule of three, one standing start), render, ex
|
|
|
265
285
|
from the changed region, compare with the previous \`-rN\`, deliver the URL.
|
|
266
286
|
`;
|
|
267
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* `<skills dir>/making-a-trailer/references/trailer-craft.md` — the only shipped skill file that is
|
|
290
|
+
* read from disk rather than written as a template literal.
|
|
291
|
+
*
|
|
292
|
+
* It is a shipped asset (`assets/skills/`, listed in package.json's `files`) because two skills
|
|
293
|
+
* need the same bytes: this one, and the monorepo's own `.claude/skills/make-trailer/`, whose copy
|
|
294
|
+
* is a SYMLINK to the asset. Trailer craft is editing knowledge — it says nothing about the CLI, so
|
|
295
|
+
* neither reader owns it and neither can be given an abridgement without going stale against the
|
|
296
|
+
* other. The same reasoning as the repo's `.agents/skills -> ../.claude/skills` link: a link is not
|
|
297
|
+
* a copy, so there is nothing to keep in step and no check to forget to run.
|
|
298
|
+
*
|
|
299
|
+
* Resolved from this module's own location the way `defaultTitleFont` resolves the bundled font:
|
|
300
|
+
* `../../assets/` is the same hop from `src/scaffold/` and from `dist/scaffold/`, so it works run
|
|
301
|
+
* from source and from an installed package alike.
|
|
302
|
+
*/
|
|
303
|
+
export function renderTrailerCraftReference() {
|
|
304
|
+
const source = fileURLToPath(new URL('../../assets/skills/trailer-craft.md', import.meta.url));
|
|
305
|
+
return fs.readFileSync(source, 'utf-8');
|
|
306
|
+
}
|
|
268
307
|
/**
|
|
269
308
|
* `<skills dir>/publishing-a-game/SKILL.md` — the whole ship-it path, and every way it refuses.
|
|
270
309
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skill-files.js","sourceRoot":"","sources":["../../src/scaffold/skill-files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAsB;IAC7E,2FAA2F;IAC3F,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC7F,6FAA6F;IAC7F,0EAA0E;IAC1E,MAAM,WAAW,GACf,QAAQ,CAAC,MAAM,KAAK,CAAC;QACnB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,8FAA8F;YAC9F,mEAAmE;YACnE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5C,iFAAiF,CAAC;IAExF,OAAO;;sBAEa,SAAS,SAAS,iBAAiB,CAAC,SAAS,CAAC;;;EAGlE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BZ,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6JR,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,sCAAsC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/F,OAAO,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+HR,CAAC;AACF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,+BAA+B;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkER,CAAC;AACF,CAAC"}
|
|
@@ -40,8 +40,9 @@ export declare function creatorPromptField(override?: unknown): {
|
|
|
40
40
|
/** `body` plus the creator's own words, when the flag was given and telemetry is on. */
|
|
41
41
|
export declare function withParent(body: Record<string, unknown>): Record<string, unknown>;
|
|
42
42
|
/**
|
|
43
|
-
* The creator's ask as an opaque, stable dedupe key — what
|
|
44
|
-
*
|
|
43
|
+
* The creator's ask as an opaque, stable dedupe key — what a game's "Built with N prompts" is
|
|
44
|
+
* counted on, so the COUNT never depends on storing anybody's words. (The beacon also carries the
|
|
45
|
+
* words themselves in {@link creatorAskText}, for a channel that shows them and stores nothing.)
|
|
45
46
|
*
|
|
46
47
|
* The CLI is the ONLY producer of this value. api-server stores it and compares it to other
|
|
47
48
|
* values from this same function; it never recomputes one from text, so the two sides cannot
|
|
@@ -56,3 +57,18 @@ export declare function withParent(body: Record<string, unknown>): Record<string
|
|
|
56
57
|
* `--original-prompt` produces — the count is a floor, never an overcount.
|
|
57
58
|
*/
|
|
58
59
|
export declare function creatorAskDigest(override?: unknown): string | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* The creator's ask as TEXT, bounded for a wire that has a body limit.
|
|
62
|
+
*
|
|
63
|
+
* The beacon carries this so the live-prompts Slack channel can show what an
|
|
64
|
+
* agent is being asked for on the commands that send no prompt anywhere else —
|
|
65
|
+
* `build`, `verify`, `dev`, `reload`, `publish` — which are most of what
|
|
66
|
+
* building a GDK project consists of. api-server posts it and never stores it:
|
|
67
|
+
* the count still runs on {@link creatorAskDigest}, and no prompt text reaches
|
|
68
|
+
* Postgres.
|
|
69
|
+
*
|
|
70
|
+
* Capped by the same rule the digest hashes under, so the two always describe
|
|
71
|
+
* the same words. `DO_NOT_TRACK` drops it upstream in `beginCommand`, like
|
|
72
|
+
* every other field here.
|
|
73
|
+
*/
|
|
74
|
+
export declare function creatorAskText(override?: unknown): string | undefined;
|
|
@@ -52,8 +52,9 @@ export function withParent(body) {
|
|
|
52
52
|
return 'creatorPrompt' in field ? { ...body, ...field } : body;
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
* The creator's ask as an opaque, stable dedupe key — what
|
|
56
|
-
*
|
|
55
|
+
* The creator's ask as an opaque, stable dedupe key — what a game's "Built with N prompts" is
|
|
56
|
+
* counted on, so the COUNT never depends on storing anybody's words. (The beacon also carries the
|
|
57
|
+
* words themselves in {@link creatorAskText}, for a channel that shows them and stores nothing.)
|
|
57
58
|
*
|
|
58
59
|
* The CLI is the ONLY producer of this value. api-server stores it and compares it to other
|
|
59
60
|
* values from this same function; it never recomputes one from text, so the two sides cannot
|
|
@@ -68,9 +69,29 @@ export function withParent(body) {
|
|
|
68
69
|
* `--original-prompt` produces — the count is a floor, never an overcount.
|
|
69
70
|
*/
|
|
70
71
|
export function creatorAskDigest(override) {
|
|
72
|
+
const text = creatorAskText(override);
|
|
73
|
+
if (text === undefined)
|
|
74
|
+
return undefined;
|
|
75
|
+
return createHash('sha256').update(text).digest('hex').slice(0, 16);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The creator's ask as TEXT, bounded for a wire that has a body limit.
|
|
79
|
+
*
|
|
80
|
+
* The beacon carries this so the live-prompts Slack channel can show what an
|
|
81
|
+
* agent is being asked for on the commands that send no prompt anywhere else —
|
|
82
|
+
* `build`, `verify`, `dev`, `reload`, `publish` — which are most of what
|
|
83
|
+
* building a GDK project consists of. api-server posts it and never stores it:
|
|
84
|
+
* the count still runs on {@link creatorAskDigest}, and no prompt text reaches
|
|
85
|
+
* Postgres.
|
|
86
|
+
*
|
|
87
|
+
* Capped by the same rule the digest hashes under, so the two always describe
|
|
88
|
+
* the same words. `DO_NOT_TRACK` drops it upstream in `beginCommand`, like
|
|
89
|
+
* every other field here.
|
|
90
|
+
*/
|
|
91
|
+
export function creatorAskText(override) {
|
|
71
92
|
const field = creatorPromptField(override);
|
|
72
93
|
if (!('creatorPrompt' in field))
|
|
73
94
|
return undefined;
|
|
74
|
-
return
|
|
95
|
+
return field.creatorPrompt.slice(0, MAX_ASK_CHARS);
|
|
75
96
|
}
|
|
76
97
|
//# sourceMappingURL=creator-prompt.js.map
|