@openclaw/kimi-provider 2026.9.6 → 2026.9.8
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/assets/icon.png +0 -0
- package/dist/.setup/{provider-catalog-CTBTXcRa.mjs → provider-catalog-Bc73oFLX.mjs} +3 -3
- package/dist/api.js +1 -1
- package/dist/index.js +3 -8
- package/dist/onboard.js +3 -9
- package/dist/provider-catalog.js +1 -1
- package/dist/stream.js +3 -40
- package/openclaw.plugin.json +3 -3
- package/package.json +4 -4
package/assets/icon.png
CHANGED
|
Binary file
|
|
@@ -26,7 +26,7 @@ var openclaw_plugin_default = {
|
|
|
26
26
|
}
|
|
27
27
|
} },
|
|
28
28
|
modelCatalog: {
|
|
29
|
-
"modelsDev": { "kimi": "kimi-
|
|
29
|
+
"modelsDev": { "kimi": "kimi-code-plan-cn" },
|
|
30
30
|
"providers": { "kimi": {
|
|
31
31
|
"baseUrl": "https://api.kimi.com/coding/",
|
|
32
32
|
"api": "anthropic-messages",
|
|
@@ -115,11 +115,11 @@ var openclaw_plugin_default = {
|
|
|
115
115
|
},
|
|
116
116
|
modelPricing: { "providers": {
|
|
117
117
|
"kimi": {
|
|
118
|
-
"
|
|
118
|
+
"modelsDev": { "provider": "moonshotai" },
|
|
119
119
|
"liteLLM": { "provider": "moonshot" }
|
|
120
120
|
},
|
|
121
121
|
"kimi-coding": {
|
|
122
|
-
"
|
|
122
|
+
"modelsDev": { "provider": "moonshotai" },
|
|
123
123
|
"liteLLM": { "provider": "moonshot" }
|
|
124
124
|
}
|
|
125
125
|
} },
|
package/dist/api.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, r as KIMI_CODING_LEGACY_MODEL_IDS, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-
|
|
1
|
+
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, r as KIMI_CODING_LEGACY_MODEL_IDS, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-Bc73oFLX.mjs";
|
|
2
2
|
import { KIMI_CODING_MODEL_REF, KIMI_MODEL_REF } from "./onboard.js";
|
|
3
3
|
export { KIMI_CODING_BASE_URL, KIMI_CODING_DEFAULT_MODEL_ID, KIMI_CODING_LEGACY_MODEL_IDS, KIMI_CODING_MODEL_REF, KIMI_MODEL_REF, buildKimiCodingProvider, normalizeKimiCodingModelId };
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, o as openclaw_plugin_default } from "./.setup/provider-catalog-
|
|
1
|
+
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, o as openclaw_plugin_default } from "./.setup/provider-catalog-Bc73oFLX.mjs";
|
|
2
2
|
import { KIMI_CODING_MODEL_REF, applyKimiCodeConfig } from "./onboard.js";
|
|
3
3
|
import { isKimiK3ModelId, resolveThinkingProfile } from "./provider-policy-api.js";
|
|
4
4
|
import { KIMI_REPLAY_POLICY } from "./replay-policy.js";
|
|
5
5
|
import { wrapKimiProviderStream } from "./stream.js";
|
|
6
|
+
import { findNormalizedProviderValue } from "openclaw/plugin-sdk/provider-auth";
|
|
6
7
|
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
|
|
7
8
|
import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared";
|
|
8
9
|
import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
@@ -10,12 +11,6 @@ import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-co
|
|
|
10
11
|
const PLUGIN_ID = "kimi";
|
|
11
12
|
const PROVIDER_ID = "kimi";
|
|
12
13
|
const PROVIDER_ALIASES = ["kimi-code", "kimi-coding"];
|
|
13
|
-
function findExplicitProviderConfig(providers, providerId) {
|
|
14
|
-
if (!providers) return;
|
|
15
|
-
const normalizedProviderId = normalizeProviderId(providerId);
|
|
16
|
-
const match = Object.entries(providers).find(([configuredProviderId]) => normalizeProviderId(configuredProviderId) === normalizedProviderId);
|
|
17
|
-
return isRecord(match?.[1]) ? match[1] : void 0;
|
|
18
|
-
}
|
|
19
14
|
var kimi_coding_default = defineSingleProviderPluginEntry({
|
|
20
15
|
id: PLUGIN_ID,
|
|
21
16
|
name: "Kimi Provider",
|
|
@@ -44,7 +39,7 @@ var kimi_coding_default = defineSingleProviderPluginEntry({
|
|
|
44
39
|
run: async (ctx) => {
|
|
45
40
|
const apiKey = ctx.resolveProviderApiKey(PROVIDER_ID).apiKey;
|
|
46
41
|
if (!apiKey) return null;
|
|
47
|
-
const explicitProvider =
|
|
42
|
+
const explicitProvider = findNormalizedProviderValue(ctx.config.models?.providers, PROVIDER_ID);
|
|
48
43
|
const builtInProvider = buildKimiCodingProvider();
|
|
49
44
|
const explicitBaseUrl = normalizeOptionalString(explicitProvider?.baseUrl) ?? "";
|
|
50
45
|
const explicitHeaders = isRecord(explicitProvider?.headers) ? explicitProvider.headers : void 0;
|
package/dist/onboard.js
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import { i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-
|
|
1
|
+
import { i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-Bc73oFLX.mjs";
|
|
2
2
|
import { createDefaultModelsPresetAppliers } from "openclaw/plugin-sdk/provider-onboard";
|
|
3
3
|
//#region extensions/kimi-coding/onboard.ts
|
|
4
4
|
const KIMI_MODEL_REF = `kimi/${KIMI_CODING_DEFAULT_MODEL_ID}`;
|
|
5
5
|
const KIMI_CODING_MODEL_REF = KIMI_MODEL_REF;
|
|
6
|
-
|
|
7
|
-
return buildKimiCodingProvider().models.find((model) => model.id === KIMI_CODING_DEFAULT_MODEL_ID);
|
|
8
|
-
}
|
|
9
|
-
const kimiCodingPresetAppliers = createDefaultModelsPresetAppliers({
|
|
6
|
+
const { applyConfig: applyKimiCodeConfig } = createDefaultModelsPresetAppliers({
|
|
10
7
|
primaryModelRef: KIMI_MODEL_REF,
|
|
11
8
|
resolveParams: (cfg) => {
|
|
12
|
-
const defaultModel =
|
|
9
|
+
const defaultModel = buildKimiCodingProvider().models.find(({ id }) => id === KIMI_CODING_DEFAULT_MODEL_ID);
|
|
13
10
|
if (!defaultModel) return null;
|
|
14
11
|
return {
|
|
15
12
|
providerId: "kimi",
|
|
@@ -24,8 +21,5 @@ const kimiCodingPresetAppliers = createDefaultModelsPresetAppliers({
|
|
|
24
21
|
};
|
|
25
22
|
}
|
|
26
23
|
});
|
|
27
|
-
function applyKimiCodeConfig(cfg) {
|
|
28
|
-
return kimiCodingPresetAppliers.applyConfig(cfg);
|
|
29
|
-
}
|
|
30
24
|
//#endregion
|
|
31
25
|
export { KIMI_CODING_MODEL_REF, KIMI_MODEL_REF, applyKimiCodeConfig };
|
package/dist/provider-catalog.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, r as KIMI_CODING_LEGACY_MODEL_IDS, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-
|
|
1
|
+
import { a as normalizeKimiCodingModelId, i as buildKimiCodingProvider, n as KIMI_CODING_DEFAULT_MODEL_ID, r as KIMI_CODING_LEGACY_MODEL_IDS, t as KIMI_CODING_BASE_URL } from "./.setup/provider-catalog-Bc73oFLX.mjs";
|
|
2
2
|
export { KIMI_CODING_BASE_URL, KIMI_CODING_DEFAULT_MODEL_ID, KIMI_CODING_LEGACY_MODEL_IDS, buildKimiCodingProvider, normalizeKimiCodingModelId };
|
package/dist/stream.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isKimiK3ModelId } from "./provider-policy-api.js";
|
|
2
2
|
import { isRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { streamSimple } from "openclaw/plugin-sdk/llm";
|
|
4
|
-
import { normalizeOpenAICompatibleReasoningReplay, streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared";
|
|
4
|
+
import { normalizeOpenAICompatibleReasoningReplay, streamWithPayloadPatch, transformProviderStreamMessages } from "openclaw/plugin-sdk/provider-stream-shared";
|
|
5
5
|
//#region extensions/kimi-coding/stream.ts
|
|
6
6
|
const TOOL_CALLS_SECTION_BEGIN = "<|tool_calls_section_begin|>";
|
|
7
7
|
const TOOL_CALLS_SECTION_END = "<|tool_calls_section_end|>";
|
|
@@ -158,49 +158,12 @@ function rewriteKimiTaggedToolCallsInMessage(message) {
|
|
|
158
158
|
const typedMessage = message;
|
|
159
159
|
if (typedMessage.stopReason === "stop") typedMessage.stopReason = "toolUse";
|
|
160
160
|
}
|
|
161
|
-
function transformKimiStreamEvent(value, transformMessage) {
|
|
162
|
-
const event = value && typeof value === "object" ? value : void 0;
|
|
163
|
-
if (!event) return;
|
|
164
|
-
for (const message of [event.partial, event.message]) transformMessage(message);
|
|
165
|
-
}
|
|
166
|
-
function wrapStreamMessageObjects(stream, transformMessage) {
|
|
167
|
-
const readFinalMessage = stream.result.bind(stream);
|
|
168
|
-
Object.assign(stream, { async result() {
|
|
169
|
-
const message = await readFinalMessage();
|
|
170
|
-
transformMessage(message);
|
|
171
|
-
return message;
|
|
172
|
-
} });
|
|
173
|
-
const createIterator = stream[Symbol.asyncIterator].bind(stream);
|
|
174
|
-
stream[Symbol.asyncIterator] = () => {
|
|
175
|
-
const iterator = createIterator();
|
|
176
|
-
return {
|
|
177
|
-
async next() {
|
|
178
|
-
const step = await iterator.next();
|
|
179
|
-
if (!step.done) transformKimiStreamEvent(step.value, transformMessage);
|
|
180
|
-
return step;
|
|
181
|
-
},
|
|
182
|
-
async return(value) {
|
|
183
|
-
return iterator.return?.(value) ?? {
|
|
184
|
-
done: true,
|
|
185
|
-
value: void 0
|
|
186
|
-
};
|
|
187
|
-
},
|
|
188
|
-
async throw(error) {
|
|
189
|
-
return iterator.throw?.(error) ?? {
|
|
190
|
-
done: true,
|
|
191
|
-
value: void 0
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
};
|
|
196
|
-
return stream;
|
|
197
|
-
}
|
|
198
161
|
function createKimiToolCallMarkupWrapper(baseStreamFn) {
|
|
199
162
|
const underlying = baseStreamFn ?? streamSimple;
|
|
200
163
|
return (model, context, options) => {
|
|
201
164
|
const maybeStream = underlying(model, context, options);
|
|
202
|
-
if (maybeStream && typeof maybeStream === "object" && "then" in maybeStream) return Promise.resolve(maybeStream).then((stream) =>
|
|
203
|
-
return
|
|
165
|
+
if (maybeStream && typeof maybeStream === "object" && "then" in maybeStream) return Promise.resolve(maybeStream).then((stream) => transformProviderStreamMessages(stream, rewriteKimiTaggedToolCallsInMessage));
|
|
166
|
+
return transformProviderStreamMessages(maybeStream, rewriteKimiTaggedToolCallsInMessage);
|
|
204
167
|
};
|
|
205
168
|
}
|
|
206
169
|
function wrapKimiProviderStream(ctx) {
|
package/openclaw.plugin.json
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"modelCatalog": {
|
|
33
33
|
"modelsDev": {
|
|
34
|
-
"kimi": "kimi-
|
|
34
|
+
"kimi": "kimi-code-plan-cn"
|
|
35
35
|
},
|
|
36
36
|
"providers": {
|
|
37
37
|
"kimi": {
|
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
"modelPricing": {
|
|
133
133
|
"providers": {
|
|
134
134
|
"kimi": {
|
|
135
|
-
"
|
|
135
|
+
"modelsDev": {
|
|
136
136
|
"provider": "moonshotai"
|
|
137
137
|
},
|
|
138
138
|
"liteLLM": {
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
}
|
|
141
141
|
},
|
|
142
142
|
"kimi-coding": {
|
|
143
|
-
"
|
|
143
|
+
"modelsDev": {
|
|
144
144
|
"provider": "moonshotai"
|
|
145
145
|
},
|
|
146
146
|
"liteLLM": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/kimi-provider",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.8",
|
|
4
4
|
"description": "OpenClaw Kimi provider plugin.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"minHostVersion": ">=2026.6.8"
|
|
19
19
|
},
|
|
20
20
|
"compat": {
|
|
21
|
-
"pluginApi": ">=2026.9.
|
|
21
|
+
"pluginApi": ">=2026.9.8"
|
|
22
22
|
},
|
|
23
23
|
"build": {
|
|
24
|
-
"openclawVersion": "2026.9.
|
|
24
|
+
"openclawVersion": "2026.9.8",
|
|
25
25
|
"bundledDist": false
|
|
26
26
|
},
|
|
27
27
|
"release": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"assets/activity.svg"
|
|
41
41
|
],
|
|
42
42
|
"peerDependencies": {
|
|
43
|
-
"openclaw": ">=2026.9.
|
|
43
|
+
"openclaw": ">=2026.9.8"
|
|
44
44
|
},
|
|
45
45
|
"peerDependenciesMeta": {
|
|
46
46
|
"openclaw": {
|