@koda-sl/baker-cli 0.250.2-dev.e7a1a227e → 0.251.0-dev.e7a1a227e
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 +1 -0
- package/dist/cli.js +15 -3
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5792,6 +5792,7 @@ This CLI is designed for AI agent consumption. Key patterns:
|
|
|
5792
5792
|
- **0.217.0**: new family `baker avatars list|get|create|update|delete`, plus `--avatar <handle>` on `baker studio generate` and `baker studio animate` — company-scoped reusable presenters, typed from the shared `@baker/api` avatars contract. `--avatar` is the way to cast one: it grounds the render on the identity sheet, reuses the subject description verbatim, and records the avatar on the batch. Passing the sheet through `--reference` instead does none of those and leaves the batch unattributed, so the avatar can never show what it has appeared in; the route refuses a handle that is not `ready`, because generating a stranger is worse than an error. `get` returns the sheet URL and that description; every command's `hints` carry the next move (still building → re-check with `get`; changed `--subject` without `--regenerate-sheet` → the sheet is stale). `create` refuses `--source-image` without `--likeness-confirmed` and returns an `error.fix` telling the agent to ask the user for that permission, since only they can give it; an unknown handle returns an `error.fix` pointing at `baker avatars list`. Profile flags on `update` merge over the stored profile instead of replacing it.
|
|
5793
5793
|
|
|
5794
5794
|
- **0.250.1**: `--avatar <handle>` on `baker studio generate` and `baker studio animate` never worked. Both were declared in `registerSchema` and read at the call site, but neither was in the command's own citty `args` — and citty does not reject an undeclared flag, it keeps it and sets it to `true`. So `--avatar elena` reached the route as `avatar: true` with `elena` dropped as a stray positional, and the body schema (`z.string()`) refused it. Documented since 0.217.0, broken since 0.217.0: casting an avatar into a render was not possible from the CLI at all, which is why a clip of a named presenter came back with neither the identity sheet nor the voice. Both flags are now declared. A new test in `command-reference-integrity` compares every registered schema against the args of the command that parses it, so the two cannot drift again — it found a third case on the way, `actions status`, whose schema advertised a `--refs` flag for what the command actually takes as positionals.
|
|
5795
|
+
- **0.251.0**: `--accent` on `baker avatars create|update` — the region an avatar's voice comes from, e.g. `"Spanish from Spain, Madrid accent"`. Its own field rather than a sentence inside `--speech`, because that is where it went to die: asked for "pace, register, accent", the agent wrote *"clear Spanish accent"* for a Madrid presenter, the video model read that as no accent, and the clip came out sounding like nowhere. A place can be checked; an adjective cannot. It reaches the render through `buildDeliveryDirection` as its own `ACCENT:` instruction, and `thinProfileHint` now names it first among the missing fields since it is the only one that fails silently — a clip with no accent still looks finished.
|
|
5795
5796
|
## Publishing
|
|
5796
5797
|
|
|
5797
5798
|
### Auto-publish (CI)
|
package/dist/cli.js
CHANGED
|
@@ -3682,6 +3682,7 @@ var avatarProfileSchema = z7.object({
|
|
|
3682
3682
|
subjectDescription: z7.string().trim().min(1).max(2e3),
|
|
3683
3683
|
persona: z7.string().trim().max(2e3).optional(),
|
|
3684
3684
|
speech: z7.string().trim().max(2e3).optional(),
|
|
3685
|
+
accent: z7.string().trim().max(2e3).optional(),
|
|
3685
3686
|
motion: z7.string().trim().max(2e3).optional(),
|
|
3686
3687
|
wardrobe: z7.string().trim().max(2e3).optional(),
|
|
3687
3688
|
setting: z7.string().trim().max(2e3).optional(),
|
|
@@ -24517,11 +24518,11 @@ function rosterHints(roster, statusFilter) {
|
|
|
24517
24518
|
return hints;
|
|
24518
24519
|
}
|
|
24519
24520
|
function thinProfileHint(profile, handle) {
|
|
24520
|
-
const missing = ["motion", "persona", "speech", "wardrobe", "setting"].filter(
|
|
24521
|
+
const missing = ["motion", "persona", "speech", "accent", "wardrobe", "setting"].filter(
|
|
24521
24522
|
(field) => !profile?.[field]?.trim()
|
|
24522
24523
|
);
|
|
24523
24524
|
if (missing.length === 0) return null;
|
|
24524
|
-
return `MISSING ${missing.map((field) => `--${field}`).join(" ")}. A bare subject description holds the face still and nothing else, so clips of @${handle} come out stiff and generic \u2014 measured, filling these in nearly doubled the movement in the same brief. The user almost certainly told you how this person talks and carries themselves; put it in: \`baker avatars update ${handle} ${missing.map((field) => `--${field} "\u2026"`).join(" ")}\`.`;
|
|
24525
|
+
return `MISSING ${missing.map((field) => `--${field}`).join(" ")}. A bare subject description holds the face still and nothing else, so clips of @${handle} come out stiff and generic \u2014 measured, filling these in nearly doubled the movement in the same brief. --accent is the one nobody guesses and the only one that fails silently: it decides the accent the avatar SPEAKS with in every clip, so name the region the user is writing to you from ("Spanish from Spain, Madrid accent") \u2014 "Spanish" on its own renders as no accent at all. The user almost certainly told you how this person talks and carries themselves; put it in: \`baker avatars update ${handle} ${missing.map((field) => `--${field} "\u2026"`).join(" ")}\`.`;
|
|
24525
24526
|
}
|
|
24526
24527
|
function creationHints(created, profile) {
|
|
24527
24528
|
const thin = thinProfileHint(profile, created.handle);
|
|
@@ -24614,6 +24615,7 @@ var TEXT_FIELDS = [
|
|
|
24614
24615
|
["subject", "subjectDescription"],
|
|
24615
24616
|
["persona", "persona"],
|
|
24616
24617
|
["speech", "speech"],
|
|
24618
|
+
["accent", "accent"],
|
|
24617
24619
|
["motion", "motion"],
|
|
24618
24620
|
["wardrobe", "wardrobe"],
|
|
24619
24621
|
["setting", "setting"]
|
|
@@ -24702,7 +24704,12 @@ registerSchema({
|
|
|
24702
24704
|
required: true
|
|
24703
24705
|
},
|
|
24704
24706
|
persona: { type: "string", description: "Who they are on camera \u2014 role, attitude, energy", required: false },
|
|
24705
|
-
speech: { type: "string", description: "How they speak \u2014 pace, register,
|
|
24707
|
+
speech: { type: "string", description: "How they speak \u2014 pace, register, verbal habits", required: false },
|
|
24708
|
+
accent: {
|
|
24709
|
+
type: "string",
|
|
24710
|
+
description: "Where their voice is FROM, as a place: 'Spanish from Spain, Madrid accent', 'Mexican Spanish', 'British English, London'. Name the region \u2014 an adjective like 'clear Spanish accent' is read by the video model as NO accent, and the clip comes out sounding like nowhere. Set it whenever the avatar will speak; the user's own language is the default to assume, not English.",
|
|
24711
|
+
required: false
|
|
24712
|
+
},
|
|
24706
24713
|
motion: { type: "string", description: "Body language and gesture in video", required: false },
|
|
24707
24714
|
wardrobe: { type: "string", description: "Default outfit when the brief does not name one", required: false },
|
|
24708
24715
|
setting: { type: "string", description: "Default surroundings when the brief leaves them open", required: false },
|
|
@@ -24736,6 +24743,11 @@ var createCommand2 = defineCommand89({
|
|
|
24736
24743
|
subject: { type: "string", description: "The person, plainly described \u2014 reused verbatim", required: false },
|
|
24737
24744
|
persona: { type: "string", description: "Who they are on camera", required: false },
|
|
24738
24745
|
speech: { type: "string", description: "How they speak", required: false },
|
|
24746
|
+
accent: {
|
|
24747
|
+
type: "string",
|
|
24748
|
+
description: "Where their voice is FROM \u2014 name the region, e.g. 'Spanish from Spain, Madrid accent'",
|
|
24749
|
+
required: false
|
|
24750
|
+
},
|
|
24739
24751
|
motion: { type: "string", description: "Body language in video", required: false },
|
|
24740
24752
|
wardrobe: { type: "string", description: "Default outfit", required: false },
|
|
24741
24753
|
setting: { type: "string", description: "Default surroundings", required: false },
|