@openclaw/moonshot-provider 2026.8.1-beta.2 → 2026.9.1-beta.1

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.js CHANGED
@@ -5,7 +5,7 @@ import { moonshotMediaUnderstandingProvider } from "./media-understanding-provid
5
5
  import { isMoonshotAlwaysThinkingModelId, isMoonshotK3NativeVideoRoute, resolveThinkingProfile } from "./provider-policy-api.js";
6
6
  import { wrapMoonshotStream } from "./native-video.js";
7
7
  import { applyMoonshotConfig, applyMoonshotConfigCn } from "./onboard.js";
8
- import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-DDPS6Tkx.js";
8
+ import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-CofLF1qp.js";
9
9
  import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth-api-key";
10
10
  import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
11
11
  import { buildOpenAICompatibleReplayPolicy } from "openclaw/plugin-sdk/provider-model-shared";
@@ -2,7 +2,7 @@ import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
2
2
  import { createWebSearchProviderContractFields } from "openclaw/plugin-sdk/provider-web-search-config-contract";
3
3
  //#region extensions/moonshot/src/kimi-web-search-provider.ts
4
4
  const KIMI_CREDENTIAL_PATH = "plugins.entries.moonshot.config.webSearch.apiKey";
5
- const loadKimiWebSearchProviderRuntime = createLazyRuntimeModule(() => import("./kimi-web-search-provider.runtime-37xzGdoQ.js"));
5
+ const loadKimiWebSearchProviderRuntime = createLazyRuntimeModule(() => import("./kimi-web-search-provider.runtime-_hv6i3xa.js"));
6
6
  const KimiSearchSchema = {
7
7
  type: "object",
8
8
  properties: {
@@ -1,7 +1,7 @@
1
1
  import { MOONSHOT_BASE_URL, MOONSHOT_CN_BASE_URL, isNativeMoonshotBaseUrl } from "./provider-catalog.js";
2
- import { createProviderHttpError, readProviderJsonObjectResponse } from "openclaw/plugin-sdk/provider-http";
3
2
  import { isRecord, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
4
- import { DEFAULT_SEARCH_COUNT, MAX_SEARCH_COUNT, buildSearchCacheKey, buildUnsupportedSearchFilterResponse, mergeScopedSearchConfig, readCachedSearchPayload, readConfiguredSecretString, readPositiveIntegerParam, readProviderEnvValue, readStringParam, resolveProviderWebSearchPluginConfig, resolveSearchCacheTtlMs, resolveSearchCount, resolveSearchTimeoutSeconds, setProviderWebSearchPluginConfigValue, withTrustedWebSearchEndpoint, wrapWebContent, writeCachedSearchPayload } from "openclaw/plugin-sdk/provider-web-search";
3
+ import { createProviderHttpError, readProviderJsonObjectResponse } from "openclaw/plugin-sdk/provider-http";
4
+ import { MAX_SEARCH_COUNT, buildSearchCacheKey, buildUnsupportedSearchFilterResponse, mergeScopedSearchConfig, readCachedSearchPayload, readConfiguredSecretString, readPositiveIntegerParam, readProviderEnvValue, readStringParam, resolveProviderWebSearchPluginConfig, resolveSearchCacheTtlMs, resolveSearchTimeoutSeconds, setProviderWebSearchPluginConfigValue, withTrustedWebSearchEndpoint, wrapWebContent, writeCachedSearchPayload } from "openclaw/plugin-sdk/provider-web-search";
5
5
  //#region extensions/moonshot/src/kimi-web-search-provider.runtime.ts
6
6
  const DEFAULT_KIMI_BASE_URL = MOONSHOT_BASE_URL;
7
7
  const DEFAULT_KIMI_SEARCH_MODEL = "kimi-k2.6";
@@ -161,13 +161,10 @@ async function runKimiSearch(params) {
161
161
  grounded: hasGroundingEvidence
162
162
  };
163
163
  }
164
- return {
165
- content: "Search completed but no final answer was produced.",
166
- citations: [...collectedCitations],
167
- grounded: hasGroundingEvidence
168
- };
164
+ throw new Error("Kimi web search exhausted its tool-call rounds without producing a final answer. Retry the query or choose another search provider.");
169
165
  }
170
166
  async function executeKimiWebSearchProviderTool(ctx, args, opts) {
167
+ opts?.signal?.throwIfAborted();
171
168
  const searchConfig = mergeScopedSearchConfig(ctx.searchConfig, "kimi", resolveProviderWebSearchPluginConfig(ctx.config, "moonshot"));
172
169
  const unsupportedResponse = buildUnsupportedSearchFilterResponse(args, "kimi");
173
170
  if (unsupportedResponse) return unsupportedResponse;
@@ -179,16 +176,15 @@ async function executeKimiWebSearchProviderTool(ctx, args, opts) {
179
176
  docs: "https://docs.openclaw.ai/tools/web"
180
177
  };
181
178
  const query = readStringParam(args, "query", { required: true });
182
- const count = readPositiveIntegerParam(args, "count", {
179
+ readPositiveIntegerParam(args, "count", {
183
180
  max: MAX_SEARCH_COUNT,
184
181
  message: `count must be an integer from 1 to ${MAX_SEARCH_COUNT}.`
185
- }) ?? searchConfig?.maxResults ?? void 0;
182
+ });
186
183
  const model = resolveKimiModel(kimiConfig);
187
184
  const baseUrl = resolveKimiBaseUrl(kimiConfig, ctx.config);
188
185
  const cacheKey = buildSearchCacheKey([
189
186
  "kimi",
190
187
  query,
191
- resolveSearchCount(count, DEFAULT_SEARCH_COUNT),
192
188
  baseUrl,
193
189
  model
194
190
  ]);
@@ -203,6 +199,7 @@ async function executeKimiWebSearchProviderTool(ctx, args, opts) {
203
199
  timeoutSeconds: resolveSearchTimeoutSeconds(searchConfig),
204
200
  signal: opts?.signal
205
201
  });
202
+ opts?.signal?.throwIfAborted();
206
203
  if (!result.grounded) return {
207
204
  error: "kimi_web_search_ungrounded",
208
205
  message: "Kimi returned a chat completion without native web-search grounding. Retry the query, switch to a structured provider such as Brave, or use web_fetch/browser for a specific URL.",
@@ -1,56 +1,19 @@
1
1
  import { t as openclaw_plugin_default } from "./openclaw.plugin-BLi5Z-ZR.js";
2
2
  import { MOONSHOT_BASE_URL } from "./provider-catalog.js";
3
- import { buildOpenAiCompatibleVideoRequestBody, coerceOpenAiCompatibleVideoText, describeImageWithModel, describeImagesWithModel, resolveMediaUnderstandingString } from "openclaw/plugin-sdk/media-understanding";
4
- import { assertOkOrThrowHttpError, postJsonRequest, readProviderJsonResponse, resolveProviderHttpRequestConfig } from "openclaw/plugin-sdk/provider-http";
3
+ import { describeImageWithModel, describeImagesWithModel, describeOpenAiCompatibleVideo } from "openclaw/plugin-sdk/media-understanding";
5
4
  //#region extensions/moonshot/media-understanding-provider.ts
6
5
  const DEFAULT_MOONSHOT_IMAGE_MODEL = openclaw_plugin_default.mediaUnderstandingProviderMetadata.moonshot.defaultModels.image;
7
6
  const DEFAULT_MOONSHOT_VIDEO_MODEL = openclaw_plugin_default.mediaUnderstandingProviderMetadata.moonshot.defaultModels.video;
8
7
  const DEFAULT_MOONSHOT_VIDEO_PROMPT = "Describe the video.";
9
8
  async function describeMoonshotVideo(params) {
10
- const fetchFn = params.fetchFn ?? fetch;
11
- const model = resolveMediaUnderstandingString(params.model, DEFAULT_MOONSHOT_VIDEO_MODEL);
12
- const mime = resolveMediaUnderstandingString(params.mime, "video/mp4");
13
- const prompt = resolveMediaUnderstandingString(params.prompt, DEFAULT_MOONSHOT_VIDEO_PROMPT);
14
- const { baseUrl, allowPrivateNetwork, headers, dispatcherPolicy } = resolveProviderHttpRequestConfig({
15
- baseUrl: params.baseUrl,
9
+ return describeOpenAiCompatibleVideo({
10
+ ...params,
16
11
  defaultBaseUrl: MOONSHOT_BASE_URL,
17
- headers: params.headers,
18
- request: params.request,
19
- defaultHeaders: {
20
- "content-type": "application/json",
21
- authorization: `Bearer ${params.apiKey}`
22
- },
12
+ defaultModel: DEFAULT_MOONSHOT_VIDEO_MODEL,
13
+ defaultPrompt: DEFAULT_MOONSHOT_VIDEO_PROMPT,
23
14
  provider: "moonshot",
24
- api: "openai-completions",
25
- capability: "video",
26
- transport: "media-understanding"
15
+ providerLabel: "Moonshot"
27
16
  });
28
- const { response: res, release } = await postJsonRequest({
29
- url: `${baseUrl}/chat/completions`,
30
- headers,
31
- body: buildOpenAiCompatibleVideoRequestBody({
32
- model,
33
- prompt,
34
- mime,
35
- buffer: params.buffer
36
- }),
37
- timeoutMs: params.timeoutMs,
38
- ...params.signal ? { signal: params.signal } : {},
39
- fetchFn,
40
- allowPrivateNetwork,
41
- dispatcherPolicy
42
- });
43
- try {
44
- await assertOkOrThrowHttpError(res, "Moonshot video description failed");
45
- const text = coerceOpenAiCompatibleVideoText(await readProviderJsonResponse(res, "Moonshot video description failed"));
46
- if (!text) throw new Error("Moonshot video description response missing content");
47
- return {
48
- text,
49
- model
50
- };
51
- } finally {
52
- await release();
53
- }
54
17
  }
55
18
  const moonshotMediaUnderstandingProvider = {
56
19
  id: "moonshot",
@@ -1,29 +1,3 @@
1
- import { createWebSearchProviderContractFields } from "openclaw/plugin-sdk/provider-web-search-config-contract";
2
- //#region extensions/moonshot/web-search-contract-api.ts
3
- function createKimiWebSearchProvider() {
4
- const credentialPath = "plugins.entries.moonshot.config.webSearch.apiKey";
5
- return {
6
- id: "kimi",
7
- label: "Kimi (Moonshot)",
8
- hint: "Requires Moonshot / Kimi API key · Moonshot web search",
9
- onboardingScopes: ["text-inference"],
10
- credentialLabel: "Moonshot / Kimi API key",
11
- envVars: ["KIMI_API_KEY", "MOONSHOT_API_KEY"],
12
- placeholder: "sk-...",
13
- signupUrl: "https://platform.moonshot.cn/",
14
- docsUrl: "https://docs.openclaw.ai/tools/web",
15
- autoDetectOrder: 40,
16
- credentialPath,
17
- ...createWebSearchProviderContractFields({
18
- credentialPath,
19
- searchCredential: {
20
- type: "scoped",
21
- scopeId: "kimi"
22
- },
23
- configuredCredential: { pluginId: "moonshot" }
24
- }),
25
- createTool: () => null
26
- };
27
- }
28
- //#endregion
1
+ import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-CofLF1qp.js";
2
+ import "./web-search-provider.js";
29
3
  export { createKimiWebSearchProvider };
@@ -1,2 +1,2 @@
1
- import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-DDPS6Tkx.js";
1
+ import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-CofLF1qp.js";
2
2
  export { createKimiWebSearchProvider };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/moonshot-provider",
3
- "version": "2026.8.1-beta.2",
3
+ "version": "2026.9.1-beta.1",
4
4
  "description": "OpenClaw Moonshot provider plugin",
5
5
  "type": "module",
6
6
  "openclaw": {
@@ -14,10 +14,10 @@
14
14
  "minHostVersion": ">=2026.6.9"
15
15
  },
16
16
  "compat": {
17
- "pluginApi": ">=2026.8.1-beta.2"
17
+ "pluginApi": ">=2026.9.1-beta.1"
18
18
  },
19
19
  "build": {
20
- "openclawVersion": "2026.8.1-beta.2",
20
+ "openclawVersion": "2026.9.1-beta.1",
21
21
  "bundledDist": false
22
22
  },
23
23
  "release": {
@@ -38,7 +38,7 @@
38
38
  "README.md"
39
39
  ],
40
40
  "peerDependencies": {
41
- "openclaw": ">=2026.8.1-beta.2"
41
+ "openclaw": ">=2026.9.1-beta.1"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "openclaw": {