@hebo-ai/gateway 0.10.7 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +97 -84
  2. package/dist/config.js +21 -4
  3. package/dist/endpoints/chat-completions/handler.js +9 -5
  4. package/dist/endpoints/conversations/handler.js +3 -3
  5. package/dist/endpoints/embeddings/handler.js +2 -2
  6. package/dist/endpoints/messages/converters.js +17 -21
  7. package/dist/endpoints/messages/handler.js +5 -5
  8. package/dist/endpoints/responses/handler.js +9 -5
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.js +1 -0
  11. package/dist/models/alibaba/index.d.ts +2 -0
  12. package/dist/models/alibaba/index.js +2 -0
  13. package/dist/models/alibaba/middleware.d.ts +2 -0
  14. package/dist/models/alibaba/middleware.js +31 -0
  15. package/dist/models/alibaba/presets.d.ts +900 -0
  16. package/dist/models/alibaba/presets.js +252 -0
  17. package/dist/models/amazon/presets.d.ts +31 -31
  18. package/dist/models/anthropic/presets.d.ts +68 -68
  19. package/dist/models/cohere/presets.d.ts +38 -38
  20. package/dist/models/deepseek/index.d.ts +2 -0
  21. package/dist/models/deepseek/index.js +2 -0
  22. package/dist/models/deepseek/middleware.d.ts +2 -0
  23. package/dist/models/deepseek/middleware.js +25 -0
  24. package/dist/models/deepseek/presets.d.ts +51 -0
  25. package/dist/models/deepseek/presets.js +33 -0
  26. package/dist/models/google/presets.d.ts +94 -94
  27. package/dist/models/google/presets.js +3 -1
  28. package/dist/models/meta/presets.d.ts +84 -84
  29. package/dist/models/meta/presets.js +11 -12
  30. package/dist/models/minimax/index.d.ts +2 -0
  31. package/dist/models/minimax/index.js +2 -0
  32. package/dist/models/minimax/middleware.d.ts +2 -0
  33. package/dist/models/minimax/middleware.js +43 -0
  34. package/dist/models/minimax/presets.d.ts +99 -0
  35. package/dist/models/minimax/presets.js +47 -0
  36. package/dist/models/moonshot/index.d.ts +2 -0
  37. package/dist/models/moonshot/index.js +2 -0
  38. package/dist/models/moonshot/middleware.d.ts +2 -0
  39. package/dist/models/moonshot/middleware.js +32 -0
  40. package/dist/models/moonshot/presets.d.ts +104 -0
  41. package/dist/models/moonshot/presets.js +36 -0
  42. package/dist/models/openai/presets.d.ts +128 -128
  43. package/dist/models/openai/presets.js +1 -1
  44. package/dist/models/types.d.ts +1 -1
  45. package/dist/models/types.js +39 -0
  46. package/dist/models/voyage/presets.d.ts +46 -46
  47. package/dist/models/xai/index.d.ts +2 -0
  48. package/dist/models/xai/index.js +2 -0
  49. package/dist/models/xai/middleware.d.ts +2 -0
  50. package/dist/models/xai/middleware.js +37 -0
  51. package/dist/models/xai/presets.d.ts +210 -0
  52. package/dist/models/xai/presets.js +55 -0
  53. package/dist/models/zai/index.d.ts +2 -0
  54. package/dist/models/zai/index.js +2 -0
  55. package/dist/models/zai/middleware.d.ts +2 -0
  56. package/dist/models/zai/middleware.js +25 -0
  57. package/dist/models/zai/presets.d.ts +141 -0
  58. package/dist/models/zai/presets.js +41 -0
  59. package/dist/providers/alibaba/canonical.d.ts +3 -0
  60. package/dist/providers/alibaba/canonical.js +13 -0
  61. package/dist/providers/alibaba/index.d.ts +1 -0
  62. package/dist/providers/alibaba/index.js +1 -0
  63. package/dist/providers/bedrock/canonical.js +3 -0
  64. package/dist/providers/chutes/canonical.d.ts +3 -0
  65. package/dist/providers/chutes/canonical.js +14 -0
  66. package/dist/providers/chutes/index.d.ts +1 -0
  67. package/dist/providers/chutes/index.js +1 -0
  68. package/dist/providers/deepinfra/canonical.d.ts +3 -0
  69. package/dist/providers/deepinfra/canonical.js +40 -0
  70. package/dist/providers/deepinfra/index.d.ts +1 -0
  71. package/dist/providers/deepinfra/index.js +1 -0
  72. package/dist/providers/deepseek/canonical.d.ts +3 -0
  73. package/dist/providers/deepseek/canonical.js +9 -0
  74. package/dist/providers/deepseek/index.d.ts +1 -0
  75. package/dist/providers/deepseek/index.js +1 -0
  76. package/dist/providers/fireworks/canonical.d.ts +3 -0
  77. package/dist/providers/fireworks/canonical.js +27 -0
  78. package/dist/providers/fireworks/index.d.ts +2 -0
  79. package/dist/providers/fireworks/index.js +2 -0
  80. package/dist/providers/fireworks/middleware.d.ts +2 -0
  81. package/dist/providers/fireworks/middleware.js +35 -0
  82. package/dist/providers/groq/canonical.js +1 -1
  83. package/dist/providers/minimax/canonical.d.ts +3 -0
  84. package/dist/providers/minimax/canonical.js +9 -0
  85. package/dist/providers/minimax/index.d.ts +1 -0
  86. package/dist/providers/minimax/index.js +1 -0
  87. package/dist/providers/moonshot/canonical.d.ts +3 -0
  88. package/dist/providers/moonshot/canonical.js +6 -0
  89. package/dist/providers/moonshot/index.d.ts +1 -0
  90. package/dist/providers/moonshot/index.js +1 -0
  91. package/dist/providers/togetherai/canonical.d.ts +3 -0
  92. package/dist/providers/togetherai/canonical.js +24 -0
  93. package/dist/providers/togetherai/index.d.ts +1 -0
  94. package/dist/providers/togetherai/index.js +1 -0
  95. package/dist/providers/types.d.ts +1 -1
  96. package/dist/providers/types.js +10 -0
  97. package/dist/providers/vertex/canonical.js +5 -1
  98. package/dist/providers/xai/canonical.d.ts +3 -0
  99. package/dist/providers/xai/canonical.js +12 -0
  100. package/dist/providers/xai/index.d.ts +1 -0
  101. package/dist/providers/xai/index.js +1 -0
  102. package/dist/providers/zai/canonical.d.ts +3 -0
  103. package/dist/providers/zai/canonical.js +10 -0
  104. package/dist/providers/zai/index.d.ts +1 -0
  105. package/dist/providers/zai/index.js +1 -0
  106. package/dist/types.d.ts +30 -16
  107. package/dist/utils/index.d.ts +8 -0
  108. package/dist/utils/index.js +8 -0
  109. package/dist/utils/request.d.ts +2 -1
  110. package/dist/utils/request.js +35 -7
  111. package/package.json +133 -9
@@ -6,30 +6,28 @@ const LLAMA_3_BASE = {
6
6
  },
7
7
  capabilities: ["attachments", "tool_call", "temperature"],
8
8
  context: 128000,
9
- providers: [
10
- "groq",
11
- "bedrock",
12
- "vertex",
13
- "azure",
14
- ],
9
+ providers: ["bedrock", "vertex", "azure"],
15
10
  };
16
11
  export const llama31_8b = presetFor()("meta/llama-3.1-8b", {
17
12
  ...LLAMA_3_BASE,
18
13
  name: "Llama 3.1 8B",
19
14
  created: "2024-07-23",
20
15
  knowledge: "2023-12",
16
+ providers: ["groq", ...LLAMA_3_BASE.providers, "togetherai", "deepinfra", "fireworks"],
21
17
  });
22
18
  export const llama31_70b = presetFor()("meta/llama-3.1-70b", {
23
19
  ...LLAMA_3_BASE,
24
20
  name: "Llama 3.1 70B",
25
21
  created: "2024-07-23",
26
22
  knowledge: "2023-12",
23
+ providers: [...LLAMA_3_BASE.providers, "togetherai", "deepinfra"],
27
24
  });
28
25
  export const llama31_405b = presetFor()("meta/llama-3.1-405b", {
29
26
  ...LLAMA_3_BASE,
30
27
  name: "Llama 3.1 405B",
31
28
  created: "2024-07-23",
32
29
  knowledge: "2023-12",
30
+ providers: [...LLAMA_3_BASE.providers, "togetherai", "deepinfra", "fireworks"],
33
31
  });
34
32
  export const llama32_1b = presetFor()("meta/llama-3.2-1b", {
35
33
  ...LLAMA_3_BASE,
@@ -42,24 +40,28 @@ export const llama32_3b = presetFor()("meta/llama-3.2-3b", {
42
40
  name: "Llama 3.2 3B",
43
41
  created: "2024-09-25",
44
42
  knowledge: "2023-12",
43
+ providers: [...LLAMA_3_BASE.providers, "togetherai", "fireworks"],
45
44
  });
46
45
  export const llama32_11b = presetFor()("meta/llama-3.2-11b", {
47
46
  ...LLAMA_3_BASE,
48
47
  name: "Llama 3.2 11B",
49
48
  created: "2024-09-25",
50
49
  knowledge: "2023-12",
50
+ providers: [...LLAMA_3_BASE.providers, "deepinfra", "fireworks"],
51
51
  });
52
52
  export const llama32_90b = presetFor()("meta/llama-3.2-90b", {
53
53
  ...LLAMA_3_BASE,
54
54
  name: "Llama 3.2 90B",
55
55
  created: "2024-09-25",
56
56
  knowledge: "2023-12",
57
+ providers: [...LLAMA_3_BASE.providers, "deepinfra"],
57
58
  });
58
59
  export const llama33_70b = presetFor()("meta/llama-3.3-70b", {
59
60
  ...LLAMA_3_BASE,
60
61
  name: "Llama 3.3 70B",
61
62
  created: "2024-12-06",
62
63
  knowledge: "2023-12",
64
+ providers: ["groq", ...LLAMA_3_BASE.providers, "togetherai", "deepinfra", "fireworks"],
63
65
  });
64
66
  const LLAMA_4_BASE = {
65
67
  modalities: {
@@ -68,24 +70,21 @@ const LLAMA_4_BASE = {
68
70
  },
69
71
  capabilities: ["attachments", "tool_call", "temperature"],
70
72
  context: 1000000,
71
- providers: [
72
- "groq",
73
- "bedrock",
74
- "vertex",
75
- "azure",
76
- ],
73
+ providers: ["bedrock", "vertex", "azure"],
77
74
  };
78
75
  export const llama4Scout = presetFor()("meta/llama-4-scout", {
79
76
  ...LLAMA_4_BASE,
80
77
  name: "Llama 4 Scout",
81
78
  created: "2025-08-05",
82
79
  knowledge: "2024-06",
80
+ providers: ["groq", ...LLAMA_4_BASE.providers, "deepinfra"],
83
81
  });
84
82
  export const llama4Maverick = presetFor()("meta/llama-4-maverick", {
85
83
  ...LLAMA_4_BASE,
86
84
  name: "Llama 4 Maverick",
87
85
  created: "2025-08-05",
88
86
  knowledge: "2024-06",
87
+ providers: [...LLAMA_4_BASE.providers, "togetherai", "deepinfra"],
89
88
  });
90
89
  const llamaAtomic = {
91
90
  "v3.1": [llama31_8b, llama31_70b, llama31_405b],
@@ -0,0 +1,2 @@
1
+ export * from "./presets";
2
+ export * from "./middleware";
@@ -0,0 +1,2 @@
1
+ export * from "./presets";
2
+ export * from "./middleware";
@@ -0,0 +1,2 @@
1
+ import type { LanguageModelMiddleware } from "ai";
2
+ export declare const minimaxReasoningMiddleware: LanguageModelMiddleware;
@@ -0,0 +1,43 @@
1
+ import { modelMiddlewareMatcher } from "../../middleware/matcher";
2
+ function mapMinimaxReasoningEffort(effort) {
3
+ switch (effort) {
4
+ case "none":
5
+ return undefined;
6
+ case "minimal":
7
+ case "low":
8
+ return "low";
9
+ case "medium":
10
+ return "medium";
11
+ case "high":
12
+ case "xhigh":
13
+ case "max":
14
+ return "high";
15
+ }
16
+ return undefined;
17
+ }
18
+ // MiniMax M2.7 supports reasoning via OpenAI-compatible reasoning_effort.
19
+ // Map the gateway's generic reasoning config to the provider-native parameter.
20
+ export const minimaxReasoningMiddleware = {
21
+ specificationVersion: "v3",
22
+ // oxlint-disable-next-line require-await
23
+ transformParams: async ({ params }) => {
24
+ const unknown = params.providerOptions?.["unknown"];
25
+ if (!unknown)
26
+ return params;
27
+ const reasoning = unknown["reasoning"];
28
+ if (!reasoning)
29
+ return params;
30
+ if (reasoning.enabled === false) {
31
+ unknown["reasoning_effort"] = "none";
32
+ }
33
+ else if (reasoning.effort) {
34
+ unknown["reasoning_effort"] = mapMinimaxReasoningEffort(reasoning.effort);
35
+ }
36
+ // max_tokens not supported by MiniMax reasoning
37
+ delete unknown["reasoning"];
38
+ return params;
39
+ },
40
+ };
41
+ modelMiddlewareMatcher.useForModel("minimax/*", {
42
+ language: [minimaxReasoningMiddleware],
43
+ });
@@ -0,0 +1,99 @@
1
+ import type { CatalogModel } from "../types";
2
+ export declare const minimaxM25: import("../../utils").Preset<"minimax/m2.5", CatalogModel, {
3
+ name: string;
4
+ created: string;
5
+ providers: readonly ["minimax", "togetherai", "deepinfra", "chutes"];
6
+ modalities: {
7
+ input: readonly ["text"];
8
+ output: readonly ["text"];
9
+ };
10
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
11
+ context: number;
12
+ }>;
13
+ export declare const minimaxM27: import("../../utils").Preset<"minimax/m2.7", CatalogModel, {
14
+ name: string;
15
+ created: string;
16
+ providers: readonly ["minimax", "togetherai", "fireworks"];
17
+ modalities: {
18
+ input: readonly ["text"];
19
+ output: readonly ["text"];
20
+ };
21
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
22
+ context: number;
23
+ }>;
24
+ export declare const minimax: {
25
+ readonly latest: readonly [import("../../utils").Preset<"minimax/m2.7", CatalogModel, {
26
+ name: string;
27
+ created: string;
28
+ providers: readonly ["minimax", "togetherai", "fireworks"];
29
+ modalities: {
30
+ input: readonly ["text"];
31
+ output: readonly ["text"];
32
+ };
33
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
34
+ context: number;
35
+ }>];
36
+ readonly all: (import("../../utils").Preset<"minimax/m2.5", CatalogModel, {
37
+ name: string;
38
+ created: string;
39
+ providers: readonly ["minimax", "togetherai", "deepinfra", "chutes"];
40
+ modalities: {
41
+ input: readonly ["text"];
42
+ output: readonly ["text"];
43
+ };
44
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
45
+ context: number;
46
+ }> | import("../../utils").Preset<"minimax/m2.7", CatalogModel, {
47
+ name: string;
48
+ created: string;
49
+ providers: readonly ["minimax", "togetherai", "fireworks"];
50
+ modalities: {
51
+ input: readonly ["text"];
52
+ output: readonly ["text"];
53
+ };
54
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
55
+ context: number;
56
+ }>)[];
57
+ readonly "v2.x": readonly [import("../../utils").Preset<"minimax/m2.5", CatalogModel, {
58
+ name: string;
59
+ created: string;
60
+ providers: readonly ["minimax", "togetherai", "deepinfra", "chutes"];
61
+ modalities: {
62
+ input: readonly ["text"];
63
+ output: readonly ["text"];
64
+ };
65
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
66
+ context: number;
67
+ }>, import("../../utils").Preset<"minimax/m2.7", CatalogModel, {
68
+ name: string;
69
+ created: string;
70
+ providers: readonly ["minimax", "togetherai", "fireworks"];
71
+ modalities: {
72
+ input: readonly ["text"];
73
+ output: readonly ["text"];
74
+ };
75
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
76
+ context: number;
77
+ }>];
78
+ readonly v2: readonly [import("../../utils").Preset<"minimax/m2.5", CatalogModel, {
79
+ name: string;
80
+ created: string;
81
+ providers: readonly ["minimax", "togetherai", "deepinfra", "chutes"];
82
+ modalities: {
83
+ input: readonly ["text"];
84
+ output: readonly ["text"];
85
+ };
86
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
87
+ context: number;
88
+ }>, import("../../utils").Preset<"minimax/m2.7", CatalogModel, {
89
+ name: string;
90
+ created: string;
91
+ providers: readonly ["minimax", "togetherai", "fireworks"];
92
+ modalities: {
93
+ input: readonly ["text"];
94
+ output: readonly ["text"];
95
+ };
96
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
97
+ context: number;
98
+ }>];
99
+ };
@@ -0,0 +1,47 @@
1
+ import { presetFor } from "../../utils/preset";
2
+ const MINIMAX_BASE = {
3
+ modalities: {
4
+ input: ["text"],
5
+ output: ["text"],
6
+ },
7
+ capabilities: [
8
+ "reasoning",
9
+ "tool_call",
10
+ "structured_output",
11
+ "temperature",
12
+ ],
13
+ context: 204800,
14
+ };
15
+ export const minimaxM25 = presetFor()("minimax/m2.5", {
16
+ ...MINIMAX_BASE,
17
+ name: "MiniMax M2.5",
18
+ created: "2026-02-12",
19
+ providers: [
20
+ "minimax",
21
+ "togetherai",
22
+ "deepinfra",
23
+ "chutes",
24
+ ],
25
+ });
26
+ export const minimaxM27 = presetFor()("minimax/m2.7", {
27
+ ...MINIMAX_BASE,
28
+ name: "MiniMax M2.7",
29
+ created: "2026-03-18",
30
+ providers: [
31
+ "minimax",
32
+ "togetherai",
33
+ "fireworks",
34
+ ],
35
+ });
36
+ const minimaxAtomic = {
37
+ v2: [minimaxM25, minimaxM27],
38
+ };
39
+ const minimaxGroups = {
40
+ "v2.x": [...minimaxAtomic["v2"]],
41
+ };
42
+ export const minimax = {
43
+ ...minimaxAtomic,
44
+ ...minimaxGroups,
45
+ latest: [minimaxM27],
46
+ all: Object.values(minimaxAtomic).flat(),
47
+ };
@@ -0,0 +1,2 @@
1
+ export * from "./middleware";
2
+ export * from "./presets";
@@ -0,0 +1,2 @@
1
+ export * from "./middleware";
2
+ export * from "./presets";
@@ -0,0 +1,2 @@
1
+ import type { LanguageModelMiddleware } from "ai";
2
+ export declare const moonshotReasoningMiddleware: LanguageModelMiddleware;
@@ -0,0 +1,32 @@
1
+ import { modelMiddlewareMatcher } from "../../middleware/matcher";
2
+ import { calculateReasoningBudgetFromEffort } from "../../middleware/utils";
3
+ const MOONSHOT_DEFAULT_MAX_OUTPUT_TOKENS = 16384;
4
+ export const moonshotReasoningMiddleware = {
5
+ specificationVersion: "v3",
6
+ // oxlint-disable-next-line require-await
7
+ transformParams: async ({ params }) => {
8
+ const unknown = params.providerOptions?.["unknown"];
9
+ if (!unknown)
10
+ return params;
11
+ const reasoning = unknown["reasoning"];
12
+ if (!reasoning)
13
+ return params;
14
+ const target = (params.providerOptions["moonshotai"] ??=
15
+ {});
16
+ if (reasoning.enabled === false) {
17
+ target.thinking = { type: "disabled" };
18
+ }
19
+ else {
20
+ target.thinking = {
21
+ type: "enabled",
22
+ budgetTokens: reasoning.max_tokens ??
23
+ calculateReasoningBudgetFromEffort(reasoning.effort ?? "medium", params.maxOutputTokens ?? MOONSHOT_DEFAULT_MAX_OUTPUT_TOKENS, 1024),
24
+ };
25
+ }
26
+ delete unknown["reasoning"];
27
+ return params;
28
+ },
29
+ };
30
+ modelMiddlewareMatcher.useForModel("moonshot/*", {
31
+ language: [moonshotReasoningMiddleware],
32
+ });
@@ -0,0 +1,104 @@
1
+ import type { CatalogModel } from "../types";
2
+ export declare const kimiK25: import("../../utils").Preset<"moonshot/kimi-k2.5", CatalogModel, {
3
+ name: string;
4
+ created: string;
5
+ knowledge: string;
6
+ providers: readonly ["moonshot", "chutes", "deepinfra", "fireworks", "togetherai"];
7
+ modalities: {
8
+ input: readonly ["text", "image"];
9
+ output: readonly ["text"];
10
+ };
11
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
12
+ context: number;
13
+ }>;
14
+ export declare const kimiK26: import("../../utils").Preset<"moonshot/kimi-k2.6", CatalogModel, {
15
+ name: string;
16
+ created: string;
17
+ providers: readonly ["moonshot", "fireworks"];
18
+ modalities: {
19
+ input: readonly ["text", "image"];
20
+ output: readonly ["text"];
21
+ };
22
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
23
+ context: number;
24
+ }>;
25
+ export declare const kimi: {
26
+ readonly latest: readonly [import("../../utils").Preset<"moonshot/kimi-k2.6", CatalogModel, {
27
+ name: string;
28
+ created: string;
29
+ providers: readonly ["moonshot", "fireworks"];
30
+ modalities: {
31
+ input: readonly ["text", "image"];
32
+ output: readonly ["text"];
33
+ };
34
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
35
+ context: number;
36
+ }>];
37
+ readonly all: (import("../../utils").Preset<"moonshot/kimi-k2.5", CatalogModel, {
38
+ name: string;
39
+ created: string;
40
+ knowledge: string;
41
+ providers: readonly ["moonshot", "chutes", "deepinfra", "fireworks", "togetherai"];
42
+ modalities: {
43
+ input: readonly ["text", "image"];
44
+ output: readonly ["text"];
45
+ };
46
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
47
+ context: number;
48
+ }> | import("../../utils").Preset<"moonshot/kimi-k2.6", CatalogModel, {
49
+ name: string;
50
+ created: string;
51
+ providers: readonly ["moonshot", "fireworks"];
52
+ modalities: {
53
+ input: readonly ["text", "image"];
54
+ output: readonly ["text"];
55
+ };
56
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
57
+ context: number;
58
+ }>)[];
59
+ readonly "k2.x": readonly [import("../../utils").Preset<"moonshot/kimi-k2.5", CatalogModel, {
60
+ name: string;
61
+ created: string;
62
+ knowledge: string;
63
+ providers: readonly ["moonshot", "chutes", "deepinfra", "fireworks", "togetherai"];
64
+ modalities: {
65
+ input: readonly ["text", "image"];
66
+ output: readonly ["text"];
67
+ };
68
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
69
+ context: number;
70
+ }>, import("../../utils").Preset<"moonshot/kimi-k2.6", CatalogModel, {
71
+ name: string;
72
+ created: string;
73
+ providers: readonly ["moonshot", "fireworks"];
74
+ modalities: {
75
+ input: readonly ["text", "image"];
76
+ output: readonly ["text"];
77
+ };
78
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
79
+ context: number;
80
+ }>];
81
+ readonly "k2.5": readonly [import("../../utils").Preset<"moonshot/kimi-k2.5", CatalogModel, {
82
+ name: string;
83
+ created: string;
84
+ knowledge: string;
85
+ providers: readonly ["moonshot", "chutes", "deepinfra", "fireworks", "togetherai"];
86
+ modalities: {
87
+ input: readonly ["text", "image"];
88
+ output: readonly ["text"];
89
+ };
90
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
91
+ context: number;
92
+ }>];
93
+ readonly "k2.6": readonly [import("../../utils").Preset<"moonshot/kimi-k2.6", CatalogModel, {
94
+ name: string;
95
+ created: string;
96
+ providers: readonly ["moonshot", "fireworks"];
97
+ modalities: {
98
+ input: readonly ["text", "image"];
99
+ output: readonly ["text"];
100
+ };
101
+ capabilities: readonly ["reasoning", "tool_call", "structured_output", "temperature"];
102
+ context: number;
103
+ }>];
104
+ };
@@ -0,0 +1,36 @@
1
+ import { presetFor } from "../../utils/preset";
2
+ const KIMI_BASE = {
3
+ modalities: {
4
+ input: ["text", "image"],
5
+ output: ["text"],
6
+ },
7
+ capabilities: ["reasoning", "tool_call", "structured_output", "temperature"],
8
+ context: 262144,
9
+ providers: ["moonshot"],
10
+ };
11
+ export const kimiK25 = presetFor()("moonshot/kimi-k2.5", {
12
+ ...KIMI_BASE,
13
+ name: "Kimi K2.5",
14
+ created: "2026-01-27",
15
+ knowledge: "2025-06",
16
+ providers: ["moonshot", "chutes", "deepinfra", "fireworks", "togetherai"],
17
+ });
18
+ export const kimiK26 = presetFor()("moonshot/kimi-k2.6", {
19
+ ...KIMI_BASE,
20
+ name: "Kimi K2.6",
21
+ created: "2026-04-20",
22
+ providers: ["moonshot", "fireworks"],
23
+ });
24
+ const kimiAtomic = {
25
+ "k2.5": [kimiK25],
26
+ "k2.6": [kimiK26],
27
+ };
28
+ const kimiGroups = {
29
+ "k2.x": [...kimiAtomic["k2.5"], ...kimiAtomic["k2.6"]],
30
+ };
31
+ export const kimi = {
32
+ ...kimiAtomic,
33
+ ...kimiGroups,
34
+ latest: [...kimiAtomic["k2.6"]],
35
+ all: Object.values(kimiAtomic).flat(),
36
+ };