UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

29 lines (28 loc) • 1.72 kB
import { CUSTOM_LOCAL_AUTH_MARKER, hasConfiguredSecretInput, normalizeOptionalSecretInput } from "openclaw/plugin-sdk/provider-auth"; import { asOptionalRecord } from "openclaw/plugin-sdk/string-coerce-runtime"; //#region extensions/lmstudio/src/defaults.ts /** Shared LM Studio defaults used by setup, runtime discovery, and embeddings paths. */ const LMSTUDIO_DEFAULT_BASE_URL = "http://localhost:1234"; const LMSTUDIO_DEFAULT_API_KEY_ENV_VAR = "LM_API_TOKEN"; const LMSTUDIO_LOCAL_API_KEY_PLACEHOLDER = "lmstudio-local"; const LMSTUDIO_DEFAULT_LOAD_CONTEXT_LENGTH = 64e3; const LMSTUDIO_PROVIDER_ID = "lmstudio"; //#endregion //#region extensions/lmstudio/src/provider-auth.ts function hasLmstudioAuthorizationHeader(headers) { return Object.entries(asOptionalRecord(headers) ?? {}).some(([name, value]) => name.trim().toLowerCase() === "authorization" && hasConfiguredSecretInput(value)); } function resolveLmstudioProviderAuthMode(apiKey) { const normalized = normalizeOptionalSecretInput(apiKey); if (normalized !== void 0) { const trimmed = normalized.trim(); if (!trimmed || trimmed === "lmstudio-local" || trimmed === CUSTOM_LOCAL_AUTH_MARKER) return; return "api-key"; } return hasConfiguredSecretInput(apiKey) ? "api-key" : void 0; } function shouldUseLmstudioApiKeyPlaceholder(params) { return params.hasModels && !params.resolvedApiKey && !params.hasAuthorizationHeader; } //#endregion export { LMSTUDIO_DEFAULT_BASE_URL as a, LMSTUDIO_PROVIDER_ID as c, LMSTUDIO_DEFAULT_API_KEY_ENV_VAR as i, resolveLmstudioProviderAuthMode as n, LMSTUDIO_DEFAULT_LOAD_CONTEXT_LENGTH as o, shouldUseLmstudioApiKeyPlaceholder as r, LMSTUDIO_LOCAL_API_KEY_PLACEHOLDER as s, hasLmstudioAuthorizationHeader as t };