@nextclaw/runtime 0.2.56 → 0.2.57-beta.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.
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +84 -69
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ProviderCatalogPlugin, ProviderCatalogPlugin as ProviderCatalogPlugin$1, ProviderSpec, ProviderSpec as ProviderSpec$1 } from "@nextclaw/core";
|
|
2
2
|
|
|
3
3
|
//#region src/channels/builtin-channel.config.d.ts
|
|
4
|
-
declare const
|
|
5
|
-
type
|
|
6
|
-
declare function
|
|
4
|
+
declare const BUILTIN_CHANNEL_IDS: readonly ["telegram", "whatsapp", "discord", "feishu", "dingtalk", "wecom", "email", "slack", "qq", "weixin"];
|
|
5
|
+
type BuiltinChannelId = (typeof BUILTIN_CHANNEL_IDS)[number];
|
|
6
|
+
declare function isBuiltinChannelId(value: string): value is BuiltinChannelId;
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/providers/builtin-provider-registry.provider.d.ts
|
|
9
9
|
declare function listBuiltinProviderPlugins(): ProviderCatalogPlugin$1[];
|
|
@@ -14,5 +14,5 @@ declare function builtinProviderIds(): string[];
|
|
|
14
14
|
//#region src/providers/plugins/index.d.ts
|
|
15
15
|
declare const BUILTIN_PROVIDER_PLUGINS: ProviderCatalogPlugin$1[];
|
|
16
16
|
//#endregion
|
|
17
|
-
export {
|
|
17
|
+
export { BUILTIN_CHANNEL_IDS, BUILTIN_PROVIDER_PLUGINS, type BuiltinChannelId, type ProviderCatalogPlugin, type ProviderSpec, builtinProviderIds, findBuiltinProviderByName, isBuiltinChannelId, listBuiltinProviderPlugins, listBuiltinProviders };
|
|
18
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/channels/builtin-channel.config.ts","../src/providers/builtin-provider-registry.provider.ts","../src/providers/plugins/index.ts"],"mappings":";;;cAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/channels/builtin-channel.config.ts","../src/providers/builtin-provider-registry.provider.ts","../src/providers/plugins/index.ts"],"mappings":";;;cAAa,mBAAA;AAAA,KAaD,gBAAA,WAA2B,mBAAA;AAAA,iBAEvB,kBAAA,CAAmB,KAAA,WAAgB,KAAA,IAAS,gBAAA;;;iBCD5C,0BAAA,CAAA,GAA8B,uBAAA;AAAA,iBAI9B,oBAAA,CAAA,GAAwB,cAAA;AAAA,iBAIxB,yBAAA,CAA0B,IAAA,WAAe,cAAA;AAAA,iBAIzC,kBAAA,CAAA;;;cCvBH,wBAAA,EAA0B,uBAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ProviderRegistry } from "@nextclaw/core";
|
|
2
2
|
//#region src/channels/builtin-channel.config.ts
|
|
3
|
-
const
|
|
3
|
+
const BUILTIN_CHANNEL_IDS = [
|
|
4
4
|
"telegram",
|
|
5
5
|
"whatsapp",
|
|
6
6
|
"discord",
|
|
@@ -12,10 +12,78 @@ const BUILTIN_CHANNEL_PLUGIN_IDS = [
|
|
|
12
12
|
"qq",
|
|
13
13
|
"weixin"
|
|
14
14
|
];
|
|
15
|
-
function
|
|
16
|
-
return
|
|
15
|
+
function isBuiltinChannelId(value) {
|
|
16
|
+
return BUILTIN_CHANNEL_IDS.includes(value);
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
19
|
+
//#region src/providers/plugins/dashscope-coding-plan.ts
|
|
20
|
+
const dashscopeCodingPlanProviderSpec = {
|
|
21
|
+
name: "dashscope-coding-plan",
|
|
22
|
+
keywords: ["dashscope-coding-plan", "coding-plan"],
|
|
23
|
+
envKey: "DASHSCOPE_CODING_PLAN_API_KEY",
|
|
24
|
+
displayName: "DashScope Coding Plan",
|
|
25
|
+
modelPrefix: "dashscope-coding-plan",
|
|
26
|
+
litellmPrefix: "dashscope-coding-plan",
|
|
27
|
+
skipPrefixes: ["dashscope-coding-plan/"],
|
|
28
|
+
envExtras: [],
|
|
29
|
+
isGateway: false,
|
|
30
|
+
isLocal: false,
|
|
31
|
+
detectByKeyPrefix: "sk-sp-",
|
|
32
|
+
detectByBaseKeyword: "coding.dashscope.aliyuncs.com",
|
|
33
|
+
defaultApiBase: "https://coding.dashscope.aliyuncs.com/v1",
|
|
34
|
+
defaultModels: [
|
|
35
|
+
"dashscope-coding-plan/qwen3.5-plus",
|
|
36
|
+
"dashscope-coding-plan/qwen3-max-2026-01-23",
|
|
37
|
+
"dashscope-coding-plan/qwen3-coder-next",
|
|
38
|
+
"dashscope-coding-plan/qwen3-coder-plus",
|
|
39
|
+
"dashscope-coding-plan/MiniMax-M2.5",
|
|
40
|
+
"dashscope-coding-plan/glm-5",
|
|
41
|
+
"dashscope-coding-plan/glm-4.7",
|
|
42
|
+
"dashscope-coding-plan/kimi-k2.5"
|
|
43
|
+
],
|
|
44
|
+
modelConfig: {
|
|
45
|
+
"dashscope-coding-plan/qwen3.5-plus": { vision: true },
|
|
46
|
+
"dashscope-coding-plan/kimi-k2.5": { vision: true }
|
|
47
|
+
},
|
|
48
|
+
stripModelPrefix: false,
|
|
49
|
+
modelOverrides: [],
|
|
50
|
+
supportsResponsesApi: false,
|
|
51
|
+
logo: "dashscope.png",
|
|
52
|
+
apiBaseHelp: {
|
|
53
|
+
zh: "Coding Plan 必须使用专属 Base URL https://coding.dashscope.aliyuncs.com/v1,并配合 sk-sp- 开头的专属 API Key;不要与普通 DashScope 按量计费 Key/Base URL 混用。",
|
|
54
|
+
en: "Coding Plan must use the dedicated base URL https://coding.dashscope.aliyuncs.com/v1 together with an sk-sp- API key. Do not mix it with the regular DashScope pay-as-you-go key/base URL."
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region src/providers/plugins/kimi-coding.provider.ts
|
|
59
|
+
const kimiCodingProviderSpec = {
|
|
60
|
+
name: "kimi-coding",
|
|
61
|
+
keywords: [
|
|
62
|
+
"kimi-coding",
|
|
63
|
+
"kimi-code",
|
|
64
|
+
"kimi-for-coding"
|
|
65
|
+
],
|
|
66
|
+
envKey: "KIMI_CODING_API_KEY",
|
|
67
|
+
displayName: "Kimi Coding",
|
|
68
|
+
apiProtocol: "anthropic-messages",
|
|
69
|
+
modelPrefix: "kimi-coding",
|
|
70
|
+
defaultModels: ["kimi-coding/kimi-for-coding"],
|
|
71
|
+
defaultHeaders: { "User-Agent": "claude-code/0.1.0" },
|
|
72
|
+
envExtras: [],
|
|
73
|
+
isGateway: false,
|
|
74
|
+
isLocal: false,
|
|
75
|
+
detectByKeyPrefix: "",
|
|
76
|
+
detectByBaseKeyword: "api.kimi.com/coding",
|
|
77
|
+
defaultApiBase: "https://api.kimi.com/coding",
|
|
78
|
+
stripModelPrefix: false,
|
|
79
|
+
modelOverrides: [],
|
|
80
|
+
logo: "moonshot.png",
|
|
81
|
+
apiBaseHelp: {
|
|
82
|
+
zh: "Kimi Coding 需要使用专属 Base URL https://api.kimi.com/coding,并通过 Anthropic Messages 协议访问。",
|
|
83
|
+
en: "Kimi Coding requires the dedicated base URL https://api.kimi.com/coding and uses the Anthropic Messages protocol."
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
//#endregion
|
|
19
87
|
//#region src/providers/plugins/index.ts
|
|
20
88
|
const BUILTIN_PROVIDER_PLUGINS = [{
|
|
21
89
|
id: "builtin-runtime-providers",
|
|
@@ -96,7 +164,10 @@ const BUILTIN_PROVIDER_PLUGINS = [{
|
|
|
96
164
|
"aihubmix/claude-opus-4.6",
|
|
97
165
|
"aihubmix/gemini-3.1-pro-preview"
|
|
98
166
|
],
|
|
99
|
-
|
|
167
|
+
modelConfig: {
|
|
168
|
+
"aihubmix/gemini-3.1-pro-preview": { vision: true },
|
|
169
|
+
"aihubmix/gpt-5.4": { vision: true }
|
|
170
|
+
},
|
|
100
171
|
stripModelPrefix: true,
|
|
101
172
|
modelOverrides: [],
|
|
102
173
|
logo: "aihubmix.png"
|
|
@@ -139,7 +210,7 @@ const BUILTIN_PROVIDER_PLUGINS = [{
|
|
|
139
210
|
"openai/gpt-5-mini",
|
|
140
211
|
"openai/gpt-5-nano"
|
|
141
212
|
],
|
|
142
|
-
|
|
213
|
+
modelConfig: { "openai/gpt-5.4": { vision: true } },
|
|
143
214
|
stripModelPrefix: false,
|
|
144
215
|
modelOverrides: [],
|
|
145
216
|
supportsWireApi: true,
|
|
@@ -190,7 +261,10 @@ const BUILTIN_PROVIDER_PLUGINS = [{
|
|
|
190
261
|
detectByBaseKeyword: "",
|
|
191
262
|
defaultApiBase: "https://generativelanguage.googleapis.com/v1beta/openai",
|
|
192
263
|
defaultModels: ["gemini/gemini-3.1-pro-preview", "gemini/gemini-3-flash-preview"],
|
|
193
|
-
|
|
264
|
+
modelConfig: {
|
|
265
|
+
"gemini/gemini-3.1-pro-preview": { vision: true },
|
|
266
|
+
"gemini/gemini-3-flash-preview": { vision: true }
|
|
267
|
+
},
|
|
194
268
|
stripModelPrefix: false,
|
|
195
269
|
modelOverrides: [],
|
|
196
270
|
logo: "gemini.svg"
|
|
@@ -250,67 +324,8 @@ const BUILTIN_PROVIDER_PLUGINS = [{
|
|
|
250
324
|
supportsResponsesApi: false,
|
|
251
325
|
logo: "dashscope.png"
|
|
252
326
|
},
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
keywords: ["dashscope-coding-plan", "coding-plan"],
|
|
256
|
-
envKey: "DASHSCOPE_CODING_PLAN_API_KEY",
|
|
257
|
-
displayName: "DashScope Coding Plan",
|
|
258
|
-
modelPrefix: "dashscope-coding-plan",
|
|
259
|
-
litellmPrefix: "dashscope-coding-plan",
|
|
260
|
-
skipPrefixes: ["dashscope-coding-plan/"],
|
|
261
|
-
envExtras: [],
|
|
262
|
-
isGateway: false,
|
|
263
|
-
isLocal: false,
|
|
264
|
-
detectByKeyPrefix: "sk-sp-",
|
|
265
|
-
detectByBaseKeyword: "coding.dashscope.aliyuncs.com",
|
|
266
|
-
defaultApiBase: "https://coding.dashscope.aliyuncs.com/v1",
|
|
267
|
-
defaultModels: [
|
|
268
|
-
"dashscope-coding-plan/qwen3.5-plus",
|
|
269
|
-
"dashscope-coding-plan/qwen3-max-2026-01-23",
|
|
270
|
-
"dashscope-coding-plan/qwen3-coder-next",
|
|
271
|
-
"dashscope-coding-plan/qwen3-coder-plus",
|
|
272
|
-
"dashscope-coding-plan/MiniMax-M2.5",
|
|
273
|
-
"dashscope-coding-plan/glm-5",
|
|
274
|
-
"dashscope-coding-plan/glm-4.7",
|
|
275
|
-
"dashscope-coding-plan/kimi-k2.5"
|
|
276
|
-
],
|
|
277
|
-
visionModels: ["dashscope-coding-plan/qwen3.5-plus", "dashscope-coding-plan/kimi-k2.5"],
|
|
278
|
-
stripModelPrefix: false,
|
|
279
|
-
modelOverrides: [],
|
|
280
|
-
supportsResponsesApi: false,
|
|
281
|
-
logo: "dashscope.png",
|
|
282
|
-
apiBaseHelp: {
|
|
283
|
-
zh: "Coding Plan 必须使用专属 Base URL https://coding.dashscope.aliyuncs.com/v1,并配合 sk-sp- 开头的专属 API Key;不要与普通 DashScope 按量计费 Key/Base URL 混用。",
|
|
284
|
-
en: "Coding Plan must use the dedicated base URL https://coding.dashscope.aliyuncs.com/v1 together with an sk-sp- API key. Do not mix it with the regular DashScope pay-as-you-go key/base URL."
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
name: "kimi-coding",
|
|
289
|
-
keywords: [
|
|
290
|
-
"kimi-coding",
|
|
291
|
-
"kimi-code",
|
|
292
|
-
"kimi-for-coding"
|
|
293
|
-
],
|
|
294
|
-
envKey: "KIMI_CODING_API_KEY",
|
|
295
|
-
displayName: "Kimi Coding",
|
|
296
|
-
apiProtocol: "anthropic-messages",
|
|
297
|
-
modelPrefix: "kimi-coding",
|
|
298
|
-
defaultModels: ["kimi-coding/kimi-for-coding"],
|
|
299
|
-
defaultHeaders: { "User-Agent": "claude-code/0.1.0" },
|
|
300
|
-
envExtras: [],
|
|
301
|
-
isGateway: false,
|
|
302
|
-
isLocal: false,
|
|
303
|
-
detectByKeyPrefix: "",
|
|
304
|
-
detectByBaseKeyword: "api.kimi.com/coding",
|
|
305
|
-
defaultApiBase: "https://api.kimi.com/coding",
|
|
306
|
-
stripModelPrefix: false,
|
|
307
|
-
modelOverrides: [],
|
|
308
|
-
logo: "moonshot.png",
|
|
309
|
-
apiBaseHelp: {
|
|
310
|
-
zh: "Kimi Coding 需要使用专属 Base URL https://api.kimi.com/coding,并通过 Anthropic Messages 协议访问。",
|
|
311
|
-
en: "Kimi Coding requires the dedicated base URL https://api.kimi.com/coding and uses the Anthropic Messages protocol."
|
|
312
|
-
}
|
|
313
|
-
},
|
|
327
|
+
dashscopeCodingPlanProviderSpec,
|
|
328
|
+
kimiCodingProviderSpec,
|
|
314
329
|
{
|
|
315
330
|
name: "qwen-portal",
|
|
316
331
|
keywords: ["qwen-portal", "qwen"],
|
|
@@ -326,7 +341,7 @@ const BUILTIN_PROVIDER_PLUGINS = [{
|
|
|
326
341
|
detectByBaseKeyword: "portal.qwen.ai",
|
|
327
342
|
defaultApiBase: "https://portal.qwen.ai/v1",
|
|
328
343
|
defaultModels: ["qwen-portal/coder-model", "qwen-portal/vision-model"],
|
|
329
|
-
|
|
344
|
+
modelConfig: { "qwen-portal/vision-model": { vision: true } },
|
|
330
345
|
stripModelPrefix: false,
|
|
331
346
|
modelOverrides: [],
|
|
332
347
|
auth: {
|
|
@@ -530,6 +545,6 @@ function builtinProviderIds() {
|
|
|
530
545
|
return listBuiltinProviders().map((provider) => provider.name);
|
|
531
546
|
}
|
|
532
547
|
//#endregion
|
|
533
|
-
export {
|
|
548
|
+
export { BUILTIN_CHANNEL_IDS, BUILTIN_PROVIDER_PLUGINS, builtinProviderIds, findBuiltinProviderByName, isBuiltinChannelId, listBuiltinProviderPlugins, listBuiltinProviders };
|
|
534
549
|
|
|
535
550
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/channels/builtin-channel.config.ts","../src/providers/plugins/dashscope-coding-plan.ts","../src/providers/plugins/kimi-coding.provider.ts","../src/providers/plugins/builtin.ts","../src/providers/plugins/index.ts","../src/providers/builtin-provider-registry.provider.ts"],"sourcesContent":["export const BUILTIN_CHANNEL_PLUGIN_IDS = [\n \"telegram\",\n \"whatsapp\",\n \"discord\",\n \"feishu\",\n \"dingtalk\",\n \"wecom\",\n \"email\",\n \"slack\",\n \"qq\",\n \"weixin\"\n] as const;\n\nexport type BuiltinChannelPluginId = (typeof BUILTIN_CHANNEL_PLUGIN_IDS)[number];\n\nexport function isBuiltinChannelPluginId(value: string): value is BuiltinChannelPluginId {\n return BUILTIN_CHANNEL_PLUGIN_IDS.includes(value as BuiltinChannelPluginId);\n}\n","import type { ProviderSpec } from \"@nextclaw/core\";\n\nexport const dashscopeCodingPlanProviderSpec: ProviderSpec = {\n name: \"dashscope-coding-plan\",\n keywords: [\"dashscope-coding-plan\", \"coding-plan\"],\n envKey: \"DASHSCOPE_CODING_PLAN_API_KEY\",\n displayName: \"DashScope Coding Plan\",\n modelPrefix: \"dashscope-coding-plan\",\n litellmPrefix: \"dashscope-coding-plan\",\n skipPrefixes: [\"dashscope-coding-plan/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"sk-sp-\",\n detectByBaseKeyword: \"coding.dashscope.aliyuncs.com\",\n defaultApiBase: \"https://coding.dashscope.aliyuncs.com/v1\",\n defaultModels: [\n \"dashscope-coding-plan/qwen3.5-plus\",\n \"dashscope-coding-plan/qwen3-max-2026-01-23\",\n \"dashscope-coding-plan/qwen3-coder-next\",\n \"dashscope-coding-plan/qwen3-coder-plus\",\n \"dashscope-coding-plan/MiniMax-M2.5\",\n \"dashscope-coding-plan/glm-5\",\n \"dashscope-coding-plan/glm-4.7\",\n \"dashscope-coding-plan/kimi-k2.5\"\n ],\n visionModels: [\"dashscope-coding-plan/qwen3.5-plus\", \"dashscope-coding-plan/kimi-k2.5\"],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsResponsesApi: false,\n logo: \"dashscope.png\",\n apiBaseHelp: {\n zh: \"Coding Plan 必须使用专属 Base URL https://coding.dashscope.aliyuncs.com/v1,并配合 sk-sp- 开头的专属 API Key;不要与普通 DashScope 按量计费 Key/Base URL 混用。\",\n en: \"Coding Plan must use the dedicated base URL https://coding.dashscope.aliyuncs.com/v1 together with an sk-sp- API key. Do not mix it with the regular DashScope pay-as-you-go key/base URL.\"\n }\n};\n","import type { ProviderSpec } from \"@nextclaw/core\";\n\nexport const kimiCodingProviderSpec: ProviderSpec = {\n name: \"kimi-coding\",\n keywords: [\"kimi-coding\", \"kimi-code\", \"kimi-for-coding\"],\n envKey: \"KIMI_CODING_API_KEY\",\n displayName: \"Kimi Coding\",\n apiProtocol: \"anthropic-messages\",\n modelPrefix: \"kimi-coding\",\n defaultModels: [\"kimi-coding/kimi-for-coding\"],\n defaultHeaders: {\n \"User-Agent\": \"claude-code/0.1.0\"\n },\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"api.kimi.com/coding\",\n defaultApiBase: \"https://api.kimi.com/coding\",\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"moonshot.png\",\n apiBaseHelp: {\n zh: \"Kimi Coding 需要使用专属 Base URL https://api.kimi.com/coding,并通过 Anthropic Messages 协议访问。\",\n en: \"Kimi Coding requires the dedicated base URL https://api.kimi.com/coding and uses the Anthropic Messages protocol.\"\n }\n};\n","import type { ProviderCatalogPlugin } from \"@nextclaw/core\";\nimport { dashscopeCodingPlanProviderSpec } from \"./dashscope-coding-plan.js\"; import { kimiCodingProviderSpec } from \"./kimi-coding.provider.js\";\nexport const builtinProviderPlugin: ProviderCatalogPlugin = { id: \"builtin-runtime-providers\",\n providers: [\n {\n name: \"nextclaw\",\n keywords: [\"nextclaw\", \"dashscope/\", \"qwen3.5\", \"qwen\"],\n envKey: \"NEXTCLAW_API_KEY\",\n displayName: \"NextClaw Built-in\",\n modelPrefix: \"nextclaw\",\n litellmPrefix: \"nextclaw\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"nc_free_\",\n detectByBaseKeyword: \"nextclaw.io\",\n defaultApiBase: \"https://ai-gateway-api.nextclaw.io/v1\",\n defaultModels: [\n \"dashscope/qwen3.5-plus\",\n \"dashscope/qwen3.5-flash\",\n \"dashscope/qwen3.5-122b-a10b\",\n \"dashscope/qwen3.5-35b-a3b\"\n ],\n stripModelPrefix: false,\n modelOverrides: []\n },\n {\n name: \"openrouter\",\n keywords: [\"openrouter\"],\n envKey: \"OPENROUTER_API_KEY\",\n displayName: \"OpenRouter\",\n modelPrefix: \"openrouter\",\n litellmPrefix: \"openrouter\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"sk-or-\",\n detectByBaseKeyword: \"openrouter\",\n defaultApiBase: \"https://openrouter.ai/api/v1\",\n defaultModels: [\n \"openrouter/minimax/minimax-m2.5\", \"openrouter/xiaomi/mimo-v2-pro\",\n \"openrouter/stepfun/step-3.5-flash:free\", \"openrouter/google/gemini-3-flash-preview\",\n \"openrouter/deepseek/deepseek-v3.2\",\n \"openrouter/x-ai/grok-4.1-fast\",\n \"openrouter/z-ai/glm-5\",\n \"openrouter/anthropic/claude-opus-4.6\",\n \"openrouter/openai/gpt-5.3-codex\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"openrouter.svg\"\n },\n {\n name: \"aihubmix\",\n keywords: [\"aihubmix\"],\n envKey: \"OPENAI_API_KEY\",\n displayName: \"AiHubMix\",\n modelPrefix: \"aihubmix\",\n litellmPrefix: \"openai\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"aihubmix\",\n defaultApiBase: \"https://aihubmix.com/v1\",\n defaultModels: [\"aihubmix/gpt-5.3-codex\", \"aihubmix/claude-opus-4.6\", \"aihubmix/gemini-3.1-pro-preview\"],\n visionModels: [\"aihubmix/gemini-3.1-pro-preview\", \"aihubmix/gpt-5.4\"],\n stripModelPrefix: true,\n modelOverrides: [],\n logo: \"aihubmix.png\"\n },\n {\n name: \"anthropic\",\n keywords: [\"anthropic\", \"claude\"],\n envKey: \"ANTHROPIC_API_KEY\",\n displayName: \"Anthropic\",\n modelPrefix: \"anthropic\",\n litellmPrefix: \"anthropic\",\n skipPrefixes: [\"anthropic/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.anthropic.com\",\n defaultModels: [\"anthropic/claude-opus-4-6\", \"anthropic/claude-sonnet-4-6\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"anthropic.svg\"\n },\n {\n name: \"openai\",\n keywords: [\"openai\", \"gpt\"],\n envKey: \"OPENAI_API_KEY\",\n displayName: \"OpenAI\",\n modelPrefix: \"openai\",\n litellmPrefix: \"openai\",\n skipPrefixes: [\"openai/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.openai.com/v1\",\n defaultModels: [\"openai/gpt-5.3-codex\", \"openai/gpt-5-mini\", \"openai/gpt-5-nano\"],\n visionModels: [\"openai/gpt-5.4\"],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsWireApi: true,\n wireApiOptions: [\"auto\", \"chat\", \"responses\"],\n defaultWireApi: \"auto\",\n logo: \"openai.svg\"\n },\n {\n name: \"deepseek\",\n keywords: [\"deepseek\"],\n envKey: \"DEEPSEEK_API_KEY\",\n displayName: \"DeepSeek\",\n modelPrefix: \"deepseek\",\n litellmPrefix: \"deepseek\",\n skipPrefixes: [\"deepseek/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.deepseek.com\",\n defaultModels: [\"deepseek/deepseek-chat\", \"deepseek/deepseek-reasoner\", \"deepseek/deepseek-v4-flash\", \"deepseek/deepseek-v4-pro\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"deepseek.png\"\n },\n {\n name: \"gemini\",\n keywords: [\"gemini\"],\n envKey: \"GEMINI_API_KEY\",\n displayName: \"Gemini\",\n modelPrefix: \"gemini\",\n litellmPrefix: \"gemini\",\n skipPrefixes: [\"gemini/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://generativelanguage.googleapis.com/v1beta/openai\",\n defaultModels: [\"gemini/gemini-3.1-pro-preview\", \"gemini/gemini-3-flash-preview\"],\n visionModels: [\"gemini/gemini-3.1-pro-preview\", \"gemini/gemini-3-flash-preview\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"gemini.svg\"\n },\n {\n name: \"zhipu\",\n keywords: [\"zhipu\", \"glm\", \"zai\"],\n envKey: \"ZAI_API_KEY\",\n displayName: \"Zhipu AI\",\n modelPrefix: \"zai\",\n litellmPrefix: \"zai\",\n skipPrefixes: [\"zhipu/\", \"zai/\", \"openrouter/\", \"hosted_vllm/\"],\n envExtras: [[\"ZHIPUAI_API_KEY\", \"{api_key}\"]],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://open.bigmodel.cn/api/paas/v4\",\n defaultModels: [\"zai/glm-5\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"zhipu.svg\"\n },\n {\n name: \"dashscope\",\n keywords: [\"qwen\", \"dashscope\"],\n envKey: \"DASHSCOPE_API_KEY\",\n displayName: \"DashScope\",\n modelPrefix: \"dashscope\",\n litellmPrefix: \"dashscope\",\n skipPrefixes: [\"dashscope/\", \"openrouter/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n defaultModels: [\n \"dashscope/qwen3.5-plus\",\n \"dashscope/qwen3.5-flash\",\n \"dashscope/qwen3.5-397b-a17b\",\n \"dashscope/qwen3.5-122b-a10b\",\n \"dashscope/qwen3.5-35b-a3b\",\n \"dashscope/qwen3.5-27b\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsResponsesApi: false,\n logo: \"dashscope.png\"\n },\n dashscopeCodingPlanProviderSpec, kimiCodingProviderSpec,\n {\n name: \"qwen-portal\",\n keywords: [\"qwen-portal\", \"qwen\"],\n envKey: \"QWEN_PORTAL_TOKEN\",\n displayName: \"Qwen Portal\",\n modelPrefix: \"qwen-portal\",\n litellmPrefix: \"qwen-portal\",\n skipPrefixes: [\"qwen-portal/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"portal.qwen.ai\",\n defaultApiBase: \"https://portal.qwen.ai/v1\",\n defaultModels: [\"qwen-portal/coder-model\", \"qwen-portal/vision-model\"],\n visionModels: [\"qwen-portal/vision-model\"],\n stripModelPrefix: false,\n modelOverrides: [],\n auth: {\n kind: \"device_code\",\n displayName: \"Qwen OAuth\",\n baseUrl: \"https://chat.qwen.ai\",\n deviceCodePath: \"/api/v1/oauth2/device/code\",\n tokenPath: \"/api/v1/oauth2/token\",\n clientId: \"f0304373b74a44d2b584a3fb70ca9e56\",\n scope: \"openid profile email model.completion\",\n grantType: \"urn:ietf:params:oauth:grant-type:device_code\",\n usePkce: true,\n cliCredential: {\n path: \"~/.qwen/oauth_creds.json\",\n accessTokenField: \"access_token\",\n refreshTokenField: \"refresh_token\",\n expiresAtField: \"expiry_date\"\n },\n note: {\n zh: \"通过浏览器登录 Qwen 后即可在 NextClaw 中使用该 Provider。\",\n en: \"Log in to Qwen in your browser, then use this provider in NextClaw.\"\n }\n }\n },\n {\n name: \"moonshot\",\n keywords: [\"moonshot\", \"kimi\"],\n envKey: \"MOONSHOT_API_KEY\",\n displayName: \"Moonshot\",\n modelPrefix: \"moonshot\",\n litellmPrefix: \"moonshot\",\n skipPrefixes: [\"moonshot/\", \"openrouter/\"],\n envExtras: [[\"MOONSHOT_API_BASE\", \"{api_base}\"]],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.moonshot.ai/v1\",\n defaultModels: [\"moonshot/kimi-k2.5\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"moonshot.png\"\n },\n {\n name: \"minimax\",\n keywords: [\"minimax\"],\n envKey: \"MINIMAX_API_KEY\",\n displayName: \"MiniMax\",\n modelPrefix: \"minimax\",\n litellmPrefix: \"minimax\",\n skipPrefixes: [\"minimax/\", \"openrouter/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.minimaxi.com/v1\",\n defaultModels: [\"minimax/MiniMax-M2.7\", \"minimax/MiniMax-M2.7-highspeed\", \"minimax/MiniMax-M2.5\", \"minimax/MiniMax-M2.5-highspeed\"],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsWireApi: true,\n wireApiOptions: [\"auto\", \"chat\", \"responses\"],\n defaultWireApi: \"chat\",\n logo: \"minimax.svg\",\n apiBaseHelp: {\n zh: \"MiniMax 中国区请使用 https://api.minimaxi.com/v1;海外请使用 https://api.minimax.io/v1。AI Coding Tools 推荐使用 MiniMax-M2.7,并将 Wire API 设为 Chat。\",\n en: \"Use https://api.minimaxi.com/v1 for Mainland China accounts, and https://api.minimax.io/v1 for overseas accounts. For AI Coding Tools, prefer MiniMax-M2.7 with Wire API set to Chat.\"\n }\n },\n {\n name: \"minimax-portal\",\n keywords: [\"minimax-portal\", \"minimax\"],\n envKey: \"MINIMAX_PORTAL_TOKEN\",\n displayName: \"MiniMax Portal\",\n modelPrefix: \"minimax-portal\",\n litellmPrefix: \"minimax-portal\",\n skipPrefixes: [\"minimax-portal/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.minimax.io/v1\",\n defaultModels: [\"minimax-portal/MiniMax-M2.5\", \"minimax-portal/MiniMax-M2.5-highspeed\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"minimax.svg\",\n apiBaseHelp: {\n zh: \"OAuth Global 默认使用 https://api.minimax.io/v1;OAuth 中国区默认使用 https://api.minimaxi.com/v1。\",\n en: \"OAuth Global uses https://api.minimax.io/v1 by default; OAuth CN uses https://api.minimaxi.com/v1.\"\n },\n auth: {\n kind: \"device_code\",\n protocol: \"minimax_user_code\",\n displayName: \"MiniMax OAuth\",\n baseUrl: \"https://api.minimax.io\",\n deviceCodePath: \"/oauth/code\",\n tokenPath: \"/oauth/token\",\n clientId: \"78257093-7e40-4613-99e0-527b14b39113\",\n scope: \"group_id profile model.completion\",\n grantType: \"urn:ietf:params:oauth:grant-type:user_code\",\n usePkce: true,\n defaultMethodId: \"cn\",\n methods: [\n {\n id: \"global\",\n label: {\n zh: \"Global(海外)\",\n en: \"Global\"\n },\n hint: {\n zh: \"适用于海外用户,默认 API Base 为 https://api.minimax.io/v1。\",\n en: \"For international users. Default API base: https://api.minimax.io/v1.\"\n },\n baseUrl: \"https://api.minimax.io\",\n defaultApiBase: \"https://api.minimax.io/v1\"\n },\n {\n id: \"cn\",\n label: {\n zh: \"中国区(CN)\",\n en: \"China Mainland (CN)\"\n },\n hint: {\n zh: \"适用于中国区用户,默认 API Base 为 https://api.minimaxi.com/v1。\",\n en: \"For Mainland China users. Default API base: https://api.minimaxi.com/v1.\"\n },\n baseUrl: \"https://api.minimaxi.com\",\n defaultApiBase: \"https://api.minimaxi.com/v1\"\n }\n ],\n note: {\n zh: \"通过浏览器完成 MiniMax OAuth 授权后即可使用,无需手动填写 API Key。\",\n en: \"Complete MiniMax OAuth in browser to use this provider without manually entering an API key.\"\n }\n }\n },\n {\n name: \"vllm\",\n keywords: [\"vllm\"],\n envKey: \"HOSTED_VLLM_API_KEY\",\n displayName: \"vLLM/Local\",\n modelPrefix: \"hosted_vllm\",\n litellmPrefix: \"hosted_vllm\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: false,\n isLocal: true,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"http://127.0.0.1:8000/v1\",\n defaultModels: [\n \"hosted_vllm/meta-llama/Llama-3.1-8B-Instruct\",\n \"hosted_vllm/Qwen/Qwen2.5-7B-Instruct\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"vllm.svg\"\n },\n {\n name: \"groq\",\n keywords: [\"groq\"],\n envKey: \"GROQ_API_KEY\",\n displayName: \"Groq\",\n modelPrefix: \"groq\",\n litellmPrefix: \"groq\",\n skipPrefixes: [\"groq/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.groq.com/openai/v1\",\n defaultModels: [\"groq/openai/gpt-oss-120b\", \"groq/llama-3.1-8b-instant\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"groq.svg\"\n }\n ]\n};\n","import type { ProviderCatalogPlugin } from \"@nextclaw/core\";\nimport { builtinProviderPlugin } from \"./builtin.js\";\n\nexport const BUILTIN_PROVIDER_PLUGINS: ProviderCatalogPlugin[] = [builtinProviderPlugin];\n","import {\n ProviderRegistry,\n type ProviderCatalogPlugin,\n type ProviderSpec\n} from \"@nextclaw/core\";\nimport { BUILTIN_PROVIDER_PLUGINS } from \"./plugins/index.js\";\n\nlet builtinProviderRegistry: ProviderRegistry | null = null;\n\nfunction getBuiltinProviderRegistry(): ProviderRegistry {\n builtinProviderRegistry ??= new ProviderRegistry(BUILTIN_PROVIDER_PLUGINS);\n return builtinProviderRegistry;\n}\n\nexport function listBuiltinProviderPlugins(): ProviderCatalogPlugin[] {\n return getBuiltinProviderRegistry().listProviderPlugins();\n}\n\nexport function listBuiltinProviders(): ProviderSpec[] {\n return getBuiltinProviderRegistry().listProviderSpecs();\n}\n\nexport function findBuiltinProviderByName(name: string): ProviderSpec | undefined {\n return getBuiltinProviderRegistry().findProviderByName(name);\n}\n\nexport function builtinProviderIds(): string[] {\n return listBuiltinProviders().map((provider) => provider.name);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/channels/builtin-channel.config.ts","../src/providers/plugins/dashscope-coding-plan.ts","../src/providers/plugins/kimi-coding.provider.ts","../src/providers/plugins/builtin.ts","../src/providers/plugins/index.ts","../src/providers/builtin-provider-registry.provider.ts"],"sourcesContent":["export const BUILTIN_CHANNEL_IDS = [\n \"telegram\",\n \"whatsapp\",\n \"discord\",\n \"feishu\",\n \"dingtalk\",\n \"wecom\",\n \"email\",\n \"slack\",\n \"qq\",\n \"weixin\"\n] as const;\n\nexport type BuiltinChannelId = (typeof BUILTIN_CHANNEL_IDS)[number];\n\nexport function isBuiltinChannelId(value: string): value is BuiltinChannelId {\n return BUILTIN_CHANNEL_IDS.includes(value as BuiltinChannelId);\n}\n","import type { ProviderSpec } from \"@nextclaw/core\";\n\nexport const dashscopeCodingPlanProviderSpec: ProviderSpec = {\n name: \"dashscope-coding-plan\",\n keywords: [\"dashscope-coding-plan\", \"coding-plan\"],\n envKey: \"DASHSCOPE_CODING_PLAN_API_KEY\",\n displayName: \"DashScope Coding Plan\",\n modelPrefix: \"dashscope-coding-plan\",\n litellmPrefix: \"dashscope-coding-plan\",\n skipPrefixes: [\"dashscope-coding-plan/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"sk-sp-\",\n detectByBaseKeyword: \"coding.dashscope.aliyuncs.com\",\n defaultApiBase: \"https://coding.dashscope.aliyuncs.com/v1\",\n defaultModels: [\n \"dashscope-coding-plan/qwen3.5-plus\",\n \"dashscope-coding-plan/qwen3-max-2026-01-23\",\n \"dashscope-coding-plan/qwen3-coder-next\",\n \"dashscope-coding-plan/qwen3-coder-plus\",\n \"dashscope-coding-plan/MiniMax-M2.5\",\n \"dashscope-coding-plan/glm-5\",\n \"dashscope-coding-plan/glm-4.7\",\n \"dashscope-coding-plan/kimi-k2.5\"\n ],\n modelConfig: {\n \"dashscope-coding-plan/qwen3.5-plus\": { vision: true },\n \"dashscope-coding-plan/kimi-k2.5\": { vision: true }\n },\n stripModelPrefix: false,\n modelOverrides: [],\n supportsResponsesApi: false,\n logo: \"dashscope.png\",\n apiBaseHelp: {\n zh: \"Coding Plan 必须使用专属 Base URL https://coding.dashscope.aliyuncs.com/v1,并配合 sk-sp- 开头的专属 API Key;不要与普通 DashScope 按量计费 Key/Base URL 混用。\",\n en: \"Coding Plan must use the dedicated base URL https://coding.dashscope.aliyuncs.com/v1 together with an sk-sp- API key. Do not mix it with the regular DashScope pay-as-you-go key/base URL.\"\n }\n};\n","import type { ProviderSpec } from \"@nextclaw/core\";\n\nexport const kimiCodingProviderSpec: ProviderSpec = {\n name: \"kimi-coding\",\n keywords: [\"kimi-coding\", \"kimi-code\", \"kimi-for-coding\"],\n envKey: \"KIMI_CODING_API_KEY\",\n displayName: \"Kimi Coding\",\n apiProtocol: \"anthropic-messages\",\n modelPrefix: \"kimi-coding\",\n defaultModels: [\"kimi-coding/kimi-for-coding\"],\n defaultHeaders: {\n \"User-Agent\": \"claude-code/0.1.0\"\n },\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"api.kimi.com/coding\",\n defaultApiBase: \"https://api.kimi.com/coding\",\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"moonshot.png\",\n apiBaseHelp: {\n zh: \"Kimi Coding 需要使用专属 Base URL https://api.kimi.com/coding,并通过 Anthropic Messages 协议访问。\",\n en: \"Kimi Coding requires the dedicated base URL https://api.kimi.com/coding and uses the Anthropic Messages protocol.\"\n }\n};\n","import type { ProviderCatalogPlugin } from \"@nextclaw/core\";\nimport { dashscopeCodingPlanProviderSpec } from \"./dashscope-coding-plan.js\"; import { kimiCodingProviderSpec } from \"./kimi-coding.provider.js\";\nexport const builtinProviderPlugin: ProviderCatalogPlugin = { id: \"builtin-runtime-providers\",\n providers: [\n {\n name: \"nextclaw\",\n keywords: [\"nextclaw\", \"dashscope/\", \"qwen3.5\", \"qwen\"],\n envKey: \"NEXTCLAW_API_KEY\",\n displayName: \"NextClaw Built-in\",\n modelPrefix: \"nextclaw\",\n litellmPrefix: \"nextclaw\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"nc_free_\",\n detectByBaseKeyword: \"nextclaw.io\",\n defaultApiBase: \"https://ai-gateway-api.nextclaw.io/v1\",\n defaultModels: [\n \"dashscope/qwen3.5-plus\",\n \"dashscope/qwen3.5-flash\",\n \"dashscope/qwen3.5-122b-a10b\",\n \"dashscope/qwen3.5-35b-a3b\"\n ],\n stripModelPrefix: false,\n modelOverrides: []\n },\n {\n name: \"openrouter\",\n keywords: [\"openrouter\"],\n envKey: \"OPENROUTER_API_KEY\",\n displayName: \"OpenRouter\",\n modelPrefix: \"openrouter\",\n litellmPrefix: \"openrouter\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"sk-or-\",\n detectByBaseKeyword: \"openrouter\",\n defaultApiBase: \"https://openrouter.ai/api/v1\",\n defaultModels: [\n \"openrouter/minimax/minimax-m2.5\", \"openrouter/xiaomi/mimo-v2-pro\",\n \"openrouter/stepfun/step-3.5-flash:free\", \"openrouter/google/gemini-3-flash-preview\",\n \"openrouter/deepseek/deepseek-v3.2\",\n \"openrouter/x-ai/grok-4.1-fast\",\n \"openrouter/z-ai/glm-5\",\n \"openrouter/anthropic/claude-opus-4.6\",\n \"openrouter/openai/gpt-5.3-codex\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"openrouter.svg\"\n },\n {\n name: \"aihubmix\",\n keywords: [\"aihubmix\"],\n envKey: \"OPENAI_API_KEY\",\n displayName: \"AiHubMix\",\n modelPrefix: \"aihubmix\",\n litellmPrefix: \"openai\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: true,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"aihubmix\",\n defaultApiBase: \"https://aihubmix.com/v1\",\n defaultModels: [\"aihubmix/gpt-5.3-codex\", \"aihubmix/claude-opus-4.6\", \"aihubmix/gemini-3.1-pro-preview\"],\n modelConfig: { \"aihubmix/gemini-3.1-pro-preview\": { vision: true }, \"aihubmix/gpt-5.4\": { vision: true } },\n stripModelPrefix: true,\n modelOverrides: [],\n logo: \"aihubmix.png\"\n },\n {\n name: \"anthropic\",\n keywords: [\"anthropic\", \"claude\"],\n envKey: \"ANTHROPIC_API_KEY\",\n displayName: \"Anthropic\",\n modelPrefix: \"anthropic\",\n litellmPrefix: \"anthropic\",\n skipPrefixes: [\"anthropic/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.anthropic.com\",\n defaultModels: [\"anthropic/claude-opus-4-6\", \"anthropic/claude-sonnet-4-6\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"anthropic.svg\"\n },\n {\n name: \"openai\",\n keywords: [\"openai\", \"gpt\"],\n envKey: \"OPENAI_API_KEY\",\n displayName: \"OpenAI\",\n modelPrefix: \"openai\",\n litellmPrefix: \"openai\",\n skipPrefixes: [\"openai/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.openai.com/v1\",\n defaultModels: [\"openai/gpt-5.3-codex\", \"openai/gpt-5-mini\", \"openai/gpt-5-nano\"],\n modelConfig: { \"openai/gpt-5.4\": { vision: true } },\n stripModelPrefix: false,\n modelOverrides: [],\n supportsWireApi: true,\n wireApiOptions: [\"auto\", \"chat\", \"responses\"],\n defaultWireApi: \"auto\",\n logo: \"openai.svg\"\n },\n {\n name: \"deepseek\",\n keywords: [\"deepseek\"],\n envKey: \"DEEPSEEK_API_KEY\",\n displayName: \"DeepSeek\",\n modelPrefix: \"deepseek\",\n litellmPrefix: \"deepseek\",\n skipPrefixes: [\"deepseek/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.deepseek.com\",\n defaultModels: [\"deepseek/deepseek-chat\", \"deepseek/deepseek-reasoner\", \"deepseek/deepseek-v4-flash\", \"deepseek/deepseek-v4-pro\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"deepseek.png\"\n },\n {\n name: \"gemini\",\n keywords: [\"gemini\"],\n envKey: \"GEMINI_API_KEY\",\n displayName: \"Gemini\",\n modelPrefix: \"gemini\",\n litellmPrefix: \"gemini\",\n skipPrefixes: [\"gemini/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://generativelanguage.googleapis.com/v1beta/openai\",\n defaultModels: [\"gemini/gemini-3.1-pro-preview\", \"gemini/gemini-3-flash-preview\"],\n modelConfig: { \"gemini/gemini-3.1-pro-preview\": { vision: true }, \"gemini/gemini-3-flash-preview\": { vision: true } },\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"gemini.svg\"\n },\n {\n name: \"zhipu\",\n keywords: [\"zhipu\", \"glm\", \"zai\"],\n envKey: \"ZAI_API_KEY\",\n displayName: \"Zhipu AI\",\n modelPrefix: \"zai\",\n litellmPrefix: \"zai\",\n skipPrefixes: [\"zhipu/\", \"zai/\", \"openrouter/\", \"hosted_vllm/\"],\n envExtras: [[\"ZHIPUAI_API_KEY\", \"{api_key}\"]],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://open.bigmodel.cn/api/paas/v4\",\n defaultModels: [\"zai/glm-5\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"zhipu.svg\"\n },\n {\n name: \"dashscope\",\n keywords: [\"qwen\", \"dashscope\"],\n envKey: \"DASHSCOPE_API_KEY\",\n displayName: \"DashScope\",\n modelPrefix: \"dashscope\",\n litellmPrefix: \"dashscope\",\n skipPrefixes: [\"dashscope/\", \"openrouter/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://dashscope.aliyuncs.com/compatible-mode/v1\",\n defaultModels: [\n \"dashscope/qwen3.5-plus\",\n \"dashscope/qwen3.5-flash\",\n \"dashscope/qwen3.5-397b-a17b\",\n \"dashscope/qwen3.5-122b-a10b\",\n \"dashscope/qwen3.5-35b-a3b\",\n \"dashscope/qwen3.5-27b\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsResponsesApi: false,\n logo: \"dashscope.png\"\n },\n dashscopeCodingPlanProviderSpec, kimiCodingProviderSpec,\n {\n name: \"qwen-portal\",\n keywords: [\"qwen-portal\", \"qwen\"],\n envKey: \"QWEN_PORTAL_TOKEN\",\n displayName: \"Qwen Portal\",\n modelPrefix: \"qwen-portal\",\n litellmPrefix: \"qwen-portal\",\n skipPrefixes: [\"qwen-portal/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"portal.qwen.ai\",\n defaultApiBase: \"https://portal.qwen.ai/v1\",\n defaultModels: [\"qwen-portal/coder-model\", \"qwen-portal/vision-model\"],\n modelConfig: { \"qwen-portal/vision-model\": { vision: true } },\n stripModelPrefix: false,\n modelOverrides: [],\n auth: {\n kind: \"device_code\",\n displayName: \"Qwen OAuth\",\n baseUrl: \"https://chat.qwen.ai\",\n deviceCodePath: \"/api/v1/oauth2/device/code\",\n tokenPath: \"/api/v1/oauth2/token\",\n clientId: \"f0304373b74a44d2b584a3fb70ca9e56\",\n scope: \"openid profile email model.completion\",\n grantType: \"urn:ietf:params:oauth:grant-type:device_code\",\n usePkce: true,\n cliCredential: {\n path: \"~/.qwen/oauth_creds.json\",\n accessTokenField: \"access_token\",\n refreshTokenField: \"refresh_token\",\n expiresAtField: \"expiry_date\"\n },\n note: {\n zh: \"通过浏览器登录 Qwen 后即可在 NextClaw 中使用该 Provider。\",\n en: \"Log in to Qwen in your browser, then use this provider in NextClaw.\"\n }\n }\n },\n {\n name: \"moonshot\",\n keywords: [\"moonshot\", \"kimi\"],\n envKey: \"MOONSHOT_API_KEY\",\n displayName: \"Moonshot\",\n modelPrefix: \"moonshot\",\n litellmPrefix: \"moonshot\",\n skipPrefixes: [\"moonshot/\", \"openrouter/\"],\n envExtras: [[\"MOONSHOT_API_BASE\", \"{api_base}\"]],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.moonshot.ai/v1\",\n defaultModels: [\"moonshot/kimi-k2.5\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"moonshot.png\"\n },\n {\n name: \"minimax\",\n keywords: [\"minimax\"],\n envKey: \"MINIMAX_API_KEY\",\n displayName: \"MiniMax\",\n modelPrefix: \"minimax\",\n litellmPrefix: \"minimax\",\n skipPrefixes: [\"minimax/\", \"openrouter/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.minimaxi.com/v1\",\n defaultModels: [\"minimax/MiniMax-M2.7\", \"minimax/MiniMax-M2.7-highspeed\", \"minimax/MiniMax-M2.5\", \"minimax/MiniMax-M2.5-highspeed\"],\n stripModelPrefix: false,\n modelOverrides: [],\n supportsWireApi: true,\n wireApiOptions: [\"auto\", \"chat\", \"responses\"],\n defaultWireApi: \"chat\",\n logo: \"minimax.svg\",\n apiBaseHelp: {\n zh: \"MiniMax 中国区请使用 https://api.minimaxi.com/v1;海外请使用 https://api.minimax.io/v1。AI Coding Tools 推荐使用 MiniMax-M2.7,并将 Wire API 设为 Chat。\",\n en: \"Use https://api.minimaxi.com/v1 for Mainland China accounts, and https://api.minimax.io/v1 for overseas accounts. For AI Coding Tools, prefer MiniMax-M2.7 with Wire API set to Chat.\"\n }\n },\n {\n name: \"minimax-portal\",\n keywords: [\"minimax-portal\", \"minimax\"],\n envKey: \"MINIMAX_PORTAL_TOKEN\",\n displayName: \"MiniMax Portal\",\n modelPrefix: \"minimax-portal\",\n litellmPrefix: \"minimax-portal\",\n skipPrefixes: [\"minimax-portal/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.minimax.io/v1\",\n defaultModels: [\"minimax-portal/MiniMax-M2.5\", \"minimax-portal/MiniMax-M2.5-highspeed\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"minimax.svg\",\n apiBaseHelp: {\n zh: \"OAuth Global 默认使用 https://api.minimax.io/v1;OAuth 中国区默认使用 https://api.minimaxi.com/v1。\",\n en: \"OAuth Global uses https://api.minimax.io/v1 by default; OAuth CN uses https://api.minimaxi.com/v1.\"\n },\n auth: {\n kind: \"device_code\",\n protocol: \"minimax_user_code\",\n displayName: \"MiniMax OAuth\",\n baseUrl: \"https://api.minimax.io\",\n deviceCodePath: \"/oauth/code\",\n tokenPath: \"/oauth/token\",\n clientId: \"78257093-7e40-4613-99e0-527b14b39113\",\n scope: \"group_id profile model.completion\",\n grantType: \"urn:ietf:params:oauth:grant-type:user_code\",\n usePkce: true,\n defaultMethodId: \"cn\",\n methods: [\n {\n id: \"global\",\n label: {\n zh: \"Global(海外)\",\n en: \"Global\"\n },\n hint: {\n zh: \"适用于海外用户,默认 API Base 为 https://api.minimax.io/v1。\",\n en: \"For international users. Default API base: https://api.minimax.io/v1.\"\n },\n baseUrl: \"https://api.minimax.io\",\n defaultApiBase: \"https://api.minimax.io/v1\"\n },\n {\n id: \"cn\",\n label: {\n zh: \"中国区(CN)\",\n en: \"China Mainland (CN)\"\n },\n hint: {\n zh: \"适用于中国区用户,默认 API Base 为 https://api.minimaxi.com/v1。\",\n en: \"For Mainland China users. Default API base: https://api.minimaxi.com/v1.\"\n },\n baseUrl: \"https://api.minimaxi.com\",\n defaultApiBase: \"https://api.minimaxi.com/v1\"\n }\n ],\n note: {\n zh: \"通过浏览器完成 MiniMax OAuth 授权后即可使用,无需手动填写 API Key。\",\n en: \"Complete MiniMax OAuth in browser to use this provider without manually entering an API key.\"\n }\n }\n },\n {\n name: \"vllm\",\n keywords: [\"vllm\"],\n envKey: \"HOSTED_VLLM_API_KEY\",\n displayName: \"vLLM/Local\",\n modelPrefix: \"hosted_vllm\",\n litellmPrefix: \"hosted_vllm\",\n skipPrefixes: [],\n envExtras: [],\n isGateway: false,\n isLocal: true,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"http://127.0.0.1:8000/v1\",\n defaultModels: [\n \"hosted_vllm/meta-llama/Llama-3.1-8B-Instruct\",\n \"hosted_vllm/Qwen/Qwen2.5-7B-Instruct\"\n ],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"vllm.svg\"\n },\n {\n name: \"groq\",\n keywords: [\"groq\"],\n envKey: \"GROQ_API_KEY\",\n displayName: \"Groq\",\n modelPrefix: \"groq\",\n litellmPrefix: \"groq\",\n skipPrefixes: [\"groq/\"],\n envExtras: [],\n isGateway: false,\n isLocal: false,\n detectByKeyPrefix: \"\",\n detectByBaseKeyword: \"\",\n defaultApiBase: \"https://api.groq.com/openai/v1\",\n defaultModels: [\"groq/openai/gpt-oss-120b\", \"groq/llama-3.1-8b-instant\"],\n stripModelPrefix: false,\n modelOverrides: [],\n logo: \"groq.svg\"\n }\n ]\n};\n","import type { ProviderCatalogPlugin } from \"@nextclaw/core\";\nimport { builtinProviderPlugin } from \"./builtin.js\";\n\nexport const BUILTIN_PROVIDER_PLUGINS: ProviderCatalogPlugin[] = [builtinProviderPlugin];\n","import {\n ProviderRegistry,\n type ProviderCatalogPlugin,\n type ProviderSpec\n} from \"@nextclaw/core\";\nimport { BUILTIN_PROVIDER_PLUGINS } from \"./plugins/index.js\";\n\nlet builtinProviderRegistry: ProviderRegistry | null = null;\n\nfunction getBuiltinProviderRegistry(): ProviderRegistry {\n builtinProviderRegistry ??= new ProviderRegistry(BUILTIN_PROVIDER_PLUGINS);\n return builtinProviderRegistry;\n}\n\nexport function listBuiltinProviderPlugins(): ProviderCatalogPlugin[] {\n return getBuiltinProviderRegistry().listProviderPlugins();\n}\n\nexport function listBuiltinProviders(): ProviderSpec[] {\n return getBuiltinProviderRegistry().listProviderSpecs();\n}\n\nexport function findBuiltinProviderByName(name: string): ProviderSpec | undefined {\n return getBuiltinProviderRegistry().findProviderByName(name);\n}\n\nexport function builtinProviderIds(): string[] {\n return listBuiltinProviders().map((provider) => provider.name);\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nextclaw/runtime",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.57-beta.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "NextClaw runtime assembly for builtin providers and channels.",
|
|
6
6
|
"type": "module",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dist"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@nextclaw/core": "0.12.
|
|
18
|
+
"@nextclaw/core": "0.12.25-beta.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/node": "^20.17.6",
|