@nodaro/shared 1.6.0 → 1.9.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/index.cjs +192 -27
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -6
- package/dist/index.d.ts +33 -6
- package/dist/index.js +189 -28
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/llm-models.test.ts +91 -6
- package/src/index.ts +5 -0
- package/src/llm-models.ts +139 -6
- package/src/model-catalog.ts +18 -13
- package/src/model-constants.ts +33 -2
- package/src/node-mappable-fields.ts +6 -0
- package/src/producer-types.ts +10 -0
- package/src/selector.ts +10 -1
package/dist/index.cjs
CHANGED
|
@@ -63,6 +63,7 @@ var VIDEO_RATIOS_HVS = ["16:9", "9:16", "1:1"];
|
|
|
63
63
|
var WAN_27_IMAGE_RATIOS = ["1:1", "16:9", "9:16", "4:3", "3:4", "21:9", "8:1", "1:8"];
|
|
64
64
|
var VIDEO_RATIOS_HVS345 = ["16:9", "9:16", "1:1", "4:3", "3:4"];
|
|
65
65
|
var VIDEO_RATIOS_SEEDANCE_2 = ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9", "adaptive"];
|
|
66
|
+
var VIDEO_RATIOS_HAPPYHORSE_11 = ["16:9", "9:16", "1:1", "4:3", "3:4", "4:5", "5:4", "21:9", "9:21"];
|
|
66
67
|
var IMAGE_MODELS = {
|
|
67
68
|
// ── Google Nano Banana ──
|
|
68
69
|
"nano-banana": {
|
|
@@ -1241,21 +1242,22 @@ var VIDEO_MODELS = {
|
|
|
1241
1242
|
{ identifier: "wan-2.7-t2v", credits: 19, note: "5s 720p default" }
|
|
1242
1243
|
]
|
|
1243
1244
|
},
|
|
1244
|
-
// ── HappyHorse
|
|
1245
|
+
// ── HappyHorse (1.1 — ids kept version-less; repointed in place when KIE
|
|
1246
|
+
// delisted 1.0, same param surface, so saved workflows keep working) ──
|
|
1245
1247
|
"happyhorse": {
|
|
1246
1248
|
id: "happyhorse",
|
|
1247
1249
|
kind: "video",
|
|
1248
1250
|
modes: ["t2v"],
|
|
1249
1251
|
family: "HappyHorse",
|
|
1250
|
-
label: "HappyHorse",
|
|
1252
|
+
label: "HappyHorse 1.1",
|
|
1251
1253
|
series: "HappyHorse",
|
|
1252
|
-
description: "HappyHorse text-to-video \u2014 3\u201315s at 720p/1080p.",
|
|
1254
|
+
description: "HappyHorse 1.1 text-to-video \u2014 3\u201315s at 720p/1080p, 9 aspect ratios incl. 21:9/9:21, per-second pricing.",
|
|
1253
1255
|
useCases: ["motion", "creative"],
|
|
1254
|
-
aspectRatios:
|
|
1256
|
+
aspectRatios: VIDEO_RATIOS_HAPPYHORSE_11,
|
|
1255
1257
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1256
1258
|
resolutions: ["720p", "1080p"],
|
|
1257
1259
|
pricing: [
|
|
1258
|
-
{ identifier: "happyhorse", credits:
|
|
1260
|
+
{ identifier: "happyhorse", credits: 29, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1259
1261
|
]
|
|
1260
1262
|
},
|
|
1261
1263
|
"happyhorse-i2v": {
|
|
@@ -1263,14 +1265,14 @@ var VIDEO_MODELS = {
|
|
|
1263
1265
|
kind: "video",
|
|
1264
1266
|
modes: ["i2v"],
|
|
1265
1267
|
family: "HappyHorse",
|
|
1266
|
-
label: "HappyHorse I2V",
|
|
1268
|
+
label: "HappyHorse 1.1 I2V",
|
|
1267
1269
|
series: "HappyHorse",
|
|
1268
|
-
description: "HappyHorse image-to-video \u2014 3\u201315s at 720p/1080p, aspect ratio inferred from input image.",
|
|
1270
|
+
description: "HappyHorse 1.1 image-to-video \u2014 3\u201315s at 720p/1080p, aspect ratio inferred from input image, per-second pricing.",
|
|
1269
1271
|
useCases: ["motion", "creative"],
|
|
1270
1272
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1271
1273
|
resolutions: ["720p", "1080p"],
|
|
1272
1274
|
pricing: [
|
|
1273
|
-
{ identifier: "happyhorse-i2v", credits:
|
|
1275
|
+
{ identifier: "happyhorse-i2v", credits: 29, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1274
1276
|
]
|
|
1275
1277
|
},
|
|
1276
1278
|
"happyhorse-ref2v": {
|
|
@@ -1278,16 +1280,16 @@ var VIDEO_MODELS = {
|
|
|
1278
1280
|
kind: "video",
|
|
1279
1281
|
modes: ["i2v"],
|
|
1280
1282
|
family: "HappyHorse",
|
|
1281
|
-
label: "HappyHorse Ref2V",
|
|
1283
|
+
label: "HappyHorse 1.1 Ref2V",
|
|
1282
1284
|
series: "HappyHorse",
|
|
1283
|
-
description: "HappyHorse reference-to-video \u2014 1\u20139 reference images, 3\u201315s at 720p/1080p.",
|
|
1285
|
+
description: "HappyHorse 1.1 reference-to-video \u2014 1\u20139 reference images, 3\u201315s at 720p/1080p, per-second pricing.",
|
|
1284
1286
|
useCases: ["motion", "reference"],
|
|
1285
|
-
aspectRatios:
|
|
1287
|
+
aspectRatios: VIDEO_RATIOS_HAPPYHORSE_11,
|
|
1286
1288
|
durations: [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
|
1287
1289
|
resolutions: ["720p", "1080p"],
|
|
1288
1290
|
features: ["reference-image"],
|
|
1289
1291
|
pricing: [
|
|
1290
|
-
{ identifier: "happyhorse-ref2v", credits:
|
|
1292
|
+
{ identifier: "happyhorse-ref2v", credits: 29, note: "5s 720p default \u2014 per-second: ~5.7 cr/s @720p, ~7.3 cr/s @1080p" }
|
|
1291
1293
|
]
|
|
1292
1294
|
},
|
|
1293
1295
|
"happyhorse-edit": {
|
|
@@ -1301,7 +1303,7 @@ var VIDEO_MODELS = {
|
|
|
1301
1303
|
useCases: ["v2v", "restyle"],
|
|
1302
1304
|
resolutions: ["720p", "1080p"],
|
|
1303
1305
|
pricing: [
|
|
1304
|
-
{ identifier: "happyhorse-edit", credits:
|
|
1306
|
+
{ identifier: "happyhorse-edit", credits: 35, note: "720p default (5s-equivalent flat rate)" }
|
|
1305
1307
|
]
|
|
1306
1308
|
},
|
|
1307
1309
|
// ── Bytedance video lite/pro ──
|
|
@@ -2753,7 +2755,10 @@ var DURATION_PRICED_PROVIDERS = /* @__PURE__ */ new Set([
|
|
|
2753
2755
|
"seedance-2",
|
|
2754
2756
|
"seedance-2-fast",
|
|
2755
2757
|
"seedance-2-mini",
|
|
2756
|
-
"grok-imagine-video-1.5"
|
|
2758
|
+
"grok-imagine-video-1.5",
|
|
2759
|
+
"happyhorse",
|
|
2760
|
+
"happyhorse-i2v",
|
|
2761
|
+
"happyhorse-ref2v"
|
|
2757
2762
|
]);
|
|
2758
2763
|
var SEEDANCE_2_PROVIDERS = /* @__PURE__ */ new Set([
|
|
2759
2764
|
"seedance-2",
|
|
@@ -2780,12 +2785,18 @@ var SEEDANCE_2_REF_LIMITS = {
|
|
|
2780
2785
|
audio: 3
|
|
2781
2786
|
};
|
|
2782
2787
|
var SEEDANCE_2_EXTEND_STITCH = {
|
|
2783
|
-
/** Frames dropped from the END of the source clip
|
|
2788
|
+
/** Frames dropped from the END of the source clip (smart-cut FALLBACK —
|
|
2789
|
+
* used only when the PSNR boundary matcher finds no genuine match). */
|
|
2784
2790
|
trimTailFrames: 4,
|
|
2785
|
-
/** Frames dropped from the START of the generated extension
|
|
2791
|
+
/** Frames dropped from the START of the generated extension (smart-cut
|
|
2792
|
+
* fallback, see above). */
|
|
2786
2793
|
trimHeadFrames: 3,
|
|
2787
2794
|
/** Boundary audio fade length (seconds), timeline-preserving. */
|
|
2788
|
-
audioFadeSec: 0.15
|
|
2795
|
+
audioFadeSec: 0.15,
|
|
2796
|
+
/** Seconds of the source's TAIL passed as the @video_1 reference —
|
|
2797
|
+
* spike-validated: a short tail keeps the model focused on continuing
|
|
2798
|
+
* the boundary motion instead of re-staging the whole clip. */
|
|
2799
|
+
referenceTailSeconds: 1
|
|
2789
2800
|
};
|
|
2790
2801
|
var SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER = {
|
|
2791
2802
|
"seedance-2-fast": 15.2
|
|
@@ -2832,7 +2843,14 @@ var RESOLUTION_DURATION_PRICING = {
|
|
|
2832
2843
|
"grok-imagine-video-1.5": ["480p", "720p"],
|
|
2833
2844
|
// seedance-2-extend always uses a video ref, so pricing has no -ref
|
|
2834
2845
|
// dimension — duration tier + ":res" only (rates = seedance-2 -ref + stitch).
|
|
2835
|
-
"seedance-2-extend": ["480p", "720p", "1080p"]
|
|
2846
|
+
"seedance-2-extend": ["480p", "720p", "1080p"],
|
|
2847
|
+
// HappyHorse 1.1 — per-second billing at two published resolution rates
|
|
2848
|
+
// (kie.ai/happyhorse-1-1: 22.5 cr/s @720p, 29 cr/s @1080p, uniform across
|
|
2849
|
+
// t2v/i2v/ref2v). 720p first = billing default; the KIE-side default is
|
|
2850
|
+
// pinned to 720p via extraParams in backend kie/models.ts so render matches.
|
|
2851
|
+
"happyhorse": ["720p", "1080p"],
|
|
2852
|
+
"happyhorse-i2v": ["720p", "1080p"],
|
|
2853
|
+
"happyhorse-ref2v": ["720p", "1080p"]
|
|
2836
2854
|
};
|
|
2837
2855
|
var NATIVE_ADAPTIVE_ASPECT = {
|
|
2838
2856
|
"seedance-2": "adaptive",
|
|
@@ -2908,6 +2926,10 @@ var VIDEO_VARIABLE_PRICING = {
|
|
|
2908
2926
|
// Grok Imagine Video 1.5 — per-second billing split 480p/720p (no video-ref dimension).
|
|
2909
2927
|
"grok-imagine-video-1.5": "duration+resolution"
|
|
2910
2928
|
};
|
|
2929
|
+
var HAPPYHORSE_DURATION_TIERS = Array.from(
|
|
2930
|
+
{ length: 13 },
|
|
2931
|
+
(_, i) => ({ maxSeconds: i + 3, suffix: `${i + 3}s` })
|
|
2932
|
+
);
|
|
2911
2933
|
var VIDEO_DURATION_TIERS = {
|
|
2912
2934
|
"kling-3.0": [
|
|
2913
2935
|
{ maxSeconds: 5, suffix: "5s" },
|
|
@@ -3001,7 +3023,15 @@ var VIDEO_DURATION_TIERS = {
|
|
|
3001
3023
|
{ maxSeconds: 13, suffix: "13s" },
|
|
3002
3024
|
{ maxSeconds: 14, suffix: "14s" },
|
|
3003
3025
|
{ maxSeconds: 15, suffix: "15s" }
|
|
3004
|
-
]
|
|
3026
|
+
],
|
|
3027
|
+
// HappyHorse 1.1 (t2v / i2v / ref2v) — true per-second billing (KIE 22.5 cr/s
|
|
3028
|
+
// @720p, 29 cr/s @1080p, published on kie.ai/happyhorse-1-1). One tier per
|
|
3029
|
+
// allowed second (3–15s) so the composite identifier maps 1:1 to the seeded
|
|
3030
|
+
// price, combined with RESOLUTION_DURATION_PRICING for the ":720p"/":1080p"
|
|
3031
|
+
// suffix (e.g. "happyhorse-i2v:5s:720p").
|
|
3032
|
+
"happyhorse": HAPPYHORSE_DURATION_TIERS,
|
|
3033
|
+
"happyhorse-i2v": HAPPYHORSE_DURATION_TIERS,
|
|
3034
|
+
"happyhorse-ref2v": HAPPYHORSE_DURATION_TIERS
|
|
3005
3035
|
};
|
|
3006
3036
|
var COMPOSER_PLAN_MAP = {
|
|
3007
3037
|
"video-composer": { planType: "scene-graph", planField: "sceneGraph" },
|
|
@@ -4110,6 +4140,9 @@ function isCollectInEdge(e) {
|
|
|
4110
4140
|
}
|
|
4111
4141
|
|
|
4112
4142
|
// src/llm-models.ts
|
|
4143
|
+
var LLM_REASONING_EFFORTS = ["none", "low", "medium", "high", "xhigh", "max"];
|
|
4144
|
+
var EFFORT_TIER_BUMP = /* @__PURE__ */ new Set(["xhigh", "max"]);
|
|
4145
|
+
var EFFORT_RANK = { none: 0, low: 1, medium: 2, high: 3, xhigh: 4, max: 5 };
|
|
4113
4146
|
var LLM_MODELS = [
|
|
4114
4147
|
{
|
|
4115
4148
|
id: "gemini-3-flash",
|
|
@@ -4147,7 +4180,8 @@ var LLM_MODELS = [
|
|
|
4147
4180
|
structuredOutputMode: "anthropic-tool",
|
|
4148
4181
|
supportsImages: true,
|
|
4149
4182
|
maxOutputTokens: 16384,
|
|
4150
|
-
directFallbackModel: "claude-sonnet-4-6"
|
|
4183
|
+
directFallbackModel: "claude-sonnet-4-6",
|
|
4184
|
+
reasoningEfforts: ["low", "medium", "high", "max"]
|
|
4151
4185
|
},
|
|
4152
4186
|
{
|
|
4153
4187
|
id: "gpt-5.2",
|
|
@@ -4183,7 +4217,10 @@ var LLM_MODELS = [
|
|
|
4183
4217
|
structuredOutputMode: "anthropic-tool",
|
|
4184
4218
|
supportsImages: true,
|
|
4185
4219
|
maxOutputTokens: 16384,
|
|
4186
|
-
directFallbackModel: "claude-opus-4-7"
|
|
4220
|
+
directFallbackModel: "claude-opus-4-7",
|
|
4221
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
4222
|
+
supportsTemperature: false,
|
|
4223
|
+
preferKie: true
|
|
4187
4224
|
},
|
|
4188
4225
|
{
|
|
4189
4226
|
id: "gpt-5.4",
|
|
@@ -4194,7 +4231,93 @@ var LLM_MODELS = [
|
|
|
4194
4231
|
kieSlugOrModel: "gpt-5-4",
|
|
4195
4232
|
vendor: "openai",
|
|
4196
4233
|
supportsImages: true,
|
|
4197
|
-
maxOutputTokens: 16384
|
|
4234
|
+
maxOutputTokens: 16384,
|
|
4235
|
+
reasoningEfforts: ["low", "medium", "high"]
|
|
4236
|
+
},
|
|
4237
|
+
{
|
|
4238
|
+
id: "gpt-5.5",
|
|
4239
|
+
displayName: "GPT-5.5",
|
|
4240
|
+
desc: "Previous flagship GPT, deep reasoning",
|
|
4241
|
+
tier: "premium",
|
|
4242
|
+
kieFormat: "responses",
|
|
4243
|
+
kieSlugOrModel: "gpt-5-5",
|
|
4244
|
+
vendor: "openai",
|
|
4245
|
+
supportsImages: true,
|
|
4246
|
+
maxOutputTokens: 16384,
|
|
4247
|
+
reasoningEfforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
4248
|
+
supportsTemperature: false
|
|
4249
|
+
},
|
|
4250
|
+
{
|
|
4251
|
+
id: "gpt-5.6-luna",
|
|
4252
|
+
displayName: "GPT-5.6 Luna",
|
|
4253
|
+
desc: "Fastest GPT-5.6, high-volume workloads",
|
|
4254
|
+
tier: "economy",
|
|
4255
|
+
kieFormat: "responses",
|
|
4256
|
+
kieSlugOrModel: "gpt-5-6-luna",
|
|
4257
|
+
vendor: "openai",
|
|
4258
|
+
supportsImages: true,
|
|
4259
|
+
maxOutputTokens: 16384,
|
|
4260
|
+
reasoningEfforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
4261
|
+
supportsTemperature: false
|
|
4262
|
+
},
|
|
4263
|
+
{
|
|
4264
|
+
id: "gpt-5.6-terra",
|
|
4265
|
+
displayName: "GPT-5.6 Terra",
|
|
4266
|
+
desc: "Balanced GPT-5.6 for production work",
|
|
4267
|
+
tier: "standard",
|
|
4268
|
+
kieFormat: "responses",
|
|
4269
|
+
kieSlugOrModel: "gpt-5-6-terra",
|
|
4270
|
+
vendor: "openai",
|
|
4271
|
+
supportsImages: true,
|
|
4272
|
+
maxOutputTokens: 16384,
|
|
4273
|
+
reasoningEfforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
4274
|
+
supportsTemperature: false
|
|
4275
|
+
},
|
|
4276
|
+
{
|
|
4277
|
+
id: "gpt-5.6-sol",
|
|
4278
|
+
displayName: "GPT-5.6 Sol",
|
|
4279
|
+
desc: "Flagship GPT-5.6, deepest reasoning",
|
|
4280
|
+
tier: "premium",
|
|
4281
|
+
kieFormat: "responses",
|
|
4282
|
+
kieSlugOrModel: "gpt-5-6-sol",
|
|
4283
|
+
vendor: "openai",
|
|
4284
|
+
supportsImages: true,
|
|
4285
|
+
maxOutputTokens: 16384,
|
|
4286
|
+
reasoningEfforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
4287
|
+
supportsTemperature: false
|
|
4288
|
+
},
|
|
4289
|
+
// grok-4.5 deferred — KIE chat endpoint not yet live (2026-07-13); add entry + rate row + docs when it activates.
|
|
4290
|
+
{
|
|
4291
|
+
id: "claude-sonnet-5",
|
|
4292
|
+
displayName: "Claude Sonnet 5",
|
|
4293
|
+
desc: "Near-Opus quality at Sonnet cost",
|
|
4294
|
+
tier: "standard",
|
|
4295
|
+
kieFormat: "messages",
|
|
4296
|
+
kieSlugOrModel: "claude-sonnet-5",
|
|
4297
|
+
vendor: "anthropic",
|
|
4298
|
+
structuredOutputMode: "anthropic-tool",
|
|
4299
|
+
supportsImages: true,
|
|
4300
|
+
maxOutputTokens: 16384,
|
|
4301
|
+
directFallbackModel: "claude-sonnet-5",
|
|
4302
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
4303
|
+
supportsTemperature: false,
|
|
4304
|
+
preferKie: true
|
|
4305
|
+
},
|
|
4306
|
+
{
|
|
4307
|
+
id: "claude-opus-4.8",
|
|
4308
|
+
displayName: "Claude Opus 4.8",
|
|
4309
|
+
desc: "Most capable Claude, long-horizon work",
|
|
4310
|
+
tier: "premium",
|
|
4311
|
+
kieFormat: "messages",
|
|
4312
|
+
kieSlugOrModel: "claude-opus-4-8",
|
|
4313
|
+
vendor: "anthropic",
|
|
4314
|
+
structuredOutputMode: "anthropic-tool",
|
|
4315
|
+
supportsImages: true,
|
|
4316
|
+
maxOutputTokens: 16384,
|
|
4317
|
+
directFallbackModel: "claude-opus-4-8",
|
|
4318
|
+
reasoningEfforts: ["low", "medium", "high", "xhigh", "max"],
|
|
4319
|
+
supportsTemperature: false,
|
|
4320
|
+
preferKie: true
|
|
4198
4321
|
}
|
|
4199
4322
|
];
|
|
4200
4323
|
var LLM_MODEL_IDS = LLM_MODELS.map((m) => m.id);
|
|
@@ -4228,7 +4351,13 @@ var LLM_MODALITY_CAPS = {
|
|
|
4228
4351
|
"claude-sonnet-4.6": { image: true, video: false, audio: false },
|
|
4229
4352
|
"claude-opus-4.7": { image: true, video: false, audio: false },
|
|
4230
4353
|
"gpt-5.2": { image: true, video: false, audio: false },
|
|
4231
|
-
"gpt-5.4": { image: true, video: false, audio: false }
|
|
4354
|
+
"gpt-5.4": { image: true, video: false, audio: false },
|
|
4355
|
+
"gpt-5.5": { image: true, video: false, audio: false },
|
|
4356
|
+
"gpt-5.6-luna": { image: true, video: false, audio: false },
|
|
4357
|
+
"gpt-5.6-terra": { image: true, video: false, audio: false },
|
|
4358
|
+
"gpt-5.6-sol": { image: true, video: false, audio: false },
|
|
4359
|
+
"claude-sonnet-5": { image: true, video: false, audio: false },
|
|
4360
|
+
"claude-opus-4.8": { image: true, video: false, audio: false }
|
|
4232
4361
|
};
|
|
4233
4362
|
function getLlmModalityCaps(modelId) {
|
|
4234
4363
|
if (!modelId) return { image: true, video: false, audio: false };
|
|
@@ -4240,15 +4369,31 @@ function getLlmModel(id) {
|
|
|
4240
4369
|
function getLlmTier(id) {
|
|
4241
4370
|
return getLlmModel(id)?.tier ?? "standard";
|
|
4242
4371
|
}
|
|
4243
|
-
function
|
|
4372
|
+
function effectiveReasoningEffort(modelId, requested) {
|
|
4373
|
+
if (!requested || !(requested in EFFORT_RANK)) return void 0;
|
|
4374
|
+
const levels = getLlmModel(modelId ?? "")?.reasoningEfforts;
|
|
4375
|
+
if (!levels || levels.length === 0) return void 0;
|
|
4376
|
+
const req = requested;
|
|
4377
|
+
let best;
|
|
4378
|
+
for (const l of levels) {
|
|
4379
|
+
if (EFFORT_RANK[l] <= EFFORT_RANK[req] && (best === void 0 || EFFORT_RANK[l] > EFFORT_RANK[best])) best = l;
|
|
4380
|
+
}
|
|
4381
|
+
return best;
|
|
4382
|
+
}
|
|
4383
|
+
function buildLlmCreditIdentifier(feature, modelId, reasoningEffort) {
|
|
4244
4384
|
if (!modelId) return feature;
|
|
4245
|
-
|
|
4385
|
+
let tier = getLlmTier(modelId);
|
|
4386
|
+
const eff = effectiveReasoningEffort(modelId, reasoningEffort);
|
|
4387
|
+
if (eff !== void 0 && EFFORT_TIER_BUMP.has(eff)) {
|
|
4388
|
+
if (tier === "economy") tier = "standard";
|
|
4389
|
+
else if (tier === "standard") tier = "premium";
|
|
4390
|
+
}
|
|
4246
4391
|
if (tier === "standard") return feature;
|
|
4247
4392
|
return `${feature}:${tier}`;
|
|
4248
4393
|
}
|
|
4249
4394
|
function resolveLlmCreditId(feature, body) {
|
|
4250
|
-
const
|
|
4251
|
-
return buildLlmCreditIdentifier(feature, llmModel);
|
|
4395
|
+
const b = body;
|
|
4396
|
+
return buildLlmCreditIdentifier(feature, b?.llmModel, b?.reasoningEffort);
|
|
4252
4397
|
}
|
|
4253
4398
|
var VIDEO_ANALYSIS_LLM_MODELS = LLM_MODELS.filter((m) => getLlmModalityCaps(m.id).video && getLlmModalityCaps(m.id).audio).map((m) => m.id);
|
|
4254
4399
|
|
|
@@ -6883,6 +7028,12 @@ var NODE_MAPPABLE_FIELDS = {
|
|
|
6883
7028
|
// for back-compat with un-migrated workflow JSON). Mirrors text-to-video so
|
|
6884
7029
|
// fieldMappings/{} injection AND missing-ref detection work on the live node.
|
|
6885
7030
|
"generate-video": ["prompt", "negativePrompt"],
|
|
7031
|
+
// Trimmed multi-segment stitch variant of generate-video — prompt only, no
|
|
7032
|
+
// negativePrompt field on the node.
|
|
7033
|
+
"generate-video-pro": ["prompt"],
|
|
7034
|
+
// Span-replace sibling of generate-video-pro — prompt only, no
|
|
7035
|
+
// negativePrompt field on the node.
|
|
7036
|
+
"edit-video-pro": ["prompt"],
|
|
6886
7037
|
"video-analysis": ["analysisFocus", "youtubeUrl"],
|
|
6887
7038
|
"video-to-video": ["prompt"],
|
|
6888
7039
|
"text-to-speech": ["directText"],
|
|
@@ -10834,6 +10985,16 @@ var VIDEO_PRODUCER_TYPES = /* @__PURE__ */ new Set([
|
|
|
10834
10985
|
// through to the imageUrl/videoUrl/audioUrl/text default and downstream consumers
|
|
10835
10986
|
// could silently misroute the output.
|
|
10836
10987
|
"generate-video",
|
|
10988
|
+
// Generate Video Pro — Seedance-2-family multi-segment stitch variant of
|
|
10989
|
+
// generate-video (same "emits videoUrl" contract; a trimmed provider +
|
|
10990
|
+
// handle set). Must mirror generate-video here or its output can't connect
|
|
10991
|
+
// downstream (the recurring "cannot connect the outputs" bug class).
|
|
10992
|
+
"generate-video-pro",
|
|
10993
|
+
// Edit Video Pro — Seedance-2-family span-replace sibling of generate-
|
|
10994
|
+
// video-pro (same "emits videoUrl" contract; source video + prompt in,
|
|
10995
|
+
// ONE video out). Must mirror generate-video-pro here or its output can't
|
|
10996
|
+
// connect downstream (the recurring "cannot connect the outputs" bug class).
|
|
10997
|
+
"edit-video-pro",
|
|
10837
10998
|
"upload-video",
|
|
10838
10999
|
"youtube-video",
|
|
10839
11000
|
"combine-videos",
|
|
@@ -11971,6 +12132,7 @@ exports.DETAIL_VARIANTS = DETAIL_VARIANTS;
|
|
|
11971
12132
|
exports.DURATION_PRICED_PROVIDERS = DURATION_PRICED_PROVIDERS;
|
|
11972
12133
|
exports.DYNAMIC_PRODUCER_TYPES = DYNAMIC_PRODUCER_TYPES;
|
|
11973
12134
|
exports.DetectionResultSchema = DetectionResultSchema;
|
|
12135
|
+
exports.EFFORT_TIER_BUMP = EFFORT_TIER_BUMP;
|
|
11974
12136
|
exports.EMOTIONAL_BEAT = EMOTIONAL_BEAT;
|
|
11975
12137
|
exports.ENTITY_ASPECT_DEFAULTS = ENTITY_ASPECT_DEFAULTS;
|
|
11976
12138
|
exports.ENTITY_IMAGE_HANDLE_TYPES = ENTITY_IMAGE_HANDLE_TYPES;
|
|
@@ -12048,6 +12210,7 @@ exports.LLM_FEATURE_DEFAULTS = LLM_FEATURE_DEFAULTS;
|
|
|
12048
12210
|
exports.LLM_MODALITY_CAPS = LLM_MODALITY_CAPS;
|
|
12049
12211
|
exports.LLM_MODELS = LLM_MODELS;
|
|
12050
12212
|
exports.LLM_MODEL_IDS = LLM_MODEL_IDS;
|
|
12213
|
+
exports.LLM_REASONING_EFFORTS = LLM_REASONING_EFFORTS;
|
|
12051
12214
|
exports.LOCATION_ASSET_TYPES = LOCATION_ASSET_TYPES;
|
|
12052
12215
|
exports.LOCATION_ASSET_VARIANTS = LOCATION_ASSET_VARIANTS;
|
|
12053
12216
|
exports.LOCATION_ATMOSPHERE_PROVIDERS = LOCATION_ATMOSPHERE_PROVIDERS;
|
|
@@ -12162,6 +12325,7 @@ exports.SEASONS = SEASONS;
|
|
|
12162
12325
|
exports.SECTION_BOARD = SECTION_BOARD;
|
|
12163
12326
|
exports.SECTION_KINDS = SECTION_KINDS;
|
|
12164
12327
|
exports.SEEDANCE_2_EXTEND_STITCH = SEEDANCE_2_EXTEND_STITCH;
|
|
12328
|
+
exports.SEEDANCE_2_PROVIDERS = SEEDANCE_2_PROVIDERS;
|
|
12165
12329
|
exports.SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER = SEEDANCE_2_R2V_MAX_AUDIO_SEC_BY_PROVIDER;
|
|
12166
12330
|
exports.SEEDANCE_2_REF_LIMITS = SEEDANCE_2_REF_LIMITS;
|
|
12167
12331
|
exports.SEEDANCE_LIP_SYNC_PROVIDERS = SEEDANCE_LIP_SYNC_PROVIDERS;
|
|
@@ -12327,6 +12491,7 @@ exports.describeEdgeBehavior = describeEdgeBehavior;
|
|
|
12327
12491
|
exports.describeMaskRegion = describeMaskRegion;
|
|
12328
12492
|
exports.describeSlotControl = describeSlotControl;
|
|
12329
12493
|
exports.durationsByMode = durationsByMode;
|
|
12494
|
+
exports.effectiveReasoningEffort = effectiveReasoningEffort;
|
|
12330
12495
|
exports.encodeProviderItem = encodeProviderItem;
|
|
12331
12496
|
exports.ensureLocaleCatalogLoaded = ensureLocaleCatalogLoaded;
|
|
12332
12497
|
exports.entitySlotSchema = entitySlotSchema;
|