@shop-os/modelkit 0.6.0 → 0.6.1

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.js CHANGED
@@ -10917,6 +10917,30 @@ var klingV3Family = {
10917
10917
  }
10918
10918
  };
10919
10919
 
10920
+ // src/replicate-video-kinds.ts
10921
+ function replicateBaseModelId(providerModelId) {
10922
+ const colon = providerModelId.indexOf(":");
10923
+ return colon === -1 ? providerModelId : providerModelId.slice(0, colon);
10924
+ }
10925
+ var REPLICATE_VIDEO_KINDS = /* @__PURE__ */ new Map([
10926
+ ["kling-video/v2.5-turbo/pro/image-to-video", "kling"],
10927
+ ["kling-video/v3.0/pro/image-to-video", "kling"],
10928
+ ["kwaivgi/kling-v3-video", "kling"],
10929
+ ["kwaivgi/kling-v3-omni-video", "kling-omni"],
10930
+ ["minimax/hailuo-02", "hailuo"]
10931
+ ]);
10932
+ function videoKind(providerModelId) {
10933
+ return REPLICATE_VIDEO_KINDS.get(replicateBaseModelId(providerModelId));
10934
+ }
10935
+ var KLING_TIERS = [
10936
+ { mode: "standard", resolution: "720p" },
10937
+ { mode: "pro", resolution: "1080p" },
10938
+ { mode: "4k", resolution: "4k" }
10939
+ ];
10940
+ function klingTier(req) {
10941
+ return KLING_TIERS.find((tier) => tier.resolution === req.resolution) ?? KLING_TIERS.find((tier) => tier.mode === req.mode) ?? KLING_TIERS[0];
10942
+ }
10943
+
10920
10944
  // src/resolve-video-rules.ts
10921
10945
  var MOTION_PRO2 = "fal-ai/kling-video/v3/pro/motion-control";
10922
10946
  var MOTION_STANDARD2 = "fal-ai/kling-video/v3/standard/motion-control";
@@ -11090,6 +11114,16 @@ function h3EndFrameRatioWarning(model, ratio) {
11090
11114
  message: `${model.id} follows the end frame's aspect ratio`
11091
11115
  };
11092
11116
  }
11117
+ function isReplicateKling(model) {
11118
+ if (model.adapter !== "replicate") return false;
11119
+ const kind = videoKind(model.providerModelId);
11120
+ return kind === "kling" || kind === "kling-omni";
11121
+ }
11122
+ function fillReplicateKlingResolution(model, req) {
11123
+ if (isReplicateKling(model) && req.resolution === void 0) {
11124
+ req.resolution = klingTier(req).resolution;
11125
+ }
11126
+ }
11093
11127
  function applyFalVideoRules(model, req, callerRatio, warnings) {
11094
11128
  if (model.adapter !== "fal") return;
11095
11129
  const problem = falVideoProblem(model.providerModelId, withPromptForResolve(req));
@@ -14024,10 +14058,6 @@ function replicateError(cause, ctx) {
14024
14058
  const status = info.status ?? (nested.success ? nested.data.response?.status : void 0);
14025
14059
  return classifyThrown("replicate", cause, ctx.model.id, { status, body: info.body });
14026
14060
  }
14027
- function baseModelId(providerModelId) {
14028
- const colon = providerModelId.indexOf(":");
14029
- return colon === -1 ? providerModelId : providerModelId.slice(0, colon);
14030
- }
14031
14061
  function predictionErrorBody(cause) {
14032
14062
  const parsed = JsonValueSchema.safeParse(cause);
14033
14063
  if (parsed.success) return parsed.data;
@@ -14181,17 +14211,7 @@ var REPLICATE_IMAGE_KINDS = {
14181
14211
  "qwen-edit-apps/qwen-image-edit-plus-lora-skin": "qwen-edit"
14182
14212
  };
14183
14213
  function imageKind(providerModelId) {
14184
- return REPLICATE_IMAGE_KINDS[baseModelId(providerModelId)] ?? "generic";
14185
- }
14186
- var REPLICATE_VIDEO_KINDS = {
14187
- "kling-video/v2.5-turbo/pro/image-to-video": "kling",
14188
- "kling-video/v3.0/pro/image-to-video": "kling",
14189
- "kwaivgi/kling-v3-video": "kling",
14190
- "kwaivgi/kling-v3-omni-video": "kling-omni",
14191
- "minimax/hailuo-02": "hailuo"
14192
- };
14193
- function videoKind(providerModelId) {
14194
- return REPLICATE_VIDEO_KINDS[baseModelId(providerModelId)];
14214
+ return REPLICATE_IMAGE_KINDS[replicateBaseModelId(providerModelId)] ?? "generic";
14195
14215
  }
14196
14216
  function isReplicateVideoKnown(providerModelId) {
14197
14217
  return videoKind(providerModelId) !== void 0;
@@ -14202,7 +14222,7 @@ var REPLICATE_AUDIO_KINDS = {
14202
14222
  "google/lyria-2": "lyria"
14203
14223
  };
14204
14224
  function audioKind(providerModelId) {
14205
- return REPLICATE_AUDIO_KINDS[baseModelId(providerModelId)];
14225
+ return REPLICATE_AUDIO_KINDS[replicateBaseModelId(providerModelId)];
14206
14226
  }
14207
14227
  function isReplicateAudioKnown(providerModelId) {
14208
14228
  return audioKind(providerModelId) !== void 0;
@@ -14406,14 +14426,6 @@ function replicateVideoResolution(providerModelId, req) {
14406
14426
  if (kind === "hailuo") return hailuoResolution(req);
14407
14427
  return req.resolution;
14408
14428
  }
14409
- var KLING_TIERS = [
14410
- { mode: "standard", resolution: "720p" },
14411
- { mode: "pro", resolution: "1080p" },
14412
- { mode: "4k", resolution: "4k" }
14413
- ];
14414
- function klingTier(req) {
14415
- return KLING_TIERS.find((tier) => tier.resolution === req.resolution) ?? KLING_TIERS.find((tier) => tier.mode === req.mode) ?? KLING_TIERS[0];
14416
- }
14417
14429
  function klingOmniInput(req) {
14418
14430
  const input = {
14419
14431
  prompt: req.prompt,
@@ -15641,8 +15653,10 @@ function resolveVideoOptions(model, request, onUnsupported = "error") {
15641
15653
  warnings
15642
15654
  );
15643
15655
  if (aspectRatio !== void 0) merged.aspectRatio = aspectRatio;
15656
+ fillReplicateKlingResolution(model, merged);
15644
15657
  const resolution = resolveVideoResolution(merged.resolution, model, onUnsupported, warnings);
15645
15658
  if (resolution !== void 0) merged.resolution = resolution;
15659
+ if (isReplicateKling(model)) delete merged.mode;
15646
15660
  const duration = resolveDuration(
15647
15661
  merged.durationSeconds,
15648
15662
  c.durations,