Files
openclaw/src/plugin-sdk/memory-host-core.test.ts

62 lines
1.7 KiB
TypeScript

import { afterEach, describe, expect, it } from "vitest";
import {
clearMemoryPluginState,
registerMemoryCapability,
registerMemoryPromptSection,
} from "../plugins/memory-state.js";
import {
buildActiveMemoryPromptSection,
listActiveMemoryPublicArtifacts,
} from "./memory-host-core.js";
describe("memory-host-core helpers", () => {
afterEach(() => {
clearMemoryPluginState();
});
it("exposes the active memory prompt guidance builder for context engines", () => {
registerMemoryPromptSection(({ citationsMode }) => [
"## Memory Recall",
`citations=${citationsMode ?? "default"}`,
"",
]);
expect(
buildActiveMemoryPromptSection({
availableTools: new Set(["memory_search"]),
citationsMode: "off",
}),
).toEqual(["## Memory Recall", "citations=off", ""]);
});
it("exposes active memory public artifacts for companion plugins", async () => {
registerMemoryCapability("memory-core", {
publicArtifacts: {
async listArtifacts() {
return [
{
kind: "memory-root",
workspaceDir: "/tmp/workspace",
relativePath: "MEMORY.md",
absolutePath: "/tmp/workspace/MEMORY.md",
agentIds: ["main"],
contentType: "markdown" as const,
},
];
},
},
});
await expect(listActiveMemoryPublicArtifacts({ cfg: {} as never })).resolves.toEqual([
{
kind: "memory-root",
workspaceDir: "/tmp/workspace",
relativePath: "MEMORY.md",
absolutePath: "/tmp/workspace/MEMORY.md",
agentIds: ["main"],
contentType: "markdown",
},
]);
});
});