openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
179 lines (178 loc) • 6.79 kB
JavaScript
import { c as normalizeOptionalLowercaseString, l as normalizeOptionalString, o as normalizeLowercaseStringOrEmpty } from "../string-coerce-CIXf7egm.js";
import { c as resolveAgentConfig } from "../agent-scope-config-DcbEhP0R.js";
import { E as resolveConfiguredProviderFallback } from "../model-selection-shared-BlLyx1r2.js";
import { n as DEFAULT_MODEL, r as DEFAULT_PROVIDER } from "../defaults-CdX9UGcX.js";
import { a as resolveAgentModelPrimaryValue } from "../model-input-BuGMCNOz.js";
import { n as parseModelRef } from "../model-selection-normalize-D1HuPOqZ.js";
import { a as resolveStoredSessionKeyForAgentStore } from "../session-store-key-8xEjWSNi.js";
import { i as resolvePersistedSelectedModelRef } from "../model-selection-di2kjKCB.js";
import { n as resolveSessionStorePathForAcp } from "../session-meta-store-BkOt1zC9.js";
import { t as classifySessionKind } from "../classify-session-kind-txf57MUM.js";
import { a as readAcpSessionMetaForEntry } from "../session-meta-dzG4VkYo.js";
import { t as resolveCurrentSessionAgentRuntimeMetadata } from "../agent-runtime-metadata-BVVh8XFs.js";
import { c as resolveAuthoredModelContextTokens, l as resolveContextTokensForModelFromCache } from "../context-resolution-DlNIXncb.js";
import { o as waitForContextWindowCacheLoad } from "../context-B0EuZFRZ.js";
import { t as resolveAgentRuntimeLabel } from "../agent-runtime-label-BA4eUY6k.js";
//#region src/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, {
allowManifestNormalization: false,
allowPluginNormalization: false
});
if (parsed) return parsed;
}
return {
provider: params.defaultProvider,
model: trimmed
};
}
return parseModelRef(trimmed, params.defaultProvider, {
allowManifestNormalization: false,
allowPluginNormalization: false
});
}
function resolveConfiguredStatusModelRef(params) {
const agentRawModel = params.agentId ? resolveAgentModelPrimaryValue(resolveAgentConfig(params.cfg, 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,
defaultModel: params.defaultModel
});
if (fallbackProvider) return fallbackProvider;
return {
provider: params.defaultProvider,
model: params.defaultModel
};
}
function resolveProviderlessPersistedStatusModelRef(params) {
const provider = normalizeOptionalString(params.provider);
const model = normalizeOptionalString(params.model);
if (!model || provider || model.includes("/") || normalizeLowercaseStringOrEmpty(model) === "openrouter:auto") return null;
return {
provider: params.defaultProvider,
model
};
}
function resolveStatusModelLookupRef(params) {
const provider = normalizeOptionalString(params.provider);
const model = normalizeOptionalString(params.model);
if (!model) return null;
const defaultProvider = normalizeOptionalString(params.defaultProvider) ?? provider ?? "openai";
const raw = provider ? `${provider}/${model}` : model;
return parseModelRef(raw, defaultProvider, {
allowManifestNormalization: false,
allowPluginNormalization: false
}) ?? {
provider: provider ?? defaultProvider,
model
};
}
function resolveStatusModelComparisonLabel(params) {
const ref = resolveStatusModelLookupRef(params);
return ref ? `${ref.provider}/${ref.model}` : null;
}
function resolveSessionModelRef(cfg, entry, agentId) {
const resolved = resolveConfiguredStatusModelRef({
cfg,
defaultProvider: DEFAULT_PROVIDER,
defaultModel: DEFAULT_MODEL,
agentId
});
const defaultProvider = resolved.provider || "openai";
const providerlessPersisted = resolveProviderlessPersistedStatusModelRef({
defaultProvider,
provider: entry?.providerOverride,
model: entry?.modelOverride
}) ?? resolveProviderlessPersistedStatusModelRef({
defaultProvider,
provider: entry?.modelProvider,
model: entry?.model
});
if (providerlessPersisted) return providerlessPersisted;
return resolvePersistedSelectedModelRef({
defaultProvider,
runtimeProvider: entry?.modelProvider,
runtimeModel: entry?.model,
overrideProvider: entry?.providerOverride,
overrideModel: entry?.modelOverride,
allowManifestNormalization: false,
allowPluginNormalization: false
}) ?? resolved;
}
function resolveSessionRuntime(params) {
const acpSessionKey = params.agentId ? resolveStoredSessionKeyForAgentStore({
cfg: params.cfg,
agentId: params.agentId,
sessionKey: params.sessionKey
}) : params.sessionKey;
const { agentId: acpAgentId } = resolveSessionStorePathForAcp({
cfg: params.cfg,
sessionKey: acpSessionKey
});
const acpMeta = readAcpSessionMetaForEntry({
cfg: params.cfg,
sessionKey: acpSessionKey,
agentId: acpAgentId,
entry: params.entry
});
const runtime = resolveCurrentSessionAgentRuntimeMetadata({
cfg: params.cfg,
agentId: params.agentId ?? "",
provider: params.provider,
model: params.model,
sessionKey: acpSessionKey,
sessionEntry: params.entry,
acpRuntime: acpMeta != null,
acpBackend: acpMeta?.backend
});
const id = normalizeOptionalLowercaseString(runtime.id);
const resolvedHarness = id && id !== "openclaw" && id !== "auto" ? id : void 0;
return {
id,
label: resolveAgentRuntimeLabel({
config: params.cfg,
sessionEntry: params.entry,
resolvedHarness,
fallbackProvider: params.provider
})
};
}
const statusSummaryRuntime = {
waitForContextWindowCacheLoad,
resolveAuthoredModelContextTokens,
resolveContextTokensForModel: resolveContextTokensForModelFromCache,
classifySessionKey: classifySessionKind,
resolveSessionModelRef,
resolveSessionRuntime,
resolveConfiguredStatusModelRef,
resolveStatusModelLookupRef,
resolveStatusModelComparisonLabel
};
//#endregion
export { statusSummaryRuntime };