@koda-sl/baker-cli 0.450.0 → 0.451.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 +8 -0
- package/dist/{canvas-XYCDLDRS.js → canvas-LSQIZ4YK.js} +12 -12
- package/dist/{catalog-ME44ZRZF.js → catalog-BWWRJ5RC.js} +3 -3
- package/dist/{chunk-P2RE52V7.js → chunk-CCTB7IA7.js} +3 -3
- package/dist/{chunk-D5XAVXUZ.js → chunk-DGICXFK4.js} +5 -5
- package/dist/{chunk-542XAHNT.js → chunk-ICGLN6VO.js} +2 -2
- package/dist/{chunk-J5IY3GVE.js → chunk-MCVASJR5.js} +3 -3
- package/dist/{chunk-GLCPTMPG.js → chunk-PHKQRZGR.js} +2 -2
- package/dist/{chunk-K7FZXIOZ.js → chunk-PZ7EPJRF.js} +2 -2
- package/dist/{chunk-PLGIETFZ.js → chunk-QDSSRRI2.js} +6 -6
- package/dist/{chunk-NEXCBTBZ.js → chunk-QUST75OM.js} +2 -2
- package/dist/{chunk-TXI5OWCF.js → chunk-U6GDJF7Y.js} +15 -9
- package/dist/{chunk-TXI5OWCF.js.map → chunk-U6GDJF7Y.js.map} +1 -1
- package/dist/{chunk-P6ICBEE4.js → chunk-W2KF4LZL.js} +3 -3
- package/dist/chunk-W2KF4LZL.js.map +1 -0
- package/dist/{chunk-TD6GIMV6.js → chunk-WHIPHGWI.js} +2 -2
- package/dist/{chunk-K66OLA6Y.js → chunk-ZIHEIVJC.js} +51 -24
- package/dist/chunk-ZIHEIVJC.js.map +1 -0
- package/dist/cli.js +2 -2
- package/dist/{creatives-D3NXWVUF.js → creatives-2CYEJXYR.js} +5 -5
- package/dist/{critique-3XJG44NG.js → critique-GUXOLOES.js} +3 -3
- package/dist/engine/index.js +2 -2
- package/dist/{feedback-C6CBUUDA.js → feedback-6N2BWUND.js} +2 -2
- package/dist/{feedback-record-FM5MW2YV.js → feedback-record-L7YINZLA.js} +5 -5
- package/dist/{make-ATEHKECL.js → make-RM2HEOVC.js} +10 -7
- package/dist/{make-ATEHKECL.js.map → make-RM2HEOVC.js.map} +1 -1
- package/dist/{rerun-FCZRSS3H.js → rerun-2OYJNDXC.js} +10 -10
- package/dist/{run-CUUAWKAZ.js → run-CECNWLTF.js} +10 -10
- package/dist/{scaffold-ad-AYKWASWY.js → scaffold-ad-WGYLP7HP.js} +7 -7
- package/dist/{scaffold-static-ad-IEZEQW4N.js → scaffold-static-ad-Z54SETYF.js} +15 -15
- package/dist/scaffold-static-ad-Z54SETYF.js.map +1 -0
- package/dist/{scaffold-video-YMN7AJS4.js → scaffold-video-63VDYVAU.js} +7 -7
- package/dist/{select-LSS7ZJSB.js → select-BU2KRFOE.js} +5 -5
- package/dist/{set-prompt-P3WR2TZX.js → set-prompt-VLLJUQQ3.js} +4 -4
- package/dist/{stale-7VJECYYJ.js → stale-T4S42ATQ.js} +4 -4
- package/dist/{sync-definition-ARIX5XWM.js → sync-definition-STAFZTLS.js} +7 -7
- package/dist/{translate-GGONJG62.js → translate-PL54KGE4.js} +7 -7
- package/dist/{validate-FSFELDFZ.js → validate-KZUQKUNF.js} +5 -5
- package/package.json +1 -1
- package/dist/chunk-K66OLA6Y.js.map +0 -1
- package/dist/chunk-P6ICBEE4.js.map +0 -1
- package/dist/scaffold-static-ad-IEZEQW4N.js.map +0 -1
- /package/dist/{canvas-XYCDLDRS.js.map → canvas-LSQIZ4YK.js.map} +0 -0
- /package/dist/{catalog-ME44ZRZF.js.map → catalog-BWWRJ5RC.js.map} +0 -0
- /package/dist/{chunk-P2RE52V7.js.map → chunk-CCTB7IA7.js.map} +0 -0
- /package/dist/{chunk-D5XAVXUZ.js.map → chunk-DGICXFK4.js.map} +0 -0
- /package/dist/{chunk-542XAHNT.js.map → chunk-ICGLN6VO.js.map} +0 -0
- /package/dist/{chunk-J5IY3GVE.js.map → chunk-MCVASJR5.js.map} +0 -0
- /package/dist/{chunk-GLCPTMPG.js.map → chunk-PHKQRZGR.js.map} +0 -0
- /package/dist/{chunk-K7FZXIOZ.js.map → chunk-PZ7EPJRF.js.map} +0 -0
- /package/dist/{chunk-PLGIETFZ.js.map → chunk-QDSSRRI2.js.map} +0 -0
- /package/dist/{chunk-NEXCBTBZ.js.map → chunk-QUST75OM.js.map} +0 -0
- /package/dist/{chunk-TD6GIMV6.js.map → chunk-WHIPHGWI.js.map} +0 -0
- /package/dist/{creatives-D3NXWVUF.js.map → creatives-2CYEJXYR.js.map} +0 -0
- /package/dist/{critique-3XJG44NG.js.map → critique-GUXOLOES.js.map} +0 -0
- /package/dist/{feedback-C6CBUUDA.js.map → feedback-6N2BWUND.js.map} +0 -0
- /package/dist/{feedback-record-FM5MW2YV.js.map → feedback-record-L7YINZLA.js.map} +0 -0
- /package/dist/{rerun-FCZRSS3H.js.map → rerun-2OYJNDXC.js.map} +0 -0
- /package/dist/{run-CUUAWKAZ.js.map → run-CECNWLTF.js.map} +0 -0
- /package/dist/{scaffold-ad-AYKWASWY.js.map → scaffold-ad-WGYLP7HP.js.map} +0 -0
- /package/dist/{scaffold-video-YMN7AJS4.js.map → scaffold-video-63VDYVAU.js.map} +0 -0
- /package/dist/{select-LSS7ZJSB.js.map → select-BU2KRFOE.js.map} +0 -0
- /package/dist/{set-prompt-P3WR2TZX.js.map → set-prompt-VLLJUQQ3.js.map} +0 -0
- /package/dist/{stale-7VJECYYJ.js.map → stale-T4S42ATQ.js.map} +0 -0
- /package/dist/{sync-definition-ARIX5XWM.js.map → sync-definition-STAFZTLS.js.map} +0 -0
- /package/dist/{translate-GGONJG62.js.map → translate-PL54KGE4.js.map} +0 -0
- /package/dist/{validate-FSFELDFZ.js.map → validate-KZUQKUNF.js.map} +0 -0
package/README.md
CHANGED
|
@@ -4312,10 +4312,14 @@ A skill fills only what you did **not** pin — `--model`, `--aspect-ratio` and
|
|
|
4312
4312
|
|
|
4313
4313
|
## Creative Canvas
|
|
4314
4314
|
|
|
4315
|
+
Static-ad guidance prefers a ready company Avatar whenever an actor is needed, chosen for the buyer context. A real founder or testimonial author uses their verified likeness; if it cannot be found, use initials or no face. The shared creative instructions also call for deliberate complete-logo selection, one consistent primary CTA treatment, and deterministic rendering of recognizable interfaces. Screen guidance distinguishes laptops and notebook computers from paper notebooks beside a phone.
|
|
4316
|
+
|
|
4315
4317
|
The creative canvas runs declarative JSON pipelines. You author a graph of nodes (text, image, video, audio, composition, control-flow), `baker canvas run` it, and every node's output drops to disk under `canvas/<run_id>/` so you can watch progress and consume the artifacts.
|
|
4316
4318
|
|
|
4317
4319
|
Auth: same `BAKER_API_KEY` + `BAKER_API_URL` as the rest of the CLI.
|
|
4318
4320
|
|
|
4321
|
+
Static resizes, fixes and series continuations keep why the original ad works and the elements its concept depends on, alongside the previous image. Older specs carry their persuasion mechanism and its reason instead. Automatic spec repairs preserve the concept, mechanism, message, brand (including the CTA color) and native interface; they can correct the execution without changing the idea. Change those choices explicitly in `prompt.json` when the brief changes.
|
|
4322
|
+
|
|
4319
4323
|
### Quick start
|
|
4320
4324
|
|
|
4321
4325
|
```bash
|
|
@@ -6141,6 +6145,10 @@ baker canvas run ./static-ad.canvas.json
|
|
|
6141
6145
|
|
|
6142
6146
|
Scaffolding runs (and bills) the two vision passes; **running** the result generates billed images. `baker canvas validate` does not check that the `[TODO]` paths exist — supply the real files before `run`.
|
|
6143
6147
|
|
|
6148
|
+
Size adaptations move and proportionally scale the existing composition first, keeping its background treatment, including intentional flat colour. Generation, adaptation, correction and series briefs preserve plausible anatomy, device proportions, scale, perspective and support, and reflow text while preserving letter shapes. Recognizable app controls remain native; marketing overlays stay visibly separate. Shared guidance records applicable intent and constraints briefly in `_definition.md`, then carries them into `prompt.json` (Markdown is not a render input). Direct briefs need no invented winner or fixed template; reference adaptations reason through the mechanism, transfer hypothesis and what must survive. `creatives make` returns this preparation hint before rendering. Choose the represented role and inspect existing Avatars before creating a new actor; a real founder or customer keeps their verified identity.
|
|
6149
|
+
|
|
6150
|
+
During continuations, the accepted image's screen content takes priority over geometry references unless explicitly changed. Laptop scenes receive guidance for a real laptop and consistent display, keyboard and hinge perspective.
|
|
6151
|
+
|
|
6144
6152
|
#### `baker canvas rerun <slug> [flags]` (deprecated)
|
|
6145
6153
|
|
|
6146
6154
|
Now `baker canvas run --slug <slug>`; `rerun` stays as a hidden alias for one release and prints a deprecation note. Every `canvas run` of a creative records a portable snapshot (the canvas JSON plus the local files it ingests: prompt blueprints, composition dirs, reference images) in durable storage, so `run --slug` can rebuild `src/creatives/<slug>/` in a workspace that never had it. A snapshot whose files are exactly the last one uploaded for the creative is reused without a request, and a file the store already holds is not uploaded again. Files the snapshot could not include (missing at run time, or oversized) are listed as warnings.
|
|
@@ -25,22 +25,22 @@ Subcommands:
|
|
|
25
25
|
Full guide: __tooling__/docs/tools/baker/canvas.md`
|
|
26
26
|
},
|
|
27
27
|
subCommands: {
|
|
28
|
-
run: () => import("./run-
|
|
29
|
-
rerun: () => import("./rerun-
|
|
30
|
-
validate: () => import("./validate-
|
|
31
|
-
critique: () => import("./critique-
|
|
28
|
+
run: () => import("./run-CECNWLTF.js").then((m) => m.runCommand),
|
|
29
|
+
rerun: () => import("./rerun-2OYJNDXC.js").then((m) => m.rerunCommand),
|
|
30
|
+
validate: () => import("./validate-KZUQKUNF.js").then((m) => m.validateCommand),
|
|
31
|
+
critique: () => import("./critique-GUXOLOES.js").then((m) => m.critiqueCommand),
|
|
32
32
|
"viewer-check": () => import("./viewer-check-45T2HLAH.js").then((m) => m.viewerCheckCommand),
|
|
33
|
-
catalog: () => import("./catalog-
|
|
33
|
+
catalog: () => import("./catalog-BWWRJ5RC.js").then((m) => m.catalogCommand),
|
|
34
34
|
inspect: () => import("./inspect-MCMUJPXU.js").then((m) => m.inspectCommand),
|
|
35
|
-
"scaffold-ad": () => import("./scaffold-ad-
|
|
36
|
-
"scaffold-video": () => import("./scaffold-video-
|
|
37
|
-
"scaffold-static-ad": () => import("./scaffold-static-ad-
|
|
38
|
-
"set-prompt": () => import("./set-prompt-
|
|
39
|
-
"sync-definition": () => import("./sync-definition-
|
|
40
|
-
stale: () => import("./stale-
|
|
35
|
+
"scaffold-ad": () => import("./scaffold-ad-WGYLP7HP.js").then((m) => m.scaffoldAdCommand),
|
|
36
|
+
"scaffold-video": () => import("./scaffold-video-63VDYVAU.js").then((m) => m.scaffoldVideoCommand),
|
|
37
|
+
"scaffold-static-ad": () => import("./scaffold-static-ad-Z54SETYF.js").then((m) => m.scaffoldStaticAdCommand),
|
|
38
|
+
"set-prompt": () => import("./set-prompt-VLLJUQQ3.js").then((m) => m.setPromptCommand),
|
|
39
|
+
"sync-definition": () => import("./sync-definition-STAFZTLS.js").then((m) => m.syncDefinitionCommand),
|
|
40
|
+
stale: () => import("./stale-T4S42ATQ.js").then((m) => m.staleCommand)
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
43
|
export {
|
|
44
44
|
canvasCommand
|
|
45
45
|
};
|
|
46
|
-
//# sourceMappingURL=canvas-
|
|
46
|
+
//# sourceMappingURL=canvas-LSQIZ4YK.js.map
|
|
@@ -2,8 +2,8 @@ import {
|
|
|
2
2
|
catalogView,
|
|
3
3
|
defaultRegistry,
|
|
4
4
|
generateCatalog
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-PHKQRZGR.js";
|
|
6
|
+
import "./chunk-ZIHEIVJC.js";
|
|
7
7
|
import "./chunk-W3B4BHQU.js";
|
|
8
8
|
import "./chunk-KFE3S63W.js";
|
|
9
9
|
import "./chunk-DGCUPJZD.js";
|
|
@@ -62,4 +62,4 @@ var catalogCommand = defineCommand({
|
|
|
62
62
|
export {
|
|
63
63
|
catalogCommand
|
|
64
64
|
};
|
|
65
|
-
//# sourceMappingURL=catalog-
|
|
65
|
+
//# sourceMappingURL=catalog-BWWRJ5RC.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
languageTag
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-W2KF4LZL.js";
|
|
4
4
|
import {
|
|
5
5
|
parseRefExpr
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
7
7
|
import {
|
|
8
8
|
AWARENESS_VALUES
|
|
9
9
|
} from "./chunk-5HYSKH77.js";
|
|
@@ -301,4 +301,4 @@ export {
|
|
|
301
301
|
buildInitialRunRecord,
|
|
302
302
|
buildFailedRunRecord
|
|
303
303
|
};
|
|
304
|
-
//# sourceMappingURL=chunk-
|
|
304
|
+
//# sourceMappingURL=chunk-CCTB7IA7.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
finalOutputLabelsFromCanvas,
|
|
3
3
|
parseDefinitionStrategyFields
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-CCTB7IA7.js";
|
|
5
5
|
import {
|
|
6
6
|
readRenderState
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WHIPHGWI.js";
|
|
8
8
|
import {
|
|
9
9
|
STATIC_AD_ROLE,
|
|
10
10
|
formatOfAdaptId,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
isSignatureLine,
|
|
13
13
|
sameTag,
|
|
14
14
|
seriesMemberAd
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-W2KF4LZL.js";
|
|
16
16
|
import {
|
|
17
17
|
fetchRunRecord
|
|
18
18
|
} from "./chunk-3YOFT3AP.js";
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
nodesWithRole,
|
|
32
32
|
relaidPictureRole,
|
|
33
33
|
rolesById
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
35
35
|
import {
|
|
36
36
|
isAdSpec,
|
|
37
37
|
readAdSpec
|
|
@@ -506,4 +506,4 @@ export {
|
|
|
506
506
|
writeSeriesMemberCanvas,
|
|
507
507
|
seriesRunHints
|
|
508
508
|
};
|
|
509
|
-
//# sourceMappingURL=chunk-
|
|
509
|
+
//# sourceMappingURL=chunk-DGICXFK4.js.map
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
import {
|
|
6
6
|
leadVersion,
|
|
7
7
|
writeSeriesMemberCanvas
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-DGICXFK4.js";
|
|
9
9
|
import {
|
|
10
10
|
definitionFieldsOf,
|
|
11
11
|
setDefinitionFields,
|
|
@@ -89,4 +89,4 @@ export {
|
|
|
89
89
|
makeSeriesAd,
|
|
90
90
|
seriesMadeEnvelope
|
|
91
91
|
};
|
|
92
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
//# sourceMappingURL=chunk-ICGLN6VO.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
loadCompositionMeta
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PHKQRZGR.js";
|
|
4
4
|
import {
|
|
5
5
|
parseRefExpr
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveAdaptFormats
|
|
9
9
|
} from "./chunk-CHSNHVYF.js";
|
|
@@ -93,4 +93,4 @@ async function outputRatioWarningsFor(canvas, canvasPath) {
|
|
|
93
93
|
export {
|
|
94
94
|
outputRatioWarningsFor
|
|
95
95
|
};
|
|
96
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
//# sourceMappingURL=chunk-MCVASJR5.js.map
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
topologicalLayers,
|
|
21
21
|
validateCanvas,
|
|
22
22
|
validateCanvasDeep
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
24
24
|
import {
|
|
25
25
|
remoteCacheEnabledFromEnv
|
|
26
26
|
} from "./chunk-W3B4BHQU.js";
|
|
@@ -5186,4 +5186,4 @@ export {
|
|
|
5186
5186
|
defaultRegistry,
|
|
5187
5187
|
createEngineFromEnv
|
|
5188
5188
|
};
|
|
5189
|
-
//# sourceMappingURL=chunk-
|
|
5189
|
+
//# sourceMappingURL=chunk-PHKQRZGR.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
REF_PREFIX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
4
4
|
|
|
5
5
|
// src/commands/canvas/node-preview.ts
|
|
6
6
|
var MAX_PARAMS_PREVIEW_LENGTH = 4e3;
|
|
@@ -57,4 +57,4 @@ ${body}` : header || body || compactJson(record);
|
|
|
57
57
|
export {
|
|
58
58
|
nodeParamsPreview
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=chunk-
|
|
60
|
+
//# sourceMappingURL=chunk-PZ7EPJRF.js.map
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import {
|
|
2
2
|
nodeParamsPreview
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PZ7EPJRF.js";
|
|
4
4
|
import {
|
|
5
5
|
creativeSlugFromCanvasPath,
|
|
6
6
|
parseDefinitionSeriesPlace,
|
|
7
7
|
parseDefinitionSourceFields,
|
|
8
8
|
parseDefinitionStrategyFields
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CCTB7IA7.js";
|
|
10
10
|
import {
|
|
11
11
|
prepareCanvas
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-W2KF4LZL.js";
|
|
13
13
|
import {
|
|
14
14
|
BackendClient
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-PHKQRZGR.js";
|
|
16
16
|
import {
|
|
17
17
|
nodeDependencies
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
19
19
|
import {
|
|
20
20
|
requireCredentialsFromEnv
|
|
21
21
|
} from "./chunk-W3B4BHQU.js";
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
resolveCanvasPath,
|
|
205
205
|
syncDefinitionCommand
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-QDSSRRI2.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
latestVersion
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WHIPHGWI.js";
|
|
4
4
|
import {
|
|
5
5
|
canvasOutputsRoot
|
|
6
6
|
} from "./chunk-DZSIUEGH.js";
|
|
@@ -16,4 +16,4 @@ async function versionOf(slug, run) {
|
|
|
16
16
|
export {
|
|
17
17
|
versionOf
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=chunk-
|
|
19
|
+
//# sourceMappingURL=chunk-QUST75OM.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
nodeParamsPreview
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PZ7EPJRF.js";
|
|
4
4
|
import {
|
|
5
5
|
outputRatioWarningsFor
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-MCVASJR5.js";
|
|
7
7
|
import {
|
|
8
8
|
waitForSheet
|
|
9
9
|
} from "./chunk-WN4KX7GE.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
variantImage,
|
|
31
31
|
versionRun,
|
|
32
32
|
writeSeriesMemberCanvas
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-DGICXFK4.js";
|
|
34
34
|
import {
|
|
35
35
|
buildFailedRunRecord,
|
|
36
36
|
buildInitialRunRecord,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
finalFiles,
|
|
40
40
|
finalOutputLabelsFromCanvas,
|
|
41
41
|
nodeOutputsToRecord
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-CCTB7IA7.js";
|
|
43
43
|
import {
|
|
44
44
|
clearLegacyDirtyMarker,
|
|
45
45
|
readRenderState,
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
recordReviewOutcome,
|
|
49
49
|
recordSeriesLeadRun,
|
|
50
50
|
recordSnapshot
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-WHIPHGWI.js";
|
|
52
52
|
import {
|
|
53
53
|
BRAND_LOGO_ROLE,
|
|
54
54
|
CLAIMS_MODEL,
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
uncastPeople,
|
|
77
77
|
wireNamedPeople,
|
|
78
78
|
wireProofBadges
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-W2KF4LZL.js";
|
|
80
80
|
import {
|
|
81
81
|
advanceDefinitionStatus
|
|
82
82
|
} from "./chunk-3ACMDRSE.js";
|
|
@@ -118,7 +118,7 @@ import {
|
|
|
118
118
|
createEngineFromEnv,
|
|
119
119
|
resolveConcurrency,
|
|
120
120
|
ulid
|
|
121
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-PHKQRZGR.js";
|
|
122
122
|
import {
|
|
123
123
|
BackendClient,
|
|
124
124
|
LOGO_COMPOSITE_ROLE,
|
|
@@ -140,7 +140,7 @@ import {
|
|
|
140
140
|
regenerateTargets,
|
|
141
141
|
rolesById,
|
|
142
142
|
staticMasterFormat
|
|
143
|
-
} from "./chunk-
|
|
143
|
+
} from "./chunk-ZIHEIVJC.js";
|
|
144
144
|
import {
|
|
145
145
|
requireCredentialsFromEnv
|
|
146
146
|
} from "./chunk-W3B4BHQU.js";
|
|
@@ -2102,6 +2102,10 @@ function acceptRepair(before, answer) {
|
|
|
2102
2102
|
const now = AdSpecSchema.safeParse(spec);
|
|
2103
2103
|
if (!was.success || !now.success) return null;
|
|
2104
2104
|
if (JSON.stringify(was.data) === JSON.stringify(now.data)) return null;
|
|
2105
|
+
for (const key of ["concept", "mechanism", "message", "brand"]) {
|
|
2106
|
+
if (JSON.stringify(was.data[key]) !== JSON.stringify(now.data[key])) return null;
|
|
2107
|
+
}
|
|
2108
|
+
if (was.data.native && was.data.native.surface !== now.data.native?.surface) return null;
|
|
2105
2109
|
const kept = printedWords(now.data);
|
|
2106
2110
|
if (!printedWords(was.data).every((text) => kept.includes(text))) return null;
|
|
2107
2111
|
return { changed: parsed.data.changed, spec };
|
|
@@ -2117,6 +2121,8 @@ function buildSpecRepairPrompt(spec, findings, schema) {
|
|
|
2117
2121
|
"- A rating or stars shown with no source: name the source only if the spec already states one anywhere; otherwise drop the stars or the rating. Never invent a source, a number or a claim.",
|
|
2118
2122
|
"- A native screen's layout (where its headline, bubbles or cards sit, what it shows) is changed in its `native` block.",
|
|
2119
2123
|
"- Keep every line of copy word for word: never reword, shorten or drop one. Keep the schema, the brand and everything the defects do not touch.",
|
|
2124
|
+
"- Preserve `concept`, `mechanism`, `message` and `brand` exactly, including the CTA colour. Fix how the ad executes its idea; never change why it works or remove its load-bearing elements to make a defect pass.",
|
|
2125
|
+
"- Keep a native screen on the same `native.surface`. Notes stays Notes, a review stays on its review platform. Change its layout or content only; never replace it with a physical document or a generic ad.",
|
|
2120
2126
|
"",
|
|
2121
2127
|
'Reply with only this JSON, naming only the fields you replace, each by its dotted path in the spec ("scene.layout", "references", "copy.2.position", "native.messages"), with its whole new value: {"changed": "<one plain sentence a marketer reads: what you changed and why>", "set": [{"path": "<dotted path>", "value": <its new value>}]}',
|
|
2122
2128
|
"",
|
|
@@ -3144,4 +3150,4 @@ export {
|
|
|
3144
3150
|
executeCanvasRun,
|
|
3145
3151
|
buildBackendClient
|
|
3146
3152
|
};
|
|
3147
|
-
//# sourceMappingURL=chunk-
|
|
3153
|
+
//# sourceMappingURL=chunk-U6GDJF7Y.js.map
|