@koda-sl/baker-cli 0.390.0 → 0.391.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 +1 -1
- package/dist/{chunk-6UE43HEQ.js → chunk-SZKTVOR7.js} +9 -1
- package/dist/chunk-SZKTVOR7.js.map +1 -0
- package/dist/cli.js +577 -491
- package/dist/cli.js.map +1 -1
- package/dist/engine/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-6UE43HEQ.js.map +0 -1
package/README.md
CHANGED
|
@@ -5648,7 +5648,7 @@ It then scaffolds a canvas that draws **only what `prompt.json` holds**; no elem
|
|
|
5648
5648
|
|
|
5649
5649
|
**Placement formats.** The canvas delivers the platform's full placement set, each format at its exact size, collected under `final` with the format as its label. The set is derived from `--platform` (`meta` → 4:5 + 9:16, `google` → 1:1 + 4:5 + 16:9, `linkedin` → 1:1, `tiktok` → 9:16, `youtube` → 16:9); override it with `--placements <preset>` or `--placements none` for a single format. The report's `aspect_ratio` is the ratio the plates really render at (the model's nearest to the lead format), and `format_plan` says how each format is made.
|
|
5650
5650
|
|
|
5651
|
-
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format, and one vision pass that reads each word against the copy `prompt.json` holds and checks one dominant idea, clipping, artifacts, the brand with the logo covered and the concept's mechanisms, with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-plate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed.
|
|
5651
|
+
**After a run** the CLI reads the finished ad back on what makes a static win, not a checklist of elements: every delivered image's pixel shape against its format, and one vision pass that reads each word against the copy `prompt.json` holds and checks one dominant idea, clipping, artifacts, the brand with the logo covered and the concept's mechanisms, with every format shown a second time at phone-feed thumbnail size (240px wide, same call): a lead message unreadable at that size is blocking. A missing logo, CTA or copy is never a finding; a logo that is drawn and broken is. stdout carries `verdict` (`ready` | `ready_with_notes` | `needs_fixes` | `not_reviewed`), `judge` (the per-plate scores) and hints that end with what the run made; the findings are stored on the run as its `review`. `needs_fixes` means the ad is not done even though every node completed; its hints name the cheapest fix (overlapping or unreadable copy is fixed with a smaller `size`, a `highlight` or `sticker` treatment or shorter words, which re-draw the formats from the cached plates). **Render budget:** a static ad gets 3 renders per creative in a chat before the person reacts; the fourth exits 2 with `RENDER_BUDGET` without rendering, and `baker creatives feedback record` or `baker creatives select` on that creative opens a new round. Resuming an interrupted run does not count again, and a run that died only on an outage (timeout, network, a provider that says retry) gives its render back.
|
|
5652
5652
|
|
|
5653
5653
|
The logo is never a slot to fill: use the company's committed logo in `src/brand/logos/` (per `BRAND.md`), never `baker images logo <domain>`, whose Brandfetch CDN often serves an outdated mark.
|
|
5654
5654
|
|
|
@@ -1023,6 +1023,10 @@ function runFailureCode(e) {
|
|
|
1023
1023
|
const reasons = e instanceof LayerExecutionError ? e.failures.map((f) => f.reason) : [e];
|
|
1024
1024
|
return reasons.length > 0 && reasons.every(isInputRejection) ? "input_invalid" : "runtime";
|
|
1025
1025
|
}
|
|
1026
|
+
function failedOnlyOnTransientErrors(e) {
|
|
1027
|
+
const reasons = e instanceof LayerExecutionError ? e.failures.map((f) => f.reason) : [e];
|
|
1028
|
+
return reasons.length > 0 && reasons.every((r) => r instanceof NodeExecutionError && failureDetail(r).retryable === true);
|
|
1029
|
+
}
|
|
1026
1030
|
function failureDetail(reason) {
|
|
1027
1031
|
if (reason instanceof NodeExecutionError) {
|
|
1028
1032
|
const c = reason.cause;
|
|
@@ -8069,6 +8073,9 @@ var FINDING_ADVICE = {
|
|
|
8069
8073
|
console_error: "the composition threw in the browser, so whatever that script was driving did not happen.",
|
|
8070
8074
|
page_error: "a script failed to evaluate \u2014 animations and any JS-driven layout in this composition did not run.",
|
|
8071
8075
|
http_error: "an asset 404ed at render time; it will be missing from the frame, not substituted.",
|
|
8076
|
+
// The most common reason a static ad failed its render in production (Sept 2026), and the
|
|
8077
|
+
// agent answered it by re-painting all three pictures when only the composition was wrong.
|
|
8078
|
+
content_overlap: "two lines of copy collide. In a static ad, make one smaller (`size` in its layout region's `text` in prompt.json) or shorten it: the formats re-draw from the cached pictures. Moving a layout region instead re-paints every picture.",
|
|
8072
8079
|
console_warning: "if this names a GSAP target, the element it animates does not exist, so that tween is a no-op and whatever it was meant to reveal never appears. Fix the selector or add the element before rendering."
|
|
8073
8080
|
};
|
|
8074
8081
|
function explainGateFinding(finding) {
|
|
@@ -10211,6 +10218,7 @@ export {
|
|
|
10211
10218
|
LayerExecutionError,
|
|
10212
10219
|
describeFailureReason,
|
|
10213
10220
|
runFailureCode,
|
|
10221
|
+
failedOnlyOnTransientErrors,
|
|
10214
10222
|
AD_FORMAT_PLATFORMS,
|
|
10215
10223
|
platformFormats,
|
|
10216
10224
|
resolveAdaptFormats,
|
|
@@ -10283,4 +10291,4 @@ export {
|
|
|
10283
10291
|
defaultRegistry,
|
|
10284
10292
|
createEngineFromEnv
|
|
10285
10293
|
};
|
|
10286
|
-
//# sourceMappingURL=chunk-
|
|
10294
|
+
//# sourceMappingURL=chunk-SZKTVOR7.js.map
|