openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
29 lines (28 loc) • 1.72 kB
JavaScript
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 };