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,255 @@
1
+ /**
2
+ * 自定义 OpenAI 兼容提供商
3
+ * 允许用户配置自定义的 API 地址、模型和 API Key
4
+ * 可用于 OpenAI、Azure OpenAI、本地 LLM (Ollama, vLLM 等) 或其他兼容 API
5
+ */
6
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
7
+ export class CustomOpenAIProvider extends OpenAICompatibleProvider {
8
+ customHeaders;
9
+ constructor(config) {
10
+ const models = config.models.map((m) => ({
11
+ id: m.id,
12
+ name: m.name ?? m.id,
13
+ provider: config.id,
14
+ api: "openai",
15
+ contextWindow: m.contextWindow ?? 128000,
16
+ maxTokens: m.maxTokens ?? 4096,
17
+ supportsVision: m.supportsVision ?? false,
18
+ supportsReasoning: m.supportsReasoning ?? false,
19
+ cost: m.cost,
20
+ }));
21
+ const providerConfig = {
22
+ id: config.id,
23
+ name: config.name,
24
+ baseUrl: config.baseUrl,
25
+ apiKey: config.apiKey,
26
+ api: "openai",
27
+ models,
28
+ };
29
+ super(providerConfig);
30
+ this.customHeaders = config.headers ?? {};
31
+ this.logger = this.logger.child({ provider: config.id });
32
+ }
33
+ getHeaders() {
34
+ return {
35
+ ...super.getHeaders(),
36
+ ...this.customHeaders,
37
+ };
38
+ }
39
+ }
40
+ /** 创建自定义 OpenAI 兼容提供商 */
41
+ export function createCustomOpenAIProvider(config) {
42
+ return new CustomOpenAIProvider(config);
43
+ }
44
+ /** 预设配置:OpenAI 官方 */
45
+ export function createOpenAIProvider(apiKey, baseUrl) {
46
+ return createCustomOpenAIProvider({
47
+ id: "openai",
48
+ name: "OpenAI",
49
+ baseUrl: baseUrl ?? "https://api.openai.com/v1",
50
+ apiKey,
51
+ models: [
52
+ {
53
+ id: "gpt-4o",
54
+ name: "GPT-4o",
55
+ contextWindow: 128000,
56
+ maxTokens: 16384,
57
+ supportsVision: true,
58
+ cost: { input: 2.5, output: 10 },
59
+ },
60
+ {
61
+ id: "gpt-4o-mini",
62
+ name: "GPT-4o Mini",
63
+ contextWindow: 128000,
64
+ maxTokens: 16384,
65
+ supportsVision: true,
66
+ cost: { input: 0.15, output: 0.6 },
67
+ },
68
+ {
69
+ id: "gpt-4-turbo",
70
+ name: "GPT-4 Turbo",
71
+ contextWindow: 128000,
72
+ maxTokens: 4096,
73
+ supportsVision: true,
74
+ cost: { input: 10, output: 30 },
75
+ },
76
+ {
77
+ id: "gpt-3.5-turbo",
78
+ name: "GPT-3.5 Turbo",
79
+ contextWindow: 16385,
80
+ maxTokens: 4096,
81
+ cost: { input: 0.5, output: 1.5 },
82
+ },
83
+ {
84
+ id: "o1",
85
+ name: "o1",
86
+ contextWindow: 200000,
87
+ maxTokens: 100000,
88
+ supportsReasoning: true,
89
+ cost: { input: 15, output: 60 },
90
+ },
91
+ {
92
+ id: "o1-mini",
93
+ name: "o1 Mini",
94
+ contextWindow: 128000,
95
+ maxTokens: 65536,
96
+ supportsReasoning: true,
97
+ cost: { input: 3, output: 12 },
98
+ },
99
+ ],
100
+ });
101
+ }
102
+ /** 预设配置:Azure OpenAI */
103
+ export function createAzureOpenAIProvider(config) {
104
+ return createCustomOpenAIProvider({
105
+ id: "azure-openai",
106
+ name: "Azure OpenAI",
107
+ baseUrl: `${config.endpoint}/openai/deployments/${config.deploymentId}`,
108
+ apiKey: config.apiKey,
109
+ headers: {
110
+ "api-key": config.apiKey,
111
+ },
112
+ models: [
113
+ {
114
+ id: config.deploymentId,
115
+ name: config.deploymentId,
116
+ contextWindow: 128000,
117
+ maxTokens: 4096,
118
+ },
119
+ ],
120
+ });
121
+ }
122
+ /** 预设配置:Ollama 本地模型 */
123
+ export function createOllamaProvider(baseUrl, models) {
124
+ const defaultModels = models ?? ["llama3.2", "qwen2.5-coder", "deepseek-r1"];
125
+ return createCustomOpenAIProvider({
126
+ id: "ollama",
127
+ name: "Ollama",
128
+ baseUrl: baseUrl ?? "http://localhost:11434/v1",
129
+ apiKey: "ollama", // Ollama 不需要 API Key,但字段必填
130
+ models: defaultModels.map((id) => ({
131
+ id,
132
+ name: id,
133
+ contextWindow: 32768,
134
+ maxTokens: 4096,
135
+ })),
136
+ });
137
+ }
138
+ /** 预设配置:vLLM */
139
+ export function createVLLMProvider(baseUrl, models) {
140
+ return createCustomOpenAIProvider({
141
+ id: "vllm",
142
+ name: "vLLM",
143
+ baseUrl,
144
+ apiKey: "vllm", // vLLM 通常不需要 API Key
145
+ models: models.map((id) => ({
146
+ id,
147
+ name: id,
148
+ contextWindow: 32768,
149
+ maxTokens: 4096,
150
+ })),
151
+ });
152
+ }
153
+ /** 预设配置:OpenRouter */
154
+ export function createOpenRouterProvider(apiKey) {
155
+ return createCustomOpenAIProvider({
156
+ id: "openrouter",
157
+ name: "OpenRouter",
158
+ baseUrl: "https://openrouter.ai/api/v1",
159
+ apiKey,
160
+ headers: {
161
+ "HTTP-Referer": "https://github.com/anthropics/mozi",
162
+ "X-Title": "Mozi",
163
+ },
164
+ models: [
165
+ {
166
+ id: "anthropic/claude-3.5-sonnet",
167
+ name: "Claude 3.5 Sonnet",
168
+ contextWindow: 200000,
169
+ maxTokens: 8192,
170
+ supportsVision: true,
171
+ },
172
+ {
173
+ id: "openai/gpt-4o",
174
+ name: "GPT-4o",
175
+ contextWindow: 128000,
176
+ maxTokens: 16384,
177
+ supportsVision: true,
178
+ },
179
+ {
180
+ id: "google/gemini-pro-1.5",
181
+ name: "Gemini Pro 1.5",
182
+ contextWindow: 1000000,
183
+ maxTokens: 8192,
184
+ supportsVision: true,
185
+ },
186
+ {
187
+ id: "deepseek/deepseek-chat",
188
+ name: "DeepSeek Chat",
189
+ contextWindow: 64000,
190
+ maxTokens: 4096,
191
+ },
192
+ ],
193
+ });
194
+ }
195
+ /** 预设配置:Together AI */
196
+ export function createTogetherProvider(apiKey) {
197
+ return createCustomOpenAIProvider({
198
+ id: "together",
199
+ name: "Together AI",
200
+ baseUrl: "https://api.together.xyz/v1",
201
+ apiKey,
202
+ models: [
203
+ {
204
+ id: "meta-llama/Llama-3.2-90B-Vision-Instruct-Turbo",
205
+ name: "Llama 3.2 90B Vision",
206
+ contextWindow: 131072,
207
+ maxTokens: 4096,
208
+ supportsVision: true,
209
+ },
210
+ {
211
+ id: "Qwen/Qwen2.5-72B-Instruct-Turbo",
212
+ name: "Qwen 2.5 72B",
213
+ contextWindow: 131072,
214
+ maxTokens: 4096,
215
+ },
216
+ {
217
+ id: "deepseek-ai/DeepSeek-R1",
218
+ name: "DeepSeek R1",
219
+ contextWindow: 64000,
220
+ maxTokens: 4096,
221
+ supportsReasoning: true,
222
+ },
223
+ ],
224
+ });
225
+ }
226
+ /** 预设配置:Groq */
227
+ export function createGroqProvider(apiKey) {
228
+ return createCustomOpenAIProvider({
229
+ id: "groq",
230
+ name: "Groq",
231
+ baseUrl: "https://api.groq.com/openai/v1",
232
+ apiKey,
233
+ models: [
234
+ {
235
+ id: "llama-3.3-70b-versatile",
236
+ name: "Llama 3.3 70B",
237
+ contextWindow: 128000,
238
+ maxTokens: 32768,
239
+ },
240
+ {
241
+ id: "llama-3.1-8b-instant",
242
+ name: "Llama 3.1 8B",
243
+ contextWindow: 128000,
244
+ maxTokens: 8192,
245
+ },
246
+ {
247
+ id: "mixtral-8x7b-32768",
248
+ name: "Mixtral 8x7B",
249
+ contextWindow: 32768,
250
+ maxTokens: 32768,
251
+ },
252
+ ],
253
+ });
254
+ }
255
+ //# sourceMappingURL=custom-openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-openai.js","sourceRoot":"","sources":["../../src/providers/custom-openai.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAqClE,MAAM,OAAO,oBAAqB,SAAQ,wBAAwB;IACxD,aAAa,CAAyB;IAE9C,YAAY,MAAkC;QAC5C,MAAM,MAAM,GAAsB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1D,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;YACpB,QAAQ,EAAE,MAAM,CAAC,EAAgB;YACjC,GAAG,EAAE,QAAoB;YACzB,aAAa,EAAE,CAAC,CAAC,aAAa,IAAI,MAAM;YACxC,SAAS,EAAE,CAAC,CAAC,SAAS,IAAI,IAAI;YAC9B,cAAc,EAAE,CAAC,CAAC,cAAc,IAAI,KAAK;YACzC,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,KAAK;YAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAmB;YACrC,EAAE,EAAE,MAAM,CAAC,EAAgB;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,GAAG,EAAE,QAAoB;YACzB,MAAM;SACP,CAAC;QAEF,KAAK,CAAC,cAAc,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEkB,UAAU;QAC3B,OAAO;YACL,GAAG,KAAK,CAAC,UAAU,EAAE;YACrB,GAAG,IAAI,CAAC,aAAa;SACtB,CAAC;IACJ,CAAC;CACF;AAED,yBAAyB;AACzB,MAAM,UAAU,0BAA0B,CAAC,MAAkC;IAC3E,OAAO,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,qBAAqB;AACrB,MAAM,UAAU,oBAAoB,CAAC,MAAc,EAAE,OAAgB;IACnE,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,IAAI,2BAA2B;QAC/C,MAAM;QACN,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,IAAI;gBACpB,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;aACjC;YACD;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,IAAI;gBACpB,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;aACnC;YACD;gBACE,EAAE,EAAE,aAAa;gBACjB,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;gBACpB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;aAChC;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,eAAe;gBACrB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;aAClC;YACD;gBACE,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,MAAM;gBACjB,iBAAiB,EAAE,IAAI;gBACvB,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;aAChC;YACD;gBACE,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,KAAK;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;aAC/B;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,wBAAwB;AACxB,MAAM,UAAU,yBAAyB,CAAC,MAKzC;IACC,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,cAAc;QAClB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,GAAG,MAAM,CAAC,QAAQ,uBAAuB,MAAM,CAAC,YAAY,EAAE;QACvE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE;YACP,SAAS,EAAE,MAAM,CAAC,MAAM;SACzB;QACD,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,MAAM,CAAC,YAAY;gBACvB,IAAI,EAAE,MAAM,CAAC,YAAY;gBACzB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;aAChB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,oBAAoB,CAAC,OAAgB,EAAE,MAAiB;IACtE,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;IAE7E,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,OAAO,IAAI,2BAA2B;QAC/C,MAAM,EAAE,QAAQ,EAAE,2BAA2B;QAC7C,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACjC,EAAE;YACF,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,MAAgB;IAClE,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,MAAM,EAAE,MAAM,EAAE,qBAAqB;QACrC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE;YACF,IAAI,EAAE,EAAE;YACR,aAAa,EAAE,KAAK;YACpB,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,8BAA8B;QACvC,MAAM;QACN,OAAO,EAAE;YACP,cAAc,EAAE,oCAAoC;YACpD,SAAS,EAAE,MAAM;SAClB;QACD,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,6BAA6B;gBACjC,IAAI,EAAE,mBAAmB;gBACzB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;aACrB;YACD;gBACE,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,QAAQ;gBACd,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,IAAI;aACrB;YACD;gBACE,EAAE,EAAE,uBAAuB;gBAC3B,IAAI,EAAE,gBAAgB;gBACtB,aAAa,EAAE,OAAO;gBACtB,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;aACrB;YACD;gBACE,EAAE,EAAE,wBAAwB;gBAC5B,IAAI,EAAE,eAAe;gBACrB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,IAAI;aAChB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,6BAA6B;QACtC,MAAM;QACN,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,gDAAgD;gBACpD,IAAI,EAAE,sBAAsB;gBAC5B,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;gBACf,cAAc,EAAE,IAAI;aACrB;YACD;gBACE,EAAE,EAAE,iCAAiC;gBACrC,IAAI,EAAE,cAAc;gBACpB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;aAChB;YACD;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,aAAa;gBACnB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,IAAI;gBACf,iBAAiB,EAAE,IAAI;aACxB;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,0BAA0B,CAAC;QAChC,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,gCAAgC;QACzC,MAAM;QACN,MAAM,EAAE;YACN;gBACE,EAAE,EAAE,yBAAyB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,KAAK;aACjB;YACD;gBACE,EAAE,EAAE,sBAAsB;gBAC1B,IAAI,EAAE,cAAc;gBACpB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,IAAI;aAChB;YACD;gBACE,EAAE,EAAE,oBAAoB;gBACxB,IAAI,EAAE,cAAc;gBACpB,aAAa,EAAE,KAAK;gBACpB,SAAS,EAAE,KAAK;aACjB;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * 阿里云 DashScope (灵积) 模型提供商
3
+ *
4
+ * DashScope 是阿里云的模型服务平台,提供通义千问等模型的商业 API
5
+ * 相比 ModelScope 社区版,提供更稳定的服务和更高的并发能力
6
+ *
7
+ * API 文档: https://help.aliyun.com/zh/dashscope/developer-reference/api-details
8
+ */
9
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
10
+ export declare class DashScopeProvider extends OpenAICompatibleProvider {
11
+ constructor(apiKey: string, customBaseUrl?: string);
12
+ }
13
+ /** 创建 DashScope 提供商 */
14
+ export declare function createDashScopeProvider(apiKey: string, baseUrl?: string): DashScopeProvider;
15
+ //# sourceMappingURL=dashscope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashscope.d.ts","sourceRoot":"","sources":["../../src/providers/dashscope.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAsNlE,qBAAa,iBAAkB,SAAQ,wBAAwB;gBACjD,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAYnD;AAED,uBAAuB;AACvB,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAE3F"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * 阿里云 DashScope (灵积) 模型提供商
3
+ *
4
+ * DashScope 是阿里云的模型服务平台,提供通义千问等模型的商业 API
5
+ * 相比 ModelScope 社区版,提供更稳定的服务和更高的并发能力
6
+ *
7
+ * API 文档: https://help.aliyun.com/zh/dashscope/developer-reference/api-details
8
+ */
9
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
10
+ // DashScope OpenAI 兼容接口
11
+ const DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1";
12
+ /** DashScope 模型定义 */
13
+ const DASHSCOPE_MODELS = [
14
+ // Qwen-Max 系列 (最强能力)
15
+ {
16
+ id: "qwen-max",
17
+ name: "Qwen Max",
18
+ provider: "dashscope",
19
+ api: "openai-compatible",
20
+ contextWindow: 32768,
21
+ maxTokens: 8192,
22
+ supportsVision: false,
23
+ supportsReasoning: false,
24
+ cost: {
25
+ input: 20, // ¥0.02/千token = ¥20/百万token
26
+ output: 60, // ¥0.06/千token
27
+ },
28
+ },
29
+ {
30
+ id: "qwen-max-latest",
31
+ name: "Qwen Max Latest",
32
+ provider: "dashscope",
33
+ api: "openai-compatible",
34
+ contextWindow: 32768,
35
+ maxTokens: 8192,
36
+ supportsVision: false,
37
+ supportsReasoning: false,
38
+ cost: {
39
+ input: 20,
40
+ output: 60,
41
+ },
42
+ },
43
+ // Qwen-Plus 系列 (平衡性能与成本)
44
+ {
45
+ id: "qwen-plus",
46
+ name: "Qwen Plus",
47
+ provider: "dashscope",
48
+ api: "openai-compatible",
49
+ contextWindow: 131072,
50
+ maxTokens: 8192,
51
+ supportsVision: false,
52
+ supportsReasoning: false,
53
+ cost: {
54
+ input: 0.8, // ¥0.0008/千token
55
+ output: 2, // ¥0.002/千token
56
+ },
57
+ },
58
+ {
59
+ id: "qwen-plus-latest",
60
+ name: "Qwen Plus Latest",
61
+ provider: "dashscope",
62
+ api: "openai-compatible",
63
+ contextWindow: 131072,
64
+ maxTokens: 8192,
65
+ supportsVision: false,
66
+ supportsReasoning: false,
67
+ cost: {
68
+ input: 0.8,
69
+ output: 2,
70
+ },
71
+ },
72
+ // Qwen-Turbo 系列 (高性价比)
73
+ {
74
+ id: "qwen-turbo",
75
+ name: "Qwen Turbo",
76
+ provider: "dashscope",
77
+ api: "openai-compatible",
78
+ contextWindow: 131072,
79
+ maxTokens: 8192,
80
+ supportsVision: false,
81
+ supportsReasoning: false,
82
+ cost: {
83
+ input: 0.3, // ¥0.0003/千token
84
+ output: 0.6, // ¥0.0006/千token
85
+ },
86
+ },
87
+ {
88
+ id: "qwen-turbo-latest",
89
+ name: "Qwen Turbo Latest",
90
+ provider: "dashscope",
91
+ api: "openai-compatible",
92
+ contextWindow: 131072,
93
+ maxTokens: 8192,
94
+ supportsVision: false,
95
+ supportsReasoning: false,
96
+ cost: {
97
+ input: 0.3,
98
+ output: 0.6,
99
+ },
100
+ },
101
+ // Qwen-Long (超长上下文)
102
+ {
103
+ id: "qwen-long",
104
+ name: "Qwen Long",
105
+ provider: "dashscope",
106
+ api: "openai-compatible",
107
+ contextWindow: 10000000, // 1000万 token
108
+ maxTokens: 6000,
109
+ supportsVision: false,
110
+ supportsReasoning: false,
111
+ cost: {
112
+ input: 0.5,
113
+ output: 2,
114
+ },
115
+ },
116
+ // Qwen-VL 视觉模型
117
+ {
118
+ id: "qwen-vl-max",
119
+ name: "Qwen VL Max",
120
+ provider: "dashscope",
121
+ api: "openai-compatible",
122
+ contextWindow: 32768,
123
+ maxTokens: 2048,
124
+ supportsVision: true,
125
+ supportsReasoning: false,
126
+ cost: {
127
+ input: 20,
128
+ output: 60,
129
+ },
130
+ },
131
+ {
132
+ id: "qwen-vl-plus",
133
+ name: "Qwen VL Plus",
134
+ provider: "dashscope",
135
+ api: "openai-compatible",
136
+ contextWindow: 8192,
137
+ maxTokens: 2048,
138
+ supportsVision: true,
139
+ supportsReasoning: false,
140
+ cost: {
141
+ input: 8,
142
+ output: 8,
143
+ },
144
+ },
145
+ // Qwen-Coder 代码模型
146
+ {
147
+ id: "qwen-coder-plus",
148
+ name: "Qwen Coder Plus",
149
+ provider: "dashscope",
150
+ api: "openai-compatible",
151
+ contextWindow: 131072,
152
+ maxTokens: 8192,
153
+ supportsVision: false,
154
+ supportsReasoning: false,
155
+ cost: {
156
+ input: 3.5,
157
+ output: 7,
158
+ },
159
+ },
160
+ {
161
+ id: "qwen-coder-turbo",
162
+ name: "Qwen Coder Turbo",
163
+ provider: "dashscope",
164
+ api: "openai-compatible",
165
+ contextWindow: 131072,
166
+ maxTokens: 8192,
167
+ supportsVision: false,
168
+ supportsReasoning: false,
169
+ cost: {
170
+ input: 2,
171
+ output: 6,
172
+ },
173
+ },
174
+ // QwQ 推理模型
175
+ {
176
+ id: "qwq-plus",
177
+ name: "QwQ Plus",
178
+ provider: "dashscope",
179
+ api: "openai-compatible",
180
+ contextWindow: 131072,
181
+ maxTokens: 16384,
182
+ supportsVision: false,
183
+ supportsReasoning: true,
184
+ cost: {
185
+ input: 1.6,
186
+ output: 18,
187
+ },
188
+ },
189
+ // DeepSeek 系列 (通过 DashScope 调用)
190
+ {
191
+ id: "deepseek-v3",
192
+ name: "DeepSeek V3",
193
+ provider: "dashscope",
194
+ api: "openai-compatible",
195
+ contextWindow: 65536,
196
+ maxTokens: 8192,
197
+ supportsVision: false,
198
+ supportsReasoning: false,
199
+ cost: {
200
+ input: 2,
201
+ output: 8,
202
+ },
203
+ },
204
+ {
205
+ id: "deepseek-r1",
206
+ name: "DeepSeek R1",
207
+ provider: "dashscope",
208
+ api: "openai-compatible",
209
+ contextWindow: 65536,
210
+ maxTokens: 8192,
211
+ supportsVision: false,
212
+ supportsReasoning: true,
213
+ cost: {
214
+ input: 4,
215
+ output: 16,
216
+ },
217
+ },
218
+ ];
219
+ export class DashScopeProvider extends OpenAICompatibleProvider {
220
+ constructor(apiKey, customBaseUrl) {
221
+ const config = {
222
+ id: "dashscope",
223
+ name: "DashScope (灵积)",
224
+ baseUrl: customBaseUrl || DASHSCOPE_BASE_URL,
225
+ apiKey,
226
+ api: "openai-compatible",
227
+ models: DASHSCOPE_MODELS,
228
+ };
229
+ super(config);
230
+ this.logger = this.logger.child({ provider: "dashscope" });
231
+ }
232
+ }
233
+ /** 创建 DashScope 提供商 */
234
+ export function createDashScopeProvider(apiKey, baseUrl) {
235
+ return new DashScopeProvider(apiKey, baseUrl);
236
+ }
237
+ //# sourceMappingURL=dashscope.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashscope.js","sourceRoot":"","sources":["../../src/providers/dashscope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * DeepSeek 模型提供商
3
+ */
4
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
5
+ export declare class DeepSeekProvider extends OpenAICompatibleProvider {
6
+ constructor(apiKey: string, customBaseUrl?: string);
7
+ }
8
+ /** 创建 DeepSeek 提供商 */
9
+ export declare function createDeepSeekProvider(apiKey: string, baseUrl?: string): DeepSeekProvider;
10
+ //# sourceMappingURL=deepseek.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.d.ts","sourceRoot":"","sources":["../../src/providers/deepseek.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAuClE,qBAAa,gBAAiB,SAAQ,wBAAwB;gBAChD,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;CAYnD;AAED,sBAAsB;AACtB,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAEzF"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * DeepSeek 模型提供商
3
+ */
4
+ import { OpenAICompatibleProvider } from "./openai-compatible.js";
5
+ const DEEPSEEK_BASE_URL = "https://api.deepseek.com";
6
+ /** DeepSeek 模型定义 */
7
+ const DEEPSEEK_MODELS = [
8
+ {
9
+ id: "deepseek-chat",
10
+ name: "DeepSeek Chat",
11
+ provider: "deepseek",
12
+ api: "openai-compatible",
13
+ contextWindow: 64000,
14
+ maxTokens: 8192,
15
+ supportsVision: false,
16
+ supportsReasoning: false,
17
+ cost: {
18
+ input: 0.14, // ¥0.14/百万 token (缓存命中 ¥0.014)
19
+ output: 0.28, // ¥0.28/百万 token
20
+ cacheRead: 0.014,
21
+ },
22
+ },
23
+ {
24
+ id: "deepseek-reasoner",
25
+ name: "DeepSeek Reasoner (R1)",
26
+ provider: "deepseek",
27
+ api: "openai-compatible",
28
+ contextWindow: 64000,
29
+ maxTokens: 8192,
30
+ supportsVision: false,
31
+ supportsReasoning: true,
32
+ cost: {
33
+ input: 0.55, // ¥0.55/百万 token
34
+ output: 2.19, // ¥2.19/百万 token
35
+ cacheRead: 0.14,
36
+ },
37
+ },
38
+ ];
39
+ export class DeepSeekProvider extends OpenAICompatibleProvider {
40
+ constructor(apiKey, customBaseUrl) {
41
+ const config = {
42
+ id: "deepseek",
43
+ name: "DeepSeek",
44
+ baseUrl: customBaseUrl || DEEPSEEK_BASE_URL,
45
+ apiKey,
46
+ api: "openai-compatible",
47
+ models: DEEPSEEK_MODELS,
48
+ };
49
+ super(config);
50
+ this.logger = this.logger.child({ provider: "deepseek" });
51
+ }
52
+ }
53
+ /** 创建 DeepSeek 提供商 */
54
+ export function createDeepSeekProvider(apiKey, baseUrl) {
55
+ return new DeepSeekProvider(apiKey, baseUrl);
56
+ }
57
+ //# sourceMappingURL=deepseek.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseek.js","sourceRoot":"","sources":["../../src/providers/deepseek.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,oBAAoB;AACpB,MAAM,eAAe,GAAsB;IACzC;QACE,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,eAAe;QACrB,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,EAAG,+BAA+B;YAC7C,MAAM,EAAE,IAAI,EAAE,iBAAiB;YAC/B,SAAS,EAAE,KAAK;SACjB;KACF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,wBAAwB;QAC9B,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,mBAAmB;QACxB,aAAa,EAAE,KAAK;QACpB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,IAAI;QACvB,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,EAAG,iBAAiB;YAC/B,MAAM,EAAE,IAAI,EAAE,iBAAiB;YAC/B,SAAS,EAAE,IAAI;SAChB;KACF;CACF,CAAC;AAEF,MAAM,OAAO,gBAAiB,SAAQ,wBAAwB;IAC5D,YAAY,MAAc,EAAE,aAAsB;QAChD,MAAM,MAAM,GAAmB;YAC7B,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,aAAa,IAAI,iBAAiB;YAC3C,MAAM;YACN,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,eAAe;SACxB,CAAC;QACF,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,sBAAsB;AACtB,MAAM,UAAU,sBAAsB,CAAC,MAAc,EAAE,OAAgB;IACrE,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 模型提供商管理
3
+ */
4
+ import type { ProviderId, MoziConfig } from "../types/index.js";
5
+ import { BaseProvider } from "./base.js";
6
+ export * from "./base.js";
7
+ export * from "./deepseek.js";
8
+ export * from "./kimi.js";
9
+ export * from "./stepfun.js";
10
+ export * from "./minimax.js";
11
+ export * from "./modelscope.js";
12
+ export * from "./dashscope.js";
13
+ export * from "./zhipu.js";
14
+ export * from "./custom-openai.js";
15
+ export * from "./anthropic-compatible.js";
16
+ /** 注册提供商 */
17
+ export declare function registerProvider(provider: BaseProvider): void;
18
+ /** 获取提供商 */
19
+ export declare function getProvider(id: ProviderId): BaseProvider | undefined;
20
+ /** 获取所有提供商 */
21
+ export declare function getAllProviders(): BaseProvider[];
22
+ /** 检查提供商是否可用 */
23
+ export declare function hasProvider(id: ProviderId): boolean;
24
+ /** 从配置初始化提供商 */
25
+ export declare function initializeProviders(config: MoziConfig): void;
26
+ /** 根据模型 ID 查找提供商 */
27
+ export declare function findProviderForModel(modelId: string): BaseProvider | undefined;
28
+ /** 获取所有可用模型 */
29
+ export declare function getAllModels(): {
30
+ provider: ProviderId;
31
+ model: ReturnType<BaseProvider["getModels"]>[0];
32
+ }[];
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAwB,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAwBzC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAO1C,YAAY;AACZ,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAG7D;AAED,YAAY;AACZ,wBAAgB,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAEpE;AAED,cAAc;AACd,wBAAgB,eAAe,IAAI,YAAY,EAAE,CAEhD;AAED,gBAAgB;AAChB,wBAAgB,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAEnD;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAwH5D;AAED,oBAAoB;AACpB,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAO9E;AAED,eAAe;AACf,wBAAgB,YAAY;cACM,UAAU;WAAS,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAS5F"}