@koda-sl/baker-cli 0.124.0 → 0.125.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/dist/cli.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
generateCatalog,
|
|
14
14
|
resolveConcurrency,
|
|
15
15
|
validateCanvasDeep
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-4EPKHOTF.js";
|
|
17
17
|
import {
|
|
18
18
|
csvOrJson,
|
|
19
19
|
daysAgoIso,
|
|
@@ -815,6 +815,9 @@ var winnersSearchRequestSchema = z2.object({
|
|
|
815
815
|
free_text_query: z2.string().max(500).optional(),
|
|
816
816
|
ref_ad_id: z2.string().optional(),
|
|
817
817
|
limit: z2.number().int().min(1).max(100).optional(),
|
|
818
|
+
// Pagination offset for infinite scroll. The browse view (no query) scrolls
|
|
819
|
+
// the whole library; a text/similar search scrolls its bounded ranked pool.
|
|
820
|
+
offset: z2.number().int().min(0).optional(),
|
|
818
821
|
max_per_advertiser: z2.number().int().min(1).max(50).optional(),
|
|
819
822
|
min_relevance: z2.number().min(0).max(1).optional(),
|
|
820
823
|
hard_filters: winnersHardFiltersSchema.optional(),
|
|
@@ -881,7 +884,14 @@ var winnersSearchResponseSchema = z2.object({
|
|
|
881
884
|
// Bucketed confidence of the top match; null on pure browse.
|
|
882
885
|
match_confidence: z2.enum(["high", "medium", "low"]).nullable(),
|
|
883
886
|
below_floor_count: z2.number().nullable(),
|
|
884
|
-
query_id: z2.string().nullable()
|
|
887
|
+
query_id: z2.string().nullable(),
|
|
888
|
+
// Pagination window for infinite scroll. `offset` echoes the request; `total`
|
|
889
|
+
// is how many winners this query+filters can scroll through; `has_more` is
|
|
890
|
+
// true when more pages exist. Null on an older ad-dna that predates paging —
|
|
891
|
+
// the dashboard then falls back to a single non-paged page.
|
|
892
|
+
offset: z2.number().nullable(),
|
|
893
|
+
total: z2.number().nullable(),
|
|
894
|
+
has_more: z2.boolean().nullable()
|
|
885
895
|
});
|
|
886
896
|
var advertiserPlatformSchema = z2.object({
|
|
887
897
|
platform: z2.string(),
|
|
@@ -20538,12 +20548,12 @@ var REFERENCE_MAX_EDGE = 1536;
|
|
|
20538
20548
|
var MODEL_LIST = [...IMAGE_GENERATE_MODELS];
|
|
20539
20549
|
registerSchema({
|
|
20540
20550
|
command: "images.generate",
|
|
20541
|
-
description: "Generate an image with AI (OpenRouter image models) and ingest it into the library. Default model
|
|
20551
|
+
description: "Generate an image with AI (OpenRouter image models) and ingest it into the library. Default model google/gemini-3.1-flash-image-preview (Nano Banana flash) \u2014 fast iteration, reference editing, extreme aspect ratios. Pass --reference with image URLs AND/OR local file paths (brand logo, product shot, Pinterest pin, cropped photo) to ground the generation on real imagery for on-brand, realistic output.",
|
|
20542
20552
|
args: {
|
|
20543
20553
|
prompt: { type: "string", description: "What to generate", required: true },
|
|
20544
20554
|
model: {
|
|
20545
20555
|
type: "string",
|
|
20546
|
-
description: `Model (default
|
|
20556
|
+
description: `Model (default google/gemini-3.1-flash-image-preview). One of: ${MODEL_LIST.join(", ")}`,
|
|
20547
20557
|
required: false,
|
|
20548
20558
|
enum: MODEL_LIST
|
|
20549
20559
|
},
|
|
@@ -20637,11 +20647,11 @@ async function resolveReferences(spec) {
|
|
|
20637
20647
|
var generateCommand = defineCommand109({
|
|
20638
20648
|
meta: {
|
|
20639
20649
|
name: "generate",
|
|
20640
|
-
description: "Generate an image with AI and store it in the library (cost-tracked per request via OpenRouter usage). Models mirror the canvas:
|
|
20650
|
+
description: "Generate an image with AI and store it in the library (cost-tracked per request via OpenRouter usage). Models mirror the canvas: google/gemini-3.1-flash-image-preview (Nano Banana flash \u2014 default, fast, extreme aspect ratios) & google/gemini-3.5-flash (fast), google/gemini-3-pro-image-preview (Nano Banana Pro \u2014 highest fidelity), openai/gpt-5.4-image-2 (photoreal, cleanest in-image text, best for ad/landing reproduction), recraft/recraft-v4.1-pro-vector (vector/SVG-style with palette control). The result is auto-ingested (describe + embed), so the next `baker images library` query finds it. Pass --reference with image URLs and/or local file paths (Pinterest, stock, brand assets, sandbox files) to ground generation in reality.\n\nExamples:\n baker images generate 'a friendly golden retriever sitting in a bright modern living room' --aspect-ratio 16:9\n baker images generate 'hero shot of a matte black water bottle on marble' --model openai/gpt-5.4-image-2 --image-size 2K\n baker images generate 'lifestyle photo matching this mood' --reference 'https://\u2026/ref1.jpg,https://\u2026/ref2.jpg'\n baker images generate 'put this product on a marble countertop, soft daylight' --reference './src/brand/logos/product.png,./refs/kitchen-mood.jpg'\n baker images generate 'flat geometric mascot, brand palette' --model recraft/recraft-v4.1-pro-vector --rgb-colors '[[10,10,10],[255,80,0]]'"
|
|
20641
20651
|
},
|
|
20642
20652
|
args: {
|
|
20643
20653
|
prompt: { type: "positional", description: "What to generate", required: false },
|
|
20644
|
-
model: { type: "string", description: "Model id (default
|
|
20654
|
+
model: { type: "string", description: "Model id (default google/gemini-3.1-flash-image-preview)", required: false },
|
|
20645
20655
|
"aspect-ratio": { type: "string", description: "Aspect ratio (default 1:1)", required: false },
|
|
20646
20656
|
"image-size": { type: "string", description: "1K (default) | 2K | 4K | 0.5K", required: false },
|
|
20647
20657
|
reference: {
|