Files
fusion/packages/core/src/agent-memory-mode.ts
Fusion 49bb2b3858 feat(FN-4455): complete Step 5 — migrate memory mode resolution and tests
Fusion-Task-Id: FN-4455
Fusion-Task-Lineage: 735091fa-9d42-4f23-9c5b-3e5889da99a6
2026-05-14 13:59:10 -07:00

37 lines
1.2 KiB
TypeScript

import type { Agent, AgentMemoryInclusionMode, GlobalSettings } from "./types.js";
export type AgentMemoryInclusionModeSource = "agent" | "global" | "default";
export interface ResolveAgentMemoryInclusionModeInput {
agent?: Agent | null;
globalSettings?: GlobalSettings | null;
}
export interface ResolvedAgentMemoryInclusionMode {
mode: AgentMemoryInclusionMode;
source: AgentMemoryInclusionModeSource;
}
function isAgentMemoryInclusionMode(value: unknown): value is AgentMemoryInclusionMode {
return value === "full" || value === "index" || value === "off";
}
export function resolveAgentMemoryInclusionMode({
agent,
globalSettings,
}: ResolveAgentMemoryInclusionModeInput): ResolvedAgentMemoryInclusionMode {
const agentMode = agent?.runtimeConfig && typeof agent.runtimeConfig === "object"
? (agent.runtimeConfig as Record<string, unknown>).agentMemoryInclusionMode
: undefined;
if (isAgentMemoryInclusionMode(agentMode)) {
return { mode: agentMode, source: "agent" };
}
const globalMode = globalSettings?.agentMemoryInclusionMode;
if (isAgentMemoryInclusionMode(globalMode)) {
return { mode: globalMode, source: "global" };
}
return { mode: "full", source: "default" };
}