SRC / index.ts
import { PluginContext, ChatMessage } from "@lmstudio/sdk";
import { configSchematics } from "./config";
import { toolsProvider } from "./toolsProvider";
import * as fs from "fs";
export async function main(context: PluginContext) {
context.withConfigSchematics(configSchematics);
context.withToolsProvider(toolsProvider);
context.withPromptPreprocessor(async (ctl, userMessage: ChatMessage) => {
const pluginConfig = ctl.getPluginConfig(configSchematics);
const memoryPath = pluginConfig.get("memoryPath");
if (memoryPath && fs.existsSync(memoryPath)) {
const memory = fs.readFileSync(memoryPath, "utf-8");
if (memory.trim().length > 0) {
return `## Your persistent memory (from previous sessions):\n${memory}\n\nUser Query:\n\n${userMessage.getText()}`;
}
}
return userMessage;
});
}