@shop-os/modelkit 0.2.19 → 0.2.20
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 +14 -0
- package/dist/catalog.cjs +281 -161
- package/dist/catalog.cjs.map +1 -1
- package/dist/catalog.d.cts +25 -1
- package/dist/catalog.d.ts +25 -1
- package/dist/catalog.js +281 -161
- package/dist/catalog.js.map +1 -1
- package/dist/index.cjs +380 -268
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.js +380 -268
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/catalog.cjs
CHANGED
|
@@ -21,6 +21,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var catalog_entry_exports = {};
|
|
22
22
|
__export(catalog_entry_exports, {
|
|
23
23
|
ADAPTER_IDS: () => ADAPTER_IDS,
|
|
24
|
+
AUDIO_OUTPUTS: () => AUDIO_OUTPUTS,
|
|
24
25
|
Catalog: () => Catalog,
|
|
25
26
|
CatalogModelSchema: () => CatalogModelSchema,
|
|
26
27
|
CatalogModelSchemaBase: () => CatalogModelSchemaBase,
|
|
@@ -30,6 +31,7 @@ __export(catalog_entry_exports, {
|
|
|
30
31
|
MODELS: () => MODELS,
|
|
31
32
|
ModelKitError: () => ModelKitError,
|
|
32
33
|
OTHER_MODELS: () => OTHER_MODELS,
|
|
34
|
+
REFERENCE_SYNTAXES: () => REFERENCE_SYNTAXES,
|
|
33
35
|
SURFACES: () => SURFACES2,
|
|
34
36
|
SurfaceSchema: () => SurfaceSchema,
|
|
35
37
|
TEXT_MODELS: () => TEXT_MODELS,
|
|
@@ -42,7 +44,9 @@ __export(catalog_entry_exports, {
|
|
|
42
44
|
liveState: () => liveState,
|
|
43
45
|
nearestAspectRatio: () => nearestAspectRatio,
|
|
44
46
|
normalizeExposure: () => normalizeExposure,
|
|
47
|
+
outputAudio: () => outputAudio,
|
|
45
48
|
primeCatalog: () => primeCatalog,
|
|
49
|
+
promptConventions: () => promptConventions,
|
|
46
50
|
resetLiveCatalog: () => resetLiveCatalog,
|
|
47
51
|
resolveAudioOptions: () => resolveAudioOptions,
|
|
48
52
|
resolveImageOptions: () => resolveImageOptions,
|
|
@@ -217,7 +221,9 @@ function geminiImage(id, label, aliases, sizes, display, exposure, references) {
|
|
|
217
221
|
const constraints = {
|
|
218
222
|
aspectRatios: [...GEMINI_RATIOS],
|
|
219
223
|
sizes,
|
|
220
|
-
supports: ["safetySettings", "temperature"]
|
|
224
|
+
supports: ["safetySettings", "temperature"],
|
|
225
|
+
// google-image sends MediaRef.label as a text part beside each reference.
|
|
226
|
+
prompt: { referenceSyntax: "caption" }
|
|
221
227
|
};
|
|
222
228
|
if (references !== void 0) constraints.references = references;
|
|
223
229
|
const model = {
|
|
@@ -504,6 +510,7 @@ var IMAGE_MODELS = [
|
|
|
504
510
|
constraints: {
|
|
505
511
|
aspectRatios: ["1:1", "2:3", "3:2", "16:9", "9:16", "4:3", "3:4", "4:5", "5:4", "21:9"],
|
|
506
512
|
sizes: ["1K"],
|
|
513
|
+
references: { images: 8 },
|
|
507
514
|
// flux-2-pro's job type always returns image/png; only the seed is forwarded.
|
|
508
515
|
supports: ["seed"]
|
|
509
516
|
},
|
|
@@ -1327,7 +1334,8 @@ var VIDEO_MODELS = [
|
|
|
1327
1334
|
resolutions: ["720p", "1080p", "4k"],
|
|
1328
1335
|
durations: [8],
|
|
1329
1336
|
references: { images: 3 },
|
|
1330
|
-
supports: ["lastFrame", "seed"]
|
|
1337
|
+
supports: ["lastFrame", "seed"],
|
|
1338
|
+
audio: "always"
|
|
1331
1339
|
},
|
|
1332
1340
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
1333
1341
|
usage: { ...VIDEO_USAGE, slug: "veo" },
|
|
@@ -1357,7 +1365,8 @@ var VIDEO_MODELS = [
|
|
|
1357
1365
|
resolutions: ["720p", "1080p", "4k"],
|
|
1358
1366
|
durations: [4, 6, 8],
|
|
1359
1367
|
references: { images: 3 },
|
|
1360
|
-
supports: ["lastFrame", "seed"]
|
|
1368
|
+
supports: ["lastFrame", "seed"],
|
|
1369
|
+
audio: "always"
|
|
1361
1370
|
},
|
|
1362
1371
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
1363
1372
|
usage: { ...VIDEO_USAGE },
|
|
@@ -1385,7 +1394,8 @@ var VIDEO_MODELS = [
|
|
|
1385
1394
|
aspectRatios: [...OMNI_RATIOS],
|
|
1386
1395
|
resolutions: ["720p", "1080p"],
|
|
1387
1396
|
durations: [4, 6, 8],
|
|
1388
|
-
supports: ["lastFrame", "seed"]
|
|
1397
|
+
supports: ["lastFrame", "seed"],
|
|
1398
|
+
audio: "always"
|
|
1389
1399
|
},
|
|
1390
1400
|
defaults: { durationSeconds: 8, resolution: "720p", aspectRatio: "16:9" },
|
|
1391
1401
|
usage: { ...VIDEO_USAGE },
|
|
@@ -1419,7 +1429,10 @@ var VIDEO_MODELS = [
|
|
|
1419
1429
|
durations: [3, 4, 5, 6, 7, 8, 9, 10],
|
|
1420
1430
|
references: { images: 6, videos: 1, videoSeconds: { max: 10 } },
|
|
1421
1431
|
sourceVideoSeconds: { max: 10 },
|
|
1422
|
-
supports: []
|
|
1432
|
+
supports: [],
|
|
1433
|
+
// generateOmniVideo sends MediaRef.label as a text part beside each image.
|
|
1434
|
+
prompt: { referenceSyntax: "caption" },
|
|
1435
|
+
audio: "always"
|
|
1423
1436
|
},
|
|
1424
1437
|
defaults: {},
|
|
1425
1438
|
usage: { ...VIDEO_USAGE, slug: "gemini_omni" },
|
|
@@ -1453,7 +1466,10 @@ var VIDEO_MODELS = [
|
|
|
1453
1466
|
// chain by `previousInteractionId` (the API rejects the id together
|
|
1454
1467
|
// with a video task, so those calls carry the prompt alone).
|
|
1455
1468
|
supports: ["videoExtension"],
|
|
1456
|
-
extension: { segmentSeconds: 10, maxTotalSeconds: 40 }
|
|
1469
|
+
extension: { segmentSeconds: 10, maxTotalSeconds: 40 },
|
|
1470
|
+
// generateOmniVideo sends MediaRef.label as a text part beside each image.
|
|
1471
|
+
prompt: { referenceSyntax: "caption" },
|
|
1472
|
+
audio: "always"
|
|
1457
1473
|
},
|
|
1458
1474
|
defaults: {},
|
|
1459
1475
|
usage: { ...VIDEO_USAGE },
|
|
@@ -1489,7 +1505,8 @@ var VIDEO_MODELS = [
|
|
|
1489
1505
|
},
|
|
1490
1506
|
sourceVideoSeconds: { min: 2, max: 15, inReferenceTotal: true },
|
|
1491
1507
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1492
|
-
supports: ["generateAudio", "seed", "lastFrame", "watermark"]
|
|
1508
|
+
supports: ["generateAudio", "seed", "lastFrame", "watermark"],
|
|
1509
|
+
audio: "optional"
|
|
1493
1510
|
},
|
|
1494
1511
|
defaults: {
|
|
1495
1512
|
durationSeconds: 5,
|
|
@@ -1528,7 +1545,8 @@ var VIDEO_MODELS = [
|
|
|
1528
1545
|
},
|
|
1529
1546
|
sourceVideoSeconds: { min: 2, max: 15, inReferenceTotal: true },
|
|
1530
1547
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1531
|
-
supports: ["generateAudio", "seed", "lastFrame", "watermark"]
|
|
1548
|
+
supports: ["generateAudio", "seed", "lastFrame", "watermark"],
|
|
1549
|
+
audio: "optional"
|
|
1532
1550
|
},
|
|
1533
1551
|
defaults: {
|
|
1534
1552
|
durationSeconds: 5,
|
|
@@ -1568,7 +1586,8 @@ var VIDEO_MODELS = [
|
|
|
1568
1586
|
},
|
|
1569
1587
|
sourceVideoSeconds: { min: 2, max: 30, editMin: 4, inReferenceTotal: true },
|
|
1570
1588
|
ratioIgnoredWith: ["firstFrame", "sourceVideo"],
|
|
1571
|
-
supports: ["generateAudio", "seed", "lastFrame", "watermark", "taskType"]
|
|
1589
|
+
supports: ["generateAudio", "seed", "lastFrame", "watermark", "taskType"],
|
|
1590
|
+
audio: "optional"
|
|
1572
1591
|
},
|
|
1573
1592
|
defaults: {
|
|
1574
1593
|
durationSeconds: 5,
|
|
@@ -1601,7 +1620,9 @@ var VIDEO_MODELS = [
|
|
|
1601
1620
|
durations: { min: 1, max: 15 },
|
|
1602
1621
|
durationPresets: [4, 6, 8, 10],
|
|
1603
1622
|
references: { images: 5 },
|
|
1604
|
-
supports: []
|
|
1623
|
+
supports: [],
|
|
1624
|
+
// xAI can switch sound off (generate_audio); xai-video.ts never sends it.
|
|
1625
|
+
audio: "always"
|
|
1605
1626
|
},
|
|
1606
1627
|
// No resolution default: xAI picks its own unless the caller asks.
|
|
1607
1628
|
defaults: { durationSeconds: 8, aspectRatio: "16:9" },
|
|
@@ -1627,7 +1648,8 @@ var VIDEO_MODELS = [
|
|
|
1627
1648
|
aspectRatios: [...KLING_RATIOS],
|
|
1628
1649
|
durations: [5, 10],
|
|
1629
1650
|
requires: ["firstFrame"],
|
|
1630
|
-
supports: ["cfgScale", "negativePrompt", "lastFrame"]
|
|
1651
|
+
supports: ["cfgScale", "negativePrompt", "lastFrame"],
|
|
1652
|
+
audio: "never"
|
|
1631
1653
|
},
|
|
1632
1654
|
defaults: {
|
|
1633
1655
|
durationSeconds: 5,
|
|
@@ -1658,7 +1680,9 @@ var VIDEO_MODELS = [
|
|
|
1658
1680
|
aspectRatios: [...KLING_RATIOS],
|
|
1659
1681
|
durations: { min: 3, max: 15 },
|
|
1660
1682
|
requires: ["firstFrame"],
|
|
1661
|
-
supports: ["cfgScale", "negativePrompt", "lastFrame"]
|
|
1683
|
+
supports: ["cfgScale", "negativePrompt", "lastFrame"],
|
|
1684
|
+
// Higgsfield has a `sound` switch (default on); KlingCreate doesn't send it.
|
|
1685
|
+
audio: "always"
|
|
1662
1686
|
},
|
|
1663
1687
|
defaults: {
|
|
1664
1688
|
durationSeconds: 5,
|
|
@@ -1693,7 +1717,8 @@ var VIDEO_MODELS = [
|
|
|
1693
1717
|
resolutions: ["720p", "1080p"],
|
|
1694
1718
|
durations: { min: 3, max: 15 },
|
|
1695
1719
|
references: { images: 7, imagesWithVideo: 4 },
|
|
1696
|
-
supports: ["generateAudio", "lastFrame"]
|
|
1720
|
+
supports: ["generateAudio", "lastFrame"],
|
|
1721
|
+
audio: "optional"
|
|
1697
1722
|
},
|
|
1698
1723
|
defaults: { durationSeconds: 5, aspectRatio: "16:9", generateAudio: false, mode: "pro" },
|
|
1699
1724
|
usage: { unit: "compute_seconds" },
|
|
@@ -1718,7 +1743,8 @@ var VIDEO_MODELS = [
|
|
|
1718
1743
|
aspectRatios: [...H3_RATIOS],
|
|
1719
1744
|
resolutions: ["480p", "768p", "2k", "4k"],
|
|
1720
1745
|
durations: { min: 5, max: 15 },
|
|
1721
|
-
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"]
|
|
1746
|
+
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"],
|
|
1747
|
+
audio: "always"
|
|
1722
1748
|
},
|
|
1723
1749
|
defaults: {
|
|
1724
1750
|
durationSeconds: 5,
|
|
@@ -1748,7 +1774,8 @@ var VIDEO_MODELS = [
|
|
|
1748
1774
|
aspectRatios: [...H3_RATIOS],
|
|
1749
1775
|
resolutions: ["480p", "768p"],
|
|
1750
1776
|
durations: { min: 5, max: 15 },
|
|
1751
|
-
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"]
|
|
1777
|
+
supports: ["seed", "promptExpansion", "lastFrame", "safetyChecker"],
|
|
1778
|
+
audio: "always"
|
|
1752
1779
|
},
|
|
1753
1780
|
defaults: {
|
|
1754
1781
|
durationSeconds: 5,
|
|
@@ -1786,7 +1813,8 @@ var VIDEO_MODELS = [
|
|
|
1786
1813
|
audioOnly: false,
|
|
1787
1814
|
videoSeconds: { min: 2, max: 15, total: 15 }
|
|
1788
1815
|
},
|
|
1789
|
-
supports: ["seed", "promptExpansion", "safetyChecker"]
|
|
1816
|
+
supports: ["seed", "promptExpansion", "safetyChecker"],
|
|
1817
|
+
audio: "always"
|
|
1790
1818
|
},
|
|
1791
1819
|
defaults: {
|
|
1792
1820
|
durationSeconds: 5,
|
|
@@ -1801,7 +1829,9 @@ var VIDEO_MODELS = [
|
|
|
1801
1829
|
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
|
|
1802
1830
|
description: "MiniMax H3 reference-to-video mode guided by up to 9 reference images, 3 reference videos, and 3 audio clips; reference and image-to-video inputs cannot be mixed."
|
|
1803
1831
|
},
|
|
1804
|
-
|
|
1832
|
+
// fal's reference-to-video endpoint never reads a frame; the resolver must drop the
|
|
1833
|
+
// references instead of the adapter silently dropping the frame.
|
|
1834
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
1805
1835
|
},
|
|
1806
1836
|
{
|
|
1807
1837
|
id: "minimax-h3-max-reference",
|
|
@@ -1824,7 +1854,8 @@ var VIDEO_MODELS = [
|
|
|
1824
1854
|
audioOnly: false,
|
|
1825
1855
|
videoSeconds: { min: 2, max: 15, total: 15 }
|
|
1826
1856
|
},
|
|
1827
|
-
supports: ["seed", "promptExpansion", "safetyChecker"]
|
|
1857
|
+
supports: ["seed", "promptExpansion", "safetyChecker"],
|
|
1858
|
+
audio: "always"
|
|
1828
1859
|
},
|
|
1829
1860
|
defaults: {
|
|
1830
1861
|
durationSeconds: 5,
|
|
@@ -1839,7 +1870,9 @@ var VIDEO_MODELS = [
|
|
|
1839
1870
|
logo: "https://d31vvfpk2ppdyq.cloudfront.net/assets/image/f4c2e906-28b7-4a4a-b491-df8fef7808ed.png",
|
|
1840
1871
|
description: "MiniMax H3 Max reference-to-video on fal; conditions on reference images, videos, and audio. MiniMax's own docs do not list a reference mode for H3 Max."
|
|
1841
1872
|
},
|
|
1842
|
-
|
|
1873
|
+
// fal's reference-to-video endpoint never reads a frame; the resolver must drop the
|
|
1874
|
+
// references instead of the adapter silently dropping the frame.
|
|
1875
|
+
capabilities: { ...FRAMES_EXCLUDE_REFERENCES }
|
|
1843
1876
|
},
|
|
1844
1877
|
{
|
|
1845
1878
|
// Duration 3-10s per trigger-workflows mapDuration; the endpoint takes no resolution.
|
|
@@ -1856,7 +1889,8 @@ var VIDEO_MODELS = [
|
|
|
1856
1889
|
durations: { min: 3, max: 10 },
|
|
1857
1890
|
requires: ["sourceVideo"],
|
|
1858
1891
|
sourceVideoSeconds: { min: 3, max: 10.05 },
|
|
1859
|
-
supports: []
|
|
1892
|
+
supports: [],
|
|
1893
|
+
audio: "never"
|
|
1860
1894
|
},
|
|
1861
1895
|
defaults: { durationSeconds: 5, aspectRatio: "16:9" },
|
|
1862
1896
|
usage: { ...VIDEO_USAGE },
|
|
@@ -1880,7 +1914,8 @@ var VIDEO_MODELS = [
|
|
|
1880
1914
|
constraints: {
|
|
1881
1915
|
resolutions: ["768p"],
|
|
1882
1916
|
durations: [6, 10],
|
|
1883
|
-
supports: ["lastFrame"]
|
|
1917
|
+
supports: ["lastFrame"],
|
|
1918
|
+
audio: "never"
|
|
1884
1919
|
},
|
|
1885
1920
|
defaults: { durationSeconds: 6, resolution: "768p" },
|
|
1886
1921
|
usage: { unit: "compute_seconds" },
|
|
@@ -1903,7 +1938,8 @@ var VIDEO_MODELS = [
|
|
|
1903
1938
|
exposure: [],
|
|
1904
1939
|
constraints: {
|
|
1905
1940
|
requires: ["firstFrame"],
|
|
1906
|
-
supports: ["seed", "lastFrame"]
|
|
1941
|
+
supports: ["seed", "lastFrame"],
|
|
1942
|
+
audio: "never"
|
|
1907
1943
|
},
|
|
1908
1944
|
defaults: {},
|
|
1909
1945
|
usage: { ...VIDEO_USAGE },
|
|
@@ -1925,7 +1961,7 @@ var MODELS = [
|
|
|
1925
1961
|
];
|
|
1926
1962
|
|
|
1927
1963
|
// src/catalog/schema.ts
|
|
1928
|
-
var
|
|
1964
|
+
var import_zod3 = require("zod");
|
|
1929
1965
|
|
|
1930
1966
|
// src/catalog/collisions.ts
|
|
1931
1967
|
function collisionIssues(rows) {
|
|
@@ -1972,8 +2008,61 @@ function collisionIssues(rows) {
|
|
|
1972
2008
|
return issues;
|
|
1973
2009
|
}
|
|
1974
2010
|
|
|
1975
|
-
// src/catalog/
|
|
2011
|
+
// src/catalog/conventions.ts
|
|
1976
2012
|
var import_zod = require("zod");
|
|
2013
|
+
var AudioOutputSchema = import_zod.z.enum(["always", "optional", "never"]);
|
|
2014
|
+
var ReferenceSyntaxSchema = import_zod.z.enum(["numbered", "caption", "descriptive"]);
|
|
2015
|
+
var MaxCharsSchema = import_zod.z.number().int().positive();
|
|
2016
|
+
var PromptConventionsSchema = import_zod.z.strictObject({
|
|
2017
|
+
referenceSyntax: ReferenceSyntaxSchema,
|
|
2018
|
+
maxChars: MaxCharsSchema.optional()
|
|
2019
|
+
});
|
|
2020
|
+
var AUDIO_OUTPUTS = AudioOutputSchema.options;
|
|
2021
|
+
var REFERENCE_SYNTAXES = ReferenceSyntaxSchema.options;
|
|
2022
|
+
var ConstraintsReadView = import_zod.z.looseObject({
|
|
2023
|
+
audio: AudioOutputSchema.optional().catch(void 0),
|
|
2024
|
+
prompt: import_zod.z.looseObject({
|
|
2025
|
+
referenceSyntax: ReferenceSyntaxSchema.catch("numbered"),
|
|
2026
|
+
maxChars: MaxCharsSchema.optional().catch(void 0)
|
|
2027
|
+
}).optional().catch(void 0)
|
|
2028
|
+
});
|
|
2029
|
+
var DEFAULT_CONVENTIONS = { referenceSyntax: "numbered" };
|
|
2030
|
+
function outputAudio(row) {
|
|
2031
|
+
const view = ConstraintsReadView.safeParse(row.constraints);
|
|
2032
|
+
return view.success ? view.data.audio : void 0;
|
|
2033
|
+
}
|
|
2034
|
+
function promptConventions(row) {
|
|
2035
|
+
const view = ConstraintsReadView.safeParse(row.constraints);
|
|
2036
|
+
const prompt = view.success ? view.data.prompt : void 0;
|
|
2037
|
+
if (prompt === void 0) return { ...DEFAULT_CONVENTIONS };
|
|
2038
|
+
const result = { referenceSyntax: prompt.referenceSyntax };
|
|
2039
|
+
if (prompt.maxChars !== void 0) result.maxChars = prompt.maxChars;
|
|
2040
|
+
return result;
|
|
2041
|
+
}
|
|
2042
|
+
var RawConventionsView = import_zod.z.looseObject({
|
|
2043
|
+
audio: import_zod.z.unknown().optional(),
|
|
2044
|
+
prompt: import_zod.z.unknown().optional()
|
|
2045
|
+
});
|
|
2046
|
+
function normaliseConventions(row) {
|
|
2047
|
+
const view = RawConventionsView.safeParse(row.constraints);
|
|
2048
|
+
if (!view.success) return { row, invalidKeys: [] };
|
|
2049
|
+
const { audio, prompt } = view.data;
|
|
2050
|
+
const badAudio = audio !== void 0 && !AudioOutputSchema.safeParse(audio).success;
|
|
2051
|
+
const badPrompt = prompt !== void 0 && !PromptConventionsSchema.safeParse(prompt).success;
|
|
2052
|
+
if (!badAudio && !badPrompt) return { row, invalidKeys: [] };
|
|
2053
|
+
const invalidKeys = [];
|
|
2054
|
+
if (badAudio) invalidKeys.push("constraints.audio");
|
|
2055
|
+
if (badPrompt) invalidKeys.push("constraints.prompt");
|
|
2056
|
+
const entries = Object.entries(row.constraints).flatMap(([key, value]) => {
|
|
2057
|
+
if (key === "audio" && badAudio) return [];
|
|
2058
|
+
if (key === "prompt" && badPrompt) return [[key, promptConventions(row)]];
|
|
2059
|
+
return [[key, value]];
|
|
2060
|
+
});
|
|
2061
|
+
return { row: { ...row, constraints: Object.fromEntries(entries) }, invalidKeys };
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
// src/catalog/input-spec.ts
|
|
2065
|
+
var import_zod2 = require("zod");
|
|
1977
2066
|
var VIDEO_INPUT_SPEC_KEYS = [
|
|
1978
2067
|
"prompt",
|
|
1979
2068
|
"durationSeconds",
|
|
@@ -2012,8 +2101,8 @@ var ALL_KEY_SET = /* @__PURE__ */ new Set([
|
|
|
2012
2101
|
...VIDEO_INPUT_SPEC_KEYS,
|
|
2013
2102
|
...AUDIO_INPUT_SPEC_KEYS
|
|
2014
2103
|
]);
|
|
2015
|
-
var ProviderScalarSchema =
|
|
2016
|
-
var FieldsSchema =
|
|
2104
|
+
var ProviderScalarSchema = import_zod2.z.union([import_zod2.z.string(), import_zod2.z.number(), import_zod2.z.boolean()]);
|
|
2105
|
+
var FieldsSchema = import_zod2.z.record(import_zod2.z.string(), import_zod2.z.string().min(1)).superRefine((fields, ctx) => {
|
|
2017
2106
|
const keys = Object.keys(fields);
|
|
2018
2107
|
if (keys.length === 0) {
|
|
2019
2108
|
ctx.addIssue({
|
|
@@ -2031,7 +2120,7 @@ var FieldsSchema = import_zod.z.record(import_zod.z.string(), import_zod.z.strin
|
|
|
2031
2120
|
}
|
|
2032
2121
|
}
|
|
2033
2122
|
});
|
|
2034
|
-
var ValuesSchema =
|
|
2123
|
+
var ValuesSchema = import_zod2.z.record(import_zod2.z.string(), import_zod2.z.record(import_zod2.z.string(), ProviderScalarSchema)).superRefine((values, ctx) => {
|
|
2035
2124
|
for (const key of Object.keys(values)) {
|
|
2036
2125
|
if (!ALL_KEY_SET.has(key)) {
|
|
2037
2126
|
ctx.addIssue({
|
|
@@ -2041,8 +2130,8 @@ var ValuesSchema = import_zod.z.record(import_zod.z.string(), import_zod.z.recor
|
|
|
2041
2130
|
}
|
|
2042
2131
|
}
|
|
2043
2132
|
});
|
|
2044
|
-
var StaticSchema =
|
|
2045
|
-
var InputSpecSchema =
|
|
2133
|
+
var StaticSchema = import_zod2.z.record(import_zod2.z.string(), ProviderScalarSchema);
|
|
2134
|
+
var InputSpecSchema = import_zod2.z.strictObject({
|
|
2046
2135
|
fields: FieldsSchema,
|
|
2047
2136
|
values: ValuesSchema.optional(),
|
|
2048
2137
|
static: StaticSchema.optional()
|
|
@@ -2146,16 +2235,16 @@ var ADAPTER_IDS = [
|
|
|
2146
2235
|
"higgsfield",
|
|
2147
2236
|
"xai-video"
|
|
2148
2237
|
];
|
|
2149
|
-
var ModelTypeSchema =
|
|
2150
|
-
var LifecycleSchema =
|
|
2151
|
-
var SurfaceSchema =
|
|
2238
|
+
var ModelTypeSchema = import_zod3.z.enum(["text", "image", "video", "audio", "upscale", "bg-remove"]);
|
|
2239
|
+
var LifecycleSchema = import_zod3.z.enum(["active", "deprecated", "retired"]);
|
|
2240
|
+
var SurfaceSchema = import_zod3.z.enum(["cowork", "space_builder"]);
|
|
2152
2241
|
var SURFACES2 = SurfaceSchema.options;
|
|
2153
|
-
var ExposureSchema =
|
|
2242
|
+
var ExposureSchema = import_zod3.z.preprocess(
|
|
2154
2243
|
normalizeExposure,
|
|
2155
|
-
|
|
2244
|
+
import_zod3.z.array(SurfaceSchema)
|
|
2156
2245
|
);
|
|
2157
|
-
var AdapterSchema =
|
|
2158
|
-
var AspectRatioSchema =
|
|
2246
|
+
var AdapterSchema = import_zod3.z.enum(ADAPTER_IDS);
|
|
2247
|
+
var AspectRatioSchema = import_zod3.z.enum([
|
|
2159
2248
|
"1:1",
|
|
2160
2249
|
"16:9",
|
|
2161
2250
|
"9:16",
|
|
@@ -2170,12 +2259,12 @@ var AspectRatioSchema = import_zod2.z.enum([
|
|
|
2170
2259
|
"97:30",
|
|
2171
2260
|
"adaptive"
|
|
2172
2261
|
]);
|
|
2173
|
-
var ImageSizeSchema =
|
|
2174
|
-
var VideoResolutionSchema =
|
|
2175
|
-
var ImageQualitySchema =
|
|
2176
|
-
var OutputFormatSchema =
|
|
2177
|
-
var RequiredInputSchema =
|
|
2178
|
-
var SupportedOptionSchema =
|
|
2262
|
+
var ImageSizeSchema = import_zod3.z.enum(["512", "1K", "2K", "4K"]);
|
|
2263
|
+
var VideoResolutionSchema = import_zod3.z.enum(["360p", "480p", "720p", "768p", "1080p", "2k", "4k"]);
|
|
2264
|
+
var ImageQualitySchema = import_zod3.z.enum(["auto", "low", "medium", "high", "xhigh", "max"]);
|
|
2265
|
+
var OutputFormatSchema = import_zod3.z.enum(["png", "jpeg", "webp"]);
|
|
2266
|
+
var RequiredInputSchema = import_zod3.z.enum(["firstFrame", "sourceVideo", "references"]);
|
|
2267
|
+
var SupportedOptionSchema = import_zod3.z.enum([
|
|
2179
2268
|
"seed",
|
|
2180
2269
|
"quality",
|
|
2181
2270
|
"negativePrompt",
|
|
@@ -2195,142 +2284,146 @@ var SupportedOptionSchema = import_zod2.z.enum([
|
|
|
2195
2284
|
"videoExtension",
|
|
2196
2285
|
"instrumental"
|
|
2197
2286
|
]);
|
|
2198
|
-
var UsageUnitSchema =
|
|
2287
|
+
var UsageUnitSchema = import_zod3.z.enum([
|
|
2199
2288
|
"tokens",
|
|
2200
2289
|
"images",
|
|
2201
2290
|
"seconds",
|
|
2202
2291
|
"reported_cost_usd",
|
|
2203
2292
|
"compute_seconds"
|
|
2204
2293
|
]);
|
|
2205
|
-
var PricingKindSchema =
|
|
2206
|
-
var ProviderOptionValueSchema =
|
|
2207
|
-
() =>
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2294
|
+
var PricingKindSchema = import_zod3.z.enum(["token", "image_size", "video_per_second", "flat"]);
|
|
2295
|
+
var ProviderOptionValueSchema = import_zod3.z.lazy(
|
|
2296
|
+
() => import_zod3.z.union([
|
|
2297
|
+
import_zod3.z.string(),
|
|
2298
|
+
import_zod3.z.number(),
|
|
2299
|
+
import_zod3.z.boolean(),
|
|
2300
|
+
import_zod3.z.array(ProviderOptionValueSchema),
|
|
2301
|
+
import_zod3.z.record(import_zod3.z.string(), ProviderOptionValueSchema)
|
|
2213
2302
|
])
|
|
2214
2303
|
);
|
|
2215
|
-
var ProviderOptionsSchema =
|
|
2216
|
-
var VideoSecondsLimitsSchema =
|
|
2217
|
-
min:
|
|
2218
|
-
max:
|
|
2219
|
-
total:
|
|
2220
|
-
editMin:
|
|
2304
|
+
var ProviderOptionsSchema = import_zod3.z.record(import_zod3.z.string(), import_zod3.z.record(import_zod3.z.string(), ProviderOptionValueSchema));
|
|
2305
|
+
var VideoSecondsLimitsSchema = import_zod3.z.looseObject({
|
|
2306
|
+
min: import_zod3.z.number().optional(),
|
|
2307
|
+
max: import_zod3.z.number().optional(),
|
|
2308
|
+
total: import_zod3.z.number().optional(),
|
|
2309
|
+
editMin: import_zod3.z.number().optional()
|
|
2221
2310
|
});
|
|
2222
|
-
var ReferenceLimitsSchema =
|
|
2223
|
-
images:
|
|
2224
|
-
imagesWithVideo:
|
|
2225
|
-
videos:
|
|
2226
|
-
audios:
|
|
2227
|
-
total:
|
|
2228
|
-
audioOnly:
|
|
2311
|
+
var ReferenceLimitsSchema = import_zod3.z.looseObject({
|
|
2312
|
+
images: import_zod3.z.number().optional(),
|
|
2313
|
+
imagesWithVideo: import_zod3.z.number().optional(),
|
|
2314
|
+
videos: import_zod3.z.number().optional(),
|
|
2315
|
+
audios: import_zod3.z.number().optional(),
|
|
2316
|
+
total: import_zod3.z.number().optional(),
|
|
2317
|
+
audioOnly: import_zod3.z.boolean().optional(),
|
|
2229
2318
|
videoSeconds: VideoSecondsLimitsSchema.optional()
|
|
2230
2319
|
});
|
|
2231
|
-
var ModelConstraintsSchema =
|
|
2232
|
-
aspectRatios:
|
|
2233
|
-
sizes:
|
|
2234
|
-
resolutions:
|
|
2235
|
-
durations:
|
|
2236
|
-
durationPresets:
|
|
2237
|
-
qualityOptions:
|
|
2238
|
-
exactSizes:
|
|
2320
|
+
var ModelConstraintsSchema = import_zod3.z.looseObject({
|
|
2321
|
+
aspectRatios: import_zod3.z.array(AspectRatioSchema).optional(),
|
|
2322
|
+
sizes: import_zod3.z.array(ImageSizeSchema).optional(),
|
|
2323
|
+
resolutions: import_zod3.z.array(VideoResolutionSchema).optional(),
|
|
2324
|
+
durations: import_zod3.z.union([import_zod3.z.looseObject({ min: import_zod3.z.number(), max: import_zod3.z.number() }), import_zod3.z.array(import_zod3.z.number())]).optional(),
|
|
2325
|
+
durationPresets: import_zod3.z.array(import_zod3.z.number()).optional(),
|
|
2326
|
+
qualityOptions: import_zod3.z.array(import_zod3.z.string()).optional(),
|
|
2327
|
+
exactSizes: import_zod3.z.record(import_zod3.z.string(), import_zod3.z.string()).optional(),
|
|
2239
2328
|
references: ReferenceLimitsSchema.optional(),
|
|
2240
|
-
requires:
|
|
2241
|
-
supports:
|
|
2242
|
-
ratioIgnoredWith:
|
|
2243
|
-
sourceVideoSeconds: VideoSecondsLimitsSchema.omit({ total: true }).extend({ inReferenceTotal:
|
|
2244
|
-
extension:
|
|
2329
|
+
requires: import_zod3.z.array(RequiredInputSchema).optional(),
|
|
2330
|
+
supports: import_zod3.z.array(SupportedOptionSchema).optional(),
|
|
2331
|
+
ratioIgnoredWith: import_zod3.z.array(import_zod3.z.enum(["firstFrame", "sourceVideo"])).optional(),
|
|
2332
|
+
sourceVideoSeconds: VideoSecondsLimitsSchema.omit({ total: true }).extend({ inReferenceTotal: import_zod3.z.boolean().optional() }).optional(),
|
|
2333
|
+
extension: import_zod3.z.looseObject({ segmentSeconds: import_zod3.z.number(), maxTotalSeconds: import_zod3.z.number() }).optional(),
|
|
2334
|
+
// Loose on purpose: the read path keeps a row whose value is invalid (the accessors in
|
|
2335
|
+
// conventions.ts read it as "not set"); CatalogModelSchema below rejects it on write.
|
|
2336
|
+
audio: import_zod3.z.unknown().optional(),
|
|
2337
|
+
prompt: import_zod3.z.unknown().optional()
|
|
2245
2338
|
});
|
|
2246
|
-
var MediaRefSchema =
|
|
2247
|
-
|
|
2248
|
-
url:
|
|
2249
|
-
label:
|
|
2250
|
-
durationSeconds:
|
|
2339
|
+
var MediaRefSchema = import_zod3.z.union([
|
|
2340
|
+
import_zod3.z.looseObject({
|
|
2341
|
+
url: import_zod3.z.string(),
|
|
2342
|
+
label: import_zod3.z.string().optional(),
|
|
2343
|
+
durationSeconds: import_zod3.z.number().optional()
|
|
2251
2344
|
}),
|
|
2252
|
-
|
|
2253
|
-
bytes:
|
|
2254
|
-
mime:
|
|
2255
|
-
label:
|
|
2256
|
-
durationSeconds:
|
|
2345
|
+
import_zod3.z.looseObject({
|
|
2346
|
+
bytes: import_zod3.z.instanceof(Uint8Array),
|
|
2347
|
+
mime: import_zod3.z.string(),
|
|
2348
|
+
label: import_zod3.z.string().optional(),
|
|
2349
|
+
durationSeconds: import_zod3.z.number().optional()
|
|
2257
2350
|
})
|
|
2258
2351
|
]);
|
|
2259
|
-
var ImageSafetySettingSchema =
|
|
2260
|
-
var UpscaleOptionsSchema =
|
|
2261
|
-
enhanceModel:
|
|
2262
|
-
subjectDetection:
|
|
2263
|
-
faceEnhancement:
|
|
2264
|
-
faceEnhancementCreativity:
|
|
2265
|
-
faceEnhancementStrength:
|
|
2352
|
+
var ImageSafetySettingSchema = import_zod3.z.looseObject({ category: import_zod3.z.string(), threshold: import_zod3.z.string() });
|
|
2353
|
+
var UpscaleOptionsSchema = import_zod3.z.looseObject({
|
|
2354
|
+
enhanceModel: import_zod3.z.string().optional(),
|
|
2355
|
+
subjectDetection: import_zod3.z.string().optional(),
|
|
2356
|
+
faceEnhancement: import_zod3.z.boolean().optional(),
|
|
2357
|
+
faceEnhancementCreativity: import_zod3.z.number().optional(),
|
|
2358
|
+
faceEnhancementStrength: import_zod3.z.number().optional()
|
|
2266
2359
|
});
|
|
2267
|
-
var DefaultsSchema =
|
|
2268
|
-
references:
|
|
2360
|
+
var DefaultsSchema = import_zod3.z.looseObject({
|
|
2361
|
+
references: import_zod3.z.array(MediaRefSchema).optional(),
|
|
2269
2362
|
aspectRatio: AspectRatioSchema.optional(),
|
|
2270
2363
|
size: ImageSizeSchema.optional(),
|
|
2271
|
-
exactSize:
|
|
2364
|
+
exactSize: import_zod3.z.string().optional(),
|
|
2272
2365
|
quality: ImageQualitySchema.optional(),
|
|
2273
|
-
seed:
|
|
2274
|
-
count:
|
|
2366
|
+
seed: import_zod3.z.number().optional(),
|
|
2367
|
+
count: import_zod3.z.number().optional(),
|
|
2275
2368
|
outputFormat: OutputFormatSchema.optional(),
|
|
2276
|
-
scaleFactor:
|
|
2277
|
-
safetySettings:
|
|
2278
|
-
temperature:
|
|
2369
|
+
scaleFactor: import_zod3.z.number().optional(),
|
|
2370
|
+
safetySettings: import_zod3.z.array(ImageSafetySettingSchema).optional(),
|
|
2371
|
+
temperature: import_zod3.z.number().optional(),
|
|
2279
2372
|
upscale: UpscaleOptionsSchema.optional(),
|
|
2280
2373
|
firstFrame: MediaRefSchema.optional(),
|
|
2281
2374
|
lastFrame: MediaRefSchema.optional(),
|
|
2282
2375
|
sourceVideo: MediaRefSchema.optional(),
|
|
2283
|
-
referenceImages:
|
|
2284
|
-
referenceVideos:
|
|
2285
|
-
referenceAudios:
|
|
2376
|
+
referenceImages: import_zod3.z.array(MediaRefSchema).optional(),
|
|
2377
|
+
referenceVideos: import_zod3.z.array(MediaRefSchema).optional(),
|
|
2378
|
+
referenceAudios: import_zod3.z.array(MediaRefSchema).optional(),
|
|
2286
2379
|
resolution: VideoResolutionSchema.optional(),
|
|
2287
|
-
durationSeconds:
|
|
2288
|
-
generateAudio:
|
|
2289
|
-
negativePrompt:
|
|
2290
|
-
cfgScale:
|
|
2291
|
-
promptExpansion:
|
|
2292
|
-
watermark:
|
|
2293
|
-
safetyChecker:
|
|
2294
|
-
taskType:
|
|
2295
|
-
mode:
|
|
2296
|
-
instrumental:
|
|
2380
|
+
durationSeconds: import_zod3.z.number().optional(),
|
|
2381
|
+
generateAudio: import_zod3.z.boolean().optional(),
|
|
2382
|
+
negativePrompt: import_zod3.z.string().optional(),
|
|
2383
|
+
cfgScale: import_zod3.z.number().optional(),
|
|
2384
|
+
promptExpansion: import_zod3.z.enum(["fast", "balanced", "quality"]).optional(),
|
|
2385
|
+
watermark: import_zod3.z.boolean().optional(),
|
|
2386
|
+
safetyChecker: import_zod3.z.boolean().optional(),
|
|
2387
|
+
taskType: import_zod3.z.enum(["reference", "edit", "extend"]).optional(),
|
|
2388
|
+
mode: import_zod3.z.enum(["standard", "pro"]).optional(),
|
|
2389
|
+
instrumental: import_zod3.z.boolean().optional()
|
|
2297
2390
|
});
|
|
2298
|
-
var CatalogDisplaySchema =
|
|
2299
|
-
provider:
|
|
2300
|
-
description:
|
|
2301
|
-
logo:
|
|
2302
|
-
costTier:
|
|
2303
|
-
recommended:
|
|
2304
|
-
sortOrder:
|
|
2305
|
-
chat:
|
|
2391
|
+
var CatalogDisplaySchema = import_zod3.z.looseObject({
|
|
2392
|
+
provider: import_zod3.z.string(),
|
|
2393
|
+
description: import_zod3.z.string(),
|
|
2394
|
+
logo: import_zod3.z.string().optional(),
|
|
2395
|
+
costTier: import_zod3.z.union([import_zod3.z.literal(1), import_zod3.z.literal(2), import_zod3.z.literal(3)]).optional(),
|
|
2396
|
+
recommended: import_zod3.z.boolean().optional(),
|
|
2397
|
+
sortOrder: import_zod3.z.number().optional(),
|
|
2398
|
+
chat: import_zod3.z.looseObject({
|
|
2306
2399
|
providerOptions: ProviderOptionsSchema.optional(),
|
|
2307
|
-
temperature:
|
|
2400
|
+
temperature: import_zod3.z.number().optional()
|
|
2308
2401
|
}).optional()
|
|
2309
2402
|
});
|
|
2310
|
-
var CatalogCapabilitiesSchema =
|
|
2311
|
-
acceptsSourceVideo:
|
|
2312
|
-
framesExcludeReferences:
|
|
2313
|
-
reasoning:
|
|
2314
|
-
vision:
|
|
2315
|
-
contextWindow:
|
|
2403
|
+
var CatalogCapabilitiesSchema = import_zod3.z.looseObject({
|
|
2404
|
+
acceptsSourceVideo: import_zod3.z.boolean().optional(),
|
|
2405
|
+
framesExcludeReferences: import_zod3.z.boolean().optional(),
|
|
2406
|
+
reasoning: import_zod3.z.boolean().optional(),
|
|
2407
|
+
vision: import_zod3.z.boolean().optional(),
|
|
2408
|
+
contextWindow: import_zod3.z.number().optional()
|
|
2316
2409
|
});
|
|
2317
|
-
var CatalogModelSchemaBase =
|
|
2318
|
-
id:
|
|
2319
|
-
aliases:
|
|
2320
|
-
label:
|
|
2410
|
+
var CatalogModelSchemaBase = import_zod3.z.looseObject({
|
|
2411
|
+
id: import_zod3.z.string().min(1),
|
|
2412
|
+
aliases: import_zod3.z.array(import_zod3.z.string()).default([]),
|
|
2413
|
+
label: import_zod3.z.string().min(1),
|
|
2321
2414
|
type: ModelTypeSchema,
|
|
2322
2415
|
adapter: AdapterSchema,
|
|
2323
|
-
providerModelId:
|
|
2416
|
+
providerModelId: import_zod3.z.string().min(1),
|
|
2324
2417
|
lifecycle: LifecycleSchema,
|
|
2325
|
-
replacedBy:
|
|
2418
|
+
replacedBy: import_zod3.z.string().optional(),
|
|
2326
2419
|
exposure: ExposureSchema,
|
|
2327
2420
|
constraints: ModelConstraintsSchema,
|
|
2328
2421
|
defaults: DefaultsSchema,
|
|
2329
2422
|
providerOptions: ProviderOptionsSchema.optional(),
|
|
2330
|
-
usage:
|
|
2423
|
+
usage: import_zod3.z.looseObject({
|
|
2331
2424
|
unit: UsageUnitSchema,
|
|
2332
|
-
slug:
|
|
2333
|
-
providerLabel:
|
|
2425
|
+
slug: import_zod3.z.string().optional(),
|
|
2426
|
+
providerLabel: import_zod3.z.string().optional()
|
|
2334
2427
|
}),
|
|
2335
2428
|
pricingKind: PricingKindSchema,
|
|
2336
2429
|
display: CatalogDisplaySchema.optional(),
|
|
@@ -2381,9 +2474,30 @@ var CatalogModelSchema = CatalogModelSchemaBase.superRefine(
|
|
|
2381
2474
|
}
|
|
2382
2475
|
}
|
|
2383
2476
|
}
|
|
2477
|
+
const audio = row.constraints.audio;
|
|
2478
|
+
if (audio !== void 0 && !AudioOutputSchema.safeParse(audio).success) {
|
|
2479
|
+
ctx.addIssue({
|
|
2480
|
+
code: "custom",
|
|
2481
|
+
path: ["constraints", "audio"],
|
|
2482
|
+
message: 'audio must be "always", "optional" or "never"'
|
|
2483
|
+
});
|
|
2484
|
+
}
|
|
2485
|
+
const prompt = row.constraints.prompt;
|
|
2486
|
+
if (prompt !== void 0) {
|
|
2487
|
+
const parsed = PromptConventionsSchema.safeParse(prompt);
|
|
2488
|
+
if (!parsed.success) {
|
|
2489
|
+
for (const issue of parsed.error.issues) {
|
|
2490
|
+
ctx.addIssue({
|
|
2491
|
+
code: "custom",
|
|
2492
|
+
path: ["constraints", "prompt", ...issue.path.map(String)],
|
|
2493
|
+
message: issue.message
|
|
2494
|
+
});
|
|
2495
|
+
}
|
|
2496
|
+
}
|
|
2497
|
+
}
|
|
2384
2498
|
}
|
|
2385
2499
|
);
|
|
2386
|
-
var CatalogSchema =
|
|
2500
|
+
var CatalogSchema = import_zod3.z.array(CatalogModelSchemaBase.transform((row) => normaliseConventions(row).row)).superRefine((rows, ctx) => {
|
|
2387
2501
|
for (const issue of collisionIssues(rows)) {
|
|
2388
2502
|
ctx.addIssue({
|
|
2389
2503
|
code: "custom",
|
|
@@ -2406,42 +2520,42 @@ var liveState = store[KEY] ??= {
|
|
|
2406
2520
|
var liveCatalog = liveState.catalog;
|
|
2407
2521
|
|
|
2408
2522
|
// src/json.ts
|
|
2409
|
-
var
|
|
2410
|
-
var JsonValueSchema =
|
|
2411
|
-
() =>
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2523
|
+
var import_zod4 = require("zod");
|
|
2524
|
+
var JsonValueSchema = import_zod4.z.lazy(
|
|
2525
|
+
() => import_zod4.z.union([
|
|
2526
|
+
import_zod4.z.string(),
|
|
2527
|
+
import_zod4.z.number(),
|
|
2528
|
+
import_zod4.z.boolean(),
|
|
2529
|
+
import_zod4.z.null(),
|
|
2530
|
+
import_zod4.z.array(JsonValueSchema),
|
|
2531
|
+
import_zod4.z.record(import_zod4.z.string(), JsonValueSchema)
|
|
2418
2532
|
])
|
|
2419
2533
|
);
|
|
2420
|
-
var JsonObjectSchema =
|
|
2421
|
-
var thrownErrorSchema =
|
|
2422
|
-
message:
|
|
2423
|
-
status:
|
|
2424
|
-
statusCode:
|
|
2425
|
-
responseBody:
|
|
2534
|
+
var JsonObjectSchema = import_zod4.z.record(import_zod4.z.string(), JsonValueSchema);
|
|
2535
|
+
var thrownErrorSchema = import_zod4.z.object({
|
|
2536
|
+
message: import_zod4.z.string().optional(),
|
|
2537
|
+
status: import_zod4.z.number().optional(),
|
|
2538
|
+
statusCode: import_zod4.z.number().optional(),
|
|
2539
|
+
responseBody: import_zod4.z.string().optional()
|
|
2426
2540
|
});
|
|
2427
2541
|
|
|
2428
2542
|
// src/catalog/load.ts
|
|
2429
|
-
var
|
|
2543
|
+
var import_zod5 = require("zod");
|
|
2430
2544
|
function rowCount() {
|
|
2431
2545
|
return liveCatalog.list({ lifecycle: ["active", "deprecated", "retired"] }).length;
|
|
2432
2546
|
}
|
|
2433
2547
|
function authHeaders(auth) {
|
|
2434
2548
|
return "bearer" in auth ? { Authorization: `Bearer ${auth.bearer}` } : { "x-api-key": auth.apiKey };
|
|
2435
2549
|
}
|
|
2436
|
-
var EnvelopeSchema =
|
|
2437
|
-
rows:
|
|
2438
|
-
revision:
|
|
2550
|
+
var EnvelopeSchema = import_zod5.z.object({
|
|
2551
|
+
rows: import_zod5.z.array(JsonValueSchema),
|
|
2552
|
+
revision: import_zod5.z.string().optional()
|
|
2439
2553
|
});
|
|
2440
2554
|
function dropReason(path, message) {
|
|
2441
2555
|
return path.length === 0 ? message : `${path.map((part) => String(part)).join(".")} ${message}`;
|
|
2442
2556
|
}
|
|
2443
2557
|
function rowId(raw) {
|
|
2444
|
-
const parsed =
|
|
2558
|
+
const parsed = import_zod5.z.object({ id: import_zod5.z.string().min(1) }).loose().safeParse(raw);
|
|
2445
2559
|
if (!parsed.success) return "?";
|
|
2446
2560
|
return parsed.data.id;
|
|
2447
2561
|
}
|
|
@@ -2469,7 +2583,13 @@ function quarantine(rawRows, logger) {
|
|
|
2469
2583
|
);
|
|
2470
2584
|
}
|
|
2471
2585
|
}
|
|
2472
|
-
|
|
2586
|
+
const normalised = normaliseConventions(row);
|
|
2587
|
+
if (normalised.invalidKeys.length > 0) {
|
|
2588
|
+
logger.warn(
|
|
2589
|
+
`[modelkit] catalog row ${row.id} has an invalid ${normalised.invalidKeys.join(", ")}; read as not set`
|
|
2590
|
+
);
|
|
2591
|
+
}
|
|
2592
|
+
valid.push(normalised.row);
|
|
2473
2593
|
}
|
|
2474
2594
|
let kept = valid;
|
|
2475
2595
|
for (; ; ) {
|