





















@@ -1,8 +1,9 @@
1-import { definePluginEntry, type ProviderThinkingProfile } from "openclaw/plugin-sdk/plugin-entry";
1+import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
22import { createProviderApiKeyAuthMethod } from "openclaw/plugin-sdk/provider-auth-api-key";
33import {
44matchesExactOrPrefix,
55PASSTHROUGH_GEMINI_REPLAY_HOOKS,
6+resolveClaudeThinkingProfile,
67} from "openclaw/plugin-sdk/provider-model-shared";
78import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime";
89import { applyOpencodeZenConfig, OPENCODE_ZEN_DEFAULT_MODEL } from "./api.js";
@@ -17,20 +18,6 @@ const OPENCODE_SHARED_WIZARD_GROUP = {
1718groupLabel: "OpenCode",
1819groupHint: OPENCODE_SHARED_HINT,
1920} as const;
20-const ANTHROPIC_OPUS_47_MODEL_PREFIXES = ["claude-opus-4-7", "claude-opus-4.7"] as const;
21-const ANTHROPIC_ADAPTIVE_MODEL_PREFIXES = [
22-"claude-opus-4-6",
23-"claude-opus-4.6",
24-"claude-sonnet-4-6",
25-"claude-sonnet-4.6",
26-] as const;
27-const BASE_ANTHROPIC_THINKING_LEVELS = [
28-{ id: "off" },
29-{ id: "minimal" },
30-{ id: "low" },
31-{ id: "medium" },
32-{ id: "high" },
33-] as const satisfies ProviderThinkingProfile["levels"];
34213522function isModernOpencodeModel(modelId: string): boolean {
3623const lower = normalizeLowercaseStringOrEmpty(modelId);
@@ -40,32 +27,6 @@ function isModernOpencodeModel(modelId: string): boolean {
4027return !matchesExactOrPrefix(lower, MINIMAX_MODERN_MODEL_MATCHERS);
4128}
422943-function matchesAnyPrefix(modelId: string, prefixes: readonly string[]): boolean {
44-const lower = normalizeLowercaseStringOrEmpty(modelId);
45-return prefixes.some((prefix) => lower.startsWith(prefix));
46-}
47-48-function resolveOpencodeThinkingProfile(modelId: string): ProviderThinkingProfile {
49-if (matchesAnyPrefix(modelId, ANTHROPIC_OPUS_47_MODEL_PREFIXES)) {
50-return {
51-levels: [
52- ...BASE_ANTHROPIC_THINKING_LEVELS,
53-{ id: "xhigh" },
54-{ id: "adaptive" },
55-{ id: "max" },
56-],
57-defaultLevel: "off",
58-};
59-}
60-if (matchesAnyPrefix(modelId, ANTHROPIC_ADAPTIVE_MODEL_PREFIXES)) {
61-return {
62-levels: [...BASE_ANTHROPIC_THINKING_LEVELS, { id: "adaptive" }],
63-defaultLevel: "adaptive",
64-};
65-}
66-return { levels: BASE_ANTHROPIC_THINKING_LEVELS };
67-}
68-6930export default definePluginEntry({
7031id: PROVIDER_ID,
7132name: "OpenCode Zen Provider",
@@ -106,7 +67,7 @@ export default definePluginEntry({
10667],
10768 ...PASSTHROUGH_GEMINI_REPLAY_HOOKS,
10869isModernModelRef: ({ modelId }) => isModernOpencodeModel(modelId),
109-resolveThinkingProfile: ({ modelId }) => resolveOpencodeThinkingProfile(modelId),
70+resolveThinkingProfile: ({ modelId }) => resolveClaudeThinkingProfile(modelId),
11071});
11172api.registerMediaUnderstandingProvider(opencodeMediaUnderstandingProvider);
11273},
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。