mozi-bot 1.0.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 (259) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +467 -0
  3. package/dist/agents/agent.d.ts +118 -0
  4. package/dist/agents/agent.d.ts.map +1 -0
  5. package/dist/agents/agent.js +686 -0
  6. package/dist/agents/agent.js.map +1 -0
  7. package/dist/agents/compaction.d.ts +78 -0
  8. package/dist/agents/compaction.d.ts.map +1 -0
  9. package/dist/agents/compaction.js +350 -0
  10. package/dist/agents/compaction.js.map +1 -0
  11. package/dist/agents/failover-error.d.ts +42 -0
  12. package/dist/agents/failover-error.d.ts.map +1 -0
  13. package/dist/agents/failover-error.js +171 -0
  14. package/dist/agents/failover-error.js.map +1 -0
  15. package/dist/agents/index.d.ts +10 -0
  16. package/dist/agents/index.d.ts.map +1 -0
  17. package/dist/agents/index.js +10 -0
  18. package/dist/agents/index.js.map +1 -0
  19. package/dist/agents/model-fallback.d.ts +54 -0
  20. package/dist/agents/model-fallback.d.ts.map +1 -0
  21. package/dist/agents/model-fallback.js +227 -0
  22. package/dist/agents/model-fallback.js.map +1 -0
  23. package/dist/agents/session-store.d.ts +53 -0
  24. package/dist/agents/session-store.d.ts.map +1 -0
  25. package/dist/agents/session-store.js +217 -0
  26. package/dist/agents/session-store.js.map +1 -0
  27. package/dist/agents/system-prompt.d.ts +29 -0
  28. package/dist/agents/system-prompt.d.ts.map +1 -0
  29. package/dist/agents/system-prompt.js +299 -0
  30. package/dist/agents/system-prompt.js.map +1 -0
  31. package/dist/channels/common/base.d.ts +40 -0
  32. package/dist/channels/common/base.d.ts.map +1 -0
  33. package/dist/channels/common/base.js +23 -0
  34. package/dist/channels/common/base.js.map +1 -0
  35. package/dist/channels/common/index.d.ts +21 -0
  36. package/dist/channels/common/index.d.ts.map +1 -0
  37. package/dist/channels/common/index.js +66 -0
  38. package/dist/channels/common/index.js.map +1 -0
  39. package/dist/channels/dingtalk/api.d.ts +30 -0
  40. package/dist/channels/dingtalk/api.d.ts.map +1 -0
  41. package/dist/channels/dingtalk/api.js +149 -0
  42. package/dist/channels/dingtalk/api.js.map +1 -0
  43. package/dist/channels/dingtalk/events.d.ts +80 -0
  44. package/dist/channels/dingtalk/events.d.ts.map +1 -0
  45. package/dist/channels/dingtalk/events.js +92 -0
  46. package/dist/channels/dingtalk/events.js.map +1 -0
  47. package/dist/channels/dingtalk/index.d.ts +51 -0
  48. package/dist/channels/dingtalk/index.d.ts.map +1 -0
  49. package/dist/channels/dingtalk/index.js +231 -0
  50. package/dist/channels/dingtalk/index.js.map +1 -0
  51. package/dist/channels/dingtalk/stream.d.ts +31 -0
  52. package/dist/channels/dingtalk/stream.d.ts.map +1 -0
  53. package/dist/channels/dingtalk/stream.js +116 -0
  54. package/dist/channels/dingtalk/stream.js.map +1 -0
  55. package/dist/channels/feishu/api.d.ts +33 -0
  56. package/dist/channels/feishu/api.d.ts.map +1 -0
  57. package/dist/channels/feishu/api.js +120 -0
  58. package/dist/channels/feishu/api.js.map +1 -0
  59. package/dist/channels/feishu/events.d.ts +87 -0
  60. package/dist/channels/feishu/events.d.ts.map +1 -0
  61. package/dist/channels/feishu/events.js +163 -0
  62. package/dist/channels/feishu/events.js.map +1 -0
  63. package/dist/channels/feishu/index.d.ts +46 -0
  64. package/dist/channels/feishu/index.d.ts.map +1 -0
  65. package/dist/channels/feishu/index.js +207 -0
  66. package/dist/channels/feishu/index.js.map +1 -0
  67. package/dist/channels/feishu/websocket.d.ts +32 -0
  68. package/dist/channels/feishu/websocket.d.ts.map +1 -0
  69. package/dist/channels/feishu/websocket.js +121 -0
  70. package/dist/channels/feishu/websocket.js.map +1 -0
  71. package/dist/channels/index.d.ts +9 -0
  72. package/dist/channels/index.d.ts.map +1 -0
  73. package/dist/channels/index.js +9 -0
  74. package/dist/channels/index.js.map +1 -0
  75. package/dist/cli/index.d.ts +6 -0
  76. package/dist/cli/index.d.ts.map +1 -0
  77. package/dist/cli/index.js +468 -0
  78. package/dist/cli/index.js.map +1 -0
  79. package/dist/commands/index.d.ts +54 -0
  80. package/dist/commands/index.d.ts.map +1 -0
  81. package/dist/commands/index.js +171 -0
  82. package/dist/commands/index.js.map +1 -0
  83. package/dist/config/index.d.ts +201 -0
  84. package/dist/config/index.d.ts.map +1 -0
  85. package/dist/config/index.js +261 -0
  86. package/dist/config/index.js.map +1 -0
  87. package/dist/gateway/index.d.ts +5 -0
  88. package/dist/gateway/index.d.ts.map +1 -0
  89. package/dist/gateway/index.js +5 -0
  90. package/dist/gateway/index.js.map +1 -0
  91. package/dist/gateway/server.d.ts +42 -0
  92. package/dist/gateway/server.d.ts.map +1 -0
  93. package/dist/gateway/server.js +235 -0
  94. package/dist/gateway/server.js.map +1 -0
  95. package/dist/hooks/index.d.ts +168 -0
  96. package/dist/hooks/index.d.ts.map +1 -0
  97. package/dist/hooks/index.js +148 -0
  98. package/dist/hooks/index.js.map +1 -0
  99. package/dist/index.d.ts +18 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +29 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/memory/index.d.ts +94 -0
  104. package/dist/memory/index.d.ts.map +1 -0
  105. package/dist/memory/index.js +282 -0
  106. package/dist/memory/index.js.map +1 -0
  107. package/dist/plugins/index.d.ts +57 -0
  108. package/dist/plugins/index.d.ts.map +1 -0
  109. package/dist/plugins/index.js +103 -0
  110. package/dist/plugins/index.js.map +1 -0
  111. package/dist/providers/anthropic-compatible.d.ts +48 -0
  112. package/dist/providers/anthropic-compatible.d.ts.map +1 -0
  113. package/dist/providers/anthropic-compatible.js +380 -0
  114. package/dist/providers/anthropic-compatible.js.map +1 -0
  115. package/dist/providers/base.d.ts +26 -0
  116. package/dist/providers/base.d.ts.map +1 -0
  117. package/dist/providers/base.js +58 -0
  118. package/dist/providers/base.js.map +1 -0
  119. package/dist/providers/custom-openai.d.ts +66 -0
  120. package/dist/providers/custom-openai.d.ts.map +1 -0
  121. package/dist/providers/custom-openai.js +255 -0
  122. package/dist/providers/custom-openai.js.map +1 -0
  123. package/dist/providers/dashscope.d.ts +15 -0
  124. package/dist/providers/dashscope.d.ts.map +1 -0
  125. package/dist/providers/dashscope.js +237 -0
  126. package/dist/providers/dashscope.js.map +1 -0
  127. package/dist/providers/deepseek.d.ts +10 -0
  128. package/dist/providers/deepseek.d.ts.map +1 -0
  129. package/dist/providers/deepseek.js +57 -0
  130. package/dist/providers/deepseek.js.map +1 -0
  131. package/dist/providers/index.d.ts +33 -0
  132. package/dist/providers/index.d.ts.map +1 -0
  133. package/dist/providers/index.js +142 -0
  134. package/dist/providers/index.js.map +1 -0
  135. package/dist/providers/kimi.d.ts +10 -0
  136. package/dist/providers/kimi.d.ts.map +1 -0
  137. package/dist/providers/kimi.js +83 -0
  138. package/dist/providers/kimi.js.map +1 -0
  139. package/dist/providers/minimax.d.ts +20 -0
  140. package/dist/providers/minimax.d.ts.map +1 -0
  141. package/dist/providers/minimax.js +252 -0
  142. package/dist/providers/minimax.js.map +1 -0
  143. package/dist/providers/modelscope.d.ts +15 -0
  144. package/dist/providers/modelscope.d.ts.map +1 -0
  145. package/dist/providers/modelscope.js +237 -0
  146. package/dist/providers/modelscope.js.map +1 -0
  147. package/dist/providers/openai-compatible.d.ts +57 -0
  148. package/dist/providers/openai-compatible.d.ts.map +1 -0
  149. package/dist/providers/openai-compatible.js +193 -0
  150. package/dist/providers/openai-compatible.js.map +1 -0
  151. package/dist/providers/stepfun.d.ts +10 -0
  152. package/dist/providers/stepfun.d.ts.map +1 -0
  153. package/dist/providers/stepfun.js +125 -0
  154. package/dist/providers/stepfun.js.map +1 -0
  155. package/dist/providers/zhipu.d.ts +15 -0
  156. package/dist/providers/zhipu.d.ts.map +1 -0
  157. package/dist/providers/zhipu.js +247 -0
  158. package/dist/providers/zhipu.js.map +1 -0
  159. package/dist/sessions/index.d.ts +6 -0
  160. package/dist/sessions/index.d.ts.map +1 -0
  161. package/dist/sessions/index.js +6 -0
  162. package/dist/sessions/index.js.map +1 -0
  163. package/dist/sessions/store.d.ts +45 -0
  164. package/dist/sessions/store.d.ts.map +1 -0
  165. package/dist/sessions/store.js +268 -0
  166. package/dist/sessions/store.js.map +1 -0
  167. package/dist/sessions/types.d.ts +110 -0
  168. package/dist/sessions/types.d.ts.map +1 -0
  169. package/dist/sessions/types.js +6 -0
  170. package/dist/sessions/types.js.map +1 -0
  171. package/dist/tools/builtin/apply-patch.d.ts +8 -0
  172. package/dist/tools/builtin/apply-patch.d.ts.map +1 -0
  173. package/dist/tools/builtin/apply-patch.js +272 -0
  174. package/dist/tools/builtin/apply-patch.js.map +1 -0
  175. package/dist/tools/builtin/bash.d.ts +25 -0
  176. package/dist/tools/builtin/bash.d.ts.map +1 -0
  177. package/dist/tools/builtin/bash.js +212 -0
  178. package/dist/tools/builtin/bash.js.map +1 -0
  179. package/dist/tools/builtin/browser.d.ts +12 -0
  180. package/dist/tools/builtin/browser.d.ts.map +1 -0
  181. package/dist/tools/builtin/browser.js +693 -0
  182. package/dist/tools/builtin/browser.js.map +1 -0
  183. package/dist/tools/builtin/filesystem.d.ts +29 -0
  184. package/dist/tools/builtin/filesystem.d.ts.map +1 -0
  185. package/dist/tools/builtin/filesystem.js +484 -0
  186. package/dist/tools/builtin/filesystem.js.map +1 -0
  187. package/dist/tools/builtin/image.d.ts +13 -0
  188. package/dist/tools/builtin/image.d.ts.map +1 -0
  189. package/dist/tools/builtin/image.js +126 -0
  190. package/dist/tools/builtin/image.js.map +1 -0
  191. package/dist/tools/builtin/index.d.ts +30 -0
  192. package/dist/tools/builtin/index.d.ts.map +1 -0
  193. package/dist/tools/builtin/index.js +55 -0
  194. package/dist/tools/builtin/index.js.map +1 -0
  195. package/dist/tools/builtin/process-registry.d.ts +71 -0
  196. package/dist/tools/builtin/process-registry.d.ts.map +1 -0
  197. package/dist/tools/builtin/process-registry.js +172 -0
  198. package/dist/tools/builtin/process-registry.js.map +1 -0
  199. package/dist/tools/builtin/process-tool.d.ts +8 -0
  200. package/dist/tools/builtin/process-tool.d.ts.map +1 -0
  201. package/dist/tools/builtin/process-tool.js +279 -0
  202. package/dist/tools/builtin/process-tool.js.map +1 -0
  203. package/dist/tools/builtin/subagent.d.ts +33 -0
  204. package/dist/tools/builtin/subagent.d.ts.map +1 -0
  205. package/dist/tools/builtin/subagent.js +185 -0
  206. package/dist/tools/builtin/subagent.js.map +1 -0
  207. package/dist/tools/builtin/system.d.ts +11 -0
  208. package/dist/tools/builtin/system.d.ts.map +1 -0
  209. package/dist/tools/builtin/system.js +144 -0
  210. package/dist/tools/builtin/system.js.map +1 -0
  211. package/dist/tools/builtin/web.d.ts +9 -0
  212. package/dist/tools/builtin/web.d.ts.map +1 -0
  213. package/dist/tools/builtin/web.js +87 -0
  214. package/dist/tools/builtin/web.js.map +1 -0
  215. package/dist/tools/common.d.ts +45 -0
  216. package/dist/tools/common.d.ts.map +1 -0
  217. package/dist/tools/common.js +129 -0
  218. package/dist/tools/common.js.map +1 -0
  219. package/dist/tools/index.d.ts +8 -0
  220. package/dist/tools/index.d.ts.map +1 -0
  221. package/dist/tools/index.js +8 -0
  222. package/dist/tools/index.js.map +1 -0
  223. package/dist/tools/registry.d.ts +33 -0
  224. package/dist/tools/registry.d.ts.map +1 -0
  225. package/dist/tools/registry.js +174 -0
  226. package/dist/tools/registry.js.map +1 -0
  227. package/dist/tools/types.d.ts +58 -0
  228. package/dist/tools/types.d.ts.map +1 -0
  229. package/dist/tools/types.js +11 -0
  230. package/dist/tools/types.js.map +1 -0
  231. package/dist/types/index.d.ts +280 -0
  232. package/dist/types/index.d.ts.map +1 -0
  233. package/dist/types/index.js +34 -0
  234. package/dist/types/index.js.map +1 -0
  235. package/dist/utils/index.d.ts +35 -0
  236. package/dist/utils/index.d.ts.map +1 -0
  237. package/dist/utils/index.js +114 -0
  238. package/dist/utils/index.js.map +1 -0
  239. package/dist/utils/logger.d.ts +24 -0
  240. package/dist/utils/logger.d.ts.map +1 -0
  241. package/dist/utils/logger.js +94 -0
  242. package/dist/utils/logger.js.map +1 -0
  243. package/dist/web/index.d.ts +7 -0
  244. package/dist/web/index.d.ts.map +1 -0
  245. package/dist/web/index.js +7 -0
  246. package/dist/web/index.js.map +1 -0
  247. package/dist/web/static.d.ts +12 -0
  248. package/dist/web/static.d.ts.map +1 -0
  249. package/dist/web/static.js +1260 -0
  250. package/dist/web/static.js.map +1 -0
  251. package/dist/web/types.d.ts +95 -0
  252. package/dist/web/types.d.ts.map +1 -0
  253. package/dist/web/types.js +5 -0
  254. package/dist/web/types.js.map +1 -0
  255. package/dist/web/websocket.d.ts +58 -0
  256. package/dist/web/websocket.d.ts.map +1 -0
  257. package/dist/web/websocket.js +371 -0
  258. package/dist/web/websocket.js.map +1 -0
  259. package/package.json +89 -0
@@ -0,0 +1,142 @@
1
+ /**
2
+ * 模型提供商管理
3
+ */
4
+ import { createDeepSeekProvider } from "./deepseek.js";
5
+ import { createKimiProvider } from "./kimi.js";
6
+ import { createStepfunProvider } from "./stepfun.js";
7
+ import { createMiniMaxProvider } from "./minimax.js";
8
+ import { createModelScopeProvider } from "./modelscope.js";
9
+ import { createDashScopeProvider } from "./dashscope.js";
10
+ import { createZhipuProvider } from "./zhipu.js";
11
+ import { createCustomOpenAIProvider, createOpenAIProvider, createOllamaProvider, createOpenRouterProvider, createTogetherProvider, createGroqProvider, } from "./custom-openai.js";
12
+ import { createAnthropicCompatibleProvider, } from "./anthropic-compatible.js";
13
+ import { getChildLogger } from "../utils/logger.js";
14
+ export * from "./base.js";
15
+ export * from "./deepseek.js";
16
+ export * from "./kimi.js";
17
+ export * from "./stepfun.js";
18
+ export * from "./minimax.js";
19
+ export * from "./modelscope.js";
20
+ export * from "./dashscope.js";
21
+ export * from "./zhipu.js";
22
+ export * from "./custom-openai.js";
23
+ export * from "./anthropic-compatible.js";
24
+ const logger = getChildLogger("providers");
25
+ /** 提供商注册表 */
26
+ const providers = new Map();
27
+ /** 注册提供商 */
28
+ export function registerProvider(provider) {
29
+ providers.set(provider.id, provider);
30
+ logger.info({ provider: provider.id }, "Provider registered");
31
+ }
32
+ /** 获取提供商 */
33
+ export function getProvider(id) {
34
+ return providers.get(id);
35
+ }
36
+ /** 获取所有提供商 */
37
+ export function getAllProviders() {
38
+ return Array.from(providers.values());
39
+ }
40
+ /** 检查提供商是否可用 */
41
+ export function hasProvider(id) {
42
+ return providers.has(id);
43
+ }
44
+ /** 从配置初始化提供商 */
45
+ export function initializeProviders(config) {
46
+ const providersConfig = config.providers;
47
+ // DeepSeek
48
+ if (providersConfig.deepseek?.apiKey) {
49
+ const provider = createDeepSeekProvider(providersConfig.deepseek.apiKey, providersConfig.deepseek.baseUrl);
50
+ registerProvider(provider);
51
+ }
52
+ // Kimi
53
+ if (providersConfig.kimi?.apiKey) {
54
+ const provider = createKimiProvider(providersConfig.kimi.apiKey, providersConfig.kimi.baseUrl);
55
+ registerProvider(provider);
56
+ }
57
+ // Stepfun
58
+ if (providersConfig.stepfun?.apiKey) {
59
+ const provider = createStepfunProvider(providersConfig.stepfun.apiKey, providersConfig.stepfun.baseUrl);
60
+ registerProvider(provider);
61
+ }
62
+ // MiniMax
63
+ if (providersConfig.minimax?.apiKey) {
64
+ const minimaxConfig = providersConfig.minimax;
65
+ const provider = createMiniMaxProvider(minimaxConfig.apiKey, minimaxConfig.groupId, minimaxConfig.baseUrl);
66
+ registerProvider(provider);
67
+ }
68
+ // ModelScope (魔搭)
69
+ if (providersConfig.modelscope?.apiKey) {
70
+ const provider = createModelScopeProvider(providersConfig.modelscope.apiKey, providersConfig.modelscope.baseUrl);
71
+ registerProvider(provider);
72
+ }
73
+ // DashScope (灵积/阿里云)
74
+ if (providersConfig.dashscope?.apiKey) {
75
+ const provider = createDashScopeProvider(providersConfig.dashscope.apiKey, providersConfig.dashscope.baseUrl);
76
+ registerProvider(provider);
77
+ }
78
+ // 智谱 AI
79
+ if (providersConfig.zhipu?.apiKey) {
80
+ const provider = createZhipuProvider(providersConfig.zhipu.apiKey, providersConfig.zhipu.baseUrl);
81
+ registerProvider(provider);
82
+ }
83
+ // OpenAI
84
+ if (providersConfig.openai?.apiKey) {
85
+ const provider = createOpenAIProvider(providersConfig.openai.apiKey, providersConfig.openai.baseUrl);
86
+ registerProvider(provider);
87
+ }
88
+ // Ollama
89
+ if (providersConfig.ollama) {
90
+ const ollamaConfig = providersConfig.ollama;
91
+ const provider = createOllamaProvider(ollamaConfig.baseUrl, ollamaConfig.models);
92
+ registerProvider(provider);
93
+ }
94
+ // OpenRouter
95
+ if (providersConfig.openrouter?.apiKey) {
96
+ const provider = createOpenRouterProvider(providersConfig.openrouter.apiKey);
97
+ registerProvider(provider);
98
+ }
99
+ // Together AI
100
+ if (providersConfig.together?.apiKey) {
101
+ const provider = createTogetherProvider(providersConfig.together.apiKey);
102
+ registerProvider(provider);
103
+ }
104
+ // Groq
105
+ if (providersConfig.groq?.apiKey) {
106
+ const provider = createGroqProvider(providersConfig.groq.apiKey);
107
+ registerProvider(provider);
108
+ }
109
+ // 自定义 OpenAI 兼容提供商
110
+ const customOpenai = config.providers["custom-openai"];
111
+ if (customOpenai?.apiKey && customOpenai?.baseUrl && customOpenai?.models) {
112
+ const provider = createCustomOpenAIProvider(customOpenai);
113
+ registerProvider(provider);
114
+ }
115
+ // 自定义 Anthropic 兼容提供商
116
+ const customAnthropic = config.providers["custom-anthropic"];
117
+ if (customAnthropic?.apiKey && customAnthropic?.baseUrl && customAnthropic?.models) {
118
+ const provider = createAnthropicCompatibleProvider(customAnthropic);
119
+ registerProvider(provider);
120
+ }
121
+ logger.info({ count: providers.size }, "Providers initialized");
122
+ }
123
+ /** 根据模型 ID 查找提供商 */
124
+ export function findProviderForModel(modelId) {
125
+ for (const provider of providers.values()) {
126
+ if (provider.supportsModel(modelId)) {
127
+ return provider;
128
+ }
129
+ }
130
+ return undefined;
131
+ }
132
+ /** 获取所有可用模型 */
133
+ export function getAllModels() {
134
+ const models = [];
135
+ for (const provider of providers.values()) {
136
+ for (const model of provider.getModels()) {
137
+ models.push({ provider: provider.id, model });
138
+ }
139
+ }
140
+ return models;
141
+ }
142
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Kimi (Moonshot) 模型提供商
3
+ */
4
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
5
+ export declare class KimiProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey: string, customBaseUrl?: string);
7
+ }
8
+ /** 创建 Kimi 提供商 */
9
+ export declare function createKimiProvider(apiKey: string, baseUrl?: string): KimiProvider;
10
+ //# sourceMappingURL=kimi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../src/providers/kimi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAiElE,qBAAa,YAAa,SAAQ,wBAAwB;gBAC5C,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAYnD;AAED,kBAAkB;AAClB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,YAAY,CAEjF"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Kimi (Moonshot) 模型提供商
3
+ */
4
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
5
+ const KIMI_BASE_URL = "https://api.moonshot.cn/v1";
6
+ /** Kimi 模型定义 */
7
+ const KIMI_MODELS = [
8
+ {
9
+ id: "moonshot-v1-8k",
10
+ name: "Moonshot V1 8K",
11
+ provider: "kimi",
12
+ api: "openai-compatible",
13
+ contextWindow: 8000,
14
+ maxTokens: 4096,
15
+ supportsVision: false,
16
+ supportsReasoning: false,
17
+ cost: {
18
+ input: 12, // ¥12/百万 token
19
+ output: 12,
20
+ },
21
+ },
22
+ {
23
+ id: "moonshot-v1-32k",
24
+ name: "Moonshot V1 32K",
25
+ provider: "kimi",
26
+ api: "openai-compatible",
27
+ contextWindow: 32000,
28
+ maxTokens: 16384,
29
+ supportsVision: false,
30
+ supportsReasoning: false,
31
+ cost: {
32
+ input: 24, // ¥24/百万 token
33
+ output: 24,
34
+ },
35
+ },
36
+ {
37
+ id: "moonshot-v1-128k",
38
+ name: "Moonshot V1 128K",
39
+ provider: "kimi",
40
+ api: "openai-compatible",
41
+ contextWindow: 128000,
42
+ maxTokens: 65536,
43
+ supportsVision: false,
44
+ supportsReasoning: false,
45
+ cost: {
46
+ input: 60, // ¥60/百万 token
47
+ output: 60,
48
+ },
49
+ },
50
+ {
51
+ id: "kimi-latest",
52
+ name: "Kimi Latest",
53
+ provider: "kimi",
54
+ api: "openai-compatible",
55
+ contextWindow: 128000,
56
+ maxTokens: 65536,
57
+ supportsVision: true,
58
+ supportsReasoning: false,
59
+ cost: {
60
+ input: 60,
61
+ output: 60,
62
+ },
63
+ },
64
+ ];
65
+ export class KimiProvider extends OpenAICompatibleProvider {
66
+ constructor(apiKey, customBaseUrl) {
67
+ const config = {
68
+ id: "kimi",
69
+ name: "Kimi (Moonshot)",
70
+ baseUrl: customBaseUrl || KIMI_BASE_URL,
71
+ apiKey,
72
+ api: "openai-compatible",
73
+ models: KIMI_MODELS,
74
+ };
75
+ super(config);
76
+ this.logger = this.logger.child({ provider: "kimi" });
77
+ }
78
+ }
79
+ /** 创建 Kimi 提供商 */
80
+ export function createKimiProvider(apiKey, baseUrl) {
81
+ return new KimiProvider(apiKey, baseUrl);
82
+ }
83
+ //# sourceMappingURL=kimi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../src/providers/kimi.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,MAAM,aAAa,GAAG,4BAA4B,CAAC;AAEnD,gBAAgB;AAChB,MAAM,WAAW,GAAsB;IACrC;QACE,EAAE,EAAE,gBAAgB;QACpB,IAAI,EAAE,gBAAgB;QACtB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,EAAE,EAAI,eAAe;YAC5B,MAAM,EAAE,EAAE;SACX;KACF;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,IAAI,EAAE,iBAAiB;QACvB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,EAAE,EAAI,eAAe;YAC5B,MAAM,EAAE,EAAE;SACX;KACF;IACD;QACE,EAAE,EAAE,kBAAkB;QACtB,IAAI,EAAE,kBAAkB;QACxB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,EAAE,EAAI,eAAe;YAC5B,MAAM,EAAE,EAAE;SACX;KACF;IACD;QACE,EAAE,EAAE,aAAa;QACjB,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,wBAAwB;IACxD,YAAY,MAAc,EAAE,aAAsB;QAChD,MAAM,MAAM,GAAmB;YAC7B,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,aAAa,IAAI,aAAa;YACvC,MAAM;YACN,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,WAAW;SACpB,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC;CACF;AAED,kBAAkB;AAClB,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,OAAgB;IACjE,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * MiniMax 模型提供商
3
+ * MiniMax 使用自己的 API 格式,也支持 Anthropic 兼容接口
4
+ */
5
+ import { BaseProvider } from "./base.js";
6
+ import type { ChatCompletionRequest, ChatCompletionResponse, StreamChunk } from "../types/index.js";
7
+ export declare class MiniMaxProvider extends BaseProvider {
8
+ private groupId?;
9
+ constructor(apiKey: string, groupId?: string, customBaseUrl?: string);
10
+ protected getHeaders(): Record<string, string>;
11
+ /** 转换消息格式 */
12
+ private convertMessages;
13
+ /** 聊天完成 */
14
+ chat(request: ChatCompletionRequest): Promise<ChatCompletionResponse>;
15
+ /** 流式聊天 */
16
+ chatStream(request: ChatCompletionRequest): AsyncGenerator<StreamChunk, void, unknown>;
17
+ }
18
+ /** 创建 MiniMax 提供商 */
19
+ export declare function createMiniMaxProvider(apiKey: string, groupId?: string, baseUrl?: string): MiniMaxProvider;
20
+ //# sourceMappingURL=minimax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.d.ts","sourceRoot":"","sources":["../../src/providers/minimax.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,WAAW,EAIZ,MAAM,mBAAmB,CAAC;AA2H3B,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;cAcjD,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOvD,aAAa;IACb,OAAO,CAAC,eAAe;IA+BvB,WAAW;IACL,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyD3E,WAAW;IACJ,UAAU,CAAC,OAAO,EAAE,qBAAqB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;CA6E9F;AAED,qBAAqB;AACrB,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAEzG"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * MiniMax 模型提供商
3
+ * MiniMax 使用自己的 API 格式,也支持 Anthropic 兼容接口
4
+ */
5
+ import { BaseProvider } from "./base.js";
6
+ const MINIMAX_BASE_URL = "https://api.minimax.chat/v1";
7
+ /** MiniMax 模型定义 */
8
+ const MINIMAX_MODELS = [
9
+ {
10
+ id: "abab6.5s-chat",
11
+ name: "ABAB 6.5s Chat",
12
+ provider: "minimax",
13
+ api: "minimax-v1",
14
+ contextWindow: 245760,
15
+ maxTokens: 8192,
16
+ supportsVision: false,
17
+ supportsReasoning: false,
18
+ cost: {
19
+ input: 1, // ¥1/百万 token
20
+ output: 1,
21
+ },
22
+ },
23
+ {
24
+ id: "abab6.5g-chat",
25
+ name: "ABAB 6.5g Chat",
26
+ provider: "minimax",
27
+ api: "minimax-v1",
28
+ contextWindow: 8192,
29
+ maxTokens: 4096,
30
+ supportsVision: false,
31
+ supportsReasoning: false,
32
+ cost: {
33
+ input: 0.5,
34
+ output: 0.5,
35
+ },
36
+ },
37
+ {
38
+ id: "abab6.5t-chat",
39
+ name: "ABAB 6.5t Chat (Turbo)",
40
+ provider: "minimax",
41
+ api: "minimax-v1",
42
+ contextWindow: 8192,
43
+ maxTokens: 4096,
44
+ supportsVision: false,
45
+ supportsReasoning: false,
46
+ cost: {
47
+ input: 0.5,
48
+ output: 0.5,
49
+ },
50
+ },
51
+ {
52
+ id: "MiniMax-Text-01",
53
+ name: "MiniMax Text 01",
54
+ provider: "minimax",
55
+ api: "minimax-v1",
56
+ contextWindow: 1000000,
57
+ maxTokens: 65536,
58
+ supportsVision: false,
59
+ supportsReasoning: false,
60
+ cost: {
61
+ input: 1,
62
+ output: 8,
63
+ },
64
+ },
65
+ {
66
+ id: "MiniMax-VL-01",
67
+ name: "MiniMax VL 01 (Vision)",
68
+ provider: "minimax",
69
+ api: "minimax-v1",
70
+ contextWindow: 1000000,
71
+ maxTokens: 65536,
72
+ supportsVision: true,
73
+ supportsReasoning: false,
74
+ cost: {
75
+ input: 2,
76
+ output: 8,
77
+ },
78
+ },
79
+ ];
80
+ export class MiniMaxProvider extends BaseProvider {
81
+ groupId;
82
+ constructor(apiKey, groupId, customBaseUrl) {
83
+ const config = {
84
+ id: "minimax",
85
+ name: "MiniMax",
86
+ baseUrl: customBaseUrl || MINIMAX_BASE_URL,
87
+ apiKey,
88
+ api: "minimax-v1",
89
+ models: MINIMAX_MODELS,
90
+ };
91
+ super(config);
92
+ this.groupId = groupId;
93
+ this.logger = this.logger.child({ provider: "minimax" });
94
+ }
95
+ getHeaders() {
96
+ return {
97
+ "Content-Type": "application/json",
98
+ Authorization: `Bearer ${this.apiKey}`,
99
+ };
100
+ }
101
+ /** 转换消息格式 */
102
+ convertMessages(messages) {
103
+ const botSettings = [];
104
+ const miniMaxMessages = [];
105
+ for (const msg of messages) {
106
+ const text = typeof msg.content === "string"
107
+ ? msg.content
108
+ : Array.isArray(msg.content)
109
+ ? msg.content.map(c => c.type === "text" ? c.text : "[图片]").join("")
110
+ : "";
111
+ if (msg.role === "system") {
112
+ botSettings.push({
113
+ bot_name: "MM助手",
114
+ content: text,
115
+ });
116
+ }
117
+ else {
118
+ miniMaxMessages.push({
119
+ sender_type: msg.role === "user" ? "USER" : "BOT",
120
+ sender_name: msg.role === "user" ? "用户" : "MM助手",
121
+ text,
122
+ });
123
+ }
124
+ }
125
+ return { botSettings, messages: miniMaxMessages };
126
+ }
127
+ /** 聊天完成 */
128
+ async chat(request) {
129
+ const url = `${this.baseUrl}/text/chatcompletion_v2`;
130
+ const { botSettings, messages } = this.convertMessages(request.messages);
131
+ const body = {
132
+ model: request.model,
133
+ messages,
134
+ tokens_to_generate: request.maxTokens ?? 4096,
135
+ temperature: request.temperature ?? 0.7,
136
+ top_p: request.topP ?? 0.9,
137
+ stream: false,
138
+ reply_constraints: {
139
+ sender_type: "BOT",
140
+ sender_name: "MM助手",
141
+ },
142
+ };
143
+ if (botSettings.length > 0) {
144
+ body.bot_setting = botSettings;
145
+ }
146
+ this.logger.debug({ url, model: request.model }, "Sending chat request");
147
+ try {
148
+ const response = await fetch(url, {
149
+ method: "POST",
150
+ headers: this.getHeaders(),
151
+ body: JSON.stringify(body),
152
+ });
153
+ if (!response.ok) {
154
+ const errorText = await response.text();
155
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
156
+ }
157
+ const data = (await response.json());
158
+ if (data.base_resp?.status_code !== 0 && data.base_resp?.status_code !== undefined) {
159
+ throw new Error(`MiniMax API Error: ${data.base_resp.status_msg}`);
160
+ }
161
+ return {
162
+ id: data.id,
163
+ model: data.model,
164
+ content: data.reply || data.choices[0]?.messages[0]?.text || "",
165
+ usage: {
166
+ promptTokens: 0,
167
+ completionTokens: 0,
168
+ totalTokens: data.usage.total_tokens,
169
+ },
170
+ finishReason: "stop",
171
+ };
172
+ }
173
+ catch (error) {
174
+ this.handleError(error, "chat");
175
+ }
176
+ }
177
+ /** 流式聊天 */
178
+ async *chatStream(request) {
179
+ const url = `${this.baseUrl}/text/chatcompletion_v2`;
180
+ const { botSettings, messages } = this.convertMessages(request.messages);
181
+ const body = {
182
+ model: request.model,
183
+ messages,
184
+ tokens_to_generate: request.maxTokens ?? 4096,
185
+ temperature: request.temperature ?? 0.7,
186
+ top_p: request.topP ?? 0.9,
187
+ stream: true,
188
+ reply_constraints: {
189
+ sender_type: "BOT",
190
+ sender_name: "MM助手",
191
+ },
192
+ };
193
+ if (botSettings.length > 0) {
194
+ body.bot_setting = botSettings;
195
+ }
196
+ this.logger.debug({ url, model: request.model }, "Sending stream chat request");
197
+ try {
198
+ const response = await fetch(url, {
199
+ method: "POST",
200
+ headers: this.getHeaders(),
201
+ body: JSON.stringify(body),
202
+ });
203
+ if (!response.ok) {
204
+ const errorText = await response.text();
205
+ throw new Error(`HTTP ${response.status}: ${errorText}`);
206
+ }
207
+ const reader = response.body?.getReader();
208
+ if (!reader) {
209
+ throw new Error("Response body is not readable");
210
+ }
211
+ const decoder = new TextDecoder();
212
+ let buffer = "";
213
+ while (true) {
214
+ const { done, value } = await reader.read();
215
+ if (done)
216
+ break;
217
+ buffer += decoder.decode(value, { stream: true });
218
+ const lines = buffer.split("\n");
219
+ buffer = lines.pop() ?? "";
220
+ for (const line of lines) {
221
+ const trimmed = line.trim();
222
+ if (!trimmed || trimmed === "data: [DONE]")
223
+ continue;
224
+ if (trimmed.startsWith("data: ")) {
225
+ try {
226
+ const json = JSON.parse(trimmed.slice(6));
227
+ const delta = json.choices?.[0]?.messages?.[0]?.text || json.reply || "";
228
+ if (delta) {
229
+ yield {
230
+ id: json.id || "",
231
+ delta,
232
+ finishReason: json.choices?.[0]?.finish_reason,
233
+ };
234
+ }
235
+ }
236
+ catch {
237
+ // 忽略解析错误
238
+ }
239
+ }
240
+ }
241
+ }
242
+ }
243
+ catch (error) {
244
+ this.handleError(error, "chatStream");
245
+ }
246
+ }
247
+ }
248
+ /** 创建 MiniMax 提供商 */
249
+ export function createMiniMaxProvider(apiKey, groupId, baseUrl) {
250
+ return new MiniMaxProvider(apiKey, groupId, baseUrl);
251
+ }
252
+ //# sourceMappingURL=minimax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minimax.js","sourceRoot":"","sources":["../../src/providers/minimax.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ModelScope (魔搭) 模型提供商
3
+ *
4
+ * ModelScope 是阿里巴巴达摩院的开源模型社区
5
+ * 支持 Qwen、GLM、Baichuan 等多种国产大模型
6
+ *
7
+ * API 文档: https://modelscope.cn/docs/model-service/API-Inference
8
+ */
9
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
10
+ export declare class ModelScopeProvider extends OpenAICompatibleProvider {
11
+ constructor(apiKey: string, customBaseUrl?: string);
12
+ }
13
+ /** 创建 ModelScope 提供商 */
14
+ export declare function createModelScopeProvider(apiKey: string, baseUrl?: string): ModelScopeProvider;
15
+ //# sourceMappingURL=modelscope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelscope.d.ts","sourceRoot":"","sources":["../../src/providers/modelscope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsNlE,qBAAa,kBAAmB,SAAQ,wBAAwB;gBAClD,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAYnD;AAED,wBAAwB;AACxB,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAE7F"}