openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
121 lines • 4.86 kB
TypeScript
import { r as OpenClawConfig } from "../types.openclaw-BdCLfP4c.js";
import { n as PluginMetadataSnapshot } from "../plugin-metadata-snapshot.types-clrjejix.js";
import { c as SessionEntry, i as InternalSessionEntry } from "../types-DeuBjaEd.js";
import { n as ThinkLevel } from "../thinking.shared-CNN7g0o3.js";
import "../model-catalog-CFrq7UMF.js";
import "../sessions-50ndZyDQ.js";
import { s as ModelCatalogEntry, t as ModelVisibilityPolicy } from "../model-selection-shared-Cd2NqtMF.js";
import { t as AgentModelPrimaryWriteTarget } from "../agent-scope-BnvcBZbj.js";
import { a as resolveAgentMaxConcurrent, i as isModelSelectionLocked, n as ModelSelectionLockedError, o as resolveChannelModelOverride, r as applyModelOverrideToSessionEntry, t as MODEL_SELECTION_LOCKED_MESSAGE } from "../model-overrides-YaztLkL1.js";
//#region src/agents/session-runtime-compat.d.ts
/** Persisted runtime fields used to recover session runtime compatibility. */
type SessionRuntimeCompatEntry = Pick<SessionEntry, "agentHarnessId" | "agentRuntimeOverride" | "modelSelectionLocked" | "pluginOwnerId">;
/** Resolves the persisted runtime id, preserving locked transcript ownership. */
export declare function resolvePersistedSessionRuntimeId(entry?: SessionRuntimeCompatEntry): string | undefined;
//#endregion
//#region src/agents/session-model-ref.d.ts
type SessionModelEntry = SessionEntry | Pick<SessionEntry, "model" | "modelProvider" | "modelOverride" | "providerOverride" | "modelOverrideRouteResolution">;
export declare function resolveSessionModelRef(cfg: OpenClawConfig, entry?: SessionModelEntry, agentId?: string, options?: {
allowPluginNormalization?: boolean;
}): {
provider: string;
model: string;
};
//#endregion
//#region src/agents/sticky-model-selection.d.ts
type StickyModelSelectionDispatchOutcome = "requested" | "skipped-immutable";
//#endregion
//#region src/model-picker/apply-session-model-selection.d.ts
type SessionModelSelectionRequest = {
provider: string;
model: string;
isDefault: boolean;
alias?: string;
profileOverride?: string;
runtime: {
kind: "unchanged";
} | {
kind: "clear";
} | {
kind: "set";
runtime: string;
};
};
type ApplySessionModelSelectionParams = {
cfg: OpenClawConfig;
agentId: string;
sessionKey: string;
storePath?: string;
sessionEntry: InternalSessionEntry;
sessionStore: Record<string, InternalSessionEntry>;
allowCreate?: boolean;
defaultProvider: string;
defaultModel: string;
currentProvider: string;
currentModel: string;
modelPolicy?: ModelVisibilityPolicy;
modelCatalog: readonly ModelCatalogEntry[];
thinkingCatalog?: readonly ModelCatalogEntry[];
canPersistStickyModelSelection?: boolean;
stickyModelSelectionTarget?: AgentModelPrimaryWriteTarget;
validateAuthProfileSelection?: () => string | undefined;
request: SessionModelSelectionRequest;
/** Raw directive text used only by the existing session patch hook. */
patchModel?: string;
markLiveSwitchPending: true;
};
type ApplySessionModelSelectionResult = {
status: "applied";
provider: string;
model: string;
effectiveModelRef: string;
agentRuntime: string;
changed: boolean;
contextTokens: number;
configuredDefaultUpdate?: StickyModelSelectionDispatchOutcome;
runtimeChange?: {
kind: "clear";
} | {
kind: "set";
runtime: string;
};
thinkingRemap?: {
from: ThinkLevel;
to: ThinkLevel;
provider: string;
model: string;
};
} | {
status: "rejected";
reason: "locked" | "not-allowed" | "invalid-runtime" | "unknown-provider";
message: string;
} | {
status: "conflict";
message: string;
};
/** Applies one validated picker selection to the authoritative live session. */
export declare function applySessionModelSelection(params: ApplySessionModelSelectionParams): Promise<ApplySessionModelSelectionResult>;
//#endregion
//#region src/sessions/auth-profile-preservation.d.ts
type ModelOverrideSelection = {
provider: string;
model: string;
isDefault?: boolean;
};
/** Applies a user model selection without dropping a compatible pinned auth profile. */
export declare function applyModelOverrideWithAuthProfileCompatibility(params: {
cfg: OpenClawConfig;
agentDir: string;
entry: SessionEntry;
currentProvider: string;
selection: ModelOverrideSelection;
profileOverride?: string;
profileOverrideSource?: "auto" | "user";
selectionSource?: "auto" | "user";
markLiveSwitchPending?: boolean;
metadataSnapshot?: Pick<PluginMetadataSnapshot, "plugins">;
}): {
updated: boolean;
};
//#endregion
export { type ApplySessionModelSelectionParams, type ApplySessionModelSelectionResult, MODEL_SELECTION_LOCKED_MESSAGE, ModelSelectionLockedError, type SessionModelSelectionRequest, applyModelOverrideToSessionEntry, isModelSelectionLocked, resolveAgentMaxConcurrent, resolveChannelModelOverride };