mirror of
https://github.com/moltbot/moltbot.git
synced 2026-03-09 15:35:17 +00:00
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
import { vi } from "vitest";
|
|
|
|
export type SearchImpl = () => Promise<unknown[]>;
|
|
export type MemoryReadParams = { relPath: string; from?: number; lines?: number };
|
|
export type MemoryReadResult = { text: string; path: string };
|
|
type MemoryBackend = "builtin" | "qmd";
|
|
|
|
let backend: MemoryBackend = "builtin";
|
|
let searchImpl: SearchImpl = async () => [];
|
|
let readFileImpl: (params: MemoryReadParams) => Promise<MemoryReadResult> = async (params) => ({
|
|
text: "",
|
|
path: params.relPath,
|
|
});
|
|
|
|
const stubManager = {
|
|
search: vi.fn(async () => await searchImpl()),
|
|
readFile: vi.fn(async (params: MemoryReadParams) => await readFileImpl(params)),
|
|
status: () => ({
|
|
backend,
|
|
files: 1,
|
|
chunks: 1,
|
|
dirty: false,
|
|
workspaceDir: "/workspace",
|
|
dbPath: "/workspace/.memory/index.sqlite",
|
|
provider: "builtin",
|
|
model: "builtin",
|
|
requestedProvider: "builtin",
|
|
sources: ["memory" as const],
|
|
sourceCounts: [{ source: "memory" as const, files: 1, chunks: 1 }],
|
|
}),
|
|
sync: vi.fn(),
|
|
probeVectorAvailability: vi.fn(async () => true),
|
|
close: vi.fn(),
|
|
};
|
|
|
|
vi.mock("../../src/memory/index.js", () => ({
|
|
getMemorySearchManager: async () => ({ manager: stubManager }),
|
|
}));
|
|
|
|
export function setMemoryBackend(next: MemoryBackend): void {
|
|
backend = next;
|
|
}
|
|
|
|
export function setMemorySearchImpl(next: SearchImpl): void {
|
|
searchImpl = next;
|
|
}
|
|
|
|
export function setMemoryReadFileImpl(
|
|
next: (params: MemoryReadParams) => Promise<MemoryReadResult>,
|
|
): void {
|
|
readFileImpl = next;
|
|
}
|
|
|
|
export function resetMemoryToolMockState(overrides?: {
|
|
backend?: MemoryBackend;
|
|
searchImpl?: SearchImpl;
|
|
readFileImpl?: (params: MemoryReadParams) => Promise<MemoryReadResult>;
|
|
}): void {
|
|
backend = overrides?.backend ?? "builtin";
|
|
searchImpl = overrides?.searchImpl ?? (async () => []);
|
|
readFileImpl =
|
|
overrides?.readFileImpl ??
|
|
(async (params: MemoryReadParams) => ({ text: "", path: params.relPath }));
|
|
vi.clearAllMocks();
|
|
}
|