openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
65 lines (64 loc) • 2.79 kB
JavaScript
import { r as isDefaultAgentRuntimeId } from "./agent-runtime-id-BZLMe-UU.mjs";
import { t as resolveDefaultModelForAgent } from "./model-selection-config-BC0CegJ7.mjs";
import { n as resolveAvailableAgentHarnessPolicy } from "./availability-LCoXDLq_.mjs";
import { i as resolveSessionRuntimeOverrideForProvider, r as resolvePersistedSessionRuntimeId } from "./session-runtime-compat-ro9WhJ4w.mjs";
import "./model-selection-Cpoq0B2R.mjs";
//#region src/agents/acp-runtime-overlay.ts
/** Persisted ACP ownership is authoritative even for ordinary session keys. */
function applyAcpRuntimeOverlay(meta, acpRuntime, acpBackend) {
if (acpRuntime === true) return {
id: acpBackend && acpBackend.length > 0 ? acpBackend : "acpx",
source: "session-key"
};
return meta;
}
//#endregion
//#region src/agents/agent-runtime-metadata.ts
/** Resolves the runtime id/source that should be reported for a model-backed agent session. */
function resolveModelAgentRuntimeMetadata(params) {
const persistedRuntimeId = resolvePersistedSessionRuntimeId(params.sessionEntry);
if (persistedRuntimeId && !isDefaultAgentRuntimeId(persistedRuntimeId)) return applyAcpRuntimeOverlay({
id: persistedRuntimeId,
source: "session"
}, params.acpRuntime, params.acpBackend);
const agentId = params.agentScope ? params.agentScope.agentId : params.agentId;
const resolved = params.provider && params.model ? {
provider: params.provider,
model: params.model
} : resolveDefaultModelForAgent({
cfg: params.cfg,
agentId
});
const policy = resolveAvailableAgentHarnessPolicy({
...params,
mode: "projection",
provider: resolved.provider,
modelId: resolved.model,
config: params.cfg,
sessionKey: params.sessionKey,
agentHarnessRuntimeOverride: params.agentHarnessRuntimeOverride
});
return applyAcpRuntimeOverlay({
id: policy.runtime,
source: policy.runtimeSource ?? "implicit"
}, params.acpRuntime, params.acpBackend);
}
/** Resolves the runtime selected for the next turn, excluding historical producer metadata. */
function resolveCurrentSessionAgentRuntimeMetadata(params) {
const { sessionEntry, ...configuredParams } = params;
const sessionRuntime = resolveSessionRuntimeOverrideForProvider({
provider: params.provider,
entry: sessionEntry,
cfg: params.cfg
});
if (params.acpRuntime || !sessionRuntime) return resolveModelAgentRuntimeMetadata(configuredParams);
return {
id: resolveModelAgentRuntimeMetadata({
...configuredParams,
...sessionEntry?.modelSelectionLocked === true ? { sessionEntry } : { agentHarnessRuntimeOverride: sessionRuntime }
}).id,
source: sessionEntry?.modelSelectionLocked === true ? "session" : "session-key"
};
}
//#endregion
export { resolveModelAgentRuntimeMetadata as n, resolveCurrentSessionAgentRuntimeMetadata as t };