@shop-os/modelkit 0.4.0 → 0.4.2

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/CHANGELOG.md CHANGED
@@ -9,6 +9,24 @@ header in the release PR.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [0.4.2] - Unreleased
13
+
14
+ ### Added
15
+ - `wan-3.0` (Wan 3) video row on the fal adapter (`alibaba/wan-3.0`), listed on `cowork` and `space_builder`. One row covers fal's three endpoints and the adapter picks one from the inputs: references (up to 10 images, 5 videos, 5 audio clips; 15 s of video and 15 s of audio in all) go to `/reference-to-video`, a first frame (optionally with a last frame) to `/image-to-video`, and a bare prompt to `/text-to-video`. 480p/720p/1080p, 2-30 s, `adaptive` plus five fixed ratios, switchable audio (default on), seed and the safety checker. Frames and references are exclusive (`framesExcludeReferences`), and a last frame needs a first frame (`lastFrameRequiresFirstFrame`): image-to-video requires `start_image_url`. Prompt expansion is left at fal's default (on); `file_url` / `web_url` and `enable_thinking` are not exposed.
16
+
17
+ ### Live rows
18
+ pro-backend's boot `seed-model-catalog` inserts the row listed once a consumer on 0.4.2 deploys; seed its `credit_pricing_video` rows first.
19
+
20
+ ## [0.4.1] - Unreleased
21
+
22
+ ### Changed
23
+ - `veo-3.1`, `veo-3.1-fast`, `veo-3.1-lite` and `gemini-omni-flash` are `deprecated`, replaced by `gemini-omni-1.1-flash`, with no exposure. Google shuts down their provider models (`veo-3.1-generate-preview`, `veo-3.1-fast-generate-preview`, `veo-3.1-lite-generate-preview`, `gemini-omni-flash-preview`) on 2026-10-22. The rows still resolve, so stored ids keep working until then.
24
+ - `gemini-3-pro-image-preview` sends `gemini-3-pro-image` and `gemini-3.1-flash-image-preview` sends `gemini-3.1-flash-image`: Google listed the preview endpoints for shutdown on 2026-06-25, and the GA ids cost the same. The catalog ids are unchanged, since they are pricing keys and stored model ids.
25
+ - `higgsfield-dop-preview` is priced `flat`: Higgsfield bills DoP per generation, a fixed-length clip with no duration knob.
26
+
27
+ ### Live rows
28
+ pro-backend's `apply-model-shutdowns` script (PR #1486) makes the same changes to the live `model_catalog` rows per environment, including clearing the deprecated rows' exposure.
29
+
12
30
  ## [0.4.0] - Unreleased
13
31
 
14
32
  ### Added
package/dist/catalog.cjs CHANGED
@@ -275,35 +275,43 @@ var IMAGE_MODELS = [
275
275
  GEMINI_PROMPT_MAX_CHARS,
276
276
  NANO_BANANA_2_1_RATIOS
277
277
  ),
278
- geminiImage(
279
- "gemini-3-pro-image-preview",
280
- "Nano Banana Pro",
281
- ["nb-pro"],
282
- ["1K", "2K", "4K"],
283
- {
284
- provider: "google",
285
- description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
286
- logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
287
- },
288
- ["cowork", "space_builder"],
289
- { images: 14 },
290
- GEMINI_PROMPT_MAX_CHARS
291
- ),
292
- geminiImage(
293
- "gemini-3.1-flash-image-preview",
294
- "Nano Banana 2",
295
- ["nb-2"],
296
- // Flash 3.1 is the only Gemini image model with the 512 tier.
297
- ["512", "1K", "2K", "4K"],
298
- {
299
- provider: "google",
300
- description: "Generate high-quality images at speed. Perfect for brainstorming, concept boards, concept testing, creative exploration, and large batch workflows.",
301
- logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
302
- },
303
- ["cowork", "space_builder"],
304
- { images: 14 },
305
- GEMINI_PROMPT_MAX_CHARS
306
- ),
278
+ // Google retired the -preview endpoints for the GA ids; the catalog ids stay because they
279
+ // are pricing keys and stored model ids.
280
+ {
281
+ ...geminiImage(
282
+ "gemini-3-pro-image-preview",
283
+ "Nano Banana Pro",
284
+ ["nb-pro"],
285
+ ["1K", "2K", "4K"],
286
+ {
287
+ provider: "google",
288
+ description: "Create stunning, production-quality visuals with exceptional realism, detail, and typography. Best for campaigns, e-commerce, product photography, and hero creatives.",
289
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
290
+ },
291
+ ["cowork", "space_builder"],
292
+ { images: 14 },
293
+ GEMINI_PROMPT_MAX_CHARS
294
+ ),
295
+ providerModelId: "gemini-3-pro-image"
296
+ },
297
+ {
298
+ ...geminiImage(
299
+ "gemini-3.1-flash-image-preview",
300
+ "Nano Banana 2",
301
+ ["nb-2"],
302
+ // Flash 3.1 is the only Gemini image model with the 512 tier.
303
+ ["512", "1K", "2K", "4K"],
304
+ {
305
+ provider: "google",
306
+ description: "Generate high-quality images at speed. Perfect for brainstorming, concept boards, concept testing, creative exploration, and large batch workflows.",
307
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
308
+ },
309
+ ["cowork", "space_builder"],
310
+ { images: 14 },
311
+ GEMINI_PROMPT_MAX_CHARS
312
+ ),
313
+ providerModelId: "gemini-3.1-flash-image"
314
+ },
307
315
  geminiImage(
308
316
  "gemini-3.1-flash-lite-image",
309
317
  "Nano Banana Lite",
@@ -1423,6 +1431,7 @@ var OMNI_RATIOS = ["16:9", "9:16"];
1423
1431
  var GROK_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3"];
1424
1432
  var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
1425
1433
  var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
1434
+ var WAN_RATIOS = ["adaptive", "16:9", "4:3", "1:1", "3:4", "9:16"];
1426
1435
  var NEGATIVE_PROMPT = "blur, distort, and low quality";
1427
1436
  var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
1428
1437
  var KLING_PROMPT = { referenceSyntax: "numbered", maxChars: 2500 };
@@ -1433,10 +1442,12 @@ var SEEDANCE_2_AUDIO = {
1433
1442
  audioMaxBytes: 15 * 1024 * 1024
1434
1443
  };
1435
1444
  var H3_PROMPT = { referenceSyntax: "numbered", maxChars: 5e4 };
1445
+ var WAN_PROMPT = { referenceSyntax: "numbered", maxChars: 2e4 };
1436
1446
  var OMNI_PROMPT = { referenceSyntax: "caption", maxChars: 5e4 };
1437
1447
  var BYTEDANCE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png";
1438
1448
  var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
1439
1449
  var VIDEO_MODELS = [
1450
+ // Google shuts down the Veo 3.1 previews and Omni Flash 1.0 on 2026-10-22.
1440
1451
  {
1441
1452
  id: "veo-3.1",
1442
1453
  aliases: [
@@ -1449,8 +1460,9 @@ var VIDEO_MODELS = [
1449
1460
  type: "video",
1450
1461
  adapter: "google-genai",
1451
1462
  providerModelId: "veo-3.1-generate-preview",
1452
- lifecycle: "active",
1453
- exposure: ["cowork", "space_builder"],
1463
+ lifecycle: "deprecated",
1464
+ replacedBy: "gemini-omni-1.1-flash",
1465
+ exposure: [],
1454
1466
  constraints: {
1455
1467
  aspectRatios: [...OMNI_RATIOS],
1456
1468
  resolutions: ["720p", "1080p", "4k"],
@@ -1485,7 +1497,8 @@ var VIDEO_MODELS = [
1485
1497
  type: "video",
1486
1498
  adapter: "google-genai",
1487
1499
  providerModelId: "veo-3.1-fast-generate-preview",
1488
- lifecycle: "active",
1500
+ lifecycle: "deprecated",
1501
+ replacedBy: "gemini-omni-1.1-flash",
1489
1502
  exposure: [],
1490
1503
  constraints: {
1491
1504
  aspectRatios: [...OMNI_RATIOS],
@@ -1515,7 +1528,8 @@ var VIDEO_MODELS = [
1515
1528
  type: "video",
1516
1529
  adapter: "google-genai",
1517
1530
  providerModelId: "veo-3.1-lite-generate-preview",
1518
- lifecycle: "active",
1531
+ lifecycle: "deprecated",
1532
+ replacedBy: "gemini-omni-1.1-flash",
1519
1533
  exposure: [],
1520
1534
  constraints: {
1521
1535
  aspectRatios: [...OMNI_RATIOS],
@@ -1546,8 +1560,9 @@ var VIDEO_MODELS = [
1546
1560
  type: "video",
1547
1561
  adapter: "google-genai",
1548
1562
  providerModelId: "gemini-omni-flash-preview",
1549
- lifecycle: "active",
1550
- exposure: ["cowork", "space_builder"],
1563
+ lifecycle: "deprecated",
1564
+ replacedBy: "gemini-omni-1.1-flash",
1565
+ exposure: [],
1551
1566
  constraints: {
1552
1567
  // 1.0 rejects `resolution`; it renders 720p. No defaults: the adapter
1553
1568
  // sends ratio and duration only when the caller set them, so a
@@ -2033,6 +2048,48 @@ var VIDEO_MODELS = [
2033
2048
  // references instead of the adapter silently dropping the frame.
2034
2049
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
2035
2050
  },
2051
+ {
2052
+ // One row for fal's three Wan 3.0 endpoints; the adapter picks text-, image- or
2053
+ // reference-to-video from the inputs. Each takes aspect_ratio, so none is ignored.
2054
+ // https://fal.ai/models/alibaba/wan-3.0/reference-to-video/api
2055
+ id: "wan-3.0",
2056
+ aliases: ["wan-3", "wan3"],
2057
+ label: "Wan 3",
2058
+ type: "video",
2059
+ adapter: "fal",
2060
+ providerModelId: "alibaba/wan-3.0",
2061
+ lifecycle: "active",
2062
+ exposure: ["cowork", "space_builder"],
2063
+ constraints: {
2064
+ aspectRatios: [...WAN_RATIOS],
2065
+ resolutions: ["480p", "720p", "1080p"],
2066
+ durations: { min: 2, max: 30 },
2067
+ durationPresets: [5, 10, 15, 30],
2068
+ references: {
2069
+ images: 10,
2070
+ videos: 5,
2071
+ audios: 5,
2072
+ videoSeconds: { total: 15 },
2073
+ audioSeconds: { total: 15 }
2074
+ },
2075
+ supports: ["seed", "lastFrame", "generateAudio", "safetyChecker"],
2076
+ prompt: WAN_PROMPT,
2077
+ audio: "optional"
2078
+ },
2079
+ defaults: {
2080
+ durationSeconds: 5,
2081
+ resolution: "1080p",
2082
+ aspectRatio: "adaptive",
2083
+ generateAudio: true
2084
+ },
2085
+ usage: { ...VIDEO_USAGE },
2086
+ pricingKind: "video_per_second",
2087
+ display: {
2088
+ provider: "alibaba",
2089
+ description: "Alibaba Wan 3 video model for text-to-video, image-to-video (start/end frame), and reference-to-video from up to 10 images, 5 videos and 5 audio clips, with native audio; 2-30 seconds at up to 1080p."
2090
+ },
2091
+ capabilities: { ...FRAMES_EXCLUDE_REFERENCES, lastFrameRequiresFirstFrame: true }
2092
+ },
2036
2093
  {
2037
2094
  // Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
2038
2095
  id: "kling-o1-v2v",
@@ -2102,7 +2159,8 @@ var VIDEO_MODELS = [
2102
2159
  },
2103
2160
  defaults: {},
2104
2161
  usage: { ...VIDEO_USAGE },
2105
- pricingKind: "video_per_second",
2162
+ // Higgsfield bills DoP per generation: a fixed-length clip with no duration knob.
2163
+ pricingKind: "flat",
2106
2164
  display: {
2107
2165
  provider: "higgsfield",
2108
2166
  description: "Higgsfield DOP image-to-video model; animates a required first-frame image from a text prompt with an optional last-frame image and motion controls."