@koda-sl/baker-cli 0.434.0-dev.e6bd6f23c → 0.434.0
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 +5 -5
- package/dist/{chunk-ENTQULTV.js → chunk-6PP3MBGZ.js} +6 -21
- package/dist/chunk-6PP3MBGZ.js.map +1 -0
- package/dist/cli.js +1175 -1641
- package/dist/cli.js.map +1 -1
- package/dist/engine/index.d.ts +0 -9
- package/dist/engine/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-ENTQULTV.js.map +0 -1
package/README.md
CHANGED
|
@@ -1834,7 +1834,7 @@ Ads start from what customers said. Three commands carry the process; the agent
|
|
|
1834
1834
|
```bash
|
|
1835
1835
|
baker creatives brief [--adset <id>] [--account-id act_<id>] [--no-research] # one read: viewer, account bottleneck, what works, taste, customer quotes, ideas on file
|
|
1836
1836
|
baker creatives ideas [--full] # check and rank src/creatives/_ideas/*.md; build_next
|
|
1837
|
-
baker creatives make <idea> [--slug <s>] [--adset <id>] [--reference <adId>] [--spec <beats.json>] [--from-idea]
|
|
1837
|
+
baker creatives make <idea> [--slug <s>] [--adset <id>] [--reference <adId>] [--spec <beats.json>] [--from-idea]
|
|
1838
1838
|
baker creatives learn [--days <n>] [--dry-run] # what each idea's ads did, written back onto the idea
|
|
1839
1839
|
```
|
|
1840
1840
|
|
|
@@ -1842,7 +1842,6 @@ baker creatives learn [--days <n>] [--dry-run] # what each idea'
|
|
|
1842
1842
|
- `ideas` is free and local. An idea's `evidence` resolves to `src/content/insights/` entries, or it is an `explore` bet. Numbers must be in the Knowledge or our own customers' quotes (a Reddit, forum or web quote never sources a claim), no two ideas may share an angle and format, and a review or testimonial format needs a quote from our own customer.
|
|
1843
1843
|
- `learn` pools each built idea's creatives, judges them against the rest of the account's cost per result and writes `status` (`winner`, `failed`, `inconclusive`, `testing`) and a frozen `result` onto the idea. `ideas` then warns when a new idea repeats a failed one.
|
|
1844
1844
|
- `make` builds one idea. A static searches the idea's container for ads made for our viewer, checks the closest three with `winning-ads fit` and scaffolds from the first that fits. For a new creative it starts scaffolding the best-ranked one while the fits are asked (kept when it fits, stopped and removed whole when another or none is kept), so the reference's describe pass no longer waits for them. Finding and describing a reference gets 50 seconds; past that the build is stopped and the static starts from the idea (`REFERENCE_SLOW` in the hint). A creative whose ad is already written is never built over (`ALREADY_MADE`): edit its `prompt.json`, or pass `--slug` for another ad of the same idea. A video idea takes its beats spec. Either way it records the idea on `_definition.md`, sets `prompt.json`'s `message` and syncs the definition. Drafted copy lines claiming a figure the company never wrote come back first in `hints`. When no proven ad fits (or with `--from-idea`), a static starts from the idea itself: `prompt.json` holds the message and placeholders, and `canvas run` refuses to render until the scene and copy are written.
|
|
1845
|
-
- `make --series <lead>` makes a static idea as another ad of a series: several messages in one style. Nothing is searched or rendered; the ad's `_definition.md` names its lead (`series: <lead>`), its `prompt.json` starts as the lead's ready version with the idea's message, and only its `copy` is written. Its canvas is written from the lead's on every run: the lead's finished picture with this ad's words, every other size the lead's own size with the same words. `baker canvas run --series <lead>` renders every ad of the series at once, one reviewed and corrected run each, skipping an ad already ready from the lead's current version.
|
|
1846
1845
|
|
|
1847
1846
|
### Competitive Intelligence (`baker research`)
|
|
1848
1847
|
|
|
@@ -6591,7 +6590,7 @@ import {
|
|
|
6591
6590
|
|
|
6592
6591
|
## Creatives
|
|
6593
6592
|
|
|
6594
|
-
|
|
6593
|
+
Publish an approved canvas render as a first-class Baker creative: a static image (PNG, JPG, WebP) or a finished video (MP4, MOV, WebM). An image uploads to the Baker image library (tagged `creative`); a video uploads to the Baker video library and is saved once it plays (bounded at 3 minutes). A creative record is created/updated, and the command prints the creative reference JSON the dashboard renders in chat.
|
|
6595
6594
|
|
|
6596
6595
|
```bash
|
|
6597
6596
|
baker creatives publish --title "Spring Offer 4x5" \
|
|
@@ -6609,8 +6608,9 @@ baker creatives publish ./canvas/<run_id>/final.mp4 --title "Spring Offer Reel"
|
|
|
6609
6608
|
| `<file>` | The image or video. For an image it is optional with `--run-id`: the run's own saved output (from its run record, sha-verified) is used instead, so a workspace that never had the run's folder can publish it. |
|
|
6610
6609
|
| `--title <text>` | Required. Human title for the creative. |
|
|
6611
6610
|
| `--slug <slug>` | Creative slug (`src/creatives/<slug>/`): attaches the image or video to that creative's row, marks it `published`. Required for a video. With `--run-id` an image publish also sets `status: published` in the creative's `_definition.md` (`definitionStatus` in the output). |
|
|
6612
|
-
| `--run-id <r_…>` | Pins the
|
|
6611
|
+
| `--run-id <r_…>` | Pins the approved generation from the creative's run history as the published one. |
|
|
6613
6612
|
| `--output <label\|slot\|n>` | With `--run-id` and no file: which of the run's images to save when it made several (a label such as `4:5`, a slot, or a 1-based number). |
|
|
6613
|
+
| `--approved` | The person's own message asked to save it. Needed only for an image run rendered in the current chat turn (`BAKER_TURN_ID`), which they have not seen yet; without it that save is refused. |
|
|
6614
6614
|
| `--source-reference-url <url>` | Original reference ad URL, recorded on the creative. |
|
|
6615
6615
|
| `--context <text>` | Optional describe context for the uploaded image or video. |
|
|
6616
6616
|
|
|
@@ -6672,7 +6672,7 @@ After a rejection, `hints[]` restates what to change, starting from that version
|
|
|
6672
6672
|
|
|
6673
6673
|
### `baker creatives select`
|
|
6674
6674
|
|
|
6675
|
-
|
|
6675
|
+
Choose the version of a creative to keep, or only some of its options, the way choosing it in Baker does: the creative shows that version as the chosen one, and the choice records the chat sender's approval (`source: "selection"`). Naming options replaces the earlier pick. It does not add the image to the library; that is `baker creatives publish`, which, given `--run-id`, also counts as choosing that version.
|
|
6676
6676
|
|
|
6677
6677
|
```bash
|
|
6678
6678
|
baker creatives select --slug spring-offer # the version it shows now
|
|
@@ -24,9 +24,9 @@ import {
|
|
|
24
24
|
shouldEscalate
|
|
25
25
|
} from "./chunk-F7LXMR73.js";
|
|
26
26
|
|
|
27
|
-
//
|
|
27
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js
|
|
28
28
|
var require_safe_stable_stringify = __commonJS({
|
|
29
|
-
"
|
|
29
|
+
"../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/index.js"(exports, module) {
|
|
30
30
|
"use strict";
|
|
31
31
|
var { hasOwnProperty } = Object.prototype;
|
|
32
32
|
var stringify = configure2();
|
|
@@ -1408,7 +1408,7 @@ function resolveAdaptFormats(params) {
|
|
|
1408
1408
|
return params.formats ?? [];
|
|
1409
1409
|
}
|
|
1410
1410
|
|
|
1411
|
-
//
|
|
1411
|
+
// ../../node_modules/.pnpm/safe-stable-stringify@2.5.0/node_modules/safe-stable-stringify/esm/wrapper.js
|
|
1412
1412
|
var import__ = __toESM(require_safe_stable_stringify(), 1);
|
|
1413
1413
|
var configure = import__.default.configure;
|
|
1414
1414
|
var wrapper_default = import__.default;
|
|
@@ -4398,16 +4398,7 @@ var CanvasMetadata = z4.object({
|
|
|
4398
4398
|
// `scaffold-video`) so the editable checklist travels inside the canvas
|
|
4399
4399
|
// instead of only printing to stdout. Ignored by the engine.
|
|
4400
4400
|
todo: z4.unknown().optional(),
|
|
4401
|
-
video: VideoMeta
|
|
4402
|
-
// A static ad of a series (`seriesMemberAd`): the lead ad its picture is an edit of, the
|
|
4403
|
-
// lead's version, and the lead's words as that version drew them, which this ad's replace.
|
|
4404
|
-
// Ignored by the engine; the brief projection reads it.
|
|
4405
|
-
series: z4.object({
|
|
4406
|
-
lead: z4.string().min(1),
|
|
4407
|
-
run_id: z4.string().min(1),
|
|
4408
|
-
copy: z4.array(z4.object({ text: z4.string(), role: z4.string().optional() }).strict()),
|
|
4409
|
-
design: z4.string().optional()
|
|
4410
|
-
}).strict().optional()
|
|
4401
|
+
video: VideoMeta
|
|
4411
4402
|
}).strict().optional();
|
|
4412
4403
|
var CanvasSchema = z4.object({
|
|
4413
4404
|
schema: z4.literal("baker-canvas/1"),
|
|
@@ -7473,7 +7464,7 @@ function pictureInstruction(p, ctx) {
|
|
|
7473
7464
|
const keep = p.spec?.keep ? ` Keep ${plain(p.spec.keep, ctx.clean)}.` : "";
|
|
7474
7465
|
switch (p.role) {
|
|
7475
7466
|
case "base":
|
|
7476
|
-
return ctx.job === "fix" ? "the current version of this ad, to edit." :
|
|
7467
|
+
return ctx.job === "fix" ? "the current version of this ad, to edit." : "the finished ad, to re-lay for this shape.";
|
|
7477
7468
|
case "identity":
|
|
7478
7469
|
return identityInstruction(p, what, keep, ctx.flowing);
|
|
7479
7470
|
// The user saw one label come back two ways (E4 gallery, BENCH.md § "E1 v2"): the label is the product's.
|
|
@@ -7852,10 +7843,6 @@ function deliverableSection(c) {
|
|
|
7852
7843
|
const change = sentence(c.opts.instruction?.trim() || "correct what is wrong");
|
|
7853
7844
|
return c.flowing ? `Image 1 is the current version of this ad. ${capitalize(change)} Keep everything else in Image 1 exactly the same, preserving its picture, layout, colours, lettering and every word.` : `Edit: Image 1 is the current version of this ad. ${capitalize(change)} Keep everything else exactly as it is in Image 1: the picture, the layout, the colours, the lettering and every word.`;
|
|
7854
7845
|
}
|
|
7855
|
-
if (c.job === "series") {
|
|
7856
|
-
const change = sentence(c.opts.instruction?.trim() || "set the new words");
|
|
7857
|
-
return c.flowing ? `Image 1 is a finished ad of this series. Make the next ad of the same series${forBrand}: ${change} Keep everything else in Image 1 exactly the same, preserving its picture, layout, background, shapes, colours, lettering style and logo, each word in the place and style of the one it replaces.` : `Edit: Image 1 is a finished ad of this series. Make the next ad of the same series${forBrand}. ${capitalize(change)} Keep everything else exactly as it is in Image 1: the picture, the layout, the background, the shapes, the colours, the lettering style and the logo, each new line in the place, size and style of the line it replaces.`;
|
|
7858
|
-
}
|
|
7859
7846
|
if (c.job === "relay") {
|
|
7860
7847
|
return c.flowing ? `Image 1 is a finished ad. Recompose this same ad as a ${noun}${forBrand}: the same picture, colours, lettering and every word, rearranged for the new shape, with more of the scene revealed at the edges.` : `Deliverable: the same ad as Image 1, re-laid as a finished ${noun}${forBrand}. Keep the same picture, colours, lettering and every word, rearranged for the new shape; show more of the scene rather than cropping it.`;
|
|
7861
7848
|
}
|
|
@@ -8526,7 +8513,6 @@ var STATIC_ADAPT_ROLE = "static_adapt";
|
|
|
8526
8513
|
var STATIC_SAFE_FIT_ROLE = "static_safe_fit";
|
|
8527
8514
|
var STATIC_PLACE_ROLE = "static_place";
|
|
8528
8515
|
var LOGO_COMPOSITE_ROLE = "logo_composite";
|
|
8529
|
-
var SERIES_LEAD_ROLE = "series_lead";
|
|
8530
8516
|
var STATIC_FIX_ROLE = "static_fix";
|
|
8531
8517
|
var LOGO_COMPOSITE_DEFAULT = false;
|
|
8532
8518
|
var ADAPT_IMAGE_SIZE = "2K";
|
|
@@ -18711,7 +18697,6 @@ export {
|
|
|
18711
18697
|
STATIC_SAFE_FIT_ROLE,
|
|
18712
18698
|
STATIC_PLACE_ROLE,
|
|
18713
18699
|
LOGO_COMPOSITE_ROLE,
|
|
18714
|
-
SERIES_LEAD_ROLE,
|
|
18715
18700
|
STATIC_FIX_ROLE,
|
|
18716
18701
|
LOGO_COMPOSITE_DEFAULT,
|
|
18717
18702
|
nodesWithRole,
|
|
@@ -18773,4 +18758,4 @@ export {
|
|
|
18773
18758
|
defaultRegistry,
|
|
18774
18759
|
createEngineFromEnv
|
|
18775
18760
|
};
|
|
18776
|
-
//# sourceMappingURL=chunk-
|
|
18761
|
+
//# sourceMappingURL=chunk-6PP3MBGZ.js.map
|