@ai-sdk/moonshotai 3.0.55 → 3.0.58

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 CHANGED
@@ -1,5 +1,29 @@
1
1
  # @ai-sdk/moonshotai
2
2
 
3
+ ## 3.0.58
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [af9597b]
8
+ - Updated dependencies [bc49f78]
9
+ - @ai-sdk/provider-utils@5.0.49
10
+
11
+ ## 3.0.57
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [be877ff]
16
+ - @ai-sdk/provider-utils@5.0.48
17
+
18
+ ## 3.0.56
19
+
20
+ ### Patch Changes
21
+
22
+ - Updated dependencies [fe07867]
23
+ - Updated dependencies [a4b0940]
24
+ - Updated dependencies [771e74b]
25
+ - @ai-sdk/provider-utils@5.0.47
26
+
3
27
  ## 3.0.55
4
28
 
5
29
  ### Patch Changes
package/dist/index.js CHANGED
@@ -241,7 +241,7 @@ function prepareTools({
241
241
  toolChoice,
242
242
  modelId
243
243
  }) {
244
- tools = (tools == null ? void 0 : tools.length) ? tools : void 0;
244
+ tools = tools?.length ? tools : void 0;
245
245
  const toolWarnings = [];
246
246
  if (tools == null) {
247
247
  return { tools: void 0, toolChoice: void 0, toolWarnings };
@@ -350,7 +350,6 @@ async function convertToMoonshotAIChatMessages({
350
350
  providerOptionsName = "moonshotai",
351
351
  responseFormat
352
352
  }) {
353
- var _a, _b;
354
353
  const messages = [];
355
354
  const warnings = [];
356
355
  const modelFamily = modelId == null ? "unknown" : getMoonshotAIModelFamily(modelId);
@@ -360,13 +359,13 @@ async function convertToMoonshotAIChatMessages({
360
359
  providerOptions,
361
360
  schema: moonshotaiAllMessageProviderOptions
362
361
  });
363
- if ((moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.partial) === true && role !== "assistant") {
362
+ if (moonshotMessageOptions?.partial === true && role !== "assistant") {
364
363
  throw new InvalidPromptError({
365
364
  prompt,
366
365
  message: "Moonshot AI Partial Mode requires `partial: true` on an assistant message."
367
366
  });
368
367
  }
369
- if ((moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.tools) != null && role !== "system") {
368
+ if (moonshotMessageOptions?.tools != null && role !== "system") {
370
369
  throw new InvalidPromptError({
371
370
  prompt,
372
371
  message: "Moonshot dynamic tools must be configured on a system message."
@@ -374,7 +373,7 @@ async function convertToMoonshotAIChatMessages({
374
373
  }
375
374
  switch (role) {
376
375
  case "system": {
377
- if ((_a = moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.tools) == null ? void 0 : _a.length) {
376
+ if (moonshotMessageOptions?.tools?.length) {
378
377
  if (content.length > 0) {
379
378
  throw new InvalidPromptError({
380
379
  prompt,
@@ -390,17 +389,17 @@ async function convertToMoonshotAIChatMessages({
390
389
  break;
391
390
  }
392
391
  const { tools, toolWarnings } = prepareTools({
393
- modelId: modelId != null ? modelId : "custom-model",
392
+ modelId: modelId ?? "custom-model",
394
393
  tools: moonshotMessageOptions.tools
395
394
  });
396
395
  warnings.push(...toolWarnings);
397
- messages.push({ role: "system", tools: tools != null ? tools : [] });
396
+ messages.push({ role: "system", tools: tools ?? [] });
398
397
  break;
399
398
  }
400
399
  messages.push({
401
400
  role: "system",
402
401
  content,
403
- ...(moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.name) != null && {
402
+ ...moonshotMessageOptions?.name != null && {
404
403
  name: moonshotMessageOptions.name
405
404
  }
406
405
  });
@@ -411,7 +410,7 @@ async function convertToMoonshotAIChatMessages({
411
410
  messages.push({
412
411
  role: "user",
413
412
  content: content[0].text,
414
- ...(moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.name) != null && {
413
+ ...moonshotMessageOptions?.name != null && {
415
414
  name: moonshotMessageOptions.name
416
415
  }
417
416
  });
@@ -504,21 +503,21 @@ async function convertToMoonshotAIChatMessages({
504
503
  }
505
504
  }
506
505
  }),
507
- ...(moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.name) != null && {
506
+ ...moonshotMessageOptions?.name != null && {
508
507
  name: moonshotMessageOptions.name
509
508
  }
510
509
  });
511
510
  break;
512
511
  }
513
512
  case "assistant": {
514
- if ((moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.partial) === true) {
513
+ if (moonshotMessageOptions?.partial === true) {
515
514
  if (index !== prompt.length - 1) {
516
515
  throw new InvalidPromptError({
517
516
  prompt,
518
517
  message: "Moonshot AI Partial Mode requires the partial assistant message to be the final message."
519
518
  });
520
519
  }
521
- if ((responseFormat == null ? void 0 : responseFormat.type) === "json_object") {
520
+ if (responseFormat?.type === "json_object") {
522
521
  throw new InvalidPromptError({
523
522
  prompt,
524
523
  message: "Moonshot AI Partial Mode cannot be combined with JSON object response format."
@@ -554,10 +553,10 @@ async function convertToMoonshotAIChatMessages({
554
553
  messages.push({
555
554
  role: "assistant",
556
555
  content: toolCalls.length > 0 ? text || null : text,
557
- ...(moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.name) != null && {
556
+ ...moonshotMessageOptions?.name != null && {
558
557
  name: moonshotMessageOptions.name
559
558
  },
560
- ...(moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.partial) === true && {
559
+ ...moonshotMessageOptions?.partial === true && {
561
560
  partial: true
562
561
  },
563
562
  ...reasoning.length > 0 ? { reasoning_content: reasoning } : {},
@@ -566,7 +565,7 @@ async function convertToMoonshotAIChatMessages({
566
565
  break;
567
566
  }
568
567
  case "tool": {
569
- if ((moonshotMessageOptions == null ? void 0 : moonshotMessageOptions.name) != null) {
568
+ if (moonshotMessageOptions?.name != null) {
570
569
  warnings.push({
571
570
  type: "unsupported",
572
571
  feature: "message name on tool messages"
@@ -584,7 +583,7 @@ async function convertToMoonshotAIChatMessages({
584
583
  contentValue = output.value;
585
584
  break;
586
585
  case "execution-denied":
587
- contentValue = (_b = output.reason) != null ? _b : "Tool call execution denied.";
586
+ contentValue = output.reason ?? "Tool call execution denied.";
588
587
  break;
589
588
  case "content":
590
589
  case "json":
@@ -612,14 +611,13 @@ async function convertToMoonshotAIChatMessages({
612
611
  // src/convert-moonshotai-chat-usage.ts
613
612
  import { createNullLanguageModelUsage } from "@ai-sdk/provider-utils";
614
613
  function convertMoonshotAIChatUsage(usage) {
615
- var _a, _b, _c, _d, _e, _f, _g;
616
614
  if (usage == null) {
617
615
  return createNullLanguageModelUsage();
618
616
  }
619
- const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;
620
- const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;
621
- const cacheReadTokens = (_e = (_d = usage.cached_tokens) != null ? _d : (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _e : 0;
622
- const reasoningTokens = (_g = (_f = usage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;
617
+ const promptTokens = usage.prompt_tokens ?? 0;
618
+ const completionTokens = usage.completion_tokens ?? 0;
619
+ const cacheReadTokens = usage.cached_tokens ?? usage.prompt_tokens_details?.cached_tokens ?? 0;
620
+ const reasoningTokens = usage.completion_tokens_details?.reasoning_tokens ?? 0;
623
621
  return {
624
622
  inputTokens: {
625
623
  total: promptTokens,
@@ -760,11 +758,10 @@ var moonshotAIChatChunkSchema = lazySchema(
760
758
 
761
759
  // src/moonshotai-chat-language-model.ts
762
760
  function createMoonshotAIStreamError(error, data) {
763
- var _a, _b;
764
761
  return createProviderStreamError({
765
762
  message: error.message,
766
- type: (_a = error.type) != null ? _a : void 0,
767
- code: (_b = error.code) != null ? _b : void 0,
763
+ type: error.type ?? void 0,
764
+ code: error.code ?? void 0,
768
765
  ...getMoonshotAIStreamErrorMetadata(error.type),
769
766
  data
770
767
  });
@@ -848,12 +845,11 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
848
845
  toolChoice,
849
846
  tools
850
847
  }) {
851
- var _a, _b, _c, _d, _e;
852
- const moonshotOptions = (_a = await parseProviderOptions2({
848
+ const moonshotOptions = await parseProviderOptions2({
853
849
  provider: this.providerOptionsName,
854
850
  providerOptions,
855
851
  schema: moonshotaiLanguageModelOptions
856
- })) != null ? _a : {};
852
+ }) ?? {};
857
853
  const allWarnings = [];
858
854
  if (topK != null) {
859
855
  allWarnings.push({ type: "unsupported", feature: "topK" });
@@ -899,7 +895,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
899
895
  const requestedThinking = moonshotOptions.thinking;
900
896
  const requestedReasoningEffort = moonshotOptions.reasoningEffort;
901
897
  const preserveReasoning = moonshotOptions.reasoningHistory === "preserved";
902
- if ((requestedThinking == null ? void 0 : requestedThinking.budgetTokens) != null) {
898
+ if (requestedThinking?.budgetTokens != null) {
903
899
  allWarnings.push({
904
900
  type: "deprecated",
905
901
  setting: "providerOptions.moonshotai.thinking.budgetTokens",
@@ -933,7 +929,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
933
929
  details: "Kimi K3 reasoning cannot be disabled."
934
930
  });
935
931
  }
936
- reasoningEffort = requestedReasoningEffort != null ? requestedReasoningEffort : isCustomReasoning(reasoning) && reasoning !== "none" ? mapReasoningToProviderEffort({
932
+ reasoningEffort = requestedReasoningEffort ?? (isCustomReasoning(reasoning) && reasoning !== "none" ? mapReasoningToProviderEffort({
937
933
  reasoning,
938
934
  effortMap: {
939
935
  minimal: "low",
@@ -943,28 +939,28 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
943
939
  xhigh: "max"
944
940
  },
945
941
  warnings: allWarnings
946
- }) : void 0;
942
+ }) : void 0);
947
943
  break;
948
944
  }
949
945
  case "kimi-k2.7": {
950
946
  warnUnsupportedReasoningEffort();
951
- if ((requestedThinking == null ? void 0 : requestedThinking.type) === "disabled" || reasoning === "none") {
947
+ if (requestedThinking?.type === "disabled" || reasoning === "none") {
952
948
  allWarnings.push({
953
949
  type: "unsupported",
954
- feature: (requestedThinking == null ? void 0 : requestedThinking.type) === "disabled" ? 'thinking.type "disabled"' : 'reasoning "none"',
950
+ feature: requestedThinking?.type === "disabled" ? 'thinking.type "disabled"' : 'reasoning "none"',
955
951
  details: "Kimi K2.7 thinking cannot be disabled."
956
952
  });
957
- } else if ((requestedThinking == null ? void 0 : requestedThinking.type) === "enabled") {
953
+ } else if (requestedThinking?.type === "enabled") {
958
954
  thinking = { type: "enabled" };
959
955
  }
960
956
  break;
961
957
  }
962
958
  case "kimi-k2.6": {
963
959
  warnUnsupportedReasoningEffort();
964
- const thinkingType = (_b = requestedThinking == null ? void 0 : requestedThinking.type) != null ? _b : isCustomReasoning(reasoning) ? reasoning === "none" ? "disabled" : "enabled" : void 0;
960
+ const thinkingType = requestedThinking?.type ?? (isCustomReasoning(reasoning) ? reasoning === "none" ? "disabled" : "enabled" : void 0);
965
961
  if (thinkingType != null || preserveReasoning) {
966
962
  thinking = {
967
- type: thinkingType != null ? thinkingType : "enabled",
963
+ type: thinkingType ?? "enabled",
968
964
  ...preserveReasoning ? { keep: "all" } : {}
969
965
  };
970
966
  }
@@ -972,7 +968,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
972
968
  }
973
969
  case "kimi-k2.5": {
974
970
  warnUnsupportedReasoningEffort();
975
- const thinkingType = (_c = requestedThinking == null ? void 0 : requestedThinking.type) != null ? _c : isCustomReasoning(reasoning) ? reasoning === "none" ? "disabled" : "enabled" : void 0;
971
+ const thinkingType = requestedThinking?.type ?? (isCustomReasoning(reasoning) ? reasoning === "none" ? "disabled" : "enabled" : void 0);
976
972
  if (thinkingType != null) {
977
973
  thinking = { type: thinkingType };
978
974
  }
@@ -1016,7 +1012,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1016
1012
  details: "Use providerOptions.moonshotai.thinking to control thinking on custom models."
1017
1013
  });
1018
1014
  }
1019
- reasoningEffort = requestedReasoningEffort != null ? requestedReasoningEffort : isCustomReasoning(reasoning) && reasoning !== "none" ? mapReasoningToProviderEffort({
1015
+ reasoningEffort = requestedReasoningEffort ?? (isCustomReasoning(reasoning) && reasoning !== "none" ? mapReasoningToProviderEffort({
1020
1016
  reasoning,
1021
1017
  effortMap: {
1022
1018
  minimal: "low",
@@ -1026,8 +1022,8 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1026
1022
  xhigh: "max"
1027
1023
  },
1028
1024
  warnings: allWarnings
1029
- }) : void 0;
1030
- if ((requestedThinking == null ? void 0 : requestedThinking.type) != null) {
1025
+ }) : void 0);
1026
+ if (requestedThinking?.type != null) {
1031
1027
  thinking = { type: requestedThinking.type };
1032
1028
  }
1033
1029
  if (preserveReasoning) {
@@ -1040,14 +1036,14 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1040
1036
  }
1041
1037
  }
1042
1038
  let response_format;
1043
- if ((responseFormat == null ? void 0 : responseFormat.type) === "json") {
1039
+ if (responseFormat?.type === "json") {
1044
1040
  if (this.config.supportsStructuredOutputs === true && responseFormat.schema != null) {
1045
1041
  const { $schema: _$schema, ...schemaWithoutDollarSchema } = responseFormat.schema;
1046
1042
  response_format = {
1047
1043
  type: "json_schema",
1048
1044
  json_schema: {
1049
- name: (_d = responseFormat.name) != null ? _d : "response",
1050
- strict: (_e = moonshotOptions.strictJsonSchema) != null ? _e : true,
1045
+ name: responseFormat.name ?? "response",
1046
+ strict: moonshotOptions.strictJsonSchema ?? true,
1051
1047
  schema: normalizeJsonSchemaForMFJS(schemaWithoutDollarSchema)
1052
1048
  }
1053
1049
  };
@@ -1097,7 +1093,6 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1097
1093
  };
1098
1094
  }
1099
1095
  async doGenerate(options) {
1100
- var _a, _b, _c, _d;
1101
1096
  const { args, warnings } = await this.getArgs({ ...options });
1102
1097
  const {
1103
1098
  responseHeaders,
@@ -1108,7 +1103,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1108
1103
  path: "/chat/completions",
1109
1104
  modelId: this.modelId
1110
1105
  }),
1111
- headers: combineHeaders((_b = (_a = this.config).headers) == null ? void 0 : _b.call(_a), options.headers),
1106
+ headers: combineHeaders(this.config.headers?.(), options.headers),
1112
1107
  body: args,
1113
1108
  failedResponseHandler: this.failedResponseHandler,
1114
1109
  successfulResponseHandler: createJsonResponseHandler(
@@ -1129,7 +1124,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1129
1124
  type: "tool-call",
1130
1125
  toolCallId: toolCall.id || generateId(),
1131
1126
  toolName: toolCall.function.name,
1132
- input: (_c = toolCall.function.arguments) != null ? _c : ""
1127
+ input: toolCall.function.arguments ?? ""
1133
1128
  });
1134
1129
  }
1135
1130
  }
@@ -1141,7 +1136,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1141
1136
  content,
1142
1137
  finishReason: {
1143
1138
  unified: mapMoonshotAIFinishReason(choice.finish_reason),
1144
- raw: (_d = choice.finish_reason) != null ? _d : void 0
1139
+ raw: choice.finish_reason ?? void 0
1145
1140
  },
1146
1141
  usage: convertMoonshotAIChatUsage(responseBody.usage),
1147
1142
  providerMetadata: {
@@ -1169,7 +1164,6 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1169
1164
  };
1170
1165
  }
1171
1166
  async doStream(options) {
1172
- var _a, _b;
1173
1167
  const { args, warnings } = await this.getArgs({ ...options });
1174
1168
  const body = {
1175
1169
  ...args,
@@ -1183,7 +1177,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1183
1177
  path: "/chat/completions",
1184
1178
  modelId: this.modelId
1185
1179
  }),
1186
- headers: combineHeaders((_b = (_a = this.config).headers) == null ? void 0 : _b.call(_a), options.headers),
1180
+ headers: combineHeaders(this.config.headers?.(), options.headers),
1187
1181
  body,
1188
1182
  failedResponseHandler: this.failedResponseHandler,
1189
1183
  successfulResponseHandler: createEventSourceResponseHandler(
@@ -1218,7 +1212,6 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1218
1212
  controller.enqueue({ type: "stream-start", warnings });
1219
1213
  },
1220
1214
  transform(chunk, controller) {
1221
- var _a2, _b2;
1222
1215
  if (options.includeRawChunks) {
1223
1216
  controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
1224
1217
  }
@@ -1250,22 +1243,22 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1250
1243
  responseObject = value.object;
1251
1244
  }
1252
1245
  const choice = value.choices[0];
1253
- if ((choice == null ? void 0 : choice.usage) != null) {
1246
+ if (choice?.usage != null) {
1254
1247
  choiceUsage = choice.usage;
1255
1248
  }
1256
- if ((choice == null ? void 0 : choice.index) != null) {
1249
+ if (choice?.index != null) {
1257
1250
  choiceIndex = choice.index;
1258
1251
  }
1259
- if ((choice == null ? void 0 : choice.finish_reason) != null) {
1252
+ if (choice?.finish_reason != null) {
1260
1253
  finishReason = {
1261
1254
  unified: mapMoonshotAIFinishReason(choice.finish_reason),
1262
1255
  raw: choice.finish_reason
1263
1256
  };
1264
1257
  }
1265
- if (((_a2 = choice == null ? void 0 : choice.logprobs) == null ? void 0 : _a2.content) != null) {
1258
+ if (choice?.logprobs?.content != null) {
1266
1259
  contentLogprobs.push(...choice.logprobs.content);
1267
1260
  }
1268
- if ((choice == null ? void 0 : choice.delta) == null) {
1261
+ if (choice?.delta == null) {
1269
1262
  return;
1270
1263
  }
1271
1264
  const delta = choice.delta;
@@ -1314,7 +1307,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1314
1307
  isActiveReasoning = false;
1315
1308
  }
1316
1309
  for (const [index, toolCallDelta] of delta.tool_calls.entries()) {
1317
- const toolCallIndex = (_b2 = toolCallDelta.index) != null ? _b2 : index;
1310
+ const toolCallIndex = toolCallDelta.index ?? index;
1318
1311
  if (toolCallDelta.type != null) {
1319
1312
  toolCallTypes.set(toolCallIndex, toolCallDelta.type);
1320
1313
  }
@@ -1336,7 +1329,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1336
1329
  controller.enqueue({
1337
1330
  type: "finish",
1338
1331
  finishReason,
1339
- usage: convertMoonshotAIChatUsage(topLevelUsage != null ? topLevelUsage : choiceUsage),
1332
+ usage: convertMoonshotAIChatUsage(topLevelUsage ?? choiceUsage),
1340
1333
  providerMetadata: {
1341
1334
  [providerOptionsName]: {
1342
1335
  ...contentLogprobs.length > 0 && {
@@ -1361,7 +1354,7 @@ var MoonshotAIChatLanguageModel = class _MoonshotAIChatLanguageModel {
1361
1354
  };
1362
1355
 
1363
1356
  // src/version.ts
1364
- var VERSION = true ? "3.0.55" : "0.0.0-test";
1357
+ var VERSION = true ? "3.0.58" : "0.0.0-test";
1365
1358
 
1366
1359
  // src/moonshotai-provider.ts
1367
1360
  var defaultBaseURL = "https://api.moonshot.ai/v1";
@@ -1369,8 +1362,7 @@ function getModelStructuredOutputSupport(modelId) {
1369
1362
  return modelId.startsWith("kimi-k") || modelId === "moonshot-v1-8k" || modelId === "moonshot-v1-32k" || modelId === "moonshot-v1-128k" || modelId === "moonshot-v1-auto" || modelId === "moonshot-v1-8k-vision-preview" || modelId === "moonshot-v1-32k-vision-preview" || modelId === "moonshot-v1-128k-vision-preview";
1370
1363
  }
1371
1364
  function createMoonshotAI(options = {}) {
1372
- var _a;
1373
- const baseURL = withoutTrailingSlash((_a = options.baseURL) != null ? _a : defaultBaseURL);
1365
+ const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);
1374
1366
  const getHeaders = () => withUserAgentSuffix(
1375
1367
  {
1376
1368
  Authorization: `Bearer ${loadApiKey({
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/moonshotai-provider.ts","../src/moonshotai-chat-language-model.ts","../src/convert-to-moonshotai-chat-messages.ts","../src/moonshotai-chat-options.ts","../src/moonshotai-prepare-tools.ts","../src/normalize-json-schema-for-mfjs.ts","../src/convert-moonshotai-chat-usage.ts","../src/map-moonshotai-finish-reason.ts","../src/moonshotai-chat-api-types.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type LanguageModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { MoonshotAIChatLanguageModel } from './moonshotai-chat-language-model';\nimport type { MoonshotAIChatModelId } from './moonshotai-chat-options';\nimport { VERSION } from './version';\n\nexport type { MoonshotAIErrorData } from './moonshotai-chat-api-types';\n\nexport interface MoonshotAIProviderSettings {\n /**\n * Moonshot API key. Default value is taken from the `MOONSHOT_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface MoonshotAIProvider extends ProviderV4 {\n /**\n * Creates a model for text generation.\n */\n (modelId: MoonshotAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n chatModel(modelId: MoonshotAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a language model for text generation.\n */\n languageModel(modelId: MoonshotAIChatModelId): LanguageModelV4;\n}\n\nconst defaultBaseURL = 'https://api.moonshot.ai/v1';\n\nexport function getModelStructuredOutputSupport(\n modelId: MoonshotAIChatModelId,\n): boolean {\n return (\n modelId.startsWith('kimi-k') ||\n modelId === 'moonshot-v1-8k' ||\n modelId === 'moonshot-v1-32k' ||\n modelId === 'moonshot-v1-128k' ||\n modelId === 'moonshot-v1-auto' ||\n modelId === 'moonshot-v1-8k-vision-preview' ||\n modelId === 'moonshot-v1-32k-vision-preview' ||\n modelId === 'moonshot-v1-128k-vision-preview'\n );\n}\n\nexport function createMoonshotAI(\n options: MoonshotAIProviderSettings = {},\n): MoonshotAIProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'MOONSHOT_API_KEY',\n description: 'Moonshot API key',\n })}`,\n ...options.headers,\n },\n `ai-sdk/moonshotai/${VERSION}`,\n );\n\n const createChatModel = (modelId: MoonshotAIChatModelId) => {\n return new MoonshotAIChatLanguageModel(modelId, {\n provider: 'moonshotai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n includeUsage: true,\n supportsStructuredOutputs: getModelStructuredOutputSupport(modelId),\n });\n };\n\n const provider = (modelId: MoonshotAIChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const moonshotai = createMoonshotAI();\n","import type {\n APICallError,\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4Content,\n LanguageModelV4FinishReason,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n createLanguageModelResponseMetadata as getResponseMetadata,\n createProviderStreamError,\n generateId,\n isCustomReasoning,\n mapReasoningToProviderEffort,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n StreamingToolCallTracker,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n type InferSchema,\n type ParseResult,\n type ResponseHandler,\n} from '@ai-sdk/provider-utils';\nimport { convertToMoonshotAIChatMessages } from './convert-to-moonshotai-chat-messages';\nimport { convertMoonshotAIChatUsage } from './convert-moonshotai-chat-usage';\nimport { mapMoonshotAIFinishReason } from './map-moonshotai-finish-reason';\nimport {\n moonshotAIChatChunkSchema,\n moonshotAIChatResponseSchema,\n moonshotAIErrorSchema,\n type MoonshotAIChatLogprob,\n type MoonshotAIChatTokenUsage,\n} from './moonshotai-chat-api-types';\nimport {\n getMoonshotAIModelFamily,\n isMoonshotAIKimiModel,\n moonshotaiLanguageModelOptions,\n type MoonshotAIChatModelId,\n} from './moonshotai-chat-options';\nimport { normalizeJsonSchemaForMFJS } from './normalize-json-schema-for-mfjs';\nimport { prepareTools } from './moonshotai-prepare-tools';\n\nexport type MoonshotAIChatConfig = {\n provider: string;\n headers?: () => Record<string, string | undefined>;\n url: (options: { modelId: string; path: string }) => string;\n fetch?: FetchFunction;\n includeUsage?: boolean;\n supportsStructuredOutputs?: boolean;\n};\n\nfunction createMoonshotAIStreamError(\n error: { message: string; type?: string | null; code?: string | null },\n data: unknown,\n) {\n return createProviderStreamError({\n message: error.message,\n type: error.type ?? undefined,\n code: error.code ?? undefined,\n ...getMoonshotAIStreamErrorMetadata(error.type),\n data,\n });\n}\n\nfunction getMoonshotAIStreamErrorMetadata(type?: string | null): {\n statusCode?: number;\n isRetryable?: boolean;\n} {\n switch (type) {\n case 'rate_limit_exceeded':\n case 'rate_limit_error':\n return { statusCode: 429, isRetryable: true };\n case 'server_error':\n case 'api_error':\n case 'internal_server_error':\n return { statusCode: 500, isRetryable: true };\n case 'overloaded_error':\n case 'service_unavailable':\n return { statusCode: 503, isRetryable: true };\n case 'timeout':\n case 'timeout_error':\n return { statusCode: 504, isRetryable: true };\n case 'authentication_error':\n case 'invalid_api_key':\n return { statusCode: 401, isRetryable: false };\n case 'permission_error':\n return { statusCode: 403, isRetryable: false };\n case 'not_found_error':\n case 'model_not_found':\n return { statusCode: 404, isRetryable: false };\n case 'bad_request':\n case 'context_length_exceeded':\n case 'invalid_request_error':\n return { statusCode: 400, isRetryable: false };\n default:\n return {};\n }\n}\n\nexport class MoonshotAIChatLanguageModel implements LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly modelId: MoonshotAIChatModelId;\n\n // Moonshot AI does not fetch external URLs; the AI SDK downloads and\n // inlines URL file parts instead. ms:// file references from the Moonshot\n // Files API are passed through natively.\n readonly supportedUrls = {\n 'image/*': [/^ms:\\/\\//],\n 'video/*': [/^ms:\\/\\//],\n };\n\n private readonly config: MoonshotAIChatConfig;\n private readonly failedResponseHandler: ResponseHandler<APICallError>;\n\n static [WORKFLOW_SERIALIZE](model: MoonshotAIChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: MoonshotAIChatModelId;\n config: MoonshotAIChatConfig;\n }) {\n return new MoonshotAIChatLanguageModel(options.modelId, options.config);\n }\n\n constructor(modelId: MoonshotAIChatModelId, config: MoonshotAIChatConfig) {\n this.modelId = modelId;\n this.config = config;\n\n this.failedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: moonshotAIErrorSchema,\n errorToMessage: error => error.error.message,\n });\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private get providerOptionsName(): string {\n return this.config.provider.split('.')[0].trim();\n }\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n reasoning,\n providerOptions,\n stopSequences,\n responseFormat,\n seed,\n toolChoice,\n tools,\n }: LanguageModelV4CallOptions) {\n const moonshotOptions =\n (await parseProviderOptions({\n provider: this.providerOptionsName,\n providerOptions,\n schema: moonshotaiLanguageModelOptions,\n })) ?? {};\n\n const allWarnings: SharedV4Warning[] = [];\n if (topK != null) {\n allWarnings.push({ type: 'unsupported', feature: 'topK' });\n }\n if (seed != null) {\n allWarnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n const supportsSamplingOptions = !isMoonshotAIKimiModel(this.modelId);\n\n if (!supportsSamplingOptions && temperature != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'temperature',\n details: `temperature is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && topP != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'topP',\n details: `topP is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && frequencyPenalty != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'frequencyPenalty',\n details: `frequencyPenalty is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && presencePenalty != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'presencePenalty',\n details: `presencePenalty is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n\n const {\n tools: moonshotTools,\n toolChoice: moonshotToolChoice,\n toolWarnings,\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n\n const modelFamily = getMoonshotAIModelFamily(this.modelId);\n const requestedThinking = moonshotOptions.thinking;\n const requestedReasoningEffort = moonshotOptions.reasoningEffort;\n const preserveReasoning = moonshotOptions.reasoningHistory === 'preserved';\n\n if (requestedThinking?.budgetTokens != null) {\n allWarnings.push({\n type: 'deprecated',\n setting: 'providerOptions.moonshotai.thinking.budgetTokens',\n message:\n 'Moonshot Chat Completions does not support budget_tokens. Remove budgetTokens; the option has been omitted.',\n });\n }\n\n let thinking: { type: 'enabled' | 'disabled'; keep?: 'all' } | undefined;\n let reasoningEffort: 'low' | 'high' | 'max' | undefined;\n\n const warnUnsupportedReasoningEffort = () => {\n if (requestedReasoningEffort != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoningEffort',\n details: `reasoningEffort is only supported by Kimi K3 and has been omitted for model \"${this.modelId}\".`,\n });\n }\n };\n\n switch (modelFamily) {\n case 'kimi-k3': {\n if (requestedThinking != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'thinking',\n details:\n 'Kimi K3 always reasons and does not accept the thinking field. The option has been omitted.',\n });\n }\n if (reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning \"none\"',\n details: 'Kimi K3 reasoning cannot be disabled.',\n });\n }\n reasoningEffort =\n requestedReasoningEffort ??\n (isCustomReasoning(reasoning) && reasoning !== 'none'\n ? mapReasoningToProviderEffort({\n reasoning,\n effortMap: {\n minimal: 'low',\n low: 'low',\n medium: 'high',\n high: 'high',\n xhigh: 'max',\n },\n warnings: allWarnings,\n })\n : undefined);\n break;\n }\n case 'kimi-k2.7': {\n warnUnsupportedReasoningEffort();\n if (requestedThinking?.type === 'disabled' || reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature:\n requestedThinking?.type === 'disabled'\n ? 'thinking.type \"disabled\"'\n : 'reasoning \"none\"',\n details: 'Kimi K2.7 thinking cannot be disabled.',\n });\n } else if (requestedThinking?.type === 'enabled') {\n thinking = { type: 'enabled' };\n }\n break;\n }\n case 'kimi-k2.6': {\n warnUnsupportedReasoningEffort();\n const thinkingType =\n requestedThinking?.type ??\n (isCustomReasoning(reasoning)\n ? reasoning === 'none'\n ? 'disabled'\n : 'enabled'\n : undefined);\n if (thinkingType != null || preserveReasoning) {\n thinking = {\n type: thinkingType ?? 'enabled',\n ...(preserveReasoning ? { keep: 'all' as const } : {}),\n };\n }\n break;\n }\n case 'kimi-k2.5': {\n warnUnsupportedReasoningEffort();\n const thinkingType =\n requestedThinking?.type ??\n (isCustomReasoning(reasoning)\n ? reasoning === 'none'\n ? 'disabled'\n : 'enabled'\n : undefined);\n if (thinkingType != null) {\n thinking = { type: thinkingType };\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n case 'moonshot-v1': {\n warnUnsupportedReasoningEffort();\n if (requestedThinking != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'thinking',\n details: `thinking is not supported by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (isCustomReasoning(reasoning) && reasoning !== 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning',\n details: `reasoning is not supported by model \"${this.modelId}\".`,\n });\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n case 'unknown': {\n if (reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning \"none\"',\n details:\n 'Use providerOptions.moonshotai.thinking to control thinking on custom models.',\n });\n }\n reasoningEffort =\n requestedReasoningEffort ??\n (isCustomReasoning(reasoning) && reasoning !== 'none'\n ? mapReasoningToProviderEffort({\n reasoning,\n effortMap: {\n minimal: 'low',\n low: 'low',\n medium: 'high',\n high: 'high',\n xhigh: 'max',\n },\n warnings: allWarnings,\n })\n : undefined);\n if (requestedThinking?.type != null) {\n thinking = { type: requestedThinking.type };\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n }\n\n let response_format: Record<string, unknown> | undefined;\n if (responseFormat?.type === 'json') {\n if (\n this.config.supportsStructuredOutputs === true &&\n responseFormat.schema != null\n ) {\n // kimi-k2.5 produces nonsensical output when the top-level `$schema`\n // keyword injected by the AI SDK is present, even though it otherwise\n // supports structured outputs. Strip it from the schema sent to\n // Moonshot; the full original schema is still used for result\n // validation.\n const { $schema: _$schema, ...schemaWithoutDollarSchema } =\n responseFormat.schema;\n response_format = {\n type: 'json_schema',\n json_schema: {\n name: responseFormat.name ?? 'response',\n strict: moonshotOptions.strictJsonSchema ?? true,\n schema: normalizeJsonSchemaForMFJS(schemaWithoutDollarSchema),\n },\n };\n } else {\n response_format = { type: 'json_object' };\n }\n }\n\n const { messages, warnings: messageWarnings } =\n await convertToMoonshotAIChatMessages({\n modelId: this.modelId,\n prompt,\n providerOptionsName: this.providerOptionsName,\n responseFormat: response_format,\n });\n allWarnings.push(...messageWarnings);\n\n return {\n args: {\n model: this.modelId,\n ...((moonshotOptions.logprobs === true ||\n moonshotOptions.topLogprobs != null) && { logprobs: true }),\n ...(moonshotOptions.topLogprobs != null && {\n top_logprobs: moonshotOptions.topLogprobs,\n }),\n max_completion_tokens: maxOutputTokens,\n temperature: supportsSamplingOptions ? temperature : undefined,\n top_p: supportsSamplingOptions ? topP : undefined,\n frequency_penalty: supportsSamplingOptions\n ? frequencyPenalty\n : undefined,\n presence_penalty: supportsSamplingOptions ? presencePenalty : undefined,\n response_format,\n stop: stopSequences,\n messages,\n tools: moonshotTools,\n tool_choice: moonshotToolChoice,\n ...(moonshotOptions.prediction != null && {\n prediction: moonshotOptions.prediction,\n }),\n ...(thinking != null ? { thinking } : {}),\n ...(reasoningEffort != null && {\n reasoning_effort: reasoningEffort,\n }),\n ...(moonshotOptions.promptCacheKey != null && {\n prompt_cache_key: moonshotOptions.promptCacheKey,\n }),\n ...(moonshotOptions.safetyIdentifier != null && {\n safety_identifier: moonshotOptions.safetyIdentifier,\n }),\n },\n warnings: [...allWarnings, ...toolWarnings],\n };\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\n const { args, warnings } = await this.getArgs({ ...options });\n\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: this.config.url({\n path: '/chat/completions',\n modelId: this.modelId,\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n moonshotAIChatResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const choice = responseBody.choices[0];\n const content: Array<LanguageModelV4Content> = [];\n\n // reasoning content (before text):\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({ type: 'reasoning', text: reasoning });\n }\n\n // tool calls:\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: 'tool-call',\n toolCallId: toolCall.id || generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments ?? '',\n });\n }\n }\n\n // text content:\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: 'text', text });\n }\n\n return {\n content,\n finishReason: {\n unified: mapMoonshotAIFinishReason(choice.finish_reason),\n raw: choice.finish_reason ?? undefined,\n },\n usage: convertMoonshotAIChatUsage(responseBody.usage),\n providerMetadata: {\n [this.providerOptionsName]: {\n ...(choice.logprobs != null && { logprobs: choice.logprobs }),\n ...(responseBody.object != null && {\n responseObject: responseBody.object,\n }),\n ...(choice.index != null && { choiceIndex: choice.index }),\n ...(choice.message.role != null && {\n messageRole: choice.message.role,\n }),\n ...(choice.message.tool_calls != null && {\n toolCallTypes: choice.message.tool_calls\n .map(toolCall => toolCall.type)\n .filter(type => type != null),\n }),\n },\n },\n request: { body: args },\n response: {\n ...getResponseMetadata(responseBody),\n headers: responseHeaders,\n body: rawResponse,\n },\n warnings,\n };\n }\n\n async doStream(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\n const { args, warnings } = await this.getArgs({ ...options });\n\n const body = {\n ...args,\n stream: true,\n ...(this.config.includeUsage && {\n stream_options: { include_usage: true },\n }),\n };\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: '/chat/completions',\n modelId: this.modelId,\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n moonshotAIChatChunkSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let toolCallTracker: StreamingToolCallTracker;\n\n let finishReason: LanguageModelV4FinishReason = {\n unified: 'other',\n raw: undefined,\n };\n let topLevelUsage: MoonshotAIChatTokenUsage | undefined = undefined;\n let choiceUsage: MoonshotAIChatTokenUsage | undefined = undefined;\n const contentLogprobs: MoonshotAIChatLogprob[] = [];\n const providerOptionsName = this.providerOptionsName;\n let isFirstChunk = true;\n let isActiveReasoning = false;\n let isActiveText = false;\n let responseObject: 'chat.completion.chunk' | undefined;\n let choiceIndex: number | undefined;\n let messageRole: 'assistant' | undefined;\n const toolCallTypes = new Map<number, 'function'>();\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<InferSchema<typeof moonshotAIChatChunkSchema>>,\n LanguageModelV4StreamPart\n >({\n start(controller) {\n toolCallTracker = new StreamingToolCallTracker(controller, {\n generateId,\n });\n controller.enqueue({ type: 'stream-start', warnings });\n },\n\n transform(chunk, controller) {\n // emit raw chunk if requested (before anything else):\n if (options.includeRawChunks) {\n controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n }\n\n // handle failed chunk parsing / validation:\n if (!chunk.success) {\n finishReason = { unified: 'error', raw: undefined };\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n const value = chunk.value;\n\n // handle error chunks:\n if ('error' in value) {\n finishReason = { unified: 'error', raw: undefined };\n controller.enqueue({\n type: 'error',\n error: createMoonshotAIStreamError(value.error, value),\n });\n return;\n }\n\n if (isFirstChunk) {\n isFirstChunk = false;\n\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value),\n });\n }\n\n if (value.usage != null) {\n topLevelUsage = value.usage;\n }\n\n if (value.object != null) {\n responseObject = value.object;\n }\n\n const choice = value.choices[0];\n\n if (choice?.usage != null) {\n choiceUsage = choice.usage;\n }\n\n if (choice?.index != null) {\n choiceIndex = choice.index;\n }\n\n if (choice?.finish_reason != null) {\n finishReason = {\n unified: mapMoonshotAIFinishReason(choice.finish_reason),\n raw: choice.finish_reason,\n };\n }\n\n if (choice?.logprobs?.content != null) {\n contentLogprobs.push(...choice.logprobs.content);\n }\n\n if (choice?.delta == null) {\n return;\n }\n\n const delta = choice.delta;\n\n if (delta.role != null) {\n messageRole = delta.role;\n }\n\n // enqueue reasoning before text deltas:\n const reasoningContent = delta.reasoning_content;\n if (reasoningContent) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-start',\n id: 'reasoning-0',\n });\n isActiveReasoning = true;\n }\n\n controller.enqueue({\n type: 'reasoning-delta',\n id: 'reasoning-0',\n delta: reasoningContent,\n });\n }\n\n if (delta.content) {\n if (!isActiveText) {\n controller.enqueue({ type: 'text-start', id: 'txt-0' });\n isActiveText = true;\n }\n\n // end reasoning when text starts:\n if (isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-end',\n id: 'reasoning-0',\n });\n isActiveReasoning = false;\n }\n\n controller.enqueue({\n type: 'text-delta',\n id: 'txt-0',\n delta: delta.content,\n });\n }\n\n if (delta.tool_calls != null && delta.tool_calls.length > 0) {\n // end reasoning when tool calls start:\n if (isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-end',\n id: 'reasoning-0',\n });\n isActiveReasoning = false;\n }\n\n for (const [index, toolCallDelta] of delta.tool_calls.entries()) {\n const toolCallIndex = toolCallDelta.index ?? index;\n if (toolCallDelta.type != null) {\n toolCallTypes.set(toolCallIndex, toolCallDelta.type);\n }\n toolCallTracker.processDelta({\n ...toolCallDelta,\n index: toolCallIndex,\n });\n }\n }\n },\n\n flush(controller) {\n if (isActiveReasoning) {\n controller.enqueue({ type: 'reasoning-end', id: 'reasoning-0' });\n }\n\n if (isActiveText) {\n controller.enqueue({ type: 'text-end', id: 'txt-0' });\n }\n\n toolCallTracker.flush();\n\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage: convertMoonshotAIChatUsage(topLevelUsage ?? choiceUsage),\n providerMetadata: {\n [providerOptionsName]: {\n ...(contentLogprobs.length > 0 && {\n logprobs: { content: contentLogprobs },\n }),\n ...(responseObject != null && { responseObject }),\n ...(choiceIndex != null && { choiceIndex }),\n ...(messageRole != null && { messageRole }),\n ...(toolCallTypes.size > 0 && {\n toolCallTypes: [...toolCallTypes.entries()]\n .sort(([left], [right]) => left - right)\n .map(([, type]) => type),\n }),\n },\n },\n });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n","import {\n InvalidPromptError,\n UnsupportedFunctionalityError,\n type LanguageModelV4FilePart,\n type LanguageModelV4Prompt,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n convertBase64ToUint8Array,\n convertToBase64,\n getTopLevelMediaType,\n parseProviderOptions,\n resolveProviderReference,\n resolveFullMediaType,\n} from '@ai-sdk/provider-utils';\n\nimport type { MoonshotAIMessages } from './moonshotai-chat-api-types';\nimport {\n getMoonshotAIModelFamily,\n moonshotaiAllMessageProviderOptions,\n type MoonshotAIChatModelId,\n} from './moonshotai-chat-options';\nimport { prepareTools } from './moonshotai-prepare-tools';\n\nconst supportedImageMediaTypes = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/bmp',\n 'image/heic',\n 'image/heif',\n] as const;\n\nconst supportedVideoMediaTypes = [\n 'video/mp4',\n 'video/mpeg',\n 'video/mov',\n 'video/avi',\n 'video/x-flv',\n 'video/mpg',\n 'video/webm',\n 'video/wmv',\n 'video/3gpp',\n] as const;\n\nfunction formatMediaUrl({\n part,\n supportedMediaTypes,\n topLevelMediaType,\n}: {\n part: LanguageModelV4FilePart;\n supportedMediaTypes: readonly string[];\n topLevelMediaType: 'image' | 'video';\n}): string {\n if (part.data.type !== 'url' && part.data.type !== 'data') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part data type ${part.data.type}`,\n });\n }\n\n const mediaType =\n part.data.type === 'url' ? part.mediaType : resolveFullMediaType({ part });\n\n if (\n !supportedMediaTypes.includes(mediaType) &&\n !(\n part.data.type === 'url' &&\n (mediaType === topLevelMediaType ||\n mediaType === `${topLevelMediaType}/*`)\n )\n ) {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${mediaType}`,\n });\n }\n\n return part.data.type === 'url'\n ? part.data.url.toString()\n : `data:${mediaType};base64,${convertToBase64(part.data.data)}`;\n}\n\n// Moonshot AI chat completions accepts text, image_url, and video_url content\n// parts only. Anything else (audio, PDF, other file types) throws here rather\n// than being rejected by the API with a 400.\nexport async function convertToMoonshotAIChatMessages({\n modelId,\n prompt,\n providerOptionsName = 'moonshotai',\n responseFormat,\n}: {\n modelId?: MoonshotAIChatModelId;\n prompt: LanguageModelV4Prompt;\n providerOptionsName?: string;\n responseFormat?: Record<string, unknown>;\n}): Promise<{\n messages: MoonshotAIMessages;\n warnings: Array<SharedV4Warning>;\n}> {\n const messages: MoonshotAIMessages = [];\n const warnings: Array<SharedV4Warning> = [];\n const modelFamily =\n modelId == null ? 'unknown' : getMoonshotAIModelFamily(modelId);\n\n for (const [index, { role, content, providerOptions }] of prompt.entries()) {\n const moonshotMessageOptions = await parseProviderOptions({\n provider: providerOptionsName,\n providerOptions,\n schema: moonshotaiAllMessageProviderOptions,\n });\n\n if (moonshotMessageOptions?.partial === true && role !== 'assistant') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode requires `partial: true` on an assistant message.',\n });\n }\n\n if (moonshotMessageOptions?.tools != null && role !== 'system') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot dynamic tools must be configured on a system message.',\n });\n }\n\n switch (role) {\n case 'system': {\n if (moonshotMessageOptions?.tools?.length) {\n if (content.length > 0) {\n throw new InvalidPromptError({\n prompt,\n message:\n 'A Moonshot dynamic-tool system message must use empty content because the API forbids content alongside tools.',\n });\n }\n\n if (modelFamily !== 'kimi-k3' && modelFamily !== 'unknown') {\n warnings.push({\n type: 'unsupported',\n feature: `dynamic tool loading for model \"${modelId}\"`,\n details:\n 'Moonshot documents dynamic tool loading only for Kimi K3. The dynamic system message has been omitted.',\n });\n break;\n }\n\n const { tools, toolWarnings } = prepareTools({\n modelId: modelId ?? 'custom-model',\n tools: moonshotMessageOptions.tools,\n });\n warnings.push(...toolWarnings);\n messages.push({ role: 'system', tools: tools ?? [] });\n break;\n }\n\n messages.push({\n role: 'system',\n content,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n break;\n }\n\n case 'user': {\n if (content.length === 1 && content[0].type === 'text') {\n messages.push({\n role: 'user',\n content: content[0].text,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n break;\n }\n\n messages.push({\n role: 'user',\n content: content.map(part => {\n switch (part.type) {\n case 'text': {\n return { type: 'text', text: part.text };\n }\n case 'file': {\n const topLevel = getTopLevelMediaType(part.mediaType);\n\n switch (part.data.type) {\n case 'reference': {\n if (topLevel !== 'image' && topLevel !== 'video') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n\n const reference = resolveProviderReference({\n reference: part.data.reference,\n provider: 'moonshotai',\n });\n\n if (!reference.startsWith('ms://')) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Moonshot file provider references without an ms:// URL',\n });\n }\n\n return topLevel === 'image'\n ? {\n type: 'image_url' as const,\n image_url: { url: reference },\n }\n : {\n type: 'video_url' as const,\n video_url: { url: reference },\n };\n }\n case 'text': {\n if (topLevel === 'text') {\n return {\n type: 'text' as const,\n text: part.data.text,\n };\n }\n\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n case 'url':\n case 'data': {\n if (topLevel === 'image') {\n return {\n type: 'image_url' as const,\n image_url: {\n url: formatMediaUrl({\n part,\n supportedMediaTypes: supportedImageMediaTypes,\n topLevelMediaType: 'image',\n }),\n },\n };\n }\n\n if (topLevel === 'video') {\n return {\n type: 'video_url' as const,\n video_url: {\n url: formatMediaUrl({\n part,\n supportedMediaTypes: supportedVideoMediaTypes,\n topLevelMediaType: 'video',\n }),\n },\n };\n }\n\n if (topLevel === 'text') {\n const textContent =\n part.data.type === 'url'\n ? part.data.url.toString()\n : typeof part.data.data === 'string'\n ? new TextDecoder().decode(\n convertBase64ToUint8Array(part.data.data),\n )\n : new TextDecoder().decode(part.data.data);\n\n return {\n type: 'text' as const,\n text: textContent,\n };\n }\n\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n }\n }\n }\n }),\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n\n break;\n }\n\n case 'assistant': {\n if (moonshotMessageOptions?.partial === true) {\n if (index !== prompt.length - 1) {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode requires the partial assistant message to be the final message.',\n });\n }\n\n if (responseFormat?.type === 'json_object') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode cannot be combined with JSON object response format.',\n });\n }\n }\n\n let text = '';\n let reasoning = '';\n const toolCalls: Array<{\n id: string;\n type: 'function';\n function: { name: string; arguments: string };\n }> = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n text += part.text;\n break;\n }\n case 'reasoning': {\n reasoning += part.text;\n break;\n }\n case 'tool-call': {\n toolCalls.push({\n id: part.toolCallId,\n type: 'function',\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input),\n },\n });\n break;\n }\n }\n }\n\n messages.push({\n role: 'assistant',\n content: toolCalls.length > 0 ? text || null : text,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n ...(moonshotMessageOptions?.partial === true && {\n partial: true,\n }),\n ...(reasoning.length > 0 ? { reasoning_content: reasoning } : {}),\n tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n });\n\n break;\n }\n\n case 'tool': {\n if (moonshotMessageOptions?.name != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'message name on tool messages',\n });\n }\n\n for (const toolResponse of content) {\n if (toolResponse.type === 'tool-approval-response') {\n continue;\n }\n\n const output = toolResponse.output;\n\n let contentValue: string;\n switch (output.type) {\n case 'text':\n case 'error-text':\n contentValue = output.value;\n break;\n case 'execution-denied':\n contentValue = output.reason ?? 'Tool call execution denied.';\n break;\n case 'content':\n case 'json':\n case 'error-json':\n contentValue = JSON.stringify(output.value);\n break;\n }\n\n messages.push({\n role: 'tool',\n tool_call_id: toolResponse.toolCallId,\n content: contentValue,\n });\n }\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n\n return { messages, warnings };\n}\n","import type { LanguageModelV4FunctionTool } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport type MoonshotAIChatModelId =\n | 'moonshot-v1-auto'\n | 'moonshot-v1-8k'\n | 'moonshot-v1-32k'\n | 'moonshot-v1-128k'\n | 'moonshot-v1-8k-vision-preview'\n | 'moonshot-v1-32k-vision-preview'\n | 'moonshot-v1-128k-vision-preview'\n | 'kimi-k2.5'\n | 'kimi-k2.6'\n | 'kimi-k2.7-code'\n | 'kimi-k2.7-code-highspeed'\n | 'kimi-k3'\n | (string & {});\n\nexport function isMoonshotAIKimiModel(modelId: MoonshotAIChatModelId): boolean {\n return getMoonshotAIModelFamily(modelId).startsWith('kimi-');\n}\n\nexport type MoonshotAIModelFamily =\n | 'kimi-k2.5'\n | 'kimi-k2.6'\n | 'kimi-k2.7'\n | 'kimi-k3'\n | 'moonshot-v1'\n | 'unknown';\n\nexport function getMoonshotAIModelFamily(\n modelId: MoonshotAIChatModelId,\n): MoonshotAIModelFamily {\n if (modelId === 'kimi-k2.5') return 'kimi-k2.5';\n if (modelId === 'kimi-k2.6') return 'kimi-k2.6';\n if (modelId === 'kimi-k2.7-code' || modelId === 'kimi-k2.7-code-highspeed') {\n return 'kimi-k2.7';\n }\n if (modelId === 'kimi-k3') return 'kimi-k3';\n if (modelId.startsWith('moonshot-v1-')) return 'moonshot-v1';\n return 'unknown';\n}\n\nexport const moonshotaiLanguageModelOptions = z.object({\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n\n /**\n * Whether to return log probabilities for generated tokens.\n */\n logprobs: z.boolean().optional(),\n\n /**\n * Number of most likely tokens to return at each token position.\n *\n * Setting this option automatically enables `logprobs`.\n */\n topLogprobs: z.number().int().min(0).max(20).optional(),\n\n /**\n * Reasoning effort for Kimi K3. Supports `low`, `high`, and `max`;\n * defaults to `max`.\n */\n reasoningEffort: z.enum(['low', 'high', 'max']).optional(),\n\n /**\n * Static predicted content that can accelerate responses when much of the\n * output is known ahead of time.\n */\n prediction: z\n .object({\n type: z.literal('content'),\n content: z.union([\n z.string(),\n z.array(z.object({ type: z.literal('text'), text: z.string() })),\n ]),\n })\n .optional(),\n\n /**\n * Thinking configuration for Kimi K2.x models. Kimi K2.5 and K2.6 support\n * enabling or disabling thinking. Kimi K2.7 Code always has thinking\n * enabled.\n */\n thinking: z\n .object({\n type: z.enum(['enabled', 'disabled']).optional(),\n /**\n * @deprecated Moonshot Chat Completions does not support thinking\n * budgets. Accepted for backwards compatibility, then omitted with a\n * warning.\n */\n budgetTokens: z.number().int().min(1024).optional(),\n })\n .optional(),\n\n /**\n * Controls preserved reasoning behavior in multi-turn conversations.\n * `disabled` and `interleaved` are compatibility values that leave the\n * request unchanged. `preserved` maps to `thinking.keep: 'all'` for Kimi\n * K2.6. Kimi K2.7 and K3 preserve reasoning by default.\n */\n reasoningHistory: z.enum(['disabled', 'interleaved', 'preserved']).optional(),\n\n /**\n * Used to cache responses for similar requests to optimize cache hit rates.\n * Typically a session or task id.\n */\n promptCacheKey: z.string().optional(),\n\n /**\n * A stable identifier used to help Moonshot detect users violating usage\n * policies. Recommended to hash the username or email address.\n */\n safetyIdentifier: z.string().optional(),\n});\n\nexport type MoonshotAILanguageModelOptions = {\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n *\n * @default true\n */\n strictJsonSchema?: boolean;\n\n /** Whether to return log probabilities for generated tokens. */\n logprobs?: boolean;\n\n /**\n * Number of most likely tokens to return at each token position.\n * Setting this option automatically enables `logprobs`.\n */\n topLogprobs?: number;\n\n /** Reasoning effort for Kimi K3. */\n reasoningEffort?: 'low' | 'high' | 'max';\n\n /**\n * Static predicted content that can accelerate responses when much of the\n * output is known ahead of time.\n */\n prediction?: {\n type: 'content';\n content: string | Array<{ type: 'text'; text: string }>;\n };\n\n /** Controls thinking on Kimi K2.5 and K2.6. K2.7 is always enabled. */\n thinking?: {\n type?: 'enabled' | 'disabled';\n\n /**\n * @deprecated Moonshot Chat Completions does not support thinking budgets.\n * This value is ignored with a warning.\n */\n budgetTokens?: number;\n };\n\n /**\n * Controls preserved reasoning behavior in multi-turn conversations.\n * `disabled` and `interleaved` are compatibility values that leave the\n * request unchanged. `preserved` maps to `thinking.keep: 'all'` for Kimi\n * K2.6. Kimi K2.7 and K3 preserve reasoning by default.\n */\n reasoningHistory?: 'disabled' | 'interleaved' | 'preserved';\n promptCacheKey?: string;\n safetyIdentifier?: string;\n};\n\nexport const moonshotaiMessageProviderOptions = z.object({\n /**\n * The name of the participant represented by the message.\n *\n * Supported on system, user, and assistant messages.\n */\n name: z.string().optional(),\n});\n\nexport type MoonshotAIMessageProviderOptions = z.infer<\n typeof moonshotaiMessageProviderOptions\n>;\n\nexport const moonshotaiAssistantMessageProviderOptions =\n moonshotaiMessageProviderOptions.extend({\n /**\n * Whether the assistant message content is a partial response that Moonshot\n * should continue. Only supported on the final assistant message and cannot\n * be combined with JSON object response format.\n */\n partial: z.literal(true).optional(),\n });\n\nexport type MoonshotAIAssistantMessageProviderOptions = z.infer<\n typeof moonshotaiAssistantMessageProviderOptions\n>;\n\nconst moonshotaiDynamicToolSchema = z.object({\n type: z.literal('function'),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.record(z.string(), z.unknown()),\n strict: z.boolean().optional(),\n});\n\nexport const moonshotaiAllMessageProviderOptions =\n moonshotaiAssistantMessageProviderOptions.extend({\n /** Function tools to load at this point in a Kimi K3 conversation. */\n tools: z.array(moonshotaiDynamicToolSchema).optional(),\n });\n\nexport type MoonshotAISystemMessageProviderOptions =\n MoonshotAIMessageProviderOptions & {\n /** Function tools to load at this point in a Kimi K3 conversation. */\n tools?: Array<\n Pick<\n LanguageModelV4FunctionTool,\n 'type' | 'name' | 'description' | 'inputSchema' | 'strict'\n >\n >;\n };\n","import {\n UnsupportedFunctionalityError,\n type LanguageModelV4CallOptions,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport type { MoonshotAIFunctionTool } from './moonshotai-chat-api-types';\nimport type { MoonshotAIChatModelId } from './moonshotai-chat-options';\nimport { normalizeJsonSchemaForMFJS } from './normalize-json-schema-for-mfjs';\n\nexport function prepareTools({\n tools,\n toolChoice,\n modelId,\n}: {\n tools: LanguageModelV4CallOptions['tools'];\n toolChoice?: LanguageModelV4CallOptions['toolChoice'];\n modelId: MoonshotAIChatModelId;\n}): {\n tools: undefined | Array<MoonshotAIFunctionTool>;\n toolChoice:\n | { type: 'function'; function: { name: string } }\n | 'auto'\n | 'none'\n | 'required'\n | undefined;\n toolWarnings: SharedV4Warning[];\n} {\n // when the tools array is empty, change it to undefined to prevent errors:\n tools = tools?.length ? tools : undefined;\n\n const toolWarnings: SharedV4Warning[] = [];\n\n if (tools == null) {\n return { tools: undefined, toolChoice: undefined, toolWarnings };\n }\n\n const moonshotTools: Array<MoonshotAIFunctionTool> = [];\n\n for (const tool of tools) {\n if (tool.type === 'provider') {\n toolWarnings.push({\n type: 'unsupported',\n feature: `provider-defined tool ${tool.id}`,\n });\n } else {\n moonshotTools.push({\n type: 'function',\n function: {\n name: tool.name,\n description: tool.description,\n parameters: normalizeJsonSchemaForMFJS(tool.inputSchema),\n ...(tool.strict != null ? { strict: tool.strict } : {}),\n },\n });\n }\n }\n\n if (toolChoice == null) {\n return { tools: moonshotTools, toolChoice: undefined, toolWarnings };\n }\n\n const type = toolChoice.type;\n\n switch (type) {\n case 'auto':\n case 'none':\n return { tools: moonshotTools, toolChoice: type, toolWarnings };\n case 'required':\n if (\n modelId === 'kimi-k2.6' ||\n modelId === 'kimi-k2.7-code' ||\n modelId === 'kimi-k2.7-code-highspeed'\n ) {\n toolWarnings.push({\n type: 'unsupported',\n feature: `tool choice \"required\" for model \"${modelId}\"`,\n details:\n 'Moonshot AI rejects required tool choice for this model. The setting has been omitted; use \"auto\" or select a specific tool instead.',\n });\n return {\n tools: moonshotTools,\n toolChoice: undefined,\n toolWarnings,\n };\n }\n return { tools: moonshotTools, toolChoice: type, toolWarnings };\n case 'tool':\n return {\n tools: moonshotTools,\n toolChoice: {\n type: 'function',\n function: { name: toolChoice.toolName },\n },\n toolWarnings,\n };\n default: {\n const _exhaustiveCheck: never = type;\n throw new UnsupportedFunctionalityError({\n functionality: `tool choice type: ${_exhaustiveCheck}`,\n });\n }\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport { isRecord } from '@ai-sdk/provider-utils';\n\nconst SCHEMA_ARRAY_KEYS = ['allOf', 'anyOf', 'oneOf', 'prefixItems'] as const;\nconst SCHEMA_MAP_KEYS = [\n 'properties',\n 'patternProperties',\n '$defs',\n 'dependentSchemas',\n] as const;\nconst SCHEMA_SINGLE_KEYS = [\n 'additionalProperties',\n 'propertyNames',\n 'items',\n 'contains',\n 'not',\n 'if',\n 'then',\n 'else',\n] as const;\n\n/**\n * Normalizes a JSON Schema to the subset Moonshot's MFJS validator accepts:\n * `object` root required, tuple `items` become `prefixItems`, and `type` next\n * to `anyOf` moves into the branches. Everything else passes through. The\n * full original schema is still used for AI SDK result validation.\n */\nexport function normalizeJsonSchemaForMFJS(schema: unknown): unknown {\n return normalizeDefinition(schema, true);\n}\n\nfunction normalizeDefinition(definition: unknown, isRoot: boolean): unknown {\n if (typeof definition === 'boolean' || !isRecord(definition)) {\n if (isRoot) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'tool parameters must be a JSON Schema object with type \"object\" for moonshotai (MFJS)',\n });\n }\n return definition;\n }\n\n if (isRoot && definition.type !== 'object') {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'tool parameters must be a JSON Schema object with type \"object\" for moonshotai (MFJS)',\n });\n }\n\n const result: Record<string, unknown> = { ...definition };\n\n // Existing prefixItems stay first (they are positional).\n if (Array.isArray(result.items)) {\n const tuple = result.items;\n result.prefixItems = [\n ...(Array.isArray(result.prefixItems) ? result.prefixItems : []),\n ...tuple.map(item => normalizeDefinition(item, false)),\n ];\n delete result.items;\n } else if (isRecord(result.items)) {\n result.items = normalizeDefinition(result.items, false);\n }\n\n // MFJS requires type to live inside anyOf items.\n if (typeof result.type === 'string' && Array.isArray(result.anyOf)) {\n const parentType = result.type;\n delete result.type;\n result.anyOf = result.anyOf.map(branch =>\n isRecord(branch) && branch.type == null\n ? { type: parentType, ...branch }\n : branch,\n );\n }\n\n for (const key of SCHEMA_ARRAY_KEYS) {\n const value = result[key];\n if (Array.isArray(value)) {\n result[key] = value.map(item => normalizeDefinition(item, false));\n }\n }\n\n for (const key of SCHEMA_MAP_KEYS) {\n const value = result[key];\n if (isRecord(value)) {\n result[key] = Object.fromEntries(\n Object.entries(value).map(([k, v]) => [\n k,\n normalizeDefinition(v, false),\n ]),\n );\n }\n }\n\n for (const key of SCHEMA_SINGLE_KEYS) {\n const value = result[key];\n if (isRecord(value) || typeof value === 'boolean') {\n result[key] = normalizeDefinition(value, false);\n }\n }\n\n return result;\n}\n","import type { LanguageModelV4Usage } from '@ai-sdk/provider';\nimport { createNullLanguageModelUsage } from '@ai-sdk/provider-utils';\n\nexport function convertMoonshotAIChatUsage(\n usage:\n | {\n prompt_tokens?: number | null;\n completion_tokens?: number | null;\n cached_tokens?: number | null;\n prompt_tokens_details?: {\n cached_tokens?: number | null;\n } | null;\n completion_tokens_details?: {\n reasoning_tokens?: number | null;\n } | null;\n }\n | undefined\n | null,\n): LanguageModelV4Usage {\n if (usage == null) {\n return createNullLanguageModelUsage();\n }\n\n const promptTokens = usage.prompt_tokens ?? 0;\n const completionTokens = usage.completion_tokens ?? 0;\n\n const cacheReadTokens =\n usage.cached_tokens ?? usage.prompt_tokens_details?.cached_tokens ?? 0;\n\n const reasoningTokens =\n usage.completion_tokens_details?.reasoning_tokens ?? 0;\n\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: undefined,\n },\n outputTokens: {\n total: completionTokens,\n text: Math.max(0, completionTokens - reasoningTokens),\n reasoning: reasoningTokens,\n },\n raw: usage,\n };\n}\n","import type { LanguageModelV4FinishReason } from '@ai-sdk/provider';\n\nexport function mapMoonshotAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV4FinishReason['unified'] {\n switch (finishReason) {\n case 'stop':\n return 'stop';\n case 'length':\n return 'length';\n case 'content_filter':\n return 'content-filter';\n case 'function_call':\n case 'tool_calls':\n return 'tool-calls';\n default:\n return 'other';\n }\n}\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type MoonshotAIMessages = Array<MoonshotAIMessage>;\n\nexport type MoonshotAIMessage =\n | MoonshotAISystemMessage\n | MoonshotAIUserMessage\n | MoonshotAIAssistantMessage\n | MoonshotAIToolMessage;\n\nexport type MoonshotAISystemMessage =\n | {\n role: 'system';\n content: string;\n name?: string;\n }\n | {\n role: 'system';\n tools: Array<MoonshotAIFunctionTool>;\n };\n\nexport interface MoonshotAIFunctionTool {\n type: 'function';\n function: {\n name: string;\n description: string | undefined;\n parameters: unknown;\n strict?: boolean;\n };\n}\n\nexport interface MoonshotAIUserMessage {\n role: 'user';\n content: string | Array<MoonshotAIContentPart>;\n name?: string;\n}\n\nexport type MoonshotAIContentPart =\n | MoonshotAIContentPartText\n | MoonshotAIContentPartImage\n | MoonshotAIContentPartVideo;\n\nexport interface MoonshotAIContentPartText {\n type: 'text';\n text: string;\n}\n\nexport interface MoonshotAIContentPartImage {\n type: 'image_url';\n image_url: { url: string };\n}\n\nexport interface MoonshotAIContentPartVideo {\n type: 'video_url';\n video_url: { url: string };\n}\n\nexport interface MoonshotAIAssistantMessage {\n role: 'assistant';\n content?: string | null;\n name?: string;\n partial?: true;\n reasoning_content?: string;\n tool_calls?: Array<MoonshotAIMessageToolCall>;\n}\n\nexport interface MoonshotAIMessageToolCall {\n type: 'function';\n id: string;\n function: {\n arguments: string;\n name: string;\n };\n}\n\nexport interface MoonshotAIToolMessage {\n role: 'tool';\n content: string;\n tool_call_id: string;\n}\n\n// Schemas below are limited versions focused on what the implementation\n// needs. This limits breakages when the API changes and increases efficiency.\n\n// Loose, nested objects included: the parsed value is returned as `usage.raw`.\nconst tokenUsageSchema = z\n .looseObject({\n prompt_tokens: z.number().nullish(),\n completion_tokens: z.number().nullish(),\n cached_tokens: z.number().nullish(),\n total_tokens: z.number().nullish(),\n prompt_tokens_details: z\n .looseObject({\n cached_tokens: z.number().nullish(),\n })\n .nullish(),\n completion_tokens_details: z\n .looseObject({\n reasoning_tokens: z.number().nullish(),\n })\n .nullish(),\n })\n .nullish();\n\nexport type MoonshotAIChatTokenUsage = z.infer<typeof tokenUsageSchema>;\n\nexport const moonshotAIErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n code: z.string().nullish(),\n }),\n});\n\nexport type MoonshotAIErrorData = z.infer<typeof moonshotAIErrorSchema>;\n\nconst moonshotAIChatLogprobSchema = z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n top_logprobs: z.array(\n z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n }),\n ),\n});\n\nconst moonshotAIChatLogprobsSchema = z\n .object({\n content: z.array(moonshotAIChatLogprobSchema).nullish(),\n })\n .nullish();\n\nexport type MoonshotAIChatLogprob = z.infer<typeof moonshotAIChatLogprobSchema>;\n\nexport const moonshotAIChatResponseSchema = z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n object: z.literal('chat.completion').nullish(),\n choices: z.array(\n z.object({\n index: z.number().nullish(),\n message: z.object({\n role: z.literal('assistant').nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z\n .array(\n z.object({\n id: z.string().nullish(),\n type: z.literal('function').nullish(),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n }),\n )\n .nullish(),\n }),\n logprobs: moonshotAIChatLogprobsSchema,\n finish_reason: z.string().nullish(),\n }),\n ),\n usage: tokenUsageSchema,\n});\n\nexport const moonshotAIChatChunkSchema = lazySchema(() =>\n zodSchema(\n z.union([\n z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n object: z.literal('chat.completion.chunk').nullish(),\n choices: z.array(\n z.object({\n index: z.number().nullish(),\n delta: z\n .object({\n role: z.literal('assistant').nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z\n .array(\n z.object({\n index: z.number().nullish(),\n id: z.string().nullish(),\n type: z.literal('function').nullish(),\n function: z.object({\n name: z.string().nullish(),\n arguments: z.string().nullish(),\n }),\n }),\n )\n .nullish(),\n })\n .nullish(),\n logprobs: moonshotAIChatLogprobsSchema,\n finish_reason: z.string().nullish(),\n usage: tokenUsageSchema,\n }),\n ),\n usage: tokenUsageSchema,\n }),\n moonshotAIErrorSchema,\n ]),\n ),\n);\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["parseProviderOptions","UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","z","parseProviderOptions","_a","_b"]}
1
+ {"version":3,"sources":["../src/moonshotai-provider.ts","../src/moonshotai-chat-language-model.ts","../src/convert-to-moonshotai-chat-messages.ts","../src/moonshotai-chat-options.ts","../src/moonshotai-prepare-tools.ts","../src/normalize-json-schema-for-mfjs.ts","../src/convert-moonshotai-chat-usage.ts","../src/map-moonshotai-finish-reason.ts","../src/moonshotai-chat-api-types.ts","../src/version.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type LanguageModelV4,\n type ProviderV4,\n} from '@ai-sdk/provider';\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { MoonshotAIChatLanguageModel } from './moonshotai-chat-language-model';\nimport type { MoonshotAIChatModelId } from './moonshotai-chat-options';\nimport { VERSION } from './version';\n\nexport type { MoonshotAIErrorData } from './moonshotai-chat-api-types';\n\nexport interface MoonshotAIProviderSettings {\n /**\n * Moonshot API key. Default value is taken from the `MOONSHOT_API_KEY`\n * environment variable.\n */\n apiKey?: string;\n /**\n * Base URL for the API calls.\n */\n baseURL?: string;\n /**\n * Custom headers to include in the requests.\n */\n headers?: Record<string, string>;\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n}\n\nexport interface MoonshotAIProvider extends ProviderV4 {\n /**\n * Creates a model for text generation.\n */\n (modelId: MoonshotAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a chat model for text generation.\n */\n chatModel(modelId: MoonshotAIChatModelId): LanguageModelV4;\n\n /**\n * Creates a language model for text generation.\n */\n languageModel(modelId: MoonshotAIChatModelId): LanguageModelV4;\n}\n\nconst defaultBaseURL = 'https://api.moonshot.ai/v1';\n\nexport function getModelStructuredOutputSupport(\n modelId: MoonshotAIChatModelId,\n): boolean {\n return (\n modelId.startsWith('kimi-k') ||\n modelId === 'moonshot-v1-8k' ||\n modelId === 'moonshot-v1-32k' ||\n modelId === 'moonshot-v1-128k' ||\n modelId === 'moonshot-v1-auto' ||\n modelId === 'moonshot-v1-8k-vision-preview' ||\n modelId === 'moonshot-v1-32k-vision-preview' ||\n modelId === 'moonshot-v1-128k-vision-preview'\n );\n}\n\nexport function createMoonshotAI(\n options: MoonshotAIProviderSettings = {},\n): MoonshotAIProvider {\n const baseURL = withoutTrailingSlash(options.baseURL ?? defaultBaseURL);\n const getHeaders = () =>\n withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: 'MOONSHOT_API_KEY',\n description: 'Moonshot API key',\n })}`,\n ...options.headers,\n },\n `ai-sdk/moonshotai/${VERSION}`,\n );\n\n const createChatModel = (modelId: MoonshotAIChatModelId) => {\n return new MoonshotAIChatLanguageModel(modelId, {\n provider: 'moonshotai.chat',\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n includeUsage: true,\n supportsStructuredOutputs: getModelStructuredOutputSupport(modelId),\n });\n };\n\n const provider = (modelId: MoonshotAIChatModelId) => createChatModel(modelId);\n\n provider.specificationVersion = 'v4' as const;\n provider.chatModel = createChatModel;\n provider.languageModel = createChatModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return provider;\n}\n\nexport const moonshotai = createMoonshotAI();\n","import type {\n APICallError,\n LanguageModelV4,\n LanguageModelV4CallOptions,\n LanguageModelV4Content,\n LanguageModelV4FinishReason,\n LanguageModelV4GenerateResult,\n LanguageModelV4StreamPart,\n LanguageModelV4StreamResult,\n SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n createLanguageModelResponseMetadata as getResponseMetadata,\n createProviderStreamError,\n generateId,\n isCustomReasoning,\n mapReasoningToProviderEffort,\n parseProviderOptions,\n postJsonToApi,\n serializeModelOptions,\n StreamingToolCallTracker,\n WORKFLOW_SERIALIZE,\n WORKFLOW_DESERIALIZE,\n type FetchFunction,\n type InferSchema,\n type ParseResult,\n type ResponseHandler,\n} from '@ai-sdk/provider-utils';\nimport { convertToMoonshotAIChatMessages } from './convert-to-moonshotai-chat-messages';\nimport { convertMoonshotAIChatUsage } from './convert-moonshotai-chat-usage';\nimport { mapMoonshotAIFinishReason } from './map-moonshotai-finish-reason';\nimport {\n moonshotAIChatChunkSchema,\n moonshotAIChatResponseSchema,\n moonshotAIErrorSchema,\n type MoonshotAIChatLogprob,\n type MoonshotAIChatTokenUsage,\n} from './moonshotai-chat-api-types';\nimport {\n getMoonshotAIModelFamily,\n isMoonshotAIKimiModel,\n moonshotaiLanguageModelOptions,\n type MoonshotAIChatModelId,\n} from './moonshotai-chat-options';\nimport { normalizeJsonSchemaForMFJS } from './normalize-json-schema-for-mfjs';\nimport { prepareTools } from './moonshotai-prepare-tools';\n\nexport type MoonshotAIChatConfig = {\n provider: string;\n headers?: () => Record<string, string | undefined>;\n url: (options: { modelId: string; path: string }) => string;\n fetch?: FetchFunction;\n includeUsage?: boolean;\n supportsStructuredOutputs?: boolean;\n};\n\nfunction createMoonshotAIStreamError(\n error: { message: string; type?: string | null; code?: string | null },\n data: unknown,\n) {\n return createProviderStreamError({\n message: error.message,\n type: error.type ?? undefined,\n code: error.code ?? undefined,\n ...getMoonshotAIStreamErrorMetadata(error.type),\n data,\n });\n}\n\nfunction getMoonshotAIStreamErrorMetadata(type?: string | null): {\n statusCode?: number;\n isRetryable?: boolean;\n} {\n switch (type) {\n case 'rate_limit_exceeded':\n case 'rate_limit_error':\n return { statusCode: 429, isRetryable: true };\n case 'server_error':\n case 'api_error':\n case 'internal_server_error':\n return { statusCode: 500, isRetryable: true };\n case 'overloaded_error':\n case 'service_unavailable':\n return { statusCode: 503, isRetryable: true };\n case 'timeout':\n case 'timeout_error':\n return { statusCode: 504, isRetryable: true };\n case 'authentication_error':\n case 'invalid_api_key':\n return { statusCode: 401, isRetryable: false };\n case 'permission_error':\n return { statusCode: 403, isRetryable: false };\n case 'not_found_error':\n case 'model_not_found':\n return { statusCode: 404, isRetryable: false };\n case 'bad_request':\n case 'context_length_exceeded':\n case 'invalid_request_error':\n return { statusCode: 400, isRetryable: false };\n default:\n return {};\n }\n}\n\nexport class MoonshotAIChatLanguageModel implements LanguageModelV4 {\n readonly specificationVersion = 'v4';\n\n readonly modelId: MoonshotAIChatModelId;\n\n // Moonshot AI does not fetch external URLs; the AI SDK downloads and\n // inlines URL file parts instead. ms:// file references from the Moonshot\n // Files API are passed through natively.\n readonly supportedUrls = {\n 'image/*': [/^ms:\\/\\//],\n 'video/*': [/^ms:\\/\\//],\n };\n\n private readonly config: MoonshotAIChatConfig;\n private readonly failedResponseHandler: ResponseHandler<APICallError>;\n\n static [WORKFLOW_SERIALIZE](model: MoonshotAIChatLanguageModel) {\n return serializeModelOptions({\n modelId: model.modelId,\n config: model.config,\n });\n }\n\n static [WORKFLOW_DESERIALIZE](options: {\n modelId: MoonshotAIChatModelId;\n config: MoonshotAIChatConfig;\n }) {\n return new MoonshotAIChatLanguageModel(options.modelId, options.config);\n }\n\n constructor(modelId: MoonshotAIChatModelId, config: MoonshotAIChatConfig) {\n this.modelId = modelId;\n this.config = config;\n\n this.failedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: moonshotAIErrorSchema,\n errorToMessage: error => error.error.message,\n });\n }\n\n get provider(): string {\n return this.config.provider;\n }\n\n private get providerOptionsName(): string {\n return this.config.provider.split('.')[0].trim();\n }\n\n private async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n reasoning,\n providerOptions,\n stopSequences,\n responseFormat,\n seed,\n toolChoice,\n tools,\n }: LanguageModelV4CallOptions) {\n const moonshotOptions =\n (await parseProviderOptions({\n provider: this.providerOptionsName,\n providerOptions,\n schema: moonshotaiLanguageModelOptions,\n })) ?? {};\n\n const allWarnings: SharedV4Warning[] = [];\n if (topK != null) {\n allWarnings.push({ type: 'unsupported', feature: 'topK' });\n }\n if (seed != null) {\n allWarnings.push({ type: 'unsupported', feature: 'seed' });\n }\n\n const supportsSamplingOptions = !isMoonshotAIKimiModel(this.modelId);\n\n if (!supportsSamplingOptions && temperature != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'temperature',\n details: `temperature is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && topP != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'topP',\n details: `topP is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && frequencyPenalty != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'frequencyPenalty',\n details: `frequencyPenalty is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (!supportsSamplingOptions && presencePenalty != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'presencePenalty',\n details: `presencePenalty is fixed by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n\n const {\n tools: moonshotTools,\n toolChoice: moonshotToolChoice,\n toolWarnings,\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n\n const modelFamily = getMoonshotAIModelFamily(this.modelId);\n const requestedThinking = moonshotOptions.thinking;\n const requestedReasoningEffort = moonshotOptions.reasoningEffort;\n const preserveReasoning = moonshotOptions.reasoningHistory === 'preserved';\n\n if (requestedThinking?.budgetTokens != null) {\n allWarnings.push({\n type: 'deprecated',\n setting: 'providerOptions.moonshotai.thinking.budgetTokens',\n message:\n 'Moonshot Chat Completions does not support budget_tokens. Remove budgetTokens; the option has been omitted.',\n });\n }\n\n let thinking: { type: 'enabled' | 'disabled'; keep?: 'all' } | undefined;\n let reasoningEffort: 'low' | 'high' | 'max' | undefined;\n\n const warnUnsupportedReasoningEffort = () => {\n if (requestedReasoningEffort != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoningEffort',\n details: `reasoningEffort is only supported by Kimi K3 and has been omitted for model \"${this.modelId}\".`,\n });\n }\n };\n\n switch (modelFamily) {\n case 'kimi-k3': {\n if (requestedThinking != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'thinking',\n details:\n 'Kimi K3 always reasons and does not accept the thinking field. The option has been omitted.',\n });\n }\n if (reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning \"none\"',\n details: 'Kimi K3 reasoning cannot be disabled.',\n });\n }\n reasoningEffort =\n requestedReasoningEffort ??\n (isCustomReasoning(reasoning) && reasoning !== 'none'\n ? mapReasoningToProviderEffort({\n reasoning,\n effortMap: {\n minimal: 'low',\n low: 'low',\n medium: 'high',\n high: 'high',\n xhigh: 'max',\n },\n warnings: allWarnings,\n })\n : undefined);\n break;\n }\n case 'kimi-k2.7': {\n warnUnsupportedReasoningEffort();\n if (requestedThinking?.type === 'disabled' || reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature:\n requestedThinking?.type === 'disabled'\n ? 'thinking.type \"disabled\"'\n : 'reasoning \"none\"',\n details: 'Kimi K2.7 thinking cannot be disabled.',\n });\n } else if (requestedThinking?.type === 'enabled') {\n thinking = { type: 'enabled' };\n }\n break;\n }\n case 'kimi-k2.6': {\n warnUnsupportedReasoningEffort();\n const thinkingType =\n requestedThinking?.type ??\n (isCustomReasoning(reasoning)\n ? reasoning === 'none'\n ? 'disabled'\n : 'enabled'\n : undefined);\n if (thinkingType != null || preserveReasoning) {\n thinking = {\n type: thinkingType ?? 'enabled',\n ...(preserveReasoning ? { keep: 'all' as const } : {}),\n };\n }\n break;\n }\n case 'kimi-k2.5': {\n warnUnsupportedReasoningEffort();\n const thinkingType =\n requestedThinking?.type ??\n (isCustomReasoning(reasoning)\n ? reasoning === 'none'\n ? 'disabled'\n : 'enabled'\n : undefined);\n if (thinkingType != null) {\n thinking = { type: thinkingType };\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n case 'moonshot-v1': {\n warnUnsupportedReasoningEffort();\n if (requestedThinking != null) {\n allWarnings.push({\n type: 'unsupported',\n feature: 'thinking',\n details: `thinking is not supported by model \"${this.modelId}\" and has been omitted.`,\n });\n }\n if (isCustomReasoning(reasoning) && reasoning !== 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning',\n details: `reasoning is not supported by model \"${this.modelId}\".`,\n });\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n case 'unknown': {\n if (reasoning === 'none') {\n allWarnings.push({\n type: 'unsupported',\n feature: 'reasoning \"none\"',\n details:\n 'Use providerOptions.moonshotai.thinking to control thinking on custom models.',\n });\n }\n reasoningEffort =\n requestedReasoningEffort ??\n (isCustomReasoning(reasoning) && reasoning !== 'none'\n ? mapReasoningToProviderEffort({\n reasoning,\n effortMap: {\n minimal: 'low',\n low: 'low',\n medium: 'high',\n high: 'high',\n xhigh: 'max',\n },\n warnings: allWarnings,\n })\n : undefined);\n if (requestedThinking?.type != null) {\n thinking = { type: requestedThinking.type };\n }\n if (preserveReasoning) {\n allWarnings.push({\n type: 'unsupported',\n feature: `reasoningHistory 'preserved' is not supported by model \"${this.modelId}\"`,\n });\n }\n break;\n }\n }\n\n let response_format: Record<string, unknown> | undefined;\n if (responseFormat?.type === 'json') {\n if (\n this.config.supportsStructuredOutputs === true &&\n responseFormat.schema != null\n ) {\n // kimi-k2.5 produces nonsensical output when the top-level `$schema`\n // keyword injected by the AI SDK is present, even though it otherwise\n // supports structured outputs. Strip it from the schema sent to\n // Moonshot; the full original schema is still used for result\n // validation.\n const { $schema: _$schema, ...schemaWithoutDollarSchema } =\n responseFormat.schema;\n response_format = {\n type: 'json_schema',\n json_schema: {\n name: responseFormat.name ?? 'response',\n strict: moonshotOptions.strictJsonSchema ?? true,\n schema: normalizeJsonSchemaForMFJS(schemaWithoutDollarSchema),\n },\n };\n } else {\n response_format = { type: 'json_object' };\n }\n }\n\n const { messages, warnings: messageWarnings } =\n await convertToMoonshotAIChatMessages({\n modelId: this.modelId,\n prompt,\n providerOptionsName: this.providerOptionsName,\n responseFormat: response_format,\n });\n allWarnings.push(...messageWarnings);\n\n return {\n args: {\n model: this.modelId,\n ...((moonshotOptions.logprobs === true ||\n moonshotOptions.topLogprobs != null) && { logprobs: true }),\n ...(moonshotOptions.topLogprobs != null && {\n top_logprobs: moonshotOptions.topLogprobs,\n }),\n max_completion_tokens: maxOutputTokens,\n temperature: supportsSamplingOptions ? temperature : undefined,\n top_p: supportsSamplingOptions ? topP : undefined,\n frequency_penalty: supportsSamplingOptions\n ? frequencyPenalty\n : undefined,\n presence_penalty: supportsSamplingOptions ? presencePenalty : undefined,\n response_format,\n stop: stopSequences,\n messages,\n tools: moonshotTools,\n tool_choice: moonshotToolChoice,\n ...(moonshotOptions.prediction != null && {\n prediction: moonshotOptions.prediction,\n }),\n ...(thinking != null ? { thinking } : {}),\n ...(reasoningEffort != null && {\n reasoning_effort: reasoningEffort,\n }),\n ...(moonshotOptions.promptCacheKey != null && {\n prompt_cache_key: moonshotOptions.promptCacheKey,\n }),\n ...(moonshotOptions.safetyIdentifier != null && {\n safety_identifier: moonshotOptions.safetyIdentifier,\n }),\n },\n warnings: [...allWarnings, ...toolWarnings],\n };\n }\n\n async doGenerate(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4GenerateResult> {\n const { args, warnings } = await this.getArgs({ ...options });\n\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse,\n } = await postJsonToApi({\n url: this.config.url({\n path: '/chat/completions',\n modelId: this.modelId,\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n moonshotAIChatResponseSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n const choice = responseBody.choices[0];\n const content: Array<LanguageModelV4Content> = [];\n\n // reasoning content (before text):\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({ type: 'reasoning', text: reasoning });\n }\n\n // tool calls:\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: 'tool-call',\n toolCallId: toolCall.id || generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments ?? '',\n });\n }\n }\n\n // text content:\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: 'text', text });\n }\n\n return {\n content,\n finishReason: {\n unified: mapMoonshotAIFinishReason(choice.finish_reason),\n raw: choice.finish_reason ?? undefined,\n },\n usage: convertMoonshotAIChatUsage(responseBody.usage),\n providerMetadata: {\n [this.providerOptionsName]: {\n ...(choice.logprobs != null && { logprobs: choice.logprobs }),\n ...(responseBody.object != null && {\n responseObject: responseBody.object,\n }),\n ...(choice.index != null && { choiceIndex: choice.index }),\n ...(choice.message.role != null && {\n messageRole: choice.message.role,\n }),\n ...(choice.message.tool_calls != null && {\n toolCallTypes: choice.message.tool_calls\n .map(toolCall => toolCall.type)\n .filter(type => type != null),\n }),\n },\n },\n request: { body: args },\n response: {\n ...getResponseMetadata(responseBody),\n headers: responseHeaders,\n body: rawResponse,\n },\n warnings,\n };\n }\n\n async doStream(\n options: LanguageModelV4CallOptions,\n ): Promise<LanguageModelV4StreamResult> {\n const { args, warnings } = await this.getArgs({ ...options });\n\n const body = {\n ...args,\n stream: true,\n ...(this.config.includeUsage && {\n stream_options: { include_usage: true },\n }),\n };\n\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: '/chat/completions',\n modelId: this.modelId,\n }),\n headers: combineHeaders(this.config.headers?.(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n moonshotAIChatChunkSchema,\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch,\n });\n\n let toolCallTracker: StreamingToolCallTracker;\n\n let finishReason: LanguageModelV4FinishReason = {\n unified: 'other',\n raw: undefined,\n };\n let topLevelUsage: MoonshotAIChatTokenUsage | undefined = undefined;\n let choiceUsage: MoonshotAIChatTokenUsage | undefined = undefined;\n const contentLogprobs: MoonshotAIChatLogprob[] = [];\n const providerOptionsName = this.providerOptionsName;\n let isFirstChunk = true;\n let isActiveReasoning = false;\n let isActiveText = false;\n let responseObject: 'chat.completion.chunk' | undefined;\n let choiceIndex: number | undefined;\n let messageRole: 'assistant' | undefined;\n const toolCallTypes = new Map<number, 'function'>();\n\n return {\n stream: response.pipeThrough(\n new TransformStream<\n ParseResult<InferSchema<typeof moonshotAIChatChunkSchema>>,\n LanguageModelV4StreamPart\n >({\n start(controller) {\n toolCallTracker = new StreamingToolCallTracker(controller, {\n generateId,\n });\n controller.enqueue({ type: 'stream-start', warnings });\n },\n\n transform(chunk, controller) {\n // emit raw chunk if requested (before anything else):\n if (options.includeRawChunks) {\n controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n }\n\n // handle failed chunk parsing / validation:\n if (!chunk.success) {\n finishReason = { unified: 'error', raw: undefined };\n controller.enqueue({ type: 'error', error: chunk.error });\n return;\n }\n const value = chunk.value;\n\n // handle error chunks:\n if ('error' in value) {\n finishReason = { unified: 'error', raw: undefined };\n controller.enqueue({\n type: 'error',\n error: createMoonshotAIStreamError(value.error, value),\n });\n return;\n }\n\n if (isFirstChunk) {\n isFirstChunk = false;\n\n controller.enqueue({\n type: 'response-metadata',\n ...getResponseMetadata(value),\n });\n }\n\n if (value.usage != null) {\n topLevelUsage = value.usage;\n }\n\n if (value.object != null) {\n responseObject = value.object;\n }\n\n const choice = value.choices[0];\n\n if (choice?.usage != null) {\n choiceUsage = choice.usage;\n }\n\n if (choice?.index != null) {\n choiceIndex = choice.index;\n }\n\n if (choice?.finish_reason != null) {\n finishReason = {\n unified: mapMoonshotAIFinishReason(choice.finish_reason),\n raw: choice.finish_reason,\n };\n }\n\n if (choice?.logprobs?.content != null) {\n contentLogprobs.push(...choice.logprobs.content);\n }\n\n if (choice?.delta == null) {\n return;\n }\n\n const delta = choice.delta;\n\n if (delta.role != null) {\n messageRole = delta.role;\n }\n\n // enqueue reasoning before text deltas:\n const reasoningContent = delta.reasoning_content;\n if (reasoningContent) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-start',\n id: 'reasoning-0',\n });\n isActiveReasoning = true;\n }\n\n controller.enqueue({\n type: 'reasoning-delta',\n id: 'reasoning-0',\n delta: reasoningContent,\n });\n }\n\n if (delta.content) {\n if (!isActiveText) {\n controller.enqueue({ type: 'text-start', id: 'txt-0' });\n isActiveText = true;\n }\n\n // end reasoning when text starts:\n if (isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-end',\n id: 'reasoning-0',\n });\n isActiveReasoning = false;\n }\n\n controller.enqueue({\n type: 'text-delta',\n id: 'txt-0',\n delta: delta.content,\n });\n }\n\n if (delta.tool_calls != null && delta.tool_calls.length > 0) {\n // end reasoning when tool calls start:\n if (isActiveReasoning) {\n controller.enqueue({\n type: 'reasoning-end',\n id: 'reasoning-0',\n });\n isActiveReasoning = false;\n }\n\n for (const [index, toolCallDelta] of delta.tool_calls.entries()) {\n const toolCallIndex = toolCallDelta.index ?? index;\n if (toolCallDelta.type != null) {\n toolCallTypes.set(toolCallIndex, toolCallDelta.type);\n }\n toolCallTracker.processDelta({\n ...toolCallDelta,\n index: toolCallIndex,\n });\n }\n }\n },\n\n flush(controller) {\n if (isActiveReasoning) {\n controller.enqueue({ type: 'reasoning-end', id: 'reasoning-0' });\n }\n\n if (isActiveText) {\n controller.enqueue({ type: 'text-end', id: 'txt-0' });\n }\n\n toolCallTracker.flush();\n\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage: convertMoonshotAIChatUsage(topLevelUsage ?? choiceUsage),\n providerMetadata: {\n [providerOptionsName]: {\n ...(contentLogprobs.length > 0 && {\n logprobs: { content: contentLogprobs },\n }),\n ...(responseObject != null && { responseObject }),\n ...(choiceIndex != null && { choiceIndex }),\n ...(messageRole != null && { messageRole }),\n ...(toolCallTypes.size > 0 && {\n toolCallTypes: [...toolCallTypes.entries()]\n .sort(([left], [right]) => left - right)\n .map(([, type]) => type),\n }),\n },\n },\n });\n },\n }),\n ),\n request: { body },\n response: { headers: responseHeaders },\n };\n }\n}\n","import {\n InvalidPromptError,\n UnsupportedFunctionalityError,\n type LanguageModelV4FilePart,\n type LanguageModelV4Prompt,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport {\n convertBase64ToUint8Array,\n convertToBase64,\n getTopLevelMediaType,\n parseProviderOptions,\n resolveProviderReference,\n resolveFullMediaType,\n} from '@ai-sdk/provider-utils';\n\nimport type { MoonshotAIMessages } from './moonshotai-chat-api-types';\nimport {\n getMoonshotAIModelFamily,\n moonshotaiAllMessageProviderOptions,\n type MoonshotAIChatModelId,\n} from './moonshotai-chat-options';\nimport { prepareTools } from './moonshotai-prepare-tools';\n\nconst supportedImageMediaTypes = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n 'image/bmp',\n 'image/heic',\n 'image/heif',\n] as const;\n\nconst supportedVideoMediaTypes = [\n 'video/mp4',\n 'video/mpeg',\n 'video/mov',\n 'video/avi',\n 'video/x-flv',\n 'video/mpg',\n 'video/webm',\n 'video/wmv',\n 'video/3gpp',\n] as const;\n\nfunction formatMediaUrl({\n part,\n supportedMediaTypes,\n topLevelMediaType,\n}: {\n part: LanguageModelV4FilePart;\n supportedMediaTypes: readonly string[];\n topLevelMediaType: 'image' | 'video';\n}): string {\n if (part.data.type !== 'url' && part.data.type !== 'data') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part data type ${part.data.type}`,\n });\n }\n\n const mediaType =\n part.data.type === 'url' ? part.mediaType : resolveFullMediaType({ part });\n\n if (\n !supportedMediaTypes.includes(mediaType) &&\n !(\n part.data.type === 'url' &&\n (mediaType === topLevelMediaType ||\n mediaType === `${topLevelMediaType}/*`)\n )\n ) {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${mediaType}`,\n });\n }\n\n return part.data.type === 'url'\n ? part.data.url.toString()\n : `data:${mediaType};base64,${convertToBase64(part.data.data)}`;\n}\n\n// Moonshot AI chat completions accepts text, image_url, and video_url content\n// parts only. Anything else (audio, PDF, other file types) throws here rather\n// than being rejected by the API with a 400.\nexport async function convertToMoonshotAIChatMessages({\n modelId,\n prompt,\n providerOptionsName = 'moonshotai',\n responseFormat,\n}: {\n modelId?: MoonshotAIChatModelId;\n prompt: LanguageModelV4Prompt;\n providerOptionsName?: string;\n responseFormat?: Record<string, unknown>;\n}): Promise<{\n messages: MoonshotAIMessages;\n warnings: Array<SharedV4Warning>;\n}> {\n const messages: MoonshotAIMessages = [];\n const warnings: Array<SharedV4Warning> = [];\n const modelFamily =\n modelId == null ? 'unknown' : getMoonshotAIModelFamily(modelId);\n\n for (const [index, { role, content, providerOptions }] of prompt.entries()) {\n const moonshotMessageOptions = await parseProviderOptions({\n provider: providerOptionsName,\n providerOptions,\n schema: moonshotaiAllMessageProviderOptions,\n });\n\n if (moonshotMessageOptions?.partial === true && role !== 'assistant') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode requires `partial: true` on an assistant message.',\n });\n }\n\n if (moonshotMessageOptions?.tools != null && role !== 'system') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot dynamic tools must be configured on a system message.',\n });\n }\n\n switch (role) {\n case 'system': {\n if (moonshotMessageOptions?.tools?.length) {\n if (content.length > 0) {\n throw new InvalidPromptError({\n prompt,\n message:\n 'A Moonshot dynamic-tool system message must use empty content because the API forbids content alongside tools.',\n });\n }\n\n if (modelFamily !== 'kimi-k3' && modelFamily !== 'unknown') {\n warnings.push({\n type: 'unsupported',\n feature: `dynamic tool loading for model \"${modelId}\"`,\n details:\n 'Moonshot documents dynamic tool loading only for Kimi K3. The dynamic system message has been omitted.',\n });\n break;\n }\n\n const { tools, toolWarnings } = prepareTools({\n modelId: modelId ?? 'custom-model',\n tools: moonshotMessageOptions.tools,\n });\n warnings.push(...toolWarnings);\n messages.push({ role: 'system', tools: tools ?? [] });\n break;\n }\n\n messages.push({\n role: 'system',\n content,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n break;\n }\n\n case 'user': {\n if (content.length === 1 && content[0].type === 'text') {\n messages.push({\n role: 'user',\n content: content[0].text,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n break;\n }\n\n messages.push({\n role: 'user',\n content: content.map(part => {\n switch (part.type) {\n case 'text': {\n return { type: 'text', text: part.text };\n }\n case 'file': {\n const topLevel = getTopLevelMediaType(part.mediaType);\n\n switch (part.data.type) {\n case 'reference': {\n if (topLevel !== 'image' && topLevel !== 'video') {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n\n const reference = resolveProviderReference({\n reference: part.data.reference,\n provider: 'moonshotai',\n });\n\n if (!reference.startsWith('ms://')) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Moonshot file provider references without an ms:// URL',\n });\n }\n\n return topLevel === 'image'\n ? {\n type: 'image_url' as const,\n image_url: { url: reference },\n }\n : {\n type: 'video_url' as const,\n video_url: { url: reference },\n };\n }\n case 'text': {\n if (topLevel === 'text') {\n return {\n type: 'text' as const,\n text: part.data.text,\n };\n }\n\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n case 'url':\n case 'data': {\n if (topLevel === 'image') {\n return {\n type: 'image_url' as const,\n image_url: {\n url: formatMediaUrl({\n part,\n supportedMediaTypes: supportedImageMediaTypes,\n topLevelMediaType: 'image',\n }),\n },\n };\n }\n\n if (topLevel === 'video') {\n return {\n type: 'video_url' as const,\n video_url: {\n url: formatMediaUrl({\n part,\n supportedMediaTypes: supportedVideoMediaTypes,\n topLevelMediaType: 'video',\n }),\n },\n };\n }\n\n if (topLevel === 'text') {\n const textContent =\n part.data.type === 'url'\n ? part.data.url.toString()\n : typeof part.data.data === 'string'\n ? new TextDecoder().decode(\n convertBase64ToUint8Array(part.data.data),\n )\n : new TextDecoder().decode(part.data.data);\n\n return {\n type: 'text' as const,\n text: textContent,\n };\n }\n\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`,\n });\n }\n }\n }\n }\n }),\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n });\n\n break;\n }\n\n case 'assistant': {\n if (moonshotMessageOptions?.partial === true) {\n if (index !== prompt.length - 1) {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode requires the partial assistant message to be the final message.',\n });\n }\n\n if (responseFormat?.type === 'json_object') {\n throw new InvalidPromptError({\n prompt,\n message:\n 'Moonshot AI Partial Mode cannot be combined with JSON object response format.',\n });\n }\n }\n\n let text = '';\n let reasoning = '';\n const toolCalls: Array<{\n id: string;\n type: 'function';\n function: { name: string; arguments: string };\n }> = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n text += part.text;\n break;\n }\n case 'reasoning': {\n reasoning += part.text;\n break;\n }\n case 'tool-call': {\n toolCalls.push({\n id: part.toolCallId,\n type: 'function',\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input),\n },\n });\n break;\n }\n }\n }\n\n messages.push({\n role: 'assistant',\n content: toolCalls.length > 0 ? text || null : text,\n ...(moonshotMessageOptions?.name != null && {\n name: moonshotMessageOptions.name,\n }),\n ...(moonshotMessageOptions?.partial === true && {\n partial: true,\n }),\n ...(reasoning.length > 0 ? { reasoning_content: reasoning } : {}),\n tool_calls: toolCalls.length > 0 ? toolCalls : undefined,\n });\n\n break;\n }\n\n case 'tool': {\n if (moonshotMessageOptions?.name != null) {\n warnings.push({\n type: 'unsupported',\n feature: 'message name on tool messages',\n });\n }\n\n for (const toolResponse of content) {\n if (toolResponse.type === 'tool-approval-response') {\n continue;\n }\n\n const output = toolResponse.output;\n\n let contentValue: string;\n switch (output.type) {\n case 'text':\n case 'error-text':\n contentValue = output.value;\n break;\n case 'execution-denied':\n contentValue = output.reason ?? 'Tool call execution denied.';\n break;\n case 'content':\n case 'json':\n case 'error-json':\n contentValue = JSON.stringify(output.value);\n break;\n }\n\n messages.push({\n role: 'tool',\n tool_call_id: toolResponse.toolCallId,\n content: contentValue,\n });\n }\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n\n return { messages, warnings };\n}\n","import type { LanguageModelV4FunctionTool } from '@ai-sdk/provider';\nimport { z } from 'zod/v4';\n\nexport type MoonshotAIChatModelId =\n | 'moonshot-v1-auto'\n | 'moonshot-v1-8k'\n | 'moonshot-v1-32k'\n | 'moonshot-v1-128k'\n | 'moonshot-v1-8k-vision-preview'\n | 'moonshot-v1-32k-vision-preview'\n | 'moonshot-v1-128k-vision-preview'\n | 'kimi-k2.5'\n | 'kimi-k2.6'\n | 'kimi-k2.7-code'\n | 'kimi-k2.7-code-highspeed'\n | 'kimi-k3'\n | (string & {});\n\nexport function isMoonshotAIKimiModel(modelId: MoonshotAIChatModelId): boolean {\n return getMoonshotAIModelFamily(modelId).startsWith('kimi-');\n}\n\nexport type MoonshotAIModelFamily =\n | 'kimi-k2.5'\n | 'kimi-k2.6'\n | 'kimi-k2.7'\n | 'kimi-k3'\n | 'moonshot-v1'\n | 'unknown';\n\nexport function getMoonshotAIModelFamily(\n modelId: MoonshotAIChatModelId,\n): MoonshotAIModelFamily {\n if (modelId === 'kimi-k2.5') return 'kimi-k2.5';\n if (modelId === 'kimi-k2.6') return 'kimi-k2.6';\n if (modelId === 'kimi-k2.7-code' || modelId === 'kimi-k2.7-code-highspeed') {\n return 'kimi-k2.7';\n }\n if (modelId === 'kimi-k3') return 'kimi-k3';\n if (modelId.startsWith('moonshot-v1-')) return 'moonshot-v1';\n return 'unknown';\n}\n\nexport const moonshotaiLanguageModelOptions = z.object({\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n\n /**\n * Whether to return log probabilities for generated tokens.\n */\n logprobs: z.boolean().optional(),\n\n /**\n * Number of most likely tokens to return at each token position.\n *\n * Setting this option automatically enables `logprobs`.\n */\n topLogprobs: z.number().int().min(0).max(20).optional(),\n\n /**\n * Reasoning effort for Kimi K3. Supports `low`, `high`, and `max`;\n * defaults to `max`.\n */\n reasoningEffort: z.enum(['low', 'high', 'max']).optional(),\n\n /**\n * Static predicted content that can accelerate responses when much of the\n * output is known ahead of time.\n */\n prediction: z\n .object({\n type: z.literal('content'),\n content: z.union([\n z.string(),\n z.array(z.object({ type: z.literal('text'), text: z.string() })),\n ]),\n })\n .optional(),\n\n /**\n * Thinking configuration for Kimi K2.x models. Kimi K2.5 and K2.6 support\n * enabling or disabling thinking. Kimi K2.7 Code always has thinking\n * enabled.\n */\n thinking: z\n .object({\n type: z.enum(['enabled', 'disabled']).optional(),\n /**\n * @deprecated Moonshot Chat Completions does not support thinking\n * budgets. Accepted for backwards compatibility, then omitted with a\n * warning.\n */\n budgetTokens: z.number().int().min(1024).optional(),\n })\n .optional(),\n\n /**\n * Controls preserved reasoning behavior in multi-turn conversations.\n * `disabled` and `interleaved` are compatibility values that leave the\n * request unchanged. `preserved` maps to `thinking.keep: 'all'` for Kimi\n * K2.6. Kimi K2.7 and K3 preserve reasoning by default.\n */\n reasoningHistory: z.enum(['disabled', 'interleaved', 'preserved']).optional(),\n\n /**\n * Used to cache responses for similar requests to optimize cache hit rates.\n * Typically a session or task id.\n */\n promptCacheKey: z.string().optional(),\n\n /**\n * A stable identifier used to help Moonshot detect users violating usage\n * policies. Recommended to hash the username or email address.\n */\n safetyIdentifier: z.string().optional(),\n});\n\nexport type MoonshotAILanguageModelOptions = {\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n *\n * @default true\n */\n strictJsonSchema?: boolean;\n\n /** Whether to return log probabilities for generated tokens. */\n logprobs?: boolean;\n\n /**\n * Number of most likely tokens to return at each token position.\n * Setting this option automatically enables `logprobs`.\n */\n topLogprobs?: number;\n\n /** Reasoning effort for Kimi K3. */\n reasoningEffort?: 'low' | 'high' | 'max';\n\n /**\n * Static predicted content that can accelerate responses when much of the\n * output is known ahead of time.\n */\n prediction?: {\n type: 'content';\n content: string | Array<{ type: 'text'; text: string }>;\n };\n\n /** Controls thinking on Kimi K2.5 and K2.6. K2.7 is always enabled. */\n thinking?: {\n type?: 'enabled' | 'disabled';\n\n /**\n * @deprecated Moonshot Chat Completions does not support thinking budgets.\n * This value is ignored with a warning.\n */\n budgetTokens?: number;\n };\n\n /**\n * Controls preserved reasoning behavior in multi-turn conversations.\n * `disabled` and `interleaved` are compatibility values that leave the\n * request unchanged. `preserved` maps to `thinking.keep: 'all'` for Kimi\n * K2.6. Kimi K2.7 and K3 preserve reasoning by default.\n */\n reasoningHistory?: 'disabled' | 'interleaved' | 'preserved';\n promptCacheKey?: string;\n safetyIdentifier?: string;\n};\n\nexport const moonshotaiMessageProviderOptions = z.object({\n /**\n * The name of the participant represented by the message.\n *\n * Supported on system, user, and assistant messages.\n */\n name: z.string().optional(),\n});\n\nexport type MoonshotAIMessageProviderOptions = z.infer<\n typeof moonshotaiMessageProviderOptions\n>;\n\nexport const moonshotaiAssistantMessageProviderOptions =\n moonshotaiMessageProviderOptions.extend({\n /**\n * Whether the assistant message content is a partial response that Moonshot\n * should continue. Only supported on the final assistant message and cannot\n * be combined with JSON object response format.\n */\n partial: z.literal(true).optional(),\n });\n\nexport type MoonshotAIAssistantMessageProviderOptions = z.infer<\n typeof moonshotaiAssistantMessageProviderOptions\n>;\n\nconst moonshotaiDynamicToolSchema = z.object({\n type: z.literal('function'),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.record(z.string(), z.unknown()),\n strict: z.boolean().optional(),\n});\n\nexport const moonshotaiAllMessageProviderOptions =\n moonshotaiAssistantMessageProviderOptions.extend({\n /** Function tools to load at this point in a Kimi K3 conversation. */\n tools: z.array(moonshotaiDynamicToolSchema).optional(),\n });\n\nexport type MoonshotAISystemMessageProviderOptions =\n MoonshotAIMessageProviderOptions & {\n /** Function tools to load at this point in a Kimi K3 conversation. */\n tools?: Array<\n Pick<\n LanguageModelV4FunctionTool,\n 'type' | 'name' | 'description' | 'inputSchema' | 'strict'\n >\n >;\n };\n","import {\n UnsupportedFunctionalityError,\n type LanguageModelV4CallOptions,\n type SharedV4Warning,\n} from '@ai-sdk/provider';\nimport type { MoonshotAIFunctionTool } from './moonshotai-chat-api-types';\nimport type { MoonshotAIChatModelId } from './moonshotai-chat-options';\nimport { normalizeJsonSchemaForMFJS } from './normalize-json-schema-for-mfjs';\n\nexport function prepareTools({\n tools,\n toolChoice,\n modelId,\n}: {\n tools: LanguageModelV4CallOptions['tools'];\n toolChoice?: LanguageModelV4CallOptions['toolChoice'];\n modelId: MoonshotAIChatModelId;\n}): {\n tools: undefined | Array<MoonshotAIFunctionTool>;\n toolChoice:\n | { type: 'function'; function: { name: string } }\n | 'auto'\n | 'none'\n | 'required'\n | undefined;\n toolWarnings: SharedV4Warning[];\n} {\n // when the tools array is empty, change it to undefined to prevent errors:\n tools = tools?.length ? tools : undefined;\n\n const toolWarnings: SharedV4Warning[] = [];\n\n if (tools == null) {\n return { tools: undefined, toolChoice: undefined, toolWarnings };\n }\n\n const moonshotTools: Array<MoonshotAIFunctionTool> = [];\n\n for (const tool of tools) {\n if (tool.type === 'provider') {\n toolWarnings.push({\n type: 'unsupported',\n feature: `provider-defined tool ${tool.id}`,\n });\n } else {\n moonshotTools.push({\n type: 'function',\n function: {\n name: tool.name,\n description: tool.description,\n parameters: normalizeJsonSchemaForMFJS(tool.inputSchema),\n ...(tool.strict != null ? { strict: tool.strict } : {}),\n },\n });\n }\n }\n\n if (toolChoice == null) {\n return { tools: moonshotTools, toolChoice: undefined, toolWarnings };\n }\n\n const type = toolChoice.type;\n\n switch (type) {\n case 'auto':\n case 'none':\n return { tools: moonshotTools, toolChoice: type, toolWarnings };\n case 'required':\n if (\n modelId === 'kimi-k2.6' ||\n modelId === 'kimi-k2.7-code' ||\n modelId === 'kimi-k2.7-code-highspeed'\n ) {\n toolWarnings.push({\n type: 'unsupported',\n feature: `tool choice \"required\" for model \"${modelId}\"`,\n details:\n 'Moonshot AI rejects required tool choice for this model. The setting has been omitted; use \"auto\" or select a specific tool instead.',\n });\n return {\n tools: moonshotTools,\n toolChoice: undefined,\n toolWarnings,\n };\n }\n return { tools: moonshotTools, toolChoice: type, toolWarnings };\n case 'tool':\n return {\n tools: moonshotTools,\n toolChoice: {\n type: 'function',\n function: { name: toolChoice.toolName },\n },\n toolWarnings,\n };\n default: {\n const _exhaustiveCheck: never = type;\n throw new UnsupportedFunctionalityError({\n functionality: `tool choice type: ${_exhaustiveCheck}`,\n });\n }\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport { isRecord } from '@ai-sdk/provider-utils';\n\nconst SCHEMA_ARRAY_KEYS = ['allOf', 'anyOf', 'oneOf', 'prefixItems'] as const;\nconst SCHEMA_MAP_KEYS = [\n 'properties',\n 'patternProperties',\n '$defs',\n 'dependentSchemas',\n] as const;\nconst SCHEMA_SINGLE_KEYS = [\n 'additionalProperties',\n 'propertyNames',\n 'items',\n 'contains',\n 'not',\n 'if',\n 'then',\n 'else',\n] as const;\n\n/**\n * Normalizes a JSON Schema to the subset Moonshot's MFJS validator accepts:\n * `object` root required, tuple `items` become `prefixItems`, and `type` next\n * to `anyOf` moves into the branches. Everything else passes through. The\n * full original schema is still used for AI SDK result validation.\n */\nexport function normalizeJsonSchemaForMFJS(schema: unknown): unknown {\n return normalizeDefinition(schema, true);\n}\n\nfunction normalizeDefinition(definition: unknown, isRoot: boolean): unknown {\n if (typeof definition === 'boolean' || !isRecord(definition)) {\n if (isRoot) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'tool parameters must be a JSON Schema object with type \"object\" for moonshotai (MFJS)',\n });\n }\n return definition;\n }\n\n if (isRoot && definition.type !== 'object') {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'tool parameters must be a JSON Schema object with type \"object\" for moonshotai (MFJS)',\n });\n }\n\n const result: Record<string, unknown> = { ...definition };\n\n // Existing prefixItems stay first (they are positional).\n if (Array.isArray(result.items)) {\n const tuple = result.items;\n result.prefixItems = [\n ...(Array.isArray(result.prefixItems) ? result.prefixItems : []),\n ...tuple.map(item => normalizeDefinition(item, false)),\n ];\n delete result.items;\n } else if (isRecord(result.items)) {\n result.items = normalizeDefinition(result.items, false);\n }\n\n // MFJS requires type to live inside anyOf items.\n if (typeof result.type === 'string' && Array.isArray(result.anyOf)) {\n const parentType = result.type;\n delete result.type;\n result.anyOf = result.anyOf.map(branch =>\n isRecord(branch) && branch.type == null\n ? { type: parentType, ...branch }\n : branch,\n );\n }\n\n for (const key of SCHEMA_ARRAY_KEYS) {\n const value = result[key];\n if (Array.isArray(value)) {\n result[key] = value.map(item => normalizeDefinition(item, false));\n }\n }\n\n for (const key of SCHEMA_MAP_KEYS) {\n const value = result[key];\n if (isRecord(value)) {\n result[key] = Object.fromEntries(\n Object.entries(value).map(([k, v]) => [\n k,\n normalizeDefinition(v, false),\n ]),\n );\n }\n }\n\n for (const key of SCHEMA_SINGLE_KEYS) {\n const value = result[key];\n if (isRecord(value) || typeof value === 'boolean') {\n result[key] = normalizeDefinition(value, false);\n }\n }\n\n return result;\n}\n","import type { LanguageModelV4Usage } from '@ai-sdk/provider';\nimport { createNullLanguageModelUsage } from '@ai-sdk/provider-utils';\n\nexport function convertMoonshotAIChatUsage(\n usage:\n | {\n prompt_tokens?: number | null;\n completion_tokens?: number | null;\n cached_tokens?: number | null;\n prompt_tokens_details?: {\n cached_tokens?: number | null;\n } | null;\n completion_tokens_details?: {\n reasoning_tokens?: number | null;\n } | null;\n }\n | undefined\n | null,\n): LanguageModelV4Usage {\n if (usage == null) {\n return createNullLanguageModelUsage();\n }\n\n const promptTokens = usage.prompt_tokens ?? 0;\n const completionTokens = usage.completion_tokens ?? 0;\n\n const cacheReadTokens =\n usage.cached_tokens ?? usage.prompt_tokens_details?.cached_tokens ?? 0;\n\n const reasoningTokens =\n usage.completion_tokens_details?.reasoning_tokens ?? 0;\n\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: undefined,\n },\n outputTokens: {\n total: completionTokens,\n text: Math.max(0, completionTokens - reasoningTokens),\n reasoning: reasoningTokens,\n },\n raw: usage,\n };\n}\n","import type { LanguageModelV4FinishReason } from '@ai-sdk/provider';\n\nexport function mapMoonshotAIFinishReason(\n finishReason: string | null | undefined,\n): LanguageModelV4FinishReason['unified'] {\n switch (finishReason) {\n case 'stop':\n return 'stop';\n case 'length':\n return 'length';\n case 'content_filter':\n return 'content-filter';\n case 'function_call':\n case 'tool_calls':\n return 'tool-calls';\n default:\n return 'other';\n }\n}\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type MoonshotAIMessages = Array<MoonshotAIMessage>;\n\nexport type MoonshotAIMessage =\n | MoonshotAISystemMessage\n | MoonshotAIUserMessage\n | MoonshotAIAssistantMessage\n | MoonshotAIToolMessage;\n\nexport type MoonshotAISystemMessage =\n | {\n role: 'system';\n content: string;\n name?: string;\n }\n | {\n role: 'system';\n tools: Array<MoonshotAIFunctionTool>;\n };\n\nexport interface MoonshotAIFunctionTool {\n type: 'function';\n function: {\n name: string;\n description: string | undefined;\n parameters: unknown;\n strict?: boolean;\n };\n}\n\nexport interface MoonshotAIUserMessage {\n role: 'user';\n content: string | Array<MoonshotAIContentPart>;\n name?: string;\n}\n\nexport type MoonshotAIContentPart =\n | MoonshotAIContentPartText\n | MoonshotAIContentPartImage\n | MoonshotAIContentPartVideo;\n\nexport interface MoonshotAIContentPartText {\n type: 'text';\n text: string;\n}\n\nexport interface MoonshotAIContentPartImage {\n type: 'image_url';\n image_url: { url: string };\n}\n\nexport interface MoonshotAIContentPartVideo {\n type: 'video_url';\n video_url: { url: string };\n}\n\nexport interface MoonshotAIAssistantMessage {\n role: 'assistant';\n content?: string | null;\n name?: string;\n partial?: true;\n reasoning_content?: string;\n tool_calls?: Array<MoonshotAIMessageToolCall>;\n}\n\nexport interface MoonshotAIMessageToolCall {\n type: 'function';\n id: string;\n function: {\n arguments: string;\n name: string;\n };\n}\n\nexport interface MoonshotAIToolMessage {\n role: 'tool';\n content: string;\n tool_call_id: string;\n}\n\n// Schemas below are limited versions focused on what the implementation\n// needs. This limits breakages when the API changes and increases efficiency.\n\n// Loose, nested objects included: the parsed value is returned as `usage.raw`.\nconst tokenUsageSchema = z\n .looseObject({\n prompt_tokens: z.number().nullish(),\n completion_tokens: z.number().nullish(),\n cached_tokens: z.number().nullish(),\n total_tokens: z.number().nullish(),\n prompt_tokens_details: z\n .looseObject({\n cached_tokens: z.number().nullish(),\n })\n .nullish(),\n completion_tokens_details: z\n .looseObject({\n reasoning_tokens: z.number().nullish(),\n })\n .nullish(),\n })\n .nullish();\n\nexport type MoonshotAIChatTokenUsage = z.infer<typeof tokenUsageSchema>;\n\nexport const moonshotAIErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n code: z.string().nullish(),\n }),\n});\n\nexport type MoonshotAIErrorData = z.infer<typeof moonshotAIErrorSchema>;\n\nconst moonshotAIChatLogprobSchema = z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n top_logprobs: z.array(\n z.object({\n token: z.string(),\n logprob: z.number(),\n bytes: z.array(z.number()).nullable(),\n }),\n ),\n});\n\nconst moonshotAIChatLogprobsSchema = z\n .object({\n content: z.array(moonshotAIChatLogprobSchema).nullish(),\n })\n .nullish();\n\nexport type MoonshotAIChatLogprob = z.infer<typeof moonshotAIChatLogprobSchema>;\n\nexport const moonshotAIChatResponseSchema = z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n object: z.literal('chat.completion').nullish(),\n choices: z.array(\n z.object({\n index: z.number().nullish(),\n message: z.object({\n role: z.literal('assistant').nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z\n .array(\n z.object({\n id: z.string().nullish(),\n type: z.literal('function').nullish(),\n function: z.object({\n name: z.string(),\n arguments: z.string(),\n }),\n }),\n )\n .nullish(),\n }),\n logprobs: moonshotAIChatLogprobsSchema,\n finish_reason: z.string().nullish(),\n }),\n ),\n usage: tokenUsageSchema,\n});\n\nexport const moonshotAIChatChunkSchema = lazySchema(() =>\n zodSchema(\n z.union([\n z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n object: z.literal('chat.completion.chunk').nullish(),\n choices: z.array(\n z.object({\n index: z.number().nullish(),\n delta: z\n .object({\n role: z.literal('assistant').nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z\n .array(\n z.object({\n index: z.number().nullish(),\n id: z.string().nullish(),\n type: z.literal('function').nullish(),\n function: z.object({\n name: z.string().nullish(),\n arguments: z.string().nullish(),\n }),\n }),\n )\n .nullish(),\n })\n .nullish(),\n logprobs: moonshotAIChatLogprobsSchema,\n finish_reason: z.string().nullish(),\n usage: tokenUsageSchema,\n }),\n ),\n usage: tokenUsageSchema,\n }),\n moonshotAIErrorSchema,\n ]),\n ),\n);\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n"],"mappings":"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","names":["parseProviderOptions","UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","z","parseProviderOptions"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-sdk/moonshotai",
3
- "version": "3.0.55",
3
+ "version": "3.0.58",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "sideEffects": false,
@@ -26,10 +26,10 @@
26
26
  },
27
27
  "dependencies": {
28
28
  "@ai-sdk/provider": "4.0.18",
29
- "@ai-sdk/provider-utils": "5.0.46"
29
+ "@ai-sdk/provider-utils": "5.0.49"
30
30
  },
31
31
  "devDependencies": {
32
- "@ai-sdk/test-server": "2.0.1",
32
+ "@ai-sdk/test-server": "2.0.2",
33
33
  "@types/node": "22.19.19",
34
34
  "@vercel/ai-tsconfig": "0.0.0",
35
35
  "tsup": "^8.5.1",