@openclaw/moonshot-provider 2026.8.1-beta.2 → 2026.8.1-beta.3
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 +1 -1
- package/dist/{kimi-web-search-provider-DDPS6Tkx.js → kimi-web-search-provider-CofLF1qp.js} +1 -1
- package/dist/{kimi-web-search-provider.runtime-37xzGdoQ.js → kimi-web-search-provider.runtime-_hv6i3xa.js} +7 -10
- package/dist/media-understanding-provider.js +6 -43
- package/dist/web-search-provider.js +1 -1
- package/package.json +4 -4
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-
|
|
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-
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
})
|
|
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 {
|
|
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
|
-
|
|
11
|
-
|
|
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
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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,2 +1,2 @@
|
|
|
1
|
-
import { t as createKimiWebSearchProvider } from "./kimi-web-search-provider-
|
|
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.
|
|
3
|
+
"version": "2026.8.1-beta.3",
|
|
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.
|
|
17
|
+
"pluginApi": ">=2026.8.1-beta.3"
|
|
18
18
|
},
|
|
19
19
|
"build": {
|
|
20
|
-
"openclawVersion": "2026.8.1-beta.
|
|
20
|
+
"openclawVersion": "2026.8.1-beta.3",
|
|
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.
|
|
41
|
+
"openclaw": ">=2026.8.1-beta.3"
|
|
42
42
|
},
|
|
43
43
|
"peerDependenciesMeta": {
|
|
44
44
|
"openclaw": {
|