@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-IWPAXJC3.js";
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 openai/gpt-5.4-image-2 \u2014 photo-realistic, cleanest text rendering. 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.",
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 openai/gpt-5.4-image-2). One of: ${MODEL_LIST.join(", ")}`,
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: openai/gpt-5.4-image-2 (default \u2014 photoreal, cleanest text, best for ad/landing reproduction), google/gemini-3-pro-image-preview (Nano Banana Pro), google/gemini-3.5-flash & google/gemini-3.1-flash-image-preview (fast, extreme aspect ratios), 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 google/gemini-3-pro-image-preview --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]]'"
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 openai/gpt-5.4-image-2)", required: false },
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: {