@shop-os/modelkit 0.2.6 → 0.2.8
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 +63 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +52 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -2985,7 +2985,7 @@ function createTextSteps(initial, resolve, callerProviderOptions) {
|
|
|
2985
2985
|
}
|
|
2986
2986
|
|
|
2987
2987
|
// src/client.ts
|
|
2988
|
-
var
|
|
2988
|
+
var import_ai3 = require("ai");
|
|
2989
2989
|
var import_zod6 = require("zod");
|
|
2990
2990
|
|
|
2991
2991
|
// src/adapters/media-ref.ts
|
|
@@ -3067,10 +3067,12 @@ function toGeneratedImage(image) {
|
|
|
3067
3067
|
var import_anthropic = require("@ai-sdk/anthropic");
|
|
3068
3068
|
var import_google = require("@ai-sdk/google");
|
|
3069
3069
|
var import_openai = require("@ai-sdk/openai");
|
|
3070
|
+
var import_openai_compatible = require("@ai-sdk/openai-compatible");
|
|
3070
3071
|
var import_perplexity = require("@ai-sdk/perplexity");
|
|
3071
3072
|
var import_xai = require("@ai-sdk/xai");
|
|
3072
3073
|
var import_deepseek = require("@ai-sdk/deepseek");
|
|
3073
3074
|
var import_moonshotai = require("@ai-sdk/moonshotai");
|
|
3075
|
+
var import_ai2 = require("ai");
|
|
3074
3076
|
var import_zod5 = require("zod");
|
|
3075
3077
|
var TEXT_PROVIDERS = [
|
|
3076
3078
|
"openai",
|
|
@@ -3198,6 +3200,40 @@ function missingKey(ctx, name) {
|
|
|
3198
3200
|
retryable: false
|
|
3199
3201
|
});
|
|
3200
3202
|
}
|
|
3203
|
+
function minimaxDefaults(params) {
|
|
3204
|
+
return params.responseFormat?.type === "json" ? { reasoning_split: true, thinking: { type: "disabled" } } : { reasoning_split: true };
|
|
3205
|
+
}
|
|
3206
|
+
var JSON_FENCE = /^\s*```(?:json)?\s*\n?([\s\S]*?)\n?\s*```\s*$/;
|
|
3207
|
+
function stripJsonFence(text2) {
|
|
3208
|
+
const match = JSON_FENCE.exec(text2);
|
|
3209
|
+
return match?.[1] ?? text2;
|
|
3210
|
+
}
|
|
3211
|
+
function minimaxMiddleware(providerName) {
|
|
3212
|
+
return {
|
|
3213
|
+
specificationVersion: "v3",
|
|
3214
|
+
transformParams: async ({ params }) => {
|
|
3215
|
+
if (providerName !== "minimax") return params;
|
|
3216
|
+
const existing = params.providerOptions?.[providerName] ?? {};
|
|
3217
|
+
return {
|
|
3218
|
+
...params,
|
|
3219
|
+
providerOptions: {
|
|
3220
|
+
...params.providerOptions,
|
|
3221
|
+
[providerName]: { ...minimaxDefaults(params), ...existing }
|
|
3222
|
+
}
|
|
3223
|
+
};
|
|
3224
|
+
},
|
|
3225
|
+
wrapGenerate: async ({ doGenerate, params }) => {
|
|
3226
|
+
const result = await doGenerate();
|
|
3227
|
+
if (providerName !== "minimax" || params.responseFormat?.type !== "json") return result;
|
|
3228
|
+
return {
|
|
3229
|
+
...result,
|
|
3230
|
+
content: result.content.map(
|
|
3231
|
+
(part) => part.type === "text" ? { ...part, text: stripJsonFence(part.text) } : part
|
|
3232
|
+
)
|
|
3233
|
+
};
|
|
3234
|
+
}
|
|
3235
|
+
};
|
|
3236
|
+
}
|
|
3201
3237
|
var aiSdkTextAdapter = {
|
|
3202
3238
|
id: "ai-sdk-text",
|
|
3203
3239
|
languageModel(ctx) {
|
|
@@ -3220,11 +3256,22 @@ var aiSdkTextAdapter = {
|
|
|
3220
3256
|
return (0, import_deepseek.createDeepSeek)(settings)(route2.modelId);
|
|
3221
3257
|
case "moonshot":
|
|
3222
3258
|
return (0, import_moonshotai.createMoonshotAI)(settings)(route2.modelId);
|
|
3223
|
-
case "openai-compatible":
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3227
|
-
|
|
3259
|
+
case "openai-compatible": {
|
|
3260
|
+
const model = (0, import_openai_compatible.createOpenAICompatible)({
|
|
3261
|
+
name: route2.provider,
|
|
3262
|
+
apiKey,
|
|
3263
|
+
baseURL: route2.baseURL,
|
|
3264
|
+
fetch: ctx.fetch,
|
|
3265
|
+
...route2.headers ? { headers: route2.headers } : {}
|
|
3266
|
+
})(route2.modelId);
|
|
3267
|
+
return (0, import_ai2.wrapLanguageModel)({
|
|
3268
|
+
model,
|
|
3269
|
+
middleware: [
|
|
3270
|
+
minimaxMiddleware(route2.provider),
|
|
3271
|
+
(0, import_ai2.extractReasoningMiddleware)({ tagName: "think" })
|
|
3272
|
+
]
|
|
3273
|
+
});
|
|
3274
|
+
}
|
|
3228
3275
|
case "openai":
|
|
3229
3276
|
return (0, import_openai.createOpenAI)(settings)(route2.modelId);
|
|
3230
3277
|
}
|
|
@@ -3438,7 +3485,7 @@ function createModelKit(config, adapters) {
|
|
|
3438
3485
|
logCoercions(logger, model.modelId, warnings);
|
|
3439
3486
|
const abortSignal = combineSignals(req.abortSignal, call.signal);
|
|
3440
3487
|
if (abortSignal) options.abortSignal = abortSignal;
|
|
3441
|
-
const result = await (0,
|
|
3488
|
+
const result = await (0, import_ai3.generateImage)(options);
|
|
3442
3489
|
const images = result.images.map(
|
|
3443
3490
|
(file) => toGeneratedImage({ bytes: file.uint8Array, mime: file.mediaType })
|
|
3444
3491
|
);
|
|
@@ -3520,7 +3567,7 @@ function createModelKit(config, adapters) {
|
|
|
3520
3567
|
if (providerOptions) options.providerOptions = providerOptions;
|
|
3521
3568
|
if (abortSignal) options.abortSignal = abortSignal;
|
|
3522
3569
|
logCoercions(logger, model.modelId, warnings);
|
|
3523
|
-
const pending = (0,
|
|
3570
|
+
const pending = (0, import_ai3.experimental_generateVideo)(options);
|
|
3524
3571
|
let settled;
|
|
3525
3572
|
let failed = false;
|
|
3526
3573
|
const done = pending.then(async (result) => {
|
|
@@ -3711,7 +3758,7 @@ function createModelKit(config, adapters) {
|
|
|
3711
3758
|
(model) => textTarget(model, call),
|
|
3712
3759
|
options.providerOptions
|
|
3713
3760
|
);
|
|
3714
|
-
const result = await (0,
|
|
3761
|
+
const result = await (0, import_ai3.generateText)({
|
|
3715
3762
|
...options,
|
|
3716
3763
|
...textAbortOptions(options.abortSignal, call.signal),
|
|
3717
3764
|
model: target.languageModel,
|
|
@@ -3731,7 +3778,7 @@ function createModelKit(config, adapters) {
|
|
|
3731
3778
|
options.providerOptions
|
|
3732
3779
|
);
|
|
3733
3780
|
const callerOnFinish = options.onFinish;
|
|
3734
|
-
return (0,
|
|
3781
|
+
return (0, import_ai3.streamText)({
|
|
3735
3782
|
...options,
|
|
3736
3783
|
...textAbortOptions(options.abortSignal, call.signal),
|
|
3737
3784
|
model: target.languageModel,
|
|
@@ -3753,7 +3800,7 @@ function createModelKit(config, adapters) {
|
|
|
3753
3800
|
model: languageModel2,
|
|
3754
3801
|
providerOptions: mergeTextProviderOptions(entry, options.providerOptions)
|
|
3755
3802
|
};
|
|
3756
|
-
const result = await (0,
|
|
3803
|
+
const result = await (0, import_ai3.generateObject)(sdkOptions);
|
|
3757
3804
|
await emit(withRowUnit(textUsageEvent(entry, provider, result.usage)));
|
|
3758
3805
|
return result;
|
|
3759
3806
|
},
|
|
@@ -3770,7 +3817,7 @@ function createModelKit(config, adapters) {
|
|
|
3770
3817
|
await callerOnFinish?.(event);
|
|
3771
3818
|
}
|
|
3772
3819
|
};
|
|
3773
|
-
return (0,
|
|
3820
|
+
return (0, import_ai3.streamObject)(sdkOptions);
|
|
3774
3821
|
}
|
|
3775
3822
|
};
|
|
3776
3823
|
}
|
|
@@ -5486,12 +5533,12 @@ async function prepareGoogleMediaPart(ref, mediaType, ctx) {
|
|
|
5486
5533
|
|
|
5487
5534
|
// src/adapters/google-image.ts
|
|
5488
5535
|
var import_google2 = require("@ai-sdk/google");
|
|
5489
|
-
var
|
|
5536
|
+
var import_ai4 = require("ai");
|
|
5490
5537
|
var import_zod11 = require("zod");
|
|
5491
5538
|
var GEMINI_IMAGE_TIMEOUT_MS = 6e5;
|
|
5492
5539
|
var defaultGoogleImageDeps = {
|
|
5493
5540
|
createGoogleClient: (opts) => (0, import_google2.createGoogleGenerativeAI)(opts),
|
|
5494
|
-
runTextGeneration: (opts) => (0,
|
|
5541
|
+
runTextGeneration: (opts) => (0, import_ai4.generateText)(opts)
|
|
5495
5542
|
};
|
|
5496
5543
|
var causeChainNodeSchema = import_zod11.z.object({
|
|
5497
5544
|
message: import_zod11.z.string().optional(),
|
|
@@ -7218,13 +7265,13 @@ async function generateReplicateAudio(req, ctx, deps) {
|
|
|
7218
7265
|
}
|
|
7219
7266
|
|
|
7220
7267
|
// src/adapters/xai-video.ts
|
|
7221
|
-
var
|
|
7268
|
+
var import_ai5 = require("ai");
|
|
7222
7269
|
var import_xai2 = require("@ai-sdk/xai");
|
|
7223
7270
|
var import_zod15 = require("zod");
|
|
7224
7271
|
var POLL_INTERVAL_MS2 = 1e4;
|
|
7225
7272
|
var POLL_TIMEOUT_MS2 = 15 * 6e4;
|
|
7226
7273
|
var defaultXaiDeps = {
|
|
7227
|
-
createXaiClient: () => ({ generateVideo:
|
|
7274
|
+
createXaiClient: () => ({ generateVideo: import_ai5.experimental_generateVideo })
|
|
7228
7275
|
};
|
|
7229
7276
|
function createXaiVideoAdapter(deps = defaultXaiDeps) {
|
|
7230
7277
|
return {
|