openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
133 lines (132 loc) • 5.71 kB
JavaScript
import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString, s as normalizeOptionalLowercaseString } from "../string-coerce-mnp54Vah.js";
import { i as normalizeProviderId } from "../provider-id-Dq06Bcx6.js";
import { i as resolveAgentModelPrimaryValue } from "../model-input-B2zxl6MM.js";
import { n as DEFAULT_MODEL, r as DEFAULT_PROVIDER } from "../defaults-mDjiWzE5.js";
import { a as resolveStoredSessionKeyForAgentStore } from "../session-store-key-BsydjA1h.js";
import { t as resolveConfiguredProviderFallback } from "../configured-provider-fallback-Crd282ov.js";
import { c as parseModelRef } from "../model-selection-normalize-roKDxQ9_.js";
import { d as resolvePersistedSelectedModelRef } from "../model-selection-CA_65iXi.js";
import { r as readAcpSessionMeta } from "../session-meta-BuCj-TpW.js";
import { t as resolveModelAgentRuntimeMetadata } from "../agent-runtime-metadata-BIkYs5im.js";
import { t as classifySessionKind } from "../classify-session-kind-eHlwmGkk.js";
import { t as resolveAgentRuntimeLabel } from "../agent-runtime-label-DQQuDVe3.js";
//#region src/commands/status.summary.runtime.ts
function resolveStatusModelRefFromRaw(params) {
const trimmed = params.rawModel.trim();
if (!trimmed) return null;
const configuredModels = params.cfg.agents?.defaults?.models ?? {};
if (!trimmed.includes("/")) {
const aliasKey = normalizeLowercaseStringOrEmpty(trimmed);
for (const [modelKey, entry] of Object.entries(configuredModels)) {
const aliasValue = entry?.alias;
const alias = normalizeOptionalString(aliasValue) ?? "";
if (!alias || normalizeOptionalLowercaseString(alias) !== aliasKey) continue;
const parsed = parseModelRef(modelKey, params.defaultProvider, { allowPluginNormalization: false });
if (parsed) return parsed;
}
return {
provider: params.defaultProvider,
model: trimmed
};
}
return parseModelRef(trimmed, params.defaultProvider, { allowPluginNormalization: false });
}
function resolveConfiguredStatusModelRef(params) {
const agentRawModel = params.agentId ? resolveAgentModelPrimaryValue(params.cfg.agents?.list?.find((entry) => entry?.id === params.agentId)?.model) : void 0;
if (agentRawModel) {
const parsed = resolveStatusModelRefFromRaw({
cfg: params.cfg,
rawModel: agentRawModel,
defaultProvider: params.defaultProvider
});
if (parsed) return parsed;
}
const defaultsRawModel = resolveAgentModelPrimaryValue(params.cfg.agents?.defaults?.model);
if (defaultsRawModel) {
const parsed = resolveStatusModelRefFromRaw({
cfg: params.cfg,
rawModel: defaultsRawModel,
defaultProvider: params.defaultProvider
});
if (parsed) return parsed;
}
const fallbackProvider = resolveConfiguredProviderFallback({
cfg: params.cfg,
defaultProvider: params.defaultProvider
});
if (fallbackProvider) return fallbackProvider;
return {
provider: params.defaultProvider,
model: params.defaultModel
};
}
function resolveConfiguredProviderContextTokens(cfg, provider, model) {
const providers = cfg?.models?.providers;
if (!providers || typeof providers !== "object") return;
const providerKey = normalizeProviderId(provider);
for (const [id, providerConfig] of Object.entries(providers)) {
if (normalizeProviderId(id) !== providerKey || !Array.isArray(providerConfig?.models)) continue;
for (const entry of providerConfig.models) {
const contextTokens = typeof entry?.contextTokens === "number" ? entry.contextTokens : typeof entry?.contextWindow === "number" ? entry.contextWindow : void 0;
if (typeof entry?.id === "string" && entry.id === model && typeof contextTokens === "number" && contextTokens > 0) return contextTokens;
}
}
}
function resolveSessionModelRef(cfg, entry, agentId) {
const resolved = resolveConfiguredStatusModelRef({
cfg,
defaultProvider: DEFAULT_PROVIDER,
defaultModel: DEFAULT_MODEL,
agentId
});
return resolvePersistedSelectedModelRef({
defaultProvider: resolved.provider || "openai",
runtimeProvider: entry?.modelProvider,
runtimeModel: entry?.model,
overrideProvider: entry?.providerOverride,
overrideModel: entry?.modelOverride,
allowPluginNormalization: false
}) ?? resolved;
}
function resolveSessionRuntimeLabel(params) {
const acpSessionKey = params.agentId ? resolveStoredSessionKeyForAgentStore({
cfg: params.cfg,
agentId: params.agentId,
sessionKey: params.sessionKey
}) : params.sessionKey;
const acpMeta = readAcpSessionMeta({ sessionKey: acpSessionKey });
const id = normalizeOptionalLowercaseString(resolveModelAgentRuntimeMetadata({
cfg: params.cfg,
agentId: params.agentId ?? "",
provider: params.provider,
model: params.model,
sessionKey: acpSessionKey,
acpRuntime: acpMeta != null,
acpBackend: acpMeta?.backend
}).id);
const resolvedHarness = id && id !== "openclaw" && id !== "auto" ? id : void 0;
return resolveAgentRuntimeLabel({
config: params.cfg,
sessionEntry: params.entry,
resolvedHarness,
fallbackProvider: params.provider
});
}
function resolveContextTokensForModel(params) {
params.allowAsyncLoad;
if (typeof params.contextTokensOverride === "number" && params.contextTokensOverride > 0) return params.contextTokensOverride;
if (params.provider && params.model) {
const configuredContextTokens = resolveConfiguredProviderContextTokens(params.cfg, params.provider, params.model);
if (configuredContextTokens !== void 0) return configuredContextTokens;
}
return params.fallbackContextTokens ?? 2e5;
}
const statusSummaryRuntime = {
resolveContextTokensForModel,
classifySessionKey: classifySessionKind,
resolveSessionModelRef,
resolveSessionRuntimeLabel,
resolveConfiguredStatusModelRef
};
//#endregion
export { statusSummaryRuntime };