diff --git a/docs/.generated/plugin-sdk-api-baseline.sha256 b/docs/.generated/plugin-sdk-api-baseline.sha256 index eafa67247ca..5b5b09244c4 100644 --- a/docs/.generated/plugin-sdk-api-baseline.sha256 +++ b/docs/.generated/plugin-sdk-api-baseline.sha256 @@ -1,2 +1,2 @@ -c1d52cab340bc37d6750de609ba565598cbfc883291786092b0bfebec9d0c926 plugin-sdk-api-baseline.json -d03fa4539c6a2f0a138da3c658543315ad56648c3fd375591d09253d5db09298 plugin-sdk-api-baseline.jsonl +75857675ae94b675f1398444330a8404a4551f59bf7179deabba9884c194b2f8 plugin-sdk-api-baseline.json +1f237dbd11ba7f1d25f6371cb4c5f78b288bca0b92bc397624faaf514f12ea9f plugin-sdk-api-baseline.jsonl diff --git a/extensions/anthropic/stream-wrappers.ts b/extensions/anthropic/stream-wrappers.ts index 1283484b1c6..64c8e522a83 100644 --- a/extensions/anthropic/stream-wrappers.ts +++ b/extensions/anthropic/stream-wrappers.ts @@ -8,7 +8,11 @@ import { streamWithPayloadPatch, } from "openclaw/plugin-sdk/provider-stream-shared"; import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env"; -import { normalizeLowercaseStringOrEmpty, readStringValue } from "openclaw/plugin-sdk/text-runtime"; +import { + normalizeFastMode, + normalizeLowercaseStringOrEmpty, + readStringValue, +} from "openclaw/plugin-sdk/text-runtime"; const log = createSubsystemLogger("anthropic-stream"); @@ -64,23 +68,6 @@ function resolveAnthropicFastServiceTier(enabled: boolean): AnthropicServiceTier return enabled ? "auto" : "standard_only"; } -function normalizeFastMode(raw?: string | boolean | null): boolean | undefined { - if (typeof raw === "boolean") { - return raw; - } - if (!raw) { - return undefined; - } - const key = normalizeLowercaseStringOrEmpty(raw); - if (["off", "false", "no", "0", "disable", "disabled", "normal"].includes(key)) { - return false; - } - if (["on", "true", "yes", "1", "enable", "enabled", "fast"].includes(key)) { - return true; - } - return undefined; -} - function normalizeAnthropicServiceTier(value: unknown): AnthropicServiceTier | undefined { if (typeof value !== "string") { return undefined; diff --git a/src/auto-reply/thinking.shared.ts b/src/auto-reply/thinking.shared.ts index 57c171e97db..0c2492f5be5 100644 --- a/src/auto-reply/thinking.shared.ts +++ b/src/auto-reply/thinking.shared.ts @@ -1,8 +1,11 @@ import { + normalizeFastMode, normalizeLowercaseStringOrEmpty, normalizeOptionalLowercaseString, } from "../shared/string-coerce.js"; +export { normalizeFastMode }; + export type ThinkLevel = "off" | "minimal" | "low" | "medium" | "high" | "xhigh" | "adaptive"; export type VerboseLevel = "off" | "on" | "full"; export type TraceLevel = "off" | "on" | "raw"; @@ -172,23 +175,6 @@ export function resolveResponseUsageMode(raw?: string | null): UsageDisplayLevel return normalizeUsageDisplay(raw) ?? "off"; } -export function normalizeFastMode(raw?: string | boolean | null): boolean | undefined { - if (typeof raw === "boolean") { - return raw; - } - if (!raw) { - return undefined; - } - const key = normalizeLowercaseStringOrEmpty(raw); - if (["off", "false", "no", "0", "disable", "disabled", "normal"].includes(key)) { - return false; - } - if (["on", "true", "yes", "1", "enable", "enabled", "fast"].includes(key)) { - return true; - } - return undefined; -} - export function normalizeElevatedLevel(raw?: string | null): ElevatedLevel | undefined { if (!raw) { return undefined; diff --git a/src/shared/string-coerce.ts b/src/shared/string-coerce.ts index cee065a07ba..4c10d181691 100644 --- a/src/shared/string-coerce.ts +++ b/src/shared/string-coerce.ts @@ -32,6 +32,23 @@ export function normalizeLowercaseStringOrEmpty(value: unknown): string { return normalizeOptionalLowercaseString(value) ?? ""; } +export function normalizeFastMode(raw?: string | boolean | null): boolean | undefined { + if (typeof raw === "boolean") { + return raw; + } + if (!raw) { + return undefined; + } + const key = normalizeLowercaseStringOrEmpty(raw); + if (["off", "false", "no", "0", "disable", "disabled", "normal"].includes(key)) { + return false; + } + if (["on", "true", "yes", "1", "enable", "enabled", "fast"].includes(key)) { + return true; + } + return undefined; +} + export function lowercasePreservingWhitespace(value: string): string { return value.toLowerCase(); }