@shop-os/modelkit 0.1.9 → 0.1.10

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,7 +9,22 @@ header in the release PR.
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
- ## [0.1.9] - unreleased (publish pending)
12
+ ## [0.1.10] - unreleased (publish pending)
13
+
14
+ ### Added
15
+ - Vendor logos on the ByteDance rows (Seedream 5 Pro, Seedance 2.0 Fast, Seedance 2.5) and the
16
+ Google rows that lacked one (Omni 1.1, Lyria 3). Rows without a logo are the picker's job to
17
+ cover with a provider mark.
18
+
19
+ ### Fixed
20
+ - `usage.slug: "grok"` sits on the `grok-imagine` row; 0.1.9 shipped it on `kling-2.5` by mistake.
21
+ - **0.1.9 merged the chat stream tuning into every text call.** Text rows carried it as
22
+ `providerOptions` and `defaults.temperature`, which the kit merges under the caller's options, so
23
+ Space Builder text-gen started sending Anthropic thinking budgets and Kimi temperature 1. The
24
+ tuning now lives in `display.chat` (`providerOptions`, `temperature`), which the kit never sends;
25
+ `capabilities.reasoning` stays. Consumers on 0.1.9 should move to 0.1.10.
26
+
27
+ ## [0.1.9] - 2026-09-12
13
28
 
14
29
  ### Added
15
30
  - `display.sortOrder`: pickers show lower values first, then catalog order; set it to surface a
@@ -153,8 +168,9 @@ First publish, renamed from `@shop-os/model-sdk`.
153
168
  - Keys per tier (pro, enterprise with per-provider fallback); one retry classifier, one error
154
169
  type, one usage event with the canonical id.
155
170
 
156
- [Unreleased]: https://github.com/Shop-OS/shopos-backend-ts/compare/modelkit-0.1.9...dev
157
- [0.1.9]: https://github.com/Shop-OS/shopos-backend-ts/compare/modelkit-0.1.8...dev
171
+ [Unreleased]: https://github.com/Shop-OS/shopos-backend-ts/compare/modelkit-0.1.10...dev
172
+ [0.1.10]: https://github.com/Shop-OS/shopos-backend-ts/compare/f17e822e2...dev
173
+ [0.1.9]: https://github.com/Shop-OS/shopos-backend-ts/compare/1958a5615...dev
158
174
  [0.1.8]: https://github.com/Shop-OS/shopos-backend-ts/commit/9661a109d
159
175
  [0.1.7]: https://github.com/Shop-OS/shopos-backend-ts/commit/2d3d19ac2
160
176
  [0.1.6]: https://github.com/Shop-OS/shopos-backend-ts/commit/f67fee08f
package/dist/catalog.cjs CHANGED
@@ -389,6 +389,7 @@ var IMAGE_MODELS = [
389
389
  pricingKind: "image_size",
390
390
  display: {
391
391
  provider: "bytedance",
392
+ logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png",
392
393
  description: "ByteDance Seedream 5.0 Pro text-to-image and multi-reference image-to-image (up to 10 inputs) with region editing; outputs 1K, 1.5K, or 2K."
393
394
  },
394
395
  capabilities: { ...IMAGE_GENERATE_EDIT }
@@ -594,6 +595,7 @@ var IMAGE_MODELS = [
594
595
  ];
595
596
 
596
597
  // src/catalog/other.ts
598
+ var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
597
599
  var OTHER_MODELS = [
598
600
  {
599
601
  id: "lyria-3-clip-preview",
@@ -614,6 +616,7 @@ var OTHER_MODELS = [
614
616
  pricingKind: "flat",
615
617
  display: {
616
618
  provider: "google",
619
+ logo: GOOGLE_LOGO,
617
620
  description: "Google Lyria 3 Clip short music clips, loops, and previews; takes text and up to 10 image prompts and returns a fixed 30-second MP3 plus lyrics."
618
621
  },
619
622
  capabilities: {}
@@ -636,6 +639,7 @@ var OTHER_MODELS = [
636
639
  pricingKind: "flat",
637
640
  display: {
638
641
  provider: "google",
642
+ logo: GOOGLE_LOGO,
639
643
  description: "Google Lyria 3 Pro flagship music model for full-length songs with verses, choruses, and bridges; takes text and up to 10 image prompts and returns MP3 plus lyrics."
640
644
  },
641
645
  capabilities: {}
@@ -861,9 +865,9 @@ var TEXT_MODELS = [
861
865
  }
862
866
  }),
863
867
  text("gpt-5.6-luna", "GPT-5.6 Luna", "gpt-5.6-luna", {
864
- providerOptions: OPENAI_REASONING,
865
868
  exposure: "catalog",
866
869
  display: {
870
+ chat: { providerOptions: OPENAI_REASONING },
867
871
  provider: "openai",
868
872
  costTier: 1,
869
873
  description: "OpenAI GPT-5.6 Luna cost-optimized tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
@@ -877,9 +881,9 @@ var TEXT_MODELS = [
877
881
  }
878
882
  }),
879
883
  text("gpt-5.6-terra", "GPT-5.6 Terra", "gpt-5.6-terra", {
880
- providerOptions: OPENAI_REASONING,
881
884
  exposure: "catalog",
882
885
  display: {
886
+ chat: { providerOptions: OPENAI_REASONING },
883
887
  provider: "openai",
884
888
  costTier: 2,
885
889
  description: "OpenAI GPT-5.6 Terra balanced tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
@@ -893,9 +897,9 @@ var TEXT_MODELS = [
893
897
  }
894
898
  }),
895
899
  text("gpt-5.6-sol", "GPT-5.6 Sol", "gpt-5.6-sol", {
896
- providerOptions: OPENAI_REASONING,
897
900
  exposure: "catalog",
898
901
  display: {
902
+ chat: { providerOptions: OPENAI_REASONING },
899
903
  provider: "openai",
900
904
  costTier: 3,
901
905
  description: "OpenAI GPT-5.6 Sol flagship tier of the GPT-5.6 reasoning family; text and image input, 1.05M-token context."
@@ -921,7 +925,6 @@ var TEXT_MODELS = [
921
925
  }),
922
926
  // Anthropic retired the dated 4.0 ids; callers that still send them get 4.6.
923
927
  text("claude-sonnet-4-6", "Claude Sonnet 4.6", "claude-sonnet-4-6", {
924
- providerOptions: ANTHROPIC_THINKING,
925
928
  exposure: "catalog",
926
929
  aliases: [
927
930
  "claude-sonnet-4.6",
@@ -930,6 +933,7 @@ var TEXT_MODELS = [
930
933
  "claude-sonnet-4-20250514"
931
934
  ],
932
935
  display: {
936
+ chat: { providerOptions: ANTHROPIC_THINKING },
933
937
  provider: "anthropic",
934
938
  costTier: 2,
935
939
  description: "Anthropic Claude Sonnet 4.6 (legacy) balanced model; text and image input, 1M-token context."
@@ -943,9 +947,9 @@ var TEXT_MODELS = [
943
947
  }
944
948
  }),
945
949
  text("claude-sonnet-5", "Claude Sonnet 5", "claude-sonnet-5", {
946
- providerOptions: ANTHROPIC_ADAPTIVE,
947
950
  exposure: "catalog",
948
951
  display: {
952
+ chat: { providerOptions: ANTHROPIC_ADAPTIVE },
949
953
  provider: "anthropic",
950
954
  costTier: 3,
951
955
  description: "Anthropic Claude Sonnet 5 current balanced model; text and image input, 1M-token context."
@@ -959,10 +963,10 @@ var TEXT_MODELS = [
959
963
  }
960
964
  }),
961
965
  text("claude-opus-4-8", "Claude Opus 4.8", "claude-opus-4-8", {
962
- providerOptions: ANTHROPIC_ADAPTIVE,
963
966
  exposure: "catalog",
964
967
  aliases: ["claude-opus-4.8", "claude-opus-4", "claude-opus-4.0", "claude-opus-4-20250514"],
965
968
  display: {
969
+ chat: { providerOptions: ANTHROPIC_ADAPTIVE },
966
970
  provider: "anthropic",
967
971
  costTier: 3,
968
972
  description: "Anthropic Claude Opus 4.8 (legacy) frontier model; text and image input, 1M-token context."
@@ -976,10 +980,10 @@ var TEXT_MODELS = [
976
980
  }
977
981
  }),
978
982
  text("claude-haiku-4-5", "Claude Haiku 4.5", "claude-haiku-4-5", {
979
- providerOptions: ANTHROPIC_THINKING,
980
983
  exposure: "catalog",
981
984
  aliases: ["claude-haiku-4.5", "claude-haiku-4-5-20251001", "claude-haiku-4"],
982
985
  display: {
986
+ chat: { providerOptions: ANTHROPIC_THINKING },
983
987
  provider: "anthropic",
984
988
  costTier: 1,
985
989
  description: "Anthropic Claude Haiku 4.5 fast model with near-frontier intelligence; text and image input, 200K-token context."
@@ -1186,10 +1190,10 @@ var TEXT_MODELS = [
1186
1190
  // Flash rates (https://api-docs.deepseek.com/news/news260910/); the old id
1187
1191
  // stays an alias so stored selections keep resolving.
1188
1192
  text("deepseek-flash", "DeepSeek V4.1 Flash", "deepseek-flash", {
1189
- providerOptions: DEEPSEEK_THINKING,
1190
1193
  aliases: ["deepseek-v4-flash"],
1191
1194
  exposure: "catalog",
1192
1195
  display: {
1196
+ chat: { providerOptions: DEEPSEEK_THINKING },
1193
1197
  provider: "deepseek",
1194
1198
  costTier: 1,
1195
1199
  recommended: true,
@@ -1204,9 +1208,9 @@ var TEXT_MODELS = [
1204
1208
  }
1205
1209
  }),
1206
1210
  text("deepseek-v4-pro", "DeepSeek V4 Pro", "deepseek-v4-pro", {
1207
- providerOptions: DEEPSEEK_THINKING,
1208
1211
  exposure: "catalog",
1209
1212
  display: {
1213
+ chat: { providerOptions: DEEPSEEK_THINKING },
1210
1214
  provider: "deepseek",
1211
1215
  costTier: 2,
1212
1216
  description: "DeepSeek V4 Pro thinking/non-thinking text model with tool calls and JSON output (no vision); 1M-token context and up to 384K output tokens."
@@ -1236,9 +1240,9 @@ var TEXT_MODELS = [
1236
1240
  }),
1237
1241
  // Moonshot retired kimi-k2.5 on 2026-08-31 and no longer publishes its specs.
1238
1242
  text("kimi-k2.5", "Kimi K2.5", "kimi-k2.5", {
1239
- defaults: { temperature: 1 },
1240
1243
  exposure: "catalog",
1241
1244
  display: {
1245
+ chat: { temperature: 1 },
1242
1246
  provider: "moonshot",
1243
1247
  costTier: 2,
1244
1248
  description: "Moonshot Kimi K2.5; the provider retired the model on 2026-08-31 and calls now return a model-not-found error."
@@ -1246,9 +1250,9 @@ var TEXT_MODELS = [
1246
1250
  capabilities: {}
1247
1251
  }),
1248
1252
  text("kimi-k3", "Kimi K3", "kimi-k3", {
1249
- defaults: { temperature: 1 },
1250
1253
  exposure: "catalog",
1251
1254
  display: {
1255
+ chat: { temperature: 1 },
1252
1256
  provider: "moonshot",
1253
1257
  costTier: 2,
1254
1258
  description: "Moonshot Kimi K3 flagship model with native visual understanding and always-on thinking; text, image, and video input, 1M-token context."
@@ -1285,7 +1289,8 @@ var H3_RATIOS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16"];
1285
1289
  var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
1286
1290
  var NEGATIVE_PROMPT = "blur, distort, and low quality";
1287
1291
  var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
1288
- var GOOGLE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
1292
+ var BYTEDANCE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png";
1293
+ var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
1289
1294
  var VIDEO_MODELS = [
1290
1295
  {
1291
1296
  id: "veo-3.1",
@@ -1314,7 +1319,7 @@ var VIDEO_MODELS = [
1314
1319
  display: {
1315
1320
  provider: "google",
1316
1321
  description: "Google's highest-quality video generation model. Supports up to 4K resolution and 8-second clips with reference image conditioning.",
1317
- logo: GOOGLE_LOGO
1322
+ logo: GOOGLE_LOGO2
1318
1323
  },
1319
1324
  capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
1320
1325
  },
@@ -1406,7 +1411,7 @@ var VIDEO_MODELS = [
1406
1411
  display: {
1407
1412
  provider: "google",
1408
1413
  description: "Google's conversational video model with native audio, human support, and natural language editing. Aspect ratio only \u2014 resolution and duration are model-determined.",
1409
- logo: GOOGLE_LOGO
1414
+ logo: GOOGLE_LOGO2
1410
1415
  },
1411
1416
  capabilities: { acceptsSourceVideo: true }
1412
1417
  },
@@ -1431,6 +1436,7 @@ var VIDEO_MODELS = [
1431
1436
  pricingKind: "video_per_second",
1432
1437
  display: {
1433
1438
  provider: "google",
1439
+ logo: GOOGLE_LOGO2,
1434
1440
  description: "Google Gemini Omni Flash 1.1 conversational video generation and editing; text, image, and up to 10-second video input, 3-10 second output at up to 4K and 24 FPS."
1435
1441
  },
1436
1442
  capabilities: { acceptsSourceVideo: true }
@@ -1465,7 +1471,7 @@ var VIDEO_MODELS = [
1465
1471
  display: {
1466
1472
  provider: "bytedance",
1467
1473
  description: "High-quality AI video generation with reference image conditioning. Supports 4-15 second clips with human preprocessing.",
1468
- logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png"
1474
+ logo: BYTEDANCE_LOGO
1469
1475
  },
1470
1476
  capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
1471
1477
  },
@@ -1496,6 +1502,7 @@ var VIDEO_MODELS = [
1496
1502
  pricingKind: "video_per_second",
1497
1503
  display: {
1498
1504
  provider: "bytedance",
1505
+ logo: BYTEDANCE_LOGO,
1499
1506
  description: "Speed- and cost-optimized ByteDance Seedance 2.0 Fast; text plus image, video, and audio references to generate or edit 4-15 second clips."
1500
1507
  },
1501
1508
  capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
@@ -1528,6 +1535,7 @@ var VIDEO_MODELS = [
1528
1535
  pricingKind: "video_per_second",
1529
1536
  display: {
1530
1537
  provider: "bytedance",
1538
+ logo: BYTEDANCE_LOGO,
1531
1539
  description: "ByteDance Seedance 2.5 for long-form storytelling and omni-reference generation/editing; up to 50 reference assets and 4-30 second clips at up to 1080p."
1532
1540
  },
1533
1541
  capabilities: { acceptsSourceVideo: true, ...FRAMES_EXCLUDE_REFERENCES }
@@ -1552,7 +1560,7 @@ var VIDEO_MODELS = [
1552
1560
  },
1553
1561
  // No resolution default: xAI picks its own unless the caller asks.
1554
1562
  defaults: { durationSeconds: 8, aspectRatio: "16:9" },
1555
- usage: { unit: "reported_cost_usd", modality: "VIDEO" },
1563
+ usage: { unit: "reported_cost_usd", modality: "VIDEO", slug: "grok" },
1556
1564
  pricingKind: "video_per_second",
1557
1565
  display: {
1558
1566
  provider: "xai",
@@ -1582,7 +1590,7 @@ var VIDEO_MODELS = [
1582
1590
  cfgScale: 0.5,
1583
1591
  negativePrompt: NEGATIVE_PROMPT
1584
1592
  },
1585
- usage: { ...VIDEO_USAGE, slug: "grok" },
1593
+ usage: { ...VIDEO_USAGE },
1586
1594
  pricingKind: "video_per_second",
1587
1595
  display: {
1588
1596
  provider: "kuaishou",