@shop-os/modelkit 0.2.21 → 0.2.22
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 +19 -0
- package/dist/catalog.cjs +33 -14
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.js +33 -14
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +33 -14
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +33 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,6 +9,25 @@ header in the release PR.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [0.2.22] - Unreleased
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- `constraints.prompt.maxChars` on every bundled row with a documented prompt limit, so Studio accepts prompts longer than its 5,000-character default where the model takes them. Each row keeps its reference syntax (`numbered`, or `caption` on the Gemini rows):
|
|
16
|
+
- `seedance-2.0`, `seedance-2.0-fast`, `seedance-2.5`: 30000. BytePlus caps the prompt at 10,000 tokens; 30,000 characters assumes English prompts at about 3 characters per token, with margin. A CJK prompt can reach the token limit sooner.
|
|
17
|
+
- `gpt-image-2`, `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst`: 32000 (OpenAI images API: 32,000 characters for GPT image models).
|
|
18
|
+
- `flux-2-pro`: 32768 (Prodia schema `maxLength`).
|
|
19
|
+
- `minimax-h3`, `minimax-h3-max`, `minimax-h3-reference`, `minimax-h3-max-reference`: 50000 (fal schema `maxLength` 50,000).
|
|
20
|
+
- `gemini-3-pro-image-preview`, `gemini-3.1-flash-image-preview`, `gemini-3.1-flash-lite-image`, `gemini-omni-flash`, `gemini-omni-1.1-flash`: 50000. Their token budgets are far above this; 50,000 is cowork's global prompt ceiling.
|
|
21
|
+
- Unchanged: `kling-2.5`, `kling-3.0`, `kling-v3-omni-video` at 2500 and `veo-3.1` at 3000. No limit on `grok-imagine`, `muse-image-1.0`, `seedream-5-0-pro` or any other row without a documented one, so Studio keeps its 5,000 default there.
|
|
22
|
+
|
|
23
|
+
### Live rows to edit after publish
|
|
24
|
+
Apps read the pro-backend `model_catalog` rows, not this file. Edit an environment's rows only after the companion cowork + spacelab-mcp change (Studio's global prompt ceiling raised from 5,000 to 50,000) is deployed there. Before that, cowork's projection would report `maxPromptChars: 30000`, while its request schema and spacelab-mcp still refuse anything over 5,000. After pro-backend is on 0.2.22, in each environment:
|
|
25
|
+
- `seedance-2.0`, `seedance-2.0-fast`, `seedance-2.5`: `constraints.prompt` → `{ "referenceSyntax": "numbered", "maxChars": 30000 }` (assumes English prompts).
|
|
26
|
+
- `gpt-image-2`, `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst`: `constraints.prompt` → `{ "referenceSyntax": "numbered", "maxChars": 32000 }`.
|
|
27
|
+
- `flux-2-pro`: `constraints.prompt` → `{ "referenceSyntax": "numbered", "maxChars": 32768 }`.
|
|
28
|
+
- `minimax-h3`, `minimax-h3-max`, `minimax-h3-reference`, `minimax-h3-max-reference`: `constraints.prompt` → `{ "referenceSyntax": "numbered", "maxChars": 50000 }`.
|
|
29
|
+
- `gemini-3-pro-image-preview`, `gemini-3.1-flash-image-preview`, `gemini-3.1-flash-lite-image`, `gemini-omni-flash`, `gemini-omni-1.1-flash`: `constraints.prompt` → `{ "referenceSyntax": "caption", "maxChars": 50000 }`.
|
|
30
|
+
|
|
12
31
|
## [0.2.21] - Unreleased
|
|
13
32
|
|
|
14
33
|
### Added
|
package/dist/catalog.cjs
CHANGED
|
@@ -217,13 +217,16 @@ var GEMINI_RATIOS = [
|
|
|
217
217
|
"5:4",
|
|
218
218
|
"adaptive"
|
|
219
219
|
];
|
|
220
|
-
|
|
220
|
+
var GEMINI_PROMPT_MAX_CHARS = 5e4;
|
|
221
|
+
var GPT_IMAGE_PROMPT = { referenceSyntax: "numbered", maxChars: 32e3 };
|
|
222
|
+
function geminiImage(id, label, aliases, sizes, display, exposure, references, promptMaxChars) {
|
|
223
|
+
const prompt = { referenceSyntax: "caption" };
|
|
224
|
+
if (promptMaxChars !== void 0) prompt.maxChars = promptMaxChars;
|
|
221
225
|
const constraints = {
|
|
222
226
|
aspectRatios: [...GEMINI_RATIOS],
|
|
223
227
|
sizes,
|
|
224
228
|
supports: ["safetySettings", "temperature"],
|
|
225
|
-
|
|
226
|
-
prompt: { referenceSyntax: "caption" }
|
|
229
|
+
prompt
|
|
227
230
|
};
|
|
228
231
|
if (references !== void 0) constraints.references = references;
|
|
229
232
|
const model = {
|
|
@@ -255,7 +258,8 @@ var IMAGE_MODELS = [
|
|
|
255
258
|
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
256
259
|
},
|
|
257
260
|
["cowork", "space_builder"],
|
|
258
|
-
{ images: 14 }
|
|
261
|
+
{ images: 14 },
|
|
262
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
259
263
|
),
|
|
260
264
|
geminiImage(
|
|
261
265
|
"gemini-3.1-flash-image-preview",
|
|
@@ -269,7 +273,8 @@ var IMAGE_MODELS = [
|
|
|
269
273
|
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
270
274
|
},
|
|
271
275
|
["cowork", "space_builder"],
|
|
272
|
-
{ images: 14 }
|
|
276
|
+
{ images: 14 },
|
|
277
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
273
278
|
),
|
|
274
279
|
geminiImage(
|
|
275
280
|
"gemini-3.1-flash-lite-image",
|
|
@@ -282,7 +287,8 @@ var IMAGE_MODELS = [
|
|
|
282
287
|
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png"
|
|
283
288
|
},
|
|
284
289
|
["cowork", "space_builder"],
|
|
285
|
-
{ images: 14 }
|
|
290
|
+
{ images: 14 },
|
|
291
|
+
GEMINI_PROMPT_MAX_CHARS
|
|
286
292
|
),
|
|
287
293
|
// trigger-workflows validates 1K only; pricing seeds 2K/4K rows so allow all three.
|
|
288
294
|
geminiImage(
|
|
@@ -320,7 +326,8 @@ var IMAGE_MODELS = [
|
|
|
320
326
|
sizes: ["1K", "2K", "4K"],
|
|
321
327
|
qualityOptions: ["auto", "low", "medium", "high"],
|
|
322
328
|
references: { images: 16 },
|
|
323
|
-
supports: ["quality", "count", "outputFormat"]
|
|
329
|
+
supports: ["quality", "count", "outputFormat"],
|
|
330
|
+
prompt: GPT_IMAGE_PROMPT
|
|
324
331
|
},
|
|
325
332
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
326
333
|
usage: { ...IMAGE_USAGE, slug: "gpt" },
|
|
@@ -355,7 +362,8 @@ var IMAGE_MODELS = [
|
|
|
355
362
|
sizes: ["1K", "2K", "4K"],
|
|
356
363
|
qualityOptions: ["auto", "low", "medium", "high", "xhigh", "max"],
|
|
357
364
|
references: { images: 16 },
|
|
358
|
-
supports: ["quality", "count", "outputFormat"]
|
|
365
|
+
supports: ["quality", "count", "outputFormat"],
|
|
366
|
+
prompt: GPT_IMAGE_PROMPT
|
|
359
367
|
},
|
|
360
368
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
361
369
|
usage: { ...IMAGE_USAGE },
|
|
@@ -389,7 +397,8 @@ var IMAGE_MODELS = [
|
|
|
389
397
|
sizes: ["1K", "2K", "4K"],
|
|
390
398
|
qualityOptions: ["auto", "low", "medium", "high", "xhigh", "max"],
|
|
391
399
|
references: { images: 16 },
|
|
392
|
-
supports: ["quality", "count", "outputFormat"]
|
|
400
|
+
supports: ["quality", "count", "outputFormat"],
|
|
401
|
+
prompt: GPT_IMAGE_PROMPT
|
|
393
402
|
},
|
|
394
403
|
defaults: { size: "1K", aspectRatio: "adaptive", quality: "auto" },
|
|
395
404
|
usage: { ...IMAGE_USAGE },
|
|
@@ -512,7 +521,9 @@ var IMAGE_MODELS = [
|
|
|
512
521
|
sizes: ["1K"],
|
|
513
522
|
references: { images: 8 },
|
|
514
523
|
// flux-2-pro's job type always returns image/png; only the seed is forwarded.
|
|
515
|
-
supports: ["seed"]
|
|
524
|
+
supports: ["seed"],
|
|
525
|
+
// Prodia's flux-2-pro schema gives the prompt a maxLength of 32,768.
|
|
526
|
+
prompt: { referenceSyntax: "numbered", maxChars: 32768 }
|
|
516
527
|
},
|
|
517
528
|
defaults: { size: "1K", aspectRatio: "1:1" },
|
|
518
529
|
usage: { ...IMAGE_USAGE },
|
|
@@ -1314,6 +1325,9 @@ var H3_REFERENCE_RATIOS = ["adaptive", ...H3_RATIOS];
|
|
|
1314
1325
|
var NEGATIVE_PROMPT = "blur, distort, and low quality";
|
|
1315
1326
|
var FRAMES_EXCLUDE_REFERENCES = { framesExcludeReferences: true };
|
|
1316
1327
|
var KLING_PROMPT = { referenceSyntax: "numbered", maxChars: 2500 };
|
|
1328
|
+
var SEEDANCE_PROMPT = { referenceSyntax: "numbered", maxChars: 3e4 };
|
|
1329
|
+
var H3_PROMPT = { referenceSyntax: "numbered", maxChars: 5e4 };
|
|
1330
|
+
var OMNI_PROMPT = { referenceSyntax: "caption", maxChars: 5e4 };
|
|
1317
1331
|
var BYTEDANCE_LOGO = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/3bba5d81-4e57-4e71-911b-cdfa05acca2c_compressed.png";
|
|
1318
1332
|
var GOOGLE_LOGO2 = "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/192485d2-a76a-4657-9c06-930b2c70badd_compressed.png";
|
|
1319
1333
|
var VIDEO_MODELS = [
|
|
@@ -1437,8 +1451,7 @@ var VIDEO_MODELS = [
|
|
|
1437
1451
|
references: { images: 6, videos: 1, videoSeconds: { max: 10 } },
|
|
1438
1452
|
sourceVideoSeconds: { max: 10 },
|
|
1439
1453
|
supports: [],
|
|
1440
|
-
|
|
1441
|
-
prompt: { referenceSyntax: "caption" },
|
|
1454
|
+
prompt: OMNI_PROMPT,
|
|
1442
1455
|
audio: "always"
|
|
1443
1456
|
},
|
|
1444
1457
|
defaults: {},
|
|
@@ -1475,8 +1488,7 @@ var VIDEO_MODELS = [
|
|
|
1475
1488
|
// First-to-last-frame interpolation: `<LAST_FRAME>` goes with `<FIRST_FRAME>`.
|
|
1476
1489
|
supports: ["videoExtension", "lastFrame"],
|
|
1477
1490
|
extension: { segmentSeconds: 10, maxTotalSeconds: 40 },
|
|
1478
|
-
|
|
1479
|
-
prompt: { referenceSyntax: "caption" },
|
|
1491
|
+
prompt: OMNI_PROMPT,
|
|
1480
1492
|
audio: "always"
|
|
1481
1493
|
},
|
|
1482
1494
|
defaults: {},
|
|
@@ -1515,6 +1527,7 @@ var VIDEO_MODELS = [
|
|
|
1515
1527
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1516
1528
|
// No seed: 2.x echoes it but does not honour it (two seeded runs differed, 2026-10-01).
|
|
1517
1529
|
supports: ["generateAudio", "lastFrame", "watermark"],
|
|
1530
|
+
prompt: SEEDANCE_PROMPT,
|
|
1518
1531
|
audio: "optional"
|
|
1519
1532
|
},
|
|
1520
1533
|
defaults: {
|
|
@@ -1556,6 +1569,7 @@ var VIDEO_MODELS = [
|
|
|
1556
1569
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1557
1570
|
// No seed: 2.x echoes it but does not honour it (two seeded runs differed, 2026-10-01).
|
|
1558
1571
|
supports: ["generateAudio", "lastFrame", "watermark"],
|
|
1572
|
+
prompt: SEEDANCE_PROMPT,
|
|
1559
1573
|
audio: "optional"
|
|
1560
1574
|
},
|
|
1561
1575
|
defaults: {
|
|
@@ -1597,6 +1611,7 @@ var VIDEO_MODELS = [
|
|
|
1597
1611
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1598
1612
|
// No seed: 2.x echoes it but does not honour it (two seeded runs differed, 2026-10-01).
|
|
1599
1613
|
supports: ["generateAudio", "lastFrame", "watermark", "taskType"],
|
|
1614
|
+
prompt: SEEDANCE_PROMPT,
|
|
1600
1615
|
audio: "optional"
|
|
1601
1616
|
},
|
|
1602
1617
|
defaults: {
|
|
@@ -1758,6 +1773,7 @@ var VIDEO_MODELS = [
|
|
|
1758
1773
|
// fal's image-to-video endpoint has no aspect_ratio; the frame sets it.
|
|
1759
1774
|
ratioIgnoredWith: ["firstFrame"],
|
|
1760
1775
|
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"],
|
|
1776
|
+
prompt: H3_PROMPT,
|
|
1761
1777
|
audio: "always"
|
|
1762
1778
|
},
|
|
1763
1779
|
defaults: {
|
|
@@ -1791,6 +1807,7 @@ var VIDEO_MODELS = [
|
|
|
1791
1807
|
// fal's image-to-video endpoint has no aspect_ratio; the frame sets it.
|
|
1792
1808
|
ratioIgnoredWith: ["firstFrame"],
|
|
1793
1809
|
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"],
|
|
1810
|
+
prompt: H3_PROMPT,
|
|
1794
1811
|
audio: "always"
|
|
1795
1812
|
},
|
|
1796
1813
|
defaults: {
|
|
@@ -1832,6 +1849,7 @@ var VIDEO_MODELS = [
|
|
|
1832
1849
|
videoSeconds: { min: 2, max: 15, total: 15 }
|
|
1833
1850
|
},
|
|
1834
1851
|
supports: ["seed", "promptExpansion", "safetyChecker"],
|
|
1852
|
+
prompt: H3_PROMPT,
|
|
1835
1853
|
audio: "always"
|
|
1836
1854
|
},
|
|
1837
1855
|
defaults: {
|
|
@@ -1875,6 +1893,7 @@ var VIDEO_MODELS = [
|
|
|
1875
1893
|
videoSeconds: { min: 2, max: 15, total: 15 }
|
|
1876
1894
|
},
|
|
1877
1895
|
supports: ["seed", "promptExpansion", "safetyChecker"],
|
|
1896
|
+
prompt: H3_PROMPT,
|
|
1878
1897
|
audio: "always"
|
|
1879
1898
|
},
|
|
1880
1899
|
defaults: {
|