@openclaw/kimi-provider 2026.9.6 → 2026.9.7

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 CHANGED
Binary file
@@ -26,7 +26,7 @@ var openclaw_plugin_default = {
26
26
  }
27
27
  } },
28
28
  modelCatalog: {
29
- "modelsDev": { "kimi": "kimi-for-coding" },
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
- "openRouter": { "provider": "moonshotai" },
118
+ "modelsDev": { "provider": "moonshotai" },
119
119
  "liteLLM": { "provider": "moonshot" }
120
120
  },
121
121
  "kimi-coding": {
122
- "openRouter": { "provider": "moonshotai" },
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-CTBTXcRa.mjs";
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-CTBTXcRa.mjs";
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 = findExplicitProviderConfig(ctx.config.models?.providers, PROVIDER_ID);
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-CTBTXcRa.mjs";
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
- function resolveKimiCodingDefaultModel() {
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 = resolveKimiCodingDefaultModel();
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 };
@@ -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-CTBTXcRa.mjs";
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) => wrapStreamMessageObjects(stream, rewriteKimiTaggedToolCallsInMessage));
203
- return wrapStreamMessageObjects(maybeStream, rewriteKimiTaggedToolCallsInMessage);
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) {
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "modelCatalog": {
33
33
  "modelsDev": {
34
- "kimi": "kimi-for-coding"
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
- "openRouter": {
135
+ "modelsDev": {
136
136
  "provider": "moonshotai"
137
137
  },
138
138
  "liteLLM": {
@@ -140,7 +140,7 @@
140
140
  }
141
141
  },
142
142
  "kimi-coding": {
143
- "openRouter": {
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.6",
3
+ "version": "2026.9.7",
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.6"
21
+ "pluginApi": ">=2026.9.7"
22
22
  },
23
23
  "build": {
24
- "openclawVersion": "2026.9.6",
24
+ "openclawVersion": "2026.9.7",
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.6"
43
+ "openclaw": ">=2026.9.7"
44
44
  },
45
45
  "peerDependenciesMeta": {
46
46
  "openclaw": {