UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

82 lines (81 loc) 3.72 kB
import { c as normalizeOptionalString } from "./string-coerce-mnp54Vah.js"; import { w as hasSessionAutoModelFallbackProvenance } from "./agent-scope-MrLta7Pq.js"; import { r as resolveSessionParentSessionKey } from "./session-conversation-Bg8yraqi.js"; import { a as normalizeModelRef, i as modelKey } from "./model-selection-normalize-roKDxQ9_.js"; import { u as resolvePersistedOverrideModelRef } from "./model-selection-CA_65iXi.js"; //#region src/auto-reply/reply/stored-model-override.ts function resolveParentSessionKeyCandidate(params) { const explicit = normalizeOptionalString(params.parentSessionKey); if (explicit && explicit !== params.sessionKey) return explicit; const derived = resolveSessionParentSessionKey(params.sessionKey); if (derived && derived !== params.sessionKey) return derived; return null; } /** Resolves the persisted model override visible to the current session. */ function resolveStoredModelOverride(params) { const direct = resolvePersistedOverrideModelRef({ defaultProvider: params.defaultProvider, overrideProvider: params.sessionEntry?.providerOverride, overrideModel: params.sessionEntry?.modelOverride }); if (direct) return { ...direct, source: "session" }; const parentKey = resolveParentSessionKeyCandidate({ sessionKey: params.sessionKey, parentSessionKey: params.parentSessionKey }); if (!parentKey || !params.sessionStore) return null; const parentEntry = params.sessionStore[parentKey]; const parentOverride = resolvePersistedOverrideModelRef({ defaultProvider: params.defaultProvider, overrideProvider: parentEntry?.providerOverride, overrideModel: parentEntry?.modelOverride }); if (!parentOverride) return null; return { ...parentOverride, source: "parent" }; } function resolveModelRefKey(params) { const ref = resolvePersistedOverrideModelRef(params); if (!ref) return null; const normalized = normalizeModelRef(ref.provider, ref.model); return modelKey(normalized.provider, normalized.model); } /** Detects heartbeat auto-fallback overrides that no longer match the primary model. */ function isStaleHeartbeatAutoFallbackOverride(params) { if (params.isHeartbeat !== true || params.hasResolvedHeartbeatModelOverride === true) return false; if (params.storedOverride?.source !== "session") return false; const entry = params.sessionEntry; const recoveredAutoFallbackOverride = entry !== void 0 && entry.modelOverrideSource === void 0 && hasSessionAutoModelFallbackProvenance(entry); if (entry?.modelOverrideSource !== "auto" && !recoveredAutoFallbackOverride) return false; if (!entry) return false; const primaryKey = resolveModelRefKey({ defaultProvider: params.defaultProvider, overrideProvider: params.primaryProvider ?? params.defaultProvider, overrideModel: params.primaryModel ?? params.defaultModel }); if (!primaryKey) return false; const originKey = resolveModelRefKey({ defaultProvider: params.defaultProvider, overrideProvider: entry.modelOverrideFallbackOriginProvider, overrideModel: entry.modelOverrideFallbackOriginModel }); if (originKey) return originKey !== primaryKey; const noticeSelectedKey = resolveModelRefKey({ defaultProvider: params.defaultProvider, overrideModel: normalizeOptionalString(entry.fallbackNoticeSelectedModel) }); if (noticeSelectedKey) return noticeSelectedKey !== primaryKey; const storedOverrideKey = resolveModelRefKey({ defaultProvider: params.defaultProvider, overrideProvider: params.storedOverride.provider, overrideModel: params.storedOverride.model }); return storedOverrideKey !== null && storedOverrideKey !== primaryKey; } //#endregion export { resolveStoredModelOverride as n, isStaleHeartbeatAutoFallbackOverride as t };